0-1整数规划

1.前置知识

\(01\)整数规划,仅限用于变量\(x_j\)为0/1的情况

即约束函数为:

\[0\leq x_j \leq 1 \text{且} x_j \text{为整数} \]

2.单一相互排斥的约束条件

抽象化理解题目即:$ \lambda $种运输方式,仅能选择一定种数的运输方式

为了解决此类问题,我们统一引入\(\text{0-1}\)变量

\[y=\begin{cases}1 ,\texttt{当采取船运方式时} \\ 0 ,\texttt{当采取车运方式时}\end{cases}\]

\(e.g.1\)

约束条件为:

\[5x_1+4x_2\leq24 \ or\ 7x_1+3x_2\leq 45 \]

引入\(\text{0-1}\)变量,上述可改写为:

\[\begin{cases} 5x_1+4x_2 \leq 24+yM, \\ 7x_1+3x_2 \leq 45+(1-y)M, \\ y=0 \text{或} 1 \ \end{cases} \]

其中,\(M\)为充分大的数

(待解决:怎么用linprog实现yM的表示?)<-已解决

\(e.g.\small \texttt{实例}\)

某公司拟在市东、西、南三区建立门市部。拟议中有7个位置(点)\(A_i(i=1,2,3...7)\)可供选择。规定:

\(1.\)在东区。由\(A_1\),\(A_2\),\(A_3\)三个点中至多选两个

\(2.\)在西区,由\(A_4\),\(A_5\)两个点中至少选一个

\(3.\)再南区,由\(A_6\),\(A_7\)两个点中至少选一个

如选用\(A_i\)点,设备投资估计为\(b_i\),每年可获利润估计为\(c_i\)元,但投资总额不能超过

解:

引入\(\text{0-1}\)变量\(x_i\)

\[x_i= \begin{cases} 1, \texttt{当}A_i\texttt{点被选中}\\ 0,\text{当}A_i\texttt{点未被选中}\end{cases}(i=1,2...7)\]

则上述模型转化为:

\[max \ z=\sum_{i=1}^{7}c_ix_i \]

\[s.t.\begin{cases} \sum_{i=1}^{7}b_ix_i \leq B \\ x_1+x_2+x_3 \leq 2 \\ x_4+x_5 \geq 1 \\ x_6+x_7 \geq 1 \end{cases}(x_i=0\text{或}1)\]

2.1.多重相互排斥的约束条件

抽象化理解题目:

即问题\(2\)的扩展,问题变为了运用\(0-1\)变量来求解\(m\)个互相排斥的约束问题

若有\(m\)个相互约束的约束条件:

\[a_{i1}x_1+...+a_{in}x_n \leq b_i,i=1,2,...,m \]

我们重新定义\(\text{0-1}\)变量\(y_i\)

\[y_i=\begin{cases} 1,\texttt{第}i\texttt{个约束起作用},\\ 0,\texttt{第}i\texttt{个约束起作用}\end{cases}(i=1,2,...m)\]

可得\(\text{m+1}\)个约束条件:

\[\begin{cases} a_{i1}x_1+...+a_{in}x_n \leq b_i+(1-y_i)M \ \ (1*)\\ y_1+y_2+...+y_m=1 \ \ (2*)\\ \end{cases}\]

注意到,(2*)式只有一个\(y_i\)会等于\(1\)

故令\(y^{*}=1\),代入(1*)式,则只有\(i=i^*\)的约束条件起作用,其他式子均为多余的。

可暴力枚举\(y^*\)来更新\(ans\)

3.关于固定费用的问题

常见问题下要求使成本最小,故成本为可变常数。而部分问题中成本为固定常数,则需要使用混合整数规划来解决。

\(e.g.\)

某工厂为了生产某种产品,有几种不同的生产方式可供选择,如选定的生产方式投资高(选购自动化程度高的设备),由于产量大,因而分配到每件产品的变动成本就降低;反之,如选定的生产方式投资低,将来分配到每件产品的变动成本可能增加。所以,必须全面考虑。设有三种方式可供选择,令

\(\text{j=1,2,3}\)分别表示三种方式;

\(x_j\)表示采用第\(j\)种方式时的产量;

\(c_j\)表示采用第\(j\)种方式时每件产品的变动成本

\(k_j\)表示采用第\(j\)种方式时的固定成本

解:

暂不考虑其他约束条件的情况下,采用各种生产方式的总成本分别为

\[P_j=\begin{cases} k_j+c_jx_j ,x_j >0 \\ 0,x_j =0 \end{cases} \]

引入\(0-1\)变量\(y_j\)

\[y_i=\begin{cases} 1,\texttt{当采用第}j\texttt{种生产方式,即}x_j>0\text{时} \\ 0,\texttt{当不采用第}j\texttt{种生产方式,即}x_j=0\text{时}\end{cases}(i=1,2,...m)\]

故目标函数为:

\[min \ z=(k_1y_1+c_1x_1)+(k_2y_2+c_2x_2)+(k_3y_3+c_3x_3) \]

约束条件为:

\[y_j \epsilon \leq x_j \leq y_jM,j=1,2,3 \]

式中\(\epsilon\)为充分小的正常数,\(M\)为充分大的正常数

此式可完全替代\(0-1\)变量表达式

posted @ 2022-01-07 13:16  SxtoxA  阅读(441)  评论(0)    收藏  举报
12 13