Planfejning.

Slides:



Advertisements
Lignende præsentationer
HUNDE SPEED km h 34,4 HUNDE SPEED km h 34,1 HUNDE SPEED km h 32,8 HUNDE SPEED km h 31,9 HUNDE SPEED km h 31,8 HUNDE SPEED km h 30,9.
Advertisements

NemID og Fællesskema 2014 v/Signe Hansen Blegmand
Funktioner Grundbegreber.
Torbenfeldvej Vallensbæk strand Tlf.: – – dagligt brug af vores hjemmeside •AGEN LYS har en stor og omfattende.
Herunder bevis for punkt-plan afstandsformlen
1 Problemkompleksitet 2 Problemers kompleksitet En ineffektiv algoritme: køretiden vokser eksponentielt med input- størrelsen Et problem, der ikke kan.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
Perspektivgeometri.
Dataopsamling og GPS-styring
Trivselsundersøgelse og ledelsesevaluering
Lineære funktioner AM/ Maj 2006
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Koordinatsystemet Y-aksen 2. aksen X-aksen 1. aksen.
1 Går fra at vil maksimere dækning til at minimere omkostning Det kender vi fra den anden bog Omkostningen er afstanden gange antal enheder der skal transporteres.
SEO PÅ AU.
Statistik.

Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
Representations for Path Finding in Planar Environments.
Reduktion AM 2009.
Begreber og Redskaber 8. Plan for idag Sortering fortsat Comparable Søgning –Lineær søgning –Binær søgning.
Søgning & sortering Intro søgning Lineær søgning Binær søgning
LINEÆR FUNKTIONER MATEMATIK A.
Pleje og Sundhed Gennemførte719 Inviterede895 Svarprocent80% FREDERICIA KOMMUNE MTU og Psykisk APV 2012 Rapportspecifikationer.
1 UNION-FIND. 2 inddata: en følge af heltalspar (p, q); betydning: p er “forbundet med” q uddata: intet, hvis p og q er forbundet, ellers (p, q) Eksempel.
Kap. 7. Tidejord. Torge Kap og (S. Abbas Khan)
Induktion og rekursion
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
Trivselsundersøgelse og ledelsesevaluering Anæstesiologisk Afdeling Flere ledere
1 Algoritme til at løse knude P-center problemet Algoritmen brugte set covering problemet Virker derfor kun til knude problemer Vi vil alligevel bruge.
Datastrukturer og Collections Rasmus D. Lehrmann DM
ETU 2008 | Elevtilfredshedsundersøgelse Erhvervsskolen Nordsjælland HTX (Teknisk Gymnasium) - Hillerød Baseret på 313 besvarelser.
Globaliseringsredegørelsen 24.mar. 14 Figurer fra Danmark tiltrækker for få udenlandske investeringer i Sådan ligger landet
1 Sortering I elementære metoder. 2 Plan Terminologi Elementære metoder til sortering -sortering ved udvælgelse -sortering ved indsættelse -Shellsort.
1 Vi ser nu på en general graf Men antager at alle afstande er heltallige (Det er ikke så restriktivt) Algoritmen leder efter den mindst mulige dækningsdistance.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel 2.3, , problem 30.1.c] Gerth Stølting Brodal.
Rapporter (Access, del 5). RHS – Informationsteknologi – Udgangspunkt Vi har oprettet en database Vi har defineret en eller flere tabeller, og.
Grunde til at jeg elsker dig
GP 11, 14/ Grundlæggende programmering Efterår 2001 Forelæsning 11 onsdag 14/ kl. 9:15 – 12:00.
Et eller andet datalogi…
Fundamentale datastrukturer
1 Algoritmisk geometri. 2 Intervalsøgning 3 Motivation for intervaltræer Lad der være givet en database over ansatte i en virksomhed Alder Løn Ansættelsesdato.
1 Design, analyse og verifikation. 2 Design Bevisteknikker Design ved hjælp at matematisk induktion Analyse O-notation Logaritmer Binær søgning Verifikation.
Slide Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 15 Algorithms for Query Processing and Optimization.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
1 Sortering. 2 Sortering ved fletning (merge-sort) 7 2 | 9 4  | 2  2 79 | 4   72  29  94  4.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
1 Kap. 4, Jordens Tyngdefelt = Torge, 2001, Kap. 3. Tyngdekraftens retning og størrelse g (m/s 2 ) Acceleration Tyngdepotentialet (W): evene til at udføre.
1 Center problems Placer et givet antal nye faciliteter Alt efterspørgsel skal dækkes Dækningsdistancen skal minimeres.
Algoritmer Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet MasterClass i Matematik, 10. april 2014, Aarhus Universitet.
Et eller andet datalogi… Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet Voronoi Diagrammer Datalogi, Studiestart 2013.
Grundlæggende programmering Forår 2002
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
Beregning af trekantsmodel (TIN-model)
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Plangeometri Vinkel mellem vektorer Projektion af vektor på vektor
Grundlæggende Algoritmer og Datastrukturer
Præsentationens transcript:

