Main menu
Дискретная математика

Дискретная математика (105)

Миноры графов и Теорема Робертсона-Сеймура: Глобальный взгляд на топологию

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

Подробнее

Марковские случайные поля (MRF): Вероятностный вывод на графах

Когда мы описываем зависимости в данных, мы часто используем направленные графы — Байесовские сети. Они отлично показывают причинно-следственные связи (Болезнь -> Симптом). Но как описать систему, где зависимости взаимны и симметричны? Например, пиксели на цифровой фотографии: цвет одного пикселя сильно зависит от цвета соседнего, но здесь нет "причины" и "следствия", они влияют друг на друга равноправно. Для моделирования таких структур дискретная математика использует неориентированные Марковские случайные поля (Markov Random Fields, MRF).

Подробнее

Locality-Sensitive Hashing (LSH): Математика поиска похожих объектов

Классические криптографические хеш-функции (MD5, SHA-256) созданы с одной целью: обеспечить строгий лавинный эффект. Изменение всего одной запятой в томе "Войны и мира" приведет к совершенно другому, неузнаваемому хешу. Однако в машинном обучении, биоинформатике и системах рекомендаций нам нужно нечто диаметрально противоположное. Нам нужно, чтобы похожие объекты получали одинаковые хеши. Эту математическую магию обеспечивает Locality-Sensitive Hashing (LSH).

Подробнее

Алгоритм Хопкрофта-Тарьяна: Проверка планарности за линейное время

Проблема проверки графа на планарность (можно ли нарисовать его на плоскости без пересечения ребер) имеет важнейшее значение в проектировании топологии печатных плат и микрочипов (VLSI). Теорема Куратовского дает точный критерий (отсутствие подграфов K5 и K3,3), но наивный поиск этих подструктур занимает катастрофическое время O(V^6). В 1974 году Джон Хопкрофт и Роберт Тарьян совершили алгоритмическую революцию, создав алгоритм проверки, работающий за абсолютно линейное время O(V).

Подробнее

Декартово дерево (Treap): Сбалансированный симбиоз дерева и кучи

Обычные бинарные деревья поиска обладают отличным временем операций O(log N), но только если данные поступают в случайном порядке. Если загрузить в дерево уже отсортированный массив, оно выродится в длинную "макаронину", и время поиска деградирует до O(N). Строгие балансировщики (АВЛ-деревья или Красно-черные деревья) решают проблему, но их реализация требует сотен строк сложного кода с вращениями. Дискретная математика предлагает невероятно элегантную альтернативу — рандомизированное Декартово дерево (Treap).

Подробнее

Алгоритм Диница: Максимальный поток через слоистые сети

При решении задач о поиске максимального потока в транспортных сетях классический алгоритм Форда-Фалкерсона имеет фатальный недостаток: его время работы зависит от величины самого потока. Если пропускные способности ребер иррациональны, алгоритм может вообще никогда не завершиться. Эту проблему блестяще решил советский математик Ефим Диниц в 1970 году, предложив алгоритм, работающий за строго полиномиальное время, не зависящее от значений пропускных способностей.

Подробнее

Совершенные графы и Сильная теорема: Элита дискретной математики

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

Подробнее

Доказательство с нулевым разглашением (ZKP): Парадоксы криптографии

Как математически доказать серверу, что вы знаете пароль от своего аккаунта, не пересылая по сети сам пароль (и даже его хеш)? Как доказать налоговой, что ваша зарплата превышает нужный порог, не раскрывая точную сумму? В дискретной математике и криптографии этот кажущийся неразрешимым парадокс элегантно решается с помощью протоколов Доказательства с нулевым разглашением (Zero-Knowledge Proof, ZKP), созданных в 1985 году.

Подробнее

Алгоритм Джонсона: Кратчайшие пути между всеми парами вершин

Задача поиска кратчайших путей между всеми парами вершин графа (All-Pairs Shortest Path, APSP) жизненно необходима для картографических сервисов и маршрутизации. Классический алгоритм Флойда-Уоршелла решает ее блестяще, но требует времени O(V^3). Для плотных графов это нормально, но для огромных разреженных графов (где ребер мало, как в сети реальных дорог) O(V^3) — это катастрофически долго. Алгоритм Джонсона (1977 год) предложил изящный математический трюк, снижающий сложность до O(V^2 log V + VE).

Подробнее

Дерево палиндромов (Eertree): Новое слово в алгоритмах на строках

Задачи поиска и анализа палиндромов (строк, читающихся одинаково в обоих направлениях) — классика спортивного программирования и биоинформатики. Алгоритм Манакера отлично находит самую длинную симметричную подстроку, но когда требуется найти все уникальные палиндромы, подсчитать их частоты или вычислить факторизацию строки на палиндромы, старые методы буксуют. Революция произошла в 2014 году, когда Михаил Рубинчик представил миру новую структуру данных — Дерево палиндромов (Eertree).

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

Соц. сети