Datové struktury a algoritmy Část 12 Výpočetní geometrie Computational Geometry Petr Felkel.

Slides:



Advertisements
Podobné prezentace
PLAYBOY Kalendar 2007.
Advertisements

Téma 5 Metody řešení desek, metoda sítí.
Trojúhelník výkonů Ing. Jaroslav Bernkopf Trojúhelník výkonů
Doc. RNDr. Eduard Fuchs, CSc. VUT Brno
Přijímací zkoušky na SŠ MATEMATIKA Připravil PhDr. Ivo Horáček, PhD.
TEORIE ROZHODOVÁNÍ A TEORIE HER
OBECNÉ OPTIMALIZAČNÍ MODELY
Sídliště Dukla - Pardubice
*Zdroj: Průzkum spotřebitelů Komise EU, ukazatel GfK. Ekonomická očekávání v Evropě Březen.
Cvičení Úloha 1: Rozhodněte zda posloupnost znaků v poli délky n tvoří palindrom (slovo, které je stejné při čtení zprava i zleva). Př.: [a,l,e,l,a] [a,n,n,a]
Adoptuj panenku a zachráníš dítě! Agáta 1 Ája 2.
Diskrétní matematika Opakování - příklady.
PROGRAM PRO VÝUKU T ČLÁNKU
Téma 3 ODM, analýza prutové soustavy, řešení nosníků
Sample Solutions CTU Open Contest ANALOG CLOCK.
Dynamické rozvozní úlohy
Násobíme . 4 = = . 4 = = . 4 = = . 2 = 9 .
Elektrický obvod a jeho části
Vizualizace projektu větrného parku Stříbro porovnání variant 13 VTE a menšího parku.
Vzdělávací materiál / DUMVY_32_INOVACE_02B14 Příkazový řádek: obsah souborů PŘÍKLADY AutorIng. Petr Haman Období vytvořeníLeden 2013 Ročník / věková kategorie3.
ČLOVĚK A JEHO SVĚT 2. Ročník - hodiny, minuty Jana Štadlerová ŽŠ Věšín.
Animace Demo Animace - Úvodní animace 1. celé najednou.
Dělení se zbytkem 3 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA reg. č.: CZ.1.07/1.4.00/ Základní škola, Šlapanice, okres Brno-venkov, příspěvková organizace Masarykovo nám.
VY_32_INOVACE_ 14_ sčítání a odčítání do 100 (SADA ČÍSLO 5)
ARITMETICKÁ POSLOUPNOST I
ZOHO OFFICE Vypracovala: Iva Ptáčková, A11B0605P 1.
Základní číselné množiny
Gravitační vlny v přesných řešeních Einsteinových rovnic RNDr
Projekt PŘEDPOVĚĎ POČASÍ. projekt PŘEDPOVĚĎ POČASÍ.
Dělení se zbytkem 6 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
Dělení se zbytkem 5 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
1 Úvodní snímek slouží pro počáteční orientaci a jako návěští pro hypertextové odkazy. Při použití jako předlohy jej uživatel odstraní.
Plošné konstrukce, nosné stěny
Projekt PŘEDPOVĚĎ POČASÍ. projekt PŘEDPOVĚĎ POČASÍ.
Jazyk vývojových diagramů
pit – CAD 2011 Nové funkce a rozšíření Strana: 1www.pitsoftware.cz /

