A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Análise e Síntese de Algoritmos

Apresentações semelhantes


Apresentação em tema: "Análise e Síntese de Algoritmos"— Transcrição da apresentação:

1 Análise e Síntese de Algoritmos
Programação Linear CLRS, Cap. 29

2 Análise e Síntese de Algoritmos
Contexto Algoritmos em Grafos (CLRS, Cap ) ... Fluxos máximos em grafos (CLRS, Cap. 26) Programação Linear (CLRS, Cap. 29) Fluxos de Custo Mínimo (S, Cap. 22) Programação Dinâmica (CLRS, Cap. 15) Algoritmos Greedy (CLRS, Cap. 16) Emparelhamento de Caracteres (CLRS, Cap. 32) Completude NP (CLRS, Cap. 34) Algoritmos de Aproximação (CLRS, Cap. 35) 2003/2004 Análise e Síntese de Algoritmos

3 Análise e Síntese de Algoritmos
Resumo Motivação Formas Standard e Slack Formulação de Problemas O Algoritmo Simplex Soluções Exequíveis Iniciais Dualidade 2003/2004 Análise e Síntese de Algoritmos

4 Análise e Síntese de Algoritmos
Exemplo Queremos ganhar pelo menos 50% dos votos ( urbanos, suburbanos e rurais) Entrada representa o número de votos (em milhares) ganhos por cada 1000 Euros gastos em campanhas 2003/2004 Análise e Síntese de Algoritmos

5 Análise e Síntese de Algoritmos
Exemplo x1 = estradas; x2 = droga; x3 = subsídios; x4 = Imposto 2003/2004 Análise e Síntese de Algoritmos

6 Análise e Síntese de Algoritmos
Formulação Geral Programação Linear (LP): Optimizar (minimizar ou maximizar) função linear sujeita a conjunto de restrições lineares Função linear: Restrições lineares: 2003/2004 Análise e Síntese de Algoritmos

7 Análise e Síntese de Algoritmos
Perspectiva sobre LP Qualquer solução do conjunto de restrições designa-se por solução exequível Cada solução exequível corresponde a um valor da função objectivo (ou de custo) O conjunto de soluções exequíveis é designado por região exequível A região exequível é um conjunto convexo no espaço n-dimensional Conjunto convexo S: qualquer ponto de segmento que liga dois pontos em S está também em S S é designado por simplex Exemplo 2003/2004 Análise e Síntese de Algoritmos

8 Análise e Síntese de Algoritmos
Perspectiva sobre LP Utilização de representações canónicas: Formas standard e slack Algoritmos: Algoritmo Simplex Exponencial no pior caso; eficiente na prática e muito utilizado Algoritmo da Elipsóide Polinomial; normalmente ineficiente Métodos de Ponto Interior Polinomiais; eficientes na prática, competitivos com Simplex 2003/2004 Análise e Síntese de Algoritmos

9 Análise e Síntese de Algoritmos
Forma Standard função objectivo restrições Todos os valores cj, aij, bi são valores reais Representação matricial: Em que A = (aij), b = (bi) e c = (cj) e x = (xj) 2003/2004 Análise e Síntese de Algoritmos

10 Análise e Síntese de Algoritmos
Forma Standard Noções a reter: Solução exequível Solução não exequível Valor da função objectivo: valor objectivo Valor máximo/mínimo: valor objectivo óptimo LP sem soluções exequíveis diz-se não exequível; caso contrário diz-se exequível LP exequível, mas sem solução óptima, diz-se não limitado 2003/2004 Análise e Síntese de Algoritmos

11 Conversão para Forma Standard
Problemas: Minimização em vez de maximização Variáveis sem restrição de serem não negativas Restrições com igualdade Restricões com  2003/2004 Análise e Síntese de Algoritmos

