ν–‰λ™μž AI λ§Œλ“€λ©΄μ„œ GOAP, HTN, 그리고 IAUS μ΄λ ‡κ²Œ 3개λ₯Ό μ‹œλ„ν•΄λ΄„. κ·Έ κ°„λž΅ν•œ ν›„κΈ°λ₯Ό 함 올렀보겠음.




1. GOAP

κ²Œμž„μ— μ‚¬μš©λ˜λŠ” κ³„νš μ§œλŠ” 인곡지λŠ₯λ“€μ˜ μ‹œμ΄ˆλΌ ν•  수 μžˆλŠ” κΈ°λ²•μœΌλ‘œ(κ·Έ 이전에 STRIPS 같은 것도 μžˆμ§€λ§Œ 그건 μ˜ˆμ™Έ) λŒ€λž΅ 15λ…„ 정도 λ˜μ—ˆμ§€λ§Œ μ—¬μ „νžˆ μƒλ‹Ήν•œ 인기λ₯Ό κ°€μ§€κ³  μžˆλ‹€.


μž₯점은 인곡지λŠ₯ λ‘œμ§μ„ λͺ¨λ“ˆν™”ν•˜κ³  μž¬μ‚¬μš©ν•˜λŠ”κ²Œ μ‰½λ‹€λŠ” 점, 그리고 인곡지λŠ₯을 ν•˜λ‚˜ν•˜λ‚˜ λ‹€ μ§œλ„£μ„ ν•„μš” 없이 λͺ©ν‘œμ™€ 행동λͺ©λ‘μ„ λΆ€μ—¬ν•˜κ³ λ‚˜λ©΄ μ•Œμ•„μ„œ 맀우 μ§€λŠ₯적인 행동을 보이게 ν•  수 μžˆλ‹€λŠ” 점. 'λͺ©ν‘œ'λ₯Ό ν–₯ν•΄ ν•  수 μžˆλŠ” '행동'을 μ·¨ν•˜λ©΄μ„œ 'κ³„νš'에 따라 λ‚˜μ•„κ°„λ‹€λŠ” 것은 맀우 큰 κ°•μ μž„.


단점은 κ·Έ κ³„νš μ§œλŠ”κ²Œ A* 같은 κ·Έλž˜ν”„ 탐색 μ•Œκ³ λ¦¬μ¦˜μ„ 톡해 μ΄λ£¨μ–΄μ§„λ‹€λŠ”κ±°μž„. μ•Œλ‹€μ‹œν”Ό 이런 μ•Œκ³ λ¦¬μ¦˜μ€ 마음 λ‚΄ν‚€λŠ”λŒ€λ‘œ λŒλ¦¬κΈ°μ—λŠ” μ—°μ‚°μžμ›μ΄λΌλŠ” μΈ‘λ©΄μ—μ„œ μ’€ 뢀담이 κ°€λŠ” νŽΈμž„. κ·Έλž˜μ„œ 속도가 μ’€ 느림. κ²Œλ‹€κ°€ GOAP은 μ•„λž˜ μ–ΈκΈ‰ν•  HTNκ³ΌλŠ” 달리 κ³„νšμ„ μ—­μˆœμœΌλ‘œ μ„Έμš°λŠ”λ°, 이게 무슨 말이냐면 'λͺ©ν‘œ'μ—μ„œ μ‹œμž‘ν•΄μ„œ 'ν˜„μž¬'κΉŒμ§€ μ΄μ–΄μ§€λŠ” 길을 μ°ΎλŠ”κ±°μ§€ ν˜„μž¬μ—μ„œ μ‹œμž‘ν•΄ λͺ©ν‘œλ‘œ κ°€λŠ” 길을 μ°ΎλŠ”κ²Œ μ•„λ‹˜. λ”°λΌμ„œ κ³„νšμ„ μ„ΈμšΈ λ•Œ μ‹œμž‘λΆ€ν„° λκΉŒμ§€ λͺ¨λ‘ λ‹€ μ„ΈμšΈ 수 밖에 μ—†κ³ , μ•žλΆ€λΆ„ 일뢀 쑰금만 κ³„νšμ„ 짜고 그게 λλ‚˜λ©΄ κ·Έμ œμ„œμ•Ό λ‹€μŒ κ³„νšμ„ μ§ λ‹€, 이런건 ν•  수 μ—†μŒ. 이게 μ™œ λ¬Έμ œλƒλ©΄ κ³„νšμ΄ κΈΈμ–΄μ§ˆμˆ˜λ‘ μ„±λŠ₯μ†Œλͺ¨κ°€ 크고, 쀑간에 κ³„νšμ΄ 쀑단 λ˜μ–΄μ„œ λ‹€μ‹œ κ³„νšμ„ μƒˆλ‘œ μ§œμ•Όν•˜λŠ” ν™•λ₯ μ΄ λŠ˜μ–΄λ‚˜κΈ° λ•Œλ¬Έμž„. μ—„μ²­ λ©‹μ§€κ³  λŒ€λ‹¨ν•œ κ³„νšμ„ 길게 μ§°λŠ”λ° 쀑간에 뭐가 잘λͺ» λ˜μ–΄μ„œ λ‹€μ‹œ μ²˜μŒλΆ€ν„° κ³„νšμ„ μ§œλŠ” κ²½μš°κ°€ λ§Žλ‹€λ©΄ 사싀상 κ·Έ 길게 μ§  κ³„νšλ“€μ€ λ‹€ 낭비인 μ…ˆμ΄μ§€.

