2021五一杯数学建模A题 疫苗生产问题
2021五一杯數學建模A題
疫苗生產問題
新冠肺炎肆虐全球,給世界帶來了深重的災難。各國為控制疫情紛紛研發新冠疫苗。假定疫苗生產需要經過CJ1工位、CJ2工位、CJ3工位以及 CJ4工位等4個工藝流程。每個工藝流程一次性均能處理100劑疫苗,這100劑疫苗裝進一個加工箱一起送進工位的設備進行處理。而且,只有按照CJ1-CJ2-CJ3-CJ4的順序在4個工位都進行了加工以后,才算完成生產。為防止疫苗包裝出現混亂,某疫苗生產公司生產部門規定,每個工位不能同時生產不同類型的疫苗,疫苗生產不允許插隊,即進入第一個工位安排的每類疫苗的生產順序一旦確定就要一直保持不變,而且前一種類型的疫苗離開某個工位后,后一種類型的疫苗才能進入這個工位。
現有YM1-YM10等10種不同類型的疫苗需要生產。為安全起見,每種類型每箱(內裝疫苗100劑)疫苗在每個工位上均進行了50次模擬生產。發現,由于生產設備、疫苗純化等多種原因,每個工位生產不同類型的每箱疫苗所需的時間并不穩定,詳細的數據見附件1。
請建立數學模型,回答下列問題:
問題1:請對每箱疫苗在所有工位上的生產時間進行均值、方差、最值、概率分布等統計分析,以方便疫苗生產公司管理者能夠直觀的掌握每個工位生產疫苗的能力水平,為疫苗生產提供參考。
問題2:某國疫苗檢測部門緊急需要YM1-YM10各100劑疫苗進行檢測。為趕時間,疫苗生產公司需要對疫苗的生產順序進行規劃,以便能在最短時間內交付,以每個工位生產每箱疫苗平均時間為依據。請建立數學模型,制定疫苗生產順序,初始時刻為00:00,計算生產總時間,并將結果填入表1。
問題3:在實際生產中,每個工位生產每種疫苗的所需時間具有隨機性。如果要求該公司疫苗交貨總時間比問題2的總時間縮短5%,請建立數學模型,以最大的概率完成這個任務為目標,確定生產順序,并給出縮短的時間比例與最大概率之間的關系。
問題4:現在該疫苗生產公司接收了10種類型疫苗不同規模的生產任務(見附件2)。由于生產機器需要檢修和維護,每個工位每天生產的時間不能超過16小時。為避免疫苗錯誤包裝,要求每種類型疫苗的生產任務不可以拆分,即同種類型疫苗生產全部完成之后才能生產另外類型的疫苗。請建立數學模型,在可靠性為90%的前提下安排生產方案,至少多少天可以完成任務?
問題5:如果該疫苗生產公司計劃在100天內選擇部分數量的疫苗進行生產,每個工位每天生產的時間不能超過16小時,每種類型疫苗的生產任務可以適當拆分,即每種類型的疫苗可以只完成一部分。以最大銷售額為目標,請建立數學模型安排生產計劃。
模型的建立與求解(部分)(全部文檔及程序見評論區)
問題一模型的建立與求解:
問題二模型的建立與求解:
問題三模型的建立與求解:
根據第一問所知,疫苗在每個生產線上的概率分布,都屬于正態分布。也就是說,在上面的公式中,我們可以看做偏離系數τ符合正態分布。那么,僅需使用matlab 通過正態分布隨機值生成,即可仿真出疫苗生產時間隨機的情況。在第二問中,我們利用 Matlab 遍歷了所有情況以用來檢驗結果。在本題中,我們可利用第二問的代碼,根據題意添加條件即可。重復計算α次,通過第二問題的方法,算出每一次的最終時間 T,計數所有次數中最終時間 T 小于 95%最小時間的次數β,那么便可以求出該方案的近似概率 P=β/α
問題四與問題五模型的建立與求解:
程序代碼如下:
A=[13.284 9.8708 20.0584 7.9886 8.77 19.0741 11.1601 16.0201 15.0146 12.9524 14.9621 19.9075 15.9726 9.9366 13.722 20.0943 16.4961 8.8274 12.0351 7.0109 19.846 17.9281 14.9703 5.9358 13.0052 14.1485 12.0136 18.1143 7.0419 9.0491 20.0129 18.9423 15.1163 18.1283 11.2494 13.8838 19.0876 16.8313 8.9496 16.0524 ]; #A 數據集導入 Y=[1.593979267 0.793439961 0.809040273 0.999774981 0.613356028 1.315886921 1.032082042 1.229791443 0.991973399 0.20800367 1.051043473 1.121878635 0.648764524 0.988125675 1.15461187 0.876216121 0.901073535 0.226411679 1.220333417 0.294923796 1.222915487 0.899972852 1.082819843 0.039376599 0.866617616 0.914373457 0.694742886 1.134968066 0.130686652 0.196699049 1.849122356 0.898665829 0.858227975 1.138880455 1.279170491 1.227569715 0.685524548 0.97057379 0.181558835 0.260809703]; # B 數據集導入 x=[]; baogao=0; maxgailv100=[]; maxgailv95=[];maxgailv90=[];maxgailv85=[];maxgailv80=[];maxgailv75=[ ];maxgailv70=[];maxgailv65=[];maxgailv60=[]; maxgailv55=[];maxgailv50=[]; T100=191.7157; T95=191.7157*0.95; T90=191.7157*0.90; T85=191.7157*0.85; T80=191.7157*0.80; T75=191.7157*0.75; T70=191.7157*0.70; T65=191.7157*0.65; T60=191.7157*0.60; T55=191.7157*0.55; T50=191.7157*0.50; aa=perms(1:10); b=1814400; for j=1:1814400 a(j,:)=aa(ZI(1,j),:); end for c=1:b count100=0; count95=0; count90=0; count85=0; count80=0; count75=0; count70=0; count65=0; count60=0; count55=0; count50=0; baogao=baogao+1 for i=1:500 q=normrnd(0,1,1,1); x=A+Y*q; x1=a(c,:); T1=x(1,a(c,1)); T2=x(2,a(c,1))+x(1,a(c,1)); T3=T2+x(3,a(c,1)); T4=T3+x(4,a(c,1)); for d=2:10 for e=1:4 if e==1 T1=T1+x(1,a(c,d)); end if e==2 T2a=T2+x(2,a(c,d)); T2b=T1+x(2,a(c,d)); if T2a>=T2b T2=T2a; else T2=T2b; end end if e==3 T3a=T3+x(3,a(c,d)); T3b=T2+x(3,a(c,d)); if T3a>=T3b T3=T3a; else T3=T3b; end end if e==4 T4a=T4+x(4,a(c,d)); T4b=T3+x(3,a(c,d)); if T4a>=T4b T4=T4a; else T4=T4b; end end end end if T4<=T100 count100=count100+1; end if T4<=T95 count95=count95+1; end if T4<=T90 count90=count90+1; end if T4<=T85 count85=count85+1; end if T4<=T80 count80=count80+1; end if T4<=T75 count75=count75+1; end if T4<=T70 count70=count70+1; end if T4<=T65 count65=count65+1; end if T4<=T60 count60=count60+1; end if T4<=T55 count55=count55+1; end if T4<=T50 count50=count50+1; end end h100=count100/500; maxgailv100(1,c)=h100; h95=count95/500; maxgailv95(1,c)=h95; h90=count90/500; maxgailv90(1,c)=h90; h85=count85/500; maxgailv85(1,c)=h85; h80=count80/500; maxgailv80(1,c)=h80; h75=count75/500; maxgailv75(1,c)=h75; h70=count70/500; maxgailv70(1,c)=h70; h65=count65/500; maxgailv65(1,c)=h65; h60=count60/500; maxgailv60(1,c)=h60; h55=count55/500; maxgailv55(1,c)=h55; h50=count50/500; maxgailv50(1,c)=h50; end MAX100=max(maxgailv100) MAX95=max(maxgailv95) MAX90=max(maxgailv90) MAX85=max(maxgailv85) MAX80=max(maxgailv80) MAX75=max(maxgailv75) MAX70=max(maxgailv70) MAX65=max(maxgailv65) MAX60=max(maxgailv60) MAX55=max(maxgailv55) MAX50=max(maxgailv50)總結
以上是生活随笔為你收集整理的2021五一杯数学建模A题 疫苗生产问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 用hashlib求中文字符
- 下一篇: [家里蹲大学数学杂志]第405期中国科学