正しさの証明とは? わかりやすく解説

正しさの証明

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/04/10 17:11 UTC 版)

ベルマン–フォード法」の記事における「正しさの証明」の解説

このアルゴリズム正しさ数学的帰納法で示すことができる。以下にそれを示す。 補題: for サイクルを i 回繰り返したとき: Distance(u) が無限大でないとき、その値は s から u の何らかの経路の距離と等しい。 高々 i 個の辺からなる s から u への経路があるとき、Distance(u) は高々 i 個の辺から成る s から u への高々最短経路の距離である。 証明: 帰納法基本ケースとして、i=0 で for サイクル実行する前の時点考える。すると、始点については source.distance = 0 であるから正しい。他の頂点 u については u.distance = infinity なので、これも正しい(0個の辺からなる始点から u への経路存在しない)。 帰納ケースについては、まず第1の部分証明する。ある頂点の距離が v.distance := u.distance + uv.weight で更新され時点考える。帰納法上の前提により、u.distance は始点から u へのなんらかの経路の距離である。したがって u.distance + uv.weight は始点から u までの経路長さと、そこから v までの距離を加えたもので、始点から v までの経路の距離である。 第2の部分については、高々 i 個の辺からなる始点から u への最短経路考える。v が その経路上 u の直前頂点だとする。すると、始点から v までの経路高々 i-1 個の辺からなる始点から v までの最短経路となる。帰納法上の前提により、i-1 回の反復後の v.distance は高々この経路の距離である。したがって、uv.weight + v.distance は高々 s から u への経路の距離である。i-番目の反復で、u.distance は uv.weight + v.distance と比較され、uv.weight + v.distance の方が小さければその値が設定される。したがって、i 回の反復後、u.distance は高々始点から uへの最短経路の距離であり、その経路には高々 i 個の辺がある。 負の重み閉路がないなら、それぞれの最短経路には各頂点高々1回出現する。したがって step 3至ったとき、それ以上経路や距離の短縮不可能である。逆に短縮できないとすると、頂点 v[0],..,v[k-1] の任意の閉路について、次が成り立つ。 v[i].distance <= v[i-1 (mod k)].distance + v[i-1 (mod k)]v[i].weight 閉路上で総和求めると、v[i].distance の項と v[i-1 (mod k)].distance の項は相殺され次の式が残る。 0 <= v[i-1 (mod k)]v[i].weight の 1 から k までの総和 すなわち、全ての閉路は負でない重みを持つ。

※この「正しさの証明」の解説は、「ベルマン–フォード法」の解説の一部です。
「正しさの証明」を含む「ベルマン–フォード法」の記事については、「ベルマン–フォード法」の概要を参照ください。


正しさの証明

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/12/05 08:32 UTC 版)

プリム法」の記事における「正しさの証明」の解説

P を重み付き連結グラフとする。プリム法繰り返しでは、毎回ある部分グラフからその外部へと接続している辺を探し出す。P は連結グラフなので、全ての頂点に常に道が存在するプリム法出力 Y に追加される辺と頂点はつねに接合しているため、Y は木である。Y1 が P の最小全域木であるとする。Y1=Y なら、Y は最小全域木である。そうでない場合、Y にあって Y1 にない辺のうち、Y の構築時に最初に追加された辺を e とし、e が追加される以前追加された辺に接合している頂点集合を V とする。e の端点一方は V にあり、もう一方はそうではない。Y1 は P の全域木なので、Y1 にはその2つの端点をつなぐ道がある。その道をたどると、V 内の頂点から V 外の頂点への辺 f に必ず遭遇するさて、Y に e を追加した時の繰り返しにおいて、e よりも f の方が重み小さければ f が追加されていただろう。しかし f は追加されなかったので、次の結論得られる。 w(f) ≥ w(e) Y1 から f を除いて e を追加したグラフを Y2 とする。Y2 が連結グラフであり、Y1同数の辺を持ち、辺の重み総和Y1 より小さいことは容易に示すことができる。従って、これも P の最小全域木であり、e を含みそれ以前に V の構築の際に追加され全ての辺を含んでいる。以上を繰り返し適用していくと、Y と全く同じ P の最小全域木得られる。以上から、Y は最小全域木であることがわかる。 最小全域木問題の他のアルゴリズムとしてクラスカル法ブルーフカ法がある。

※この「正しさの証明」の解説は、「プリム法」の解説の一部です。
「正しさの証明」を含む「プリム法」の記事については、「プリム法」の概要を参照ください。


正しさの証明

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/04/10 17:55 UTC 版)

クラスカル法」の記事における「正しさの証明」の解説

このアルゴリズムの正しさの証明は2つ部分分けられる第一全域木生成していること、第二はそれが最小重みであることである。

※この「正しさの証明」の解説は、「クラスカル法」の解説の一部です。
「正しさの証明」を含む「クラスカル法」の記事については、「クラスカル法」の概要を参照ください。

ウィキペディア小見出し辞書の「正しさの証明」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「正しさの証明」の関連用語

正しさの証明のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



正しさの証明のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのベルマン–フォード法 (改訂履歴)、プリム法 (改訂履歴)、クラスカル法 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS