Обновить
273.74

Алгоритмы *

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

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

Стабильно зарабатываем на бирже: сеанс черной магии с последующим разоблачением

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

Операции на бирже почти всегда сопряжены с определенным риском — иногда он больше, иногда меньше, но всегда есть шанс получить «на выходе» денег меньше, чем внесли.

Причины могут быть различные: падение стоимости акций, дефолт эмитента облигаций, снижение синтетических индексов,... — а итог один...

Но есть был способ стабильного заработка на бирже.

Читать далее

Новости

Самокаты и их место в этом мире

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

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

На связи Фарук, с некоторых пор я отвечаю за RnD в Whoosh, и сегодня я хотел бы рассказать вам о том, как мы справлялись с проблемами определения местоположения наших самокатов.

Читать далее

Я написал алгоритм вычисления дат, который на 30–40% быстрее остальных

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

В этой статье я представлю мой завершённый очень быстрый алгоритм преобразования дат.. Он обеспечивает существенный прирост скорости, по величине сравнимый с приростом, достигнутым предыдущим самым быстрым алгоритмом (Neri-Schneider 2021) относительно его предшественника (C++ Boost). Полная реализация алгоритма на C++ выпущена как свободное и бесплатное ПО (лицензия BSL-1.0).

Алгоритм генерирует точные результаты за период ±1,89 триллиона лет, поэтому подходит для обработки полного 64-битного времени UNIX (в секундах).

Читать далее

Азбука тензорных сетей, часть 1: кружочки и палочки

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

Привет, Хабр! Меня зовут Капранов Алексей, я архитектор-исследователь в команде квантовых вычислений в Cloud.ru. Сегодня я расскажу про подход, который позволяет не только моделировать большие квантово-механические системы, но и полезен для целого ряда задач, включая машинное обучение и нейронные сети.

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

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

Читать далее

SQL HowTo: проверяем и объединяем диапазоны (Advent of Code 2025, Day 5: Cafeteria)

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

Осторожно, спойлеры! Не читайте, пока хотите решить задачу самостоятельно.

В этой челлендж-серии статей, начатой с прошлогоднего эвента, попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2025.

Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать.

Читать далее

Техрепорт Alice AI: как мы создавали новое поколение моделей для самого популярного ИИ-ассистента в России

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

Сегодня мы делимся техрепортом, в котором разобран полный цикл создания нового семейства моделей Alice AI: базовая текстовая Alice AI LLM и специализированная LLM Search, мультимодальная Alice AI VLM и картиночная Alice AI ART. 

В части про Alice AI LLM расскажем, как сделали упор в Alignment на RL и Reward Modeling: мы минимизируем число разрозненных RL-стадий, собирая «общий RL». Вместо хрупкого «суперсигнала» используем аспектную формулировку качества и агрегируем её в целевую функцию, чтобы изменения критериев не требовали пересборки всей разметки. В главе про Alice AI LLM Search расскажем про многократные последовательные походы в Поиск с последующей фильтрацией/ранжированием источников. А также о том, как готовим ответы с использованием документов разной модальности (веб-документы, картинки, видео, гео).

Чтобы «вывезти» MoE-модель на сотни миллиардов параметров, мы целенаправленно сняли инфраструктурные ограничения обучения и инференса: в обучении используется YaFSDP (которую мы выложили в опенсорс) и собственная библиотека коллективных коммуникаций YCCL. В прод-инференсе мы работаем под SLA (avg TPOT ≤ 70 ms, p95 TTFT ≤ 2 s) и достигаем их комбинацией TP Attention/EP FFN, KV cache reuse, FP8 w8a8kv8 (в т. ч. сжатие KV cache ~3,05→~1,52 GB) и спекулятивного декодинга EAGLE‑3, что в сумме даёт 5.8× ускорение относительно BF16 (и 1,32× относительно лучшего open-source). Параллельно для Alice AI VLM нарастили в 1,5 раза объем претрейна, контекст до 32k и обновили OCR-датасет; VLM-генератор работает «из коробки», а для математики/геометрии выделен специализированный VLM‑решатель. В пайплайне Alice AI ART повышение релевантности к промпту начинается с диагностики смещений в датасете с помощью VLM и последующей адресной коррекции обнаруженных проблем.

