⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xiaochidian.m

📁 一个很著名的数学建模(数学仿真)问题-小吃店服务问题的Matlab求解程序
💻 M
字号:
clear 
DAYS=1;%如果天数等于1,则显示该天的实时顾客数量,如果大于1则是求长时间的统计特性



total_cus=0;
total_snack=0;
total_staytime=0;
total_num=0;

max_cus=0;



if(DAYS==1)
    figure
end


for data=1:DAYS
    ar_time=[];
    de_time=[];
    num_cus=[];
    num_snack=[];
    stay_time=[];
    
    now_cus=0;
    nowtime=0;
    arrived=1;
    nowcustom=[];
    time=[];
    
    
for nowtime=0:360
    
    %上一批顾客已经到达,产生新的到达时间
    if arrived==1
        p_jiange=rand;
        if p_jiange<0.3
            jiange=3;
        else if p_jiange<0.5
                jiange=5;
            else if p_jiange<0.65
                    jiange=6;
                else if p_jiange<0.85
                        jiange=8;
                    else
                        jiange=10;
                    end            
                end
            end
        end
        nextcustom=nowtime+jiange;
        arrived=0;
    end
    
    %有顾客到达,产生该批顾客的基本信息
    if nowtime==nextcustom    

        arrived=1;
        ar_time=[ar_time,nowtime];
        
        %产生顾客人数
        p_num_c=rand;
        if p_num_c<0.4
            num_c=1;
        else if p_num_c<0.7
                num_c=2;
            else if p_num_c<0.9
                    num_c=3;
                else
                    num_c=4;
                end
            end
        end
        num_cus=[num_cus,num_c];
        now_cus=now_cus+num_c;
        
        %根据顾客人数产生离开时间
        dep_total=0;
        for ii=1:num_c
            p_away=rand;
            if p_away<0.1
                away=10;
            else if p_away<0.5
                    away=15;
                else if p_away<0.8
                        away=20;
                    else
                        away=25;
                    end
                end   
                if(dep_total<away)
                    dep_total=away;
                end
            end
        end
        stay_time=[stay_time,dep_total];        
        dep_total=nowtime+dep_total;        
        de_time=[de_time,dep_total];
        
        %产生顾客所需特色点心数量
        num_sna=0;
        for ii=1:num_c
            p_sna=rand;
            if p_sna<0.2
                num_sna=num_sna+0;
            else if p_away<0.85
                    num_sna=num_sna+1;
                else 
                    num_sna=num_sna+2;
                end
            end
        end
        num_snack=[num_snack,num_sna];
    end 
    
    %有顾客离开
    L=find(de_time==nowtime);
    num_L=length(L);
    for ii=1:num_L
        now_cus=now_cus-num_cus(L(ii));
    end
    now_cus;
    nowcustom=[nowcustom,now_cus];
    time=[time,nowtime];
    
    %仿真一天的情况,则动态显示顾客人数
    if DAYS==1
        title('顾客人数实时显示')
        axis([0,400,0,20])
        plot(time,nowcustom);
        hold on
        pause(0.01)
    end

end
    


total_cus=total_cus+sum(num_cus);
total_snack=total_snack+sum(num_snack);
max_cus=max(max_cus,max(nowcustom));
total_staytime=total_staytime+sum(stay_time);
total_num=total_num+length(ar_time);
        
end

average_days_cus=total_cus/DAYS
average_days__snack=total_snack/DAYS
average_hours_cus=average_days_cus/6
average_hours__snack=average_days__snack/6
average_staytime=total_staytime/total_num
max_cus=max_cus
            

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -