《零基础数学建模》——整数规划

​ 前言

本文大部分是对于数学建模清风老师的课程学习总结归纳而来,我的理解可能有错误,大家发现错误可以在评论区批评指正,课程地址:《数学建模清风》
  本文的前置文章《零基础数学建模》——线性规划


一、整数规划概述

  整数规划是⼀类要求变量取整数值的 数学规划(在线性规划模型中,有决策变量限定为整数)。
  ⽬前, 所流⾏的求解整数规划的算法往往只适⽤于线性整数规划, 所以之后在整数规划的学习文章中均针对线性整数规划。

  • 0-1规划(0-1 Programming)
      整数规划的特例 ,整数变量的取值只能为0和1,在matlab中也只能求解线性的0-1规划,对于非线性0-1规划同样只能近似求解。(数模比赛中出现频率最高)

二、 M a t l a b Matlab Matlab标准型

  • 线性规划的函数
       [ x , f v a l ] = l i n p r o g [ c , A , b , A e q , b e q , l b , u b , x 0 ] [x,fval]=linprog[c,A,b,Aeq,beq,lb,ub,x_0] [x,fval]=linprog[c,A,b,Aeq,beq,lb,ub,x0]
  • 线性整数规划的函数
       [ x , f v a l ] = i n t l i n p r o g [ c , i n t c o n , A , b , A e q , b e q , l b , u b ] [x,fval]=intlinprog[c,intcon,A,b,Aeq,beq,lb,ub] [x,fval]=intlinprog[c,intcon,A,b,Aeq,beq,lb,ub]

注意:

  1. intlinprog函数不能指定初始值;
  2. intcon参数可以指定哪些决策变量是整数。
    PS:决策变量有三个: x 1 , x 2 , x 3 ,若 x 1 , x 3 是整数,则 i n t c o n = [ 1 , 3 ] x_1,x_2,x_3,若x_1,x_3是整数,则intcon=[1,3] x1,x2,x3,若x1,x3是整数,则intcon=[1,3]
  • 线性0-1规划的函数
      0-1规划属于整数规划的特殊形式,所以仍然使用 i n t l i n p r o g intlinprog intlinprog函数,只是需要在lb和ub加上限定条件。
     PS:决策变量有三个: x 1 , x 2 , x 3 ,若 x 1 , x 3 是 0 − 1 变量, x 2 不限制,则 i n t c o n = [ 1 , 3 ] , l b = [ 0 , − i n f , 0 ] ′ , u b = [ 1 , + i n f , 1 ] ′ x_1,x_2,x_3,若x_1,x_3是0-1变量,x_2不限制,则intcon=[1,3],lb=[0,-inf,0]',ub=[1,+inf,1]' x1,x2,x3,若x1,x301变量,x2不限制,则intcon=[1,3]lb=[0,inf,0],ub=[1,+inf,1]

三、例题说明

%% 例1
c=[-20,-10]';
intcon=[1,2];  % x1和x2限定为整数
A=[5,4;
     2,5];
b=[24;13];
lb=zeros(2,1);  
[x,fval]=intlinprog(c,intcon,A,b,[],[],lb)
fval = -fval

%% 例2
c=[18,23,5]';
intcon=3;  % x3限定为整数
A=[107,500,0;
      72,121,65;
      -107,-500,0;
      -72,-121,-65];
b=[50000;2250;-500;-2000];
lb=zeros(3,1);
[x,fval]=intlinprog(c,intcon,A,b,[],[],lb)

c=[-3;-2;-1]; intcon=3; % x3限定为整数
A=ones(1,3); b=7;
Aeq=[4 2 1]; beq=12;
lb=zeros(3,1); ub=[+inf;+inf;1]; %x(3)为0-1变量
[x,fval]=intlinprog(c,intcon,A,b,Aeq,beq,lb,ub)

四、模型总结

  在数学建模中,我们研究线性整数规划,所以前面线性规划中的总结同样适用于这里,同时补充几点需要注意:

  1. 初始值 x 0 x_0 x0设置对于求解答案本身没有意义,因为线性规划问题都是通过单纯形法进行求解的,初始值只能帮助我们更快的找出答案,不能使答案更精确。
  2. 要记住intcon变量在函数的第二个位置,这说明了这个变量的重要程度,不要与 l i n p r o g linprog linprog函数混淆。
  3. 线性0-1规划模型本质上与线性整数规划模型相同,只是在边界的限定条件上做出一定的限制即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值