Sunteți pe pagina 1din 1

Algoritmul simplex

• Pasul 0: se scrie matricea A şi se identifică baza unitară (presupunând că există). Se
determină soluţia iniţială de bază X B , impunând ı̂n sistemul de restricţii X R = 0.
Deoarece ı̂n baza unitară aB
ij = aij se ı̂ntocmeşte tabelul:

c1 c2 cn
B CB XB ....
a1 a2 an
ak1 ak2 akn
∆j ∆1 ∆2 ... ∆n

• Pasul 1: Pentru fiecare j ∈ JR = {m + 1, m + 2, ..., n} se calculează diferenţele ∆j :



zj − cj ı̂n cazul problemei de minim
∆j =
cj − zj ı̂n cazul problemei de maxim ,

P
m
unde zj = ci aij , m + 1 ≤ j ≤ n. Diferenţele ∆j cu 1 ≤ j ≤ m (cele corespunzătoare
i=1
vectorilor bazei) sunt egale cu zero.

1. Dacă ∆j ≤ 0, ∀j ∈ JR , STOP; X B este conform criteriului de optim, soluţia optimă.


2. Dacă există indici j ∈ JR pentru care ∆j > 0 se aplică criteriul de intrare ı̂n bază
alegându-se diferenţa ∆k = max ∆j care indică vectorul ak ce intră ı̂n noua bază.
j∈JR

3. Dacă toate componentele vectorului ak sunt mai mici sau egale cu zero, STOP,
problema are optim infinit.
Dacă vectorul ak are şi componente pozitive, pentru acestea se calculează rapoartele
xB
i
şi se alege
aik
xB xB
θ0 = min{ i } = l ;
aik alk
conform criteriului de ieşire din bază, vectorul al părăseşte baza fiind ı̂nlocuit cu ak .
Se obţine o nouă bază. Elementul de la intersecţia liniei l cu coloana k se numeşte
pivot.

• Pasul 2: Se reface tabelul simplex:


a. se scrie noua bază;
b. se completează coloana c corespunzătoare;
c. ı̂ncepând cu coloana lui X B , linia l a pivotului se scrie ı̂mpărţită la pivot;
d. se completează vectorii unitari ai noii baze;
e. celelalte elemente ale tabelului se calculează conform formulelor de schimbare a
bazei cu regula ”dreptunghiului”;
f. se calculează diferenţele ∆j şi se reia Pasul 1 şi 2.

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