CVXOPT VS OpenOpt


11

BTW มีห้องสมุดทั่วไปที่มีคุณภาพสูงอื่น ๆ ที่มีจุดประสงค์ในการปรับให้เหมาะสมสำหรับ Python / C ++ หรือไม่?

คำตอบ:


11

CVXOPT แก้ปัญหาเฉพาะ (เรียบและไม่ลื่น) ทำให้สามารถเข้าถึงนักแก้ปัญหานูนบุคคลที่สามได้หลายรายพร้อมรับประกันความซับซ้อนของกรณีที่แย่ที่สุด คุณอาจก่อให้เกิดข้อ จำกัด เชิงเส้น, สมการกำลังสอง, เชิงเส้น semidefinite และข้อ จำกัด ประเภทอื่น ๆ ของนูน

OpenOpt แก้ปัญหาโปรแกรมไม่เชิงเส้นทั่วไป (ราบรื่นและไม่ลื่น) รวมถึงปัญหาเกี่ยวกับข้อ จำกัด จำนวนเต็ม แตกต่างจาก CVXOPT แต่ก็ไม่มีซอฟต์แวร์สำหรับการแก้โปรแกรม semidefinite นักแก้ปัญหาทั้งหมดเขียนโดย Dmitrey Kroshko และไม่มีประวัติยาวนานดังนั้นการทดสอบอาจมีข้อ จำกัด OpenOpt เอง _not- ส่วนต่อประสานกับผู้แก้ไขบุคคลที่สามทั่วไป

อย่างไรก็ตามมี '' OpenOpt Framework '' (http://openopt.org/OOFramework) ที่เชื่อมต่อกับ IPOPT (กล่าวถึงในความคิดเห็นอื่นมันไม่สามารถแก้ปัญหาที่ไม่นุ่มนวล), CVXOPT และตัวแก้ปัญหาอื่นที่มีใน Python

นอกเหนือจากอินเทอร์เฟซนี้ไม่มีความสัมพันธ์ระหว่างแพ็คเกจเหล่านี้ วิธีการนั้นแตกต่างกันอย่างสิ้นเชิง สิ่งที่พบได้ทั่วไปเพียงอย่างเดียวอาจเป็นภาษา Python และการเข้าถึง LAPACK

สำหรับปัญหานูนผมยังชอบที่จะแนะนำ
CVX: Matlab ซอฟต์แวร์สำหรับวินัยนูน Programming http://cvxr.com/cvx ,
ที่ผู้เขียนที่ได้รับในปีนี้เป็นที่น่าเกรงขามมาก Beale-Hays-ออชาร์ดได้รับรางวัลความเป็นเลิศในการเขียนโปรแกรมคำนวณทางคณิตศาสตร์ . มันเขียนใน Matlab แม้ว่า
พวกเขายังมี Python '' version '' ที่เรียกว่า CVXPY http://www.stanford.edu/~ttinoco/cvxpy/แต่ CVXPY นั้นเป็นเพียงส่วนต่อประสานที่ดีและมีประโยชน์ '' disciplined '' กับ CVXOPT ซึ่งเป็นที่หนึ่ง สามารถตรวจสอบให้แน่ใจว่าเมื่อโปรแกรมถูกต้องทางไวยากรณ์มันเป็นปัญหาการเพิ่มประสิทธิภาพนูน


4

OpenOpt ส่วนใหญ่เป็นเพียงส่วนต่อประสานกับนักแก้ปัญหาอื่น CVXOPT เป็นหนึ่งในนักแก้ปัญหาโอเพนซอร์ซที่เป็นรากฐานของ OpenOpt ดังนั้นหากคุณไม่มีนักแก้ปัญหาเชิงพาณิชย์ที่คุณต้องการใช้คุณอาจต้องการติดตั้ง CVXOPT ในทุกกรณี AFAIK, CVXOPT เป็น state-of-the-art ระหว่างห้องสมุดโอเพ่นซอร์สอย่างน้อยสำหรับการเขียนโปรแกรมกรวยลำดับที่สองและการเขียนโปรแกรมกึ่งแน่นอน


1
ผมไม่คิดว่ามันจะทำให้ความรู้สึกที่จะพูด CVXOPT เป็นหลักเปิดแหล่งที่มาแก้พื้นฐาน OpenOpt ทำไมมันจึงเป็นสิ่งที่สำคัญกว่าพูด IPOPT หรือนักแก้ปัญหาพื้นฐานอีกโหล?
David Ketcheson

บางทีอาจจะแก้ SOCP หลักคือถูกต้องมากขึ้น (?)
มาร์คสั่น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.