36
5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima D. Vučina: Metode inženjerske numeričke optimizacije 201 5. OPĆE NELINEARNO PROGRAMIRANJE (NLP). METODE OPTIMIZACIJE n-DIMENZIONALNIH PROBLEMA S OGRANIČENJIMA - Područje NLP, određivanje optimuma nelinearnih n- dimenzionalnih problema s ograničenjima, najzastupljenije je u inženjerskoj (i drugoj) praksi jer je većina fizikalnih modela nelinearna, kako u funkciji cilja tako i u danim ograničenjima. Složenost ove kategorije problema očituje se ne samo u karakteru funkcija cilja i ograničenja (često visoka nelinearnost), nego obično i u velikom broju varijabli. Fizikalni model problema često ne postoji u obliku gdje su funkcije cilja i ograničenja raspoložive u eksplicitnom obliku kao funkcionalna ovisnost odziva sustava na ulazne varijable. Tada su nužne numeričke simulacije odziva matematičkog modela (npr. sustav parcijalnih diferencijalnih jednadžbi) koji često zahtijeva iterativno rješavanje, prostornu diskretizaciju, numeričku integraciju po vremenu, itd. Takav je slučaj primjerice kod statičke i dinamičke analize mehaničkih komponenti, kada je potrebno primijeniti metodu konačnih elemenata za diskretizaciju prostora (vidjeti primjer 4.7) i približno rješavanje sustava parcijalnih diferencijalnih jednadžbi koji opisuje ponašanje opterećene komponente. Ako je uz to riječ o materijalu s nelinearnim konstitutivnim zakonom, vremenski promjenjivom opterećenju ili pojavi plastifikacije, potrebna je i vremenska integracija odziva te numerička integracija po domeni što znatno komplicira analizu. Prostorna diskretizacija rezultira u velikom broju varijabli u čvorovima prostorne mreže elemenata što uz nelinearnost i iterativno rješavanje ukupno rješavanje problema čini numerički vrlo opsežnim i složenim. Kod ovakvih problema optimizacija unosi dodatne vanjske petlje u cijelom procesu, pri čemu su gore spomenute petlje numeričke simulacije odziva fizikalnog modela ugniježđene unutar optimizacijskih petlji. Stoga su kod ovakvih problema potrebni vrlo efikasni algoritmi i procesorski vrlo jaka računala. Zbog toga se u novije vrijeme u nekim slučajevima rješavanje matematičkog modela barem u dijelu procesa pokušava raspregnuti od procesa optimiranja, na način da se simulacija odziva matematičkog

Predavanja Blok 4

Embed Size (px)

Citation preview

Page 1: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 201

5. OPĆE NELINEARNO PROGRAMIRANJE (NLP).

METODE OPTIMIZACIJE n-DIMENZIONALNIH

PROBLEMA S OGRANIČENJIMA

- Područje NLP, određivanje optimuma nelinearnih n-

dimenzionalnih problema s ograničenjima, najzastupljenije je u

inženjerskoj (i drugoj) praksi jer je većina fizikalnih modela

nelinearna, kako u funkciji cilja tako i u danim ograničenjima.

Složenost ove kategorije problema očituje se ne samo u karakteru

funkcija cilja i ograničenja (često visoka nelinearnost), nego obično i u

velikom broju varijabli. Fizikalni model problema često ne postoji u

obliku gdje su funkcije cilja i ograničenja raspoložive u eksplicitnom

obliku kao funkcionalna ovisnost odziva sustava na ulazne varijable. Tada

su nužne numeričke simulacije odziva matematičkog modela (npr. sustav

parcijalnih diferencijalnih jednadžbi) koji često zahtijeva iterativno

rješavanje, prostornu diskretizaciju, numeričku integraciju po vremenu,

itd. Takav je slučaj primjerice kod statičke i dinamičke analize

mehaničkih komponenti, kada je potrebno primijeniti metodu konačnih

elemenata za diskretizaciju prostora (vidjeti primjer 4.7) i približno

rješavanje sustava parcijalnih diferencijalnih jednadžbi koji opisuje

ponašanje opterećene komponente. Ako je uz to riječ o materijalu s

nelinearnim konstitutivnim zakonom, vremenski promjenjivom

opterećenju ili pojavi plastifikacije, potrebna je i vremenska integracija

odziva te numerička integracija po domeni što znatno komplicira analizu.

Prostorna diskretizacija rezultira u velikom broju varijabli u čvorovima

prostorne mreže elemenata što uz nelinearnost i iterativno rješavanje

ukupno rješavanje problema čini numerički vrlo opsežnim i složenim.

Kod ovakvih problema optimizacija unosi dodatne vanjske petlje u

cijelom procesu, pri čemu su gore spomenute petlje numeričke simulacije

odziva fizikalnog modela ugniježđene unutar optimizacijskih petlji. Stoga

su kod ovakvih problema potrebni vrlo efikasni algoritmi i procesorski

vrlo jaka računala.

Zbog toga se u novije vrijeme u nekim slučajevima rješavanje

matematičkog modela barem u dijelu procesa pokušava raspregnuti od

procesa optimiranja, na način da se simulacija odziva matematičkog

Page 2: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 202

modela radi funkcionalno raspregnuto od procesa optimizacije, izvan

'realnog procesorskog vremena' optimizacije. To se postiže na način da se

simulacija napravi za niz kombinacija ulaznih varijabli fizikalnog modela

za koje su poznati odzivi sustava, te odrede pripadni odgovarajući odzivi

generičkog aproksimacijskog modela. Takve poznate kombinacije ulaznih

veličina i pripadnih odziva koriste se za određivanje unutarnjih

parametara generičkog aproksimacijskog modela promatranog fizikalnog

sustava. Razlika poznatog odziva stvarnog sustava i odziva

aproksimacijskog modela (npr. neuralne mreže) za istu uzbudu daje

grešku čijom minimizacijom se određuju i poboljšavaju unutarnje

varijable aproksimacijskog modela (slično kao u primjeru 4.8).

Time se dolazi do zanimljivog dvosmjernog odnosa: u procesu

optimizacije mogu se koristiti funkcijski aproksimatori čije formiranje

(određivanje vrijednosti parametara generičkog modela za promatrani

problem) i samo predstavlja proces optimizacije (minimizacija greške).

Takav rezultirajući zamjenski (brzi) aproksimacijski model se onda

uključuje u optimizacijski proces umjesto (spore i složene) simulacije

odziva izvornog fizikalnog modela. Ovo u naravi znači da se numeričko

određivanje odziva sustava na različite moguće pobude (unutar dopustive

domene varijabli) ne vrši unutar procesa optimizacije nego unutar procesa

formiranja aproksimatora promatranog sustava, odnosno raspregnuto -

izvan procesa optimiranja.

Optimizacija kod stvarnih problema nije ostvariva 'pritiskom na dugme'

ili po principu 'crne kutije', nego zahtijeva kvalificirano praćenje i

interveniranje na više razina u samom procesu, te je stoga samo ekspert u

tom području može provoditi kvalitetno. Odabir konkretne metode

optimizacije, odabir početnih točki, odabir kontrolnih parametara metode,

i niz drugih elemenata zahtijevaju kako poznavanje konkretnog tehničkog

problema koji se rješava, tako i postupaka optimizacije, te uz to iziskuje i

određeno iskustvo. Vrlo često je nužan timski rad tih eksperata te

interaktivan i iterativan proces sinteze i analize.

Uz sve ove teškoće, primjena optimizacije kod ove kategorije problema

nudi i potencijalno najveću korist, jer se klasična optimizacija provodi

'iskustveno', 'intuitivno' i na temelju 'najboljih praksi i rješenja' unutar

inženjerskog naslijeđa u tom konkretnom tehničkom području. Upravo

Page 3: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 203

zato ova kategorija problema ima posebnu težinu te nudi potencijalno

najveće iskorake u smislu određivanja optimalnih rješenja u praksi.

