サンプル (graph-alg/gw_dijkstra) のバグ修正と、UI の改善
1) サンプルの動作を確認する
demo/graph-alg/gw_dijkstra.exe を起動すると、図のようなグラフが現れる
- ノード数:25, エッジ数:40
- エッジには Weight がある。例えば、最下方の4つのエッジには
64, 71, 87, 88
の Weight が割当てられている。
- 各ノードに記入されている数字は、始点ノードから該当ノードに至る最短経路の Weight の総和です。
左下コーナーにあるのが「始点ノード」で、Weight の総和は '0' です。
例えば、最下方の5つのノードにおける Weight の総和は以下のようです。
[0]: 始点ノード
[64]: Weightの総和= 0 + 64
[135]: Weightの総和= 0 + 64 + 71
[222]: Weightの総和= 0 + 64 + 71 + 87
[310]: Weightの総和= 0 + 64 + 71 + 87 + 88
- 青色の太線は、各ノードに至る最短経路を示します。
2) エッジの Weight を変更して、結果を確認する
- 右上にあるエッジ ([238] ---> [283]) の Weight= 80 を、スライダーを左に移動させて、Weight= 43 に変更する
--> 右上コーナのノードへの最短経路が、変更される
3) グラフを保存する
- メニューの "File-> Save-> gw_graph" を選ぶ
--> ファイル・ダイアログが現れるので、"Dijkstra1.gw" の名前で保存する
4) グラフ・データを読み込む
- メニューの "Graph-> Clear" を選ぶ
--> 画面上のグラフが削除される
- メニューの "File-> Load-> gw_graph" を選ぶ
--> ファイル・ダイアログが現れるので、"Dijkstra1.gw" を選択する
グラフ・データが読み込まれるが、元の保存されたグラフとは全く異なる
--> 原因としては、このサンプルが、グラフ・データをロードした直後に、エッジの Weight を乱数で初期化してしまうためです。
5) サンプル(graph-alg/gw_dijkstra) のバグ修正と、UIの改善
6) 修正されたサンプルの動作を確認する
- demo/graph-alg/gw_dijkstra_new.exe を起動する
- メニューの "Graph-> Clear" を選ぶ
--> 画面上のグラフが削除される
- メニューの "File-> Load-> gw_graph" を選ぶ
--> ファイル・ダイアログが現れるので、"Dijkstra1.gw" を選択すると、図のようなグラフが現れる。
これは、元の保存されたグラフと同じ内容です。
また、Weight の表示が、単なる数字ではなくて、"cost= 43" と言うように、より明確な表現となっています。