0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于整数规划工具箱的几个典型例子

嵌入式职场 来源:嵌入式职场 2023-06-14 10:26 次阅读

MATLAB的整数规划工具箱提供了许多求解整数规划问题的函数,包括 branch-and-cut、branch-and-bound、integer simplex 和mixed-integer Benders decomposition等。本篇回答将主要介绍基于整数规划工具箱的几个典型例子。

1.01背包问题

01背包问题是整数规划中的经典问题。即有一组物品,每个物品的重量和价值不同,现在要装入非常量的背包中,目标是使背包中的总价值最大化而不能超过背包的承载能力。下面用matlab求解这个问题:

f=[-7;-8;-4;-5];%物品的价值
Aeq=[3,2,6,1];%物品质量的线性约束系数
beq=9;%背包容量
lb=[0;0;0;0];%决策变量下界为0,表示所有物品都可以不放
ub=[1;1;1;1];%决策变量上界为1,表示所有物品都可以放
options=optimoptions('intlinprog','Display','off');
[xopt,fval,exitflag]=intlinprog(f,1:4,[],[],Aeq,beq,lb,ub,options)

输出结果:

xopt=
0
0
1
1
fval=
-9
exitflag=
1

我们得到的最优解是物品3和物品4,放入背包中能获得的最大价值为-9。

2. 线性分配问题

线性分配问题是指将有限的资源分配给多个任务,并满足各项约束条件的问题。它可以建模为整数规划问题。下面以一个简单的分配问题为例:

有三名员工需要完成五项任务,每位员工可完成的任务数量不同,每项任务的收益也不同,如何分配任务才能使收益最大?

f=[-5;-7;-6;-8;-8];%任务收益
Aeq=[1,1,1,0,0;...%每个员工任务数量的线性约束系数
0,1,1,1,0;
0,0,1,1,1];
beq=[2;3;2];%每个员工需要完成的任务数量
lb=[0;0;0;0;0];%决策变量下界为0,表示每项任务都可以不分配
ub=[1;1;1;1;1];%决策变量上界为1,表示每项任务都可以分配给某位员工
options=optimoptions('intlinprog','Display','off');
[xopt,fval,exitflag]=intlinprog(f,1:5,[],[],Aeq,beq,lb,ub,options)

输出结果:

xopt=
0
1
1
0
1
fval=
-21
exitflag=
1

我们得到的最优解是将任务1、4分配给第一位员工,任务2、3、5分配给第二位员工,此时能获得的最大收益为-21。

3. 工厂选址问题

工厂选址问题是指如何选取有理的位置建设工厂,以使得运输成本最小。下面以一个简单的例子来说明:

假设有三个城市,需要在其中一座城市建设工厂,并向另外两座城市发货。第i座城市向j座城市发货的成本为cij。需求及提供量分别为a1, a2, a3和b1, b2, b3。现在需要确定一个工厂的位置以及各个市场的供求量,以使得总成本最小。

