ForewordRU
From OpenOpt
Задачи численной оптимизации возникают практически везде - в физике, экономике, химии, биологии и тд. Например:
- минимизация расхода топлива самолетов, вертолетов, автотранспорта
- максимизация прибыли магазина
- максимизация роста саженцев сельскохозяйственных культур в теплицах
- минимизация прокладки путей сообщений (авто-, ж/д- транспорт, интернет-сети)
- при всевозможных ограничениях, например
- минимальная и максимальная скорость
- оборотные средства, риск на разорение, объем витрин
- освещенность, водоснабжение и финансовые расходы на них
- пропускная способность ветвей и узлов сети.
Математически процентов 90 из них сводится к одному-двум десяткам основных классов, таких как LP, QP, NLP, MILP и тд. Вот, например, так представляют это сотрудники NEOS.
Программное обеспечение для решения задач оптимизации стоит тысячи, а иногда и десятки тысяч долларов (пример, еще один).
Кроме того, примерно 10% в год приходится тратить на обновление программных библиотек.
В последнее время, в основном благодаря спонсорской поддержке со стороны различных фондов, руководств университетов, отдельных корпораций (IBM), появилось большое количество конкурентоспособного бесплатного программного обеспечения. Однако, практически все более-менее известные программные пакеты, связанные с численной оптимизацией, как платные так и бесплатные, разрабатываются в США или западной Европе (Германия, Англия), поэтому техническая поддержка очень дорогая. Кроме того, большинство бесплатных пакетов имеют лицензию GPL/LGPL, содержащее ограничение copyleft, затрудняющее внедрение в программное обеспечение с закрытым или другим несвободным кодом.
Наше бесплатное ПО OpenOpt включает несколько собственных решателей (например ralg) и интерфейсы к ряду других (также бесплатных), многие из которых написаны на С/Fortran (кстати, для матриц и операций над ними OpenOpt использует NumPy, который написан на С (последние версии используют и MKL/ACML) и также имеет лицензию BSD). Дополнительные возможности RAD могут быть получены при использовании FuncDesigner, особенно автоматическое дифференцирование для нелинейных задач. Про популярность OpenOpt свидетельствует также и посещаемость сайта – в начале (сентябрь 2007) 10..12 человек/день, сейчас (январь 2009) 50-70 (по будням), в основном из США и Западной Европы (в СНГ пока предпочитают использовать нелицензионный MATLAB); ~15% из них заходят на страницу инсталляции, многие другие устанавливают наше ПО из PYPI, mloss.org, pythonxy.com, репозитариев Debian, Alt Linux, SAGE, mac.softpedia.com и тп.
Если возникает такая необходимость, подключение С/С++/Fortran кода к Python намного проще чем, например, применение MATLAB MEX-функций. Как отмечают многие эксперты, разработка ПО на Python примерно в 2 раза быстрее чем Fortran (+ требуется писать намного меньше кода, что делает его более читабельным); следует отметить что это не только человеко-часы программистов, но и плата другим сотрудникам, за аренду помещений и тд. Неудивительно, что на преподавание Python уже перешел даже MIT (ведущий технический ВУЗ США), и даже студенты факультету кибернетики КНУ уже используют его в своих лабораторных работах (пример).
Смотрите также
- Некоторые пользователи нашего ПО
- Другое научное ПО на языке программирования Python
,
- Website украинских программистов Python
- Страница OpenOpt на wikipedia.org
- Ця сторінка українською мовою



