《Matlab在数学建模中的应用》笔记2-非线性规划&整数规划

非线性规划(NP)

  1. 定义:求一个函数min或max问题中,目标函数或约束条件至少有一个是非线性函数。

  2. 一般形式:
    目标函数:
    minf(x)
    约束条件:
    h(x)
    g(x)

其中,x为模型的(NP)的决策变量;f称为目标函数;gihi称为约束函数。另外,g(x)称为等式约束;h(x)称为不等式约束。

  1. Matlab标准形式
    min
    s.t.

其中,f(x)是标量函数;A,B,Aeq,Beq是相应维数的矩阵和向量;C(x),Ceq(x)是非线性向量函数。

Matlab命令为

x=fmincon(fun,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)

其返回值为向量 x 。其中,fun为需额外用M文件定义的目标函数;X0为x的初始值;A,B,Aeq,Beq对应线性不等约束 AxB 以及线性等式约束 Aeqx=B ,如果没有线性约束,则一般令A=[ ],B=[ ],Aeq=[ ],Beq=[ ]。LB&UB为变量 x 的下界和上界,若无约束,则为[ ],若无下界则,LB=-inf,若无上界,则UB=inf。NONLCON为用M文件定义的非线性向量函数 CxCeqx

  1. Example
    minf(x)=x21+x22+8
    s.t.x21x20x1x22+2=0x1,x20

Matlab代码

%编写M文件fun1.m和fun2.m
function f=fun1(x)
f=x(1)^2+x(2)^2+8;

function [g,h]=fun2(x)
g=-x(1)^2+x(2);
h=-x(1)-x(2)^2+2;
[x,y]=fmincon('fun1',rand(2,1),[],[],[],[],zeros(2,1),[],'fun2')

整数规划(简单介绍)

  1. 定义:规划的变量中(部分或全部)限制为整数

  2. 求解算法多种(还未真正实现过)
    分支定界法:可求纯或混合整数性线性规划
    割平面法:可求纯或混合整数性线性规划
    隐枚举法:用于求解0-1整数规划,有过滤隐枚举法和分枝隐枚举法
    匈牙利法:解决指派问题(0-1规划特殊情形)
    蒙特卡罗法:求解各种类型的规划

  3. 0-1整数规划(大概步骤)
    (1)先试探可行解,缩小范围
    (2)在小范围内穷举

你可能感兴趣的:(《Matlab在数学建模中的应用》笔记2-非线性规划&整数规划)