12.07.2015 Views

METODE INŽENJERSKE NUMERIČKE OPTIMIZACIJE - FESB

METODE INŽENJERSKE NUMERIČKE OPTIMIZACIJE - FESB

METODE INŽENJERSKE NUMERIČKE OPTIMIZACIJE - FESB

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

MANUALIA UNIVERSITATIS STUDIORUM SPALATENSISUDŽBENICI SVEUČILIŠTA U SPLITUFAKULTET ELEKTROTEHNIKE, STROJARSTVA I BRODOGRADNJEDamir Vučina<strong>METODE</strong> INŽENJERSKENUMERIČKE <strong>OPTIMIZACIJE</strong>S PRIMJERIMA PRIMJENE UPROGRAMSKOM JEZIKU C I MATLAB<strong>FESB</strong>Split, 2005


MANUALIA UNIVERSITATIS STUDIORUM SPALATENSISUDŽBENICI SVEUČILIŠTA U SPLITUAutorProf. dr.sc. Damir VučinaRecenzentiProf. dr.sc. Nataša BilićProf. dr.sc. Ivan SlapničarDoc. dr.sc. Gojko MagazinovićIzdavačFakultet elektrotehnike strojarstva i brodogradnjeZa izdavačaProf. dr.sc. Dinko Begušić, dekanPredsjednik povjerenstva za izdavačku djelatnost <strong>FESB</strong>-aProf.dr.sc. Radoslav PavazzaGlavni urednikProf.dr.sc. Ivan ZulimLektorVesna Hrdlička, prof.Objavljivanje ovog sveučilišnog udžbenika odobrio je Senat Sveučilišta u Splituodlukom broj: 01-1-35/1-14-2005. dana 22. rujna 2005. godine.CIP - Katalogizacija u publikacijiSVEUČILIŠNA KNJIŽNICA U SPLITUUDK 519.852 (075.8)004.4 (075.8)VUČINA, DamirMetode inženjerske numeričke optimizacije:s primjerima primjene u programskom jeziku C i MATLAB /Damir Vučina. - Split : Fakultet elektrotehnike, strojarstva ibrodogradnje, 2005.Bibliografija. - KazaloISBN 953-6114-79-8120226049ISBN 953-6114-79-8


1.Uvod i osnovni pojmoviDamir Vučina<strong>METODE</strong> INŽENJERSKE NUMERIČKE<strong>OPTIMIZACIJE</strong>S PRIMJERIMA PRIMJENE UPROGRAMSKOM JEZIKU C I MATLABUSadržaj:PREDGOVOR 61. UVOD I OSNOVNI POJMOVI 101.1. Uvod 101.2. Faze postupka inženjerske optimizacije 141.3. Podjela problema i metoda optimizacije 211.4. Osnovni pojmovi i formulacija modela za optimizaciju 221.5. Matematičke osnove i pojmovi 301.6. Praktični aspekti kod optimizacije 641.7. Funkcija cilja kod primjera u praksi 741.8. Primjeri modeliranja 762. OSNOVE LINEARNOG PROGRAMIRANJA (LP)I SIMPLEKS METODA 892.1 Standardni oblik problema LP 892.2 Simpleks metoda 952.2.1. Jednofazni postupak, zadani problem sograničenjima ( ≤ ) 952.2.2. Dvofazni postupak, zadani problem sograničenjima ( ≤ , =, ≥ ) 1012.3. Rješavanje problema linearnog programiranja 106Primjeri primjene3. NUMERIČKE <strong>METODE</strong> ZA ODREĐIVANJEOPTIMUMA KOD 1-DIMENZIONALNIH PROBLEMA 119D. Vučina: Metode inženjerske numeričke optimizacije 3


