Обновить
128K+

Алгоритмы *

Все об алгоритмах

244,78
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Империя терминаторов: как двести агентов построили цивилизацию

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели7.3K

В 1959 году энтомолог Пьер-Поль Грассе проводил небольшое исследование того, как термиты строят себе жилища — термитники, которые достигают высоты в несколько метров. Каждое из насекомых таскало глину и клало ее в определенное место, которое изначально выбрал предводитель роя. Благодаря общему делу термитники были детально проработаны, там были даже вентиляционные каналы и подвалы. 

Это явление было названо стигмергией — координацией существ через изменение среды. Десятки лет спустя несколько исследователей из MIT воссоздали тот же механизм в цифровом мире. Однако вместо термитов у них были ИИ-агенты, и построили они не гигантский термитник, а технологическую цивилизацию. О результатах эксперимента мини-терминаторов и о том, чему нам, людям, нужно научиться у LLM, рассказываю в статье.

Читать

Новости

Восстановление данных с нуля со сломанной пополам SD-карты памяти

Уровень сложностиСложный
Время на прочтение32 мин
Охват и читатели24K

Добрый день, уважаемый читатель. Как и в других моих статьях, я решил в чем-то разобраться полностью с нуля.

В далеком 2017 году мне передали SD-карту памяти с диагнозом «сломана пополам, вдруг получится что-то с нее считать». Я честно пробовал: восстановил все оборванные дорожки, досконально проверил все соединения и на целостность линий, и на отсутствие замыканий. Положительного результата не получил – карта определялась, но с нулевым объемом. По этой причине она отправилась в ящик ждать «лучших времен».

Прошло 9 лет. В результате очередной уборки-инвентаризации, в ящике нашел эту старую карточку. Вот и настали «лучшие времена», подумал я.

В статье расскажу про микросхему памяти, как определял её адресное пространство, снимал полный дамп подручными средствами (STM32), как определял комбинацию блоков для построения образа, а также про поля Галуа, помехоустойчивое кодирование, вычисление синдромов и локаторов ошибок.

Спойлер - всё получилось.

«Long story short…»

Единица, ноль и самообразование: история Джорджа Буля

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели15K

Возможно, вам доводилось видеть, как выглядит программа управления логическим контроллером, например, станка. Две вертикальные линии, как шины питания, между ними горизонтальные «ступеньки», на ступеньках — контакты и катушки, как на схеме из учебника электрики пятидесятых годов. Это называется ladder logic, «лестничная логика», и на ней до сих пор держится заметная часть мировой промышленности. Конвейеры, лифты, насосные станции и даже линии розлива пива.

Так вот, каждая ступенька этой лесенки — выражение из алгебры, которую придумал человек, умерший почти за век до появления первых серийных компьютеров. Сын сапожника, ни дня не учившийся в университете. Профессор математики без школьного, по сути, образования. Человек, чью смерть — тут я забегаю вперёд, но удержаться невозможно — ускорили мокрые простыни и искренняя вера в гомеопатию.

Зовут его Джордж Буль. Если вы хоть раз писали if (a && !b), вы пользовались его математикой. Если использовали фильтры в интернет-магазине — тоже. Если просто читаете этот текст с экрана — ну, вы поняли.

Его биография — это готовый сценарий байопика: нищета, скандал с обвинением в плагиате в четырнадцать лет, мистическое озарение в поле, женитьба на племяннице человека, в честь которого назвали Эверест, нелепая смерть и потомки, среди которых автор «Овода» и нобелевский лауреат.
 
 Ну а теперь давайте обо всём по порядку. Прошу под кат.

Читать далее

Как советский компьютер «Сетунь» опередил время на 30 лет — и почему о нём забыли

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели31K

Ну как сказать опередил, честно говоря, нет, не опередил, скорее опоздал. Но об этом позже, начну с цифры, которая в этой истории главная. «Сетунь» стоила 27 500 рублей — со всей периферией, с телетайпом, с барабаном, с фотовводом. PDP-8, которую в Штатах считали рекордно дешёвой машиной, стоила 20 000 долларов за один процессорный блок. Без ничего. Это сравнение приводит сам Брусенцов в интервью.

Плюс к этому «Сетунь» была троичной. Единственной серийной троичной машиной в истории человечества, и её закрыли.

Обычно после этого идёт текст про Госплан, который задушил гения, опередившего время на тридцать лет. Я такой текст читала раз пять в разных изложениях, и каждый раз спотыкалась об одно и то же место: вот тут, где объясняют, почему тройка экономичнее двойки, всегда написано «примерно в семь раз». А через абзац — что оптимум системы счисления достигается при основании e. Это два утверждения из разных вселенных, и между ними никто никогда не показывал переход.

Ну я и полезла считать сама.

Читать далее

