Stifinder V. Allan Ebdrup. Heuristik til at finde sti for firkantet objekt mellem firkantede forhindringer

Relaterede dokumenter
Divide-and-Conquer algoritmer

Geometrisk skæring. Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter

Divide-and-Conquer algoritmer

Dynamisk programmering

Der laves 4 baner (temaer) og spillerne fordeles med lige mange på hver bane skift hver 4-5 min. Kanal træning - berøring 2 + aflevering Aflevering

Danmarks Tekniske Universitet

Sådan gør du i GeoGebra.

Papirfoldning. en matematisk undersøgelse til brug i din undervisning.

Danmarks Tekniske Universitet

Kom godt i gang med Fable-robotten

Grafer og graf-gennemløb

Lad os prøve GeoGebra.

Fable Kom godt i gang

Dynamisk programmering

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Grafer og graf-gennemløb

lineær regression er en metode man bruger for at finde den mindste afstand mellem bestemte punkter ved at bruge denne formel: a= n i=1 i=1

Grafer og graf-gennemløb

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korncirkler og matematik

Fable Kom godt i gang

Sortering i lineær tid

DGI TRÆNERGUIDEN DGI TRÆNERGUIDEN DGI TRÆNERGUIDEN DGI TRÆNERGUIDEN. Myldretid. Skyggen BALANCE OG KONTROL BALANCE OG KONTROL

Divide-and-Conquer algoritmer

Sådan laver du en animationsfilm

Perspektiverende Datalogi Klassiske Algoritmer

Minimum udspændende Træer (MST)

Algorithms & Architectures I 2. lektion

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Opvarmning (15 min) Der laves 4 baner (temaer) og spillerne fordeles med lige mange på hver bane skift hver 3-4 min. Bue

Danmarks Tekniske Universitet

REDSKABSHUS. Brugervejledning og samleinstruktioner. Mål: H. 181/159 x B x D. 119 cm. Best.nr. HN8922

Minimum udspændende Træer (MST)

Opvarmning (Motorisk/teknisk) (5-6 min på hver øvelse) Teknisk træning

Opvarmning (Motorisk/teknisk) (5-6 min på hver øvelse) Teknisk træning

DELMÅL Giv alle lige muligheder, og stop diskrimination.

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

GeoGebra. Tegn følgende i Geogebra. Indsæt tegningen fra geogebra. 1. Indsæt punkterne: (2,3) (-2, 4) (-3, -4,5)

Sortering af information er en fundamental og central opgave.

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Mandag- C-miljøet. 1 teknisk, 1 taktisk, 1 teknisk og 1 Spil

M=3 kunde forbindelse. oprettet lokation Steinerkant

Sammenhængskomponenter i grafer

Sortering. Eksempel: De n tal i sorteret orden

Opvarmning (Motorisk/teknisk) (5-6 min på hver øvelse) Teknisk træning

PROGRAM Skytteuddannelse Afstandsbedømmelse ved ØJEMÅL

Sortering. Eksempel: De n tal i sorteret orden

Mattip om. Arealer 2. Tilhørende kopi: Arealer 4 og 5. Du skal lære om: Repetition af begreber og formler. Arealberegning af en trekant

SUSET. Hvad giver dig et sug i maven? Hvad får dig til at opleve suset?

Eksperimenterende undersøgelse af vinkelsummer i 4. 6.kl.

Danmarks Tekniske Universitet

Der laves 4 baner (temaer) og spillerne fordeles med lige mange på hver bane skift hver 3-4 min. Kanal træning - berøring 2 + aflevering Aflevering

Matematik interne delprøve 09 Tesselering

Upload af billeder til hjemmesiden m.m.

Mindste udspændende træ

Beskæring (2) Picasa

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Kapitel 9: Netværksmodeller

Reglen med cykelhjelm er indført af politiet og kommunen. Hvis I ikke ønsker at køre med cykelhjelm kan I ikke deltage i den praktiske prøve.

Mindste udspændende træ

GRAFISK WORKFLOW JOAN WEDEGE LUNDKVIST SIDE 1. Program anvendt: ArtPro 12.0, derudover er anvendt Adobe Illustrator CS6 og DotSpy

Border Collie Klubbens konkurrenceregler

Sortering af information er en fundamental og central opgave.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

På opdagelse i GeoGebra

Klar til skolestart. Træn trafik med dit barn

Kapitel 9: Netværksmodeller

Grafisk design Skitse 1.

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Introducerende undervisningsmateriale til Geogebra

Danmarks Tekniske Universitet

Der laves 3 baner (temaer) og spillerne fordeles med lige mange på hver bane skift hver 3-4 min. Bane 2 Vending - retvendt. Stige

Trekanter. Frank Villa. 8. november 2012

På vej til skole På vej til skole Side 1

Hjælp til Næsgaard Markkort

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Kokbjerg Kolding Denmark Side 1 af 8

Note om interior point metoder

Logistik og optimering

Tilhørende: Robert Nielsen, 8b. Geometribog. Indeholdende de vigtigste og mest basale begreber i den geometriske verden.

DATALOGISK INSTITUT, AARHUS UNIVERSITET

1 Oversigt I. 1.1 Poincaré modellen

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Forslag til træningsøvelser for U9 10

Danmarks Tekniske Universitet

Billedbehandling i praksis

N O T A T. Opsamling på interviews vedr. drivveje på større besætninger med malkekøer

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Quick guide til Condes 8.

Afstande, skæringer og vinkler i rummet

Main Survey HÆFTE2006

