G = (V, E) を重み付き連結無向グラフとします。G に 2 つの異なる MST があるかどうかを判定する効率の良いアルゴリズムを説明してください。
私がすでに解決した前の問題は、はるかに簡単でした: G に MST が 1 つだけ存在するかどうかを決定する効率的なアルゴリズムを説明してください。
これが私が後者の質問を解決した方法です:
Kruskal アルゴリズムを実行し、新しい MST のエッジを青で、残りのエッジを赤で色付けします。
次に、これまでに見た (Kruskal を使用する) 別の単純なアルゴリズムを使用しました。このアルゴリズムは、最大数の赤いエッジを含むグラフ内の MST を見つけます。つまり、エッジの色に関係なく、グラフ G 内の MST であり、他のすべての MST には、アルゴリズムが検出した MST よりも多くの赤いエッジを含めることはできません。
これで、アルゴリズムが同じ MST (すべての青いエッジを含む) を見つけた場合、MST は 1 つだけになります。
ここでのもう 1 つの質問は、もっと複雑に思えます。上記のアルゴリズムを使用してみましたが、他のさまざまなトリックも使用しようとしましたが、どちらも機能しませんでした。
ところで、グラフ内の異なる MST の数をカウントするアルゴリズムがあると聞いたことがありますが、それは実際にはやり過ぎであり、単純なアルゴリズムを提供するよう求められました。
助けていただければ幸いです、ありがとう