(1)ダイクストラ・プリムアルゴリズムとクラスカルアルゴリズム
Dijkstra-Primアルゴリズムの基本的な考え方: すべてのノードは 2 つのグループに分けられ、1 つは選択された selected_node (リスト タイプ)、もう 1 つは Candidate_node です。まず、任意のノードを取得して selected_node に追加し、次に、 selected_node の先頭ノードと、candidate_node の末尾ノードを指定し、この条件を満たすエッジの中で最も重みが小さいエッジを選択し、最小全域木に追加します。選択したエッジの末尾ノードは selected_node に追加され、削除されます候補ノードから。candidate_node に候補ノードがなくなるまで (このループ条件では、すべてのノードにエッジ接続があることが必要です。つまり、エッジの数がノードの数 -1 以上である必要があります)、ループの開始前にこの条件を追加する必要があります。そうでない場合は、常に候補内にあるノードが存在する可能性があり、無限ループが発生します)。
クラスカル アルゴリズムの基本的な考え方: まずエッジを重みの小さいものから大きいものに並べ替え、最初に最小の重みを持つエッジを選択します。エッジの 2 つのノードが異なるコンポーネントである場合、それを最小スパニング ツリーに追加します。それ以外の場合は、すべてのエッジが通過されるまで次のエッジを計算します。
ダイクストラ・プリムアルゴリズム:
クラスカルのアルゴリズム:
答えにマークを付けます:
(2) グラフ検索アルゴリズム
答え:
1) コストベースの統合検索を適用すると、状態ノードが展開される順序は次のとおりです: start、B、A、D、C、Goal。返されるパスは: Start-AD-Goal です。
2) A* グラフ検索アルゴリズムを使用すると、状態が展開される順序は、Start、B、A、D、C、Goal となり、返されるパスは Start-AD-Goal となります。
展開シーケンスは次の図に示すとおりです。