1.Uvod i osnovni pojmovi3.1. Postupak polovljenja intervala 1223.2. Postupak zlatnog reza 1233.3. Postupak Fibonacci 1253.4. Postupci kvadratne i polinomne interpolacije 126- Primjeri primjene4. <strong>METODE</strong> <strong>OPTIMIZACIJE</strong> KOD NELINEARNIH 139n-DIMENZIONALNIH PROBLEMA BEZ OGRANIČENJA4.1. Negradijentne metode optimizacije 1424.1.1. Postupak Hooke- Jeeves 1424.1.2. Nelder- Mead simpleks postupak 1494.1.3. Powellov postupak 1524.2. Gradijentne metode optimizacije 1574.2.1. Postupak najbržeg pada (spusta) 1574.2.2. Postupak konjugiranih gradijenata 1644.2.3. Newtonov postupak 1664.2.4. Kvazi- Newtonovi postupci 1684.2.5. Postupci 'područja povjerenja' 172- Primjeri primjene5. OPĆE NELINEARNO PROGRAMIRANJE (NLP).<strong>METODE</strong> <strong>OPTIMIZACIJE</strong> n-DIMENZIONALNIHPROBLEMA SA OGRANIČENJIMA 2015.1. Postupci s kaznenom funkcijom 2055.1.1. Unutarnja kaznena funkcija 2085.1.2. Vanjska kaznena funkcija 2105.1.3. Proširena kaznena funkcija 2175.1.4. Postupak proširenih Lagrangeovih množitelja 2175.2. Direktni postupci NLP 2215.2.1. Postupak dopustivih smjerova 2245.2.2. Postupak generaliziranog reduciranoggradijenta 2275.2.3. Postupak sekvencijalnog linearnogprogramiranja (SLP) 2295.2.4. Postupci ograničenog najbržeg pada isekvencijalno kvadratno programiranje, SQP 234D. Vučina: Metode inženjerske numeričke optimizacije 4


1.Uvod i osnovni pojmovi5.2.5. Box-ov postupak kompleksa 250- Primjeri primjene6. EVOLUCIJSKE <strong>METODE</strong> I PRIMJENA NEURALNIHMREŽA 2896.1. Postupci slučajnog pretraživanja 2906.2. Postupci simuliranog žarenja 2926.3. Postupci genetskih algoritama 2956.4. Primjena umjetnih neuralnih mreža kodaproksimacije funkcije cilja i ograničenja 324- Primjeri primjene7. OPTIMIZACIJA KOD PROBLEMA SDISKRETNIM VARIJABLAMA 3617.1. Primjena postupaka grananja kod linearnih problema 3627.2. Primjena postupaka grananja kod nelinearnih problema 367- Primjeri primjene8. PRIMJERI MODELIRANJA I <strong>OPTIMIZACIJE</strong>U PRAKSI 379PRILOGP1. Elementi programiranja u jeziku C 427P2. Elementi izrade programskih skripti uprogramu MATLAB 461POPIS OSNOVNE LITERATURE 487INDEKS 491D. Vučina: Metode inženjerske numeričke optimizacije 5


1.Uvod i osnovni pojmoviPREDGOVOROvaj udžbenik je pisan s namjerom da prikaže inženjerski pogled napostupke optimizacije i popratne postupke numeričke analize s aspektaprimjene kod stvarnih problema. Tekst je namijenjen studentima kolegija'Metode optimizacije' i srodnih kolegija kao popratni materijal uzpredavanja. Korišteni primjeri primjene metoda optimizacije su izpodručja tehničkih disciplina (mehanika, oblikovanje, termodinamika,strujanje fluida), organizacijskih i proizvodnih tehnologija, te poslovnihprimjena (poslovno odlučivanje, 'business applications'), no mogu seproširiti i na druga područja.Tekst pokušava povezati osnovne teoretske postavke dane na neformalan,inženjerski način s prikladnim primjerima primjene. Uz ovo su uključenii primjeri programskih aplikacija i programskih skripti (C, MATLAB) tesu tako zajedno prezentirane i teoretske postavke i primjeri primjene.Ovakav pristup je primjeren području optimizacije jer je riječ o procesukoji se ne može odraditi 'pritiskom na dugme', već je potrebno uskladiticijeli niz elemenata: dobro poznavanje teoretskih postavki, odabirprikladne metode za zadani problem, podešavanje kontrolnih parametarapostupka, pokretanje procesa iz različitih početnih točaka, interaktivnoizvođenje i nadziranje rada programa, te verifikaciju rezultata. Kao i koddrugih primjena numeričkih metoda u inženjerskoj praksi vrijedi praviloda korištenje računala kao sofisticiranog analitičkog alata može bitiopasno ako korisnik razmatrani fizikalni problem ne poznaje dovoljnodobro da može kritički procijeniti očekivani rezultat.Iznad svega je nužno dobro modeliranje zadanog problema, prilagođenopostupcima optimizacije. Mala je mogućnost cijeli model postavitiidealno u prvoj definiciji problema. Kod praktične primjene postupakaoptimizacije uglavnom je potrebno naknadno dodavati ograničenja ili pakmijenjati numerički algoritam kojim se rješava fizikalno- matematičkimodel problema koji obuhvaća funkcije cilja i funkcije ograničenja.Izvjesna količina vlastitog 'programiranja' je uvijek nužna zbog potrebedefiniranja funkcije cilja i funkcija ograničenja programu za optimizaciju,D. Vučina: Metode inženjerske numeričke optimizacije 6


1.Uvod i osnovni pojmovikao i za simulaciju odziva fizikalnog modela problema. Stoga je tipičanproblem optimiranja interaktivan proces s dosta povratnih hodova iinternih petlji. Nezadovoljavajuće rješenje ili nekonvergiranje ukupnogprocesa rješavanja taj proces vodi unatrag u promjene modela problema,promjene postupka rješavanja ili promjene početnog rješenja.S obzirom na ove ciljeve, način izlaganja ovog teksta je inženjerski teorijentiran rješavanju stvarnih tehničkih problema. Izlaganje stoga neulazi u teoriju i matematičke osnove više nego li je potrebno zarazumijevanje metoda i razvijanje sposobnosti inženjerske primjene.Primjeri su odabrani s ciljem jednostavne demonstracije postupaka sodgovarajućim napomenama vezano uz modeliranje konkretnih problema,te time cjelovito ilustriraju slijed koraka kod procesa tehničkogoptimiranja.Opseg ovog udžbenika pokriva područja koja su bitna za razumijevanjeteorijskih postavki i za primjenu metoda optimizacije kod praktičnihproblema. Tu funkcionalno spadaju sljedeće cjeline:• uvod, pojmovi, osnovni teorijski aspekti• linearno programiranje, (LP), Simpleks metoda• nelinearno programiranje, 1-dimenzionalne (1D) metode: postupcipolovljenja intervala, postupak Fibonacci, postupak zlatnog reza,interpolacijski postupci, svođenje nD problema na 1D probleme• nelinearno programiranje, n-dimenzionalne (nD) metode kodproblema bez ograničenja:- direktne metode (postupci slučajnog pretraživanja, postupakHooke- Jeeves, Powellov postupak, Nelder - Meadov simplexpostupak, drugi srodni postupci);- gradijentne metode (postupak najbržeg pada (spusta) ikonjugiranih gradijenata, Newtonov postupak, Kvazi-Newtonovipostupci, ...)• opće nelinearno programiranje (NLP), nD metode kod problema sograničenjima:• direktne metode (postupci dopustivih smjerova, postupcigeneraliziranog reduciranog gradijenta, postupciD. Vučina: Metode inženjerske numeričke optimizacije 7


1.Uvod i osnovni pojmovisekvencijalnog linearnog programiranja, te postupcisekvencijalnog kvadratnog programiranja),• transformacijske metode (postupci vanjske kaznene funkcije,postupci unutarnje kaznene funkcije), postupci proširenihLagrangeovih množitelja• evolucijske metode i posebna poglavlja: postupci simuliranogžarenja, postupci genetskih algoritama, primjena neuralnih mreža kaofunkcijskih aproksimatora• optimizacija kod problema sa diskretnim varijablama• primjeri inženjerske primjeneU prilogu su dane osnove programiranja u jeziku C i izrade programskihskripti u paketu MATLAB jer su to platforme unutar kojih su rješavanikonkretni primjeri izradom odgovarajućih programskih skripti. Udanašnje vrijeme naime izrada alata za rješavanje inženjerskih problemaznači prilagodbu ili izradu programa koji računalo 'specijaliziraju' zarješavanje razmatrane kategorije problema.U nešto širem kontekstu, ovaj tekst se naslanja na gradivo koje studentislušaju unutar kolegija Primjena računala, gdje savladavaju osnoveprogramiranja, inženjerskog modeliranja fizikalnih problema iodgovarajuće tehničke primjene. Ta temeljna znanja koja uključujuinženjerske primjene primjerice rješavanja linearnih i nelinearnih sustavajednadžbi, interpolaciju polinomima, aproksimaciju polinomima,numeričko diferenciranje i integraciju te rješavanje diferencijalnihjednadžbi, ovdje se proširuju te koriste kod optimizacije.Sve ove cjeline daju studentu (i inženjeru) potrebna teoretska i praktičnaznanja koja ga osposobljavaju za modeliranje, postavljanje postupkarješavanja, kritičko-komparativni odabir potrebnih algoritama inumeričko rješavanje inženjerskih problema u praksi, kako kod problemaanalize, tako i kod problema sinteze odnosno optimizacije. Gradivo kojeje obuhvaćeno je multidisciplinarno, a udžbenik se može koristiti i udrugim tehničkim strukama te u praksi. Time bi korisnik trebao biti ustanju računalo kao generički stroj pretvoriti u specijalizirani alat zaproblem koji rješava.D. Vučina: Metode inženjerske numeričke optimizacije 8


1.Uvod i osnovni pojmoviKonkretne metode optimizacije i odgovarajuće teoretske postavkeprikazane su na razini fenomenologije i osnovnih algoritama jer je toopseg potreban za razumijevanje i uspješnu primjenu kod problema upraksi. Izneseno gradivo je popraćeno cijelim nizom vlastitih, originalnorazvijenih primjera iz različitih područja koji obuhvaćaju sve faze, odmodeliranja problema do topološke i dimenzionalne optimizacije. Pritome je, radi jasnoće tih primjera, u većini slučajeva zadržanaedukacijska, a ne 'profesionalna' razina izlaganja: prikazane su samoosnovne varijante algoritama, nije uključeno normiranje funkcijaograničenja i varijabli, te nije ispisan slijed variranja kaznene konstante,pa ni neki drugi numerički zahvati koji poboljšavaju učinkovitostalgoritama.Osim ovog udžbenika, studentu su u navedenoj literaturi na raspolaganju idrugi riješeni primjeri koji se mogu koristiti u savladavanju ove opsežnematerije, kako u dijelu modeliranja za proces optimiranja, tako i u dijeluprogramske implementacije.U tekstu je korišteno standardno označavanje te masna slova ('bold') zavektore i matrice. Kod matematičkih izraza je primijenjen standardnimatrični zapis. Primjeri te programski listinzi i ispisi prikazani surazličitim fontom, a programski listinzi, pseudokod i programski ispisikurzivom. Dio primjera je riješen izradom programa u jeziku C iMATLAB-u, čija je osnovna sintaksa dana u prilogu zbog lakšegpraćenja. U tom smislu ovaj udžbenik može dijelom poslužiti i kod učenjaizrade programa za rješavanje inženjerskih problema u jezicima C iMATLAB.Autor se zahvaljuje recenzentima i kolegama sa <strong>FESB</strong>-a koji su svojimsugestijama dali doprinos ovom udžbeniku. Udžbenik obuhvaća složeno iopsežno multidisciplinarno gradivo sa mnogo izvornih primjera iprimjena koji bi u načelu zahtijevao rad većeg tima, pa je autor zahvalančitateljima koji ukažu na nastale greške. Sav materijal i programi uudžbeniku su isključivo edukacijski te nisu namijenjeni za korištenje kodstvarnih problema.D. Vučina: Metode inženjerske numeričke optimizacije 9


