特定约束下线性规划三类解的求解方案咨询:目标函数构造与实现思路
特定约束下线性规划三类解的求解方案咨询:目标函数构造与实现思路
我现在在做一个程序,需要解决这类线性不等式问题:
$$Ax\leq b $$
其中$A$是$m\times n$的实矩阵,$x \in \mathbb{R^n} $,$b \in \mathbb{R^m} $,同时还要满足这些约束条件:
- $\sum_{j=0}^n x_j= 1$
- $x_j\geq 0, \forall ,j\in J$
- $b_i\geq 0, \forall , i\in I$
我需要找到三类解:
- 能最小化$x$的解
- 能最大化$x$的解,还要指出是哪个$x_j$让这个解达到了约束上限(就像我下面举的例子那样,我暂时没法精准描述这个需求)
- 最接近$x_j = \frac{1}{n}, : \forall ,j\in J $的解
示例说明
举个很简单的例子:
给定 $A = (1.5, 0.2)$,$b=1$,我期望得到的三类解是:
- $S_1={x_1=0\quad \wedge\quad x_2=1} $
- $S_2 ={x_1=0.615\quad \wedge\quad x_2=0.385},\quad$ $x_1$是让解触达约束上限的变量
- $S_3={x_1=0.5\quad \wedge\quad x_2=0.5} $
我的困惑与求助
我本来觉得直接实现单纯形算法就行,但后来发现单纯形算法需要目标函数对吧?可我现在好像没有现成的目标函数。能不能针对我这三类需求分别构造合适的目标函数?或者有没有其他好的思路可以推荐?
补充一下:$J$和$I$的元素个数都不超过20,而且我之前从来没接触过线性规划😅
编辑补充:关于最大化/最小化的具体含义,我大概是这个意思:
$$min{c^T x,|, x\in \mathbb{R^n} \wedge Ax \leq b \wedge x,b \geq 0}$$
$$max{c^T x,|, x\in \mathbb{R^n} \wedge Ax \leq b \wedge x,b \geq 0}$$
我不太确定这个$c$向量该怎么选,这应该就是我缺失的部分吧?
我对线性规划的了解大多来自基础的线性规划理论。
备注:内容来源于stack exchange,提问作者Blueman




