matlab怎么定义bintprog函数,Matlab 0-1规划之bintprog的 用法

x = bintprog(f)

x = bintprog(f, A, b)

x = bintprog(f, A, b, Aeq, beq)

x = bintprog(f, A, b, Aeq, beq, x0)

x = bintprog(f, A, b, Aeq, Beq, x0, options)

[x, fval] = bintprog(...)

[x,fval, exitflag] = bintprog(...)

[x, fval, exitflag, output] = bintprog(...)

这里x是问题的解向量

f是由目标函数的系数构成的向量

A是一个矩阵,b是一个向量

A,b和变量x={x1,x2,…,xn}一起,表示了线性规划中不等式约束条件

A,b是系数矩阵和右端向量。

Aeq和Beq表示了线性规划中等式约束条件中的系数矩阵和右端向量。

X0是给定的变量的初始值

options为控制规划过程的参数系列。

返回值中fval是优化结束后得到的目标函数值。

exitflag=0表示优化结果已经超过了函数的估计值或者已声明的最大迭代次数;

exitflag>0表示优化过程中变量收敛于解X,

exitflag<0表示计算不收敛。

output有3个分量,

iterations表示优化过程的迭代次数,

cgiterations表示PCG迭代次数,

algorithm表示优化所采用的运算规则。

在使用linprog()命令时,系统默认它的参数至少为1个,

但如果我们需要给定第6个参数,则第2、3、4、5个参数也必须给出,否则系统无法认定给出的是第6个参数。遇到无法给出时,则用空矩阵“[]”替代。

例如

max=193*x1+191*x2+187*x3+186*x4+180*x5+185*x6; %f由这里给出

st.

x5+x6>=1;

x3+x5>=1;

x1+x2<=1;

x2+x6<=1;

x4+x6<=1;

%a、b由不等关系给出,如没有不等关系,a、b取[]

x1+x2+x3+x4+x5+x6=1; �p、bep由等式约束给出

代码如下

f=[-193;-191;-187;-186;-180;-185;];

a=[0 0 0 0 -1 -1;0 -1 0 0 -1 0;1 1 0 0 0 0;0 1 0 0 0 1;0 0 0 1 0 1];

b=[-1,-1,1,1,1]';

aeq=[1 1 1 1 1 1];

beq=[3];

x=bintprog(f,a,b,aeq,beq)

注意

目标值为最大值时应乘以-1化为求最小值;

不等约束为>=时应乘以-1化为<=;

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值