Sunteți pe pagina 1din 45

"The human brain is unique in that it is the only container of which it

can be said that the more you put into it, the more it will hold."
METODE NUMERICE ÎN INGINERIE

1. CERCETĂRI OPERAŢIONALE
7. OPTIMIZĂRI NUMERICE 1

2. DEFINIRE OPTIMIZĂRI

3. SISTEMATIZĂRI ALE PROBLEMELOR DE OPTIMIZARE

4. OPTIMIZARE FLEXIBILĂ

5. OPTIMIZAREA NELINIARĂ FĂRĂ RESTRICŢII

MNI-

BIBLIOGRAFIE
1
BIBLIOGRAFIE

[RAD92] D. Rădulescu, O. Gheorghiu. Optimizarea flexibilă şi decizia asistată de calculator. Ed. Ştiinţifică. Bucureşti.

1992.
[KOL95] B. Kolman, R.E. Beck. Elementary Linear Programming with Applications. Elsevier Science & Technology
Books, 1995, ISBN: 012417910X; ISBN-13: 9780124179103

[ACK75] R.L.Ackoff, M.W.Sasieni. Bazele cercetării operaţionale. Ed. Tehnică. Bucureşti .1975.

[DAN76] I.Dancea. Metode de optimizare. Algoritmi-programe. Ed. Dacia. Cluj-Napoca.1976.

[MAL75] M.Maliţa, C.Zidăroiu. Matematica organizării. Ed. Tehnică. Bucureşti .1975.

[SMI78] O. Smigelski, A. Woinaroschi. Optimizarea proceselor în industria chimică. Ed. Tehnică. Bucureşti .1978.

[RUH08] S. Ruhul, C. S. Newton. Optimization modelling : a practical introduction. CRC Press Taylor & Francis Group.

ISBN 13: 978-1-4200-4310-5, 2008

[NOR99] J Nocedal, Stephen J. Wright.Numerical Optimization. ISBN 0-387-98793-2. 1999 Springer-Verlag New Yorkc.

[MAR73] I. Marusciac. Metode de rezolvare a problemelor de programare neliniară. Ed. Dacia. 1973

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

[NEOS] http://www.ece.northwestern.edu/OTC/

2
1. CERCETĂRI OPERAŢIONALE
1.1. Definire, instrumente, istoric

Cercetările operaţionale (CO) sunt o ramură a matematicilor aplicate care utilizează diferite metode pentru
a atinge soluţii optime sau aproape optime pentru probleme complexe.

CO sunt strâns legate de Ingineria Industrială (II), fiind considerate un instrument de bază al II.

Principalele instrumente matematice utilizate de către CO sunt:


➢ statistica şi teoria probabilităţilor;
➢ teoria optimizării;
➢ teoria aşteptării;
Glosar
➢ teoria jocurilor;
Operations Research (SUA)
➢ grafurile;
Operational Research (Europa)
➢ analiza deciziilor; Operation Research ~ Management science
➢ simularea.

Istoric
- Charles Babbage (1791-1871) detalii
- Al II-lea Război mondial: SUA, Anglia şi URSS – probleme de logistică: mărimea convoaielor mixte formate din vase
comerciale şi de război care traversau Altanticul, logistica bombardamentelor aeriene, logistica transporturilor feroviare spre
Siberia etc.
- După al II-lea Război mondial aplicare CO în industrie, şamd.
- 1947, George B. Dantzig a elaborat algoritmul SIMPLEX de rezolvare a problemelor de programare matematică liniară.
3
1.2. Probleme tip ale CO
CO ABORDEAZĂ PROBLEMELE ÎN ANSAMBLU

➢ Probleme de alocare: distribuirea şi repartizarea resurselor.

➢ Optimizări.

➢ Teoria stocurilor.

➢ Teoria reînnoirii utilajelor-echipamentelor şi fiabilitate.

➢ Programarea dinamică.

➢ Teoria aşteptării.

➢ Probleme de ordonanţare şi de ordonare (Pert şi drum critic)

➢ Probleme de drumuri şi reţele.

➢ Probleme de competiţie (teoria jocurilor).

➢ Probleme de căutare. Exemple (S)

➢ Probleme de decizie.
salt peste exemple4
Exemplul 1 (S)

Problema are ca echivalent matematic


găsirea într-un graf a unui circuit
hamiltonian de cost minim 5
Un algoritm care utilizează metoda Greedy (neoptimal) necesită pentru
determinarea soluției un timp polinomial {O(n2)}.
Algoritmul greedy: se adaugă întotdeauna la drum acel punct pentru care
distanța față de punctul adăugat anterior este minimă și nu a fost utilizat. După ce
s-au cuprins în drum toate punctele se face legătura între ultimul punct si primul.
Circuit 1
1 4 1

Exemplu pentru 4 orașe 1 → 2 → 3 → 4 D=13


7
Lungimea drumului 1-2

Pas1: 1-2; 1-3; 1-4 →1-2 (1)


Pas2: 2-4; 2-3 →2-3 (4)
Pas3: →3-4 (1)
Pas4: →4-1 (închidere) (7)

D=13
4! = 4.3.2.1=24 circuite
6
Circuit 2 Bilanț
1 4 1