Únorové počítání.
Posloupnosti, řady Posloupnost je každá funkce daná nějakým předpisem, jejímž definičním oborem je množina všech přirozených čísel n=1,2,3,… Zapisujeme.
Zásady pozorování a vyjednávání Soustředění – zaznamenat (podívat se) – udržet (zobrazit) v povědomí – představit si – (opakovat, pokud se nezdaří /doma/)
Tento Digitální učební materiál vznikl díky finanční podpoře EU- Operačního programu Vzdělávání pro konkurenceschopnost Není –li uvedeno jinak, je tento.
Cvičná hodnotící prezentace Hodnocení vybraného projektu 1.
Vsetín – město bez bariér
Nový trend ve slunolamech Radek Pelz, ALARIS Czech Republic s.r.o.
Projekt PŘEDPOVĚĎ POČASÍ. projekt PŘEDPOVĚĎ POČASÍ.
EDITOR BY: SPRESS 15. ledna ledna ledna 2015.
Tento Digitální učební materiál vznikl díky finanční podpoře EU- OP Vzdělávání pro konkurenceschopnost. Není – li uvedeno jinak, je tento materiál zpracován.
Rovnoběžné promítání. Nevlastní útvary. Osová afinita v rovině.
1 Jádro polygonální oblasti 36VGE ZS 2007/2008 FEL ČVUT Roman Hocke.
Geometrické značky a zápisy
Fyzika 2 – ZS_3 OPTIKA.
Téma: ABSOLUTNÍ HODNOTA CELÝCH ČÍSEL 2
Název materiálu: OPAKOVÁNÍ 1.POLOLETÍ - OTÁZKY
UPÍNÁNÍ NÁSTROJŮ, ÚDRŽBA A SKLADOVÁNÍ NÁSTROJŮ .
Technické kreslení.
Jazyk vývojových diagramů
Konstrukce střihu dětských sportovních kalhot (M 1:5)
5. Měření a vytyčování úhlů
KONTROLA A MĚŘENÍ Měření součástí ve 3D
Abeceda VY_32_INOVACE_122, 7. sada, ČJ2 Český jazyk, 2. ročník ANOTACE
Přednost početních operací
Ovoce a zelenina Svět kolem nás
Měření úhlů.
TRUHLÁŘ I.ročník Výrobní zařízení Střední škola stavební Teplice
Autor: Ondřej Šimeček Verze: 1.1.3
Výpočetní geometrie v problematice detekce kolizí Ivan Soukup MFF UK
GRAFIKA úvod.
Voroného (Voronoi) diagramy
Transkript prezentace:

Datové struktury a algoritmy Část 12 Výpočetní geometrie Computational Geometry Petr Felkel

2 / 33 DSA Výpočetní geometrie (CG) Úvod Algoritmické techniky – paradigmata řazení zametací technika (scan-line) rozděl a panuj (divide and conquer) geometrické místo (Locus approach)

3 / 33 DSA Výpočetní geometrie? Vznikla v roce 1975 – M. I. Shamos Hledá optimální algoritmy pracující s geometrickými objekty body, přímky, úsečky, mnohoúhelníky - polygony Aplikace v řadě dalších oblastí: databázové systémy, robotika, počítačová grafika, počítačové vidění, rozpoznávání obrazců řadu problémů lze formulovat geometricky

4 / 33 DSA Výpočetní geometrie? Charakteristická je velká probádanost algoritmů v rovině nárůst složitosti v prostoru či n-dimenzích méně znalostí o řešení v n-dimenzích Podle kompletnosti vstupu off-line – data známe naráz on-line – data dodávána postupně (udržujeme řešení)

5 / 33 DSA Algoritmické techniky – paradigmata = principy návrhu efektivních algoritmů, které zůstávají stejné i pro velmi odlišné aplikace hrubá síla – prohledá / zkusí všechno efektivní algoritmus – co nejúspornější optimální algoritmus – dosáhl dolní meze složitosti - 

6 / 33 DSA Algoritmické techniky – paradigmata Řazení Zametací technika (plane sweep) Rozděl a panuj (divide and conquer) Geometrické místo (Locus approach)

Řazení

8 / 33 DSA Řazení předzpracování dat, které vede k jednoduššímu zpracování typicky podle některé ze souřadnic (např. dle osy x či y) nebo dle úhlu kolem daného bodu/ů Př. konvexní obálka

9 / 33 DSA Konvexní obálka = nejmenší konvexní mnohoúhelník, který obsahuje všechny body Convex Hull CH(V )

10 / 33 DSA Grahamův algoritmus 1/2 1. Seřadíme body p  V dle x; 2. Najdeme horní, pak dolní řetěz a) p min a p max  CH(V) b) přidáme bod p i+1 c) kontrola úhlu (p i-1, p i, p i+1 ) i=i-1 vypustíme pi konvexní konkávní p i p i+1 p i-1 p i p i+1 p i-1 p i p i+1 p i-1

11 / 33 DSA Grahamův algoritmus 2/2 Kontrola úhlu (p i-1, p i, p i+1 ) Vektorový součin b x a x i+1 – x i y i+1 – y i > 0 => konvexní x i – x i-1 y i – y i-1 konkávní Složitost 1. O( n log n ) 2. O( n ) => celkem O( n log n ) p i p i+1 p i-1 b a

12 / 33 DSA Jarvisův algoritmus balení dárku (gift wrapping) 1. Vezmeme bod p s minimální souřadnicí y a vodorovnou přímku 2. Otáčíme přímku kolem p dokud nenarazí na bod q 3. p = nový bod q 4. Dokud (p  p 0 ) jdi na 2 Složitost: O( n ) + O( n ) * k => celkem O( k*n ) vhodný pro málo bodů na konvexním obalu

Zametací technika Plane sweep

