You are on page 1of 13

MANUALIA UNIVERSITATIS STUDIORUM SPALATENSIS UDBENICI SVEUILITA U SPLITU FAKULTET ELEKTROTEHNIKE, STROJARSTVA I BRODOGRADNJE

Damir Vuina

METODE INENJERSKE NUMERIKE OPTIMIZACIJE


S PRIMJERIMA PRIMJENE U PROGRAMSKOM JEZIKU C I MATLAB

FESB Split, 2005

MANUALIA UNIVERSITATIS STUDIORUM SPALATENSIS UDBENICI SVEUILITA U SPLITU Autor Prof. dr.sc. Damir Vuina Recenzenti Prof. dr.sc. Nataa Bili Prof. dr.sc. Ivan Slapniar Doc. dr.sc. Gojko Magazinovi Izdava Fakultet elektrotehnike strojarstva i brodogradnje Za izdavaa Prof. dr.sc. Dinko Begui, dekan Predsjednik povjerenstva za izdavaku djelatnost FESB-a Prof.dr.sc. Radoslav Pavazza Glavni urednik Prof.dr.sc. Ivan Zulim Lektor Vesna Hrdlika, prof. Objavljivanje ovog sveuilinog udbenika odobrio je Senat Sveuilita u Splitu odlukom broj: 01-1-35/1-14-2005. dana 22. rujna 2005. godine. CIP - Katalogizacija u publikaciji SVEUILINA KNJINICA U SPLITU UDK 519.852 (075.8) 004.4 (075.8) VUINA, Damir Metode inenjerske numerike optimizacije: s primjerima primjene u programskom jeziku C i MATLAB / Damir Vuina. - Split : Fakultet elektrotehnike, strojarstva i brodogradnje, 2005. Bibliografija. - Kazalo ISBN 953-6114-79-8 120226049 ISBN 953-6114-79-8

1.Uvod i osnovni pojmovi

Damir Vuina

METODE INENJERSKE NUMERIKE OPTIMIZACIJE


S PRIMJERIMA PRIMJENE U PROGRAMSKOM JEZIKU C I MATLABU

Sadraj:
PREDGOVOR 1. UVOD I OSNOVNI POJMOVI 1.1. Uvod 1.2. Faze postupka inenjerske optimizacije 1.3. Podjela problema i metoda optimizacije 1.4. Osnovni pojmovi i formulacija modela za optimizaciju 1.5. Matematike osnove i pojmovi 1.6. Praktini aspekti kod optimizacije 1.7. Funkcija cilja kod primjera u praksi 1.8. Primjeri modeliranja 2. OSNOVE LINEARNOG PROGRAMIRANJA (LP) I SIMPLEKS METODA 2.1 Standardni oblik problema LP 2.2 Simpleks metoda 2.2.1. Jednofazni postupak, zadani problem s ogranienjima ( ) 2.2.2. Dvofazni postupak, zadani problem s ogranienjima ( , =, ) 2.3. Rjeavanje problema linearnog programiranja Primjeri primjene 3. NUMERIKE METODE ZA ODREIVANJE OPTIMUMA KOD 1-DIMENZIONALNIH PROBLEMA 6 10 10 14 21 22 30 64 74 76 89 89 95 95 101 106

119

D. Vuina: Metode inenjerske numerike optimizacije

1.Uvod i osnovni pojmovi

3.1. Postupak polovljenja intervala 3.2. Postupak zlatnog reza 3.3. Postupak Fibonacci 3.4. Postupci kvadratne i polinomne interpolacije Primjeri primjene

122 123 125 126

