Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

PO Apostila completa, Notas de estudo de Engenharia de Produção

Apostila de Pesquisa Operacional

Tipologia: Notas de estudo

2011

Compartilhado em 13/05/2011

diogo-smargiassi-12
diogo-smargiassi-12 🇧🇷

1 documento

1 / 167

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
Pesquisa Operacional
Engenharia de Produção
DEPROT / UFRGS
Profs. Flavio Fogliatto, Ph.D.
1. INTRODUÇÃO À PESQUISA OPERACIONAL
A Pesquisa Operacional (PO) trata da modelagem matemática de fenômenos
estáticos ou dinâmicos. Os problemas estáticos são denominados por
determinísticos. Nestes problemas, todos os componentes são conhecidos a
priori e nenhuma aleatoriedade em sua ocorrência é admitida. Os problemas
dinâmicos são denominados estocásticos, e seus elementos apresentam uma
probabilidade de ocorrência em uma determinada forma. Este material aborda
problemas determinísticos de Pesquisa Operacional.
Os problemas de PO existem desde longa data. Somente a partir da 2aGrande
Guerra, todavia, passaram a ser tratados a partir de uma abordagem organizada,
sendo organizados na forma de uma disciplina ou área do conhecimento
(Ravindran et al., 1987). Os primeiros casos reportados de aplicação da PO
foram, em virtude de sua origem, de caráter militar. Somente após o final da
Segunda Grande Guerra, problemas civis passaram a ser estudados pela PO. Os
primórdios da PO encontram-se descritos no trabalho de Trefethen (1954).
Ravindran, A., Phillips, D.T. & Solberg, J.J. (1987). Operations Research,
Principles and Practice, 2nd Ed.. New York: John Wiley.
Trefethen, F.N. (1954). “A History of Operations Research”, in Operations
Research for Management, J.F. McCloskey & F.N. Trefethen (Eds.). Baltimore:
Johns Hopkins Press.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe PO Apostila completa e outras Notas de estudo em PDF para Engenharia de Produção, somente na Docsity!

Pesquisa Operacional

Engenharia de Produção

DEPROT / UFRGS

Profs. Flavio Fogliatto, Ph.D.

1. INTRODUÇÃO À PESQUISA OPERACIONAL

A Pesquisa Operacional (PO) trata da modelagem matemática de fenômenos estáticos ou dinâmicos. Os problemas estáticos são denominados por determinísticos. Nestes problemas, todos os componentes são conhecidos a priori e nenhuma aleatoriedade em sua ocorrência é admitida. Os problemas dinâmicos são denominados estocásticos , e seus elementos apresentam uma probabilidade de ocorrência em uma determinada forma. Este material aborda problemas determinísticos de Pesquisa Operacional.

Os problemas de PO existem desde longa data. Somente a partir da 2 a^ Grande Guerra, todavia, passaram a ser tratados a partir de uma abordagem organizada, sendo organizados na forma de uma disciplina ou área do conhecimento (Ravindran et al. , 1987). Os primeiros casos reportados de aplicação da PO foram, em virtude de sua origem, de caráter militar. Somente após o final da Segunda Grande Guerra, problemas civis passaram a ser estudados pela PO. Os primórdios da PO encontram-se descritos no trabalho de Trefethen (1954).

Ravindran, A., Phillips, D.T. & Solberg, J.J. (1987). Operations Research, Principles and Practice , 2 nd^ Ed.. New York: John Wiley.

Trefethen, F.N. (1954). “A History of Operations Research”, in Operations Research for Management , J.F. McCloskey & F.N. Trefethen (Eds.). Baltimore: Johns Hopkins Press.

Prof. Fogliatto Pesquisa Operacional 2

Ementa

INTRODUÇÃO

  1. Programação Matemática
  2. Revisão de Álgebra Linear
  3. Uso de pacotes computacionais na solução de problemas

PROGRAMAÇÃO LINEAR

  1. Introdução à Programação Linear
  2. O algoritmo Simplex

