IPOPT: Үлкен масштабты үзіліссіз жүйелерді оптимизациялау кітапханасы
IPOPT
IPOPT – үлкен масштабты үздіксіз жүйелерді шешуге арналған C++ кітапханасы. Математикалық модельдеу, бағдарламалау үшін қолданылады. COIN OR жобасының бөлігі.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
IPOPT, "Interior Point OPTimizer, I P Opt" деп аталатын, үздіксіз жүйелердің кең ауқымды сызықтық емес оңтайландыруына арналған бағдарламалық кітапхана. Ол C++ тілінде жазылған (Fortran және C-ден көшуден кейін) және EPL (бұрын CPL) лицензиясымен таратылады. IPOPT бастапқы-қос ішкі нүкте әдісін іске асырады және Флетчер мен Лейффердің сүзгі әдістеріне негізделген сызықтық іздеулерді пайдаланады. IPOPT-ті әртүрлі модельдеу орталарынан шақыруға болады: C, C++, Fortran, Java, R, Python және басқалары. IPOPT COIN OR жобасының бөлігі. IPOPT 1-ші туынды (градиент) және 2-ші туынды (Гессиан) туралы ақпаратты пайдалануға арналған, егер ол берілсе (әдетте AMPL сияқты модельдеу орталарында автоматты дифференциациялау арқылы). Егер Гессиандар берілмесе, IPOPT оларды квази-Ньютон әдістерін, атап айтқанда BFGS жаңартуын қолдана отырып, жуықтап есептейді. IPOPT бастапқыда Ph.D. студенті Андреас Вэхтер және профессор Лоренц Т. Биглер Карнеги-Меллон университетінің Химиялық инженерия факультетінде жасаған. Олардың жұмысы 2009 жылы INFORMS Computing Society жүлдесімен марапатталды. Арвинд Рагхунатан кейіннен тепе-теңдік шектеулерімен математикалық бағдарламалауға (MPEC) арналған IPOPT кеңейтімін жасады. IPOPT-тің бұл нұсқасы әдетте IPOPT C деп белгілі ("C" әрпі "толықтыру" дегенді білдіреді). Теориялық тұрғыдан алғанда, кез келген аралас бүтін сандық бағдарламаны MPEC ретінде қайта құруға болады, бірақ оны IPOPT C арқылы шешуге болады немесе болмайды. IPOPT-ті пайдаланып MINLP (аралас бүтін сандық сызықтық емес бағдарламалар) шешу мәселесі әлі де зерттелуде. Карл Лэрд және Андреас Вэхтер IPOPT 3.0-ды жасады, бұл IPOPT-ті C++ тілінде қайта іске асыру. Вэхтер мен Лэрд осы әзірлемесі үшін 2011 жылғы J. H. Wilkinson сандық бағдарламалық қамтамасыз ету жүлдесіне ие болды.
IPOPT, short for "Interior Point OPTimizer, pronounced I P Opt", is a software library for large scale nonlinear optimization of continuous systems. It is written in C++ (after migrating from Fortran and C) and is released under the EPL (formerly CPL). IPOPT implements a primal dual interior point method, and uses line searches based on Filter methods (Fletcher and Leyffer). IPOPT can be called from various modeling environments: C, C++, Fortran, Java, R, Python, and others. IPOPT is part of the COIN OR project. IPOPT is designed to exploit 1st derivative (gradient) and 2nd derivative (Hessian) information if provided (usually via automatic differentiation routines in modeling environments such as AMPL). If no Hessians are provided, IPOPT will approximate them using a quasi Newton methods, specifically a BFGS update. IPOPT was originally developed by Ph. D. student Andreas Wächter and Prof. Lorenz T. Biegler of the Department of Chemical Engineering at Carnegie Mellon University. Their work was recognized with the INFORMS Computing Society Prize in 2009. Arvind Raghunathan later created an extension to IPOPT for Mathematical programming with equilibrium constraints (MPEC). This version of IPOPT is generally known as IPOPT C (with the 'C' standing for 'complementarity'). While in theory any mixed integer program can be recast as an MPEC, it may or may not be solvable with IPOPT C. Solution of MINLPs (Mixed Integer Nonlinear Programs) using IPOPT is still being explored. Carl Laird and Andreas Wächter are the developers of IPOPT 3.0, which is a re implementation of IPOPT in C++. Wächter and Laird were awarded the 2011 J. H. Wilkinson Prize for Numerical Software for this development.