CATEGORII DOCUMENTE |
Astronomie | Biofizica | Biologie | Botanica | Carti | Chimie | Copii |
Educatie civica | Fabule ghicitori | Fizica | Gramatica | Joc | Literatura romana | Logica |
Matematica | Poezii | Psihologie psihiatrie | Sociologie |
MATEMATICA APLICATA IN INFORMATICA
PROBLEME DE OPTIMIZARE CONVEXA
1.Notiuni introductive
1.1.Metode Lagrange
Fie P(b) o problema de optimizare:
Minimizarea f(x), pentru h(x)=b, .
Fie Spunem ca x este realizabil daca .
Definim operatorul Lagrange ca:
Tipic, cu unde este numit multiplicator Lagrange
Teorema 1.1. Teorema de suficienta Lagrange
Daca este realizabil pentru P(b) si exista astfel incat
Pentru , atunci este optim pentru P(b).
Demonstratie:
Pentru toti si avem
Acum daca si prin presupunere
pentru toti .
Atunci x este optim pentru problema de optimizare P(b).
Exemplu: Minimul pentru cu .
Aici . Consideram problema:
Minimizarea []
Aceasta are un punct in care
Acum alegem astfel incat . Aceasta se intampla
Astfel avem minimul deoarece
Cu aceasta valoare a lui , conditiile de suficienta Lagrange sunt satisfacute si valoarea optima este la
1.2.Problema duala
Definim:
pentru si
Atunci pentru toate
Deci este margine inferioara pe deci o margine inferioara pe solutia din P(b).
Dorim sa maximizam aceasta margine inferioara pentru care .
Aceasta constituie problema duala, definite ca:
Maximizarea , pentru , pentru
1.3.Hiperplane
Un hiperplan este dat de:
Exista o intersectie in cu axa verticala prin b si are panta .
Consideram urmatoarea modalitate de cautare a
Metodele Lagrange functioneaza pentru cazul a. din cauza existentei unei tangente la b.
Sa definim un hiperplan in b astfel:
, unde pentru toate .
De fapt, . Pentru a demonstra aceasta, folosim:
Deci avem problema duala sub forma max.
2.Programarea Lineara
2.1.Convexitate si metode Lagrange
Definitii:
, pentru valori si 0<<1 atunci x=y=z.
Teorema 2.1 (Suport pentru hiperplane)
Presupunem este convex si b se afla in interiorul setului de puncte unde este finit. Atunci exista un hiperplan de sustinere (care nu este vertical) la in b.
Ne intereseaza conditiile problemei care fac convex.
Teorema 2.2. Considerand problema P(b), definite ca
pentru
Daca X este un set convex si f si h sunt convexe atunci si este convex.
Demonstratie:
Luam si , pentru 0<<1 cu in asa fel incat este definit.
Luam realizabil pentru P() pentru i=1,2 si consideram
Atunci X convex, implica ca . De asemenea, h convex implica
Daca x este realizabil pentru P(b) si f convex
Aceasta e valabil pentru toti si asa ca minimul reprezinta:
asa ca este convex.
2.2. Programe Lineare
Vom studia probleme de forma
minimizarea unde x si c sunt vectori cu n elemente si b este un vector cu m elemente. A este o matrice mxn.
Un exemplu de problema in programarea lineara este problema dietei.
Se dau n alimente , care contin fiecare m substante nutritive
Atunci este continutul din substanta in alimentul
reprezinta meniul, cantitate din alimentul , pentru j=1,n
reprezinta minimul din substanta nutritive pe care dorim sa o aiba meniul.
este pretul unitar
Problema lineara este determinarea unui meniu care sa respecte necesarul de substante nutritive si sa minimizeze cheltuiala, adica:
, pentru i=1,n si
Minimizarea , pentru i=1,n
Varianta duala a problemei lineara este cea a farmacistului care are substante concentrate si trebuie sa stabileasca preturi unitare , astfel incat castigul lui sa fie maxim iar cheltuiala comparatorului sa nu depaseasca costul variantei cu meniul de alimente. Adica:
, pentru j=1,n si
Maximizarea
In acest sens rezulta teoremele de dualitate.
Notam cu P, multimea solutiilor posibile a problemei lineare
Si , multimea solutiilor posibile pentru problema lineara duala
Teorema 2.2.1.
Teorema 2.2.2.
a) Daca P este multime vida atunci functia obiectiv pentru este nemarginita superior cand este nevida.
b) Daca este multime vida, atunci functia obiectiv pentru P este nemarginita inferior cand P este nevida
Pe baza teoriilor de dualitate, algoritmul simplex permite rezolvarea problemelor P si .
3.Algoritmul Simplex
Se reduce la urmatorii pasi:
3.1.Punctul de vedere algebric
O baza B, este un vector de m variabile, diferite de 0.
Pentru orice x care satisface Ax=b, putem scrie:
, unde este o matrice mxm si este o matrice mx(n-m)
si b sunt vectori de marime m si este un vector de marime (n-m).
O solutie de baza are =0, , iar o solutie de baza realizabila are =0, si .
Asa cum am vazut, daca exista un optim finit, atunci exista si o solutie de baza realizabila care este optima.
3.2.Tabelul Simplex
Pentru orice x cu Ax=b, avem .
Deci: f(x)=
Acestea se pot grupa intr-un tabel:
Baza |
Non-baza | |
I |
|
|
|
|
3.3.Testarea optimului
Sa presupunem ca vrem sa maximizam si gasim
si
Atunci pentru toti x, realizabil ()
Dar pentru un de baza realizabil, si avem
Deci este optim, oferind astfel posibilitatea verificarii ca o solutie de baza, realizabila este optima.
3.4.Alegerea unei noi solutii
Alternativ, daca este pozitiv, atunci putem mari valoarea functiei obiectiv, prin marirea valorii .
Se doreste marirea lui cu cat mai mult posibil, dar cu satisfacerea conditiilor. Daca modificam marimea lui , atunci si celelalte variabile se modifica si trebuie sa ne oprim daca una devine 0.
3.5.Algoritmul Simplex
I. Gaseste o solutie initiala realizabila cu baza B
II.Verifica semnul , pentru Toate elementele sunt pozitive?
III.Daca DA, atunci avem un optim. Stop.
IV.Daca NU, prin urmarirea conditiei >0, cu , marim pe cat posibil.
Aceasta marirea poate fi infinita, ceea ce inseamna ca maximul nu poate fi atins. Stop
Sau, o variabila devine 0, ceea ce da o noua solutie realizabila. Atunci se repeta incepand de la pasul II.
Sub forma de tabel avem:
|
|
|
|
Atunci constrangerile sunt:
Ceea ce se poate scrie ca Ax+z=b,
Si sa luam solutia initiala realizabila x=0, z=b
Ne putem gandi ca o extindere a lui x la (x,z) si sa setam
Pas1.Alegerea unei variabile ca baza
Cautam un j astfel incat >0. Coloana j este numita coloana pivot si variabila corespunzatoare coloanei j ca forma baza. Daca pentru toti atunci solutia curenta este cea optima.
Daca exista mai multe >0 vom alege una. O regula comuna este alegerea lui j pentru care are valoarea pozitiva cea mai mare.
Pas2.Cautarea unei variabile care sa fie eliminate din baza
Alegem i care minimizeaza / din setul de valori pozitive >0. Randul i se numeste rand pivot. Daca pentru toti i, atunci problema nu este marginita, iar functia obiectiv poate fi crescuta fara limita.
In exemplu de mai jos avem in acest punct:
|
|
|
baza |
2 1 0 |
|
baza |
-1 0 1 | |
|
1 0 0 |
Pas3.Pivotarea elementului
Scopul este de a aduce ecuatiile intr-o forma apropiata pentru o noua solutie de baza, realizabila.
- Inmultim randul i cu 1/.
- Adunam rand(i) la fiecare rand , inclusiv randul functiei obiectiv
Noua forma a tabelului este:
|
|
|
baza |
3 1 -1 | |
baza | ||
|
2 0 -1 |
Acum ne intoarcem iar de la Pasul 1.
In exemplul nostru, urmatoarea iteratie ne aduce valoarea optima.
|
|
|
baza |
1 | |
baza |
0 | |
|
0 |
Aceasta corespunde solutiei .
3.6. Algoritmul Simplex Dual
Consideram problema de programare lineara definite in sectiunea 2.2., definite ca:
Minimizarea cu duala
Maximizarea
La fiecare pas a algoritmului simplex avem urmatorul table:
Baza, |
Non-baza, | |
I |
|
|
|
|
|
Acum avem o solutie de baza, realizabila pentru problema lineara primara si
O solutie de baza (nu neaparat realizabila) pentru varianta duala .
Pentru exemplul urmator dorim sa minimizam pentru
Se observa ca , pentru toti i. Fie variabilele astfel incat sa obtinem:
Algoritmul in cazul problemei lineare primare trebuie sa foloseasca doua faze, de vreme ce , nu este o solutie realizabila. Insa tabelul contine o solutie pentru problema lineara duala: si .
-2 -1 1 0 | |
3 4 0 0 |
|
Pentru liniile i cu <0 alegem o coloana cu <0 pentru a minimiza /-. Pivotand pe avem:
1 0 | |
Si apoi pe
1 1 0 2 |
|
0 3 |
|
Deci valoarea optima este , cu
Probleme de forma pot fi scrise astfel:
Ax-z=b cu
Rezulta:
Deci variabilele duale pot fi gasite in randul functiei obiectiv in cadrul tabelului de optim (exemplu )
4.Complexitatea Algoritmilor
4.1. Teoria complexitatii algoritmilor
O instanta a unei probleme de optimizare este definite prin datele de intrare. De exemplu, o instanta a unei probleme de programare lineara cu n variabile si m constangeri este definite de parametrii de intrare c,A si b. Sunt mxn+m+n numere si daca toate pot fi exprimate in cel mult k biti, atunci instanta poate di descrisa intr-un sir de (mxn+m+n)k biti. Aceasta este marimea instantei.
O problema de optimizare este rezolvata printr-un algoritm, in genului unui set de instructiuni. Timpul de rulare a algoritmului depinde de programare si viteza hardware. O instanta mare, cum ar fi o problema lineara poate fi rezolvata usor, daca A=I. Insa, timpul de rulare a unui algoritm creste cu marimea instantei.
Ignorand detaliile de implementare , timpul de rulare depinde de numarul de operatii implicate.
De exemplu, un sistem linear Ax=b, cu A de marime nxn, poate fi rezolvat de catre algoritmul de eliminare Gaussian, folosind operatii de adunare, scadere, inmultire si impartire.
Bineinteles ca inmultirea este mai dificila decat adunarea si necesita mai mult timp de calcul, deci mai multe instructiuni elementare. Fie T(n) cel mai rau caz de rulare a unui algoritm pe toate instantele de marime n. T(n) este cateodata polinomial in marimea problemei
pentru toate n, pentru un polinom (ex. sau ).
Algoritmul se spune ca ruleaza in timp polinomial.
Probleme P si NP
Spunem ca o problema, care ia forma unei intrebari cu raspuns tip Da/Nu, apartine lui P, daca poate fi rezolvata de un algoritm care ruleaza in timp polinomial.
Spunem ca o problema apartine lui NP, daca fiecare instanta Da, are un certificate, a carei validitate poate fi verificata in timp polinomial.
NP reprezinta nondeterministic polinomial, adica un polinomial nedeterminist. O problema de decizie apartine lui NP, daca poate fi rezolvata pe un calculator nedeterminist. Un calculator nedeterminist consta dintr-un numar exponential de calculatoare care lucreaza in paralel, oricare dintre ele poate raspunde Da, intr-un timp polinomial, fara a se consulta cu celelalte.
Putem vorbi de cele mai grele probleme in NP. O problema este grea in NP, daca fiecare problema din NP poate fi redusa la ea. Se spune ca este completa NP, daca . Deci, toate probleme NP complete poate fi redusa una la alta si sunt la fel de grele ca orice problema in NP.
Sunt multe probleme NP complete. O problema lineara este NP completa , daca toate variabilele sunt restranse la 0 sau 1. Problema comisului voiajor este NP completa, la fel si determinarea lanturilor hamiltoniene in grafuri.
5.Complexitatea computationala a problemei lineare
5.1.Timpul de rulare a unui algoritm simplex
Cel mai rau caz de rulare
Algoritmul simplex trece de la o solutie de baza realizabila, la alta, de fiecare data imbunatatind valoarea functiei obiectiv. Din pacate, poate necesita un numar exponential destul de mare de pasi pentru a termina.
Presupunem ca o regiune realizabila este un cub in definit de constangerile:
cu i=1,.,d
Cautam sa maximizam Sunt noduri. Drumul de mai jos viziteaza toate nodurile inainte de a termina la (0,0,.,1).
d=2 d=3
Fie dat atunci cubul dat de constrangerile:
cu i=2,.,d
Se poate verifica ca, costul functiei creste cu fiecare miscare de-a lungul drumului. De exemplu, pentru d=2 avem:
Observam ca creste pe secventa ABCD. Asa ca daca regula de pivotare este sa ne mutam la solutia adiacenta realizabila, pentru care cresterea functiei obiectiv este mica, atunci algoritmul simplex va avea nevoie de -1 pasi de pivotare inainte de terminare.
Cu aceasta regula de pivotare, algoritmul simplex prezinta o complexitate exponentiala maxima. Se observa ca nodul initial sic el final sunt adiacente si o regula diferita de pivotare poate reusi intr-un singur pas. Oricum, pentru toate regulile comune de pivotare, exista instante pentru care numarul de pasi este exponential. Nu se stie daca exista o regula de pivotare care sa faca algoritmul simplex mai eficient.
5.2. Complexitatea Problemei LP
Vom investiga algoritmi alternative pentru rezolvarea problemei de programare lineare. In particular, cautam un algoritm polinomial.
Marimea unei instante LP
Orice intreg r, cu poate fi scris in forma binara
unde sunt 0 sau 1.
Numarul k poate fi maxim Folosind inca un bit pentru semn, putem reprezenta orice intreg r unde prin maxim biti.
O instanta a problemei LP este data de o matrice A mxn, un vector b de marime m si un vector c de marime n. Atunci marimea instantei LP are marimea in biti de:
(mn+m+n)( ).
6.Concluzii
6.1.Optimizarea convexa
O problema de optimizare convexa este una de forma:
Minimizarea pentru , cu i=1.m
Unde functiile sunt convexe, adica satisfac:
pentru toti si , .
Problema de programare lineara este un caz special a problemei de optimizare convexa.
6.2.Rezolvarea problemelor de optimizare convexa
Nu exista in general o formula analitica pentru solutia problemelor de optimizare convexa, dar ca si in cazul problemei de programare lineara, exista metode eficiente pentru rezolvarea lor.
Metodele punctelor interioare merg foarte bine in practica si in cateva cazuri rezolva problema cu o acuratete destul de buna, intr-un numar de operatii care nu depasesc dimensiunea polinomiala.
Am vazut ca se poate rezolva o problema intr-un numar de pasi care variaza de obicei de la 2 la 100.
Folosirea optimizarii convexe, este din punct de vedere conceptual, similara cu rezolvarea problemei celor mai mici patrate sau a problemei de programare lineara.
Insa recunoasterea unei probleme de optimizare convexa este destul de dificil.
Pe langa aceasta, exista trucuri in transformarea unei probleme convexe.
Recunoasterea unei probleme de optimizare convexa sau una care poate fi transformata intr-o problema convexa este o provocare.
Exista o varietate de aplicatii ale optimizarii convexe, in domenii precum probabilitatea si statistica, geometria de calcul si ajustarea de date.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 3302
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved