คำถามติดแท็ก heuristics

3
อัลกอริทึมการบรรจุ 3d สำหรับการจัดส่งของรายการ
ฉันได้รับงานเพื่อสร้างการประมาณค่าจัดส่งซึ่งแสดงให้เห็นว่ามีที่พักที่ดีที่สุดในกล่องน้อยที่สุด: มีชุดกล่องสี่เหลี่ยมขนาดเท่าจำนวน จำกัด ที่ทราบ มีหลายรายการ retangular โดยพลการที่จะบรรจุภายในกล่อง ควรใช้กล่องให้น้อยที่สุดเท่าที่จะทำได้ เนื่องจากการจัดส่งสองกล่อง 1x1x1 มีราคาแพงกว่ากล่องหนึ่ง 1x2x1 นี่ควรเป็นลำดับความสำคัญที่นี่ ควรปรับให้เหมาะสมเพื่อใช้กล่องขนาดเล็กที่สุดเท่าที่จะเป็นไปได้ตามลำดับความสำคัญในระดับที่สอง (เช่น: หากนำเสนอด้วยตัวเลือกระหว่างหนึ่งกล่องที่ใหญ่กว่าและสองกล่องเล็กควรเลือกกล่องที่ใหญ่กว่า) รายการสามารถหมุนได้เพื่อให้พอดีกับกล่อง แต่การหมุนต้องถูก จำกัด ด้วยการเพิ่มขึ้นที่ 45 °เป็นอย่างน้อย (ในงานวิจัยของฉันดูเหมือนว่าการกำหนดค่าบางอย่างอนุญาตให้การหมุน 45 องศาเพื่อให้พอดีกับกล่องสี่เหลี่ยมในกล่องสี่เหลี่ยมขนาดใหญ่ขึ้น) เป็น 90 °การหมุนมาตรฐานที่จะต้องดำเนินการ กล่องมีขีด จำกัด น้ำหนักและรายการมีน้ำหนักโดยพลการ (เช่น: รายการที่มีขนาด 1x1x1 สามารถมีขนาดเล็กกว่ารายการ 2x2x2 อื่น ๆ ) ฉันได้ทำการวิจัยเล็กน้อยและพบว่ามีอัลกอริทึมที่เป็นนามธรรมบางอย่างเกี่ยวกับ bin bin และปัญหาเป้หลัง เรียงลำดับรายการตามลำดับที่ลดลง (ใหญ่กว่าก่อน) ในรายการ "รายการที่จะแพ็ค" สำหรับแต่ละรายการในรายการนี้: เลือกกล่องขนาดเล็กที่อยู่ในรายการ "กล่องที่ใช้แล้ว" …

8
คุณควรละทิ้งกรอบงาน ORM เมื่อคุณต้องการใช้การดำเนินการแบบกลุ่ม?
นี่เป็นสถานการณ์ทั่วไป: คุณต้องใช้การดำเนินการเป็นกลุ่มในแอปพลิเคชันที่ใช้กรอบ ORM หลังจากผ่านไปครั้งแรกคุณสังเกตเห็นปัญหาด้านประสิทธิภาพที่สำคัญ นี่คือคำถามของฉัน: ในสถานการณ์เช่นนี้คุณควรสนับสนุนโซลูชันที่มี SQL ดิบหรือไม่ หรือมีรูปแบบการออกแบบที่รู้จักกันดีซึ่งสามารถช่วยคุณลดปัญหาที่มักเกี่ยวข้องกับการดำเนินงานจำนวนมากด้วยกรอบ ORM หรือไม่ แก้ไข: ฉันไม่ได้ถามว่าคุณควรลบ ORM framework ออกจากแอพพลิเคชันทั้งหมดหรือไม่ ฉันกำลังถาม: คุณควรละทิ้งกรอบ ORM สำหรับแอปพลิเคชั่นเล็ก ๆ นี้หรือไม่?
15 orm  heuristics 

