16
2つの任意の頂点間のすべての接続を見つけるグラフアルゴリズム
以下で説明するタスクを実行するための最適な時間効率の良いアルゴリズムを決定しようとしています。 一連のレコードがあります。このレコードのセットには、このセットのレコードのペアが相互に接続する方法を示す接続データがあります。これは基本的に無向グラフを表し、レコードは頂点であり、接続データはエッジです。 セット内のすべてのレコードには接続情報があります(つまり、孤立したレコードはありません。セット内の各レコードは、セット内の他の1つ以上のレコードに接続しています)。 セットから任意の2つのレコードを選択し、選択したレコード間のすべての単純なパスを表示できるようにしたいと思います。「単純なパス」とは、パスに繰り返しレコードがないパス(つまり、有限パスのみ)を意味します。 注:選択した2つのレコードは常に異なります(つまり、開始頂点と終了頂点が同じになることはなく、サイクルはありません)。 例えば: 次の記録がある場合: A、B、C、D、E 以下は接続を表しています。 (A、B)、(A、C)、(B、A)、(B、D)、(B、E)、(B、F)、(C、A)、(C、E)、 (C、F)、(D、B)、(E、C)、(E、F)、(F、B)、(F、C)、(F、E) [(A、B)は、レコードAがレコードBに接続することを意味します] 開始レコードとしてBを選択し、終了レコードとしてEを選択した場合、レコードBをレコードEに接続するレコード接続を通るすべての単純なパスを見つけたいと思います。 BをEに接続するすべてのパス: B-> E B-> F-> E B-> F-> C-> E B-> A-> C-> E B-> A-> C-> F-> E これは一例です。実際には、何十万ものレコードを含むセットがある場合があります。