Planfejning

Skæring

Geometrisk skæring Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter Løsningsmetoder: Rå kraft Planfejning (eng. plane sweep)

Anvendelser Design af integrerede kredsløb: Computergrafik (fjernelse af skjulte linjer)

Skæring af vandrette og lodrette linjestykker Givet: H = horisontale linjestykker V = vertikale linjestykker S = H  V n = antallet af linjestykker, |S| Find alle par af skærende linjestykker (under antagelse af, at der ikke er sammenfaldende linjestykker)

Rå kraft algoritme for each h in H for each v in V if h intersects v report(h, v) Algoritmen kører i O(nH  nV) = O(n2) tid Men antallet af skæringer kan være meget mindre end O(n2) Vi ønsker en uddatasensitiv algoritme med køretid f(n, s), hvor s er antallet af skæringer

Planfejning En lodret feje-linje l afsøger området fra venstre mod højre, startende til venstre for alle inddatapunkter Under afsøgningen benyttes en ordbog, S, der indeholder alle de vandrette linjestykker, der skæres af l, sorteret i stigende rækkefølge med hensyn til deres y-koordinat Et vandret linjestykke indsættes i S, når l møder dets venstre endepunkt. Et vandret linjestykke fjernes fra S, når l møder dets højre endepunkt l

Ændringer i ordbogen h3 (h3) () h2 h1 (h1, h2, h3) (h3) (h1, h3) S: ()

1-dimensional områdesøgning benyttes til at bestemme skæringer Når et lodret linjestykke mødes, foretages omådesøgning i S med et interval, der er givet ved y-koordinaterne for linjestykkets to endepunkter

Hændelser og aktioner Hændelse Aktion Et venstre endepunkt for et vandret linjestykke h mødes Et højre endepunkt for et vandret linjestykke h mødes Et lodret linjestykke v mødes Aktion Indsæt h i ordbogen S Fjern h fra ordbogen S Foretag områdesøgning med interval- grænser givet ved y-koordinaterne for v’s endepunkter

Datastrukturer Ordbogen • skal indeholde vandrette linjestykker • skal muliggøre indsættelse, fjernelse og områdesøgning Løsning: et AVL-træ eller et rød-sort-træ (nøglerne er y-koordinaterne) Handlingsplanen • skal indeholde x-koordinaterne for hændelserne i den rækkefølge, de indtræffer • skal muliggøre et sekventiel gennemløb Løsning: et array eller en liste, der er sorteret med hensyn til hændelsernes x-koordinat

Tidskompleksitet Sortering af hændelser O(n log n) Hændelser Venstre endepunkt for vandret linje Antal ≤ n Tid for hver indsættelse i S: O(log n) Højre endepunkt for vandret linje Antal ≤ n Tid for hver fjernelse fra S: O(log n) Lodret linje Antal ≤ n Tid for områdesøgning: O(log n + sh(v)) Samlet tidskompleksitet: O(n log n + vV sh(v))) = O(n log n + s)

