Você está na página 1de 8

UF1t1U

Universidade Federal Rural do Rio de Janeiro



PROFESSOR: Erito Marques de Souza Filho DISCIPLINA: Pesquisa Operacional/ Programaeao Linear

TEMA: Modelagem de Problemas de Otimizayao em linguagem Mosel.

DATA: ":

INSTRUCOES

1 - Os textos abaixo mostram como deve ser feita a modelagem metematica de problemas de Pesquisa Operacional usando uma Iinguagem denominada MOSEL.

2 - Na segunda parte, sao mostrados exemplos de problemas modelados de acordo com essa linguagem.

3 - Os alunos devem se dividir em grupos de tres pessoas.

4 - Cada grupo deve ler atentamente os textos e os exemplos.

5 - Os alunos de cada grupo devem discutir entre si os textos lidos.

6 - Na ultima etapa cada grupo deve resolver os exercicios propostos. Esses exercicios deverso ser entregues impreterivelmente na proxima aula.

Universidade Federal Rural do Rio de Janeiro

1. INTRODUl;AO

A linguagem Mosel e urn ambiente para modelagem e soluyao de problemas de oti~ que faz parte do pacote do software Xpress-MP. Atualmente, ela tem sido bastante util na solu~ao de diversos tipos de problemas, figurando entre as melhores ferramentas disponiveis no mercado para esse fun. Essa ferramenta foi desenvolvida pela empresa DASH/FICO OPTIMIZATION. Ela disponibiliza uma versao de estudante desse software, que pode ser encontrada no seguinte hiperlink: http://optimization.fico.comidemos/

2. ESTRUTURA GERAL DE UM MODELO EM MOSEL

Todo modelo em MOSEL:

• Inicia com a palavra model seguida por urn nome.

• Termina com a palavra reservada end-model.

• Todos os objetos devem ser declarados em uma seyao que comeca com a palavra reservada a decltzrations e termina com a palavra reservada end-declarations.

• Pode haver varias s~es do tipo "declarations" em diferentes partes de um modelo.

• Todo comentario deve ser feito utilizando-se 0 simbolo de exclamacso (I).

3.0 PROBLEMA DA EMPRESA 00 TRANSPORTE

Suponha que uma empresa possua 3 centros de distribuicso de sal e 4 supermercados. Cada centro de distribui91lo tem uma oferta de produtos (em toneladas) e cada mercado uma demanda. Alem russo, os custos de envio de uma tonelada de sal de um centro de distribui~o para uma mercado sic distintos. As tabelas abaixo sintetizam os dados.

Custos de envio (RS)
Centro de Distribuicao Mercado 1 Mercado Mercado Mercado
(CD) 2 3 4
1 40 36 42 39
2 28 27 26 30
3 35 37 39 44 Demanda de sal por supermercado (ton)
Mercado 1 Mercado Mercado Mercado
2 3 4
200 300 250 250
Oferta de sal
CDl CD2 CD3
350 300 350 Primeiramente devemos modelar adequadamente 0 problema:

UfRRJ

Universidade Federal Rural do Rio de Janeiro

Seja Xu : quanti dade de sal a ser enviada do centro de distribuicao i para a mercado j. Note que 0 total de variaveis de decisao sera igual a 3x4 = 12.

Nesse modele devemos minimizar 0 custo total de transporte da empresa sujeito as restricoes de oferta e demanda:

3 4 Minimizar Custo Total: L L cuxu l=! j=!

3

LXij =dj, V j = 1..4

i=!

4

LXii =Oi' Vi =1..3 j=!

Xu E Z+,Vi=1..3,j =1..4

No modele acima as variaveis cii representam 0 custo de enviar uma tonelada de sal do centro de distribuicao i para 0 mercado j. Os parametres dj e 0i representam respectivamente as demandas de cada mercado e as ofertas de cada centro de distribuicao.

4. MODELANDO 0 PROBLEMA NA LINGUAGEM MOSEL

model sal

! nome do modelo

uses "mmxprs"

! indica otimizador a ser utilizado

declarations

! aqui sao declarados parametres e variaveis do problema

cendis = 1 .. 3 mercado = 1..4

! centros de distribuicao ! mercados

c: array( cendis, mercado) of real

x: array( cendis, mercado) of mpvar 0: array(cendis) of real

d: array(mercado) of real

! parametres de custo ! variaveis de decisao ! ofertas

! demandas

end-declarations

! toda declaracao deve ser finalizada com end-declarations

c:: [40,36,42,39, 28,27,26,30, 35,37,39,44]

! matriz de custos

0:: [350,300,350]

! matriz de oferta

d:: [200,300,250,250]

! matriz de demanda

IJfRRj

Universidade Federal Rural do Rio de Janeiro

foralltj in mercado) ofert:= sum(i in cendis) x(i,j) = dtj)

! restricoes de oferta em cada

centro

forall(i in cendis) deman:= sumtj in mercado) x(i,j) = o(i) ! restricoes de demanda

custo:= sum(i in cendis, j in mercado) c(i,j)*x(i,j) ! funcao objetivo

minimize (custo)

lorientacao da funcao objetivo

writeln("O custo eh: ", getobjval) ! escreve 0 valor da funcao objetivo na tela

forall(i in cendis, j in mercado)

writeln("O valor de x(", i, ",", j, ") eh:", getsol(x(ij))) ! escreve 0 valor das VD

end-model

! finaliza 0 modelo

5. 0 PROBLEMA DA EMPRESA DO TRANSPORTE REVISITADO

Suponha agora que a empresa possua 5 centros de distribuicao de sal e existam 6 mercados.

Cada centro de distribuicao tern uma oferta de produtos e cada mercado uma demanda. Alem disso, os custos de envio de uma tonelada de sal de urn centro de distribuicao para um mercado sao distintos. As tabelas abaixo sintetizam os dados.

Centro de Distribuicao Mercado 1 Mercado Mercado Mercado Mercado Mercado
(CD) 2 3 4 5 6
1 40 36 42 39 44 68
2 28 27 26 30 45 64
3 35 37 39 44 37 135
4 40 41 42 45 33 39
5 21 22 25 27 29 30 Demanda de sal por mercado
Mercado 1 Mercado Mercado Mercado Mercado Mercado
2 3 4 5 6
200 300 250 250 300 200
Oferta de sal nor Mercado
CD! CD2 CD3 CD4 1 CD5
350 300 350 300 I 350 Primeiramente devemos modelar adequadamente 0 problema:

Seja xi) :quantidade de sal a ser enviada do centro de distribuicao i para 0 mercadoj.

UfRRj

Universidade Federal Rural do Rio de Janeiro

Nesse modelo devemos mini mizar 0 custo lucro total de transporte da empresa sujeito as restricoes de oferta e demanda:

3 4 Minimizar Custo Total: L L cijxij i=1 j=1

5

LXij =dj, V j = 1..6

;=1

6

LXij =o., Vi=1..5 j=1

Xij E Z+, V i = 1..5,j = 1..6

No modelo acima as variaveis cij representam 0 custo de enviar uma tonelada de sal do centro de distribuicao i para 0 mercado j. Os parametres dj e 0; representam respectivame.rte as demandas de cada mercado e as ofertas de cada centro de distribuicao.

Note que 0 total de variaveis de decisao sera igual a 5x6 = 30.

6. MODELO REVISITADO NA LINGUAGEM MOSEL

model sal rev

! nome do modelo

uses "mmxprs"

! indica otimizador a ser utilizado

declarations

! aqui sao declarados parametres e variaveis do problema

cendis = 1..5 mercado = 1..6

! centros de distribuicao ! mercados

c: array( cendis, mercado) of real ! parametres de custo x: array( cendis, mere ado) of mpvar ! variaveis de decisao

0: array(cendis) of real ! ofertas

d: array(mercado) of real ! demandas

end-declarations

! toda declaracao deve ser finalizada com end-declarations

c:: [40,36,42,39,44,68, 28,27,26,30,45,64, 35,37,39,44,37,135, 40,41,42,45,33,39, 21,22,25,27,29,30]

! matriz de custos

0:: [350,300,350,300,350]

! matriz de oferta

UFI!.Rj

Universidade Federal Rural do Rio de Janeiro

d:: [200,300,250,250,300,200]

! matriz de demanda

foralltj in mercado) ofert:= sum(i in cendis) x(i,j) = dtj)

! restricoes de oferta em cada

centro

foralI(i in cendis) deman:= sumtj in mercado) x(i,j) = o(i) ! restricoes de demanda

custo:= sum(i in cendis, j in mercado) c(i,j)*x(i,j) ! funcao objetivo

minimize (custo)

lorientacao da funcao objetivo

writeln("O custo eh: ", getobjval) ! escreve 0 valor da funcao objetivo na tela

foralI(i in cendis, j in mercado)

writeln("O valor de x(", i, ",", j, ") eh:", getsol(x(i,j))) ! escreve 0 valor das VD

end-model

! finaliza 0 modelo

7. EXERCicIOS

