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

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

Введение

В одной из своих предыдущих работ Искусство математического моделирования кратко упомянул про “типовые модели”. Здесь мы рассмотрим более широкий список таких моделей — с их постановками, примерами применения и текущими тенденциями в соответствующих задачах.

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

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

Речь в статье пойдёт о наборе таких классических паттернов в математической оптимизации (с уклоном на линейные постановки).

Задача о рюкзаке (The Knapsack Problem)

Задача о рюкзаке — это фундаментальная задача комбинаторной оптимизации, в которой необходимо выбрать подмножество предметов с максимальной суммарной ценностью, не превышая ограничение по суммарному весу. В наиболее распространенной форме 0/1 рюкзака каждый предмет либо выбирается целиком, либо нет. Стандартная формулировка в виде задачи целочисленного линейного программирования (ЦЛП) выглядит следующим образом:

\begin{aligned}& \text{max} && \sum_{i=1}^{n} c_i x_i \\& \text{при условиях} && \sum_{i=1}^{n} w_i x_i \leq W, \\& && x_i \in \{0, 1\}, \quad i = 1, \ldots, n.\end{aligned}

Обозначения:

  • n — общее количество предметов;

  • c_i — ценность (стоимость) i-го предмета;

  • w_i — вес i-го предмета;

  • W — максимальная грузоподъёмность рюкзака (ограничение по весу);

  • x_i — бинарная переменная выбора предмета, 1 если i-ый предмет выбран, 0 в противном случае.

Пояснение к структуре:

  1. Целевая функция: мы хотим максимизировать суммарную ценность выбранных предметов.

  2. Ограничение по весу: суммарный вес выбранных предметов не должен превышать грузоподъёмность рюкзака W.

  3. Ограничения на переменные: каждый предмет можно взять только целиком или не брать вовсе, что и определяет тип задачи как 0/1 рюкзак.

Рюкзак инвестиций
Рюкзак инвестиций

Примеры применения

  • Оптимизация инвестиционного портфеля. В финансах модель рюкзака применяется для формирования портфеля ценных бумаг. Каждый актив характеризуется ожидаемой доходностью (ценность) и риск-метрикой, например, значением Value at Risk (вес). Задача инвестора — максимизировать доходность при ограничении на совокупный риск портфеля (аналог вместимости рюкзака). Современные алгоритмы позволяют решать многомерные и стохастические варианты этой задачи для крупных фондов.

  • Динамическое выделение ресурсов в облачных вычислениях. В дата-центрах задача возникает при распределении ограниченных вычислительных ресурсов (CPU, память, пропускная способность) между конкурирующими задачами или виртуальными машинами. Каждая задача имеет «ценность» (приоритет, SLA) и «вес» (потребление ресурсов). Оптимальное распределение максимизирует общую производительность или прибыль провайдера услуг.

Современные тенденции

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

Задача о назначениях (The Assignment Problem)

Это задача поиска паросочетания минимальной (или максимальной) суммарной стоимости между двумя равномощными множествами. Например, между работниками и заданиями, где каждый элемент одного множества назначается ровно одному элементу другого (пример постановки разбирал здесь). Формулировка ЦЛП:

\begin{aligned}& \text{min} && \sum_{i=1}^{n} \sum_{j=1}^{n} c_{ij} x_{ij} \\& \text{при условиях} && \sum_{j=1}^{n} x_{ij} = 1, \quad i = 1, \ldots, n, \\& && \sum_{i=1}^{n} x_{ij} = 1, \quad j = 1, \ldots, n, \\& && x_{ij} \in \{0, 1\}, \quad i, j = 1, \ldots, n.\end{aligned}

Обозначения:

  • n — количество элементов в каждом из двух равномощных множеств;

  • c_{ij} — стоимость (или выгода) назначения i-го элемента первого множества (i-го работника) на j-й элемент второго множества (j-е задание).

  • x_{ij} — бинарная переменная, x_{ij} = 1, если i-й элемент первого множества назначен на j-й элемент второго множества; в противном случае, такое назначение не производится;

