Всё течёт, всё опровергается: гипотеза Диница — Гарга — Гёманса
24 июля 2026 г.

Введение
В прошлый раз, рассказывая про контрпример к проблеме якобиана, я закончил пост вопросом: “Что дальше, коллеги?”
Ответ занял два дня.
22 июля Дмитрий Рыбин написал в X, что GPT 5.6 Pro опровергла гипотезу Диница — Гарга — Гёманса (Dinitz–Garg–Goemans conjecture) из теории потоков в графах. Гипотеза простояла с конца 1990-х; в статье 2025 года Swamy et al. всё ещё называли её “a famous conjecture” и писали, что даже существенно ослабленный вариант был бы прорывом.
Как и в случае проблемы якобиана, здесь пока нет ни журнальной статьи, ни формального рецензирования, но они и не нужны, потому что проверить контрпример очень легко. У нас есть пост Рыбина, выложенный им полный диалог с моделью и четырёхстраничный арифметический сертификат, но в графе всего семь вершин, девять дуг и восемь возможных неделимых потоков. Мы с GPT независимо проверили все восемь программой, которая перебирает буквально все пути в графе, и никаких ошибок здесь нет.
Более того, контрпример оказался не просто верным, а очень интересно устроенным. Внутри него прячется известный в комбинаторной оптимизации объект — треугольник попарных конфликтов.
Давайте разберёмся, что такое делимые и неделимые потоки и в чём состояла гипотеза. Потом обсудим, почему она казалась естественной и почему её было так трудно доказать. Затем проверим контрпример, вытащим из него структурную идею и попробуем его уменьшить. А в конце, разумеется, посмотрим на промпты. Спойлер: там буквально написано “you should do a breakthrough”.
Потоки, которые можно и нельзя делить
Начнём с обычной транспортной сети. Есть ориентированный граф : вершины — перекрёстки или маршрутизаторы, дуги — дороги или каналы связи. У нас есть один общий источник
, например склад, и несколько терминалов
, куда надо доставить грузы объёмов
.
У каждой дуги есть пропускная способность
: больше этого количества груза одновременно по ней отправлять нельзя. Может быть и неотрицательная цена
за перевозку одной единицы груза.
В более простой постановке задачи грузы можно делить, то есть, например, заказ объёма 10 разрешается разрезать на части: пять единиц поехали по одному пути, три по другому, две по третьему. Такой поток называется делимым или дробным (splittable, fractional flow). В каждой внутренней вершине выполняется закон сохранения: сколько потока вошло, столько и вышло; источник выпускает сумму всех заказов, а терминал поглощает ровно
.
С дробными потоками работать легко и приятно, их можно искать линейным программированием, а для классического максимального потока есть ещё более быстрые специализированные алгоритмы.
Но во многих задачах груз делить нельзя. Контейнер должен ехать целиком, сетевое соединение должно выбрать один маршрут, задачу на вычислительном кластере нельзя на 37% выполнить на одном сервере и на 63% на другом. Тогда для каждого терминала надо выбрать один путь
из
в
и отправить по нему все
единиц. Это неделимый поток (unsplittable flow).

