| Home · Info · Kontakt · |
Informatik » Scheduling Algorithmen |
|
Ein einfaches Scheduling Problem mit einer effizienten, optimalen LösungInhalt
Erklärung des ProblemsEin Beispiel für einen sehr einfachen und beweisbar optimalen Algorithmus zur Lösung eines Scheduling Problems ist die folgende Variante des Job-Shop Scheduling: Gegeben sei eine Maschine, welche verschiedene Aufgaben verarbeiten muss. Die Aufgaben werden sequentiell (also nacheinander) abgearbeitet. Die Aufgaben können unterschiedliche Verarbeitungszeiten haben und sind voneinander unabhängig: Die Reihenfolge ihrer Verarbeitung ist beliebig. Die Zielfunktion soll die Summe aller Beendigungszeiten minimieren. Unter der Beendigungszeit versteht man diejenige Zeit, welche vom Beginn der gesamten Verarbeitung an verstreicht, bis eine Aufgabe erledigt ist. Abbildung 1 soll dies verdeutlichen.
Berechnung der ZielfunktionMöchte man die Summe aller Beendigungszeiten minimieren, so muss man sich zuerst überlegen, wie sich diese Summe berechnet. Die Beendigungszeit der Aufgabe i ist die Summe ihrer Verarbeitungszeit und der Beendigungszeit der Aufgabe i-1. Wendet man diese Erkenntnis rekursiv auf alle Verarbeitungszeiten an, so sieht man folgendes: In der Summe aller Beendigungszeiten von n Aufgaben ist die Verarbeitungszeit der ersten Aufgabe n mal enthalten, die Verarbeitungszeit der zweiten Aufgabe n-1 mal, und so weiter. Abbildung 2 unterstützt diese Erklärungen anhand der drei Aufgaben aus Abbildung 1.
Die Summe aller Beendigungszeiten lässt sich also direkt aus den Verarbeitungszeiten der einzelnen Aufgaben berechnen, ohne den Umweg über die einzelnen Beendigungszeiten. Daher ist diese Berechnung sehr effizient. Für das angegebene Beispiel lautet die Formel:
Aus dieser spezifischen Formel folgt eine allgemeine Formel für die Summe aller Beendigungszeiten:
Optimierung der ZielfunktionWie im Kapitel Erklärung des Problems erwähnt, ist eine Lösung des Problems optimal, wenn sie die Summe aller Beendigungszeiten minimiert. Betrachtet man die obige Formel, so wird klar, wie die Aufgaben angeordnet werden müssen: So, dass ihre Verarbeitungszeiten aufsteigend geordnet sind. Auf diese Weise wird die kürzeste Verarbeitungszeit mit dem grössten Faktor (also mit n) und die längste Verarbeitungszeit mit dem kleinsten Faktor (also mit 1) multipliziert.
Die optimale Lösung des ausgewählten Scheduling Problems zu finden, reduziert sich also darauf, die vorgegebenen Aufgaben nach ihren Verarbeitungszeiten zu sortieren. Dazu kann ein beliebiger Sortieralgorithmus (Quicksort, Bubblesort, etc.) verwendet werden. Die so berechnete Lösung ist mathematisch beweisbar optimal gemäss der vorgegebenen Zielfunktion. Allerdings ist sie nicht eindeutig: Wenn mehrere Aufgaben die selbe Verarbeitungszeit aufweisen, dann kann die Reihenfolge dieser Aufgaben beliebig verändert werden, ohne dass die Optimalität der Lösung verändert wird.
Eine interaktive Animation zur weiteren VertiefungDas folgende Beispielprogramm visualisiert das beschriebene Problem. Die farbigen Balken stellen die verschiedenen Aufgaben dar. Ihre Verarbeitungszeiten steigen von einer Sekunde für die kürzeste Aufgabe in Einerschritten an.
Hinweise zur Benutzung:
|
| Letzte Änderung: 06.07.2007 · © SwissEduc-Team | Hosted by Metanet |