การใช้โปรแกรมเชิงเส้นที่เหมาะสมที่สุดช่วยให้ได้ การแก้ปัญหาการเขียนโปรแกรมเชิงเส้น แนวคิดของการเขียนโปรแกรมเชิงเส้น ประเภทของปัญหาการโปรแกรมเชิงเส้น

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

กลยุทธ์เดียวเท่านั้น จากนั้นนับศัตรูที่ทำหน้าที่อย่างมีเหตุผล ทางเลือกนี้ควรถูกกำหนดโดยหลักการขั้นต่ำสุด ด้วยการยึดมั่นในกลยุทธ์สูงสุดของเรา โดยไม่คำนึงถึงพฤติกรรมของศัตรู เรารับประกันว่าตัวเราเองจะชนะได้ในราคาที่ต่ำกว่าของเกม 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 การหาทางแก้ไข

  1. ในเมนู บริการเลือกทีม การหาทางแก้ไข.
  2. ในสนาม ตั้งค่าเซลล์เป้าหมายป้อนที่อยู่ของเซลล์ที่มีสูตรเพื่อปรับโมเดลให้เหมาะสม
  3. หากต้องการเพิ่มมูลค่าของเซลล์เป้าหมายให้สูงสุดโดยการเปลี่ยนค่าของเซลล์ที่มีอิทธิพล ให้ตั้งสวิตช์ไปที่ ค่าสูงสุด - หากต้องการลดค่าของเซลล์เป้าหมายโดยการเปลี่ยนค่าของเซลล์ที่มีอิทธิพล ให้ตั้งสวิตช์ไปที่ ค่าต่ำสุด- เพื่อให้เซลล์เป้าหมายได้รับค่า หมายเลขเฉพาะให้ตั้งสวิตช์ไปที่ตำแหน่ง ความหมายและกรอกหมายเลขให้ถูกต้อง
  4. ในสนาม การเปลี่ยนเซลล์ป้อนที่อยู่ของเซลล์ที่เปลี่ยนค่า โดยคั่นด้วยเครื่องหมายจุลภาค เซลล์ที่กำลังแก้ไขจะต้องเกี่ยวข้องโดยตรงหรือโดยอ้อมกับเซลล์เป้าหมาย อนุญาตให้ติดตั้งได้ถึง 200 เซลล์ที่เปลี่ยนแปลงได้.
  5. ในสนาม ข้อจำกัดป้อนข้อจำกัดทั้งหมดที่กำหนดไว้ในการค้นหาวิธีแก้ไข
  6. คลิกปุ่ม ดำเนินการ.
  7. หากต้องการบันทึกวิธีแก้ปัญหาที่พบ ให้เลือกสวิตช์ในกล่องโต้ตอบ ผลการค้นหาโซลูชันเพื่อวางตำแหน่ง บันทึกวิธีแก้ปัญหาที่พบ- หากต้องการป้อนข้อมูลต่อ ให้ตั้งสวิตช์ไปที่ คืนคุณค่าดั้งเดิม
  8. หากต้องการหยุดการค้นหาวิธีแก้ปัญหา ให้กดปุ่ม เอสเอส. เอ็มเอส เอ็กเซลจะคำนวณแผ่นงานใหม่โดยคำนึงถึงค่าเซลล์ที่พบซึ่งส่งผลต่อผลลัพธ์

อัลกอริธึมหุ่นยนต์กับ 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. สามารถเขียนได้แบบนี้ ดาน่า......



- ชมรมคอมพิวเตอร์ของ Oleg Shein

ส่ง

แจ้งการพิมพ์ผิด