Dois eventos motivaram o rápido desenvolvimento da PO. O primeiro foi o desenvolvimento de um algoritmo simples para solucionar problemas de programação linear (isto é, problemas determinísticos de PO), denominado algoritmo simplex e proposto por George Dantzig em 1947. Tal algoritmo permitiu a resolução manual de diversos problemas de PO, especialmente aqueles de baixa complexidade. O segundo foi a proliferação dos microcomputadores e o rápido aumento em sua velocidade de processamento.

Problemas de PO são usualmente modelados na forma de uma função objetivo (por exemplo, maximizar o lucro da empresa) e diversas restrições (associadas, por exemplo, à disponibilidade de matérias-primas, mão-de-obra, etc.). A chave do algoritmo simplex está no formato da região limitada pelas restrições, comum a todos os problemas de PO, conforme verificado por Dantzig; tal região é denominada simplex. Quaisquer dois pontos selecionados no contorno de um simplex , quando unidos por uma linha, resultam em uma linha interiamente contida dentro do simplex. A partir dessa constatação, a busca pela solução ótima em problemas de PO passou a ser limitada a pontos extremos da região simplex , o que permitiu o desenvolvimento de um algoritmo de baixa complexidade computacional por Dantzig.

Prof. Fogliatto Pesquisa Operacional 4

Referências Bibliográficas

LIVRO-TEXTO : Operations Research, Applications and Algorithms , de Wayne L. Winston, 3a^. Ed., Duxburry Press.

Adicionais (no mesmo nível):

1. Pesquisa Operacional , de Harvey Wagner, 2a^. Ed., Prentice-Hall do Brasil. 2. Pesquisa Operacional , de Pierre J. Ehrlich, Ed. Atlas.

A solução de problemas através da Pesquisa Operacional pode ser implementada através de um procedimento em sete etapas, conforme apresentado na Figura 1.1. As etapas são auto-explicativas para uma descrição completa das etapas, ver Winston, 1994.

Bronson, R. & Naadimuthu, G. (1997). Operations Research , 2 nd^ Ed.. New York: McGraw-Hill.

Winston, W.L. (1994). Operations Research, Applications and Algorithm, 3 rd^ Ed.. Belmont (CA): Duxburry Press.

Figura 1.1.

A metodologia de

Pesquisa Operacional

(Winston, 1994).

Prof. Fogliatto Pesquisa Operacional 5

INTRODUÇÃO À PROGRAMAÇÃO LINEAR

  • Programação Linear é uma ferramenta para solução de problemas de otimização.
  • Em 1947, George Dantzig desenvolveu o algoritmo SIMPLEX, extremamente eficiente na solução de problemas de PL.
  • A partir de então, PL passou a ser utilizada em diversos segmentos da atividade produtiva:

Bancos Instituições Financeiras Empresas de Transportes, etc.

  • Vamos introduzir a PL a partir de um exemplo.

2. PROGRAMAÇÃO LINEAR

Problemas de programação são modelados tal que o melhor uso de recursos escassos possa ser determinado, conhecidos os objetivos e necessidades do analista. Problemas de programação linear compõem uma sub-classe de problemas nos quais a modelagem é interiamente expressa em termos de equações lineares. Parece intuitivo que para ser possível a solução de um dado problema através da programação linear, o problema deve ser, incialmente, formulado em termos matemáticos.

A construção de um modelo de programação linear seguetrês passos básicos (Ravindran et al. , 1987):

Passo I. Identifique as variáveis desconhecidas a serem determinadas (elas são denominadas variáveis de decisão) e represente-as através de símbolos algébricos (por exemplo, x e y ou x 1 e x 2 ). Passo II. Liste todas as restrições do problema e expresse-as como equações (=) ou inequações (≤, ≥) lineares em termos das variáveis de decisão definidas no passo anterior. Passo III. Identifique o objetivo ou critério de otimização do problema, representando-o como uma função linear das variáveis de decisão. O objetivo pode ser do tipo maximizar ou minimizar.

Prof. Fogliatto Pesquisa Operacional 7

EXEMPLO : O caso Politoy

