【数学建模】整数规划

举报
开心星人 发表于 2022/09/26 20:33:03 2022/09/26
【摘要】 司守奎 《数学建模算法与应用》 第二版 0-1型相互排斥的约束条件5x1+4x2≤24 或 7x1+3x2≤45如果有m个互相排斥的约束条件指派问题拟分配n人去做n项工作,每人做且仅做一项工作,若分配第i人去做第j项工作,需花费c单位时间,问应如何分配工作才能使工人花费的总时间最少?蒙特卡洛法(随机取样法)y=x2、y=12-x与x轴在第一象限围成一个曲边三角形。设计一个随机实验,求该图形面...

司守奎 《数学建模算法与应用》 第二版

在这里插入图片描述

0-1型

相互排斥的约束条件

5x1+4x2≤247x1+3x2≤45

在这里插入图片描述

如果有m个互相排斥的约束条件
在这里插入图片描述

指派问题
拟分配n人去做n项工作,每人做且仅做一项工作,若分配第i人去做第j项工作,需花费c单位时间,问应如何分配工作才能使工人花费的总时间最少?
在这里插入图片描述

蒙特卡洛法(随机取样法)
y=x2、y=12-x与x轴在第一象限围成一个曲边三角形。设计一个随机实验,求该图形面积的近似值。

在矩形区域[0,12]×[0,9]上产生服从均匀分布的107个随机点,统计随机点落在曲边三角形的频数,则曲边三角形的面积近似为上述矩形的面积乘以频率。

clc,clear
×=unifrnd(0,12,[1,10000000]);
y=unifrnd(0,9,[1,10000000]);
pinshu =sum(y<x.^2 &x<=3)+sum(y <12-x&x>=3);
area_appr =12 *9 *pinshu/10^7

在这里插入图片描述
编写文件mengte.m,目标函数f和约束向量g

function[f,g]=mengte(x);
f=x(1)^2+x(2)^2+3*x(3)^2+4*x(4)^2+2*x(5)^2-8*x(1)-2*x(2)-3*x(3)-x(4)-...
    2*x(5);
g=[
    sum(x)-400
    x(1)+2*x(2)+2*x(3)+x(4)+6*x(5)-800
    2*x(1)+x(2)+6*x(3)-200
    x(3)+x(4)+5*x(5)-200
    ]; 

主函数

format compact;
rand('state',sum(clock)); % 初始化随机数发生器
p0=0;
tic % 计时开始
for i=1:10^6
    x=randi([0,99],1,5); % 产生15列的区间[0,99]上的随机整数
    [f,g]=mengte(x);
    if all(g<=0)
        if p0<f
            x0=0;p0=f; % 记录下当前较好的解
        end
    end
end
x0,p0
toc % 计时结束
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。