Investigação Operacional I. Guia de Utilização do Software. José Manuel Vasconcelos Valério de Carvalho. Universidade do Minho

Documentos relacionados
Optimização Combinatória. Guia de Utilização do Software

Programa de Unidade Curricular

Um algoritmo para aproximação da fronteira de Pareto em problemas de programação inteira multiobjectivo

Ferramentas Web, Web 2.0 e Software Livre em EVT

1 - Ambiente de desenvolvimento

Índice. Prefácio Os modelos de programação linear e a investigação operacional 17

INVESTIGAÇÃO OPERACIONAL. Programação Linear. Exercícios. Cap. IV Modelo Dual

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2006/2007

Análise e Síntese de Algoritmos. Programação Linear CLRS, Cap. 29

Funções de Entrada e Saída

Introdução à Lógica de Programação

Recurso Didáctico. Dossier Técnico Pedagógico Projecto: 5742/2008/22 Acção: 5742/2008/

Programação Linear. Rosa Canelas 2010

Prática 02. Total. Pré-requisitos 2 MTM112. N o

Simplex. Transparências de apoio à leccionação de aulas teóricas. c 2011, 2009, 1998 José Fernando Oliveira, Maria Antónia Carravilla FEUP

Otimização Combinatória - Parte 4

Desenho e Análise de Algoritmos CC /2018. Folha 1 - Revisão: Escrita de algoritmos em pseudo-código e verificação de correção

Palavras e frases chave: Programação Linear; Tomada de decisões; Objectivos. Clasificação AMS: (opcional)

CAPÍTULO 4. Teoria da Dualidade

Resolução de problemas difíceis de programação linear através da relaxação Lagrangeana

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Manual Prático. Elisabete Aguiar

Optimização em Redes e Não Linear

PESQUISA OPERACIONAL Introdução. Professor Volmir Wilhelm Professora Mariana Kleina

OranGest. Atualizar OranGest. Ficha Técnica Nº 7. Alameda Bonifácio Lázaro Lozano, 13, 1C Oeiras. T: W: magnisoft.pt.

Conteúdo GLPK. Notas. Introdução à Otimização, Utilizando o GLPK. Notas. Notas

Ferramentas Web, Web 2.0 e Software Livre em EVT

UFCD 0793 Scripts CGI e Folhas de Estilo Formadora: Sónia Rodrigues

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos. Problemas NP-Completos CLRS, Cap. 34

VISÃO GERAL. Faça a gestão da segurança de rede até 250 postos através de uma consola baseada na cloud.

Vânio Correia Domingos Massala

GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana

Teste do Programa Writer do OpenOffice

Algoritmos 3/17/ Algoritmos como área de estudo e investigação

PACWIN Módulo de Pesquisa MANUAL DO UTILIZADOR

Resolução do problema do caixeiro viajante assimétrico (e uma variante) através da relaxação Lagrangeana

Fundamentos de Investigação Operacional. Mestrado em Engenharia Civil 2010/11

Árvore Binária de Busca Ótima

Programação Matemática Lista 3

Introdução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores

Fundamentos de Investigação Operacional. Mestrado em Engenharia Civil 2011/12

Investigação Operacional

COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS

Introdução à Programação em C Input / Output

Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos

Problemas de Fluxos em Redes

Problemas de Fluxo em Redes

Fundamentos de TI. Aula07_Representação de dados pelo Computador.doc 1

Ferramentas Web, Web 2.0 e Software Livre em EVT

Introdução à Programação em C (II)

Escola Secundária com 3º Ciclo de Manuel da Fonseca

5. Expressões aritméticas

2º Trabalho Prático - Algoritmos em grafos

Lógica Computacional Aula 4

Inventários no Sistema Lasernet 2000

Ferramentas Web, Web 2.0 e Software Livre em EVT

Operações Básicas com Matrizes

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE

Pensamento Computacional. Atividade: Super Heróis. Isabel Maria Duarte Bastos

Melhor caminho entre duas estações de metro

1-1 PESQUISA OPERACIONAL INTRODUÇÃO

Gestão de Base de dados Formulários

Análise e Síntese de Algoritmos

Investigação Operacional

Métodos de Programação I Ana Maria de Almeida

Engenharia Industrial

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 3ª Parte Prof. Sandra Pais Soares

Investigação Operacional

Introdução aos Sistemas Informáticos

Investigação Operacional. Engenharia Informática Mestrado Integrado em Engenharia Electrónica e Telecomunicações Matemática e Aplicações

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 18

Introdução à Informática

