سؤال

هل هناك مفتوح المصدر بديل MATLAB هو fmincon وظيفة مقيدة الخطية الأمثل ؟ أنا إعادة كتابة MATLAB البرنامج إلى استخدام بيثون / NumPy / SciPy و هذه هي وظيفة فقط لم أجد ما يعادل.أ NumPy الحل القائم على أن تكون مثالية ، ولكن أي لغة سوف تفعل.

هل كانت مفيدة؟

المحلول

مشكلتك محدبة?الخطية?غير الخطية?أوافق على أن SciPy.تحسين المحتمل القيام بهذه المهمة ، ولكن fmincon هو نوع من بازوكا من أجل حل مشاكل التحسين, و عليك أن تكون أفضل حالا إذا كنت يمكن أن تقتصر على واحدة من الفئات أدناه (في زيادة مستوى الصعوبة لحل بكفاءة)

الخطية برنامج (LP) الدرجة الثانية من برنامج (QP) محدب Quadratically مقيدة الدرجة الثانية من برنامج (QCQP) الدرجة الثانية مخروط برنامج (SOCP) Semidefinite برنامج (SDP) غير الخطية محدبة المشكلة غير محدب المشكلة

هناك أيضا combinatoric المشاكل مثل مختلطة صحيح الخطية البرامج (MILP) ، ولكن لم تذكر أي نوع من التكاملية القيود ، ويكفي القول أنها تقع في فئة مختلفة من المشاكل.

على CVXOpt الحزمة سوف تكون ذات فائدة كبيرة لك إذا كانت المشكلة هي محدبة.

إذا المشكلة ليست محدبة ، عليك أن تختار بين إيجاد حلول محلية أو عالمية.العديد من محدب يحلون 'نوع' العمل في غير محدب المجال.العثور على تقدير جيد إلى حل عالمي يتطلب شكلا من محاكاة التلدين أو الخوارزمية الجينية.إيجاد حل عالمي يتطلب حصر جميع الحلول المحلية أو اندماجي استراتيجية مثل فرع و لا بد.

نصائح أخرى

بيثون برامج التحسين:

مفتوحة المصدر بيثون الحزمة ، SciPy, لديه كبيرة جدا مجموعة من إجراءات التحسين بما في ذلك بعض مشاكل متعددة المتغيرات مع القيود (وهو ما fmincon لا أعتقد).مرة واحدة كنت قد SciPy تثبيت اكتب ما يلي في بيثون موجه الأوامر

مساعدة(scipy.تحسين)

مما أدى وثيقة واسعة النطاق تشمل التالية التي أعتقد أنها قد تكون ذات فائدة لك.

   Constrained Optimizers (multivariate)

   fmin_l_bfgs_b -- Zhu, Byrd, and Nocedal's L-BFGS-B constrained optimizer
                      (if you use this please quote their papers -- see help)

   fmin_tnc      -- Truncated Newton Code originally written by Stephen Nash and
                      adapted to C by Jean-Sebastien Roy.

   fmin_cobyla   -- Constrained Optimization BY Linear Approximation

غنو اوكتاف آخر MATLAB استنساخ قد يكون ما تحتاجه.

بالنسبة العددي الأمثل في بيثون قد نلقي نظرة على OpenOpt يحلون:

http://openopt.org/NLP

http://openopt.org/Problems

إلقاء نظرة على http://www.aemdesign.com/downloadfsqp.htm.

هناك سوف تجد رمز C التي تقدم نفس الوظائف ك fmincon.(ومع ذلك ، باستخدام خوارزمية مختلفة.يمكنك قراءة الدليل إذا كنت مهتما في التفاصيل.)

انها مفتوحة المصدر ولكن ليس تحت GPL.

هناك برنامج يسمى SciLab هذا هو MATLAB استنساخ.

أنا لم تستخدم على الإطلاق ، وإنما هو مفتوح المصدر و قد يكون وظيفة كنت تبحث عن.

أنا لا أعرف إذا كان هناك ولكن هناك ثعبان يسمى التوزيع Enthought قد يكون ما تبحث عنه.تم تصميمه خصيصا تحليل بيانات أكثر من 60 مكتبات إضافية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top