私は検索アルゴリズムを試していますが、問題を解決するためにA *アルゴリズムを使用しようとしています。Python - 辞書のリストを並べ替える
私は、内部ノード構造を維持するために辞書のリストを使用しています。 各ノードは、特定の状態と関連コストによって特徴付けられます。 選択関数は、最もコストの低いノードを返さなければなりません。 これを行うには、毎回リストをフィルタリングしています。 問題が非常に小さい場合、これは非常に高速ですが、 ですが、リストが非常に大きい場合、この関数はアルゴリズムの合計時間の84%を使用します。
私の質問は、これを行うより効率的な方法があるかどうかです。
def select(self, frontier):
frontier.sort(key = lambda x: x['f_cost'])
#select the node with the lowest f_cost
return frontier.pop(0)
代わりにプライオリティキューを使用することもできます。たとえば、['heapq'](https://docs.python.org/3/library/heapq.html)。 –