Алгоритмы *
Все об алгоритмах
Новости
Коллективное распознавание смысла
Предлагаемый материал является приложением в книге [1].
Современная цивилизация оказалась на перекрестке, на котором нужно выбрать смысл жизни. Из-за развития технологий большинство населения планеты может оказаться «лишним» - не востребованным в производстве ценностей. Есть и другой вариант, когда каждый человек является высшей ценностью, абсолютной индивидуальностью и может быть незаменимо полезен в технологиях коллективного разума.
В восьмидесятых годах прошлого века задача создания научного направления «коллективный разум» была поставлена. Коллективный разум определяется ...
Искусственный интеллект и безопасность
В России 30 мая 2019 года на совещании по развитию цифровой экономики под председательством В. В. Путина было принято решение о подготовке национальной стратегии по искусственному интеллекту. В её рамках разрабатывается федеральная программа с выделением 90 млрд рублей. В октябре 2021 года в РФ подписан Кодекс этики искусственного интеллекта, разработанный с учетом требований Национальной стратегии развития искусственного интеллекта на период до 2030 года.
Генерация лабиринтов: алгоритм Эллера
Привет, Хабр!
Сегодня я хотел бы рассказать о генерации идеального лабиринта - алгоритмом Эллера. Статья подойдёт всем любителям алгоритмов.
GPT-4 уже на за горами. Что мы о нём знаем
Возможно, вы помните, что о появлении GPT-3 объявили в мае 2020 года. Его запустили через год после GPT-2, который также появился спустя год после первой версии GPT. Если бы эта тенденция сохранялась, то GPT-4 уже был бы доступен. Увы, четвёртой версии мы пока не дождались. Но генеральный директор OpenAI Сэм Альтман недавно заявил, что GPT-4 на подходе. Некоторые эксперты полагают, что релиз состоится где-то в июле-августе 2022 года.
Удивительно то, что информации о GPT-4 очень мало. На что он будет похож, какие у этой модели особенности и возможности. Точно известно, что у GPT-4 не будет 100 триллионов параметров (т.е. в 500 раз больше, чем заложено в GPT-3). Для создания такой большой модели нужно больше времени.
Давайте попробуем разобраться, что ещё известно о четвёртом поколении алгоритма обработки естественного языка от OpenAI.
Социальные сети: безопасность и моделирование
Под социальной сетью понимается социальная структура, состоящая из множества агентов (субъектов - индивидуальных или коллективных, например, индивидов, семей, групп, организаций) и определенного на нем множества отношений (совокупностей связей между агентами, например, знакомства, дружбы, сотрудничества, коммуникации). Сегодня - это уже знакомый большинству населения объект, особенно тем, кто не выпускает смартфон из рук. Представление о сетях у людей, тем не менее, очень различаются. Мало кто пытается для себя как-то формализовать, определить да большой нужды в этом не испытывает, хотя уже давно является элементом такой сети и возможно даже не одной.
Простой образ любой сети - узлы и соединяющие эти узлы связи. Роль узлов в социальных сетях выполняют люди, мы с вами, а роль связей социальные коммуникации, социальные потребности, отношения. Этот образ изображается (представляется) орграфом (мультиграфом) с множеством вершин и дуг. Если граф не пуст или не полный, то его структура может описываться множеством вариантов, которое распадается на подмножества изоморфных графов. Таким графам соответствует и другое матричное описание. С позиции структуры социальных сетей их строгая классификация возможна математическими (алгебраическими) методами.
Wordle или как выиграть за 6 ходов
Статья о достаточно известной игре по угадыванию пятибуквенных слов, и о том как всегда в ней выигрывать
Программирование: теоремы и задачи
После неудачного (с точки зрения эффективности траты времени) погружения в "Грокаем алгоритмы" по совету Яндекс Практикум и решения нескольких задач в "Бесплатный курс: подготовка к собеседованиям" от того же Яндекса решил поискать литературу на тему разбора задач. Довольно много рекомендаций указывало на книгу "Программирование: теоремы и задачи" от Александра Шень. Предыдущее издание книги можно, кстати, официально скачать с сайта издательства Московского Центра Непрерывного Математического Образования.
Сам автор характеризует книгу как справочник и задачник для преподавателя. Причем во введении и аннотации упоминает школу на порядок чаще университета. Да и формулировки многих задач намекают на школьную аудиторию. На этом стоит остановиться сразу. Речь может идти только об очень очень особой школе и очень очень особых школьниках. Например, таких, которые ходят на математический кружок мехмата МГУ, где математически доказывают выигрышную стратегию при игре в крестики-нолики. 90% материала выходят за рамки школьной программы по информатике. Да и некоторые задачи используют математический аппарат, который тоже в школьный стандарт не входит. Не стоит отметать эту книгу как что-то для маленьких и неразумных.
R*-tree в Go, немного геймдева и поиска элементов в пространстве
Приветствую, уважаемые читатели Habr!
Если Вы когда-нибудь задумывались, какая структура данных может помочь максимально эффективно искать элементы в пространстве, то, возможно, эта статья Вам поможет!
Эта статья заденет опыт в геймдейве и идеи, где это ещё можно было бы использовать :)
Язык-головоломка Marthue
Предлагаю читателям Хабра "эзотерический" язык программирования, обобщающий нормальные алгоритмы Маркова (НАМ) и полусистемы Акселя Туэ (semi-Thue systems). В языке есть возможность интерактивного ввода и вывода, выбора поиска замены подстрок с начала, конца строки или случайным образом, условного рекурсивного вызова одного блока подстановок из другого, а также условного перехода между блоками. Это позволяет совмещать подстановку строк с элементами императивного и даже функционального программирования, а также исследовать недетерминированные алгоритмы.
Интерпретатор написан под Линуксом на языке Common Lisp, который я считаю одним из самых мощных и удобных, в том числе для экспериментальногого программирования. При желании большого труда не составит переписать его на любом популярном языке: например, сделать онлайновую версию в Javascript. Просто для запуска программ Лисп знать практически не нужно: достаточно инсталлировать любую версию Common Lisp и ввести нужный файл парой простых функций. Скачать репозиторий интерпретатора Marthue можно здесь.
Алгоритмы на кристалле. Глава 1 (продолжение): Быстродействие элементарных схем
Успел не все, что запланировал. Текст бы еще надо хорошенько причесать, но раз обещал в среду, пока публикую что есть. В этой части в общих чертах описаны процессы, которые происходят в цифровых электрических схемах, а так же ограничения, которые накладывают законы реального мира на процесс вычислений. Главными результатами являются понятия латентности и глубины формальной логической схемы, а так же связь этих величин с предельной тактовой частотой материализованного вычислительного устройства.
Примерное оглавление будущей книги.
Предыдущая статья
Текст, конечно, получился объемным — не самая веселая часть предмета. Я спешил разобрать парочку интересных и использующихся на практике схем, но был вынужден отложить их до следующей статьи. В качестве залога на обложке вы видите одну из них. Если сравнивать содержание будущей книги с настольной игрой, то собственно игра начнется со следующей статьи, а эту и предыдущую стоит воспринимать как брошюру правил. Правила — быть может не самая интересная часть процесса, но не освоив их в достаточной мере, вам трудно будет эффективно и с пониманием играть.
Возможно, в вашем браузере с первого раза не будут правильно отображаться формулы. Если так, попробуйте перезагрузит страницу — на моем компьютере этот фокус работает.
Приятного чтения.
Распределенные Workflow на PHP. Часть 1
Мы занимаемся разработкой огромного количества сложного ПО для автоматизации и энтерпрайза и Workflow для нас — это большая и больная проблема. Если для вас тоже — я расскажу, как писать и оркестрировать очень сложные процессы на масштабах, и как убедиться, что они не падают. А также как делать таймеры на 30 дней внутри процессов. И самое главное, как всё это пилить на PHP.
Меня зовут Антон Титов. Я более 17 лет занимаюсь коммерческой разработкой. Являюсь соавтором Spiral Framework, RoadRunner и Cycle ORM. Основной стек: PHP и Golang. Разговор пойдет про нашу разработку Temporal PHP SDK, которая и помогает решать все вышеперечисленные сложные задачи.
10 лучших алгоритмов 20 века
Algos — греческое слово, означающее боль. Algor — латинское слово, означающее холод. Но ни то, ни другое не является корнем слова «алгоритм», которое происходит от имени Аль-Хорезми – арабского ученого девятого века – чья книга «al-jabr wa’l muqabalah» (Китаб аль-джебр ва-ль-мукабала) переросла современные учебники по алгебре для средней школы. Аль-Хорезми подчеркивал важность методических процедур для решения задач. Будь он сегодня здесь, то, несомненно, был бы впечатлен вершинами математического метода, названного в его честь.
Часть из лучших алгоритмов компьютерной эры были освещены в январско-февральском выпуске 2000 года журнала Computing in Science & Engineering — совместном издании Американского института физики и Компьютерного общества IEEE. Приглашенные редакторы Jack Dongarra (Джек Донгарра) из Университета Теннесси и Francis Sullivan (Фрэнсис Салливан) из Института оборонного анализа составили список из 10 алгоритмов, который они назвали «Top Ten Algorithms of the Century».
«Мы попытались собрать 10 алгоритмов, оказавших наибольшее влияние на развитие и практику науки и техники в 20 веке», — пишут Донгарра и Салливан. По признанию авторов, как и в любом рейтинге, их выборы неизбежно будут спорными. Когда дело доходит до выбора лучшего алгоритма, кажется, что он и вовсе не существует.
Итак, вот список 10 лучших алгоритмов в хронологическом порядке. (Все даты и имена стоит воспринимать как аппроксимацию первого порядка. Большинство алгоритмов формируются в течение времени при участии многих ученых).
.NET 6: PriorityQueue
В .NET 6 появилась новая коллекция — PriorityQueue<TElement,TPriority>. До этого очереди с приоритетами уже были в .NET, но только в виде внутренних классов — они использовались под капотом разных механизмов в WPF, Rx.NET и в других частях фреймворка.
Но в .NET 6 PriorityQueue стала новой коллекцией, которой теперь можно пользоваться из клиентского кода. Давайте посмотрим, что предлагает эта очередь, как она устроена внутри и насколько быстро работает. Под катом будет постепенное погружение: от примеров использования в коде к введению n-арные деревья.
Симулятор x86 подобного процессора на машине Тьюринга
Привет, Хабр! В свободное от работы время по вечерам мне нравится воплощать в жизнь свои сумасшедшие идеи. В один из таких вечеров родилась мысль реализовать компилятор кода в машину Тьюринга. Осознав всю тщетность бытия сложность реализации, было принято решение начать с чего-то более простого – симулятора простенького процессора со своим собственным ассемблером, в котором команды выполнялись бы с помощью различных состояний машины Тьюринга, а данные хранились бы на одной ленте. В конечном итоге удалось осуществить практически первоначальную задумку, а именно получить одну единственную машину Тьюринга, способную выполнять скомпилированную из NASM подобного ассемблера программу без какого-либо внешнего взаимодействия.
Apache OpenOffice. Динамические массивы
— Указатели в СтарБейсике видишь?
— …
— А они там есть.
W-функция Ламберта и ее приложения
Математический анализ знает множество замечательных функций со своими удивительными свойствами и применениями. Сегодня я бы хотел рассказать читателю об одной из таких - W-функции Ламберта.
Парадоксальный рост популярности Python в научных вычислениях
Чтобы уверенно пересечь незнакомую местность, можно или двигаться быстрее, или подыскивать удобную дорожку. Другими словами, слишком пристальное внимание к скорости как таковой может вас притормозить. То же касается и разработки программного обеспечения.
Как улучшить распознавание скелетов в MediaPipe
Я очень люблю скелетные детекторы из Mediapipe. Чтобы запустить их нужно всего несколько минут. Работает на разных платформах (мобильные, pc, embedded, и.т.д.). И выдает достаточное качество для многих применений.
Но надо признать что не всюду его можно брать и использовать. Давайте я расскажу как небольшими силами можно его улучшить. Приведенная тут логика будет построена вокруг Mediapipe, но она им не ограничена. Применяя аналогичные подходы можно улучшить практически любой скелетный алгоритм.
Вклад авторов
-
alizar 2691.5 -
ZlodeiBaal 1426.0 -
agorkov 1345.0 -
Fil 1280.0 -
Leono 1086.0 -
YUVladimir 1037.0 -
valemak 1014.0 -
mephistopheies 996.0 -
haqreu 958.0 -
Zalina 922.0