SLAB/Status

Стас Фомин

Видео

Быстро набросан фреймворк

Status 2022-09-02 16-56-51 image0.png
Status 2022-09-02 19-26-01 image0.png
Status 2022-09-05 16-32-34 image0.png

Визуализация

  • Цвета-геометрия-сетка
    • Визуалиазация важных переменных-ограничений
  • «WTF» по картинке
    • очевидная неоптимальность — разбираемся

Технологически

  • Веб — ненужен (пока)
  • Анимации, динамики нет — «вход-выход»
  • Таблицы — как вход и результат
    • Можно перечитывать без выхода

Симуляции — потом

pygame симуляция

Status 2022-09-07 13-18-12 image0.png

Параллельная обработка несколькими солверами

Status 2022-09-02 16-51-50 image0.png
Status 2022-09-02 17-06-04 image0.png

Status 2022-09-02 17-41-05 image0.png

Status 2022-09-02 17-51-53 image0.png

Status 2022-09-03 21-23-25 image0.png

Status 2022-09-04 00-57-46 image0.png

Status 2022-09-04 01-00-02 image0.png

Мучения

  • Тонкости солверов
    • pyomo — хорошо, но ---
  • Долгие операции
    • «неудачи космических полетов»

Status 2022-09-03 21-25-34 image0.png

Status 2022-09-05 02-16-53 image0.png

4226 заказов (все) на 26 смен

Status 2022-09-05 02-19-35 image0.png


Status 2022-09-05 14-25-44 image0.png

Status 2022-09-05 15-01-51 image0.png

Status 2022-09-07 12-28-53 image0.png

Status 2022-09-08 10-25-03 image0.png

Status 2022-09-08 10-29-08 image0.png

На древнем компе 2008 года

Status 2022-09-05 17-24-29 image0.png

Status 2022-09-05 17-25-00 image0.png

Status 2022-09-05 17-25-34 image0.png

Status 2022-09-05 17-26-24 image0.png

Модель

Убрано

  • Цепь вывоза
    • На складе надо моделировать серьезно (не «рюкзак»)
      • Охлаждение
      • Стекирование
      • Вывоз
  • Сроки вывоза
    • Можно легко вернуть — но в буфере склад!

Модель — максимальная простота

Демо

  • «Гидродинамика потока слабов»
  • ЦЛП моделирование всего этого.
  • Убедиться, что эти размеры «тащатся».

Модель1 — размеры

СменПечейПериодовЗаказовРазмерВремя
5521809569x3975
55222010774x4475
85230020999x7160
145250037049x12530
16522000*80439x271201800-антек182
20523000*136469x459002693-антек182
26524226*180821x607101700-антек182

План

  • У меня (пока?) есть магия добывать лицензии на гуроби
  • Придерживаться gurobi-солвера пока отлаживаем модель
  • Когда все ОК с моделью → смотреть cbc/glpk/…  → пытаемся догнать

Модель

  • Компактификация заказов (небинарные, целые)
  • Понять, что с охлаждением-вывозом-складом

Модель1 — разъяснение

  • Пройдемся по коду

Модель2 — вывоз

Учет вывоза, рельс, склада

Status 2022-09-09 23-44-29 image0.png

Status 2022-09-11 16-36-16 image0.png

Status 2022-09-11 16-40-29 image0.png

Модель с оптимизацией

  • Обязательно выполняются только срочные заказы («Imax», к сроку)
  • Остальные добираются из «рынка» заказов с большими сроками.
  • Можно сильно играться с параметрами «доход плавки» против «стоимости перенастройки» и т.п.

Решается легко

  • 20 смен
  • 1053 плавки
  • 30 секунд на гуроби

Status 2022-09-14 11-16-18 image0.png

Status 2022-09-14 11-17-19 image0.png

Status 2022-09-14 11-19-19 image0.png

Status 2022-09-14 11-35-29 image0.png

Проблемы

  • Долго формулируется проблема в Pyomo (4400 сек).
    • В два раза ускорил
    • Сделал систему кеширования моделей.

Optimal ILP Solvers

Gurobi-becnhmarks-2019-01.png

Открытые технические вопросы

  • Исследовать параметры солверов (не реагирует на gap)
  • Собрать версию CBC с threading
  • xpra и cocalc — большие лаги

Как бы сохранить best feasible?

Status 2022-09-05 11-09-05 image0.png

Status 2022-09-05 11-12-57 image0.png