matlab解决线性的整数规划问题与0-1规划问题 在各种优化问题中有一类特殊的优化问题与其他问题有显著不同它就是整数规划问题现在我们来看线性的整数规划如何在matlab中得到求解我们需要的是intlinprog函数intlinprog可分解为int lin prog,即integer linear programming‘整数’ ‘线性’ ‘规划’。在整数规划的问题上更进一步增加约束条件约定整数自变量的下限为0上限为1即将问题进一步约束成为了0-1规划问题。intlinprog函数的使用方法1.我们先看这类问题的标准形式除了需要参数x中的一些值为整数外与之前的线性规划完全相同可以参考之前的文章2.再来看函数的调用格式与线性规划函数linprog函数的调用基本相同不同之处在于多了一个intcon参数这个参数限定了在自变量矩阵x中哪些量是整数例如比如x1和x3是整数变量那么intcon[1,3];整数规划例子各个矩阵的含义参考专栏之前的“matlab解决有约束的线性规划”一文【例】【求解】f[8 1]; A[-1 -2;-4 -1;2 1]; b[14 -33 20]; lbzeros(2,1); intcon[2]; [x,fval,exitflag,output]intlinprog(f,intcon,A,b,[],[],lb,[])运行结果x 6.5000 7.0000 fval 59.00000-1规划例子【例】【求解】f[-6 -2 -3 -5]; %求解最大值需要在目标函数前面加个符号转化为求极小值问题 A[-3 5 -1 -6;2 1 1 -1;1 2 4 5]; b[-4 3 10]; intcon[1 2 3 4]; lbzeros(4,1); %限定下限 ubones(4,1); %限定上限 [x,fval,exitflag,output]intlinprog(f,intcon,A,b,[],[],lb,ub); x,-fval %因为目标函数加了负号因此显示结果时也要加负号【结果】x 1.0000 0 1.0000 1.0000 ans 14.0000