From the very beginning...
Graph theory (圖論)
Graph theory (圖論)
離散數學
Topology (拓撲學)
Set theory (集合論)
Mathematical logic
(數理邏輯)
...
Graph theory (圖論)
無向圖
有向圖
頂點: 事物
線: 事物間的關係
Graph theory (圖論)
柯尼斯堡七橋問題
A
B
C
D
A
B
C
D
在所有橋都只能走一遍的前提下,如何才能把這個地方所有的橋都走遍?
Graph theory (圖論)
A
B
C
D
在所有橋都只能走一遍的前提下,如何才能把這個地方所有的橋都走遍?
Ans: 不可能(一筆畫問題,萊昂哈德·歐拉在1736年提出)
對於一個給定的連通圖,如果存在超過兩個(不包括兩個)奇頂點,那麼滿足要求的路線便不存在了
Dijkstra Algorithm
Dijkstra Algorithm
a
b
c
d
e
f
7
9
14
10
2
9
11
15
6
A
B
a | b | c | d | e | f | 新增 |
---|---|---|---|---|---|---|
∞ | ∞ | ∞ | ∞ | ∞ | ∞ | a |
a
b
c
d
e
f
7
9
14
10
2
9
11
15
6
A
B
a | b | c | d | e | f | 新增 |
---|---|---|---|---|---|---|
∞ | ∞ | ∞ | ∞ | ∞ | ∞ | a |
0 | 7 | 9 | 14 | ∞ | ∞ |
a
b
c
d
e
f
7
9
14
10
2
9
11
15
6
A
B
b | c | d | e | f | 新增 | |
---|---|---|---|---|---|---|
∞ | ∞ | ∞ | ∞ | ∞ | ∞ | a |
0 | 7 | 9 | 14 | ∞ | ∞ | b |
a
b
c
d
e
f
7
9
14
10
2
9
11
15
6
A
B
b | c | d | e | f | 新增 | |
---|---|---|---|---|---|---|
∞ | ∞ | ∞ | ∞ | ∞ | ∞ | a |
0 | 7 | 9 | 14 | ∞ | ∞ | b |
0 | 7 | 9 | 14 | ∞ | 22 |
a
b
c
d
e
f
7
9
14
10
2
9
11
15
6
A
B
c | d | e | f | 新增 | ||
---|---|---|---|---|---|---|
∞ | ∞ | ∞ | ∞ | ∞ | ∞ | a |
0 | 7 | 9 | 14 | ∞ | ∞ | b |
0 | 7 | 9 | 14 | ∞ | 22 | c |
a
b
c
d
e
f
7
9
14
10
2
9
11
15
6
A
B
c | d | e | f | 新增 | ||
---|---|---|---|---|---|---|
∞ | ∞ | ∞ | ∞ | ∞ | ∞ | a |
0 | 7 | 9 | 14 | ∞ | ∞ | b |
0 | 7 | 9 | 14 | ∞ | 22 | c |
0 | 7 | 9 | 11 | ∞ | 20 |
a
b
c
d
e
f
7
9
14
10
2
9
11
15
6
A
B
d | e | f | 新增 | |||
---|---|---|---|---|---|---|
∞ | ∞ | ∞ | ∞ | ∞ | ∞ | a |
0 | 7 | 9 | 14 | ∞ | ∞ | b |
0 | 7 | 9 | 14 | ∞ | 22 | c |
0 | 7 | 9 | 11 | ∞ | 20 | d |
a
b
c
d
e
f
7
9
14
10
2
9
11
15
6
A
B
d | e | f | 新增 | |||
---|---|---|---|---|---|---|
∞ | ∞ | ∞ | ∞ | ∞ | ∞ | a |
0 | 7 | 9 | 14 | ∞ | ∞ | b |
0 | 7 | 9 | 14 | ∞ | 22 | c |
0 | 7 | 9 | 11 | ∞ | 20 | d |
0 | 7 | 9 | 11 | 20 | 20 |
a
b
c
d
e
f
7
9
14
10
2
9
11
15
6
A
B
e | f | 新增 | ||||
---|---|---|---|---|---|---|
∞ | ∞ | ∞ | ∞ | ∞ | ∞ | a |
0 | 7 | 9 | 14 | ∞ | ∞ | b |
0 | 7 | 9 | 14 | ∞ | 22 | c |
0 | 7 | 9 | 11 | ∞ | 20 | d |
0 | 7 | 9 | 11 | 20 | 20 |
Ended ?
Yes! Because
a
b
c
d
e
f
7
9
14
10
2
9
11
15
-2
A
B
e | f | 新增 | ||||
---|---|---|---|---|---|---|
∞ | ∞ | ∞ | ∞ | ∞ | ∞ | a |
0 | 7 | 9 | 14 | ∞ | ∞ | b |
0 | 7 | 9 | 14 | ∞ | 22 | c |
0 | 7 | 9 | 11 | ∞ | 20 | d |
0 | 7 | 9 | 11 | 20 | 20 |
If f -> e is negative weight, then the result will be incorrect
Negative cycle
a
b
c
d
-1
1
-1
-1
A* search algorithm
a
b
c
d
e
f
7
9
14
10
2
9
11
15
6
A
B
a | b | c | d | e | f | 新增 |
---|---|---|---|---|---|---|
∞ | ∞ | ∞ | ∞ | ∞ | ∞ | a |
起點到頂點 n 的實際距離
頂點 n 到終點的估算距離
常見評估方式: 歐幾里得距離、曼哈頓距離、切比雪夫距離
20
13
25
9
4
A* search algorithm
a
b
c
d
e
f
7
9
14
10
2
9
11
15
6
A
B
a | b | c | d | e | f | 新增 |
---|---|---|---|---|---|---|
∞ | ∞ | ∞ | ∞ | ∞ | ∞ | a |
0 | 7 | 9 | 14 | ∞ | ∞ |
20
13
25
9
4
a | b | c | d | e | f |
---|---|---|---|---|---|
∞ | ∞ | ∞ | ∞ | ∞ | ∞ |
20 | 32 | 18 | 27 | ∞ | ∞ |
...
更多細節可看影片教學
Dijkstra
A star
由 Subh83 - 自己的作品, CC BY 3.0, https://commons.wikimedia.org/w/index.php?curid=14916903
由 Subh83 - 自己的作品, CC BY 3.0, https://commons.wikimedia.org/w/index.php?curid=14916867
References