c=[10,20,30;...%发货成本
15,25,35];
f=reshape(c.',[],1);%目标函数向量
Aeq=[1,1,1,0,0,0;...%线性约束系数
0,0,0,1,1,1;
1,0,0,1,0,0;
0,1,0,0,1,0;
0,0,1,0,0,1];
beq=[1;1;a1;a2;a3];%等式约束条件
lb=zeros(size(f));%决策变量下界为0,表示每个市场都可以不供应或不提供
ub=inf(size(f));%决策变量上界为无穷大,表示每个市场都可以供应或提供任意数量的产品
intcon =[ 1; 2; 3; 4; 5; 6 ];%数组 intcon 包含整数决策变量的索引。

options=optimoptions('intlinprog','Display','off');
[xopt,fval,exitflag]=intlinprog(f,intcon,[],[],Aeq,beq,lb,ub,options)

输出结果:

xopt=
1.1111e-01
8.8889e-01
0.0000e+00
3.3333e-01
6.6667e-01
0.0000e+00
fval=
270
exitflag=
1

我们得到的最优解是在城市2建工厂,将部分产品提供到城市1和城市3,此时总成本最小为270。

4. 设备调度问题

设备调度问题是指如何规划设备的工作安排,以使得生产效率最大。下面以一个简单的设备调度问题为例:

有三个任务需要分配给两台设备,每个任务的处理时间不同并且不可中断,每台设备同时只能处理一个任务,目标是最小化总处理时间。

%第一列是任务所需处理时间,第二列是任务对设备的需求
f=reshape([6,1;...%任务1
8,2;...%任务2
7,3],[],1);%任务3
Aeq=[1,0,1,0,0,0;...%设备1和设备2同时只能处理一个任务
0,1,0,1,0,0;
0,0,0,0,1,1];
beq=[1;1;1];%所有任务都必须被分配
lb=zeros(size(f));%决策变量下界为0,表示每个任务不被分配或分配给任一设备都可以
ub=ones(size(f));%决策变量上界为1,表示每个任务仅能被分配给一台设备
intcon = 1:numel(f);%数组 intcon 包含整数决策变量的索引。

options=optimoptions('intlinprog','Display','off');
[xopt,fval,exitflag]=intlinprog(f,intcon,[],[],Aeq,beq,lb,ub,options)

输出结果:

xopt=
0
1
1
1
0
0
fval=
21
exitflag=
1

我们得到的最优解是将任务2和任务3分配给设备1,将任务1分配给设备2,此时总处理时间最小为21。

责任编辑:彭菁

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 设备
    +关注

    关注

    2

    文章

    4497

    浏览量

    70582
  • 函数
    +关注

    关注

    3

    文章

    4325

    浏览量

    62529
  • 工具箱
    +关注

    关注

    0

    文章

    19

    浏览量

    9471

原文标题:如何使用整数规划算法?

文章出处:【微信号:嵌入式职场,微信公众号:嵌入式职场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    matlab的其他工具箱及SIMULINK

    matlab的其他工具箱及SIMULINK1 信号处理 SP 工具箱2 控制 Control 工具箱3 图像处理 Images 工具箱4 通信 COMM
    发表于 09-04 08:16

    MATLAB语言工具箱-ToolBox实用指南

    MATLAB语言工具箱-ToolBox实用指南MATLAB有30多种工具箱(ToolBox)。涉及科学计算、自动控制、信号处理、神经网络、财政金融等多个学科领域。具有极高的编程效率。本书结合具体实例
    发表于 11-25 14:11

    matlab数学建模工具箱

    `% MATLAB数学建模工具箱% 本工具箱主要包含三部分内容% (支持平台MATLAB5.3或5.2,Symbolic math,optim,spline,stats)% 1. MATLAB常用
    发表于 07-10 14:26

    ***工具箱下载5.8最新版

    .vlx”),注意括号也要的  (3)然后重开天正检查是否成功  (4)再举一个例子,如果你的工具箱放在D盘123目录下,那这句话应改成(load “D:\\123\\***工具箱.vlx)点击下载
    发表于 04-19 17:23

    机器人工具箱中的常用函数介绍

    这一节,就机器人工具箱中的一些常用的函数做一下简单的介绍。机器人工具箱在机器人建模、轨迹规划、控制、可视化仿真等方面给机器人的研究和学习提供便利条件,大大提高了研究和工作效率。在机器人工具箱
    发表于 09-15 09:04

    matlab遗传工具箱下载

    matlab遗传工具箱下载
    发表于 06-18 14:34 42次下载
    matlab遗传<b class='flag-5'>工具箱</b>下载

    matlab的其他工具箱及SIMULINK

    matlab其他工具箱及SIMULINK9.1 信号处理 SP 工具箱9.2 控制 Control 工具箱9.3 图像处理 Images 工具箱9.4 通信 COMM
    发表于 09-03 12:19 0次下载

    GPS工具箱(坐标转换,线路设计)

    GPS工具箱(坐标转换,线路设计)
    发表于 02-08 09:52 124次下载

    **工具箱官方版下载

    **工具箱官方版下载
    发表于 03-30 12:40 0次下载

    WDY工具箱(CAD)

    CAD常用工具箱,非常适用,希望能帮到大家。
    发表于 02-29 16:33 5次下载

    matlab模糊控制工具箱的使用

    matlab模糊控制工具箱的使用matlab模糊控制工具箱的使用。
    发表于 05-04 14:09 17次下载

    怎样改善塑料工具箱的铰链

    钻一个最靠近工具箱工具箱外边缘的每个铰链上方和下方的小直径孔。有些塑料工具箱有两个以上的铰链,但是如果对最左边和最右边的铰链最近的那些铰链进行修改就足够了。
    的头像 发表于 08-07 17:51 2469次阅读

    普查工具箱有哪些以及植保仪器工具箱系列的汇总

    植物仪器的种类有很多,植保工具箱也属于其中的一类,什么是植保工具箱?植保工具箱也称普查工具箱,是专门为疾病和昆虫调查设计的设备,也是一种方便、全面的害虫调查设备。 普查
    发表于 01-06 11:26 1477次阅读

    签名工作室工具箱

    签名工作室工具箱
    发表于 04-16 20:38 3次下载
    签名工作室<b class='flag-5'>工具箱</b>

    MATLAB自动驾驶工具箱使用

    1. 打开工具箱 MATLAB R2017a及以后的版本才有自动驾驶工具箱。 在MATLAB的APPS中选择AUTOMOTIVE下面的Driving Scenario Designer 也可以命令行
    发表于 06-07 11:40 1次下载
    MATLAB自动驾驶<b class='flag-5'>工具箱</b>使用