1 → 2 → 3 → 4 D=13
1 5 1

3 → 4 → 2 → 1 D=9 7

2
1 2 1

2 → 1 → 3 → 4 D=11
7

1 5 1

3 → 4 → 2 → 1 D=9
2

1 2 1

4 → 3 → 1 → 2 D=9
5

Algoritmul Greedy a necesitat parcurgerea și compararea a

Obs. Dependență de punctul de start patru circuite. Spre deosebire de cel al explorării exhaustive
7
care ar fi necesitat urmărirea a 4!=24 circuite.
Researchers at Queen Mary, University of
London and Royal Holloway have discovered
that bees learn to fly the shortest possible
route between flowers even if they discover the
flowers in a different order. This 'Travelling
Salesman Problem' often takes supercomputers
days to solve, but Bees are now the first
animals proven to do it. Computer-controlled
artificial flowers were used to track the bee's
path and found they quickly learned the shortest
route. Since a bee's brain is only the size of a
pinhead, researchers are hoping to identify the
neural circuitry required and use that
understanding to construct their own systems
that rival the computational power of existing
machines.
8
Exemplul 2 (S)
ALGORITMUL COLONIEI DE FURNICI

Algoritmul coloniei de furnici a pornit de la observarea


următorului fenomen: dacă între mușuroi și sursa de hrană
există unul sau mai multe obstacole, în final furnicile vor
food
urma întotdeauna drumul cel mai scurt.

Optimizarea se bazează pe depunerea pe sol a unei


substanțe volatile numite feronomi, care este un mijloc
chimic de comunicare între furnici. La început când o
furnică a descoperit sursa de hrană ea a urmat un drum
ocolind aleator obstacolele la stânga sau la dreapta, alte
furnici exploratoare procedează la fel. Ca fenomen nest

statistic, densitatea de feronomi va fi mai mare pe drumul


cel mai scurt, în consecință marea masă a furnicilor va
merge pe acesta. Feronomii sunt volatili, își pierd în timp
din intensitate. Pe drumul mai scurt care este parcurs mai
rapid, feronomii vor fi mai persistenți și în consecință și alte
furnici îl vor parcurge, întărindu-i marcarea. 9
Un agent software este un program de calculator capabil să acționeze autonom (robot-software) caracterizat de proprietățile:
autonomie; proactivitate: decide cum și unde să intervină; reactivitate: programul reacționează la schimbările din mediul
ambiant; adaptivitate: programul își poate modifica parametrii de funcționare la modificarea stărilor sale interne sau externe;
cognitivitate: programul are capacitatea de a învăța din deciziile pe care le ia sau din observații făcute; robustețe; social:
comunică cu alți agenți software.

Sistemul multi-agent este format din agenți software inteligenți care acționează separat spre rezolvarea în colectiv a unei
probleme, prin cooperare, coordonare și negociere. Sistemele multi-agent sunt o subclasă a sistemelor colaborative, acestea
au găsit aplicație în ingineria colaborativă, designul colaborativ.

Referitor la problema furnicilor, din punct de vedere informatic sistemul este multi-agent, fiecare agent/furnică trebuie să
găsească drumul cel mai scurt într-un graf plecând de la un nod sursă spre un nod destinație.

Un agent rezolvă problema prin trecerea de la un nod la altul în maniera descrisă mai sus. Fiecărui arc al grafului i se
asociază o variabilă care codifică urma de feronom asociată, deci cantitatea de feronom acumulată reprezintă utilitatea arcului.
Inițial toate arcele sun marcate cu aceeași cantitate de feromon (drumuri echiprobabile). Un agent/o furnică oarecare care a
ajuns într-un nod oarecare o va lua spre următorul nod care este unit printr-un arc cu o cantitate de feronomi mai mare.
Algoritmul consideră ca și în cazul din natură că feronomii volatilizându-se își scad în timp rolul de marcator. Acest coeficient
de evaporare este ales de utilizatorul algoritmului.

După cum s-a amintit algoritmul este de tip multi-agent, acesta este pornit de agenti/furnici care se află în diferite noduri. În
terminologia specifică se spune că problema a fost parcursă de o generație dacă toți agenții au ajuns la destinație. Ca și în
cazul real, agenții au memoria drumului parcurs (lista tabu) și după ce au ajuns la destinație se întorc la nodul de start.
10
1.3. Etapele unei cercetări operaţionale [KOL95]

