线性规划

最大化目标函数:

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

约束条件如下:

\[\begin{matrix} x_{1} + x_{2} + x_{3} & = & 7 \\ 2x_{1}-5x_{2} + x_{3} & \ge & 10 \\ x_{1}+3x_{2}+x_{3} & \le & 12 \\ x_{1},x_{2},x_{3} & \ge & 0 \end{matrix} \]

其解为\(x = [6.4285714285714,0.57142857142857,0]^{T}\),其最优值是\(-14.571428571429\)。

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

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

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

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