7.1 A empresa African, S.A. tern negocios em diversos paises africanos como Angola, Mocambique, Cabo Verde, Sao Tome, Ruanda e Africa do SuI. A sua atividade de trading traduz-se na compra de medicamentos em Laborat6rios Europeus, nomeadamente na Holanda, Italia, Belgica e tambern Portugal, e sua venda nos paises africanos mencionados. No pr6ximo mes, a empresa tera de fazer urn planejamento mais cuidado das encomendas de urn kit de primeiros socorros para todos os paises mencionados, uma vez que surgiu inesperadamente queda na oferta do mesmo produto, nos laborat6rios onde normalmente se abastece. A empresa pretende, portanto decidir onde encomendar e para onde enviar esse produto, tendo como objetivo principal a maxima poupanca de custos de transporte e expedicao doproduto de uns paises origens para os paises destino.

o quadro que se segue apresenta os custos de transporte e expedicao por produto enviado para todos os "caminhos" alternativos, bern como as disponibilidades de cada laboratorio para 0 pr6ximo mes, e as necessidades de cada mercado cliente.

a) Formule 0 problema.

b) Modele 0 problema na linguagem MOSEL.

UfRRj

Universidade Federal Rural do Rio de Janeiro

if:
0
"'0
'U ee
::: :'S!
Vi J
? 0"
~ 5 :E '8 :E
..:0 ..£2 > ~ 0 e: ::
tt; -0 0
.~ o C :':l :- c;
~J g~ e:: c,
..0 ,_' o:
'..:: ~ :;:;: i~ ~ C
,-t -« ,':...) if)
Holallda 300 350 450 250 500 300 20
Belgica -'00 250 350 200 400 350 15
Italia 450 300 450 400 560 250 20
Portugal 350 250 400 300 200 500 5
Necessidades 15 15 5 10 5 15 7.2 Uma empresa de areia deseja atender a demanda de alguns c1ientes em quatro bairros distintos. A empresa possui 3 bases de atendimento. As respectivas ofertas e demandas por manutencao sao dadas da Tabela abaixo.

Demanda em cad a Bairro
Bairro Azul I Bairro Roxo I Bairro Cinza I Bairro Rosa I I
20 I 30 I 25 I 20 I r
Oferta
Basel I Base3 I Base3 I I
50 I 10 I 25 I I Suponha que as distancias entre uma base e uma rua J sejam dadas por:

d =~i2 +2/ .

a) Formule 0 problema.

b) Modele 0 problema na linguagem MOSEL.

c) Assuma arbitrariamente urn conjunto de coordenadas (x,y) e resolva 0 problema anterior considerando distancias euc1idianas. Dica: use 0 Teorema de Pitagoras,

7.3 Uma companhia tern tres fabricas que produzem chocolate que serao enviadas a quatro centros de distribuicao. As fabricas 1,2 e 3 produzem (em Kg) 12, 17 e 11 remessas por mes, respectivamente. Cada centro de distribuicao precisa receber 10 quilogramas por mes. A distancia de cada fabrica ate os respectivos centros de distribuicao e dada abaixo em quilometros. Formule 0 problema do transporte.

Centro de Distribuicao
1 2 3 4
1 800 1.300 400 700
2 1.100 1.400 600 1.000
3 600 1.200 800 900 UfP;Rj

Universidade Federal Rural do Rio de Janeiro

7.4 0 setor de protocolos de uma empresa recebeu 12 tarefas prioritarias para serem entregues ate 0 final da semana. Esse setor possui 12 funcionarios aptos a fazerem quaisquer dessas tarefas. Os tempos de realizacao de cada tarefa por funcionario sao dados na tabela abaixo. Formule 0 problema (Obs: cada funcionario deve fazer exatamente uma tarefa).

Nome do TI T2 T3 T4 T5 T6 T7 T8 T9 TIO T11 TI2
funcionario
Bryan I 2 5 4 I 8 10 3 4 10 2 1
Clark 2 3 2 3 2 4 2 2 3 11 3 1
Imon 3 4 3 2 3 4 2 1 1 12 4 2
Glauber 2 3 1 1 4 5 2 5 4 13 5 2
Leona I 2 4 3 5 3 7 7 5 14 1 3
Terry 3 1 5 5 1 7 7 4 6 14 3 3
Kim 1 4 10 7 2 9 4 3 3 11 5 1
Joe 2 5 4 6 3 10 3 2 2 10 7 1
Ralph 5 6 7 4 3 11 2 8 12 9 2 1
Yagami 2 7 8 9 3 12 1 9 7 7 1 2
Yamazaki 3 2 10 2 4 6 3 1 8 12 9 6
Yuri 4 1 4 3 4 7 7 3 9 9 6 8