SLAB/WhyNotOK

Стас Фомин

Ошибки в коде

  • Отдельный рассказ
  • Денис пошел «путем исправления»

Неоптимальная дискретизация

  • Неравномерное измерение («слоты»)
  • Огромный размер
  • Куча допущений
    • запихивание
      • плавок в слоты
      • переключений в слоты

Переключения

  • Не очень понял «моделирование переключений через плавки»
    • Трудно адаптировать
    • Нужны отдельные переменные «first-class citizen» — есть переключения
  • Переключения — редкая штука
    • разговаривал с технологами
    • можно превратить ограничение (<=2) в суть модели.

Требует проработки

  • Тема склада
  • Тема вывоза

Глобальная целевая функция

  • Продумать экономику
  • Не сумма локальных штрафов «недоиспользование ресурса X»
    • Классическая проблема «мерило работы — усталость», «локальная оптимизация станков ставит раком завод», см. «Цель»
      • Часто нужно «платить, чтобы не работали»©
      • Полно примеров типа
ATARI-лодка-оптимизация-очков.gif
      • Сам увидел («перенастраиваем, лишь бы не били»©)

Не работает

  • Запускали на входных данных
  • За недели не досчитало
  • Размер двухсменной модели
  • 10 → 7120x1670
  • 20 → 25294x2790
  • 40 → 100974x5030
  • 80 → 399662x9510
  • 100 → 633605x11750
  • 200 → «2751810x22950
  • Так нельзя

Эвристики

  • Скользящее окно
    • И при этом «борьба за 99%»
  • См. «Теория ограничений и Линейное Программирование»
    • «Человек не рожден для вычислений … Человеческие эвристики фейлятся … нужно составить математическую модель. Человеку ее легко верифицировать, а машине — легко решать.»

Боремся за постановку

WhyNotOK 2022-09-09 00-44-03 image0.png