12 Conversão para Forma Standard
Soluções: Minimização vs. Maximização: Multiplicar coeficientes por -1 Variáveis sem restrição de serem não negativas: Substituir xi por duas variáveis xi1 e por xi2, e multiplicar coeficientes de xi2 por –1 Restrições com igualdade: Introduzir duas restrições, uma com  e outra com  Restrições com  : Multiplicar restrição por –1 Exemplo 2003/2004 Análise e Síntese de Algoritmos

13 Conversão para Forma Slack
Objectivo é trabalhar apenas com igualdades Todas as restrições, excepto as restrições das variáveis serem não negativas, são igualdades Para cada restrição introduzir uma nova variável s s: variável de slack Conversão de forma standard para forma slack: Exemplo 2003/2004 Análise e Síntese de Algoritmos

14 Análise e Síntese de Algoritmos
Forma Slack Nas expressões: Variáveis expressas em função de outras variáveis designam-se por variáveis básicas As variáveis que definem as variáveis básicas designam-se por variáveis não-básicas Definir: Exemplo 2003/2004 Análise e Síntese de Algoritmos

15 Análise e Síntese de Algoritmos
Forma Slack N: Conjunto de índices das variáveis não básicas, |N| = n B: Conjunto de índices das variáveis básicas, |B| = m Obs: Forma slack descrita por: (N, B, A, b, c, v) v: constante na função objectivo 2003/2004 Análise e Síntese de Algoritmos

16 Formulação de Problemas de LP
Fluxos de Custo Mínimo: Caminhos Mais Curtos Fluxo Máximo ... 2003/2004 Análise e Síntese de Algoritmos

17 Análise e Síntese de Algoritmos
Outras Formulações Caminhos Mais Curtos Entre s e t: Fluxo Máximo: 2003/2004 Análise e Síntese de Algoritmos

18 Análise e Síntese de Algoritmos
O Algoritmo Simplex Definições Pivots Exemplo O algoritmo simplex Soluções exequíveis iniciais Dualidade 2003/2004 Análise e Síntese de Algoritmos

19 Análise e Síntese de Algoritmos
Forma Slack Nas expressões: Variáveis expressas em função de outras variáveis designam-se por variáveis básicas As variáveis que definem as variáveis básicas designam-se por variáveis não-básicas Definir: Forma slack descrita por: (N, B, A, b, c, v) N: varáveis não básicas; |N| = n B: variáveis básicas; |B| = m v: constante na função objectivo 2003/2004 Análise e Síntese de Algoritmos

20 Análise e Síntese de Algoritmos
Pivots Exemplo Escolher variável não básica xe para passar a básica Variável de entrada Escolher variável básica xl para passar a não básica Variável de saída Calcular nova forma slack do problema 2003/2004 Análise e Síntese de Algoritmos

21 Análise e Síntese de Algoritmos
O Algoritmo Simplex Calcular forma slack inicial Para a qual solução básica inicial é exequível Caso contrário reporta problema não exequível (retorna “unfeasible”) e termina Enquanto existir ce > 0 (i.e. valor de z pode aumentar) xe define variável de entrada (i.e. nova variável básica) Seleccionar xl xl corresponde a linha i que minimiza bi / aie, para aie > 0 Se aie < 0 para todo o i, retornar ‘ unbounded’ Aplicar pivoting com (N, B, A, b, c, v, l, e) 2003/2004 Análise e Síntese de Algoritmos

22 Análise e Síntese de Algoritmos
O Algoritmo Simplex Para valores i em B Atribuir valor bi Caso contrário atribuir valor 0 i.e. variáveis em N Exemplos 2003/2004 Análise e Síntese de Algoritmos

23 Solução Exequível Inicial
Um programa linear pode ser exequível, mas solução básica inicial pode não ser exequível Exemplo 2003/2004 Análise e Síntese de Algoritmos

24 Solução Exequível Inicial
Seja L um programa linear na forma standard, e seja Laux definido da forma seguinte: Então L é exequível se e só o valor objectivo óptimo de Laux é 0 Se L tem solução, então Laux tem solução com x0 = 0, o valor óptimo Se o valor óptimo de x0 é 0, então solução é solução para L 2003/2004 Análise e Síntese de Algoritmos