λ˜ν•œ GOAP은 κ΅¬ν˜„ν•˜λŠ” 것도 κ·Έλ ‡κ²Œ κ΅¬ν˜„ν•œ ν›„ μ•ˆμ— 이것저것 μ±„μ›Œλ„£λŠ” 것도 그리 μ‰¬μš΄νŽΈμ΄ μ•„λ‹˜. 일단 κ΅¬ν˜„ λ‚œμ΄λ„κ°€ λ†’κ³ , κ΅¬ν˜„μ„ λ‹€ ν•œ λ‹€μŒμ—λ„ νŠΉμ„±μƒ 각 ν–‰λ™λ§ˆλ‹€ μ—¬λŸ¬ 비쀑값을 λΆ€μ—¬ν•΄μ•Όν•˜λŠ”λ“± ν•  일이 많음. 그리고 κ·Έλ ‡κ²Œ μ—΄μ‹¬νžˆ 해도 μ „ν˜€ μƒκ°μΉ˜ λͺ»ν•œ, μ˜λ„μΉ˜ μ•Šμ€ κ³„νšμ„ ν–‰λ™μžκ°€ μ§œμ„œ μ‹€ν–‰ν•˜λŠ” κ²½μš°λ„ μ’…μ’… μžˆλ‹€κ³  λ“€μŒ.



2. HTN

GOAP의 단점을 κ΅¬ν˜„ λ‚œμ΄λ„ λΉΌκ³  λͺ¨λ‘ ν•΄κ²°ν•΄μ£ΌλŠ” 기법. GOAP의 μž₯점을 λŒ€λΆ€λΆ„ κ°€μ§€κ³  있고 단점을 λŒ€λΆ€λΆ„ μ²˜λ¦¬ν•¨. HTN은 GOAP의 λͺ©ν‘œμ™€ ν–‰λ™μ—μ„œ λͺ©ν‘œλ₯Ό μ—†μ• κ³  였직 ν–‰λ™λ§Œμ„ 남겼닀고 λ³Ό 수 있음. 행동은 볡합(Compound)κ³Ό μ›μ‹œ(Primitive)λΌλŠ” 두 μ’…λ₯˜λ‘œ λ‹€μ‹œ λ‚˜λ‰˜λŠ”λ°, 볡합은 λ‹€λ₯Έ ν–‰λ™λ“€λ‘œ 이루어진 μΌμ’…μ˜ 미리 μ§œλ„£μ€ ν–‰λ™κ³„νš μ—¬λŸΏκ³Ό 각 ν–‰λ™κ³„νšμ΄ μš”κ΅¬ν•˜λŠ” μ‘°κ±΄λ“€λ‘œ 이루어져 있음. ν–‰λ™κ³„νšλ“€μ€ μˆœμ„œλŒ€λ‘œ λ°°μ—΄λ˜μ–΄ 있고, κ·Έ ν–‰λ™κ³„νšλ“€μ„ μ°¨λ‘€λŒ€λ‘œ 확인할 λ•Œ κ°€μž₯ λ¨Όμ € 쑰건이 참인 ν–‰λ™κ³„νšμ΄ 채택 됨. κ·Έ ν–‰λ™κ³„νš μ•ˆμ— λ‹€μ‹œ 볡합 행동이 λ“€μ–΄μžˆλ‹€λ©΄(μ—¬κΈ°μ„œ HTN의 첫 κΈ€μž Hierarchical이 λ‚˜μ˜΄) κ·Έ 볡합행동도 λ˜‘κ°™μ€ 과정을 거치고 λ°˜λ³΅ν•¨.