1
วิธีการเรียนรู้แบบ Heuristic สำหรับการนำ DIFF แบบยืดหยุ่นมาใช้
ฉันได้สร้างการใช้ DIFF เพื่อเปรียบเทียบการแก้ไขเอกสารในที่ทำงาน มันขึ้นอยู่กับมี O (ND) ความแตกต่างขั้นตอนวิธีการและรูปแบบของมัน สิ่งหนึ่งที่มีความสำคัญคือการบันทึกรายการการเปลี่ยนแปลงและตีความให้เป็นข้อความที่มนุษย์อ่านได้ ในขณะที่อัลกอริทึมในปัจจุบันมีประสิทธิภาพมากมันก็มากจนยากที่จะขยาย คำถามสั้น ๆ ฉันคิดถึงการพยายามใช้ A * และฮิวริสติกที่เพิ่มบทลงโทษสำหรับ "การเปลี่ยน" แนวคิดที่จะทำให้เรียบโดยไม่จำเป็น "เพิ่มลบเพิ่มลบเพิ่มลบ" เพื่อให้ง่ายต่อการแยกวิเคราะห์เป็นสิ่งที่มนุษย์สามารถอ่านได้ โดยทั่วไปเปลี่ยนปัญหาเส้นทางที่สั้นที่สุดของฉันให้เป็นปัญหาเส้นทางที่ง่ายที่สุด และแน่นอนไม่สร้างผลลัพธ์ที่ "ลบทุกอย่างเพิ่มทุกอย่าง " เสมอ เสียงนี้สมเหตุสมผลหรือไม่ มีความสำคัญสำหรับการใช้ฮิวริสติกในการนำ DIFF ไปใช้หรือไม่? ฮิวริสติกคืออะไร? ปัญหา: หากมีการลบประโยคยาวและประโยคยาวอื่นถูกลบออก แต่พวกเขาแบ่งปันอย่างน้อยหนึ่งคำให้พูดว่า "with" การออกจากคำทั่วไปเพียงอย่างเดียว (ไม่ใช่ทั้งการเพิ่มและการลบ) จะเป็นการสร้างเส้นทางที่สั้นที่สุด อย่างไรก็ตามนี่เป็นเพียงแค่ทำให้งงงวยบริบทของการเปลี่ยนแปลงกับมนุษย์พยายามอ่านพิมพ์จากการเปลี่ยนแปลง ตัวอย่างด้วย DIFF ปัจจุบัน: ข้อความเก่า: สะอาด: Powerwash และเป่าให้แห้งด้วยอากาศในร้าน ข้อความใหม่: ล้าง: เช็ดด้วยอะซิโตนและผ้าสำลีฟรี เปลี่ยนรายการบันทึกย่อ: เปลี่ยน "Powerwash …

2
ฉันจะทดสอบอัลกอริทึมฮิวริสติกได้อย่างไร
สมมติว่าเรามีอัลกอริทึมการค้นหาเส้นทางของเรา: def myHeuristicTSP(graph): /*implementation*/ return route ตอนนี้เราต้องการทดสอบหน่วยนี้: class TestMyHeuristicTSP: def testNullGraphRaiseValueError(self): self.assertRaises(ValueError, myHueristicTSP(None)) def testSimpleTwoNodeGraphReturnsRoute: self.assertEquals(expectedResult, myHeuristicTSP(input)) คำถามคือสำหรับอัลกอริทึม TSP ที่ไม่ใช่การแก้ปัญหาเราสามารถให้กราฟที่หลากหลายและตรวจสอบว่าพวกเขากลับเส้นทางที่สั้นที่สุดเสมอ แต่เนื่องจากอัลกอริทึมฮิวริสติกในขณะที่ยังคงสามารถกำหนดค่าได้คาดเดาได้น้อยกว่านั้นมีความหมายเพียงเพื่อให้เข้าใจว่าอัลกอริทึมนั้นใช้งานได้อย่างไรและค้นหากรณีขอบเหล่านั้นหรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.