Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouFátima Chaves Fortunato Alterado mais de 7 anos atrás
1
PESQUISA OPERACIONAL PARA A ENGENHARIA DE PRODUÇÃO II **Aula Básica de GAMS** Profa. Vitória Pureza 1º Semestre Aulas 5 e 6
2
Roteiro Implementação passo a passo de um modelo de programação matemática Alguns detalhes de implementação Brook, Kendrick & Meeraus (1992)
3
Um Modelo de Transporte Min 132x 11 + 87x 12 + 97x 13 + 103x 14 + 85x 21 + 91x 22 + 19x 23 + 215x 24 + 106x 31 + 89x 32 + 100x 33 + 98x 34 sujeito a: x 11 + x 12 + x 13 + x 14 ≤ 135 x 21 + x 22 + x 23 + x 24 ≤ 56 Restrições de suprimento x 31 + x 32 + x 33 + x 34 ≤ 93 x 11 + x 21 + x 31 ≥ 62 x 12 + x 22 + x 32 ≥ 83 Restrições de demanda x 13 + x 23 + x 33 ≥ 39 x 14 + x 24 + x 34 ≥ 91 x ij ≥ 0 i=1,2,3; j=1,2,3,4Restrições de sinal Variáveis de decisão: x ij = unidades de produto enviados da fábrica i ao cliente j
4
ÍNDICES i = fábricas j = clientes DADOS DE ENTRADA a i = suprimento do produto pela fábrica i (unidades) b j = demanda do cliente j pelo produto (unidades) c ij = custo unitário de transporte de i para j ($/unidade) j1234 b(j)62833991 i123 a(i)1355693 c(i,j)j i1234 11328797103 2859119215 31068910098
5
Variáveis de decisão x ij = unidades de produtos produzidos pela fábrica i e enviados ao cliente j onde x ij ≥ 0, i=1..3, j=1..4. Restrições Capacidade da fábrica i: Demanda do cliente j: Função objetivo
6
Sets i fabricas /fab1, fab2, fab3/ j clientes /cli1, cli2, cli3, cli4/; Parameter a(i) capacidade da fabrica i /fab1 135 fab2 56 fab3 93/ b(j) demanda do cliente j /cli1 62 cli2 83 cli3 39 cli4 91/; Table c(i,j) custos unitarios de suprimento do cliente j pela fabrica i cli1cli2 cli3cli4 fab1 132 87 97 103 fab2 85 91 19 215 fab3 106 89 100 98; Variables x(i,j) quantidade de produto enviado pela fabrica i para o cliente j z custo total em $; Positive variable x; Equations custo funcao objetivo capacidade(i) limite de capacidade da fabrica i demanda(j) necessidade de suprimento do cliente j; custo.. z =e= sum((i, j), c(i,j)*x(i,j)); capacidade(i).. sum(j,x(i,j)) =l= a(i); demanda(j).. sum(i,x(i,j)) =g= b(j); model transp1 /all/; solve transp1 using lp minimizing z; display x.l, x.m; IMPLEMENTAÇÃO EM GAMS DO MODELO DE TRANSPORTE x*=(x 11 *, x 12 *,..., x 34 *) MÉTODO
7
Sets i fabricas /fab1, fab2, fab3/ j clientes /cli1, cli2, cli3, cli4/; Texto para documentação Equivalente a i={fab1, fab2, fab3} É também válido: i={fab1*fab3} Equivalente a i={fab1, fab2, fab3} É também válido: i={fab1*fab3} Correspondem aos índices algébricos das representações do modelo Correspondem aos índices algébricos das representações do modelo
8
Dados de Entrada: Parameter Parameter a(i) capacidade da fabrica i /fab1 135 fab2 56 fab3 93/ b(j) demanda do cliente j /cli1 62 cli2 83 cli3 39 cli4 91/; Declara a existência do parâmetro “a” e de seu domínio em i Declara a existência do parâmetro “a” e de seu domínio em i Texto para documentação Designa o valor de “a” para cada i. A lista deve estar entre / / e os pares i e a(i) precisam estar separados por vírgula ou em linhas diferentes Designa o valor de “a” para cada i. A lista deve estar entre / / e os pares i e a(i) precisam estar separados por vírgula ou em linhas diferentes
9
Dados de Entrada: Scalar Scalar v penalidade sobre unidade faltante /160/; Declara a existência do escalar (parâmetro sem domínio) “v” Declara a existência do escalar (parâmetro sem domínio) “v” Texto para documentação Designa o valor de “v”
10
Dados de Entrada: Table Table c(i,j) custos unitarios de suprimento do cliente j pela fabrica i cli1 cli2 cli3 cli4 fab1 132 87 97 103 fab2 85 91 19 215 fab3 106 89 100 98; Declara a existência da tabela “c” e seu domínio em i e j Declara a existência da tabela “c” e seu domínio em i e j Texto para documentação Designa o valor de “c” a cada i (linha) e j (coluna) Designa o valor de “c” a cada i (linha) e j (coluna)
11
Dados de Entrada: Designação Direta Table d(i,j) distancia entre fabrica i e cliente j em km cli1 cli2 cli3 cli4 fab1 61 43 45 52 fab2 43 47 9 106 fab3 53 45 50 46; Scalar h custo unitário de transporte por km /5/; Parameter c(i,j) custo unitário de transporte entre fabrica i e cliente j; c(i,j) = h*d(i,j); c(‘fab1’, ‘cli4’) = 100; Designa o valor de “c” a cada i e j Designa o valor de “c” a elementos específicos i e j do domínio Designa o valor de “c” a elementos específicos i e j do domínio Declara a existência do parâmetro “c” e seu domínio em i e j Declara a existência do parâmetro “c” e seu domínio em i e j Texto para documentação Suponha que os custos unitários de transporte c(i,j) precisem ser calculados pela distância entre i e j e por um custo unitário por quilômetro percorrido...
12
Declaração de Variáveis: Variables Variables x(i,j) quantidade de produto enviado da fabrica i para o cliente j z custo total em $; Positive variable x; Declara a variável de transporte x para cada par (i,j) Declara a variável de transporte x para cada par (i,j) Designa a variável z para receber o valor da função objetivo (sem domínio) Designa a variável z para receber o valor da função objetivo (sem domínio) Declara o tipo da variável x (o domínio é omitido) Declara o tipo da variável x (o domínio é omitido)
13
Tipos de Variáveis A variável z que recebe o valor da fo (quantidade a ser otimizada) é do tipo free A declaração para variáveis do tipo free pode ser omitida TIPODOMÍNIO FREE [- , + ] POSITIVE [0, + ] NEGATIVE [- , 0] BINARY{0,1} INTEGER{0, 1,...,100}
14
Declaração da Fo e Restrições: Equations Equations custo funcao objetivo capacidade(i) limite de capacidade da fabrica i demanda(j) necessidade de suprimento do cliente j; Declara o nome da função objetivo (custo ) - sem domínio Declara o nome da função objetivo (custo ) - sem domínio Declara o nome das restrições (capacidade e demanda) e seus domínios Declara o nome das restrições (capacidade e demanda) e seus domínios
15
Operações de Somatória sum(j, x(i,j)) sum( (i,j), c(i,j)*x(i,j) ) ? sum( i, sum(j, c(i,j)*x(i,j) ) ) ? Argumento da somatória Índice da somatória Equivalente a
16
Operador Condicional ($) sum( (i) $ (ORD(i) le 4), x(i) ) Significa: “Se a ordem de i for menor ou igual a 4”. Ou seja, considera apenas os termos x(i) dos 4 primeiros “i” na somatória Significa: “Se a ordem de i for menor ou igual a 4”. Ou seja, considera apenas os termos x(i) dos 4 primeiros “i” na somatória Operador condicional: limita o domínio de i na operação para os valores que satisfazem a condição que se segue Operador condicional: limita o domínio de i na operação para os valores que satisfazem a condição que se segue
17
Operador Alias Set i fabricas /fab1, fab2, fab3/ Alias (i,j); Cria um set j com os mesmos elementos do set i. Ou seja, Set j fabricas /fab1, fab2, fab3/) Cria um set j com os mesmos elementos do set i. Ou seja, Set j fabricas /fab1, fab2, fab3/)
18
Designação de Equations custo.. z =e= sum((i, j), c(i,j)*x(i,j)); capacidade(i).. sum(j,x(i,j)) =l= a(i); demanda(j).. sum(i,x(i,j)) =g= b(j); Operadores relacionais Nome e domínio da equation seguido de “..” e um espaço Nome e domínio da equation seguido de “..” e um espaço
19
Observações Importantes Para cada um dos três elementos do domínio i temos uma desigualdade “capacidade” Para cada um dos quatro elementos do domínio j temos uma desigualdade “demanda” Ou seja, com apenas duas linhas, são criadas 3+4 desigualdades
20
Observações Importantes O operador “=“ é usado em designações diretas e o operador “=e=“ é usado na designação de equations Uma designação direta dá o valor desejado ao parâmetro ANTES do problema ser resolvido Uma designação de equation descreve uma relação desejada mas que só pode ser satisfeita DEPOIS do problema ser resolvido OPERADORES RELACIONAIS =l=≤ =g=≥ =e==
21
Declaração Model model transp1 /all/; Comando para definição do modelo a ser resolvido Comando para definição do modelo a ser resolvido Nome do modelo Conjunto de equations que compõem o modelo Conjunto de equations que compõem o modelo
22
Declaração Solve solve transp1 using lp minimizing z; Comando para resolução do modelo Comando para resolução do modelo Especifica o solver (método) a ser utilizado: programação linear Especifica o solver (método) a ser utilizado: programação linear Especifica o tipo de otimização a ser realizada Especifica o tipo de otimização a ser realizada Especifica a variavel que recebe o valor da fo Especifica a variavel que recebe o valor da fo
23
Solvers SOLVERS lpProgramação linear nlpProgramação não-linear mipProgramação linear inteira mista minlpProgramação não-linear inteira mista rminlpProgramação linear inteira mista relaxada mcpProblemas de complementaridade mista cnsSistemas não-lineares restritos
24
Comando Display display x.l, x.m; Pede a impressão de resultados específicos Pede a impressão de resultados específicos Valores das variáveis básicas x(i,j) Valores das variáveis básicas x(i,j) Valores dos custos marginais das variáveis x(i,j) Valores dos custos marginais das variáveis x(i,j)
25
Listagem ---- 41 VARIABLE x.L quantidade de produto enviado pela fabrica i para o cliente j cli1 cli2 cli3 cli4 fab1 83.000 43.000 fab2 17.000 39.000 fab3 45.000 48.000 ---- 41 VARIABLE x.M quantidade de produto enviado pela fabrica i para o cliente j cli1 cli2 cli3 cli4 fab1 21.000 52.000 fab2 30.000 138.000 fab3 7.000 60.000
26
Exercícios 1.Implemente e resolva os exercícios da lista 2. No exercício 2 da lista 2, resolva o modelo do lucro total das duas fábricas.
27
2.Implemente e resolva o exemplo de problema multi-período da aula 4 (produção de barcos). 3.Para o exemplo do exercício 2, considere que a reavaliação da demanda e do planejamento ocorra a cada 2 trimestres. Simule o planejamento com horizonte rolante por 3 avaliações (a cada avaliação, um modelo GAMS deve ser resolvido).
28
Variáveis de Decisão: x t = número de barcos produzidos no trimestre t em horas regulares ( t=1..4) y t = número de barcos produzidos no trimestre t em horas extras ( t=1..4) I t = número de barcos em estoque no trimestre t ( t=1..4) sujeito a: x t ≤ 40 t=1..4 (capacidade de produção com horas regulares) I t-1 + x t + y t = d t + I t t=1..4 (balanço de estoque) I 0 = 10 (estoque inicial) x t, y t, I t ≥ 0 t=1..4 (sinal)
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.