modelos em programação matemática · 2 para obter uma cópia do xpress- mp para estudantes ir ao...
TRANSCRIPT
1
Modelos em Programação Matemática
Resolução de um Modelo em Programação Matemática
Software Fico- Xpress
Problema
Modelo
Resolução
Xpress – Mosel (Linguagem algébrica de Modelação)
Xpress – MP
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
2
Para obter uma cópia do Xpress- MP para estudantes ir ao site
https://community.fico.com/download.jspa
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
3
Esquema Geral de um programa em linguagem Mosel
model “nome do modelo”
uses “mmxprs” ! Indica que se usa o XPRESS_OPTIMIZER para resolver o problema
declarations
! Bloco onde se definem constantes, vectores e varáveis do modelo
end-declarations
! Dados relativos ao problema a resolver
! Definição da função objectivo, das restrições do modelo e do domínio de variação das
! variáveis do modelo
! Resolver do problema
! Imprimir a solução
end-model
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
4
Variáveis do modelo
As variáveis são do tipo mpvar
Por defeito o Mosel assume que as variáveis do modelo são ≥ 0
Para definir uma variável X do tipo mpvar como binária escrever
X is_binary
Para definir uma variável X do tipo mpvar como inteira escrever
X is_integer
Resolver o problema
Para maximizar a função objectivo f_obj escrever maximize(f_obj)
Para minimizar a função objectivo f_obj escrever minimize(f_obj)
Imprimir a solução
Para imprimir a solução usar o comando writeln ou write. No primeiro caso há
mudança automática de linha
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
5
getobjval : indica o valor ótimo da função objetivo
getsol() : indica o valor ótimo das variáveis do modelo
Funções da linguagem Mosel para obter o valor ótimo e a solução ótima
Alguns tipos de Dados real tipo real
integer tipo inteiro
string cadeia de carateres
array vetor ou matriz
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
6
A primeira fase da produção de mesas e cadeiras numa fábrica de mobiliário é realizada nas secções de corte, polimento e montagem. Cada mesa necessita de 5 horas na secção de corte, 4 horas na de polimento e 3h na montagem, enquanto que cada cadeira necessita de 2h, 3h e 4h respetivamente. Numa determinada semana a fábrica tem disponíveis 270h na secção de corte, 250h na de polimento e 200h na de montagem. O lucro obtido é de 100 euros por mesa e 60 euros por cadeira. Pretende-se determinar quantas mesas e cadeiras devem ser fabricadas de forma a que o lucro total seja máximo.
1 2
1 2
1 2
1 2
1 2
max 100 60
s.a 5 2 270
4 3 250
3 4 200
, 0
z x x
x x
x x
x x
x x
1
2
número de mesas produzidas na semana
número de cadeiras produzidas na semana
x
x
Exemplo 1
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
7
Solução: LUCRO: 5671.43 X1= 48.5714 X2= 13.5714
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
8
Solução: LUCRO = 5640 x(1) = 48 x(2) = 14
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
9
Problema de Localização
Exemplo 2
Uma empresa que comercializa refrigerantes pretende determinar onde instalar armazéns para fazer a posterior distribuição por 5 cidades. Conhece-se a procura (em lotes) em cada uma das cidades, os custos de instalação em cada um dos 4 potenciais locais disponíveis para a construção dos armazéns e os custos de transporte de cada lote entre os armazéns e as cidades. Assume-se que podemos construir armazéns com a capacidade necessário, isto é, considera-se que a capacidade não é restritiva.
n =4, m = 5
[dj] = [11,10,10, 9] Procura
[fi ] = [500,500,500,500,500] Custos de instalação
ij
68 54 92 92
95 67 54 68
c 54 90 60 88
86 62 85 57
77 55 70 84
1
2
3
4
1
2
3
4
d1
d2
d3
d4
locais
cidades
5
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
10
• Modelo:
1 um armazém é construído no local
0 no caso contrário i
iy
quantidade enviada do armazém em
para satisfazer a procura em
ijx i
j
1 1 1
1
1
min f c
d 1, ,
1, ,
0 1, ,
{0,1} 1, ,
m m n
i i ij iji i j
m
ij ji
n
ij ij
ij
i
y x
x j n
x Dy i m
x j n
y i m
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
11 Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
12
1
2
3
4
1
2
3
4
d1
d2
d3
d4
locais cidades
5
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
13
Leitura dos dados a partir do ficheiro loc_data.txt
d : [ 11, 10, 10, 9 ]
f: [ 500,500,500,500,500 ]
c: [ 68, 54, 92, 92,
95, 67, 54, 68,
54, 90, 60, 88,
86, 62, 85, 57,
77, 55, 70, 84 ]
Em vez de escrever os dados no programa escrever a instrução
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
14
Problema de Planeamento de Produção
Exemplo 3
Uma empresa produz vários tipos de bicicletas. Pretende-se determinar o plano de produção do tipo H-T de bicicletas de corrida que requer um tipo especial de materiais e equipamento de produção. Produz-se apenas um lote por mês devido à pouca procura e a importantes economias de escala nos custos de manufatura. O custo de produzir cada bicicleta H-T é de 100 euros. As restrições de capacidade são ignoradas no planeamento de produção deste produto porque os trabalhadores são distribuídos pelas várias variantes de bicicletas produzidas na empresa e porque a capacidade pode ser aumentada contratando temporariamente trabalhadores se necessário. Devido à necessidade de instalar equipamento especial e ferramentas no início da produção de cada lote existe um elevado custo de set-up. O custo fixo de set-up é de 5000 euros. A procura deste tipo de bicicletas é irregular, sendo maior na Primavera e no Verão. As previsões de vendas deste tipo de bicicletas encontra-se na tabela seguinte:
Jan Fev Mar Abril Maio Jun Jul Ago Set Out Nov Dez
400 400 800 800 1200 1200 1200 1200 800 800 400 400
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
15
No fim do corrente ano estarão em armazém 200 bicicletas de corrida do tipo H-T. Cada bicicleta em armazém tem um custo de armazenamento de 5 euros que inclui o custo de armazenamento e de capital investido. O espaço em armazém é ilimitado.
O gerente da empresa quer determinar os níveis de produção e de stock deste tipo particular de bicicletas de modo a satisfazer a procura e minimizar os custos totais (Custos de produção + custos de armazenamento).
Pretende fazer o plano de produção para o próximo ano até ao fim do período em que há uma maior procura de bicicletas, isto é, até ao fim de Agosto.
Horizonte temporal do planeamento de produção
De Janeiro a Agosto, dividido em períodos de um mês
Número de períodos do horizonte temporal: 8
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
16
Modelo Matemático
número de períodos do horizonte temporal
períodos do horizonte temporal 1,...,
NT
T NT
: bicicletas produzidas no período : bicicletas que ficam em armazém no início do período
1 se se produzem bicicletas no período t
0 caso contrário
t
t
t
x t Ts t T
y
t T
variáveis
: custo de produção: custo de : custo de armazenamento: procura de bicicletas no período t
pq set - uphd t T
parâmetros
Neste caso 8NT
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
17
1 1 1
1
0
min
. . d 1, ,
s 200
1, ,
{0,1}, 0, 0 1, ,
NT NT NT
t t tt t t
t t t t
NT
t k tk t
t t t
px qy hs
s a s x s t NT
x d y t NT
y x s t NT
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
18
Modelo em Linguagem Mosel
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
19 Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
20
custo total 736000 Period 1: prod 600 (demand: 400, unit cost: 100), setup 1 (cost: 5000, stock: 400) Period 2: prod 0 (demand: 400, unit cost: 100), setup 0 (cost: 5000, stock: 0) Period 3: prod 1600 (demand: 800, unit cost: 100), setup 1 (cost: 5000, stock: 800) Period 4: prod 0 (demand: 800, unit cost: 100), setup 0 (cost: 5000, stock: 0) Period 5: prod 1200 (demand: 1200, unit cost: 100), setup 1 (cost: 5000, stock: 0) Period 6: prod 1200 (demand: 1200, unit cost: 100), setup 1 (cost: 5000, stock: 0) Period 7: prod 1200 (demand: 1200, unit cost: 100), setup 1 (cost: 5000, stock: 0) Period 8: prod 1200 (demand: 1200, unit cost: 100), setup 1 (cost: 5000, stock: 0)
OUTPUT
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca
21
Escrita num ficheiro de dados
fopen('data.txt', F_INPUT) forall (t in T) read(DEMAND(t)) readln readln(SETUPCOST) readln(PRODCOST) readln(INVCOST) readln(STOCKINI) fclose(F_INPUT)
Ficheiro data-.xt 400 400 800 800 1200 1200 1200 1200 5000 100 5 200
Leitura a partir de um ficheiro
Mestrado em Matemática Aplicada à Economia e Gestão - Logística e Gestão de Operações 1º Ano 2º Semestre
Módulo de Logística Docente : Maria da Conceição da Fonseca