Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengoptimumkan Algoritma A* untuk Menyelesaikan Teka-teki Unta Tasmania?
Kod ini bertujuan untuk menyelesaikan teka-teki unta Tasmania menggunakan algoritma A*. Walau bagaimanapun, prestasinya terhalang kerana kesesakan dalam kod.
Serangkaian jejak tindanan mendedahkan bahawa kebanyakan masa dihabiskan dalam baris 80 fungsi astar :
openlist.put((current.g + heuristicf(neighbor), node(neighbor, current.g + 1, current)))
Barisan ini melibatkan berbilang operasi:
Mengasingkan operasi ini ke dalam baris berasingan akan membantu menentukan punca kelembapan. Walau bagaimanapun, adalah jelas bahawa pengiraan berulang heuristik untuk susunan jiran adalah potensi kesesakan prestasi.
Untuk meningkatkan prestasi kod, pertimbangkan cadangan berikut:
Dengan melaksanakan pengoptimuman ini, prestasi kod seharusnya meningkat dengan ketara, membolehkannya menyelesaikan kejadian teka-teki yang lebih besar dengan lebih cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Algoritma A* untuk Menyelesaikan Teka-teki Unta Tasmania?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!