Postoje dva suštinski različita pristupa u optimizaciji kod problema s

ograničenjima. Prvi je izravno određivanje optimuma uz zadovoljavanje

ograničenja, a drugi je transformacija problema na način da se

zadovoljavanje ograničenja 'ugradi' u funkciju cilja, kada se

transformirani problem rješava kao problem bez ograničenja, postupcima

kao u poglavlju 4.

Predstavljeni postupci su ilustrirani uglavnom na primjerima problema s

dvije varijable jer se jedino kod njih može grafički (u 2D) pratiti tijek

postupka optimizacije u odnosu na dopustivo područje, geometrijski

smisao ograničenja, kao i nivo-linije funkcije cilja, prema slikama u

nastavku.

Opća formulacija problema optimizacije je sljedeća:

Skup varijabli optimizacije: x Є Rn

Minimum funkcije cilja f(x) (5.1)

Uz ograničenja jednakosti: hi(x) = 0 , i=1, r (5.2)

i ograničenja nejednakosti: gi(x) ≤ 0 , i=1, p (5.3)

Na slici 5.2 je prikazana domena problema s primjerom gornjih

ograničenja zadovoljenih uz neku toleranciju. Rješenje problema je ona

točka zatamnjenog područja u kojoj je funkcija cilja minimalna.

Postojanje ograničenja unosi niz promjena u strategiji optimizacije jer ona

definiraju dopustivu domenu problema te ih se mora uzeti u obzir za

vrijeme cijelog postupka traženja optimuma. Prije same primjene

postupaka optimizacije potrebno je naravno provjeriti definiciju

problema, jer loše postavljena ograničenja mogu dopustivu domenu

pretjerano reducirati ili oduzeti previše stupnjeva slobode, te u krajnjem

slučaju problem učiniti nerješivim.

Page 4: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 204

x2 g2

h1(x1,x2) = 0 g1

g1(x1,x2) ≤ 0

g2(x1,x2) ≤ 0

x1

Slika 5.2. Geometrijski prikaz 2D problema s ograničenjima

5.1. Postupci s kaznenom funkcijom ('Penalty Function')

Kod postupaka s kaznenom funkcijom, zadana funkcija cilja se modificira

uvođenjem kaznenih funkcija na bazi zadanih ograničenja. U dijelu

domene koji ne zadovoljava zadana ograničenja (nedopustivo područje),

iznosu funkcije cilja dodaje se 'kazneni dodatak' koji pogoršava vrijednost

tako modificirane funkcije cilja. Time su točke u nedopustivom području

napravljene 'lošim' (nekonkurentnim), što slijed traženja prilikom

optimizacije (postupci 4.1.1- 4.2.4) 'tjera' iz nedopustivog područja. Kako

su ograničenja 'ugrađena' u modificiranu funkciju cilja, domena problema

postaje neograničenom te se mogu primijeniti postupci traženja optimuma

funkcija sa n-varijabli bez ograničenja (poglavlje 4).

Vrijednosti kaznene funkcije 'konkurentnim' čine samo dopustivi dio

domene, dok funkcija cilja u dijelu domene koji ne zadovoljava

ograničenja zbog kaznenog dodatka poprima velike vrijednosti. Upravo

ovaj mehanizam s modificiranom funkcijom cilja omogućava primjenu

postupaka optimizacije za probleme bez ograničenja, a da ograničenja

ipak budu zadovoljena. Pri tome zbog moguće nedovoljne relativne

dopustivo područje

Page 5: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 205

numeričke uravnoteženosti utjecaja funkcije cilja i kaznenih funkcija ipak

(uz normiranje funkcija) treba i nadzirati zadovoljenost ograničenja.

Kazneni dodatak mora imati zanemarivi utjecaj na iznos funkcije cilja u

dopustivom području gdje se modificirana funkcija cilja mora poklapati

sa zadanom funkcijom. U ovom smislu se doprinos kaznene funkcije

učinkom kaznene konstante kontrolirano 'dozira' u nekoliko uzastopnih

prolaza kako je pokazano u nastavku.

Funkcije f(x), g(x) i h(x) ne moraju biti derivabilne u domeni; u tim

slučajevima se koriste negradijentne metode određivanja optimuma (npr.

4.1.1- 4.1.3). Nedostaci postupaka s kaznenom funkcijom kod primjene

gradijentnih metoda optimizacije (4.2.1- 4.2.4) su, između ostalog, slabija

konvergencija, slaba uvjetovanost Hesseove matrice za velike vrijednosti

kaznene konstante, a neki oblici kaznene funkcije mogu unijeti i

diskontinuitete u derivacijama na rubu područja. Kod velikih vrijednosti

kaznene konstante dobiva se numerički slabo uvjetovan problem i vrlo

velike vrijednosti kaznenog dodatka. Osim toga, metode temeljene na

kvadratnoj interpolaciji ili zamjenskoj funkciji drugog reda ne opisuju

dobro modificiranu funkciju cilja F(x) oko granice dopustivog područja.

Primjena kaznenih funkcija zbog svog karaktera čak i kod primjene

negradijentnih postupaka često vodi prema sporoj konvergenciji pa i

divergenciji. Zbog toga se kazneni dodatak narinjava postupno, od manjih

iznosa do većih, te tek u konačnici procesa dobivamo optimalno rješenje

koje potpuno zadovoljava ograničenja.

Ne preporuča se primjena čistih metoda drugog reda (npr. Newtonova

metoda) s kvadratnom kaznenom funkcijom za ograničenja nejednakosti,

jer Hesseova matrica može biti diskontinuirana. Kao primjer, iz (5.9)

unutar dopustivog područja slijedi ekvivalentni izraz P(x)=0 , a izvan

dopustivog područja P(x)=2(g(x))2. Gradijent kaznene funkcije P(x) je

kontinuiran bez obzira da li granici (ograničenja nejednakosti) pristupamo

iz dopustivog ili nedopustivog područja, no to ne vrijedi nužno za drugu

derivaciju P(x).

Također je bitno napomenuti da doprinosi kaznenih funkcija ukupnoj

modificiranoj funkciji cilja moraju biti međusobno uravnoteženi s

Page 6: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 206

doprinosom zadane funkcije cilja na način da ni jedan član numerički ne

dominira nad ostalima, što se postiže normiranjem i po potrebi

promjenom mjerila ('scaling'). Obično se normiranje ograničenja radi na

način da se apsolutne vrijednosti svih normiranih ograničenja kreću u

intervalu <-1,0> ili <-1,1>.

Kod gradijentnih postupaka važno je napraviti normiranje i zbog

