Desenvolvimento de uma interface para uma biblioteca open-source de algoritmos de programação linear



Documentos relacionados
XIII Encontro de Iniciação Científica IX Mostra de Pós-graduação 06 a 11 de outubro de 2008 BIODIVERSIDADE TECNOLOGIA DESENVOLVIMENTO

AULA 3 Introdução ao Software

3 Revisão de Software

Neste capítulo discutiremos o que é uma DLL, seus aspectos e tipos e ainda, porquê é tão importante para as aplicações Windows

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Tecnologia da Informação. Visão Geral sobre Informática

Programação Orientada a Objetos

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

enbsp - NBioBSP NITGEN Biometric Service Provider SDK Manual do Desenvolvedor SDK version 4.xx

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 01. Prof. André Lucio

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

Introdução ao Veridis Biometrics SDK VERIDIS

vb Inno Script Conversor

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Persistência e Banco de Dados em Jogos Digitais

Gerenciamento de Memória

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes

Programação Orientada a Objeto

Aplicação Prática de Lua para Web

DESENVOLVENDO APLICAÇÕES WEB UTILIZANDO A FERRAMENTA WEBSCHARTS

Processos e Threads (partes I e II)

DIFERENÇAS ENTRE FUNÇÃO E BLOCO FUNCIONAL; CRIAÇÃO DE FUNÇÃO / BLOCO FUNCIONAL; UTILIZAÇÃO NO LADDER; EXEMPLO DE BLOCO FUNCIONAL;

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

Sistemas Operacionais

Plugins TerraView. Última revisão: 12/12/32006 Versão TerraLib: 3.1.4

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior

Prof.: Clayton Maciel Costa

Sistemas Informáticos

Procedimento de anexação de peças e envio

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos.

Pré-Requisitos do Software Themis Pré-Requisitos do Software Themis

REFORÇO DE PROGRAMAÇÃO ESTRUTURADA EM LINGUAGEM C PARA GRADUAÇÃO EM ENGENHARIA ELÉTRICA

4 Estrutura do Sistema Operacional Kernel

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X

Uso de software livre para modelagem matemática e simulação

Implementando uma Classe e Criando Objetos a partir dela

Fábrica de Software 29/04/2015

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Models and Algorithms for Combinatorial Optimization Problems. LP Solve. Albert Einstein Fernandes Muritiba.

Sistemas Operacionais

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Documento de Projeto de Sistema

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Projeto 1: Aprovação de Transação de Cartão de Crédito

COORDENAÇÃO DE TECNOLOGIA (COTEC) ABRIL/2011

11 Conclusão Descobertas

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

IOB Mitrius Software de auditoria eletrônica de arquivos digitais de SPED. O que faz: O que oferece:

Desenvolvendo Websites com PHP

JobScheduler Empresa: Assunto: Responsável: Dados de Contato: Suporte: Comercial: Financeiro:

TRE/MG (15/03/2008) CESPE QUESTÃO 6

Guilherme Pina Cardim. Pesquisa de Sistemas Operacionais I

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

UFG - Instituto de Informática

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

UFG - Instituto de Informática

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Boletim Técnico. Criação de formulário dinâmico para o módulo WEB. Produto : TOTVS Web,

Material de Apoio. Sistema de Informação Gerencial (SIG)

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

SISTEMA COMPUTACIONAL PARA ANÁLISES DE DADOS EM AGRICULTURA DE PRECISÃO

Configuração do Linux Educacional 5 para melhor uso do MonitorINFO-V4

Orientação a Objetos

Comunicado Técnico ISSN

ERP Enterprise Resource Planning

ACTOS PROFISSIONAIS GIPE. Gabinete de Inovação Pedagógica

Desenvolvimento de um Simulador de Gerenciamento de Memória

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos

A PÁGINA DISCIPLINAR DE MATEMÁTICA DO PORTAL DIA A DIA EDUCAÇÃO

Informática Aplicada à Engenharia Florestal

4 Plano de Recuperação

Desenvolvimento de um CMS 1 para a criação e publicação de web sites acessíveis por deficientes visuais.

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

1 INTRODUÇÃO. 1.1 Motivação e Justificativa

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

Introdução ao Modelos de Duas Camadas Cliente Servidor

Profa. Gislaine Stachissini. Unidade III GOVERNANÇA DE TI

CENTRO UNIVERSITÁRIO ESTÁCIO RADIAL DE SÃO PAULO SÍNTESE DO PROJETO PEDAGÓGICO DE CURSO 1

Introdução ao Processamento de Dados (IPD)

MINISTÉRIO PÚBLICO DO ESTADO DE SÃO PAULO ÁREA DE DOCUMENTAÇÃO E DIVULGAÇÃO SETOR DE PROCESSAMENTO TÉCNICO DA BIBLIOTECA CÉSAR SALGADO PROJETO

1.1. Organização de um Sistema Computacional

Como Carregar a Customização do SANCAD no AutoCAD R2015

Introdução Banco de Dados

Figura 01 Kernel de um Sistema Operacional

EMULAÇÃO 3270 VIA WEB BROWSER

1. Apresentação Objetivos

Simulação Computacional de Sistemas, ou simplesmente Simulação

Transcrição:

