Você está na página 1de 2

Programação não linear Programação não linear

Problema de composição de misturas Problema de composição de misturas


Trabalho — exemplo Trabalho — exemplo
Algoritmo do simplex — conceitos Algoritmo do simplex — conceitos
Noções estudadas Noções estudadas

Nesta aula. . . Problema de localização

Uma empresa de assistência e manutenção de sistemas informáticos


1 Programação não linear pretende determinar onde colocar os seus escritórios. As posições no plano
dos seus quatro clientes principais, e o número de visitas anuais previstas,
são os seguintes:
2 Problema de composição de misturas
Cliente x y visitas
1 5 10 200
3 Trabalho — exemplo 2 10 5 150
3 0 12 200
4 12 0 300
4 Algoritmo do simplex — conceitos
Forma standard de um problema linear A empresa pretende determinar a localização que minimiza a distância total
percorrida. Formule este problema em programação matemática.

João Pedro PEDROSO Métodos de Apoio à Decisão João Pedro PEDROSO Métodos de Apoio à Decisão

Programação não linear Programação não linear


Problema de composição de misturas Problema de composição de misturas
Trabalho — exemplo Trabalho — exemplo
Algoritmo do simplex — conceitos Algoritmo do simplex — conceitos
Noções estudadas Noções estudadas

Problemas de composição de misturas (blending) Problemas de composição de misturas (blending) (cont.)


Uma companhia petrolífera fabrica três tipos de gasolina: G1, G2 e G3. Os índices de octanas e conteúdos em enxofre dos petróleos brutos são:
Cada tipo de gasolina é produzido utilizando três tipos de petróleo bruto: C1, Índice de Conteúdo em
C2 e C3. Os preços de venda em euros por barril de gasolina, e os preços octanas enxofre
de compra em euros por barril de petróleo bruto são indicados a seguir. C1 12 0.5%
Preços de venda Preços de compra C2 6 2.0%
G1 70 C1 45 C3 8 3.0%
G2 60 C2 35 Custa 4 euros transformar um barril de petróleo bruto em gasolina, e a
G3 50 C3 25 empresa pode produzir até 14000 barris de gasolina por dia.
A companhia tem disponíveis até 5000 barris de cada tipo de petróleo bruto As encomendas dos clientes deverão ser satisfeitas exatamente (não há
diariamente. Os três tipos de gasolina diferem no seu conteúdo em enxofre e stocks), e são de 3000, 2000 e 1000 barris por dia, para as gasolinas G1,
no índice de octanas. A mistura de petróleos a utilizar para produzir cada G2, e G3, respetivamente.
tipo de gasolina deverá ter o índice de octanas mínimo e o teor de enxofre A empresa pode também investir em publicidade, para estimular as
máximo indicados a seguir: encomendas. Cada euro despendido diariamente na publicidade de um tipo
Índice de Conteúdo em particular de gasolina aumenta a procura desse tipo de gasolina em 10
octanas (min) enxofre (max) barris/dia. (Por exemplo, se se investir 20 euros por dia em publicidade para
Mistura para produzir G1 10 1.0% a gasolina G2, as suas encomendas aumentarão em 200 barris/dia.)
Mistura para produzir G2 8 2.0% Formule o problema linear que permite à companhia maximizar os lucros
Mistura para produzir G3 6 1.0% diários (receitas – custos).
João Pedro PEDROSO Métodos de Apoio à Decisão João Pedro PEDROSO Métodos de Apoio à Decisão

Programação não linear Programação não linear


Problema de composição de misturas Problema de composição de misturas
Trabalho — exemplo Trabalho — exemplo
Algoritmo do simplex — conceitos Algoritmo do simplex — conceitos
Noções estudadas Noções estudadas

Trabalho — exemplo Formulação em programação matemática


Multiconstraint knapsack (problema da mochila com várias restrições)

Uma empresa financeira tem um determinado capital disponível, e está a


efetuar o planeamento dos projetos em que deverá investir. O gestor dessa
I — conjunto de projetos
empresa definiu uma série de critérios de risco, e o valor máximo que a
medida desse critério, somada para todos os projetos, pode assumir. A cada J — conjunto de medidas de custo/risco
projeto está portanto associado o valor do retorno esperado, o custo, e as ci — valor de retorno para o projeto i
medidas do risco em cada um dos critérios definidos. Para cada projeto Kj — custo/risco máximo na medida j
existe a possibilidade de o realizar (a 100%) ou não. Determine que projetos
deverão ser escolhidos para maximizar o valor de retorno total, respeitando wij — risco/custo na medida j para o projeto i
todas as restrições impostas. Os dados do problema são os seguintes: P
[...] maximizar z = i∈I ci xi
P
1 formular o problema em programação matemática sujeito a i∈J wij xi ≤ Kj
2 escrever o programa em GNU MathProg x ∈ {0, 1}
3 escrever os dados
4 resolver o problema

João Pedro PEDROSO Métodos de Apoio à Decisão João Pedro PEDROSO Métodos de Apoio à Decisão

Programação não linear Programação não linear


Problema de composição de misturas Problema de composição de misturas
Trabalho — exemplo Trabalho — exemplo
Algoritmo do simplex — conceitos Algoritmo do simplex — conceitos
Noções estudadas Noções estudadas

Modelo em GMPL Dados em GMPL