1.Uvod i osnovni pojmovi1. UVOD I OSNOVNI POJMOVI1. 1. UvodOptimizacija je u inženjerskom smislu postupak 'maksimiziranja' ili'minimiziranja' nekog cilja (ili ciljeva) u okvirima raspoloživih resursa,odnosno uz zadovoljavanje ograničenja koja objektivno postoje. U ovomsmislu je svaka odluka koju donosimo, te svaka svjesna radnja kojuobavljamo, u stvari rezultat nekog svjesnog ili nesvjesnog misaonogprocesa optimiranja. U načelu takvu optimizaciju formalno nedoživljavamo kao 'provedeni postupak' jer se događa 'intuitivno' ili'iskustveno' na bazi ranije određenih 'najboljih' rješenja. Klasični postupak'sinteze rješenja' na bazi metode 'pokušaja i pogrešaka' i sam se možesmatrati postupkom optimizacije, jer se zasniva na generiranju (sintezi)novih (nepoznatih) rješenja promatranog problema te sukcesivnomodbacivanju onih koja ne zadovoljavaju ograničenja ili onih koja su lošijaod ranije dostignutih rješenja.Proces inženjerskog optimiranja se posredno i neposredno oslanja naprocese i rješenja koja promatramo u prirodi. Ravnotežna stanja u točkiminimuma energije nekog sustava ili geometrijski oblici u prirodipredstavljaju prirodno optimirana rješenja. Neke tehničke metodeoptimizacije se i zasnivaju na oponašanju prirodnih procesa, npr. procesaevolucije, koji se i sam može interpretirati kao prirodni procesoptimizacije. Tako naprimjer postoji niz 'evolucijskih postupaka' kao štosu postupci genetskih algoritama ili postupci formiranja funkcijskihaproksimatora kao što su 'umjetne neuralne mreže', koji su algoritamskiizgrađeni na analogiji s pojednostavljenim 'biološkim' uzorima.Proces inženjerskog optimiranja podrazumijeva sustavno traženjeoptimalnog rješenja zadanog inženjerskog problema s obzirom nadefinirane kriterije optimalnosti, a u uvjetima zadovoljavanja zadanihograničenja. Pretpostavka je pri tome, naravno, da problem ima dovoljan'višak' internih stupnjeva slobode (onih o kojima može odlučiti projektantjer nisu determinirani fizikalnim zakonitostima problema) koji postajuvarijablama postupka optimizacije.D. Vučina: Metode inženjerske numeričke optimizacije 10


1.Uvod i osnovni pojmoviZa razliku od klasičnih primjena numeričkih postupaka u analizi, kodoptimizacije je riječ o sintezi koja u svakoj iteraciji uključuje nužnostprovedbe analize (simulacije odziva) promatranog sustava. Kodnumeričke optimizacije, sinteza se naravno ne radi iskušavanjem svihmogućih rješenja niti na bazi iskustva, nego su razvijeni postupci kojinova rješenja generiraju sustavno i učinkovito sa ciljem da se dooptimalnog rješenja dođe uz što manji utrošak računalnih resursa. Kakoje svaka sinteza vrlo kompleksna i numerički zahtjevna, a razmatranifizikalni modeli često vrlo složeni, proces optimiranja je numerički vrlointenzivan.Globalizacija te posljedični porast kompetitivnosti na sve aktivnostipostavlja vrlo stroge dugoročne i kratkoročne uvjete za opstanak u smislunužne izvrsnosti proizvoda, usluga i procesa, koja se postižeoptimizacijom u najširem značenju tog termina. Iskustvena ili intuitivnaoptimizacija, te naslanjanje isključivo na postojeće 'najbolje prakse' danasviše nije dovoljno, jer ne osigurava dovoljnu 'kompetitivnu prednost', atime ni profitabilnost odnosno opstanak. Kaže se da 'treba trčati da bi sestajalo na mjestu', jer mirovanje znači relativno zaostajanje u odnosu nadruge.Procesi i postupci optimizacije imaju stoga sve veću važnost i sve širiprostor primjene. Današnja logika kod razvoja proizvoda, usluga i procesaviše nije odrediti neko odgovarajuće rješenje koje zadovoljava sve uvjete.U današnje vrijeme potrebno je odrediti rješenje koje zadovoljava sveuvjete te istovremeno minimizira utrošak svih resursa, odnosnomaksimira postavljene ciljeve (kriterije izvrsnosti rješenja).U tom smislu je proces optimizacije znatno širi od skupine metoda ilinumeričkih alata. Riječ je u stvari o novom pristupu u inženjerskojsintezi odnosno razvoju proizvoda ili procesa na bazi koncepta'optimalnosti'. Optimizacija se stoga istovremeno može shvatiti i kaonačin postavljanja inženjerskog zadatka, ali i kao specijalizirani alatodnosno način potpore odlučivanju ('decision support') u najširem smislu.Ako se inženjerske probleme podijeli na postupke analize i postupkesinteze, pri čemu se sinteza najčešće provodi generiranjem nizapredloženih rješenja i njihovom popratnom analizom, tada se postupciD. Vučina: Metode inženjerske numeričke optimizacije 11


