A*-algoritmi

Esimerkki A*-algoritmista.

A*-algoritmi (lausutaan A tähti) on polunetsintäalgoritmi, joka etsii lyhyimmän reitin kahden pisteen välillä. Algoritmia voidaan käyttää myös tekoälyssä ratkaisun etsimiseen hakupuusta. Algoritmia voidaan hyödyntää muun muassa verkkojen reitityksessä ja GPS-paikannuksessa

Algoritmin julkaisivat Peter E. Hart, Nils J. Nilsson ja Bertram Raphael vuonna 1968.[1] A*-algoritmi on samankaltainen kuin toinen yleisesti polunetsintään käytetty Dijkstran algoritmi.[2] A* kehitettiin yhdistämällä heuristiikkaa ja formaali Dijkstran algoritmi.[3]

Kuvaus

Algoritmin tarkoituksena on evaluoida lehtisolmuja funktion f ( n ) = g ( n ) + h ( n ) {\displaystyle f(n)=g(n)+h(n)} avulla, missä g ( n ) {\displaystyle g(n)} kuvaa kustannusta saavuttaa tietty solmu ja h ( n ) {\displaystyle h(n)} on kustannusarvio solmusta maalitilaan. Tällöin f {\displaystyle f} approksimoi kustannusta lähtösolmusta maalisolmuun. A*-algoritmi on optimaalinen jos h {\displaystyle h} on luvallinen. Tämä tarkoittaa sitä, että h {\displaystyle h} ei koskaan yliarvioi kustannusta saavuttaa maalisolmu.[4]

Lähteet

  1. Peter E. Hart & Nils J. Nilsson & Bertram Raphael: A Formal Basis for the Heuristic Determination of Minimum Cost Paths ieeexplore.ieee.org. doi:10.1109/TSSC.1968.300136. Viitattu 5.6.2024. (englanniksi)
  2. Dian Rachmawati1 & Lysander Gustin: Analysis of Dijkstra’s Algorithm and A* Algorithm in Shortest Path Problem (PDF) iopscience.iop.org. 2019. doi:10.1088/1742-6596/1566/1/012061. Viitattu 5.6.2024. (englanniksi)
  3. Introduction to A* theory.stanford.edu. Viitattu 5.6.2024. (englanniksi)
  4. Introduction to A* algorithm mnemstudio.org. Arkistoitu 3.7.2018. Viitattu 3.7.2018. (englanniksi)
Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.