Лоскутная сеть, которая держит даже резкие рывки
Ещё до рассвета рыбаки чинят сети в сарае у причала. Одна сеть берёт крупную рыбу, другая мелкую, а нужна одна на всё. Они сшивают лоскуты так, чтобы каждый узор работал, и швы не расползлись.
Штука в том, что море меняется весь сезон, а в блокноте только средние заметки про ветер и волну. Таких сезонов, которые подходят под эти средние, может быть сколько угодно. Выбор сети вдруг становится слишком большим, чтобы перебрать в голове.
И ещё беда, сеть ведёт себя резко. Один лишний шаг, и тянет уже другой лоскут, самый слабый в этом месте. Новая идея разрешает такие стыки: берём несколько гладких правил прочности, в каждой точке срабатывает худшее, а потом выбираем лучший набор лоскутов, не теряя точности.
Появляется проверяемый штамп. Для каждого набора лоскутов можно смешать предупреждения с весами, все веса неотрицательные и вместе дают единицу. Потом добавляют вторую часть, она держит скрытые правила, как жёсткая рамка. Если всё раскладывается в сумму квадратов, ниже нуля не провалится. Вывод простой: гарантия на все случаи превращается в штамп, который можно проверить.
Со штампом сезон уже не туман. Вместо перебора всех возможных сезонов решают один большой список проверок, где рамки должны оставаться положительными. При нормальных условиях, когда есть запас по ограничениям и область не бесконечна, ответ выходит ровно таким же, как у исходной задачи. Без лестницы приближений.
И это не просто число. Из той же проверки можно вытащить маленькое меню сезона: несколько типичных дней и их веса. Будто выяснилось, что самый страшный сезон, который всё ещё совпадает со средними заметками, складывается из пары конкретных погод, а не из бесконечного тумана вариантов.
Тот же приём годится и на суше. Владелец магазина решает, сколько заказать, когда спрос неизвестен, и штрафы имеют острые углы, платишь только когда товара не хватило. Можно добавить ещё ограничения по средним, чтобы отсечь совсем дикие всплески. И вот контраст: раньше это был бесконечный поиск, а теперь один решаемый список и короткий, понятный худший сценарий.