线性规划基础
线性规划基础
线性规划是统筹学中最重要的一种系统优化方案,引用领域十分广泛,包括生产计划、物资调运、任务分配、资源优化配置、经济规划等问题。也有许多线性规划的应用,我们这里就用COPT的规划求解器去学习使用。
线性规划的基本定义
一般形式为:
$\max (\min) z = c_1x_1+c_2x_2+ \cdots +c_nx_n$
$s.t. \begin{cases} a{11}x_1+a{12}x2+\cdots + c{1n}xn = b_1 \ a{21}x1 + a{22}x2 + \cdots+c{2n}x_n = b_2 \ \cdots \ x_1,x_2,x_3\cdots x_n \geq 0 \end{cases}$
其中$\max (\min) z = c_1x_1+c_2x_2+ \cdots +c_nx_n$ 称为目标函数,
$a{11}x_1+a{12}x2+\cdots + c{1n}xn = b_1 \ a{21}x1 + a{22}x2 + \cdots+c{2n}x_n = b_2$ 称为约束条件,这里的=号,可以更换成$\leq \ \geq \ \neq$
$x_1,x_2,x_3\cdots x_n \geq 0$ 称为非负约束。
线性规划问题可以由向量和矩阵表示:
$\max(\min) z = C^T X \ s.t. \begin{cases} AX \leq(=,\geq) \ b \ X \geq 0 \end{cases}$
对于正常的解法,单纯形法等方法,不在介绍,直接上COPT怎么用。
COPT如何解决线性规划
1 |
|
整数规划
跟线性规划没有什么差距,就只是将连续型的变量变成了离散的,只能取整数 COPT.INTEGER
。
所有变量全取整数的规划叫纯整数规划,部分变量取整数的规划称为混合整数规划。所有变量都取0,1两个值的规划叫0-1规划,部分的叫0-1混合规划。
指示约束
指示约束(Indicator Constraints)是一类特殊的约束,通常用于涉及二进制变量的优化问题中。这类约束帮助我们通过控制一个二进制决策变量的状态(是 0 还是 1)来影响其他变量或约束的行为。
- If-Then 约束:这个约束表示如果某个条件为真,那么另一个条件也必须成立。这个约束的意思是:如果某个条件为真,那么另一个条件必须也为真
- Only-If 约束:只有当第二个条件为真时,第一个条件才能成立。“只有当 B 成立时,A 才能成立“
- If-and-Only-If 约束:两个条件互为必要且充分条件,即一个条件成立时,另一个条件必定成立,反之亦然。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!