Зробив я запит у чаті:

Чи є бажаючі більш детально почитати про те що таке оптимізація, які там є складності, і як може виглядати (з моєї точки зору) інструмент, який може мати назву Генеративного Дизайну, так щоб відповідати всім тим маркетинговим заявам що накрутили вендори світу САПР?
Ставьте вогники, пальці вгору, а ще краще – відмічайтеся в коментарях. В понеділок підрахуємо кількість і визначимося.P.S. Хоча якщо знайдуться бажаючі перекласти матеріали на інгліш, то все це значно прискориться
Нажаль перекладати ніхто не захотів. всі такі ж ледачі як і я 😉 але відгук для поточної авдиторії досить непоганий то ж почнемо.
І спочатку про “солом’яну солому” тобто “масло масляне” тобто “самьій оптимальньій” або найбільш оптимальний, або “найоптимальніший” або навіть про “Optimus Prime”. Розумію що остання фраза здебільшого асоціюється з автоботами/трансформерами..

Але той самий оптімус прайм має переклад. І перекласти з латинської мови це можна на кшталт “найоптимальніший” або точніше “найкращій перший” – “перший серед кращих”. Тут за бажанням можна побачити відсилку до “першого серед рівних”… але то вже не наша історія. тож повернемося до нашого оповідання.
Не дивлячись на те що словоформи “найоптимальніший” “найбільш оптимальний” є загально вживаними… вони не є коректними. Через те що оптимальний – вже означає найліпший серед усіх можливих. Тобто він один. Але ми знаємо з історії як едина сутність стає триєдиною і все таке… тому не дивно що люди використовують некоректні фрази. Тим більше що навіть математики чи люди які професійно матюкаються на такі фрази (я про “найбільш оптимальний”) все одно самі їх часто вживають. Іноді з дісклемерами, які пояснюють цей випадок, іноді просто.. бо так простіше і зручніше.
Ані поточне оповідання, ані всі додаткові серії не претендують на абсолютну математичну суворість формулювань, бо орієнтовані на більш широку публіку. Але все ж я буду намагатися якось балансувати між точністю та доступністю. Тому всі публікації будуть мати “багатолітер” і будуть трохи незграбними. Але маю надію, що відносно корисними і відносно ж цікавими.
І тому, для початку я нагадаю, що вже є дещо про оптимізацію:
- Що не так с Generative Design у Autodesk?
- Порівняння SolidWorks vs Fusion 360. Topology Optimisation/Generative Design/Computational Design
- Швиденько про Методи Оптимізації Геометрії
А тепер можна сказати, що, історично, є дви принципово різні “оптимізації” (у галузі проектування). Коли замовник Вам пропонує оптимізувати конструкцію, слід запитати що саме він має на увазі. Бо хтось з замовників хоче, щоб ви провели повноцінну задачу оптимізації з параметрами, критеріями, функціями відгуку (про це пізніше), а хтось хоче щоб ви щось змінили в проекті, щоб цей проект став трохи кращим. Що саме ви будете змінювати, яким чином і все таке – це часто не є важливим, головне щоб ви пояснили чим ця нова ітерація проекту краща за попередню і він з цим погодився. Хтось може щменшити металоємність, хтось уніфікувати матеріали, хтось замінити більш коштовні матеріали на більш дешеві, хтось змінить положення отвору і цим підвищить коефіцієнт запасу. Варіантів – купа. В цьому іноді є проблема, бо треба зрозуміти чого хоче замовник. Але треба розуміти, що головна відмінність від першого варіанту в тому, що тут ніхто не вимагає проводити повноцінну оптимізацію, що е технічно і математично складною задачею. Тут вся складність скоріш у психологічнії площині, ніж у технічній
На поточний момент до цих двох історичних варіантів додався третій – коли замовники просять оптимізувати геометрію з використанням генеративки, біоніки, та інших методів оптимізації геометрії. Тобто їм важливо, щоб конструкція була вся з себе інноваційна і це було наочно. От прям з першого погляду. От прям кожному, хто навіть нічого ні в чому не розуміє… А точніше особливо таким.
Саме через ці останні два варіанти я і вщяв слово оптимізація в лапки. До них ми також повернемося, а поки займемося першим варіантом і описом того, чому це важливо, в чому переваги, складноші і всі інші “циміси”. І поступово ви дізнаєтеся що треба зробити, щоб це слово (оптимізація) можна було писати без лапок по відношенню до того, що зробили Ви.
Нагадаю, що ми будемо наводити приклади і взагалі працювати не з усіма можливими напрямками і питаннями оптимізації, а переважно з тими, що мають відношення до проектування. При цьому, слід зазначити, що я сам є “механіком” і “спеціалістом з розрахунків” ну тобто “спец. з обчислювальної механіки”. Це важливо, бо термін “проектування” – також є дуже широким, і не все що я буду писати підходить під будь які питання проектування навіть механічних об’єктів. Тому, краще все прочитане переосмислити на предмет того, як це можна адаптувати до Ваших задач і галузей.
В принципі на цьому можна було б поставити крапку. Але я почав відлік частин не з 0 а з 1. А це означає, що окрім загально-в”водних” частин, непогано дати хоч якийсь мінімум за темою. Ну а через те, що я ледача людина… звернемось до вікіпедії та інших класичних джерел кристально чистої води..
То ж
Математичною оптимізацією (інколи, оптимізацією) або математичним програмуванням в математиці, інформатиці та дослідженні операцій називають відбір найкращого елементу (за певним критерієм) з множини доступних альтернатив.[1]
У найпростішому випадку задача оптимізації полягає у знаходженні екстремуму (мінімуму або максимуму) дійсної функції шляхом систематичного вибору вхідних значень з дозволеного набору та обчислення значення функції. Подальші узагальнення теорії та методів оптимізації до інших формулювань становлять велику область прикладної математики. Взагалі, оптимізація охоплює знаходження «найкращих можливих» значень деякої цільової функції в межах області визначення, включаючи різні типи цільових функцій та різні типи областей значення.
https://uk.wikipedia.org/wiki/Оптимізація_(математика)
Екстремум, мінімум, максимум, програмування… цільова функція… Шось якоссь краще не стало. А ще тут повинні бути якісь критерії, параметри, методи оптимізації, обмеження, умови…. бр…
Взяли і на таку просту штуку як пошук чогось гарного, або ще краще найліпшого і накрутили якойсь фігні, щоб мізки перестали працювати!
А про задачі оптимізації, навіть класики писали. Наприклад:
Если бы губы Никанора Ивановича да приставить к носу Ивана Кузьмича, да взять сколько-нибудь развязности, какая у Балтазара Балтазарыча, да, пожалуй, прибавить к этому ещё дородности Ивана Павловича — я бы тогда тотчас же решилась.
М.Гоголь. Женитьба
Якщо трохи подумати над темою, то можна знайти і більш старі приклади. Досить важливим прикладом оптимізації є стародавній грецький герой Ахілес. Його доля теж є гарною ілюстрацією до теми оптимізація. Але про то пізніше. Але і тут, на цих прикладах бачимо, що задача пошука найкращого варіанта ніколи не була простою, бо чого б тоді “губи” треба було додавати до “розв’язності”… чи ще шось таке вигадувати.
Якщо уважно перечитати визначення, то стає зрозумілим, що оптимізація це процес пошуку чогось найкращого. З процесом зрозуміло. Саме тому всілякі теоретики так люблять оптимізацію, бо для них шлях важливіший за мету

