• Keine Ergebnisse gefunden

0123456789100000000000001+6000009999992↑0←0←8889917171717306↑8←14141415172323234068↑14←14←15←21212323245+7068141415↑21←21←23←23←26

N/A
N/A
Protected

Academic year: 2022

Aktie "0123456789100000000000001+6000009999992↑0←0←8889917171717306↑8←14141415172323234068↑14←14←15←21212323245+7068141415↑21←21←23←23←26"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

aa

Prof. Dr. Ir. G. Woeginger T. Hartmann, D. Korzeniewski, B. Tauer

Hausaufgabe5 (Rucksackproblem): (6 Punkte)

Gegeben sei ein Rucksack mit maximaler Tragkraft 10 sowie 7 Gegenstände. Der i-te Gegenstand soll hierbei ein Gewicht von wi und einen Wert vonci haben. Bestimmen Sie mit Hilfe des in der Vorlesung vorgestellten Algorithmus zum Lösen des Rucksackproblems mit dynamischer Programmierung denmaximalen Gesamtwert der Gegenstände, die der Rucksack tragen kann (das Gesamtgewicht der mitgeführten Gegenstände übersteigt nicht die Tragkraft des Rucksacks). Beachten Sie zusätzlich, das Gegenstand 1 nur dann eingepackt werden kann, wenn auch Gegenstand 6 eingepackt wird und Gegenstand 6 nur dann, wenn auch Gegensatand 1 eingapackt wird. Die gleiche Abhängigkeit besteht auch zwischen den Gegenständen 5 und 7. Geben Sie an, was diese Abhängigkeiten an der bekannten Situation aus der Vorlesung verändern. Was müssen Sie tun, um den Algortihmus dennoch korrekt anwenden zu können?. Die Gewichte seien dabei w1 = 3, w2 = 2, w3= 1, w4 = 3, w5 = 2, w6 = 2 und w7 = 2 und die Werte c1 = 5, c2 = 8, c3 = 6, c4 = 7, c5 = 2, c6 = 4 und c7 = 3. Geben Sie zudem die vom Algorithmus bestimmte Tabelle C und die mitzunehmenden Gegenstände an. Hinweis: Je nach den von Ihnen gewählten Anpassungschritten müssen sie die Tabelle nicht vollständig ausfüllen.

Lösung:

Der Algorithmus aus der Vorlesung betrachtet keine Abhängigkeiten der Gegenstände untereinander. Da aber die Gegenstand 1 und 6 sowie 5 und 7 nur gemeinsam auftreten können, kann man deren Gewichte und Kosten addieren und als einen gemeinsamen Gegenstand betrachten:w1+w6= 5undc1+c6= 9sowiew5+w7= 4 undc5+c7= 5

Die Tabelle Cwird nach diesen Anpassungen dann vom Algorithmus wie folgt gefüllt:

0 1 2 3 4 5 6 7 8 9 10

0 0 0 0 0 0 0 0 0 0 0 0

1+6 0 0 0 0 0 9 9 9 9 9 9

2 ↑ 0 ← 0 ← 8 8 8 9 9 17 17 17 17

3 0 6 ↑ 8 ← 14 14 14 15 17 23 23 23

4 0 6 8 ↑ 14 ← 14 ← 15 ← 21 21 23 23 24 5+7 0 6 8 14 14 15 ↑ 21 ← 21 ← 23 ← 23 ← 26

Damit ergibt sich der maximale Wert 26 für den Fall, dass der 2., 3., 4. und 5. sowie 7. Gegenstand mitgenom- men werden.

Hausaufgabe6 (maxProdukt): (6 Punkte)

Gegeben ist eine FolgeA= (a1, . . . , an)von rationalen Zahlen. Gesucht sind zwei Indizesrundsmit1≤r≤ s≤n, für die das Produktar·ar+1· · ·as maximal wird.

Skizzieren Sie ein Dynamisches Programm für dieses Problem, analysieren Sie Laufzeit und Speicherplatz, und beweisen Sie die Korrektheit.

(Hinweis: Man definiere Prod[i, j] = ai·ai+1· · ·aj. Man definiere MaxPos[k] als das Maximum aller Werte Prod[i, k] ≥0 mit 1 ≤i ≤ k; falls alle Zahlen Prod[i, k] negativ sind gilt MaxPos[k] = −∞. Man definiere

(2)

MinNeg[k] als das Minimum aller Werte Prod[i, k]≤0 mit 1≤i≤k; falls alle Zahlen Prod[i, k] positiv sind gilt MinNeg[k] = +∞.)