A Politoy não tem problemas no fornecimento de matéria-primas, mas só pode contar com 100 h de acabamento e 80 h de carpintaria.

A demanda semanal de trens é ilimitada, mas no máximo 40 soldados são comprados a cada semana.

A Politoy deseja maximizar seus ganhos semanais.

Formule um modelo matemático a ser utilizado nessa otimização.

x A = produção diária do incenso tipo A

x B = produção diária do incenso tipo B

x C = produção diária do incenso tipo C

Passo II - Identifique as restrições. Neste problema, as restrições dizem respeito à disponibilidade limitada dos recursos de mão-de-obra e materiais. O tipo A requer 7 horas de mão-de-obra por unidade, e sua quantidade produzida é x A. Assim, a demanda por mão-de-obra para o incenso tipo A será 7 x A horas (se considerarmos uma relação linear). Analogamente, os tipos B e C vão requerer 3 x B e 6 x C horas, respectivamente. Assim, a quantidade total de horas de trabalho demandadas na produção dos três tipos de incenso será 7 x A + 3 x B + 6 x C. Sabe- se que esta quantidade não deve axceder o total de horas disponíveis na empresa, isto é, 150 horas. Assim, a restrição relacionada a mão-de-obra será:

7 x A + 3 x B + 6 x C ≤ 150

Para obter a restrição relacionada aos materiais, utiliza-se raciocínio similar. A restrição resultante será:

4 x A + 4 x B + 5 x C ≤ 200

Para finalizar, deseja-se restringir as variáveis de decisão no domínio dos reais não-negativos (isto é, x ≥ 0). Essas restrições, uma para cada variável de decisão, são denominadas restrições de não-negatividade. Apesar de serem comuns em muitas aplicações de programação linear, não são necessárias para a utilização da metodologia.

Prof. Fogliatto Pesquisa Operacional 8

Ao desenvolver um modelo para aAo desenvolver um modelo para a PolitoyPolitoy, investigaremos, investigaremos

características comuns a todos os problemas de PLcaracterísticas comuns a todos os problemas de PL

  • VARIÁVEIS DE DECISÃO

O primeiro passo na formulação de um problema de PL é a definição das variáveis de decisão relevantes.

Estas variáveis devem descrever completamente as decisões a serem tomadas.

A Politoy deve decidir sobre:

x 1 = núm. de soldados produzidos a cada semana x 2 = núm. de trens produzidos a cada semana

Passo III - Identifique o objetivo. O objetivo é maximizar o lucro total oriundo das vendas dos produtos. Supondo que tudo o que for produzido encontre mercado consumidor, o lucro total resultante das vendas será:

z = 4 x A + 2 x B + 3 x C

Assim, o problema de mix de produção apresentado acima pode ser escrito como um modelo de programação matemática através das seguintes expressões:

Determine os valores de x A, x B e x C que maximizem:

z = 4 x A + 2 x B + 3 x C

sujeito às restrições:

7 x A + 3 x B + 6 x C ≤ 150 4 x A + 4 x B + 5 x C ≤ 200 x A ≥ 0 x B ≥ 0 x C ≥ 0.

Prof. Fogliatto Pesquisa Operacional 10

  • FUNÇÃO OBJETIVO

O que a Politoy deseja maximizar é:

(27 x 1 + 21 x 2 ) - (10 x 1 + 9 x 2 ) - (14 x 1 + 10 x 2 ) = 3 x 1 + 2 x 2

Usaremos a variável z para designar o valor assumido pela função objetivo.

Assim: Max z = 3 x 1 + 2 x 2

Os números 3 e 2 são chamados coeficientes da função objetivo. Eles indicam a contribuição de cada variável nos ganhos da empresa.

Deseja-se modelar o problema acima. O objetivo é minimizar os custos com pessoal, atendendo à demanda de pessoal da empresa.

Formulação:

Observe, inicialmente, que operadores treinados podem executar, em umdeterminado mês, um das seguinte atividades: (1) trabalhar nas máquinas, (2) realizar treinamento, ou (3) permanecer ocioso.