4. METODE OPTIMIZACIJE KOD NELINEARNIH 139 n-DIMENZIONALNIH PROBLEMA BEZ OGRANIENJA 4.1. Negradijentne metode optimizacije 4.1.1. Postupak Hooke- Jeeves 4.1.2. Nelder- Mead simpleks postupak 4.1.3. Powellov postupak 4.2. Gradijentne metode optimizacije 4.2.1. Postupak najbreg pada (spusta) 4.2.2. Postupak konjugiranih gradijenata 4.2.3. Newtonov postupak 4.2.4. Kvazi- Newtonovi postupci 4.2.5. Postupci 'podruja povjerenja' - Primjeri primjene 5. OPE NELINEARNO PROGRAMIRANJE (NLP). METODE OPTIMIZACIJE n-DIMENZIONALNIH PROBLEMA SA OGRANIENJIMA 5.1. Postupci s kaznenom funkcijom 5.1.1. Unutarnja kaznena funkcija 5.1.2. Vanjska kaznena funkcija 5.1.3. Proirena kaznena funkcija 5.1.4. Postupak proirenih Lagrangeovih mnoitelja 5.2. Direktni postupci NLP 5.2.1. Postupak dopustivih smjerova 5.2.2. Postupak generaliziranog reduciranog gradijenta 5.2.3. Postupak sekvencijalnog linearnog programiranja (SLP) 5.2.4. Postupci ogranienog najbreg pada i sekvencijalno kvadratno programiranje, SQP
D. Vuina: Metode inenjerske numerike optimizacije

142 142 149 152 157 157 164 166 168 172

201 205 208 210 217 217 221 224 227 229 234 4

1.Uvod i osnovni pojmovi

5.2.5. Box-ov postupak kompleksa Primjeri primjene

250

6. EVOLUCIJSKE METODE I PRIMJENA NEURALNIH MREA 6.1. Postupci sluajnog pretraivanja 6.2. Postupci simuliranog arenja 6.3. Postupci genetskih algoritama 6.4. Primjena umjetnih neuralnih mrea kod aproksimacije funkcije cilja i ogranienja Primjeri primjene 7. OPTIMIZACIJA KOD PROBLEMA S DISKRETNIM VARIJABLAMA

289 290 292 295 324

361

7.1. Primjena postupaka grananja kod linearnih problema 362 7.2. Primjena postupaka grananja kod nelinearnih problema 367 - Primjeri primjene 8. PRIMJERI MODELIRANJA I OPTIMIZACIJE U PRAKSI PRILOG P1. Elementi programiranja u jeziku C P2. Elementi izrade programskih skripti u programu MATLAB POPIS OSNOVNE LITERATURE INDEKS 379 427 461 487 491

D. Vuina: Metode inenjerske numerike optimizacije

1.Uvod i osnovni pojmovi

PREDGOVOR
Ovaj udbenik je pisan s namjerom da prikae inenjerski pogled na postupke optimizacije i popratne postupke numerike analize s aspekta primjene kod stvarnih problema. Tekst je namijenjen studentima kolegija 'Metode optimizacije' i srodnih kolegija kao popratni materijal uz predavanja. Koriteni primjeri primjene metoda optimizacije su iz podruja tehnikih disciplina (mehanika, oblikovanje, termodinamika, strujanje fluida), organizacijskih i proizvodnih tehnologija, te poslovnih primjena (poslovno odluivanje, 'business applications'), no mogu se proiriti i na druga podruja. Tekst pokuava povezati osnovne teoretske postavke dane na neformalan, inenjerski nain s prikladnim primjerima primjene. Uz ovo su ukljueni i primjeri programskih aplikacija i programskih skripti (C, MATLAB) te su tako zajedno prezentirane i teoretske postavke i primjeri primjene. Ovakav pristup je primjeren podruju optimizacije jer je rije o procesu koji se ne moe odraditi 'pritiskom na dugme', ve je potrebno uskladiti cijeli niz elemenata: dobro poznavanje teoretskih postavki, odabir prikladne metode za zadani problem, podeavanje kontrolnih parametara postupka, pokretanje procesa iz razliitih poetnih toaka, interaktivno izvoenje i nadziranje rada programa, te verifikaciju rezultata. Kao i kod drugih primjena numerikih metoda u inenjerskoj praksi vrijedi pravilo da koritenje raunala kao sofisticiranog analitikog alata moe biti opasno ako korisnik razmatrani fizikalni problem ne poznaje dovoljno dobro da moe kritiki procijeniti oekivani rezultat. Iznad svega je nuno dobro modeliranje zadanog problema, prilagoeno postupcima optimizacije. Mala je mogunost cijeli model postaviti idealno u prvoj definiciji problema. Kod praktine primjene postupaka optimizacije uglavnom je potrebno naknadno dodavati ogranienja ili pak mijenjati numeriki algoritam kojim se rjeava fizikalno- matematiki model problema koji obuhvaa funkcije cilja i funkcije ogranienja. Izvjesna koliina vlastitog 'programiranja' je uvijek nuna zbog potrebe definiranja funkcije cilja i funkcija ogranienja programu za optimizaciju,

