私は3Dコンピュータグラフィックスでいくつかのことをしましたが、グラフ理論には少し慣れていません。特に、Perl(Jarkko Hietaniemi)でアルゴリズムをマスターするで説明されているように、深さ優先探索(DFS)を使用して問題を調べ、解決しようとしています。これまでのところ、私はそれを取得することができませんでした:-(しかし、私はかなりです-DFSが私が欲しいものであると確信しています。
Perlである必要はありませんが(言語を学ぼうとしているだけです)、JavaまたはC++が適しています。
私は53の位置ベクトル、つまり(x、y、z)を持っています。
(x1,y1,z1)
(x2,y2,z2)
.
.
.
(x53,y53,z53)
次に、ノード間にランダムなリンクを生成するために作成したPerlプログラムを実行し、最大数を割り当てます。ホップの数、たとえば6。したがって、トポロジは次のようになります。
5 <-- node 1 has 5 links to
18 4 23 6 48, <-- node 18, node 4, node 23, node 6, node 48
2 <-- node 2 has 2 links to
14 5, <-- node 14, node 5
0 <-- node 3 is a leaf since it has no links
.
.
.
2 <-- node 18 has 2 links to
3 17 <-- node 3, node 17
.
.
.
4 <-- node 53 has 4 links to
10 46 49 22 <-- node 10, node 46, node 49, node 22
シンクに到達するまでのパス「実行」、つまり0を決定したいと思います。たとえば、ノード1からノード18、ノード3...このパスはすでに完了しています。。。。
DFSが欲しいと思います。再帰的な運動のようです。
誰かが私にコードを理解してくれてくれたら、それは素晴らしいことです。私は学生ではありませんが、51歳です!多分それは私がこれを取得していないことと関係があります:-)
私は自分のqを見て、何らかの理由で(おそらく私:-(それは「文字化け」していた)
トポロジは5のようになります<-ノード1には5つのリンクがあります。18 4 23 6 48 <-ノード18、ノード4、ノード23、ノード6、ノード482<-ノード2には2つのリンクがあります。14 5、<-ノード14、ノード5 0 <-ノード3はリンクがないため、リーフです。。。2<-ノード18には2つのリンクがあります。3 17 <-ノード3、ノード17。。。4<-ノード53には4つのリンクがあります。10 46 49 22 <-ノード10、ノード46、ノード49、ノード22
誰かがコードを提供できる場合に備えて明確にしておきたい(Perl、Java、c ++ / C ...)
ありがとう。