【正文】
for j=1:5 N(j)=0。 if floor(B(i,2)/400)==ceil(B(i,2)/400) Bm(i,4)=0。 end elseif floor(A(i,1)/400)==ceil(A(i,1)/400) An(i,4)=floor(A(i,2)/600) if floor(A(i,2)/400)==ceil(A(i,2)/400) Am(i,4)=0。 b(i,1)=floor(S(i,2)/800)。 end %求解利用率 for j=1:6 c(j)=m(j)*x(j,1)*x(j,2)。 b(i,j)==ceil(S(i,2)/x(j,2)) h(j)=h(j)+b(i,j)。n(j,i)39。600,300。4500,3450。所以其模型的準(zhǔn)確度與可實(shí)用性還有待考究與實(shí)際驗(yàn)證。對于圖中右上角的地板磚需要兩次切割,我們假設(shè)能有那么大小剩余地板磚恰好填上。求解可以通過求解矩形區(qū)域的長度上需要的塊數(shù)和寬度上所需的塊數(shù)進(jìn)行計(jì)算。 因此我們可以得到鋪設(shè)地板磚所需的總費(fèi)用 W 為: 39。 從問題所給圖可以看出,戶型結(jié)構(gòu)圖形狀是一個(gè)多邊形,直接計(jì)算其需要切割的地板磚以及完整地板磚的塊數(shù)難度比較大,我們這里將之看成多個(gè)矩形的組合。nA B C D En n n n、 、 、 、 各類地板磚實(shí)際購買數(shù) Xi 第 i個(gè)房間的橫向邊長 Yi 第 i個(gè)房間的縱向邊長 iL 第 i 個(gè)房間需要切割地板磚的長度 Ni 第 i 個(gè)房間所用地板磚 數(shù) ni 第 i個(gè)房間所用地板磚未切割的塊數(shù) mi 第 i個(gè)房間所用地板磚被切割的塊數(shù) ia 第 i個(gè)房間橫向鋪設(shè)未切割的地板磚數(shù) ib 第 i個(gè)房間縱想鋪設(shè)未切割的地板磚數(shù) pi 第 i 個(gè)房間切割地板磚的 破損數(shù) Q 人工總費(fèi)用 U 切割總費(fèi)用 W 鋪設(shè)總費(fèi)用 S 房間總面積 四、問題分析 對于問題一,要實(shí)現(xiàn)地板磚成本最小, 我們要考慮到地板磚的選取以及怎樣鋪設(shè)這兩個(gè)問題。需要鋪設(shè)的房屋地面結(jié)構(gòu)如圖 1所示。 可以得到, 鋪設(shè)地板磚所需的總費(fèi)用 W 為: 39。 問題三, 該問是在 允許使用多種尺寸的地板磚進(jìn)行混合鋪設(shè),實(shí)現(xiàn)地板磚的自動(dòng)鋪設(shè),并計(jì)算 出 鋪設(shè)各種尺寸地板磚的塊數(shù)、利用率和總費(fèi)用。 每個(gè)房間用同一規(guī)格的地板磚來鋪設(shè),我們首先忽略墻寬度的限制。在此鋪設(shè)方案的基礎(chǔ)上,在滿足切割塊數(shù)最小的基礎(chǔ)上,以鋪設(shè)費(fèi)用最小為目標(biāo)函數(shù),建立目標(biāo)規(guī)劃模型,對此模型進(jìn)行求解得到各類地板磚的塊數(shù)、利用率和總費(fèi)用。 鋪設(shè)方案的實(shí)現(xiàn) 計(jì)算得第 i個(gè)房間我們所用地板磚 數(shù)為 Ni則: i i i iN n m p? ? ?; ( 1) 又可得出第 i個(gè)房間所用地板磚未切割的塊數(shù)為 ni則: i i in a*b? ; ( 2) 若第 i個(gè)房間所用地板磚被切割的塊數(shù)為 mi .由于房間縱向與橫向邊長不一定是6 大規(guī)格的整數(shù)倍,則: i i i m a b??或 iima? 或 iimb? 或 im0? ; 又有第 i 個(gè)房間橫向鋪設(shè)未切割的地板磚數(shù)為 ai則; i i ixa X / L? ; ( 3) 得第 i個(gè)房間總想鋪設(shè)未切割的地板磚數(shù)為 bi則; i i iyb Y/L? ; ( 4) 計(jì)算得第 i個(gè)房間所用地板磚的總塊數(shù) Ni; 但是由于地板磚的邊長都是有一定的規(guī)格,矩形房間邊長不一定就是最大規(guī)格地板磚變長的整數(shù)倍,所以需要討論。我們可以將對地板磚鋪設(shè)的塊數(shù)、利用率和總費(fèi)用的求解,歸結(jié)到對地板磚的最低費(fèi)用求解一個(gè)大問題中。 的利用率的計(jì)算 對于計(jì)算各種地板磚鋪設(shè)的利用率問題 ,由上述模型的 建立,通過 matalab編程的實(shí)現(xiàn),得到每種地板鋪設(shè)的利用率表,如表 4: 表 4 各種地板磚利用率表 尺寸 800*800 600*600 400*400 300*300 600*300 300*600 利用率 由表 4可知,使用 300mm*300mm 的鋪設(shè)利用率最高為 ,使用 800mm*800mm的利用率最低為 。 (二) 提出追求目標(biāo),這里的追求目標(biāo)是在滿足切割塊數(shù)最小的條件下實(shí)現(xiàn)鋪設(shè)成本的最低。 在混合地板磚鋪設(shè)的求解中運(yùn)用了窮舉算法,在求解小規(guī)模問題時(shí),算法簡單,可靠性強(qiáng)。300,5400。 b(i,j)==ceil(S(i,2)/x(j,2)) n(j,i)=a(i,j)*b(i,j)+b(i,j)。 w(j,i)=(t(j)*k(j))/q(j)。 v=[v1,v2]。1200,3550。 if floor(A(i,2)/600)==ceil(A(i,2)/600) Am(i,3)=0。 else Bm(i,3)=1。 m(i,1)=S(i,2)800*n(i,1)。 %再為單價(jià)設(shè)置一個(gè)行向量 t=[180,130,72,45,80,80]。 %第一種磚應(yīng)用在第 i個(gè)區(qū)域 B矩形中,需要切割一次的塊數(shù) if (floor(B(i,2)/800)~=ceil(B(i,2)/800)) Bu(i)=1。 %第 1種磚應(yīng)用在第 i個(gè)區(qū)域 A矩形中,需要切割兩次的塊數(shù) end end if floor(B(i,1)/700)==ceil(B(i,1)/700) %是否可以采用 300*300、 600*300和 400*400組合鋪設(shè) Bn(i,3)=floor(B(i,2)/600) if floor(B(i,2)/600)==ceil(B(i,2)/600) Bm(i,3)=0。 19 B(i,2 )=a(i,1)*800+A(i,1)。4500,3450。 end end end for j=1:6 f(j) %第 j種磚需要切割兩刀的塊數(shù) end %計(jì)算需要切割兩刀的板磚的費(fèi)用 for j=1:6 for i=1:13 18 v1=S(i,1)a(i,j)*x(j,1)。 end end 17 for j=1:6 k(j)。 b(i,j)~=ceil(S(i,2)/x(j,2)) n(j,i)=a(i,j)*b(i,j)+a(i,j)。1200,3550。 九 模型評價(jià) 模型的優(yōu)點(diǎn) 結(jié)合數(shù)學(xué)期望的概念對地板磚切割單后單價(jià)坐了合適的處理,使得求解方便準(zhǔn)確,與實(shí)際的結(jié)合性強(qiáng)。另外, ( ) 0 ( 1, , )ig x i p?? 稱為等式約束,( ) 0( 1, , )jh x j q??稱為不等式的約束。定義房間總面積為 13()1 iiSS??? 。由于本問要求用一種地板磚鋪設(shè),問題就轉(zhuǎn)化成將五種地板磚分別在 13 塊矩形區(qū)域內(nèi)的求解問題,通過對求解的結(jié)果比較選取成本最低的模型。 所以可以得出,我們采用的瓷磚規(guī)格越大,越省錢。 對于問題三, 該問是在 允許使用多種尺寸的地板磚進(jìn)行混合鋪設(shè),實(shí)現(xiàn)地板磚的自動(dòng)鋪設(shè),并計(jì)算 出 鋪設(shè)各種尺寸地板磚的塊數(shù)、利用率和總費(fèi)用。 ) 3 二、模型假設(shè) 。我們可以將鋪設(shè)塊數(shù)、費(fèi)用及利用率的問題的計(jì)算歸結(jié)到地板磚鋪設(shè)最低費(fèi)用的問題中。 39。 設(shè)成本的因素,建立計(jì)算地板磚鋪設(shè)總成本的模型。 然后考慮性價(jià)比由高到低順序另和切下的廢料的整塊鋪設(shè),優(yōu)先使用廢料進(jìn)行鋪設(shè) , 然后進(jìn)行總費(fèi)用,總塊數(shù) 以及 利用率 的計(jì)算, 得出最優(yōu)結(jié)果。 問題一的模型建立 對戶型結(jié)構(gòu)圖的處理 通過對問題一的分析,我們將圖一房間的區(qū)域進(jìn)行矩形切割,切割后的圖形如圖一。 39。即:( , ) ()()()ji lia floo r uj?、( , ) ()()()ji kib floor mj?(其中 floor 表示取整的含義)。如此我們則可以做到最優(yōu)化設(shè)置。所以,對于不同的戶型來說,我們可以通過多次拆分,在瓷磚規(guī)格允許的范圍內(nèi),把不同的戶型可以拆分為矩形。2100,900。%地板磚與矩形長,16 寬對應(yīng)設(shè)置 for j=1:6 for i=1:13 a(i,j)=floor(S(i,1)/x(j,1))。 end end for j=1:6 m(j)。 %第 j種磚需要切割整塊磚的塊數(shù) end %下面計(jì)算需要切割整塊磚費(fèi)用 for j=1:6 i=2。4500,3450。%第 i個(gè)矩形需要第 1種磚不被切割的塊數(shù) %將鋪設(shè) 800*800的地板磚后的圖形分為兩個(gè)矩 形 A(i,1)=S(i,1)800*a(i,1)。 end elseif floor(A(i,1)/300)==ceil(A(i,1)/300) An(i,3)=floor(A(i,2)/600) if floor(A(i,2)/600)==ceil(A(i,2)/600) Am(i,3)=0。 end