D. Vuina: Metode inenjerske numerike optimizacije

1.Uvod i osnovni pojmovi

kao i za simulaciju odziva fizikalnog modela problema. Stoga je tipian problem optimiranja interaktivan proces s dosta povratnih hodova i internih petlji. Nezadovoljavajue rjeenje ili nekonvergiranje ukupnog procesa rjeavanja taj proces vodi unatrag u promjene modela problema, promjene postupka rjeavanja ili promjene poetnog rjeenja. S obzirom na ove ciljeve, nain izlaganja ovog teksta je inenjerski te orijentiran rjeavanju stvarnih tehnikih problema. Izlaganje stoga ne ulazi u teoriju i matematike osnove vie nego li je potrebno za razumijevanje metoda i razvijanje sposobnosti inenjerske primjene. Primjeri su odabrani s ciljem jednostavne demonstracije postupaka s odgovarajuim napomenama vezano uz modeliranje konkretnih problema, te time cjelovito ilustriraju slijed koraka kod procesa tehnikog optimiranja. Opseg ovog udbenika pokriva podruja koja su bitna za razumijevanje teorijskih postavki i za primjenu metoda optimizacije kod praktinih problema. Tu funkcionalno spadaju sljedee cjeline: uvod, pojmovi, osnovni teorijski aspekti linearno programiranje, (LP), Simpleks metoda nelinearno programiranje, 1-dimenzionalne (1D) metode: postupci polovljenja intervala, postupak Fibonacci, postupak zlatnog reza, interpolacijski postupci, svoenje nD problema na 1D probleme nelinearno programiranje, n-dimenzionalne (nD) metode kod problema bez ogranienja: - direktne metode (postupci sluajnog pretraivanja, postupak Hooke- Jeeves, Powellov postupak, Nelder - Meadov simplex postupak, drugi srodni postupci); - gradijentne metode (postupak najbreg pada (spusta) i konjugiranih gradijenata, Newtonov postupak, Kvazi-Newtonovi postupci, ...) ope nelinearno programiranje (NLP), nD metode kod problema s ogranienjima: direktne metode (postupci dopustivih smjerova, postupci generaliziranog reduciranog gradijenta, postupci

D. Vuina: Metode inenjerske numerike optimizacije

1.Uvod i osnovni pojmovi

sekvencijalnog linearnog programiranja, te postupci sekvencijalnog kvadratnog programiranja), transformacijske metode (postupci vanjske kaznene funkcije, postupci unutarnje kaznene funkcije), postupci proirenih Lagrangeovih mnoitelja evolucijske metode i posebna poglavlja: postupci simuliranog arenja, postupci genetskih algoritama, primjena neuralnih mrea kao funkcijskih aproksimatora optimizacija kod problema sa diskretnim varijablama primjeri inenjerske primjene