Если через дугу проходят пути терминалов из множества
, нагрузка на неё равна
А полная стоимость маршрутизации равна
Очевидно, что разница между двумя постановками есть, и немалая. Представьте один заказ объёма 10 и две дороги, по которым дробный поток отправляет по пять единиц. После запрета деления придётся выбрать одну дорогу и положить на неё все десять. Нагрузка на выбранную дорогу вырастет скачком на пять.
Такое неизбежно происходит и в общем случае. Поэтому разумный вопрос здесь в том, насколько сильно придётся перегружать дуги. Обозначим максимальный размер заказа (demand, ещё переводят как “потребность” или “запрос”) через
Запас в один максимальный заказ выглядит естественно: если в процессе округления на дуге оказался один целый груз, хуже он добавить не может. Именно это наблюдение превратилось в нашу сегодняшнюю гипотезу.
Теорема Диница — Гарга — Гёманса
Задачу о неделимом потоке из одного источника ввёл Джон Клейнберг в работе 1996 года. Даже решить, существует ли неделимая маршрутизация, соблюдающая все ёмкости, NP-трудно; как отмечают авторы современного обзора, уже на графе из двух вершин с параллельными дугами сюда сводятся Subset Sum и Bin Packing.
Но Ефим Диниц, Навин Гарг и Мишель Гёманс в работе “On the Single-Source Unsplittable Flow Problem” доказали важную теорему.
Теорема (Dinitz–Garg–Goemans, 1999). Пусть — любой допустимый дробный поток. Тогда за полиномиальное время можно найти неделимый поток
, для которого на каждой дуге
Если исходный поток соблюдает ёмкости, , то, следовательно,
То есть округлить можно всегда, и ни одна дуга не получит больше одного максимального заказа сверх исходной нагрузки. Причём порядок величины здесь улучшить нельзя: даже один груз, дробно размазанный по многим путям, при переходе к неделимым потокам целиком ляжет на один из них.
Это верная и интересная теорема, но она про частный случай нашей задачи, без стоимостей дуг. Вскоре Гёманс предложил естественное усиление.
Гипотеза Гёманса. Если на дугах заданы неотрицательные цены , то неделимый поток
можно выбрать так, чтобы одновременно не слишком перегружались дуги,
и не увеличивалась общая цена,
Иногда её называют гипотезой Диница — Гарга — Гёманса по имени исходной теоремы, а иногда просто Goemans’ conjecture; важно, что теорема трёх авторов без стоимостей остаётся в силе, опровергнуто именно стоимостное усиление.
Почему в гипотезу верили и почему она была сложной
У гипотезы была очень убедительная вероятностная интуиция.
Разложим дробный поток каждого терминала по путям. Долю потока на пути можно воспринимать как вероятность выбрать этот путь целиком. Если независимо выбрать по одному пути для каждого терминала, то в среднем нагрузка на каждой дуге будет ровно , а средняя стоимость — ровно
.
Значит, среди всех исходов точно есть хотя бы один со стоимостью не выше средней. С другой стороны, теорема Диница — Гарга — Гёманса гарантирует, что есть исход, в котором все нагрузки не превосходят .
Очень хочется поверить, что округление можно организовать так, чтобы эти два хороших свойства встретились в одном исходе.
Конечно, здесь нет формального доказательства: из “существует дешёвый поток” и “существует поток без большой перегрузки” не следует, что существует поток одновременно дешёвый и без большой перегрузки. Именно так устроен новый контрпример.
Но до него эта надежда выглядела вполне разумной. Многие классические методы зависимого округления умеют сохранять линейную целевую функцию и одновременно контролировать ошибки в ограничениях. Для специальных случаев получались положительные результаты: например, Skutella (2002) доказал гипотезу, когда все заказы кратны друг другу, точнее, образуют цепочку делимости (см. также Morell, Skutella, 2022).
При этом прогресса в общем случае почти не было. В 2023 году Traub, Koch, Zenklusen писали, что не известно практически ни одного нетривиального класса графов, где точная гипотеза была бы доказана. Они получили важный результат для планарных графов, но только с вдвое большим запасом:
Даже в работе октября 2025 года вопрос, можно ли сохранять стоимость хотя бы с добавочной перегрузкой в общих графах, назывался “широко открытым”, а его решение — потенциальным прорывом. Я нашёл только один (совсем недавний, 29 июня 2026!) результат Almoghrabi, Skutella & Warode, где гипотеза Гёманса доказывается для нетривиального класса: последовательно-параллельных ориентированных графов, причём даже в более общей многоисточниковой постановке.
Почему это вообще так сложно? Потому что дробный поток живёт в выпуклом многограннике и оптимизируется линейными методами, а неделимый поток — это дискретный выбор целого пути для каждого терминала. Один выбор меняет нагрузки сразу на всех дугах пути; разные терминалы связываются через длинные общие куски маршрутов, а ограничение в не даёт усреднить ошибку по размеру графа. Надо одновременно попасть в тонкую полосу вокруг
по каждой дуге и не испортить одну глобальную цену.
Может показаться, что контрпример давно можно было бы найти прямым перебором, но на самом деле пространство возможных контрпримеров здесь тоже огромное. Надо выбрать не только граф, но и терминалы, заказы, дробное разложение и цены. Прямой перебор плохо масштабируется, потому что даже у маленького графа слишком много числовых степеней свободы.
Рыбин пишет, что сам неделями думал об этой задаче в обе стороны и что о ней, по его мнению, задумывалось большинство специалистов по потокам.
Тем любопытнее, что итоговый контрпример можно нарисовать на салфетке.
Семь вершин и девять дуг
Вот весь граф. Число на дуге — нагрузка дробного потока,
— цена одной единицы; у непомеченных цен значение нулевое. Двойными кружками отмечены терминалы.

