Prévia do material em texto
Docente: Jorge Moisés Lapi. Página 1
Universidade Católica de Moçambique
Faculdade de Gestão de Turismo e Informática
Av. 25 de Setembro, 725
C.P 336 Pemba - Moçambique
Tel: (+258) 27 22 19 69 Fax: (+258) 27 22 17 20
E-mail: fgti@ucm.ac.mz
Departamento de Ciências Económicas
Curso de Contabilidade e Auditoria
Cadeira: Investigação Operacional II 3o Ano/1o Semestre
UNIDADE II: PROGRAMAÇÃO LINEAR INTEIRA
2.0. INTRODUÇÃO
O termo programação inteira, refere-se ao estudo dos problemas de
programação linear (PL) nos quais o domínio de todas as variáveis do problema é
restritamente de valores inteiros, portanto, a Programação Linear Inteira (PLI) é um
caso particular dos problemas de programação linear.
Por exemplo, se considerarmos modelos lineares de problemas de produção
ou transporte de certos artigos onde o produto a ser transportado são garrafas,
tubos, automóveis ou mesmo se quisermos afectar máquinas, homens, veículos a
determinadas actividades, de certeza a solução óptima desses problemas não
deverá conter números fraccionários, i.é, necessariamente teremos que ter
quantidades inteiras.
A abordagem comum dos problemas de programação linear, tem sido de
usar o método simplex analítico ou gráfico para resolver o problema de
programação linear ignorando a restrição de que as variáveis devem ser inteiras.
Tendo-se obtida a solução óptima inicial, procura-se arredondar para os dois
valores inteiros mais próximos caso estes não forem inteiros. Se os valores inteiros
pertencerem ao conjunto solução então, está encontrada a solução do problema de
programação linear inteira, caso contrário o solução toma-se não viável e procura-
se uma nova solução até encontrar a solução óptima inteira.
Docente: Jorge Moisés Lapi. Página 2
Um problema de programação linear inteira pode apresentar as seguintes
situações:
i. Todas as varáveis de decisões são inteiras: são problemas denominados
Problemas de Programação Linear Inteira Pura – PLIP;
ii. Parte das varáveis de decisões são inteiras: são problemas denominados
Problemas de Programação Linear Inteira Mista – PLIM;
iii. Todas as varáveis de decisões são binárias: são problemas denominados
Problemas de Programação Linear Inteira Binária – PLIB;
iv. Parte das varáveis de decisões são binárias: são problemas
denominados Problemas de Programação Linear Inteira Binária Mista –
PLIBM.
Todo o problema de programação linear tem a seguinte estrutura:
Maximizar (ou Minimizar)
n
j
jj xcZ
1
Sujeito à
njZx
mibxa
j
n
j
ijij
,...,3,2,1
,...,3,2,1
0
1
Admite-se que em vez de max possa se usar min e em vez de
possa se
usar
respectivamente.
2.1. FORMAS PARA RESOLVER PROBLEMAS PLI
Inicialmente, pode-se propor a solução de problemas de programação linear
inteira por arredondamento ao final da aplicação de um método de programação
linear, como por exemplo, pelo método gráfico ou Simplex.
Para tanto, deve-se ignorar, temporariamente, a restrição que impõe que as
variáveis de decisão devam ser inteiras. Caso a resposta não seja um número
inteiro, deve-se arredondá-la. Um dos maiores problemas desta forma de resolver
problemas de PLI é que o arredondamento pode não redundar em uma solução
óptima.
Docente: Jorge Moisés Lapi. Página 3
Outra abordagem é o método de bifurcação de limite que, pela avaliação das
soluções viáveis, escolhe-se a melhor, ou seja, para problemas de maximização, a
maior; para os de minimização, a menor. Um dos maiores entraves para a
aplicação deste método é de ser impraticável para problemas reais que geralmente
envolvem várias variáveis de decisão.
Deve-se considerar algumas observações:
i. O número de soluções em um problema de PLI é finito, mas isto não implica
que seja fácil de resolver;
ii. Num problema de PLIB com n variáveis há 2n soluções, por isso, para
alguns problemas, fica impossível enumerar todas as soluções;
iii. Os melhores algoritmos não podem garantir a solução de todos os
problemas, mesmo relativamente pequenos ( < 100 variáveis);
iv. Para os valores que são suficientemente grandes para que o
arredondamento não introduza erros significativos, pode-se até pensar neste
artifício matemático;
2.1.1. MÉTODO DE ARREDONDAMENTO
Exemplo 2.1.1: A empresa Coca Cola de Moçambique, produz dois tipos de
refresco: em lata e em garrafa. Cada lata vendida produz um lucro de 7 u.m e cada
garrafa produz um lucro de 6 u.m. Os detalhes das quantidades em termos de
matéria-prima necessária e a capacidade máxima diária estão apresentados na
tabela.
Matéria-prima
Tipos de refresco
Disponível
Em lata Em garrafa
Matéria-prima 1
Matéria-prima 2
2
6
3
5
12
30
a) Formule o modelo matemático como problema de programação linear inteira
(PLI).
Docente: Jorge Moisés Lapi. Página 4
b) Sabendo que x1 e x2 são o número de latas e garrafas produzidas
respectivamente, resolva o problema de tal modo que se determine o
número de latas e de garrafas que devem ser produzidas para maximizar o
lucro diário.
c) Encontre a solução binária.
Resolução
a) Max
21 67 xxZ
Suj à
0
21
21
3056
1232
Zx
xx
xx
i
b) Vamos resolver o problema pelo método gráfico, ignorando a condição de
que x1 e x2 devem ser quantidades inteiras.
R1: x1 x2 R2: x1 x2 Z: x1 x2
0
6
4
0
0
5
6
0
0
1
0
6
7
Docente: Jorge Moisés Lapi. Página 5
Como encontrar o ponto óptimo?
Conhecida a região, domínio solução ou conjunto das possibilidades para
chegar a solução.
1. Calcular as coordenadas de todos os pontos que estão nas extremidades da
área do domínio solução (neste caso o ponto A).
2. Calcular o valor da função objectivo para cada ponto. O valor máximo é a
solução óptima para o problema de maximização e o mínimo é solução
óptima para o problema de minimização
Da figura anterior temos:
)5,1;75,3(30561232 212121 AxxxxrrA
25,35925,26)( AZ
.
Segundo os valores da função objectivo e pelo objectivo exposto a solução
óptima é
5,1;75,3 21 xxSPL
com
25,35max Z
unidades}.
Como a solução não é inteira, dizemos que o valor máximo inteiro da função
objectivo é igual a zero, Zm = 0; e também sabemos pelo conjunto solução
apresentado graficamente que o valor de Zm não será superior ao valor óptimo da
primeira aproximação:
.maxZZm
Arredondando ou truncando os valores para x1 = 4 e x2 = 2, teremos zi = 40,
um valor superior a
.maxZ
Concluímos neste caso que esta solução não é viável e o
ponto P(4,2) de facto está fora da região das soluções admissíveis.
Para procurarmos a solução inteira, vamos calcular o valor da função
objectivo em cada ponto da região das soluções admissíveis para apenas os pares
de coordenadas com valores inteiros.
Docente: Jorge Moisés Lapi. Página 6
Examinado a tabela anterior, vemos que a solução óptima do problema de
programação linear inteira é:
0;51 21 xxSPL com 35max Z unidades}.
c) Max
21 67 xxZ
Suj à
1;0
3056
1232
21
21
ix
xx
xx
Examinado a tabela em b), vemos que a solução óptima do problema de
programação linear inteira binária é:
1;1 21 xxSPLB com 13max Z unidades}.
O procedimento ilustrado pelo exemplo 2.1.1. para encontrar a solução
óptima inteira é viável paraalguns e poucos problemas de PLI e PLIB, porque este
procedimento toma-se difícil ou mesmo impossível para grande parte dos
problemas de PLI.
2.1.2. MÉTODO DE BIFURCAÇÃO E LIMITE (Branch and Bound)
Os primeiros trabalhos deste método foram desenvolvidos por Land e Doig
(1960) e melhorados para a presente estrutura por Dakin, R.J(1 965) no seu livro “A
Tree Search Algorithm for Mixeci Integer Pmgramming Problems”. Daí em diante a
estrutura do processo da procura da solução óptima inteira, apresentar-se na forma
de uma árvore com restrições uma depois da outra.
Devido a dificuldade da procura da solução para problemas de PLI, estão até
agora a ser desenvolvidos métodos com vista a encontrar um procedimento
padrão. Entretanto, muitos investigadores e autores, como Dantzig,G.B(1963),
Bland, RG(1977), Paul, RT (1979), Taha, H.A( 1975; 1997) entre outros,
consideram que o método promissor para os problemas de programação linear
inteira é o Branch and Bound Method (em português, particionar e limitar “as
partições”), cujo princípio básico consiste em dividir repetidamente o problema que
apresentar solução não inteira em dois subproblemas e resolvê-los até encontrar
uma solução viável óptima com todos os valores das variáveis inteiras incluindo o
valor da função objectivo.
Docente: Jorge Moisés Lapi. Página 7
Para a utilização do algoritmo de bifurcação e limite é necessário que sejam
satisfeitas três proposições:
Proposição 1. O problema de programação linear inteira já tem a primeira
aproximação que é a solução óptima do problema de programação linear.
Proposição 2. A primeira aproximação tem pelo menos xi não inteiro, i.é: xi = bi
onde bi é um valor não inteiro.
Proposição 3. O limite inferior é zero para os problemas de maximização: Zm = 0, e
o limite superior é infinito para os problemas de minimização:
sZ
2.1.1. Procedimento do Método de Bifurcação e Limite
Passo 1. Resolver o problema original usando os métodos já conhecidos de
PL. Se a solução deste problema satisfaz a restrição de inteiro, termina-se o
processo. Se não, o valor da função objectivo determina o limite superior (Zm) ou
inferior (Zs) do problema de programação linear inteira.
Passo 2. Partindo da solução não inteira, dividir o problema em dois
subproblemas com restrições adicionais. Por exemplo se xi = bi onde b não é
inteiro, no subproblema 1 adiciona-se a restrição
ii bx
e no subproblema 2
adiciona-se a restrição
,11 bxi
onde [bi] é a parte inteira de bi.
Passo 3. Resolver os dois novos problemas de PL criados pela adição de
novas restrições.
Passo 4. Teste das soluções
a) Se a solução do novo problema de PL não é viável, o processo de procura
da solução inteira termina neste subproblema.
b) Se a solução do novo problema de IL é viável, mas não é inteira, actualize o
passo 5.
c) Se o subproblema tem uma solução viável e inteira, calcule o valor da
função objectivo:
Docente: Jorge Moisés Lapi. Página 8
Se este valor é igual ao limite superior (inferior), então foi alcançada a
solução óptima e Zm = zi (Zs = Zi)
Se este valor não for igual ao limite superior (inferior), mas superior
(inferior) ao limite inferior (superior), desiguale a este valor novo limite
inferior (superior) e passe para o passo 5. Esta troca dos limites diz-
se que Z foi incumbido e Z1.1 sondado.
Finalmente, se este valor é menor (maior) que o limite inferior
(superior), termina-se o processo neste subproblema.
Passo 5. Examine todos os subproblemas e verifique se o limite superior
(inferior) é igual ao valor máximo da função objectivo. Se o limite superior (inferior)
é igual ao limite inferior (superior), termine o processo. Caso contrário repita o
passo 2.
Cada um dos modelos ou subproblemas pode ser resolvido como um novo
problema de programação linear usando o método simplex, gráfico e ou mesmo
como uma adição de uma nova restrição na análise de sensibilidade. Para que a
decisão de sondagem se tome clara pode-se recorrer ao método gráfico.
Observações:
Só se bifurca uma variável de cada vez e se acrescenta uma restrição em
cada subproblema
O problema de programação linear inteira, pode ter mais de uma solução
óptima, i.é, diferentes valores mas com o mesmo valor da função objectivo.
Exemplo 2.1.2. Resolver o exemplo 2.1.1. pelo método de bifurcação e limite.
Maximizar
21 67 xxZ
Sujeito à
0
21
21
3056
1232
Zx
xx
xx
i
A primeira aproximação é: S0 ={x1 = 3.75; x2 = 1.5; Zmax = 35.25}
Docente: Jorge Moisés Lapi. Página 9
De onde temos as conclusões Zm = 0;
25.35max ZZm
Tanto x1 como x2 podem ser bifurcados, nós vamos escolher x2 para
bifurcar.
Subproblema 1.
Max
21 67 xxZ
Suj à
0
2
21
21
1
3056
1232
Zx
x
xx
xx
i
Para x2 = 1, substituindo nas restrições 1 e 2 temos:
viavelZ
viavelnãoZ
imox
x
x
x
16.35616.29
5.3765.31
min16.4
5.4
301*56
121*32
)16.4(
)5.4(
1
1
1
1
016.35,1;16.4 max211 mi ZZZxxSp
Subproblema 2.
Max
21 67 xxZ
Suj à
0
2
21
21
2
3056
1232
Zx
x
xx
xx
i
Para x2 = 2, substituindo nas restrições 1 e 2 temos:
331221
3.3
min3
302*56
122*32
1
1
1
1
iZ
x
imox
x
x
3333,2;3 max212 mi ZZZxxSp
é incumbido e Zm= 0 é sondado
Como o subproblema 1, apresenta um valor da função objectivo superior ao
valor obtido no subproblema 2, vamos bifurcá-lo em dois outros subproblemas,
Docente: Jorge Moisés Lapi. Página 10
enquanto isso a solução do Sp2 é guardada ou incumbida a fim de comparar com
as próximas soluções.
Subproblema 1.1.
Max
21 67 xxZ
Suj à
0
1
2
21
21
4
1
3056
1232
Zx
x
x
xx
xx
i
Para x1 = 4, substituindo nas restrições temos:
2.352.728
min2.1
3.1
65
43
3054*6
1234*2
2
2
2
2
2
2
iZ
imox
x
x
x
x
x i
A solução não é viável ou seja é infactivel porque o 2.12 x não respeita a
condição de
12 x
Subproblema 1.2.
Max
21 67 xxZ
Suj à
0
1
2
21
21
5
1
3056
1232
Zx
x
x
xx
xx
i
Para x1 = 5, substituindo nas restrições 1 e 2 temos:
35035
min0
66.0
3055*6
1235*2
2
2
2
2
iZ
imox
x
x
x
3535,0;5 max212.1 mi ZZZxxSp
é incumbido e Zm = 34 é sondado.
Docente: Jorge Moisés Lapi. Página 11
Como não podemos mais bifurcar e nem podemos aumentar o valor da
função objectivo, já alcançamos a solução óptima inteira do problema de
programação linear inteira dada pelo subproblema 1.2.
35,0;5)( 21 mZxxPLIS
Observação:
Quando há mais de uma variável candidata a bifurcação, recomenda-se
escolher a variável que apresentar o maior (menor) valor do coeficiente na equação
da função objectivo.
A árvore binária que ilustra as bifurcações e as soluções das iterações está
apresentada a seguir.Árvore binária do exemplo 2.1.1.
35,0;5 21 mZxxSPLI
Docente: Jorge Moisés Lapi. Página 12
TAREFAS
Exercício 1. Usando o método de arredondamento ou truncamento, resolva os
seguintes problemas de programação linear inteira, recorrendo gráfica.
a) Max
21 23 xxZ
b) Min
21 23 xxW
c) Max
21 43 xxZ
Suj à
0
21
21
21
632
142
1243
Zx
xx
xx
xx
i
Suj à
0
21
21
21
1241
1222
1015
Zx
xx
xx
xx
i
Suj à
0
21
21
2464
1223
Zx
xx
xx
i
a)
6;4 21 xxSPLI com 24max Z unidades de medida}.
b)
5;1 21 xxSPLI
e
13max Z
}.
c)
14;2;28.16;4.2;4.20 max21max21 ZxxSPLIZxxSPL
Exercício 1.1. Encontre as soluções binárias.
Exercício 2. Usando o método de bifurcação e limite, resolva os seguintes
problemas de programação linear inteira (Note que para resolver pode-se recorrer
a forma analítica, simplex dual ou gráfica).
a) Max
21 86 xxZ
b) Min
21 56 xxW
c) Min
21 810 xxW
Suj à
0
21
21
932
62
Zx
xx
xx
i
Suj à
0
21
21
523
432
Zx
xx
xx
i
Suj à
0
21
21
1664
32
Zx
xx
xx
i
Respostas:
a)
24;3;05.25;5.1;25.20 21max21 mZxxSPLIZxxSPL
b)
11;1;14.104.0;4.10 21min21 sWxxSPLIWexxSPL
c)
24;3;05.22;5.2;25.00 21min21 sWxxSPLIWexxSPL
Docente: Jorge Moisés Lapi. Página 13
Referências:
FERREIRA, M.A.M; Isabel, A (1995) - Programação Matemática, 2a edição,
Edições Sílabo, Lisboa: pp74-91.
PAUL, R.T (1979) - An Introduction to Linear Programming and Game Theory, John
Wiley & Sons, me, USA: sections 6.3, 6.4.
RENDER, 13; Ralhp, M.S.Jr. (1997) - Quantitative Analysis for Management, 6th
edition, Prentice - 1-hal International, Inc, USA: cap.11
TAHA, N.A (1997) - Operations Research - an introduction, 6th edition, Prentice -
Hail International. Inc. USA: cap.9.
Docente: Jorge Moisés Lapi. Página 1
CABARITO
1a) Max
21 23 xxZ
Suj à
0
21
21
21
632
142
1243
Zx
xx
xx
xx
i
6;4 21 xxSPLI com 24max Z unidades de medida}.
Passo 1. Transformar as inequações em equações:
Maximizar
21 23 xxZ
Sujeito à
5421
321
221
121
,0;0
632
142
1243
rrxx
rxx
rxx
rxx
Passo 2. Representar num mesmo sistema de coordenadas, todas rectas e considerar os semi-
planos que satisfazem as inequações correspondentes.
R1: x1 x2 R2: x1 x2 R3: x1 x2 R4:
x2=0
R5:x1=0
0
-4
3
0
0
7
14
0
0
3
-2
0
Como encontrar o ponto óptimo?
Docente: Jorge Moisés Lapi. Página 2
Conhecida a região, domínio solução ou conjunto duas possibilidades para chegar a solução.
Primeira possibilidade:
1. Calcular as coordenadas de todos os pontos que estão nas extremidades da área do
domínio solução (neste caso os pontos são A, B, C, D e E).
2. Calcular o valor da função objectivo para cada ponto. O valor máximo é a solução
óptima para o problema de maximização e o mínimo é solução óptima para o
problema de minimização
Da figura anterior teremos:
)3;0(01243
)6;4(1421243
)2;6(632142
)0;3(0632
)0;0(00
14151
212121
212132
22143
2154
ExxxrrE
DxxxxrrD
CxxxxrrC
BxxxrrB
AxxrrA
660)(
241212)(
;22418)(
;909)(
;000)(
EZ
DZ
CZ
BZ
AZ
Segundo os valores da função objectivo e pelo objectivo exposto a solução óptima é
6;4 21 xxSPLI
com
24max Z
unidades de medida}.
b) Min
21 23 xxW
Suj à
0
21
21
21
1241
1222
1015
Zx
xx
xx
xx
i
Minimizar
21 23 xxW
Recta W, se
0W
então
2
3 1
2
x
x
Sujeito à
0,
1241
1222
1015
21
21
21
21
xx
xx
xx
xx
as equações são
0,
1241
1222
1015
21
321
221
121
xx
rxx
rxx
rxx
R1: x1 x2 R2: x1 x2 R3: x1 x2 W: x1 x2
0
2
10
0
0
6
6
0
0
12
3
0
0
2
0
-3
Docente: Jorge Moisés Lapi. Página 3
A, M. N e O são os pontos extremos do domínio solução e M é o ponto mínimo.
,21 rrM resolvendo o sistema de duas equações temos:
1222
1015
21
21
xx
xx Solução
5
1
2
1
x
x 135*21*3; min W
Resposta: a pessoa deve comprar 1 vidro e 5 caixas e terá um custo mínimo de 13 unidades
monetárias.
5;1 21 xxSPLI e
13max Z
}.
c) Max
21 43 xxZ
Suj à
0
21
21
2464
1223
Zx
xx
xx
i
14;2;28.16;4.2;4.20 max21max21 ZxxSPLIZxxSPL
Exercício 1.1. Encontre as soluções binárias.
Exercício 2. Usando o método de bifurcação e limite, resolva os seguintes
problemas de programação linear inteira (Note que para resolver pode-se recorrer
a forma analítica, simplex dual ou gráfica).
Docente: Jorge Moisés Lapi. Página 4
a) Max
21 86 xxZ
Suj à
0
21
21
932
62
Zx
xx
xx
i
24;3;05.25;5.1;25.20 21max21 mZxxSPLIZxxSPL
b) Min
21 56 xxW
Suj à
0
21
21
523
432
Zx
xx
xx
i
Resolução.
Tabela inicial simplex dual
1ª Iteração
2ª Iteração
4.105/524.05/2;4.15/70 min21 WexxSPL
Desta solução conclui-se que:
,4.10min WWs
para o problema de minimização vamos
bifurcar x2 porque tem menor coeficiente na função objectivo.
Subproblema 1.
Docente: Jorge Moisés Lapi. Página 5
Min
21 56 xxW
Suj à
0
2
21
21
5
523
432
Zx
x
xx
xx
i
; Para x2 = 0
12
66.13/5
max2
50*23
40*32
1
1
1
1
iW
x
imox
x
x
124.1012,0;2 211 si WWxxSp
é incumbido;
sW
é sondado
Subproblema 2.
Min
21 56 xxW
Suj à
0
2
21
21
5
523
432
Zx
x
xx
xx
i
; Para x2 = 1
11
max0.1
5.0
51*23
41*32
1
1
1
1
iW
x
x
x
x
111211,1;1 112 si WWxxSp
é incumbido;
12sW
é sondado
Árvore binária do exemplo 4.3.
Docente: Jorge Moisés Lapi. Página 6
c) Min
21 810 xxW
Suj à
0
21
21
1664
32
Zxxx
xx
i
Resolução
Tabela inicial simplex dual
1ª Iteração
2ª Iteração
minmin21 5.222/45;5.22/5;25.04/10 WWeWWexxSPL ss
Subproblema 1.
Min
21 810 xxW
Suj à
0
2
21
21
2
1664
32
Zx
x
xx
xx
i
Para
261610
max0.1
2/1
16124
322
2
1
1
1
1
2
iW
x
x
x
x
x
2626;2;1 min211 si WWWxxSP
é incumbido e
sW
é sondado
Docente: Jorge Moisés Lapi. Página 7
Subproblema 2.
Min
21 810 xxW
Suj à
0
2
21
21
3
1664
32
Zx
x
xx
xx
i
Para
24240
2/1
max0
16184
332
3
1
1
1
1
2
iW
x
x
x
x
x
262624;3;0 212 si WWxxSP
é incumbido e
26sW
é sondado
24;3;0 21 sWxxSPLI
Árvore binária do exemplo 4.5
24;3;0 21 sWxxSPLI