Прикладна практика оптимізації і трохи історії

«Тисячу доларів за один удар кувалдою?!» - розкричав здивований, але щасливий (і врятований вирішенням проблеми) інженер парової машини. «Ні, удар коштує 1 $, решта - за знання куди, коли і як сильно вдарити» - відповів старий майстер.


Типу епіграфа

У патентуванні є така категорія винаходів, коли патентується не те, що людина/колектив придумала (воно вже досить давно відомо, наприклад, клей), і не новий спосіб досягнення актуальної мети (наприклад, герметизація рани від інфекції). А патентується, наприклад, застосування широко відомої речовини в абсолютно новому (для даної речовини), але теж добре і давно відомому для досягнення мети застосуванні. "А давайте спробуємо заклеїти рану клеєм БФ-6? О! А він, виявляється, має бактерицидні властивості..., і рана під ним дихає..., і швидше заживає! Треба застовпити і застосовувати! "

У прикладній математиці є інструменти, грамотне застосування яких дозволяє вирішувати оч-ч-чень велике коло найрізноманітніших завдань. Про це я і хочу вам розповісти. Може кого натраплю на пошуки свого нетривіального застосування успішно освоєних алгоритмів або прийомів/програм. Тут буде мало відсилань на суворі математичні інструменти або співвідношення, більше якісний розбір переваг і додатків чисельного методу (методів), який зіграв у моєму житті велику роль і став основою вирішення важливих професійних завдань.

Досить давно (при захисті дисертації і роботі на військово-космічному підприємстві, Краснодар) був розроблений інструментарій для вирішення завдань оптимізації - пошуку локального екстремуму багатопараметричної функції на деякій безлічі обмежень для її параметрів. Такі методи широко відомі, наприклад, майже всі знайомі з методом найшвидшого спуску (Градієнтний узвіз).

Комплекс програм (спочатку Fortran, потім Pascal/Modce2, нині алгоритм упокоївся в добре спадкованому, зручному і універсальному VBA/Excel) реалізовував кілька різних відомих методів пошуку екстремуму, які вдало доповнювали один одного на дуже широкому класі завдань. Вони були легко взаємозамінні і, встановлені в стек (наступний стартував з оптимуму, знайденого попереднім, з широким охопленням можливих початкових значень параметрів), досить швидко знаходили мінімум і «дотискали» цільову функцію з хорошою гарантією глобальності знайденого екстремуму.

