Escolar Documentos
Profissional Documentos
Cultura Documentos
, ,
- de variveis inteiras:
, ,
A formulao do problema dada por:
Max/min
s.a.
Onde:
inteiro
Pgina | 2
III. CONSIDERAES MATEMTICAS.
Na modelagem de um problema de programao
linear, algumas situaes especficas podem
ocorrer, o que pode levar a casos em uma forma
matemtica diferente da apresentada at o
momento.
Entretanto, alguns artifcios matemticos ajudam
a reduzir o modelo obtido forma padro
estudada.
Estes artifcios so mostrados a seguir:
a. Minimizao de uma funo:
A minimizao de uma funo z(x)
matematicamente anloga maximizao da
negativa desta funo (-z(x)).
Exemplo:
Minimizar
equivalente a:
Maximizar
Com
Essa uma das formas de se resolver os
problemas de minimizao utilizando o mesmo
algoritmo. Caso queira resolver diretamente,
devemos alterar o critrio de entrada das
variveis na base. A varivel que entra na base
passa a ser aquela que tem o maior valor positivo
na linha z-transformada. Caso todas tenham
coeficientes negativos ou nulos, a soluo obtida
tima.
b. Restries de limite inferior ():
Uma desigualdade em uma direo ( ou ) pode
ser mudada para uma desigualdade na direo
oposta, pela multiplicao de ambos os lados da
desigualdade por (-1).
Exemplo:
equivalente a:
c. Restries de igualdade:
Uma equao pode ser substituda por duas
desigualdades de direes opostas.
Exemplo:
equivalente a duas desigualdades simultneas:
IV. CARACTERISTICAS DOS MODELOS PLI.
Um problema de programao linear inteira pode
apresentar as seguintes situaes:
- Todas as variveis de decises so inteiras: so
problemas denominados Problemas de
Programao Linear Inteira Pura PLIP
- Parte das variveis de decises inteira: so
problemas denominados Problemas de
Programao Linear Inteira Mista PLIM
- Todas as variveis de decises so binrias: so
problemas denominados Problemas de
Programao Linear Inteira Binria PLIB
- Parte das varveis de decises so binrias: so
problemas denominados Problemas de
Programao Linear Inteira Binria Mista
PLIBM.
V. O MTODO BRANCH-AND-BOUND.
O mtodo Branch-and-Bound (em portugus,
ramificar e limitar) um algoritmo que apresenta
a qualidade de examinar s uma pequena parte
das solues possveis. Como os problemas de PLI
so relativamente grandes, para resolv-los
diretamente deve-se dividi-lo em sub-problemas
cada vez menores, at que estes possam ser
solucionados. Sendo assim, a ideia desenvolver
uma enumerao inteligente dos pontos
candidatos ns em busca da soluo tima
inteira do problema, por meio da partio do
espao e avaliao progressiva das solues.
A forma de diviso em problemas menores parte
do princpio da separao de uma das variveis
de deciso inteiras, em um problema relaxado,
utilizando-a em restries contraditrias, criando
uma espcie de ramificao (a partir de um n),
como em uma rvore.
Uma das formas de relaxao consiste em,
temporariamente, ignorar as restries de
Pgina | 3
integralidade do problema de PLI, tornando-o um
problema de PL, ficando, portanto, mais simples
de resolver. A partir deste, pode-se usar para
resolv-lo o mtodo Simplex. Deve-se considerar
que o conjunto de solues viveis do problema
original (PLI) esteja contido no conjunto de
solues viveis do problema relaxado (PL).
- Critrios:
Se o problema relaxado no tem soluo vivel,
ento o problema de PLI tambm no tem.
Se uma soluo tima do problema relaxado
vivel no problema de PLI, ento ela uma
soluo tima do problema de PLI.
A escolha do ponto (n) para ramificao da
rvore pode ser efetuada, pelas seguintes
tcnicas:
* Jumptracking: implementa uma busca em
largura onde um n com o mnimo limite inferior
selecionado para ser examinado. Nesta
estratgia o processo de ramificao salta de um
ramo para outro na rvore de busca.
* Backtracking: implementa a busca em
profundidade, onde os ns descendentes de um
n pai so examinados em uma ordem arbitrria
ou em ordem de limites inferiores no-
decrescentes. Nesta estratgia, primeiramente
prossegue-se at o nvel mais baixo por algum
caminho para encontrar uma soluo tentativa e
ento refazer aquele caminho para cima at o
primeiro nvel com ns ativos e assim por diante.
fcil notar que a estratgia jumptracking tende
a construir uma grande lista de ns ativos,
enquanto backtracking mantm relativamente
uns poucos ns na lista a qualquer momento.
Uma vantagem do jumptracking a qualidade de
suas solues tentativas, que so geralmente
muito mais prximas do timo do que solues
geradas por backtracking, especialmente nos
estgios iniciais da busca.
Na anlise dos pontos candidatos faz-se
necessrio determinar quais so os pontos que
devam ser examinados ou descartados para
anlises futuras. Esta anlise segue o seguinte
critrio: O problema candidato relaxado (PL) no
tem soluo vivel. Devido ao item a anterior, o
problema candidato (PLI) tambm no tem
soluo vivel.
Uma soluo tima do problema relaxado
vivel, tambm no problema candidato. Como
uma soluo vivel de qualquer dos sub-
problemas tambm uma soluo vivel do
problema, ento a soluo tambm factvel.
Caso a soluo seja melhor que a atual, a soluo
deste problema ocupar a posio de melhor
soluo atual, descartando a anterior.
VI. PROCEDIMENTO DO MTODO BRANCH-AND-
BOUND.
Passo 1 Resolver o problema original usando
programao linear, por exemplo, pelo mtodo
Simplex. Se a resposta satisfaz a restrio inteira,
esta a soluo tima. Sendo assim, pare, seno,
ir ao passo 2.
Passo 2 Encontrar uma soluo vivel que
preencha a restrio inteira para uso como um
limite superior. Usualmente para isso, arredonda-
se a varivel.
Passo 3 Ramificar pela varivel de deciso do
passo 1 que no tenha um valor inteiro. Caso
todas as variveis no sejam inteiras, iniciar a
ramificao pela de maior valor do resduo
decimal. Dividir o problema em dois sub-
problemas baseados nos valores inteiros que
esto imediatamente abaixo ou acima do valor
no inteiro. Esses limites devero ser colocados
na restrio do problema.
Passo 4 Criar ns no topo desses novos ramos
pela soluo dos novos problemas.
Passo 5 a. Se um ramo leva a uma soluo
invivel por programao linear, descarte o n
para continuidade da anlise.
b. Se um ramo leva a uma soluo vivel por
programao linear, mas no uma soluo
inteira v para o passo 6.
c. Se o ramo leva a uma soluo inteira vivel,
examine o valor da funo objetivo. Se este valor
igual ao limite inferior, uma soluo tima foi
alcanada. Se ele no igual ao limite inferior,
mas ele menor que o limite superior, adote-o
como um novo limite superior e v para o passo
6. Finalmente, se ele maior que o limite
superior, descarte esse ramo.
Pgina | 4
Passo 6 Examine ambos os ramos novamente e
adote como limite superior o valor mximo da
funo objetivo para todos os ns finais. Se o
limite inferior igual ao limite superior, pare. Se
no, volte ao passo 3.
EXERCCIO 1: Aplicao do mtodo Branch-and-
Bound para variveis de deciso binrias (PLIB).
Maximizar 9
s.a.
6
10
binrio para j= 1, 2, 3, 4.
Resolvendo pelo mtodo Branch-and-Bound,
usando o software MATLAB chega-se ao seguinte
resultado:
% Algoritmo PLIB em MATLAB.
f = [-9; -5; -6; -4];
A = [6 3 5 2; 0 0 1 1; -1 0 1 0; 0 -1 0 1];
b = [10; 1; 0; 0];
[x,fval,exitflag,output] = bintprog(f,A,b)
x =1
fval = -14
output = iterations: 12
nodes: 5
time: 1.0608
algorithm: 'LP-based branch-and-bound'
Foi usado SIMPLEX em MATLAB para achar a
forma relaxada do problema de PL. Agora de
forma manual ns temos o seguinte:
%Algoritmo PL Simplex em MATLAB.
f=[ -9; -5; -6; -4];
A=[6 3 5 2;0 0 1 1;-1 0 1 0;0 -1 0 1], b=[10;1;0;0];
Aeq=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1], beq=[1; 1; 0; 0];
lb=zeros(4,1),ub=ones(4,1);
options=optimset('LargeScale','off','Simplex','on');
[x,fval,exitflag,output,lambda]=linprog(f,A,b,
Aeq,beq,lb,ub,[],options);
1. Simplex solution node Z.
***---Variable---***
x = 0.8333
1.0000
1.0000
***---Objetive function---***
fval = -16.5000
***---info---***
output = iterations: 5
algorithm: 'medium scale: simplex'
message: 'Optimization terminated.'
Este o resultado relaxado, agora tomamos o
maior valor decimal e ramificamos. Neste caso
.
2. Simplex solution node
0.
***---Variable---***
x =0
1
0
1
***---Objetive function---***
fval = -9
***---info---***
output = iterations: 2
algorithm: 'medium scale: simplex'
message: 'Optimization terminated.'
3. Simplex solution node
1.
***---Variable---***
x = 1.0000
0.8000
0
0.8000
***---Objetive function---***
fval = -16.2000
***---info---***
output = iterations: 3
algorithm: 'medium scale: simplex'
message: 'Optimization terminated.'
Pgina | 5
De acordo com o passo 5, limitamos ao seguinte
ramo:
4. Simplex solution node
0.
***---Variable---***
x =1.0000
0
0.8000
0
***---Objetive function---***
fval = -13.8000
***---info---***
output = iterations: 1
algorithm: 'medium scale: simplex
message: 'Optimization terminated.
5. Simplex solution node
1.
***---Variable---***
x =1.0000
1.0000
0
0.5000
***---Objetive function---***
fval = -16
***---info---***
output =iterations: 2
algorithm: 'medium scale: simplex'
message: 'Optimization terminated.
De acordo com o passo 5, limitamos ao seguinte
ramo:
6. Simplex solution node
0.
***---Variable---***
x = 1.0000
1.0000
0
0.5000
***---Objetive function---***
fval = -16
***---info---***
output = iterations: 1
algorithm: 'medium scale: simplex'
message: 'Optimization terminated.'
7. Simplex solution node
1.
Exiting: The constraints are overly stringent; no
feasible point exists.
***---Variable---***
x = []
***---Objetive function---***
fval = []
***---info---***
output =iterations: 0
algorithm: 'medium scale: simplex'
Pgina | 6
De acordo com o passo 5, limitamos ao seguinte
ramo:
8. Simplex solution node
1.
Exiting: The constraints are overly stringent; no
feasible point exists.
***---Variable---***
x = []
***---Objetive function---***
fval = []
***---info---***
output =iterations: 0
algorithm: 'medium scale: simplex'
9. Simplex solution node
0.
***---Variable---***
x =1
1
0
0
***---Objetive function---***
fval = -14
***---info---***
output =iterations: 0
algorithm: 'medium scale: simplex'
message: 'Optimization terminated.'
De acordo com o passo 5, limitamos ao seguinte
ramo:
Ento como soluo tima em PLIB temos: fval=
14, com
1,
1,
0,
0; onde
tm um valor menor q o valor da fval relaxada.
EXERCCIO 2: Aplicao do mtodo Branch-and-
Bound para variveis de deciso inteiras (PLI).
Maximizar 5
s.a.
6
5
45
inteiro para j= 1, 2.
Foi usado SIMPLEX em MATLAB para achar a
forma relaxada do problema de PL.
1. Simplex solution node Z.
***---Variable---***
x =2.2500
3.7500
***---Objetive function---***
fval = -41.2500
***---info---***
output = iterations: 2
algorithm: 'medium scale: simplex'
Pgina | 7
Este o resultado relaxado, agora tomamos o
maior valor decimal e ramificamos. Neste caso
.
2. Simplex solution node
3.
***---Variable---***
x = 3
3
***---Objetive function---***
fval = -39
***---info---***
output = iterations: 2
algorithm: 'medium scale: simplex'
3. Simplex solution node
4.
***---Variable---***
x =1.8000
4.0000
***---Objetive function---***
fval = -41
***---info---***
output = iterations: 2
algorithm: 'medium scale: simplex'
De acordo com o passo 5, limitamos ao seguinte
ramo:
4. Simplex solution node
1.
***---Variable---***
x =1.0000
4.4444
***---Objetive function---***
fval = -40.5556
***---info---***
output = iterations: 2
algorithm: 'medium scale: simplex'
5. Simplex solution node
2.
Exiting: The constraints are overly stringent; no
feasible starting point found.
De acordo com o passo 5, limitamos ao seguinte
ramo:
6. Simplex solution node
4.
***---Variable---***
x = 1
4
***---Objetive function---***
fval = -37
***---info---***
output =iterations: 2
algorithm: 'medium scale: simplex'
7. Simplex solution node
5.
***---Variable---***
x = 0
5
***---Objetive function---***
fval = -40
***---info---***
output =iterations: 1
algorithm: 'medium scale: simplex'
Pgina | 8
De acordo com o passo 5, limitamos ao seguinte
ramo:
Ento como soluo tima em PLI temos: fval=
40, com
0,
5; onde tm um valor
menor q o valor da fval relaxada e o valor das
variveis de decises so inteiros.
VII. CASO DE APLICAO.
Para um dado conjunto de obras, devem-se
selecionar aquelas a serem priorizadas de tal
forma se maximizar o benefcio global,
respeitando-se uma determinada restrio
oramentria assim como relaes de excluso
ou de obrigatoriedade entre obras.
* Definio das obras, com custos e benefcios
correspondentes:
ITEM OBRA CUSTO BENEFCIO
1 Poda 5000 500
2 Recondutoramento 20000 1000
3 Circuito novo 40000 1500
4 Expanso SE 50000 1000
5 SE nova 80000 1000
* Definio de obras excludentes:
ITEM OBRA OBRA EXCLUDENTE
1 Recondutoramento Circuito novo
2 Expanso SE SE nova
* Definio de obras dependentes:
ITEM OBRA OBRA DEPENDENTE
1 Recondutoramento Poda
Ento o problema pode ser formulado da
seguinte forma:
Maximizar
s.a.
0,1 1, ,
: nmero total de obras.