线性规划
最大化目标函数:
\[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()
})