Nehmen wir an, Sie optimieren ihre LKW-Flotte für eine Lieferung. Rein rechnerisch benötigen Sie dabei vielleicht, laut erstem Optimierungsergebnis, 3,2 LKW. Dies ist natürlich nicht möglich, Sie können Ihre LKW schlecht zerteilen. Daher geben Sie Ihrem Modell als Information mit, dass die LKW-Anzahl eine ganze Zahl sein muss: Das Optimierungsproblem wird also zu einem MIP (Mixed Integer Programming)-Problem. Einfaches Auf- oder Abrunden führt dabei nicht zwangsläufig zu einer optimalen Lösung, daher sieht das Branch & Bound-Verfahren nun folgendes vor: Es werden zwei neue, voneinander unabhängige, Problemstellungen erstellt, die das Ursprungsmodell erweitern: Bei einem wird die maximale Anzahl der LKW auf drei gesetzt, im zweiten Modell wird die Mindestanzahl auf vier gesetzt. Beide Modelle werden erneut gelöst, daraufhin wieder auf Ganzzahligkeit überprüft usw., bis letztendlich eine gültige Lösung herauskommt.
Da diese neuen Modelle (Knoten) aber, wie schon erwähnt, voneinander unabhängig sind, müssen sie ja nicht zwangsläufig auf dem gleichen Rechner nacheinander abgearbeitet werden. Hier setzt nun der Distributed MIP-Algorithmus an, der für mich neben den ganzen kleineren Neuerungen sozusagen die eigentliche Überraschung unter dem Weihnachtsbaum darstellt: Er schickt die einzelnen Modelle an weitere Server, die ihm zur Verfügung stehen, und koordiniert somit den weiteren Verlauf. Wenn die neue Lösung wieder aufgeteilt werden muss, können die neuen Knoten entsprechend wieder auf gerade freie Server aufgeteilt werden. Die Rechenleistung von mehreren unabhängigen Systemen wird damit optimal genutzt. Somit muss der eigentliche Server weniger Knoten berechnen, da ihm die anderen Server Arbeit abnehmen: Die Zeit, die das Modell braucht, um gelöst zu werden, sinkt dementsprechend, abhängig von der Anzahl und Rechenleistung der weiteren Server.