Lösung:

Beispielhafte Implementierung;

pair<int, int> maxproduct(double *a, int n){

int startMin = 0 // Starting point of the smallest product int startMax = 0 // Starting point of the largest product

pair<int, int> ret = make_pair(0, 0) // intervals of the largest and the smallest product double max = a[0]

double min = a[0]

answer = a[0]

for (int i = 1; i < n; ++i) { double temp0 = a[i] * max double temp1 = a[i] * min if (temp0 > temp1) {

max = temp0 min = temp1 }else {

int temp = startMax startMax = startMin startMin = temp max = temp1 min = temp0 }

if (max < a[i]) { max = a[i]

startMax = i }

if (min > a[i]) { min = a[i]

startMin = i }

if (answer < max) { answer = max

ret = make_pair(startMax, i) }

}

return ret }

LaufzeitO(|A|).

Speicherplatz konstant.

Beweisidee Korrektheit: Betrachte Invariante: Min ist minimal und Max ist maximal in der bisher betrachte- teten Teilsequentz einschließlich der Position i−1. Betrachte nunai gegebenmaxi−1,mini−1, startM axi−1

undstartM ini−1

• fallsai= 1: Maximum und Minimum ändern sich nicht

• fallsai=−1: Beträge bleiben gleich, min max tauschen gegebenfalls

• fallsai>1: Maximum wird größer/Minimum wird kleiner durch die Hinzunahme des neuen Multiplika- tors oderai ist selber größer als das Maximum

• fallsai<1: Multiplikation mit negativen Mutiplikator dreht gegebendalls Max/Min um, Beträge werden

(3)

• falls0< ai<1: Beträge werden jeweils kleiner

• falls−1< ai<0: Beträge werden jeweils kleiner, gegebenfalls Max/Min tauschen

Min ist minimal und Max ist maximal bis einschließlich Position i. Also ist nach Hinzunahme von ai die Invariante erfüllt.

• 3 Punkte dynamisches Programm

• 1 Punkt Laufzeit

• 1 Punkt Speicherplatz

• 1 Punkt Invariante (Korrektheit)

Hausaufgabe7 (Huffman Code): (6 Punkte)

Bestimmen Sie einen optimalen präfix-freien Binär-Code für das folgende 20-elementige Alphabet mit den angegebenen Häufigkeiten. Geben sie entweder den Code explizit an oder zeichnen Sie den entsprechenden Baum(siehe Seite 32 der Vorlesung)

AC D E F G H I L N 3 3 2 26 5 3 8 13 2 16 OR S T UVW X Y Z

9 6 2722 2 5 8 4 5 1

Liefert der auf Seite 32 der Vorlesungsfolien angegebene Binär-Code einen optimalen präfix-freien Binär- Code?

Lösung:

Sortiere nach aufsteigender Häufigkeit:

Z-1, D-2, L-2, U-2, A-3, C-3, G-3, X-4, F-5, V-5, Y-5, R-6, H-8, W-8, 0-9, I-13, N-16, T-22, E-26, S-27 Queue nachi-ter Iteration:

