経路の管理
システムでは、目的地に行くまでにどの経路を通れば安全かを解析するため、経路(場所と場所との関係)を管理する必要があります。
ただし、危険を覚悟してでも近道を通りたい場合もあるため、各経路にはどれほどの負荷があるかといった情報を持たせておきます。
負荷の単位は、移動距離でも移動時間でもいいですが、その他の要素(薄暗くて怖い道など)も盛り込めるよう、負荷という曖昧な言葉にしてあります。
場所Aから場所Bへの負荷と場所Bから場所Aへの負荷は等しいとは限りません。
通常の移動手段が自転車であれば、登り坂と下り坂で負荷が異なるからです。
経路マスタ
主キー | 列名 | データ型 | サイズ | NULL |
○ | 移動元ID | int | 4 | × |
○ | 移動先ID | int | 4 | × |
| 移動負荷 | int | 4 | × |
サンプルデータ
移動元ID | 移動先ID | 移動負荷 |
0 | 4 | 4 |
0 | 5 | 4 |
1 | 3 | 10 |
1 | 4 | 6 |
2 | 5 | 3 |
3 | 1 | 6 |
3 | 6 | 4 |
4 | 0 | 4 |
4 | 1 | 6 |
4 | 6 | 8 |
5 | 0 | 4 |
5 | 2 | 5 |
6 | 3 | 4 |
6 | 4 | 4 |
経路イメージ
上記の値は以下のような経路だった場合のサンプルです。
| | | | 6 | ─ | 3 | ┐ |
2 | | | | ↑ | | | ↑ |
↑ | | | | ↑ | | | ↑ |
5 | ─ | 0 | ─ | 4 | ─ | ─ | 1 |
- 「─」は平らな道で負荷は2です。
- 「↑」は坂道で、登りの負荷は3、下りの負荷は1です。