예λ₯Ό λ“€λ©΄ μ΄λŸ°κ±°μž„. 'κ΄‘λΆ€' 볡합행동이 μžˆλ‹€κ³  ν•˜μž. κ·Έ 볡합행동은 λ‹€μŒ ν–‰λ™κ³„νšλ“€μ„ μˆœμ„œλŒ€λ‘œ κ°€μ§€κ³  있음.


1. λ§Œμ•½ μ£Όκ΄΄κ°€ μžˆλ‹€λ©΄(쑰건) μ£Όκ΄΄λ₯Ό λ§μΉ˜μ§ˆν•΄ λ„κ΅¬λ‘œ λ§Œλ“ λ‹€(ν–‰λ™κ³„νš).

2. (1번이 μ‹€νŒ¨ν•΄μ•Ό 2번으둜 λ„˜μ–΄κ°€λ‹ˆ μ£Όκ΄΄κ°€ μ—†λ‹€λŠ”κ±Έ μœ μΆ”ν•  수 μžˆλŠ” 상황에) λ§Œμ•½ 광석이 μžˆλ‹€λ©΄ 광석을 μ œλ ¨ν•΄ 주괴둜 λ§Œλ“ λ‹€.

3. (μ—­μ‹œ λ˜‘κ°™μ€ 이유둜 주괴와 광석 λͺ¨λ‘ μ—†λ‹€λŠ”κ±Έ μœ μΆ”ν•  수 μžˆλŠ” 상황에) λ§Œμ•½ 광석을 νŒŒλŠ” 상인을 μ•ˆλ‹€λ©΄ 돈 μ£Όκ³  광석을 μ‚¬μ˜¨λ‹€.

4. λ§Œμ•½ 광석을 캐올 수 μžˆλŠ” 곳을 μ•ˆλ‹€λ©΄ κ°€μ„œ 광석을 μΊμ˜¨λ‹€.

5. 아무것도 ν•˜μ§€ μ•ŠλŠ”λ‹€.


HTN κ³„νšμžλŠ” μš°μ„  κ΄‘λΆ€ 볡합행동을 ν™•μΈν•΄μ„œ 무슨 ν–‰λ™κ³„νšμ΄ κ°€μž₯ λ¨Όμ € 참인지λ₯Ό 골라 풀어놓고, κ·Έλ ‡κ²Œ 풀어놓은 κ³„νš μ•ˆμ— λ‹€μ‹œ 볡합행동이 μžˆλ‹€λ©΄ κ·Έκ±Έ λ‹€μ‹œ 풀어놓고, κ²°κ΅­ 더 이상 풀어놓을 수 μžˆλŠ”κ²Œ 없을 λ•ŒκΉŒμ§€ κ·Έκ±Έ 계속 λ°˜λ³΅ν•¨.


