Обновить
270.19

Алгоритмы *

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

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

Матрицы и векторы: решение систем линейных алгебраических уравнений

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

В статье представлена реализация методов решения системы линейных алгебраических уравнений (СЛАУ) четырьмя методами: методом Гаусса, LU декомпозиции, компактной схемой исключения, QR декомпозиции. Для реализации был использован шаблон классов матрицы и вектора. Приводятся результаты решения СЛАУ, погрешность решения и время решения СЛАУ. Для сравнения результаты представлены в таблице.

Читать далее

Новости

Как я написал скрипт для 24-часового прогноза рынка: корреляции, волатильность и вероятностная модель

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

Финансовые рынки редко движутся изолированно. Криптовалюты реагируют на фондовые индексы, золото реагирует на макроэкономику, а внутри крипторынка движение биткоина задаёт направление для альткоинов.

Гипотеза проекта:

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

Читать далее

Охота за недостающим типом данных: история о графах

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

(Ориентированный) граф — это набор узлов, соединённых стрелками (рёбрами). В узлах и рёбрах могут содержаться данные. Вот примеры графов:

Читать далее

Полностью автоматизируем трейдинг по аукционной теории — от базы до python робота

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

В классическом алготрейдинге рынок часто моделируется как временной ряд: индикаторы, скользящие средние, осцилляторы. Аукционная теория рассматривает рынок иначе — как процесс распределения объёма по ценовым уровням, где цена ищет баланс между спросом и предложением.

Ключевым элементом такого подхода является Volume Profile, а именно Point of Control (POC) — уровень цены, на котором за выбранный период был проторгован максимальный объём. В терминах аукционной теории POC соответствует зоне максимального согласия участников рынка.

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

SQL HowTo: математика вдоль и поперек (Advent of Code 2025, Day 6: Trash Compactor)

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

Оптимизация загрузки CPU в C# (и немного в Unity): ключевые подходы и стратегии на примерах

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

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

Читать далее

Правда ли, что ICPC работает как социальный лифт в IT-карьере

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

Привет, Хабр! Я давно отучился в школе и институте, но хорошо помню, как мне говорили: «Учи! Тебе это пригодится! Без этого никуда! Это очень важно…» и почти никогда не объясняли, зачем учить, когда это пригодится и для чего.

Поэтому, когда мне поставили задачу написать про полуфинал Международной студенческой олимпиады по программированию (ICPC) для региона «Северная Евразия», я решил не пересказывать данные из Википедии. Вы и сами можете их прочитать, а кто-то даже рассказать о собственном опыте участия. Я спросил коллег внутри X5 Tech, как навыки, полученные на соревнованиях по программированию помогли им в реальной жизни: на собеседованиях, в продакшене, в решении сложных системных задач или даже в бытовых ситуациях. Про то, что спортивное программирование развивает алгоритмическое мышление, стрессоустойчивость и умение работать в команде в ограниченное время, пишут много, но теория не всегда переносится на практику.

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

Читать далее

Итерационный бинарный критерий делимости: Деление без деления. Алгоритм для Big Integers и FPGA

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

Итерационный бинарный критерий делимости: Деление без деления. Алгоритм для Big Integers и FPGA.

Деление — одна из самых ресурсоемких операций для Big Integers в криптографии и для аппаратных ускорителей (FPGA/ASIC). Что, если бы можно было проверять делимость, полностью исключив операцию деления и взятия остатка?

Представляем новый детерминированный алгоритм, который заменяет дорогой N mod d на O(logN) итераций, состоящих исключительно из сложения (X+d) и побитового сдвига.

Разбираем, как этот подход, обладающий линейно-логарифмической сложностью O(n⋅logN), обеспечивает радикальное снижение константного фактора и становится идеальным решением для многословной арифметики и низкоуровневой оптимизации железа. Экспертный уровень.

Читать далее

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

Измерение сложности модели — Часть 3: Представляем Complexity Analyzer

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

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

Читать далее

Два режима SPEC: разгоняемся на Peak, притормаживаем на Base

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

Привет, Хабр!

Все мы любим быстрые программы и высокие показатели в бенчмарках. Когда гоняешь тесты производительности, так и тянет включить все оптимизации компилятора, чтобы выжать максимум. Но если вы имели дело с пакетами тестов SPEC (например, SPEC CPU), то, вероятно, замечали, результаты там делятся на две категории Base и Peak.

В тестах SPEC CPU есть концепция базового прогона (base run) и пикового (peak run). Это строго определенные режимы с разными правилами оптимизации. Base про честность и сопоставимость, Peak про максимальную производительность любой ценой (ну, почти любой).

Смотреть детали

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

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

Сегодня мы делимся техрепортом, в котором разобран полный цикл создания нового семейства моделей 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.6K

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

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

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

Измерение сложности моделей — Часть 2: Применяем теорию на практике

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

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

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

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