Sunteți pe pagina 1din 9

Rezolvarea problemelor de programare întreaga binara

prin enumerare implicita

Am vazut deja metoda B&B însotita eventual de utilizarea Teoremei 1.

max f ( x)
g i ( x) ≤ bi i = 1,..., m
(*)
x ∈ X , X = {0.1}n
Ssdsdsdsdsdsdsdsdsdsd

Strategia: Subproblemele sunt analizate considerand restrictiile liniare si neglijand initial


restrictia de integralitate

- Exista evident metoda de enumerare explicita, dar care nu totdeauna poate fi aplicta.
- Exista si o metoda de enumerare implicita care are o strategie opusa celei de dinainte.

Strategia: Se mentine tot timpul restrictia ca variabilele sa fie binare si se ignora, în


prima instanta, restrictiile de tip inegalitati liniare.

Exemplu:
z * = max z = −8 x1 − 2 x 2 − 4 x3 − 7 x 4 − 5 x5 + 10
− 3x1 − 3 x 2 + x3 + 2 x 4 + 3x5 ≤ −2 (1)
− 5 x 1 − 3 x 2 − 2 x3 − x 4 + x5 ≤ −4 (2)
x j = 0 sau 1 ( j = 1,2,...,5) (3)

Ideea de baza: Se utilizeaza un proces de generare de subprobleme (de tip B&B) în care
unele variabile sunt fixate la 0 sau 1. Variabilele ce raman de specificat se numesc
variabile libere. Daca restrictiile de tip inegalitate sunt ignorate, atunci functia obiectiv
este maximizata setand la 0 variabilele libere care au coeficeienti negativi si la 1
variabilele libere care au coeficeienti pozitivi. Daca coeficientul este nul atunci ambele
valori, 0 sau 1, pot face parte dintr-o solutie optimala. Ca exemplu, în cazul problemei de
mai sus, daca la un moment dat x1 si x3 sunt fixate la 1 si x4 la 0, trebuie sa maximizam.

Ca exemplu, în cazul problemei de mai sus, daca la un moment dat x1 si x3 sunt fixate la
1 si x4 la 0, trebuie sa maximizam.

max [-8(1) - 2x 2 - 4(1) - 7(0) - 5x 5 + 10] = max[-2 - 2x 2 - 5x 5 ] = - 2

Datorita restrictiei de binaritate, maximul este -2 si este atins pentru x 2 = x5 = 0 .


Simplitatea acestei maximizari, în comparatie cu rezolvarea unei probleme de programare
liniara, justifica strategia adoptata.
Revenim la exemplul nostru si pornim un arbore de enumerare ce începe cu nodul 0,
caruia îi asociem problema relaxata.

P0 z * = max z = −8 x1 − 2 x2 − 4 x3 − 7 x4 − 5 x5 + 10
x j = 0 sau 1 ( j = 1,2,...,5)

L={P0}

Maximul este z * = 10 , cu solutia x1 = x 2 = x3 = x4 = x5 = 0 . Dar restrictiile (1) si (2) nu


sunt satisfacute si deci solutia problemei P0 nu este fezabila pt. problemei originale.
Concluzionam ca:

z 0* ≤ 10 ( z0* fiind maximul problemei initiale)

Generam doua subprobleme cu variabila x1 fixata , x1=1 sau x1=0,

P1 z * = max z = −8(1) − 2 x 2 − 4 x3 − 7 x 4 − 5 x5 + 10 = −2 x 2 − 4 x3 − 7 x 4 − 5 x5 + 2
x1 = 1; x j = 0 sau 1 ( j = 2,...,5)

P2 z * = max z = −8(0) − 2 x2 − 4 x3 − 7 x 4 − 5 x5 + 10
x1 = 0; x j = 0 sau 1 ( j = 2,...,5)

L={P1, P2}

P1 are solutia optima: x1 = 1; x 2 = x3 = x 4 = x5 = 0 ; cu z * = 2 . Si restrictiile (1) si (2)


