กลับไปหน้าบทความ

อ่าน 3 นาที

การเขียนโปรแกรมทางคณิตศาสตร์แบบขยาย

ภาษาสร้างแบบจำลองเชิงพีชคณิตเช่นAIMMS , AMPL , GAMS , MPL และอื่นๆ ได้รับการพัฒนาขึ้นเพื่ออำนวยความสะดวกในการอธิบายปัญหาในเชิงคณิตศาสตร์...

การเขียนโปรแกรมทางคณิตศาสตร์แบบขยาย

ภาษาสร้างแบบจำลองเชิงพีชคณิตเช่นAIMMS , AMPL , GAMS , MPL และอื่นๆ ได้รับการพัฒนาขึ้นเพื่ออำนวยความสะดวกในการอธิบายปัญหาในเชิงคณิตศาสตร์ และเชื่อมโยงการกำหนดสูตรเชิงนามธรรมกับระบบการจัดการข้อมูลในด้านหนึ่ง และอัลกอริทึมที่เหมาะสมสำหรับการแก้ปัญหาในอีกด้านหนึ่ง อัลกอริทึมที่แข็งแกร่งและอินเทอร์เฟซภาษาสร้างแบบจำลองได้รับการพัฒนาขึ้นสำหรับ ปัญหา การเขียนโปรแกรมทางคณิตศาสตร์ ที่หลากหลาย เช่นโปรแกรมเชิงเส้น (LPs), โปรแกรมไม่เชิงเส้น (NPs), โปรแกรมจำนวนเต็มผสม (MIPs), โปรแกรมเสริมผสม (MCPs) และอื่นๆ นักวิจัยกำลังปรับปรุงประเภทของปัญหาและอัลกอริทึมที่พวกเขาต้องการใช้ในการสร้างแบบจำลองในแอปพลิเคชันเฉพาะด้านอย่างต่อเนื่อง

การเขียนโปรแกรมทางคณิตศาสตร์แบบขยาย ( Extended Mathematical ProgrammingหรือEMP ) เป็นส่วนขยายของภาษาการสร้างแบบจำลองเชิงพีชคณิต ซึ่งช่วยให้สามารถสร้างแบบจำลองประเภทใหม่ได้โดยอัตโนมัติ โดยการแปลงแบบจำลอง EMP ไปเป็นคลาสการเขียนโปรแกรมทางคณิตศาสตร์ที่เป็นที่ยอมรับ เพื่อแก้ปัญหาด้วยอัลกอริธึมการแก้ปัญหาที่มีประสิทธิภาพ สามารถแก้ปัญหาสำคัญหลายประเภทได้ ตัวอย่างเฉพาะ ได้แก่อสมการแปรผันสมดุล แนชโปรแกรมแบบแยกส่วน และ โปรแกรม เชิง สุ่ม

EMP เป็นอิสระจากภาษาการสร้างแบบจำลองที่ใช้ แต่ปัจจุบันมีการใช้งานเฉพาะใน GAMS เท่านั้น ประเภทของปัญหาใหม่ที่สร้างแบบจำลองด้วย EMP จะถูกปรับเปลี่ยนรูปแบบด้วยตัวแก้ปัญหา JAMS ของ GAMS ให้เป็นประเภทของปัญหาที่ได้รับการยอมรับแล้ว และแบบจำลองที่ปรับเปลี่ยนรูปแบบแล้วจะถูกส่งไปยังตัวแก้ปัญหา GAMS ที่เหมาะสมเพื่อทำการแก้ปัญหา หัวใจหลักของ EMP คือไฟล์ชื่อemp.infoซึ่งเป็นไฟล์ที่เพิ่มคำอธิบายประกอบที่จำเป็นสำหรับการปรับเปลี่ยนรูปแบบลงในแบบจำลอง

ปัญหาสมดุล

ปัญหาดุลยภาพเป็นแบบจำลองของคำถามที่เกิดขึ้นในการศึกษาดุลยภาพทางเศรษฐกิจในรูปแบบนามธรรมทางคณิตศาสตร์ ปัญหาดุลยภาพประกอบด้วย อสมการแปรผัน ปัญหาที่มีดุลยภาพแนช และปัญหาการหาค่าเหมาะสมที่สุดหลายตัวที่มีข้อจำกัดด้านดุลยภาพ (MOPEC) ใช้คำหลักของ EMP เพื่อกำหนดรูปแบบใหม่ของปัญหาเหล่านี้ให้เป็นปัญหาความสมบูรณ์แบบผสม (MCP) ซึ่งเป็นประเภทของปัญหาที่มีเทคโนโลยีตัวแก้ปัญหาที่พัฒนาแล้ว แก้ปัญหาเวอร์ชันคำหลัก EMP ที่กำหนดรูปแบบใหม่แล้วด้วยตัวแก้ปัญหา PATH หรือตัวแก้ปัญหา MCP อื่นๆ ของ GAMS

