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

อ่าน 5 นาที

ตัวแก้ปัญหาการเพิ่มประสิทธิภาพ HiGHS

HiGHS เป็นซอฟต์แวร์โอเพนซอร์สสำหรับแก้ปัญหา การเขียนโปรแกรมเชิงเส้น (LP) การเขียนโปรแกรมจำนวนเต็มแบบผสม (MIP) และ การเขียนโปรแกรมกำลังสองแบบ นูน (QP) [ 1 ] [ 2 ]

ตัวแก้ปัญหาการเพิ่มประสิทธิภาพ HiGHS

ไฮเอชเอส
สำนักงานใหญ่เอดินบะระ
ที่ตั้ง
  • สหราชอาณาจักร
ผู้อำนวยการ
จูเลียน ฮอลล์
บุคคลสำคัญ
  • อีเว็ต กาลาโบวา
พนักงาน8
เว็บไซต์www.highs.dev
ไฮเอชเอส
เวอร์ชันเสถียร
ดูบันทึกการเผยแพร่
เขียนเป็นซี++
พิมพ์ชุดเครื่องมือแก้ปัญหาการหาค่าเหมาะสมที่สุด
ใบอนุญาตเอ็มไอที
เว็บไซต์www.highs.dev แก้ไขข้อมูลนี้บนวิกิดาต้า
ที่เก็บข้อมูล
  • github.com/ERGO-Code/HiGHS

HiGHSเป็นซอฟต์แวร์โอเพนซอร์สสำหรับแก้ปัญหาการเขียนโปรแกรมเชิงเส้น (LP) การเขียนโปรแกรมจำนวนเต็มแบบผสม (MIP) และการเขียนโปรแกรมกำลังสองแบบ นูน (QP) [ 1 ] [ 2 ]

HiGHS เขียนด้วยภาษาC++และเผยแพร่ภายใต้ ใบอนุญาต MIT โดยมีอินเทอร์เฟซการเขียนโปรแกรมสำหรับ C , Python , Julia , Rust , R , JavaScript , FortranและC#ไม่มีการพึ่งพาภายนอก ใดๆ มี wrapper ขนาดเล็กที่สะดวกสำหรับ Python ให้ใช้งานได้ผ่าน แพ็คเกจ highspyบน PyPI นอกจาก นี้ HiGHS ยังสามารถเรียกใช้งานได้ผ่านNuGet [ 3 ]

แม้ว่าโดยทั่วไปจะเป็นแบบเธรดเดียว แต่ส่วนประกอบตัวแก้ปัญหาบางส่วนสามารถใช้สถาปัตยกรรมมัลติคอร์ได้ และตั้งแต่เวอร์ชัน 1.10.0 เป็นต้นไปสามารถเรียกใช้ตัวแก้ปัญหา LP อันดับแรกบน GPU ของ NVIDIA ได้ HiGHS ได้รับการออกแบบมาเพื่อแก้ปัญหาโมเดลขนาดใหญ่และใช้ประโยชน์จากความเบาบางของปัญหาประสิทธิภาพของมันเมื่อเทียบกับซอฟต์แวร์เชิงพาณิชย์และซอฟต์แวร์โอเพนซอร์สอื่นๆ จะได้รับการตรวจสอบเป็นระยะโดยใช้เกณฑ์ มาตรฐาน อุตสาหกรรม[ 4 ]

คำว่าHiGHSอาจหมายถึงทั้งโครงการพื้นฐานและทีมขนาดเล็กที่รับผิดชอบการพัฒนาซอฟต์แวร์ด้วยเช่นกัน

ประวัติศาสตร์

HiGHS สร้างขึ้นจากตัวแก้ปัญหาที่เขียนโดยนักศึกษาปริญญาเอกจากกลุ่มวิจัยการเพิ่มประสิทธิภาพและการดำเนินงาน [ 5 ]ในคณะคณิตศาสตร์ มหาวิทยาลัยเอดินบะระต้นกำเนิดของมันสามารถสืบย้อนไปได้ถึงปลายปี 2016 เมื่อ Ivet Galabova ได้รวม LP presolve ของเธอเข้ากับขั้นตอน simplex crash ของ Julian Hall และตัวแก้ปัญหา dual simplex ของ Huangfu Qi เพื่อแก้ปัญหา LP ในอุตสาหกรรมประเภทหนึ่งได้เร็วกว่าตัวแก้ปัญหาโอเพนซอร์สที่ดีที่สุดในเวลานั้น[ 6 ] ตั้งแต่นั้นมา API C++ และอินเทอร์เฟซภาษาอื่นๆ ได้รับการพัฒนาขึ้น และยูทิลิตี้การสร้างแบบจำลองและตัวแก้ปัญหาประเภทอื่นๆ ก็ได้ถูกเพิ่มเข้ามา  

ในช่วงต้นปี 2022 โครงการสร้างแบบจำลองระบบพลังงานแบบเปิด GenXและPyPSAได้รับรองการขอรับทุนสำหรับตัวแก้ปัญหา HiGHS เพื่อลดการพึ่งพาไลบรารีที่เป็นกรรมสิทธิ์ ของ ชุมชน[ 7 ]

ผู้แก้ปัญหา

ซิมเพล็กซ์

HiGHS มีการใช้งานวิธีซิมเพล็กซ์แบบปรับปรุง ทั้งแบบดั้งเดิมและแบบคู่ สำหรับการแก้ปัญหา LP โดยอิงตามเทคนิคที่อธิบายโดย Hall และ McKinnon (2005) [ 8 ]และ Huangfu และ Hall (2015, 2018) [ 9 ] [ 1 ]ซึ่งรวมถึงการใช้ประโยชน์จากความเบาบางเป็นพิเศษเมื่อแก้ระบบเชิงเส้นในการใช้งานซิมเพล็กซ์ และสำหรับการแก้ซิมเพล็กซ์แบบคู่ การใช้ประโยชน์จากมัลติเธรดดิ้ง ประสิทธิภาพของตัวแก้ซิมเพล็กซ์เมื่อเทียบกับซอฟต์แวร์เชิงพาณิชย์และซอฟต์แวร์โอเพนซอร์สอื่นๆ ได้รับการรายงานเป็นประจำโดยใช้เกณฑ์มาตรฐานอุตสาหกรรม[ 10 ]

จุดภายใน

HiGHS มี การนำ วิธีการจุดภายในมาใช้ในการแก้ปัญหา LP โดยอิงตามเทคนิคที่อธิบายโดย Schork และ Gondzio (2020) [ 11 ]โดดเด่นตรงที่สามารถแก้ระบบนิวตันแบบวนซ้ำโดยใช้ วิธี การไล่ระดับคอนจูเกตแบบปรับสภาพล่วงหน้าแทนที่จะแก้โดยตรงผ่าน การแยกส่วน LDL*ประสิทธิภาพของตัวแก้จุดภายในเมื่อเทียบกับซอฟต์แวร์เชิงพาณิชย์และซอฟต์แวร์โอเพนซอร์สอื่นๆ ได้รับการรายงานเป็นประจำโดยใช้เกณฑ์มาตรฐานอุตสาหกรรม[ 12 ]

เวอร์ชัน 1.12 ได้มีการนำวิธีการจุดภายในมาใช้ในการแก้ปัญหา LP โดยอิงตามเทคนิคที่อธิบายโดย Zanetti และ Gondzio (2025) [ 13 ]คุณสมบัติเสริมนี้มีชื่อว่า HiPO และขึ้นอยู่กับไลบรารีBLAS [ 14 ]

การเขียนโปรแกรมจำนวนเต็มแบบผสม

HiGHS มี ตัวแก้ปัญหา แบบ branch-and-cutสำหรับปัญหา MIP ประสิทธิภาพของมันเมื่อเทียบกับซอฟต์แวร์เชิงพาณิชย์และซอฟต์แวร์โอเพนซอร์สอื่นๆ ได้รับการรายงานเป็นประจำโดยใช้เกณฑ์มาตรฐานอุตสาหกรรม[ 15 ]

การเขียนโปรแกรมเชิงกำลังสอง

HiGHS มีตัวแก้ปัญหาเซตแบบแอคทีฟสำหรับปัญหา การเขียนโปรแกรมเชิงควาดราติก แบบนูน (QP)

แอปพลิเคชันที่ใช้ HiGHS

HiGHS สามารถใช้เป็นไลบรารีแก้ปัญหาแบบสแตนด์อะโลนในแอปพลิเคชันเฉพาะทางได้ แต่สภาพแวดล้อมการคำนวณเชิงตัวเลข แพ็คเกจการเขียนโปรแกรมเพื่อเพิ่มประสิทธิภาพ และโครงการวิเคราะห์เชิงตัวเลขเฉพาะด้านก็เริ่มนำซอฟต์แวร์นี้ไปรวมไว้ในระบบของตนด้วยเช่นกัน

การสนับสนุนการคำนวณเชิงตัวเลข

เนื่องจาก HiGHS เป็นซอฟต์แวร์โอเพนซอร์สที่มีประสิทธิภาพและอยู่ระหว่างการพัฒนาอย่างต่อเนื่อง จึงถูกนำไปใช้ในโครงการซอฟต์แวร์แอปพลิเคชันที่ให้การสนับสนุนการวิเคราะห์เชิงตัวเลขมากขึ้นเรื่อยๆตัวอย่างเช่นไลบรารีวิทยาศาสตร์ SciPy ใช้ HiGHS เป็นตัวแก้ปัญหา LP [ 16 ] ตั้งแต่เวอร์ชัน 1.6.0 [ 17 ]และตัวแก้ปัญหา MIP ของ HiGHS สำหรับการเพิ่มประสิทธิภาพแบบไม่ต่อเนื่องตั้งแต่เวอร์ชัน 1.9.0 [ 18 ]นอกจากจะมีอินเทอร์เฟซสำหรับ HiGHS แล้ว ภาษาการสร้างแบบจำลอง JuMPสำหรับJulia [ 19 ]ยังอธิบายการใช้งาน HiGHS โดยเฉพาะในเอกสารประกอบการใช้งานอีกด้วย[ 20 ]ตัวแก้ปัญหา MIP ใน ไลบรารี NAGใช้ HiGHS เป็นพื้นฐาน[ 21 ]และ HiGHS เป็นตัวแก้ปัญหา LP และ MIP เริ่มต้นในMathWorks Optimization Toolbox [ 22 ] 

แบบจำลองระบบพลังงานแบบเปิด

ปัจจุบัน HiGHS ยังถูกใช้โดยแอปพลิเคชันเฉพาะโดเมนบางส่วน รวมถึง สภาพแวดล้อม การสร้างแบบจำลองระบบพลังงานแบบเปิด หนึ่ง แห่ง เวอร์ชันบนเว็บของ แบบจำลองหลายภาคส่วนของยุโรป PyPSAใช้ตัวแก้ปัญหา HiGHS เป็นค่าเริ่มต้นตั้งแต่เดือนกุมภาพันธ์ 2022 [ 23 ] [ 24 ] โครงการ GridCal ซึ่งพัฒนาซอฟต์แวร์ระบบไฟฟ้าที่เน้นการวิจัย ได้เพิ่มการสนับสนุน HiGHS เป็นตัวเลือกในเดือนกุมภาพันธ์ 2022 [ 25 ] ในช่วงต้นปี 2026 Open Energy Transition ได้ดำเนินการเปรียบเทียบประสิทธิภาพเฉพาะโดเมนบางส่วน[ 26 ]

ดูเพิ่มเติม

  • คลังเก็บข้อมูล GitHub
  • เอกสารประกอบซอฟต์แวร์
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=HiGHS_optimization_solver&oldid=1355796253 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ ตัวแก้ปัญหาการเพิ่มประสิทธิภาพ HiGHS

HiGHS เป็นซอฟต์แวร์โอเพนซอร์สสำหรับแก้ปัญหา การเขียนโปรแกรมเชิงเส้น (LP) การเขียนโปรแกรมจำนวนเต็มแบบผสม (MIP) และ การเขียนโปรแกรมกำลังสองแบบ นูน (QP) [ 1 ] [ 2 ]

ประวัติศาสตร์

HiGHS สร้างขึ้นจากตัวแก้ปัญหาที่เขียนโดยนักศึกษาปริญญาเอกจากกลุ่มวิจัยการเพิ่มประสิทธิภาพและการดำเนินงาน [ 5 ] ในคณะคณิตศาสตร์ มหาวิทยาลัย เอดินบะระ ต้นกำเนิดของมันสามารถสืบย้อนไปได้ถึงปลายปี 2016 เมื่อ Ivet Galabova ได้รวม LP presolve ของเธอเข้ากับขั้นตอน...

ซิมเพล็กซ์

HiGHS มีการใช้งาน วิธีซิมเพล็กซ์แบบปรับปรุง ทั้งแบบดั้งเดิมและแบบคู่ สำหรับการแก้ปัญหา LP โดยอิงตามเทคนิคที่อธิบายโดย Hall และ McKinnon (2005) [ 8 ] และ Huangfu และ Hall (2015, 2018) [ 9 ] [ 1 ]...

จุดภายใน

HiGHS มี การนำ วิธีการจุดภายใน มาใช้ในการแก้ปัญหา LP โดยอิงตามเทคนิคที่อธิบายโดย Schork และ Gondzio (2020) [ 11 ] โดดเด่นตรงที่สามารถแก้ระบบนิวตันแบบวนซ้ำโดยใช้ วิธี การไล่ระดับคอนจูเกตแบบปรับสภาพล่วงหน้า แทนที่จะแก้โดยตรงผ่าน การแยกส่วน LDL*...