Desenvolvimento de uma interface para uma biblioteca open-source de algoritmos de programação linear William Pereira dos Santos Wada 1 Luís Gustavo Barioni 2 Introdução Um grande número de problemas de otimização em diversas áreas de aplicação faz uso da técnica de programação linear (SANTOS, 2003). Na agricultura, a PL tem sido amplamente utilizada, particularmente em problemas de alocação de recursos e planejamento (SOUZA et al., 2008). Além disso, a formulação de dietas para animais constituise um problema clássico de aplicação dessa técnica (LANNA et al., 1999). O desenvolvimento de sistemas de suporte à tomada de decisão (SSD) que façam uso de PL requer a implementação de um algoritmo robusto ou o uso de implementações confiáveis, disponibilizadas por terceiros. Um grande número de produtos comerciais tem sido desenvolvido para esse fim. Entretanto, o custo da maioria das ferramentas inviabiliza o desenvolvimento e distribuição de SSDs livres, gratuitos ou de baixo custo para agropecuária. 1 Faculdade de Tecnologia Universidade Estadual de Campinas; willianpsw@cnptia.embrapa.br 2 Embrapa Informática Agropecuária; barioni@cnptia.embrapa.br 155

Embrapa Informática Agropecuária Nesse sentido, identificou-se a biblioteca LPSolve, a qual possui código aberto, distribuição gratuita, pode ser usada tanto em ambiente Linux quanto Windows e implementa diversos algoritmos de PL. No caso do sistema operacional Windows, os algoritmos são disponibilizados na forma de uma DLL (biblioteca de ligação dinâmica, do inglês Dynamic Link Library). Visando a facilitar a aplicação da DLL em SSDs, desenvolveu-se uma interface, implementada utilizando-se de conceitos de programação orientada a objetos, descrita neste artigo. Essa interface está sendo incorporada ao SSD Invernada, desenvolvido no Laboratório de Matemática Computacional da Embrapa Informática Agropecuária. Material e método Foi utilizada a linguagem Delphi e o paradigma de orientação a objeto (OO). A implementação utilizou os conceitos de interface, ou seja um componente de software que permite o isolamento dos detalhes de implementação do mundo exterior (W3C,1995) evitando o acesso direto à regra do negócio da implementação e permitindo a padronização de código. As chamadas das funções da DLL LPSolve utilizaram o conceito de tipos procedurais, um recurso da linguagem Delphi que permite armazenar métodos, funções e procedimentos em variáveis (CANTÚ, 2003, p.397). Nessas variáveis atribui-se os endereços de memória das rotinas da DLL. Essa técnica é necessária, pois a linguagem Delphi não permite chamadas de funções da DLL como métodos de classe. Além disso, o carregamento da DLL ocorre em tempo de execução, permitindo maior flexibilidade. Resultados e discussão Apesar da DLL permitir a resolução de vários problemas simultaneamente, optou-se por desenvolver uma classe de interface de maneira 156

VI Mostra de estagiários e bolsistas 2010 que cada instância resolva apenas um problema. O problema é identificado por meio do atributo FnumeroProblema que é atribuída pela função make_lp (da DLL LPSolve), a qual inicia a configuração de um problema de PL. Para resolver dois ou mais problemas, a classe deve ser instanciada o número de vezes necessário. Outro atributo da classe, chamado Flibhandle, possibilita a utilização de outras DLLs, pois tem o papel de identificar qual DLL será utilizada, bastando passar como parâmetro da função LoadLibrary o nome da DLL. O suporte para outras DLLs não foi implementado até o momento. A classe de interface ainda gera tratamento de exceções, facilitando a identificação de erros pelo sistema que irá utilizá-la. Na Figura 1 segue o código responsável pela invocação da rotina set_ bounds da DLL LPSolve, extraído da classe de interface desenvolvida. 157

Embrapa Informática Agropecuária Figura 1. Trecho responsável pela invocação da rotina set_bounds da DLL LPSolve. 158

VI Mostra de estagiários e bolsistas 2010 Referências CANTÚ, M. Delphi 7. Marina Village Parkway: Sybex, 2003. LANNA, D. P.;TEDESCHI, L. O.; BELTRAME, J. A. modelos lineares e não-lineares de uso de nutrientes para formulação de dietas de ruminantes. Piracicaba. Disponível em: <http://www.scielo.br/scielo. php?pid=s0103-90161999000200031&script=sci_arttext > Acesso em: 01 Ago 2010. SANTOS, M. P. Pesquisa Operacional, Rio de Janeiro: UFRJ, 2003, Apostila -Departamento de Matemática Aplicada Instituto de Matemática e Estatística. SOUZA, P. M.; FERREIRA, V. R.; PONCIANO N. J.; BRITO, M. N. Otimização econômica, sob condições de risco, para agricultores familiares das regiões Norte e Noroeste do Estado do Rio de Janeiro. Rio de Janeiro: Disponível em: <http://www.scielo.br/scielo.php?pid=s0101-74382008000100007&script=sci_arttext >. Acesso em: 02 Ago 2010. W3C. A Java-VM Implementation Based on the Modula-3 Runtime (em inglês). Disponível em: <http://www.w3.org/oop/m3-java.html > Acesso em: 15 jul. 2010. 159