• Keine Ergebnisse gefunden

012345678910000000000000100↑0←0←0←9←9←999920088899↑17←17←17173058131313141722↑22←22405813131317172222↑22505813131317182222↑22

N/A
N/A
Protected

Academic year: 2022

Aktie "012345678910000000000000100↑0←0←0←9←9←999920088899↑17←17←17173058131313141722↑22←22405813131317172222↑22505813131317182222↑22"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Datenstrukturen und Algorithmen SS17 Tutoriumslösung - Übung 11 (Abgabe 19.07.2017) aa

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

Globalübungsaufgabe1 (Rucksackproblem):

Gegeben sei ein Rucksack mit maximaler Tragkraft 10 sowie 5 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). Die Gewichte seien dabeiw1 = 5,w2 = 2, w3 = 1, w4 = 3 undw5 = 4 und die Werte c1= 9, c2 = 8,c3= 5, c4 = 4undc5= 5. Geben Sie zudem die vom Algorithmus bestimmte Tabelle Cund diemitzunehmenden Gegenstände an.

Zur Erinnerung: Die Rekursionsgleichung für das Rucksackproblem lautet:

C[i, j] =





0 füri= 0, j≥0

−∞ fürj <0

max(C[i−1, j], ci+C[i−1, j−wi]) sonst

Lösung:

Die Tabelle Cwird 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 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 5 8 13 13 13 14 17 22 ↑ 22 ← 22

4 0 5 8 13 13 13 17 17 22 22 ↑ 22

5 0 5 8 13 13 13 17 18 22 22 ↑ 22

Damit ergibt sich der maximale Wert 22 für den Fall, dass der 1., 2. und 3. Gegenstand mitgenommen werden.

Globalübungsaufgabe2 (Longest Common Subsequence):

Bestimmen Sie dielängste gemeinsame Teilsequenz der SequenzenBRAUTKLEID undBLAUKRAUT. Benutzen Sie hierfür den in der Vorlesung vorgestellten Algorithmus mit dynamischer Programmierung und füllen Sie die folgende Tabelle aus. Eine leere Sequenz können Sie durch-angeben.

Lösung:

Die Tabelle wird vom Algorithmus wie folgt gefüllt:

1

(2)

Datenstrukturen und Algorithmen SS17 Tutoriumslösung - Übung 11 (Abgabe 19.07.2017)

∅ B L A U K R A U T

∅ 0 0 0 0 0 0 0 0 0 0

B 0 - 1 ← 1 ← 1 ← 1 ← 1 1 1 1 1

R 0 1 1 1 1 1 - 2 2 2 2

A 0 1 1 2 2 2 2 - 3 3 3

U 0 1 1 2 3 3 3 3 - 4 4

T 0 1 1 2 3 3 3 3 4 - 5

K 0 1 1 2 3 4 4 4 4 ↑ 5

L 0 1 2 2 3 4 4 4 4 ↑ 5

E 0 1 2 2 3 4 4 4 4 ↑ 5

I 0 1 2 2 3 4 4 4 4 ↑ 5

D 0 1 2 2 3 4 4 4 4 ↑ 5

Längste gemeinsame Teilsequenz:BRAUT

Globalübungsaufgabe3 (Huffman Code):

Bestimmen Sie einen optimalen präfix-freien Binär-Code für das folgende 8-elementige Alphabet mit den angegebenen Häufigkeiten.

AC D EFGH I 2 4 11 8 5 5 9 9

Lösung:

Sortiere nach aufsteigender Häufigkeit:

A-2, C-4, F-5, G-5, E-8, H-9, I-9, D-11 Queue nachi-ter Iteration:

1) F-5, G-5, AC-6, E-8, H-9, I-9, D-11 2) AC-6, E-8, H-9, I-9, FG-10, D-11 3) H-9, I-9, FG-10, D-11, ACE-14 4) FG-10, D-11, ACE-14, HI-18 5) FGD-21, ACEHI-32,

6) FGDACEHI-53

Code: A: 1000, C: 1001, D: 01, E: 101, F: 000, G: 001, H: 110, I: 111.

Globalübungsaufgabe4 (Stundenplaner Problem (gewichtet)):

In der Vorlesung haben wir das Stundenplanungs Problem betrachtet und es durch ein Greedy verfahren gelöst.