U prilogu su dane osnove programiranja u jeziku C i izrade programskih skripti u paketu MATLAB jer su to platforme unutar kojih su rjeavani konkretni primjeri izradom odgovarajuih programskih skripti. U dananje vrijeme naime izrada alata za rjeavanje inenjerskih problema znai prilagodbu ili izradu programa koji raunalo 'specijaliziraju' za rjeavanje razmatrane kategorije problema. U neto irem kontekstu, ovaj tekst se naslanja na gradivo koje studenti sluaju unutar kolegija Primjena raunala, gdje savladavaju osnove programiranja, inenjerskog modeliranja fizikalnih problema i odgovarajue tehnike primjene. Ta temeljna znanja koja ukljuuju inenjerske primjene primjerice rjeavanja linearnih i nelinearnih sustava jednadbi, interpolaciju polinomima, aproksimaciju polinomima, numeriko diferenciranje i integraciju te rjeavanje diferencijalnih jednadbi, ovdje se proiruju te koriste kod optimizacije. Sve ove cjeline daju studentu (i inenjeru) potrebna teoretska i praktina znanja koja ga osposobljavaju za modeliranje, postavljanje postupka rjeavanja, kritiko-komparativni odabir potrebnih algoritama i numeriko rjeavanje inenjerskih problema u praksi, kako kod problema analize, tako i kod problema sinteze odnosno optimizacije. Gradivo koje je obuhvaeno je multidisciplinarno, a udbenik se moe koristiti i u drugim tehnikim strukama te u praksi. Time bi korisnik trebao biti u stanju raunalo kao generiki stroj pretvoriti u specijalizirani alat za problem koji rjeava.

D. Vuina: Metode inenjerske numerike optimizacije

1.Uvod i osnovni pojmovi

Konkretne metode optimizacije i odgovarajue teoretske postavke prikazane su na razini fenomenologije i osnovnih algoritama jer je to opseg potreban za razumijevanje i uspjenu primjenu kod problema u praksi. Izneseno gradivo je popraeno cijelim nizom vlastitih, originalno razvijenih primjera iz razliitih podruja koji obuhvaaju sve faze, od modeliranja problema do topoloke i dimenzionalne optimizacije. Pri tome je, radi jasnoe tih primjera, u veini sluajeva zadrana edukacijska, a ne 'profesionalna' razina izlaganja: prikazane su samo osnovne varijante algoritama, nije ukljueno normiranje funkcija ogranienja i varijabli, te nije ispisan slijed variranja kaznene konstante, pa ni neki drugi numeriki zahvati koji poboljavaju uinkovitost algoritama. Osim ovog udbenika, studentu su u navedenoj literaturi na raspolaganju i drugi rijeeni primjeri koji se mogu koristiti u savladavanju ove opsene materije, kako u dijelu modeliranja za proces optimiranja, tako i u dijelu programske implementacije. U tekstu je koriteno standardno oznaavanje te masna slova ('bold') za vektore i matrice. Kod matematikih izraza je primijenjen standardni matrini zapis. Primjeri te programski listinzi i ispisi prikazani su razliitim fontom, a programski listinzi, pseudokod i programski ispisi kurzivom. Dio primjera je rijeen izradom programa u jeziku C i MATLAB-u, ija je osnovna sintaksa dana u prilogu zbog lakeg praenja. U tom smislu ovaj udbenik moe dijelom posluiti i kod uenja izrade programa za rjeavanje inenjerskih problema u jezicima C i MATLAB. Autor se zahvaljuje recenzentima i kolegama sa FESB-a koji su svojim sugestijama dali doprinos ovom udbeniku. Udbenik obuhvaa sloeno i opseno multidisciplinarno gradivo sa mnogo izvornih primjera i primjena koji bi u naelu zahtijevao rad veeg tima, pa je autor zahvalan itateljima koji ukau na nastale greke. Sav materijal i programi u udbeniku su iskljuivo edukacijski te nisu namijenjeni za koritenje kod stvarnih problema.

D. Vuina: Metode inenjerske numerike optimizacije

1.Uvod i osnovni pojmovi

1. UVOD I OSNOVNI POJMOVI 1. 1. Uvod


