Sekvenční kvadratické programování - Sequential quadratic programming
![]() | tento článek poskytuje nedostatečný kontext pro ty, kteří danému tématu nejsou obeznámeni.Říjen 2009) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Sekvenční kvadratické programování (SQP) je iterační metoda pro omezená nelineární optimalizace. Metody SQP se používají na matematický problémy, pro které Objektivní funkce a omezení jsou dvakrát průběžně diferencovatelné.
Metody SQP řeší posloupnost optimalizačních dílčích problémů, z nichž každý optimalizuje kvadratický model objektového objektu s linearizací omezení. Pokud je problém neomezený, metoda se redukuje na Newtonova metoda pro nalezení bodu, kde gradient cíle zmizí. Pokud má problém pouze omezení rovnosti, pak je metoda ekvivalentní použití Newtonova metoda na podmínky optimality prvního řádu nebo Karush – Kuhn – Tuckerovy podmínky, problému.
Základy algoritmu
Zvažte a nelineární programování problém formy:
The Lagrangian pro tento problém je[1]
kde a jsou Lagrangeovy multiplikátory. Opakovaně , základní sekvenční kvadratický programovací algoritmus definuje vhodný směr hledání jako řešení kvadratické programování dílčí problém
Všimněte si, že termín ve výrazu výše může být vynechán pro problém s minimalizací, protože je konstantní pod operátor.
Alternativní přístupy
- Sekvenční lineární programování
- Sekvenční lineární kvadratické programování
- Rozšířená Lagrangeova metoda
Implementace
Metody SQP byly implementovány ve známých numerických prostředích, jako jsou MATLAB a GNU oktáva. Existuje také řada softwarových knihoven, včetně open source:
- SciPy (de facto standard pro vědecký Python) má scipy.optimize.minimize (method = ‘SLSQP’) solver.
- NLopt (C / C ++ implementace, s četnými rozhraními včetně Julia, Python, R, MATLAB / Octave), implementováno Dieterem Kraftem jako součást balíčku pro optimální ovládání a upraveno S. G. Johnsonem.[2][3]
- LabVIEW
- KNITRO[4] (C, C ++, C #, Java, Python, Fortran)
- NPSOL (Fortran)
- SNOPT (Fortran)
- NLPQL (Fortran)
- MATLAB
- SuanShu (Jáva)
Viz také
Poznámky
- ^ Jorge Nocedal a Stephen J. Wright (2006). Numerická optimalizace. Springer. ISBN 978-0-387-30303-1.
- ^ Kraft, Dieter (září 1994). „Algoritmus 733: TOMP – Fortranské moduly pro optimální řídicí výpočty“. Transakce ACM na matematickém softwaru. 20 (3): 262–281. CiteSeerX 10.1.1.512.2567. doi:10.1145/192115.192124. S2CID 16077051. Citováno 1. února 2019.
- ^ Kraft, Dieter (červenec 1988). „Softwarový balíček pro sekvenční kvadratické programování“. Technická zpráva DFVLR-FB 88-28. Oberpfaffenhofen: Institut für Dynamik der Flugsysteme. Citováno 1. února 2019.
- ^ KNITRO Uživatelská příručka: Algoritmy
Reference
- Bonnans, J. Frédéric; Gilbert, J. Charles; Lemaréchal, Claude; Sagastizábal, Claudia A. (2006). Numerická optimalizace: Teoretické a praktické aspekty. Universitext (druhé přepracované vydání překladu z roku 1997, francouzské vydání). Berlín: Springer-Verlag. str. xiv + 490. doi:10.1007/978-3-540-35447-5. ISBN 978-3-540-35445-1. PAN 2265882.
- Jorge Nocedal a Stephen J. Wright (2006). Numerická optimalizace. Springer. ISBN 978-0-387-30303-1.
externí odkazy
![]() | Tento aplikovaná matematika související článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |