กลับไปหน้าบทความ

อ่าน 25 นาที

ปัญหาการบรรจุแบบแถบ

CS1: ค่าปริมาณยาว/การวิเคราะห์ทางคณิตศาสตร์/ปัญหาการบรรจุ/ปัญหา NP-สมบูรณ์อย่างมาก

ปัญหาการบรรจุแถบเป็นปัญหาการลดรูปทรงเรขาคณิต 2 มิติ กำหนดให้ชุดของสี่เหลี่ยมผืนผ้าที่เรียงตัวตามแกนและแถบที่มีความกว้างจำกัดและความสูงอนันต์...

ปัญหาการบรรจุแบบแถบ

ปัญหาการบรรจุแถบเป็นปัญหาการลดรูปทรงเรขาคณิต 2 มิติ กำหนดให้ชุดของสี่เหลี่ยมผืนผ้าที่เรียงตัวตามแกนและแถบที่มีความกว้างจำกัดและความสูงอนันต์ กำหนดการบรรจุสี่เหลี่ยมผืนผ้าลงในแถบโดยไม่ทับซ้อนกัน โดยลดความสูงให้น้อยที่สุด ปัญหานี้เป็นปัญหาการตัดและการบรรจุ และจัดอยู่ในประเภทปัญหามิติเปิดตาม Wäscher et al. [ 1 ]

ปัญหานี้เกิดขึ้นในด้านการจัดตารางเวลา ซึ่งเป็นการจำลองงานที่ต้องการใช้หน่วยความจำส่วนต่อเนื่องกันในช่วงเวลาที่กำหนด อีกตัวอย่างหนึ่งคือในด้านการผลิตทางอุตสาหกรรม ที่ต้องตัดชิ้นส่วนสี่เหลี่ยมผืนผ้าออกจากแผ่นวัสดุ (เช่น ผ้าหรือกระดาษ) ที่มีความกว้างคงที่แต่ความยาวไม่จำกัด และต้องการลดปริมาณวัสดุที่สูญเสียให้น้อยที่สุด

ปัญหานี้ได้รับการศึกษาครั้งแรกในปี พ.ศ. 2523 [ 2 ]เป็นปัญหา NP-hard อย่างมาก และไม่มีอัลกอริทึมการประมาณค่าแบบพหุนามที่มีอัตราส่วนน้อยกว่า 3/2{\displaystyle 3/2}เว้นเสียแต่ว่าพี=เอ็นพี{\displaystyle P=NP}อย่างไรก็ตาม อัตราส่วนการประมาณที่ดีที่สุดที่ทำได้จนถึงปัจจุบัน (โดยอัลกอริทึมเวลาพหุนามโดย Harren et al. [ 3 ] ) คือ(5/3+ε){\displaystyle (5/3+\varepsilon )}ซึ่งก่อให้เกิดคำถามเปิดว่ามีอัลกอริทึมใดที่มีอัตราส่วนการประมาณค่าหรือไม่3/2{\displaystyle 3/2}.

คำนิยาม

ตัวอย่างเช่นฉัน=(ฉัน,){\displaystyle I=({\คณิตศาสตร์ {I}},W)}ปัญหาการบรรจุแถบประกอบด้วยแถบที่มีความกว้าง=1{\displaystyle W=1}และความสูงที่ไม่มีที่สิ้นสุด รวมทั้งเซตด้วยฉัน{\displaystyle {\คณิตศาสตร์ {I}}}ประกอบด้วยสิ่งของรูปสี่เหลี่ยมผืนผ้า แต่ละชิ้นฉันฉัน{\displaystyle i\in {\mathcal {I}}}มีความกว้างฉัน(0,1]คิว{\displaystyle w_{i}\in (0,1]\cap \mathbb {Q} }และความสูง ชม.ฉัน(0,1]คิว{\displaystyle h_{i}\in (0,1]\cap \mathbb {Q} }การจัดเรียงสิ่งของเป็นแผนที่ที่แสดงตำแหน่งมุมล่างซ้ายของสิ่งของแต่ละชิ้นฉันฉัน{\displaystyle i\in {\mathcal {I}}}ไปยังตำแหน่ง (xฉัน,yฉัน)([0,1ฉัน]คิว)×คิว0{\displaystyle (x_{i},y_{i})\in ([0,1-w_{i}]\cap \mathbb {Q} )\times \mathbb {Q} _{\geq 0}}ภายในแถบ จุดภายในของสิ่งของที่วางไว้ฉันฉัน{\displaystyle i\in {\mathcal {I}}}เป็นคะแนนจากชุดฉันnn(ฉัน)={(x,y)คิว×คิว|xฉัน<x<xฉัน+ฉัน,yฉัน<y<yฉัน+ชม.ฉัน}{\displaystyle \mathrm {inn} (i)=\{(x,y)\in \mathbb {Q} \times \mathbb {Q} |x_{i}<x<x_{i}+w_{i},y_{i}<y<y_{i}+h_{i}\}}สิ่งของสองชิ้น (ที่วางแล้ว) จะทับซ้อนกันหากมีจุดร่วมภายใน ความสูงของการบรรจุจะกำหนดโดยสูงสุด{yฉัน+ชม.ฉัน|ฉันฉัน}{\displaystyle \max\{y_{i}+h_{i}|i\in {\mathcal {I}}\}}เป้าหมายคือการหาวิธีจัดเรียงสิ่งของภายในแถบให้ไม่ทับซ้อนกัน ในขณะเดียวกันก็ลดความสูงของการจัดเรียงให้น้อยที่สุด

นิยามนี้ใช้สำหรับอัลกอริธึมเวลาพหุนามทั้งหมด สำหรับอัลกอริธึมเวลาเสมือนพหุนามและ อัลกอริธึม FPTนิยามจะเปลี่ยนแปลงเล็กน้อยเพื่อความง่ายในการเขียน ในกรณีนี้ ขนาดที่ปรากฏทั้งหมดเป็นจำนวนเต็ม โดยเฉพาะอย่างยิ่งความกว้างของแถบจะกำหนดโดยจำนวนเต็มใดๆที่มากกว่า 1 โปรดทราบว่านิยามทั้งสองนี้เทียบเท่ากัน

ตัวแปร

มีการศึกษารูปแบบต่างๆ ของปัญหาการบรรจุแถบหลายรูปแบบ รูปแบบเหล่านี้เกี่ยวข้องกับรูปทรงเรขาคณิตของวัตถุ มิติของปัญหา ความสามารถในการหมุนของสิ่งของ และโครงสร้างของการบรรจุ[ 4 ]

เรขาคณิต:ในรูปแบบมาตรฐานของปัญหานี้ ชุดของรายการที่กำหนดประกอบด้วยสี่เหลี่ยมผืนผ้า ในกรณีย่อยที่มักพิจารณา รายการทั้งหมดจะต้องเป็นสี่เหลี่ยมจัตุรัส รูปแบบนี้ได้รับการพิจารณาแล้วในเอกสารฉบับแรกเกี่ยวกับการบรรจุแถบ[ 2 ] นอกจากนี้ ยังมีการศึกษารูปแบบที่รูปร่างเป็นวงกลมหรือแม้แต่รูปร่างไม่สม่ำเสมอ ในกรณีหลังนี้เรียกว่า การบรรจุแถบที่ ไม่สม่ำเสมอ

มิติ: หากไม่ได้ระบุไว้เป็นอย่างอื่น ปัญหาการจัดเรียงแถบเป็นปัญหา 2 มิติ อย่างไรก็ตาม ปัญหานี้ได้รับการศึกษาในสามมิติหรือมากกว่านั้นด้วย ในกรณีนี้ วัตถุจะเป็นรูปสี่เหลี่ยมผืนผ้าหลายมิติและแถบนั้นจะเปิดปลายในมิติหนึ่งและถูกจำกัดในมิติที่เหลือ

การหมุน:ในปัญหาการบรรจุแบบแถบคลาสสิกนั้น ไม่อนุญาตให้หมุนสิ่งของ อย่างไรก็ตาม มีการศึกษาถึงรูปแบบต่างๆ ที่อนุญาตให้หมุนได้ 90 องศา หรือแม้แต่ในมุมใดๆ ก็ตาม

โครงสร้าง: ในปัญหาการบรรจุแบบแถบโดยทั่วไป โครงสร้างของการบรรจุไม่สำคัญ อย่างไรก็ตาม มีการใช้งานบางอย่างที่มีข้อกำหนดที่ชัดเจนเกี่ยวกับโครงสร้างของการบรรจุ หนึ่งในข้อกำหนดเหล่านั้นคือความสามารถในการตัดสิ่งของออกจากแถบโดยการตัดขอบชนขอบในแนวนอนหรือแนวตั้ง การบรรจุที่อนุญาตให้มีการตัดแบบนี้เรียกว่าการบรรจุแบบกิโยติ

ความแข็ง

ปัญหาการบรรจุแบบแถบ (Strip Packing Problem) ประกอบด้วยปัญหาการบรรจุแบบกล่อง (Bin Packing Problem)เป็นกรณีพิเศษเมื่อสิ่งของทั้งหมดมีความสูงเท่ากันคือ 1 ด้วยเหตุนี้ ปัญหานี้จึงเป็นปัญหา NP-hard อย่างมาก และไม่มีอัลกอริทึมประมาณค่า แบบเวลาพหุนามใด ที่มีอัตราส่วนการประมาณค่าน้อยกว่า3/2{\displaystyle 3/2}เว้นเสียแต่ว่าพี=เอ็นพี{\displaystyle P=NP}นอกจากนี้ เว้นแต่ว่าพี=เอ็นพี{\displaystyle P=NP}ไม่มี อัลกอริทึม เวลาเสมือนพหุนามใดที่มีอัตราส่วนการประมาณค่าที่น้อยกว่า5/4{\displaystyle 5/4}[ 5 ]ซึ่งสามารถพิสูจน์ได้โดยการลดจากปัญหา 3-partition ที่สมบูรณ์แบบ NP อย่างมาก โปรดทราบว่าขอบเขตล่างทั้งสอง3/2{\displaystyle 3/2}และ5/4{\displaystyle 5/4}นอกจากนี้ยังใช้ได้กับกรณีที่อนุญาตให้หมุนรายการได้ 90 องศา ยิ่งไปกว่านั้น Ashok et al. [ 6 ] ได้พิสูจน์แล้ว ว่าการบรรจุแบบแถบนั้นยากแบบ W[1]เมื่อกำหนดพารามิเตอร์ด้วยความสูงของการบรรจุที่เหมาะสมที่สุด