Поки ти на шляху пошуку оптимальної конструкції, то єдине за що тебе можна лаяти це за те що довго. Але ж оптимізація це процес нешвидкий, і тому не вийде. Ти ж не аби що шукаєш, а щось найліпше серед усього існуючого. І якщо з початку такі люди дійсно хочуть знайти оптимум, то потім вони розуміють, що що б ти не знайшов, – ти одразу попадеш під тонни хейту та критики. Бо у кожного ліпшого варіанта, який був оптимізованим, завжди є слабке місце (пригадуємо дородність п’яту Ахілеса). І навіть відсутність слабких місць може бути слабким місцем… як би дивно це не звучало. Саме тому, в певний момент мета людини змінюється, іперетворюється із “знайти” до “шукати”.
Ну ладно, з процесом зрозуміло (я повторююсь, але це нормально). Так от. З процесом зрозуміло. Але як можна критикувати найліпший варіант? Він же найліпший! І тут можна погодитись, але доводиться запитати, а хто Вам сказав що він дійсно найліпший? Чому ви так вирішили? Бо навіть якщо обраний варіант дійсно отримав найкращі оцінки… а судді хто? (с) А критерії згідно до яких проводилося оцінювання? А шкала?
І от тут стає зрозумілим, що навіть якщо судді є безпристрасними. Навіть якщо оцінювання є вірним… то завжди вилізає проблема тих самих критерієв. Для когось он нос був важливий, а комусь просто грошей достатньо… комусь міфічних гарний характер треба, а комусь шоб чоловік не помер наступивши п’ятою на кубік Лего (вибачте я знов про Ахілеса). І саме ось тут починаються приколи. Тобто від того за якими критеріями ми будемо робити оцінку, навіть в ідеалі буде залежатирезультат. І невеличка зміна критерієв або балансу між ними… і результат оптимізації буде зовсім іншим…
Класична картинка:

