Considérez la planification , la tâche d'affecter des tâches avec certaines durées et délais aux machines. Nous supposons un temps discret. Beaucoup de ces problèmes sont de niveau NP (O).
1∣ri∣Lmax
- sur une machine
- problèmes avec les dates de sortie et nous
- minimiser le retard maximum , c'est-à-dire la différence maximale entre le délai et le temps de réalisation sur tous les travaux.Lmax
La version de décision de ce problème est NP-hard; cela peut être vu par réduction de 3PARTITION .
Chose intéressante, si nous autorisons la préemption , c'est-à-dire la permutation des travaux actifs, le problème peut être résolu en temps quadratique par la première heuristique de la première échéance (aux dates d'échéance modifiées). Il est facile de voir que la solution optimale de cette variante ne peut pas être pire que la solution optimale du problème d'origine.
Maintenant, afin d'appliquer Branch & Bound à ce problème, nous devons corriger certains paramètres:
- Nous calculons les limites inférieures en autorisant la préemption et en utilisant EDD.
- Nous branchons en fixant tous les travaux imprévus comme le prochain.
- Nous allons d'abord à l'enfant avec les petites bornes inférieures.
Vous devez le faire pour chaque application de B&B.
Pour un exemple concret, considérons cette instance de :1∣ri∣Lmax
ipiridi1408221123631145510
avec les délais de traitement des travaux, les dates de sortie et les dates d'échéance.r i d ipiridi
En exécutant B&B comme spécifié ci-dessus, cela se produit:
Ce GIF ne fait pas de boucle. Rechargez- le dans un nouvel onglet pour voir depuis le début.
[ source ] [ version statique ]
Notez que sur 41 nœuds, seuls quatre sont visités correctement et seulement pour dix les bornes inférieures sont calculées.