sunt verificate si deci avem o solutie fezabila pentru problema originala. Deci putem
conchide ca:

z0* ≥ 2

Nu mai este nevoie sa definim subprobleme si sa continuam analiza.


L={P2}
P2 are solutia x1 = x 2 = x3 = x4 = x5 = 0 cu z * = 10 , adica la fel ca P0. De aceea definim
alte doua subprobleme:

P3 z * = max z = 8(0) − 2(1) − 4 x3 − 7 x 4 − 5 x5 + 10 = −4 x3 − 7 x 4 − 5 x5 + 8


x1 = 0; x 2 = 1; x j = 0 sau 1 ( j = 3,4,5)

P4 z * = max z = 8(0) − 2(0) − 4 x3 − 7 x 4 − 5 x 5 + 10 = −4 x3 − 7 x 4 − 5 x5 + 10


x1 = 0; x 2 = 0; x j = 0 sau 1 ( j = 3,4,5)

L={P3, P4}

P3 are solutia optima x1 = 0; x 2 = 1; x3 = x 4 = x5 = 0 ; cu z * = 8 . Dar restrictia (2) nu este


verificata si deci aceasta solutie nu este fezabila pt problema initiala. Deci trebuie sa
definim alte 2 subprobleme.

L={P4}

P5 z * = max z = −8(0) − 2(1) − 4(1) − 7 x 4 − 5 x5 + 10 = −7 x4 − 5 x5 + 4


x1 = 0; x 2 = 1, x 3 = 1 x j = 0 sau 1 ( j = 4, 5)

P5 z * = max z = −8(0) − 2(1) − 4(0) − 7 x 4 − 5 x5 + 10 = −7 x 4 − 5 x5 + 8


x1 = 0; x 2 = 1, x 3 = 0 x j = 0 sau 1 ( j = 4, 5)

L={P5, P6, P4}

Problema P5 are solutia x1 = 0; x 2 = 1; x3 = 1; x4 = x5 = 0 ; cu z * = 4


Solutia verifica si restrictiile (1) si (2) si, deci, este solutia fezabila a problemei initiale.
Deci nu trebuie sa analizam mai departe si avem:

z 0* ≥ 4
L={P6, P4}

Problema P6 are solutia optima x1 = 0; x 2 = 1; x3 = 0; x 4 = x5 = 0 ; cu z * = 8 .

Solutia nu verifica restrictia (2) si deci nu este solutie fezabila a problemei initiale. Deci
trebuie sa definim alte 2 subprobleme.

P7 z * = max z = −8(0) − 2(1) − 4(0) − 7(1) − 5 x5 + 10 = −5 x5 + 1


x1 = 0; x 2 = 1, x 3 = 0; x 4 = 1 x 5 = 0 sau 1

P8 z * = max z = −8(0) − 2(1) − 4(0) − 7(0) − 5 x5 + 10 = −5 x5 + 8


x1 = 0; x2 = 1, x 3 = 0; x 4 = 0 x 5 = 0 sau 1

L={P7, P8, P4}

Problema P7 are solutia optima x1 = 0; x 2 = 1; x3 = 0; x 4 = 1; x5 = 0 ; cu z * = 1 .

Nu trebuie sa analizam mai departe pentru ca avem solutie fezabila:

z 0* ≥ 4

L={P8, P4}

Problema P8 are solutia x1 = 0; x 2 = 1; x3 = 0; x 4 = 0; x5 = 0 ; cu z * = 8 .

Solutia nu verifica restrictiile (1) si (2) si de aceea definim alte doua subprobleme:

P9 z * = max z = −8(0) − 2(1) − 4(0) − 7(0) − 5(1) + 10 = +3


x1 = 0; x 2 = 1, x 3 = 0; x 4 = 0 x 5 = 1

P10 z * = max z = −8(0) − 2(0) − 4(0) − 7(0) − 5(0) + 10 = +8


