จะบรรจุรูปหลายเหลี่ยมในรูปหลายเหลี่ยมอื่นได้อย่างไร


20

ฉันสั่งแผ่นหนังสองสามผืนซึ่งฉันต้องการสร้างลูกเล่นกลโดยเย็บขอบด้วยกัน ฉันใช้ของแข็งเพลโตโตเพื่อรูปร่างของลูกบอล

ฉันสามารถสแกนแผ่นหนังและสร้างรูปหลายเหลี่ยมที่ใกล้เคียงกับรูปร่างของแผ่นหนัง (อย่างที่คุณรู้มันเป็นหนังสัตว์และมันไม่ได้เป็นรูปสี่เหลี่ยมผืนผ้า)

ดังนั้นตอนนี้ฉันต้องการที่จะเพิ่มขนาดของลูกเล่นกล

ในตัวอย่างของฉันรูปหลายเหลี่ยมเป็นรูปแบบปกติ แต่ฉันกำลังมองหาวิธีแก้ปัญหาด้วยรูปหลายเหลี่ยมอย่างง่าย

ตัวประกอบสเกลที่ใหญ่ที่สุดที่ฉันสามารถใช้กับรูปหลายเหลี่ยมของฉันคืออะไรเพื่อให้พอดีกับแผ่นด้านใน

ฉันพยายามลดขยะโดยใช้วัสดุให้ได้มากที่สุด

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

อย่างเป็นทางการ:

การป้อนข้อมูล:

  • P : รูปหลายเหลี่ยมแบบง่าย (เป้าหมาย)
  • S : ชุดรูปหลายเหลี่ยมที่ฉันต้องการวาง
  • G : กราฟของเหลี่ยมง่าย - แต่ละโหนดแสดงให้เห็นถึงรูปหลายเหลี่ยมที่เรียบง่ายในและมีขอบขอบหนึ่งระหว่างคู่ของรูปหลายเหลี่ยมแต่ละที่ใช้ขอบทั่วไป nS
  • α>=0,β>=0 (การใช้วัสดุและการเชื่อมต่อ)

เอาท์พุท:

  • ปัจจัยขนาดf
  • GH , กราฟย่อยของG
  • : ตำแหน่งและมุมสำหรับแต่ละเหลี่ยมใน V ( G )LocV(G)
  • เป็นวัดที่มีคุณภาพของการแก้ปัญหา: M = α + β | E ( H ) |mm=α.f+β.|E(H)||E(G)|

เพิ่มภายใต้เงื่อนไขเหล่านี้:m

  • (1)|V(H)|=|V(G)|
  • (2)|E(H)|<=|E(G)|
  • สำหรับรูปหลายเหลี่ยมทั้งหมดในS , S ฉันปรับสัดส่วนโดยปัจจัยfที่ตำแหน่งL o c ( S i )อยู่ภายในP (3)SiSSifLoc(Si)P
  • รูปหลายเหลี่ยมในไม่ทับซ้อนกัน (4)V(H)

(V (G) คือจุดยอดในกราฟและ S คือชุดของรูปหลายเหลี่ยม แต่พวกเขาอธิบายชุดของวัตถุเดียวกันบางทีอาจมีวิธีที่กระชับกว่านี้ในการทำเช่นนี้)

คำอธิบายของเงื่อนไข:

  • (1) ฉันต้องการให้รูปหลายเหลี่ยมทั้งหมดอยู่ในเค้าโครงสุดท้าย
  • (2) การเชื่อมต่อบางอย่างอาจใช้งานไม่ได้หากจำเป็น
  • (3) (4) ลูกบอลทำจากหนัง

นี่คือรูปหลายเหลี่ยมเป้าหมาย แผ่นหนัง

นี่คือชุดของรูปหลายเหลี่ยมที่ฉันต้องการแพ็ค: Polyhedron net


คุณกำลังพูดถึงรูปหลายเหลี่ยมนูนที่คุณต้องการตัดออกหรือไม่?
A.Schulz

ในกรณีของฉันรูปหลายเหลี่ยมเป็นปกติเพราะมันเป็นใบหน้าของของแข็งพลาโทนิก แต่การบรรจุรูปหลายเหลี่ยมอย่างง่ายก็ควรใช้ได้เช่นกัน ทำไมคุณต้องการที่จะรู้ว่ารูปหลายเหลี่ยมที่ฉันต้องการจะแพ็คนูนหรือไม่?
alecail

1
หากรูปหลายเหลี่ยมเป็นแบบไม่นูนคุณสามารถวางรูปหลายเหลี่ยมแบบไม่นูนเดียวลงในรูปหลายเหลี่ยมเดิมได้โดยไม่ต้องตัด ดังนั้นคำถามนี้จะไม่สมเหตุสมผลสำหรับรูปหลายเหลี่ยมทั่วไป
A.Schulz

ฉันไม่รู้ว่านี่เป็นสิ่งสำคัญหรือไม่ แต่รูปหลายเหลี่ยมที่มีขอบเขต (หนัง) นั้นนูนหรือว่าเป็นเว้าด้วยหรือไม่
Paresh

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

คำตอบ:


3

นี้เป็นระดับการเพิ่มประสิทธิภาพของปัญหาที่เรียกว่าบรรจุปัญหา ในกรณีของคุณแทนที่จะเป็นรูปหลายเหลี่ยมปกติเป็นคอนเทนเนอร์คุณมีรูปแบบไม่สม่ำเสมอ แต่ความคิดยังคงเหมือนเดิม
ปัญหาการปรับให้เหมาะสมเหล่านี้มักจะเกิดปัญหา NP-hard ดังนั้นฉันไม่คิดว่าจะมีวิธีที่ง่ายในการหาวิธีแก้ไขปัญหาที่แน่นอนและการลองชุดค่าผสมทั้งหมดจะแพงเกินไป
มีบางคนที่สนใจปัญหาประเภทนี้ ฉันพบลิงค์ของปัญหาการบรรจุเฉพาะที่แก้ไขแล้วนี้: http://www2.stetson.edu/~efriedma/packing.html

วิธีที่ง่ายที่สุดที่ฉันเห็นคือการกำหนดศูนย์กลางโดยประมาณของแผ่นหนังเพื่อย้ายชุดรูปหลายเหลี่ยมไปที่นั่นและโดยการปรับขนาดขึ้นและลงและตรวจสอบว่าชุดรูปหลายเหลี่ยมนั้นอยู่ภายในรูปหลายเหลี่ยมเป้าหมายหรือไม่ ยิ่งใกล้ชิดยิ่งขึ้นและมีอัตราส่วนสเกล 'f' สำหรับชุดรูปหลายเหลี่ยมที่คุณต้องการ

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.