Lehrveranstaltung -- Entwurf Eingebettete Systeme (EES)

Werbung
Professur für Technische Informatik · August-Bebel-Str. 89 · 14482 Potsdam
5. Übung zur Vorlesung Entwurf Eingebettete Systeme
Aufgabe 1 (Algorithmen und Komplexität)
Betrachtet werde das Problem der Sortierung einer Liste A von n Zahlen mit den Elementen A[1],
A[2], . . ., A[n]. Die Elemente sollen in aufsteigender Reihenfolge sortiert werden, so dass für die
sortierte Liste A0 gilt: A0 [1] ≤ A0 [2] ≤ . . . ≤ A0 [n]. Gegeben sei dazu der folgende Sortieralgorithmus:
SO-WIRD-SORTIERT(A) {
FOR j = 2 TO n {
hil f := A[ j];
/* A[ j] in die sortierte Liste A[1.. j − 1] eintragen */
i := j − 1;
WHILE (i > 0) AND (A[i] > hil f ) {
A[i + 1] := A[i];
i := i − 1;
}
A[i + 1] := hil f ;
}
RETURN(A);
}
1. Lernen Sie die Funktionsweise des Algorithmus kennen, in dem Sie den Algorithmus am Beispiel der Liste 5, 2, 4, 6, 1, 3 anwenden.
2. Geben Sie die Zeitkomplexität (worst-case) des Algorithmus an.
3. Zu welcher Komplexitätsklasse gehört der Algorithmus?
4. Handelt es sich um einen exakten Algorithmus?
5. Ist der Algorithmus optimal?
Aufgabe 2 (Algorithmen zur Ablaufplanung)
Gegeben sei der Sequenzgraph in Abb. 1. Für die Berechnungszeiten der Operationen gelte: Eine
Multiplikation dauere 2 Zeitschritte, alle anderen Operationen einen Zeitschritt.
1. Modellieren sie folgende zusätzlichen Beschränkungen:
• v6 starte frühestens einen Zeitschritt später als v4 .
• v5 und v9 sollen gleichzeitig starten.
• v9 starte höchstens 2 Zeitschritte nach v10 .
2. Stellen Sie den Constraintgraphen GC = (VC , EC , d) auf.
3. Bestimmen Sie einen gültigen Ablaufplan mit dem Bellman-Ford-Algorithmus, der wie folgt
beschrieben ist: (Für die Kantengewichte w(v0 , vi ) gelte: w(v0 , vi ) = d(v0 , vi ), wenn (v0 , vi ) ∈
EC , −∞ sonst.)
1
BELLMAN-FORD(GS (VS , ES ),W ) {
τ(v0 )1 = 0;
FOR (i = 1 TO |VS |)
τ(vi )1 = w(v0 , vi );
FOR ( j = 1 TO |VS |)
FOR (i = 1 TO |VS |) {
τ(vi ) j+1 := max{ k 6= i | τ(vi ) j , τ(vk ) j + w(vk , vi ) }
}
IF (τ(vi ) j+1 = τ(vi ) j ∀i) RETURN(TRUE);
}
RETURN(FALSE);
}
4. Analysieren Sie die Komplexität des Algorithmus.
5. Nun gelte zusätzlich die Bedingung, dass Operation v3 und Operation v5 gleichzeitig starten
sollen. Gibt es jetzt noch gültige Ablaufpläne? Wie kann man eine solche inkonsistente Nebenbedingung mit Hilfe des Bellman-Ford- Algorithmus erkennen?
6. Funktionieren der ASAP- und der ALAP-Algorithmus für Graphen mit relativen Zeitbeschränkungen?
NOP 0
1
2
3
6
8
10
7
9
11
4
5
NOP
n
Abbildung 1: Sequenzgraph
Aufgabe 3 (ASAP-, ALAP- und LIST-Ablaufplanung)
Gegeben sei der Sequenzgraph in Abb. 1. Für die Berechnungszeiten der Operationen gelten die
gleichen Annahmen wie in Aufgabe 2.
1. Handelt es sich beim ASAP- und ALAP-Verfahren um ein iteratives oder ein konstruktives
Verfahren?
2
2. Ermitteln Sie einen Ablaufplan nach dem ASAP-Verfahren und dem ALAP-Verfahren.
3. Bestimmen Sie die Mobilität µ(v) der Operationen v ∈ VS .
4. Berechnen Sie eine Prioritätsliste der Operationen nach dem Kriterium der Anzahl der Nachfolgeknoten einer Operation zum Endknoten.
5. Nun sei das Kriterium die niedrigere Mobilität eines Knotens.
6. Ermitteln Sie nun geeignete Ablaufpläne mit dem LIST-Verfahren aus der Vorlesung für die
beiden obigen Prioritätskriterien für eine Allokation von 2 Multiplizierern und 2 ALUs.
3
Herunterladen