HTN의 μž₯점은 κ°œλ°œμžκ°€ 미리 ν–‰λ™μžμ˜ ν–‰λ™κ³„νšμ„ λΆ€λΆ„μ μœΌλ‘œ μ§œλ„£μ„ 수 μžˆλ‹€λŠ”κ±°μž„. 상황에 따라 무슨 ν–‰λ™κ³„νšμ„ μ–΄λ–»κ²Œ νƒν• μ§€λŠ” λ‹€λ₯΄κ² μ§€λ§Œ, 일단 ν•œ ν–‰λ™κ³„νšμ„ νƒν•˜κ³ λ‚˜λ©΄ κ·Έ ν›„ 무슨 일이 μΌμ–΄λ‚ μ§€λŠ” μ–΄λŠμ •λ„ 미리 예츑이 κ°€λŠ₯ν•œκ±°μ§€. κ·Έλž˜μ„œ ν–‰λ™μžκ°€ μ΄μƒν•œ κ³„νšμ„ μ§œμ„œ μ΄μƒν•œ μ§“μ΄λ‚˜ ν•˜λŠ” 것을 λ°©μ§€ν•  수 있음.


λ˜ν•œ A*을 μ‚¬μš©ν•΄μ„œ κ³„νšμ„ μ§œλŠ”κ²Œ μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— λ©”λͺ¨λ¦¬μ™€ μ—°μ‚° 두 λΆ€λΆ„μ—μ„œ GOAP보닀 κ°€λ²Όμš΄ νŽΈμž„. λ˜ν•œ ν˜„μž¬μ—μ„œλΆ€ν„° λͺ©ν‘œλ‘œΒ μ΄μ–΄μ§€λŠ” 길을 찾기에 무쑰건 κ³„νšμ„ μ‹œμž‘λΆ€ν„° λκΉŒμ§€ λ‹€ μ§œλ†“μ•„μ•Όν•˜λŠ” GOAPκ³ΌλŠ” 달리 짧게 μΌλΆ€λΆ„λ§Œ κ³„νšν•˜κ²Œ ν•  μˆ˜λ„ 있음.


단, κ΅¬ν˜„ν•˜κΈ°κ°€ 어렀움.



4. IAUS

μœ„μ— μ–ΈκΈ‰ν•œ GOAPμ΄λ‚˜ HTN 같이 κ³„νš μ§œλŠ” 인곡지λŠ₯κ³ΌλŠ” 기본적으둜 계보가 λ‹€λ₯Έ κΈ°λ²•μž„. μœ„μ— 인곡지λŠ₯듀은 μ„Έκ³„μƒνƒœλ₯Ό 확인해 기얡에 μ €μž₯ν•˜κ³  κ·Έ 정보λ₯Ό μ΄μš©ν•΄μ„œ κ³„νšμ„ μ§œλŠ”λ°, IAUSλŠ” κ·Έλƒ₯ μΏ¨ν•˜κ²Œ κ³„νšμ„ μ•„μ˜ˆ λ¬΄μ‹œν•¨. λŒ€μ‹ , 각 ν–‰λ™μžκ°€ μ·¨ν•  수 μžˆλŠ” 행동듀에 μˆ˜ν•™κ³΅μ‹μ„ μ΄μš©ν•˜μ—¬ κ°€μ€‘μΉ˜λ₯Ό λΆ€μ—¬ν•˜κ³ , κ·Έ 쀑 κ°€μ€‘μΉ˜κ°€ 높은 행동을 골라 λ‹Ήμž₯ μˆ˜ν–‰ν•˜κ²Œ 함.