Já que o número de operadores trabalhando nas máquinas em cada mês é fixo, as únicas variáveis de decisão desconhecidas são o número de operadores realizando treinamento e o número de operadores ociosos em cada mês. Assim, as variáveis de decisão do problema são:

x 1 = operadores treinados realizando treinamento em Janeiro x 2 = operadores treinados ociosos em Janeiro x 3 = operadores treinados realizando treinamento em Fevereiro x 4 = operadores treinados ociosos em Fevereiro x 5 = operadores treinados realizando treinamento em Março x 6 = operadores treinados ociosos em Março

Segundo as restrições de demanda, um número suficiente de operadores treinados deve estar disponível em cada mês para trabalhar nas máquinas. Para garantir esses operadores, deve-se escrever a seguinte equação para cada mês:

Número nas máquinas + Número treinando + Número ocioso = Total de operadores disponíveis no início do mês

Prof. Fogliatto Pesquisa Operacional 11

  • RESTRIÇÕES

A medida que x 1 e x 2 crescem, o valor da função objetivo aumenta.

Mas x 1 e x 2 não podem crescer indefinidamente. Três restrições limitam seu crescimento:

  • Restrição 1 - 100 h de acabamento / semana.
  • Restrição 2 - 80 h de carpintaria / semana
  • Restrição 3 - não mais que 40 soldados / semana, devido a limitações na própria demanda.

Restrições 1 Î 3 devem ser expressas em termos das variáveis de decisão x 1 e x 2.

A restrição para o mês de Janeiro, por exemplo, será:

100 + x 1 + x 2 = 130

Em Fevereiro, o número total de operadores treinados disponível será dado pela soma dos operadores treinados disponíveis em Janeiro e aqueles que completaram seu treinamento em Janeiro. Em Janeiro, 10 x 1 trainees estão em treinamento, mas somente 7 x 1 deles completam o programa, passando a ser considerados operadores treinados. Assim, a restrição para Fevereiro é:

150 + x 3 + x 4 = 130 + 7 x 1

Analogamente, para o mês de Março:

200 + x 5 + x 6 = 130 + 7 x 1 + 7 x 3

Como a empresa necessita de 250 operadores treinados para Abril, mais uma restrição é necessária:

130 + 7 x 1 + 7 x 3 + 7 x 5 = 250

Todas as variáveis de decisão são não-negativas.

Na composição da função objetivo, os únicos custos relevantes a serem considerados dizem respeito ao programa de treinamento (custo dos trainees e dos operadores realizando o treinamento) e o custo dos operadores ociosos. A função objetivo é:

Min z = 400(10 x 1 + 10 x 3 + 10 x 5 ) + 700( x 1 + x 3 + x 5 )

  • 500( x 2 + x 4 + x 6 )

Prof. Fogliatto Pesquisa Operacional 13

Restrição 2 (determinada de maneira similar):

(total hs carpintaria/sem.) = (hs.carp./sold.).(sold. produzidos/sem.)

  • (hs.carp./trem).(trens produzidos/sem.)

(total hs carpintaria/sem.) = 1( x 1 ) + 1( x 2 ) = x 1 + x 2

A restrição 2 será dada por: x 1 + x 2 ≤ 80

Restrição 3 :

A restrição 3 é definida pela limitação do número de soldados produ- zidos por semana (devido a limitações na demanda):

x 1 ≤ 40

2.1. Modelos de Programação Linear em Formato Padrão

O formato padrão de um problema de programação linear com m restrições e n variáveis é dado por (Bazaraa et al ., 1990):

Maximizar (ou minimizar): z = c 1 x 1 + c 2 x 2 + ... + c (^) n x (^) n

sujeito a:

a 11 x 1 + a 12 x 2 + ... + a 1 n x (^) n = b 1 a 21 x 1 + a 22 x 2 + ... + a 2 n x (^) n = b 2

a (^) m 1 x 1 + a (^) m 2 x 2 + ... + a (^) mn x (^) n = b (^) m

