Investigação Operacional Métodos de Programação Linear: Gráfica, Simplex (Mestrado) Engenharia Industrial http://dps.uminho.pt/pessoais/zan.

Slides:



Advertisements
Apresentações semelhantes
Método Simplex Resolução Algébrica
Advertisements

Copiado do site Departamento Matemática da Universidade de Aveiron
Amintas engenharia.
INVESTIGAÇÃO OPERACIONAL
INVESTIGAÇÃO OPERACIONAL
Teorema Fundamental da Programação Linear
Prof. M.Sc. Fábio Francisco da Costa Fontes Outubro
Problemas de Forma Não-padrão
Programação Linear Método Simplex
Medida do Tempo de Execução de um Programa
SISTEMAS LINEARES Métodos Diretos: Método de Eliminação de Gauss
SISTEMAS LINEARES I Prof. Marlon.
EQUAÇÕES POLINOMIAIS Prof. Marlon.
SISTEMAS LINEARES II Prof. Marlon.
Profa. Úrsula Lisbôa Fernandes Ribeiro 28 de agosto de 2008
SIMPLEX ANÁLISE COMPLETA ANDERSON BESTETTI 1, EDUARDO RIGHES 1, EVERTON FONTOURA 2, GUILHERME LAZZARI 3, RODRIGO SCHRAMM 3, ROGERIO MARTINS 4 1 {anderson.bestetti,
SISTEMAS LINEARES ( AULA 1 ).
Introdução aos Sistemas de Controle
3 - Equações Lineares de Segunda Ordem
Introdução a Computação e Cálculo Numérico
Programação Linear Universidade Federal de Itajubá – UNIFEI
Matemática para Economia III
Prof. Guilherme Amorim 14/11/2013
Professora: Ana Cristina G. e Silva Natal-RN
Resolução de sistemas lineares Métodos Numéricos para Engenharia I
Programação Linear Rosa Canelas Janeiro 2008.
Capítulo 10 Funções polinomiais slide 1
Solução Básica Factível e Método Simplex Introdução ao Método Simplex Fase I e Fase II.
Problemas de Fluxo Máximo
Pesquisa Operacional Profa. Leila Jane Brum Lage Sena Guimarães
Aula T06 – BCC202 Análise de Algoritmos (Parte 4) Túlio Toffolo
Instituto de Aplicação Fernando Rodrigues da Silveira (CAp/UERJ)
Aceite para publicação em 15 de Março de 2010
Sistema de equações lineares
Amintas engenharia.
1 - Equações Diferenciais Ordinárias
Campus de Caraguatatuba Aula 12: Sistemas de Equações Lineares (2)
MATEMÁTICA APLICADA REVISÃO BÁSICA.
PROGRAMAÇÃO MATEMÁTICA MÉTODO SIMPLEX
Programação Linear Universidade Federal de Itajubá – UNIFEI
SISTEMAS LINEARES Prof. Moacir.
Espaços e Subespaços Vetoriais
Fontes de Erros Aula 1 Introdução; Erros em processos numéricos;
Introdução Prof. Antonio Carlos Coelho
Otimização Numérica de Processos
Capitulo 5: Simplex Voltando ao exemplo da confecção da D. Maria, e modificando um pouco os valores apenas para facilitar nossos cálculos e o entendimento,
Capitulo 5: Simplex Voltando ao exemplo da confecção da D. Maria, e modificando um pouco os valores apenas para facilitar nossos cálculos e o entendimento,
Capitulo 8: Dualidade O que é um modelo Dual?
Problemas de Forma Não-Padrão
Métodos de Otimização CIV 7031
Análise e Síntese de Algoritmos
PROGRAMAÇÃO LINEAR.
Prof. Geraldo Nunes Silva
Potenciação an = a . a . a a (a ≠ 0) n fatores onde: a: base
Disciplina Engenharia da Qualidade II
FEAMIG – Faculdade de Engenharia de Minas Gerais
CÁLCULO NUMÉRICO Aula 5 – Sistema de Equações lineares.
Metodologia da Pesquisa em Ensino de Ciências I
Prof. Disney Douglas Sistemas de Equações Lineares e Operações Elementares.
Algoritmo de Transportes Objecto de Aprendizagem Manuel Pina MarquesDEIG
Pesquisa Operacional:
Como ir do tableau da base (j 1,...j s-1,j s, j s+1....j m ) para o da base (j 1,...j s-1,k, j s+1....j m ) lembrando que : na coluna associada à x ji.
Professor: Cezar Augusto Pereira dos Santos
PROFESSOR: CÉZAR AUGUSTO PEREIRA DOS SANTOS 1.
Unidade 3 – sistemas lineares
Programação Linear ADSA António Câmara.
MATEMÁTICA E SUAS TECNOLOGIAS
Profª Juliana Schivani
O Método Simplex Prof. Gustavo Peixoto Silva Departamento de Computação Univ. Federal de Ouro Preto.
              Investigação Operacional Métodos de Programação Linear: Big M, 2 Fases, S Dual (Mestrado) Engenharia Industrial
Transcrição da apresentação:

              Investigação Operacional Métodos de Programação Linear: Gráfica, Simplex (Mestrado) Engenharia Industrial http://dps.uminho.pt/pessoais/zan               Universidade do Minho - Escola de Engenharia Departamento de Produção e Sistemas                        Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Representação Gráfica Considere o seguinte problema de PL: duas variáveis, permite a representação gráfica do problema Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Representação Gráfica Não negatividade Uma restrição Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Representação Gráfica Duas restrições Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Representação Gráfica Conjunto de restrições Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Representação Gráfica Espaço de soluções Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Representação Gráfica Função objectivo: família de rectas Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Representação Gráfica Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Soluções de modelos de PL Conjunto das soluções admissíveis pode ser Vazio Não vazio (Limitado ou Ilimitado) Um modelo de PL pode Ser impossível Ser ilimitado Ter soluções óptimas alternativas* Ter uma única solução óptima Os dois primeiros casos, normalmente, indicam que o modelo de PL está mal formulado ou houve erros na sua introdução, já que não é frequente existirem problemas de decisão "reais" sem alternativas ou com alternativas tão boas quanto desejarmos. * Tipicamente, o software para PL só identifica uma solução óptima. Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Soluções de modelos de PL Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Investigação Operacional Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Investigação Operacional Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Investigação Operacional Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Investigação Operacional Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Algoritmos para PL Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Algoritmos para PL Se tiver curiosidade em ter uma ideia do que é isto de teoria da complexidade, uma excelente introdução para leigos é feita em J. Buescu, “Quem quer ser milionário?”, em “O Mistério do Bilhete de Identidade e outras histórias – Crónicas das fronteiras da Ciência”, Gradiva, 4ª edição, 2002. Já agora, o problema de PL é um problema do tipo P (provado em 1979 devido ao método do Elipsóide) mas o algoritmo Simplex não é polinomial. Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Forma do modelo de PL Forma normal /estandardizada / padrão Maximização; Todas as restrições são equações; Todas as variáveis são restringidas a serem não negativas. Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Considere um problema de maximização de lucro relacionado com duas actividades e três recursos. Na tabela seguinte são dados os consumos unitários de cada recurso (A, B e C) por actividade (1 e 2), a disponibilidade de cada recurso e o lucro unitário de cada actividade. Formule o problema através de um modelo de PL.  Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Temos 3 equações e 5 incógnitas (sistema de equações indeterminado). Se fixarmos 2 variáveis a zero, temos 3 equações a 3 incógnitas e podemos determinar a solução desse sistema. Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Problema geral: n variáveis, m equações. Qualquer conjunto de m variáveis cujo sistema de equações tenha solução designa-se por base (exemplo, x3, x4, x5). Dada uma base é fácil determinar a solução lhe está associada, basta fixar a 0 as variáveis que não fazem parte da base (variáveis não básicas, no exemplo dado x1 e x2) e resolver o sistema de equações para as restantes (variáveis básicas) - obtendo-se uma solução básica ex. x1=0, x2=0, x3=720, x4=880, x5=160 Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex A cada ponto extremo corresponde uma solução básica admissível (sem coordenadas negativas) e vice-versa. Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Uma solução básica pode ser admissível ou não admissível (no exemplo, A,B,G,F,I correspondem a bases admissíveis e C,H,E,D a bases não admissíveis). Para saber se a base é admissível ou não basta ver se as restrições de não negatividade são satisfeitas. Já tínhamos chegado à conclusão de que se existe uma solução óptima finita, então há, pelo menos, um ponto extremo que é solução óptima. A cada ponto extremo está associada uma base admissível... ...então basta determinar todas as soluções básicas e o seu valor (na função objectivo) e ver qual é a solução que tem maior valor (problema de maximização). Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Determinar a solução associada a uma base é fácil: resolver um sistema de m equações a m incógnitas (método de Gauss-Jordan). Só há um "pequeno" problema, o número de bases pode atingir Por exemplo, para um problema com 100 variáveis e 10 restrições esse número é 1.73e+13. Com a folha de cálculo Excel (Microsoft Office 2003) já não se consegue determinar esse valor para um problema com 2000 variáveis e 250 restrições. O número de combinações é gigantesco para um problema pequeno! Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Algoritmo Simplex: começa-se numa base e vê-se se ela corresponde à solução óptima (temos maneira de fazer isso?). Se for, temos a solução óptima. Se não for, passamos para outra base (como?) que pareça promissora (e como se vê isso?) e repetimos o procedimento. Não parece grande ideia, dado o número de bases ser tão grande... De facto, a análise (com base na teoria da complexidade) do comportamento do algoritmo simplex no pior caso não é muito simpática para este algoritmo (já foram construídos propositadamente problemas em que o simplex tinha de testar todas as bases!). Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex A boa notícia é que, em problemas reais, o comportamento do algoritmo é muitíssimo melhor do que a análise para o pior caso da teoria da complexidade. O algoritmo Simplex (na verdade, os algoritmos da classe de métodos Simplex, porque, na prática, há diferenças consideráveis entre os diferentes algoritmos que se baseiam nestas ideias) continua a ser largamente o mais utilizado na resolução de problemas de PL reais. O Simplex é um exemplo clássico de como, por vezes, a análise teórica do pior caso, não é adequada à classificação prática dos algoritmos. Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex No seguinte problema qual é a base que tem uma solução mais fácil de calcular? Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex A que solução corresponde o quadro simplex apresentado? função objectivo: z-10x1-9x2-0x3-0x4-0x5=0 Os valores que aparecem nesta linha são denominados por custos reduzidos. A que solução corresponde o quadro simplex apresentado? Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Um quadro simplex que corresponda a uma solução básica admissível (primal) tem as seguintes características: Uma coluna correspondente a uma variável básica tem um 1 na linha associada à variável básica e zeros em todas as outras linhas (exemplo, a coluna de x5 tem um 1 na terceira linha - associada à variável x5 e zeros nas primeira e segunda linhas). Esta característica implica que as colunas das variáveis básicas formam uma matriz identidade. Na linha da função objectivo, todas as variáveis básicas têm coeficiente 0. Os termos independentes são sempre maiores ou iguais a zero (manter válida a não-negatividade). Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex A cada quadro simplex corresponde uma solução básica admissível imediatamente perceptível através das variáveis básicas e da coluna dos termos independentes. No exemplo, x3=200, x4=230, x5=70. A solução associada ao quadro simplex é óptima? Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Não! Se se aumentar o valor de x1 ou x2 o valor de z aumenta (e pretende-se maximizar o valor de z). O que o coeficiente -10 de x1 (linha da função objectivo) significa é que por cada unidade de aumento de x1 o valor da função objectivo, aumenta 10 unidades (o sinal negativo é devido à mudança de membro efectuada inicialmente). Em cada iteração do simplex passa-se (da base actual) para uma base adjacente (que se obtém da actual passando uma variável não básica a básica e uma variável básica a não básica - o número de variáveis básicas é constante). Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Não! Se se aumentar o valor de x1 ou x2 o valor de z aumenta (e pretende-se maximizar o valor de z). O que o coeficiente -10 de x1 (linha da função objectivo) significa é que por cada unidade de aumento de x1 o valor da função objectivo, aumenta 10 unidades (o sinal negativo é devido à mudança de membro efectuada inicialmente). Em cada iteração do simplex passa-se (da base actual) para uma base adjacente (que se obtém da actual passando uma variável não básica a básica e uma variável básica a não básica - o número de variáveis básicas é constante). Qual a variável mais promissora para entrar na base? Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex A variável mais promissora é x1 (aumento de 10 unidades na função objectivo por unidade de aumento de x1, para x2 esse valor é 9 o que é pior já que se está a maximizar). Isto é uma decisão gulosa, míope… não garante que seja a melhor decisão. E se houver empate? (custos reduzidos iguais) Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Sendo assim x1 entra na base (passará a tomar um valor positivo)! Qual a variável que sai base? Como o aumento do valor de x1 aumenta o valor da função objectivo, queremos aumentar o mais possível o seu valor. Qual é o limite? Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex • Tem de haver um limite (ou melhor, se não houver um limite o problema é ilimitado, mas não é esse o caso do exemplo). O que acontece às outras variáveis quando se aumenta o valor de x1 A variável x2 continua não básica (logo com valor igual a 0). As outras relacionam-se com x1 através das restrições. Qual a variável que deve sair da base? Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex Coluna pivot Universidade do Minho Investigação Operacional 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Coluna pivot Universidade do Minho Investigação Operacional 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Coluna pivot A variável que sai da base é x5, a primeira que se anula (logo passa a não básica) quando se tenta aumentar x1 o mais possível. A razão entre o valor da coluna dos termos independentes e o valor da coluna da variável que vai entrar na base para todas as linhas (cujo valor seja positivo) e escolher a menor. Linha pivot Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Coluna pivot Linha pivot (Na resolução primal) O elemento pivot nunca pode ser negativo. Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Se houver empate na saída? Coluna pivot Se houver empate na saída? escolha indiferente: algoritmo pode entrar em ciclo escolhe-se a razão de maior divisor: sai x3 Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Como obter o quadro correspondente à nova base? Cada linha corresponde a uma equação de um sistema, logo pode-se multiplicar toda a linha por uma constante pode-se somar duas linhas, substituindo uma delas pelo resultado da soma, que o sistema de equações não se altera (só se altera a sua representação). No exemplo, a linha 3 (L3) é a linha pivot, fazendo as operações L3 / 2 (para a linha L3) 5L3 + L4 (para a linha L4) -2L3+L2 (para a linha L2) -(5/2)L3+L1 (para a linha L1) obtém-se o quadro simplex correspondente à nova base Coluna pivot Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Para experimentar e/ou verificar cálculos: http://www.tutor.ms.unimelb.edu.au/simplex_intro/index.html Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

PROGRAMAÇÃO LINEAR - PL Fizemos uma iteração do algoritmo simplex primal: Teste de optimalidade (a solução básica actual é óptima se todos os coeficientes da função objectivo (custos reduzidos) são não negativos). Se a solução é óptima, parar. Se não, prosseguir com o passo 2. Decidir qual a variável que entra na base (é aquela que tem o coeficiente mais negativo na linha da função objectivo - em caso de empate escolher a variável que “crescerá mais”. Se persistir o empate, escolher arbitrariamente). Prosseguir com o passo 3. Decidir qual a variável básica que sai da base (é aquela que tem a razão do critério de saída mais pequena - excluindo as razões negativas; em caso de empate, escolher o maior elemento pivot. Se persistir o empate, escolher arbitrariamente). Se não houver nenhuma razão estritamente positiva o problema é ilimitado, parar. Se não, prosseguir para 4. Actualizar o quadro simplex para a base actual e passar à iteração seguinte (passo 1). Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Universidade do Minho Investigação Operacional 2006 José António Oliveira – zan@dps.uminho.pt

Simplex O quadro simplex obtido em qualquer iteração corresponde sempre a uma solução básica admissível e a um ponto extremo. • Quadro óptimo do exemplo (após duas iterações). Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Soluções alternativas O que são? Como se identifica a sua existência? Custo(s) reduzido(s) NULO(s) nas variáveis não básicas. Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Degenerescência… O algoritmo simplex pode entrar em ciclo (se não forem tomadas as devidas previdências) por causa da existência de soluções básicas degeneradas (soluções em que há variáveis básicas com valor zero). A causa é a presença de restrições redundantes (que não são fáceis de detectar analiticamente...). De uma iteração para a seguinte, pode acontecer que a base seja diferente, mas o valor das variáveis de decisão seja o mesmo (uma básica com valor zero sai da base e uma não básica entre na base com valor zero). Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Um só ponto extremo e duas bases! Degenerescência… Na prática, o software actual tem implementadas formas de lidar com a degenerescência (através de regras mais sofisticadas do que escolher arbitrariamente a variável que entra na base em caso de empate). De qualquer maneira, em problemas muito degenerados, este fenómeno pode abrandar significativamente a execução do método. Um só ponto extremo e duas bases! Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Como obter um quadro simplex válido para um problema que tenha restrições de igualdade e/ou de maior ou igual? Note-se que, se o problema só tiver restrições de "menor ou igual", temos sempre uma base "à mão": a constituída pelas variáveis de folga - como no exemplo anterior. O ponto de solução nula pertence ao espaço de soluções válidas, e forma-se a base com as variáveis de folga. Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt

Simplex Modelos (a) e (b) são equivalentes. O modelo (b) está na forma estandardizada e inclui uma variável de excesso (primeira restrição) e uma variável de folga (segunda restrição). Para a segunda linha é fácil encontrar uma variável básica inicial (tem coeficiente 1 na própria linha e 0 nas restantes). Qual a variável básica a associar à primeira linha? Não é claro. Não há nenhuma variável que tenha coeficiente 1 na própria linha e 0 nas restantes. Modifica-se o modelo por inclusão de variáveis artificiais ->vê-se isso na próxima aula Universidade do Minho 2006 Investigação Operacional José António Oliveira – zan@dps.uminho.pt