Ошибки в коде
- Отдельный рассказ
- Денис пошел «путем исправления»
Неоптимальная дискретизация
- Неравномерное измерение («слоты»)
- Огромный размер
- Куча допущений
- запихивание
- плавок в слоты
- переключений в слоты
Переключения
- Не очень понял «моделирование переключений через плавки»
- Трудно адаптировать
- Нужны отдельные переменные «first-class citizen» — есть переключения
- Переключения — редкая штука
- разговаривал с технологами
- можно превратить ограничение (<=2) в суть модели.
Глобальная целевая функция
- Продумать экономику
- Не сумма локальных штрафов «недоиспользование ресурса X»
- Классическая проблема «мерило работы — усталость», «локальная оптимизация станков ставит раком завод», см. «Цель»
- Часто нужно «платить, чтобы не работали»©
- Полно примеров типа
- Сам увидел («перенастраиваем, лишь бы не били»©)
Не работает
- Запускали на входных данных
- За недели не досчитало
- Размер двухсменной модели
- 10 → 7120x1670
- 20 → 25294x2790
- 40 → 100974x5030
- 80 → 399662x9510
- 100 → 633605x11750
- 200 → «2751810x22950
- Так нельзя
Эвристики
- Скользящее окно
- И при этом «борьба за 99%»
- См. «Теория ограничений и Линейное Программирование»
- «Человек не рожден для вычислений … Человеческие эвристики фейлятся … нужно составить математическую модель. Человеку ее легко верифицировать, а машине — легко решать.»