![Page 1: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/1.jpg)
IntelliVideoIntelliVideo 1 / 25
IntelliVideoIntelliVideo Der intelligente Der intelligenteVideorekorderVideorekorder
![Page 2: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/2.jpg)
IntelliVideoIntelliVideo 2 / 25
Ausgangssituation (1)Ausgangssituation (1)gegeben:gegeben:
•Sendungen mit Start- und EndzeitSendungen mit Start- und Endzeit•Gewichtung für die einzelnen SendungenGewichtung für die einzelnen Sendungen•Videorekorder mit einer maximalen Videorekorder mit einer maximalen
Kapazität (MAX)Kapazität (MAX)
![Page 3: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/3.jpg)
IntelliVideoIntelliVideo 3 / 25
Ausgangssituation (2)Ausgangssituation (2)gesucht:gesucht:
Optimale Sendungsfolge, so Optimale Sendungsfolge, so dassdass
die höchstmögliche Gewichtungdie höchstmögliche Gewichtung
erzielt wird.erzielt wird.
![Page 4: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/4.jpg)
IntelliVideoIntelliVideo 4 / 25
Eine SendungEine Sendung...ist ein Objekt mit folgenden Variablen:...ist ein Objekt mit folgenden Variablen:• Startzeit (Integer-Wert)Startzeit (Integer-Wert)• Endzeit (Integer-Wert)Endzeit (Integer-Wert)• Gewichtung (Integer-Wert)Gewichtung (Integer-Wert)• record-flag record-flag {0,1} {0,1}• Name (String)Name (String)• Länge (Endzeit – Startzeit) Länge (Endzeit – Startzeit)
![Page 5: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/5.jpg)
IntelliVideoIntelliVideo 5 / 25
Vorgehensweise (1)Vorgehensweise (1)
Herausfinden, welche Sendungen Herausfinden, welche Sendungen gleichzeitig laufen.gleichzeitig laufen.
Ein Videorekorder kann nur eine Sendung Ein Videorekorder kann nur eine Sendung gleichzeitig aufnehmengleichzeitig aufnehmen
Finden aller sog. „Cliquen“.Finden aller sog. „Cliquen“.
![Page 6: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/6.jpg)
IntelliVideoIntelliVideo 6 / 25
Definition einer CliqueDefinition einer CliqueClique Clique alle Sendungen, deren alle Sendungen, deren
Sendezeiten sich überlappenSendezeiten sich überlappen
pp11
pp33
pp44
pp22
tt
Clique 1Clique 1Clique 2Clique 2
![Page 7: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/7.jpg)
IntelliVideoIntelliVideo 7 / 25
Finden aller CliquenFinden aller Cliquen1.1. Die Sendungen werden nach Die Sendungen werden nach
Startzeiten geordnet.Startzeiten geordnet.2.2. Die Sendungen werden durchlaufen, Die Sendungen werden durchlaufen,
wobei zur Laufzeit dynamisch ein wobei zur Laufzeit dynamisch ein Heap verwaltet wird.Heap verwaltet wird.
![Page 8: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/8.jpg)
IntelliVideoIntelliVideo 8 / 25
Der HeapDer Heap
Vorteil: Im Heap ist minimales Element Vorteil: Im Heap ist minimales Element immer Wurzelimmer Wurzel
Zugriff auf minEnd in O(1)Zugriff auf minEnd in O(1)
Der Heap ist nach Endzeiten sortiert.Der Heap ist nach Endzeiten sortiert.
Im Heap werden Zeiger auf die Im Heap werden Zeiger auf die Sendungen gehalten.Sendungen gehalten.
![Page 9: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/9.jpg)
IntelliVideoIntelliVideo 9 / 25
Verwaltung des Heaps (1)Verwaltung des Heaps (1)
1. Fall: Heap ist leer1. Fall: Heap ist leer Sendung wird in jedem Fall auf den Sendung wird in jedem Fall auf den
Heap gelegtHeap gelegt
![Page 10: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/10.jpg)
IntelliVideoIntelliVideo 10 / 25
Verwaltung des Heaps (2)Verwaltung des Heaps (2)2.2. Fall: Heap ist nicht leerFall: Heap ist nicht leer
- die Startzeit der Sendung ist kleiner als - die Startzeit der Sendung ist kleiner als minEndminEnd
Sendung kommt in HeapSendung kommt in Heap
Wieder 2 Möglichkeiten:Wieder 2 Möglichkeiten:1. Möglichkeit:1. Möglichkeit:
![Page 11: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/11.jpg)
IntelliVideoIntelliVideo 11 / 25
Verwaltung des Heaps (3)Verwaltung des Heaps (3)
- die Startzeit der Sendung ist größer oder - die Startzeit der Sendung ist größer oder gleich minEnd:gleich minEnd:
Alle Sendungen, die im Heap sind, Alle Sendungen, die im Heap sind, bilden eine Cliquebilden eine Clique
2. Möglichkeit:2. Möglichkeit:
alle Sendungen mit Endzeit < Startzeit alle Sendungen mit Endzeit < Startzeit der aktuellen Sendung raus aus Heapder aktuellen Sendung raus aus Heap
![Page 12: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/12.jpg)
IntelliVideoIntelliVideo 12 / 25
BeispielBeispielpp11
pp22
pp33 pp55
pp44
minEnd = pminEnd = p11.end.endpp22.start < .start < minEndminEnd
pp11 in Heap in Heap pp2 2 in in HeapHeappp33.start > .start >
minEndminEnd Clique {pClique {p11, , pp22}}
tt
pp11.end < .end < pp33.start.start
pp11 aus Heap aus Heappp44.start > .start > minEndminEnd
uswusw..
pp33.start < .start < minEndminEnd
pp3 3 in in HeapHeap
minEnd = minEnd = pp22.end.end
![Page 13: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/13.jpg)
IntelliVideoIntelliVideo 13 / 25
Vorgehensweise (2)Vorgehensweise (2)Für CPLEX-Aufruf ist bestimmte Form Für CPLEX-Aufruf ist bestimmte Form
notwendig.notwendig.
4 Arrays: matbeg, matval, matind, 4 Arrays: matbeg, matval, matind, matcntmatcnt
![Page 14: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/14.jpg)
IntelliVideoIntelliVideo 14 / 25
NebenbedingungenNebenbedingungenEs muß gelten:Es muß gelten:
CliqueSendung
SendungCliquen 1:
Sendungeni
ii MAXlengthprecordp#
..
![Page 15: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/15.jpg)
IntelliVideoIntelliVideo 15 / 25
SendungenSendungen
Sendungen erhalten nach Sortierung Sendungen erhalten nach Sortierung einen Indexeinen Index
SpaltennummeSpaltennummerr
![Page 16: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/16.jpg)
IntelliVideoIntelliVideo 16 / 25
CliquenCliquen
Cliquen werden in Erstellungsreihenfolge Cliquen werden in Erstellungsreihenfolge indiziertindiziert
ZeilennummerZeilennummer
![Page 17: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/17.jpg)
IntelliVideoIntelliVideo 17 / 25
Parameter für CPLEXParameter für CPLEXmatval: immer Wert „1“.matval: immer Wert „1“.
matind: Indizes der Cliquen, in denen eine matind: Indizes der Cliquen, in denen eine Sendung drin ist.Sendung drin ist.
matcnt: Anzahl der Cliquen, in denen eine matcnt: Anzahl der Cliquen, in denen eine Sendung drin ist (+1).Sendung drin ist (+1).
matbeg: errechnet sich aus matcntmatbeg: errechnet sich aus matcnt
1
0
][][i
j
jmatcntimatbeg
![Page 18: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/18.jpg)
IntelliVideoIntelliVideo 18 / 25
Parameter für CPLEX (2)Parameter für CPLEX (2)
rhs: rhs: MAXMAX1111
obj: Gewichte der einzelnen obj: Gewichte der einzelnen Sendungen Sendungen
![Page 19: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/19.jpg)
IntelliVideoIntelliVideo 19 / 25
Vorgehensweise (3)Vorgehensweise (3)
CPLEX liefert nicht unbedingt CPLEX liefert nicht unbedingt ganzzahlige Lösungganzzahlige Lösung
Problem: Videorekorder benötigt Problem: Videorekorder benötigt Information xInformation xii.record=1 oder .record=1 oder x xi i .record.record =0=0
![Page 20: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/20.jpg)
IntelliVideoIntelliVideo 20 / 25
IdeeIdee
Rekursiver Algorithmus nach Rekursiver Algorithmus nach Branch & Bound-Prinzip.Branch & Bound-Prinzip.
CPLEX-Ergebnis liefert obere Schranke der CPLEX-Ergebnis liefert obere Schranke der möglichen Lösungen.möglichen Lösungen.
![Page 21: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/21.jpg)
IntelliVideoIntelliVideo 21 / 25
Branch & BoundBranch & Bound
PP
PP‘‘
XXii = 0 = 0
P‘‘P‘‘
XXjj = = 11
P‘‘P‘‘
XXjj = 0 = 0
XXii = = 11
PP‘‘
P‘‘P‘‘
XXjj = = 11
P‘‘P‘‘
XXjj = 0 = 0
![Page 22: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/22.jpg)
IntelliVideoIntelliVideo 22 / 25
Wahl von pWahl von pii
2. Wähle das p2. Wähle das pii mit dem größten vom mit dem größten vom CPLEX CPLEX ausgegebenen xausgegebenen xii
möglichst gut an den CPLEX anlehnenmöglichst gut an den CPLEX anlehnen
2 Möglichkeiten:2 Möglichkeiten:1.1. Wähle pWähle pii mit größtem Gewicht mit größtem Gewicht
Greedy-AlgorithmusGreedy-Algorithmus
![Page 23: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/23.jpg)
IntelliVideoIntelliVideo 23 / 25
Abbruchbedingungen Abbruchbedingungen (Teilbaum)(Teilbaum)
1.1. Alle xAlle xii wurden auf 0 oder 1 gesetzt wurden auf 0 oder 1 gesetzt ein Blatt wurde erreichtein Blatt wurde erreicht
2.2. Lösung ist kleiner als bisherige beste LösungLösung ist kleiner als bisherige beste Lösung keine Verbesserung möglichkeine Verbesserung möglich
![Page 24: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/24.jpg)
IntelliVideoIntelliVideo 24 / 25
Beispiel (zu 2.)Beispiel (zu 2.)
PP
PP‘‘
PP‘‘
P‘‘P‘‘ P‘‘P‘‘ccTTx=13x=13
ccTTx=11x=11
ccTTx=15x=15
![Page 25: IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder](https://reader035.vdokument.com/reader035/viewer/2022062818/570491c41a28ab14218da1f7/html5/thumbnails/25.jpg)
IntelliVideoIntelliVideo 25 / 25
AbbruchbedingungenAbbruchbedingungen
1. Die erreichten Kosten entsprechen denen, die CPLEX im ersten Schritt berechnet hat
2. Baum wurde vollständig durchlaufen