Рассмотрите планирование , задачу назначения заданий с определенной продолжительностью и сроками для машин. Мы предполагаем дискретное время. Многие такие проблемы являются NP (O) -hard.
1∣ri∣Lmax
- на одной машине
- проблемы с датами выпуска и мы
- минимизировать максимальную задержку , то есть максимальную разницу между крайним сроком и временем завершения для всех заданий.Lmax
Версия решения этой проблемы NP-трудна; это можно увидеть по сокращению от 3PARTITION .
Интересно, что если мы допустим приоритетное вытеснение , то есть замену активных заданий, проблема может быть решена за квадратичное время с помощью эвристики «Самый ранний срок исполнения» («Измененные сроки исполнения»). Нетрудно видеть, что оптимальное решение этого варианта может быть не хуже оптимального решения исходной задачи.
Теперь, чтобы применить Branch & Bound к этой проблеме, нам нужно исправить некоторые параметры:
- Мы вычисляем нижние границы, допуская приоритет и используя EDD.
- Мы осуществляем ветвление, исправляя каждую из незапланированных работ как следующую.
- Сначала мы идем к ребенку с нижней границей.
Вы должны сделать это для каждого приложения B & B.
Для конкретного примера рассмотрим этот экземпляр :1∣ri∣Lmax
ipiridi1408221123631145510
с время обработки заданий, даты выпуска и сроки исполнения.piridi
При выполнении B & B, как указано выше, это происходит:
Этот GIF не зацикливается. Перезагрузите его в новой вкладке, чтобы увидеть с самого начала.
[ источник ] [ статическая версия ]
Обратите внимание, что из 41 узла только четыре посещаются правильно, и только для десяти рассчитываются нижние границы.