De obicei departamentul management al unei firme identifică problema de CO pe care o rezolvă analistul CO, de obicei acesta
are rol de consultant.
1. Definirea problemei şi formularea ei. Este definit clar scopul studiului bazat pe CO, într-o primă etapă, rolul
consultantului CO este de a ajuta departamentul management să-şi clarifice obiectivele, apoi acesta trebuie să identifice
variantele decizionale care pot fi filtrate de limitările de capital, forţă de muncă, tehnologiile existente etc.
2. Elaborarea modelului. Consultantul CO dezvoltă modelul matematic al problemei. Limitările, restricţiile trebuie traduse în
termeni matematici. În multe cazuri scopurile pot fi cuantificate în expresii matematice care trebuie
maximizate/minimizate. Alternativele decizionale sunt variabilele problemei.
3. Soluţia modelului. Metoda de rezolvare a modelului trebuie să fie relativ simplă. Nu sunt rare situaţiile în care nu există
metodă de rezolvare şi aceasta trebuie dezvoltată, eventual apelându-se la euristică, sau se revine la etapa a 2-a şi se
revizuieşte modelul.
4. Analiza sensibilităţii. Frecvent valorile numerice pe baza căruia consultantul CO a elaborat modelul matematic sunt
aproximative. Este important să se determine cum se modifică soluţia la variaţia datelor de intrare. Pentru multe probleme
standard s-au elaborat tehnici care rezolvă problema analizei sensibilităţii.
5. Evaluarea modelului. După ce a fost obţinută soluţia consultantul CO determină dacă acesta răspunde cerinţelor firmei,
este realist, poate fi implementată.
6. Implementarea studiului CO de către firmă. Managementul firmei decide cum va implementa rezultatele studiului.
Uneori se întâmplă ca acesta să fie ignorat din cauza proastei comunicări între management şi consultantul CO sau din
cauza măsurilor prea radicale pe care le propune, de cele mai multe ori din ignorarea unor limitări/restricţii ale problemei.
11
ALGORITMI DETERMINISTI VERSUS EURISTICI

Într-un program de inteligenta artificiala (IA) în locul algoritmului, determinist de obicei, în problemele
abordate în programarea clasica, apare o metoda euristica ghidând obtinerea solutiei.
Euristica (heuristica) este o metoda ce se bazeaza pe reguli derivate din experienta, introducând în
multe situatii un grad de incertitudine. Spre deosebire de algoritm, frecvent ea nu mai este garantata în
privinta obtinerii solutiei. Chiar si asa, în IA se folosesc frecvent metode euristice, deoarece acestea pot
determina solutii în situatii în care un algoritm nu exista sau este ineficient de implementat.
12
2. DEFINIRE OPTIMIZĂRI

În matematică, termenul de optimizare sau de programare matematică se referă la studiul unor probleme

în care se caută maximizarea/minimizarea uneia sau mai multor funcţii reale (funcţii scop, funcţii obiectiv) în

condiţiile în care variabilele aparţin unei mulţimi determinate de limitarea unor resurse (restricţiile problemei).

Structura unei probleme de programare matematică (PM) este formată din patru elemente de bază:
1. Funcţia/iile obiectiv (FO) care trebuie maximizată/e/minimizată/e. De exemplu în producţie se
urmăreşte maximizarea profitului, minimizarea costului, minimizarea consumului de energie,
maximizarea productivității.
2. Variabilele/necunoscutele problemei. De exemplu în producţie variabilele problemei pot fi
cantităţile diferitelor materiale, semifabricate sau timpii necesari desfăşurării unor operaţii.
3. Restricţiile care limitează valorile variabilelor la anumite mulţimi. De exemplu în producţie timpii
de execuţie nu pot avea valori negative, cantităţile disponibile de materiale, semifabricate sunt
limitate. Restrictiile au forma unor inecuatii, ecuatii.
4. Parametrii problemei. Sunt date de intrare care, în general pot fi modificate, de exemplu preţuri
de materii prime, materiale didponibile, consumuri specifice.

Problema de programare matematică constă în maximizarea/ minimizarea funcţiei obiectiv cu


13
respectarea restricţiilor
Deci o problemă de minimizare/maximizare în programarea matematică impune determinarea
componentelor vectorului variabilelor problemei
X=[x1, x2, … ,xn]T “Problemele de maxim şi minim idealizează o
care minimizează/ maximizează funcţia obiectiv (1) înclinaţie a naturii şi a noastră înşine de a obţine
F(X) → minim/maxim efecte optime cu eforturi, cheltuieli minime.”
În prezenţa restricţiilor G. Polya, matematician
ri(X) {≥; = ; ≤} o, i=1,2, … ,m
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Exemplul 1
Pentru realizarea a două produse Pi, i=1,2 o firmă are la dispoziţie trei feluri de materiale Mj, j=1,2,3 în cantităţile cj,
j=1,2,3. Un produs Pi consumă ci,j materiale şi aduce un beneficiu bi. Să se determine numărul de produse de pe urmă
cărora să se obţină un beneficiu maxim.
Modelul matematic 1
P1 P2 Resurse Functia obiectiv:
[buc] [buc] 200x1+300x2 → max maximizarea profitului
M1 [buc] 2 1 12
2x1+x2 ≤ 12 Restrictiile problemei:
M2 [buc] 1 3 8 firma se limiteaza la
x1+3x2 ≤ 8 materialele pe care le
M3 [buc] 4 - 15 (2) are in stoc.
4x1 ≤ 15
Beneficiu 200 300 Conditii de
[ub] x1≥0, x2≥0,
nenegativare
Problema are un model liniar
Necunoscutele problemei:
monoobiectiv, în numere întregi
x1 cantitatea de produse P1
14
x2 cantitatea de produse P2 Detalii rezolvare In Mathcad
Rezolvare problemă de programare matematică propusă
în variabile reale prin blocul Sove

z z(x,y)=2x+3y
Reprezentare grafică funcția obiectiv

Domeniul
fezabil al y
solutiilor

Rezolvarea nu este finalizată deoarece x1 și x2 trebuie să fie