x 1 ≥ 0, x 2 ≥ 0, …, x (^) n ≥ 0 b 1 ≥ 0, b 2 ≥ 0, …, b (^) m ≥ 0

Bazaraa, M.S., Jarvis, J.J. & Sherali, H.D. (1990). Linear Programming and Network Flows , 2 nd^ Ed.. New York: John Wiley.

M M

Prof. Fogliatto Pesquisa Operacional 14

  • RESTRIÇÕES DE SINAL

Identificam os tipos de valores que as variáveis podem assumir.

Podem ser de três tipos: ≥ 0 ≤ 0 irrestrita

Combinando a função objetivo e as restrições, chega-se a formulação matemática do problema da Politoy:

max z = 3 x 1 + 2 x 2

Sujeito a:

2 x 1 + x 2 ≤ 100

x 1 + x 2 ≤ 80

x 1 ≤ 40

x 1 , x 2 ≥ 0

Restrição de horas de acabamento

Restrição de horas de carpintaria

Restrição de demanda

Algumas características importantes do formato padrão são: ( i ) a função objetivo é do tipo maximizar ou minimizar ; ( ii ) todas as restrições são expressas como equações; ( iii ) todas as variáveis são não-negativas; e ( iv ) a constante no lado direito das restrições é não-negativa.

O formato padrão de um problema de programação linear pode ser escrito, também, em formato matricial, resultando em uma apresentação mais compacta:

Maximizar (ou minimizar): z = cx

sujeito a:

Ax = b x ≥ 0 b ≥ 0

onde A é uma matriz de dimensão ( m × n ), x é um vetor ( n × 1), b é um vetor ( m × 1) e c é um vetor transposto (1 × n ). A matriz A é normalmente denominada matriz das restrições ou matriz de coeficientes ; ela contém os coeficientes tecnológicos que compõem as restrições. O vetor x é o vetor de decisão , já que contém a lista das variáveis de decisão consideradas no problema. O vetor b é conhecido como lado direito das restrições ou vetor das necessidades ; ele indica a disponibilidade de recursos associados à cada restrição. Por fim, o vetor c é conhecido como vetor de custos do problema; ele contém os coeficientes de custo que compõem a função objetivo.

Prof. Fogliatto Pesquisa Operacional 16

Solução - Solução- Prática 1Prática 1

  • Variáveis de DecisãoVariáveis de Decisão:

 x 1 = n o^ de acres de milho a serem plantados

 x 2 = n o^ de acres de trigo a serem plantados

Nem todos os problemas de programação linear são formulados em formato padrão. No geral, as restrições tendem a aparecer no formato de inequações (≤, ≥). O algoritmo simplex , utilizado na solução dos problemas de programação linear só pode ser rodado se o problema estiver escrito em formato padrão. Assim, na maioria das aplicações, será necessário converter inequações em equações.

Para converter uma inequação em equação, dois tipos de variáveis poderão ser utilizadas: as variáveis de folga e as variáveis de excesso. Variáveis de folga são utilizadas para converter inequações do tipo ≤ em =; variáveis de excesso são utilizadas para converter inequações do tipo ≥ em =. A denominação folga e excesso pode ser facilmente compreendida através de exemplos.

Considere a restrição

x 1 ≤ 10

que indica o número máximo de operadores disponíveis para executar tarefas no mês 1. Se x 1 assumir o valor 10 no ponto ótimo (ou seja, no alor de x 1 que melhor satisfaz à função objetivo do problema), a inequação assume o formato de uma igualdade. Se x 1 assumir valores inferiores a 10, o número de operadores utilizados será menor que o número disponível; neste contexto, tem-se uma folga entre o número de operadores efetivamente utilizados no mês 1 e o número de operadores disponíveis. Assim, para transformar a inequação x 1 ≤ 10 em equação, insere-se uma variável de folga, f 1 , que poderá assumir qualquer valor não-negativo.

Prof. Fogliatto Pesquisa Operacional 17

ESPAÇO DE SOLUÇÕES E SOLUÇÃO ESPAÇO DE SOLUÇÕES E SOLUÇÃO