Заказы трёх терминалов равны
поэтому .
Сначала проверим, что нарисованные числа действительно задают дробный поток. Из источника выходит
В трёх внутренних вершинах поток сохраняется:
Наконец, в терминалы приходит ровно столько, сколько требуется:
Стоимость положительна только на трёх оранжевых дугах:
Можно посмотреть на тот же поток отдельно для каждого терминала. У каждого груза есть ровно два пути — дорогой и бесплатный
:
Обратите внимание, что тоже проходит по бесплатной дуге
, но платит на дуге
.
Дробный поток раскладывается так:

Каждый дорогой путь, если отправить по нему соответствующий груз целиком, стоит ровно 30:
Поэтому стоимость 58 можно пересчитать ещё одним способом:
А теперь запретим делить грузы. Для каждого терминала надо выбрать либо , либо
. Всего получается
вариантов. И 58 превращается в 60 из-за трёх арифметических конфликтов.
Конфликт и
. Если второй и третий грузы одновременно идут по бесплатным путям, на дугу
ложится
Но гипотеза разрешает там не больше
Перегрузка — одна единица.
Конфликт и
. Эти два пути вместе дают на дуге
Снова не хватает ровно одной единицы.
Конфликт и
. Тут надо вспомнить, что третий груз проходит по дуге
на обоих своих путях, и дорогом, и бесплатном. Поэтому вместе с
и
нагрузка на
неизбежно равна
И опять разность равна единице.
Итак, любые два бесплатных пути несовместимы с ограничениями гипотезы. Значит, бесплатно может поехать не больше одного груза, а как минимум два обязаны выбрать дорогие пути. Каждый стоит 30, поэтому вся допустимая неделимая маршрутизация стоит не меньше
Вот и всё опровержение.
Для полноты выпишем все восемь вариантов. Слово bad означает, что после разрешённой добавки какая-то дуга всё равно перегружена:
E1 E2 E3 cost 90 good
E1 E2 Z3 cost 60 good
E1 Z2 E3 cost 60 good
Z1 E2 E3 cost 60 good
E1 Z2 Z3 cost 30 bad: v→w by 1
Z1 E2 Z3 cost 30 bad: u→v by 1
Z1 Z2 E3 cost 30 bad: s→u by 1
Z1 Z2 Z3 cost 0 bad: s→u by 1, u→v by 11, v→w by 1
Все четыре маршрутизации стоимостью меньше 60 нарушают ограничения, а все четыре, которые ограничения соблюдают, стоят 60 или 90.

Я уже два раза написал разными словами одно и то же простое рассуждение, чтобы подчеркнуть, что как и в случае проблемы якобиана, проверка здесь вообще не представляет никакого труда, так что ждать рецензирования смысла нет.
Кстати, граф не только ацикличен, но и планарен. Если забыть направления и разгладить три вершины степени 2, получится вообще , полный граф на четырёх вершинах. Это тоже по-своему интересно, потому что по планарности могла бы проходить граница между верным и неверным утверждением, и Рыбин изначально просил найти контрпример для общего, непланарного случая, но GPT 5.6 в итоге нашёл и более сильный.
Всё это, разумеется, не противоречит планарному результату 2023 года. Там разрешён зазор , а не
, и при таком запасе в нашем примере можно отправить все три груза по бесплатным путям и получить стоимость ноль.
Что там происходит на самом деле
Теперь выкинем почти все детали графа и оставим его комбинаторный скелет.
Введём переменную , равную 1, если терминал
выбирает бесплатный путь
, и 0, если дорогой
. Три конфликта говорят:
Для нулей и единиц отсюда следует
Это многогранник стабильных множеств треугольника: можно выбрать не больше одной вершины, потому что каждая пара соединена конфликтным ребром.
А какие значения соответствуют дробному потоку? Это доли грузов, отправленные по бесплатным путям:
Каждое попарное неравенство выполнено. Но сумма равна

