Pular para o conteúdo principal

Algoritmos

O algoritmo simplex resolve problemas de PL construindo uma solução admissível no vértice do poliedro, e então percorre os vértices do poliedro que sucessivamente possuem valores mais altos da função objectivo até encontrar o máximo. Embora este algoritmo seja bastante eficiente na prática, e seja garantido de encontrar um óptimo global se certas condições para se evitar ciclos forem assumidas, ele é fraco no pior-caso: é possível construir um problema de programação linear prático para o qual o método simplex realiza uma quantidade exponencial de passos em relação ao tamanho do problema. Na verdade, por algum tempo não se soube se problemas de programação linear eram NP-completos ou tinham solução em tempo polinomial.

O primeiro algoritmo de programação linear em tempo polinomial no pior caso foi proposto por Leonid Khachiyan em 1979. Foi baseado no [método do elipsóide] da nonlinear optimization de Naum Shor, que é uma generalização do método da elipsóide da [optimização convexa] de Arkadi Nemirovski, uma dos ganhadores do John von Neumann Theory Prize 2003, e D. Yudin.

Entretanto, a performance prática do algoritmo de Khachiyan é desapontante: geralmente, o método simplex é mais eficiente. Sua grande importância é que ele encoraja a pesquisa dos métodos de pontos interiores. Ao contrário de algoritmo simplex, que apenas evolui ao longo de pontos na fronteira da região factível, métodos de ponto interior podem se mover pelo interior da região factível.

Em 1984, Narendra Karmarkar propôs seu método projetivo, que tornou-se o primeiro algoritmo a apresentar um bom desempenho tanto na teoria como na prática: seu pior caso de complexidade é polinomial e os problemas práticos de experiência mostram que ele é razoavelmente eficiente em comparação com o algoritmo simplex. Desde o método de Karmarkar, muitos outros métodos de pontos interiores têm sido propostos e analisados. Um método bastante popular é o Método Preditor-corretor de Mehrotra, cuja atuação possui bom desempenho na prática, ainda que pouco se saiba sobre ele na teoria.

A opinião mais recente entre os estudiosos é que a eficiência das boas implementações dos métodos baseados em simplex e dos pontos interiores são similares para a aplicação de rotina no programa linear.

As soluções do programa linear estão em uso generalizado de otimização de diversos problemas na indústria, como a otimização de fluxo de transporte, que pode ser transformada em problemas de programação linear sem muitas dificuldades.

Comentários

Postagens mais visitadas deste blog

Método Simplex (parte 2) - Exemplo

Exemplo: método Simplex Solução através do método Simplex do Problema seguinte: Maximizar Z = f(x,y) = 3x + 2y sujeita às restrições: 2x + y ≤ 18                                   2x + 3y ≤ 42                                   3x + y ≤ 24                                   x ≥ 0 , y ≥ 0 Consideram-se as seguintes fases: Realizar uma mudança de variáveis e normalizar o sinal dos termos independentes. Realiza-se uma mudança na nomenclatura das variáveis. Estabelecendo a seguinte correspondência: x passa a ser X1 y passa a ser X2 Como os termos independentes de todas as restrições são positivos não é necessário fazer nada. Caso contrário, se deverá multiplicar por "-1" ambos os lados da inequação (considerando que est...

Matrizes

Matrizes são organizações de informações numéricas em uma tabela retangular formada por linhas e colunas. Essa organização em uma tabela facilita que se possa efetuar vários cálculos simultâneos com as informações contidas na matriz. Definição de matrizes Toda matriz tem o formato m x n (leia-se: m por n, com n e m ∈ N*), onde m é o número de linhas e n o número de colunas. Representação de matrizes Existem diversas maneiras de representarmos matrizes, veja quais são: Colchetes: [ ] Parênteses: ( ) Barras Simples: | | Barras Duplas: || || Essas são as representações mais comuns que encontramos na literatura. Exemplos: Elementos de uma matriz Seja a matriz genérica Amxn, isto é, m representa as linas e n o número de colunas. Então, temos: Elementos de uma matriz Seja a matriz genérica Amxn, isto é, m representa as linas e n o número de colunas. Então, temos: Dessa forma, os elementos da matriz A são indicados por aij, onde o i representa o índice da linha e j...

Método Gráfico (parte 2) - Exemplo

Solução através do método gráfico o seguinte problema: Maximizar Z = f(x,y) = 3x + 2y sujeita às restrições: 2x + y ≤ 18   2x + 3y ≤ 42   3x + y ≤ 24   x ≥ 0 , y ≥ 0 1.Inicialmente, o sistema de coordenadas da associação de um eixo com variável "X" e o outro o "Y" é desenhado (geralmente associa-se "x" em relação ao eixo horizontal e o "y" ao vertical), como pode ser visto na figura. 2.Nestes eixos, marca-se uma escala numérica apropriada aos valores que podem assumir as variáveis conforme as restrições do problema. Para isto, em cada restrição anulam-se todas as variáveis, exceto aquelas que correspondem a um eixo concreto, estabelecendo o valor adequado para este eixo. Este processo é repetido para cada um dos eixos. 3.As restrições são representadas a seguir. Primeiramente, desenha-se a reta que é obtida ao considerar a restrição como uma igualdade. Ela é representada como o segmento que une A com B e região que delimita esta ...