当前位置:文档之家› 最新数学建模小实例

最新数学建模小实例

精品文档1、司乘人员配备问题某昼夜服务的公交路线每天各时间区段内需司机和乘务人员如下:班次时间最少需要人数1 6:00—10:00 602 10:00—14:00 703 14:00—18:00 60418:022:050522:02:02062:06:030设司机和乘务人员分别在各时间区段一开始上班,并连续工作八小时,问该公交线路至少配备多少名司机和乘务人员?x i班应报到第的人员解: 设为i(i?1,2,?,6),建立线性模型如下:6?x min Z?i1i?精品文档.精品文档x?x?60?61?x?x?70?12?x?x?6032?s.t.x?x?50?43?x ?x?2045?x?x?30?65?x,x,...,x?0?162LINGO程序如下:MODEL:min=x1+x2+x3+x4+x5+x6;x1+x6>=60;x1+x2>=70;x2+x3>=60;x3+x4>=50;x4+x5>=20;x5+x6>=30;END得到的解为:x1=60,x2=10,x3=50,x4=0,x5= 30,x6=0;配备的司机和乘务人员最少为150人。

精品文档.精品文档2、铺瓷砖问题要用40块方形瓷砖铺下图所示形状的地面,但当时市场上只有长方形瓷砖,每块大小等于方形的两块。

一人买了20块长方形瓷砖,试着铺地面,结果无法铺好。

试问是这人的功夫不到家还是这个问题根本无解呢?解答:0 1 0 1 00 1 0 1 0 1 01 0 1 0 1 0 1精品文档.精品文档棋子颜色问题3、然随机排成一个圆圈。

n在任意拿出黑白两种颜色的棋子共个,在两颗颜色不同的棋后在两颗颜色相同的棋子中间放一颗黑色棋子,再重复以上的放完后撤掉原来所放的棋子,子中间放一颗白色棋子,问这样重复进行下去这样放下一圈后就拿走前次的一圈棋子,过程,各棋子的颜色会怎样变化呢?分析与求解:两颗不同色的棋子中间由于在两颗同色棋子中放一颗黑色棋子,这表示。

表示,白色棋子用-1放一颗白色棋子,故可将黑色棋子用1这代表两颗同色棋子中放一颗黑色棋子;,×1=1,1×(-1)=11是因为-,这代表两颗不同色的棋子中间放一颗白色棋子。

-11×(-1)=为初始状态。