Пояснение к структуре:

  1. Целевая функция: суммарная стоимость всех назначений, которую требуется минимизировать.

  2. Ограничение по строкам: гарантирует, что каждый элемент первого множества назначен ровно на один элемент второго множества.

  3. Ограничение по столбцам: гарантирует, что каждый элемент второго множества выполняется ровно одним элементом первого множества.

Классический алгоритм решения такой задачи — Венгерский метод.

Распределение вычислительных задач в распределенных системах.
Распределение вычислительных задач в распределенных системах.

Примеры применения

  • Распределение вычислительных задач в распределенных системах. В гетерогенных вычислительных кластерах (например, для обучения больших моделей ИИ) необходимо назначить тысячи подзадач на серверы с разной производительностью CPU/GPU, памятью и топологией сети. Оптимальное назначение минимизирует общее время выполнения (makespan) и межсерверный трафик.

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

Современные тенденции

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

Раскраска графов (The Graph Coloring Problem)

Задача состоит в присвоении цветов вершинам графа таким образом, чтобы любые две смежные вершины имели разные цвета, а общее количество использованных цветов было минимальным (хроматическое число). Одна из возможных формулировок ЦЛП:

\begin{aligned}& \text{min} && \sum_{c=1}^k y_c \\& \text{при условиях} && \sum_{c=1}^{k} x_{vc} = 1, && \forall v \in V, \\& && x_{uc} + x_{vc} \leq 1, && \forall (uv) \in E, \ \forall c \in \{1, \ldots, k\}, \\& && x_{uc} \leq y_c, && \forall u \in V, \ \forall c \in \{1, \ldots, k\}, \\& && x_{vc} \in \{0, 1\}, && \forall v \in V, \ \forall c \in \{1, \ldots, k\}.\end{aligned}

Обозначения:

  • G = (V, E) — неориентированный граф, где V это множество вершин (|V| = n), а E — множество рёбер;

  • k — искомое количество цветов (хроматическое число графа);

  • c — индекс цвета, c \in \{1, \ldots, k\};

  • x_{vc} — бинарная переменная, x_{vc} = 1, если вершине v присвоен цвет c; в противном случае x_{vc} = 0;

  • y_c - бинарная переменная, y_c = 1, если цвет c используется; в противном случае y_c = 0;

Пояснение к структуре:

  1. Целевая функция: найти минимальное количество цветов k, достаточное для корректной раскраски графа.

  2. Ограничение на присвоение цвета: гарантирует, что каждой вершине присвоен ровно один цвет.

  3. Ограничение на смежность: обеспечивает правильность раскраски. Никакие две смежные вершины не могут иметь одинаковый цвет.

  4. Связь между переменными x_{uc} и y_{c}: цвет c считается использованным, если хотя бы одной вершине присвоен этот цвет.

Существуют и другие математические постановки этой задачи. Например, можно зафиксировать k и проверить, существует ли раскраска с таким количеством цветов (задача разрешимости), а затем подбирать k бинарным поиском. Приведённая выше постановка напрямую ищет минимальное k.

Составление расписания телекоммуникационных каналов.
Составление расписания телекоммуникационных каналов.

Примеры применения

  • Составление расписания телекоммуникационных каналов. В беспроводных сетях (Wi-Fi, сотовые) необходимо назначить частотные каналы базовым станциям так, чтобы станции, работающие на соседних каналах, не создавали взаимных помех. Граф строится по зонам покрытия станций, а цвета соответствуют доступным частотам. Задача усложняется ограниченным спектром и различными требованиями к пропускной способности.

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

Современные тенденции

Основной фокус на создании точных и эвристических алгоритмов для работы с очень большими графами (социальные сети, веб-граф). Получают развитие гибридные методы, комбинирующие эвристики, машинное обучение для предсказания перспективных ветвей поиска (machine learning guided search) и техники сокращения графа (reduction techniques).

Задача коммивояжера (The Traveling Salesman Problem, TSP)

