◇四川信息職業(yè)技術(shù)學(xué)院基礎(chǔ)教育部 伍 星
2021年五一杯全國(guó)大學(xué)生數(shù)學(xué)建模A題要求對(duì)10種不同類型的疫苗依次經(jīng)過四個(gè)工位的生產(chǎn)問題進(jìn)行分析,通過借助excel和python分析附件1中50次模擬生產(chǎn)數(shù)據(jù),了解每個(gè)工位的生產(chǎn)水平;建立整數(shù)規(guī)劃模型,給出最優(yōu)生產(chǎn)順序,采用流水線生產(chǎn)模型,得到生產(chǎn)所需總時(shí)間最短;通過建立規(guī)劃模型安排最高利潤(rùn)的生產(chǎn)計(jì)劃。
新冠肺炎肆虐全球,給世界帶來了深重的災(zāi)難,各國(guó)為控制疫情紛紛研發(fā)新冠疫苗。由于生產(chǎn)疫苗的規(guī)模較大,為安全起見,防止疫苗包裝出現(xiàn)混亂,每個(gè)工位不能同時(shí)生產(chǎn)不同類型的疫苗,疫苗生產(chǎn)不允許插隊(duì),即一旦確定進(jìn)入第一個(gè)工位的疫苗生產(chǎn)順序,就要一直保持不變,而且前一種類型的疫苗離開某個(gè)工位后,后一種類型的疫苗才能進(jìn)入這個(gè)工位。
現(xiàn)有YM1-YM10等10種不同類型的疫苗需要生產(chǎn),每種疫苗生產(chǎn)都需要經(jīng)過CJ1、CJ2、CJ、CJ4等4個(gè)工藝流程。每個(gè)工藝流程一次性均能處理100劑疫苗,這100劑疫苗裝進(jìn)一個(gè)加工箱一起送進(jìn)工位的設(shè)備進(jìn)行處理。而且,只有按照CJ1-CJ2-CJ3-CJ4的順序在4個(gè)工位都進(jìn)行了加工以后,才算完成生產(chǎn)。在此背景下,需要解決如下問題:
(1)疫苗在每個(gè)工位上均進(jìn)行了50次模擬生產(chǎn),數(shù)據(jù)參照2021年五一杯數(shù)學(xué)建模競(jìng)賽A題的附件,下面對(duì)每箱疫苗在所有工位上的生產(chǎn)時(shí)間進(jìn)行統(tǒng)計(jì)分析,為疫苗公司的生產(chǎn)提供參考。
(2)為趕時(shí)間,對(duì)10種疫苗進(jìn)行檢測(cè),建立數(shù)學(xué)模型,制定加工疫苗順序,并計(jì)算生產(chǎn)總時(shí)間。
(3)要求每個(gè)工位每天生產(chǎn)的時(shí)間不能超過16小時(shí),且同種類型疫苗生產(chǎn)全部完成之后才能生產(chǎn)另外類型的疫苗。建立數(shù)學(xué)模型,在可靠性為90%的前提下安排生產(chǎn)方案,計(jì)算完成任務(wù)的最少時(shí)間。
(4)該疫苗生產(chǎn)公司計(jì)劃在100天內(nèi)選擇部分?jǐn)?shù)量的疫苗進(jìn)行生產(chǎn),每個(gè)工位每天生產(chǎn)的時(shí)間不能超過16小時(shí),每種類型疫苗的生產(chǎn)任務(wù)可以適當(dāng)拆分,以最大銷售額為目標(biāo),安排生產(chǎn)計(jì)劃。
我們需要解決YM1-YM10十種疫苗,經(jīng)過四個(gè)工位CJ1-CJ2-CJ3-Cj4順序生產(chǎn),不能改變生產(chǎn)順序,如何使得耗時(shí)最少,效率最高,利潤(rùn)最大,并且在生產(chǎn)時(shí)間不固定的情況下,制定生產(chǎn)順序,使生產(chǎn)更合理化。
對(duì)于問題(1),對(duì)每箱疫苗在所有工位上的生產(chǎn)時(shí)間進(jìn)行統(tǒng)計(jì)分析,為疫苗公司的生產(chǎn)提供參考;這是一個(gè)數(shù)據(jù)分析問題,通過使用Excel和spss等軟件處理附件1中的數(shù)據(jù),分別從均值、方差、最值、概率分布等統(tǒng)計(jì)分析,能夠直觀了解每個(gè)工位生產(chǎn)疫苗的能力水平。我們從三個(gè)方面對(duì)數(shù)據(jù)進(jìn)行加工:首先確定每類疫苗在每個(gè)工位上的均值;再確定四個(gè)工位生產(chǎn)情況的均值、方差、最值的分析;最后給出每個(gè)工位的數(shù)據(jù)變化的概率統(tǒng)計(jì)。
對(duì)于問題(2),制定10種疫苗的加工順序,并計(jì)算生產(chǎn)總時(shí)間。這是一個(gè)線性規(guī)劃中的二次分配問題,根據(jù)題目要求忽略次要的影響因素,讓疫苗按一定順序?yàn)橹饕s束條件,建立相應(yīng)的加工生產(chǎn)計(jì)劃總用時(shí)最短的整數(shù)規(guī)劃模型。
對(duì)于問題(3),此問題可以看成是流水生產(chǎn)過程,重點(diǎn)需要考慮的是生產(chǎn)的均衡性、高效性,使流水線生產(chǎn)率最高,所以建立模型:首先按工序先后順序,合理地把任務(wù)分配給每個(gè)工位;其次每個(gè)工位的生產(chǎn)時(shí)間要盡量接近節(jié)拍;最后,各工位空閑時(shí)間要小,并且使工位之間負(fù)荷均勻,以保證流水線時(shí)間損失率最低。
對(duì)于問題(4),這是一個(gè)線性規(guī)劃問題,需要找到目標(biāo)函數(shù)和約束條件,利用lingo軟件求出最大利潤(rùn)。
針對(duì)附件1中給出了每類疫苗在每個(gè)工位上進(jìn)行了50次模擬生產(chǎn),下面對(duì)每箱疫苗在所有工位上的生產(chǎn)時(shí)間進(jìn)行統(tǒng)計(jì)分析。首先考慮了每類疫苗在每個(gè)工位上的均值,可以看到數(shù)據(jù)變化比較大,沒有規(guī)律可循,因此接下來單獨(dú)從每個(gè)工位的生產(chǎn)能力進(jìn)行分析。
(1)四個(gè)工位的生產(chǎn)情況,如表1所示。
表1 四個(gè)工位生產(chǎn)情況
從表1中可以看到,每個(gè)工位生產(chǎn)水平差距不大,CJ4相對(duì)較弱;從數(shù)據(jù)的穩(wěn)定性看,CJ1較好,標(biāo)準(zhǔn)差最小;但四個(gè)工位生產(chǎn)的最大最小值差距稍大,可能跟疫苗本身有關(guān)。
(2)每個(gè)工位的數(shù)據(jù)變化統(tǒng)計(jì)。
圖1 AM1在四個(gè)工位分布圖
此問題明顯是根據(jù)生產(chǎn)順序的排列組合,求最小生產(chǎn)時(shí)間的問題。一共有10種疫苗共有10!種可能的排列順序。構(gòu)建一個(gè)10×10的0-1矩陣,每行每列僅有一個(gè)元素為1,其余元素為0,共有10!種矩陣。我們假設(shè)最優(yōu)的方案已經(jīng)找到,即第個(gè)生產(chǎn)的疫苗為。需要求解最小的加工時(shí)間,即第一工位開始工作到最后一工位停止工作的時(shí)間最短。轉(zhuǎn)化為最后一個(gè)加工的疫苗開始第四道工序的時(shí)刻與第四道工序耗時(shí)之和即:
又由假設(shè)可知每個(gè)疫苗依次經(jīng)過CJ1-CJ2-CJ3-CJ4,所以對(duì)于第個(gè)加工的疫苗前一個(gè)工序的結(jié)束時(shí)間必須在不晚于下工序完成后才能進(jìn)行
因此,對(duì)這一問題我們構(gòu)建類整數(shù)規(guī)劃模型,如下:
目標(biāo)函數(shù)
將目標(biāo)函數(shù)以及約束條件轉(zhuǎn)換為編程語言用lingo軟件求解結(jié)果。最后借助python軟件利用10×10的矩陣輸入,進(jìn)行大循環(huán),驗(yàn)證結(jié)果的正確性,最終得到加工順利如下:
YM10--YM9--YM8--YM7--YM6--YM5--YM4--YM3--YM2--YM1
為了更加清晰的說明生產(chǎn)流程,將各個(gè)疫苗的開始時(shí)間,結(jié)束時(shí)間繪制時(shí)間表,如表2所示。
表2 每種疫苗進(jìn)入和離開工位時(shí)間
針對(duì)附件2中10種疫苗不同規(guī)模的生產(chǎn)任務(wù),規(guī)定每個(gè)工位每天生產(chǎn)的時(shí)間不能超過16小時(shí),并且每種類型疫苗的生產(chǎn)任務(wù)不可以拆分。因此這是一個(gè)流水線生產(chǎn)任務(wù)。我們這樣建立如下模型:如果第種疫苗在第工位上進(jìn)行,設(shè),其中。
在可靠性為90%的前提下安排生產(chǎn)方案,為使得使用時(shí)間最少,90%確定隨機(jī)數(shù)據(jù)中較小的量,取前45組數(shù)據(jù)的均值,得到每類疫苗在每個(gè)工位上所需要的時(shí)間,如表3所示。
表3 90%較小數(shù)據(jù)均值
由于同類疫苗在每個(gè)工位生產(chǎn)時(shí)間相同,又因?yàn)槊刻烀總€(gè)車間最多生產(chǎn)16小時(shí),根據(jù)這個(gè)約束條件,我們需要找出耗時(shí)最多的工位,以此為標(biāo)準(zhǔn),計(jì)算生產(chǎn)每類疫苗每天最大生產(chǎn)量,以及對(duì)應(yīng)生產(chǎn)天數(shù)如表4所示。
表4 每天生產(chǎn)量及所需天數(shù)
疫苗生產(chǎn)公司計(jì)劃在100天內(nèi)選擇部分?jǐn)?shù)量的疫苗進(jìn)行生產(chǎn),每個(gè)工位每天生產(chǎn)的時(shí)間不能超過16小時(shí),這是一個(gè)線性規(guī)劃問題,需要找到目標(biāo)函數(shù)和約束條件,不妨設(shè)每天只生產(chǎn)一種疫苗。設(shè)生產(chǎn)每種疫苗的天數(shù)為決策變量。即,設(shè)生產(chǎn)第類疫苗天,目標(biāo)函數(shù)為:
約束條件為:
利用lingo軟件計(jì)算結(jié)果,得到生產(chǎn)每類疫苗的天數(shù)如下:
解決疫苗生產(chǎn)問題,做了相對(duì)理想化的假設(shè)。本文選用了線性規(guī)劃和0-1整數(shù)規(guī)劃模型。對(duì)于問題(2)中的模型,當(dāng)LINGO不能輸出所有最優(yōu)解得情況,在不了解其具解路徑時(shí),可以通過改變初始的工件各工序耗時(shí)矩陣,求得其它最優(yōu)解,模型選用簡(jiǎn)單有效。在考慮數(shù)據(jù)關(guān)系中,利用圖表的直觀性,清晰明了描述特征。