การใช้โปรแกรมเชิงเส้นที่เหมาะสมที่สุดช่วยให้ได้ การแก้ปัญหาการเขียนโปรแกรมเชิงเส้น แนวคิดของการเขียนโปรแกรมเชิงเส้น ประเภทของปัญหาการโปรแกรมเชิงเส้น
ในบรรดาเกมที่มีอยู่อย่างจำกัดนั้น ความสำคัญในทางปฏิบัติ,เกมด้วย จุดอาน- กรณีทั่วไปมากกว่าคือเมื่อราคาต่ำกว่าและราคาสูงของเกมแตกต่างกัน จากการวิเคราะห์เมทริกซ์ของเกมดังกล่าว เราก็ได้ข้อสรุปว่าหากผู้เล่นแต่ละคนได้รับตัวเลือก
กลยุทธ์เดียวเท่านั้น จากนั้นนับศัตรูที่ทำหน้าที่อย่างมีเหตุผล ทางเลือกนี้ควรถูกกำหนดโดยหลักการขั้นต่ำสุด ด้วยการยึดมั่นในกลยุทธ์สูงสุดของเรา โดยไม่คำนึงถึงพฤติกรรมของศัตรู เรารับประกันว่าตัวเราเองจะชนะได้ในราคาที่ต่ำกว่าของเกม a คำถามทั่วไปเกิดขึ้น: เป็นไปได้ไหมที่จะรับประกันผลตอบแทนโดยเฉลี่ยที่มากกว่า a หากคุณใช้กลยุทธ์ที่ "บริสุทธิ์" ไม่ใช่แค่กลยุทธ์เดียว แต่สุ่มสลับหลายกลยุทธ์?
กลยุทธ์แบบรวมดังกล่าวประกอบด้วยการใช้กลยุทธ์ล้วนๆ หลายอย่างสลับกันตามกฎสุ่มที่มีอัตราส่วนความถี่ที่แน่นอน เรียกว่ากลยุทธ์แบบผสมในทฤษฎีเกม
แน่นอนว่าแต่ละกลยุทธ์ล้วนเป็นกรณีพิเศษของกลยุทธ์แบบผสม ซึ่งกลยุทธ์ทั้งหมดยกเว้นกลยุทธ์เดียวจะถูกนำไปใช้กับความถี่เป็นศูนย์ และกลยุทธ์นี้มีความถี่ 1
ปรากฎว่าการใช้กลยุทธ์ที่ไม่เพียงแต่บริสุทธิ์เท่านั้น แต่ยังผสมผสานกัน เป็นไปได้ที่เกมที่มีขอบเขตจำกัดแต่ละเกมจะได้รับวิธีแก้ปัญหา เช่น สองกลยุทธ์ดังกล่าว (ใน กรณีทั่วไปแบบผสม) กลยุทธ์ที่เมื่อผู้เล่นทั้งสองคนใช้ ผลตอบแทนจะเท่ากับราคาของเกม และหากเบี่ยงเบนด้านเดียวจากกลยุทธ์ที่ดีที่สุด ผลตอบแทนจะเปลี่ยนไปในทิศทางที่ไม่เอื้ออำนวยต่อผู้เล่นที่เบี่ยงเบนเท่านั้น
ข้อความดังกล่าวประกอบด้วยเนื้อหาที่เรียกว่าทฤษฎีบทพื้นฐานของทฤษฎีเกม ทฤษฎีบทนี้ได้รับการพิสูจน์ครั้งแรกโดยฟอน นอยมันน์ ในปี พ.ศ. 2471 การพิสูจน์ทฤษฎีบทที่ทราบนั้นค่อนข้างซับซ้อน ดังนั้นเราจะให้เฉพาะสูตรเท่านั้น
แต่ละเกมที่มีขอบเขตจำกัดมี อย่างน้อยทางออกหนึ่ง (อาจอยู่ในขอบเขตของกลยุทธ์แบบผสม)
ผลตอบแทนที่เกิดจากการตัดสินใจเรียกว่าต้นทุนของเกม จากทฤษฎีบทหลัก ทุกเกมที่มีขอบเขตจำกัดมีราคา แน่นอนว่าราคาของเกม v มักจะอยู่ระหว่างราคาที่ต่ำกว่าของเกม a และราคาบนของเกมเสมอ :
แน่นอนว่ามีการรับประกันชัยชนะสูงสุดที่เราสามารถมั่นใจได้ด้วยตัวเองโดยใช้กลยุทธ์ที่บริสุทธิ์ของเราเท่านั้น เนื่องจากกลยุทธ์แบบผสมนั้นรวมถึงเป็นกรณีพิเศษ กลยุทธ์ที่บริสุทธิ์ทั้งหมด ดังนั้น นอกเหนือจากกลยุทธ์ที่บริสุทธิ์แล้ว ก็ยังรวมถึงกลยุทธ์แบบผสมด้วย
กลยุทธ์ ไม่ว่าในกรณีใด เราไม่ทำให้ความสามารถของเราแย่ลง เพราะฉะนั้น,
ในทำนองเดียวกัน เมื่อพิจารณาถึงความสามารถของศัตรู เราก็จะแสดงให้เห็นว่า
ดังนั้นความไม่เท่าเทียมกันที่ต้องการ (3.1) จึงตามมา
ให้เราแนะนำสัญลักษณ์พิเศษสำหรับกลยุทธ์แบบผสม ตัวอย่างเช่น หากกลยุทธ์แบบผสมของเราประกอบด้วยการใช้กลยุทธ์ AL พร้อมความถี่ และเราจะแสดงถึงกลยุทธ์นี้
ในทำนองเดียวกัน เราจะแสดงกลยุทธ์แบบผสมของศัตรู:
ความถี่ที่ใช้ผสมกลยุทธ์อยู่ที่ไหน
สมมติว่าเราพบวิธีแก้ปัญหาสำหรับเกมซึ่งประกอบด้วยกลยุทธ์ผสมที่เหมาะสมที่สุดสองกลยุทธ์ S, S โดยทั่วไปแล้ว ไม่ใช่ทุกกลยุทธ์ที่มีให้เลือก ถึงผู้เล่นคนนี้รวมอยู่ในกลยุทธ์แบบผสมผสานที่เหมาะสมที่สุดของเขา แต่เพียงบางส่วนเท่านั้น เราจะเรียกกลยุทธ์ที่รวมอยู่ในกลยุทธ์แบบผสมที่ดีที่สุดของผู้เล่นว่าเป็นกลยุทธ์ที่ “มีประโยชน์”
ปรากฎว่าวิธีแก้ปัญหาของเกมมีคุณสมบัติที่น่าทึ่งอีกอย่างหนึ่ง: หากผู้เล่นคนใดคนหนึ่งปฏิบัติตามกลยุทธ์แบบผสมผสานที่เหมาะสมที่สุด 5 (5) ดังนั้นผลตอบแทนจะยังคงไม่เปลี่ยนแปลงและเท่ากับราคาของเกม v ไม่ว่าผู้เล่นคนอื่นจะทำอะไรก็ตาม เพียงแต่ไม่ได้ไปไกลกว่ากลยุทธ์ที่ "มีประโยชน์" ตัวอย่างเช่น เขาสามารถใช้กลยุทธ์ที่ "มีประโยชน์" ใดๆ ก็ได้ในรูปแบบที่บริสุทธิ์ และยังสามารถผสมกลยุทธ์เหล่านั้นในสัดส่วนใดก็ได้
ลองพิสูจน์ข้อความนี้กัน ปล่อยให้มีวิธีแก้ปัญหาให้กับเกม โดยเจาะจง เราจะถือว่ากลยุทธ์แบบผสมที่เหมาะสมที่สุดประกอบด้วยส่วนผสมของสามอย่าง
กลยุทธ์ที่ "มีประโยชน์" ประกอบด้วยกลยุทธ์ที่ "มีประโยชน์" สามกลยุทธ์ผสมกัน
นอกจากนี้ ระบุว่าหากเราปฏิบัติตามกลยุทธ์ S คู่ต่อสู้จะสามารถใช้กลยุทธ์ในสัดส่วนใดก็ได้และผลตอบแทนจะไม่เปลี่ยนแปลงและจะยังคงเท่ากับต้นทุนของเกม
การเขียนโปรแกรมเชิงเส้นกลายเป็นสาขาหนึ่งของคณิตศาสตร์ประยุกต์ในยุค 40 และ 50 ศตวรรษที่ XX ต้องขอบคุณผลงานของนักวิทยาศาสตร์ชาวโซเวียตผู้ได้รับรางวัลโนเบล L.V. คันโตโรวิช พ.ศ. 2482 เขาได้ตีพิมพ์ผลงาน “วิธีทางคณิตศาสตร์ในการจัดและวางแผนการผลิต” โดยเขาใช้คณิตศาสตร์ในการแก้ปัญหาเศรษฐกิจเกี่ยวกับ ดาวน์โหลดที่ดีที่สุดเครื่องจักร การตัดวัสดุด้วยต้นทุนที่ต่ำที่สุด การกระจายสินค้าในการขนส่งหลายรูปแบบและอื่นๆ เสนอวิธีการแก้ตัวคูณ 8
แอล.วี. คันโตโรวิชเป็นคนแรกที่กำหนดแนวคิดทางเศรษฐศาสตร์และคณิตศาสตร์ที่ใช้กันอย่างแพร่หลาย เช่น แผนการที่เหมาะสมที่สุด การจัดสรรทรัพยากรที่เหมาะสมที่สุด การประเมินที่กำหนดอย่างเป็นกลาง ซึ่งระบุถึงสาขาเศรษฐศาสตร์ต่างๆ มากมายที่สามารถนำไปใช้ได้
แนวคิด การเขียนโปรแกรมเชิงเส้นได้รับการแนะนำโดยนักคณิตศาสตร์ชาวอเมริกัน D. Dantzig ซึ่งในปี 1949 ได้เสนออัลกอริธึมสำหรับการแก้ปัญหาการเขียนโปรแกรมเชิงเส้นที่เรียกว่า "วิธีซิมเพล็กซ์"
การเขียนโปรแกรมทางคณิตศาสตร์ ซึ่งรวมถึงการเขียนโปรแกรมเชิงเส้น ปัจจุบันเป็นหนึ่งในสาขาของการวิจัยการดำเนินงาน ขึ้นอยู่กับประเภทของปัญหาที่กำลังแก้ไขมันแยกแยะพื้นที่ต่างๆเช่นการเขียนโปรแกรมเชิงเส้นไม่เชิงเส้นไม่ต่อเนื่องไดนามิก ฯลฯ คำว่า "การเขียนโปรแกรม" ถูกนำมาใช้เนื่องจากความจริงที่ว่าตัวแปรที่ไม่รู้จักซึ่งอยู่ในกระบวนการแก้ไขปัญหามักจะกำหนด การดำเนินการตามแผนหรือแผนของหน่วยงานทางเศรษฐกิจบางแห่ง
ในการวิเคราะห์ทางคณิตศาสตร์แบบคลาสสิก จะมีการศึกษาการกำหนดทั่วไปของปัญหาในการกำหนดภาวะสุดขั้วแบบมีเงื่อนไข อย่างไรก็ตาม ในส่วนที่เกี่ยวข้องกับการพัฒนาการผลิตทางอุตสาหกรรม การขนส่ง เกษตรกรรม และภาคการธนาคาร ผลลัพธ์ของการวิเคราะห์ทางคณิตศาสตร์แบบดั้งเดิมยังไม่เพียงพอ ความต้องการของการปฏิบัติและการพัฒนาเทคโนโลยีคอมพิวเตอร์ได้นำไปสู่ความจำเป็นในการกำหนดแนวทางแก้ไขที่เหมาะสมที่สุดเมื่อวิเคราะห์ระบบเศรษฐกิจที่ซับซ้อน
เครื่องมือหลักในการแก้ปัญหาดังกล่าวคือการสร้างแบบจำลองทางคณิตศาสตร์ ในกรณีนี้ แบบจำลองอย่างง่ายจะถูกสร้างขึ้นครั้งแรก จากนั้นจึงดำเนินการวิจัย ทำให้สามารถเข้าใจได้ว่าคุณสมบัติการรวมตัวของวัตถุใดที่ไม่ถูกจับโดยโครงร่างที่เป็นทางการ หลังจากนั้นการทำให้แบบจำลองซับซ้อนขึ้น ความเพียงพอที่มากขึ้น สู่ความเป็นจริงอย่างแน่นอน ในหลายกรณี การประมาณความเป็นจริงประการแรกคือแบบจำลองที่การพึ่งพาทั้งหมดระหว่างตัวแปรที่กำหนดลักษณะของวัตถุนั้นเป็นเส้นตรง การปฏิบัติแสดงให้เห็นว่ากระบวนการทางเศรษฐกิจในจำนวนที่เพียงพอได้รับการอธิบายอย่างครบถ้วนด้วยแบบจำลองเชิงเส้น ดังนั้น การโปรแกรมเชิงเส้นเป็นเครื่องมือที่ช่วยให้สามารถค้นหาจุดสุดโต่งแบบมีเงื่อนไขบนเซตที่กำหนดโดยสมการเชิงเส้นและอสมการมีบทบาทสำคัญในการวิเคราะห์กระบวนการเหล่านี้
การเขียนโปรแกรมเชิงเส้นได้รับการพัฒนาอย่างกว้างขวางเนื่องจากมีการพิสูจน์แล้วว่าปัญหาการวางแผนและการควบคุมจำนวนหนึ่งสามารถกำหนดในรูปแบบของปัญหาการเขียนโปรแกรมเชิงเส้นเพื่อแก้ไขซึ่งมีวิธีการที่มีประสิทธิภาพ ตามที่ผู้เชี่ยวชาญระบุว่า ประมาณ 80–85% ของปัญหาการปรับให้เหมาะสมทั้งหมดที่ได้รับการแก้ไขในทางปฏิบัติเกี่ยวข้องกับปัญหาการเขียนโปรแกรมเชิงเส้น
เครื่องมือทางคณิตศาสตร์ที่สร้างขึ้นร่วมกับโปรแกรมคอมพิวเตอร์ที่ทำการคำนวณที่ต้องใช้แรงงานมากทำให้สามารถใช้แบบจำลองการเขียนโปรแกรมเชิงเส้นในสาขาวิทยาศาสตร์และการปฏิบัติทางเศรษฐศาสตร์อย่างกว้างขวาง
คำจำกัดความ 1 9 . การเขียนโปรแกรมเชิงเส้น (LP) เป็นสาขา การเขียนโปรแกรมทางคณิตศาสตร์ซึ่งเป็นสาขาหนึ่งของคณิตศาสตร์และวิธีการศึกษาในการค้นหาค่าสุดขีด (ใหญ่ที่สุดและเล็กที่สุด) ฟังก์ชันเชิงเส้นตัวแปรจำนวนจำกัด ตัวแปรที่ไม่รู้จักนั้นอยู่ภายใต้ข้อจำกัดเชิงเส้น
ฟังก์ชันเชิงเส้นนี้เรียกว่าฟังก์ชันเป้าหมาย และข้อจำกัดซึ่งแสดงถึงความสัมพันธ์เชิงปริมาณระหว่างตัวแปรที่แสดงเงื่อนไขและข้อกำหนดของปัญหาทางเศรษฐกิจ และเขียนทางคณิตศาสตร์ในรูปแบบของสมการหรืออสมการ เรียกว่าระบบข้อจำกัด
ปัญหาต่างๆ ที่เกี่ยวข้องกับการวางแผนกระบวนการทางเศรษฐกิจลดลงเหลือเพียงปัญหาการโปรแกรมเชิงเส้น ซึ่งมีหน้าที่ค้นหาวิธีแก้ปัญหาที่ดีที่สุด (เหมาะสมที่สุด)
ปัญหาการเขียนโปรแกรมเชิงเส้นทั่วไป (GLP) คือการค้นหาค่าสุดขีด (สูงสุดหรือต่ำสุด) ของฟังก์ชันเชิงเส้นที่เรียกว่าวัตถุประสงค์ 10:
จาก n ตัวแปร x 1 , x 2 , …, เอ็กซ์ nโดยมีข้อจำกัดด้านการทำงานที่กำหนด:
(3.2)
และข้อจำกัดโดยตรง (ข้อกำหนดของการไม่ลบของตัวแปร)
, (3.3)
ที่ไหน ก ฉัน , ข ฉัน , ค เจ– ให้ค่าคงที่
ในระบบข้อจำกัด (3.2) เครื่องหมาย “น้อยกว่าหรือเท่ากับ” “เท่ากับ” และ “มากกว่าหรือเท่ากับ” สามารถปรากฏพร้อมกันได้
PAP มากขึ้น บันทึกสั้น ๆมีรูปแบบ:
,
โดยมีข้อจำกัด:
;
.
เวกเตอร์` เอ็กซ์ = (x 1 , x 2 , …, เอ็กซ์ n) ซึ่งมีส่วนประกอบที่ตอบสนองข้อจำกัดด้านการทำงานและโดยตรงของปัญหาที่เรียกว่า วางแผน(หรือ วิธีแก้ปัญหาที่ยอมรับได้) ซีแอลพี.
แบบฟอร์มการแก้ปัญหาที่เป็นไปได้ทั้งหมด ขอบเขตของคำจำกัดความ ปัญหาการเขียนโปรแกรมเชิงเส้นหรือ ขอบเขตของการแก้ปัญหาที่เป็นไปได้ (โอดีอาร์) วิธีแก้ปัญหาที่เป็นไปได้ที่ให้ฟังก์ชันวัตถุประสงค์สูงสุดหรือต่ำสุด ฉ(`เอ็กซ์) เรียกว่าแผนการที่เหมาะสมที่สุดของปัญหาและแสดงไว้ ฉ(`เอ็กซ์ * ), ที่ไหน ` เอ็กซ์ * =(x 1 * , x 2 * , …, เอ็กซ์ n * ).
การบันทึกพรรคพลังประชาชนอีกรูปแบบหนึ่ง:
,
ที่ไหน ฉ(`เอ็กซ์ * ) คือค่าสูงสุด (ขั้นต่ำ) ฉ(กับ, เอ็กซ์) รับช่วงโซลูชันทั้งหมดที่รวมอยู่ในชุด แนวทางแก้ไขที่เป็นไปได้ เอ็กซ์ .
คำจำกัดความ 2 11 . การแสดงออกทางคณิตศาสตร์ฟังก์ชันวัตถุประสงค์และข้อจำกัดของฟังก์ชันนี้เรียกว่าแบบจำลองทางคณิตศาสตร์ของปัญหาเศรษฐกิจ
ในการรวบรวมแบบจำลองทางคณิตศาสตร์ที่คุณต้องการ:
1) ระบุตัวแปร
2) สร้างฟังก์ชันวัตถุประสงค์ตามเป้าหมายของปัญหา
3) เขียนระบบข้อ จำกัด โดยคำนึงถึงตัวบ่งชี้ในคำชี้แจงปัญหาและรูปแบบเชิงปริมาณ
การเขียนโปรแกรมเชิงเส้นเป็นสาขาหนึ่งของคณิตศาสตร์ที่ศึกษาวิธีการแก้ไขปัญหาสุดขีดที่มีลักษณะเฉพาะ การพึ่งพาเชิงเส้นระหว่างตัวแปรและ เกณฑ์เชิงเส้นการเพิ่มประสิทธิภาพ
คำสองสามคำเกี่ยวกับคำว่าการเขียนโปรแกรมเชิงเส้นนั้นเอง มันต้องมีความเข้าใจที่ถูกต้อง ใน ในกรณีนี้แน่นอนว่าการเขียนโปรแกรมไม่ใช่การรวบรวมโปรแกรมคอมพิวเตอร์ การเขียนโปรแกรมที่นี่ควรตีความว่าเป็นการวางแผน การจัดทำแผน การพัฒนาแผนปฏิบัติการ
ถึง ปัญหาทางคณิตศาสตร์การเขียนโปรแกรมเชิงเส้นประกอบด้วยการศึกษาการผลิตเฉพาะและสถานการณ์ทางเศรษฐกิจ ซึ่งตีความว่าเป็นปัญหาเกี่ยวกับการใช้ทรัพยากรที่มีจำกัดอย่างเหมาะสมในรูปแบบใดรูปแบบหนึ่ง
ช่วงของปัญหาที่ได้รับการแก้ไขโดยใช้วิธีการเขียนโปรแกรมเชิงเส้นนั้นค่อนข้างกว้าง นี่คือตัวอย่าง:
· ปัญหาการใช้ทรัพยากรให้เกิดประโยชน์สูงสุดในการวางแผนการผลิต
· ปัญหาส่วนผสม (การวางแผนองค์ประกอบของผลิตภัณฑ์)
· ปัญหาในการหาชุดค่าผสมที่เหมาะสมที่สุด ประเภทต่างๆสินค้าสำหรับจัดเก็บในคลังสินค้า (การจัดการสินค้าคงคลังหรือ “ปัญหากระเป๋าเป้สะพายหลัง”);
· งานขนส่ง(การวิเคราะห์ที่ตั้งสถานประกอบการ, การเคลื่อนย้ายสินค้า)
การเขียนโปรแกรมเชิงเส้นเป็นส่วนที่ได้รับการพัฒนาและใช้กันอย่างแพร่หลายที่สุดของการเขียนโปรแกรมทางคณิตศาสตร์ (นอกเหนือจากนี้ได้แก่ จำนวนเต็ม ไดนามิก ไม่เชิงเส้น การเขียนโปรแกรมแบบพาราเมตริก- โดยมีคำอธิบายดังต่อไปนี้:
· แบบจำลองทางคณิตศาสตร์ จำนวนมาก งานทางเศรษฐกิจเชิงเส้นสัมพันธ์กับตัวแปรที่ต้องการ
· ประเภทนี้ปัญหาที่มีการศึกษามากที่สุดในปัจจุบัน ออกแบบมาสำหรับเขา วิธีการพิเศษด้วยความช่วยเหลือซึ่งปัญหาเหล่านี้ได้รับการแก้ไขและโปรแกรมคอมพิวเตอร์ที่เกี่ยวข้อง
· ปัญหาการเขียนโปรแกรมเชิงเส้นจำนวนมากที่ได้รับการแก้ไขแล้ว ได้พบการนำไปใช้อย่างกว้างขวาง
· ปัญหาบางอย่างที่ไม่เป็นเชิงเส้นในสูตรดั้งเดิมหลังจากชุดของ ข้อ จำกัด เพิ่มเติมและสมมติฐานสามารถกลายเป็นเชิงเส้นหรือสามารถลดลงเป็นรูปแบบที่สามารถแก้ไขได้ด้วยวิธีการเขียนโปรแกรมเชิงเส้น
แบบจำลองทางเศรษฐศาสตร์และคณิตศาสตร์ของปัญหาการเขียนโปรแกรมเชิงเส้นประกอบด้วย: ฟังก์ชันวัตถุประสงค์ ค่าที่เหมาะสมที่สุดซึ่งจะต้องพบ (สูงสุดหรือต่ำสุด) ข้อจำกัดในรูปแบบของระบบสมการเชิงเส้นหรืออสมการ ความต้องการความไม่เป็นลบของตัวแปร
ใน มุมมองทั่วไปแบบจำลองเขียนดังนี้:
ฟังก์ชั่นวัตถุประสงค์:
F = c1x1 + c2x2 + ... + cnxn → สูงสุด(นาที);
ข้อจำกัด:
a11x1 + a12x2 + ... + a1nxn (≤ = ≥) b1,
a21x1 + a22x2 + ... + a2nxn (≤ = ≥) b2,
am1x1 + am2x2 + ... + amnxn (≤ = ≥) bm;
ข้อกำหนดที่ไม่เป็นลบ:
ปัญหาคือการหาค่าที่เหมาะสมที่สุดของฟังก์ชันไปพร้อมๆ กับการตอบสนองข้อจำกัด
ดังนั้น, การเขียนโปรแกรมเชิงเส้นเป็นสาขาหนึ่งของการเขียนโปรแกรมทางคณิตศาสตร์ที่ศึกษาวิธีการแก้ปัญหาสุดขีดที่มีลักษณะเฉพาะด้วยความสัมพันธ์เชิงเส้นระหว่างตัวแปรและเกณฑ์เชิงเส้น
เงื่อนไขที่จำเป็นสำหรับการกำหนดปัญหาการเขียนโปรแกรมเชิงเส้นคือข้อจำกัดเกี่ยวกับความพร้อมของทรัพยากร จำนวนความต้องการ กำลังการผลิตรัฐวิสาหกิจและปัจจัยการผลิตอื่นๆ
สาระสำคัญของการเขียนโปรแกรมเชิงเส้นคือการหาจุดที่ยิ่งใหญ่ที่สุดหรือ ค่าต่ำสุดฟังก์ชั่นบางอย่างภายใต้ชุดข้อจำกัดที่กำหนดให้กับข้อโต้แย้งและสร้างระบบข้อจำกัด ซึ่งตามกฎแล้วมีวิธีแก้ไขจำนวนอนันต์ แต่ละชุดของค่าของตัวแปร (อาร์กิวเมนต์ของฟังก์ชัน F) ที่เป็นไปตามระบบข้อ จำกัด เรียกว่าแผนที่ยอมรับได้ของปัญหาการเขียนโปรแกรมเชิงเส้น ฟังก์ชัน F ซึ่งเป็นค่าสูงสุดหรือต่ำสุดที่กำหนด เรียกว่าฟังก์ชันวัตถุประสงค์ของปัญหา แผนที่ยอมรับได้ซึ่งบรรลุค่าสูงสุดหรือต่ำสุดของฟังก์ชัน F เรียกว่าแผนที่เหมาะสมที่สุดของปัญหา
ระบบข้อจำกัดที่กำหนดแผนจำนวนมากถูกกำหนดโดยเงื่อนไขการผลิต งานของการเขียนโปรแกรมเชิงเส้น (LP) คือการเลือกโปรแกรมที่ทำกำไรได้มากที่สุด (เหมาะสมที่สุด) จากชุดแผนที่เป็นไปได้
วิธีเริมเป็นตัวหลักใน การเขียนโปรแกรมเชิงเส้น - การแก้ปัญหาเริ่มต้นด้วยการพิจารณาจุดยอดจุดหนึ่งของรูปทรงหลายเหลี่ยมของเงื่อนไข หากจุดยอดที่ศึกษาไม่สอดคล้องกับค่าสูงสุด (ขั้นต่ำ) ก็จะย้ายไปที่จุดใกล้เคียงโดยเพิ่มมูลค่าของฟังก์ชันเป้าหมายเมื่อแก้ไขปัญหาให้สูงสุดและลดลงเมื่อแก้ไขปัญหาให้น้อยที่สุด ดังนั้น การย้ายจากจุดยอดหนึ่งไปยังอีกจุดหนึ่งจะช่วยเพิ่มมูลค่าของฟังก์ชันเป้าหมาย เนื่องจากจำนวนจุดยอดของรูปทรงหลายเหลี่ยมมีจำกัด ในขั้นตอนจำนวนจำกัด จึงรับประกันได้ว่าจะหาค่าที่เหมาะสมที่สุดหรือกำหนดความจริงที่ว่าปัญหาไม่สามารถแก้ไขได้
วิธีนี้เป็นสากล ใช้ได้กับปัญหาการเขียนโปรแกรมเชิงเส้นใดๆ รูปแบบบัญญัติ - ระบบข้อจำกัดในที่นี้คือระบบสมการเชิงเส้นซึ่งมีจำนวนที่ไม่ทราบ ปริมาณมากขึ้นสมการ หากอันดับของระบบเป็น ร แล้วเราก็สามารถเลือกได้ ร สิ่งไม่รู้ ซึ่งเราจะแสดงผ่านสิ่งไม่รู้ที่เหลืออยู่ เพื่อความชัดเจน เราถือว่ามีการเลือกสิ่งที่ไม่ทราบลำดับแรกติดต่อกัน เอ็กซ์ 1 , X 2 , ..., X อาร์ - จากนั้นระบบสมการของเราสามารถเขียนได้เป็น
ก็สามารถนำมาในรูปแบบนี้ได้ ใดๆ ระบบร่วม เช่น โดยวิธีเกาส์เซียน จริงอยู่ เป็นไปไม่ได้เสมอไปที่จะแสดงมันในแง่ของสิ่งไม่รู้ r แรกที่เหลือ (เราทำสิ่งนี้เพื่อความแน่นอนของสัญกรณ์) อย่างไรก็ตามดังกล่าว ร จะมีสิ่งไม่รู้อย่างแน่นอน ตัวแปรที่ไม่รู้จัก (ตัวแปร) เหล่านี้เรียกว่าพื้นฐาน ที่เหลือไม่มีค่าใช้จ่าย
การให้ ค่าบางอย่างเราจะได้ตัวแปรอิสระและการคำนวณค่าของตัวแปรพื้นฐาน (แสดงในรูปของตัวแปรอิสระ) โซลูชั่นต่างๆระบบข้อจำกัดของเรา ดังนั้นจึงสามารถหาวิธีแก้ปัญหาได้ เราจะสนใจวิธีแก้ปัญหาพิเศษที่ได้รับในกรณีที่ตัวแปรอิสระมีค่าเท่ากับศูนย์ วิธีแก้ปัญหาดังกล่าวเรียกว่า ขั้นพื้นฐานมีจำนวนมากพอๆ กับประเภทพื้นฐานที่แตกต่างกันของระบบข้อจำกัดที่กำหนด วิธีแก้ปัญหาพื้นฐานเรียกว่า วิธีแก้ปัญหาพื้นฐานที่ยอมรับได้หรือ โซลูชันอ้างอิงหากค่าของตัวแปรในนั้นไม่เป็นลบ หากนำตัวแปรมาเป็นพื้นฐาน X 1 , X 2 , ..., X อาร์ แล้ววิธีแก้ปัญหา (ข 1 , ข 2 ,..., ข ร , 0, ..., 0) จะได้รับการสนับสนุนโดยมีเงื่อนไขว่า ข 1 , ข 2 ,..., ข ร ≥ 0 .
วิธีซิมเพล็กซ์มีพื้นฐานอยู่บนทฤษฎีบทที่เรียกว่าทฤษฎีบทพื้นฐานของวิธีซิมเพล็กซ์ ในบรรดาแผนการที่เหมาะสมที่สุดของปัญหาการโปรแกรมเชิงเส้นในรูปแบบมาตรฐาน จำเป็นต้องมีวิธีแก้ไขอ้างอิงถึงระบบข้อจำกัดของมัน หากแผนการแก้ปัญหาที่เหมาะสมที่สุดไม่ซ้ำกัน ก็จะสอดคล้องกับแนวทางแก้ไขปัญหาอ้างอิงบางประการ มีโซลูชันสนับสนุนที่แตกต่างกันจำนวนจำกัดสำหรับระบบข้อจำกัด ดังนั้น จึงสามารถค้นหาวิธีแก้ไขปัญหาในรูปแบบมาตรฐานได้โดยการแจกแจงวิธีแก้ไขปัญหาอ้างอิงและเลือกวิธีแก้ไขปัญหาที่มีค่า เอฟ ใหญ่ที่สุด แต่ประการแรก ไม่ทราบวิธีแก้ไขปัญหาอ้างอิงทั้งหมดและจำเป็นต้องค้นหา และประการที่สอง มีวิธีแก้ไขปัญหาเหล่านี้มากมายในปัญหาจริง และแทบจะเป็นไปไม่ได้เลยที่จะค้นหาโดยตรง วิธีซิมเพล็กซ์เป็นขั้นตอนบางอย่างสำหรับการแจงนับโซลูชันสนับสนุนโดยตรง จากวิธีแก้ไขปัญหาอ้างอิงบางอย่างที่พบล่วงหน้าโดยใช้อัลกอริธึมเฉพาะของวิธีซิมเพล็กซ์ เราจะคำนวณวิธีแก้ไขปัญหาอ้างอิงใหม่ซึ่งค่าของฟังก์ชันวัตถุประสงค์ เอฟ ไม่น้อยไปกว่าอันเก่า หลังจากหลายขั้นตอนเราก็มาถึง โซลูชันอ้างอิงซึ่งเป็นแผนที่เหมาะสมที่สุด
ดังนั้น วิธีซิมเพล็กซ์จะแนะนำลำดับที่แน่นอนทั้งเมื่อค้นหาโซลูชันพื้นฐานแรก (เริ่มต้น) และเมื่อย้ายไปยังโซลูชันพื้นฐานอื่นๆ ความคิดของเขามีดังนี้
มี ระบบข้อจำกัด ลดลงเหลือรูปแบบทั่วไป นั่นคือ เป็นระบบสมการเชิงเส้นม. ด้วย n ตัวแปร (ม< n) , หา วิธีแก้ปัญหาพื้นฐานใด ๆระบบนี้สนใจแค่การค้นหาให้ง่ายที่สุดเท่าที่จะทำได้
หากพบว่าวิธีแก้ไขปัญหาพื้นฐานเบื้องต้นกลายเป็น ยอมรับได้ , จากนั้นตรวจสอบมัน การเพิ่มประสิทธิภาพ- ถ้ามัน ไม่เหมาะที่สุด จากนั้นจึงจำเป็นต้องเปลี่ยนไปยังที่อื่น วิธีแก้ปัญหาพื้นฐานที่ยอมรับได้ .
วิธีเริมรับประกันว่าด้วยโซลูชันใหม่นี้ รูปแบบเชิงเส้น หากไปไม่ถึงจุดที่เหมาะสมที่สุดก็จะเข้าใกล้ พวกเขาทำเช่นเดียวกันกับวิธีแก้ปัญหาพื้นฐานที่เป็นไปได้ใหม่ จนกว่าพวกเขาจะพบวิธีแก้ปัญหาที่เหมาะสมที่สุด
หากวิธีแก้ปัญหาพื้นฐานแรกที่ค้นพบกลายเป็น ยอมรับไม่ได้ แล้วใช้วิธีซิมเพล็กซ์ที่สามารถทำได้ เปลี่ยนไปใช้โซลูชันพื้นฐานอื่นๆซึ่งนำเราเข้าใกล้ขอบเขตของโซลูชันที่ยอมรับได้มากขึ้น จนกระทั่งในขั้นตอนการตัดสินใจบางอย่าง โซลูชันพื้นฐานจะกลายเป็นที่ยอมรับได้ และใช้อัลกอริธึมวิธี simplex กับมัน หรือเราเชื่อมั่นในความไม่สอดคล้องกันของระบบข้อจำกัด
ดังนั้น การประยุกต์ใช้วิธีซิมเพล็กซ์จึงแบ่งออกเป็นสองขั้นตอน: การค้นหาวิธีแก้ปัญหาพื้นฐานที่ยอมรับได้สำหรับระบบที่มีข้อจำกัด หรือการสร้างข้อเท็จจริงของความไม่เข้ากันของมัน การหาทางออกที่ดีที่สุด
นอกจากนี้ แต่ละขั้นตอนอาจมีหลายขั้นตอนที่สอดคล้องกับวิธีแก้ปัญหาพื้นฐานอย่างใดอย่างหนึ่ง แต่เนื่องจากจำนวนวิธีแก้ปัญหาพื้นฐานนั้นมีจำกัดอยู่เสมอ จำนวนขั้นตอนของวิธีซิมเพล็กซ์จึงมีจำกัดเช่นกัน
แผนภาพที่ให้มาของวิธีซิมเพล็กซ์แสดงให้เห็นลักษณะของอัลกอริธึมอย่างชัดเจน (ลักษณะของคำสั่งที่ชัดเจนที่ต้องดำเนินการ การดำเนินการตามลำดับ) ซึ่งช่วยให้คุณสามารถตั้งโปรแกรมและใช้วิธีการนี้บนคอมพิวเตอร์ได้สำเร็จ ปัญหาเกี่ยวกับตัวแปรและข้อจำกัดจำนวนน้อยสามารถแก้ไขได้ด้วยตนเองโดยใช้วิธีซิมเพล็กซ์
เราจะอธิบายด้านการคำนวณโดยไม่ต้องอาศัยรายละเอียดเพิ่มเติมเกี่ยวกับสาระสำคัญของอัลกอริทึม การคำนวณโดยใช้วิธีซิมเพล็กซ์ ถูกจัดอยู่ในรูปแบบ ตารางเริมซึ่งเป็นการแสดงชวเลขของปัญหาการเขียนโปรแกรมเชิงเส้นในรูปแบบมาตรฐาน ก่อนที่จะเรียบเรียง ตารางเริมงานควรจะเป็น แปลงแล้ว , ระบบข้อจำกัดลดเหลือ รูปแบบพื้นฐานที่ยอมรับได้ด้วยความช่วยเหลือซึ่งตัวแปรพื้นฐานจะต้องถูกแยกออกจากฟังก์ชันเป้าหมาย เราจะพิจารณาประเด็นของการเปลี่ยนแปลงเบื้องต้นเหล่านี้ด้านล่าง ตอนนี้เราจะถือว่าได้เสร็จสิ้นแล้วและงานมีแบบฟอร์มดังต่อไปนี้
การเขียนโปรแกรมเชิงเส้นถือเป็นความสำเร็จครั้งยิ่งใหญ่ที่ทำให้มนุษย์สามารถกำหนดเป้าหมายทั่วไปและค้นหาวิธีแก้ปัญหาที่ดีที่สุดสำหรับกลุ่มคนในวงกว้างด้วยวิธีซิมเพล็กซ์ ปัญหาในทางปฏิบัติการตัดสินใจที่ซับซ้อนมาก
การเขียนโปรแกรมเชิงเส้น– สาขาวิชาคณิตศาสตร์ที่เกี่ยวข้องกับทฤษฎีและวิธีการแก้ปัญหาเกี่ยวกับเอ็กซ์ตรีมของฟังก์ชันเชิงเส้นบนเซต n-ปริภูมิเวกเตอร์มิติที่กำหนดโดยระบบสมการเชิงเส้นและอสมการ
ก็สามารถพูดได้ว่า การเขียนโปรแกรมเชิงเส้นนำไปประยุกต์ใช้แก้ปัญหาได้ แบบจำลองทางคณิตศาสตร์กระบวนการและระบบเหล่านั้นที่สามารถอยู่บนพื้นฐานของสมมติฐานได้ การแสดงเชิงเส้นโลกแห่งความเป็นจริง
ปัญหาการเขียนโปรแกรมเชิงเส้น(LP) ประกอบด้วยการค้นหาค่าต่ำสุด (หรือสูงสุด) ของฟังก์ชันเชิงเส้นภายใต้ข้อจำกัดเชิงเส้น
การเขียนโปรแกรมเชิงเส้นใช้เพื่อแก้ไขปัญหาทางเศรษฐกิจต่อไปนี้:
1. ปัญหาการบริหารจัดการและการวางแผนการผลิต
2. ปัญหาคำจำกัดความ ตำแหน่งที่เหมาะสมที่สุดอุปกรณ์สำหรับ เรือเดินทะเล,ในเวิร์คช็อป.
3. งานนิยาม แผนการที่เหมาะสมที่สุดการขนส่งสินค้า (งานขนส่ง)
4. ปัญหา การกระจายที่เหมาะสมที่สุดเฟรม
5. ปัญหาเกี่ยวกับส่วนผสม อาหาร (การวางแผนส่วนประกอบของผลิตภัณฑ์) ฯลฯ
3. รูปแบบการเขียนโปรแกรมเชิงเส้นซึ่งเป็นตัวแทนในตารางอิเล็กทรอนิกส์ MS Excel
ตามเนื้อผ้า วิทยาศาสตร์การจัดการหมายถึงการสร้างแบบจำลองที่มีรายละเอียดซึ่งเป็นผลมาจากการวิเคราะห์ การตัดสินใจของฝ่ายบริหาร- ปัจจุบัน ผู้จัดการหลายล้านคนใช้สเปรดชีตเพื่อวิเคราะห์ปัญหาทางธุรกิจ สเปรดชีตสมัยใหม่มีเครื่องมืออันทรงพลังมากมายที่สามารถใช้เพื่อวิเคราะห์แบบจำลองได้แม่นยำยิ่งขึ้น ส่งผลให้มีการตัดสินใจที่ดีขึ้นและใกล้เคียงที่สุด เนื่องจากมีการใช้งานอย่างแพร่หลายมากขึ้น สเปรดชีตในกระบวนการจัดการผู้เชี่ยวชาญในอนาคตจำเป็นต้องมีทักษะทางวิชาชีพในการพัฒนาแบบจำลอง - วิธี "วางแผน" แผ่นงานเปล่าเพื่อให้ได้ประโยชน์และ รูปแบบการปฏิบัติสถานการณ์ทางธุรกิจโดยไม่ต้องเจาะลึกถึงรายละเอียดปลีกย่อยของอัลกอริทึมและคณิตศาสตร์
ขั้นตอนหลักในการสร้างแบบจำลองการเขียนโปรแกรมเชิงเส้นใน Excel:
1. การเขียนและทดสอบโมเดลการเขียนโปรแกรมเชิงเส้นเชิงสัญลักษณ์ แบบจำลองนี้ถูกเขียนลงบนกระดาษในรูปแบบทางคณิตศาสตร์
2. การสร้างและการดีบัก โมเดลแบบตารางการเขียนโปรแกรมเชิงเส้น ขึ้นอยู่กับรูปแบบสัญลักษณ์ของผลิตภัณฑ์ยา การแสดงจะถูกสร้างขึ้นใน Excel .
3. ความพยายามที่จะปรับโมเดลให้เหมาะสมโดยใช้โปรแกรมเสริม SEARCH FOR SOLUTION
4. การใช้ส่วนเสริม ค้นหาวิธีแก้ปัญหา.
เมื่อใช้สเปรดชีต คุณสามารถจำลองสถานการณ์จริงและประเมินผลลัพธ์ได้ กล่าวอีกนัยหนึ่ง เมื่อใช้สเปรดชีต คุณสามารถวิเคราะห์ผลการดำเนินงานและคาดการณ์โอกาสในอนาคตขององค์กรได้ งานเหล่านี้ในสภาพแวดล้อม MS Excel ช่วยให้สามารถแก้ไขได้ด้วย Add-in การค้นหาโซลูชัน
การหาทางแก้ไข –นี่คือส่วนเสริมที่ออกแบบมาเพื่อปรับโมเดลให้เหมาะสมเมื่อมีข้อจำกัด ประกอบด้วยสอง ส่วนประกอบซอฟต์แวร์: โปรแกรมที่เขียนด้วยภาษา วิชวลเบสิกซึ่งแปลข้อมูลที่นำเสนอในจดหมายทำงานเพื่อเป็นตัวแทนภายในซึ่งใช้โดยโปรแกรมอื่น โปรแกรมที่สองจะอยู่ในหน่วยความจำคอมพิวเตอร์แยกต่างหาก โมดูลซอฟต์แวร์- จะดำเนินการปรับให้เหมาะสมและส่งกลับโซลูชันที่พบไปยังโปรแกรมแรก ซึ่งจะดำเนินการข้อมูลบนเวิร์กชีตต่อ คุณสามารถค้นหาค่าที่เหมาะสมที่สุดของสูตรซึ่งจัดเก็บไว้ในเซลล์เป้าหมายได้ ขั้นตอนนี้ใช้ได้กับกลุ่มเซลล์ที่เกี่ยวข้องโดยตรงกับสูตรในเซลล์เป้าหมาย ในการรับผลลัพธ์ของสูตรในเซลล์เป้าหมาย ขั้นตอนจะเปลี่ยนค่าในเซลล์ที่ส่งผลต่อการค้นหา เพื่อลดค่าจำนวนมากที่ใช้ในแบบจำลองปัญหา จึงมีการใช้ข้อจำกัด ข้อจำกัดเหล่านี้อาจมีการอ้างอิงไปยังเซลล์อื่นที่ส่งผลต่อการค้นหา
อัลกอริทึมทั่วไปสำหรับการทำงานกับ Add-in การหาทางแก้ไข
- ในเมนู บริการเลือกทีม การหาทางแก้ไข.
- ในสนาม ตั้งค่าเซลล์เป้าหมายป้อนที่อยู่ของเซลล์ที่มีสูตรเพื่อปรับโมเดลให้เหมาะสม
- หากต้องการเพิ่มมูลค่าของเซลล์เป้าหมายให้สูงสุดโดยการเปลี่ยนค่าของเซลล์ที่มีอิทธิพล ให้ตั้งสวิตช์ไปที่ ค่าสูงสุด - หากต้องการลดค่าของเซลล์เป้าหมายโดยการเปลี่ยนค่าของเซลล์ที่มีอิทธิพล ให้ตั้งสวิตช์ไปที่ ค่าต่ำสุด- เพื่อให้เซลล์เป้าหมายได้รับค่า หมายเลขเฉพาะให้ตั้งสวิตช์ไปที่ตำแหน่ง ความหมายและกรอกหมายเลขให้ถูกต้อง
- ในสนาม การเปลี่ยนเซลล์ป้อนที่อยู่ของเซลล์ที่เปลี่ยนค่า โดยคั่นด้วยเครื่องหมายจุลภาค เซลล์ที่กำลังแก้ไขจะต้องเกี่ยวข้องโดยตรงหรือโดยอ้อมกับเซลล์เป้าหมาย อนุญาตให้ติดตั้งได้ถึง 200 เซลล์ที่เปลี่ยนแปลงได้.
- ในสนาม ข้อจำกัดป้อนข้อจำกัดทั้งหมดที่กำหนดไว้ในการค้นหาวิธีแก้ไข
- คลิกปุ่ม ดำเนินการ.
- หากต้องการบันทึกวิธีแก้ปัญหาที่พบ ให้เลือกสวิตช์ในกล่องโต้ตอบ ผลการค้นหาโซลูชันเพื่อวางตำแหน่ง บันทึกวิธีแก้ปัญหาที่พบ- หากต้องการป้อนข้อมูลต่อ ให้ตั้งสวิตช์ไปที่ คืนคุณค่าดั้งเดิม
- หากต้องการหยุดการค้นหาวิธีแก้ปัญหา ให้กดปุ่ม เอสเอส. เอ็มเอส เอ็กเซลจะคำนวณแผ่นงานใหม่โดยคำนึงถึงค่าเซลล์ที่พบซึ่งส่งผลต่อผลลัพธ์
อัลกอริธึมหุ่นยนต์กับ nadbudova การหาทางแก้ไข
5. การแก้ปัญหาการเขียนโปรแกรมเชิงเส้นโดยใช้โปรแกรม เอ็มเอส เอ็กซ์เซล
ตัวอย่าง.ร้านขายขนมสำหรับทำคาราเมลสามประเภท ก, บี, ซี ใช้วัตถุดิบหลัก 3 ประเภท ได้แก่ น้ำตาล กากน้ำตาล และน้ำซุปข้นผลไม้ ปริมาณการใช้น้ำตาลมาตรฐานสำหรับการผลิตคาราเมลแต่ละประเภท 1 กิโลกรัม ตามลำดับ ระดับ 0.8 กิโลกรัม 0.5กก. 0.6กก. กากน้ำตาล – 04กก.; 0.4กก. 0.3กก. น้ำซุปข้นผลไม้ - 0 กก. 0.1กก. 0.1กก. สามารถผลิตขนมหวานได้ในปริมาณเท่าใดก็ได้ (รับประกันยอดขาย) แต่อุปทานของวัตถุดิบมีจำกัด: น้ำตาลสำรอง - 80 กก., กากน้ำตาล - 60 กก., น้ำซุปข้นผลไม้ - 12 กก. กำไรจากการขายคาราเมล 1 กิโลกรัม ก คือ 10 UAH พิมพ์ ใน – 11 UAH ประเภท กับ – 12 UAH
ตารางที่ 1
กำหนดแผนการผลิตคาราเมลซึ่งรับประกันผลกำไรสูงสุดจากกิจกรรมของร้านขายขนม
การเขียนโปรแกรมเชิงเส้น
การเขียนโปรแกรมเชิงเส้น- วินัยทางคณิตศาสตร์ที่อุทิศให้กับทฤษฎีและวิธีการแก้ปัญหาสุดขีดบนเซตของปริภูมิเวกเตอร์มิติที่กำหนดโดยระบบสมการเชิงเส้นและอสมการ
การโปรแกรมเชิงเส้นเป็นกรณีพิเศษของการเขียนโปรแกรมแบบนูน ซึ่งในทางกลับกันเป็นกรณีพิเศษของการเขียนโปรแกรมทางคณิตศาสตร์ ในขณะเดียวกันก็เป็นพื้นฐานของวิธีการต่างๆ ในการแก้ปัญหาการเขียนโปรแกรมจำนวนเต็มและไม่เชิงเส้น ลักษณะทั่วไปประการหนึ่งของการเขียนโปรแกรมเชิงเส้นคือการเขียนโปรแกรมเชิงเส้นแบบเศษส่วน
คุณสมบัติหลายประการของปัญหาการโปรแกรมเชิงเส้นสามารถตีความได้ว่าเป็นคุณสมบัติของรูปทรงหลายเหลี่ยม ดังนั้น จึงกำหนดสูตรและพิสูจน์ทางเรขาคณิตได้
เรื่องราว
วิธีจุดภายในถูกกล่าวถึงครั้งแรกโดย I. I. Dikin ในปี 1967
งาน
ปัญหาการเขียนโปรแกรมเชิงเส้นหลัก (มาตรฐาน) เรียกว่าปัญหาการหาค่าต่ำสุดของฟังก์ชันวัตถุประสงค์เชิงเส้น ( รูปร่างเชิงเส้น) ของแบบฟอร์ม:
ภายใต้เงื่อนไข
, .ปัญหาการเขียนโปรแกรมเชิงเส้นจะมีปัญหา มุมมองที่เป็นที่ยอมรับ หากอยู่ในปัญหาหลักแทนที่จะเป็นระบบสมการแรกมีระบบสมการ:
,ปัญหาหลักสามารถลดลงเป็นปัญหาตามรูปแบบบัญญัติได้โดยการแนะนำตัวแปรเพิ่มเติม
ปัญหาการโปรแกรมเชิงเส้นตรงในรูปแบบทั่วไปที่สุด (ปัญหาที่มีข้อจำกัดแบบผสม: ความเท่าเทียมกันและความไม่เท่าเทียมกัน การมีอยู่ของตัวแปรที่ปราศจากข้อจำกัด) สามารถลดลงให้กลายเป็นปัญหาที่เทียบเท่ากัน (โดยมีชุดวิธีแก้ปัญหาเดียวกัน) โดยการแทนที่ตัวแปรและแทนที่ความเท่าเทียมกันด้วยคู่ของ ความไม่เท่าเทียมกัน
เห็นได้ง่ายว่าปัญหาในการหาค่าสูงสุดสามารถแทนที่ได้ด้วยงานหาค่าต่ำสุดโดยการหาค่าสัมประสิทธิ์ที่มีเครื่องหมายตรงกันข้าม
ปัญหาตัวอย่าง
การจับคู่สูงสุด
พิจารณาปัญหาการจับคู่สูงสุดในกราฟสองฝ่าย: มีเด็กชายและเด็กหญิงหลายคน และสำหรับเด็กชายและเด็กหญิงแต่ละคนจะรู้ว่าพวกเขามีเสน่ห์ต่อกันหรือไม่ จำเป็นต้องแต่งงาน จำนวนสูงสุดคู่รักที่มีความเห็นอกเห็นใจซึ่งกันและกัน
ให้เราแนะนำตัวแปรที่สอดคล้องกับคู่ของ -boy และ -girl และปฏิบัติตามข้อจำกัด:
ด้วยฟังก์ชันวัตถุประสงค์ แสดงให้เห็นว่าในบรรดาวิธีแก้ปัญหาที่เหมาะสมที่สุดสำหรับปัญหานี้ มีจำนวนเต็มหนึ่ง ตัวแปรที่เท่ากับ 1 จะตรงกับคู่รักที่ควรแต่งงานกัน
การไหลสูงสุด
ให้มีกราฟ (ที่มีขอบเชิง) ซึ่งสำหรับแต่ละขอบของมัน ปริมาณงาน- และมีจุดยอดสองจุด: ท่อระบายน้ำและแหล่งที่มา จำเป็นต้องระบุในแต่ละขอบว่าของเหลวจะไหลผ่านได้มากน้อยเพียงใด (ไม่เกินความจุ) เพื่อเพิ่มการไหลทั้งหมดจากแหล่งกำเนิดไปยังท่อระบายน้ำ (ของเหลวไม่สามารถปรากฏหรือหายไปที่จุดยอดทั้งหมด ยกเว้นท่อระบายน้ำและแหล่งที่มา)
ให้เราพิจารณาปริมาณของของเหลวที่ไหลผ่านซี่โครงเป็นตัวแปร แล้ว
,ความจุของขอบนั้นอยู่ที่ไหน ความไม่เท่าเทียมกันเหล่านี้จะต้องเสริมด้วยความเท่าเทียมกันของปริมาณของไหลเข้าและไหลออกสำหรับแต่ละจุดยอด ยกเว้นท่อระบายน้ำและแหล่งที่มา ตามฟังก์ชัน เป็นเรื่องธรรมดาที่จะคำนึงถึงความแตกต่างระหว่างปริมาณของไหลที่ไหลออกและไหลเข้าที่แหล่งกำเนิด
ลักษณะทั่วไปของปัญหาก่อนหน้านี้คือการไหลสูงสุดของต้นทุนขั้นต่ำ ในปัญหานี้ จะมีการกำหนดต้นทุนสำหรับแต่ละ Edge และคุณต้องเลือกโฟลว์ที่มีต้นทุนขั้นต่ำจากโฟลว์สูงสุด ปัญหานี้มาจากปัญหาการเขียนโปรแกรมเชิงเส้นสองปัญหา: ขั้นแรกคุณต้องแก้ไขปัญหาการไหลสูงสุด จากนั้นเพิ่มข้อจำกัดเข้าไปในปัญหานี้ โดยที่ค่าของการไหลสูงสุดคือ และแก้ไขปัญหาด้วย คุณลักษณะใหม่- ต้นทุนการไหล
ปัญหาเหล่านี้สามารถแก้ไขได้เร็วกว่า อัลกอริธึมทั่วไปการแก้ปัญหาการเขียนโปรแกรมเชิงเส้นเนื่องจากโครงสร้างพิเศษของสมการและอสมการ
งานขนส่ง
มีสินค้าที่เป็นเนื้อเดียวกันบางอย่างที่ต้องโอนจากคลังสินค้าไปยังโรงงาน คลังสินค้าแต่ละแห่งจะทราบได้ว่ามีสินค้าจำนวนเท่าใด และทราบความต้องการสินค้าสำหรับแต่ละโรงงาน ค่าขนส่งเป็นสัดส่วนกับระยะทางจากคลังสินค้าถึงโรงงาน (ทราบระยะทางทั้งหมดจากคลังสินค้าแห่งที่ 1 ถึงโรงงานแห่งที่ 2) ก็ต้องแต่งให้ได้มากที่สุด แผนราคาถูกการขนส่ง.
ตัวแปรชี้ขาดในกรณีนี้คือปริมาณของสินค้าที่ขนส่งจากคลังสินค้าแห่งที่ 2 ไปยังโรงงานแห่งที่ 2 พวกเขาปฏิบัติตามข้อจำกัด:
ฟังก์ชันวัตถุประสงค์มีรูปแบบ: ซึ่งจะต้องย่อให้เล็กสุด
เกมผลรวมเป็นศูนย์
มีเมทริกซ์ขนาด ผู้เล่นคนแรกเลือกหมายเลขตั้งแต่ 1 ถึง คนที่สอง - ตั้งแต่ 1 ถึง จากนั้นพวกเขาตรวจสอบตัวเลขและผู้เล่นคนแรกจะได้รับคะแนน และคนที่สองจะได้รับคะแนน (หมายเลขที่เลือกโดยผู้เล่นคนแรกจะได้รับคะแนนคนที่สอง) เราจำเป็นต้องค้นหากลยุทธ์ที่เหมาะสมที่สุดสำหรับผู้เล่นคนแรก
สมมติว่าในกลยุทธ์ที่เหมาะสม ผู้เล่นคนแรกจะต้องเลือกตัวเลขที่มีความน่าจะเป็น กลยุทธ์ที่ดีที่สุดคือวิธีแก้ปัญหาการเขียนโปรแกรมเชิงเส้นต่อไปนี้:
, , (),ซึ่งจำเป็นต้องขยายฟังก์ชันให้ใหญ่สุด มูลค่าเข้า ทางออกที่ดีที่สุดจะเป็นความคาดหวังทางคณิตศาสตร์ของผลตอบแทนของผู้เล่นคนแรกในกรณีที่เลวร้ายที่สุด
อัลกอริธึมโซลูชัน
ที่มีชื่อเสียงที่สุดและใช้กันอย่างแพร่หลายในการปฏิบัติแก้ งานทั่วไปการเขียนโปรแกรมเชิงเส้น (LP) เป็นวิธีแบบซิมเพล็กซ์ แม้ว่าวิธีการแบบซิมเพล็กซ์จะเป็นอัลกอริธึมที่มีประสิทธิภาพพอสมควรดังที่ได้แสดงให้เห็นแล้วก็ตาม ผลลัพธ์ที่ดีเมื่อตัดสินใจ ปัญหาที่นำไปใช้ LP เป็นอัลกอริทึมที่มีความซับซ้อนแบบเอ็กซ์โปเนนเชียล เหตุผลก็คือลักษณะเชิงผสมของวิธีซิมเพล็กซ์ ซึ่งจะระบุจุดยอดของรูปทรงหลายเหลี่ยมของคำตอบที่เป็นไปได้ตามลำดับเมื่อค้นหาวิธีแก้ปัญหาที่ดีที่สุด
อัลกอริธึมพหุนามวิธีแรกคือวิธีทรงรีถูกเสนอในปี 1979 โดยนักคณิตศาสตร์ชาวโซเวียต แอล. คาชิยาน จึงเป็นการแก้ปัญหา เป็นเวลานานยังคงไม่ได้รับการแก้ไข วิธีทรงรีมีลักษณะที่แตกต่างอย่างสิ้นเชิงและไม่รวมกันมากกว่าวิธีซิมเพล็กซ์ อย่างไรก็ตาม จากมุมมองด้านการคำนวณ วิธีการนี้กลับกลายเป็นว่าไม่มีท่าว่าจะดีนัก อย่างไรก็ตามความเป็นจริงของปัญหาที่ซับซ้อนพหุนามนำไปสู่การสร้างอัลกอริธึม LP ที่มีประสิทธิภาพทั้งระดับ - วิธีจุดภายในโดยวิธีแรกคืออัลกอริทึมของ N. Karmarkar ที่เสนอในปี 1984 อัลกอริทึมประเภทนี้ใช้การตีความปัญหา LP อย่างต่อเนื่อง เมื่อแทนที่จะระบุจุดยอดของรูปทรงหลายเหลี่ยมของการแก้ปัญหา LP การค้นหาจะดำเนินการตามวิถีในอวกาศ ตัวแปรปัญหาโดยไม่ผ่านจุดยอดของรูปทรงหลายเหลี่ยม วิธีจุดภายใน ซึ่งแตกต่างจากวิธีแบบซิมเพล็กซ์ คือข้ามจุดจากด้านในของขอบเขต ค่าที่ยอมรับได้ใช้วิธีการเขียนโปรแกรมแบบไม่เชิงเส้นแบบล็อกกั้นที่พัฒนาขึ้นในปี 1960 โดย Fiacco และ McCormick
ดูเพิ่มเติม
- วิธีกราฟิกสำหรับการแก้ปัญหาการเขียนโปรแกรมเชิงเส้น
หมายเหตุ
วรรณกรรม
- โธมัส เอช. คอร์แมน และคณะบทที่ 29 การเขียนโปรแกรมเชิงเส้น // อัลกอริทึม: การสร้างและการวิเคราะห์ = ความรู้เบื้องต้นเกี่ยวกับอัลกอริทึม - ฉบับที่ 2 - อ.: “วิลเลียมส์”, 2549. - หน้า 1296. - ISBN 5-8459-0857-4
- อาคูลิช อิ.ล.บทที่ 1 ปัญหาการเขียนโปรแกรมเชิงเส้น บทที่ 2 งานพิเศษการเขียนโปรแกรมเชิงเส้น // การเขียนโปรแกรมทางคณิตศาสตร์ในตัวอย่างนี้และปัญหา - ม.: มัธยมปลาย, 2529. - 319 น. - ไอ 5-06-002663-9
- คาร์มานอฟ วี.จี.การเขียนโปรแกรมทางคณิตศาสตร์ - ฉบับที่ 3 - อ.: Nauka, 2529. - 288 น.
- Danzig George Bernard "ความทรงจำเกี่ยวกับจุดเริ่มต้นของการเขียนโปรแกรมเชิงเส้น"
ลิงค์
- - แพ็คเกจเพิ่มประสิทธิภาพฟรีที่ออกแบบมาเพื่อแก้ปัญหาการเขียนโปรแกรมเชิงเส้น จำนวนเต็ม และเป้าหมาย
- Vershik A. M. “ เกี่ยวกับ L. V. Kantorovich และการเขียนโปรแกรมเชิงเส้น”
- Bolshakova I. V. , Kuralenko M. V. “ การเขียนโปรแกรมเชิงเส้น คู่มือการศึกษาและระเบียบวิธีสำหรับการทดสอบ”
- Barsov A. S. “ การเขียนโปรแกรมเชิงเส้นคืออะไร” การบรรยายยอดนิยมเกี่ยวกับคณิตศาสตร์ Gostekhizdat, 2502
- เอ็ม. เอ็น. วยาลีอสมการเชิงเส้นและเชิงร่วม - เอ็มซีเอ็นเอ็มโอ, 2546.
มูลนิธิวิกิมีเดีย
- 2010.
- ซัลเทน, เฟลิกซ์
กลาโกว์, มาร์ตินา
การเขียนโปรแกรมเชิงเส้นดูว่า "การเขียนโปรแกรมเชิงเส้น" ในพจนานุกรมอื่น ๆ คืออะไร: - - การเขียนโปรแกรมเชิงเส้น พื้นที่ของการเขียนโปรแกรมทางคณิตศาสตร์ที่อุทิศให้กับทฤษฎีและวิธีการแก้ปัญหาสุดขีดโดยมีลักษณะความสัมพันธ์เชิงเส้นระหว่าง ... ...
การเขียนโปรแกรมเชิงเส้น
การเขียนโปรแกรมเชิงเส้นคู่มือนักแปลทางเทคนิค - สาขาการเขียนโปรแกรมทางคณิตศาสตร์ที่อุทิศให้กับทฤษฎีและวิธีการแก้ปัญหาสุดขีดที่มีลักษณะเฉพาะด้วยความสัมพันธ์เชิงเส้นระหว่างตัวแปร ในรูปแบบทั่วไปที่สุด ปัญหาของ L.p. สามารถเขียนได้แบบนี้ ดาน่า......