Окей з балансом, та критеріями думаю розібралися. Що таке екстремум? Це те що можна назвати або максимум або мінімум: Максимальна якість… мінімальна ціна… максимальна маржа.
Математики майже завжди описують задачу оптимізації або як задачу мінімізації або як задачу максимізації (тобто пошуку мінімум або максимуму). І це не означає, що ті хто звик вирішувати задачу мінімізації не можуть щось максимізувати (наприклад якість, чи запас міцності). Вони просто звикли працювати в тій системі коли цей результат буде мінімумо. Максимальна якість перетворюється на мінімальну не якість. Є купа варіантів, якщо Х це максимум, то вони просто шукають “1/Х” або “-Х”. Дивні люди ті математики, але мої предки (згідно до класичних анекдотів) були такими ж. Бо кажуть що у “татаро-монголів” не було терміну “відступати”, було розвернути коня і “алга” (тобто уперед). Як бачимо нічого нового математики не придумали.
Тож якщо я замість оптимізації і пошуку екстремуму і все таке буду казати мінімізація чи максимізація – то здебільшого будуть синоніми. Якщо різниця буде важливою – буду проговорювати.

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

Шо тут слід сказати? Формально Глобальний максимум може бути тільки один, як і глобальний мінімум (але це не точно, і про це поговоримо окремо), локальних мінімумів та максимумів може бути до….. екстремально багато. Дуже часто, особливо для багатопараметричних і багатокритеріальних оптимізацій, саме локальні “мінімуми” і випадають в якості результатів. І тому також з’являється фраза про те, що в нас є купа оптимумів і найоптимальнішим…. ну ви зрозуміли. Хоча ще раз. Те що ми знайшли купу локальних оптимумів не означає що ми знайшли всі, не означає що серед них є глобальний і взагалі нічого не означає (але про це також пізніше). І важливо лише те, що з точки зору теорії – оптимум може бути лише один – той, який є найбільш оптимальнішим серед усіх найоптимальніших… Ну ви ж зрозуміли 😉
І ми тут пригадали про параметри. А що ж це таке? А це те, чим ми можемо гратися для того щоб знайти ті самі оптимуми.
Сюди може влізти все, що може змінюватись під час проектування: геометрія, розміри, матеріали… Навіть критерії можуть бути параметричними іноді. Але це часто коли купу окремих задач оптимізації пхають в одну (приблизно як це робить інструмент генеративного дизайну від Autodesk) і називають цю сукупність – більш глобальною оптимізацією. А шо? чом би й ні?

Окей, якщо в нас є параметри, від яких залежить оцінка за якимось критерями, і зі зміною параметрів змінюєть та сама оцінка… то з точки зору математики немає нічого більш простого аніж назвати це функцією. І той факт що ця функція не є відомою і взагалі може не мати жодного удобоваримого аналітичного вигляду, щоб це було схоже на ті формули, які ми бачили у школі, чи навіть ВНЗ – то не є важливим. Але щоб відрізнити таку невідому функцію від звичайних їй дали ім’я: цільова функція. Одразу стало простіше, бо хоч хто ззна як вона виглядає, вона існує не просто так а заради оптимізації. І це вже не пошук чорної кішки в темній кімнаті… це вже її величність МАТЕМАТИКА.
Ну і раз ми повернулися до такої аналогії як кішка… Ви ж розумієте, що результат, чи знайдемо ми ту кішку, залежить не тільки від наявності кішки, але і від купи різних умов: чи буде кішка бігати, чи буде сидіти спокійно, чи є в нас ліхтарик… наскільки велика кімната, наскільки велика кішка (а то можемо і не зрадіти коли знайдемо)… чи одна там кішка чи купа, від методів пошуку кішки, від кількості людей, шо шукають, від розмірів сітки, якими кішку ловлять, від міцності сітки…. Короче є дуже багато всього. Ось це і є умови, обмеження, методи та все інше. І тут простіше буде перейти до описів, а аналогії або по місцю, або самі вигадаєте.

Ну що в основі трохи сказали. Айда ловити кішку?

2 відповіді до “Оптимізація у Проектуванні. Ч.1. Optimus Prime”
[…] базовими термінами ми трохи визначились в першій частині. Слід скаазти що це не всі терміни які мають […]
[…] Ч.1. Optimus Prime […]