예λ₯Ό λ“€μ–΄λ³΄μž. ν–‰λ™μž Aκ°€ 있음. AλŠ” λŒ€μž₯μž₯μ΄λΌμ„œ 광석을 μΊκ±°λ‚˜, 광석을 μ œλ ¨ν•΄ μ£Όκ΄΄λ₯Ό λ§Œλ“€κ±°λ‚˜, μ£Όκ΄΄λ₯Ό 두듀겨 도ꡬλ₯Ό λ§Œλ“€κ±°λ‚˜, 이 3개의 행동을 κ°€μ§€κ³  있음. Aκ°€ 아무 행동도 ν•˜κ³  μžˆμ§€ μ•Šλ‹€λ©΄, AλŠ” ν•  행동을 κ³ λ₯΄κΈ° μœ„ν•΄ μžκΈ°κ°€ ν•  수 μžˆλŠ” 행동듀에 ν•˜λ‚˜ν•˜λ‚˜ κ°€μ€‘μΉ˜λ₯Ό 뢀여함. μ§€κΈˆ 창고에 광석이 μ—†λ‹€λ©΄ 제련 ν–‰λ™μ˜ κ°€μ€‘μΉ˜κ°€ 0이 되고, μ£Όκ΄΄κ°€ 창고에 λ§Žμ§€λ§Œ λ„κ΅¬λŠ” λ³„λ‘œ μ—†λ‹€λ©΄ λ„κ΅¬μ œμž‘ ν–‰λ™μ˜ κ°€μ€‘μΉ˜κ°€ 1이 되고, 이런 μ‹μœΌλ‘œ 0κ³Ό 1 사이 κ°€μ€‘μΉ˜κ°€ λͺ¨λ“  행동에 λΆ€μ—¬ 됨. κ·ΈλŸ¬κ³ λ‚˜λ©΄ κ·Έ 쀑 κ°€μ€‘μΉ˜κ°€ λ†’μ€λŒ€λ‘œ 행동을 골라 μ²˜λ¦¬ν•˜κ²Œ ν•˜λ©΄ 끝.

IAUS의 κ°€μž₯ 큰 μž₯점은 μ§„μ§œ κ°„λ‹¨ν•˜λ‹€λŠ”κ±°μž„. μ΄ν•΄ν•˜λŠ” 것도 쉽고 κ΅¬ν˜„ν•˜λŠ” 것도 쉽고 μœ μ§€ν•˜λŠ” 것도 쉽고 ν™•μž₯ν•˜λŠ” 것도 쉬움. 걍 μ„Έκ³„μƒνƒœμ—μ„œ 정보λ₯Ό 뽑아와 ν•¨μˆ˜μ— μΈν’‹μœΌλ‘œ λ„£κ³  λ‚˜μ˜¨ 값을 κ°€μ€‘μΉ˜λ‘œ λ‹¬μ•„λ†“μœΌλ©΄ λ˜κ±°λ“ . μΌμ£ΌμΌλ™μ•ˆ GOAPν•˜κ³  HTN κ°€μ§€κ³  끙끙거린 반면 IAUSλŠ” ν•˜λ£¨λ§Œμ— κ΅¬ν˜„ μ„±κ³΅ν–ˆμ„ μ •λ„μž„.


λ˜ν•œ 가벼움. λ³΅μž‘ν•˜κ²Œ κ³„νšμ„ 짜고 그런거 없이 κ·Έλƒ₯ 무슨 ν–‰λ™μ˜ κ°€μ€‘μΉ˜κ°€ 높은지 달아놓고 λ½‘κΈ°λ§Œ ν•˜λ©΄ λ˜λ‹ˆκΉŒ.


그리고 생각보닀 더 많이 κ°•λ ₯함. μ œλŒ€λ‘œ μ§  GOAPμ΄λ‚˜ HTN 같이 μ§€λŠ₯적인 행동을 보일 수 μžˆμ„μ§€λŠ” λͺ°λΌλ„, ν•¨μˆ˜κ°’λ“€ 잘 μ‘°μ •ν•˜λ©΄ μ–΄λ–€ 상황에 μ–΄λ–€ 행동을 μ·¨ν•˜κ²Œ λ˜λŠ”μ§€λ₯Ό 깊이 있게 μ‘°μ ˆν•  수 있음.


λ§ˆμ§€λ§‰μœΌλ‘œ, λΉ„ ν”„λ‘œκ·Έλž˜λ¨Έκ°€ κ°œλ°œν•˜κΈ° 쉬움. ν”„λ‘œκ·Έλž˜λ¨Έκ°€ κ΄€λ ¨ νˆ΄ν•˜κ³  기반 μ§œλ†“κ³ λ‚˜λ©΄ 남은 것은 숫자 λ§Œμ§€μž‘κ±°λ¦¬λ©° μ‘°μœ¨ν•˜λŠ”κ±΄λ°, 이건 ν”„λ‘œκ·Έλž˜λ¨Έ μ•„λ‹Œ μ‚¬λžŒμ΄λΌλ„ μ‰½κ²Œ ν•  수 μžˆκ±°λ“ .



끗