ตัวอย่างของการใช้ EMP เพื่อแก้ปัญหาสมดุล ได้แก่ การคำนวณสมดุล Cournot–Nash–Walras [ 1 ] การสร้าง แบบจำลองการจัดสรรน้ำ[ 2 ] [ 3 ]การวางแผนระยะยาวสำหรับการขยายสายส่งไฟฟ้า[ 4 ]การสร้างแบบจำลอง ตัวแทน ที่หลีกเลี่ยงความเสี่ยงในตลาดไฟฟ้าพลังน้ำที่มีปริมาณน้ำไหลเข้าสู่เขื่อนที่ไม่แน่นอน[ 5 ]และการสร้างแบบจำลองความไม่เท่าเทียมกันแบบแปรผันในตลาดพลังงาน[ 6 ]

การเพิ่มประสิทธิภาพแบบลำดับชั้น

ปัญหาการหาค่าเหมาะสมที่สุดแบบลำดับชั้น คือโปรแกรมทางคณิตศาสตร์ที่มีปัญหาการหาค่าเหมาะสมที่สุดเพิ่มเติมอยู่ในข้อจำกัด ตัวอย่างง่ายๆ คือ ปัญหา การเขียนโปรแกรมแบบสองระดับ (Bilevel Programming)ที่หาค่าเหมาะสมที่สุดของเป้าหมายระดับบนเหนือข้อจำกัดที่รวมถึงปัญหาการหาค่าเหมาะสมที่สุดระดับล่างอีกปัญหาหนึ่ง การเขียนโปรแกรมแบบสองระดับถูกนำไปใช้ในหลายด้าน ตัวอย่างหนึ่งคือ การออกแบบเครื่องมือภาษีที่เหมาะสมที่สุด เครื่องมือภาษีถูกจำลองในระดับบน และตลาดการชำระบัญชีถูกจำลองในระดับล่าง โดยทั่วไป ปัญหาในระดับล่างอาจเป็นปัญหาการหาค่าเหมาะสมที่สุดหรืออสมการแปรผันมีคำสำคัญหลายคำเพื่ออำนวยความสะดวกในการกำหนดรูปแบบใหม่ของปัญหาการหาค่าเหมาะสมที่สุดแบบลำดับชั้น ปัญหาการหาค่าเหมาะสมที่สุดแบบสองระดับที่จำลองด้วย EMP จะถูกกำหนดรูปแบบใหม่เป็นโปรแกรมทางคณิตศาสตร์ที่มีข้อจำกัดสมดุล (MPEC) จากนั้นจึงแก้ปัญหาด้วยตัวแก้ MPEC ของ GAMS ตัวใดตัวหนึ่ง (NLPEC หรือKNITRO )

การเขียนโปรแกรมแบบแยกส่วน

โปรแกรมทางคณิตศาสตร์ที่เกี่ยวข้องกับตัวแปรไบนารีและนิยามของการแยกส่วนเพื่อจำลองทางเลือกแบบไม่ต่อเนื่อง เรียกว่า โปรแกรมแบบแยกส่วน (Disjunctive Programs) โปรแกรมแบบแยกส่วนมีแอปพลิเคชันมากมาย รวมถึงการจัดลำดับงานในกระบวนการผลิต การจัดการโครงการที่ซับซ้อนในลักษณะที่ประหยัดเวลา และการเลือกเส้นทางที่เหมาะสมที่สุดในวงจร EMP ได้นำขั้นตอนสำหรับส่วนขยายของโปรแกรมแบบแยกส่วนเชิงเส้นและไม่เชิงเส้นมาใช้แล้ว โปรแกรมแบบแยกส่วนเชิงเส้นจะถูกแปลงรูปแบบใหม่เป็นโปรแกรมจำนวนเต็มผสม (Mixed Integer Programs: MIPs) และโปรแกรมแบบแยกส่วนไม่เชิงเส้นจะถูกแปลงรูปแบบใหม่เป็นโปรแกรมจำนวนเต็มผสมไม่เชิงเส้น (Mixed Integer Nonlinear Programs: MINLPs) โดยจะแก้ปัญหาด้วยตัวแก้ปัญหา LogMIP 2.0 และอาจรวมถึงตัวแก้ปัญหาย่อยอื่นๆ ของ GAMS ด้วย

ตัวอย่างการใช้ EMP สำหรับการเขียนโปรแกรมแบบแยกส่วน ได้แก่ ปัญหาการจัดตารางเวลาในอุตสาหกรรมเคมี[ 7 ]

สำหรับการเขียนโปรแกรมเชิงสุ่ม

EMP SP เป็นส่วนขยายเชิงสุ่มของกรอบงาน EMP แบบจำลองเชิงกำหนดที่มีพารามิเตอร์คงที่ถูกแปลงเป็นแบบจำลองเชิงสุ่ม โดยที่พารามิเตอร์บางส่วนไม่ได้คงที่ แต่แสดงด้วยการแจกแจงความน่าจะเป็น ทำได้โดยใช้คำอธิบายประกอบและคำสำคัญเฉพาะ สามารถใช้ การแจกแจงความน่าจะเป็นแบบเดี่ยวและแบบร่วม ทั้งแบบแยกส่วนและแบบพารามิเตอร์ได้ นอกจากนี้ยังมีคำสำคัญสำหรับค่าคาดหวังค่าความเสี่ยง (VaR) และค่าความเสี่ยงแบบมีเงื่อนไข (CVaR) ตัวแปรที่เป็นตัววัดความเสี่ยงสามารถปรากฏในสมการเป้าหมายหรือในข้อจำกัดได้ EMP SP ช่วยให้การปรับค่าตัววัดความเสี่ยงเดี่ยวหรือการรวมกันของตัววัดความเสี่ยง (เช่น ผลรวมถ่วงน้ำหนักของค่าคาดหวังและ CVaR) ทำได้ง่ายขึ้น นอกจากนี้ ผู้สร้างแบบจำลองยังสามารถเลือกที่จะแลกเปลี่ยนค่าตัววัดความเสี่ยงได้ ยังสามารถสร้างแบบจำลองข้อจำกัดที่เกิดขึ้นได้เฉพาะกับความน่าจะเป็นบางอย่าง (ข้อจำกัดเชิงโอกาส) ได้อีกด้วย ปัจจุบัน ตัวแก้ปัญหา GAMS ต่อไปนี้สามารถใช้งานร่วมกับ EMP SP ได้: DE, DECIS, JAMS และLINDOสามารถใช้โปรแกรมแก้ปัญหา GAMS ใดก็ได้ในการประมวลผลปัญหา สมมูลเชิงกำหนด ที่สุ่มตัวอย่างไว้ล่วงหน้า

ดูเพิ่มเติม

  • www.gams.com
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Extended_Mathematical_Programming&oldid=1341279300 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การเขียนโปรแกรมทางคณิตศาสตร์แบบขยาย

ภาษาสร้างแบบจำลองเชิงพีชคณิตเช่นAIMMS , AMPL , GAMS , MPL และอื่นๆ ได้รับการพัฒนาขึ้นเพื่ออำนวยความสะดวกในการอธิบายปัญหาในเชิงคณิตศาสตร์...

ปัญหาสมดุล

ปัญหาดุลยภาพเป็นแบบจำลองของคำถามที่เกิดขึ้นในการศึกษา ดุลยภาพทางเศรษฐกิจ ในรูปแบบนามธรรมทางคณิตศาสตร์ ปัญหาดุลยภาพประกอบด้วย อสมการแปรผัน ปัญหาที่มีดุลยภาพแนช และปัญหาการหาค่าเหมาะสมที่สุดหลายตัวที่มีข้อจำกัดด้านดุลยภาพ (MOPEC) ใช้คำหลักของ EMP...

การเพิ่มประสิทธิภาพแบบลำดับชั้น

ปัญหาการหาค่าเหมาะสมที่สุดแบบลำดับชั้น คือ โปรแกรมทางคณิตศาสตร์ ที่มีปัญหาการหาค่าเหมาะสมที่สุดเพิ่มเติมอยู่ในข้อจำกัด ตัวอย่างง่ายๆ คือ ปัญหา การเขียนโปรแกรมแบบสองระดับ (Bilevel Programming)...

การเขียนโปรแกรมแบบแยกส่วน

โปรแกรมทางคณิตศาสตร์ ที่เกี่ยวข้องกับตัวแปรไบนารีและนิยามของการแยกส่วนเพื่อจำลองทางเลือกแบบไม่ต่อเนื่อง เรียกว่า โปรแกรมแบบแยกส่วน (Disjunctive Programs) โปรแกรมแบบแยกส่วนมีแอปพลิเคชันมากมาย รวมถึงการจัดลำดับงานในกระบวนการผลิต...