Наприклад, із застосуванням цього комплексу програм була побудована модель автономної системи, що складається з сонячних батарей, акумуляторів (тоді тільки-тільки з'явилися довговічні нікель-водневі), корисного навантаження і системи управління (орієнтація батарей і перетворення енергії для навантаження). Все це проганялося на заданому періоді часу під впливом зовнішніх метеоумов в заданій місцевості. Для цього також була створена модель погоди (мною самостійно, через 7 років після Бредлі Ефрона, перевідкритим) методом "статистичний бутстреп" ". При цьому, в якості вихідної «цеглинки» для моделі сонячної батареї (і батареї акумуляторів) використовувалися моделі реальних параметрів кремнієвих пластин (акумуляторів), з яких збиралися батареї з урахуванням їх статистичного розкиду при виробництві і схеми збірки. Модель автономної системи дозволяла оцінити розміри і конфігурацію сонячної та акумуляторної батареї, достатні для вирішення поставлених завдань в заданих умовах функціонування системи (тут прямо фізично дізнався/згадав суконну промову полковника Першого відділу).

Вимірювання кремнієвих пластин фотоелементів на виході техпроцесу та ідентифікація параметрів моделі одиничного елемента методом оптимізації дозволили створити масив параметрів елементів, що описує статистичні параметри поточного техпроцесу виробництва сонячних елементів.

Математична модель вольтамперних характеристик (ВАХ) сонячного елемента, добре відома, параметрів там небагато. Підібрати параметри моделі ВАХ сонячного елемента з мінімальним середньоквадратичним відхиленням - це класичне завдання пошуку мінімуму цільової функції (сумарний квадрат відхилень на ВАХ).

Отримані методом Монте-Карло параметри готової сонячної батареї відображали можливий стохастичний розкид її параметрів при заданій структурі з'єднання елементів. Побудова моделі батареї, зібраної з моделей сонячних елементів, дозволяла, зокрема, вирішувати і завдання оцінки втрат потужності батареї при ушкодженнях (війна в Афганістані була в розпалі, а в космосі метеорити літають), і втрат через часткове затінення (сніг, листя), що призводило до виникнення небезпечних пробійних напружень і необхідності грамотно розміщувати шунтуючі діоди для зменшення втрат у середньому потужності. Все це були вже стохастичні завдання, що вимагають величезного обсягу обчислень з різним розкидом вихідних параметрів «цеглинок», схем з'єднання батареї і впливових факторів. «Танцювати» від первинної ідентифікованої моделі сонячного елемента в таких розрахунках було накладно, тому будувався ланцюжок моделей: первинної кремнієвої пластини, блоку з яких збиралася вся батарея (якщо був потрібен аналіз структурної схеми), і самої батареї. Параметри цих моделей ідентифікувалися за допомогою методів оптимізації, а масив елементів структури батареї для її розрахунку генерувався методом Монте-Карло з урахуванням стохастичних варіацій (масив параметрів + статистичний бутстреп).

Вирішувані завдання все ускладнювалися. На початку була ідея найбільш «обчислювально-ємні» частини методів оптимізації зробити на асемблері, але в міру зростання продуктивності спочатку СМ-ЕВМ (завдання вважалися за ніч), а потім ПК (нині найскладніші завдання вимагають годину-дві), необхідність оптимізації програми оптимізації (шедевр тавтології) відпала. До того ж, «обчислювально-ємними» виявляються в більшості випадків самі цільові функції.

Тут необхідно повернутися до частково вже порушеної універсальності методів оптимізації і співвіднести їх з іншими методами чисельного аналізу. Основні застосування розробленого інструментарію:

- ідентифікація параметрів теоретичної моделі за вихідними (експериментальними або обчисленими) даними;

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

- чисельне вирішення систем довільних (!) рівнянь.

Начебто небагато, але цей клас завдань «накриває» великий спектр реальних прикладних завдань математики в промисловості, науці, приклад з моделлю автономної системи тому свідчення.

В арсеналі класичних методів чисельного аналізу є ефективні прямі методи/підходи вирішення деяких стандартних завдань (наприклад, систем рівнянь з поліномами невисоких ступенів), для них розроблені спеціальні бібліотеки програм. Однак, коли кількість параметрів/невідомих перевищує 4-5 (і обчислювальні витрати катастрофічно наростають), і/або коли вид рівнянь далекий від класичних (не поліноми тощо), а в житті, як правило, все складніше (вихідні дані зашумлені похибками і помилками вимірювань), готові бібліотеки програм виявляються малоефективними.

Наведу ще один приклад з відносно недавнього застосування розробленого інструментарію для вирішення завдань оптимізації з життя.

Для якоїсь дисертації з експериментальних (польових) даних потрібна була ідентифікація теоретичної моделі, яка повинна була ці дані описати і дозволяла дати реальні рекомендації щодо підвищення ефективності суміжного технологічного процесу. Кожен відсоток поліпшення техпроцесу виправдовував неодноразову подорож на польові випробування (і прилеглі пляжі) першим класом через півсвіту і придбання шикарного джипа Лексус тільки для проїзду по полях (та ще й з приємною довгоногою блондинкою, яка вміє не тільки варити борщ:). Проблема була в тому, що таких моделей було кілька, вибрати застосовність однієї з них могла ідентифікація і якість відтворення даних експерименту, а параметрів у цих моделях було від 6 до 9, і потенційно найбільш корисна модель за законом бутерброда була найскладнішою.

Нижче наводяться вихідні експериментальні дані (X, Y, Z), 19 вимірювань:

І приклад апроксимації кривої (U3 - експеримент, U3R - розрахунок за моделлю) при ідентифікації найскладнішої дев'яти-параметричної моделі (a1... a9 - параметри моделі):

Формула цієї моделі:

Якщо у вас виникає потреба в подібних роботах - я міг би робити розрахунки за наданими даними і надіслати результати електронною поштою, щоб оцінити переваги розробленого 1916. апарату.

Це затребуваний спектр завдань в науці, на виробництві, при підготовці дисертацій, серйозних дипломів, обробці даних, побудові моделей. Причому якийсь обман виключений, бо за наданими результатами кожен може сам оцінити досягнуту реально точність розрахунку.

Опишіть ваші проблеми в обробці даних - і я знайду, як отримати рішення, програма повинна працювати!

Зацікавлений отримати погляд з боку на описане, можливо, на нові сфери застосування. Буду вдячний за корисні зауваження і кооперацію.