Sunteți pe pagina 1din 9

3.

Programare Convexa

3.1 Mulțimi si funcții convexe


Exemple: mulțimea formată dintr-un singur punct, o dreaptă, un segment de dreaptă, un
n n
hiperplan (adică {x ∈ Rn ∑ ai x i=b}), un semiplan (adică { x ∈ Rn ∑ ai x i ≥b }), o bila
i=1 i=1
închisă de centru a si raza r,

√∑
n
n n 2
Br ( a ) ={x ∈ R ‖x−a‖2 ≤ r }=x ∈ R ( x ¿ ¿ i−ai ) ≤ r }¿, un con (C= {
i =1

x ∈ R A ( x −x ) ≥ 0 , A ∈ M m , n(R)}, x varful conului), etc.


n ¿ ¿

3.2 Extreme condiționate


Problema minimizării unei funcții convexe f pe o mulțime convexa K s.n. problema de
programare convexa si se poate scrie sub forma

Unde f si gi sunt funcții convexe pe Rn.

4. Programare Liniara

4.1 Exemple de probleme de programare liniara


Utilizarea optimă a resurselor
Resursele pe care le are la dispoziție (materie primă, forță de muncă, mașini unelte,
resurse financiare etc.) sunt în cantități limitate.
Cu aceasta noțiune se pot determina:

- Cantitatea din resursa I folosita pentru producerea cantității x j care este a ij x j


- Cantitatea totala din resursa i folosita pentru producția totala formata din n produse:
n

∑ aij x j ≤ bi, i∈{1, 2,..., m}


j=1
Adoptarea unei variante de plan (luarea unei decizii) se face pe baza unui criteriu
economic, ca de ex venitul sau profitul sa fie maxim.
Dacă se notează cu cj prețul de vânzare al unei unități din produsul j și cu dj
costul unitar pentru același produs (se presupune, pentru simplificarea problemei,
că atât prețul de vânzare cât și costul nu depind de cantitatea produsă, ceea ce nu
n
prea este în concordanță cu realitatea), atunci venitul total va fi: ∑ c j x j, iar
j=1
n
cheltuielile de productie ∑ d j x j, deci profitul obținut va fi:
j=1
n n n

∑ c j x j−∑ d j x j =∑ ( c ¿ ¿ j−d j) x j ¿
j=1 j=1 j=1

Problema de transport
Se considera m centre de aprovizionare (depozite) si n centre de consum (puncte de
lucru, magazine, etc). Se pune problema sa se determine un plan de transport pentru un
produs omogen care se afla in cantitatea a i la depozitul i (1≤ i ≤ m) si este cerut in cantitatea
b j la centrul j (1≤ j ≤ m). Se notează cu x ij cantitatea necunoscută ce va fi transportata de la
depozitul i la centrul de consum j si cu c ij costul transportului unei unități din produsul
considerat de la depozitul i la centrul j (pentru simplificare se presupune că acest cost unitar
nu depinde de cantitatea transportată pe ruta respective).
- Cantitatea ceruta de la depozitul i la toate cele n centre de consum
a i=x i1 + x i 2+ ...+ x ¿ =cantitatea aflata la depozituli ,
- Cantitatea transportata de la toate cele m depozite la centru de consum j
b j=x j1 + x j 2 +...+ x jm=necesarul la centrul de consum j
- Costul transportului de la depozitul i la centrul de consum j este c ij x ij
m n
Costul total ∑ ∑ ❑
i=1 j=1
Pentru efectuarea transportului:
m n

∑ ai=∑ b j , egalitate numita si condiția de balansare sau de echilibru.


i=1 j=1
Se obține astfel un program liniar numit si program de transport:
m n

∑ ∑ c ij x ij❑
i=1 j=1
n

∑ x ij=a i, 1 ≤ i ≤ m
j=1

∑ x ij=b j, 1 ≤ j ≤ n
i=1

x ij ≥ 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n

Alocarea optima a fondurilor financiare


Având la dispoziție o suma totala S care poate fi investita in diverse activități j, 1 ≤ j ≤
n, fiecare producător are un anumit profit unitar a j , 1 ≤ j ≤ n, se pune problema
determinării sumei x j , 1 ≤ j ≤ n, investita pentru activitatea j, a.i. sa se obțină un profit
maxim:
n
max∑ a j x j
j=1
in condițiile:
n

∑ x j=S
j=1

x j ≥ 0, 1 ≤ j ≤ n

Gestionarea optima a unui depozit


