Theta*

出自維基百科,自由嘅百科全書

Theta* 係一個進階版嘅 A* 搜尋演算法,特徵係曉靠自己檢查現時位置周圍嘅點(睇埋任何角度路線計劃):Theta* 嘅主要過程同 A* 一樣,不過喺每次睇周圍節點嗰陣,唔淨只會睇同現時點 有連繫嘅節點,而係睇嗮所有由 望得到嘅點,而如果有個點 係由 望得到嘅,噉個演算法有可能會選擇由 直接移去 -就算 之間冇直接嘅連繫都一樣[1][2]虛擬碼大致上係噉:

 ... // 其餘部份同一般嘅 A* 一樣。
 Foreach 由現時點去得到嘅點,
   if 嗰點喺 closed list 入面,忽略佢;
   if 呢點唔喺 open list 入面,將佢擺入去 open list;
   Update vertex // 呢個子程序係 theta* 同 A* 嘅分別;簡單講係睇勻周圍嘅望得到嘅點,揀成本最低嗰個,然後再由現時點直接畫條路去嗰度。
   將現時點設做呢點嘅 parent;
   計呢點嘅 f 值;
 ...

[編輯]

  1. A. Nash, K. Daniel, S. Koenig and A. Felner. Theta*: Any-Angle Path Planning on Grids (PDF). In Proceedings of the AAAI Conference on Artificial Intelligence, pages 1177–1183, 2007.
  2. Daniel, K.; Nash, A.; Koenig, S.; Felner, A. (2010). "Theta*: Any-Angle Path Planning on Grids" (PDF). Journal of Artificial Intelligence Research. 39: 533–579.