Christian Sohler Paderborn, den 27. April 2007 u.v.a.
Ubungen zur Vorlesung ¨
Datenstrukturen und Algorithmen SS 2007
Pr¨asenz¨ubung 5
AUFGABE 11:
Geben Sie einen formalen Korrektheitsbeweis f¨ur den in der Vorlesung behandelten Matrix- Multiplikations-Algorithmus von Strassen an.
AUFGABE 12:
Wir betrachten das folgende Scheduling Problem. Gegeben sei ein Prozessor, der 24 Stunden am Tag und das jeden Tag arbeiten kann. Studenten k¨onnen nun Anfragen stellen, um t¨aglich Jobs auf dem Prozessor auszuf¨uhren. Jeder dieser Jobs hat eine Startzeit und eine Endzeit.
Falls ein Job akzeptiert wird, muss er jeden Tag in dem Zeitraum zwischen seiner Start- und Endzeit auf dem Prozessor ausgef¨uhrt werden. Dabei ist zu beachten, dass ein Job vor Mitternacht anfangen und nach Mitternacht enden kann.
a) Gegeben sei eine Liste von n Jobs. Geben Sie unter der Bedingung, dass der Prozessor zu jedem Zeitpunkt h¨ochstens einen Job verarbeiten kann, einen Greedy-Algorithmus im Pseudocode an, der so viele Jobs wie m¨oglich akzeptiert. Der Algorithmus soll eine Laufzeit von O(n2) haben. Zur Vereinfachung k¨onnen Sie annehmen, dass keine zwei Jobs die selbe Start- oder Endzeit haben.
b) Bestimmen Sie die Laufzeit des Algorithmus.
c) Beweisen Sie die Optimalit¨at des Algorithmus.