Konvekst hylster forhinding start slut

Konveks polygon konveks ikke-konveks En konveks polygon er en polygon uden skæringer, hvis indre vinkler alle er konvekse (d.v.s. mindre end π = 180) I en konveks polygon ligger ethvert linjestykke, der forbinder to knuder, helt inden for polygonen konveks ikke-konveks

Konvekst hylster Det konvekse hylster for en mængde af punkter er den mindste konvekse polygon, der indeholder punkterne Tænk på en elastik, der lægges stramt rundt om punkterne

Specialtilfælde Det konvekse hylster er et linjestykke • To punkter • Alle punkter ligger på linje Det konvekse hylster er et punkt • Der er kun ét punkt • Alle punkter er sammenfaldende

Anvendelser forhindring start slut • Planlægning af bevægelse Find en optimal rute for en robot, der undgår forhindringer • Geometriske algoritmer Bestemmelse af det konvekse hylster er en form for to-dimensional sortering forhindring start slut

Bestemmelse af det konvekse hylster Nedenstående metode bestemmer det konvekse hylster for en mængde af punkter: Fase 1: Find det laveste punkt (ankerpunktet) Fase 2: Dan en ikke-skærende polygon ved at sortere punkterne imod uret rundt om ankerpunktet Fase 3: Så længe polygonen har et ikke-konvekst hjørne, så fjern det

Orientering b c CW a c b CCW a c b COLL a Orienteringen af tre punkter i planet er “med uret”, “mod uret” og “på linje” orientation(a, b, c) med uret (CW, drej højre om) mod uret (CCW, drej venstre om) på line (COLL, ingen drejning) Orienteringen af tre punkter er karakteriseret ved fortegnet af determinanten, hvis absolutte værdi er det dobbelte areal af trekanten med hjørner a, b og c b c CW a c b CCW a c b COLL a

Sortering efter vinkel Bestemmelse af vinkler ud fra koordinater er besværlig og fører til numerisk unøjagtighed Vi kan sortere punkterne efter deres vinkel med hensyn til ankerpunktet a ved hjælp af en comparator-baseret sammenligningsfunktion: b < c  orientation(a, b, c) = CCW b = c  orientation(a, b, c) = COLL b > c  orientation(a, b, c) = CW CCW COLL CW c c b b b c a a a

Fjernelse af ikke-konvekse hjørner Afgørelse af, om hjørnet er konvekst, kan foretages ved brug af orienteringsfunktionen: Lad p, q og r være tre konsekutive hjørner for polygonen i rækkefølge mod uret q konveks  orientation(p, q, r) = CCW q ikke-konveks  orientation(p, q, r) = CW eller COLL r r q q p p

Graham-afsøgning r p q r H p q r H p q H Graham-afsøgning er en systematisk procedure til at fjerne ikke-konvekse hjørner fra en polygon Polygonen traverseres imod uret, og en sekvens H af hjørner vedligeholdes for each vertex r of the polygon Let q and p be the last and second last vertex of H while orientation(p, q, r) = CW or COLL remove q from H q  p p  vertex preceding p in H Add r to the end of H r p q r H p q r H p q H

Analyse Bestemmelse af det konvekse hylster for en mængde af punkter tager O(n log n) tid: • Bestemmelse af ankerpunktet tager O(n) tid • Sortering af punkterne imod uret omkring ankerpunktet tager O(n log n) tid Brug orienterings-comparatoren og en hvilken som helst sorteringsalgoritme, der kører i O(n log n) tid (f.eks., heap-sort eller merge-sort) • Graham-afsøgningen tager O(n) tid Ethvert punkt indsættes netop en gang i sekvensen H Ethvert hjørne fjernes højest én gang fra sekvensen H

Nærmeste par af punkter

Nærmeste punkter Givet en mængde, P, af n punkter i planet (f.eks. byer i Danmark, computere i et netværk, transistorer på en printplade) Find to punkter, p og q, hvis indbyrdes afstand, dist(p, q), er minimal Algoritmer: • rå kraft O(n2) • planfejning O(n log n) • del-og-hersk O(n log n) p q

Rå kraft Beregn alle afstande og vælg den mindste (x1, y1) (x2, y2) p1 Tidskompleksitet: O(n2)

Vi behøver ikke at beregne alle afstande Planfejning d fejelinje Vi behøver ikke at beregne alle afstande Planfejning kan benyttes. Vi udnytter følgende observation: Hvis det nærmeste par af punkter til venstre for fejelinjen har en afstand på d, kan det næste punkt, der mødes af linjen ikke være nærmeste par med et punkt, der ligger mere end d enheder til venstre for linjen

Lagret information fejelinje Vedligehold følgende information: • nærmeste par (p, q) af punkter, der er fundet indtil nu, samt deres afstand, d • ordnet ordbog, S, af alle de punkter, der ligger i bæltet med bredde d enheder til venstre for fejelinjen, idet deres y-koordinat bruges som nøgle

Opdatering Når fejelinjen møder et punkt, p: (1) Fjern alle punkter, r, hvor x(p) - x(r) ≥ d (2) Find det nærmeste punkt, q, til p ved søgning i S (3) Hvis dist(p, q) < d, så opdater det aktuelt nærmeste par og d (4) Indsæt p i S

Søgning i ordbogen Hvor hurtigt kan vi søge i ordbogen? Bemærk: der kan være O(n) punkter i ordbogen! I stedet for at søge i hele bæltet, kan vi nøjes med at søge i en halvcirkel med centrum i p og radius d d p

Søgning i ordbogen (fortsat) Hvorledes kan vi søge i en halvcirkel? Et rektangel er “næsten” en halvcirkel Foretag en områdesøgning i intervallet [y(p) - d, y(p) + d] Brug rå kraft til søgning blandt de punkter, der blev resultatet af områdesøgningen Kan der ikke være mange punkter at søge i? Nej, områdesøgningen kan aldrig resultere i mere end 6 punkter (bevis herfor baseres på, at ethvert par af punkter i S har en afstand på mindst d) 2d p d

Tidskompleksitet Sortering af hændelser O(n log n) Hvert punkt indsættes og fjernes Samlet tid for indsættelse og fjernelse: fra S præcis en gang O(n log n) Der søges i ordbogen, hver gang Hver forespørgsel tager O(log n + 6) tid et punkt indsættes i S Samlet tid for forespørgsel: O(n log n) Afstandsberegninger O(6n) Samlet tidskompleksitet: O(n log n)

Del og hersk Pl Pr Sorter punkterne efter deres x-koordinat og opdel punktmængden i to halvdele Det nærmeste par er i en af de to halvdele eller har et punkt i hver af de to halvdele

Del og hersk (2) Pl Pr x1 x2 xn/2 xn/2+1 xn Fase 1: Sorter punkterne efter deres x-koordinat Opdel punktmængden i to halvdele: p1, p2, ... pn/2 ... pn/2 + 1, ..., pn

Del og hersk (3) Pl Pr Fase 2: Bestem rekursivt de to nærmeste par og deres indbyrdes afstande, dl og dr, i hver af de to halvdele Find det nærmeste par og deres indbyrdes afstand, dm, i det centrale bælte af bredde 2d, hvor d = min{dl, dr} Returner min{dm, dl, dr} 2d

Del og hersk (4) For ethvert punkt p i bæltet undersøges afstanden til de punkter, der ligger i intervallet [y(p) - d, y(p)] Der er højst 4 sådanne punkter Benyt en liste af punkterne sorteret efter deres x-koordinat og en liste af punkterne sorteret efter deres y-koordinat Tidskompleksitet: Fase 1: Sortering: O(n log n) Fase 2: Rekursionsligning T(n) = 2T(n/2) + n. Vi får T(n) er O(n log n) Samlet tid: O(n log n) Pl Pr d 2d

M. Escher: Concave and Convex