ปัญหาดังต่อไปนี้:
เรามีอาร์เรย์ / ตารางจำนวนสองมิติแต่ละอันแสดงถึง "ผลประโยชน์" หรือ "ผลกำไร" นอกจากนี้เรายังมีสองจำนวนเต็มคงและ (สำหรับ "กว้าง" และ "ความสูง".) และเป็นจำนวนเต็มคงnH n
ตอนนี้เราต้องการที่จะซ้อนทับสี่เหลี่ยมขนาดในตารางดังกล่าวว่าผลรวมของค่าของเซลล์ในรูปสี่เหลี่ยมเหล่านี้เป็น maximizedw × h
ภาพต่อไปนี้เป็นตัวอย่างของตารางสองมิติที่มีรูปสี่เหลี่ยมผืนผ้าสองรูปซ้อนทับอยู่บนภาพ (รูปภาพไม่ได้แสดงวิธีแก้ปัญหาที่ดีที่สุดเพียงหนึ่งภาพซ้อนทับที่เป็นไปได้โดยที่และ )n = 2
รูปสี่เหลี่ยมผืนผ้าไม่สามารถตัดกันได้ (ไม่เช่นนั้นเราแค่ต้องการหาตำแหน่งที่เหมาะสมที่สุดสำหรับหนึ่งรูปสี่เหลี่ยมผืนผ้าแล้วใส่รูปสี่เหลี่ยมทั้งหมดในตำแหน่งนั้น)
ในตัวอย่างข้างต้นผลรวมของค่าทั้งหมดในเซลล์จะเป็น
สิ่งนี้คล้ายกับปัญหาใด ๆ ที่ทราบกันดีในการเพิ่มประสิทธิภาพ combinatorial หรือไม่? เพื่อให้ฉันสามารถเริ่มอ่านและพยายามหาวิธีแก้ไข
พื้นหลังเพิ่มเติมสำหรับผู้ที่สนใจ:
จนถึงตอนนี้ความคิดเดียวที่ฉันมีก็คืออัลกอริธึมโลภ (ซึ่งจะหาตำแหน่งที่ดีที่สุดสำหรับสี่เหลี่ยมผืนผ้าแรกจากนั้นหา Loctaion ที่ไม่ทับซ้อนกันสำหรับสี่เหลี่ยมที่สองเป็นต้น) หรืออภิปรัชญาบางอย่างเช่นอัลกอริทึมทางพันธุกรรม
ในความเป็นจริงฉันต้องการที่จะแก้ปัญหานี้ด้วยกริดที่มีเซลล์ประมาณหนึ่งล้านและหนึ่งแสน (หรือแม้กระทั่งหลายแสน) ของสี่เหลี่ยมแม้ว่ามันจะไม่จำเป็นต้องแก้ปัญหาในเวลาอันสั้น (เช่นมันจะเป็นที่ยอมรับสำหรับ อัลกอริทึมใช้เวลาเป็นชั่วโมงหรือหลายวัน) ฉันไม่ได้คาดหวังว่าจะได้คำตอบที่แน่นอน แต่ฉันต้องการได้วิธีที่ดีที่สุดเท่าที่จะเป็นไปได้เนื่องจากข้อ จำกัด เหล่านี้
ไชโย!