uravnoteženosti gradijenata funkcije cilja )(xf∇ i pojedinih ograničenja

)(xjg∇ , tako da kod numeričkog određivanja smjera traženja nema

numeričke dominacije nekog od članova modificirane funkcije F(x).

Ako se primjenjuju gradijentni postupci s formulacijom putem kaznene

funkcije, nakon faze određivanja smjera kretanja (slika 4.2) obično je

bolje koristiti postupak zlatnog reza nego interpolacijske postupke za

određivanje koraka po odabranom smjeru. Razlog ovome je činjenica da

zbog visoke nelinearnosti F(x) polinomska interpolacija može biti loša.

Ako se pak koristi polinomska interpolacija, bolje je napraviti je zasebno

za f(x) i g(x) te iz njih formirati približni F(x).

Zbog numeričkih problema kod postupaka s kaznenom funkcijom važan

je i izbor kaznene konstante R kao i izbor početne točke koja zbog

visoke nelinearnosti P(x) mora biti što bliža stvarnom rješenju da bi

algoritmi traženja minimuma modificirane funkcije F(x) konvergirali

prema rješenju. Ove činjenice su razlog da se prvo odredi minimum F(x)

s malom vrijednosti parametra R (manja nelinearnost), pa tako određeni

minimum postaje početna točka za iduću, povećanu vrijednosti parametra

R. Početna točka blizu rješenju je povoljna jer se općenito funkcije blizu

minimuma ponašaju približno kvadratno. Ovi ciklusi se ponavljaju do

dobivanja optimuma sa zadovoljenim ograničenjima.

Postupak se u praksi zaustavlja kada su narušavanja ograničenja mala, a

ne postiže se više značajno smanjenje funkcije f(x). Metoda kaznene

funkcije je jednostavna u primjeni. Može se i uspostaviti veza iznosa

kaznene konstante i vrijednosti Lagrangeovih multiplikatora u KT

uvjetima (poglavlje 1).

Zbog načina optimizacije postupci s kaznenim funkcijama nazivaju se i

postupcima sekvencijalnog optimiranja bez ograničenja (SUMT =

'Sequential Unconstrained Minimization Techniques').

Page 7: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 207

5.1.1. Unutarnja kaznena funkcija

Kod postupka s unutarnjom kaznenom funkcijom, odabrana kaznena

funkcija za ograničenja nejednakosti mora imati zanemariv (u stvarnosti

'mali') doprinos iznosu funkcije cilja u dopustivom području, a

progresivno veliki iznos u blizini rubova dopustivog područja. Ovaj

postupak zahtijeva dopustivu, 'unutarnju' početnu točku. Kada se tijekom

postupka traženja trenutna točka približi ograničenju, iznos modificirane

funkcije cilja F(x) značajno raste zbog kaznenog dodatka P(x), te se tako

postupak traženja vraća u dopustivo područje. Unutarnja kaznena funkcija

na ovaj način formira svojevrstan 'zid' na rubovima dopustivog područja,

koji sprečava da postupak traženja iziđe iz dopustivog područja.

Neke od mogućih kaznenih funkcija s ovakvim svojstvom su:

P(x) = - Σ ln(-gj(x)) (5.4)

P(x) = Σ 1/( - gj(x) ) (5.5)

gdje zbroj prema (5.3) ide po ograničenjima nejednakosti, j = 1, p .

Sada se od izvorne funkcije i kaznenog dodatka formira modificirana

(ukupna) funkcija cilja na način

F(x) = f(x) + 1/Ri ⋅ P(x) , Ri+1 > Ri (5.6)

gdje je i redni broj uzastopne optimizacije s rastućom vrijednošću

kaznene konstante Ri. Kazneni parametar Ri se sukcesivno povećava,

smanjujući time doprinos kaznene funkcije. Rješenja (minimumi) za

uzastopne vrijednosti Ri daju niz rješenja koja konvergiraju prema

optimumu koji zadovoljava ograničenja, kao na slici 5.3.

Unutarnja kaznena funkcije primjenjiva je kod ograničenja nejednakosti

(5.3), a ograničenja jednakosti (5.2) mogu se ugraditi putem vanjske

kaznene funkcije kao u (5.10). Ukupni kazneni dodatak 1/Ri ⋅ P(x) se

tijekom procesa optimiranja u uzastopnim koracima smanjuje kako bi na

kraju postupka (veliki iznos R) vrijednost modificirane funkcije cilja F(x)

Page 8: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 208

u dopustivom području bila što bliža vrijednosti zadane funkcije cilja

f(x), kao na slici 5.3.

Dopustiva početna točka može se dobiti iskustveno ili putem

min{P(x)} (5.7)

odnosno određivanjem minimuma vanjske kaznene funkcije ograničenja

(bez zadane funkcije cilja).

f(x), F(x)

dopustivo područje

R1, F1 F(x) f(x)

R2, F2

R3, F3

g(x) ≥ 0 g(x) ≤ 0 x

Slika 5.3. Geometrijska interpretacija unutarnje kaznene funkcije

kod 1D problema

Tijek postupka unutarnje kaznene funkcije može se načelno prikazati

pseudokodom u nastavku, pri čemu se mora pratiti konvergencija procesa

dobivanja optimuma xopt

(Ri), jer taj niz s povećanjem R mora

konvergirati prema konačnom optimumu funkcije s ograničenjima.

Page 9: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 209

Slika 5.4. Dijagram toka kod postupka unutarnje kaznene funkcije

5.1.2. Vanjska kaznena funkcija

Kod vanjske kaznene funkcije početna točka i druge točke za vrijeme

procesa traženja optimuma ne moraju biti u dopustivom području.

Kazneni dodatak ovdje ne stvara 'zid' kako tijek traženja ne bi izišao iz

dopustivog područja, nego 'gura' tijek (slijed točaka) traženja optimuma u

dopustivo područje gdje su manje vrijednosti ukupne modificirane

funkcije cilja jer tu nema kaznenog dodatka.

Tipične kaznene funkcije koje se mogu koristiti su

P(x) = Σ max (0, gj(x))2 (5.8)

Započeti sa dopustivim počet. rješenjem x , početnim R1 , te iteracijom i = 1

Odrediti xopt optimum za F(x) = f(x) + 1/R·P(x) nekom od metoda za nD probleme bez ograničenja

Nova vrijednost parametra, Ri+1 > Ri te ponoviti postupak

rješenje

Dobiveni xopt funkcije F(x) je optimum f(x) uz zadovoljavanje

ograničenja gi(x) ≤ 0 , i=1,p tj. f∼F

da

Page 10: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 210

P(x) = Σ (gj(x) + abs gj(x))2 / 2 (5.9)

gdje suma ide po zadanim ograničenjima, j=1, p, prema (5.3).

Kada postoje ograničenja jednakosti (5.2), odgovarajuća dodatna kaznena

funkcija je:

P(x) = Σ hj(x)2 (5.10)

gdje je suma po odgovarajućim ograničenjima j=1, r .

Oblik kaznenih funkcija (5.8)-(5.10) osigurava ranije navedene zahtjeve,

tj. nulti kazneni dodatak u dopustivom području i progresivnu kaznu

odnosno porast modificirane funkcije cilja izvan dopustivog područja.

Bitno svojstvo kaznenih funkcija jest da su to kvadratne funkcije koje

osiguravaju kontinuitet nagiba modificirane funkcije cilja (5.11), no druge

derivacije nisu kontinuirane na rubu dopustivog područja (vidjeti raspravu

u pogl. 5.1.). Uslijed te činjenice postupci optimizacije drugog reda

(Newtonova metoda) mogu divergirati dok Kvazi- Newtonovi postupci

imaju manje problema jer Hesseovu matricu aproksimiraju na temelju

prvih derivacija.

Modificirana (ukupna) funkcija cilja formira se kao

F(x) = f(x) + Ri ⋅ P(x) , Ri+1 > Ri (5.11)

gdje se Ri sukcesivno povećava i time osigurava zadovoljavanje uvjeta

ograničenja.

Primjer 5.1:

Formulirati problem cilindričnog spremnika minimalnog

oplošja i zadanog najmanjeg volumena za primjenu

postupka s vanjskom kaznenom funkcijom. (vidjeti i

primjer 1.7 te sliku dopustivog područja u primjeru

7.3)

l V

r

Page 11: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 211

Na slikama u nastavku iscrtano je dopustivo područje

i izvorna funkcija cilja (oplošje)

2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 70

5

10

15

20

25

30

35

40

fun1 = 330

fun2 = 360

fun3 = 390

Ogr

x(1)

x(2

)

a u nastavku putem skripte

[x1, x2]=meshgrid(1: 0.5: 7 , 5: 5: 50);

FunCilj=2.*x1.^2*Pi+ 2.*x1.*x2*Pi ;

ogr = Vol - x1 .^2 .* x2 * Pi ;

FunKazn = (ogr + abs(ogr)) .^2 ./ 2 ;

fun = FunCilj + Kazn .* FunKazn ;

surfl(x1, x2, fun);

view([ 5, 40, 20]);

model: nD problem s ograničenjem nejednakosti:

varijable: x1 = r, x2= l

funkcija cilja: min. f = 2r2π + 2rlπ

ograničenje: r2πl ≥ V

uvođenje formulacije s kaznenom funkcijom

transformirani nD problem bez ograničenja

−+−⋅++

222

2

2

)()(22min

lrVlrVRrlr i

ππππ

1234567

0

20

40

60

0

500

1000

1500

2000

2500

3000

x(1) x(2)

fun1

Page 12: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 212

modificirana funkcija cilja (s rastućom vrijednošću

kaznene konstante od lijeve prema desnoj slici):

1234567

0

50

0

1000

2000

3000

4000

5000

x(1) x(2)

fun1

U početku procesa kaznena konstanta se odabire s relativno malom

vrijednošću i tada se rješenje dobiva bez numeričkih problema, no

ograničenja ne moraju nužno biti zadovoljena u potpunosti zbog malog

iznosa kaznenog dodatka. U kasnijim koracima optimizacije s velikim R

ograničenja su sigurno zadovoljena, no zbog slabe uvjetovanosti može

doći do numeričkih problema u određivanju minimuma, vidjeti tekst u

poglavlju 5.1. i poglavlju 1.6.

Kod određivanja optimuma (5.11) za Ri+1 kao početna točka postupka

uzima se optimum određen za Ri .

f(x), F(x)

dopustivo područje

R3 , F3 f(x)

R2,F2

R1 , F1

g(x) > 0 g(x) ≤ 0 x

Slika 5.5. Geometrijska interpretacija vanjske kaznene funkcije za 1D

1234567

0

20

40

60

0

1

2

3

4

5

x 105

x(1) x(2)

fun1

Page 13: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 213

Tijek postupka kod vanjske kaznene funkcije odgovara onome ranije

navedenom kod unutarnje kaznene funkcije (slika 5.4), ali ne treba

dopustiva početna točka. Jedna od mana vanjske kaznene funkcije je ta da

se slijed dobivenih optimuma (za različite R) stvarnom optimumu

približava iz nedopustivog područja, pa nedovoljno velik konačni R

rezultira u optimumu koji blago narušava zadana ograničenja. Za potpuno

zadovoljenje ograničenja ponekad je potrebna vrlo velika konačna

vrijednost kaznene konstante.

Primjer 5.2

Primjenom postupka vanjske kaznene funkcije potrebno

je odrediti minimum funkcije f=(x1-2)2+(x2-3)

2+4

iz početne točke (5,5) uz ograničenje x2 ≤ 3 - x1 .

FunkcijaCilja=@FunkcijaKaznenaProbno;

BrojVarijabli=2;

x0 = [ 5 5 ]; % vanjska pocetna tocka

options = optimset('LargeScale','off');

[x, fval, exitflag, output] = ...

fminunc(FunkcijaCilja, x0, options)

------

function f=FunkcijaKaznenaProbno(x)

fun=(x(1) - 2)^2 + (x(2) -3)^2 + 4 ;

kaz = 10 ;

ogr1=( x(1) + x(2) -3 ) ;

% vanjska kaznena funkcija

pen = (ogr1 + abs(ogr1))^2/2 ;

f= fun + kaz * pen ;

Dobiveni optimumi u slijedu povećavanja vrijednosti

kaznene konstante iznose:

točka kaznena

konstanta

optimum (x1,x2) funkcija

cilja

iznos

ograničenja

0

(5 , 5) 17 početna

točka

1 0.0001 (2 , 3) 4 2

2 0.1 (1.71 , 2.71) 4.57 1.42

3 1 (1.2 , 2.2) 5.6 0.4

4 10 (1.02 , 2.02) 5.95 0.04

5 1000 (1.0002, 2.0002) 5.99 0.0004

Page 14: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 214

Grafički je slijed (kroz nedopustivo područje)

dobivanja optimuma za različite vrijednosti kaznene

konstante prikazan na prethodnoj slici.

Primjer 5.3:

Potrebno je postaviti problem određivanja ravnotežnog

stanja mehaničkog sustava sa zadanom silom F i

pomakom x1 prema slici kao optimizacijski problem.

1 x1,zadani

k1

2 F2, zadani

k2

3

Page 15: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 215

Može se postaviti uvjet minimuma potencijalne

energije sustava u ravnotežnom stanju, uz nametanje

zadanih pomaka kao ograničenja, kada slijedi:

( ) ( ){ }22

2

322

2

211 2/12/1min xFxxkxxk ⋅−−⋅+−⋅=Π

ograničenja: 0,x 3zadani1,1 == xx

Formulacija pomoću kaznene funkcije može biti

( ) ( )

23

2zadani1,1

22

2

322

2

211321

)()x(

2/12/1),,,(

xRxR

xFxxkxxkRxxxF

⋅+−⋅+

+⋅−−⋅+−⋅=

Rješenje se može dobiti primjenom funkcije fminunc():

1

2

3

x 10-3-50510

x 10-3

-1

0

1

2

3

4

5

6

x1 x2

f

Na slici je nacrtana F uz eksplicitno ugrađen x3=0 te

je vidljiv učinak kaznene funkcije oko x1=0.002 .

Ovaj primjer pokazuje postupak gdje se na osnovu minimuma

potencijalne energije sustava određuju vrijednosti varijabli za slučaj

ravnoteže, uz zadane vanjske uvjete narinute na sustav kao ograničenja.

Ovaj princip se koristi u nekim numeričkim postupcima analize u

mehanici kontinuuma.

global l k1 k2 x1z F2z Kazna;

Kazna= 1e7;

k1= 10000 ; k2= 20000 ; %N/m

x1z= 0.002 ; %m F2z= 60 ; %N

x0= [ 0.05 0.06 0.07 ];

[x,fval]=fminunc(@primjer53,x0)

function f= primjer53(x)

%--------------

global l k1 k2 x1z F2z Kazna;

fun=k1*(x(1)-x(2))^2+ ...

k2*(x(2)-x(3))^2;

fun= fun /2;

fun= fun- F2z*x(2) ;

ogr= (x(1)-x1z)^2 + x(3)^2 ;

f = fun + Kazna * ogr ;

Optimization terminated:

x= 0.0020 0.00266 0.00 fval = --0.0867

Page 16: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 216

5.2. Direktni postupci NLP Kod NLP, optimum općenito može ležati ili unutar dopustivog područja

ili na njegovoj granici. Ako trenutna bazna točka leži unutar dopustivog

područja, tada se metodama nD optimizacije bez ograničenja (pogl. 4)

može doći ili do granice dopustivog područja ili do optimuma unutar

dopustivog područja. Kod početne točke izvan dopustivog područja, prvo

se dolazi do granice dopustivog područja.

Nakon što trenutna točka dođe do granice dopustivog područja, neka od

zadanih ograničenja postaju aktivnim te nastavak procesa optimizacije

slijedi metodama u nastavku poglavlja 5.2.

Kretanje od točke na granici

do nove točke s manjom

vrijednošću funkcije cilja

obično se vrši po smjeru

lagano otklonjenom od

tangente na granicu prema

unutrašnjosti dopustivog

područja.

I kod ovih metoda, kao i kod metoda u poglavlju 4, proces optimizacije

slijedi u dva koraka koji se ciklički ponavljaju do dolaska u optimum:

(1) korak određivanja smjera traženja, i

(2) korak 1D traženja minimuma po odabranom smjeru.

U tom smislu može se prikazati načelni tijek tipičnog procesa direktne

optimizacije kod nD problema s ograničenjima putem pseudokoda:

g(x)=0

g(x)<0

t

Page 17: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 217

(5.22)

(5.23)

(5.24)

Glavna razlika u odnosu na postupke kod nD optimizacije bez

ograničenja (pogl. 4) je u određivanju smjera kretanja, koje ovdje mora

obuhvatiti i učinak ograničenja. Ovdje je potrebno istovremeno

zadovoljavati:

(1) smanjivanje vrijednosti funkcije cilja, i

(2) uvjete zadovoljavanja ograničenja,

kako je pokazano u poglavlju 1.5 (smjerovi pada i dopustivi smjerovi).

Kod definiranja smjera traženja (5.22), (5.23) u trenutnoj baznoj točki xi

dovoljno je razmatrati skup 'aktivnih ograničenja' gdje spadaju:

(1) sva ograničenja jednakosti,

(2) nezadovoljena ograničenja nejednakosti, i

(3) ograničenja nejednakosti zadovoljena znakom jednakosti

u trenutnoj baznoj točki. Zbog greške uslijed linearizacije te zbog pomaka

uzduž smjera traženja iz trenutne bazne točke, u treću grupu se uključuje i

uski pojas (ε) u dopustivom području oko dotičnog ograničenja, prema:

1. korak linearizacija problema u trenutnoj baznoj točki xi

{ aktivni skup ograničenja NLP u xi } → { LP u ∆xi } (NLP je nelinearni problem a LP pripadni linearizirani)

2. korak rješavanje pripadnog lineariziranog LP

{ LP sa varijablama ∆xi } → smjer traženja di

3. korak 1D pomak uzduž smjera di tako da se smanjuje funkcija cilja. Pomak je ograničen jer je linearizacija dobra samo u okolini xi

xi = xi + αi ·di

Page 18: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 218

Uvjet

g(x) = 0 (5.25)

ublažava se (relaksira) u uvjet

g(x) = 0 - ε ; ε << ; ε > 0 (5.26)

pa se i ograničenja u čijem ε - pojasu se nalazi (dopustiva) trenutna bazna

točka uključuju u skup aktivnih ograničenja.

Preporučuje se normiranje ograničenja. Skup aktivnih ograničenja nije

fiksni skup, jer pomicanjem bazne točke neka aktivna ograničenja postaju

neaktivna i obrnuto. Kod problema sa ograničenjima napredovanje prema

minimumu uz zadovoljavanje ograničenja može se pratiti kroz vrijednost

funkcije pada (funkcije spusta, 'descent function') koja se formulira tako

da integralno obuhvaća i vrijednost funkcije cilja i ukupno narušavanje

uvjeta ograničenja. Time funkcija pada zamjenjuje funkciju cilja kod

problema bez ograničenja odnosno modificiranu funkciju cilja (5.11) kod

formulacije sa kaznenom funkcijom.

U nastavku su prikazane samo načelne informacije o ovim metodama u

svrhu razumijevanja tijeka optimizacije uz primjenu gotovih funkcija.

Detaljna razrada postupaka je izvan opsega teksta.

5.2.3. Postupak sekvencijalnog linearnog programiranja

(SLP)

Najjednostavnije i najizravnije korištenje linearizacije je zamjena općeg

nelinearnog problema s linearizacijom pripadnih funkcija (funkcija cilja,

funkcije ograničenja) koje definiraju problem optimizacije, [1]. Pošto se

na ovaj način sve funkcije problema zamjenjuju svojim linearnim

g(x)=0

ε g(x)<0

Page 19: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 219

aproksimacijama, definirani problem koji rezultira u pojedinoj točki može

se riješiti kao i svaki drugi linearni problem. Ova metoda, kod koje se u

svakoj iteraciji koriste postupci linearnog programiranja, zove se metoda

sekvencijalnog linearnog programiranja ('Sequential Linear

Programming', SLP). Kod metode SLP rješenjem linearnog problema

(LP) nastalog linearizacijom zadanog nelinearnog problema (NLP) dobiva

se pomak iz trenutne točke.

Općeniti problem nelinearnog programiranja, uzimajući u obzir ranije

razmatranje aktivnih ograničenja, uz (k) kao indeks iteracije, može se

zapisati kao:

Min )(xf , uz

0)( ≤xjg , pj ,...,2,1=

0)( =xjh , rj ,...,2,1=

U trenutnoj točki )(kx , primjenom razvoja u Taylorov red (1.15) po x te

zanemarivanjem članova drugog i viših redova, linearizirani problem

glasi:

Min )()()( )()( kkTk ff xxx ∆∇+ (5.44)

uz )()( kk xxx −=∆ te ograničenja

0)()()( )()()()()( ≤∆∇+≅∆+ kkTj

kj

kkj ggg xxxxx , pj ,...,2,1= (5.45)

0)()()( )()()()()( =∆∇+≅∆+ kkTj

kj

kkj hhh xxxxx , rj ,...,2,1=

x2 g1 f=const.

g1L fL =const.

g2 g2L

minL

Slika 5.8. Linearizacija (indeks L) kod SLP metode

Page 20: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 220

Matrični zapis ovih izraza odnosno lineariziranog problema uz:

nix

fc

i

i ,...,2,1; =∂

∂=

nirjx

hn

i

j

ji ,...,2,1,,...2,1; ==∂

∂= } (5.46)

nipjx

ga

i

j

ji ,...,2,1;,...2,1; ==∂

∂=

ej = - hj(x) , rj ,...,2,1=

bj = - gj(x) , pj ,...,2,1=

je:

f = cTd (5.47)

ograničenja: NTd = e

==∑

=

rjedn ji

n

i

ji ,1,1

} (5.48)

