![](https://habrastorage.org/webt/ta/eg/-c/taeg-cguc33e1bdxnwnsuaebu5s.png)
Берём 6 рулонов металла с предыдущего передела, разматываем в печи отжига, получаем стендовую партию из 6 рулонов электротехнической стали с почти одинаковой структурой. Нужно обрезать их до товарных рулонов.
Правила игры такие:
- На металле появляются дефекты, чаще всего по краям, но и в середине попадаются тоже. Их в рулон пускать нельзя.
- Дефекты нужно вырезать, но на один итоговый рулон допускается не больше трёх швов.
- Итоговые рулоны могут быть разной ширины, но не меньше определённой длины.
То есть мы можем обрезать сталь по краям, если дефект попался у кромки, и получить узкий рулон без изъянов. Или вырезать участок с дефектом и получить широкий рулон, но со швами.
Задача — оптимально разложить заказанные рулоны примерно по 3,5 тонны в стендовой партии из рулонов по 9 тонн длиной 4,5-5 километров. Перевалка станины на разную ширину стоит денег, и часто это дороже, чем вернуть 200-300 метров стали назад в переплавку.
То есть задача сводится к тому, чтобы за минимум шагов получить максимум полезного металла. Мы называли это «Каждый сам себе Пикассо», потому что каждый мастер резал в соответствии со своей личной и сугубо субъективной картиной мира. Нам казалось, что до оптимизации там ой, как далеко.
В обычной истории мы бы полгода «бодались», потом придумали бы интеграцию и робот стал бы говорить «человекам», как раскраивать. Но тут всё пошло несколько иначе и началось странное.