oTtMtzAçÃo MODETO DEctsÃo srMunçÃo rónuuH vArrolçÃo
Transcript of oTtMtzAçÃo MODETO DEctsÃo srMunçÃo rónuuH vArrolçÃo
ANTHONY BROOKE . DAVID KENDRIKALEXANDER MEERAUS
oTtMtzAçÃoMODETO DEctsÃoPROG
rónuuHsrMunçÃovArrolçÃo
ESCoP0 OBJETIVO
SISTEMA
GAMSSISTEMAGERAL DE
MODELAGEMALGÉeRIcA
JMStern Pesquisa operacionat EDIroRA t""gf er-ücsER''or"
ANTHONY BROOKEDAVID KENDRICK
ALEXANDER MEERAUS
GAMSSIsTEnaa GEnNL DE MOOENGEM AI-CÉENICN
TraducãoJACOB Nr,gANõ SOBRINHO
Ph.D. pela Univesidade de São PauloProfessor adiunto do Instituto de Matemática da USP
Supervisão técnicaJULIO MICHAEL STERN
Ph.D. pela Univesidade de Cornell. EUADirètor do Centro de Matemática e
ComputaçãoAplicadas do IME - USP
JMStern Pesquisa Operacional
/F\t
EDITORA EDGAFID EIIJCHER TToI
O 1997 AnthonY BrookeDavid KendrickAlexander Meeraus
ls edição - 1997
É proíbida a reproilução total ou parcíal
Por quaisquer meiossem aú0rtgção escríta da editora
EDITORA EDGARD BLÜ CHER LTDA'Fax: (0/1) 852-2707
Caixa Postal545001061-970 - S. Paulo - SP - Brasil
Impresso no Brasil Printed in Brazil
^u !vÃ.<, r
êr .z:Z:\.'f
Fs ,A?.P- ZZZÀ\T E,-
---^allal
âF-.-R.R+"ffi neë-tè
q or"o1o È"
EDITORA AFILIADA
Conteúdo
coxrpúoopnpr'ÁcIo À notçÃo eneSILEIRApRpr'Ácto
PARTE I - Introdução
t rNTRoouçÃo1.1 t v to t ruaçÃo. . .\.2 cARAcTERÍsrlcns eÁstCAS DE gÁME
(a) Princípios Gerais(b) Documenüação(c) Portabilidade(d) A interface com o usuário(e) A Biblioteca de Modelos
1.3 oRGANIzAçÃo oo LIVRoL.4 PREPARANDO-SE PARA COMEçAR
2 UM TUTORIAL gAMEINTRODUçAOA ESTRUTURA DE UM MoDELo 9"41ì48C O N J U N T O S . . . .
I
viiviii
2.L2.22 .32.4
D
c
8I
DADOS 1 11 11313t4
(a) Enürada de dados(b) Entrada de dados(c) Entrada de dados
por meio de listaspor meio de üabelaspor meio de atribuição direta
2.52.6
VARIAVEIS . .EQUAçõES . . . . . _ . .
(a) Declaração de equações(b) A notação de soma e produto em 9"4M8
OS ENUNCIADOS DO TIPO MODEL e SOLVEOS ENUNCIADOS DO TIPO DISPLAYA BASE DE DADOS u.LO, .L, .UP, .M"(a) Atribuição do limite de variáveis e/ou valores iniciais
1515
(c) Definição de equaçõesFUNçAO OBJETIVO
15161818191919
2.72.82.92.L0
t l Conteúdo
(b) Tlansformação e display dos valores ótimos2.1L SAÍDA DO PROGRAMA 9"4Ìvt8
(a) Impressão de echo(b) Mensagens de erro(c) Mapas de referência(d) Listagens de equações(e) Estatísticas do modelo(f) Relatórios de status(g) Relatórios de solução
2.].2 CONCLUSÕES
PARTE II - A Linguasem $AÌVLS3 PROGRAMAS g"4I4E
3.1 A ESTRUTURA DOS PROGRAMAS 9-4}483.2 oRcANrzAçÃo Dos pRocRAMAS 9.4'vt83.3 DEFTNTçÕES E TIPOS DE DADOS3.4 Ítnus DE LINGUAGEM
(a) Caracteres(b) Palavras Reservadas e Tokens.(c) Identificadores(d) Rótulos(e) Texto(f) Números(g) Delimitadores(h) Comentários
3.6 SUMÁRIO
202 I2 t23252627272830
34
343537373738383 9 r4040474t42
4 DEFINIçOES DE CONJUNTOSCONJUNTOS SIMPLESO ENUNCIADO ALIAS: NOMES MULTIPLOS PARA CONJUNTOSSUBCONJUNTOS E VERIFICAçÃO DE DOMÍNrO . .CONJUNTOS MULTIDIMENSIONAIS E FUNçÕES . .SUMÁRIO
ENTRADA DE DADOS: PARÂMETROS, ESCALARES& TABELAS5.1 PARÂMETROS .5 . 2 E S C A L A R E S . . .5.3 TABELAS SIMPLES5.4 TÂBELAS CONTINUADAS .5.5 TABELAS COM MAIS DE DUAS DIMENSÕES. . .6.6 RELAToS DE ERRoS DURANTE A CoMPILAçÃo5-7 ENTTNCIADOS DO TIPO PARAMETER E TABLE QUE NÃO POSSUEM
vERrFrcAçÃo oo DoMÍNro5.8 CONCLUSÕES
4.14.24.34.44.5
43
4346474750
52
525454c c
co
58
5960
Conteúdo i l l
6 MANTPULAçÃO DE DADOS COM PARÃMETROS
6 . 1 O E N U N C T A D O D E A T R I B U I ç Ã O . . . 6 26 . 2 O E N U N C I A D O D I S P L A Y . . . . . . . 6 56 . 3 E X P R E S S Õ E S S I M P L E S . . . . . . . . . 6 7
(a) Operações aritméticas padrão 67(b) Operações Indexadas 68(c) Funções 69(d) Aritmética Estendida e Tlatamento de Erros 71
6.4 TRATAMENTO DE EXCEçOES 72(a)OperadoresRelac iona is - . . - 72( b ) O O p e r a d o r D ó l a r ' . . - . . 7 2
6.5 INTEGRIDADE DE DADOS E ENUNCIADO ABORT 766.6 UM EXEMPLO FINAL 776 . 7 C O N C L U S Ã O . . . 8 0
VARIÁVEIS 81
7.t DECLARAçÃo np vARIÁvEIS 817.2 LIMITES EM VARIÁVEIS . 847.3 vARrÁvEIS EM DIsPLAY E ENUNCIADos DE ATRIBUIçÃo . . . . . . 847.3 SUMÁRIO 86
EQUAçOES 87
8 . 1 D E C L A R A ç Ã O D E E Q U A ç Õ E S . . . . . . . . . 8 78.2 DEFiNIÇÕES SIMPLES DE EQUAçÕES 88
8.3 DEFTNIçÕES DE EQUAçOBS INDEXADAS . . . s18.4 FUNçÕES E OPEEADORES ARITMÉTICOS UTILIZADOS EM DEFINI-
ÇÕES DE EeuAçÓES e2
8.5 -opBn,q.ÇÕES
DOLAR EM DEFINIçÕES DE EQUAçÕES . e3
(a) Controle das operações de índice pelo Dólar 93(b) Operadores Dólar internos à Algebra " " 93(c) O Controle do Domínio de Definição de uma Equação pelo -operador Dólar 95
8.6 ASPECTOS DO TRATAMENTO DE DADOS NAS EQUAçÕES . . . . ' . 96
8.7 SUMÁRIO 96
ENUNCIADOS TIPO MODEL & SOLVE 98
62
9.1 O ENUNCIADO TIPO MODEL9.2 CLASSTFICAçÃO DE MODELOS9.3 O ENUNCIADO SOLVE9.4 PROGRAMAS COM VÁNTOS ENUNCIADOS DO TIPO SOLVE . . . . . .
(a) Vários Modelos(b) Análise de Casos e Sensibilidade, e Relatórios(c) Implementação Iterativa de Algoritmos Não-standard
9.5 OPçOES USADAS COM ENUNCIADOS SOLVE(a) Detalhe de Controle de Saída(b) Controle dos Recursos do Computador Usado pelo Solver(c) Controle de Ações tomadas pelo Solver(d) O Controle pelo qual o Solver é Usado
9899
100101101101103104104105106r07
IV Conteúdo
9.6 TORNANDO NOVOS SOLVERS COMPATÍVEIS COM 9"4MS . . IO7
10 sAÍDA gc]lr's 1oe10.1 SAÍDA DE COMPTLAçÃO . . loe
(a) Impressão de Echo do Arquivo de Entrada . . . 109( b ) M a p a s p r o d u z i d o s . . . . . . 1 1 3(c) Diretivas Usuais de Controle tipo Dólar . . . . 115
10.2 SAÍDANAEXECUçÃO . . . . 11610.3 SAÍDA PRODUZIDA POR UM ENUNCIADO DO TIPO SOLVE . . . . . . 117
( a ) A l i s t a g e m d a E q u a ç ã o . . . L 1 7( b ) A l i s t a g e m d a s C o l u n a s . . . 1 1 9( c ) E s t a t í s t i c a s d o M o d e l o . . . . 1 1 9( d ) O s u m á r i o d o S o l v e . . . . . L 2 0( e ) A l i s t a g e m d a S o l u ç ã o . . . . 1 2 3
10.4 RELATÓNTO DE ERROS . . . T25(a) Erros de Compilação . . . L26( b ) E r r o s d e E x e c u ç ã o . . . . . . L 2 7(c) Erros de Solve
l o .scoNcLUSÃO . . . . . r2s
].1 CONJUNTOS DINÂMICOS
1 1 . 1 C O N J U N T O S E S T Á T I C O S E D I N Â M I C O S . . . 1 3 01.1.2 ATRTBUIçÕES DE CONJUNTOS . . . 13011.3 oPERAçÕES DE CONJUNTOS: UNrÕES, TNTERSECçÕES E COMPLF-
M E N T O S . . . 1 3 311.4 vERrFrcAÇÃO DE DOMÍNIOS COM CONJUNTOS DrNÂMICOS . . . . 134
12 CONJUNTOS COMO SEQUENCIAS:MODELOS DINÂMICOS12.1 CONJUNTOS ORDENADOS ENAOORDENADOS . . . . . . . . T37L 2 . 2 C P " D E C A R D . . . . . 1 3 81 2 . 3 o P E R A ç Õ E S D E A V A N ç O E R E T R O C E S S O . . . . . . 1 3 e
(a) Atribuições de Avanços e Retrocessos . 139( b ) A v a n ç o e R e t r o c e s s o e m E q u a ç õ e s . . . . L 4 1 .
L 2 . 4 O E N U N C I A D O L O O P . . . . . 1 4 3L 2 . 5 C O N C L U S Ã O . . . . . L 4 4
PARTE III - Tópicos especrars
13 O ENUNCIADO DISPLAY
130
L37
146
13.1 A ORDEM DOS RóTULOS EM DISPLAYS . . . T4713.2 ENIJNCTADOS DE OPçÕES QUE CONTROLAM DTSPLAYS . . . . . . . r4s13.3 EXPORTÂçÃO DE DADOS PARA OUTROS PROGRAMAS . . . . . . . . 151
Conteúdo
L4 SALVANDO E RECOMEÇANDO: O ARQUIVO DE TRABALHO 153
1 4 . 1 o C o N C E I T o D E A R Q U I V O D E T R A B A L H O . . . . . . 1 5 3
I 4 . 2 S A L V A N D O O S A R Q U I V O S D E T R A B A L H O . . . . . . . 1 5 4I 4 . 3 R E I N I C I A N D O . . . . 1 5 5
14.4 MANETRAS DE APROVEITAR OS ARQUIVOS DE TRABALHO . . . . . 156(a) Programa de Desenvolvimento Incremental . . 156(b) Lidando com Seqüências de Solves Difíceis . . . 156( c ) C e n á r i o s m ú l t i p l o s . . . . . . 1 5 7
l 4 .5suMÁRro . . . . . . .1 .57
L5 PROGRAMAçAO NAO-LINEAR
15.1 ASPECTOS GERATS DE PROGRAMAçÃO NÃO-lWeeR . . .
(a) Valores Iniciais(b) Limites(c) Escalonamento(d) Reformulação da F\rnção Objetivo(e) Derivadas Descontínuas e Ótimos Múltiplos
15.2 ASPECTOS PARTICULARES A RESPEITO DE GAMS/MINOS(a) O Sumário do Solve GAMS/MINOS(b) Confronto com a não Viabilidade não-linear(c) O Sumário da Tela(d) Desconsiderando a Base(e) O Uso dos Arquivos de Op,ções GAMS/MINOS ' .
].6 PROGRAMAçÃO INTEIRA MISTA
16.1 ASPECTOSGERAIS A RESPEITO DE PROGRAMAçAO INTEIRA EMiSTA
159
159160160161r62L62t62163t64r b b
165165
L67
t67
(a) As'folerâncias de Término em 9,4M8 . . . . . 167
( b ) R e i n i c i a n d o a s e x e c u ç õ e s M I P . . . . . 1 6 8
16.2 ASPECTOS PARTICULARES A RESPEITO DE GAMSIZOOM . . . . . . 168
17 MODELOS DE GRANDE PORTE
17.1 PORQUE MODELOS DE GRANDE PORTE DEVEM SER EVITADOS . . 170
17.2 COMO LIDAR COM MODELOS DE GRANDE PORTE . . . . . . 171
17.3 LIMITAçÕNS DE TAMANHO EM 9'4MS E SEUS SOLVERS . . . I7T
17.4 coNsrDERAçõESARESPEIToDEEFIcIÊNCIA . . . . . . . . t74
L8 PONTUAçÃO ENFRAQUECIDA L76
1 8 . 1 P O N T O E V Í R G U L A . . . . . , T 7 6
l 8 . 2 V Í R G U L A . . 1 7 7
18.3 FINAL DE LINHA . . T77
1 8 . 4 A S P A S . . . . . . . . . r 7 7
170
Conteúdo
19 A BIBLIOTECA DE MODELOS L79
19 .1 TNTRODUçÃO . . . . 17s19 .2 OSMoDELOS . . . . . 180lg .3REFERÊNCIAS . . . . 184
APÊNDICES
A A CHAMADA 9"4ì48 leo4.1 A CHAMADA GENERICA Sil]YfS "SEM XABU,, . . .A.2 A cHAMADA GENÉRIcA DE "oPçÃo"4.3 EXEMPLoS DE SEQüENCIAS DE CHAMADA PARA MICROS MS-DOSA.4 EXEMpLos oe snqtlÊNCHS DE cHAMADA PARA SISTEMAS IBM
CMS .4.5 EXEMPLOS DE SEQTJENCIAS DE CHAMADA PARA SISTEMAS VAX
v M S . . . . . . 1 9 3
B oPÇoES DE coNTRoLE PELo DoLAR L94
8.1 coNTRoLES DE FoRMATAçÃo oa ENTRADA8.2 coNTRoLES DE FoRMATAçÃo oa seba8.3 coNTRoLES DAS A^ET.SRÊTqCIAS DE MAPAS8.4 EXEMPLO
C O ENUNCIADO OPTION
D sÃ\/tglurNosD.l UMA DEScntçÃo cERAL DE9AMEIMINoSD.2 o FoRMATo DE uM ARQUrvo DE oPçoES g/Ms/MINos .D.3 oeçÕes g"4Ms/MINos . .D.4 REFEnÊlucns
E gAiltE/zooM8.1 uue vtsÃo cERAL DE zooM8.2 oeçons gAmslzooM ESPECIFICADAS EM sEU PRoGRAMA . . . . .E.3 FORMATO DO ARQUIVO DE OeçOnS S"LMS/ZOOM . . .8.4 oeçoes sAms/zooM . .E.5 DrcAS eARA coNTRoLAR A RAMIFIcaçÃo E PoDA
F GRAMÁTICA
G GLOSSÁRIO
REFERÊNCIAS BIBLIOGRÁFICAS
INDICE
190191192
t94195L97198
20L
204
20421021.2230
23L
23r24024L242245
247
254
263
280
PREFÁCIOEDrçAO BRASTLETRAA
Tem sido um grande prazer para a J.M.Stern Pesquisa Operacional representar no Brasilo Software 9"4MS (Sistema Genérico de Modelagem Algébrica). 9r4ME é hoje o sistemade Programação Matemática mais utilizado em todo o mundo para modelagem em PesquisaOperacional. Varios fatores contribuem, a nosso ver, para tal sucesso:
1. A Linguagem $ÁMS possui uma sintaxe simples, intuitiva e poderosa, que permitedescrever com facilidade modelos complexos de Otirnização.
2. O Sistema 9,ÁME tem uma filosofia aberta, sendo compatível com uma grande va-riedade de soluers, i.e., programas resolventes paÍa os problemas de ProgramaçãoMatemática gerados pelo modelo de Pesquisa Operacional.
3. A existência de uma ampla bibüoteca de modelos, já desenvolvidos e testados, facilitao desenvolvimenüo de novos progriìm.ìs.
A tradução deste guia para o Português é parte do esforço da J.M.Stern-P.O. de darsuporte para a crescente comunidade de usuários 9"4MS no Brasil. Esperamos tambémque a tradução do guia contribua p.ua o ensino de Pesquisa Operacional e todas as suasáreas de aplicação. Os interessados poderão obter uma versão estudantil de 9"4ME e algunssolvers, juntamente com uma pequena biblioteca de exemplos. Para tanto, contacte-nos nomdereço eletrônico abaixo. Somos gratos a vários alunos e professores da USP, UNICAMPe PUC-CAMP, por suas sugestões no trabalho de revisão desta tradução.
A biblioteca que acompanha a versão estudantil inclui exemplos nas áreas de Admi-nistração, Agro-Indústria, Comunicações, Desenvolvimento, Ecologia, Economia, Energia,Engenharia, Estatística, Finanças, Matemática, Nutrição, Planejamento, e Política de Co-mercio, Militar, de Tlansporte, Tlibutária, Urbana, etc.
J.M.Stern Pesquisa Operacional eEquipamentos de Informática Ltda.Rua Marcelino Ritter L, Pacaembu,01246-090, São Paulo, Brasil.Tel/Fax: (+55-1 1)-259-1217 3159-227 IBmail: [email protected]
I
I
tvll
PREFACIO
Este guia de estudos descreve os principais aspectos de 9"4ME (a sigla abrevia Gene-
ral Algebraic Modelling System) e ensina como usá-lo. gÁMS foi projetado para fazer a
construção e resolução de modelos matemáticos amplos e complexos de forma mais direta
para programadores, e mais inteligível para usuários de modelos em outras disciplinas, e.g.,
economisüas. Pelo fato de poder efetuar enunciados concisos de modelos em uma linguagem
que pode ser facilmente lida tanto por especialistas como por computadores, $ÁME pode
aumentar substancialmente a produtividade dos modelistas e expandir bastante a extensão
e o uso das aplicações de programação matemática em análise de políticas e tomadas de
decisão.O ímpeto para o desenvolvimento de $ÁMS adveio das experiências frustrantes de um
grupo de modelagem ecouômica do Banco Mundial. Mesmo as técnicas disponíveis mais
evoluídas para desenvolver e resolver, e.g., modelos econômicos multi-setoriais em larga
escala ou ainda modelos amplos de simulação e otimização em setores tais como agricultura,
siderurgia e fertilizantes, possuiam sérios defeitos. Os programadores do grupo escreviam
programas em FORTRAN para preparar a solução de cada modelo; o trabalho era entediante,
exigindo muitos esforços, e os erros eram fáceis de fazer e difíceis de achar. Além disso,
os economistas envolvidos freqüentemente achavam as representações computadorizadas de
seus modelos complicadas, consumindo muito tempo para a compreensão e o trabalho; o
programador do modelo, às vezes, era a única pessoa que conhecia exatamente como o modelo
funcionava. Assim, a demissão de um programador fazia com que demorassem meses até que
seu sucessor dominasse o programa. Os modelos também eram difíceis e caros demais para
serem mudados, especialmente se a mudança contemplada não houvesse sido planejada ou
prevista. Nas apresentações em seminários, os modeladores tinham que defender as versões
existentes dos modelos, algumas vezes irracionalmente, porque o tempo e dinheiro envolvidos
em mudanças tornavam as modificações própostas proibitivas. Esses modelos não podiam ser
adaptados a novos ambientes, não apenas pelo conhecimento especializado de programação
necessário, mas também porque os formatos de dados e os métodos de solução não eram
portáveis. gÁMS foi projetado para mudar essa situação, fornecendo uma estrutura de
sistemas e uma linguagem de programação na qual concisão de expressões, generalidade e
portabilidade são passíveis de facil manutenção, além de usar o computador para rastrear
tantos detalhes de programação quantos possíveis.
Tendo em vista as origens do sistema, não se consititui em surpresa que as pessoas que
desenvolveram 9,4MS devam considerável gratidão ao Banco Mundial. A pesquisa e desen-
volvimento de 9ÁMS foram custeados pela Comissão de Pesquisa do Banco (RPO671-58 e
623-06), e foram executados sob a direção de Alexander Meeraus no Centro de Pesquisa e De-
senvolvimento (mais tarde Departamento) em Washigton D.C. Muitas pessoas participaram
do projeto e da implementação do sistema em tempos diversos; uma vez que a atribuição
exata de cada um dos mesmos é impossível, nós simplesmente os listamos em órdem al-
façtica: Masood Ahmad, John Ayler, Jan Bisschop, Pete Bleyendaal, Tony Brooke, Henrik
vlll
Prefácio tx
Dú1, Arne Drud, Paul van der Eijk, Richard Inman, David Kendrick, Mohammed Ketabchi,yonatan Levi, Alex Meeraus, Soren Nielsen, Sethu Palaniappan, Helen Patton, Skip Paules,peter Pellemans, Mohammed Pourghadiri, e Ardy Stoutjesdijk. Os auüores principais do
sofiuaresão: Tony Brooke, Paul van der Eijk e Alexander Meerhaus'
Sem o apoio, compreensão, e compromisso da administração senior, o projeto seria
impossível. Em órdem cronológica, J. Duloy, A. Stoutjesdijk, e G. Ingram, foram os dire-
torls responsáveis pelo departamento, e Hollis B. Chennery e Anne O' Kreuger, os vice-
presidentes. B. Balassa, B. King e D. Lal foram administradores de pesquisa' Nós todos
muito lhes devemos.
Também muito devemos a Allan Manne e Michael Saunders. Eles revisaram incansavel-
mente sucessivas versões deste liwo e contribuirÍrm para torná-lo mais claro, menos prolixo
e mais didático. Peter Bocock fez um excepcional trabalho de edição e de arte final, e
também recebemos comentários e sugestões de J. Coüas, P. Manouchehri-Adib, B' McCul-
lough, B. Paulin, S. Rogers, e R. Rosenthal-
Somos também gratos a Roy Marsten e Micüael Saunders por cederem seu tempo gra-
tuitamente enquanto ZOOM e MINOS estavam sendo modificados para rodar com 9ÁMS.Também somos gratos àqueles que escreyeram partes deste livro: Rick Rosenthal, pelo
Capítulo 2, o tutorial; Philip Gill, Walter Murray, Bruce Murtagh, Michael Saunders e Mar-
g"r"tl Wright, pelo Apêndice D sobre 9/$I{S/MINOS; Roy Marsten e Jaya Singhal, pelo
Ápêndice Eìobre }AMSIZOOM. Um muito obrigado a todos os usuários de 9"4M8, que são
em demasiado número para serem mencionados individualmente, que fizeram comentários
sobre o softwore, nos mostrareÍn seus modelos, e relataram alguns erros.
Anthony BrookeThe Worlil Bank
David KendrickThe Uniuersity of Teras
Alexander MeerausThe World Bonk