GigaChat 3.5 Reasoning — первая в России открытая модель с рассуждениями

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели15K

Привет, Хабр. Мы выпускаем GigaChat 3.5 Reasoning, первую модель GigaChat с полноценным рассуждением, обученную на технологии online RL.

Главное, что изменилось в обучении: после SFT модель целиком прошла через online RL. Не один домен и не одна финальная стадия, а шесть отдельных экспертов (математика, код, агенты и другие), каждый со своей наградой, которые потом собрали обратно в одну модель.

В статье расскажем не только про цифры, но и про то, как устроен конвейер, как модель взламывала награды и почему всё это заняло больше девяти месяцев.

Читать далее

Надпись «Откройте камерой» мешала прочитать QR-код

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели11K

Один SVG: при 640 пикселях QR не читается, при 320 читается. Разбираю, как локатор принял часть подписи за угол кода, почему удаление букв возвращало чтение и как удалось оставить подпись на месте. С контрольными опытами и исходниками.

Читать далее

От «когда-нибудь» к работающему прототипу: как LLM дала идее шанс

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели18K

Привет! Меня зовут Владислав Козлов, я тимлид аналитиков Business Security в Авито. Хочу поделиться с вами интересным опытом взаимодействия с LLM, который позволил мне дёшево и быстро проверить свою идею. А заодно — рассказать об интересном алгоритме кластеризации, который мы с моделью придумали и реализовали в виде библиотеки.

Статья не раскроет вам глубин вайбкодинга, не разверзнет бездну понимания ИИ и не явит Истину. Она не о мощных навыках использования LLM, а скорее о личном опыте дешёвого и быстрого прототипирования идеи. Главная её цель — вдохновить читателя не откладывать свои идеи в долгий ящик, а реализовывать и делиться ими с окружающими. 

Надеюсь также, что сделанный нами с нейросетью алгоритм окажется полезным для вас.

Читать далее

ИК1303. Трансцендентное

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели17K

Я не вижу себя в качестве писателя. Но так случилось, что я столкнулся с прекрасным.

Занимаясь археологическими изысканиями в микрокоде МК-61, я задался вопросом: а как же деды запихали столько ума в такие ограниченные ресурсы, и даже без умножителей? Сейчас на целочисленном кортексе использование одной плавающей запятой приводит к взрыву прошивки (да, утрирую, но эмоционально оно так).

Если коротко: есть калькулятор МК-61 (1983). Внутри пять микросхем, которые соединены в однобитовую последовательную кольцевую шину: две памяти и три вычислителя со своей специализацией. Фактически они работают параллельно и синхронизируются через этот канал связи. Можно сказать, что это прообраз парадигмы NOC (network on chip) в современном железе применительно к FPGA.

Собственно о красоте. Чип ИК1303 (1980) отвечает за математические расчёты. В нём восемнадцать вычислительных операций: четыре бинарных (+ — * /) и четырнадцать F‑функций (10^x e^x lg ln arcsin arccos arctg sin cos tg sqrt x^2 x^y 1/x). Сверх них — обмен x<→y и служебные, видные только изнутри: нормализация, генератор констант, приведение угла.

Никаких CORDIC, никакой двоичной плавающей запятой! Но как?! Просто и изящно. Одна функция для большей части операций! ОДНА!

Читать о функции

Пытка тишиной

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели14K

Руки трясутся. Никак не могу перезагрузить этот чёртов сервер. Пытаюсь дозвониться до начальника. Не берёт трубку — конечно, на обеде или ушёл покурить. Слышу, как группа людей в коридоре приближается. «Мне бы минут двадцать, — думаю я, — ещё бы минут двадцать, и всё заработает». Но не сейчас… Я же просил всё проверить, прежде чем присылать мне для наката изменений. Я будто Авгиевы конюшни тут расчищаю… Одна грязь… Так, по ходу, их заболтали… Время ещё есть… Да как же вы так пишете на этом Фортране и деление на ноль не проверяете! Дверь в помещение открылась…

Вот так вспоминается первый год в роли инженера по моделированию систем электроснабжения собственных нужд АЭС

Читать далее

Одну и ту же выгрузку получили сорок подрядчиков. Утекла одна копия. Определить источник можно точно

Уровень сложностиСложный
Время на прочтение5 мин
Охват и читатели9.2K

Разбор, на который меня зовут регулярно, и заканчивается он почти всегда одинаково. База клиентов всплывает в продаже. Выгрузку за последний год получали десятки контрагентов — интеграторы, колл-центр, маркетинговое агентство, аудиторы. У всех был законный доступ. Файл у всех был один и тот же.

Дальше начинается разговор в жанре «это не мы», и закончить его нечем: копии побайтово одинаковые, доказать причастность нельзя ни к кому.