x Optim
numere naturale. O rezolvare ar fi aproximarea solutiilor reale la
nr. întregi, verificarea restricțiilor și calculul funcțieie obiectiv:

x1=3, x2=2 nu verifică restricția 1, 2


x1=3, x2=1 verifică toate restricțiile Fob(3,1)=900
Functia obiectiv
Pentru diferite beneficii dreapta-fonctie obiectiv are pozitii variabile in planul XY. x1=2, x2=2 verifică toate restricțiile Fob(2,2)=1000 (sol optimă)
Dreapta este obtinuta prin intersectarea panului z=2x+y cu plane parale
paralele cu XY (diverse valori ale beneficiilor)
3. SISTEMATIZĂRI ALE PROBLEMELOR DE OPTIMIZARE

Tabloul/arborele tipurilor de probleme de optimizare [NEOS] 16


Modelul matematic 2
C1. Numărul de funcţii obiectiv: PM monoobiectiv (vezi exemplul 1),
200x1+300x2 → max (beneficiul)
PM multiobiectiv (vezi exemplul 2). 1.5x1+1.6x2 → min (consum energetic)

Exemplul 2 2x1+x2 ≤ 12
x1+3x2 ≤ 8
Dezvoltat din exemplul 1. Pentru producerea Pi, i=1,2 este 4x1 ≤ 15
necesar un consum energetic e i , i=1, 2 (e1=1.5 ub, e2=1.6 ub). x1≥0, x2≥0
A doua funcţie scop minimizarea consumului energetic.
Problema are un model liniar biobiectiv, în
numere întregi
C2. Tipul restricţiilor:
C21. Existenţa restricţiilor: problema de optimizare are sau nu are restricţii.
C22. Restricţii tip egalitate (probleme de extrem condiţionat) sau de tip inegalitate.

C3. Tipul variabilelor


C31. Variabile deterministe sau stohastice (probabilistice).
C32. Variabile continue, discrete/întregi. Dacă M={0,1} problemă în variante bivalente.

C4. Tipul funcţiilor


C41. Funcţii liniare, neliniare
C42. Funcţii convexe, neconvexe
C43. Funcţii diferenţiabile, nediferenţiabile
Optimizarea cu restricții conține fie constrângeri simple ca de exemplu nenegativarea valorilor
soluțiilor, sau expresii ale necunoscutelor sub forma unor inegalități sau egalități ca în
exemplul 1.

Un model în care atât funcția obiectiv cât și expresiile restricțiilor sunt liniare se încadrează în
cazul programării matematice convexe pentru care există algoritmi care determină într-un
număr finit de pași un optim global.

Dacă cel puțin o funcție obiectiv sau o restricție este neliniară, determinarea optimului este
mult mai dificilă decât în cazul unui model linear deoarece nu exisă un algoritm general pentru
rezolvarea acestora ci numeroși algoritmi iterativi care sunt eficienți pentru anumite clase de
probleme.

În anumite tipuri de probleme de planificare economică sau financiară la momentul elaborării


modelului acesta nu poate fi complet specificat (precizia modelului nu este foarte mare iar
completitudinea este medie sau sub medie) în consecință se lucrează cu modele stohastice
(probabiliste).
18
PROGRAMAREA MATEMATICĂ ÎN NUMERE ÎNTREGI (PROGRAMARE DISCRETĂ)

În practică se întâlnesc deseori PL care pun o condiţie suplimentară optimului funcţiei obiectiv, ca
variabilele să fie numere întregi. Există şi modele hibride în care doar o submulţime a variabilelor trebuie
să aibă valori discrete.

Soluţia optimă discretă nu se obţine întotdeaune prin aproximarea


(trunchiere, rotunjire) rezultatului obţinut din problema liniară în variabile
continue.
De exemplu în figura alăturată rezultatul în numere reale este (2.8,4.3),
dar soluţia discretă nu este (2,4), sau cea obşinută prin rotunjire (3,4) ci
(3,3).
O soluţie este explorarea exhaustivă: enumerarea tuturor punctelor
discrete care verifică restricţiile şi compararea valorilor funcţiei obiectiv.
Metoda este în general neeconomică pentru probleme care au un
[KAU75].
domeniu admisibil care conţine un număr mare de puncte.

Există numeroşi algoritmi de rezolvare a problemelor PL discrete cum ar fi: algoritmi de secţiune, allgoritmi
de ramificare şi mărginire (branch and bound), algoritmul Gomory.
19
MODELE DE OPTIMIZARE COMBINATORIALE

O altă categorie de modele de optimizare sunt cele combinatoriale. Exemplul clasic al acestui tip de
problemă mono-constrânsă este cel al rucsacului.

Enunț: se dau mai multe cutii care au greutăți și care conțin valori specificate. Știindu-se că rucsacul
suportă doar o greutate limitată specificată, se pune problema încărcării rucsacului astfel încât valoarea
conținută să fie maximă. Dacă se mai impune și restricția volumului rucsacului avem o problemă cu două
constrângeri.

Problema este des întâlnită în alocarea resurselor. De exemplu o problemă des întâlnită în practica
atelierelor mecanice este cea a croirii tablelor cu lungime și lățime specificată, în bucăți cu diverse

