Você está na página 1de 8
Universidade Federal Rural do Rio de Janeiro PROFESSOR: Erito Marques de Souza Filho DISCIPLINA: Pesquisa Operacional / Programaco Linear ‘TEMA: Modelagem de Problemas de Otimizago em linguagem Mosel. DATA: INSTRUCOES . “Wy Mb 1 — Os textos abaixo mostram como deve ser feita a modelagem matematica de problemas de Pesquisa Operacional usando uma linguagem denominada MOSEL. 2 — Na segunda parte, stio mostrados exemplos de problemas modelados de acordo com essa linguagem. 3~Os alunos devem se dividir em grupos de trés pessoas. 4~Cada grupo deve ler atentamente os textos e os exemplos. 5 ~ 0s alunos de cada grupo devem discutir entre si 0s textos lidos. 6 —Na tiltima etapa cada grupo deve resolver os exercicios propostos. Esses exercicios devertio ser entregues impreterivelmente na préxima aula. Universidade Federal Rural do Rio de Janeiro L.INTRODUCAO A linguagem Mosel é um ambiente para modelagem ¢ solugo de problemas de otimizagiio que faz. parte do pacote do software Xpress-MP. Atualmente, ela tem sido bastante util na solugio de diversos tipos de problemas, figurando entre as melhores ferramentas disponiveis no mercado para esse fim. Essa ferramenta foi desenvolvida pela empresa DASH/FICO OPTIMIZATION. Ela disponibiliza uma versio de estudante desse software, que pode ser encontrada no seguinte hiperlink: ttp://optimization.fico.com/demos/ 2, ESTRUTURA GERAL DE UM MODELO EM MOSEL Todo modelo em MOSEL: © Inicia com a palavra model seguida por um nome. * Termina com a palavra reservada end-model. «Todos os objetos devem ser declarados em uma segBo que comega com a palavra reservada a declarations ¢ termina com a palavra reservada end-declarations. Pode haver varias seges do tipo “declarations” em diferentes partes de um modelo. ‘Todo comentirio deve ser feito utilizando-se o simbolo de exclamagao (1). 3,0 PROBLEMA DA EMPRESA DO TRANSPORTE ‘Suponha que uma empresa possua 3 centros de distribui¢o de sal e 4 supermercados. Cada centro de distribuigo tem uma oferta de produtos (em toneladas) ¢ cada mercado uma demanda. Além disso, 08 custos de envio de uma tonelada de sal de um centro de distribuiggo para uma mercado s80 distintos. As tabelas abaixo sintetizam os dados. ‘Custos de envio (RS). Centro de Distribuigéo ‘Mereado | Mercado | Mercado (CD) Mercado 1 a 5 A 1 0 36 rH 39 2 28 27 26 30 3 35 37 39, a4 ‘Demanda de sal por supermereado (ton) ] Mercado | Mercado | Mercado Mercado 1 A 4 fi 200 300 250 250 ‘Oferta de sal cbi cp2_| CDs 350, 300 350 Primeiramente devemnos modelar adequadamente o problema: institute Muttidiscl Campus Nove Universidade Federal Rural do Rio de Janeiro Seja x, :quantidade de sal a ser enviada do centro de distribuigdo i para a mercado j. Note que o total de varidveis de decisdo seré igual a 3x4 = 12, Nesse modelo devemos minimizar o custo total de transporte da empresa sujeito as restrigdes de oferta e demanda: Minimizar Custo Total: °Y°¢,x, No modelo acima as variveis ¢, representam o custo de enviar uma tonelada de sal do centro de distribuigao i para o mercado j. Os pardmetros d,e 0, representam respectivamente as demandas de cada mercado e as ofertas de cada centro de distribuigdo. 4, MODELANDO O PROBLEMA NA LINGUAGEM MOSEL model sal ! nome do modelo uses “mmxprs” ! indica otimizador a ser utilizado declarations ! aqui so declarados pardimetros e varidveis do problema cendis = 1.3 ! centros de distribuigao mercado ! mereados ¢: array(cendis, mercado) of real _! pardmetros de custo x: array(cendis, mercado) of mpvar_! varidveis de decisio 0: array(cendis) of real ! ofertas d: array(mercado) of real ! demandas end-declarations ! toda declaragao deve ser finalizada com end-declarations c:: [40, 36, 42, 39, ! matriz de custos 28, 27, 26, 30, 35, 37, 39, 44] 0:: [350, 300, 350] ! matriz de oferta di: [200, 300, 250, 250] ! matriz de demanda institute Muttidisciplinar ‘Compus Nova Iguacu ‘FAR Universidade Federal Rural do Rio de Janeiro forall(j in mercado) ofe centro = sum(i in cendis) x(ij) = d@) | restrigdes de oferta em cada forall(i in cendis) deman:= sum(j in mercado) x(ij) = o(i) | restrigSes de demanda custo:= sum(i in cendis, j in mercado) e(i,j)*x(ij) ! fungao objetivo minimize (custo) orientagio da fungdo objetivo writeln(“O custo eh: ”, getobjval) | escreve o valor da fungfio objetivo na tela forall(i in cendis, j in mercado) vwriteln(“O valor de x(”, i,“.",j, “) eh:”, getsol(x(i,)))! escreve 0 valor das VD end-model ! finaliza 0 modelo 5. O PROBLEMA DA EMPRESA DO TRANSPORTE REVISITADO Suponha agora que a empresa possua 5 centros de distribuigdo de sal e existam 6 mercados. Cada centro de distribuigao tem uma oferta de produtos ¢ cada mercado uma demanda. Além disso, 0s custos de envio de uma tonelada de sal de um centro de distribuigio para um mercado 40 distintos. As tabelas abaixo sintetizam os dados. Centro de Distribuig0 | \rescago 1 rue Bionta|eeaaa a eee 40 36 a2 39 44 | 28 27 26 30 45 64 35 37 39 44 [37 135 40 41 a2 [45 33 39 Le 21 22 25 27 29 | 30 | Demanda de sal por mercado an| Mercado 1 | Metcado | Mercado aa Sn 200 300 250 250 300 200 | Oferta de sal por Mereado CDi eb2_ | cp3 cD4 cps 350 300 350 500 ee E90. Primeiramente devemos modelar adequadamente o problema: Seja x, :quantidade de sal a ser enviada do centro de distribuigao i para o mercado j. Instituto Mulidieciplinar Compus Nove veg Universidade Federal Rural do Rio de Janeiro Nesse modelo devemos minimizar o custo lucro total de transporte da empresa sujeito as restrigdes de oferta e demanda: imicar Custo Total: 3° ey, Dae x, €Z,,Vis1.5,/=1.6 No modelo acima as varidveis ¢,representam custo de enviar uma tonelada de sal do centro de distribuigao i para o mercado j. Os pardmetros d,e 0, representam respectivameute as demandas de cada mercado e as ofertas de cada centro de distribuigdo. Note que o total de varidveis de decisao sera igual a 5x6 = 30. 6. MODELO REVISITADO NA LINGUAGEM MOSEL model sal_rev ' nome do modelo uses “mmxprs” 1 indica otimizador a ser utilizado declarations ! aqui so declarados pardmetros e varidveis do problema cendis ! centros de distribuigtio mercado ! mercados ¢: array(cendis, mercado) of real! pardmetros de custo x: array(cendis, mercado) of mpvar ! variaveis de decisao o: array(cendis) of real ! ofertas 4d: array(mercado) of real ! demandas end-declarations ! toda declaragdo deve ser finalizada com end-declarations cx: [40, 36, 42, 39, 44, 68, ! matriz.de custos 28, 27, 26, 30, 45, 64, 35, 37, 39, 44, 37, 135, 40, 41, 42, 45, 33, 39, 21, 22, 25, 27, 29, 30] 0: [350, 300, 350, 300, 350] | matriz de oferta rte Instituto Multidise! ‘Campus Nove Iguacu Universidade Federal Rural do Rio de Janeiro centro (200, 300, 250, 250, 300, 200] matriz de demanda forall in mercado) ofert:= sum(i in cendis) x(ij) = d(j) _! restrigdes de oferta em cada forall(i in cendis) deman: mercado) x(ij) = o(i) _! restrigdes de demanda custo>= sum(i in cendis, j in mereado) e(i,j)*x(ij) ! fungao objetivo minimize (custo) orientagao da fungao objetivo writeln(“O custo eh: ”, getobjval) _! escreve o valor da fungio objetivo na tela. forall(i in cendis, j in mercado) writeln(“O valor de x(*, i, “,”, j, “) eh:”, getsol(x(ig))) ! escreve o valor das VD end-model ! finaliza o modelo 7. EXERCICIOS 7.1 A empresa African, S.A. tem negécios em diversos paises afficanos como Angola, Mogambique, Cabo Verde, So Tomé, Ruanda e Africa do Sul. A sua atividade de trading traduz-se na compra de medicamentos em Laboratérios Europeus, nomeadamente na Holanda, Itélia, Bélgica ¢ também Portugal, e sua venda nos paises africanos mencionados. ‘No préximo més, a empresa teré de fazer um planejamento mais cuidado das encomendas de um kif de primeiros socorros para todos os paises mencionados, uma vez que surgiu inesperadamente queda na oferta do mesmo produto, nos laboratérios onde normalmente se abastece, A empresa pretende, portanto decidir onde encomendar e para onde enviar esse produto, tendo como objetivo principal a méxima poupanga de custos de transporte ¢ expedigdo do produto de uns paises origens para os paises destino. © quadro que se segue apresenta os custos de transporte e expedigio por produto enviado para todos os “caminhos” alternativos, bem como as disponibilidades de cada laboratorio para o proximo més, e as necessidades de cada mercado cliente. a) Formule o problema. b) Modele o problema na linguagem MOSEL. Instituto & Mutiidisciplinas ‘Campus Nova Iguacu ree Holanda 0 250 500 20! Balgica, 350 200 400 15 tia 450 400 560 20, Portugal 400 300 200 5 Necessidades| 3 | 10 5 7.2 Uma empresa de areia deseja atender a demanda de alguns clientes em quatro bairros distintos. A empresa possui 3 bases de atendimento. As respectivas ofertas ¢ demandas por manutengdo sto dadas da Tabela abaixo. i Demanda em cada Bairro Bairro Azul | Bairro Roxo | Bairro Cinza | Bairro Rosa 20 30 ___25 20 a Oferta Basel Based Base} 50 10 25 Suponha que as distincias entre uma base i e uma rua j sejam dadas por: d=Ji +27. a) Formule o problema, b) Modele o problema na linguagem MOSEL. ©) Assuma arbitrariamente um conjunto de coordenadas (x,y) e resolva o problema anterior considerando distancias euclidianas. Dica: use 0 Teorema de Pitdigoras. 7.3 Uma companhia tem trés faibricas que produzem chocolate que serio enviadas a quatro centros de distribuigaio. As fabricas 1,2 e 3 produzem (em Kg) 12, 17 ¢ 11 remessas por més, respectivamente. Cada centro de distribuigao precisa receber 10 quilogramas por més. A distiincia de cada fabrica até os respectivos centros de distribuigao é dada abaixo em quildmetros. Formule o problema do transporte. Centro de Distribuigao 1 2 3 4 1 800 1.300 400 700 2 1.100, 1.400 600, 1.000 3 600, 1.200 800 900 rer Universidade Federal Rural do Rio de Janeiro 7.4 O setor de protocolos de uma empresa recebeu 12 tarefas prioritarias para serem centregues até o final da semana. Esse setor possui 12 funcionérios aptos a fazerem quaisquer dessas tarefas. Os tempos de realizagdo de cada tarefa por funcionério so dados na tabela abaixo. Formule o problema (Obs: cada funciondrio deve fazer exatamente uma tarefa). ‘Nome do fancionario | T! | T2 | 13 | T4 | 75] 16 | 17 | T8 | T9 | T10) T11 | T12 Bryan aj2ts Tayi ts fils [4 fi f2 [a ‘Clark 2;3 [2137274727273 [nf3fi Imon a |e | | VV | | Glauber [ 2 [3 [i Ji las f2[s)4 [3s {2 Leona 1] 2);4;3 ps3 t7 [77s [afi 3 Terry 3) i]s [3s [i f7 {74 [eo fiay3 3 Kim 1 [4 fil7{[2;oTatst3 futsyi Joe 2) Et] | Rd 1) 2 1 | 7 Ralph Sto6{[7{4a [3 ;ujt2f[sfia2fof2yi Yagami_ | 2 | 7] 8 [9 73 [ti fs [7}7 [1/2 Yamazaki | 3 | 2 [10 [2] 4{[6f[3f[i1f[s/i2|9|]6 ‘Yuri 4{tila{[3 4777/7399 els

Você também pode gostar