Main menu

Алгоритм Эдмондса (Блоссом): Максимальное паросочетание в произвольных графах

Найти идеальные пары в двудольном графе (например, распределить таксистов по заказам или рабочих по станкам) довольно просто — с этим блестяще справляется алгоритм Куна, использующий поиск увеличивающих цепей. Но что делать, если граф не разделен на две независимые доли? Представьте задачу: разбить 100 студентов на пары для совместного проекта, где ребро означает, что два студента согласны работать вместе. Это задача поиска максимального паросочетания в произвольном графе. Обычный алгоритм Куна здесь зациклится и сломается. Решение в 1965 году нашел Джек Эдмондс.

Подробнее

Алгоритм Манакера: Поиск самого длинного палиндрома за линейное время

Палиндром — это строка, которая читается одинаково слева направо и справа налево ("А РОЗА УПАЛА НА ЛАПУ АЗОРА"). Задача поиска самой длинной палиндромной подстроки внутри гигантского текста часто встречается в биоинформатике (поиск симметричных последовательностей в молекулах ДНК) и криптоанализе. Простой перебор всех возможных центров и расширение от них дает сложность O(N^2). В 1975 году Гленн Манакер (Glenn Manacher) создал невероятно элегантный алгоритм, решающий эту задачу за строго линейное время O(N).

Подробнее

Лемма о разрастании (Pumping Lemma): Математика пределов регулярных выражений

Регулярные выражения (Regex) — невероятно мощный инструмент для парсинга текста. Разработчики используют их для проверки email-адресов, номеров кредитных карт и телефонных кодов. Однако у них есть фундаментальный математический изъян: конечные автоматы, стоящие за регулярными выражениями, "не умеют считать". Как строго доказать, что какую-то строку невозможно распарсить с помощью Regex? Для этого в дискретной математике создана Лемма о разрастании (Pumping Lemma).

Подробнее

Классы сложности вычислений: За пределами P и NP

Когда речь заходит о теории сложности, большинство ограничивается обсуждением проблемы P против NP. Однако вселенная вычислительных задач гораздо шире и многообразнее. В дискретной математике и теории алгоритмов существует сложная иерархия классов, которая помогает понять пределы возможностей не только современных процессоров, но и будущих квантовых компьютеров. Что происходит, когда задача требует не просто бесконечного времени, но и бесконечной памяти?

Подробнее

Теорема Пика: Вычисление площади многоугольников на дискретной решетке

Одной из самых красивых и визуально понятных теорем дискретной геометрии является Теорема Пика. Она описывает изящный способ нахождения точной площади сложных многоугольников, вершины которых лежат на узлах целочисленной решетки (например, на пересечениях линий обычной тетради в клетку). Опубликованная Георгом Александром Пиком в 1899 году, эта формула стала мостом между топологией, теорией графов и компьютерной растровой графикой.

Подробнее

Алгебра кватернионов: От абстрактной математики к 3D-графике

Когда разработчики создают 3D-игры (на движках Unreal Engine или Unity), программируют роботов или рассчитывают орбиты космических спутников, они неизбежно сталкиваются с проблемой вращения объектов в трехмерном пространстве. Привычный метод через углы Эйлера (вращение по осям X, Y, Z — тангаж, рыскание и крен) страдает фатальным математическим изъяном: эффектом «шарнирного замка» (Gimbal Lock). Для безопасного и плавного вращения ИТ-индустрия обратилась к дискретной алгебре и гиперкомплексным числам — кватернионами.

Подробнее

Скрытые марковские модели (HMM): Математика распознавания речи и текста

Обычные цепи Маркова отлично работают, если мы можем точно наблюдать состояние системы (например, какая сегодня погода или на какой веб-странице находится пользователь). Но что делать, если реальные состояния системы от нас скрыты, а мы можем наблюдать лишь косвенные, зашумленные сигналы (эмиссии), порождаемые этими состояниями? Для решения этой проблемы в 1960-х годах были разработаны Скрытые марковские модели (Hidden Markov Models, HMM) — один из главных столпов современного искусственного интеллекта.

Подробнее

Задача о рюкзаке: Классика дискретной оптимизации

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

Подробнее

Деревья решений и Случайный лес: Дискретная математика в машинном обучении

Когда мы говорим об искусственном интеллекте, многие сразу представляют себе сложные нейронные сети, базирующиеся на непрерывной математике, производных и градиентных спусках. Однако огромный пласт машинного обучения (Machine Learning) прочно стоит на фундаменте дискретной математики и теории графов. Самым ярким примером классификаторов, интерпретируемых человеком, являются Деревья решений (Decision Trees) и их композиции, такие как алгоритм Случайного леса (Random Forest).

Подробнее

Коды Рида-Соломона: Полиномиальная алгебра против искажения данных

Если вы поцарапаете компакт-диск (CD/DVD), покроете QR-код пятнами грязи на 30% или отправите фотографию с космического зонда Вояджер-2 сквозь миллионы километров солнечной радиации, данные будут прочитаны абсолютно корректно и без единой ошибки. Эту цифровую магию восстановления безвозвратно утраченных байтов обеспечивает математический аппарат, разработанный Ирвингом Ридом и Густавом Соломоном в 1960 году — мощнейшие недвоичные циклические коды.

Подробнее
Subscribe to this RSS feed

Соц. сети