A* (A-Star) μκ³ λ¦¬μ¦
- ν΄λ¦¬μ€ν± κΈ°λ° νμ: A* μκ³ λ¦¬μ¦μ ν΅μ¬μ ν΄λ¦¬μ€ν± ν¨μλ₯Ό μ¬μ©νμ¬ κ° λ Έλμμ λͺ©νκΉμ§μ μμ λΉμ©μ μΆμ νλ κ²μ λλ€. μ΄ ν΄λ¦¬μ€ν±μ νμ¬ λ Έλμμ λͺ©ν λ ΈλκΉμ§μ μ΅μ μμ λΉμ©μ μ 곡ν©λλ€.
- μ΅μ κ²½λ‘ νμ: A* μκ³ λ¦¬μ¦μ μμ λ Έλλ‘λΆν° λͺ©ν λ ΈλκΉμ§μ μ΅μ κ²½λ‘λ₯Ό μ°Ύμ΅λλ€. μ΄ μκ³ λ¦¬μ¦μ ν΄λ¦¬μ€ν±μ μ¬μ©νμ¬ νμ κ³Όμ μμ λΉν¨μ¨μ μΈ κ²½λ‘λ₯Ό μ κ±°ν¨μΌλ‘μ¨, λ³΄λ€ ν¨μ¨μ μΌλ‘ λͺ©νμ λλ¬ν μ μλ κ²½λ‘λ₯Ό μ°Ύμλ λλ€.
- λμ μΈ λΉμ© νκ°: A*λ κ° λ Έλμ λν΄ λ κ°μ§ λΉμ©μ κ³μ°ν©λλ€: νλλ μμ λ Έλλ‘λΆν° ν΄λΉ λ ΈλκΉμ§μ μ€μ λΉμ©(G-Cost), λ€λ₯Έ νλλ ν΄λ¦¬μ€ν±μ ν΅ν΄ μΆμ λ ν΄λΉ λ Έλλ‘λΆν° λͺ©ν λ ΈλκΉμ§μ λΉμ©(H-Cost). μ΄ λ λΉμ©μ ν©(F-Cost)μ κΈ°λ°μΌλ‘ μ΅μ μ κ²½λ‘λ₯Ό λμ μΌλ‘ κ²°μ ν©λλ€.
- ν¨μ¨μ μΈ νμ: λ€λ₯Έ κ²½λ‘ νμ μκ³ λ¦¬μ¦μ λΉν΄ A*λ νμ κ³Όμ μμ λΆνμν κ²½λ‘λ₯Ό ν¨κ³Όμ μΌλ‘ λ°°μ ν©λλ€. μ΄λ νΉν 볡μ‘ν κ·Έλνλ λκ·λͺ¨ κ·Έλνμμ νμ μκ°μ ν¬κ² μ€μ¬μ€λλ€.
- μμ© λΆμΌμ λ€μμ±: A* μκ³ λ¦¬μ¦μ κ²μ λ΄ NPCμ κ²½λ‘ νμ, λ‘λ΄ κ²½λ‘ κ³ν, μ§λμμμ κ²½λ‘ μ°ΎκΈ° λ± λ€μν λΆμΌμ μ μ©ν μ μμ΅λλ€. μ΄λ μκ³ λ¦¬μ¦μ λ²μ©μ±κ³Ό μ μ©μ±μ΄ λ°μ΄λλ€λ κ²μ μλ―Έν©λλ€.
- ν΄λ¦¬μ€ν± ν¨μμ μ€μμ±: A*μ μ±λ₯μ ν΄λ¦¬μ€ν± ν¨μμ μ νμ ν¬κ² μμ‘΄ν©λλ€. μ μ ν ν΄λ¦¬μ€ν± ν¨μλ₯Ό μ ννλ©΄ κ²½λ‘ νμμ λ§€μ° ν¨μ¨μ μΌλ‘ μνν μ μμ§λ§, λΆμ μ ν ν΄λ¦¬μ€ν± ν¨μλ λΉν¨μ¨μ μΈ κ²½λ‘ νμμΌλ‘ μ΄μ΄μ§ μ μμ΅λλ€.
μ΄λ κ² A* μκ³ λ¦¬μ¦μ λν΄ μ€λͺ ν λ, κ·Έ ν¨μ¨μ±, μ΅μ ν λ₯λ ₯, ν΄λ¦¬μ€ν± κΈ°λ°μ λμ μΈ κ²½λ‘ κ²°μ λ°©λ²μ κ°μ‘°νλ κ²μ΄ μ€μν©λλ€. μ΄λ λ©΄μ κ΄μκ² μκ³ λ¦¬μ¦μ λν κΉμ μ΄ν΄λ₯Ό 보μ¬μ£Όλ λμμ, κ·Έ μκ³ λ¦¬μ¦μ μ₯μ μ ν¨κ³Όμ μΌλ‘ μ λ¬ν μ μμ΅λλ€.
BFS (Breadth-First Search), λ€μ΅μ€νΈλΌ μκ³ λ¦¬μ¦, κ·Έλ¦¬κ³ A* (A-Star) μκ³ λ¦¬μ¦μ λͺ¨λ κ·Έλνμμ κ²½λ‘λ₯Ό μ°Ύλ λ° μ¬μ©λλ μκ³ λ¦¬μ¦μ λλ€. μ΄λ€μ μλ‘ λ€λ₯Έ νΉμ±κ³Ό μ¬μ© μ¬λ‘λ₯Ό κ°μ§κ³ μμΌλ©°, νΉν κ²μ AIμμμ λͺ¬μ€ν° μ΄λ λ‘μ§κ³Ό κ°μ μν©μμ κ°κ°μ μ₯λ¨μ μ΄ μ€μνκ² μμ©ν©λλ€.
BFS (Breadth-First Search)
- νΉμ§: BFSλ κ·Έλνμμ λͺ¨λ λ Έλλ₯Ό λλΉ μ°μ μΌλ‘ νμν©λλ€. μ΄ μκ³ λ¦¬μ¦μ μμ λ Έλμμ κ°μ₯ κ°κΉμ΄ λ ΈλλΆν° μ°¨λ‘λλ‘ νμν©λλ€.
- μ¬μ© μ¬λ‘: BFSλ μ£Όλ‘ λ¬΄λ°©ν₯ κ·Έλνμμ λ λ Έλ κ°μ μ΅λ¨ κ²½λ‘ λλ μ°κ²°λ κ΅¬μ± μμλ₯Ό μ°Ύλ λ° μ¬μ©λ©λλ€. μ΄ μκ³ λ¦¬μ¦μ κ°μ€μΉκ° μλ κ·Έλνμμ ν¨κ³Όμ μ λλ€.
- μ₯μ : ꡬνμ΄ κ°λ¨νλ©°, λͺ¨λ κ²½λ‘λ₯Ό νμν©λλ€.
- λ¨μ : BFSλ μ΅λ¨ κ²½λ‘λ₯Ό μ°Ύμ§λ§, κ°μ€μΉκ° μλ κ·Έλνμμλ μ΅μ μ κ²½λ‘λ₯Ό 보μ₯νμ§ μμ΅λλ€.
λ€μ΅μ€νΈλΌ μκ³ λ¦¬μ¦ (Dijkstra's Algorithm)
- νΉμ§: λ€μ΅μ€νΈλΌ μκ³ λ¦¬μ¦μ κ·Έλνμ ν λ Έλμμ λ€λ₯Έ λ ΈλκΉμ§μ μ΅λ¨ κ²½λ‘λ₯Ό μ°Ύλ λ° μ¬μ©λ©λλ€. μ΄λ μ£Όλ‘ κ°μ€μΉκ° μλ κ·Έλνμμ μ¬μ©λ©λλ€.
- μ¬μ© μ¬λ‘: κ°μ€μΉκ° μλ κ·Έλνμμ ν λ Έλμμ λ€λ₯Έ λ Έλλ‘μ μ΅λ¨ κ²½λ‘λ₯Ό μ°Ύλ λ° μ¬μ©λ©λλ€.
- μ₯μ : κ°μ€μΉκ° μλ κ·Έλνμμ ν¨κ³Όμ μ λλ€.
- λ¨μ : μμ κ°μ€μΉκ° μλ κ·Έλνμμλ μ¬μ©ν μ μμΌλ©°, BFSλ³΄λ€ κ΅¬νμ΄ λ³΅μ‘ν©λλ€.
A* (A-Star) μκ³ λ¦¬μ¦
- νΉμ§: A* μκ³ λ¦¬μ¦μ μμ λ Έλμμ λͺ©ν λ ΈλκΉμ§μ μ΅λ¨ κ²½λ‘λ₯Ό μ°ΎκΈ° μν΄ 'ν΄λ¦¬μ€ν±'μ μ¬μ©ν©λλ€. μ΄ ν΄λ¦¬μ€ν±μ λͺ©νμ μΌλ§λ κ°κΉμ΄μ§λ₯Ό μΆμ νλ ν¨μμ λλ€.
- μ¬μ© μ¬λ‘: λ§μ κ²μκ³Ό AI μ ν리μΌμ΄μ μμ κ²½λ‘ μ°ΎκΈ°μ μ¬μ©λ©λλ€. νΉν λͺ©νκΉμ§μ κ²½λ‘λ₯Ό λΉ λ₯΄κ³ ν¨μ¨μ μΌλ‘ μ°ΎμμΌ ν λ μ μ©ν©λλ€.
- μ₯μ : ν΄λ¦¬μ€ν±μ μ¬μ©νμ¬ λΆνμν κ²½λ‘λ₯Ό λΉ λ₯΄κ² λ°°μ νκ³ , λͺ©νμ λ 빨리 λλ¬ν μ μλ κ²½λ‘λ₯Ό μ°Ύμ΅λλ€.
- λ¨μ : ν΄λ¦¬μ€ν± μ νμ΄ μ€μνλ©°, λΆμ μ ν ν΄λ¦¬μ€ν±μ λΉν¨μ¨μ μΈ κ²½λ‘λ₯Ό μ΄λν μ μμ΅λλ€.
κ²μ AIμμ A*κ° λ§μ΄ μ¬μ©λλ μ΄μ
κ²μ AIμμ λͺ¬μ€ν° μ΄λκ³Ό κ°μ κ²½λ‘ μ°ΎκΈ°μ A* μκ³ λ¦¬μ¦μ΄ μμ£Ό μ¬μ©λλ μ£Όλ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€:
- ν¨μ¨μ±: A*λ ν΄λ¦¬μ€ν±μ μ¬μ©νμ¬ κ°μ₯ κ°λ₯μ±μ΄ λμ κ²½λ‘λ₯Ό μ°μ μ μΌλ‘ νμν©λλ€. μ΄λ κ²μ νκ²½μμ μ€μκ°μΌλ‘ ν¨μ¨μ μΈ κ²½λ‘ νμμ κ°λ₯νκ² ν©λλ€.
- μ μ°μ±: A*λ λ€μν μ’ λ₯μ κ·Έλνμ λ€μν νκ²½μ μ μ©ν μ μμΌλ©°, ν΄λ¦¬μ€ν± ν¨μλ₯Ό λ³κ²½ν¨μΌλ‘μ¨ λ€μν μλ리μ€μ λ§μΆ μ μμ΅λλ€.
- μ΅μ ν κ°λ₯: A*λ λͺ©μ μ§μ λν 거리λΏλ§ μλλΌ μμμ μΌλ‘λΆν°μ 거리λ κ³ λ €ν©λλ€. μ΄λ μ΅μ νλ κ²½λ‘λ₯Ό μ°Ύλ λ° λμμ μ€λλ€.
- μ€μ νκ²½κ³Όμ μ μ¬μ±: A*λ μ€μ μΈκ³μμμ κ²½λ‘ μ°ΎκΈ°μ μ μ¬ν λ°©μμΌλ‘ μλν©λλ€. μ΄λ κ²μ λ΄ λͺ¬μ€ν°μ μ΄λμ΄ μ€μ μ κ°μ λλμ μ£Όλ λ° λμμ΄ λ©λλ€.
μ΄λ¬ν μ΄μ λ‘ A* μκ³ λ¦¬μ¦μ κ²μ AIμμ λͺ¬μ€ν°μ μ΄λ κ²½λ‘λ₯Ό κ²°μ νλ λ° λ리 μ¬μ©λλ©°, ν¨μ¨μ μ΄κ³ νμ€μ μΈ μ΄λ ν¨ν΄μ μμ±νλ λ° λ§€μ° μ μ©ν©λλ€.
BFS (Breadth-First Search)μ DFS (Depth-First Search)λ κ·Έλν νμ μκ³ λ¦¬μ¦μ λ κ°μ§ κΈ°λ³Έμ μΈ ννμ λλ€. μ΄λ€μ κ·Έλνμ λͺ¨λ λ Έλλ₯Ό νμνλ λ°©λ²μ΄ λ€λ₯΄λ©°, κ°κ°μ νΉμ§κ³Ό μ¬μ© μ¬λ‘κ° μμ΅λλ€.
BFS (Breadth-First Search)
- λ°©λ²: BFSλ λλΉ μ°μ νμ λ°©μμ μ¬μ©ν©λλ€. μ΄λ μμ λ Έλμμ μΈμ ν λ Έλλ₯Ό λ¨Όμ νμνκ³ , κ·Έ λ€μ λ 벨μ λ Έλλ‘ μ΄λνλ λ°©μμΌλ‘ μ§νλ©λλ€.
- μλ£ κ΅¬μ‘°: μΌλ°μ μΌλ‘ ν(Queue)λ₯Ό μ¬μ©νμ¬ κ΅¬νλ©λλ€. νμ¬ λ Έλμ μΈμ λ Έλλ₯Ό νμ μΆκ°νκ³ , νμμ λ Έλλ₯Ό νλμ© κΊΌλ΄λ©΄μ νμν©λλ€.
- νΉμ§: BFSλ μμ λ Έλλ‘λΆν°μ κ±°λ¦¬κ° λμΌν λ Έλλ€μ μ°¨λ‘λλ‘ νμν©λλ€. λ°λΌμ κ°μ€μΉκ° μλ κ·Έλνμμ μμ λ Έλλ‘λΆν° λ€λ₯Έ λ ΈλκΉμ§μ μ΅λ¨ κ²½λ‘λ₯Ό μ°Ύμ μ μμ΅λλ€.
- μ©λ: μ΅λ¨ κ²½λ‘ μ°ΎκΈ°, λ λ²¨λ³ νμ, κ·Έλνμ μ°κ²°μ± κ²μ¬ λ±μ μ¬μ©λ©λλ€.
DFS (Depth-First Search)
- λ°©λ²: DFSλ κΉμ΄ μ°μ νμ λ°©μμ μ¬μ©ν©λλ€. μ΄λ μμ λ Έλμμ κ°λ₯ν ν κΉμ΄ νμνλ©°, λ μ΄μ νμν λ Έλκ° μμ λ μ΄μ λ Έλλ‘ λμκ° λ€λ₯Έ κ²½λ‘λ₯Ό νμνλ λ°©μμΌλ‘ μ§νλ©λλ€.
- μλ£ κ΅¬μ‘°: μΌλ°μ μΌλ‘ μ€ν(Stack) λλ μ¬κ· ν¨μλ₯Ό μ¬μ©νμ¬ κ΅¬νλ©λλ€. νμ¬ λ Έλμμ μ΄λν μ μλ λ Έλ μ€ νλλ₯Ό μ ννμ¬ νμμ κ³μν©λλ€.
- νΉμ§: DFSλ λͺ¨λ κ°λ₯ν κ²½λ‘λ₯Ό νμν λκΉμ§ κΉμ΄ λ€μ΄κ° νμν©λλ€. λ°λΌμ νμ μλ£κΉμ§ 걸리λ μκ°μ΄ BFSλ³΄λ€ κΈΈ μ μμ΅λλ€.
- μ©λ: λͺ¨λ κ²½λ‘ νμ, λ°±νΈλνΉ λ¬Έμ , 볡μ‘ν ꡬ쑰μ νμ(μ: λ―Έλ‘ μ°ΎκΈ°) λ±μ μ¬μ©λ©λλ€.
μ°¨μ΄μ
- νμ μμ: BFSλ λλΉ μ°μ μΌλ‘, DFSλ κΉμ΄ μ°μ μΌλ‘ νμν©λλ€.
- μλ£ κ΅¬μ‘°: BFSλ νλ₯Ό μ¬μ©νλ λ°λ©΄, DFSλ μ€νμ΄λ μ¬κ·λ₯Ό μ¬μ©ν©λλ€.
- νμ κ²°κ³Ό: BFSλ μ΅λ¨ κ²½λ‘ λ¬Έμ μ μ ν©νλ©°, DFSλ λͺ¨λ κ²½λ‘λ₯Ό νμν΄μΌ νλ κ²½μ°μ μ ν©ν©λλ€.
- νΌν¬λ¨Όμ€: BFSλ λ 벨λ³λ‘ νμνκΈ° λλ¬Έμ λ©λͺ¨λ¦¬ μ¬μ©λμ΄ ν΄ μ μκ³ , DFSλ κ²½λ‘λ₯Ό λκΉμ§ νμνκΈ° λλ¬Έμ μ€νμ κΉμ΄κ° κΉμ΄μ§ μ μμ΅λλ€.
λ μκ³ λ¦¬μ¦μ μ νμ λ¬Έμ μ μꡬ μ¬νκ³Ό κ·Έλνμ νΉμ±μ λ°λΌ λ¬λΌμ§λλ€. BFSλ μ΅λ¨ κ²½λ‘λ₯Ό μ°Ύκ±°λ, λ λ²¨λ³ νμμ΄ νμν λ μ μ©νκ³ , DFSλ κ°λ₯ν λͺ¨λ κ²½λ‘λ₯Ό νμνκ±°λ, λ―Έλ‘ μ°ΎκΈ°μ κ°μ λ¬Έμ μ λ μ ν©ν©λλ€.
μ°Έκ³
https://velog.io/@strurao/searchgraph
'π£οΈ μ μ μΈν°λ·° > μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ μ κ°λ°μ κΈ°μ λ©΄μ μ€μ κΈ°μΆ : ν΅ μ λ ¬ (1) | 2024.01.02 |
---|---|
μ μ κ°λ°μ κΈ°μ λ©΄μ μκ³ λ¦¬μ¦ : λμ κ³νλ² DP (2) | 2024.01.01 |