1.Uvod i osnovni pojmovioptimizacije mogu svrstati u područje inženjerske sinteze. Kodoptimizacije se slijed predloženih (generiranih) rješenja sustavno vodi nanačin da sve bolje ispunjava postavljene kriterije optimalnosti uzistovremeno zadovoljavanje ograničenja. U tom slijedu je optimizacijaiterativan proces bez obzira na činjenicu da li se provodi klasičnim putem(inženjersko naslijeđe, iskustvo, intuicija) ili potpomognuto numeričkimpostupcima.Može se naravno kazati da su inženjeri i u predračunalno doba tražilioptimalna rješenja, ali je to slijedilo na načine koji su tada bili mogući.Tadašnji postupci počivali su uglavnom na profesionalnom iskustvu,intuiciji i brojnim pokušajima. U današnje doba široka primjena metodaoptimizacije u uvjetima općeg 'pritiska' za sve boljim rješenjimaomogućena je razvojem računala velike snage obrade koja je potrebna zapostupke optimizacije, ali i, što je još i važnije, odgovarajućih algoritamai programskih alata.Danas se postupci optimizacije primjenjuju u cijelom nizu linearnih inelinearnih problema, npr. kod transportnih problema, problema alokacijeresursa, problema mrežnih tokova, problema optimiranja mehaničkihkonstrukcija, problema optimiranja toplinskih tokova, optimalnogupravljanja sustavima, problema optimalnog projektiranja ('designa')komponenti, problema oblikovanja, itd. Za ilustraciju mogućnostiprimjene postupaka optimizacije, u poglavlju 1.8. i 8. dani su nekiprimjeri iz vrlo različitih područja.U smislu računalno-podržane optimizacije ('computer-aidedoptimization'), numerički postupci optimiranja usko su spregnuti spostupcima numeričke analize koji se primjenjuju kod računalnesimulacije razmatranih fizikalnih modela. Danas se postupci optimizacijekoriste ne samo kod tehničkih problema kod kojih se funkcije cilja iograničenja velikim dijelom mogu opisati analitički, nego i kod problemaiz drugih područja, gdje se odgovarajuće zakonitosti u modelu ponekadopisuju isključivo empirijskim izrazima ili statističkim zakonitostima pačak i skupovima pravila ili zapažanja.Prikaz klasičnog procesa optimiranja prikazan je na slici 1.1, pri čemuuvođenje numeričkih postupaka optimizacije znatno ubrzava slijed:D. Vučina: Metode inženjerske numeričke optimizacije 12


1.Uvod i osnovni pojmovi- generiranje i prijedlog rješenja- analiza rješenja- provjera kriterija optimalnosti i ograničenja- korekcije,dok se iskustvo i profesionalno naslijeđe naravno i dalje koriste zadefiniranje 'početnih rješenja'.ideje o mogućimunapređivanjimarješenjaiskustvoinženjerskoprofesionalnonaslijeđeprijedlog novog rješenja (sinteza)analiza novog rješenjaiteracijeoptimiranjaProvjera:- ograničenja- kriteriji optimalnostiprihvatljivokorekcije,promjenerješenjeSlika 1.1: Načelni proces optimiranjaD. Vučina: Metode inženjerske numeričke optimizacije 13

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!