14 / 33 DSA Zametací technika – princip Svislou přímku (scanline, SL, zametací přímku) suneme zleva doprava přes množinu objektů Pamatujeme si informace o objektech nalevo od přímky (y-stuktura, T) Při průchodu nad objektem ji aktualizujeme Nesuneme se spojitě, ale skáčeme mezi body, kde je nutno zastavit Body jsou v prioritní frontě (x-struktura, B, postupový plán) – odebírám je zleva-doprava

15 / 33 DSA Minimální body Od nich nalevo ani dolů není žádný bod 1. Seřadíme body dle souřadnice x-> x-struktura 2. Inicializujeme y-strukturu na  3. Scanline umísťujeme zleva doprava do bodů v x-str. 4. Do y-strukt. ukládám minimální y-souřadnici O(n log n) - řazení O(1) na bod

16 / 33 DSA Průsečíky úseček Vyloučení neviditelných ploch ze zpracování T, y-str. = úsečky v pořadí průsečíků se SL B, x-struk., body, kde se mění pořadí úseček na začátku koncové body průběžně průsečíky sousedů

17 / 33 DSA Průsečíky úseček ALAL ARAR a b BLBL BRBR CLCL CRCR b c Inicializace koncové body –> B T prázdné B: A L, B L, C L, C R, A R, B R T:prázdná1 ? ?

18 / 33 DSA Průsečíky úseček 2. dokud není B prázdná vezmi bod p z B (a smaž ho v B) dle typu bodu p aktualizuj T strukturu: L... P... průsečík...

19 / 33 DSA Průsečíky úseček L Najdi v T sousedy s (úsečky s 1 a s 2 ) (s je úsečka s počátečním bodem p) if( protíná s 1 x s 2 ) odstraň průsečík (už nejsou sousedy) vlož průs. s 1 x s a s x s 2 do B

20 / 33 DSA Průsečíky úseček ALAL ARAR a BLBL CLCL CRCR b c ? ? B 0 : A L,B L, C L,C R,A R,B R T 0 :prázdná 1. A L B 1 : B L, C L,C R,A R,B R T 1 : a BRBR

21 / 33 DSA Průsečíky úseček ALAL ARAR a BLBL CLCL CRCR b c ? 2. B L p 1 = s 1 x s = a x b... vložit B 2 : C L,p 1, C R, A R,B R T 2 : a, b s 1 s p1p1 BRBR

22 / 33 DSA Průsečíky úseček ALAL ARAR a BLBL CLCL CRCR b c B L B 2 : C L,p 1, C R, A R,B R T 2 : a, b 3. C L p 1 = s 1 x s 2 = a x b...smazat p 2 = s 1 x s = a x c... vložit B 3 : p 2, C R, A R,B R T 3 : a, c, b s 1 s s 2 p1p1 p2p2 BRBR

23 / 33 DSA Průsečíky úseček průsečík úseček s a s’ Najdi v T sousedy s a s’(úsečky s 1 a s 2 ) prohoď s a s’ v T if( protíná s x s 1 ) odstraň průsečík z B if( protíná s’ x s 2 ) odstraň průsečík z B (už nejsou sousedy) vlož průs. s x s 2 a s’ x s 1 do B

24 / 33 DSA Průsečíky úseček ALAL ARAR a BLBL CLCL CRCR b c B 3 : p 2, C R, A R,B R T 3 : a, c, b 4. p 2 změna pořadí úseček a,c B 4 : p 1, C R, A R,B R T 4 : c, a, b 5. p 1 změna pořadí úseček a,b B 5 : C R, A R,B R T 5 : c, b, a p1p1 p2p2 BRBR

25 / 33 DSA Průsečíky úseček R Najdi v T sousedy s (úsečky s 1 a s 2 ) (s je úsečka s koncovým bodem p) smaž s z T if( protíná s 1 x s 2 ) vlož průs do B

26 / 33 DSA Průsečíky úseček ALAL ARAR a BLBL CLCL CRCR b c B 5 : C R, A R,B R T 5 : c, b, a 6. C R B 6 : A R,B R T 6 : b, a 7. A R B 7 : B R T 7 : b 8. B R B 7 : prázdná T 7 : prázdná p1p1 p2p2 BRBR

27 / 33 DSA Průsečíky úseček Paměť O(n) Operační složitost n+k poloh každá log n => O(k+n) log n

Rozděl a panuj Divide and conquer

29 / 33 DSA Viditelnost objektů na tabuli 2n+1 hranic

Geometrické místo Locus approach

31 / 33 DSA Voronoiův diagram viz průsvitky