Из-за этого неравенства и ломается гипотеза. Дробный поток живёт в обычной релаксации, где есть три попарных конфликта, но не видна их общая “треугольная” связь. Неделимая маршрутизация обязана удовлетворять более сильному неравенству суммы.
А цены на дугах — просто разделяющая гиперплоскость. Поскольку каждый дорогой выбор стоит 30, стоимость равна
У дробной точки получается 58, а у любой целой точки с — не меньше 60.
В таком виде контрпример уже не кажется случайным. GPT 5.6 не просто наткнулся на девять удачных чисел, а реализовал в маленьком ориентированном графе классический разрыв между дробным и целым многогранниками для треугольника.
Это заодно объясняет, почему двух терминалов для этого механизма недостаточно. У одного конфликтного ребра неравенство уже полностью описывает выпуклую оболочку допустимых точек. Первое недостающее ограничение возникает именно на треугольнике, то есть нужны три бесплатных варианта. Я не утверждаю, что семь вершин абсолютно минимальны среди всех мыслимых контрпримеров (для этого нужен отдельный перебор топологий, и его ещё никто вроде бы не сделал), но структурное ядро здесь действительно самое маленькое возможное.
Проверка, уменьшение контрпримера и граница 
Проверка. Главная опасность в проверке подобных конструкций — перебрать только заранее задуманные пути и забыть, что их куски можно склеить в новый маршрут. Судя по опубликованному диалогу, несколько ранних попыток GPT 5.6 именно на этом и сломались.
Поэтому в проверочном скрипте мы с тем же GPT 5.6 не задавали шесть путей руками, а перебирали все простые пути из в каждый терминал. Впрочем, здесь всё-таки негде ошибиться, получится именно шесть путей:
t1: s→t1
t1: s→u→v→t1
t2: s→t2
t2: s→u→v→w→t2
t3: s→u→t3
t3: s→u→v→w→t3
После этого декартово произведение трёх двухэлементных списков даёт восемь маршрутизаций из таблицы выше.
Можно ли уменьшить числа? Да. На последней странице сертификата выписано целое параметрическое семейство. Я перебрал его рациональные и целочисленные варианты и нашёл меньший целочисленный экземпляр на том же графе:
- заказы
, так что
;
- по бесплатным путям дробно идут
единицы;
- единичные цены трёх платных дуг равны
.

Тогда каждый дорогой путь целиком стоит 63, дробная стоимость равна
а любая допустимая неделимая маршрутизация стоит хотя бы
Три попарных конфликта снова превышают разрешённую границу ровно на единицу. В этой же семивершинной схеме, если требовать целые заказы и нагрузки и уравнять полную цену трёх дорогих выборов, минимально; перебор меньших значений не даёт ни одного варианта, а при 9 решение
единственно.
Исходные числа 58 и 60 для рассказа всё равно красивее, поэтому главным примером я оставил их. Но уменьшенный вариант даёт ещё один результат.
Рассмотрим ослабленную гипотезу, где разрешается
В исходном примере любая маршрутизация стоимостью не больше 58 должна выбрать хотя бы два бесплатных пути. Для каждого такого выбора на конфликтной дуге нагрузка превосходит на 16, то есть требуется
В уменьшенном примере требуется уже
А параметрическое семейство позволяет подойти ещё ближе к . Нормируем первый и третий заказы к 1, снова уравняем полную стоимость трёх дорогих путей и положим
где — доли трёх грузов на бесплатных путях. Их суммарная дробная масса равна
. Если каждый дорогой путь целиком стоит
, дробная стоимость равна
, поэтому сохраняющая стоимость маршрутизация обязана выбрать хотя бы два бесплатных пути. В то же время любой такой выбор требует коэффициента
Беря положительное рациональное сколь угодно малым, получаем контрпример для любого универсального коэффициента
.
Иными словами, для планарных графов естественный вопрос теперь звучит так: какой будет оптимальный “коэффициент невязки” между и 2? Верхняя граница 2 известна из работы 2023 года, нижняя
получается уже из этой маленькой планарной конструкции.
Для общих графов картина ещё менее понятна: неизвестно даже, достаточно ли вообще какой-нибудь универсальной константы при с одновременным сохранением стоимости. Так что хоть исходная гипотеза и пала, работа здесь ещё не вполне закончена.
Четыре промпта
Ну и наконец — как это было найдено.
Публичный диалог с GPT 5.6 Pro совершенно не похож на тщательно спроектированный исследовательский промпт. Рыбин приложил материалы о задаче и попросил построить структурный контрпример для общего случая, добавив бессмертную фразу:
You should do a breakthrough.

