Datov struktury a algoritmy st 12 v po etn geometrie computational geometry
This presentation is the property of its rightful owner.
Sponsored Links
1 / 31

Datové struktury a algoritmy Část 12 Výpočetní geometrie Computational Geometry PowerPoint PPT Presentation


  • 77 Views
  • Uploaded on
  • Presentation posted in: General

Datové struktury a algoritmy Část 12 Výpočetní geometrie Computational Geometry. Petr Felkel. Výpočetní geometrie (CG). Úvod Algoritmické techniky – paradigmata řazení zametací technika ( scan-line ) rozděl a panuj ( divide and conquer ) geometrické místo ( L ocus approach ).

Download Presentation

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

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Datov struktury a algoritmy st 12 v po etn geometrie computational geometry

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

Petr Felkel


V po etn geometrie cg

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)


V po etn geometrie

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


V po etn geometrie1

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í)


Algoritmick techniky paradigmata

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 - 


Algoritmick techniky paradigmata1

Algoritmické techniky – paradigmata

  • Řazení

  • Zametací technika (plane sweep)

  • Rozděl a panuj (divide and conquer)

  • Geometrické místo (Locus approach)


Datov struktury a algoritmy st 12 v po etn geometrie computational geometry

Řazení


Datov struktury a algoritmy st 12 v po etn geometrie computational geometry

Ř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


Konvexn ob lka

Konvexní obálka

= nejmenší konvexní mnohoúhelník, který obsahuje všechny body

Convex HullCH(V )


Graham v algoritmus 1 2

Grahamův algoritmus 1/2

1. Seřadíme body p  V dle x;

2. Najdeme horní, pak dolní řetěz

a) pmin a pmax  CH(V)

b) přidáme bod pi+1

c) kontrola úhlu (pi-1, pi, pi+1)

i=i-1 vypustíme pi

konvexní

konkávní

p

p

p

p

p

p

p

p

p

i-1

i

i+1

i-1

i

i+1

i-1

i

i+1


Graham v algoritmus 2 2

p

i

a

b

p

p

i-1

i+1

Grahamův algoritmus 2/2

Kontrola úhlu (pi-1, pi, pi+1)

Vektorový součin b x a

xi+1 – xi yi+1 – yi> 0=> konvexní

xi – xi-1 yi – yi-1< 0=> konkávní

Složitost

1. O( n log n )

2. O( n )=> celkemO( n log n )


Jarvis v algoritmus balen d rku gift wrapping

Jarvisův algoritmus balení dárku (gift wrapping)

1. Vezmeme bod ps 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  p0) jdi na 2

Složitost: O( n ) + O( n ) * k=> celkemO( k*n ) vhodný pro málo bodů na konvexním obalu


Zametac technika plane sweep

Zametací technikaPlane sweep


Zametac technika princip

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


Minim ln body

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


Pr se ky se ek

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ů


Pr se ky se ek1

Průsečíky úseček

  • Inicializace

    • koncové body –> B

    • T prázdné

      B: AL,BL, CL,CR, AR,BR

      T:prázdná1

BL

AR

b

?

CL

c

?

a

CR

AL

BR

b

1

2

3

4

5

6

7

8


Pr se ky se ek2

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 ...


Pr se ky se ek3

Průsečíky úseček

  • L

    • Najdi v T sousedy s (úsečky s1 a s2)

      (s je úsečka s počátečním bodem p)

    • if( protíná s1 x s2 ) odstraň průsečík

      (už nejsou sousedy)

    • vlož průs. s1 x s a s x s2do B


Pr se ky se ek4

BL

AR

b

?

CL

c

?

a

AL

CR

1

2

3

4

5

6

7

8

Průsečíky úseček

B0: AL,BL, CL,CR,AR,BR

T0:prázdná

1. AL

B1: BL, CL,CR,AR,BR

T1: a

BR


Pr se ky se ek5

BL

AR

b

CL

c

?

a

AL

CR

1

2

3

4

5

6

7

8

Průsečíky úseček

2. BL

p1= s1x s = a x b ... vložit

B2: CL,p1, CR, AR,BR

T2: a, b

s1 s

p1

BR


Pr se ky se ek6

BL

AR

b

CL

c

a

AL

CR

1

2

3

4

5

6

7

8

Průsečíky úseček

2. BL

B2: CL,p1, CR, AR,BR

T2: a, b

3. CL

p1= s1x s2 = a x b...smazat

p2= s1x s = a x c ... vložit

B3: p2, CR, AR,BR

T3: a, c, b

s1 s s2

p1

p2

BR


Pr se ky se ek7

Průsečíky úseček

  • průsečík úseček s a s’

    • Najdi v T sousedy sa s’(úsečky s1 a s2)

    • prohoď sa s’ v T

    • if( protíná s x s1 ) odstraň průsečík z B

    • if( protíná s’ x s2 ) odstraň průsečík z B

      (už nejsou sousedy)

    • vlož průs. s x s2 as’ x s1do B


Pr se ky se ek8

BL

AR

b

CL

c

a

AL

CR

1

2

3

4

5

6

7

8

Průsečíky úseček

B3: p2, CR, AR,BR

T3: a, c, b

4. p2 změna pořadí úseček a,c

B4: p1, CR, AR,BR

T4: c, a, b

5. p1 změna pořadí úseček a,b

B5: CR, AR,BR

T5: c, b, a

p1

p2

BR


Pr se ky se ek9

Průsečíky úseček

  • R

    • Najdi v T sousedy s (úsečky s1 a s2)

      (s je úsečka s koncovým bodem p)

    • smaž s z T

    • if( protíná s1 x s2 )vlož průs do B


Pr se ky se ek10

BL

AR

b

CL

c

a

AL

CR

1

2

3

4

5

6

7

8

Průsečíky úseček

B5: CR, AR,BR

T5: c, b, a

6. CR

B6: AR,BR

T6: b, a

7. AR

B7: BR

T7: b

8. BR

B7: prázdná

T7: prázdná

p1

p2

BR


Pr se ky se ek11

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 d ivide and c onquer

Rozděl a panuj Divide and conquer


Viditelnost objekt

Viditelnost objektů

  • na tabuli

  • 2n+1 hranic


Geometrick m sto l ocus approach

Geometrické místoLocus approach


Voronoi v diagram

Voronoiův diagram

  • viz průsvitky


  • Login