TSP заключается в нахождении кратчайшего гамильтонова цикла — маршрута, проходящего через все заданные города ровно по одному разу с возвратом в начальный пункт (вариацию задачи разбирал здесь). Существует несколько формулировок ЦЛП, одна из распространенных использует переменные для ребер и ограничения на исключение подциклов (subtour elimination constraints). Для множества городов V и расстояний c_{ij}:

\begin{aligned}& \text{min} && \sum_{i \in V} \sum_{\substack{j \in V \\ j \neq i}} c_{ij} x_{ij} \\& \text{при условиях} && \sum_{\substack{j \in V \\ j \neq i}} x_{ij} = 1, && \forall i \in V, \\& && \sum_{\substack{i \in V \\ i \neq j}} x_{ij} = 1, && \forall j \in V, \\& && \sum_{i \in S} \sum_{\substack{j \in S \\ j \neq i}} x_{ij} \leq |S| - 1, && \forall S \subset V, \ 2 \leq |S| \leq |V| - 2, \\& && x_{ij} \in \{0, 1\}, && \forall i, j \in V, \ i \neq j.\end{aligned}

Обозначения:

  • V — множество городов (вершин графа), |V| = n;

  • c_{ij} — расстояние (или стоимость проезда) от города i до города j (предполагается, что c_{ii} = 0 и c_{ij} \geq 0);

  • x_{ij} — бинарная переменная, x_{ij} = 1, если маршрут проходит из города i непосредственно в город j; в противном случае x_{ij} = 0;

  • S — произвольное подмножество городов (подмножество V);

  • |S| — мощность (количество элементов) множества S.

Пояснение к структуре:

  1. Целевая функция: минимизируется общая длина (стоимость) маршрута, т.е. сумма расстояний по всем рёбрам, включённых в маршрут.

  2. Ограничения на исходящие рёбра: из каждого города i выходит ровно одно ребро. Коммивояжёр должен уехать из каждого города ровно один раз.

  3. Ограничения на входящие рёбра: в каждый город j входит ровно одно ребро. Коммивояжёр должен приехать в каждый город ровно один раз.

  4. Ограничения на исключение подциклов: это ключевое ограничение, предотвращающее появление отдельных замкнутых циклов (подциклов), не охватывающих все города. Для любого подмножества городов S (не пустого, не всего множества и не одноэлементного) количество рёбер маршрута, соединяющих города внутри S, не должно превышать |S| - 1. Это гарантирует, что внутри S не может образоваться отдельный цикл — все города должны быть частью одного большого цикла. Число таких ограничений экспоненциально растёт с n, что делает задачу сложной для прямого решения методами линейного программирования.

Комментарии:

  • Из‑за огромного числа ограничений на подциклы (их 2^n - 2n) на практике их добавляют итеративно: сначала решают задачу без них, затем проверяют решение на наличие подциклов и добавляют соответствующие ограничения для найденных подциклов, повторяя процесс до получения одного цикла. Реализацию разбирал в статье.

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

Маршрут движения ровера-доставщика по заказам
Маршрут движения ровера-доставщика по заказам

Примеры применения

  • Логистика «последней мили» и маршрутизация дронов. Помимо классического планирования маршрутов для фур, TSP и её обобщения (Vehicle Routing Problem, VRP) критически важны для оптимизации доставки дронами или робо-курьерами в условиях плотной городской застройки. Учитываются ограничения по весу, времени полета батареи, зоны с ограниченным доступом.

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

Современные тенденции

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

Задача о покрытии множества (The Set Covering Problem)

Дано универсальное множество U и семейство его подмножеств S, каждое с определенной стоимостью. Требуется выбрать подсемейство минимальной суммарной стоимости, объединение которого покрывает все элементы U. Формулировка ЦЛП:

\begin{aligned}& \text{min} && \sum_{j=1}^{m} c_j x_j \\& \text{при условиях} && \sum_{j: \, u_i \in S_j} x_j \geq 1, && \forall u_i \in U, \\& && x_j \in \{0, 1\}, && j = 1, \ldots, m.\end{aligned}