contururi, astfel încât pierderile de material să fie minime.

Cea mai frecvent întâlnită problemă Knapsack este cea tip 0-1: se
presupun n obiecte x1...xn, unde xi are valoarea vi și masa wi>0.
Capacitatea maximă a containerului este W. În el poate fi plasat
doar câte un obiect din fiecare categorie.

20
Table de dimensiuni diferite,
nemultiplicate

Suprafață nevalorificată

Table de dimensiuni diferite,


multiplicate

21
Anumite fenomene şi activităţi care apar în conducerea firmelor sunt procese de decizie în mai multe
etape şi pot fi modelate ca probleme de programare matematică. Dacă acestea au dimensiuni mari sunt
rezolvate prin metodele specifice programării dinamice, folosind ecuaţii funcţionale şi principiul de
optimalitate a lui R. Bellman.

Strategia de optimizare se bazează pe descompunerea problemei de mari dimensiuni în probleme

mai simple abordate succesiv.

Principiul optimalităţii Bellman (condiţie necesară): O politică optimă are proprietatea că,
oricare ar fi starea iniţială (finală) şi decizia iniţială (finală), deciziile care rămân trebuie să
constituie o politică optimă în raport cu starea care rezultă din adoptarea primei (ultimei) decizii
[MAL75].

22
4. OPTIMIZARE FLEXIBILĂ [RĂD92]
4.1. Definire optimizare flexibilă

Optimizare flexibilă = optimizare prin adaptare

Analogii:

- optimizarea “clasică” - sistem complicat (varietate redusă de componente, calculabilitate mare, ex.
mecanism ceas )

- optimizarea “flexibilă” - sistem complex (varietate mare de componente, calculabilitate medie, ex. model
global al climei )

Concepte asociate optimizării flexibile:

- analiză postoptimală;

- abordare recursivă;

- unicitatea optimului;

- stabilitatea soluţiilor.

ANALIZĂ POSTOPTIMALĂ:

- identificare restricţiilor active, inactive;


- stabilire ecarturi (distanţe) la restricţii inactive;
- comparaţii ale optimului unic cu soluţiile admisibile de bază şi intermediare.
Acţiunile de mai sus sunt necesare decidentului pentru a se situa în concretul problemei decizionale
23
ABORDARE RECURSIVĂ:

- aplicare repetată a dubletului: procedură de optimizare - analiză postoptimală:


- este necesară când formularea problemei decizionale este imprecisă;
- readucerea şi reevaluarea în context a soluţiei permit formularea mai precisă a problemei.

UNICITATE OPTIM:
Postulat caracteristic algoritmilor de
optimizare “clasică”, care se dovedeşte de
multe ori o condiţie artificială;

În practică se preferă, ca fundament al


deciziei, o vecinătate convenabilă a
optimului, care să acopere, cu o anumită
toleranţă, imprecizia globală a modelului, o
soluție robustă.
Un domeniu mult mai larg de variatie a
variabilei x care nu modifica
substantial optimul (F(x)) comparativ
STABILITATEA SOLUŢIILOR: cu cazul optimului global

- proprietatea problemei de a avea soluţii neglijabil modificate în cazul perturbaţiilor mici în informaţia
iniţială;
- o problemă cu soluţii stabile se numeşte “bine definită” sau robustă.
24
4.2. Demers metodologic - calitate informaţie

Calitate informaţie: precizie, completitudine, oportunitate

25
5. OPTIMIZAREA NELINIARĂ FĂRĂ RESTRICŢII

5.1. OPTIMIZAREA FUNCȚIILOR DE O VARIABILĂ NECONSTRÂNSE (FĂRĂ RESTRICŢII)

Metodele directe de rezolvare a problemelor de extrem optimizare fără restricţii, propuse de matematica
clasică utilizează ca instrumente principale calculul diferenţial şi calculul variaţiilor. Acestea sunt de cele mai
multe ori sunt inaplicabile în optimizare fără restricţii fiind necesară utilizarea de metode iterative.

5.1.1. Extreme ale funcţiilor reale (PRE)

Dacă f(x) este derivabilă pentru orice x  (a, b)  R problema:

max f(x)

x  (a, b )
Se rezolvă calculând rădăcinile reale ale ecuaţiei:

f ' ( x) = 0
Aceste rădăcini se numesc puncte staţionare ale funcţiei f. Punctele de maxim, minim (puncte de extrem)
se află printre aceste rădăcini.
Dacă funcţia are derivate de ordinul doi în aceste puncte şi dacă c este un punct staţionar, pentru f '' (c)  0
avem un minim, pentru valoare negativă un maxim. Dacă f '' (c) = 0 este posibil să nu avem un punct de
extrem.
f ' (c) = 0, f '' (c) = 0,..., f ( n−1) (c) = 0, f ( n) (c)  0, n  2
26
Pentru n par avem punct de extrem, pentru n impar nu.
Exemple de extreme la funcții monovariabilă

Fig. 3 [MAL75] Fig. 4 [MAL75] Fig. 5. Minim global într-un punct de inflexiune

În figura 3 există 9 puncte staţionare, cu maxime şi minime relative şi un punct x3 care nu este extrem. Maxim absolut/global
este x9. Conform figurii 4 dacă x  a, b maximul absolut nu se găseşte printre punctele staţionare ci este limita superioară a
intervalului.
Extreme la funcții multivariabile

