Inom datavetenskap är Jump Point Search ( JPS ) en optimering av A* -sökalgoritmen för enhetliga kostnadsnät. Minskar symmetri i sökproceduren genom att minska grafen [1] genom att ta bort vissa noder i rutnätet baserat på antaganden som kan göras om den aktuella nodens grannar om vissa nätrelaterade villkor är uppfyllda. Som ett resultat kan algoritmen ta hänsyn till långa hopp längs raka (horisontella, vertikala och diagonala) linjer i rutnätet, snarare än små steg från en rutnätsposition till en annan, som vanlig A* [2] gör .
Att hitta en övergångspunkt håller A* optimal , vilket potentiellt minskar dess exekveringstid med en storleksordning [1] .
Den ursprungliga publikationen av Harabor och Grastien presenterar grannbeskärnings- och efterföljandedetekteringsalgoritmer [1] . Den ursprungliga grannklippningsalgoritmen tillät hörnklippning, vilket innebar att algoritmen endast kunde användas för att flytta nollbreddsagenter, vilket begränsar dess användning till antingen riktiga agenter (t.ex. robotik) eller simuleringar (t.ex. många spel).
Författarna har lämnat in ändrade klippningsregler för applikationer där hörnklippning är inaktiverat nästa år [3] . Den här artikeln introducerar också en mesh-förbearbetningsalgoritm för att minimera söktiden på internet.
Under 2014 publicerade författarna ett antal ytterligare optimeringar [4] . Dessa optimeringar inkluderar att undersöka kolumner eller rader av noder istället för enskilda noder, förberäkning av övergångar i nätet och strängare urklippsregler.
Även om övergångspunktsökningen är begränsad till rutnät med enhetliga kostnader och agenter med enhetlig storlek, planerar författarna i framtiden att använda PTP:er med befintliga rutnätsbaserade accelerationsmetoder såsom hierarkiska rutnät [4] [5] .
Algoritmer för grafsökning | ||
---|---|---|
Oinformerade metoder | ||
Informerade metoder | ||
Genvägar | ||
Minsta spännträd | ||
Övrig |