sitemeter UAflag

    Home    About    Documentation    Install    Newsline    Links    Feedback    Appeal    Guestbook

truzyb
html hit
counter
since 2007/10/24

ця сторінка російською мовою


Ця сторінка застаріла, оновлена знаходиться на www.openopt.org/ForewordUA

Вступ до проекту OpenOpt

Інститут кібернетики ім. Глушкова НАН України, м. Київ

icyb

Задачі чисельної оптимизації виникають майже усюди - у физиці, економіці, хімії, біології тощо. Наприклад:

  • мінімізація затрат палива літаків, вертольотів, автотранспорту
  • максимізація прибутку крамниці
  • максимізація росту садженців сільськогосподарских культур
  • мінімізація загальноі довжини шляхів (авто-, з/д- транспорт, інтернет-мережі)

при усіяких умовах та обмеженнях, наприклад

  • мінімальна та максимальна швидкість
  • оборотні кошти, ризик на банкрутство, площа вітрин
  • освітлення, водопостачання та пов'язані з ними фінансові затрати
  • пропускна здатність ланок та вузлiв мережі.

Математично відсотків 90..95 з них зводиться до одного-двох десятків головних класів, таких як LP, QP, NLP, MILP и таке інше. Ось, наприклад, як графічно зображують це співробітники NEOS.

Програмне забеспечення для розв'язування задач чисельної оптимiзації коштує тисячі, а iнколи й десяткі тисяч долларів (приклад)
Окрім того, приблизно 10% на рік доводиться витрачати на оновлення програмних біблиотек.

Останнім часом за спонсорської підтримки рiзноманітних фондів, керівницьтв університетів, окремих корпорацій (IBM), з'явилась велика кількість конкурентноспроможнього безкоштовного програмного забеспечення для розв'язування задач чисельної оптимізації. Але майже усі більш-меньш відомі програмні пакети, пов'язані з чисельною оптимізацією, як коштовні так і безкоштовні, розробляються у США або у державах Західної Європі (Німеччина, Англія), тому технічна підтримка користувачів дуже коштовна. Окрім того, більшість безкоштовних бібліотек мають лицензію GPL/LGPL, що має обмеження copyleft, яке забороняє використовувати його у програмному забеспеченні з закритим або іншим кодом, який не є вільним.

Українське вільне ПЗ OpenOpt, крім власних вирішувачів, має декілька інтерфейсів до інших (теж бескоштовних), деякі з котрих написані на С та Fortran (доречі, для матриць та операцій над ними OpenOpt використовує numpy що написан на С та також має ліцензію BSD). Про його популярність свідчить вже хоча б кількість відвідувачів сайту – на початку вересня (2007) 10..12 людин/добу, наразі (початок грудня 2007) 35..50, більшою частиною з США та Західної Европи (у СНД зараз надаюсь перевагу неліцензійному MATLAB).

Якщо виникає така потреба, підключення С/С++/Fortran коду до Python набагато легше ніж, наприклад, застосування MATLAB MEX-функцій. На думку багатьох експертів, розробка ПЗ на Python швидша за Fortran у 2 рази; треба зазначити, що це не лише людино-години програмістів, але й плата іншим співробітникам, за аренду приміщень і таке інше.

Деякі з вирішувачів можуть отримати велике пришвидшення за допомогою openopt oofun (погляньте на приклад 10-кратного пришвидшення)

See also

Інше наукове ПЗ мовою програмування Python
website українських програмістів Python
OpenOpt homepage