Să considerăm funcţia multivaribilă E  Rn


f ( X ) = f ( x1 , x2 ,..., xn )
Unde f este o funcţie diferenţiabilă pe o mulţime deschisă
Punctele staţionare ale funcţiei f rezultă din rezolvarea sistemului:

f ( x1 , x2 ,...,xn )
= 0, 1  j  n
x j
Acest sistem este greu rezolvabil pe cale analitică, dar şi numeric.
27
Fie (a1,a2, ... ,an) o soluţie a sistemului 8
Dacă toate numerele
A11 A12 ... A1n
A11 A12 A A22 ... A2 n  2 f (a1 ,..., an )
1 = A11 ,  2 = ,...,  n = 21 , unde Aij =
A21 A22 ... ... ... ... xi x j
An1 An 2 ... Ann

Sunt pozitive, atunci funcţia f are în punctul (a1,a2, ... ,an) un minim.

Dacă toate numerele


A11 A12 ... A1n
A11 A12 A A22 ... A2 n  2 f (a1 ,..., an )
1 = − A11 ,  2 = ,...,  n = (−1) n 21 , unde Aij =
A21 A22 ... ... ... ... xi x j
An1 An 2 ... Ann

Sunt negative, atunci funcţia f are în punctul (a1,a2, ... ,an) un maxim.

28
Fig.6. Punct de minim, maxim şi punct şa la funcţii reale de două variabile
Punct şa al funcţiei f(x)=x3 f(x,y)=x2 – y2

Maxim global al unui paraboloid Minim local al funcţiei 29


Dacă pentru funcțiile cu una sau două variabile determinarea punctelor de start pentru algoritmii iterativi de
minimizare/maximizare a funcțiilor dificile este facilitată de reprezentarea grafică, pentru cele cu mai mult de
trei variabile acest suport lipsește fiind necesară aplicarea altor metode.

Un punct de extrem (minim sau maxim) poate fi global (valoarea extremă în tot domeniul), sau local,
(valoarea extremă dintr-un subdomeniu). Extremele pot fi simple sau multiple, în problemele de optimizare
sunt de interes minimele sau maximele globale care în general se determină mult mai dificil decât cele
locale.

Pentru determinarea minimului global într-un domeniu se pot aplica diferite strategii funcție de numărul de
variabile ale funcției:
- Dacă funcția de optimizare este de una sau două variabile, după cum s-a amintit mai sus, prin
reprezentare grafică se poate identifica minimul sau maximul și aplicând un algoritm iterativ cu valori de
start cât mai apropiate de punctul căutate rata de succes este mare.
- Pentru funcții cu mai mult de trei variabile, unde nu mai există suportul grafic, se poate proceda astfel:
- se aplică algoritmul iterativ de mai multe ori cu valori de start care să acopere cât mai uniform
domeniu și în final se compară rezultatele și se alege maximum sau minimum dintre ele;
- dacă s-a obținut un minim/maxim se repetă algoritmul iterativ de mai multe ori cu perturbații într-o
direcție oarecare și dacă rezultatul este mereu același probabilitatea ca acesta să fie global este
crescută. 30
5.1.2. Optimizarea neliniară fără restricţii prin metode iterative

Principalele metode de căutare a extremelor unei funcţii multivariabile sunt:


➢ Metode aleatoare.
➢ Metode de căutare unidirecţionale.
➢ Metode de căutare bazate pe gradient.

5.1.2.1. Metode de căutare aleatoare

Metoda are la bază generarea unei mulţimi de numere aleatoare într-un domeniu de investigare, pentru
fiecare punct în Rn astfel determinat, se compară valoarea funcţiei cu cea din punctul anterior şi se reţine
cea mai mare/mică valoare. Se lucrează cu distribuţii uniforme, şi un număr mare, predeterminat de puncte.

Metoda este foarte simplă, determină un extrem global, însă controlabilitatea preciziei este slabă. De aceea
se foloseşte de multe ori pentru determinarea punctului de start pentru alte metode iterative.

Metoda poate fi rafinată: după o primă estimare a punctului de extrem se trece la un domeniu mai mic în
vecinătatea acestuia şamd. Această variantă poate duce la rezultate mai bune decât cea în care se lucrează
cu un singur domeniu şi un număr foarte mare de puncte.
31
Exemplul 3. Minimum global al unei funcţii monovariabilă reală, într-un interval dat.

Funcția minfunc1 are ca parametrii formali: func numele unei funcții cu o variabilă; a și b limitele intervalului
de căutare (a<b) și n numărul de valori testate aparținând intervalului. În corpul programului s-au utilizat
notațiile fa, fc valoarea anterioară a funcției, respectiv cea curentă; xc valoarea curentă a variabilei.
32
5.1.2.2. Metoda drumului aleator [DAN76]

Metoda este destinată determinării unui extrem local şi se bazează pe Exemplu 2D

