Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder.

Ähnliche Präsentationen


Präsentation zum Thema: "IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder."—  Präsentation transkript:

1 IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder

2 IntelliVideo2 / 25 Ausgangssituation (1) gegeben: Sendungen mit Start- und EndzeitSendungen mit Start- und Endzeit Gewichtung für die einzelnen SendungenGewichtung für die einzelnen Sendungen Videorekorder mit einer maximalenVideorekorder mit einer maximalen Kapazität (MAX)

3 IntelliVideo3 / 25 Ausgangssituation (2) gesucht: Optimale Sendungsfolge, so dass die höchstmögliche Gewichtung erzielt wird.

4 IntelliVideo4 / 25 Eine Sendung...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  {0,1}record-flag  {0,1} Name (String)Name (String) Länge (Endzeit – Startzeit)Länge (Endzeit – Startzeit)

5 IntelliVideo5 / 25 Vorgehensweise (1)  Herausfinden, welche Sendungen gleichzeitig laufen. Ein Videorekorder kann nur eine Sendung gleichzeitig aufnehmen  Finden aller sog. „Cliquen“.

6 IntelliVideo6 / 25 Definition einer Clique Clique  alle Sendungen, deren Sendezeiten sich überlappen p1p1p1p1 p3p3p3p3 p4p4p4p4 p2p2p2p2 t Clique 1 Clique 2

7 IntelliVideo7 / 25 Finden aller Cliquen 1.Die Sendungen werden nach Startzeiten geordnet. 2.Die Sendungen werden durchlaufen, wobei zur Laufzeit dynamisch ein Heap verwaltet wird.

8 IntelliVideo8 / 25 Der Heap Vorteil: Im Heap ist minimales Element immer Wurzel  Zugriff auf minEnd in O(1) Der Heap ist nach Endzeiten sortiert. Im Heap werden Zeiger auf die Sendungen gehalten.

9 IntelliVideo9 / 25 Verwaltung des Heaps (1) 1. Fall: Heap ist leer  Sendung wird in jedem Fall auf den Heap gelegt

10 IntelliVideo10 / 25 Verwaltung des Heaps (2) 2.Fall: Heap ist nicht leer - die Startzeit der Sendung ist kleiner als minEnd  Sendung kommt in Heap Wieder 2 Möglichkeiten: 1. Möglichkeit:

11 IntelliVideo11 / 25 Verwaltung des Heaps (3) - die Startzeit der Sendung ist größer oder gleich minEnd:  Alle Sendungen, die im Heap sind, bilden eine Clique 2. Möglichkeit:  alle Sendungen mit Endzeit < Startzeit der aktuellen Sendung raus aus Heap der aktuellen Sendung raus aus Heap

12 IntelliVideo12 / 25 Beispiel p1p1p1p1 p2p2p2p2 p3p3p3p3 p5p5p5p5 p4p4p4p4 minEnd = p 1.end p 2.start < minEnd  p 1 in Heap  p 2 in Heap p 3.start > minEnd  Clique {p 1, p 2 } t p 1.end < p 3.start  p 1 aus Heap p 4.start > minEnd usw. p 3.start < minEnd  p 3 in Heap minEnd = p 2.end

13 IntelliVideo13 / 25 Vorgehensweise (2) Für CPLEX-Aufruf ist bestimmte Form notwendig. 4 Arrays: matbeg, matval, matind, matcnt

14 IntelliVideo14 / 25 Nebenbedingungen Es muß gelten:

15 IntelliVideo15 / 25 Sendungen Sendungen erhalten nach Sortierung einen Index  Spaltennummer

16 IntelliVideo16 / 25 Cliquen Cliquen werden in Erstellungsreihenfolge indiziert  Zeilennummer

17 IntelliVideo17 / 25 Parameter für CPLEX matval: immer Wert „1“. matind: Indizes der Cliquen, in denen eine Sendung drin ist. matcnt: Anzahl der Cliquen, in denen eine Sendung drin ist (+1). matbeg: errechnet sich aus matcnt

18 IntelliVideo18 / 25 Parameter für CPLEX (2) rhs:MAX11 obj: Gewichte der einzelnen Sendungen

19 IntelliVideo19 / 25 Vorgehensweise (3) CPLEX liefert nicht unbedingt ganzzahlige Lösung Problem: Videorekorder benötigt Information x i.record=1 oder x i.record =0

20 IntelliVideo20 / 25 Idee Rekursiver Algorithmus nach Branch & Bound-Prinzip. CPLEX-Ergebnis liefert obere Schranke der möglichen Lösungen.

21 IntelliVideo21 / 25 Branch & Bound P P‘ X i = 0 P‘‘ X j = 1 P‘‘ X j = 0 X i = 1 P‘ P‘‘ X j = 1 P‘‘ X j = 0

22 IntelliVideo22 / 25 Wahl von p i 2. Wähle das p i mit dem größten vom CPLEX ausgegebenen x i  möglichst gut an den CPLEX anlehnen  möglichst gut an den CPLEX anlehnen 2 Möglichkeiten: 1.Wähle p i mit größtem Gewicht  Greedy-Algorithmus  Greedy-Algorithmus

23 IntelliVideo23 / 25 Abbruchbedingungen (Teilbaum) 1.Alle x i wurden auf 0 oder 1 gesetzt  ein Blatt wurde erreicht 2.Lösung ist kleiner als bisherige beste Lösung  keine Verbesserung möglich

24 IntelliVideo24 / 25 Beispiel (zu 2.) P P‘ P‘ P‘‘ P‘‘ c T x=13 c T x=11 c T x=15

25 IntelliVideo25 / 25 Abbruchbedingungen 1.Die erreichten Kosten entsprechen denen, die CPLEX im ersten Schritt berechnet hat 2.Baum wurde vollständig durchlaufen


Herunterladen ppt "IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder."

Ähnliche Präsentationen


Google-Anzeigen