Simplex Method
2020-1ํ๊ธฐ, ๋ํ์์ โ์๊ณ ๋ฆฌ์ฆโ ์์ ์ ๋ฃ๊ณ ๊ณต๋ถํ ๋ฐ๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ง์ ์ ์ธ์ ๋ ํ์์ ๋๋ค :)
Simplex Method w/ Geometry
์ด๋ฒ ํฌ์คํธ์์๋ LP ๋ฌธ์ ๋ฅผ ํธ๋ ๋ฐฉ๋ฒ์ธ <Simplex Method>์ ๋ํด ๋ค๋ฃฌ๋ค! ๐
๋จผ์ ์ด์ ํฌ์คํธ์์ ๋ค๋ฃฌ Profit Maximization ๋ฌธ์ ๋ฅผ ๋ค์ ์ดํด๋ณด์. ๋ฌธ์ ๊ฐ ์ ์ํ๋ inequality๋ค๋ก๋ถํฐ feasible region์ ์ ์ํ ํ ์ง์ ์ธ objective function๊ณผ ๋ง๋๋ ์ง์ ์์ optimum solution์ ๊ตฌํ์๋ค.
<Simplex Method>๋ inequaility constraints๊ฐ ๋ง๋๋ feasible region์ ๋ชจ์๋ฆฌ(vertex)๋ฅผ ์ํํ๋ฉฐ ์ต์ ํด๋ฅผ ์ฐพ๋ ์ ๊ทผ์ด๋ค. ์์ ๋ฌธ์ ๋ฅผ ์๋ก ๋ค์๋ฉด, ๋ชจ์๋ฆฌ $(0, 0)$์์ ์์ํด ์ธ์ ํ ๋ชจ์๋ฆฌ๋ก ์ด๋ํ๋ฉฐ ๋ ์ข์ objective value๋ฅผ ์ฐพ๋๋ค. ์ด๋ฐ ๋ชจ์๋ฆฌ๋ฅผ ์ด๋ํ๋ ๊ฒ์ <Simplex Method>์์๋ hill-climbing์ด๋ผ๊ณ ํ๋ค.
์ด hill-climbing ๊ณผ์ ์ ๋ชจ์๋ฆฌ๋ฅผ ์ด๋ํ ๋๋ง๋ค object value๊ฐ ์ปค์ง๋๋ก ํ๋ค. <Simplex Method>๋ ์ด object value๊ฐ ์ปค์ง๋ค๊ฐ ๊ฐ์ํ๋ ๊ทธ ์ง์ ์ด optimal value๋ผ๊ณ ๋งํ๋ค. ๋ฐฉ๋ฒ ์์ฒด๋ ์ ๋ง ์ฝ์ง ์์๊ฐ? ๐
์ ๋ง <Simplex Method>๊ฐ global optimum์ ์ป์ ์ ์๋์ง๋ ๊ฐ๋จํ ๊ธฐํํ(Geometry)๋ฅผ ํตํด ์ฆ๋ช ํ๋ค. ๋ง์ฝ optimum point๋ผ๊ณ ์ฌ๊ฒจ์ง๋ ์ ์ ์ ๋ค๋ก ์ธ์ ํ ์ ์ ์์๋ objective value๊ฐ ๊ฐ์ํ๋ค๋ฉด, ๊ทธ๊ฒ์ feasible region์ด optimum point๋ผ๊ณ ์ฌ๊ฒจ์ง๋ ์ ์ ์ ์ง๋๋ ์ง์ ์ ์์ ํ ๋ฎํ๋ค๋ ๊ฑธ ๋งํ๋ค. (์ฒซ๋ฒ์งธ ๊ทธ๋ฆผ์ ์ค๋ฅธ์ชฝ์ ๋ณด๋ผ! ๐) ์ด๊ฒ์ผ๋ก ์ฆ๋ช ์ ์ถฉ๋ถํ๋ค.
์์ ๊ฒ์ ์ข๋ ๋ณด์ถฉํ๊ฒ ๋ค. ์ผ๋จ Linear Programming์ constraints๊ฐ ์ ๋ํ๋ feasible region์ด convex์์ ๋ณด์ฌ์ผ ํ๋ค. ๊ทธ๋ ๋ค๋ฉด optimum point๋ฅผ ์ง๋๋ ์ง์ ์ด feasible region์ ์์ ํ ๋ฎ๋๋ค๋ ๊ฑธ ๋ณด์ฅํ ์ ์๋ค. ๐ feasible region์ convexity์ ๋ํด์ ์ด๊ณณ์ ์ฐธ๊ณ ํ์.
์์ ๋ฌธ์ ์ ๊ฒฝ์ฐ variable์ด $x_1$, $x_2$ 2๊ฐ ์ด๊ธฐ ๋๋ฌธ์ feasible region์ด 2์ฐจ์์์ ๊ทธ๋ ค์ก๋ค. ๋ง์ฝ variable์ด 3๊ฐ๋ผ๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ์ด๋๋ ๋๊ฐ์ด feasible polyhedron์ ๊ทธ๋ ค์ hill-climbing์ ํ๋ฉด ๋๋ค ๐
๊ทธ๋ฌ๋ LP์์ ๋ค๋ฃจ๋ variable์ด 4๊ฐ๋ฅผ ๋์ด๊ฐ๋ฉด ๋์ด์ ๋ํ์ ๊ทธ๋ ค์ hill-climbing ํ๋ ๋ฐฉ์์ผ๋ก๋ ์ต์ ํด๋ฅผ ์ค๋ช ํ๊ฑฐ๋ ์ ๋นํํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค. ์ฆ, Geometry์ ํ๊ณ๋ผ๋ ๋ง์ด๋ค.
The Simplex Method
์ ๋ฌธ๋จ์ ์ค๋ช ์ graphical ๊ด์ ์์์ Simplex Method ์๋ค. ๋ฎ์ ์ฐจ์์์๋ ์ง๊ด์ ์ธ ์ค๋ช ์ ์ ๊ณตํ์ง๋ง, ๋ค์ฐจ์์์์ ํ๊ณ๊ฐ ์์๋ค. ์ด์ graphical์ ๊ด์ ์์ ๋ฒ์ด๋ George Dantzig๊ฐ 1945๋ ์ ์ ์ํ <Simplex Method>๋ฅผ ์ดํด๋ณด์. George Dantzig์ <Simple Method>๋ ์ปดํจํฐ๋ก ์ฝ๊ฒ ๊ณ์ฐํ ์ ์๋ ์ผ๋ฐ์ ์ธ ํํ์ LP์ ๋ํ ํด๋ต์ ์ ์ํ๋ค.
์ผ๋จ์ ๊ฐ๋จํ ์์ ๋ถํฐ ์ดํด๋ณด์.
์ด ๋ฌธ์ ๋ฅผ simplex method๋ก ํ๊ธฐ ์ํด inequality constraint๋ฅผ equality constraint๋ก ๋ฐ๊พธ๋ ์์ ์ ํด์ผ ํ๋ค. ์ด๊ฒ์ standardization์ด๋ผ๊ณ ํ๋ฉฐ inequality ์์ $s_i \ge 0$์ธ slack variable์ ์ฌ์ฉํ๋ฉด ๋๋ค.
inequality constraint ํ๋ํ๋ ๋ง๋ค slack variable $s_i \ge 0$์ ์ถ๊ฐํด์ค๋ค. ์ด๋ ๊ฒ ํ๋ฉด $s_i \ge 0$์ด๊ธฐ ๋๋ฌธ์ ์๋ณธ ์์์ ๊ฐ์ ๋ ์ฝ๊ฐ ๋ชจ์๋ผ๊ฑฐ๋ ์๋ง์ ๊ฐ์ ๊ฐ๊ฒ ๋ ๊ฒ์ด๋ค. slack variable๋ก equality constraint๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ๊ธฐ์กด ๋ฌธ์ ๋ฅผ system of linear equations์ ๊ด์ ์ผ๋ก ๋ฐ๋ผ๋ณผ ์ ์๊ฒ ๋๋ค.
๋ค์์ ์์ linear system์ ํ๋ ฌ๊ผด๋ก ๊ธฐ์ ํ๋ค. ์ด ํ๋ ฌ์ simplex tableau๋ผ๊ณ ํ๋ค.
์์ simplex tablaeu์์ ์ธ ๊ฐ์ง ์ฃผ๋ชฉํ ์ ์ด ์๋ค.
ํ๋ ฌ์ ๋ณด๋ฉด simplex tableau ๋งจ ๋ง์ง๋ง์ objective function์ ๋ํ ์ค์ด ์ถ๊ฐ๋์๋ค. ๋งจ ๋ง์ง๋ง ์ค์ $b=0$์ด ์ด๊ธฐ ์ํ $z$ ๊ฐ์ ๋์ํ๋ค. ์ฐ๋ฆฌ๋ pivoting์ด๋ผ๋ ์์ ์ ์ํํด์ ๋ง์ง๋ง ์ค์ $b$์ ๊ฐ์ด ์ต๋๊ฐ ๋๋๋ก ๋ง๋ค ๊ฒ์ด๋ค ๐
๋๋ฒ์งธ๋ ์ค๋ฅธํธ์ ์๊ธด basic variable์ด๋ผ๋ ๊ฒ์ด๋ค. basic variable์ non-zero ๊ฐ์ ๊ฐ๋ ๋ณ์๋ค์ ๋งํ๋ค. $s_1$, $s_2$, $s_3$๊ฐ basic variable๋ก ์ค์ ๋ ์ด์ ๋ initial tableau์ solution์ด $(x_1, x_2, s_1, s_2, s_3) = (0, 0, 11, 27, 90)$์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๋ง์ง๋ง์ผ๋ก simplex tableau์ ๋ง์ง๋ง ์ค์ ํตํด์ optimality check๋ฅผ ํ ์ ์๋ค. ๋ง์ฝ entry์ ๊ฐ ์ค ํ๋๋ผ๋ negative value๊ฐ ์๋ค๋ฉด, ๊ทธ๋์ solution์ optimal solution์ด ์๋๋ค!
Pivoting
simplex tableau์์์ solution์ $(x_1, x_2, s_1, s_2, s_3)$์ ๊ผด๋ก ์กด์ฌํ๋ค. Pivoting์ ์ด๋ฐ ํํ ํํ์ solution์ ์ฐพ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค. initial tableau์์์ solution์ $(0, 0, 11, 27, 90)$์ด๋ค.
Pivoting ์์ ์๋ ๋ช ๊ฐ์ง ๊ท์น์ด ์์ด ๊ทธ ๊ท์น์ ๋ฐ๋ผ ์์๋๋ก simplex solution์ ์ฐพ์๊ฐ์ผ ํ๋ค. ๋ง์น graphical approach์์ ๋ชจ์๋ฆฌ๋ฅผ ๋ฐฉ๋ฌธํ๋ ๊ฒ๊ณผ ๋น์ทํ๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
current solution์ ๊ฐ์ ํ๊ธฐ ์ํด์ current basic variable set์ ์๋ก์ด variable์ ์ถ๊ฐํด์ผ ํ๋ค. ์ด ๋ ์์ entering variable์ด๋ผ๊ณ ํ๋ค. basic variable์ slack variable์ ๊ฐฏ์๋ฅผ ๋์ ์ ์๋ค. ๊ทธ๋์ ๊ธฐ์กด basic variable ์ค ํ๋๊ฐ ํด์ถ ๋นํด์ผ ํ๋ค. ์ด ๋ ์์ departing variable๋ผ๊ณ ํ๋ค. ์ฐ๋ฆฌ๋ ๊ฐ๋จํ ๊ท์น์ ๋ฐ๋ผ entering variable๊ณผ departing variable์ ์ ํํ ๊ฒ์ด๋ค.
์ฒซ๋ฒ์งธ ๊ท์น์ ๋งจ ๋ง์ง๋ง ์ค์์ ๊ฐ์ฅ ์์ ๊ฐ์ ๊ฐ๋ ๋ณ์๋ฅผ ์ฐพ๋ ๊ฒ์ด๋ค. ์ด ๋ณ์๋ฅผ entering variable์ผ๋ก ์ผ๋๋ค. ํ์ฌ์ tableau์์๋ $x_2$๊ฐ entering variable์ด๋ค.
๋ค์์ entering variable $x_2$์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ratio $b_i / a_i2$๋ฅผ ๊ตฌํ๋ค. smallest non-negative ratio๋ฅผ ๊ฐ๋ row์ basic variable์ ์ ํํด departing variable์ผ๋ก ์ผ๋๋ค. ํ์ฌ์ tableau์์๋ $11/1=11$, $27/1=27$, $90/5= 18$๋ก $s_1$์ด departing variable์ด ๋๋ค.
entering variable๊ณผ departing variable์ด ์ ํด์ก๋ค๋ฉด pivot entry๊ฐ ๊ฒฐ์ ๋๋ค. ์์ tableau์์๋ $x_2$์ $s_1$์ด entering/departing variable์ด์๊ณ , 1st row, 2nd col์ $1$์ด pivot entry๊ฐ ๋๋ค. pivot entry๊ฐ ๊ฒฐ์ ๋๋ฉด, ๊ทธ entry์ ๊ฐ๋ง ๋จ๋๋ก ํด๋น ์ปฌ๋ผ์ ๋ํด Gaussian Elimination์ ์ํํ๋ค.
ํ ์ํ์์์ solution์ $(x_1, x_2, s_1, s_2, s_3) = (0, 11, 0, 16, 35)$๊ฐ ๋๋ฉฐ, object function์ ๊ฐ์ $z = 4x_1 + 6x_2 = 4(0) + 6(11) = 66$์ด ๋๋ค. ๊ทธ๋ฌ๋ optimality check๋ฅผ ํด๋ณด๋ฉด, ๋ง์ง๋ง ํ์ $-10$์ด๋ผ๋ ์์๊ฐ์ด ์๊ธฐ ๋๋ฌธ์ ์์ง optimal solution์ด ์๋๋ฉฐ ์์์ ์ํํ pivoting ๊ณผ์ ์ ๋ค์ ์ํํด์ผ ํ๋ค! ๋ค์ ๋ฐ๋ณตํ๋ ๋ถ๋ถ์ ์-๋ต ํ๊ฒ ๋ค ๐
Simplex Method
- (standardization) convert inequality to equality by adding slack variable $s_i$
- (standardization) convert object function in maximum form
- create the initial simplex tableau
- create bottom row by using object function
- (Pivoting) pick an entering variable by most negative entry in bottom row
- (Pivoting) pick an departing variable by most smallest non-negative $b_i / a_ij$ ratio
- (Pivoting) determine pivot entry and do Gaussian Elimination
- Do optimality check; If there exist negative entry in bottom row, then repating Pivoting!
๋งบ์๋ง
์ด๊ฒ์ผ๋ก Linear Programming์ ๊ธฐ๋ฒ๋ค์ ๋ชจ๋ ์ดํด๋ณด์๋ค!
References
- Larson: Elementary Linear Algebra, 4 ed., Ch.9.3: The Simplex Method: Maximization