25 Solução Exequível Inicial
A partir de L construir Laux se solução básica inicial não for exequível Determinar indíce l com menor bi Aplicar pivot com e = 0 A solução básica calculada é exequível para Laux Aplicar passos do Simplex para calcular solução óptima Se solução óptima verifica x0 = 0 retornar solução calculada, sem x0 Caso contrário L não é exequível Exemplo 2003/2004 Análise e Síntese de Algoritmos

26 Solução Exequível Inicial
Após a primeira aplicação de pivot, a solução básica é exequível para Laux Prova 2003/2004 Análise e Síntese de Algoritmos

27 Simplex: Resultados Formais
Dado um programa linear (A, b, c): Se o algoritmo Simplex retorna uma solução, a solução é exequível Se o algoritmo Simplex retorna ‘unbounded’, o programa é não limitado Dado um programa linear (A, b, c) na forma standard, e B um conjunto de variáveis básicas, a forma slack é única 2003/2004 Análise e Síntese de Algoritmos

28 Simplex: Resultados Formais
Variação do valor da função objectivo após pivoting: Valor da função objectivo não pode diminuir Variável escolhida tem coeficiente positivo Valor da variável é não negativo, pelo que novo valor da função de custo não pode diminuir Valor da função objectivo pode não aumentar Degenerescência Mas é sempre possível assegurar que algoritmo termina 2003/2004 Análise e Síntese de Algoritmos

29 Simplex: Resultados Formais
O Simplex está em ciclo se existem formas slack idênticas para duas iterações do algoritmo Se o algoritmo Simplex não termina após iterações, então o algoritmo está em ciclo Cada conjunto B determina unicamente a forma slack Existem n+m variáveis e |B| = m Número de modos de escolher B: Número de formas slack distintas: Se algoritmo executar mais de iterações, então está em ciclo Eliminar ciclos: Regra de Bland: desempates na escolha de variáveis através da escolha da variável com o menor indíce 2003/2004 Análise e Síntese de Algoritmos

30 Análise e Síntese de Algoritmos
Dualidade Conceito essencial em optimização Normalmente associado com existência de algoritmos polinomiais E.g., fluxo máximo corte mínimo Programa linear dual: Programa primal: formulação original Exemplo 2003/2004 Análise e Síntese de Algoritmos

31 Dualidade Fraca em Programação Linear
Seja x uma qualquer solução exequível do programa primal e seja y uma qualquer solução exequível do programa dual. Nestas condições: Prova 2003/2004 Análise e Síntese de Algoritmos

32 Dualidade em Programação Linear
Seja x uma qualquer solução pelo algoritmo Simplex, e sejam N e B os conjuntos de variáveis para a forma slack final. Seja c’ o vector dos coeficientes da forma slack final e seja yi = -cn+i para (n+i)N; 0 caso contrário. Nestas condições: x é solução óptima para o programa primal y é a solução óptima para o programa dual e, Exemplo 2003/2004 Análise e Síntese de Algoritmos

33 Teorema Fundamental da Programação Linear
Qualquer programa linear na forma standard: Ou tem solução óptima com valor finito, Ou não é exequível, Ou não é limitado. Se L não é exequível, o algoritmo Simplex retorna “infeasible” Se L não é limitado, o algoritmo Simplex retorna “unbounded” Caso contrário, o algoritmo Simplex retorna uma solução óptima com um valor objectivo finito 2003/2004 Análise e Síntese de Algoritmos

34 Análise e Síntese de Algoritmos
Exemplos Adicionais Algoritmo Simplex Solução exequível inicial Dualidade Fluxo máximo com o Simplex 2003/2004 Análise e Síntese de Algoritmos

35 Análise e Síntese de Algoritmos
Revisão Programação Linear Algoritmo Simplex A seguir: Fluxos de Custo Mínimo (S, Cap. 22) 2003/2004 Análise e Síntese de Algoritmos


Carregar ppt "Análise e Síntese de Algoritmos"

Apresentações semelhantes


Anúncios Google