การเขียนโปรแกรมเชิงเส้นจำนวนเต็ม
บทนำ เขียนแก้สำหรับการเขียนโปรแกรมเชิงเส้นจำนวนเต็ม ท้าทาย งานของคุณคือเขียนตัวแก้สำหรับการเขียนโปรแกรมเชิงเส้นจำนวนเต็ม (ILP) ใน ILP จะได้รับอสมการเชิงเส้นของเซตของ unknowns (ซึ่งทั้งหมดเป็นจำนวนเต็ม) และเป้าหมายคือการค้นหาขั้นต่ำหรือสูงสุดของฟังก์ชันเชิงเส้น ตัวอย่างเช่นสำหรับความไม่เท่าเทียมกัน (ตัวอย่างที่นำมาจากการเขียนโปรแกรมเชิงเส้นจำนวนเต็มแบบผสม ) 4x+2y-15≤0 x+2y- 8≤0 x+ y- 5≤0 - x ≤0 - y ≤0 และฟังก์ชั่นวัตถุประสงค์3x+2yสูงสุดของฟังก์ชั่นวัตถุประสงค์ควรจะ12( x=2,y=3) ในขณะที่ขั้นต่ำควรจะ0( x=y=0) อินพุตถูกกำหนดเป็นอาร์เรย์ 2d (หรือเทียบเท่าตามข้อกำหนดมาตรฐาน) แต่ละแถวสอดคล้องกับความไม่เท่าเทียมกันหนึ่งข้อยกเว้นแถวสุดท้าย ตัวเลขในอาร์เรย์เป็นค่าสัมประสิทธิ์และ≤0ส่วนที่ถูกละเว้นเสมอ หากมีnองค์ประกอบในแต่ละแถวก็หมายความว่ามีn-1สิ่งแปลกปลอม แถวสุดท้ายของอาร์เรย์สอดคล้องกับฟังก์ชันเชิงเส้น ค่าสัมประสิทธิ์มีการระบุไว้ ตัวอย่างเช่นอาร์เรย์อินพุตสำหรับปัญหาข้างต้นคือ [[4,2,-15],[1,2,-8],[1,1,-5],[-1,0,0],[0,-1,0],[3,2,0]]. ผลลัพธ์ควรเป็นค่าต่ำสุดและค่าสูงสุดที่กำหนดในรูปแบบที่สมเหตุสมผล สำหรับปัญหาต่อไปนี้ (ข้อ จำกัด สองข้อถูกนำออกจากปัญหาข้างต้น): [[4,2,-15],[1,2,-8],[1,1,-5],[3,2,0]]. สูงสุดยังคงอยู่12แต่ค่าต่ำสุดไม่มีอยู่และฟังก์ชันวัตถุประสงค์สามารถมีค่าลบขนาดใหญ่ตามอำเภอใจ (ในแง่ของค่าสัมบูรณ์) ในกรณีนี้โปรแกรมควรส่งออก12ตามค่าเท็จที่ตัดสินใจโดยผู้ตอบ อีกกรณีหนึ่งคือไม่มีวิธีแก้ปัญหาเลยตัวอย่างเช่น …