此程式碼旨在使用 A* 演算法解決塔斯馬尼亞駱駝拼圖。然而,由於程式碼瓶頸,其效能受到阻礙。
一系列堆疊追蹤顯示大部分時間花費在 astar 函數的第 80行:
openlist.put((current.g + heuristicf(neighbor), node(neighbor, current.g + 1, current)))
這一行涉及多個操作:
將這些操作隔離到單獨的行中將有助於找出經濟放緩的根源。然而,很明顯,對鄰近排列的啟發式的重複計算是潛在的效能瓶頸。
要提高程式碼的效能,請考慮以下建議:
透過實現這些最佳化,程式碼的效能應該會顯著提高,從而允許更有效地解決更大的謎題實例。
以上是如何優化 A* 演算法來解決塔斯馬尼亞駱駝難題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!