Scopul maximizării profitului pe o anumita durata de timp.
Fie:
− xi stocul din depozit la începutul perioadei i,
− di cantitatea achiziționată în perioada i,
− bi cantitatea vândută în perioada i și
− pi prețul pe perioada i.
Daca sunt n intervale de timp avem:
n
max∑ pi bi −h xi

{
i=1

xi +1=x i+ d i−bi , i=1 , n−1


x n +d n−bn=0
x i+ d i ≤ S
x i=0 , x i , d i , bi ≥0

Problema dietei
Sa se determine cea mai economica dieta care satisface minimul nutrițional cerut.
Modelarea problemei
Notam:
-xi numărul de unități din alimentului i conținut in dieta
Minimul: min {c 1 x 1 +c 2 x 2 +…+ c n x n}

{
a1 1 x 1 +a12 x1 +…+ a1 n x n ≥ b1
a 21 x 1+ a2 2 x 1+ …+a 2n x n ≥ b2
Restricții: ⋮
am 1 x1 +a m 2 x 1+ …+a m n x n ≥b m
x i ≥0 , i=1 , n

4.3 Algoritmul simplex


Acest algoritm se aplica problemelor de programare liniara sub forma standard.
S.n. soluție nedegenerata o soluție de baza care are exact m componente nenule.
S.n. soluție degenerata o soluție care are si componente nule.
S.n. soluție admisibila sau program o soluție a sistemului de ecuații si inecuații ce verifica si
condiția de ne negativitate.
Notăm R = {x∈ Rn x program}, z* = min{c'xx∈ Rn }
Convenim să punem z* = +∞ dacă R = φ.
Dacă z* = −−∞, spunem că problema are optim infinit.
Dacă z* este finit, atunci x*∈ R cu proprietatea că z* = c' x* se numește soluție optima sau
program optim.

4.4 Fundamentele algoritmului simplex


Algoritmul simplex dă o metodă de explorare sistematică și economică a programelor de
baza, mai precis de trecere de la un program la altul care da funcției obiectiv o valoare mai
mare sau mai mica. De asemenea, algoritmul furniză criterii pentru cazurile în care
problema de programare liniară nu are programe sau are optim infinit.

4.5 Enunțul algoritmului simplex


Pas 0. Se determina o baza B in matricea A, se calculează ,

Pas 1. a) Criteriul de intrare in baza


1.

2.
b) Criteriul de ieșire din baza
1.

2.
Pas 2. Se înlocuiește in baza B vectorul a l cu vectorul a k , obținând-se baza
apoi se trece la pasul 1,
înlocuind baza B cu baza

EXEMPLE:
Rezolvare:
4.11 Metoda celor doua faze
Metoda celor două faze permite obținerea unui program de bază de plecare în
rezolvarea problemei de programare inițială sub forma standard, adică (Zidăroiu, 1983):

{
min c ' x
Ax=b
x ≥0
Se poate presupune că bi ≥ 0, 1≤ i ≤ m ; dacă nu, se înmulțește linia respectivă cu −1. Se
a
adăugă la fiecare ecuație câte o variabilă artificială x i și se obține:

{
Ax + I x a=b
x ≥0
a
x ≥0
În faza I pentru a obține un program de bază al sistemului se rezolvă problema de
programare liniară

{
min ∑ xi =W
a

A x + I x a=b
x i ≥ 0 ,1 ≤ i≤ n
a
x j ≥ 0 , 1≤ j ≤ m
Faza II

{
min c ' x
Ax=b
x ≥0

4.12 Dualitatea in programarea liniara


Oricărei probleme de programare liniară (numită problemă primară) i se asociază o
problemă de programare liniară duală pornind de la aceleași costuri și coeficienți ai
restricțiilor, dar în timp ce o problemă este de minim, cealaltă este de maxim. Vom
demonstra că dacă valorile optime ale funcțiilor obiectiv sunt finite, atunci ele sunt egale.
Variabilele problemei duale pot fi interpretate ca preturi asociate cu restricțiile problemei
primare și această asociere permite o interpretare economică a problemei duale.

4.13 Teorema fundamentala a dualității

4.14 Algoritmul simplex dual


Algoritmul simplex primal explorează bazele primal admisibile ale problemei (4.45)
până la obținerea unei baze primal admisibile care să fie și dual admisibilă
, sau până la punerea în evidentă a faptului că problema primală are
optim infinit.
In algoritmul simplex primal se obține o succesiune de soluții de baza ( B−1 b ≥0 ¿ , iar in
algoritmul simplex dual se obtine o succesiune de solutii de baza care nu sunt programe (
−1
B b nu are toate componentele negative )

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