修理厂建模试验报告

修理厂建模试验报告

廖博森

实验内容:

某修理厂设有3个停车位置,其中一个位置供正在修理的汽车停放。现以一天为一个时段,每天最多修好一辆车,每天到达修理站的汽车数有如下概率分布:

 

到达数

0

1

2

概率

06

02

02

假定在一个时段内一辆汽车能够修好的概率为0.7,本时段内未能完成修理的汽车于正在等待修理的汽车一起进入下一时段。试问:该停车厂有无必要增加停车位置,并说明理由。

一.           实验目的:

1.     为修理厂老板提供一个科学的关于是否增加停车位的建议.

2.     将此问题抽象成一类问题.

二.           问题分析:

这是一个典型的随机问题,是遵循“先到先修理的服务原则.我们在做这个问题时考虑到了如下问题:

1.“将前一时段未修理的车需要和当天待修的车一并进入下一是段.”显然这是一个一天关联一天的“链式结构模型.当然这为建模增添了很大的麻烦,为了使模型简单,那是否能够将每一天独立开进行分析呢?

2.当一段时间里进入下一时段的车辆数大于3,该怎么办,是否全部推移到下一时段?(车厂的停车位有限)

3.每一时段车辆到达数如何模拟?

4.每一时段修好的车辆数如何模拟?

5.模拟次数的选择是否遵守次数越多越精确?

.建模方向:

该问题是一个典型的系统模拟问题,所以我们采用了“系统模拟的方法建模.通过进行多次的模拟计算出过程每一时段车辆总数大于三的次数占模拟总次数的百分比,并依次决定是否增加停车位.

.模型假设:

1.在一时段内最多修好一辆车.

2.当一时段停车总数(未修好的数量+待修的数量)大于3,将多余的车转到其他的修理厂或叫车主将车开走,即进入下一时段的车数不超过3.因为车厂停车位有限,这也符合实际情况.

3.不考虑每辆车的利润,只考虑车位现有数与需求数之间关系.

.变量符号说明:

           X:一时段到达的车辆数;

           Y:一时段内修好的车辆数;

           F:一时段的车辆总数;

           K:进入下一时段修理的车数(0≤k3,因为车位只有3个车位,k>3则不符合逻辑);

         R1:随机数,R1U(0,1);

         R2:随机数,R2U(0,1);

.模型建立:

因为R1,R2服从(0,1)上均匀分布,则我们不难得出X,Y与R1,R2 的关系,可描述为:

          

 

            

同时,我们可以进一步得出关于F的函数:

             F(i)=k(i-1)+X-Y   i=1,2,3…

K(i)的值与F(i-1)有关:

            

然后我们借助计算机进行模拟,如下为实现程序(用Matlab实现):

 

%汽车修理厂系统模拟

n=input('输入模拟次数:');

InNum=0;%一时段车辆到达的数量

MendedNum=0;%一时段修好的车辆数量

EveryTotal=0;%一时段车辆总数(包括这一时段没修好的和待修的车辆)

GoToNextNum=0;%进入下一时段修理的车辆数量

R1=0;%随机数,用来确定产生一时段到来的车辆数

R2=0;%随机数,用来确定产生一时段修好的车辆数

add=0;%模拟过程中一时段停车总数大于3的次数

ratio=0.00;%模拟过程中停车总数大于3的次数所占的百分比

 

sprintf('输出提示符,当模拟过程中哪一天的车辆总数大于3时输出其天数以及当天的停车总数:')

 

 

for i=1:n,%模拟100

    R1=rand;%产生随机数

    R2=rand;%产生随机数

%确定一时段内车辆到达车厂的数量   

    if  0<=R1 & R1<=0.6,

        InNum=0;

    elseif 0.6<R1 & R1<=0.8,

        InNum=1;

    else

        InNum=2;

    end

%确定义时段内修好的车数   

    if (0<=R2 & R2<=0.3) | (GoToNextNum==0) ,

       MendedNum=0;

   else

       MendedNum=1;

   end

%一时段到最后时刻的车辆总数

   EveryTotal=GoToNextNum + InNum - MendedNum;

%定义推移到下一时段的车数  

   if EveryTotal<=3,

       GoToNextNum=EveryTotal;

   else

       GoToNextNum=3;

   end

%输出一时段停车总数大于3的天数以及该时段的车辆数  

   if EveryTotal>3,

       sprintf ('%3d%3d',i,EveryTotal)

       add=add + 1;

   end   

end  

ratio=add/n;%ratio计算百分比

sprintf('模拟结束,我们可从中得到如下结论:')

if ratio>0.5,

    sprintf('该修理厂有必要扩建,因为模拟结果显示其百分比为%f',ratio)

else

    sprintf('该修车厂没有必要扩建,因为模拟结果显示其百分比为%f',ratio)

end

 

.结果分析与模型检验:

1.程序模拟结果如下:(模拟100次,当然也可以是任意的。)

ans =

 

输出提示符,当模拟过程中哪一天的车辆总数大于3时输出其天数以及当天的停车总数:

 

 

ans =

 

  5  4

 

 

ans =

 

  7  4

 

 

ans =

 

 23  4

 

 

ans =

 

 47  4

 

 

ans =

 

 64  4

 

 

ans =

 

 95  4

 

 

ans =

 

 98  4

 

 

ans =

 

 99  5

 

 

ans =

 

模拟结束,我们可从中得到如下结论:

 

 

ans =

 

该修车厂没有必要扩建,因为模拟结果显示其百分比为0.080000

2.从模拟的结果我们可以充分说明该修车厂没有必要进行扩建。

.评价与改进方向:

我们可以把该模型进一步推广到一般,即将一些常量用变量来表示,于是就可根据不同的模型参数解决类似问题.

十一.总结及心得体会:

1.很多东西看上去很难,但只要思想不乱,朝着一个最终目标去思考,问题是会被你解决的.

2.开始建模时,会感觉到无从下手,但一步一步按照建模方法去做,问题会逐渐水落石出.

3.最后会感觉到有一种成就感,即使做的不是很好!

 

                                        日期:2006-3-22

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值