私はいくつかの真/偽の質問を終わらせようとしています。それらの多くに true で答えると不安になります...すべてのグラフは無向であり、明確な重みを持たないと仮定してください。負の重みは問題ないはずです。
Qa) G に一意の最も重いエッジ e を持つサイクルがある場合、e は MST の一部になることはできません。
私の答えは本当です。たとえば、ノード A、B、C、D、E を持つグラフがあります。
AB = 1
BC = 2
BD = 3
CD = 100
DE = 4
ご覧のとおり、BCD はサイクルです。私の主張は、これはサイクルであるため、他のルートを利用することで、唯一の最も重いエッジ CD を常に回避できるということです。したがって、それは本当です。私の議論は(十分に)正しいですか?
Qb) ダイクストラのアルゴリズムによって計算された最短パス ツリーは、必然的に MST です。
私の答えは正しいですが、私の本能は何かがおかしいと教えてくれます。ええと... Disjkstra と Prim はどちらも貪欲なアルゴリズムです。どちらも常に最も軽量なエッジを使用します。最短経路木が最小全域木でない場合はありますか? 実は、この二人の違いを理解するのに苦労しています。
Qc) Prim のアルゴリズムは、負の加重エッジで機能します。
私の答えは本当です。それがウィキが言ったことだから... :p アルゴリズムは、すべてのエッジの中で最低コストのエッジを見つけることです。では、負の加重エッジは問題にならないはずですよね? しかし、負の加重サイクルはどうでしょうか?
Qd) G に一意の最軽量エッジ e を持つサイクルがある場合、e はすべての MST の一部でなければなりません。
私の答えは本当です。MST 内のすべてのノードにアクセスする必要があります。たとえば、長さ 3 のサイクルでは、そのサイクル内のすべてのノードを常に 2 ステップでトラバースできます。独自の最も軽いエッジがあれば、MST で間違いなくそれを選択します。
私の主張は正しいですか?おそらくそれらは不十分ですか?何か提案はありますか?