relaţia:
Xk+1=Xk+g.r
g. r
Unde Xk este vectorul de poziţie al punctului de aproximaţie anterior, g este
un scalar (pasul) şi r un vector unitate cu direcţie aleatoare.
Xk
Xk+1
Paşii algoritmului:
1. Alegere punct de start X0 şi a mărimii g (saltul).
2. Generare r (vectorul unitar cu direcție aleatoare).
3. Calcul F(Xk+g.r).
4. Comparare F(Xk+g.r) cu F(Xk) şi în caz de obţinere a unei valori mai mici/ mari se face înlocuirea
rel.11 (se reține Xk+1=Xk+g.r pentru a fi folosit în iterația următoare).
5. Se continuă paşii 2,3,4 un număr predeterminat de ori, dacă valorile nu se modifică semnificativ
se reduce g.
În programul minfunc2 care determină prin metoda drumului aleator minimul unei suprafețe explicite, s-au
folosit aceleași notații ca în exemplul anterior: sufixul a pentru anterior și c pentru curent; u pentru unghiul
vectorului unitar; xs, ys coordonatele punctului de start. Pentru verificare, problema a fost rezolvată cu ajutorul
unui bloc solve și funcției predefinite minimize. Se observă că și în acest caz precizia rezultatului nu poate fi
controlată riguros, depinzând de mărimea intervalelor de investigare de numărul de testări și corelarea cu
mărimea saltului g.
34
5.1.2.3. Metode de căutare unidirecţionale (relaxării)

Metoda relaxării determină, de exemplu minimul


unei funcţii F modificând pe rând componentele
vectorului X.

În primul pas se incrementează prima variabilă cu


un pas p, celelalte variabile menţinându-se
nemodificate, atât timp cât F scade. Dacă scăderea
încetează se continuă cu incrementarea celei de a

Fig.8 [DAN75]
doua variabile şamd.

Un ciclu presupune lucrul cu toate variabilele. După


finalizarea unui ciclul se începe cu alt ciclu şi se
incrementează iarăşi prima variabilă şamd.

Eficienţa metodei depinde de alegerea pasului


iniţial, punctului de start, converge mai lent decât
metodele de gradient dar are avantajul că nu trebuie
calculate derivate parţiale.
35
Implementarea algoritmului relaxării cu pas de incrementare constant pentru determinarea minimului unei suprafețe, detaliat mai
sus, are câteva particularități:
- nu se cunoaște apriori semnul incrementării celor două variabile, în consecință semnul 1 sau -1 este generat prin
intermediul comenzii if și a funcției implicite rnd;

- ca și pentru alte metode iterative, precizia soluției este dependentă de valorile de start, de numărul de iterații și de
36
valoarea incrementării variabilelor.
5.1.2.4. Metoda intervalelor egale

Metoda intervalelor este una dintre cele mai


simple metode de determinare a
minimului/maximului local unei funcții de o
variabilă reală într-un interval dat.

Pentru determinarea maximului unei funcții f(x) cu un singur maxim într-un interval a, b algoritmul
urmează următoarea succesiune de calcule (fig. 5.8):
- se alege un interval 2ε de căutare;
- se calculează media m=0,5(a+b), f(m+ ε) și f(m- ε);
- dacă f(m+ ε) > f(m- ε) în continuare se lucrează cu subintervalul [m- ε, b] iar în caz
contrar cu [a, m+ ε] (pentru minim invers: [a, m+ ε] respectiv [m- ε, b] );
- se continua până ce diferența dintre două valori succesive este mai mica decât o valoare
mica aleasă de utilizator 37
În programul Mathcad 3.0 minfunc_int care calculează minimul local al unei funcții mono-variabilă prin
metoda intervalelor egale s-au utilizat notațiile: a, b, a<b limitele intervalului inițial; e echivalent ε în
descrierea algoritmului; 2e lățimea intervalului de căutare; - xs (s-stânga), xd (d-dreapta), xs<xs limitele
intervalului curent; - ya valoarea anterioară a funcție; yc valoarea curentă iar i este contorul iterațiilor.
38
5.1.2.5. Metode de gradient [SMI78]
Definirea şi semnificaţia gradientului (PRE)

Dacă produsul scalar a doi vectori este 0 aceștia sunt perpendiculari


(produs scalar)

39
Pentru o funcţie obiectiv continuă şi diferenţiabilă f gradientul în
punctul k este definit ca vectorul derivatelor parţiale de ordinul I în
raport cu x, evaluate în x=x(k)
f ( x )
x1
...
f ( x ( k ) ) = (12)

f ( x )
xn x = x ( k )

f ( x (k ) ) este un vector ortogonal la conturul funcţiei f care trece


prin punctul de coordonate x(k). Direcţia vectorului gradient
corespunde celei mai rapide creşteri a lui f.

Metoda gradientului simplu

Pentru o problemă de minim principiul metodei de gradient


simplu este următorul: alegând după fiecare nou punct determinat,
direcţia de căutare în sens contrar gradientului ( − f ( x (k ) ) ), se
obţine cea mai rapidă descreştere a funcţiei f. Se va urmări această
direcţie cât timp valoarea funcţiei scade, după care se schimbă
direcţia după o nouă orientare a gradientului şamd. până se atinge
minimul (fig. 10). 40
Vectorul unitate al direcţiei gradientului este:

(k )
=
( )
f x (k )
( )
d
f x (k ) (13)

Se alege + dacă se urmăreşte maximizarea funcţiei obiectiv şi – pentru minimizare.


O deplasare din punctul k în k+1 pe direcţia d (k) este dată de relaţia:
(14)
x(k +1) = x(k ) + (k )  d (k )
unde (k ) reprezintă pasul de investigare.
Când f (x) se anulează s-a atins un punct staţionar, care însă poate fi nu numai un extrem local ci şi un
punct de inflexiune.

Dacă se alege o valoare prea mică pentru λ rezultă un număr exagerat de paşi, în caz contrar există
posibilitatea unor salturi prea mari, de exemplu în cazul minimizării se poate ajunge la creşteri a funcţiei. O
politică raţională este de a descreşte λ la apropierea de optim.

Algoritmul gradientului simplu are o deficienţă majoră care se manifestă la funcţii care au “văi” şi “creste”,
deoarece datorită deplasării punctelor în zig-zag se poate ajunge la un proces foarte slab convergent. În
general, algoritmii sunt testaţi sub acest aspect cu funcţia “banană” Rosenbrok (fig. 11) care are un minim
la (1,1).
Pentru depăşirea punctelor slabe ale metodei gradientului simplu s-au propus numeroase alte metode
printre care cele mai eficiente sunt:
- Metoda gradienţilor conjugaţi (Fletcher-Reevs).
41
- Metoda Davidon-Fletcher-Powel.
S

Funcția “banană” Rosenbrok 42


Charles Babbage (n. 26 decembrie 1791 – d. 18 octombrie 1871) a Charles Babbage
fost un matematician și inginer mecanic englez. A fost cel dintâi care a
imaginat o mașină de calculat programabilă,
asemănătoare computerelor din ziua de azi. Din acest motiv este privit
ca un „părinte” al informaticii.

Babbage a început să-și proiecteze „Mașina analitică” în 1837, dar nu


a reușit să o construiască până la moartea sa, din cauza limitărilor
tehnologice ale vremii. Cu toate acestea, o mașină construită
în 1991 după schițele sale s-a dovedit a funcționa perfect. Ideile lui
Babbage erau atât de revoluționare pentru vremea sa încât n-au fost
înțelese decât de o singură persoană dintre contemporanii săi. Aceasta
era matematiciana Ada Lovelace, cea care a și scris primul program
pentru Mașina analitică a lui Babbage, rămânând astfel în istorie ca
primul programator.

De asemenea, Babbage a propus tratarea mai generală a ecuațiilor


funcționale reduse la diferențe finite. A încurajat studiul seismologiei,
al mareelor, al metrologiei, al magnetismului.
In 1821 Babbage a inventat Difference Engine pentru calculul logaritmilor. În

completarea acesteia el a dezvoltat ideea unei mașini care să efectueze


calcule matematice diverse, pe care a numit-o Analytical Engine.

Proiectul "masina analitica" a fost initiat de Babbage in


1837, dar masina cu abur de calculat nu a fost realizata
practic de el, din cauza, in primul rand, a limitarilor
tehnologice ale vremii.

In 1991 s-a realizat o masina de calcul, construita dupa


schitele lui, care s-a dovedit perfect functionala. Ideile
revolutionare ale lui Babbage nu au fost intelese de
comunitatea stiintifica contemporana lui.
Babbage a proiectat acesta masina analitica avand la baza
o unitate centrala de procesare pe care a denumit-o
"moara", avand 1,7 kB de memorie extensibila - "magazin" -
unitatea programabila lucrand cu ajutorul unor carduri si
fiind capabila de a rezolva calcule simple, de adunare,
scadere, inmultire si impartire.

O macheta de studiu, parte a motorului analitic, este expusa


la Muzeul Stiintei din Londra. Inventia sa a prefigurat
computerele secolului XX, stand la baza realizarii primelor
masini de calculat, in anul 1940.
Metoda Greedy
Metoda Greedy (lacom) este strategie de rezolvare a problemelor de optim în care se poate obţine optimul
global prin alegeri succesive ale optimului local, ceea ce permite rezolvarea problemei fără nici o revenire la
deciziile anterioare.

Problema monedelor

Să se determine numărul minim de monede de 100, 50, 20, 10, 5, 1 cu care se poate achita suma S.
Pentru achitarea sumei S=276, se poate proceda astfel:
- cea mai mare monedă ce intră în 276 este 100 şi rămâne restul r=276-100=176;
- cea mai mare monedă ce intră în acest rest este 100 şi rămâne restul r=176-100=76;
- cea mai mare monedă ce intră în 76 este 50 şi rămâne rest r=76-50=26;
- cea mai mare monedă ce intră în 26 este 20 şi rămâne rest r=26-20=6;
- cea mai mare monedă ce intră în 6 este 5 şi rămâne rest r=6-5=1;
- cea mai mare monedă ce intră în 1 este 1 şi rămâne rest r=1-1=0;

În acest caz, 276=2x100+1x50+1x20+1x5+1x1, adică numărul minim de monede este 2+1+1+1+1=6. Orice
altă combinaţie va da un număr mai mare de monede decât 6. Se observă că schema caută să “înghită” o
parte cât mai mare din sumă sau resturi (greedy). 45

S-ar putea să vă placă și