Linear Programming
2020-1νκΈ°, λνμμ βμκ³ λ¦¬μ¦β μμ μ λ£κ³ 곡λΆν λ°λ₯Ό μ 리ν κΈμ λλ€. μ§μ μ μΈμ λ νμμ λλ€ :)
Introduction to Linear Programming
μ§κΈκΉμ§ λ€λ£¬ λ§μ μκ³ λ¦¬μ¦ λ¬Έμ λ€μ λλΆλΆ μ΅μ ν λ¬Έμ μλ€: shortest path, cheapest spanning tree, β¦ μ΄λ° μ΅μ ν λ¬Έμ λ λκ² 2κ°μ§λ‘ ꡬμ±λμ΄ μλλ°,
- certain constraints
- some criterion λλ objective function
μλ₯Ό λ€μ΄ shortest pathλ₯Ό μ°Ύλ λ¬Έμ μμλ μ μ½ μ‘°κ±΄μ΄ βpathλ κ·Έλνμ edgeλ§μ μ¬μ©ν΄μΌ νλ€. $s$μμ μΆλ°ν΄ $t$μ λμ°©νλ€βκ° λλ€. κ·Έλ¦¬κ³ μ΅μ νμ λͺ©νλ βμ μ½ μ‘°κ±΄μ λ§μ‘±νλ κ°μ₯ 짧μ pathβλ₯Ό μ°Ύλ κ²μ΄λ€.
μ΄λ² μ±ν°μμ λ€λ£¨λ <Linear Programming>μ λ§μ μ’ λ₯μ μ΅μ ν λ¬Έμ λ₯Ό ν¬κ΄νλ κ°λ μΈλ°, <Linear Programming>μ μ μ½ μ‘°κ±΄(constraint)μ λͺ©ν(objective function)μ΄ λͺ¨λ linear functionμ΄λ€!
μ΄λ² ν¬μ€νΈμμλ μ΄λ€ λ¬Έμ λ€μ΄ <Linear Programming>μ μνλμ§ κ·Έλ¦¬κ³ κ·Έ λ¬Έμ λ€μ μ΄λ»κ² <Linear Programming>μ νμμΌλ‘ ννν μ μλμ§λ₯Ό μ΄ν΄λ³Έλ€.
Profit Maximization
A, B λ κ°μ μνμ μ μ‘°νλ νμ¬κ° μλ€κ³ νμ. νμ¬λ μλμ κ°μ΄ 쑰건μμ λ μνμ μμ°ν μ μλ€κ³ νλ€.
A μν: $1 profit per piece, $\le 200$ pieces demand per day
B μν: $6 profit per piece, $\le 300$ pieces demand per day
κ·Έλ¦¬κ³ νμ¬μ λ Έλλ ₯μ μλμ κ°λ€.
λ Έλλ ₯: produce $\le 400$ pieces per day
κ°μ₯ λ§μ μ΄μ€μ λ²κΈ° μν΄μ λ Έλλ ₯μ μ΄λ»κ² λΆλ°°ν΄μΌ ν κΉ?
μ΄ λ¬Έμ λ μ€κ³ λ±νκ΅ μν μκ°μ λ°°μΈ μ λλ‘ μ¬μ΄ λ¬Έμ μ΄λ€. μ΄κ±Έ <Linear Programming; μ΄ν LP>μ νμμΌλ‘ ννν΄λ³΄μ.
Variables
- $x_1$: # of item A to produce per day
- $x_2$: # of item B to produce per day
Constraints
- $x_1, x_2 \ge 0$
- $x_1 \le 200$ and $x_2 \le 300$
- $x_1 + x_2 \le 400$
Objective Function
maximize project per day: $\max \; (x_1 + 6 x_2)$
λ¬Έμ λ₯Ό LPμ νμμΌλ‘ νννμΌλ©΄ μ΄μ λ¬Έμ λ₯Ό ν΄κ²°ν΄λ³΄μ. κ°μ₯ λ¨Όμ ν μΌμ Constraintλ₯Ό μΈμνλ κ²μ΄λ€.
μ΄ μμ objective functionμ νννλ©΄ μλμ κ°λ€.
κ²°κ΅ constraintsκ° μ λνλ feasible region μ€μμ max. profitμ μ»μ μ μλ€! π
Diet Problem
λ€λ₯Έ μ’ λ₯μ μμ $n$κ° μλ€: $F_1, β¦, F_n$. κ·Έλ¦¬κ³ κ° μμμ $m$ μ’ λ₯ λ§νΌμ μμμλ₯Ό ν¨μ νκ³ μλ€: $N_1, β¦, N_m$.
λ μλ¨κ³Ό κ΄λ ¨ν΄ μλμ μμλ€μ΄ μλλ°,
- $a_ij$λ₯Ό μμ $F_i$ νλμ μλ μμμ $N_j$μ μμ΄λΌκ³ νμ.
- $r_j$λ₯Ό ν루μ μμ·¨ν΄μΌ νλ μμμ $N_j$μ μμ΄λΌκ³ νμ.
- $x_i$λ₯Ό ν루μ μμ·¨νλ μμ $F_i$μ μμ΄λΌκ³ νμ.
- $p_i$λ₯Ό μμ $F_i$μ νλμ κ°κ²©μ΄λΌκ³ νμ.
ν루 μλ¨μ μμ μ‘°ν©μ μ΄λ»κ² νλλμ λ°λΌ λ¬λ Έλ€. μ°λ¦¬λ κ°μ₯ μ μ λΉμ©μΌλ‘ μ μ ν μμμ μμ·¨νλ μλ¨μ μ§μΌ νλ€.
μνμ λ°μ ν μλ¨ λ¬Έμ μ΄λ€. μ΄κ±Έ LP ννλ‘ ννν΄λ³΄μ.
Variables
- $x$: $n$μ°¨μ 벑ν°λ‘ μμ $F_i$μ μμ μλ―Ένλ€.
Objective Function
minimize cost: $p_1x_1 + p_2x_2 + \cdots + p_nx_n$
Constraints
- $x_i \ge 0$
- $a_{1j}x_1 + a_{2j}x_2 + \cdots + a_{nj}x_n \ge r_j$
Assignment Problem
$n$λͺ μ μ§μκ³Ό $m$κ°μ μμ μ΄ μλ€. μ§μ $i$κ° μμ $j$λ₯Ό ν루 μ’ μΌ ν λμ ν¨μ©μ΄ $a_{ij}$λΌκ³ νμ. κ·Έλ¬λ νλμ μμ μ μνν λλ ν λͺ μ μ¬λμ΄ λ°°μ λμ΄μΌ νκ³ , κ° μ§μμ ν루λ₯Ό μͺΌκ°μ ν루μ μ¬λ¬ κ°μ μΌμ μνν μ μλ€. μ°λ¦¬λ μ§μλ€μκ² νλ£¨μΉ μμ μ μ μ ν λΆλ°°ν΄μ μ΅κ³ μ ν¨μ©μ λ¬μ±νκ³ μ νλ€.
Variables
- $x_{ij}$: μ§μ $i$κ° μμ $j$μ ν루λ₯Ό μ°λ λΉμ¨
Constraints
- $0 \le x_{ij} \le 1$
- \(\displaystyle \sum^{m}_{j=1} x_{ij} \le 1\): μ§μ $i$λ ν루 μ΄μμ μκ°μ μΈ μλ μλ€.
- \(\displaystyle \sum^{n}_{i=1} x_{ij} \le 1\): μμ $j$μ ν루 μΉ μ΄μμ μμ μ νλλ‘ ν λΉν μλ μλ€.
Objective Function
maximize \(\displaystyle \sum^{n}_{i=1} \sum^{m}_{j=1} a_{ij} x_{ij}\)
Production Plaaning
λμκΈ°λ₯Ό λ§λλ 곡μ₯μ΄ μλ€. κ·Έ 곡μ₯μ λ€μ΄μ€λ μκ° μ£Όλ¬Έμ λλ΅ $440 \le d_i \le 920$ μ λλΌκ³ νλ€. 곡μ₯μλ νμ¬ 30λͺ μ μ§μμ΄ μλ€. μ§μλ€μ νλ¬μ 20κ°μ λμκΈ°λ₯Ό λ§λ€ μ μμΌλ©°, 2000μμ μκΈμ λ°λλ€.
곡μ₯μ μ§μμ μΆκ°λ‘ κ³ μ©νκ±°λ ν΄κ³ ν μ μλλ°, κ°κ° 320μκ³Ό 400μμ λΉμ©μ΄ λ λ€.
β¦
λ¬Έμ κ° μ’ κΈΈμ΄μ μΌλ¨ μ¬κΈ°κΉμ§ μ½κ³ LP ννλ‘ κΈ°μ ν΄λ³΄μ.
Variables
- $w_i$: $i$λ²μ§Έ λ¬μ κ³ μ©λ μ§μ μ, μ²μμλ 30λͺ μ μ§μμ΄ μλ€. $w_0 = 30$
- $x_i$: $i$λ²μ§Έ λ¬μ μμ°ν λμκΈ°μ μ
- $h_i, f_i$: $i$λ²μ§Έ λ¬μ κ³ μ©νκ±°λ ν΄κ³ ν μ§μμ μ
Constraints
- $w_i, x_i, h_i, f_i \ge 0$
- $x_i = 20 w_i$
- $w_i = w_{i-1} + h_i - f_i$
Objective Function
μμ§ λ¬Έμ μλ μ λμμ§λ§, κ²°κ΅μ 곡μ₯ μ΄μ λΉμ©μ μ΅μννλ λ¬Έμ λ€.
\[\min \quad 2000 \sum_i w_i + 320 \sum_i h_i + 400 \sum_i f_i\]λ¬Έμ λ₯Ό κ³μ μ½μ΄λ³΄μ.
β¦
μ΄κ³Όκ·Όλ¬΄λ₯Ό ν΅ν΄ λμκΈ°λ₯Ό μΆκ°λ‘ μμ°ν μ μλ€. μ΄λ μμ°λ λμκΈ°λ κΈ°μ‘΄ κΈμ¬μ 80%λ₯Ό μ΄κ³Όκ·Όλ¬΄ λΉμ©μΌλ‘ μ§λΆν΄μΌ νλ€. μ΄κ³Όκ·Όλ¬΄λ λ₯λ₯ μ΄ λ¨μ΄μ§κΈ° λλ¬Έμ μ§μ νλͺ μ΄ μ΄κ³Ό κ·Όλ¬΄λ‘ μμ°νλ λμκΈ° μλ 6κ° λΏμ΄λ€.
β¦
Variables
- $o_i$: $i$λ²μ§Έ λ¬μ μ΄κ³Όκ·Όλ¬΄λ‘ μμ°λ λμκΈ°μ μ
Constraints
- $o_i = 6 w_i$
- $x_i = 20 w_i + o_i$
Objective Function
λμκΈ° νλμ $2000/20 = 100$μ κΈμ¬λ‘ μ 곡νλ€. μ΄κ³Όκ·Όλ¬΄λ‘ μμ°λ κ²μ λν΄μ 80%λ₯Ό λ μ£ΌκΈ°λ‘ νμΌλ μ΄κ³Όκ·Όλ¬΄λ‘ μμλ λμκΈ° νλμ $180$μ μ΄κ³Όκ·Όλ¬΄ κΈμ¬λ₯Ό μ 곡ν΄μΌ νλ€.
\[\min \quad 2000 \sum_i w_i + 320 \sum_i h_i + 400 \sum_i f_i + 180 \sum_i o_i\]β¦
곡μ₯μ λ§€λ¬ λ§μ μ¬λΆμ λμκΈ°λ₯Ό μ μ₯ν μ μλ€. λμκΈ°λ₯Ό μ μ₯νλλ° 8μ λΉμ©μ΄ λ€λ©°, λ λμ μμκ³Ό λμλ μ μ₯νλ λμκΈ°κ° μλ€.
Variables
- $si$: $i$λ²μ§Έ μλ§μ μ μ₯ν λμκΈ° μ, $s_0 = 0$
Constraints
- $s_i = s_{i-1} + x_i - d_i$
Objective Function
\[\min \quad 2000 \sum_i w_i + 320 \sum_i h_i + 400 \sum_i f_i + 180 \sum_i o_i + 8 \sum_i s_i\]Bandwidth Allocation
λ€νΈμν¬ κ³΅κΈμλ μλμ κ°μ 쑰건μΌλ‘ λ€νΈμν¬λ₯Ό ꡬμΆνλ €κ³ νλ€.
- λ°μ΄ν° μ μ‘ λ¨μ λΉ A-B μ°κ²°μμλ 3μ μμ΅μ΄, B-C μ°κ²°μμλ 2μ μμ΅μ΄, A-C μ°κ²°μμλ 4μ μμ΅μ΄ λλ€.
- μ¦, A-Bμμ 1 μ λ λ§νΌ μ 보λ₯Ό μ£Όκ³ λ°μΌλ©΄ 3λ§νΌμ μ΄λμ΄ λλ€λ κ²μ΄λ€.
- κ° μ°κ²°μ 2 μ΄μμ λ¨μ μ λ λ§νΌ μ 보λ₯Ό μ£Όκ³ λ°λλ€.
- κ° μ°κ²°μ long pathκ³Ό short path λλ 볡ν©μ μΈ ννλ‘ νμ±λλ€.
μμ κ°μ μ°κ²° ννλ₯Ό μ΄μ©ν΄ λ€νΈμν¬ μ΄μ€μ μ΅λν νλλ‘ λ€νΈμν¬ λΌμ°ν μ ꡬμ±νλΌ.
Variables
- $x_{AB}$: short-path bandwidth allocated to the connection btw $A$ and $B$
- $xβ_{AB}$ long-path bandwidth allocated to the connection btw $A$ and $B$
Objective Function
\[\max \; 3 x_{AB} + 3 x'_{AB} + 2 x_{BC} + 2 x'_{BC} + 4 x_{CA} + 4 x'_{CA}\]Constraints
\[x_{AB}, x'_{AB}, x_{BC}, x'_{BC}, x_{CA}, x'_{CA} \ge 0\] \[\begin{aligned} x_{AB} + x'_{AB} &\le 2 \\ x_{BC} + x'_{BC} &\le 2 \\ x_{CA} + x'_{CA} &\le 2 \end{aligned}\] \[\begin{aligned} x_{AB} + x'_{AB} + x_{BC} + x'_{BC} &\le 10 & [\text{edge}(b, B)] \\ x_{AB} + x'_{AB} + x_{CA} + x'_{CA} &\le 12 & [\text{edge}(a, A)] \\ x_{BC} + x'_{BC} + x_{CA} + x'_{CA} &\le 8 & [\text{edge}(c, C)] \end{aligned}\] \[\begin{aligned} x_{AB} + x'_{BC} + x'_{CA} &\le 6 & [\text{edge}(a, b)] \\ x_{BC} + x'_{AB} + x'_{CA} &\le 13 & [\text{edge}(b, c)] \\ x_{CA} + x'_{AB} + x'_{BC} &\le 11 & [\text{edge}(c, a)] \end{aligned}\]μ΄κ²μΌλ‘ LPμ λ¬Έμ λ‘ ννν μ μλ μμ μ¬λ‘λ€μ μ΄ν΄λ³΄μλ€. νμ€μ λ¬Έμ λ₯Ό LPλ‘ νκΈ° μν κ°μ₯ κΈ°λ³Έμ μΈ λ¨κ³λ μμ κ°μ΄ Variables, Objective Function, Constraintsλ‘ μ μ ν΄μ νμΈνλ κ²μ΄λ€. LPλ₯Ό νΈλ κ²μ κ·Έ λ€μμ μΌμ΄λ€.
λ€μ ν¬μ€νΈμμλ LP λ¬Έμ λ₯Ό νΈλ λ°©λ²μΈ <Simplex Method>μ λν΄ μ΄ν΄λ³Έλ€.