๐ ์์นด ์์ฝ์ ํจ์จ์ ์ผ๋ก - ์ํ์ ๋ชจ๋ธ๋ง์ ํ์ฉํ ์์นด ์์ฝ ํ ํธ๋ฆฌ์ค ๐ ์ด ๊ธ์ ์ถ์ฒํ๋ ์ด์ - ์ฐ์ ๊ณตํ ์ ๊ณต์์ ๋ฐฐ์ฐ๋ ์ ํ ์ต์ ํ, ๋น์ ํ ์ต์ ํ, Integer Programmin
๐ ์์นด ์์ฝ์ ํจ์จ์ ์ผ๋ก - ์ํ์ ๋ชจ๋ธ๋ง์ ํ์ฉํ ์์นด ์์ฝ ํ ํธ๋ฆฌ์ค ๐ ์ด ๊ธ์ ์ถ์ฒํ๋ ์ด์ - ์ฐ์ ๊ณตํ ์ ๊ณต์์ ๋ฐฐ์ฐ๋ ์ ํ ์ต์ ํ, ๋น์ ํ ์ต์ ํ, Integer Programming์ ๋ํด ์์๋์? - ์ ๋ ๊ฒฝ์๊ณผํ ์๊ฐ์ ์ด๋ฐ ๊ณผ๋ชฉ์ ๋ฐฐ์ ๋๋ฐ, ๊ทธ ๋น์์ ์ดํดํ์ผ๋ ์ค๋ฌด์์ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ง ๋๋ฌด ์์ํ๊ธฐ ์ด๋ ค์ ์ด์ - ์์นด์์ ์ด๋ฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด ์์ฝ ํจ์จ์ ๊ฐ์ ํ๋ ํ๋ก์ ํธ๋ฅผ ์งํํ์ด์ - ๋ฐ์ดํฐ ๊ธฐ๋ฐ ๋ฌธ์ ํด๊ฒฐ์ ๋ฐ์ดํฐ ๋ถ์, ๋จธ์ ๋ฌ๋/๋ฅ๋ฌ๋ ๋ฑ๋ง ์๋ค๊ณ ์๊ฐํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, ์ต์ ํ ์ด๋ก ์์ ๋์ค๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค๋ ๋ถ๋ถ์ ๊ณต์ ํ๊ณ ์ถ์ด ํ์๋ถ๊ณผ ๊ธ์ ์์ฑํ์ต๋๋ค - ์ด ์ต์ ํ ํ๋ก์ ํธ๋ฅผ ์ด๋ป๊ฒ ๋ฐฐํฌํ๋์ง๋ ๋ด์์ต๋๋ค. ๋ณ๋ ฌ์ฒ๋ฆฌ๋ฅผ ์ํด Ray๋ฅผ ์ฌ์ฉํ๊ณ , GCP Pub/Sub, Dataflow, CPU 224 Core ์ ์ ํ ์ธ์คํด์ค ๋ฑ์ ์ฌ์ฉํ ๋ด์ฉ๋ ์์ผ๋ ๋ฐ์ดํฐ ์์ง๋์ด๋ถ๋ค๋ ์ฌ๋ฏธ์๊ฒ ์ฝ์ ์ ์์๊ฑฐ์์ ๐ ์ฝ์ผ๋ฉด ์ข์ ๋ถ - ๋ชจ๋น๋ฆฌํฐ, ๋ฌผ๋ฅ, ๋ฐฐ๋ฌ ์ฐ์ ์์ ์ผํ๊ณ ๊ณ์ ๋ถ(์ด ๋ถ์ผ๊ฐ ์ต์ ํ์ ์ ๋ง์์) - ์ต์ ํ ๋ฌธ์ ๊ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ํด๊ฒฐ๋๋์ง ๊ถ๊ธํ์ ๋ถ - ์์นด ๋ฐ์ดํฐ๋น์ฆ๋์ค ๋ณธ๋ถ์ ์ ๋ฌด ๋ฐฉ์์ด ๊ถ๊ธํ์ ๋ถ - ์ต์ ํ ๋ฌธ์ ๋ฅผ ๋ฐฐํฌํ๋ ๋ฐ์ดํฐ ์์ง๋์ด๋ง ๊ณผ์ ์ด ๊ถ๊ธํ์ ๋ถ ๐ ๋ชฉ์ฐจ 1. ์์ฝ ํ ํธ๋ฆฌ์ค ํ๋ก์ ํธ ์๊ฐ - 1.1 ํ๋ก์ ํธ ์ด๋ฆ์ ์ ๋ - 1.2 ์์ฝ ํ ํธ๋ฆฌ์ค์ ๋ชฉ์ 2. ์์ฝ ํ ํธ๋ฆฌ์ค ์ต์ ํ ๋ชจ๋ธ๋ง - 2.1 ์ต์ ํ ๋ฌธ์ (Optimization Problem)์ ์ ๊ทผ๋ฒ - 2.2 ์ ์ ๊ณํ๋ฒ(Integer Programming) - 2.3 ์ต์ ํ ์งํ ์ ์ํ๊ธฐ : ์ด๋ค ์ํ๊ฐ ๋ โ์ต์ โ์ผ๊น? - 2.4 ์ต์ ํ ๋ชจ๋ธ ์ ์ํ๊ธฐ - 2.5 ์ต์ ํ ๋ชจ๋ธ ๊ตฌํํ๊ธฐ : Google OR-Tools 3. ์์ฝ ํ ํธ๋ฆฌ์ค ๋ชจ๋ธ ๋ฐฐํฌ - 3.1 ์ต์ ํ ์๋ฒ & ๋ณ๋ ฌ ์ฒ๋ฆฌ - 3.2 ์์นด ์๋น์ค ์๋ฒ์ ์ต์ ํ ์๋ฒ์ ๋ฐ์ดํฐ ํ๋กํ ์ฝ 4. ์์ฝ ํ ํธ๋ฆฌ์ค ์ ์ฉ ์ฑ๊ณผ 5. ๋ง๋ฌด๋ฆฌ --- ์ต์ ํ ๋ฌธ์ (Optimization Problem) : ์ด๋ค ๋ชฉ์ ํจ์(Objective Function)์ ํจ์ซ๊ฐ์ ์ต๋ํ ๋๋ ์ต์ํํ๋ ๋ณ์์ ํด ๊ฐ์ ์ฐพ๋ ์ ํ์ ๋ฌธ์ ์ต์ ํ ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ์ 1) ์๊ณ ๋ฆฌ์ฆ 1-1) ๋ฌธ์ ์ ๋ง์ถค์ธ ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ฐ 1-2) ํด๋ฆฌ์คํฑ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉ 2) ์ํ์ ๋ชจ๋ธ๋ง ํ Solver ์ฌ์ฉ ๊ฐ๊ฐ ์ต์ ํด ๋ณด์ฅ ์ฌ๋ถ, ๊ฐ๋ฐ์ ๋์ด๋๊ฐ ๋ค๋ฅด๋ฏ๋ก ์ทจ์ฌ ์ ํํ ์ ์์ ์ ์ ๊ณํ๋ฒ(Integer Programming) : ์ ํ ์ ์ฝ์กฐ๊ฑด์ผ๋ก ํํ๋ ํด ๊ณต๊ฐ์์ ์กฐํฉ ์ต์ ํ(Combinatorial Optimization) ๋ฌธ์ ๋ฅผ ํธ๋ ์ต์ ํ ๊ธฐ๋ฒ ์ต์ ํ ๋ชจ๋ธ์ 3์์ 1) ์ ์ฝ์กฐ๊ฑด(Contraints) - ํน์ ์ ์ฝ์ ๊ฑฐ๋ ์กฐ๊ฑด์ ๋๋ค. ์๋ฅผ ๋ค์ด x๋ 0 ๋ณด๋ค ํฐ ๊ฐ์ด๋ค, -x์ y๋ฅผ ๋ํ๋ฉด 2๋ณด๋ค ์๋ค์ ๋๋ค. 2) ๊ฒฐ์ ๋ณ์(Decision Variable) - ์ฐ๋ฆฌ๊ฐ ์๊ณ ์ ํ๋ ๋ณ์์ธ x, y๋ k ๊ฐ์ ๊ฒฐ์ ํ๋ ๊ฒฐ์ ๋ณ์๋ก ์ ์ํ ์ ์์ต๋๋ค 3) ๋ชฉ์ ํจ์(Objective Function) - ์ต๋ํํ๊ณ ์ ํ๋ ๊ฐ k๋ ์ด ๋ฌธ์ ์ ๋ชฉ์ ์ด ๋๋ ํจ์๋ก ๋ชฉ์ ํจ์๋ผ๊ณ ๋ถ๋ฆ ๋๋ค