Path Find Simulator using Reinforcement learning
Q๋ฌ๋์ ์ฌ์ฉํ ๊ธธ์ฐพ๊ธฐ ์๋ฎฌ๋ ์ดํฐ ์ ๋๋ค.
๊ฐํํ์ต ๊ณต๋ถ๋ฅผ ํ๋ค๊ฐ Q๋ฌ๋ํํธ๋ฅผ ๋ณด๋๋ฐ,
์ํผ์๋๊ฐ ๋๋์ง ์์์์๋, ๊ฐ ์คํ
๋ง๋ค ํ๋จํ์ฌ ํ์ตํ๋ Q๋ฌ๋์ ๋ฐฉ๋ฒ์ด ์ธ์์ ์ด์์ต๋๋ค.
๊ทธ๋์ ์ฌ๋ฐ์ด๋ณด์ฌ์ ๋ง๋ค์ด ๋ดค์ต๋๋ค.
- ์ถ๋ฐ์ง์ ์ ์ข์๋จ, ๋์ฐฉ์ง์ ์ ์ฐํ๋จ
- ์ต์ ์ path = ์ต๋จ ๊ฑฐ๋ฆฌ path
- ์
๋ฐ์ดํธ ํ ๋ ์ฌ์ฉํ๋ ์
Q(S,A) = Q(S,A) + alpha * (reward + max(Q(S',A')) - Q(S,A))
reward = -1, alpha = 0.1
- ๋งต ์ฌ์ด์ฆ๋ฅผ ์ค์ ํ๊ณ Create๋ฅผ ๋๋ฆ ๋๋ค. (Default Size: 5 X 5)
- ๋ฒฝ์ ์ธ์ฐ๊ณ ์ถ์ ์์น์ ๋ฒํผ์ ๋๋ฌ๋ก๋๋ค.
- ์ฃผ์ ์ฌํญ
- ๋์ฐฉ ์ง์ ๊น์ง์ path๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ฉด, step ๋จ์๋ก ์์ง์ผ๋๋ ์๊ด์์ง๋ง, ๋ง์ฝ ์ํผ์๋ ๋จ์๋ก ์งํํ๊ฒ ๋๋ค๋ฉด ๋ฌดํ ๋ฃจํ์ ๊ฑธ๋ฆฌ๊ฒ ๋ฉ๋๋ค.
- ์ฃผ์ ์ฌํญ
- Set ๋ฒํผ์ ๋๋ฌ์ ๋งต์ ์ ์ฉ์ํต๋๋ค.
- Next Step์ด๋ Play Episode๋ฅผ ๋๋ฌ์ ํ์ต์ํต๋๋ค.
Play Episode์์ ์งํํ ์ํผ์๋์ ๊ฐ์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. (Default: 1000)
- ๋งต ํ์ผ์ ํ์ดํ๋ ์์ด์ ํธ๊ฐ ์๊ฐํ๋ ๊ทธ ํ์ผ์์์ ์ต์ ์ ๋ฐฉํฅ์
๋๋ค.
ํ์ดํ๋ฅผ ๋ณด๊ณ ํ์ต ์ํฉ์ ์ ์ ์์ต๋๋ค. - ๋๋ค ํ๋ฅ ์ ๊ฒฐ์ ํ๋ epsilon์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๊ผญ ์ต์ ๋ฐฉํฅ์ผ๋ก๋ง ์์ง์ด์ง๋ ์์ต๋๋ค.
- epsilon์ ์ง์ ์ค์ ๊ฐ๋ฅํฉ๋๋ค. (๋ค๋ง 0์์ 1์ฌ์ด์ ๊ฐ์ด์ด์ผ ํฉ๋๋ค.)
ํ์ต์ด ์ถฉ๋ถ์ด ๋์๋ค ์ถ์ผ๋ฉด epsilon์ 0์ผ๋ก ๋ง๋ค์ด์ ์ต์ ์ ๊ธธ๋ก ๊ฐ๋ ์์ด์ ํธ๋ฅผ ํ์ธํด๋ณผ ์ ์์ต๋๋ค. - epsilon์ Set ํ ์๊ฐ epsilon์ resetํ๊ธฐ ์ ๊น์ง, annealing ๋์ง ์๊ณ ๊ณ ์ ๋ฉ๋๋ค.
- ๋ณดํต 500๋ฒ์ด์์ ์ํผ์๋์ ๋ ์งํํด์ผ ์ต๋จ path๋ฅผ ์ฐพ์ ์ ๋๋ก ํ์ต์ด ๋ฉ๋๋ค.
- ์์ด์ ํธ๊ฐ ๋ง์ด ๋ฐฉ๋ฌธํ์ง ๋ชปํ ํ์ผ์ ์๋ฑํ ๋ฐฉํฅ์ ํ์ดํ๊ฐ ์์ ์ ์์ต๋๋ค.
๋ง์ด ๋ฐฉ๋ฌธํ์ง ๋ชปํ ํ์ ํ์ต์ด ์ ๋๋ก ์ด๋ฃจ์ด์ง์ง ์์์ ์๊ธฐ๋ ํ์์ ๋๋ค.
๋ณดํต ์ต๋จ๊ฑฐ๋ฆฌ์ ๊ด๋ จ์๋ ์์น์ ํ์ผ๋ค์์ ์์ฃผ ์ผ์ด๋ฉ๋๋ค. - epsilon ๊ฐ์ ๋๊ฒ ์ฃผ๊ณ ์ํผ์๋๋ฅผ ์ฌ๋ฌ๋ฒ ๋๋ฆฌ๋ฉด ํ์ต์๋๋ ๋๋ฆฌ์ง๋ง, ๊ตฌ์ ํ์ผ ๊น์ง๋ ์ ํ์ต๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