Расшифровка обозначений:

  • U = \{u_1, u_2, \ldots, u_n\} — универсальное множество из n элементов;

  • S = \{S_1, S_2, \ldots, S_m\} — семейство подмножеств множества U, где каждое S_j \subseteq U;

  • c_j — стоимость (вес) подмножества S_j;

  • x_j — бинарная переменная, x_j = 1, если подмножество S_j включено в покрытие; в противном случае x_j = 0.

Пояснение к структуре:

  1. Целевая функция: найти подсемейство подмножеств минимальной суммарной стоимости, объединение которых покрывает все элементы U.

  2. Ограничения покрытия: гарантируют, что каждый элемент u_i универсального множества U покрыт хотя бы одним выбранным подмножеством.

Комментарии:

  • При решении расслабленной задачи (когда x_j \in [0, 1]) оптимальное значение целевой функции даёт нижнюю оценку для целочисленной задачи.

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

  • Задача о покрытии тесно связана с задачей о точном покрытии (где каждый элемент должен покрываться ровно один раз, рассмотрим далее) и задачей о максимальном покрытии (где нужно покрыть максимальное число элементов фиксированным числом подмножеств).

Покрытие города пожарными частями
Покрытие города пожарными частями

Примеры применения

  • Размещение инфраструктуры экстренного реагирования. Определение минимального количества и мест размещения пожарных депо, станций скорой помощи или пунктов выдачи гуманитарной помощи для обеспечения покрытия всех районов в пределах заданного времени доезда. Модели часто дополняются вероятностными ограничениями (Maximal Covering Location Problem).

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

Современные тенденции

Разрабатываются эффективные эвристики и приближенные алгоритмы для крупномасштабных задач, таких как покрытие в сетях 5G/6G (размещение базовых станций) и задачи лотерейного покрытия (lotto set covering). Растет интерес к robust и stochastic set covering, учитывающим неопределенность в параметрах задачи, например, в спросе на услуги.

Задача разбиения множества (The Set Partitioning Problem)

Близкая к задаче о покрытии, но с более строгим условием: каждый элемент универсального множества должен быть покрыт ровно одним выбранным подмножеством. Это ключевое отличие делает модель идеальной для задач, где ресурсы нельзя делить или дублировать. Пример реальной задачи разбирал в статье Разделяй и запускай: делим тестовый стенд между департаментами. Формулировка ЦЛП:

\begin{aligned}& \text{min} && \sum_{j=1}^{m} c_j x_j \\& \text{при условиях} && \sum_{j: \, u_i \in S_j} x_j = 1, && \forall u_i \in U, \\& && x_j \in \{0, 1\}, && j = 1, \ldots, m.\end{aligned}

Обозначения:

  • U = \{u_1, u_2, \ldots, u_n\} — универсальное множество из n элементов;

  • S = \{S_1, S_2, \ldots, S_m\} — семейство подмножеств множества U, где каждое S_j \subseteq U;

  • c_j — стоимость (вес) подмножества S_j;

  • x_j — бинарная переменная, x_j = 1, если подмножество S_j включено в разбиение; в противном случае x_j = 0;

Пояснение к структуре:

  1. Целевая функция: найти подсемейство подмножеств минимальной суммарной стоимости, объединение которых образует разбиение множества U.

  2. Ограничения разбиения: гарантируют, что каждый элемент u_i универсального множества U принадлежит ровно одному выбранному подмножеству.

Комментарии:

  • В отличие от задачи о покрытии, задача разбиения может не иметь допустимого решения. Например, если в семействе S нет подмножеств, содержащих какой‑то элемент u_i, или если все подмножества, содержащие u_i, пересекаются с другими обязательными подмножествами так, что условие «ровно один раз» невозможно выполнить.

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

Планирование экипажей в авиации
Планирование экипажей в авиации

Примеры применения

  • Планирование экипажей в авиации (Crew Pairing). Это одно из самых известных и экономически значимых применений. Множество рейсов (элементы U) необходимо разбить на «вахты» (pairings) — последовательности рейсов, выполняемые одним экипажем в рамках рабочей смены с соблюдением норм отдыха. Каждая возможная вахта это подмножество S_j. Задача — выбрать набор вахт (подмножеств) минимальной стоимости, покрывающий все рейсы ровно по одному разу.

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

