Solving TSP NPQ with HTN

Download Report

Transcript Solving TSP NPQ with HTN

Solving TSP & NPQ
with
Hopfield-Tank Network
2014/8/19
Hopfield-Tank Network(HTN)
• 步驟流程:
•
•
•
•
為問題設計狀態變數(State variables)與狀態函數(State function)
設計限制函數(Constraints)與目標函數(Cost function)
建構組合最佳化的能量函數(Optimal energy function)
根據能量函數(Energy function)推導出連結權重值(Weights)與偏
權值(Bias)
• 建立狀態初始值(Initial State),初始值會成為下一次狀態的輸入
• 不斷迭代更新狀態變數,直到網路收斂時就是此次最佳化結果
2
HTN網路動態更新
• 更新網路的動態方程式如下:
• 更新方式分為
• 非平行式(Asynchronous):狀態值逐一更新,更新後的狀態值會影響到
下一次其他狀態值的更新。
• 平行式(Synchronous):狀態值一起更新,不立即更新,不會影響到其
他狀態值更新還是由前一次狀態來決定。
• 目前使用HTN是以非平行式(Asynchronous)的方式。
3
HTN設計
• HTN對於初始狀態與參數設計相當敏感…
• 初始值的決定
• 是以最陡坡降法(steepest descent)的概念去搜尋最佳狀態值,很容
易卡在區域最佳解(local minimum)
• 計算權重值參數的調整
• 可能會出現滿足限制條件,但設計結果不佳
• 或是滿足設計結果卻限制條件不合
4
Travelling Salesman Problem(TSP)
• 問題敘述:
• 一旅行推銷員要到N個城市做生意,找出一條從某城市出發,
連貫這些城市,又回到原出發城市的最短路徑。
• 狀態要求:
• 限制條件:
• 每一個城市只去一次。
• 每一次只去一個城市。
• N 個城市都要到。
• 目標條件:
• 最短路徑。
5
HTN example:TSP-1
• State function
x
i
1
2
3
4
A
0
0
1
0
B
0
0
0
1
C
0
1
0
0
D
1
0
0
𝑣𝑥𝑖
6
HTN example:TSP-2
• Energy function
•E
𝐴
=
2
+
+
𝐵
2
𝐶
2
𝐷
+
2
𝑁
𝑁
𝑁
𝑣𝑥𝑖 𝑣𝑥𝑗
𝑥=1 𝑖=1 𝑗 =1
𝑗 ≠𝑖
𝑁 𝑁 𝑁
𝑣𝑥𝑖 𝑥𝑦𝑖
𝑖=1 𝑥=1 𝑦=1
𝑦 ≠𝑥
𝑁
2
𝑁
𝑣𝑥𝑖 − 𝑁
𝑥=1 𝑖=1
𝑁
𝑁
𝑁
𝑑𝑥𝑦 𝑣𝑥𝑖 𝑣𝑦 ,𝑖+1 + 𝑣𝑦 ,𝑖−1
𝑥=1 𝑖=1 𝑦 ≠𝑥
7
HTN example:TSP-3
• Dynamic Network
• 𝑊𝑥𝑖,𝑦𝑗 = −𝐴𝛿𝑥𝑦 1 − 𝛿𝑖𝑗 − 𝐵𝛿𝑖𝑗 1 − 𝛿𝑥𝑦 − 𝐶 − 𝐷𝑑𝑥𝑦 𝛿𝑗,𝑖+1 + 𝛿𝑗,𝑖−1
• 𝜃𝑥𝑖 = −𝐶𝑁
• 𝑁𝑒𝑡𝑥𝑖 = 𝑊𝑥𝑖𝑦𝑗 ∗ 𝑣𝑦𝑗 − 𝜃𝑦𝑗
𝑢𝑥𝑖 =1 , if 𝑁𝑒𝑡𝑥𝑖 > 0.5
𝑢𝑥𝑖 =𝑣𝑦𝑗 , if −0.5 ≤ 𝑁𝑒𝑡𝑥𝑖 ≤ 0.5
𝑢𝑥𝑖 =0 , if 𝑁𝑒𝑡𝑥𝑖 < −0.5
8
TSP實作
• 實驗流程
•
•
•
•
初始化Weights、Bias
初始化State function
計算Energy function
Loop:
• 更新State function
• 計算Energy function
• 檢查是否達到能量收斂(converge)
• 獲得最佳解(Optimal solution)
9
TSP實作-參數調整-1
• A=B=C=D=100
initial state:
0010
0001
1000
0100
Distance = 4.828427
Energy = 482.842712
Output state
0010
0010
1000
0000
Distance = 0.000000
Energy = 150.000000
Loops =16
10
TSP實作-參數調整-2
• A=B=C=100, D=0
11
TSP實作-參數調整-2
12
TSP實作改進
• 如同之前所說:
• 參數調整可能會出現滿足限制條件,但設計結果不佳
(掉入local minimum)
• 在確定滿足限制條件之下,在穩態之後,加入雜訊
(Noise,隨機更改部分狀態值),重新找尋最小值。
• 結果:穩態後還是有機會再往下掉,平均數值有些許的
改善。
13
N-Queens Problem(NPQ)
• 問題敘述:
• 以西洋棋為基礎,在N×N的西洋棋盤上,放置N個皇后,使得
任何一個皇后都無法直接吃掉其他的皇后。
• 狀態要求:
• 限制條件:
• 直排或橫列不可以有其他皇后。
• 皇后所在對角線不可有其他皇后
• 棋盤上須放置N個皇后
14
HTN example:NQP-1
• State function
𝑣11 ⋯ 𝑣1𝑛
⋮
⋱
⋮
𝑣𝑛1 ⋯ 𝑣𝑛𝑛
𝑣 = 1, 有皇后
𝑣 = 0, 沒有皇后
15
HTN example:NQP-2
16
HTN example:NQP-3
17
HTN example:NQP-4
18
NQP實作
• 實驗流程
• 初始化State function(all 0, all 1, all random)
• 計算Energy function
• Loop:
• 隨機更新neuron( i, j ),重複5*N2
• 計算Energy function
• 檢查是否達到能量收斂(converge)
• 獲得最佳解(Optimal solution)
• (參數:A=B=C=100)
19
NQP實作結果
• Initial State:
• All {0}
20
NQP實作結果
• Initial State:
• All {1}
21
NQP實作結果
• Initial State:
• All random
22
Reference
• “Solving the N-Queens Problem with a binary Hopfield-type
network.Synchronous and asynchronous model”
Published in Biological Cybernetics 72(5), 439-446, (1995)
23