ATd ≤ b

==∑

=

pjbda ji

n

i

ji ,1,1

pri čemu f predstavlja lineariziranu promjenu (prirast) izvorne funkcije

cilja a d = ∆x prirast varijabli (vidjeti primjer 5.4 za linearizaciju).

Iz gornjeg je vidljivo da na ovaj način linearizirani NLP problem postaje

LP problem čije su varijable d prirasti zadanih varijabli x. Stoga se

mogu koristiti LP metode (poglavlje 2) za dolazak u novu točku )1( +kx . Pri

tome d može biti proizvoljnog predznaka, što je putem transformacije

varijabli potrebno ugraditi u standardni oblik LP, te je potrebno (5.48) u

potpunosti svesti na standardni oblik kao u poglavlju 2.1.

Rješenje lineariziranog NLP putem LP postupaka naravno ne daje odmah

optimum, nego je potrebno iterativno nastaviti s postupkom do

zadovoljavanja kriterija za prihvaćanje rješenja. Valja naglasiti da bez

obzira što je )(kx točka u dopustivom području nelinearnog problema, to

ne mora nužno implicirati da će i točka )1( +kx biti u dopustivom području.

Iako je linearizacija (5.47) dobra aproksimacija unutar nekog malog

područja oko točke linearizacije )(kx , ona može biti prilično loša izvan tog

područja. Jedan način osiguranja da se linearizacija koristi samo unutar

Page 21: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 221

nekog užeg područja oko točke aproksimacije (″valjanog″ područja), je

nametanje ograničenja na dopuštenu promjenu ('increments') varijabli. Za

svaki potproblem oko točke )(kx , narinjavaju se granice:

ig

k

iid d δδ ≤≤− )( , ni ,...2,1= (5.49)

gdje su idδ igδ prikladno odabrani pozitivni parametri koji predstavljaju

dopuštenu donju i gornju granicu veličine koraka po i-toj varijabli.

U slučaju velikog koraka (bez (5.49)), osim loše linearizacije problem

može biti i neograničeni LP (neomeđeno područje), kada ne bi imao

rješenje (pogl. 2). Jedan od načina ograničavanja veličine koraka odnosno

postavljanja granica u (5.49) jest da korak ne može prekoračiti određeni

dio vrijednosti trenutne točke )(kx . Na žalost, pravilnu veličinu iδ je teško

procijeniti, tako da loše odabrane vrijednosti dovode do spore

konvergencije i velikog broja iteracija. Slika 5.9 pokazuje utjecaj

odabira granica koraka:

Slika 5.9. Ograničenje linearnog pomaka kod SLP

Rješenje se prihvaća za zadovoljena ograničenja (5.2) i (5.3) te

stacionarnost ||d||<tol∆x za LP prema (5.47)-(5.48). Metoda SLP je manje

δ1d

dopustivo

područje

δ1g

δ2d

δ2g

x1

x2

dopustivo

područje

x(k)

ε

SLP

SQP

g(x)=0

Page 22: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 222

učinkovita od drugih metoda jer se ne izvršava 1D traženje po smjeru koji

je određen te joj učinkovitost znatno ovisi o granicama koraka (5.49).

Slika 5.10. Načelni dijagram toka metode SLP

Početna točka x (metodom pokušaja) )0(x .

Iteracija k=0, kriteriji zaustavljanja tologr , tol∆x

Funkcija cilja i ograničenja (sva ili samo aktivna) u trenutnoj točki x(k) ,

izračunati )( )(kxf , pjxg k

j ,...,2,1),( )( = , rjxh kj ,...2,1),( )( = ..

Izračunati vrijednosti gradijenata funkcije cilja i ograničenja u točki x(k), tj. izračunati sljedeće (linearizacija):

nix

fc

i

i ,...,2,1; =∂

∂= nirj

x

hn

i

j

ji ,...,2,1,,...2,1; ==∂

∂=

nipjx

ga

i

j

ji ,...,2,1;,...2,1; ==∂

∂=

Odabrati prikladne granice koraka igid δδ ,

Definirati LP model problema sa (5.47) - (5.49), svesti na standardni oblik

Riješiti LP model problema (pogl.2.2): dobiveni LP model postaviti u

standardni Simplex oblik i rješiti ga za )(kd .

Prihvaćanje rješenja:

pjtolg ogrj ,...1, =≤

rjtolh ogrj ,...1, =≤

xk told ∆≤)(

Nova vrijednost točke: )()()1( kkk dxx +=+, podesiti 1+= kk .

rješenje

Page 23: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 223

Primjeri primjene optimizacije kod nD problema s

ograničenjima

Cilj ovih primjera nije učinkovito numeričko rješavanje konkretnih

primjera ni puna dosljednost u primjeni metoda, nego što jednostavnija

ilustracija logike postupaka optimizacije. U tom smislu zbog preglednosti

primjera nisu uključena normiranja i nesuštinski dijelovi programskog

koda.

Primjer 5.5.

Gredni nosač, nastavak primjera 1.8.

Potrebno je optimalno dimenzionirati gredni nosač

geometrijski zadan i opterećen prema slici, ako je:

F = 5 kN, a = 0.2 m, σdop = 120 MPa.

Problem riješiti analitički, analitički uz kaznenu

funkciju, grafički, direktnom nD optimizacijom s

ograničenjima primjenom MATLAB funkcije fmincon(), te

optimizacijom s kaznenom funkcijom primjenom MATLAB

funkcije fminunc().

q F

4a 4a 2a

1.8F

poprečne sile

0.2F

1.2F

3.24 kNm

momenti savijanja

xm

Odabir presjeka: pravokutni presjek, 2 varijable, uz

konstrukcijsko ograničenje h/b ≤ 3 . Svođenje ograničenja nosivosti na standardni oblik

moguće je na više načina.

h

b

Page 24: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 224

1. način: Analitičko rješenje uz eliminaciju jedne

varijable

Iz mehanike materijala poznato je da za maksimalno

naprezanje uslijed savijanja vrijedi

σ = M/W ≤ σdop , pri čemu je moment otpora pravokutnog presjeka

W = bh2/6 .

Jasno je da moment otpora ima maksimum za maksimalni

omjer h/b, pa se uvodi granični omjer h/b = 3 , čime

je problem redukcijom broja varijabli sveden na

problem sa jednom varijablom, kada slijedi rješenje:

6

)3( 2bb

W⋅

=

odnosno iz W ≥ M/σdop dobije se rješenje b ≥ 26.1 mm.

2. način: Ilustracija rješenja uz primjenu

formulacije s kaznenom funkcijom.

Postupak u nastavku nema praktičnu vrijednost već

samo služi za ilustraciju metode. Zadano je:

min f = cx1x2 (minimalna masa)

uz M - σd/6 ·x1x22 ≤ 0 (ograničenje nosivosti)

x2 - 3x1 ≤ 0 (ograničenje dimenzija)

Formulacija s unutarnjom kaznenom funkcijom može

biti: (zbog preglednosti nije uvedeno normiranje)

−+

⋅−=

12221d

213

1

xx/6 - M

11)(

xxRxcxxF

σ

za koju se mogu postaviti nužni uvjeti za ekstrem

0)3(

3

) xx/6 - (M

x/612

1222

21d

22d

2

1

=

−+

⋅−=

xxRcx

x

F

σ

σ

0)3(

1

) xx/6 - (M

x x/312

1222

21d

21d1

2

=

−+

⋅−=

xxRcx

x

F

σ

σ

MATLAB omogućava simboličko određivanje derivacija:

syms x1 x2 c R M Sigd ;

f= c*x1*x2-1/R*(1/(M-Sigd/6*x1*x2^2) + 1/(x2-3*x1))

grad = [ diff(f,x1) ; diff(f,x2) ] ;

disp( ' funkcija_f') ; disp( f) ; disp( ' gradijent_fx1_fx2') ; disp( grad ) ;

Page 25: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 225

Rješenje:

Ovaj se sustav može riješiti numerički kao sustav

nelinearnih jednadžbi za niz vrijednosti parametra

R. Rješenja sustava za rastuće vrijednosti R daju

niz koji konvergira prema optimumu zadanog problema

sa ograničenjima. Ova formulacija se naravno može

provjeriti uvrštenjem rješenja dobivenog drugim

načinima. Na slikama u nastavku je prikazana domena

problema sa ograničenjima i izvorna funkcija cilja

0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.050

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

fun1 = 0.001

fun1 = 0.002

fun1 = 0.003

fun1 = 0.003

Ogr1

Ogr2

x(1)

x(2

)

te modificirana funkcija cilja sa kaznenom funkcijom

(R=1) prema prethodnom izrazu za F(x) pomoću:

. . .

FunCilj= x1 .* x2 ;

Ogr1=6*Mmax ./ (SigDop .* x1 .* x2 .^2)-1 ;

Ogr2= x2 ./ ( 3 .* x1 ) - 1 ,

FunKazn1= (Ogr1 + abs(Ogr1)) .^2 ./ 2 ;

FunKazn2= (Ogr2 + abs(Ogr2)) .^2 ./ 2 ;

fun=FunCilj+ Kazn .* (FunKazn1 FunKazn2) ;

...

surfl(x1, x2, fun) ;

view([ 0.05, 0.1, 0.4 ]) ;

funkcija_f

c*x1*x2-1/R*(1/(M-1/6*Sigd*x1*x2^2)+1/(x2-3*x1))

gradijent_fx1_fx2

c*x2-1/R*(1/6/(M-

1/6*Sigd*x1*x2^2)^2*Sigd*x2^2+3/(x2-3*x1)^2)

c*x1-1/R*(1/3/(M-1/6*Sigd*x1*x2^2)^2*Sigd*x1*x2-

1/(x2-3*x1)^2)

Page 26: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 226

3

.

n

ačin: Grafičko rješenje, dio programa

Skriptom u MATLABu kao u nastavku može se iscrtatati

grafičko rješenje (klasično putem programskih petlji

radi ilustracije):

SigDop = 120e6 ; Mmax = 3240 ; % Nm

figure(1) ;

%--------------

pocet = 0.01 ; kraj = 0.05 ; korak = kraj/50 ;

x1 = pocet :korak :kraj ; % formiraj vektor x1

% FUNKCIJA CILJA

f1 = 0.001 ;

f1_x2 = f1 ./ x1 ; % formiraj vektor x2

. . .

% ogranicenja

Priv1 = Mmax/SigDop * 6 ;

Priv2 = Priv1 ./ x1 ;

Ogr1_x2 = sqrt(Priv2) ;

Ogr2_x2 = 3 .* x1 ;

...

title(' graficko rjesenje greda') ;

plot(x1, f1_x2, x1, f2_x2, x1, f3_x2, x1, f4_x2) ;

text(x1(36) , f1_x2(36), 'fun1 = 0.001') ;

Page 27: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 227

. . .

hold on ;

plot(x1, Ogr1_x2, '*', x1, Ogr2_x2, '*') ;

text(x1(1) , Ogr1_x2(1), 'Ogr1') ;

text(x1(1) , Ogr2_x2(1), 'Ogr2') ;

xlabel(' x(1)') ; ylabel(' x(2)') ;

grid on ;

. . .

figure(3) ;

%--------------

[x1, x2] = meshgrid(0: 0.02: 1 , 0: 0.02: 1) ;

Ogr1 = Mmax - SigDop .* x1 .* x2 .^2 /6 ;

contour3(x1, x2, Ogr1, 40) ;

xlabel(' x(1)') ;

ylabel(' x(2)') ;

zlabel(' Ogr1') ;

Page 28: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 228

Funkcija cilja: Ograničenje g1:

U MATLAB-u se primjenom funkcije contour() može

jednostavnije nacrtati nivo-linije funkcije cilja te

ograničenja (bez računanja u petljama), prema:

SigDop = 120 * 10^6 ; % 120 MPa

Mmax = 3240 ; % Nm

figure(1);

[x1,x2]=meshgrid(0.01:0.005:0.05,0:0.05:0.4);

fun= x1 .* x2 ;

Ogr1 = Mmax - SigDop .* x1 .* x2 .^ 2 /6 ;

Ogr2 = x2 - 3 .* x1 ;

...

[ kr1, hand1 ]= contourf(x1, x2, fun, 9) ;

clabel(kr1, hand1);

colorbar ;

grid on ;

hold on ;

[ kr2, hand2 ] = contour(x1, x2, Ogr1, ...

[ 0, 0 ], 'k-', 'LineWidth',2 ) ;

clabel(kr2, hand2);

[ kr3, hand3 ] = contour(x1, x2, Ogr2, ...

[ 0, 0 ], 'k-', 'LineWidth',2 ) ;

clabel(kr3, hand3);

Page 29: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 229

0.0025

0.0025

0.0025

0.0025

0.005

0.005

0.005

0.005

0.0075

0.0075

0.0075

0.01

0.01

0.01

0.0125

0.0125

0.015

0.0175

0

00

0

0

0

0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.050

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

2

4

6

8

10

12

14

16

x 10-3

4.način: Direktno optimiranje, obitelj SQP metoda,

fmincon() funkcija

Primjenom MATLAB funkcije fmincon() za određivanje

optimuma funkcija sa n varijabli i ograničenjima,

temeljenoj na SQP algoritmu, može se uz definiciju

problema programskim skriptama kao u nastavku dobiti

rješenje ovog problema.

Napomena 1: česti razlozi da proces optimizacije ne

konvergira kod rješavanja ovakvih problema su loša

početna točka i nenormirana ograničenja, vidjeti

raniji tekst. Napomena 2: U svrhu veće preglednosti procesa

rješavanja, u nizu primjera nisu uvedeni koraci

potrebni za veću numeričku učinkovitost, kao što je

normiranje funkcije cilja i ograničenja. Također nije

prikazano variranje kaznene konstante i odgovarajući

slijed rješenja.

% fminunc() sa TestFunkcijaKaznenaGreda1

% fmincon() sa TestFunkcijaGreda1 i

% TestOgranicenjaGreda1

ogr1

ogr2

Page 30: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 230

FunkcijaCilja=@TestFunkcijaGreda1 ;

FunkcijaOgranicenja=@TestOgranicenjaGreda1 ;

FunkcijaCiljaKaznen=@TestFunkcijaKaznenaGreda1;

BrojVarijabli=2;

x0 = [ 1 1 ];

options = optimset('LargeScale','off');

% VERZIJA KAZNENA FMINUNC:

%-------------------------

% [x, fval, exitflag, output] =

% fminunc(FunkcijaCiljaKaznena, x0)

% VERZIJA DIREKTNA FMINCON:

%-------------------------------

[x, fval, exitflag, output] = fmincon( ...

FunkcijaCilja, x0, [], [], [], [], [], ...

[], FunkcijaOgranicenja, options)

-------

function f=TestFunkcijaGreda1(x,y)

% izvorna funkcija cilja

JedinCijenaMaterijala = 1 ;

JedinTrosakOdrzavanja = 1 ;

% minimalna tezina grede (min. materijala)

fun1 = x(1) * x(2) * JedinCijenaMaterijala ;

fun2= 2*(x(1)+ x(2))* JedinTrosakOdrzavanja;

disp(['TestFunkcijaGreda1:x(1)=',num2str(x(1))…

,'x(2)=',num2str(x(2)),'fun1=',num2str(fun1)]);

f=fun1;

--------------------

function [ogr_g,ogr_h]=TestOgranicenjaGreda1(x)

% ogran. ogr_g nejednakosti oblika ogr_g <= 0

% ogran. ogr_h jednakosti oblika ogr_h = 0

SigDop = 120e6 ; % 120 MPa

Mmax = 3240 ; % Nm

% normiranje: eksperimentirati unutar skripte

Wotp = x(1) * x(2)^2 /6 ;

Ogr0 = - x(1) ;

Ogr1 = Mmax - SigDop * Wotp ;

Ogr2 = x(2) - 3 * x(1) ;

ogr_g = [ Ogr0 ;

Ogr1 * 10^(-4) ;

Ogr2 ] ;

fprintf('TestOgranicenjaGreda1:x(1), x(2)=...

%5.3e, %5.3e ', x(1), x(2) ) ;

fprintf('ogr_g= %5.3e,%5.3e,%5.3e /n', ...

ogr_g(1), ogr_g(2), ogr_g(3) ) ;

disp(' ') ;

Page 31: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 231

ogr_h = [] ;

Djelomični tijek izračuna:

U ispisu su kao 'active constraints' navedena

ograničenja aktivna u točki minimuma.

5.način: Primjena kaznene funkcije, fminunc()

funkcija

Primjena MATLAB funkcije fminunc() za određivanje

optimuma funkcija sa n varijabli bez ograničenja,

temeljena na Kvazi- Newton algoritmima korištena je u

ovom primjeru uz formulaciju s kaznenom funkcijom.

Poziv funkcije dan je u primjeru 5.5- 4.način.

Napomena: česti razlozi nekonvergencije prema

rješenju su loša početna točka, nenormirana

ograničenja, iznos kaznene konstante, vidjeti ranije.

Ovi parametri su u primjeru varirani.

function f=TestFunkcijaKaznenaGreda1(x)

% ogranicenja ugradena putem kaznene funkcije

% global Mmax SigDop ;

SigDop = 120e6 ; % 120 MPa

Mmax = 3240 ; % Nm

>> TestFunkcijaGreda1: x(1)=1 x(2)=1 fun1=1

TestOgranicenjaGreda1: x(1), x(2)= 1.000e+000, 1.000e+000

ogr_g = -1.000e+000, -2.000e+003, -2.000e+000

TestFunkcijaGreda1: x(1)=0.40003 x(2)=0.80006 fun1=0.32005

TestOgranicenjaGreda1: x(1), x(2)= 4.000e-001, 8.001e-001

ogr_g= -4.00e-001, -5.118e+002, -4.00e-001

...

TestFunkcijaGreda1: x(1)=0.026207 x(2)=0.078463 fun1=0.002056

TestOgranicenjaGreda1: x(1), x(2)= 2.621e-002, 7.846e-002

ogr_g = -2.621e-002,1.308e-003,-1.588e-004

Optimization terminated successfully:

First-order optimality measure less than options.TolFun and

maximum constraint violation is less than options.TolCon

Active Constraints:

2 3

x = 0.0262 0.0786

fval = 0.0021

exitflag = 1

output = iterations: 13 funcCount: 55

Page 32: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 232

% izvorna funkcija cilja

% --------------------------

JedinCijenaMaterijala = 1 ;

JedinTrosakOdrzavanja = 1 ;

% minimalna tezina grede (min. materijala)

fun1 = x(1) * x(2) * JedinCijenaMaterijala ;

% minimalno oplošje grede (min. odrzavanje)

fun2= 2* (x(1)+ x(2))* JedinTrosakOdrzavanja;

% ogranicenja, putem kaznene funkcije (vanjske)

% -------------------------------------------

% ogran. ogr_g nejednakosti oblika ogr_g <= 0

% ogran. ogr_h jednakosti oblika ogr_h = 0

% ogran. nejednakosti 1: cvrstoca (nosivost)

% ogran. nejednakosti 2: omjer dimenzija

% pravokutnog presjeka h/b < 3

Wotp = x(1) * x(2)^2 /6 ;

Og_1 = - x(1) ;

Og_2 = Mmax - SigDop * Wotp ; % moze i drukcije

Og_3 = x(2) - 3 * x(1) ;

...

% normirana ogranicenja (eksperimentirati)

Og_1 = Og_1 ;

Og_2 = Og_2 * 10^(-4) ;

Og_3 = Og_3 ;

Kazna = 1 ; % kaznena konstanta

% vanjska kaznena funkcija

fOgr1 = (Og_1 + abs(Og_1))^2/2 ;

fOgr2 = (Og_2 + abs(Og_2))^2/2 ;

fOgr3 = (Og_3 + abs(Og_3))^2/2 ;

f_kazn = Kazna * (fOgr1 + fOgr2 + fOgr3) ;

disp([' TestFunkcijaKaznenaGreda1: x(1)=', ...

num2str(x(1)),'x(2)=',num2str(x(2)),'fun1=',…

num2str(fun1),' f_kazn=', num2str(f_kazn)]);

fprintf('Og_1,Og_2,Og_3= %5.3e %5.3e %5.3e ...

', Og_1, Og_2, Og_3 ) ;

fprintf('fOgr1,fOgr2,fOgr3= %5.3e %5.3e ...

%5.3e ', fOgr1, fOgr2, fOgr3 ) ;

disp(' ') ;

f = fun1 + f_kazn ;

ispis dijela izvršenja:

Page 33: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 233

Primjeri za vježbu

1. Modelirati zadatak prema slici kao zadatak optimiranja (postaviti

varijable, cilj i ograničenja). Zadano je F, L, b. Uzeti u obzir nosivost

zavara, čvrstoću konzole, otpornost na izbočavanje, dopušteni progib,

tehnološki izvodive omjere dimenzija, itd.

>> TestFunkcijaKaznenaGreda1: x(1)=1 x(2)=1 fun1=1 f_kazn=0

Og_1,Og_2,Og_3= -1.000e+000 -2.000e+003 -2.000e+000

fOgr1,fOgr2,fOgr3= 0.000e+000 0.000e+000 0.000e+000

TestFunkcijaKaznenaGreda1: x(1)=6.0775e-009 x(2)=2.8282e-008

fun1=1.7188e-016 f_kazn=0.20995

Og_1,Og_2,Og_3= -6.077e-009 3.240e-001 1.005e-008

fOgr1,fOgr2,fOgr3= 0.000e+000 2.100e-001 2.020e-016

...

TestFunkcijaKaznenaGreda1: x(1)=0.025689 x(2)=0.079278

fun1=0.0020366 f_kazn=1.2149e-005

Og_1,Og_2,Og_3= -2.569e-002 1.090e-003 2.210e-003

fOgr1,fOgr2,fOgr3= 0.000e+000 2.378e-006 9.771e-006

Optimization terminated successfully:

TestFunkcijaKaznenaGreda1:

x(1)=0.025703 x(2)=0.079261

fun1=0.0020373 f_kazn=1.1437e-005

Og_1,Og_2,Og_3= -2.570e-002 1.045e-003 2.151e-003

fOgr1,fOgr2,fOgr3= 0.000e+000 2.183e-006 9.255e-006

x = 0.0257 0.0793

fval = 0.0020

exitflag = 1

output = iterations: 25 funcCount: 151

Page 34: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 234

2. Odrediti vektor smjera pretraživanja iz točke (0) (10, 2)=x u

postupku najstrmijega spusta za zadatak:

Odrediti minimum

2 2

1 2( ) ( 2) ( 2)f x x= − + −x

uz ograničenja

1 1 2( ) 3 2 0h x x≡ − + − =x

2

1 1 1 2( ) 2 80 0g x x x≡ − − − ≤x

ako se primijene vanjske kaznene funkcije s kaznenim parametrom

10R = te samo aktivna ograničenja.

Dodatak: grafički prikaz pomoću MATLAB-a:

figure(1);

[x1, x2] = meshgrid(-12: 1: 12 , -2: 1: 20) ;

fun = (x1 - 2) .^2 + (x2 - 2) .^2 ;

Ogr1 = - 3 .* x1 + x2 - 2 ;

Ogr2 = x1 .^2 - 2 .* x1 - x2 - 80 ;

[ kr1, hand1 ] = contour(x1, x2, fun, 14) ;

clabel(kr1, hand1);

colorbar ; grid on ; hold on ;

[kr2,hand2]=contour(x1,x2,Ogr1,[0,0],'k-','LineWidth',2 );

clabel(kr2, hand2);

[kr3,hand3]=contour(x1,x2,Ogr2,[0,0],'k-','LineWidth',2 );

clabel(kr3, hand3);

figure(2); surfl(x1, x2, fun);

figure(3); surfl(x1, x2, Ogr2);

Page 35: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 235

40

40 40

40

80

80

80

80

80

120

120

120120

160

160

160

160

160

200

200

200

200200

240

240

240

240

280

280

280

280

320

320

320

320

360360

40044

0480

0

0

0

00

0

00

0

-10 -5 0 5 10-2

0

2

4

6

8

10

12

14

16

18

20

50

100

150

200

250

300

350

400

450

500

3. Za prethodni zadatak optimiranja ponuđena su dva rješenja:

a) * ( 5, 0)= −x b) * (10, 20)=x

Odabrati povoljnije rješenje ako se odluka donosi primjenom

vanjskih kaznenih funkcija s parametrom 100R = .

4. Riješiti primjer 2 primjenom različitih numeričkih postupaka iz

poglavlja 4, napraviti nekoliko koraka pješke.

5. Formulirati primjere 5.1 i 5.3 za primjenu numeričkih postupaka iz

poglavlja 5.1 i 5.2 te skicirati prvi korak rješavanja.

6. Riješiti primjere 5.1 i 5.3. primjenom MATLAB funkcije fminunc() te

varirati algoritam i postavke rješavanja promjenom opcija te funkcije.

Usporediti rezultate i učinkovitost.

Page 36: Predavanja Blok 4

5. Opće nelinearno programiranje, n-dimenzionalni problemi sa ograničenjima

D. Vučina: Metode inženjerske numeričke optimizacije 236

7. Postaviti optimizacijske modele za pojednostavljene primjere na kraju

poglavlja 1.8 (modeliranje).

7.1. Formulirati problem putem kaznene funkcije te riješiti primjenom

MATLAB funkcije fminunc().Varirati opcije funkcije i usporediti.

7.2. Riješiti primjenom programa razvijenih u primjerima 4.1 i 4.3, te

varirati parametre postupaka

8. Postaviti optimizacijske modele za pojednostavljene primjere na kraju

poglavlja 1.8 (modeliranje) te riješiti direktnim postupcima primjenom

MATLAB funkcije fmincon(). Varirati opcije te funkcije i usporediti.

9. Dimenzionirati klipni i četverozglobni mehanizam tako da točka A

prolazi što bliže zadanom nizu točaka (xi, yi), i=1,n. Ugraditi ograničenja

mobilnosti mehanizma putem kaznene funkcije i direktnim postupcima.

10. Optimalno dimenzionirati štapove rešetkastog nosača prema slici

uzevši u obzir aksijalna naprezanja te izvijanje:

11. Optimalno dimenzionirati okvirni nosač prema slici uz poprečni

presjek i ograničenja kao u primjeru 5.5.

A

A

x x

y y (xi,yi) (xi,yi)

l

l l

l F

F l

q=F/(2a)

a

a a

a

a