set I := 1 2 3;
set J := 1 2 3 4 5;
param: c :=
1 10
set I; # conjunto de projetos disponiveis 2 12
set J; # conjunto de restricoes 3 8
param c{I}; # valor de retorno esperado para o projeto ;
param w{I,J}; # risco/custo do projeto i no criterio j param: K :=
param K{J}; # valor maximo para o risco/custo j 1 100.0
var x{I} >=0, <=1, integer; 2 100.0
maximize z: sum {i in I, j in J} c[i]*x[i]; 3 100.0
subject to R1 {j in J} : sum {i in I} w[i,j]*x[i] <= K[j]; 4 100.0
end; 5 100.0
;
param w : 1 2 3 4 5 :=
1 10 7 35 54 85
2 12 20 53 28 73
3 8 14 47 39 81
;

João Pedro PEDROSO Métodos de Apoio à Decisão João Pedro PEDROSO Métodos de Apoio à Decisão
Programação não linear Programação não linear
Problema de composição de misturas Problema de composição de misturas
Trabalho — exemplo Forma standard de um problema linear Trabalho — exemplo Forma standard de um problema linear
Algoritmo do simplex — conceitos Algoritmo do simplex — conceitos
Noções estudadas Noções estudadas

Algoritmos para programação linear Recordemos. . .

Um conjunto S é convexo se para qualquer par de pontos do conjunto, o


Vimos como resolver problemas com duas variáveis graficamente. segmento de reta que os une está completamente contido em S
Para problemas com mais de duas variáveis, é necessário utilizar um A região admissível de qualquer problema linear é um conjunto convexo
algoritmo desenvolvido para resolver problemas deste tipo.
Um ponto P diz-se um ponto extremo de um conjunto S se para
Na prática, o algoritmo mais utilizado é o do simplex
qualquer segmento de reta que esteja completamente contido em S e
permite a resolução de problemas com muitos milhares de variáveis e
restrições
que contenha P, se verifica que P é um ponto extremo desse segmento
funciona através da análise e movimentos em pontos extremos (vértices) da de reta
região admissível Em espaços de dimensão superior a dois:
há problemas particulares em que não é eficiente: pode demorar tempo ao conjunto de pontos que satisfazem uma desigualdade linear chama-se
exponencial em termos do tamanho do problema, a encontrar a solução um semi-espaço
prática geralmente é mais rápido do que algoritmos mais eficientes (e é o a intersecção de semi-espaços é chamada um poliedro
mais utilizado) um poliedro limitado é um politopo
num espaço de dimensão n, um politopo com n + 1 vértices é um simplex

João Pedro PEDROSO Métodos de Apoio à Decisão João Pedro PEDROSO Métodos de Apoio à Decisão

Programação não linear Programação não linear


Problema de composição de misturas Problema de composição de misturas
Trabalho — exemplo Forma standard de um problema linear Trabalho — exemplo Forma standard de um problema linear
Algoritmo do simplex — conceitos Algoritmo do simplex — conceitos
Noções estudadas Noções estudadas

Visualização Forma standard de um problema linear


A forma standard de um problema linear é uma forma equivalente, que
permite a utilização do algoritmo do simplex e fazer uma análise da solução
obtida:
1 todas as restrições são equações
2 todas as variáveis são não-negativas:
max z = 4x1 + 3x2
sujeito a x1 + x2 ≤ 40
2x1 + x2 ≤ 60
x1 , x2 ≥0
3 variável desvio: quantidade de recurso correspondente a uma restrição
que não é utilizada
exemplo: s1 = 40 − x1 − x2 ⇒ x1 + x2 + s1 = 40
o mesmo para a segunda restrição
4 as restrições são satisfeitas sse si ≥ 0, ∀i
max z = 4x1 + 3x2
sujeito a x1 + x2 + s1 = 40
2x1 + x2 + s2 = 60
João Pedro PEDROSO Métodos de Apoio à Decisão João Pedro PEDROSO Métodos de Apoio à Decisão
x1 , x2 , s1 , s2 ≥0
Programação não linear Programação não linear
Problema de composição de misturas Problema de composição de misturas
Trabalho — exemplo Forma standard de um problema linear Trabalho — exemplo
Algoritmo do simplex — conceitos Algoritmo do simplex — conceitos
Noções estudadas Noções estudadas

Forma standard Noções estudadas

max / min z = c1 x1 + c2 x2 + . . . + cn xn
sujeito a a11 x1 + a12 x2 + . . . + a1n xn = b1
a21 x1 + a22 x2 + . . . + a2n xn = b2
Formulação em programação matemática: mais alguns exemplos;
...
Definições de problema e de instância;
am1 x1 + am2 x2 + . . . + amn xn = bm
Linguagem de modelação GNU MathProg;
x1 , x2 , . . . , xn ≥0
Resolução de problemas de programação linear com glpsol e ampl.

todas as restrições são equações (i.e., igualdades)


todas as variáveis são não negativas:
se no problema original xi ≤ 0 ⇒ substituir por yi = −xi , yi ≥ 0
se no problema original xi é livre (não tem restrição de sinal) substituir por
yi+ − yi− , yi+ , yi− ≥ 0

João Pedro PEDROSO Métodos de Apoio à Decisão João Pedro PEDROSO Métodos de Apoio à Decisão

Programação não linear


Problema de composição de misturas
Trabalho — exemplo
Algoritmo do simplex — conceitos
Noções estudadas

Próxima aula

Algoritmo do simplex para programação linear.

João Pedro PEDROSO Métodos de Apoio à Decisão

Você também pode gostar