๋ฌผ๋ฅ๋ก๋ด ์๋ฌผ๋ ์ด์ ๊ณผ Dynamic TSP๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์ ๊ฐ๋ฐ๋์์ต๋๋ค.
0.1 : ๊ธฐ๋ณธ ์๋ฌผ๋ ์ด์ ๋ฐ ์๊ฐํ ์ฝ๋
์ถ๊ฐ ๊ณํ :
- ์ค๊ฐ์ ๋ ธ๋ ์ถ๊ฐ ๊ธฐ๋ฅ ๋ฃ์ด๋๊ธฐ
- ๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ๋์์ ๋๋ ค์ ๋น๊ตํ ์ ์๊ฒ ํ๊ธฐ
- ๋ก๋ด๊ฐ์ ๊ฒฝ๋กํํผ ์๊ณ ๋ฆฌ์ฆ ์ถ๊ฐํ๊ธฐ
๋ฌ์ฑํ ๊ฒ:
- ์ ๋ฐ๊ฐ ์ด๋๊ฒฝ๋ก๋ฅผ A*star๋ก ์ฐพ๊ธฐ(ํ์ฌ ๋๊ฐ์ ์ด๋๋ ๊ฐ๋ฅ)(v)
- ์ ๋ฐ์ ๊ฒฝ๋ก ๋์ ์ ์ ๋ฐ์ ํ ๋น๋ ๋ ธ๋๋ค ํ์ํ๊ธฐ(v)
- ๋จ์์๋ ์ฃผ๋ฌธ GUI์ ๋ฃ๊ธฐ(v)
- tsp ์๊ณ ๋ฆฌ์ฆ ์ถ๊ฐ ๋ฐ ๊ณ ๋ฅผ ์ ์๊ฒ ํด๋๊ธฐ(v)
- ACO(v)
- ์ ์ ์๊ณ ๋ฆฌ์ฆ
- PSO
- ๋ก๋ด์ ์ด์ ๊ฒฝ๋ก ๋ณด์ฌ์ฃผ๊ธฐ(v)
- ์์ดํ ์ถ๊ฐ๊ฐ ์๋ ์ฃผ๋ฌธ๋ ์์ (v)
- ํจํน์ง์ ์ ๋ฐ๋ฅธ ์๊นํ์ ๋ค๋ฅด๊ฒ ํ๊ธฐ(v)
- ๋งต ์ฌ์ด์ฆ ์ ๋ฐ์ ์ผ๋ก ํค์ฐ๊ธฐ(v)
- ๋ก๋ด์ ์ ์ฒด๊ฒฝ๋ก ๋ณด์ฌ์ฃผ๊ธฐ(v)
- ์ฃผ๋ฌธ์ ํ ๋น ๋ฐ์ย ๋ฉํฐ ๋ก๋ด์ ์ต์ ๋์ ์ค์ผ์ค๋ง
- ๊ธฐ์กด ๋ฐฉ์(order grouping๊ณผ robot sceduling)์์ Task allocation1๊ณผ Task sequencing2 ๊ตฌ์กฐ๋ก ๊ฐ์
- j๊ฐ์ ์์ดํ ์ผ๋ก ์ด๋ฃจ์ด์ง i๊ฐ์ ์ฃผ๋ฌธ์ด ๋์์ ๋ค์ด์ด : i = ์ฝ 1000๊ฐ
- ๋ก๋ด์ด ํ ๋ฒ์ k๊ฐ์ ์ฃผ๋ฌธ์ ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๋, ์ด๋ค์ฃผ๋ฌธ์ ํ ๋นํ ๊ฒ์ธ๊ฐ.
- ๋ก๋ด : ํฌ์ธํธ ๋ชจ๋ธ(๊ธฐ๊ตฌํ ๊ณ ๋ ค x)
- 2D grid world map
- 5 action : up, down, left, right, idle
- ๊ฐ ๊ทธ๋ฆฌ๋ ์ด๋ ๋ฐฉ์์ directed ์ undirected ์ค์์ ๊ณ ๋ฅผ ์ ์๋ค.
- ๋งต(๋ฌผ๋ฅํ๊ฒฝ)์ ์์ฑ, ์ ์ฅ ๋ฐ ์ ํ์ด ๊ฐ๋ฅํด์ผํ๋ค.
- ๋ก๋ด์ ๊ตฌ๋๋ฐฉ์์ด๋ ํฌ๊ธฐ๋ฑ์ ์ ์ ์ด ์์ ๋ก์์ผํ๋ค.
- ์๋ฌผ๋ ์ด์ ์ ๋ฐฉ์(๊ธฐ๊ตฌํ ๊ณ ๋ ค)์ด ์ ํ ๊ฐ๋ฅํด์ผํ๋ค.
- ํ์ฅ์ฑ์ ๊ฐ์ง ์ ์๊ฒํ๋ค.
- ํ์ด์ฌ ๊ธฐ๋ฐ์ ์๋ฌผ๋ ์ด์ ๊ตฌํ
- PyQT5 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ, ์๊ฐ์ ์ผ๋ก ์๋ฌผ๋ ์ด์ ์ ์์ฑ ๋ฐ ์คํ
- main.py๋ฅผ ๋น๋ํ์ฌ ์คํํฉ๋๋ค.
- ์คํ ํ, '๋งต ์์ฑ ๋ฐ ํ์ธํ๊ธฐ' ๋ฒํผ์ ๋๋ฅด๋ฉด, '๋งต ์์ฑ๋๊ตฌ' ์ฐฝ์ด ๋์ต๋๋ค.
- ์ด๋, '๋งต๋ถ๋ฌ์ค๊ธฐ'๋ฅผ ๋๋ฅด๋ฉด, ๋ง๋ค์ด์ง ๋งต์ ํ์ธํ ์ ์์ต๋๋ค. ํ์ฌ ์ํ ๋งต(saved_map.json)์ Mapํด๋์ ์ ์ฅ๋์ด์์ต๋๋ค.
- ๋ถ๋ฌ์จ ๋งต์ resolution์ด๋ ํฌ๊ธฐ๋ ๋ฐ๊พธ๋ฉด ์๋์ง๋ง, ๊ทธ์ธ์ ๋ฒฝ, ์ ๋ฐ, ํจํน ์ง์ , ์์ ์ง์ ์ ์ถ๊ฐ ๋ฐ ์ญ์ ํ, ๋ค์ ์ ์ฅํ ์ ์์ต๋๋ค.
- ์ด๋ก์์ ์ ๋ฐ์ ๋ํ๋ด๋ฉฐ, 2*3์ง๋ฆฌ ํฌ๊ธฐ์ ์ ๋ฐ์ด ๊ธฐ๋ณธ์ ์ผ๋ก 2๊ฐ์ฉ ๋ถ์ด์์ต๋๋ค.
- ํ๋์์ ํจํน ์ง์ ์ ๋ํ๋ด๋ฉฐ, ๋ชจ๋ฐ์ผ๋ก๋ด์ด ์ฌ๊ณ ๋ค์ ๊ฐ์ง๊ณ ์ค๋ ์ฅ์์ ๋๋ค.
- ๋นจ๊ฐ์์ ์์ ์ง์ ์ด๋ฉฐ, ๋ชจ๋ฐ์ผ๋ก๋ด์ด ๋งจ์ฒ์ ์์ํ๊ณ , ํจํน์ฅ์์ ์ฌ๊ณ ๋ค์ ๋๊ณ ๋ค์ ๋์์ค๋ ๊ณณ์ ๋๋ค.
- xํ์๋ก ๋ ๋ธ๋ญ์ ๋ฒฝ์ ์๋ฏธํฉ๋๋ค.
- ๋ซ๊ธฐ๋ฒํผ์ ๋๋ฌ์ '๋งต ์์ฑ๋๊ตฌ'์ฐฝ์ ๋๊ฐ ์ ์์ต๋๋ค.
- ์คํ ํ, '๋งต ์์ฑ ๋ฐ ํ์ธํ๊ธฐ' ๋ฒํผ์ ๋๋ฅด๋ฉด, '๋งต ์์ฑ๋๊ตฌ' ์ฐฝ์ด ๋์ต๋๋ค.
- ๊ฐ๋กํฌ๊ธฐ์ ์ธ๋กํฌ๊ธฐ๋ฅผ ์กฐ์ ํ์ฌ, ๋งต์ฌ์ด์ฆ๋ฅผ ๋ฐ๊ฟ ์ ์์ต๋๋ค.(์ง์ ์ ๋ ฅํ๊ฑฐ๋, ์ฌ๋ผ์ด๋๋ฐ๋ฅผ ์กฐ์ ๊ฐ๋ฅ)
- ๊ฐ๋ก ๋ถํด๋ฅ๊ณผ ์ธ๋ก ๋ถํด๋ฅ์ ์กฐ์ ํ์ฌ, ๋งต์ ๋ถํด๋ฅ์ ๋ฐ๊ฟ ์ ์์ต๋๋ค.(์ง์ ์ ๋ ฅํ๊ฑฐ๋, ์ฌ๋ผ์ด๋๋ฐ๋ฅผ ์กฐ์ ๊ฐ๋ฅ)
- ์์ ๋๊ฐ์ง๋ฅผ ๋ชจ๋ ๊ณจ๋๋ค๋ฉด, '๋งต ํฌ๊ธฐ, ๋ถํด๋ฅ ์ ์ฅ' ๋ฒํผ์ ๋๋ฆ ๋๋ค.(ํ๋ฒ ๋ฐ๊พผ ์ฌ์ด์ฆ๋ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.)
- ์ดํ์ ์ ๋ฐ์ '๊ฐ๋กํฌ๊ธฐ','์ธ๋กํฌ๊ธฐ', '์์ดํ ์', '๋จ๋ฉด ์ ๋ฐ ์ฌ๋ถ'๋ฑ์ ๊ณ ๋ฅธ ํ์, '์ ๋ฐ ์์ฑํ๊ธฐ'๋ฒํผ์ ๋๋ฌ์ ๋ง๋ค์ด์ง ๋งต์ ์ ๋ฐ์ ๋ฐฐ์นํ ์ ์์ต๋๋ค.
- ๋ฐฐ์น๊ฐ์ ํค๋ณด๋์ R๋ฒํผ์ ๋๋ฅด๋ฉด ์ ๋ฐ์ ๋ฐฉํฅ์ด ๋์๊ฐ๋๋ค.
- ๋ง์ฝ์ ์๋ชป ๋ ์ ๋ฐ์ด ์๋ค๋ฉด '์ ๋ฐ ์์ ํ๊ธฐ'๋ฒํผ์ ๋๋ฅด๊ณ , ์๋ชป๋ ์ ๋ฐ์ ํด๋ฆญํ์, ํค๋ณด๋ Delete๋ฒํผ์ ๋๋ฅด๋ฉด ํด๋น ์ ๋ฐ์ด ์์ด์ง๋๋ค.
- '์ ๋ฐ ๋ค์๋ง๋ค๊ธฐ' ๋ฒํผ์ ๋๋ฅด๋ฉด, ๋ค์ ๋ฒฝ, ์ ๋ฐ, ํจํน ์ง์ , ์์ ์ง์ ์ค์์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- ๋๋จธ์ง ๋ฒฝ, ํจํน, ์์ ์ง์ ์ resolution์ผ๋ก ์ ํด์ง ๊ฒฉ์ ์ฌ์ด์ฆ๋ก ํฌ๊ธฐ๊ฐ ์ ํด์ง๋๋ค. ๊ทธ์ธ์ ์ถ๊ฐ ๋ฐ ์ญ์ ๋ ์ ๋ฐ๋ฐฐ์น์ ๋์ผํฉ๋๋ค.
- ์์ฑ์ด ๋ค๋์๋ค๋ฉด, ๋งต ์ ์ฅํ๊ธฐ๋ฅผ ๋๋ฌ์, jsonํ์์ผ๋ก ์ ์ฅํฉ๋๋ค.
- ์คํ ํ, '๋งต ๋ถ๋ฌ์ค๊ธฐ' ๋ฒํผ์ ๋๋ฅด๋ฉด, ์๋ฌผ๋ ์ด์ ๋งต์ผ๋ก ์ค์ ๋ฉ๋๋ค.
- 21-11-21 Dynamic tsp์ online order picking์ ์ํ ์๋ฎฌ๋ ์ด์ ์ถ๊ฐ
- 21-11-23 GUI์ถ๊ฐ ๋ฐ ํ๋ผ๋ฏธํฐ ์กฐ์ ํํธ ์์ฑ. ํฐ๋ฒ๊ทธ ์์
- 21-11-23 09:00 : ๋ค์ํ ๊ฒฐ๊ณผ๋ณด๋ ๋ถ๋ถ ์ถ๊ฐ. ์์ง ์กฐ์ ํ์
- 21-11-28 09:00 : Queue์์ batch๋ฅผ ์์ฑํ๋๊ฒฝ์ฐ์๋ bound๋ฅผ ๊ฐ์ , ๋ง๋ฃ์๊ฐ์ ๋น ๋ฅด๊ฒํ์ฌ ์ง์ฐ๋๋๊ฒ์ ๋ฐฉ์ง.
[1] Task allocation : ๋น์ทํ ์์ ์ ๋ฌถ์ด์ ๋ฉํฐ ๋ก๋ด์๊ฒ ์ค์๊ฐ์ผ๋ก ์์ ์ ๋ถ๋ฐฐ
[2] Task sequencing: ์ค์๊ฐ์ผ๋ก ๋ก๋ด์ด ๋ฐฉ๋ฌธํด์ผํ๋ ์ง์ ์ด ๋ฌ๋ผ์ง๋ ๊ฒฝ์ฐ์๋ ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์๋ด๋ Dynamic TSP๋ฌธ์ ํด๊ฒฐ