ÓTIMAÓTIMA

  • O espaço de soluções é formado por todos os pontos que satisfazem as restrições do problema.
  • A solução ótima em um problema de maximização corresponde ao ponto no espaço de soluções onde o valor da função objetivo é máximo.

Para reescrever o problema em formato padrão, as seguintes modificações são necessárias:

( a ) A variável x 3 deve ser substituída por x 4 – x 5 , sendo x 4 ≥ 0 e x 5 ≥ 0.

( b ) Os dois lados da última restrição devem ser multiplicados por –1; lembre que as restrições no formato padrão não admitem constantes negativas no lado direito.

( c ) Introduza uma variável de folga f 1 na primeira restrição e uma variável de excesso e 2 na segunda restrição. Os índices nessas variáveis indicam a restrição onde cada variável foi introduzida.

( d ) Aloque coeficientes de custo iguais a 0 nas variáveis de folga e excesso. Elas não fazem parte do problema em sua forma original e não devem, assim, alterar a função objetivo.

Seguindo os passos acima, chega-se ao seguinte problema em formato padrão:

Minimizar: z = 5 x 1 – 2 x 2 + 3 x 4 – 3 x 5

sujeito a: x 1 + x 2 + x 4 – x 5 + f 1 = 7 x 1 – x 2 + x 4 – x 5 – e 2 = 2

  • 3 x 1 + x 2 + 2 x 4 – 2 x 5 = 5 x 1 ≥ 0, x 2 ≥ 0, x 4 ≥ 0, x 5 ≥ 0, f 1 ≥ 0, e 2 ≥ 0

Prof. Fogliatto Pesquisa Operacional 19

Representação gráfica do problema Politoy Representação gráfica do problemaPolitoy

20

20

40

40

60

60

80

80

100

100

(2)

(4)

(3)

O espaço de soluções encontra-se hachurado. (2) - (4) denotam as restrições.

As restrições de sinal restringem o problema ao primeiro quadrante do espaço bi-dimens.

Solução ótima: (1) Desenhe o vetor z.

z

(2) Desenhe linhas ortogonais ao vetor z. Essas são as linhas de isocusto.

Ponto Ótimo: (20,60)

(3) Calcule o valor de z no ponto ótimo.

z = 3(20) + 2(60) = 180

x 1

x 2

  1. Quando um problema de programação linear apresentar mais de uma solução ótima, diz-se que tal problema possui soluções ótimas alternativas. Neste contexto, existe mais de uma solução viável para o problema apresentando o mesmo valor ótimo z o^.
  2. A solução ótima em um problema de programação linear é dita única quando não existir nenhuma outra solução ótima alternativa.
  3. Quando um problema de programação linear não possuir um solução finita (ou seja, z o^ → +∞ ou z o^ → – ∞), diz-se que o problema apresenta uma solução ilimitada.

Prof. Fogliatto Pesquisa Operacional 20

Restrições críticas ( Restrições críticas ( bindingbinding ) e não-) e não-críticascríticas

Uma restrição é crítica ( binding ) se, substituindo os valores correspondentes ao ponto ótimo na restrição, a igualdade de verifica.

Ex .: restrições (2) e (3) no gráfico anterior.

Todas as demais restrições são consideradas não-críticas.

Ex .: restrição (4) e restrições de sinal no gráfico anterior.

2.2. Problemas típicos de programação linear

Alguns modelos de programação linear são adaptáveis a uma gama de situações práticas. Esses modelos são considerados como “típicos”, por serem aplicados em diversos setores produtivos. Nesta seção, cinco famílias de problemas típicos serão consideradas:

A. Escolha do mix de produção B. Escolha da mistura para rações C. Planejamento dinâmico da produção D. Distribuição de produtos através de uma rede de transportes

Outras famílias de problemas típicos podem ser encontradas nos slides 31 a 60 desta apostila. Os exemplos que se seguem foram adaptados de Wagner (1985).

Wagner, H.M. (1985). Pesquisa Operacional , 2a^ Ed.. São Paulo: Prentice-Hall do Brasil.