1) L-2, U-2, A-3, C-3, G-3, ZD-3, X-4, F-5, V-5, Y-5, R-6, H-8, W-8, 0-9, I-13, N-16, T-22, E-26, S-27 2) A-3, C-3, G-3, ZD-3, X-4, LU-4, F-5, V-5, Y-5, R-6, H-8, W-8, 0-9, I-13, N-16, T-22, E-26, S-27 3) G-3, ZD-3, X-4, LU-4, F-5, V-5, Y-5, R-6, AC-6, H-8, W-8, 0-9, I-13, N-16, T-22, E-26, S-27 4) X-4, LU-4, F-5, V-5, Y-5, R-6, AC-6, GZD-6, H-8, W-8, 0-9, I-13, N-16, T-22, E-26, S-27 5) F-5, V-5, Y-5, R-6, AC-6, GZD-6, H-8, W-8, XLU-8, 0-9, I-13, N-16, T-22, E-26, S-27 6) Y-5, R-6, AC-6, GZD-6, H-8, W-8, XLU-8, 0-9, FV-10, I-13, N-16, T-22, E-26, S-27 7) AC-6, GZD-6, H-8, W-8, XLU-8, 0-9, FV-10, YR-11, I-13, N-16, T-22, E-26, S-27 8) H-8, W-8, XLU-8, 0-9, FV-10, YR-11, ACGZD-12, I-13, N-16, T-22, E-26, S-27 9) XLU-8, 0-9, FV-10, YR-11, ACGZD-12, I-13, N-16, HW-16, T-22, E-26, S-27 10) FV-10, YR-11, ACGZD-12, I-13, N-16, HW-16, XLU0-17, T-22, E-26, S-27 11) ACGZD-12, I-13, N-16, HW-16, XLU0-17, FVYR-21, T-22, E-26, S-27 12) N-16, HW-16, XLU0-17, FVYR-21, T-22, ACGZDI-25, E-26, S-27 13) XLU0-17, FVYR-21, T-22, ACGZDI-25, E-26, S-27, NHW-32 14) T-22, ACGZDI-25, E-26, S-27, NHW-32, XLU0FVYR-38 15) E-26, S-27, NHW-32, XLU0FVYR-38, TACGZDI-47 16) NHW-32, XLU0FVYR-38, TACGZDI-47, ES-53 17) TACGZDI-47, ES-53 NHWXLU0FVYR-70 18) NHWXLU0FVYR-70, TACGZDIES-100 19) NHWXLU0FVYRTACGZDIES-170

Im Vergleich zum Huffman Code wird der Knoten T zu früh hinzugefügt Siehe Vorlesungslides Seite 32. aus v21.

(4)

Hausaufgabe8 (Stundenplaner Problem): (1+1+1+1+1+1 Punkte)

In der Vorlesung über Greedy Algorithmen wurde folgender Algorithmus für das Stundenplanungsproblem diskutiert:

Wähle den VortragV mit kleinstem rechten Endpunkt aus, lösche alle mitV überlappenden Vor- träge, und wiederhole diesen Schritt.

Analysieren Sie die folgenden Varianten dieses Algorithmus. Nehmen Sie dazu an, dass jeder Algorithmus im Falle eines Tie-Breakings immer eine zufällige Entscheidung trifft (die so schlecht wie nur möglich sein kann).

Beweisen Sie entweder, dass die Variante immer eine optimale Lösung findet, oder konstruieren Sie ein Beispiel, für das die Variante sub-optimal ist.

a) Wähle den Vortrag V mit grösstem rechten Endpunkt aus, lösche alle mit V überlappenden Vorträge, und wiederhole diesen Schritt.

b) Wähle den VortragV mit kleinstem linken Endpunkt aus, lösche alle mit V überlappenden Vorträge, und wiederhole diesen Schritt.

c) Wähle den VortragV mit grösstem linken Endpunkt aus, lösche alle mitV überlappenden Vorträge, und wiederhole diesen Schritt.

d) Wähle den VortragV mit kleinster Länge aus, lösche alle mitV überlappenden Vorträge, und wiederhole diesen Schritt.

e) Wähle den VortragV aus, der mit den wenigsten anderen Vorträgen überlappt, lösche alle mitV über- lappenden Vorträge, und wiederhole diesen Schritt.

f ) Falls keine zwei Vorträge überlappen, wähle alle Vorträge aus. Andernfalls lösche den längsten Vortrag, und wiederhole diesen Schritt.

Lösung:

Notation der Aufgabe: Ein VortagVi is gegeben durch das Tupel(Li, Ri) a) Gegenbeispiel: Betrachte folgende Instanz:

V1= (1,5), V2= (2,3), V3= (3,4) Rückgabe wäre{V1}, optimal ist aber{V2, V3}

b) Siehe vorheriges Beispiel.

c) Optimal. Bew: Selbes Vorgehen wie in der Vorlesung, (vertausche Rollen von Li und Ri + gehe von rechts nach links).

d) Gegenbeispiel: Betrachte folgende Instanz:

V1= (2,4), V2= (1,3), V3= (3,6) Rückgabe wäre{V1}, optimal ist aber{V2, V3}

e) Gegenbeispiel: Betrachte folgende Instanz:

V1= (0,2), V2= (2,4), V3= (4,6), V4= (6,8), V5= (1,3), V6= (3,5), V7= (5,7), V8= (1,3), V9= (5,7), V10= (1,3), V11= (5,7)

Rückgabe wäre{V4, V5, V7}, optimal ist aber {V1, V2, V3, V4} f ) Gegenbeispiel: Betrachte folgende Instanz:

V1= (1,3), V2= (2,5), V3= (3,9) Rückgabe wäre{V1}, optimal ist aber{V1, V3}

(5)

Hausaufgabe9 (Muenzen): (4+2+2 Punkte)

Wir betrachten ein Münzsystem mit (beliebig vielen) Münzen im Wert von1,2,5,10,20,50EuroCent. Wir wol- len einen gegebenen Betrag vonxEuroCent additiv mit möglichst wenigen Münzen darstellen. Dazu verwenden wir den folgenden Greedy Algorithmus:

Wähle den grössten Werty ∈ {1,2,5,10,20,50} mit y ≤x. Nimm eine Münze mit Wert y, und wiederhole den Schritt fürx−y.

a) Beweisen Sie, dass dieser Algorithmus immer eine optimale Lösung findet, oder konstruieren Sie ein Beispiel, für das der Algorithmus sub-optimal ist.

b) Analysieren Sie die Korrektheit des entsprechenden Greedy Algorithmus für das Münzsystem mit Münzen im Wert von1,2,4,8,16,32EuroCent.

c) Analysieren Sie die Korrektheit des entsprechenden Greedy Algorithmus für das Münzsystem mit Münzen im Wert von1,10,21,34,70,100 EuroCent.

Lösung:

a) Induktion über BetragB IA :B= 1Algorithmus ist optimal, da nur eine einzige Münze zulässig ist IS : Seikdie größte Münze kleinerB. Fallsk=Bist, ist nichts zu zeigen (eine Münze ist immer optimal).

Der Algorithmus wählt Münzek.

Beh:k muss auch in optimaler Lösung vorkommen. Falls dem nicht so ist, brauchen wir genug Münzen die sich zuk aufaddieren. Dies kann jedoch nie eintreten, wie der unten stehenden Tabelle entnommen werden kann.

k 1 2 5 10 20 50

max. Anzahl in OPT 1er≤1 1er+2er≤2 5er≤1 10er≤1 10er+20er≤2 50er ≤1

max. Summe - 1 4 9 19 49

Somit musskin der Lösung vorkommen. Damit reduziert sich das Problem aufB−koptimal zu stückeln.

Da B-k<B folgt damit die Aussage per Induktion.

b) Begründung siehe a) mit folgender Tabelle:

k 1 2 4 8 16 32

max. Anzahl in OPT 1er≤1 2er≤1 4er≤1 8er≤1 16er ≤1 32er≤1

max. Summe - 1 3 7 15 31

c) Gegenbeispiel:

140 Greedy: 100+34+1+1+1+1+1+1 Opt: 70+70

Referenzen

ÄHNLICHE DOKUMENTE

GAESDONCK. Im Rahmen der Unterrichtsreihe zum Na- tionalsozialismus erlebten die Schüler der neunten Klassen des Collegiums Augustinianum Gaesdock eine ganz besondere

„Besorgte Eltern zu verunsi- chern, um sich in einem Tarif- konflikt Vorteile zu verschaffen, ist für eine Einrichtung wie die Lebenshilfe bemerkenswert“, erklärte Wolfgang

Die Braut ist in der Wahl ihres Outfits für die Hochzeit so frei wie nie zuvor. Aber gerade des- wegen werden Tipps gerne an- genommen. Sie könnte sich zum Beispiel fragen, ob

Seinen ersten Geg- ner aus Belgien bezwang Dargel nach nur wenigen Sekunden mit einem Juji-Gatame (Armhebel). Sein zweiter Kampf, in dem er einem Gegner aus Schweden

Zu den herausragenden Forscherpersönlichkeiten der Kunstgeschichte Ostmitteleuropas und sei- ner Vernetzungen mit dem Westen gehört Markus Hörsch, der 2008–09 am Erlanger

Nur wenige Monate nachdem der NS-Staat 1933 das „Gesetz zur Wiederherstellung des Berufs- beamtentums“ erlassen hatte, das die Entlassung jüdischer Beamter und Staatsangestellter

Beim Zahlenspurt besteht die Aufgabe darin, dass die Kinder möglichst zügig die Zahlen von 1 bis 30 der Reihe nach suchen

das Thema, das am Nachbartisch in bestem Schwäbisch diskutiert wird. Ab 20:00 Uhr werden die Gäste an vielen Tischen unruhig, bezahlen und reihen sich in den Strom der anderen