Современные тенденции

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

Транспортная задача (The Transportation Problem)

Частный и исторически один из первых случаев линейного программирования. Имеется m поставщиков с запасами a_i и n потребителей со спросом b_j. Известна стоимость c_{ij} перевозки единицы груза от i к j. Необходимо найти план перевозок минимальной суммарной стоимости, удовлетворяющий спрос и предложение. Формулировка ЛП:

\begin{aligned}& \text{min} && \sum_{i=1}^{m} \sum_{j=1}^{n} c_{ij} x_{ij} \\& \text{при условиях} && \sum_{j=1}^{n} x_{ij} = a_i, && i = 1, \ldots, m, \\& && \sum_{i=1}^{m} x_{ij} = b_j, && j = 1, \ldots, n, \\& && x_{ij} \geq 0, && i = 1, \ldots, m; \ j = 1, \ldots, n.\end{aligned}

Обозначения:

  • m — количество поставщиков;

  • n — количество потребителей;

  • a_i — запас (предложение) i-го поставщика, i = 1, \ldots, m;

  • b_j — спрос j-го потребителя, j = 1, \ldots, n;

  • c_{ij} — стоимость перевозки одной единицы груза от i-го поставщика к j-му потребителю;

  • x_{ij} — вещественная переменная решения, обозначающая объём перевозок от i-го поставщика к j-му потребителю;

Пояснение к структуре:

  1. Целевая функция: найти план перевозок x_{ij}, минимизирующий общие транспортные расходы.

  2. Ограничения по предложению: гарантируют, что весь запас каждого поставщика будет вывезен.

  3. Ограничения по спросу: обеспечивают полное удовлетворение спроса каждого потребителя.

Комментарии:

  • Условие баланса. Для существования допустимого решения необходимо выполнение условия баланса:

\sum_{i=1}^{m} a_i = \sum_{j=1}^{n} b_j.

Если суммарное предложение не равно суммарному спросу, задача называется несбалансированной. Её можно привести к сбалансированной путём введения фиктивного поставщика или потребителя с нулевыми стоимостями перевозок.

  • Несмотря на то что переменные x_{ij} могут быть дробными, транспортная задача всегда имеет оптимальное решение с целочисленными значениями, если все a_i и b_j целые. Это важное свойство упрощает практическое применение.

  • Для решения транспортной задачи разработаны специализированные алгоритмы, более эффективные, чем общий симплекс‑метод:

    • метод северо‑западного угла (для построения начального опорного плана);

    • метод потенциалов (для поиска оптимального решения);

    • метод наименьшей стоимости (для улучшения начального плана).

  • Модель применима не только к физическим перевозкам, но и к задачам распределения ресурсов, назначения мощностей, планирования производства и т.д.

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

Пример энергосистемы для балансирования нагрузки
Пример энергосистемы для балансирования нагрузки

Примеры применения

  • Балансировка нагрузки в энергосистемах. Задача применяется для оптимального распределения потоков электроэнергии между генерирующими станциями и узлами потребления с минимальными потерями в сети, учитывая переменную стоимость производства на разных типах станций (ТЭЦ, ГЭС, ВИЭ).

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

Современные тенденции

Интеграция с системами реального времени на основе IoT-датчиков позволяет динамически обновлять параметры спроса и предложения. Развиваются устойчивые (sustainable) модели, включающие в целевую функцию минимизацию углеродного следа от перевозок.

Задача о максимальной клике (Maximum Clique Problem)

Клика — это подмножество вершин графа, все пары которых соединены ребрами. Задача заключается в нахождении клики максимального размера в данном графе. Формулировка ЦЛП на максимум:

\begin{aligned}& \text{max} && \sum_{i \in V} x_i \\& \text{при условиях} && x_i + x_j \leq 1, && \forall (i,j) \notin E, \\& && x_i \in \{0, 1\}, && \forall i \in V.\end{aligned}

Обозначения:

  • G = (V, E) — неориентированный граф, где V это множество вершин (|V| = n), а E — множество рёбер;

  • x_i — бинарная переменная, x_i = 1, если вершина i включена в искомую клику; в противном случае x_i = 0;