คุณสมบัติของคำตอบที่เหมาะสมที่สุด

มีขอบเขตล่างที่ไม่สำคัญสองประการสำหรับคำตอบที่เหมาะสมที่สุด ประการแรกคือความสูงของสิ่งของที่ใหญ่ที่สุด กำหนดให้ชม.สูงสุด(ฉัน):=สูงสุด{ชม.(ฉัน)|ฉันฉัน}{\displaystyle h_{\max }(I):=\max\{h(i)|i\in {\mathcal {I}}\}}ดังนั้นจึงถือได้ว่า

โอพีที(ฉัน)ชม.สูงสุด(ฉัน){\displaystyle OPT(I)\geq h_{\max }(I)}.

ขอบเขตล่างอีกประการหนึ่งกำหนดโดยพื้นที่รวมของสิ่งของ กำหนดเออาร์อีเอ(ฉัน):=ฉันฉันชม.(ฉัน)(ฉัน){\displaystyle \mathrm {AREA} ({\mathcal {I}}):=\sum _{i\in {\mathcal {I}}}h(i)w(i)}ดังนั้นจึงถือว่า

โอพีที(ฉัน)เออาร์อีเอ(ฉัน)/{\displaystyle OPT(I)\geq \mathrm {AREA} ({\mathcal {I}})/W}.

ขอบเขตล่างสองค่าต่อไปนี้คำนึงถึงข้อเท็จจริงที่ว่าสิ่งของบางอย่างไม่สามารถวางติดกันในแถบได้ และสามารถคำนวณได้ในโอ(nบันทึก(n)){\displaystyle {\mathcal {O}}(n\log(n))}[ 7 ] สำหรับขอบล่างแรก ให้ถือว่ารายการต่างๆ เรียงลำดับตามความสูงที่ไม่เพิ่มขึ้นกำหนดเค:=สูงสุด{ฉัน:เจ=1เค(เจ)}{\displaystyle k:=\max\{i:\sum _{j=1}^{k}w(j)\leq W\}}สำหรับแต่ละ>เค{\displaystyle l>k}กำหนดฉัน()เค{\displaystyle i(l)\leq k}ดัชนีแรกเช่นนั้น()+เจ=1ฉัน()(เจ)>{\displaystyle w(l)+\sum _{j=1}^{i(l)}w(j)>W}ดังนั้นจึงถือได้ว่า

โอพีที(ฉัน)สูงสุด{ชม.()+ชม.(ฉัน())|>เค()+เจ=1ฉัน()(เจ)>}{\displaystyle OPT(I)\geq \max\{h(l)+h(i(l))|l>k\wedge w(l)+\sum _{j=1}^{i(l)}w(j)>W\}}[ 7 ]

สำหรับขอบล่างที่สอง ให้แบ่งเซตของรายการออกเป็นสามเซต ให้α[1,/2]เอ็น{\displaystyle \alpha \in [1,W/2]\cap \mathbb {N} }และกำหนดฉัน1(α):={ฉันฉัน|(ฉัน)>α}{\displaystyle {\mathcal {I}}_{1}(\alpha ):=\{i\in {\mathcal {I}}|w(i)>W-\alpha \}}, ฉัน2(α):={ฉันฉัน|α(ฉัน)>/2}{\displaystyle {\mathcal {I}}_{2}(\alpha ):=\{i\in {\mathcal {I}}|W-\alpha \geq w(i)>W/2\}}, และฉัน3(α):={ฉันฉัน|/2(ฉัน)>α}{\displaystyle {\mathcal {I}}_{3}(\alpha ):=\{i\in {\mathcal {I}}|W/2\geq w(i)>\alpha \}}ดังนั้นจึงถือได้ว่า

โอพีที(ฉัน)สูงสุดα[1,/2]เอ็น{ฉันฉัน1(α)ฉัน2(α)ชม.(ฉัน)+(ฉันฉัน3(α)ชม.(ฉัน)(ฉัน)ฉันฉัน2(α)((ฉัน))ชม.(ฉัน))+}{\displaystyle OPT(I)\geq \max _{\alpha \in [1,W/2]\cap \mathbb {N} }{\Bigg \{}\sum _{i\in {\mathcal {I}}_{1}(\alpha )\cup {\mathcal {I}}_{2}(\alpha )}h(i)+\left({\frac {\sum _{i\in {\mathcal {I}}_{3}(\alpha )h(i)w(i)-\sum _{i\in {\mathcal {I}}_{2}(\alpha )}(Ww(i))h(i)}}{W}}\right)_{+}{\Bigg \}}}[ 7 ]ที่ (x)+:=สูงสุด{x,0}{\displaystyle (x)_{+}:=\max\{x,0\}}สำหรับแต่ละคนxอาร์{\displaystyle x\in \mathbb {R} }.

ในทางกลับกัน Steinberg [ 8 ]ได้แสดงให้เห็นว่าความสูงของโซลูชันที่เหมาะสมที่สุดสามารถถูกจำกัดไว้ด้านบนโดย

โอพีที(ฉัน)2สูงสุด{ชม.สูงสุด(ฉัน),เออาร์อีเอ(ฉัน)/}.{\displaystyle OPT(I)\leq 2\max\{h_{\max }(I),\mathrm {AREA} ({\mathcal {I}})/W\}.}

กล่าวโดยละเอียดกว่านั้น เขาได้แสดงให้เห็นว่า เมื่อกำหนดสูงสุด(ฉัน){\displaystyle W\geq w_{\max }({\mathcal {I}})}และชมชม.สูงสุด(ฉัน){\displaystyle H\geq h_{\max }(I)}จากนั้นจึงนำสิ่งของเหล่านั้นมาฉัน{\displaystyle {\คณิตศาสตร์ {I}}}สามารถวางไว้ภายในกล่องที่มีความกว้างได้{\displaystyle W}และความสูงชม{\displaystyle H}ถ้า

ชม2เออาร์อีเอ(ฉัน)+(2สูงสุด(ฉัน))+(2ชม.สูงสุด(ฉัน)ชม)+{\displaystyle WH\geq 2\mathrm {AREA} ({\mathcal {I}})+(2w_{\max }({\mathcal {I}})-W)_{+}(2h_{\max }(I)-H)_{+}}, ที่ไหน (x)+:=สูงสุด{x,0}{\displaystyle (x)_{+}:=\max\{x,0\}}.

อัลกอริทึมการประมาณค่าในเวลาพหุนาม

เนื่องจากปัญหานี้เป็นปัญหา NP-hard จึงมีการศึกษาอัลกอริทึมประมาณค่า สำหรับปัญหานี้ วิธีการเชิงฮิวริสติก ส่วนใหญ่ มีอัตราส่วนการประมาณค่าระหว่าง3{\displaystyle 3}และ2{\displaystyle 2}การค้นหาอัลกอริทึมที่มีอัตราส่วนต่ำกว่า2{\displaystyle 2}ดูเหมือนจะซับซ้อน และความซับซ้อนของอัลกอริธึมที่เกี่ยวข้องจะเพิ่มขึ้นตามเวลาการทำงานและคำอธิบาย อัตราส่วนการประมาณค่าที่น้อยที่สุดที่ทำได้จนถึงขณะนี้คือ(5/3+ε){\displaystyle (5/3+\varepsilon )}.