Engenharia Civil. Representação da Informação. Introdução à Computação

Capítulo 2. Representação de dados em sistemas computacionais

Computação e Programação. Exame Época Normal

Gerência de Tecnologia da Informação e Conhecimento

PROGRAMAÇÃO E ALGORITMOS (LEII) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

Manual de Instruções NSS Editor MANUAL DE INSTRUÇÕES. Editor de bases de dados NSS EDITOR

TP052-PESQUISA OPERACIONAL I Introdução. Prof. Volmir Wilhelm Curitiba, Paraná, Brasil

Simplex. Investigação Operacional José António Oliveira Simplex

ÍNDICE 1.1. Conversão de documentos: 1.2. Verificar o formato do documento:

Guia de apoio à utilização. de serviços WFS, através do software GeoMedia

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Modulo 2 Gestão de Base

Guia de Instalação do "Google Cloud Print"

Ficha de Unidade Curricular (FUC) de Investigação Operacional

max z = 10x 1 + 4x 2 s.a x 1 + x x 1 + 4x x 1 + 6x 2 300

A palavra ALGORITMO teve origem com um Matemático Persa, al. Khawarizmi. O seu trabalho mais famoso foi Al-jabr walmuquabalah,

Programação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Uma introdução ao GAP

Codificação de Videotelefonia segundo a Norma ITU-T H.261

Aula teórica 4. Tema 3. Linguagem de Programação Java. Manipulação de informação simples (cont.)

COMPUTAÇÃO E PROGRAMAÇÃO

Sistemas de Numeração. Sistemas de Numeração. Sistemas de Numeração. RUIDO em Sistemas Computacionais. Arquiteturas de Computadores

Computação e Programação. MEMec - LEAN 1º Semestre

Comparação de softwares científicos utilizando perfis de desempenho: automatização dos cálculos pela planilha perfis.xls

MANUAL DE INSTALAÇÃO

Transcrição:

Investigação Operacional I Guia de Utilização do Software José Manuel Vasconcelos Valério de Carvalho Universidade do Minho 2003 Guia de Utilização do Software Este documento apresenta diversas informações sobre a utilização dos seguintes packages de programação matemática: - Problemas de Programação Linear: LP_SOLVE - Problemas de Optimização em Rede: RELAX Estes packages usam ficheiros de dados como input. Para construir o ficheiro de dados pode ser usado qualquer processor de texto, desde que o ficheiro seja guardado como um ficheiro de texto, apenas com caracteres ASCII. No caso do WORD, deve ser usada a opção GUARDAR COMO ficheiro do tipo TEXT ONLY (*.TXT), podendo o utilizador escolher o nome que pretende dar ao ficheiro. Ficheiros do tipo *.DOC não podem ser utilizados, porque contêm um cabeçalho com caracteres invisíveis para o utilizador que os programas interpretam como dados do problema. Os resultados dos programas são, por defeito, apresentados no écran, podendo, no entanto, ser redireccionados para um ficheiro, através da opção >ficheiro. Em alternativa ao programa LP_SOLVE, existem também disponíveis na rede algumas versões educacionais de packages de resolução de problemas de programação linear. Cita-se, a título ilustrativo, o LINDO, que pode ser obtido em www.lindo.com. A dimensão das instâncias que podem ser resolvidas com estes packages é limitada, mas suficiente para resolver os problemas propostos. No Laboratório do DPS, existem 10 licenças do package de programação linear, CPLEX (versão 6.5), que permitem resolver instâncias de muito maior dimensão. Todos estes packages aceitam ficheiros de dados no formato MPS.

Existe também material disponível no endereço http://opsresearch.com/, local que fornece inúmeras informações de interesse sobre o domínio da Investigação Operacional. Problemas de Programação Linear: LP_SOLVE Autoria O package foi desenvolvido por Michel Berkelaar, michel@es.ele.tue.nl. Encontra-se acessível em http://www.cs.sunysb.edu/~algorith/implement/lpsolve/implement.shtml Objectivo Este programa determina a solução óptima de um problema de programação linear. Os dados de entrada podem ser números reais ou inteiros. Descompactação dos ficheiros Ficheiros do sistema: LPDOS20.ZIP, LP20W95.ZIP, PKUNZIP.EXE O primeiro ficheiro contém uma versão para DOS e o segundo para Windows 95. As instruções que se seguem são relativas à versão DOS. Para recuperar os ficheiros compactados, fazer - PKUNZIP LPDOS20.ZIP O ficheiro LP_EXAMP.ZIP deve, por sua vez, ser descompactado para obter um conjunto de 6 exemplos de teste. Definição do Input O package aceita dados de input, a partir de ficheiros de texto, em dois formatos diferentes: - o formato MPS (Mathematical Programming System), um standard aceite pela maioria dos packages de programação linear, cuja definição é apresentada num documento anexo; - o formato LP, em que o problema a resolver é escrito na forma de texto. 2