x1 = 0; x 2 = 1, x 3 = 0; x 4 = 0; x 5 = 0

L={P9, P10, P4}


P9 are solutia x1 = 0; x 2 = 1; x3 = 0; x 4 = 0; x5 = 1 ; cu z * = 3 . Nu mai avem ce analiza.

P10 are solutia x1 = 0; x 2 = 1; x3 = 0; x 4 = 0; x5 = 0 ; cu z * = 8 . Solutia nu verifica


restrictia (2). Nu mai avem ce analiza.

L={ P4}

P4 are solutia optima x1 = 0; x 2 = 0; x3 = x 4 = x5 = 0 ; cu z * = 10 .

Mai mult restrictia (2) devine: − 2 x3 − x 4 + x5 ≤ −4 .

Un rezultat general: Daca suma coeficientilor negativi din membrul stang este mai mare
decat membrul drept, atunci inegalitatea nu poate fi satisfacuta de oricare combinatie
binara a variabilelor.

In cazul nostrum − 3 > −4 . Deci P4 este nefezabila pt oricare subproblema. Blocam


analiza in acest caz.

L=Φ. STOP
0 5
Solutia optima este
z * ≤ 10

x1 = 1 x1 = 0 x1 = x 4 = x5 = 0
x 2 = x3 = 1
1 2 z* = 4
z* ≥ 2
*
x2 = 1 x2 = 0

3 4

x3 = 1 x3 = 0 * (Nu este fezabila)

5 z* ≥ 4 6

*
x4 = 1 x4 = 0

7 8
z* ≤ 4

x5 = 1 x5 = 0

9 10

* *

B&B cu enumerare implicita


Programarea întreaga mixta

O problema LP poate sa aiba restrictie de integralitate pentru unele, nu neaparat toate


varaibilele de decizie.

Si in acest caz, B&B este o metoda practica de rezolvare. Subproblemele sunt in acest caz
generate numai de variabilele întregi.

Exemplu:

z * = max = −3 x1 − 2 x 2 + 10
5
x1 − 2 x 2 + x3 =
2
3
2 x1 + x2 + x 4 =
2
x j ≥ 0 j = 1,2,3,4
x2 si x3 intregi (*)
L0
z * ≤ 10
x1 = x 2 = 0
5 3
x3 = , x 4 =
2 2
z = 10

x3 ≤ 2 x3 ≥ 3

L1 L2
1 1
x1 = , x 2 = 0 x1 = 0, x 2 =
2 4
1 1 5
x3 = 2, x 4 = z* ≥ 8 x3 = 3, x 4 =
2 2 4
1 1
z =8 z=9
2 2

*
x2 ≤ 0 x2 ≥ 1

L3 L4

x1 = 0, x 2 = 1
Nefezabil 9 1
x3 = , x 4 =
2 2
z =8

* *

Metoda B&B pentru MIP


Prolemele L0-L4 sunt probleme LP si le rezolvam de exemplu cu metoda Simplex.
In dreptunghiurile de sub numele problemei, sunt indicate solutiile respective.

Problem L0 admite o solutie optimala care are valoarea functiei obiectiv z=10.
Cum restrictia (*) nu este satisfacuta, rezulta ca solutia optimala a problemei MIP
satisface

z * ≤ 10

Pentru L3 sa remarcam ca

 x3 ≥ 3  5
  ⇒ x1 + x3 = imposibil pt ca x1 + x3 ≥ 3
 x 2 = 0; x1 ≥ 0 2

Deci L3 este nefezabila

Solutia lui L4 nu este si solutie a problemei MIP. De aceea, pe domeniul aferent


problemei L4 solutia MIP este inferioara lui z = 8 . Deci rezulta

z* ≤ 8

1
Dar noi avem o solutie a MIP z * = 8 .
2
Deci nu are rost sa analizam mai departe pe aceasta ramura.

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