Selvstudium 1, Diskret matematik

Datastrukturer (recap)

ALTERNATIVER til det offentliges plan om CYKELRUTE gennem Christiania

Introduktion til GeoGebra

Modul 16, Word 5 Felter, tabeller og breve

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Transkript:

Stifinder V. Allan Ebdrup Heuristik til at finde sti for firkantet objekt mellem firkantede forhindringer

Motivation dotnet Terrarium http://www.gotdotnet.com/terrarium/ Rovdyr Jagte andre dyr Løbe væk fra farligere dyr Avanceret, fx jage i flok Planteædere Finde planter Løbe væk fra angreb Avanceret, fx forsvare i flok Krav: Finde sti rundt om planter og andre dyr.

Dagsorden Problemområde Sanseapparatet Simplifikationer i stifinder heuristikken Kollisionsdetektion Gennemgang af heuristikken Find nærmeste forhindring Find sti udenom forhindring, med og uden overlap mellem forhindringer Cykler Kompleksitet Konklusion Forbedringer & udvidelser Opsamling & afrunding

Problemområde Beslutningsmotor Flyt mig fra punkt A til B Udenom alle forhindringer Stifinder Kort over omgivelser Beslutningsmotor udelades Sanseapparatet er implementeret i dotnet Terrarium Der kigges altså kun på stifinder delen Sanseapparat

Sanseapparat Man kan se igennem alt, man kender området i forvejen. 360 grader syn Alle objekter optager plads beskrevet ved en firkant. Firkanterne kan ikke drejes Ingen lugte eller lyde Begrænset følelse, man mærker når man løber ind i noget.

Simplifikationer Der tages ikke højde for egen acceleration Der findes blot en mulig sti, ikke den hurtigste eller korteste Der tages ikke højde for forhindringer der bevæger sig Der tages ikke højde for hvor farlig/god stien er

Kollisionsdetektion Alle forhindringer forstørres og stien reduceres til en linie, dette giver følgende egenskaber: 1. Kollisionsdetektion mellem objektet og en forhindring reduceres til at checke om objektets midte ligger indenfor den forstørrede forhindrings areal 2. Kollisionsdetektion kan bruges til at finde forhindringer der overlapper, hvilket betyder at objektet ikke kan komme imellem dem. 3. Forhindringer der ikke allerede er indeni hinanden vil ikke komme indeni hinanden.

Stifinder heuristikken - find nærmeste forhindring Find alle linieskæringer med linien fra A til B Tag fat i det tætteste skæringspunkt og find vej udenom den forhindring der gav dette skæringspunkt

Find Sti Udenom Forhindring Følg forhindrings yderkant mod uret til næste punkt Tegn linie til B fra nyt punkt, hvis stien stadig går går gennem vores forhindring følges kanten rundt på forhindringen til nyt punkt

Find Sti Udenom Forhindring Hvis linien fra det seneste punkt til B ikke går gennem vores aktuelle forhindring kaldes stifinder algoritmen så vi finder en sti fra det seneste punkt til B, indtil der er fri passage til B

Overlap Mellem Forhindringer Hvis forhindringen vi er på vej udenom har overlap med en anden forhindring udregnes alle skæringspunkter med den anden forhindring Når vi skal finde det næste punkt på stien stopper vi ved sådanne overlapspunkter og finder i stedet vej udenom den nye forhindring.

Overlap Mellem Forhindringer Herefter bruges stifinder algoritmen til at finde vej udenom den nye forhindring Hvis linien fra det seneste punkt til B ikke går gennem vores aktuelle forhindring kaldes stifinder algoritmen så vi finder en sti fra det seneste punkt til B, indtil der er fri passage til B

Cykler Der findes 2 slags cykler 1. Cykler der opstår fordi vi er spærret inde

2. Cykler der opstår fordi målet er spærret inde Cykler kan opdages ved at markere skæringspunkter man allerede har besøgt Problemet bør analyseres igen af beslutningsapparatet Cykler

Kompleksitet Find tætteste forhindring: N Vi kan risikere at skulle finde tætteste forhindring N gange: N * N: O(N 2 ) Find udenom forhindring Find overlap mellem to forhindringer: O(N 2 ) Find overlap mellem alle forhindringer: 0+1+2+3+4+ + (N-1): O(N 2 ) Worst case antal overlap: 0+2+4+6+8+ + 2(N-1): O(N 2 ) Vi besøger hvert overlap maksimalt 2 gange og hvert hjørne af en forhindring maksimalt 2 gange. I alt O(N 2 ) tid og O(N 2 ) plads.

Konklusion Stifinder algoritmen - finder en sti for et firkantet objekt gennem en mængde firkantede forhindringer i O(N 2 ) tid og O(N 2 ) plads

Forbedringer og udvidelser Forbedringer Efterfølgende optimering af sti Forgrening med/mod uret 2D-Hashtabel: grid / divide & conquer Tilføjelse af acceleration har kun betydning for hvor hurtigt man kan bevæge sig gennem sving Udvidelser Polygon forhindringer Konveks hylster (hvis du vil et sted hen hvor du ikke lander indenfor det konvekse hylster) Heuristik til at tage højde for objekter der bevæger sig ved at flytte lidt på dem og/eller gøre dem længere i bevægelses retningen Heuristik til at vurdere hvor farlig en sti er

3. Cykler der opstår fordi vi altid går med uret, disse cykler kan dog elimineres ved at gå mod uret i disse tilfælde Cykler igen

Så er det bare derudaf! Stifinder