Недавно все эти модели и решения легли в основу нашего нового ИИ-ассистента, и уже к ноябрю, согласно исследованию Mediascope, Алиса AI вышла на первое место по используемости среди россиян (14,3%), обойдя ранее доминировавший DeepSeek (9,4%). Кроме того, модель Alice AI LLM теперь доступна и для разработки собственных AI-решений на платформе Yandex AI Studio.

Читать техрепорт

Моя любимая маленькая хеш-таблица

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

Я из тех, кто всерьёз задумывается о проектировании и реализации хеш-таблиц. Недавно обнаружился донельзя милый вариант, который заслуживает широкой огласки. Это робин-гудовская открытая адресация с применением линейного зондирования, где размер самой таблицы увеличивается как степень двойки. Если вы не знакомы с терминологией хеш-таблиц, то все эти слова могут показаться вам каким-то невразумительным салатиком, но, когда мы разберём этот пример с привлечением кода — всё должно стать понятнее.   

Чтобы не пришлось усложнять код, начнём со следующих допущений:

Читать далее

Из мёртвой зоны — в зелёную: как мы запускали техподдержку для системы утилизации токсичных отходов

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

С 1 марта 2022 года тысячи российских компаний — от промышленных гигантов до сельских школ — в один день перешли на новую систему по обращению с отходами I и II классов опасности, которая стала частью управляемого процесса обращения с отходами в стране.

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

Раньше оборот таких отходов был серой зоной: кто-то пытался соблюдать правила, а кто-то просто сливал их в овраг. Новая система была создана по заказу Минприроды и призвана сделать этот процесс прозрачным и контролируемым.

Создатель и владелец системы — ФГУП «ФЭО» (структура «Росатома»), он же стал единым федеральным оператором обращения с такими отходами. Его задача — управлять процессом. А мы должны были создать и запустить техподдержку.

Задачу мы выполнили.

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

Читать далее

Решение головоломки NYTimes Pips с помощью решателя ограничений

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

Кажется, что головоломка NYT Pips — это просто игра с домино и цветными клетками. Но если взглянуть на неё как на задачу удовлетворения ограничений, она превращается в удобный полигон для современных решателей вроде MiniZinc.

В статье автор показывает, как описать Pips не в виде алгоритма перебора, а в виде системы ограничений: сетка, домино, суммы по областям, симметрии и «мусорные» решения. По ходу дела выясняется, что войти в мир constraint solving можно буквально за пару часов, а заодно на практике понять, почему эти инструменты умеют разруливать экспоненциальный хаос вариантов за миллисекунды — но иногда внезапно «залипают» на одной и той же головоломке.

Читать разбор

GigaMemory на AI Journey Contest 2025: итоги

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

Приветствуем всех! С вами снова ML-команда RnD для B2C SberAI. Этой осенью в рамках AI Journey Contest 2025 мы представили задачу GigaMemory: global memory for LLM. Её цель — создание автономного модуля долговременной памяти для языковых моделей, способного накапливать и использовать знания о конкретном пользователе, по сути наделяя ИИ способностью «помнить» своего собеседника.

Пришло время объявить результаты соревнования и разобрать лучшие решения участников!

Читать далее

Иллюзия 95%: гайд по самой частой элементарной ошибке в Data Science

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

Что, если я скажу тебе, что у параметра нет вероятности?

Это самая распространенная и устойчивая когнитивная ошибка в Data Science. Она встречается в курсовых, в учебниках и даже в документациях библиотек.

Здесь мы напишем симуляцию на Python, увидим, как «прыгают» интервалы, поймем, как тут могут помочь пластмассовые игрушки советских детей, и узнаем, как же тогда математически точно отвечать менеджерам на их вопросы, чтобы они навсегда перестали с вами разговаривать.

Добро пожаловать в кроличью нору частотной статистики.

Читать далее