Conversão de formato É possível converter um ficheiro dum dado formato no outro, e vice-versa, através dos programas MPS2LP.EXE e LP2MPS.EXE, como, por exemplo, nos seguintes casos: - LP2MPS <EXEMPLO.LP >EXEMPLO.MPS, e - MPS2LP <NOME.MPS >NOME.LP. Execução do Programa Para executar o programa, com input no formato LP, fazer - LP_SOLVE -p <EXEMPLO.LP >EXEMPLO.OUT A opção -p destina-se a imprimir as variáveis duais da solução óptima. No caso de o output do programa não ser redireccionado para nenhum ficheiro de output, os resultados são mostrados no écran. Para executar o programa, com input no formato MPS, fazer - LP_SOLVE -p -mps <EXEMPLO.MPS >EXEMPLO.OUT Informações Adicionais Para obter instruções adicionais sobre o funcionamento do programa LP_SOLVE, fazer - LP_SOLVE -h Este programa pode ser também executado em modo interactivo, o que permite várias operações, como a adição ou remoção de restrições ou colunas, a modificação de coeficientes, etc. Instruções sobre este modo de operação podem ser obtidas através do programa DEMO.EXE. Instruções adicionais de funcionamento nos ficheiros DOSPORT.TXT, README. Problemas de Optimização em Rede: RELAX Autoria O programa RELAX foi desenvolvido por Dimitri Bertsekas e Paul Tseng do Laboratory for Information and Decision Systems and the Operations Research Center, MIT, e encontra-se acessível em 3

http://elib.zib.de/pub/packages/mathprog/mincost/relax-4/ Objectivo Este programa determina a solução óptima de um problema de optimização em rede. Os dados de entrada devem ser números inteiros. Definição do Input O package aceita dados de input, a partir de um ficheiro de texto, com o seguinte formato: Nas duas primeiras linhas: n m sendo n o número de vértices do grafo e m o número de arcos. Nas restantes m linhas, é feita uma listagem dos m arcos, no seguinte formato: org dst custo cap sendo org o vértice de origem do arco, dst o vértice de destino, e custo o respectivo custo unitário de transporte. A capacidade do arco (limite superior para o fluxo que nele pode ser transportado), cap, também deve ser indicada. Notar bem que não podem aparecer na lista dois arcos com a mesma origem e o mesmo destino. A definição das ofertas e das procuras em cada vértice do grafo é feita usando arcos fictícios unindo os vértices do grafo e dois vértices suplementares: o vértice n+1, que serve como um supernodo que concentra as ofertas, e o vértice n+2, um supernodo que concentra as procuras. Para estabelecer o valor da oferta no vértice i, deve ser criado um arco fictício entre o vértice n+1 e o vértice i, com uma capacidade igual à oferta real no vértice i e um custo unitário de transporte nulo. Do mesmo modo, para definir o valor da procura no vértice j, deve ser criado um arco fictício entre o vértice j e o vértice n+2, com uma capacidade igual à procura real no vértice j e um custo unitário de transporte igualmente nulo. Exemplo: Ao problema com duas origens e dois destinos da Figura, em que a capacidade de todos os arcos é igual a 1000, corresponde o ficheiro de input abaixo apresentado: 4

15 25 1 3 11 12 13 14 2 4 20 20 4 8 1 3 11 1000 1 4 12 1000 2 3 13 1000 2 4 14 1000 5 1 0 15 5 2 0 25 3 6 0 20 4 6 0 20 Exemplo: No ficheiro RELAX.INP, está definido um problema com 7 vértices e 14 arcos. Existe uma oferta de 20 unidades no vértice 1 e uma procura de 20 unidades no vértice 7. Nos restantes vértices, há conservação de fluxo. Execução do Programa Para executar o programa, fazer - RELAX <RELAX.INP >RELAX.OUT Informações Adicionais Informações adicionais sobre este programa, nomeadamente sobre a estratégia do algoritmo, as estruturas de dados utilizadas e o desempenho computacional, podem ser obtidas no artigo: Dimitri Bertsekas e Paul Tseng, The relax codes for linear minimum cost network flow problems, Annals of Operations Research 13, 125-188, 1988. 5