Модель долго исследовала разные конструкции, выдавала частичные результаты и несколько раз не доходила до корректного ответа. Рыбин отвечал коротко и не пытался даже разобраться в том, что модель писала, по существу. После “Research conclusion” идут несколько страниц текста, но дальше диалог продолжается так:

Двух промптов не хватило, и GPT 5.6 опять сдался (через полтора часа размышлений), но третий промпт всё ещё прямолинеен:

И даже трёх промптов и пяти часов размышлений — о ужас! — не хватило. Так что Дмитрий Рыбин потерял терпение и написал коротко и прямо:

Как видите, на четвёртый раз невод, pardon the pun, пришёл с золотою рыбкой. Всего четыре коротких сообщения, никакого “искусства промптинга”. Опять же, я так
Разумеется, из этого не следует, что математическая экспертиза больше не нужна. Чтобы вообще выбрать эту гипотезу, надо знать, что она важна и открыта и иметь некоторую интуицию о том, что именно она может оказаться неверной. Дмитрий Рыбин действительно много думал над задачей сам.
Но и преуменьшать роль модели здесь странно. Человек не подсказывал LLM граф, числа или даже идею треугольника конфликтов. Финальная конструкция появилась после нескольких часов самостоятельного поиска, а пользовательская обратная связь состояла из “продолжай” и “хватит частичных результатов”.
Заключение
Итак, гипотеза Диница — Гарга — Гёманса утверждала, что любой дробный поток можно округлить до неделимого, одновременно сохранив стоимость и увеличив нагрузку каждой дуги не более чем на один максимальный заказ.
GPT 5.6 Pro нашла планарный ациклический граф с тремя терминалами, где дробный поток стоит 58, а любой неделимый поток в разрешённых границах стоит не меньше 60. Сертификат состоит из девяти дуг и восьми строк полного перебора; я независимо проверил и арифметику, и отсутствие дополнительных путей.
Главная идея контрпримера — не сами числа, а треугольник конфликтов. Дробный поток использует три бесплатных выбора с суммарной массой , хотя целиком можно выбрать не больше одного. Цены лишь переводят недостающее неравенство
в разрыв между 58 и 60.
Теорема Диница, Гарга и Гёманса без стоимостей остаётся верна. Планарный результат с запасом тоже остаётся верен. И теперь появляется некоторый зазор, который можно пытаться сокращать: как мы тут увидели, та же конструкция показывает, что любой новый универсальный коэффициент должен быть не меньше
, то есть теперь можно сокращать расстояние между
и
.
За три последних поста мы увидели сначала двухстраничное доказательство гипотезы о двойном покрытии циклами, потом многочлен, помещающийся в твит, а теперь — контрпример в виде стандартного треугольника целочисленной оптимизации. Но каждый из этих кажущихся простыми результатов закрыл гипотезу, над которой действительно думало много живых математиков.
У меня нет сомнений, что если бы любой из этих результатов получил человек, он стал бы широко известен в узких кругах и всегда имел бы гарантированную профессорскую позицию в хорошем месте, даже если бы больше ничего великого не сделал и продолжал бы всю жизнь изучать следствия и расширения своего прорывного результата (таких примеров в науке много, это не что-то плохое). Так что вопрос о том, достигли ли AI-модели человеческого уровня в математике, кажется мне уже закрытым.
А что ещё дальше, коллеги?..
Сергей Николенко
P.S. Прокомментировать и обсудить пост можно в канале «Sineкура»: присоединяйтесь!