ภาพรวมของการประมาณค่าด้วยเวลาพหุนาม
ปีชื่อการรับประกันโดยประมาณแหล่งที่มา
1980จัดชิดซ้ายจากล่างขึ้นบน (BL)3โอพีที(ฉัน){\displaystyle 3OPT(I)}เบเกอร์และคณะ[ 2 ]
1980Next-Fit Decreasing-Height (NFDH)2โอพีที(ฉัน)+ชม.สูงสุด(ฉัน)3โอพีที(ฉัน){\displaystyle 2OPT(I)+h_{\max }(I)\leq 3OPT(I)}คอฟฟ์แมนและคณะ[ 9 ]
การปรับความสูงแบบ First-Fit Decreasing-Height (FFDH)1.7โอพีที(ฉัน)+ชม.สูงสุด(ฉัน)2.7โอพีที(ฉัน){\displaystyle 1.7OPT(I)+h_{\max }(I)\leq 2.7OPT(I)}
สปลิตฟิต (SF)1.5โอพีที(ฉัน)+2ชม.สูงสุด(ฉัน){\displaystyle 1.5OPT(I)+2h_{\max }(I)}
19802โอพีที(ฉัน)+ชม.สูงสุด(ฉัน)/22.5โอพีที(ฉัน){\displaystyle 2OPT(I)+h_{\max }(I)/2\leq 2.5OPT(I)}สลีเตอร์[ 10 ]
1981อัลกอริทึมการแบ่ง (SP)3โอพีที(ฉัน){\displaystyle 3OPT(I)}โกลัน[ 11 ]
อัลกอริทึมแบบผสม(4/3)โอพีที(ฉัน)+7118ชม.สูงสุด(ฉัน){\displaystyle (4/3)OPT(I)+7{\frac {1}{18}}h_{\max }(I)}
1981ขึ้น-ลง (UD)(5/4)โอพีที(ฉัน)+678ชม.สูงสุด(ฉัน){\displaystyle (5/4)OPT(I)+6{\frac {7}{8}}h_{\max }(I)}เบเกอร์และคณะ[ 12 ]
พ.ศ. 2537การติดตั้งแบบกลับด้าน2โอพีที(ฉัน){\displaystyle 2OPT(I)}Schiermeyer [ 13 ]
พ.ศ. 25402โอพีที(ฉัน){\displaystyle 2OPT(I)}สไตน์เบิร์ก[ 8 ]
2000(1+ε)โอพีที(ฉัน)+โอ(1/ε2)ชม.สูงสุด(ฉัน){\displaystyle (1+\varepsilon )OPT(I)+{\mathcal {O}}(1/\varepsilon ^{2})h_{\max }(I)}เคนยอน, เรมิลา[ 14 ]
20091.9396โอพีที(ฉัน){\displaystyle 1.9396OPT(I)}แฮร์เรน, แวน สตี[ 15 ]
2009(1+ε)โอพีที(ฉัน)+ชม.สูงสุด(ฉัน){\displaystyle (1+\varepsilon )OPT(I)+h_{\max }(I)}แจนเซน, โซลิส-โอบา[ 16 ]
2011(1+ε)โอพีที(ฉัน)+โอ(บันทึก(1/ε)/ε)ชม.สูงสุด(ฉัน){\displaystyle (1+\varepsilon )OPT(I)+{\mathcal {O}}(\log(1/\varepsilon )/\varepsilon )h_{\max }(I)}Bougeret et al. [ 17 ]
2012(1+ε)โอพีที(ฉัน)+โอ(บันทึก(1/ε)/ε)ชม.สูงสุด(ฉัน){\displaystyle (1+\varepsilon )OPT(I)+{\mathcal {O}}(\log(1/\varepsilon )/\varepsilon )h_{\max }(I)}สวิริเดนโก[ 18 ]
2014(5/3+ε)โอพีที(ฉัน){\displaystyle (5/3+\varepsilon )OPT(I)}Harren et al. [ 3 ]

จัดชิดซ้ายจากล่างขึ้นบน (BL)

ตัวอย่างของโซลูชันที่สร้างขึ้นโดยอัลกอริทึม Bottom-Up Left-Justified

อัลกอริทึมนี้ได้รับการอธิบายครั้งแรกโดย Baker et al. [ 2 ]โดยทำงานดังนี้:

อนุญาตแอล{\displaystyle L}เป็นลำดับของสิ่งของรูปสี่เหลี่ยมผืนผ้า อัลกอริทึมจะวนซ้ำลำดับนั้นตามลำดับที่กำหนด สำหรับสิ่งของแต่ละชิ้นที่พิจารณาแอล{\displaystyle r\in L}โดยจะค้นหาตำแหน่งล่างสุดที่จะวาง แล้วเลื่อนไปทางซ้ายให้มากที่สุดเท่าที่จะเป็นไปได้ ดังนั้นจึงวางตำแหน่งนั้น{\displaystyle r}ที่พิกัดล่างสุดซ้ายสุดที่เป็นไปได้(x,y){\displaystyle (x,y)}ในแถบนั้น