GUCA: эволюция на графах («Живые графы» 2.0)

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

Где проходит граница между случайностью и замыслом? Почему в наших ДНК куча мусора? Можно ли воспроизвести эволюцию в машине, и как зарождалась жизнь? Хотя и на последний вопрос ответа нет, но мы можем создать эксперимент, который позволяет моделировать механизмы эволюции с нуля. О таком эксперименте из области Artificial Life (искусственной жизни, где эволюция идёт внутри компьютера) и пойдет речь сегодня.

Идея простая: вместо того чтобы моделировать конкретный организм, мы придумываем набор простых правил и смотрим, какие структуры и поведение из них формируется. Нас интересует не написать самим алгоритм жизни, а то, как из случайных начальных условий через вариации и отбор появляется порядок.

GUCA (Graph Unfolding Cellular Automata) — один из таких маленьких миров: в нём мы выращиваем “организмы” из узлов и рёбер графа.

Читать далее

То, что обычно не показывают: как выглядит Wi-Fi взлом изнутри (схемы, примеры, анализ)

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

Безопасность Wi-Fi остаётся одной из тех тем, где одновременно сосуществуют мифы, неоправданные ожидания и огромное количество недопонимания. Кто-то уверен, что WPA2 и тем более WPA3 взломать невозможно, потому что «это же криптография». Кто-то считает, что всё решается набором трёх команд в Kali. И на практике обе позиции оказываются одинаково далеки от реальности. Wi-Fi — это не магия, не «сеть, работающая на духах», и не «непробиваемая защита». Это обычный протокол уровня 802.11, который живёт в открытом эфире и подчиняется вполне конкретной структуре пакетов, таймингов и встроенных процедур. Понимание этих процедур моментально показывает, что подавляющее большинство атак — не взлом, а закономерное следствие того, как устроено взаимодействие клиент ↔ точка.

Основой WPA2-аутентификации является четырёхшаговый handshake. И именно он формирует ключ, но при этом “раздаёт” достаточно информации, чтобы злоумышленник мог оффлайн проверять догадки о пароле. Все пакеты handshake идут открыто — это EAPOL-кадры, которые может увидеть любое устройство в эфире. Точка отправляет ANonce, клиент — SNonce, обе стороны на основе PMK (который, в свою очередь, зависит от пароля и SSID) вычисляют PTK, и затем сравнивают MIC. В этот момент пароль нигде не передаётся, но комбинации значений ANonce+SNonce+MIC более чем достаточно для оффлайн-подбора.

Если открыть реальный handshake в Wireshark, второй пакет будет выглядеть примерно так:

Protocol: EAPOL
Key Information: Key MIC: 1, Secure: 0, Error: 0
Nonce (SNonce): 5f:6b:b1:9a:31:0c:ae:...
MIC: 53:ff:12:88:9c:7d:91:52:...


Эти данные можно использовать для проверки предполагаемого пароля: сначала PBKDF2 генерирует PMK, затем PMK превращается в PTK, затем создаётся MIC, и если этот MIC совпадает с MIC из пакета — пароль найден. Вся атака происходит оффлайн. Никаких запросов к точке, никаких попыток войти в сеть, никакого шанса «спалиться» в эфире.

Но чтобы подбор стал возможен, handshake нужно сначала получить. С passiv-перехватом проблем хватает: можно слушать эфир часами и так и не дождаться переподключения. Поэтому практически все реальные атаки начинают с деавторизации — искусственного разрыва связи между клиентом и точкой. Деавторизация — это не «аномальный» пакет. Это штатный кадр уровня MAC, который есть в стандарте. И если клиент его получает, он честно отключается, после чего автоматически инициирует повторный handshake.

Схема выглядит примерно так:

Читать далее

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

Машины Тьюринга, огромные числа и бобры: что у них общего?

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

Представьте, что кто-то даёт вам список из пяти чисел: 1, 6, 21, 107 и внезапно — 47 176 870. Догадаетесь, что будет дальше? 

