μ΄μ μκΈ°μ μ μ‘μκ°μ νλ€κ°, λ§μ½ ν¨μ€νμΈλμμ
μ΄λ° λ€νΈμν¬λ₯Ό ν¨μ€νμΈλ©νλ€κ³ ν λ λΆκΈ°μ μ΄ μλ 1, 2 λ Έλλ€μ κ·Έλ₯ μ€ν΅νλ©΄ νΌν¬λ¨Όμ€κ° μ’μμ§μ§ μμκΉ?
μ΄ μκ°μ΄ λ€μ΄μ νλ‘μ νΈμ μλ A* κΈ°λ° ν¨μ€νμΈλλ₯Ό κ°μ‘°νκΈ°λ‘ νμ΄.
κΈ°μ‘΄μλ μ΄λ κ² μ μ§νκ² μ λ€μ ν¨μ€νμΈλ©νμ΄.
κ·Έλ λ€λ©΄ μμ΄λμ΄λ₯Ό λ°μν΄μ μμ ν ν¨μ€νμΈλλ μ΄λ¨κΉ?
(λΉ¨κ°μμ΄ ν¨μ€λ μ . λ¨μν -0- νμμ λ Έλλ§ ν¨μ€ν κ² μλλΌ, λ§λ€λ₯Έ κΈΈμ΄κ±°λ μ΄λ―Έ νμμ΄ μ§νλ λ Έλλ‘ μΈν΄ νμ μ§μ μ΄ νλκ° λμμ κ²½μ°λ ν¨μ€ν¨)
μ μ@λ΄λ°©κ±° μλ λΉ¨λΌμ§κ² 보μ
μ΄μ λλ©΄ a*μ μλ‘μ΄ ν¨λ¬λ€μγ γ ?
보기μλ μλκ° λΉ¨λΌμ§ κ²μ²λΌ 보μ¬λ, μ΄κ±΄ ν κ³Όμ μ 0.1μ΄μ λλμ΄ ννν μ€νμ΄κΈ° λλ¬Έμ κ³Όμ μ μκ° μ€μ΄λ κ³Όμ μ체μ 걸리λ μκ°μ΄ λμ΄λ¬λ€λ©΄ μ€μ λ‘λ μ€νλ € νΌν¬λ¨Όμ€κ° μ νλκ±Έμλ μμ΄. νλ² νμΈν΄λ³ΌκΉ?
AStar μλ³Έ
40x40 μ¬μ΄μ¦, μμμκ° 19, 29, 35, 18, 18 (ms)
νκ· 23.8ms μ΅μ 18ms
κ°μ λ AStar
λμΌ λ§΅, μμμκ° 23, 39, 22, 34, 44 (ms)
νκ· 32.4ms μ΅μ 22ms
μ€νλ € κΈ°μ‘΄ μκ³ λ¦¬μ¦μ λΉν΄ 1.3λ°° λκ² λλ €μ§ κ±Έ νμΈν μ μμ΄...
μ΄ A*λ ν΄λμ A*μ λ€λ₯΄κ² 거리λ₯Ό μΌκ°λ²μΌλ‘ κ³μ°ν΄μ 격μκ° μλ νκ²½μμλ μ¬μ©ν μ μλλ‘ λ§λ€μ΄μ‘λλ°, μ΄ λλ¬Έμ ν΄λ¦¬μ€ν± 거리 κ³μ°μ μ€μ΄λκ² μ΅μ νμ ν° λμμ΄ λ κ±°λΌκ³ μκ°νμ΄.
νμ§λ§ -0- μμ λ Έλλ₯Ό κ±Έλ¬λ΄λ κ³Όμ μ΄ μΆκ°λλ€ λ³΄λ νλ‘κ·Έλ¨μ΄ 체ν¬ν΄μΌ νλ κ²λ λ§μμ§κ³ , μλλ νλμλ κ²½λ‘ μ μ₯ λ°©λ²(μ΄μ λ Έλλ§ μ μ₯)μ΄ μ΄κ±°ν(λΆκΈ° μ κΉμ§μ λ Έλλ₯Ό μ λΆ μ μ₯)μΌλ‘ λ°λμ΄μ μ€μ λ‘ μμ±λ κ°μ²΄ μκ³Ό μ²λ¦¬ν΄μΌ ν μμ΄ μ€νλ € λ λ§μμ§κ² λ κ² κ°μ.
A*λ μ£Όλ³μ μ λΆ κ²μνλ λ°©μμ΄λΌ ν κ°μ²΄μ λν κ³μ°μ΄ μ’ λμ΄λλλΌλ κ³μ°ν΄μΌ ν κ°μ²΄ μ μμ²΄κ° μ€μ΄λ€λ©΄ μ 체μ μΌλ‘ μ±λ₯ ν₯μμ΄ μμ§ μμκΉ νλλ°, μ€νλ € μν¨κ³Όμλ κ±°μ§.
μλ¬΄νΌ μ΄λ κ² ν루λ₯Ό ν¨κ³Όμ μΌλ‘ λ²λ¦΄ μ μμμ΄. λ무 μκΉμ§λ§ κ²μκ°λ°μ ν λλ μ‘μκ°μ νμ§ λ§κ³ , μ΅μ νν μκ°μ ꡬνλΆν° νμλ κ΅νμ λ€μνλ² μ»μ μ μμμ΄ - κ·Έλ¦¬κ³ μ μ΄μ μ΄κ±° ν μκ°μ JPSλ₯Ό λ§λ€μμΌλ©΄ λ μ’μ κ²°κ³Όλ₯Ό μ»μ μλ μμκ² μ§.
μμΌλ‘λ μ΅μ νλ μΆμλ₯Ό λ¨Όμ νκ³ νλ €κ³ ν΄. μ§κΈμ μμ΄λμ΄ κ΅¬νμ λ¨Όμ νκ³ , μ΅μ νλ μΆμ νμ λλ³΄λ€ λλν μ¬λλ€κ³Ό ν¨κ» νλκ² μ무λλ λ§λκ±°κ°μ.
λ€μμλ λ€μ κ°λ°μΌμ§λ‘ λμμ¬κ²!
λ κ²μ κΈΈμ°ΎκΈ° μκ³ λ¦¬μ¦ λλ¬Έμ λ§μ΄ 무거μ?
μλ μ¬μ€ μ΄ μμ μ κ°λ¨ν μ€ μμμ΄ μκ°ν λλ ifλ¬Έ μ‘°κΈλ§ μ°λ©΄ λ μ€μμκ±°λ κ·Όλ° ν΄λ³΄λκΉ μκ°λ³΄λ€ λ무 볡μ‘νκ±°μΌ
μμ ν΄μΌκ² λ€λ νμμ±μ λλ κ²λ κ²μμ΄ λλ €μ ΈμλΌκΈ°λ³΄λ¨ μκΈ°μ μ μ‘μκ°μ΄ λ μ¬λΌμμΈλ° κ·Έκ² μλͺ»λ κ²°μ μ΄μλ€λκ±Έ μ€λ ν루λ₯Ό μ¨μ λ°°μ μ΄
κ·Έλλ μ΄λ° κ³ λ―Ό νλ μκ°μ΄ μμ΄μΌ μ±μ₯νλλ―
μΊ¬ λλνλ€
λμΌ λ΄ ν루 λλ €μ€μ
μ§κΈ μκ°ν΄λ³΄λ©΄ 물리μ μΌλ‘ λͺ©μ μ§μμ λ¨Ό μ§μ μ μΆκ° ν¨λν°λ₯Ό μ£Όλ μμΌλ‘ κ°μ‘°νλ©΄ νΉμ μν©μμ μ’λ ν¨κ³Όμ μΌ μ μκ² λ€. νμ§λ§ jpsλ³΄λ€ ν¨κ³Όμ μΌκ²κ°μ§ μκ³ , λ μ€νμ λ€μ΄κ°λ μκ°λλΉ ν¨κ³Όλ ν¬μ§ μμκ±°κ°μμ ν΄λ³΄μ§ μμλ €κ³ .
κ·Έλ§μ΄ λ§λ€
μμΌ κ³ μμ
λ§νμμ
μ΄λ°μ λ€μ΄ κ°λλνκ±°, λκ° λΉμ°νλ€ λ§νκ±° λκΉμ§ λ°λ°νκ³ νκ³ λ€κ³ μλνλ©΄μ μμ ν μ΄ν΄λ₯Ό κ°κ²λ
μκ°μ ν₯λ―Έλ‘μ΄λ° κ²°κ΅ λ°λ³΅λ¬Έμ ifλ¬Έ μΆκ°κ° λλκ² μ€νλ € ν¨λν°κ° λλ거ꡬλ
λ κ·Έλλ μ΄κ² μ’ λ§μμ΄ κ±Έλ €μ λ₯νλ‘νμΌλ§ λλ €κ°μ§κ³ μ’ κ°μ ν¨ λ³΄λκΉ κ°μ λ ν¨μ€νμΈλμ Update λΆλΆμ Linq.ToArray() λΆλΆμ΄ λΆνκ° λ§μ΄ 걸리λλΌκ³ κ·Έλμ μ΄κ±° μ§μ°κ³ foreachλ¬ΈμΌλ‘ λ°κΏμ£ΌλκΉ λ³΄νΈμ μΈ νκ²½μμλ μΌλ° λ²μ λ³΄λ€ 1.1λ°° λλ €μ§. λμ -0- λΆλΆμ μλμ μΌλ‘ λ§μ΄ λ£μ λ§΅μμλ λ λ°° μ΄μ λΉ¨λΌμ§λ ν¨κ³Όκ° μλλΌ. κ·Έλμ μμ νκΈ°νμ§ μκ³ νΉμν κ²½μ°μλ§ μ¬μ©νλ €κ³ .
νμμ μ±λ₯ μκ°μ λ§μ΄ μνκ³ 'κ°λ μ±λ§ μ’μΌλ©΄ λμ§' μ£Όμμλλ° μ΄λ² κΈ°νλ‘ μ¬λ°λ₯΄κ² ν¨μλ€μ μ°λκ±°μ λν μ€μμ±μ λ μκ²λλ€. μ΄μ μμ μκ°ν΄λ³΄λ©΄, μ€λμ΄ λ²λ¦° μκ°μ μλμμ΄
κ²°κ΅μ μ°κ΅¬νκ² κ²½νμΌλ‘μ λμ κ°λ° 견문μ λνλλ° μλ ν¬λ λμμ΄ λλκ±°λκΉ μ’μ λ°©ν₯μ΄λΌκ³ μκ°ν΄
κ°μ¬ν©λλ€ μ’μ κ²½νμ΄μμ΅λλ€...