Чинится это не после инцидента, а до него — и стоит недорого. Каждый получатель должен получать копию, отличающуюся от остальных так, чтобы отличие не мешало работе и переживало пересохранение файла.

Читать далее

Учебник по разработке ПО для финтеха

Время на прочтение24 мин
Охват и читатели9K

Задача этого ресурса — описать самые важные паттерны, используемые в разработке ПО систем, в которых основной упор делается на деньги. Учебник можно прочитать целиком, чтобы получить исчерпывающее понимание, или частями при работе над конкретной задачей.

Для кого этот учебник?

Для новичков в сфере финтеха. Он полезен для ознакомления с этой предметной областью и паттернами, обеспечивающими надёжность финансовых систем.

Для людей, уже работающих в финтехе. В качестве справочного пособия при решении конкретной задачи или общего вокабуляра, который можно показать коллегам.

Для людей вне сферы финтеха. Чтобы понять, как и почему разработка ПО для финансовых систем отличается от привычной вам.

Читать далее

CP-SAT OR-Tools против Excel: решаем задачу оптимизации офисного пространства

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели8K

Несколько раз в год отдел оптимизации офисного пространства Альфа‑Банка думает над тем, как разместить сотрудников бэк‑офиса по локациям на несколько лет вперёд. Раньше ребята делали это вручную: было медленно (месяц работы), больно (Excel) и неоптимально (никто не мог гарантировать, что найденная рассадка удовлетворяет всем ограничениям).

Коллеги хотели автоматизировать ручную работу — с этим они и пришли к нам. 

В целом, получаем самую стандартную задачу оптимизации, которая решается с помощью одной библиотеки. Постараюсь рассказать о некоторых нюансах, которые не с первого раза гуглятся (со второго).

Читать далее

Ретрансляция пакетов через ad9361 с помощью алгоритма BFS

Уровень сложностиСложный
Время на прочтение14 мин
Охват и читатели6.7K

В этой статье рассмотрено, как передавать данные пакетами через baremetal приложение no-os на ad9361. Для генерации фрейма на передающей стороне и обработки фрейма на приёмной стороне использована библиотека liquid-dsp, которая скомпилирована под arm ядро в zynq-7000. Для ретрансляции сообщений использован алгоритм обхода графа BFS (Breadth-First Search, поиск в ширину) и простая система адресации приёмопередатчиков в полезной нагрузке пакета сообщения.

Читать далее

Ближайшие события

Зачем лететь через полмира, если статьи уже есть на arXiv: что я увидела на ICML 2026

Время на прочтение11 мин
Охват и читатели15K

Зачем тратить сутки на перелёты, мчаться на другой конец света и жить неделю в режиме нон‑стоп на одной из главных ML‑конференций планеты, когда пейпер уже на arXiv, код — на GitHub, а краткие выжимки из выступлений — мгновенно в соцсетях?

Меня зовут Карина Романова, я разработчик в Яндексе и занимаюсь LLM‑агентами в Алисе. В июле мы с командой прилетели в Сеул на ICML 2026, и я ответила себе на вопрос «зачем?». Для нас офлайн‑конференции — это единственный способ за несколько дней прочувствовать реальный фокус сообщества, встретиться с авторами работ и узнать детали, которых нет в опубликованных текстах.

В этой статье расскажу, как устроена ICML изнутри, чем запомнилась программа этого года, какие наши исследования вызвали наибольший ажиотаж и почему заметная часть разговоров на конференции снова вращалась вокруг AI‑агентов.

Читать далее

Хороший код, минусов нет: встреча «плюсовиков» YADRO и C++ Russia

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели9.6K

У ДДТ был свой ответ на вопрос «что такое осень». И даже не один. У C++-разработчиков — свой: это когда вместо листьев разлетаются корутины, вместо дождя — потоки событий, а select и poll внезапно становятся отличной темой для вечерней встречи. 10 сентября в 18:30 проверим эту версию на мероприятии YADRO и C++ Russia. 

В программе — два технических доклада от разработчиков «Лаборатории Касперского» и YADRO. Перед выступлениями Александр Иргер, эксперт по разработке ПО в области телекоммуникаций, расскажет о планах московского сообщества «плюсовиков» и о том, над какими задачами работают сотни разработчиков на С++ в YADRO. Чтобы присоединиться к встрече в любом формате, пожалуйста, зарегистрируйтесь заранее.

Читать далее

Таинственный остров: находим геолокацию с помощью геометрии и программирования GPU CUDA

Время на прочтение10 мин
Охват и читатели9.6K

Свой пост я написал после участия в соревнованиях gralhix 004, организованных Софией Сантос | Gralhix.

Задача

Это фотография островного курорта.

Вопросы:

а) Как называется курорт?

б) Каковы координаты острова?

в) В какую сторону света была направлена камера, когда делали снимок?