Если вы не угадаете, ничего страшного — практически никто не угадывает. Вот первые пять чисел «усердного бобра» — последовательности, тесно связанной с одним из самых известных и сложных вопросов теоретической информатики. Он звучит так: сколько времени может работать машина Тьюринга с некоторым набором правил, пока не остановится. Определение значений чисел «усердного бобра» — сложнейшая задача, которая уже более 60 лет привлекает поклонников как среди профессиональных математиков, так и среди любителей.

Читать далее

Как я осознал, что не умею кодить

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

Вчера мой скрипт завис. Процессор горел на 100%. Я убил процесс.

Я Senior Developer с 10 годами опыта. Пишу на Python, знаю Java и много модных фреймворков. Но в этот момент я понял: я не умею программировать. Точнее, я умею использовать инструменты. Но я не понимаю природу вычислений.

Эта статья — о том, как одна математическая задача изменила моё понимание разработки.

И почему через пару лет, когда ИИ будет писать весь код за меня, это понимание станет единственным, что меня спасёт.

Возможно, и тебя тоже.

Читать далее

Как мы учим Яндекс Карты предупреждать о манёврах: без использования LLM, но с помощью водителей

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

Что может быть проще, чем сгенерировать голосовую подсказку для навигатора? Считаем угол поворота — озвучиваем манёвр. Именно так наша система и работала годами, пока не обросла таким количеством эвристик и региональных «костылей», что её поддержка стала дороже разработки. Добавление нового правила для одной страны ломало логику в другой, а простая задача «отличить плавный изгиб от поворота» превращалась в детектив.

Меня зовут Дмитрий, и я руковожу ML‑разработкой в команде автонавигации Яндекс Карт. Вместе с моим коллегой Альбертом Юсуповым (@al‑iusupov) в этой статье мы поделимся историей полного переосмысления системы генерации дорожных аннотаций. Расскажем, почему решили отказаться от десятков хитрых условий в коде, а также почему заманчивая идея отдать всё на откуп большим нейросетям (VLM, LLM) провалилась. И, наконец, как пришли к элегантному решению: создали уникальный датасет с помощью сотен водителей‑экспертов и обучили быструю и точную ML‑модель, которая работает по принципу «меньше, но лучше».

Читать далее

Книга: «Разработка алгоритмов. Инженерный подход»

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

Привет, Хаброжители!

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

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

Читать далее

Как свергнуть короля: формула для линейной альтернативы Трансформеру без побочных эффектов

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

Привет! На связи Андрей Аргаткин, руководитель научной группы исследований эффективных архитектур нейронных сетей ИМШ ВШЭ. Я хочу рассказать о нашем текущем исследовании в рамках совместного образовательного проекта с VK. В ходе исследования мы надеемся выделить волшебную формулу из недавней архитектуры DANet (1, 2) и экстраполировать её на широкий спектр других моделей, что позволит им стать такими же крутыми по качеству, но гораздо более быстрыми и эффективными, чем бессменный король мира нейронных сетей — Трансформер. Эта формула должна избавить от побочных эффектов предыдущих архитектур, пытавшихся стать ему заменой. Но сначала поговорим, зачем всё это вообще нужно.

Читать далее

SQL HowTo: немного математики (Advent of Code 2025, Day 1: Secret Entrance)

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

Сегодня стартовал Advent of Code 2025!

Осторожно, спойлеры! Не читайте, пока хотите решить задачу самостоятельно.

В этой челлендж-серии статей, начатой с прошлогоднего эвента, попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2025.

Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать.

Читать далее

Джун наоборот или разоблачение главного мифа вайб-кодинга

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

Вчера (27 ноября) Хабр устроил «Авторский огонёк».

Было очень интересно, и меня задело одно утверждение докладчика. Оно заключалось в том, что ИИ может помочь писать простые куски кода, но не работает со сложными вещами. Таким образом, большие языковые модели уподобляются программисту-джуну.

Решил с утра накатать об этом статью, опираясь на свои знания и опыт в вычислительной математике (в прошлом занимался моделированием, а последние несколько лет преподаю вычислительную математику в МФТИ), оцените, что получилось.

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

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

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

Вклад авторов