IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 整数规划作业打卡day2 -> 正文阅读

[数据结构与算法]整数规划作业打卡day2

题目:

?

求解思路:

引用自:

https://blog.csdn.net/f1220684378/article/details/121197355

1.先用线性规划处理得到最优解

2.用分枝定界法,得到整数解。

3.进行剪枝,得到整数最优解

?求解过程:

在不考虑x_{1}x_{2}为整数的情况下,求解此线性规划

Matlab代码如下:

clear all;
clc;
c = [40,90];
a = [9 7;7 20];
b = [56;70];
aeq =[];
beq = [];
lb=zeros(2,1);
[x,z]=linprog(-c,a,b,aeq,beq,lb);
x'
best = c*x

结果如下:

?

?因为x_{1}x_{2}首先对x_{1}进行分枝,分别得到x_{1}\leq 4x_{1}\geq 5?,首先对约束条件0\leq x_{1}\leq 4x_{2}\geq 0进行线性规划:

clear all;
clc;
c = [40,90];
a = [9 7;7 20];
b = [56;70];
aeq =[];
beq = [];
lb=[0;0];
ub = [4;inf]
[x,z]=linprog(-c,a,b,aeq,beq,lb,ub);
x'
best = c*x

?

?然后对限制条件x_{1}\geq 5,x_{2}\geq 0进行线性规划:

clear all;
clc;
c = [40,90];
a = [9 7;7 20];
b = [56;70];
aeq =[];
beq = [];
lb=[5;0];
ub = [inf;inf];
[x,z]=linprog(-c,a,b,aeq,beq,lb,ub);
x'
best = c*x


?

?所以可以将z的取值范围进一步缩小为0\leqslant z\leqslant 349.

?接下来在0\leq x_{1}\leq 4基础上对x_{2}进行分枝,分别得到0\leqslant x_{2}\leqslant 2x_{2}\geqslant 3,首先对0\leq x_{1}\leq 40\leqslant x_{2}\leqslant 2的限制条件上进行线性规划:

clear all;
clc;
c = [40,90];
a = [9 7;7 20];
b = [56;70];
aeq =[];
beq = [];
lb=[0;0];
ub = [4;2];
[x,z]=linprog(-c,a,b,aeq,beq,lb,ub);
x'
best = c*x

?

?

? 再对0\leq x_{1}\leq 4x_{2}\geqslant 3的限制条件进行线性规划:
?

clear all;
clc;
c = [40,90];
a = [9 7;7 20];
b = [56;70];
aeq =[];
beq = [];
lb=[0;3];
ub = [4;inf];
[x,z]=linprog(-c,a,b,aeq,beq,lb,ub);
x'
best = c*x

因此?z的取值区间缩短至\left [ 340,349 \right ]

接着在x_{1}\geq 5基础上对x_{2}进行分枝,分别为0\leqslant x_{2}\leqslant 1x_{2}\geqslant 2,首先对?x_{1}\geq 50\leqslant x_{2}\leqslant 1的限制条件进行线性规划。

clear all;
clc;
c = [40,90];
a = [9 7;7 20];
b = [56;70];
aeq =[];
beq = [];
lb=[5;0];
ub = [inf;1];
[x,z]=linprog(-c,a,b,aeq,beq,lb,ub);
x'
best = c*x

然后对?x_{1}\geq 5x_{2}\geqslant 2的限制条件进行线性规划:
?

clear all;
clc;
c = [40,90];
a = [9 7;7 20];
b = [56;70];
aeq =[];
beq = [];
lb=[5;2];
ub = [inf;inf];
[x,z]=linprog(-c,a,b,aeq,beq,lb,ub);
x'
best = c*x

?此限制条件下方程无解

剪枝

x_{1}\geqslant5这一枝剪掉,即舍去。

x_{1} \leqslant4x_{2}=3这一枝剪掉。

结论

综上所述,可得当x_{1}=4,x_{2}=2

? ??z的最优整数解即z_{max}=340.

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-11-09 19:49:07  更:2021-11-09 19:52:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:35:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码