设棋子数为,a,a,a,n n12时当n=3)(舍掉偶次项状态步数a aa0 213aaaaaa 1 133221aa aaaa 2 213132aa aaaa 3 213132精品文档.精品文档aa aaaa 4 132132说明当n=3时,经过3步进入初始状态。

当n=4时步数状态(舍掉偶次项)a aa0 a2341aaaaaa aa 132211443aaaa aa aa 2 33114242aaaaaaaaaaaaaaaa 3 41142134212333422222222222222222aaaaaaaaaaaaaaaa 4 4243121213142334说明当n=4时,经过4步全变为黑色棋子。

既不循环也不全为黑子nnn222时次操作,就可以全部变为黑子,当棋子数不为结论:当棋子数为时,至多经过则一般不能全变为黑子。

Matlab程序:进行实验%棋子颜色问题演示% 1---黑子,-1 -----白子n=4; %定义棋子数times=6;%定义迭代次数x0=zeros(1,n);x1=zeros(1,n); %定义数组for i=1:nk=rand(1,1);if(k>0.5) x0(i)=1;else x0(i)=-1;endend; % 赋初值x0for i=1:timesifor k=1:n-1精品文档.精品文档x1(k)=x0(k)*x0(k+1);endx1(n)=x0(n)*x0(1);x1 %显示各次结果x0=x1;end程序语句解释:1.zeros(m,n),产生一个m×n的0矩阵,通常用于定义一个指定大小的矩阵.zeros(1,n)则产生一个全部为0的行向量。

2.rand(m,n),产生一个m×n的随机矩阵,每个元素都服从[0,1]上的均匀分布.rand(1,1)则产生一个服从[0,1]上的均匀分布的数字。

4. 选修课策略问题某学校规定,运筹学专业的学生毕业时必须至少学习过两门数学课、三门运筹学课和两门计算机课。

这些课程的编号、名称、学分、所属类别和先修课要求如表1所示。

那么,毕业时学生最少可以学习这些课程中哪些课程。

如果某个学生既希望选修课程的数量少,又希望所获得的学分多,他可以选修哪些课程?表1 课程情况模型的建立不考虑学分情形:11?x0x?表示i表示第门课程选修,门课程的编号。

设表示,…,,记i=1299ii第门课程不选。

问题的目标为选修的课程总数最少,即i9?xZ?mini1?i约束条件包括两个方面:精品文档.精品文档第一方面是课程数量的约束:每个人最少要学习2门数学课,则x?x?x?x?x?252341每个人最少要学习3门运筹学课,则x?x?x?x?x?395683每个人最少要学习2门计算机课,则有:x?x?x?x?29746第二方面是先修课程的关系约束:x?11x?,这,必须如“数据结构”的先修课程是“计算机编程”,这意味着如果74x?xx0x?没有限制)个条件可以表示为时对(注意当。

这样,所有课程的先修课要7474求可表为如下的约束“最优化方法”的先修课是“微积分”和“线性代数”,有:x?x,x?x2313“数据结构”的先修课程是“计算机编程”,有:x?x74“应用统计”的先修课是“微积分”和“线性代数”,有:x?x,x?x2515“计算机模拟”的先修课程是“计算机编程”,有:x?x76“预测理论”的先修课程是“应用统计”,有:x?x58“数学实验”是“微积分”和“线性代数”,有:x?x,x?x2991这样一来,总的0-1规划模型为:9?x min Z?i1?i精品文档.精品文档x?x?x?x?x?2?53214?x?x?x?x?x?3?35689?x?x?x?x?29764?x?x,x?x?2313?x?x?74s..t?x?x,x?x?5521?x?x76?x?x?58?x?x,x?x?9921?x,x,,x?0或1?912解得:x?1,x?1,x?1,x?1,x?1,x?1。

972316即选修课程为:微积分,线性代数.最优化方法,计算机模拟,计算机编程,数学实验。

LINGO程序为:model:sets:item/1..9/:c,x;endsetsdata:c=5,4,4,3,4,3,2,2,3;enddatamin=@sum(item(i):x(i));!课程最少;x(1)+x(2)+x(3)+x(4)+x(5)>=2;x(3)+x(5)+x(6)+x(8)+x(9)>=3;x(4)+x(6)+x(7)+x(9)>=2;x(3)<=x(1);x(3)<=x(2);x(4)<=x(7);x(5)<=x(1);x(5)<=x(2);x(6)<=x(7);x(8)<=x(5);x(9)<=x(1);x(9)<=x(2);@for(item(i):@bin(x(i)));end2 考虑学分情形:c,则增加学分最大的目标函数为:当要求学分最多时,设各门课程学分为i精品文档.精品文档9?c?x max Z iii?1这样总的双目标0-1规划模型为:9?x?min Z i11i?9?xc max Z?i2i1i?x?x?x?x?x?2?53214?x?x?x?x?x?3?35689?x?x?x?x?29674?x?x,x?x?2313?x?x?74s..t?x?x,x?x?2551?x?x76?x?x?58?x?x,x?x?9219?x,x,,x?0或1?921当把选修课程指定为6门时,对学分最大求最优,解得:x?1,x?1,x?1,x?1,x?1,x?1。

最大学分为z=22。

927513即选修课程为:微积分,线性代数.最优化方法, 应用统计,计算机编程,数学实验。

学分达到22分。

LINGO程序为:model:sets:item/1..9/:c,x;endsetsdata:c=5,4,4,3,4,3,2,2,3;enddatamax=@sum(item(i):c(i)*x(i));@sum(item(i):x(i))=6; !课程为6门; x(1)+x(2)+x(3)+x(4)+x(5)>=2;x(3)+x(5)+x(6)+x(8)+x(9)>=3;x(4)+x(6)+x(7)+x(9)>=2;x(3)<=x(1);x(3)<=x(2);x(4)<=x(7);精品文档.精品文档x(5)<=x(1);x(5)<=x(2);x(6)<=x(7);x(8)<=x(5);x(9)<=x(1);x(9)<=x(2);@for(item(i):@bin(x(i)));end精品文档.。

相关主题