Pathfinding. –Vad är det? –Sökning från A till B.

Slides:



Advertisements
Liknande presentationer
BOGNIBANA 1 Rakbana utan hinder REGLER. ¤ Gränslinje: 50 cm framför utslagsmarkering. OBS!: Boll som pga för hårt slag eller hård vind rullar tillbaka.
Advertisements

Det första du bör göra är att rita horisonten
Redigerings kurs med PowerDirektor 5 NE Express Del 1.
BAS-M Hur du på ett enkelt sätt administrerar din båtklubbs register.
IPad grundkurs.
BANLÄGGNING I OCAD-8 Närpes OK.
Skapa ett video-CV på YouTube
ClaroReadPro V5 B engt Österlind Solna Skoldatatek 18 november 2009.
Formulär Tänkte nu gå igenom vad ett formulär är och hur man kan skapa dem i Access.
Grunder i PowerPoint 2000 Skapa en ny presentation Rita egna objekt
Skriv text i punktlistor och ändra bildlayout
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
Markera/välj bilden till höger och kopiera den till klippbordet med ctrl-c. Flytta till Photoshop och öppna ett nytt dokument i menyn eller med.
Ruttplanering Vad är det??.
2D1311 Programmeringsteknik med PBL
Algoritmer och data strukturer -Länkade listor
5. Grafiska objekt Redan på övning fem av sex! Här handlar det om att rita själv, färglägga och att låta kreativiteten flöda. Något för dig? Ritverktyg.
Logikprogrammering Ons, 25/9
©storm.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Föreläsning 6 Länkade lista Komplexitet Linjärsökning & binärsökning
C-programmering ID120V William Sandqvist Länkad lista
Exempel/Utbildning Delegering för behörighetsbeställning
ABC EFG IJK Markera noden som besökt och lägg in den i kön. q = (A) Ta fram första elementet (A), q = ( ) Ta sedan fram grannmängden till A S = {B, F,
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
NÄTVERKSPROTOKOLL Föreläsning INNEHÅLL - Routingprotokoll - Interior gateway protocols - Exterior gateway protocols - Link state routing.
Välkommen!.
Information om hur man spelar Trafik!. Din väckarklocka ringer på morgonen och du går upp och gör dig i ordning. Efter en smaskig frukost är du på väg.
Sektorn för Socialtjänst
Word Read Plus 08 talsyntes
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
1.Öppna först googlekartfilen du fått av byNet i googleearth genom att dubbelklicka på den. Notera att du måste ha installerat google earth. Detta görs.
Vektorer (klassen Vector) Sortering
Klicka på Aktivera redigering i meddelandefältet
Algoritmer och datastrukturer
Exder EPC. Exder EPC Välkommen! I det här bildspelet går vi igenom hur man lägger upp nya artiklar samt skickar artikelinformation. Du bläddrar framåt.
Grundläggande programmering
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Övning 4 Ritobjekt.
Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Bredden-först exempel ABCD EFGH IJKL MNOP = Obesökt.
= Passning eller skott = Löpning utan boll = Driver boll
= Passning eller skott = Löpning utan boll = Driver boll
Integrera mp3 i hotpotatoes.  Se hur test-övningen kommer att se ut: N1_Audio_01.htm
Välkomna!.
Logikprogrammering 21/10 Binära träd
Google SketchUp Del 1.
William Sandqvist C-programmering ID120V Stack och Kö William Sandqvist
Initiera nätverket med nollflöde. Kapaciteterna i svart ovan bågarna och flödet i grönt nedan bågarna. Skicka igenom ett enhetsflöde genom nätverket. Flödesvägen.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
Graph och graph-algoritmer. Några enkla graph teorier Hur IP trafik hittar destinationen i Internät ? GPS-system ? Sociala nätverk. Vanligaste frågeställningar:
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 9 Grafalgoritmer.
1 Ingenjörsmetodik IT & ME 2007 Föreläsare Dr. Gunnar Malm.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 13 Sortering.
NÄTVERKSPROTOKOLL Föreläsning INNEHÅLL - Routingprotokoll - Interior gateway protocols - Exterior gateway protocols - Link state routing.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 14.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Hash Tabeller och Graf.
Lathund PowerPoint 2007 Lathund
Operativsystem - Baklås Mats Björkman
Ruttplanering Vad är det??.
På den här bilden, marken (vattnet) stannar där linjen är
Figurer.
Välkommen till PowerPoint
Komma igång med Scratch
Inkorgen Den organiserade Rensa i mappar Ignorera konversation
 U Q  A  S V   P R T   Prioritetskö <P,0>
Hur jag kan få flera kantlinjer och fyllningar samtidigt!!
Hantering av nya Diploma Supplement under övergångsperioden 2019
Rapportera resultat med titel
Presentationens avskrift:

Pathfinding

–Vad är det? –Sökning från A till B

Tracking –Enklaste versionen av pathfinding –Gå rakt till målet, utan hänsyn till hinder –Algo 1. Dra linje mellan start och mål 2. Flytta objektet med vektorn 3. Om inte vid målet, upprepa (gå till 2)

Crash and turn –Som tracking, men när objektet kolliderar med något så backar man, går åt höger eller vänster ett givet antal steg, och sen provar man att gå mot målet igen –Algo 1. Dra linje mellan start och mål, normalisera 2. Flytta objektet med vektorn 3. Om kollision: –3A. Backa ett antal steg (negera riktning) –3B. Välj riktning (rotera vektor) –3C. Flytta ett antal steg, hårdkodat eller slumpat 4. Om inte vid målet, upprepa (gå till 2)

Contour tracing –Förbättrad variant av Crash and Turn. Skillnaden är att när objekt kolliderar med något så följer man dess konturer istället för att bara slumpa en ny riktning. Man testar periodiskt om en linje (från obj till mål) skär hindret – gör den det, fortsätt följ, annars vrid mot mål. –Vanligt i FPS, inte bra i spel med toppvy –Algo 1. Dra linje mellan start och mål, normalisera 2. Flytta objektet med vektorn 3. Om kollision: –3A. Följ linjesegment (välj riktning, slumpa eller ta närmast) –3B. Dra linje från objekt till mål –3C. Om linje skär hinder, fortsätt följ kontur (gå till 3A) 4. Om inte vid målet, upprepa (gå till 2)

Collision Avoidance Tracks –Förbättrad Contour Tracing. Contour Tracing ser dumt ut uppifrån. Kräver bättre algoritm som inte följer kontur slaviskt. –Placera spår runt hinder, som visar väg. Spår består av antal noder, och kopplingen mellan visar hur man ska gå. –När objektet skall flyttas mot mål, testar man (med linje) om det är fritt mot mål. Finns det hinder, går man till närmsta spår, med tracking, och följer fler spår tills linjen mot mål är fri igen. –Kommer alltid att hitta en väg runt hinder, eftersom det är förbestämt.

Collision Avoidance Tracks –Algo 1. Dra linje mellan start och mål, normalisera 2. Flytta objekt med vektor 3. Om hinder i vägen (linjetest) –3A. Hitta närmaste trackingnod –3B. Gå till den (tracking) –3C. Följ riktningsvektor till nästa nod –3D. Om hinder i vägen, upprepa (gå till 3C) 4. Om inte vid målet, upprepa (gå till 2)

Waypoint Pathfinding –Vidareutveckling av Collision Avoidance Tracks. –Istället för bara noder runt hinder, noder på hela banan. –Enkelt: hitta närmsta nod och följ riktningsvektorer till mål. –Väldigt användbar i bilspel.

Waypoint Pathfinding, exempel struct WayPoint {int x, y; WayPoint * next; } WayPoint path[5] = {{ x0, y0, & path[1] }, { x1, y1, & path[2] }, { x2, y2, & path[3] }, { x3, y3, & path[4] }, { x4, y4, NULL /* markerar slut */ }}; // Kan även peka på noder i annan lista, för att byta spår // Följ noderna, pseudo While(not_at_goal()) { tracking(path[next_node]); if(reached(path[next_node])) next_node = path[next_node].next; }

A* –Graf, noder, kanter –Används för sökningar i träd / grafer Gamestates, luffarschack, schack (sök mål) –Breadth first, depth first –Använder heuristiska funktioner för att kapa dåliga sökgrenar. Algoritm, bakgrund –Sökarea, rutnät (men ändå graf), start / mål, (non)walkable, parent / child, islands –Öppen lista, ännu obesökta noder –Stängd lista, färdiga (besökta noder)

Algoritm, bakgrund forts –Algo är breadth first (testar alla i omgivningen), men istället för att blint testa alla, tar man dom med lägst F-poäng. –F = G + H. Värderar en nod. G – Avstånd (kostnad) från startnod. H – Avstånd (kostnad) till målnod. (Manhattan, fågelväg) –Algo väljer bäst först, sökning blir snabb. –När man nått målet följer man parentlista, från mål till start.

A* algoritm –1. Lägg till startnod i öppen lista –2. Upprepa A. Hitta nod med lägst F-poäng i öppna listan. Detta blir nuvarande nod. B. Lägg till den i stängda listan, ta bort från öppna. C. För varje grannod (8 st) –Om den är nonwalkable, eller i stängda listan, ignorera. –Om inte i stängd lista, lägg till den. Markera nuvarande nod som förälder och beräkna F = G + H. –Om den finns i öppen lista, kolla om kostnaden för denna väg är mindre än redan lagrade. Lägre G-poäng ger bättre väg. Om bättre, byt parent till nuvarande och beräkna om F. D. Stoppa när –Målnoden läggs till öppna listan, då är path funnen. –När öppen lista är tom, ingen path finns (island) –3. Spara path. Börja på målnod, gå genom parents till start.