Optimizacija je u inenjerskom smislu postupak 'maksimiziranja' ili 'minimiziranja' nekog cilja (ili ciljeva) u okvirima raspoloivih resursa, odnosno uz zadovoljavanje ogranienja koja objektivno postoje. U ovom smislu je svaka odluka koju donosimo, te svaka svjesna radnja koju obavljamo, u stvari rezultat nekog svjesnog ili nesvjesnog misaonog procesa optimiranja. U naelu takvu optimizaciju formalno ne doivljavamo kao 'provedeni postupak' jer se dogaa 'intuitivno' ili 'iskustveno' na bazi ranije odreenih 'najboljih' rjeenja. Klasini postupak 'sinteze rjeenja' na bazi metode 'pokuaja i pogreaka' i sam se moe smatrati postupkom optimizacije, jer se zasniva na generiranju (sintezi) novih (nepoznatih) rjeenja promatranog problema te sukcesivnom odbacivanju onih koja ne zadovoljavaju ogranienja ili onih koja su loija od ranije dostignutih rjeenja. Proces inenjerskog optimiranja se posredno i neposredno oslanja na procese i rjeenja koja promatramo u prirodi. Ravnotena stanja u toki minimuma energije nekog sustava ili geometrijski oblici u prirodi predstavljaju prirodno optimirana rjeenja. Neke tehnike metode optimizacije se i zasnivaju na oponaanju prirodnih procesa, npr. procesa evolucije, koji se i sam moe interpretirati kao prirodni proces optimizacije. Tako naprimjer postoji niz 'evolucijskih postupaka' kao to su postupci genetskih algoritama ili postupci formiranja funkcijskih aproksimatora kao to su 'umjetne neuralne mree', koji su algoritamski izgraeni na analogiji s pojednostavljenim 'biolokim' uzorima. Proces inenjerskog optimiranja podrazumijeva sustavno traenje optimalnog rjeenja zadanog inenjerskog problema s obzirom na definirane kriterije optimalnosti, a u uvjetima zadovoljavanja zadanih ogranienja. Pretpostavka je pri tome, naravno, da problem ima dovoljan 'viak' internih stupnjeva slobode (onih o kojima moe odluiti projektant jer nisu determinirani fizikalnim zakonitostima problema) koji postaju varijablama postupka optimizacije.
D. Vuina: Metode inenjerske numerike optimizacije

10

1.Uvod i osnovni pojmovi

Za razliku od klasinih primjena numerikih postupaka u analizi, kod optimizacije je rije o sintezi koja u svakoj iteraciji ukljuuje nunost provedbe analize (simulacije odziva) promatranog sustava. Kod numerike optimizacije, sinteza se naravno ne radi iskuavanjem svih moguih rjeenja niti na bazi iskustva, nego su razvijeni postupci koji nova rjeenja generiraju sustavno i uinkovito sa ciljem da se do optimalnog rjeenja doe uz to manji utroak raunalnih resursa. Kako je svaka sinteza vrlo kompleksna i numeriki zahtjevna, a razmatrani fizikalni modeli esto vrlo sloeni, proces optimiranja je numeriki vrlo intenzivan. Globalizacija te posljedini porast kompetitivnosti na sve aktivnosti postavlja vrlo stroge dugorone i kratkorone uvjete za opstanak u smislu nune izvrsnosti proizvoda, usluga i procesa, koja se postie optimizacijom u najirem znaenju tog termina. Iskustvena ili intuitivna optimizacija, te naslanjanje iskljuivo na postojee 'najbolje prakse' danas vie nije dovoljno, jer ne osigurava dovoljnu 'kompetitivnu prednost', a time ni profitabilnost odnosno opstanak. Kae se da 'treba trati da bi se stajalo na mjestu', jer mirovanje znai relativno zaostajanje u odnosu na druge. Procesi i postupci optimizacije imaju stoga sve veu vanost i sve iri prostor primjene. Dananja logika kod razvoja proizvoda, usluga i procesa vie nije odrediti neko odgovarajue rjeenje koje zadovoljava sve uvjete. U dananje vrijeme potrebno je odrediti rjeenje koje zadovoljava sve uvjete te istovremeno minimizira utroak svih resursa, odnosno maksimira postavljene ciljeve (kriterije izvrsnosti rjeenja). U tom smislu je proces optimizacije znatno iri od skupine metoda ili numerikih alata. Rije je u stvari o novom pristupu u inenjerskoj sintezi odnosno razvoju proizvoda ili procesa na bazi koncepta 'optimalnosti'. Optimizacija se stoga istovremeno moe shvatiti i kao nain postavljanja inenjerskog zadatka, ali i kao specijalizirani alat odnosno nain potpore odluivanju ('decision support') u najirem smislu. Ako se inenjerske probleme podijeli na postupke analize i postupke sinteze, pri emu se sinteza najee provodi generiranjem niza predloenih rjeenja i njihovom popratnom analizom, tada se postupci
D. Vuina: Metode inenjerske numerike optimizacije