Пояснение к структуре:

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

  2. Ограничения на несмежность: гарантируют, что в клику не попадут две вершины, не соединённые ребром.

Комментарии:

  • Иногда задачу формулируют через дополнение графа: поиск максимальной клики в графе G эквивалентен поиску максимального независимого множества в дополнении графа \overline{G}.

  • Хроматическое число. Размер максимальной клики (\omega(G)) является нижней оценкой хроматического числа графа (\chi(G)): \omega(G) \leq \chi(G).

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

Примеры применения

  • Выявление сообществ и анализ влияния в социальных сетях. Максимальные клики могут соответствовать тесным, высокоинтерактивным группам пользователей (например, круг доверия). Их выявление используется для таргетированного маркетинга, обнаружения ботов или анализа распространения информации.

  • Биоинформатика и анализ биологических сетей. В сетях белково-белкового взаимодействия (PPI) или генетических сетях клики часто соответствуют функциональным модулям или комплексам белков, совместно участвующим в определенном клеточном процессе. Их обнаружение помогает в понимании биологических механизмов.

Современные тенденции

Несмотря на вычислительную сложность, разрабатываются всё более эффективные точные алгоритмы (branch-and-bound) и эвристики для работы с большими реальными графами. Активно используются методы редукции графа (kernelization) и параллельные вычисления.

Заключение

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

Сейчас ИИ‑ассистенты позволяют быстро получить обзор применяемых типовых моделей для решения той или иной задачи. Это углубляет экспертизу и помогает определить стратегию решения более эффективно. Однако комбинирование моделей в ансамбли для решения задач по‑прежнему остаётся в руках специалиста.

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

Комментарии (4)


  1. mbureau
    13.05.2026 07:35

    Обучение с подкреплением для Reinforcement Learning. Очень нравится перевод!

    Отличный обзор, совершенно согласна с заключением (особенно пункт 1), поскольку сама несколько лет занималась оптимизацией.


    1. Lozkins Автор
      13.05.2026 07:35

      Спасибо! Рад, что обзор нашли полезным, а заключение  оказалось созвучным вашему опыту.


  1. Emelian
    13.05.2026 07:35

    Что есть база в математической оптимизации и моделировании бизнес процессов?

    Понятно, раз есть «бизнес процессы», то уравнений состояния не будет. Конкретных примеров, как обычно, тоже. А формулы? Что формулы? Откройте любой учебник по матфизике или математическому моделированию, то там вы найдете не только формулы, но и уравнения!

    У меня, скажем, была преддипломная практика в «Керосинке», то бишь, Институте «Нефти и газа», АН СССР. Там я готовил свой дипломный проект на тему: «Оптимальное извлечение нефти из безнапорных скважин». Построил математическую модель и вывел критерии оптимизации. Да, времени было мало, персональные компьютеры только-только появились и до компьютерных числовых расчетов дело не дошло. Тем не менее, успел выступить на семинаре АН СССР, после которого мне предложили поступать туда в аспирантуру. Отказался, потому, что это был 1990-й год, «Перестройка» была в самом разгаре («золотые годы» которой длились всего пару месяцев). Страна уже была надломлена, госэкзамены по «Научному Коммунизму» отменили и обязательное распределение, кстати, тоже. Поэтому, надо было ехать домой, тем более, что работу я себе там нашел суперклассную и если бы не развалили Советский Союз, то карьера бы у меня была «суперсверхсногсшибательная»! Ибо сам шеф (академик!) крутой научно-производственной фирмы, куда я устроился, сразу предложил мне пойти к нему в аспиранты.

    Однако, не судьба! Страну ухайдокали, наука сразу стала никому не нужна, поэтому, пришлось переквалифицироваться в «управдома», то бишь, программиста…


    1. Lozkins Автор
      13.05.2026 07:35

      Благодарю за комментарий и за историю, впечатляет!

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

      Мат.физика все же точный аппарат и относится по большей части к физике. Дискретная математика нашла применение в «бытовых процессах» и помогает справляться в субъективных условиях.