UNIVERSIDADE ÓSCAR RIBAS
DEPARTAMENTO DE GESTÃO ADMINISTRAÇÃO E MARKETING
CURSO DE GESTÃO DE ADMINISTRAÇÃO E MARKENTING
INVESTIGAÇÃO OPERACIONAL
METODO DE GRANDE M
RAMIRO DE ALMEIDA DIAS SABALO
Nº-20200205
DOCENTE-PROF. SIMÃO VUVU
AMBROCIO
LUANDA, 2022
1
ÍNDICE
1.INTRODUÇÃO------------------------------------------------------------------03
2.ALGORITMOS------------------------------------------------------------------04
3.ALGORITMO SIMPLEX-----------------------------------------------------04
4. PRIMEL SIMPLEX------------------------------------------------------------05
5. PROCEDIMENTOS PRIMAL SIMPLEX----------------------------------06
6. INICIALIZAÇAO DO MÉTODO SIMPLEX------------------------------07
7. O MÉTODO M-GRANDE IMPLÍCITO------------------------------------09
8. ALGORITMO GRANDE M--------------------------------------------------11
9. UTILIDADE DO GRANDE M ----------------------------------------------12
9.1 .EXERCICIO RESOLVIDO-------------------------------------------------12
10. SIMPLEX DUAL-------------------------------------------------------------13
10.1 EXERCICIO RESOLVIDO------------------------------------------------14
11.MÉTODO PRATICO DO GRANDE M--------------------------------15-22
12.CONCLUSÃO------------------------------------------------------------------23
13.REFERÊNCIAS----------------------------------------------------------------24
2
INTRODUÇÃO
Neste trabalho será abordado assuntos relacionados com o método simplex, onde
faremos a otimização linear usando um método muito comum conhecido como o grande
M, será dada uma breve revisão sobre a obtenção de soluções básicas factível para
problemas de otimização linear, envolvendo o método de duas fases e o método de
grande M.
Programação linear é uma técnica de modelação matemática que visa a
otimização da utilização de recursos limitados. É aplicada em áreas tao diversas como a
indústria, agricultura, os transportes, a economia, os sistemas de saúde, e mesmo as
ciências sociais e comportamentais. Devido a sua elevada eficiência computacional é a
base do desenvolvimento de algoritmos de solução de outros tipos de investigação
operacional. A modelagem de problemas por meio da otimização linear foi formalizada
por Dantzig em 1947 que, em seguida, desenvolveu também um método prático de
solução, o qual chamou de método simplex. Desde então, um grande número de
pesquisadores tem contribuído na área de otimização linear de diferentes maneiras,
incluindo desenvolvimentos teóricos e computacionais e novas aplicações. A aplicação
do método simplex para a resolução de um problema de otimização linear exige que
uma solução básica factível seja conhecida. Desse modo, deve-se definir uma base
inicial factível para a inicialização do método.
O número de interacções e o tempo de execução do método simplex para a
resolução de um problema são extremamente dependentes da base inicial escolhida. A
obtenção de uma boa base inicial é ainda um ramo de investigação na área de
optimização linear. Um método bastante conhecido para a obtenção de uma base
factível é o método M grande. Este método é conceitualmente simples e sua
implementação computacional é direta a partir do método simplex.
3
2.ALGORITMOS
Em matemática e ciência da computação, um algoritmo é uma sequência finita
de ações executáveis que visam obter uma solução para um determinado tipo de
problema. Segundo Dasgupta, Papadimitriou e Vazirani; "Algoritmos são
procedimentos precisos, não ambíguos, padronizados, eficientes e corretos.".
As suas características são: finitas, o algoritmo deve eventualmente resolver o
problema; bem definidas: os passos devem ser definidos de modo a serem entendidos;
efetivas, deve sempre resolver o que tem para solucionar, antecipando falhas.
Um algoritmo corretamente executado não irá resolver um problema se estiver
implementado incorretamente ou se não for apropriado ao problema.
Um algoritmo não representa, necessariamente, um programa de computador, e
sim os passos necessários para realizar uma tarefa. Sua implementação pode ser feita
por um computador, por outro tipo de autômato ou mesmo por um ser humano.
Diferentes algoritmos podem realizar a mesma tarefa usando um conjunto diferenciado
de instruções em mais ou menos tempo, espaço ou esforço do que outros. Tal diferença
pode ser reflexo da complexidade computacional aplicada, que depende de estruturas de
dados adequadas ao algoritmo. Por exemplo, um algoritmo para se vestir pode
especificar que você vista primeiro as meias e os sapatos antes de vestir a calça
enquanto outro algoritmo especifica que você deve primeiro vestir a calça e depois as
meias e os sapatos. Fica claro que o primeiro algoritmo é mais difícil de executar que o
segundo apesar de ambos levarem ao mesmo resultado.
3.ALGORITMO SIMPLEX
O método Simplex é um processo iterativo que permite melhorar a solução da
função objetivo em cada etapa. O processo finaliza quando não é possível continuar
melhorando este valor, ou seja, quando se obtenha a solução ótima (o maior ou menor
valor possível, segundo o caso, para que todas as restrições sejam satisfeitas). método
simplex, técnica padrão em programação linear para resolver um problema de
otimização, tipicamente envolvendo uma função e várias restrições expressas como
desigualdades.
4
As desigualdades definem uma região poligonal, e a solução está tipicamente em
um dos vértices. O método simplex é um procedimento sistemático para testar os
vértices como possíveis soluções.
Alguns problemas simples de otimização podem ser resolvidos desenhando as
restrições em um gráfico. No entanto, este método é útil apenas para sistemas de
desigualdades envolvendo duas variáveis. Na prática, os problemas geralmente
envolvem centenas de equações com milhares de variáveis, o que pode resultar em um
número astronômico de pontos extremos. Em 1947, George Dantzig, consultor
matemático da Força Aérea dos EUA, desenvolveu o método simplex para restringir o
número de pontos extremos que devem ser examinados. O método simplex é um dos
algoritmos mais úteis e eficientes já inventados, e ainda é o método padrão empregado
em computadores para resolver problemas de otimização.
4. PRIMEL SIMPLEX
E uma técnica utilizada para determinar numericamente a solução ótima de um
modelo na forma canónica, mais com as seguintes características para o sistema linear
de equação:
• Todas variáveis são não negativas
• Todos termos independentes são não negativas
• Todas equação iniciais de sistema são do tipo ´´ < ´´
Assim sendo adicionamos uma ou mais variáveis de FOLGA
MODELO NA FORMA CANONICA
Entendesse por maximizar a função Objetiva, sendo todas restrições do tipo
´´<´´ e todas variáveis forem não negativas (X; > 0)
5
5. PROCEDIMENTOS PRIMAL SIMPLEX
• Obter uma 1 solução básica admissível
• Verificar se a solução básica e ótima isso e, se os coeficientes da função objetiva
expressa em termo das variáveis não básica forem todos positivos, se a solução for
óptima o algoritmo termina.
DETERMINAR A COLUNA DE PIVOT
Isso e colecionando o coeficiente com maior valor absoluto negativo da variável
não básica da função objetivo, a que correspondente a coluna de pivot e a variável que
vai entrar na base.
DETERMINAR A LINHA DE PIVOT
Isso e dividindo os termos independente das restrições pelos elementos da
coluna de PIVOT O menor coficiente ira direcionar a linha de PIVOT
Para ilustrar o método Simplex, considere o exemplo de certa empresa rápido
fabrica 2 produtos p1 e p2. O lucro por unidade de p1 e de 100 u.m. e o lucro unitário de
p2 e de 150 u.m. A empresa necessita de 2 horas para fabricar uma unidade de p1 e 3
horas para fabricar uma unidade de p2. O tempo mensal disponível para essas atividades
e de 120 horas. As demandas esperadas para os 2 produtos levaram a empresa a decidir
que os montantes produzidos d p1 e p2 não devem ultrapassar 40 unidades de p1 e 30
unidades de p2 por mês.
6
6. INICIALIZAÇAO DO MÉTODO SIMPLEX
Os problemas de otimização linear consistem na minimização ou maximização
de uma função linear sujeita a um número finito de restrições lineares sobre as variáveis
envolvidas. Considere o seguinte problema de otimização linear na forma padrão:
Minimizar f(x) = ctx (1)
sujeito a Ax = b (2)
x ≥0 (3)
com
objetivo do problema que, nesse caso, será minimizada. As equações do sistema
linear (2) recebem o nome de restrições do problema e as desigualdades em (3) são as
condições de não-negatividade. Em geral, um problema de otimização linear na forma
padrão possui diversas variáveis de folga, utilizadas para expressar restrições de
desigualdade em forma de equações. Uma variável de folga é toda aquela cuja coluna
correspondente em A é uma coluna da matriz identidade.
A aplicação do método simplex para a resolução de problemas de otimização
linear exige que uma base inicial factível seja conhecida. Desse modo, o primeiro passo
antes da aplicação do método é definir uma base inicial. Se essa base for factível, o
método simplex pode ser iniciado. Caso contrário, dois caminhos são possíveis:
• Utiliza-se uma abordagem de duas fases, caracterizada pela existência de uma
fase inicial bem determinada, denominada Fase-I. Nesta fase, um problema auxiliar é
resolvido e uma solução básica factível para o problema original é obtida. Em uma
segunda etapa, denominada Fase-II, o método simplex é iniciado com a base factível
obtida na Fase-I; ou
• Utiliza-se uma abordagem de fase única, na qual o método simplex pode ser
iniciado sem que se conheça uma base factível correspondente e a factibilidade da
solução é obtida enquanto se busca, ao mesmo tempo, uma solução ótima do problema.
Para isso, a função objetivo do problema deve ser modificada pela adição de termos que
agem como penalizadores de soluções infactíveis.
7
Uma maneira bastante simples de se construir uma base inicial para um
problema de otimização linear é por meio da introdução de variáveis artificiais. Dado
um problema de otimização linear na forma padrão (1)-(3), uma variável artificial yi > 0
é adicionada a cada restrição do problema, fazendo com que as restrições do problema
sejam redefinidas como:
Ax + Dy = b (4)
x ≥0, y ≥ 0 (5)
com y = (y1, y2, . . . , ym) e D uma matriz diagonal com valores 1 e −1, satisfazendo
D−1b≥0.
Sem perda de generalidade, será considerado b≥0, de modo que D = I. Assim,
uma base inicial factível B = I com solução inicial (x, y) = (0, b) está sempre disponível
para um problema com o conjunto de restrições (4) e (5).
A introdução de variáveis artificiais tem o inconveniente de aumentar a
dimensão do problema, já que são adicionadas m variáveis. Entretanto, a facilidade
conceitual e prática dessa técnica é incontestável. Uma maneira de melhorá-la é através
da utilização das variáveis de folga do problema original. Assim, uma variável artificial
só é adicionada a uma restrição se não houver uma variável de folga disponível nessa
restrição, ou se a variável de folga existir mas levar a uma solução básica infactível.
Dada uma solução (¯x, ¯y) das equações descritas em (4) e que satisfaça (5),
tem-se A¯x = b se, e somente se, ¯y = 0. Em outras palavras, ¯x será uma solução
factível para o problema original quando cada variável artificial for nula. Para se obter
um par (¯x, ¯y) com tal característica, duas abordagens podem ser utilizadas, uma de
duas fases e outra de fase única.
A abordagem por duas fases cria um problema auxiliar a partir do conjunto de
restrições (4) e (5), o qual também é um problema de otimização linear, cuja função
objetivo é definida pela soma das variáveis artificiais. Matematicamente, o problema
auxiliar é dado por:
8
minimizar 𝑓(𝑥, 𝑦) = ctx + ∑𝑚
𝑖=1 yi
sujeito a Ax + Iy = b
x ≥ 0, y ≥ 0,
Esse problema é chamado de problema M-grande e vale ressaltar que não
corresponde a um problema auxiliar, mas sim à redefinição do problema original. O
método M-grande consiste em aplicar o método simplex sobre o problema M-grande. A
solução ótima obtida Até o momento, o parâmetro M foi considerado suficientemente
grande. Entretanto, como definir um valor numérico para M? Infelizmente, não existe
uma resposta direta para essa pergunta. Além de um bom valor para M depender do
problema que se está resolvendo, efeitos numéricos também devem ser levados em
conta. Um valor muito pequeno pode fazer com que uma solução do problema M-
grande seja infactível para o problema original e um valor grande demais pode levar a
um elevado número de iterações e à introdução de erros numéricos durante a resolução
do problema. Conforme retratado na literatura, essas características fazem com que o
método M-grande seja evitado e que uma abordagem de duas fases seja utilizada em
implementações computacionais.
Pelos resultados obtidos, verifica-se que a definição de um valor adequado para
o parâmetro M é determinante para a obtenção de uma solução correta em um número
de iterações relativamente pequeno. Por outro lado, não existe uma regra que permita
definir um bom valor para M a priore. A abordagem proposta na seção a seguir tem o
objetivo de evitar essa escolha, considerando M implicitamente durante a resolução do
problema.
7. O MÉTODO M-GRANDE IMPLÍCITO
Nesta seção é apresentada uma nova abordagem para o método M-grande, que
será chamada de método M-grande implícito, na qual M é utilizado implicitamente, isto
é, nenhum valor numérico é definido para M e o método simplex é modificado de modo
a considerar M suficientemente grande. Na seção anterior, foi visto que o método M-
grande redefine o problema a ser resolvido, adicionando variáveis artificiais e
penalizando-as na função objetivo, por meio de um parâmetro numérico M.
9
O problema continua sendo um problema de otimização linear na forma padrão
com m restrições, porém possui agora m + n variáveis. A fim de facilitar a exposição, o
problema M-grande será colocado no formato (1)-(3), de acordo com a seguinte
redefinição:
𝑥
A := [A | I ] , x :=[ ], ct= ct | (M, . . . ,M)t (6)
𝑦
Durante a resolução do problema M-grande pelo método simplex, deve ser
mantido um registro de quais variáveis são legítimas e quais são artificiais para que ao
se obter uma solução ótima, possa ser verificado se esta é factível para o problema
original, além disso, uma vez que uma variável artificial tenha saído da base, ela não
deve retornar à base, porém para as variáveis legítimas isso é permitido.
A ordenação das variáveis básicas sugerida na obtenção dos resultados, tem o
único intuito de facilitar a compreensão do texto. Em uma implementação
computacional do método apresentado no Quadro 2, deve-se apenas armazenar quais
variáveis são legítimas e quais são artificiais e realizar os cálculos de acordo com essa
informação. Além disso, um contador de quantas variáveis artificiais estão presentes na
base pode ser utilizado a fim de evitar cálculos desnecessários.
Com essa nova proposta, evita-se a definição de um valor numérico para M e o
método Mgrande está livre de desvantagens retratadas na literatura. Para atingir esse
objetivo, apenas dois passos do método simplex precisam ser modificados, sem
aumentar a dificuldade de sua implementação computacional.
Vale ressaltar que a proposta apresentada por Bertsimas e Tsitsiklis (1997) para
o tratamento implícito de M diferencia-se da abordagem descrita aqui por não realizar o
desempate das expressões utilizando os termos que não dependem de M, conforme
definido em (9) e (12). Assim, a proposta dos autores se assemelha ao método de duas
fases, já que ignora os coeficientes da função objetivo do problema original nas
expressões de custos reduzidos contendo M.
10
8. ALGORITMO GRANDE M
Em investigação operacional, o método GRANDE M é um método de resolução
de problemas de programação linear usando o algoritmo Simplex. O método GRANDE
M estende o algoritmo Simplex para problemas que contêm restrições "maiores que",
´´igual´´ e ´´menor que´´ desde que não haja números negativos no segundo membro
das equações das O algoritmo Simplex é o original e ainda um dos métodos mais
utilizados para resolver problemas de maximização linear. No entanto, para aplicá-lo, a
origem (todas as variáveis iguais a 0) deve ser um ponto viável. Esta condição é
satisfeita apenas quando todas as restrições (exceto não-negatividade) são menores que
as restrições e com constante positiva no lado direito. O método GRANDE M introduz
variáveis de excesso e artificial para converter todas as desigualdades nessa forma. O
“GRANDE M” refere-se a um grande número associado às variáveis artificiais,
representadas pela letra M.
Os passos no algoritmo são os seguintes:
• Multiplique as restrições de desigualdade para garantir que o lado direito é positivo.
• Se o problema for de minimização, transforme-se em maximização multiplicando o
objetivo por -1
• Para quaisquer restrições maiores, introduza a variável de execesso e as variáveis
artificiais (como mostrado abaixo).
• Escolha um grande valor positivo M e introduza um termo no objetivo da forma −M
multiplicando as variáveis artificiais.
• Para restrições inferiores ou iguais, introduza variáveis folgas para que todos os
restrições sejam iguais.
• Resolva o problema utilizando o método simplex habitual.
Por exemplo, x + y ≤ 100 se torna x + y + s1 = 100, enquanto x + y ≥ 100 se torna x + y
− s1 + a1 = 100. As variáveis artificiais devem ser mostradas como 0. A função a ser
maximizada é reescrito para incluir a soma de todas as variáveis artificiais. Em seguida,
as reduções de linha são aplicadas para obter uma solução final.
11
O valor de M deve ser escolhido suficientemente grande para que a variável
artificial não faça parte de nenhuma solução viável.
Para um M suficientemente grande, a solução ótima contém quaisquer variáveis
artificiais na base (ou seja, valores positivos) se e somente se o problema não for viável.
9. UTILIDADE DO GRANDE M
Quando usado na função objetivo, o método GRANDE M às vezes se refere a
formulações de problemas de otimização linear em que as violações de uma restrição ou
conjunto de restrições estão associadas a uma grande constante de penalidade positiva,
M. Quando usado nas próprias restrições, um dos muitos usos de GRANDE M, por
exemplo, refere-se a garantir igualdade de variáveis apenas quando determinada
variável binária assume um valor, mas deixar as variáveis "abertas" se a variável binária
assumir seu valor oposto. Um exemplo disso é o seguinte: para uma variável binária M
e z suficientemente grande (0 ou 1), as restrições
certifique-se de que quando z=0 então x=y. Caso contrário, quando z=1, então -
M< X- Y< M, indicando que as variáveis x e y podem ter quaisquer valores desde que o
valor absoluto de sua diferença seja limitado por M (daí a necessidade de M ser "grande
o suficiente").
9.1 .EXERCICIO RESOLVIDO
12
10. SIMPLEX DUAL
Usamos quando o problema de programação linear é de maximizar. se tivermos
um problema de minimização ao usar o mesmo modelo transformaremos em problema
de minimização
Exemplo:
Função objetivo
Max= 3x + 3y >
Sujeito {3x + 3y>5
{4x + 3y>10
{2x + 1y >12
X, Y >0
Para mudar a nossa função objetivo em problema de minimização às nossas
restrições também sofreram alterações cada restrição será multiplicada por (-1) E os
nossos sinais anteriores “≥” será “≤”
13
10.1 EXERCICIO RESOLVIDO
Min w= 3x + 3y
-3x - 3y<-5
-4x - 3y< -10
-2x- 1y < -12
X, Y >0
Para a resolução introduziremos um módulo “standard”
-3x- 3y + s1 + 0s2 + 0s3= -5
-4x - 3y + 0s1 + s2 + 0s3 = - 10
-2x - 1y+ 0s1 + 0s2 + s3= -12
Agora aplicaremos o método dual Simplex. Uma das suas características e
diferencial está na forma de entrada e saída das variáveis da base, geralmente quando
resolvemos pelo método Simplex o que acontecia é que primeiro definiremos o número
pivô, mas antes queremos definir antes a linha pivô. Definimos a linhapivô com base no
maior valor do termo independente, neste caso o nosso maior valor é (-12)
14
11.MÉTODO PRATICO DO GRANDE M
15
16
17
18
19
20
21
22
CONCLUSÃO
Conclui-se que o método Grande M geralmente usado para encontrar a solução
para um problema linear com o método Simplex. E no método de duas fases todos os
procedimentos de resolução de um problema programação linear (PPL) envolvem
variáveis artificiais, divididas em duas fases
O algoritimo Grande M é também um do método simplex modificado usados
para resolver problemas de programação linear complexos. Simplex é um algoritimo
criado pelo matemático George Dantzig. O simplex pode ser implementado de várias
maneiras diferente, mais o princípio é basicamente o mesmo.
O método M-grande implícito proposto mostrou-se superior ao método M-
grande, como pôde ser observado nos resultados obtidos pela aplicação do método na
resolução de 41 problemas de otimização linear da biblioteca NETLIB. Sem a
necessidade de se definir um valor numérico para M, o método não obtém soluções
ótimas equivocadas, não sofre a introdução de erros numéricos e, na maioria dos casos,
não leva ao aumento do número de iterações. O método também se mostrou vantajoso
com relação ao método de duas fases, devido ao menor número de iterações para a
resolução de grande parte dos problemas.
23
REFERÊNCIAS
[1] Arenales, MN; Armentano, VA; Morabito, R; Yanasse, HH (2007)Pesquisa
Operacional. Editora Campus.
[2] Arsham, H (2007) A computationally stable solution algorithm for linear programs.
Applied Mathematics and Computation. v.188, p.1549-1561.
[3] Bazaraa, MS; Jarvis, JJ; Sherali, HD (1990)Linear Programming and Network
Flows.2a ed. John Wiley & Sons Inc.
[4] Bertsimas, D; Tsitsiklis, JN (1997)Introduction to Linear Optimization. Athena
Scien-tific, Belmont, Massachusetts.
[5] Hu, J (2007) A note on “an improved initial basis for the simplex
algorithm”.Computers & Operations Research, v.34, p.3397-3401.
[6] Koberstein, A; Suhl, UH (2007) Progress in the dual simplex method for large scale
LP problems: practical dual phase 1 algorithms.Computational Optimization and
Applica-tions, v.37(1), p.49-65.
[7] Koch, T (2004) The final Netlib-LP results.Operations Research Letters, v.32,
p.138-142.
[8] Maros, I (2003)Computational techniques of the simplex method. Kluwer Academic
Pu-blishers.
[9] Paparrizos, K (1993) An exterior point simplex algorithm for general linear
problems. Annals of Operations Research, v.32, p.497-508
24