11

1.Uvod i osnovni pojmovi

optimizacije mogu svrstati u podruje inenjerske sinteze. Kod optimizacije se slijed predloenih (generiranih) rjeenja sustavno vodi na nain da sve bolje ispunjava postavljene kriterije optimalnosti uz istovremeno zadovoljavanje ogranienja. U tom slijedu je optimizacija iterativan proces bez obzira na injenicu da li se provodi klasinim putem (inenjersko naslijee, iskustvo, intuicija) ili potpomognuto numerikim postupcima. Moe se naravno kazati da su inenjeri i u predraunalno doba traili optimalna rjeenja, ali je to slijedilo na naine koji su tada bili mogui. Tadanji postupci poivali su uglavnom na profesionalnom iskustvu, intuiciji i brojnim pokuajima. U dananje doba iroka primjena metoda optimizacije u uvjetima opeg 'pritiska' za sve boljim rjeenjima omoguena je razvojem raunala velike snage obrade koja je potrebna za postupke optimizacije, ali i, to je jo i vanije, odgovarajuih algoritama i programskih alata. Danas se postupci optimizacije primjenjuju u cijelom nizu linearnih i nelinearnih problema, npr. kod transportnih problema, problema alokacije resursa, problema mrenih tokova, problema optimiranja mehanikih konstrukcija, problema optimiranja toplinskih tokova, optimalnog upravljanja sustavima, problema optimalnog projektiranja ('designa') komponenti, problema oblikovanja, itd. Za ilustraciju mogunosti primjene postupaka optimizacije, u poglavlju 1.8. i 8. dani su neki primjeri iz vrlo razliitih podruja. U smislu raunalno-podrane optimizacije ('computer-aided optimization'), numeriki postupci optimiranja usko su spregnuti s postupcima numerike analize koji se primjenjuju kod raunalne simulacije razmatranih fizikalnih modela. Danas se postupci optimizacije koriste ne samo kod tehnikih problema kod kojih se funkcije cilja i ogranienja velikim dijelom mogu opisati analitiki, nego i kod problema iz drugih podruja, gdje se odgovarajue zakonitosti u modelu ponekad opisuju iskljuivo empirijskim izrazima ili statistikim zakonitostima pa ak i skupovima pravila ili zapaanja. Prikaz klasinog procesa optimiranja prikazan je na slici 1.1, pri emu uvoenje numerikih postupaka optimizacije znatno ubrzava slijed:

D. Vuina: Metode inenjerske numerike optimizacije

12

1.Uvod i osnovni pojmovi

- generiranje i prijedlog rjeenja - analiza rjeenja - provjera kriterija optimalnosti i ogranienja - korekcije,
dok se iskustvo i profesionalno naslijee naravno i dalje koriste za definiranje 'poetnih rjeenja'.

ideje o moguim unapreivanjima rjeenja

iskustvo

inenjersko profesionalno naslijee

prijedlog novog rjeenja (sinteza)

analiza novog rjeenja iteracije optimiranja Provjera: - ogranienja - kriteriji optimalnosti korekcije, promjene

prihvatljivo

rjeenje

Slika 1.1: Naelni proces optimiranja

D. Vuina: Metode inenjerske numerike optimizacije

13

You might also like