Escolar Documentos
Profissional Documentos
Cultura Documentos
• Quadro óptimo: não há cj-zj > 0.. logo continuar até cj-zj ≤ 0; ANÁLISE DE SENSIBILIDADE
• Variavel básica que sai: Coluna pivot: variável não básica com maior cj-zj positivo
Se os coeficientes da única coluna candidata são ≤0, o primal não tem óptimo finito (intervalos de variação)
• Variavel que entra: Linha pivot: variável com menor razão termo independente / xp
Em caso de empate escolher linha de menor índice (temos uma solução degenerada) • Variável não básica Xi: b4 -> z4 = valor zj correspondente ao k(=4) – c4 <= 0
• Matriz das variáveis básicas tem de formar a matriz identidade Para manter a base óptima, custo reduzido tem de permanecer ≤0
• Coeficientes das variáveis básicas têm de ser nulos • Variável básica (em linha) – Custos Unitários- Xi:
• Se existem variáveis não básicas com custo reduzido nulo há solução óptima alternativa • MAX:
Limite inferior
• FORMULAR PL:
Se todo o xkj ≤ 0 -> -∞
• Min/Max (x) (unidades)
Se xkj > 0 -> Max j {cj-zj / xkj }
s.a: … (identificar sobre o que; dia/mês)
Limite superior
variáveis >= 0
Se todo o xkj 0 ≥ -> +∞
Exemplo: xj: numero de fontes do tipo FEj, a utilizar na situação de emergência;
Se xkj < 0 -> min j {cj-zj / xkj }
j=1,2,3,4
• Variável básica – Custos Unitários- Xi:
ALGORITMO DUAL DO SIMPLEX • MIN:
Limite inferior
Se todo o xkj ≥ 0 -> -∞
• Quadro óptimo: não existem variáveis básicas negativas, ou seja, se algum dos valores dos termos
Se xkj < 0 -> Max j { - (zj-cj) / xkj }
independentes for negativo temos de fazer dual..
Limite superior
• Variável básica que sai: Linha pivot: maior negativo em b (termos independentes)
Se todo o xkj 0 ≤ -> +∞
• Variavel que entra: Coluna pivot: variável com menor razão (cj-zj) / Xi , apenas para Xi < 0
Se xkj > 0 -> min j { - (zj-cj) / xkj }
Se não existe nenhum valor ≤0 nessa linha, o dual não tem óptimo finito
-1 • Termo independente de uma restrição: considerar B e b’ (em coluna; se a rest for ≥ x (-1) )
• Solução dual complementar: Y* = Cb x B
Limite inferior
• Teorema fundamental da dualidade
Se todo o bik ≤ 0 -> -∞
• Para problemas primal-dual verifica-se que: ambos têm soluções óptimas X* Y* e os valores Se bik > 0 -> Max i { - xBi* / bik }
óptimos da fo coincidem z* = w*(um tem óptimo finito o outro também tem óptimo finito) Limite superior
• Se um dos problemas não tem óptimo finito o outro é impossível Se todo o bik 0 ≥ -> +∞
• Se um dos problemas for impossível o outro pode ser impossível ou não ter óptimo finito Se bik < 0 -> min i { - xBi* / bik }
• Complementaridade de slacks
Sistema de equações com as restrições do primal (variáveis básicas = 0) ANÁLISE PÓS-OPTIMAL
V.decisão ≠0 num dos problemas implica v.folga =0 no outro
V.folga >0 num dos problemas implica v.decisão =0 no outro (nas restrições) • Alteração de um termo independente
Sistema de equações com as restrições do dual (variáveis folga = 0) Apenas é alterada a coluna dos termos independentes
-1
• À medida que fazemos por o SBNAP e SBNAD Se Xb* = Xb*(|b) + (B x ∆b (∆b = [bnovo] – [bantigo]) ) ≥0 a nova solução também é óptima,
• É possível calcular a solução óptima do dual através do quadro óptimo do primal senão aplicar dual linha sair menor, coluna entra menor positivo; se não entrar variável é
Multiplicar por -1 as variáveis que correspondem às variáveis de folga do dual impossivel
• Alteração de um coeficiente da f.o. Subtrair a cada coluna da matriz de custos o valor mínimo dessa coluna
Se o coeficiente for de uma variável não básica Subtrair a cada linha da matriz de custos o valor mínimo dessa linha
É alterado apenas o custo reduzido dessa variável Calcular nº mínimo de traços que cobrem todos os zeros da matriz até ser = n (solução óptima). Se
Se o custo reduzido ≤0 a solução mantém-se e não altera a f.o, senão simplex for ≠ n reduzir a matriz de custos:
Se o coeficiente for de uma variável básica Determinar o menor valor não riscado θ
É alterada toda a linha de custos reduzidos Subtrair θ aos valores não riscados, somar θ aos valores riscados duplamente, aos q têm
Substituir no cj e no cb; actualizar zj e cj-zj; se cj-zj (cust reduzido) ≤0 a solução mantém-se um risco não fazer nada
mas altera a f.o, senão simplex Considerar todos os zeros livres e contar novamente o nº mínimo de traços
• Alteração de um coeficiente da matriz de restrições Enquadrar um zero por linha/coluna e ver solução óptima na matriz de custos inicial
Se o coeficiente for de uma variável não básica • FORMULAR (PLI):
É alterada apenas o custo reduzido(cj-zj) correspondente a essa variável Min/Max = soma de todos os valores do quadro
Novo custo reduzido = custo reduzido + ∆coef – (Cb x b’ x [∆coef]) Soma x11 + x12 .. x61 + x x62 .. = 1
Se o coeficiente for de uma variável básica Soma x11 + x21 .. x15 + x25 .. = 1
Existe alteração nos valores da matriz B e consequentemente B
-1 xij 1 – origem no nó i para o destino j
• Introdução de uma nova variável (1) ou restrição (2) 0 caso contrario
(1) Se o custo reduzido ≤0 a solução mantém-se óptima, senão aplicar dual
(2) Se é verificada a restrição a solução mantém-se, senão resolver novo quadro PROBLEMAS DE REDES
• Se oferta > (<) procura, adicionar destino (origem) fictício • Seleccionar um nó arbitrariamente e ligá-lo ao nó mais próximo (menor custo)
• Método do canto noroeste • Seleccionar um nó isolado mais próximo de um nó já ligado e ligar estes dois (até existir uma
V.básica escolhida é sempre a do canto superior esquerdo (não liga aos custos) árvore de suporte)
• Método do mínimo da matriz de custos Em quadro
V.básica escolhida é sempre a de menor custo
• Método de Vogel ALGORITMO DE KRUSKAL árvore mínima de suporte
Calcular as diferenças entre os dois menores custos de cada linhas e coluna
Seleccionar a maior das diferenças • Ordenar as arestas por ordem crescente de custo formando uma lista
V.básica escolhida é sempre a de menor custo da linha/coluna com a maior diferença entre os dois • 1º aresta da lista: se originar ciclo tirar da lista e seleccionar outra, caso contrário adicioná-la
menores custos dessa linha/coluna
• Método de Dantzig ALGORITMO DE DIJKSTRA caminho mais curto, fazer a tabela com todas as origens e para cada
iteração ver se os custos melhoram até todos terem melhorado
Calcular a solução dual (considerar u1=0 e calcular os ui + vj = cj)
Calcular os custos reduzidos das variáveis não básicas (ui + vj - cj) ALGORITMO DE FORD-FULKERSON do fluxo máximo
Verificar se existem custos reduzidos positivos, se não houver: solução óptima
Calcular o nº de variáveis básicas m-n+1 (m = nº origens, n = nº destinos) • Fluxo inicial; actualizar capacidades utilizadas dos arcos aumentando-lhes o fluxo
Variável que entra: Max {custos reduzidos positivos} • Det caminh não saturado entre o nó saída/entrada, se n existir a solução é óptima; somar fluxo
Variável que sai: Min {Xij que pertence ao caminho dos θ com sinal negativo} • O corte mínimo separa o nó de entrada e de saída atravessando arcos de entrada para a saída
• Técnica de perturbação saturados e arcos orientados da saída para a entrada com fluxo nulo
Aplicar apenas quando m-n+1 ≠ nº de variáveis básicas no quadro • O fluxo máximo é igual à capacidade do corte mínimo
Tomar um valor de ε >0 muito pequeno, pôr os θ no quadro e resolver Dantzig
• FORMULAR (PLI):
Se algum custo reduzido = 0 há soluções óptimas alternativas
o Max deve ser o menor valor
• X(0,0,60,0,0, .. 0, 30, 0); Z = (somatório) casa com valor * custo
Xij – nº de unidades do no i para o no j (ou fluxo máximo no arco (i,j) p/ qq (i,j)) q
pertence ao conjunto da rede
PROBLEMA DE AFECTAÇÃO
Fazer condições para nós e xab <= 20; xij{0,1}
• Método Húngaro