混合整数规划

最小化目标函数:

\[-3x_{1}-2x_{2}-x_{3} \]

约束条件如下:

\[ \begin{matrix} x_{1}+x_{2}+x_{3} & \le & 7 \\ 4x_{1}+2x_{2}+x_{3} & = &12 \\ x_{1},x_{2} & \ge & 0 \\ x_{3} & \in & \left\{ 0,1 \right\} \end{matrix} \]

其解\(x = [0,6,0]^{T}\),最优值是\(-12\)。

local print = require('package.print').print
local mol = libminoptlab

local c = {-3,-2,-1}
local Aeq = mol.matrix.new(1,3,{4,2,1})
local beq = {12}
local A = mol.matrix.new(1,3,{1,1,1})
local b = {7}
local lb = {0,0,0}
local ub = {100,100,1}
local intindex = {3}

local best,fbest = mol.lpsolve(c,Aeq,beq,A,b,lb,ub,intindex)

print({
	best = best,
	fbest = fbest,
	ineq = A:mul(best):sub(b):tovector(),
	eq = Aeq:mul(best):sub(beq):tovector()
})