Teil 4: Algorithmen-Entwurfstechniken Idee der Greedy-Algorithmen ...
Teil 4: Algorithmen-Entwurfstechniken Idee der Greedy-Algorithmen ...
Teil 4: Algorithmen-Entwurfstechniken Idee der Greedy-Algorithmen ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Job-Scheduling für Multiprozessorssysteme (1)<br />
Problem:<br />
Gegeben seinen n Jobs<br />
j 1 , j 2 , …, j n<br />
mit den Ausführungszeiten<br />
t 1 , t 2 , …, t n<br />
Die Jobs sollen p Prozessoren so zugeteilt werden, dass eine bestimmte<br />
Zielfunktion minimiert wird:<br />
(1) Minimiere durchschnittliche Abschlusszeit,<br />
wobei: Abschlusszeit für Job = Wartezeit + Ausführungszeit.<br />
(2) Minimiere gesamte Abschlusszeit:<br />
d.h. Zeit, in <strong>der</strong> alle Jobs abgeschlossen sind<br />
<strong>Greedy</strong>-Algorithmus: Shortest-Job-First<br />
Wähle einen noch nicht bedienten Job mit kürzester Ausführungszeit und teile ihn<br />
demjenigen Prozessor zu, <strong>der</strong> als nächster einen Job bedienen kann.<br />
O. Bittel; Juli 2007 <strong>Algorithmen</strong> und Datenstrukturen - <strong>Algorithmen</strong>-<strong>Entwurfstechniken</strong> 4-5<br />
Job-Scheduling für Multiprozessorssysteme (2)<br />
Beispiel:<br />
Job<br />
Zeit<br />
j 1<br />
3<br />
j 2<br />
5<br />
j 3<br />
j 4<br />
6<br />
j 5<br />
10<br />
j 6<br />
11<br />
j 7<br />
14<br />
j 8<br />
15<br />
18<br />
j 9<br />
20<br />
j 1<br />
j 2<br />
j 3<br />
j 4<br />
j 5<br />
j 6<br />
j 7<br />
j 8<br />
j 9<br />
6 20 40<br />
Zuteilung <strong>der</strong> Jobs an 3 Prozessoren mit<br />
dem Shortest-Job-First-Algorithmus<br />
Minimierung <strong>der</strong> durchschnittlichen Abschlusszeit<br />
Der Shortest-Job-First-Algorithmus liefert immer eine optimale Lösung.<br />
Begründung:<br />
Im Beispiel ist die durchschnittliche Abschlusszeit:<br />
[ t 1 + t 2 + t 3 + (t 1 +t 4 ) + (t 2 +t 5 ) + (t 3 +t 6 ) + (t 1 +t 4 +t 7 ) + (t 2 +t 5 +t 8 ) + (t 3 +t 6 +t 9 ) ] / 9<br />
= [ 3t 1 +3t 2 +3t +2t 3 4 +2t 5 +2t 6 + t 7 + t 8 + t 9 ] / 9<br />
Dieser Wert ist minimal, wenn t 1 ,t 2 ,t ≤ t 3 4 ,t 5 ,t 6 ≤ t 7 ,t 8, t 9 .<br />
Das wird jedoch vom Algorithmus gewährleistet.<br />
O. Bittel; Juli 2007 <strong>Algorithmen</strong> und Datenstrukturen - <strong>Algorithmen</strong>-<strong>Entwurfstechniken</strong> 4-6<br />
Job-Scheduling für Multiprozessorssysteme (3)<br />
Minimierung <strong>der</strong> gesamten Abschlusszeit<br />
Der Shortest-Job-First-Algorithmus liefert im allgemeinen nur eine suboptimale Lösung.<br />
Im Beispiel ist die gesamte Abschlusszeit = 40.<br />
Folgendes Lösung zeigt, dass auch eine gesamte Abschlusszeit<br />
von 34 erreicht werden kann.<br />
<strong>Teil</strong> 4:<br />
<strong>Algorithmen</strong>-<strong>Entwurfstechniken</strong><br />
j 1<br />
j 3<br />
j 4<br />
j 7<br />
j 2 j 5<br />
j 8<br />
j 6<br />
j 9<br />
14 34<br />
Das Problem <strong>der</strong> Minimierung <strong>der</strong> gesamten Abschlusszeit beim Job-Scheduling<br />
ist NP-vollständig.<br />
Für NP-vollständige Probleme sind zur Zeit nur exponentielle Verfahren (d.h. O(2 n ))<br />
bekannt.<br />
Es ist ein bisher berühmtes ungelöstes Problem in <strong>der</strong> Informatik, ob es für<br />
NP-vollständige Probleme schnellere Verfahren gibt (d.h. polynomielle Vefahren O(n k )).<br />
Viele Indizien sprechen dafür, dass es für NP-vollständige Probleme keine schnelleren<br />
Verfahren gibt.<br />
O. Bittel; Juli 2007 <strong>Algorithmen</strong> und Datenstrukturen - <strong>Algorithmen</strong>-<strong>Entwurfstechniken</strong> 4-7<br />
• <strong>Greedy</strong>-<strong>Algorithmen</strong><br />
– <strong>Idee</strong><br />
– Job Scheduling<br />
– Datenkompression mit dem Huffman-Verfahren<br />
– Bin Packing<br />
• <strong>Teil</strong>e-und-Herrsche-Verfahren<br />
• Dynamisches Programmieren<br />
O. Bittel; Juli 2007 <strong>Algorithmen</strong> und Datenstrukturen - <strong>Algorithmen</strong>-<strong>Entwurfstechniken</strong> 4-8