На мой взгляд, решение этой задачи при помощи Google Объектива будет потраченной впустую возможности развлечься, поэтому я захотел решить её при помощи математики и программирования.

Читать далее

Почему O(1) проигрывает O(n): структуры данных в Go на реальном железе

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели12K

Объясню структуры данных через очередь в поликлинике, а потом покажу, где эта аналогия ломается: почему связный список с «вставкой за O(1)» в прикладном Go обычно проигрывает обычному массиву.

Спойлер: асимптотика здесь не ошибается. Ошибается вывод, который мы из неё делаем.

Статья для тех, кто асимптотику знает, но не проверял её замером.

Читать далее

Почему токенайзер реж ет сло ва не там, где нужно

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели22K

Заголовок этой статьи, частично, наглядная демонстрация того, как его видит языковая модель. Куски слов, нарезанные по логике, которая к русскому языку не имеет вообще никакого отношения.

И из этой нарезки растет длинный список вещей, которые иногда списывают на «глупую нейронку» (особенно если речь идет о небольших локальных моделях): модель не может посчитать буквы в слове, путается в арифметике, коверкает редкие фамилии, а русский текст обходится вдвое дороже английского при том же смысле.

А еще оттуда же растут вещи, которые с токенами вообще вроде бы не связаны. Например: почему «давай рассуждать по шагам» реально работает, и почему лишний пробел в конце промпта портит ответ.

Виноват во всем этом компонент стека, который первым в пайплайне, никогда не обучается вместе с моделью и которому обычно посвящают полтора абзаца в начале туториала. Что ж, давайте по порядку.

Читать далее

Математики до сих пор не уверены, как быстрее всего перемножать числа

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели32K

Ученики начальной школы могут заучивать таблицу умножения однозначных чисел, но простого запоминания будет недостаточно, когда учитель задаст задачу на умножение трёхзначных чисел. Здесь требуется алгоритм: учеников учат выстраивать числа друг над другом и умножать каждую цифру нижнего числа на каждую цифру верхнего. На протяжении тысячелетий математики считали это самым быстрым способом умножения, пока в 1960 году 23-летний молодой человек не сделал шокирующее открытие, которое привело к загадке, остающейся неразгаданной до сих пор.

Эта загадка имеет решающее значение для всех, кто имеет отношение к цифровому миру, поскольку умножение является основополагающей операцией для компьютеров. Шифрование, робототехника, искусственный интеллект, обработка звука и практически всё остальное, чем мы заставляем заниматься кремниевые чипы, связано с умножением, причём иногда огромных чисел, умножаемых многократно. В таких масштабах даже простая операция становится «узким местом», и любое дополнительное повышение эффективности имеет глобальные экономические последствия.

Чтобы понять суть этого «узкого места», обратите внимание на то, как «школьный» алгоритм справляется с увеличением размера чисел. При умножении двух двузначных чисел выполняется четыре однозначных умножения. Если перейти к паре трёхзначных чисел, то потребуется девять однозначных умножений. Нагрузка растёт пропорционально квадрату количества разрядов (n², где n — количество разрядов в умножаемых числах). При анализе подобного алгоритма компьютерные учёные не измеряют скорость в секундах, поскольку она зависит от аппаратного обеспечения. Вместо этого они подсчитывают количество вычислительных шагов. Они также игнорируют второстепенные детали, такие как время, необходимое для переноса единицы при умножении. Когда числа становятся достаточно большими, эти низкоуровневые операции перестают иметь значение, поскольку их полностью затмевают более ресурсоёмкие операции. Информатики обозначают количество шагов с помощью так называемой нотации «большого O»: например, алгоритм, который учат в начальной школе, требует O(n²) шагов, что читается как «порядка n в квадрате». В общих чертах, если числа в два раза длиннее, для выполнения алгоритма требуется в четыре раза больше вычислительной работы. Если числа в тысячу раз длиннее, требуется в миллион (1 000 в квадрате) раз больше работы.

Читать далее

Открыт предзаказ на второе издание «Грокаем алгоритмы искусственного интеллекта»

Время на прочтение2 мин
Охват и читатели8.5K

Привет, Хаброжители! На протяжении всей своей истории человечество неустанно искало способы решать задачи, прикладывая как можно меньше усилий. Люди всегда стремились создавать инструменты и автоматизировать повторяющиеся действия, чтобы выживать и экономить силы. Здесь некоторые могут поспорить, заявив, что человек умен, ищет возможности совершенствования, умеет творчески решать задачи и создавать произведения искусства в области литературы, музыки и т.п. Но второе обновленное издание «Грокаем алгоритмы искусственного интеллекта» не ставит целью обсуждение философской сути бытия. Оно дает обзор методов искусственного интеллекта, которые можно применять для решения прикладных задач.

Читать далее
1
23 ...