europe seen by the germans - wuecampus2.uni-wuerzburg.de · beschriftung von punkten allgemeiner...
TRANSCRIPT
Schriftplazierung
http://bigthink.com/blogs/strange-maps
Europe seen by the Germans
Schriftplazierung
http://bigthink.com/blogs/strange-maps
Europe seen by the French
http://www.worldofmaps.net/
http://www.worldofmaps.net/
Beschriftung (Namen) für • Flächen • Linien • Punkte
abhängig vom Maßstab! (Berlin: Fläche oder Punkt)
nach Imhof (1975)
Kriterien für gute Beschriftung 1. Lesbarkeit
nach Imhof (1975)
Kriterien für gute Beschriftung 1. Lesbarkeit 2. klare Zuordnung von Namen zu Objekten
nach Imhof (1975)
Kriterien für gute Beschriftung 1. Lesbarkeit 2. klare Zuordnung von Namen zu Objekten 3. Namen sollen anderen Karteninhalt wenig stören (keine
Verdeckung von Objekten)
nach Imhof (1975)
Kriterien für gute Beschriftung 1. Lesbarkeit 2. klare Zuordnung von Namen zu Objekten 3. Namen sollen anderen Karteninhalt wenig stören (keine
Verdeckung von Objekten) 4. Namen sollen Verständnis von Kartenobjekten erleichtern. 5. Schrifttyp und -größe sollen Klassen und Hierarchien wiedergeben.
nach Imhof (1975)
Kriterien für gute Beschriftung 1. Lesbarkeit 2. klare Zuordnung von Namen zu Objekten 3. Namen sollen anderen Karteninhalt wenig stören (keine
Verdeckung von Objekten) 4. Namen sollen Verständnis von Kartenobjekten erleichtern. 5. Schrifttyp und -größe sollen Klassen und Hierarchien wiedergeben. 6. Dichte der Namen soll angemessen variieren.
nach Imhof (1975)
Dichte der Namen soll mit Siedlungsdichte variieren, in Ballungszentren aber nicht zu hoch sein.
maps.google.com
Kriterien für gute Beschriftung 1. Lesbarkeit 2. klare Zuordnung von Namen zu Objekten 3. Namen sollen anderen Karteninhalt wenig stören (keine
Verdeckung von Objekten) 4. Namen sollen Verständnis von Kartenobjekten erleichtern. 5. Schrifttyp und -größe sollen Klassen und Hierarchien wiedergeben. 6. Dichte der Namen soll angemessen variieren.
nach Imhof (1975)
Textplazierung: 1. Auswahl von Namen 2. Anordnung der Schrift
maps.google.com
Beschriftung von Punkten
four-position model
Beschriftung von Punkten
four-position model
Würzburg
Beschriftung von Punkten
four-position model
Würzburg
Beschriftung von Punkten
four-position model
Würzburg
Beschriftung von Punkten
four-position model
Würzburg
Beschriftung von Punkten
four-position model
two-position model
one-position model
Beschriftung von Punkten
four-position model
two-position model
one-position model
four-slider model
two-slider model
one-slider model
Würzburg Würzburg
fixed-position model slider model
Beschriftung von Punkten
typisches Problem: • Punktmenge gegeben
Beschriftung von Punkten
typisches Problem: • Punktmenge gegeben • Modell gewählt
Beschriftung von Punkten
typisches Problem: • Punktmenge gegeben • Modell gewählt • beschrifte möglichst alle Punkte, so dass sich Label nicht schneiden
Beschriftung von Punkten
typisches Problem: • Punktmenge gegeben • Modell gewählt • beschrifte möglichst alle Punkte, so dass sich Label nicht schneiden
Beschriftung von Punkten
typisches Problem: • Punktmenge gegeben • Modell gewählt • beschrifte möglichst alle Punkte, so dass sich Label nicht schneiden
Beschriftung von Punkten
typisches Problem: • Punktmenge gegeben • Modell gewählt • beschrifte möglichst alle Punkte, so dass sich Label nicht schneiden
Beschriftung von Punkten
typisches Problem: • Punktmenge gegeben • Modell gewählt • beschrifte möglichst alle Punkte, so dass sich Label nicht schneiden
Bei fünf Punkten gibt es im four-position model möglicherweise keine Lösung, in der alle Punkte beschriftet werden!
Beschriftung von Punkten
typisches Problem: • Punktmenge gegeben • Modell gewählt • beschrifte möglichst viele Punkte, so dass sich Label nicht schneiden
Bei fünf Punkten gibt es im four-position model möglicherweise keine Lösung, in der alle Punkte beschriftet werden!
Beschriftung von Punkten Allgemeiner Ansatz für fixed-position models: Agarwal et al. (1998): Label placement by maximum independent set in rectangles
• Für Punkt 𝑝𝑖 mit 𝑖 = 1,… ,𝑚 gibt es eine diskrete Menge von Labelpositionen, d.h., eine Menge 𝑅𝑖 von achsparallelen Rechtecken,
wobei 𝑝𝑖 ∈ 𝑟 für jedes 𝑟 ∈ 𝑅𝑖.
Beschriftung von Punkten Allgemeiner Ansatz für fixed-position models:
• gegeben Menge 𝑅 = 𝑅1 ∪⋯∪ 𝑅𝑚 • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
• Für Punkt 𝑝𝑖 mit 𝑖 = 1,… ,𝑚 gibt es eine diskrete Menge von Labelpositionen, d.h., eine Menge 𝑅𝑖 von achsparallelen Rechtecken,
wobei 𝑝𝑖 ∈ 𝑟 für jedes 𝑟 ∈ 𝑅𝑖.
Agarwal et al. (1998): Label placement by maximum independent set in rectangles
Beschriftung von Punkten Allgemeiner Ansatz für fixed-position models:
• gegeben Menge 𝑅 = 𝑅1 ∪⋯∪ 𝑅𝑚 • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
• Für Punkt 𝑝𝑖 mit 𝑖 = 1,… ,𝑚 gibt es eine diskrete Menge von Labelpositionen, d.h., eine Menge 𝑅𝑖 von achsparallelen Rechtecken,
wobei 𝑝𝑖 ∈ 𝑟 für jedes 𝑟 ∈ 𝑅𝑖.
(Es werden nie zwei Rechtecke 𝑟1, 𝑟2 für denselben Punkt 𝑝 gewählt, da 𝑝 in 𝑟1 und 𝑟2 liegt; 𝑟1 und 𝑟2 schneiden sich also.)
Agarwal et al. (1998): Label placement by maximum independent set in rectangles
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 Definition: Der Schnittgraph 𝐺 = (𝑅, 𝐸) • enthält einen Knoten für jedes Rechteck und • eine Kante 𝑢, 𝑣 wenn sich die Rechtecke 𝑢 und 𝑣 schneiden.
𝐺
𝑟1
𝑟2
𝑟6
𝑟3 𝑟4
𝑟5
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 Definition: Der Schnittgraph 𝐺 = (𝑅, 𝐸) • enthält einen Knoten für jedes Rechteck und • eine Kante 𝑢, 𝑣 wenn sich die Rechtecke 𝑢 und 𝑣 schneiden.
𝐺
𝑟1
𝑟2
𝑟6
𝑟3 𝑟4
𝑟5
Lösung: • Finde größte unabhängige Menge in 𝐺
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 Definition: Der Schnittgraph 𝐺 = (𝑅, 𝐸) • enthält einen Knoten für jedes Rechteck und • eine Kante 𝑢, 𝑣 wenn sich die Rechtecke 𝑢 und 𝑣 schneiden.
𝐺
𝑟1
𝑟2
𝑟6
𝑟3 𝑟4
𝑟5
Lösung: • Finde größte unabhängige Menge in 𝐺
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 Definition: Der Schnittgraph 𝐺 = (𝑅, 𝐸) • enthält einen Knoten für jedes Rechteck und • eine Kante 𝑢, 𝑣 wenn sich die Rechtecke 𝑢 und 𝑣 schneiden.
𝐺
𝑟1
𝑟2
𝑟6
𝑟3 𝑟4
𝑟5
Lösung: • Finde größte unabhängige Menge in 𝐺
für allgemeine Graphen NP-schwer!
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 Definition: Der Schnittgraph 𝐺 = (𝑅, 𝐸) • enthält einen Knoten für jedes Rechteck und • eine Kante 𝑢, 𝑣 wenn sich die Rechtecke 𝑢 und 𝑣 schneiden.
𝐺
𝑟1
𝑟2
𝑟6
𝑟3 𝑟4
𝑟5
Lösung: • Finde größte unabhängige Menge in 𝐺
für Schnittgraphen von gleich großen Quadraten NP-schwer! (Imai & Asano, 1983)
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 Definition: Der Schnittgraph 𝐺 = (𝑅, 𝐸) • enthält einen Knoten für jedes Rechteck und • eine Kante 𝑢, 𝑣 wenn sich die Rechtecke 𝑢 und 𝑣 schneiden.
𝐺
𝑟1
𝑟2
𝑟6
𝑟3 𝑟4
𝑟5
Ziel: Approximationsalgorithmus
Ansatz: Verwende Algorithmus für einfachen Spezialfall
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Spezialfall: • Es gibt eine horizontale Gerade, die alle Rechtecke in 𝑅 schneidet.
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Spezialfall: • Es gibt eine horizontale Gerade, die alle Rechtecke in 𝑅 schneidet.
Algorithmus:
Greedy!
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Spezialfall: • Es gibt eine horizontale Gerade, die alle Rechtecke in 𝑅 schneidet.
Algorithmus: sortiere Rechtecke nach 𝑥-Koordinate ihres rechten Randes in Liste 𝐿 S = ∅, 𝑟 = 𝐿.ℎ𝑒𝑎𝑑 while 𝑟 ≠ 𝑛𝑖𝑙 do 𝑆 = 𝑆 ∪ 𝑟 𝑟′ = 𝑟.𝑛𝑒𝑥𝑡 while 𝑟′ ≠ 𝑛𝑖𝑙 and 𝑟′.𝑥𝑀𝑖𝑛 ≤ 𝑟.𝑥𝑀𝑎𝑥 do 𝑟′ = 𝑟′.𝑛𝑒𝑥𝑡 𝑟 = 𝑟′ return 𝑆
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Spezialfall: • Es gibt eine horizontale Gerade, die alle Rechtecke in 𝑅 schneidet.
Algorithmus: sortiere Rechtecke nach 𝑥-Koordinate ihres rechten Randes in Liste 𝐿 S = ∅, 𝑟 = 𝐿.ℎ𝑒𝑎𝑑 while 𝑟 ≠ 𝑛𝑖𝑙 do 𝑆 = 𝑆 ∪ 𝑟 𝑟′ = 𝑟.𝑛𝑒𝑥𝑡 while 𝑟′ ≠ 𝑛𝑖𝑙 and 𝑟′.𝑥𝑀𝑖𝑛 ≤ 𝑟.𝑥𝑀𝑎𝑥 do 𝑟′ = 𝑟′.𝑛𝑒𝑥𝑡 𝑟 = 𝑟′ return 𝑆
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Spezialfall: • Es gibt eine horizontale Gerade, die alle Rechtecke in 𝑅 schneidet.
Algorithmus: sortiere Rechtecke nach 𝑥-Koordinate ihres rechten Randes in Liste 𝐿 S = ∅, 𝑟 = 𝐿.ℎ𝑒𝑎𝑑 while 𝑟 ≠ 𝑛𝑖𝑙 do 𝑆 = 𝑆 ∪ 𝑟 𝑟′ = 𝑟.𝑛𝑒𝑥𝑡 while 𝑟′ ≠ 𝑛𝑖𝑙 and 𝑟′.𝑥𝑀𝑖𝑛 ≤ 𝑟.𝑥𝑀𝑎𝑥 do 𝑟′ = 𝑟′.𝑛𝑒𝑥𝑡 𝑟 = 𝑟′ return 𝑆
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Spezialfall: • Es gibt eine horizontale Gerade, die alle Rechtecke in 𝑅 schneidet.
Algorithmus: sortiere Rechtecke nach 𝑥-Koordinate ihres rechten Randes in Liste 𝐿 S = ∅, 𝑟 = 𝐿.ℎ𝑒𝑎𝑑 while 𝑟 ≠ 𝑛𝑖𝑙 do 𝑆 = 𝑆 ∪ 𝑟 𝑟′ = 𝑟.𝑛𝑒𝑥𝑡 while 𝑟′ ≠ 𝑛𝑖𝑙 and 𝑟′.𝑥𝑀𝑖𝑛 ≤ 𝑟.𝑥𝑀𝑎𝑥 do 𝑟′ = 𝑟′.𝑛𝑒𝑥𝑡 𝑟 = 𝑟′ return 𝑆
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Spezialfall: • Es gibt eine horizontale Gerade, die alle Rechtecke in 𝑅 schneidet.
Algorithmus: sortiere Rechtecke nach 𝑥-Koordinate ihres rechten Randes in Liste 𝐿 S = ∅, 𝑟 = 𝐿.ℎ𝑒𝑎𝑑 while 𝑟 ≠ 𝑛𝑖𝑙 do 𝑆 = 𝑆 ∪ 𝑟 𝑟′ = 𝑟.𝑛𝑒𝑥𝑡 while 𝑟′ ≠ 𝑛𝑖𝑙 and 𝑟′.𝑥𝑀𝑖𝑛 ≤ 𝑟.𝑥𝑀𝑎𝑥 do 𝑟′ = 𝑟′.𝑛𝑒𝑥𝑡 𝑟 = 𝑟′ return 𝑆
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Spezialfall: • Es gibt eine horizontale Gerade, die alle Rechtecke in 𝑅 schneidet.
Algorithmus: sortiere Rechtecke nach 𝑥-Koordinate ihres rechten Randes in Liste 𝐿 S = ∅, 𝑟 = 𝐿.ℎ𝑒𝑎𝑑 while 𝑟 ≠ 𝑛𝑖𝑙 do 𝑆 = 𝑆 ∪ 𝑟 𝑟′ = 𝑟.𝑛𝑒𝑥𝑡 while 𝑟′ ≠ 𝑛𝑖𝑙 and 𝑟′.𝑥𝑀𝑖𝑛 ≤ 𝑟.𝑥𝑀𝑎𝑥 do 𝑟′ = 𝑟′.𝑛𝑒𝑥𝑡 𝑟 = 𝑟′ return 𝑆
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Spezialfall: • Es gibt eine horizontale Gerade, die alle Rechtecke in 𝑅 schneidet.
Algorithmus: sortiere Rechtecke nach 𝑥-Koordinate ihres rechten Randes in Liste 𝐿 S = ∅, 𝑟 = 𝐿.ℎ𝑒𝑎𝑑 while 𝑟 ≠ 𝑛𝑖𝑙 do 𝑆 = 𝑆 ∪ 𝑟 𝑟′ = 𝑟.𝑛𝑒𝑥𝑡 while 𝑟′ ≠ 𝑛𝑖𝑙 and 𝑟′.𝑥𝑀𝑖𝑛 ≤ 𝑟.𝑥𝑀𝑎𝑥 do 𝑟′ = 𝑟′.𝑛𝑒𝑥𝑡 𝑟 = 𝑟′ return 𝑆
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Spezialfall: • Es gibt eine horizontale Gerade, die alle Rechtecke in 𝑅 schneidet.
Algorithmus: sortiere Rechtecke nach 𝑥-Koordinate ihres rechten Randes in Liste 𝐿 S = ∅, 𝑟 = 𝐿.ℎ𝑒𝑎𝑑 while 𝑟 ≠ 𝑛𝑖𝑙 do 𝑆 = 𝑆 ∪ 𝑟 𝑟′ = 𝑟.𝑛𝑒𝑥𝑡 while 𝑟′ ≠ 𝑛𝑖𝑙 and 𝑟′.𝑥𝑀𝑖𝑛 ≤ 𝑟.𝑥𝑀𝑎𝑥 do 𝑟′ = 𝑟′.𝑛𝑒𝑥𝑡 𝑟 = 𝑟′ return 𝑆
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Spezialfall: • Es gibt eine horizontale Gerade, die alle Rechtecke in 𝑅 schneidet.
Algorithmus: sortiere Rechtecke nach 𝑥-Koordinate ihres rechten Randes in Liste 𝐿 S = ∅, 𝑟 = 𝐿.ℎ𝑒𝑎𝑑 while 𝑟 ≠ 𝑛𝑖𝑙 do 𝑆 = 𝑆 ∪ 𝑟 𝑟′ = 𝑟.𝑛𝑒𝑥𝑡 while 𝑟′ ≠ 𝑛𝑖𝑙 and 𝑟′.𝑥𝑀𝑖𝑛 ≤ 𝑟.𝑥𝑀𝑎𝑥 do 𝑟′ = 𝑟′.𝑛𝑒𝑥𝑡 𝑟 = 𝑟′ return 𝑆
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Spezialfall: • Es gibt eine horizontale Gerade, die alle Rechtecke in 𝑅 schneidet.
Algorithmus: sortiere Rechtecke nach 𝑥-Koordinate ihres rechten Randes in Liste 𝐿 S = ∅, 𝑟 = 𝐿.ℎ𝑒𝑎𝑑 while 𝑟 ≠ 𝑛𝑖𝑙 do 𝑆 = 𝑆 ∪ 𝑟 𝑟′ = 𝑟.𝑛𝑒𝑥𝑡 while 𝑟′ ≠ 𝑛𝑖𝑙 and 𝑟′.𝑥𝑀𝑖𝑛 ≤ 𝑟.𝑥𝑀𝑎𝑥 do 𝑟′ = 𝑟′.𝑛𝑒𝑥𝑡 𝑟 = 𝑟′ return 𝑆
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Spezialfall: • Es gibt eine horizontale Gerade, die alle Rechtecke in 𝑅 schneidet.
Algorithmus:
Greedy! Laufzeit: • 𝑂 𝑛 log 𝑛 • bzw. 𝑂 𝑛 , wenn Eingabe bereits geordnet
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 𝑟7
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 Definitionen: • Sei 𝑥med der Median von 𝑟.𝑥𝑀𝑖𝑛, 𝑟.𝑥𝑀𝑎𝑥 𝑟 ∈ 𝑅 .
𝑥med
𝑟7
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 Definitionen: • Sei 𝑥med der Median von 𝑟.𝑥𝑀𝑖𝑛, 𝑟.𝑥𝑀𝑎𝑥 𝑟 ∈ 𝑅 . • Sei 𝑅12 ⊆ 𝑅 die Menge der Rechtecke auf der Vertikalen durch 𝑥med.
𝑟7
𝑥med
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 Definitionen: • Sei 𝑥med der Median von 𝑟.𝑥𝑀𝑖𝑛, 𝑟.𝑥𝑀𝑎𝑥 𝑟 ∈ 𝑅 . • Sei 𝑅12 ⊆ 𝑅 die Menge der Rechtecke auf der Vertikalen durch 𝑥med. • Sei 𝑅1 ⊆ 𝑅 die Menge der Rechtecke links der Vertikalen durch 𝑥med.
𝑟7
𝑥med
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 Definitionen: • Sei 𝑥med der Median von 𝑟.𝑥𝑀𝑖𝑛, 𝑟.𝑥𝑀𝑎𝑥 𝑟 ∈ 𝑅 . • Sei 𝑅12 ⊆ 𝑅 die Menge der Rechtecke auf der Vertikalen durch 𝑥med. • Sei 𝑅1 ⊆ 𝑅 die Menge der Rechtecke links der Vertikalen durch 𝑥med. • Sei 𝑅2 ⊆ 𝑅 die Menge der Rechtecke rechts der Vertikalen durch 𝑥med.
𝑟7
𝑥med
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 Algorithmus (für 𝑛 ≤ 2): if 𝑛 = 0 then return ∅ if 𝑛 = 1 or 𝑟1 ∩ 𝑟2 ≠ ∅ then return 𝑟1 return 𝑟1, 𝑟2
𝑥med
𝑟7
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 Algorithmus (für 𝑛 > 2): Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
𝑥med
𝑟7
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 Algorithmus (für 𝑛 > 2): Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
𝑥med
𝑟7
𝑰𝟏𝟐
Beschriftung von Punkten Problem:
• gegeben Menge 𝑅 von 𝑛 achsparallelen Rechtecken • wähle möglichst viele Rechtecke aus 𝑅, die sich nicht schneiden
Allgemeinfall:
𝑟1
𝑟2 𝑟3
𝑟4
𝑟5 𝑟6 Algorithmus (für 𝑛 > 2): Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
𝑥med
𝑟7 𝑰𝟏 ∪ 𝑰𝟐
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Behauptung: Der Algorithmus liefert eine Lösung 𝐼 mit 𝐼 ≥ 𝐼∗ log 𝑅 , wobei 𝐼∗ eine optimale Lösung ist.
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Behauptung: Der Algorithmus liefert eine Lösung 𝐼 mit 𝐼 ≥ 𝐼∗ log 𝑅 , wobei 𝐼∗ eine optimale Lösung ist.
Beweis durch Induktion: Behauptung stimmt für 𝑅 ≤ 2 Zu zeigen: Wenn Behauptung für 𝑅 < 𝑛 stimmt, dann auch für 𝑅 = 𝑛
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beweis durch Induktion: 𝐼12
∗ , 𝐼1∗, 𝐼2
∗ seien optimale Lösungen für 𝑅12, 𝑅1, 𝑅2 𝐼12
∗ = 𝐼12 ≥ 𝐼∗ ∩ 𝑅12
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beweis durch Induktion: 𝐼12
∗ , 𝐼1∗, 𝐼2
∗ seien optimale Lösungen für 𝑅12, 𝑅1, 𝑅2 𝐼12
∗ = 𝐼12 ≥ 𝐼∗ ∩ 𝑅12 𝐼1 ≥ 𝐼1
∗ log 𝑛 2 ≥ 𝐼∗ ∩ 𝑅1 log 𝑛 − 1 wegen 𝑅1 ≤ 𝑛 2 und Induktionsannahme
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beweis durch Induktion: 𝐼12
∗ , 𝐼1∗, 𝐼2
∗ seien optimale Lösungen für 𝑅12, 𝑅1, 𝑅2 𝐼12
∗ = 𝐼12 ≥ 𝐼∗ ∩ 𝑅12 𝐼1 ≥ 𝐼∗ ∩ 𝑅1 log 𝑛 − 1
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beweis durch Induktion: 𝐼12
∗ , 𝐼1∗, 𝐼2
∗ seien optimale Lösungen für 𝑅12, 𝑅1, 𝑅2 𝐼12
∗ = 𝐼12 ≥ 𝐼∗ ∩ 𝑅12 𝐼1 ≥ 𝐼∗ ∩ 𝑅1 log 𝑛 − 1 , 𝐼2 ≥ 𝐼∗ ∩ 𝑅2 log 𝑛 − 1
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beweis durch Induktion: 𝐼12
∗ , 𝐼1∗, 𝐼2
∗ seien optimale Lösungen für 𝑅12, 𝑅1, 𝑅2 𝐼12
∗ = 𝐼12 ≥ 𝐼∗ ∩ 𝑅12 𝐼1 ≥ 𝐼∗ ∩ 𝑅1 log 𝑛 − 1 , 𝐼2 ≥ 𝐼∗ ∩ 𝑅2 log 𝑛 − 1
𝐼 = max 𝐼12 , 𝐼1 + 𝐼2 ≥ max 𝐼∗ ∩ 𝑅12 ,𝐼∗∩𝑅1 + 𝐼∗∩𝑅2
log 𝑛−1
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beweis durch Induktion: 𝐼12
∗ , 𝐼1∗, 𝐼2
∗ seien optimale Lösungen für 𝑅12, 𝑅1, 𝑅2 𝐼12
∗ = 𝐼12 ≥ 𝐼∗ ∩ 𝑅12 𝐼1 ≥ 𝐼∗ ∩ 𝑅1 log 𝑛 − 1 , 𝐼2 ≥ 𝐼∗ ∩ 𝑅2 log 𝑛 − 1
𝐼 = max 𝐼12 , 𝐼1 + 𝐼2 ≥ max 𝐼∗ ∩ 𝑅12 ,𝐼∗∩𝑅1 + 𝐼∗∩𝑅2
log 𝑛−1
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beweis durch Induktion: 𝐼12
∗ , 𝐼1∗, 𝐼2
∗ seien optimale Lösungen für 𝑅12, 𝑅1, 𝑅2 𝐼12
∗ = 𝐼12 ≥ 𝐼∗ ∩ 𝑅12 𝐼1 ≥ 𝐼∗ ∩ 𝑅1 log 𝑛 − 1 , 𝐼2 ≥ 𝐼∗ ∩ 𝑅2 log 𝑛 − 1
𝐼 = max 𝐼12 , 𝐼1 + 𝐼2 ≥ max 𝐼∗ ∩ 𝑅12 ,𝐼∗∩𝑅1 + 𝐼∗∩𝑅2
log 𝑛−1
𝐼∗ − 𝐼∗ ∩ 𝑅12
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beweis durch Induktion: 𝐼12
∗ , 𝐼1∗, 𝐼2
∗ seien optimale Lösungen für 𝑅12, 𝑅1, 𝑅2 𝐼12
∗ = 𝐼12 ≥ 𝐼∗ ∩ 𝑅12 𝐼1 ≥ 𝐼∗ ∩ 𝑅1 log 𝑛 − 1 , 𝐼2 ≥ 𝐼∗ ∩ 𝑅2 log 𝑛 − 1
𝐼 = max 𝐼12 , 𝐼1 + 𝐼2 ≥ max 𝐼∗ ∩ 𝑅12 ,𝐼∗ − 𝐼∗∩𝑅12 log 𝑛−1
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beweis durch Induktion: 𝐼12
∗ , 𝐼1∗, 𝐼2
∗ seien optimale Lösungen für 𝑅12, 𝑅1, 𝑅2
𝐼 = max 𝐼12 , 𝐼1 + 𝐼2 ≥ max 𝐼∗ ∩ 𝑅12 ,𝐼∗ − 𝐼∗ ∩ 𝑅12
log 𝑛 − 1
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beweis durch Induktion: 𝐼12
∗ , 𝐼1∗, 𝐼2
∗ seien optimale Lösungen für 𝑅12, 𝑅1, 𝑅2
𝑰 = max 𝐼12 , 𝐼1 + 𝐼2 ≥ max 𝑰∗ ∩ 𝑹𝟏𝟐 ,𝐼∗ − 𝐼∗ ∩ 𝑅12
log 𝑛 − 1
Fall 𝑰∗ ∩ 𝑹𝟏𝟐 ≥ 𝑰∗ 𝐥𝐨𝐠𝒏 :
𝐼 ≥ 𝐼∗ log 𝑛
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beweis durch Induktion: 𝐼12
∗ , 𝐼1∗, 𝐼2
∗ seien optimale Lösungen für 𝑅12, 𝑅1, 𝑅2
𝑰 = max 𝐼12 , 𝐼1 + 𝐼2 ≥ max 𝐼∗ ∩ 𝑅12 ,𝑰∗ − 𝑰∗ ∩ 𝑹𝟏𝟐
𝐥𝐨𝐠𝒏 − 𝟏
Fall 𝑰∗ ∩ 𝑹𝟏𝟐 < 𝑰∗ 𝐥𝐨𝐠𝒏 :
𝐼 ≥ max 𝐼∗ ∩ 𝑅12 ,𝐼∗ − 𝐼∗ log 𝑛
log 𝑛 − 1= max 𝐼∗ ∩ 𝑅12 ,
𝐼∗
log 𝑛 ≥
𝐼∗
log 𝑛
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beweis durch Induktion: 𝐼12
∗ , 𝐼1∗, 𝐼2
∗ seien optimale Lösungen für 𝑅12, 𝑅1, 𝑅2
𝑰 = max 𝐼12 , 𝐼1 + 𝐼2 ≥ max 𝐼∗ ∩ 𝑅12 ,𝑰∗ − 𝑰∗ ∩ 𝑹𝟏𝟐
𝐥𝐨𝐠𝒏 − 𝟏
Fall 𝑰∗ ∩ 𝑹𝟏𝟐 < 𝑰∗ 𝐥𝐨𝐠𝒏 :
𝐼 ≥ max 𝐼∗ ∩ 𝑅12 ,𝐼∗ − 𝐼∗ log 𝑛
log 𝑛 − 1= max 𝐼∗ ∩ 𝑅12 ,
𝐼∗
log 𝑛 ≥
𝐼∗
log 𝑛
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beweis durch Induktion: 𝐼12
∗ , 𝐼1∗, 𝐼2
∗ seien optimale Lösungen für 𝑅12, 𝑅1, 𝑅2
𝑰 = max 𝐼12 , 𝐼1 + 𝐼2 ≥ max 𝐼∗ ∩ 𝑅12 ,𝑰∗ − 𝑰∗ ∩ 𝑹𝟏𝟐
𝐥𝐨𝐠𝒏 − 𝟏
Fall 𝑰∗ ∩ 𝑹𝟏𝟐 < 𝑰∗ 𝐥𝐨𝐠𝒏 :
𝐼 ≥ max 𝐼∗ ∩ 𝑅12 ,𝐼∗ − 𝐼∗ log 𝑛
log 𝑛 − 1= max 𝐼∗ ∩ 𝑅12 ,
𝐼∗
log 𝑛 ≥
𝐼∗
log 𝑛
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Beweis durch Induktion: 𝐼12
∗ , 𝐼1∗, 𝐼2
∗ seien optimale Lösungen für 𝑅12, 𝑅1, 𝑅2
Also 𝐼 ≥𝐼∗
log 𝑛
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Laufzeit: 𝑇 𝑛 = 2𝑇 𝑛 2 + 𝑂 𝑛
Rekursionen
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Laufzeit: 𝑇 𝑛 = 2𝑇 𝑛 2 + 𝑂 𝑛
Berechnung von 𝑅12, 𝑅1, 𝑅2 Greedy-Algorithmus (Sortierung nur am Anfang erforderlich)
Beschriftung von Punkten Algorithmus (für 𝑛 > 2):
Berechne 𝑅12, 𝑅1, 𝑅2 Löse Problem für 𝑅12 optimal mit Greedy-Algorithmus → 𝐼12 Löse Problem für 𝑅1 durch rekursiven Aufruf des Algorithmus → 𝐼1 Löse Problem für 𝑅2 durch rekursiven Aufruf des Algorithmus → 𝐼2 if 𝐼12 ≥ 𝐼1 + 𝐼2 then return 𝐼12 else return 𝐼1 ∪ 𝐼2
Laufzeit: 𝑇 𝑛 = 𝑂 𝑛 log 𝑛