Ilustrasi sederhana algoritma A* dengan titik awal, tujuan, rintangan, dan jalur yang ditemukan.
Algoritma A* (dibaca "A-star") adalah sebuah algoritma pencarian graf yang digunakan untuk menemukan jalur terpendek dari satu titik awal ke titik tujuan dalam sebuah graf. Algoritma ini sangat efisien dan populer karena kemampuannya dalam menyeimbangkan antara efisiensi pencarian dan akurasi dalam menemukan jalur optimal. Berbeda dengan algoritma pencarian sederhana seperti Breadth-First Search (BFS) yang hanya mencari jalur terpendek berdasarkan jumlah langkah, atau Dijkstra's Algorithm yang hanya mempertimbangkan biaya perjalanan, A* menggunakan informasi heuristik untuk memprediksi jarak dari node saat ini ke titik tujuan.
Inti dari algoritma A* adalah sebuah fungsi evaluasi, seringkali disebut f(n), yang dihitung untuk setiap node (titik) dalam graf. Fungsi ini memiliki formula sebagai berikut:
f(n) = g(n) + h(n)
Di mana:
g(n) adalah biaya sebenarnya dari titik awal ke node n. Ini adalah akumulasi biaya dari semua langkah yang telah diambil untuk mencapai node n.
h(n) adalah biaya heuristik yang diperkirakan dari node n ke titik tujuan. Heuristik ini adalah perkiraan, bukan nilai pasti, namun harus memenuhi kriteria tertentu agar A* menjamin menemukan jalur optimal. Contoh heuristik yang umum digunakan adalah jarak Euclidean (jarak garis lurus) atau jarak Manhattan (jarak horizontal dan vertikal).
Algoritma A* bekerja dengan menjaga dua daftar utama:
f(n) terkecil.
Prosesnya dimulai dengan menambahkan node awal ke Open List. Kemudian, algoritma berulang kali mengambil node dengan nilai f(n) terendah dari Open List, memindahkannya ke Closed List, dan mengeksplorasi tetangga-tetangganya. Untuk setiap tetangga, biaya g(n) dan h(n) dihitung, kemudian nilai f(n) baru ditentukan. Jika tetangga belum ada di Open List atau Closed List, ia ditambahkan. Jika sudah ada, namun jalur baru yang ditemukan lebih efisien (memiliki g(n) lebih rendah), maka informasi pada tetangga tersebut diperbarui. Proses ini berlanjut hingga node tujuan ditemukan atau Open List kosong (yang menandakan tidak ada jalur yang dapat dicapai).
Algoritma A* memiliki dua properti penting:
h(n) yang digunakan adalah admissible (tidak pernah melebih-lebihkan biaya sebenarnya ke tujuan), maka A* dijamin akan menemukan jalur terpendek.
Pemilihan heuristik yang baik sangat krusial. Heuristik yang terlalu "cerdas" (mendekati nilai sebenarnya) akan membuat A* bergerak lebih cepat menuju tujuan, sementara heuristik yang terlalu "bodoh" (memberikan perkiraan yang sangat kasar) akan membuat A* berperilaku mirip dengan algoritma pencarian lain yang kurang efisien.
Karena efektivitas dan kemampuannya menemukan jalur optimal, algoritma A* banyak diaplikasikan dalam berbagai bidang, termasuk:
Algoritma A* tetap menjadi salah satu algoritma pencarian jalur yang paling relevan dan kuat hingga saat ini, menawarkan solusi yang efisien dan andal untuk berbagai masalah dalam ilmu komputer dan domain lainnya.