อัลกอริทึมนี้มีคุณสมบัติดังต่อไปนี้:

  • อัตราส่วนการประมาณค่าของอัลกอริทึมนี้ไม่สามารถจำกัดด้วยค่าคงที่ได้ กล่าวโดยละเอียดกว่านั้น พวกเขาแสดงให้เห็นว่าสำหรับแต่ละเอ็ม>0{\displaystyle M>0}มีรายการอยู่แอล{\displaystyle L} ของสิ่งของรูปสี่เหลี่ยมผืนผ้าที่เรียงลำดับตามความกว้างจากน้อยไปมาก ดังนี้บีแอล(แอล)/โอพีที(แอล)>เอ็ม{\displaystyle BL(L)/OPT(L)>M}, ที่ไหนบีแอล(แอล){\displaystyle BL(L)}คือความสูงของการบรรจุที่สร้างขึ้นโดยอัลกอริทึม BL และโอพีที(แอล){\displaystyle OPT(L)}คือความสูงของวิธีแก้ปัญหาที่เหมาะสมที่สุดสำหรับแอล{\displaystyle L}[ 2 ]
  • หากเรียงลำดับสินค้าตามความกว้างที่ลดลงแล้วบีแอล(แอล)/โอพีที(แอล)3{\displaystyle BL(L)/OPT(L)\leq 3}[ 2 ]
  • ถ้าสิ่งของทั้งหมดเป็นรูปสี่เหลี่ยมจัตุรัสและเรียงลำดับตามความกว้างที่ลดลงแล้วบีแอล(แอล)/โอพีที(แอล)2{\displaystyle BL(L)/OPT(L)\leq 2}[ 2 ]
  • สำหรับใดๆδ>0{\displaystyle \delta >0}มีรายการอยู่แอล{\displaystyle L}ของสี่เหลี่ยมผืนผ้าที่เรียงลำดับตามความกว้างที่ลดลง โดยที่บีแอล(แอล)/โอพีที(แอล)>3δ{\displaystyle BL(L)/OPT(L)>3-\delta }[ 2 ]
  • สำหรับใดๆδ>0{\displaystyle \delta >0}มีรายการอยู่แอล{\displaystyle L}ของสี่เหลี่ยมจัตุรัสที่เรียงลำดับตามความกว้างที่ลดลง โดยที่บีแอล(แอล)/โอพีที(แอล)>2δ{\displaystyle BL(L)/OPT(L)>2-\delta }[ 2 ]
  • สำหรับแต่ละรายการε(0,1]{\displaystyle \varepsilon \in (0,1]}มีกรณีหนึ่งที่ประกอบด้วยเฉพาะรูปสี่เหลี่ยมจัตุรัส โดยที่ลำดับของรูปสี่เหลี่ยมจัตุรัสแต่ละแบบแอล{\displaystyle L}มีอัตราส่วนของบีแอล(แอล)/โอพีที(แอล)>1211+ε{\displaystyle BL(L)/OPT(L)>{\frac {12}{11+\varepsilon }}}กล่าวคือ มีบางกรณีที่ BL ไม่พบค่าที่เหมาะสมที่สุด แม้ว่าจะวนซ้ำลำดับที่เป็นไปได้ทั้งหมดของรายการก็ตาม[ 2 ]ในปี 2024 ขอบเขตล่างนี้ได้รับการปรับปรุงโดย Hougardy และ Zondervan เป็นบีแอล(แอล)/โอพีที(แอล)>43+ε{\displaystyle BL(L)/OPT(L)>{\frac {4}{3+\varepsilon }}}[ 19 ]
  • ในปี 2025 ฮูการ์ดีและซอนเดอร์แวนได้สร้างลำดับของสี่เหลี่ยมผืนผ้า (เรียกว่าเอฟคิว{\displaystyle {\mathcal {FQW}}}(การเรียงลำดับ) โดยที่บีแอล(แอล)/โอพีที(แอล)136{\displaystyle BL(L)/OPT(L)\leq {\frac {13}{6}}}[ 20 ]

Next-fit decreasing-height (NFDH)

ตัวอย่างการประยุกต์ใช้ NFDH และ FFDH กับกรณีเดียวกัน

อัลกอริทึมนี้ได้รับการอธิบายครั้งแรกโดย Coffman et al. [ 9 ]ในปี 1980 และทำงานดังนี้:

อนุญาตฉัน{\displaystyle {\mathcal {I}}}กำหนดให้เป็นเซตของสิ่งของรูปสี่เหลี่ยมผืนผ้า ก่อนอื่น อัลกอริทึมจะเรียงลำดับสิ่งของตามลำดับความสูงที่ไม่เพิ่มขึ้น จากนั้น เริ่มต้นที่ตำแหน่ง(0,0){\displaystyle (0,0)}อัลกอริทึมจะวางสิ่งของต่างๆ ติดกันในแถบจนกว่าสิ่งของชิ้นถัดไปจะทับซ้อนกับขอบด้านขวาของแถบ เมื่อถึงจุดนี้ อัลกอริทึมจะกำหนดระดับใหม่ที่ด้านบนของสิ่งของที่สูงที่สุดในระดับปัจจุบัน และวางสิ่งของต่างๆ ติดกันในระดับใหม่นี้

อัลกอริทึมนี้มีคุณสมบัติดังต่อไปนี้:

  • ระยะเวลาการทำงานสามารถจำกัดได้โดยโอ(|ฉัน|บันทึก(|ฉัน|)){\displaystyle {\mathcal {O}}(|{\mathcal {I}}|\log(|{\mathcal {I}}|))}และหากสินค้าได้รับการจัดเรียงไว้แล้ว แม้กระทั่งโดยโอ(|ฉัน|){\displaystyle {\mathcal {O}}(|{\mathcal {I}}|)}.
  • สำหรับสินค้าทุกชุดฉัน{\displaystyle {\mathcal {I}}}ซึ่งจะทำให้เกิดการบรรจุที่มีความสูงเอ็นเอฟดีชม(ฉัน)2โอพีที(ฉัน)+ชม.สูงสุด3โอพีที(ฉัน){\displaystyle NFDH({\mathcal {I}})\leq 2OPT({\mathcal {I}})+h_{\max }\leq 3OPT({\mathcal {I}})}, ที่ไหนชม.สูงสุด{\displaystyle h_{\max }}ความสูงสูงสุดของสิ่งของในฉัน{\displaystyle {\mathcal {I}}}[ 9 ]
  • สำหรับทุกๆε>0{\displaystyle \varepsilon >0}มีเซตของสี่เหลี่ยมผืนผ้าอยู่ฉัน{\displaystyle {\mathcal {I}}}โดยที่เอ็นเอฟดีชม(ฉัน|)>(2ε)โอพีที(ฉัน).{\displaystyle NFDH({\mathcal {I}}|)>(2-\varepsilon )OPT({\mathcal {I}}).}[ 9 ]
  • บรรจุภัณฑ์ที่ได้จะเป็นแบบตัดด้วยเครื่องตัดแบบกิโยติน ซึ่งหมายความว่าสามารถแยกชิ้นส่วนได้โดยการตัดขอบชนขอบในแนวนอนหรือแนวตั้งตามลำดับ

การปรับความสูงแบบลดหลั่นตามความเหมาะสมครั้งแรก (FFDH)

อัลกอริทึมนี้ ซึ่งอธิบายครั้งแรกโดย Coffman et al. [ 9 ]ในปี 1980 ทำงานคล้ายกับอัลกอริทึม NFDH อย่างไรก็ตาม เมื่อวางรายการถัดไป อัลกอริทึมจะสแกนระดับจากล่างขึ้นบนและวางรายการในระดับแรกที่พอดี ระดับใหม่จะถูกเปิดก็ต่อเมื่อรายการนั้นไม่พอดีกับระดับก่อนหน้าใดๆ เท่านั้น

อัลกอริทึมนี้มีคุณสมบัติดังต่อไปนี้:

  • ระยะเวลาการทำงานสามารถจำกัดได้โดยโอ(|ฉัน|2){\displaystyle {\mathcal {O}}(|{\mathcal {I}}|^{2})}เนื่องจากมีอย่างมากที่สุด|ฉัน|{\displaystyle |{\mathcal {I}}|}ระดับต่างๆ
  • สำหรับสินค้าทุกชุดฉัน{\displaystyle {\mathcal {I}}}มันสร้างการบรรจุที่มีความสูงเอฟเอฟดีชม(ฉัน)1.7โอพีที(ฉัน)+ชม.สูงสุด2.7โอพีที(ฉัน){\displaystyle FFDH({\mathcal {I}})\leq 1.7OPT({\mathcal {I}})+h_{\max }\leq 2.7OPT({\mathcal {I}})}, ที่ไหนชม.สูงสุด{\displaystyle h_{\max }}ความสูงสูงสุดของสิ่งของในฉัน{\displaystyle {\mathcal {I}}}[ 9 ]
  • อนุญาต2{\displaystyle m\geq 2}สำหรับชุดสินค้าใดๆ ก็ตามฉัน{\displaystyle {\mathcal {I}}}และแถบที่มีความกว้าง{\displaystyle W}โดยที่(ฉัน)/{\displaystyle w(i)\leq W/m}สำหรับแต่ละคนฉันฉัน{\displaystyle i\in {\mathcal {I}}}โดยถือว่าเอฟเอฟดีชม(ฉัน)(1+1/)โอพีที(ฉัน)+ชม.สูงสุด{\displaystyle FFDH({\mathcal {I}})\leq \left(1+1/m\right)OPT({\mathcal {I}})+h_{\max }}นอกจากนี้ สำหรับแต่ละε>0{\displaystyle \varepsilon >0}มีชุดสิ่งของดังกล่าวอยู่จริงฉัน{\displaystyle {\mathcal {I}}} กับ เอฟเอฟดีชม(ฉัน)>(1+1/ε)โอพีที(ฉัน){\displaystyle FFDH({\mathcal {I}})>\left(1+1/m-\varepsilon \right)OPT({\mathcal {I}})}[ 9 ]
  • หากสิ่งของทั้งหมดในฉัน{\displaystyle {\mathcal {I}}}เป็นรูปสี่เหลี่ยมจัตุรัส จึงถือว่าเอฟเอฟดีชม(ฉัน)(3/2)โอพีที(ฉัน)+ชม.สูงสุด{\displaystyle FFDH({\mathcal {I}})\leq (3/2)OPT({\mathcal {I}})+h_{\max }}นอกจากนี้ สำหรับแต่ละε>0{\displaystyle \varepsilon >0}มีเซตของสี่เหลี่ยมจัตุรัสอยู่ฉัน{\displaystyle {\mathcal {I}}} โดยที่ เอฟเอฟดีชม(ฉัน)>(3/2ε)โอพีที(ฉัน){\displaystyle FFDH({\mathcal {I}})>\left(3/2-\varepsilon \right)OPT({\mathcal {I}})}[ 9 ]
  • บรรจุภัณฑ์ที่ได้จะเป็นแบบตัดด้วยเครื่องตัดแบบกิโยติน ซึ่งหมายความว่าสามารถแยกชิ้นส่วนได้โดยการตัดขอบชนขอบในแนวนอนหรือแนวตั้งตามลำดับ

อัลกอริทึมการแบ่งและปรับให้เหมาะสม (SF)

อัลกอริทึมนี้ได้รับการอธิบายครั้งแรกโดย Coffman et al. [ 9 ] สำหรับชุดรายการที่กำหนดฉัน{\displaystyle {\mathcal {I}}}และแถบที่มีความกว้าง{\displaystyle W}วิธีการทำงานมีดังนี้:

  1. กำหนดเอ็น{\displaystyle m\in \mathbb {N} }จำนวนเต็มที่มากที่สุดที่ทำให้สี่เหลี่ยมผืนผ้าที่กำหนดมีความกว้าง/{\displaystyle W/m}หรือน้อยกว่านั้น
  2. แบ่งฉัน{\displaystyle {\mathcal {I}}}แบ่งเป็นสองชุดฉันฉันอี{\displaystyle {\mathcal {I}}_{wide}}และฉันnเอโอ{\displaystyle {\mathcal {I}}_{narrow}}โดยที่ฉันฉันอี{\displaystyle {\mathcal {I}}_{wide}}ประกอบด้วยสิ่งของทั้งหมดฉันฉัน{\displaystyle i\in {\mathcal {I}}}ด้วยความกว้าง(ฉัน)>/(+1){\displaystyle w(i)>W/(m+1)}ในขณะที่ฉันnเอโอ{\displaystyle {\mathcal {I}}_{narrow}}ประกอบด้วยสิ่งของทั้งหมดที่มี(ฉัน)/(+1){\displaystyle w(i)\leq W/(m+1)}.
  3. คำสั่งฉันฉันอี{\displaystyle {\mathcal {I}}_{wide}}และฉันnเอโอ{\displaystyle {\mathcal {I}}_{narrow}}โดยที่ความสูงไม่เพิ่มขึ้น
  4. บรรจุสิ่งของลงในฉันฉันอี{\displaystyle {\mathcal {I}}_{wide}}โดยใช้อัลกอริธึม FFDH
  5. จัดเรียงลำดับชั้น/ชั้นวางที่สร้างโดย FFDH ใหม่ โดยให้ชั้นวางทั้งหมดที่มีความกว้างรวมมากกว่า(+1)/(+2){\displaystyle W(m+1)/(m+2)}อยู่ด้านล่างของส่วนที่แคบกว่า
  6. ซึ่งทำให้ได้พื้นที่สี่เหลี่ยมผืนผ้าอาร์{\displaystyle R}ของกับ/(+2){\displaystyle W/(m+2)}ถัดจากชั้นวางที่แคบกว่า ซึ่งไม่มีสิ่งของใดๆ วางอยู่
  7. ใช้ขั้นตอนวิธี FFDH ในการจัดเรียงสิ่งของลงในกล่องฉันnเอโอ{\displaystyle {\mathcal {I}}_{narrow}}โดยใช้พื้นที่อาร์{\displaystyle R}เช่นกัน.

อัลกอริทึมนี้มีคุณสมบัติดังต่อไปนี้:

  • สำหรับสินค้าทุกชุดฉัน{\displaystyle {\mathcal {I}}}และสิ่งที่เกี่ยวข้อง{\displaystyle m}โดยถือว่าเอสเอฟ(ฉัน)(+2)/(+1)โอพีที(ฉัน)+2ชม.สูงสุด{\displaystyle SF({\mathcal {I}})\leq (m+2)/(m+1)OPT({\mathcal {I}})+2h_{\max }}[ 9 ] โปรด ทราบว่าสำหรับ=1{\displaystyle m=1}โดยถือว่าเอสเอฟ(ฉัน)(3/2)โอพีที(ฉัน)+2ชม.สูงสุด{\displaystyle SF({\mathcal {I}})\leq (3/2)OPT({\mathcal {I}})+2h_{\max }}
  • สำหรับแต่ละรายการε>0{\displaystyle \varepsilon >0}มีชุดสิ่งของอยู่ฉัน{\displaystyle {\mathcal {I}}} โดยที่ เอสเอฟ(ฉัน)>((+2)/(+1)ε)โอพีที(ฉัน){\displaystyle SF({\mathcal {I}})>\left((m+2)/(m+1)-\varepsilon \right)OPT({\mathcal {I}})}[ 9 ]

อัลกอริทึมของสลีเตอร์

สำหรับชุดรายการที่กำหนดฉัน{\displaystyle {\mathcal {I}}}และแถบที่มีความกว้าง{\displaystyle W}วิธีการทำงานมีดังนี้:

  1. ค้นหารายการทั้งหมดที่มีความกว้างมากกว่า/2{\displaystyle W/2}แล้ววางซ้อนกันไว้ที่ด้านล่างของแถบ (ในลำดับแบบสุ่ม) เรียกความสูงรวมของสิ่งของเหล่านี้ว่า...ชม.0{\displaystyle h_{0}}สิ่งของอื่นๆ ทั้งหมดจะถูกวางไว้ด้านบนชม.0{\displaystyle h_{0}}.
  2. จัดเรียงสิ่งของที่เหลือทั้งหมดตามลำดับความสูงจากน้อยไปมาก สิ่งของจะถูกจัดวางตามลำดับนี้
  3. พิจารณาเส้นแนวนอนที่ชม.0{\displaystyle h_{0}}เปรียบเสมือนชั้นวางของ โดยอัลกอริทึมจะวางสิ่งของลงบนชั้นวางนี้เรียงลำดับจากสูงไปต่ำ จนกว่าจะไม่มีสิ่งของเหลืออยู่ หรือจนกว่าจะวางสิ่งของชิ้นต่อไปไม่ได้
  4. ลากเส้นแนวตั้งที่/2{\displaystyle W/2}ซึ่งจะตัดแถบนั้นออกเป็นสองส่วนเท่าๆ กัน
  5. อนุญาตชม.{\displaystyle h_{l}}เป็นจุดที่สูงที่สุดที่ถูกปกคลุมด้วยสิ่งของใดๆ ในครึ่งซีกซ้าย และชม.{\displaystyle h_{r}}จุดที่สอดคล้องกันบนครึ่งขวา ลากเส้นตรงแนวนอนสองเส้นที่มีความยาวเท่ากัน/2{\displaystyle W/2}ที่ชม.{\displaystyle h_{l}}และชม.{\displaystyle h_{r}}ลากเส้นแบ่งครึ่งซ้ายและขวาของแถบ เส้นทั้งสองนี้จะสร้างชั้นวางใหม่ ซึ่งอัลกอริทึมจะวางสิ่งของลงไป ดังเช่นในขั้นตอนที่ 3 เลือกครึ่งที่มีชั้นวางต่ำกว่า และวางสิ่งของลงบนชั้นวางนั้นจนกว่าจะไม่มีสิ่งของอื่นวางได้อีก ทำซ้ำขั้นตอนนี้จนกว่าจะไม่มีสิ่งของเหลืออยู่

อัลกอริทึมนี้มีคุณสมบัติดังต่อไปนี้:

  • ระยะเวลาการทำงานสามารถจำกัดได้โดยโอ(|ฉัน|บันทึก(|ฉัน|)){\displaystyle {\mathcal {O}}(|{\mathcal {I}}|\log(|{\mathcal {I}}|))}และหากสินค้าได้รับการจัดเรียงไว้แล้ว แม้กระทั่งโดยโอ(|ฉัน|){\displaystyle {\mathcal {O}}(|{\mathcal {I}}|)}.
  • สำหรับสินค้าทุกชุดฉัน{\displaystyle {\mathcal {I}}}มันสร้างการบรรจุที่มีความสูงเอ(ฉัน)2โอพีที(ฉัน)+ชม.สูงสุด/22.5โอพีที(ฉัน){\displaystyle A({\mathcal {I}})\leq 2OPT({\mathcal {I}})+h_{\max }/2\leq 2.5OPT({\mathcal {I}})}, ที่ไหนชม.สูงสุด{\displaystyle h_{\max }}ความสูงสูงสุดของสิ่งของในฉัน{\displaystyle {\mathcal {I}}}[ 10 ]

อัลกอริทึมการแบ่ง (SP)

อัลกอริทึมนี้เป็นส่วนขยายของแนวทางของ Sleator และได้รับการอธิบายครั้งแรกโดย Golan [ 11 ] โดยจะวางรายการตามลำดับความกว้างที่ไม่เพิ่มขึ้น แนวคิดหลักคือการแบ่งแถบออกเป็นแถบย่อยในขณะที่วางรายการบางรายการ เมื่อใดก็ตามที่เป็นไปได้ อัลกอริทึมจะวางรายการปัจจุบันฉัน{\displaystyle i}วางเคียงข้างกับสิ่งของที่วางไว้แล้วเจ{\displaystyle j}ในกรณีนี้ ระบบจะแบ่งแถบย่อยที่เกี่ยวข้องออกเป็นสองส่วน ส่วนหนึ่งประกอบด้วยรายการแรกเจ{\displaystyle j}และอีกอันหนึ่งบรรจุสิ่งของปัจจุบันฉัน{\displaystyle i}หากเป็นไปไม่ได้ ระบบจะวางตำแหน่งใหม่ฉัน{\displaystyle i}วางทับบนสิ่งของที่วางไว้แล้ว และไม่แบ่งแถบย่อยออก

อัลกอริทึมนี้สร้างเซตเอสของแถบย่อย สำหรับแต่ละแถบย่อยs ∈ Sเราทราบว่ามันคือมุมล่างซ้ายs.xpositionและs.ypositionความกว้างของมันs.widthเส้นแนวนอนที่ขนานกับขอบบนและขอบล่างของสิ่งของที่วางไว้ชิ้นสุดท้ายภายในแถบย่อยนี้s.upperและs.ล่างรวมถึงความกว้างของมันด้วยs.itemWidth.

ฟังก์ชัน Split Algorithm (SP) รับอินพุตเป็นรายการต่างๆ ฉันความกว้างของแถบผลลัพธ์: การบรรจุสิ่งของ เรียงลำดับ I ตามลำดับความกว้างจากน้อยไปมาก; กำหนดรายการว่าง S ของแถบย่อย; กำหนดแถบย่อยใหม่ s โดยกำหนดค่า s.xposition = 0, s.yposition = 0, s.width = W, s.lower = 0, s.upper = 0, s.itemWidth = W; เพิ่ม s ลงใน S; ในขณะที่ I ยังไม่ว่างเปล่าให้เรียกใช้ i := I.pop(); เพื่อลบรายการที่กว้างที่สุดออกจาก I กำหนดลิสต์ใหม่ S_2 ซึ่งประกอบด้วยซับสตริปทั้งหมดที่มีความกว้าง s - ความกว้างของรายการ s ≥ ความกว้างของรายการ i; S_2 ประกอบด้วยแถบย่อยทั้งหมดที่ i พอดีกับสิ่งของที่วางไว้แล้วหากS_2ว่างเปล่าในกรณีนี้ ให้วางสิ่งของนั้นทับสิ่งของอื่น ค้นหาแถบย่อย s ใน S ที่มีค่า s.upper น้อยที่สุดนั่นคือแถบย่อยที่บรรจุสิ่งของน้อยที่สุด วาง i ที่ตำแหน่ง (s.xposition, s.upper); อัปเดต s: s.lower := s.upper; s.upper := s.upper+i.height; s.itemWidth := i.width; ในกรณี นี้ให้วางสิ่งของนั้นไว้ข้างๆ อีกสิ่งของหนึ่งในระดับเดียวกัน แล้วแบ่งแถบย่อยที่เกี่ยวข้อง ณ ตำแหน่งนั้น หาค่า s ∈ S_2 ที่มีค่า s.lower น้อยที่สุด วาง i ที่ตำแหน่ง (s.xposition + s.itemWidth, s.lower); ลบ s ออกจาก S; กำหนดแถบย่อยใหม่สองแถบคือ s1 และ s2 ด้วย s1.xposition = s.xposition, s1.yposition = s.upper, s1.width = s.itemWidth, s1.lower = s.upper, s1.upper = s.upper, s1.itemWidth = s.itemWidth; s2.xposition = s.xposition + s.itemWidth, s2.yposition = s.lower, s2.width = s.width - s.itemWidth, s2.lower = s.lower, s2.upper = s.lower + i.height, s2.itemWidth = i.width; S.add(s1,s2); ฟังก์ชันส่งกลับ สิ้นสุด

อัลกอริทึมนี้มีคุณสมบัติดังต่อไปนี้:

  • ระยะเวลาการทำงานสามารถจำกัดได้โดยโอ(|ฉัน|2){\displaystyle {\mathcal {O}}(|{\mathcal {I}}|^{2})}เนื่องจากจำนวนแถบย่อยมีขอบเขตจำกัด|ฉัน|{\displaystyle |{\mathcal {I}}|}.
  • สำหรับชุดสินค้าใดๆ ก็ตามฉัน{\displaystyle {\mathcal {I}}}มันถือว่าเอสพี(ฉัน)2โอพีที(ฉัน)+ชม.สูงสุด3โอพีที(ฉัน){\displaystyle SP({\mathcal {I}})\leq 2OPT({\mathcal {I}})+h_{\max }\leq 3OPT({\mathcal {I}})}[ 11 ]
  • สำหรับใดๆε>0{\displaystyle \varepsilon >0}มีชุดสิ่งของอยู่ชุดหนึ่งฉัน{\displaystyle {\mathcal {I}}}โดยที่เอสพี(ฉัน)>(3ε)โอพีที(ฉัน){\displaystyle SP({\mathcal {I}})>(3-\varepsilon )OPT({\mathcal {I}})}[ 11 ]
  • สำหรับใดๆε>0{\displaystyle \varepsilon >0}และซี>0{\displaystyle C>0}มีชุดสิ่งของอยู่ชุดหนึ่งฉัน{\displaystyle {\mathcal {I}}}โดยที่เอสพี(ฉัน)>(2ε)โอพีที(ฉัน)+ซี{\displaystyle SP({\mathcal {I}})>(2-\varepsilon )OPT({\mathcal {I}})+C}[ 11 ]

การติดตั้งแบบย้อนกลับ (RF)

อัลกอริทึมนี้ได้รับการอธิบายครั้งแรกโดย Schiermeyer [ 13 ] คำอธิบายของอัลกอริทึมนี้ต้องการสัญลักษณ์เพิ่มเติมบางอย่าง สำหรับรายการที่วางไว้ฉันฉัน{\displaystyle i\in {\mathcal {I}}}โดยมุมล่างซ้ายของมันถูกระบุด้วย(เอฉัน,ซีฉัน){\displaystyle (a_{i},c_{i})}และมุมบนขวาโดย(ฉัน,ฉัน){\displaystyle (b_{i},d_{i})}.

เมื่อกำหนดชุดสิ่งของแล้วฉัน{\displaystyle {\mathcal {I}}}และแถบความกว้าง{\displaystyle W}วิธีการทำงานมีดังนี้:

  1. เรียงซ้อนสี่เหลี่ยมผืนผ้าทั้งหมดที่มีความกว้างมากกว่า/2{\displaystyle W/2}เรียงซ้อนกัน (ในลำดับแบบสุ่ม) ที่ด้านล่างของแถบ กำหนดให้เป็นชม0{\displaystyle H_{0}}ความสูงของกองนี้ สิ่งของอื่นๆ จะถูกบรรจุไว้ด้านบนชม0{\displaystyle H_{0}}.
  2. จัดเรียงสิ่งของที่เหลือตามลำดับความสูงจากน้อยไปมาก และพิจารณาสิ่งของตามลำดับนี้ในขั้นตอนต่อไป ให้ชม.สูงสุด{\displaystyle h_{\max }}ให้มีความสูงเท่ากับสิ่งของที่สูงที่สุดในบรรดาสิ่งของที่เหลืออยู่เหล่านี้
  3. วางสิ่งของทีละชิ้นเรียงชิดซ้ายบนชั้นวางที่กำหนดไว้ชม0{\displaystyle H_{0}}จนกว่าจะไม่มีสิ่งของอื่นใดวางบนชั้นนี้ได้ หรือจนกว่าจะไม่มีสิ่งของเหลืออยู่แล้ว เรียกชั้นวางนี้ว่าชั้นแรก
  4. อนุญาตชม.1{\displaystyle h_{1}}ให้ความสูงเท่ากับความสูงของสิ่งของที่ยังไม่ได้แกะกล่องที่สูงที่สุด กำหนดชั้นวางใหม่ที่ชม0+ชม.สูงสุด+ชม.1{\displaystyle H_{0}+h_{\max }+h_{1}}อัลกอริทึมจะจัดเรียงสิ่งของลงบนชั้นวางนี้จากขวาไปซ้าย โดยจัดวางให้ชิดขวาจนส่วนบนของสิ่งของสัมผัสกับชั้นวางนี้ เรียกชั้นวางนี้ว่าชั้นวางระดับย้อนกลับที่สอง
  5. จัดวางสิ่งของลงบนชั้นวางทั้งสองชั้นโดยใช้หลักการจัดวางแบบ First-Fit กล่าวคือ วางสิ่งของไว้ที่ชั้นแรกหากพอดี และวางไว้ที่ชั้นที่สองหากไม่พอดี ทำเช่นนี้ต่อไปจนกว่าจะไม่มีสิ่งของเหลือ หรือจนกว่าความกว้างรวมของสิ่งของในชั้นที่สองจะมีขนาดอย่างน้อย/2{\displaystyle W/2}.
  6. เลื่อนระดับย้อนกลับที่สองลงมาจนกว่าสิ่งของจากระดับนั้นจะสัมผัสกับสิ่งของจากระดับแรก กำหนดชม1{\displaystyle H_{1}}เนื่องจากตำแหน่งแนวตั้งใหม่ของชั้นวางที่เลื่อนออกไปเอฟ{\displaystyle f}และ{\displaystyle s}เป็นคู่สิ่งของที่สัมผัสกันที่ถูกต้องที่สุดด้วยเอฟ{\displaystyle f}วางไว้ที่ชั้นแรกและ{\displaystyle s}ในระดับย้อนกลับที่สอง กำหนดx:=สูงสุด(เอฟ,){\displaystyle x_{r}:=\max(b_{f},b_{s})}.
  7. ถ้าx</2{\displaystyle x_{r}<W/2}แล้ว{\displaystyle s}คือสี่เหลี่ยมผืนผ้าชิ้นสุดท้ายที่วางอยู่ในระดับย้อนกลับที่สอง เลื่อนสิ่งของอื่นๆ ทั้งหมดจากระดับนี้ลงไปอีก (ในปริมาณเท่ากันทั้งหมด) จนกว่าชิ้นแรกจะสัมผัสกับสิ่งของจากระดับแรก อีกครั้งที่อัลกอริทึมจะกำหนดคู่สิ่งของที่สัมผัสกันทางด้านขวาสุดเอฟ{\displaystyle f'}และ{\displaystyle s'}. กำหนดชม.2{\displaystyle h_{2}}เนื่องจากชั้นวางถูกเลื่อนลงมาเป็นปริมาณหนึ่ง
    1. ถ้าชม.2ชม.(){\displaystyle h_{2}\leq h(s)}จากนั้นเปลี่ยน{\displaystyle s}ไปทางซ้ายจนกระทั่งสัมผัสกับสิ่งอื่นหรือขอบของแถบ กำหนดระดับที่สามที่ด้านบนสุดของ{\displaystyle s'}.
    2. ถ้าชม.2>ชม.(){\displaystyle h_{2}>h(s)}จากนั้นเปลี่ยน{\displaystyle s}กำหนดระดับที่สามที่ด้านบนสุดของ{\displaystyle s'}. สถานที่{\displaystyle s}จัดวางชิดซ้ายในระดับที่สามนี้ โดยให้สัมผัสกับสิ่งของจากระดับแรกทางด้านซ้าย
  8. จัดเรียงสิ่งของต่อไปโดยใช้หลักการจัดวางแบบ First-Fit แต่ละระดับถัดไป (เริ่มจากระดับที่สาม) จะถูกกำหนดโดยเส้นแนวนอนที่ลากผ่านด้านบนของสิ่งของที่ใหญ่ที่สุดในระดับก่อนหน้า โปรดทราบว่าสิ่งของชิ้นแรกที่วางในระดับถัดไปอาจไม่แตะขอบของแถบด้วยด้านซ้าย แต่สิ่งของจากระดับแรกหรือสิ่งของจากระดับถัดไปอาจแตะขอบได้{\displaystyle s}.

อัลกอริทึมนี้มีคุณสมบัติดังต่อไปนี้:

  • ระยะเวลาการทำงานสามารถจำกัดได้โดยโอ(|ฉัน|2){\displaystyle {\mathcal {O}}(|{\mathcal {I}}|^{2})}เนื่องจากมีอย่างมากที่สุด|ฉัน|{\displaystyle |{\mathcal {I}}|}ระดับต่างๆ
  • สำหรับสินค้าทุกชุดฉัน{\displaystyle {\mathcal {I}}}มันสร้างการบรรจุที่มีความสูงอาร์เอฟ(ฉัน)2โอพีที(ฉัน){\displaystyle RF({\mathcal {I}})\leq 2OPT({\mathcal {I}})}[ 13 ]

อัลกอริทึมของสไตน์เบิร์ก (ST)

อัลกอริทึมของสไตน์เบิร์กเป็นอัลกอริทึมแบบเรียกซ้ำ โดยกำหนดชุดของสิ่งของรูปสี่เหลี่ยมผืนผ้ามาให้ฉัน{\displaystyle {\mathcal {I}}}และพื้นที่เป้าหมายรูปสี่เหลี่ยมผืนผ้าที่มีความกว้าง{\displaystyle W}และความสูงชม{\displaystyle H}โดยเสนอหลักเกณฑ์การลดขนาดสี่ข้อ ซึ่งจะจัดวางสิ่งของบางส่วนและเหลือพื้นที่สี่เหลี่ยมผืนผ้าขนาดเล็กกว่าที่มีคุณสมบัติเหมือนเดิมสำหรับสิ่งของที่เหลืออยู่ พิจารณาสัญลักษณ์ต่อไปนี้: กำหนดชุดของสิ่งของฉัน{\displaystyle {\mathcal {I}}}เราใช้สัญลักษณ์แทนด้วยชม.สูงสุด(ฉัน){\displaystyle h_{\max }({\mathcal {I}})}ความสูงของสิ่งของที่สูงที่สุดใน ฉัน{\displaystyle {\mathcal {I}}},สูงสุด(ฉัน){\displaystyle w_{\max }({\mathcal {I}})}ความกว้างของรายการที่ใหญ่ที่สุดที่ปรากฏใน ฉัน{\displaystyle {\mathcal {I}}}และโดยเออาร์อีเอ(ฉัน):=ฉันฉัน(ฉัน)ชม.(ฉัน){\displaystyle \mathrm {AREA} ({\mathcal {I}}):=\sum _{i\in {\mathcal {I}}}w(i)h(i)}พื้นที่ทั้งหมดของสิ่งของเหล่านี้ สไตน์เบิร์กแสดงให้เห็นว่าถ้า

ชม.สูงสุด(ฉัน)ชม{\displaystyle h_{\max }({\mathcal {I}})\leq H},สูงสุด(ฉัน){\displaystyle w_{\max }({\mathcal {I}})\leq W}, และเออาร์อีเอ(ฉัน)ชม(2ชม.สูงสุด(ฉัน)ชม.)+(2สูงสุด(ฉัน))+{\displaystyle \mathrm {AREA} ({\mathcal {I}})\leq W\cdot H-(2h_{\max }({\mathcal {I}})-h)_{+}(2w_{\max }({\mathcal {I}})-W)_{+}}, ที่ไหน(เอ)+:=สูงสุด{0,เอ}{\displaystyle (a)_{+}:=\max\{0,a\}},

จากนั้นจึงสามารถวางสิ่งของทั้งหมดไว้ภายในพื้นที่เป้าหมายที่มีขนาดที่กำหนดได้×ชม{\displaystyle W\times H}กฎการลดขนาดแต่ละข้อจะสร้างพื้นที่เป้าหมายที่เล็กลงและชุดย่อยของรายการที่จะต้องจัดวาง เมื่อเงื่อนไขข้างต้นเป็นจริงก่อนเริ่มกระบวนการ ปัญหาย่อยที่สร้างขึ้นก็จะมีคุณสมบัตินี้เช่นกัน

ขั้นตอนที่ 1 : สามารถนำไปใช้ได้หากสูงสุด(ฉัน)/2{\displaystyle w_{\max }({\mathcal {I}}')\geq W/2}.

  1. ค้นหาสินค้าทั้งหมดฉันฉัน{\displaystyle i\in {\mathcal {I}}}ด้วยความกว้าง(ฉัน)/2{\displaystyle w(i)\geq W/2}และนำออกจากฉัน{\displaystyle {\mathcal {I}}}.
  2. เรียงลำดับตามความกว้างที่ไม่เพิ่มขึ้น และจัดวางไว้ชิดซ้ายที่ด้านล่างของพื้นที่เป้าหมายชม.0{\displaystyle h_{0}}คือความสูงรวมของพวกเขา
  3. ค้นหาสินค้าทั้งหมดฉันฉัน{\displaystyle i\in {\mathcal {I}}}ด้วยความกว้างชม.(ฉัน)>ชมชม.0{\displaystyle h(i)>H-h_{0}}นำออกจากฉัน{\displaystyle {\mathcal {I}}}และนำไปใส่ไว้ในชุดใหม่ฉันชม{\displaystyle {\mathcal {I}}_{H}}.
  4. ถ้าฉันชม{\displaystyle {\mathcal {I}}_{H}}หากว่างเปล่า ให้กำหนดพื้นที่เป้าหมายใหม่เป็นพื้นที่ด้านบนชม.0{\displaystyle h_{0}}กล่าวคือ มันมีความสูงชมชม.0{\displaystyle H-h_{0}}และความกว้าง{\displaystyle W}แก้ปัญหาที่ประกอบด้วยพื้นที่เป้าหมายใหม่นี้และชุดรายการที่ลดลงโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
  5. ถ้าฉันชม{\displaystyle {\mathcal {I}}_{H}}ถ้าไม่ว่างเปล่า ให้เรียงลำดับตามความสูงที่ไม่เพิ่มขึ้น และวางสิ่งของเรียงชิดขวาทีละชิ้นในมุมบนขวาของพื้นที่เป้าหมาย0{\displaystyle w_{0}}ให้ความกว้างทั้งหมดของรายการเหล่านี้ กำหนดพื้นที่เป้าหมายใหม่ที่มีความกว้าง0{\displaystyle W-w_{0}}และความสูงชมชม.0{\displaystyle H-h_{0}}ในมุมบนซ้าย แก้ปัญหาที่ประกอบด้วยพื้นที่เป้าหมายใหม่นี้และชุดรายการที่ลดลงโดยใช้วิธีใดวิธีหนึ่ง

ขั้นตอนที่ 2 : สามารถนำไปใช้ได้หากตรงตามเงื่อนไขต่อไปนี้:สูงสุด(ฉัน)/2{\displaystyle w_{\max }({\mathcal {I}})\leq W/2},ชม.สูงสุด(ฉัน)ชม/2{\displaystyle h_{\max }({\mathcal {I}})\leq H/2}และมีสิ่งของที่แตกต่างกันสองอย่างฉัน,ฉันฉัน{\displaystyle i,i'\in {\mathcal {I}}}กับ(ฉัน)/4{\displaystyle w(i)\geq W/4},(ฉัน)/4{\displaystyle w(i')\geq W/4},ชม.(ฉัน)ชม/4{\displaystyle h(i)\geq H/4},ชม.(ฉัน)ชม/4{\displaystyle h(i')\geq H/4}และ2(เออาร์อีเอ(ฉัน)(ฉัน)ชม.(ฉัน)(ฉัน)ชม.(ฉัน))(สูงสุด{(ฉัน),(ฉัน)})ชม{\displaystyle 2(\mathrm {AREA} ({\mathcal {I}})-w(i)h(i)-w(i')h(i'))\leq (W-\max\{w(i),w(i')\})H}.

  1. หาฉัน{\displaystyle i}และฉัน{\displaystyle i'}และนำออกจากฉัน{\displaystyle {\mathcal {I}}}.
  2. วางแผ่นที่กว้างกว่าไว้ที่มุมล่างซ้ายของพื้นที่เป้าหมาย และวางแผ่นที่แคบกว่าชิดซ้ายไว้ด้านบนของแผ่นแรก
  3. กำหนดพื้นที่เป้าหมายใหม่ทางด้านขวาของทั้งสองรายการนี้ โดยให้มีความกว้างตามที่กำหนดสูงสุด{(ฉัน),(ฉัน)}{\displaystyle W-\max\{w(i),w(i')\}}และความสูงชม{\displaystyle H}.
  4. วางสิ่งของที่เหลือลงในฉัน{\displaystyle {\mathcal {I}}}เข้าสู่พื้นที่เป้าหมายใหม่โดยใช้วิธีใดวิธีหนึ่ง

ขั้นตอนที่ 3 : สามารถนำไปใช้ได้หากตรงตามเงื่อนไขต่อไปนี้:สูงสุด(ฉัน)/2{\displaystyle w_{\max }({\mathcal {I}})\leq W/2},ชม.สูงสุด(ฉัน)ชม/2{\displaystyle h_{\max }({\mathcal {I}})\leq H/2},|ฉัน|>1{\displaystyle |{\mathcal {I}}|>1}และเมื่อเรียงลำดับรายการตามความกว้างที่ลดลง จะมีดัชนีอยู่{\displaystyle m}ดังนั้นเมื่อกำหนดฉัน{\displaystyle {\mathcal {I'}}}ในฐานะคนแรก{\displaystyle m}สิ่งของที่บรรจุอยู่ภายในนั้น เออาร์อีเอ(ฉัน)ชม/4เออาร์อีเอ(ฉัน)3ชม/8{\displaystyle \mathrm {AREA} ({\mathcal {I}})-WH/4\leq \mathrm {AREA} ({\mathcal {I'}})\leq 3WH/8}รวมถึง(ฉัน+1)/4{\displaystyle w(i_{m+1})\leq W/4}

  1. ชุด1:=สูงสุด/2,2เออาร์อีเอ(ฉัน)/ชม{\displaystyle W_{1}:=\max {W/2,2\mathrm {AREA} ({\mathcal {I'}})/H}}.
  2. กำหนดพื้นที่เป้าหมายรูปสี่เหลี่ยมผืนผ้าใหม่สองพื้นที่ โดยพื้นที่หนึ่งอยู่ที่มุมล่างซ้ายของพื้นที่เดิม และมีความสูงชม{\displaystyle H}และความกว้าง1{\displaystyle W_{1}}และอีกด้านทางซ้ายที่มีความสูงชม{\displaystyle H}และความกว้าง1{\displaystyle W-W_{1}}.
  3. ใช้วิธีการใดวิธีการหนึ่งเพื่อจัดวางสิ่งของเหล่านั้นฉัน{\displaystyle {\mathcal {I'}}}เข้าสู่พื้นที่เป้าหมายใหม่แห่งแรกและรายการต่างๆ ในนั้นฉันฉัน{\displaystyle {\mathcal {I}}\setminus {\mathcal {I'}}}ไปยังอันที่สอง

โปรดทราบว่าขั้นตอนที่ 1 ถึง 3 มีเวอร์ชันสมมาตรเมื่อสลับความสูงและความกว้างของรายการและพื้นที่เป้าหมาย

ขั้นตอนที่ 4 : สามารถนำไปใช้ได้หากตรงตามเงื่อนไขต่อไปนี้:สูงสุด(ฉัน)/2{\displaystyle w_{\max }({\mathcal {I}})\leq W/2},ชม.สูงสุด(ฉัน)ชม/2{\displaystyle h_{\max }({\mathcal {I}})\leq H/2}และมีสิ่งของอยู่ชิ้นหนึ่งฉันฉัน{\displaystyle i\in {\mathcal {I}}}โดยที่(ฉัน)ชม.(ฉัน)เออาร์อีเอ(ฉัน)ชม/4{\displaystyle w(i)h(i)\geq \mathrm {AREA} ({\mathcal {I}})-WH/4}.

  1. วางสิ่งของฉัน{\displaystyle i}ในมุมล่างซ้ายของพื้นที่เป้าหมาย แล้วลบออกฉัน{\displaystyle {\mathcal {I}}}.
  2. กำหนดพื้นที่เป้าหมายใหม่ทางด้านขวาของรายการนี้ โดยให้มีความกว้างตามที่กำหนด(ฉัน){\displaystyle W-w(i)}และความสูงชม{\displaystyle H}และนำสิ่งของที่เหลือไปวางไว้ในบริเวณนี้โดยใช้วิธีใดวิธีหนึ่ง

อัลกอริทึมนี้มีคุณสมบัติดังต่อไปนี้:

  • ระยะเวลาการทำงานสามารถจำกัดได้โดยโอ(|ฉัน|บันทึก(|ฉัน|)2/บันทึก(บันทึก(|ฉัน|))){\displaystyle {\mathcal {O}}(|{\mathcal {I}}|\log(|{\mathcal {I}}|)^{2}/\log(\log(|{\mathcal {I}}|)))}[ 8 ]
  • สำหรับสินค้าทุกชุดฉัน{\displaystyle {\mathcal {I}}}มันสร้างการบรรจุที่มีความสูงเอสที(ฉัน)2โอพีที(ฉัน){\displaystyle ST({\mathcal {I}})\leq 2OPT({\mathcal {I}})}[ 8 ]

อัลกอริทึมการประมาณค่าแบบเวลาพсевโดพหุนาม

เพื่อปรับปรุงขอบเขตล่างของ3/2{\displaystyle 3/2}สำหรับอัลกอริทึมเวลาพหุนาม ได้มีการพิจารณาอัลกอริทึมเวลาพсевдоพหุนามสำหรับปัญหาการบรรจุแถบ เมื่อพิจารณาอัลกอริทึมประเภทนี้ ขนาดของชิ้นส่วนและแถบทั้งหมดจะถูกกำหนดเป็นจำนวนเต็ม นอกจากนี้ ความกว้างของแถบ{\displaystyle W}อนุญาตให้ปรากฏเป็นพหุนามในเวลาการทำงาน โปรดทราบว่าในกรณีนี้จะไม่ถือว่าเป็นเวลาการทำงานแบบพหุนามอีกต่อไป เนื่องจากความกว้างของแถบต้องการขนาดการเข้ารหัสเท่ากับบันทึก(){\displaystyle \log(W)}.

อัลกอริทึมเวลาเสมือนพหุนามที่พัฒนาขึ้นมาส่วนใหญ่ใช้วิธีการเดียวกัน แสดงให้เห็นว่าแต่ละวิธีแก้ปัญหาที่ดีที่สุดสามารถลดรูปและแปลงเป็นวิธีแก้ปัญหาที่มีโครงสร้างจำนวนคงที่ได้ จากนั้นอัลกอริทึมจะวนซ้ำโครงสร้างทั้งหมดเหล่านี้และวางรายการไว้ภายในโดยใช้การเขียนโปรแกรมเชิงเส้นและแบบไดนามิกอัตราส่วนที่ดีที่สุดที่ทำได้จนถึงขณะนี้คือ(5/4+ε)โอพีที(ฉัน){\displaystyle (5/4+\varepsilon )OPT(I)}[ 21 ]ในขณะที่ไม่มีอัลกอริทึมเวลาพсевдопоминомил ที่มีอัตราส่วนที่ดีกว่า5/4{\displaystyle 5/4}เว้นเสียแต่ว่าพี=เอ็นพี{\displaystyle P=NP}[ 5 ]

ภาพรวมของการประมาณค่าเวลาแบบพсевдоพหุนาม
ปีอัตราส่วนการประมาณค่าแหล่งที่มาความคิดเห็น
2010(3/2+ε){\displaystyle (3/2+\varepsilon )}Jansen, Thöle [ 22 ]
2016(7/5+ε){\displaystyle (7/5+\varepsilon )}Nadiradze, Wiese [ 23 ]
2016(4/3+ε){\displaystyle (4/3+\varepsilon )}กัลเวซ, แกรนโดนี, อิงกาลา, ข่าน[ 24 ]รวมถึงการหมุน 90 องศาด้วย
2017(4/3+ε){\displaystyle (4/3+\varepsilon )}แจนเซน เรา[ 25 ]
2019(5/4+ε){\displaystyle (5/4+\varepsilon )}แจนเซน เรา[ 21 ]รวมถึงสำหรับการหมุน 90 องศาและงานขึ้นรูปต่อเนื่องด้วย

อัลกอริทึมออนไลน์

ในรูปแบบการบรรจุแบบแถบออนไลน์สินค้าจะทยอยมาถึงตามเวลา เมื่อสินค้ามาถึง จะต้องนำไปวางทันที ก่อนที่จะทราบว่ามีสินค้าชิ้นต่อไปมาถึงหรือไม่ มีอัลกอริทึมออนไลน์สองประเภทที่ได้รับการพิจารณา ในรูปแบบแรก ไม่อนุญาตให้เปลี่ยนแปลงการบรรจุเมื่อวางสินค้าไปแล้ว ในรูปแบบที่สอง สามารถบรรจุสินค้าใหม่ได้เมื่อมีสินค้าชิ้นต่อไปมาถึง รูปแบบนี้เรียกว่าแบบจำลองการย้ายตำแหน่ง

คุณภาพของอัลกอริทึมออนไลน์วัดได้จากอัตราส่วนการแข่งขัน (สัมบูรณ์)

คุณพีฉันเอ(ฉัน)/โอพีที(ฉัน){\displaystyle \mathrm {sup} _{I}A(I)/OPT(I)},

ที่ไหนเอ(ฉัน){\displaystyle A(I)}สอดคล้องกับคำตอบที่สร้างขึ้นโดยอัลกอริธึมออนไลน์และโอพีที(ฉัน){\displaystyle OPT(I)}สอดคล้องกับขนาดของคำตอบที่เหมาะสมที่สุด นอกจากอัตราส่วนการแข่งขันสัมบูรณ์แล้ว ยังมีการศึกษาอัตราส่วนการแข่งขันเชิงอะซิมโทติกของอัลกอริธึมออนไลน์ด้วย ตัวอย่างเช่นฉัน{\displaystyle I}กับชม.สูงสุด(ฉัน)1{\displaystyle h_{\max }(I)\leq 1}มันถูกนิยามว่า

ลิมคุณพีโอพีที(ฉัน)เอ(ฉัน)/โอพีที(ฉัน){\displaystyle \lim \mathrm {sup} _{OPT(I)\rightarrow \infty }A(I)/OPT(I)}.

โปรดทราบว่าอินสแตนซ์ทั้งหมดสามารถปรับขนาดได้ดังนี้ชม.สูงสุด(ฉัน)1{\displaystyle h_{\max }(I)\leq 1}.

ภาพรวมของอัลกอริธึมออนไลน์โดยไม่ต้องย้ายข้อมูล
ปีอัตราส่วนการแข่งขันอัตราส่วนการแข่งขันเชิงอะซิมโทติกแหล่งที่มา
พ.ศ. 25266.991.7{\displaystyle \approx 1.7}เบเกอร์และชวาร์ซ[ 26 ]
พ.ศ. 25401.69+ε{\displaystyle 1.69+\varepsilon }Csirik และ Woeginger [ 27 ]
20076.6623ฮูริงค์และเปาโลส[ 28 ]
20096.6623เย่ ฮั่น และจาง[ 29 ]
20071.58889{\displaystyle 1.58889}ฮัน และคณะ[ 30 ] + เซเดน[ 31 ]

กรอบงานของ Han et al. [ 30 ]สามารถนำไปใช้ได้ในสภาพแวดล้อมออนไลน์หากอัลกอริทึมการบรรจุถังออนไลน์เป็นของคลาส Super Harmonic ดังนั้น อัลกอริทึมการบรรจุถังออนไลน์ Harmonic++ ของ Seiden [ 31 ]จึงหมายถึงอัลกอริทึมสำหรับการบรรจุแถบออนไลน์ที่มีอัตราส่วนเชิงเส้นกำกับ 1.58889

ภาพรวมของขีดจำกัดล่างสำหรับอัลกอริธึมออนไลน์โดยไม่ต้องย้ายข้อมูล
ปีอัตราส่วนการแข่งขันอัตราส่วนการแข่งขันเชิงอะซิมโทติกแหล่งที่มาความคิดเห็น
พ.ศ. 25252{\displaystyle 2}บราวน์ เบเกอร์ และแคทเซฟ[ 32 ]
20062.25โยฮันเนส[ 33 ]นอกจากนี้ยังใช้ได้กับปัญหาการจัดตารางงานแบบขนานด้วย
20072.43ฮูริงค์และเปาโลส[ 34 ]นอกจากนี้ยังใช้ได้กับปัญหาการจัดตารางงานแบบขนานด้วย
20092.457เคิร์นและพอลลัส[ 35 ]
20121.5404{\displaystyle 1.5404}บาโลห์และเบเกซี[ 36 ]ขอบล่างเนื่องจากปัญหาการบรรจุลงถังที่เป็นพื้นฐาน
20162.618หยู เหมา และเซียว[ 37 ]
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Strip_packing_problem&oldid=1354281542 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ปัญหาการบรรจุแบบแถบ

ปัญหาการบรรจุแถบเป็นปัญหาการลดรูปทรงเรขาคณิต 2 มิติ กำหนดให้ชุดของสี่เหลี่ยมผืนผ้าที่เรียงตัวตามแกนและแถบที่มีความกว้างจำกัดและความสูงอนันต์...

คำนิยาม

ตัวอย่างเช่น ฉัน = ( ฉัน , ว ) {\displaystyle I=({\คณิตศาสตร์ {I}},W)} ปัญหาการบรรจุแถบ ประกอบด้วยแถบที่มีความกว้าง ว = 1 {\displaystyle W=1} และความสูงที่ไม่มีที่สิ้นสุด รวมทั้งเซตด้วย ฉัน {\displaystyle {\คณิตศาสตร์ {I}}}...

ตัวแปร

มีการศึกษารูปแบบต่างๆ ของปัญหาการบรรจุแถบหลายรูปแบบ รูปแบบเหล่านี้เกี่ยวข้องกับรูปทรงเรขาคณิตของวัตถุ มิติของปัญหา ความสามารถในการหมุนของสิ่งของ และโครงสร้างของการบรรจุ [ 4 ]

ความแข็ง

ปัญหาการบรรจุแบบแถบ (Strip Packing Problem) ประกอบด้วย ปัญหาการบรรจุแบบกล่อง (Bin Packing Problem) เป็นกรณีพิเศษเมื่อสิ่งของทั้งหมดมีความสูงเท่ากันคือ 1 ด้วยเหตุนี้ ปัญหานี้จึงเป็นปัญหา NP-hard อย่างมาก และไม่มีอั ลกอริทึมประมาณค่า แบบเวลาพหุนามใด...