Nun betrachten wir die gewichte Version dieser Problemstellung (siehe auch gewichtetes Intervall-Scheduling).

Das heißt, dass jeder Job noch ein zusätzliches Gewicht besitzt. Die Zielfunktion lautet dann: maximiere die Summe der Gewichte der ausgewählen, kompatiblen Jobs

Gegeben sei die folgende Instanz des gewichteten Problems. Jede Anfrage Vi ist gegeben durch ein Intervall (Li, Ri) sowie ein Gewicht wi. Zwei AnfragenVi undVj sind kompatibel, wennRi ≤Lj oder Rj ≤Li gilt.

(Hinweis zur Notation:p(i)bezeichnet den maximalen Indexj < i, so dassiundj kompatibel sind.M[j] ist

2

(3)

Datenstrukturen und Algorithmen SS17 Tutoriumslösung - Übung 11 (Abgabe 19.07.2017)

der maximal Gewinn, der bis einschließlich Anfragej generiert werden kann.)

V1= (0,1), w1= 2, V5= (3,5), w5= 3, V2= (0,3), w2= 3, V6= (4,6), w6= 3, V3= (2,3), w3= 2, V7= (5,7), w7= 2.

V4= (3,4), w4= 1,

a) Geben Sie ein Gegenbeispiel an, indem der Greedy-Lösungsansatz aus der Vorlesung beim gewichteten Problem scheitert.

b) Geben Sie mit den obigen Bezeichnungen eine Rekursionsformel fürM[j] für das Problem an. Hinweis:

Nutzen Siep(j)um sicherzustellen, dass sich keine Vorträge überlappen.

c) Überlegen Sie sich mit obiger Rekursinsformel, wie ein Dynamisches Programm funktionieren würde.

Lösen Sie die obige Instanz und tragen Sie ihre Ergebnisse in die folgende Tabelle 3 ein!

d) Welche Anfragen werden in der optimalen Lösung ausgewählt?

Lösung:

a) Der Algortihmus ist nicht optimal, da er die Gewichte nicht berücksichtigt, diese aber in die Zielfunktion eingehen.

Gegenbeispiel:

V1= (1,3), w1= 1, V2= (3,5), w2= 1, V3= (2,4), w3= 3

Algorithmus aus Vorlesung würde V1 und V2 auswählen. Diese haben zusammen jedoch ein kleinere Gewicht alsV3 alleine.

b) Rekursionsformel:

M[j] = max{wj+M[p(j)], M[j−1]}

c) Code Idee:

Input: {V_1, ... , V_n} mit R_1<= ... <= R_n Output: Maximale Gewicht der ausgewählten Vorträge M[0]=0

for i=1 to n do bestimme p(i)

M[i]= max {w_i+ M[p(i)], M[i-1]}

end

rekonstruiere Pfad return M[n]

i 0 1 2 3 4 5 6 7

wi 0 2 3 2 1 3 3 2

p(i) 0 0 0 1 3 3 4 5

M(i) 0 2 3 4 5 7 8 9

d) M[7] ist 9. Dazu sindV1, V3, V5undV7 auszuwählen.

3

Referenzen

ÄHNLICHE DOKUMENTE

nutias quascunque curare adeoque impune peccata ifta leuioris generis cdmmitti poiie. Leuioribus autem primum commiifis, ad grauiora mox facile progrediuntur,

In Zusammenarbeit mit den Partnerdistrikten und -spitälern hat SolidarMed im Jahr 2019 eine breite Palette von Dienst- leistungen erbracht: Ausbau der Infrastruktur, Beschaffung

Auftragsgemäss haben wir als Revisions- stelle die beiliegende Jahresrechnung der SolidarMed, Schweizer Organisation für Gesundheit in Afrika, bestehend aus Bilanz,

Bestimmen Sie mit Hilfe des in der Vorlesung vorgestellten Algorithmus zum Lösen des Rucksackproblems mit dynamischer Programmierung den maximalen Gesamt- wert der Gegenstände, die

Bestimmen Sie mit Hilfe des in der Vorlesung vorgestellten Algorithmus zum Lösen des Rucksackproblems mit dynamischer Programmierung den maximalen Gesamt- wert der Gegenstände, die

[r]

[r]

[r]