【发布时间】:2019-07-02 11:37:31
【问题描述】:
【问题讨论】:
-
你想解决vertex enumeration problem的一个实例。
标签: computational-geometry linear-programming pulp polyhedra
【问题讨论】:
标签: computational-geometry linear-programming pulp polyhedra
你可以用 Pulp 做到这一点,但这并不容易(当然只适用于小问题)。
首先用二进制变量对基进行编码。 IE。
b(i) = 1 if x(i) is basic (x(i) are all variables: structural and logical)
0 otherwise
然后添加约束:
1. if b(i)=0 then x(i)=0 (i.e. if nonbasic then the variable should
be zero -- assuming non-negative variables).
2. sum(i, b(i)) = m (the number of basic variables is equal to
the number of constraints)
然后使用这个算法:
step 1. Solve as a MIP.
If infeasible: STOP
step 2. Add cut to prevent the previous basis
Go to step 1.
基本算法在here 中进行了解释,除了我们稍早停止:一旦目标恶化。这将列举所有的最优碱基。
【讨论】: