RENATA BARBOSA DE OLIVEIRA DESENVOLVIMENTO DE UMA ARQUITETURA MULTIAGENTES BASEADA EM METAHEURÍSTICAS COM UMA ABORDAGEM ADAPTIVE LEARNING SEARCH

Tamanho: px
Começar a partir da página:

Download "RENATA BARBOSA DE OLIVEIRA DESENVOLVIMENTO DE UMA ARQUITETURA MULTIAGENTES BASEADA EM METAHEURÍSTICAS COM UMA ABORDAGEM ADAPTIVE LEARNING SEARCH"

Transcrição

1 RENATA BARBOSA DE OLIVEIRA DESENVOLVIMENTO DE UMA ARQUITETURA MULTIAGENTES BASEADA EM METAHEURÍSTICAS COM UMA ABORDAGEM ADAPTIVE LEARNING SEARCH Belo Horizonte MG Outubro de 2008

2 RENATA BARBOSA DE OLIVEIRA DESENVOLVIMENTO DE UMA ARQUITETURA MULTIAGENTES BASEADA EM METAHEURÍSTICAS COM UMA ABORDAGEM ADAPTIVE LEARNING SEARCH Dissertação de Mestrado apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de Educação Tecnológica de Minas Gerais, como requisito parcial à obtenção do título de Mestre em Modelagem Matemática e Computacional Orientador: Prof. Dr. Henrique Elias Borges Co-orientador: Prof. Dr. Sérgio Ricardo de Souza MESTRADO EM MODELAGEM MATEMÁTICA E COMPUTACIONAL DIRETORIA DE PESQUISA E PÓS-GRADUAÇÃO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Belo Horizonte MG Outubro de 2008

3 Folha de aprovação da dissertação. Esta folha será fornecida pelo Programa de Pós-Graduação e deverá substituir esta.

4 Dedico este trabalho à meu marido Paulo, e a meus filhos Pedro e Gabriel, pela compreensão, motivação, apoio e carinho incondicionais. À minha mãe, que sempre me incentivou nas horas difíceis, mas que não pode participar desse momento. Sei que onde estiver, sempre olhará por mim.

5 Agradecimentos Ao meu orientador, Prof. Dr. Henrique Elias Borges, pela orientação, e por ser em muitos momentos mais que orientador, amigo. Agradeço também a confiança no meu trabalho e a oportunidade de realizá-lo. Ao meu coorientador, Prof. Dr. Sérgio Ricardo de Souza, pela orientação, pelas críticas e sugestões e, por ter confiado no meu trabalho. A meu marido Paulo, que me apoiou nos momentos mais difíceis, que me incentivou e encorajou a todo momento. Sem você, eu não teria conseguido. Aos muitos amigos que fiz ao longo do mestrado, pelos momentos de discussão acerca dos trabalhos, pelos seminários de grupo e pelas horas de descontração. Ao Laboratório de Sistemas Inteligentes (LSI) pelos recursos disponibilizados para realização deste trabalho. Ao Centro Federal de Educação Tecnológica de Minas Gerais (CEFET-MG).

6 plante seu jardim e decore sua alma, em vez de esperar que alguém lhe traga flores. E você aprende que realmente pode suportar... que realmente é forte, e que pode ir muito mais longe depois de pensar que não se pode mais. E que realmente a vida tem valor e que você tem valor diante da vida! Nossas dúvidas são traidoras e nos fazem perder o bem que poderíamos conquistar se não fosse o medo de tentar. Shakespeare, W.

7 Resumo A utilização de sistemas multiagentes e de metaheurísticas para a solução de problemas de otimização combinatória são linhas de pesquisa de grande relevância. Entretanto, a maioria dos frameworks existentes não contempla essas duas abordagens no mesmo sistema. A versão atual da arquiteura - AMAM v é um framework de propósito geral para a solução de problemas NP-Difíceis e inclui as seguintes características: é baseada no conceito de metaheurísticas; é implementada como um sistema multiagente; seus agentes podem ter diferentes níveis de granularidade; seus agentes colaboram e cooperam afim de resolver o problema proposto; os agentes interagem com outros agentes ou com o ambiente através da troca de estímulos; o sistema, como um todo, age como um sistema dinâmico discreto, assincrono e não determinístico; sua implementação é feita através de multithreads. A fim de obter uma arquitetura genérica e flexível, a arquitetura faz uso de padrões de projeto e de um metamodelo denominado Adaptive Learning Search (ALS). Para a validação do desenvolvimento realizado, o Problema de Roteamento de Veículos é solucionado através da arquitetura proposta, com a utilização de diferentes configurações da mesma. Os resultados encontrados mostram o potencial da metodologia proposta, para a solução de problemas de otimização combinatória de diversas classes. PALAVRAS-CHAVE: Metaheurísticas, multiagentes, aprendizagem adaptativa, otimização, arquitetura multiagentes, agentes autônomos.

8 Abstract Multiagents Systems and metaheuristics have been widely used for solving combinatorial optimization problems. However, most of existing frameworks do not use these techniques together. In this context, the MAM - Multiagent Architecture for Metaheuristics - has been proposed and developed. The current version of this architecture - MAM version is a general purpose framework for solving NP-Hard problems, including the following features: it is based on metaheuristics concepts; it is implemented as a multiagent system; agents can have very different levels of granularity, some lighweighted and other heavyweighted; the agents cooperate and collaborate in order to solve the given problem; the agents interact with other agents or with their environment through stimuli exchange; the system as a whole acts like a discrete dynamical system implemented as a multi-threaded, asynchronous and not-deterministic application; each metaheuristic is modeled through a metamodel called ALS - Adaptive Learning Search. To verify the appropriate operation of the developed architecture, an application was instantiated to solve the capacitated vehicle routing problem, using the test patterns available in the literature. The results obtained were coherent and consistent with the ones available, showing the potentiality of the proposed approach. KEYWORDS: Metaheuristics, multiagents, adaptive learning, optimization, autonomous agents

9 Lista de Figuras 1 Classificação de Metaheurísticas p Heurística de construção gulosa de uma solução inicial p Pseudocódigo Algoritmo de Busca Local p Pseudocódigo Algoritmo GRASP p Pseudocódigo Algoritmo Colônia de Formigas p Algoritmo AMP p Meta algoritmo ALS p Modelo ALS para a Metaheuristica Simulated Annealing p Modelo ALS para Algoritmos Genéticos p Template Method para fases da ALS p Comunicação Cliente-Servidor p Esquema de Computação Evolucionária p Arquitetura OpenBEAGLE p Principais Módulos da Plataforma PISA p Esquema Essencial da PISA p Módulos da Heuristics p MAGMA - Arquitetura Multi-Níveis para metaheurísticas p Especialização da arquitetura MAGMA para GRASP p Quadro Comparativo entre os frameworks e bibliotecas analisadas.. p Modelo Conceitual da Arquitetura AMAM p Modelo do Ambiente p Estrutura Interna dos Agentes de Busca Local p. 46

10 23 Algoritmos e Estruturas de Dados p Diagrama de Pacotes da AMAM p Pacote Environment p Pacote Agents p Pacote MetaheuristicAgent p Interação Agente-Ambiente p Mediator, Bridge, Visitor, Abstract Factory e Observer p Strategy Pattern p Template Method para a implementação do metamodelo ALS..... p Padrão Abstract Factory p Algoritmo para utilização da AMAM p Esquema de utilização da AMAM p Exemplo de uma solução, envolvendo um conjunto de rotas, para uma instância de 100 clientes p Diagrama de Classes para o problema de Roteamento de Veículos Capacitado p Estrutura Básica de uma solução para o Problema de Roteamento de Veículos Capacitado p Instâncias C101 e C p Instâncias R101 e R p Instâncias RC101 e RC p Conteúdo do arquivo com problema teste R p Rotas da melhor solução para a instância C p Rotas da melhor solução para a instância C p Rotas da melhor solução para a instância R p Rotas da melhor solução para a instância R p Rotas da melhor solução para a instância RC p. 79

11 47 Rotas da melhor solução para a instância RC p Diagrama de Classes da AMAM v p. 88

12 Lista de Tabelas 1 Configuração de testes número p Configuração de testes número p Configuração de testes número p Configuração de testes número p Configuração de testes número p Configuração de testes número p Configuração de testes número p Resultados das Instâncias C1 e C p Resultados das Instâncias R1 e R p Resultados das Instâncias RC1 e RC p. 78

13 Lista de Abreviaturas e Siglas AMAM Arquitetura Multi-Agentes para Metaheurísticas ALS Adaptive Learning Search AMP Adaptive Memory Program GPSI Grupo de Pesquisa em Sistemas Inteligentes

14 Sumário 1 INTRODUÇÃO p HEURÍSTICAS E METAHEURÍSTICAS p Algumas Metaheurísticas selecionadas p Modelos de Metaheurísticas p Ferramentas Computacionais para Metaheurísticas p Open Metaheuristics - ometah p Evolutionary Computation Framework- EO / Evolving Objects Library - EOLib p Framework Enabling Research on Evolution and Simulation - Sferes p OpenBEAGLE p Plataform and Programming Language Independent Interface for Search Algorithms - PISA p Genetic Algorithm Library - Galib p Multiple Objective MetaHeuristics Library - MOMHLib p Heuristics p MultiAGent Metaheuristics Architecture - Magma p Considerações Finais p MODELAGEM E DESENVOLVIMENTO DA AMAM COMO UMA ARQUITE- TURA EXTENSÍVEL DE SOFTWARE p Aspectos Conceituais da Arquitetura AMAM p Visão Geral da Arquitetura AMAM p. 43

15 Ambiente p Agentes p Aspectos do Desenvolvimento da Arquitetura AMAM - versão p Estratégias de Projeto p Pacote Ambiente p Pacote Agentes p Pacote Agentes Metaheurística p Interação Agente-Ambiente e Agente-Agente p Padrões de Projeto utilizados na Arquitetura AMAM - versão p Criação de instâncias específicas a partir da AMAM versão p Considerações Finais p EXPERIMENTOS COMPUTACIONAIS NO PROBLEMA DE ROTEAMENTO DE VEÍCULOS CAPACITADO p O Problema de Roteamento de Veículos Capacitado p Modelagem do Problema para a Arquitetura p Descrição dos Testes p Testes computacionais com arquitetura AMAM v p Considerações Finais p CONCLUSÕES E TRABALHOS FUTUROS p Conclusões p Trabalhos Futuros p. 82 Referências p. 84 Anexo A -- DIAGRAMA DE CLASSES DA ARQUITETURA AMAM v.0.8 p. 88

16 15 1 INTRODUÇÃO Os problemas de otimização envolvem problemas práticos para os quais ainda não foram encontrados algoritmos determinísticos capazes de garantir a solução ótima em tempo polinomial. A classe NP-Completo inclui estes problemas ditos intratáveis e seu estudo tem um papel importante em pesquisa operacional, uma vez que a aplicação prática destes algoritmos envolve alto custo computacional. Nem sempre a solução ótima para estes problemas é necessária. Assim, surgem métodos de aproximação, randomização e heurísticas que obtem soluções de boa qualidade prática e com baixo custo computacional. Dentre os métodos existentes o estudo de metaheurística tem se destacado. Metaheurísticas são famílias de algoritmos de otimização comumentemente aplicados a problemas combinatórios (DREO et al., 2006) e se destacam como métodos genéricos para diferentes problemas específicos. Dentre as principais metaheurísticas, pode-se destacar: GRASP (Feo e Resende, 1995; Pitsoulis e Resende, 2002), Simulated Annealing (KIRKPATRICK; GELATT; VEC- CHI, 1983), Tabu Search (GLOVER; LAGUNA, 1998),Ant Colony (DORIGO, 1992),(DORIGO; MANIEZZO; COLORNI, 1996),(DORIGO; CARO, 1999), Algoritmos Genéticos (GOLDBERG, 1989), dentre outras. Outro conceito importante para o tratamento de problemas NP-Completo é a utilização de Sistemas Multiagentes. Este tipo de sistema consiste em um conjunto de agentes situados em um ambiente que interagem e trabalham juntos para alcançar um objetivo comum. No contexto, os agentes são responsáveis por diferentes metaheurísticas, produzem soluções e interagem para refinar as soluções encontradas, até que uma solução que atenda os critérios de avaliação e viabilidade do problema específico seja encontrada. Na literatura, vários trabalhos relacionados com aplicações práticas, materializando os conceitos de metaheurísticas e multiagentes, são encontrados em forma de softwares, bibliotecas de software e frameworks em diferentes linguagens de programação. Den-

17 1 INTRODUÇÃO 16 tre estes, pode-se citar: a) Sistemas Baseados em Metaheurísticas: Ometah (DREO et al., 2006), *EO (KEIJZER et al., 2001), Sferes (LANDAU et al., 2002), openbeagle (GAGNé; PARIZEAU, 2005), PISA (BLEULER et al., 2003), Galib (WALL, 1996), MOMHLib++ (JASZKIEWICZ, 1999), Heuristics (GRUBER; DREXL, 2005). Estes frameworks permitem criar testes com diferentes metaheurísticas para determinados problemas. Entretanto, são específicos para determinado tipo de metaheurística, nem sempre permitem integrar facilmente novas metaheurísticas, não consideram o conceito de sistema multiagentes. b) Sistemas Baseados em Multiagentes: AGENT-DOSS (THANGIAH; SHMYGELSKA; MENNELL, 2001), Coal-VPR (KEFI; GHEDIRA, 2004), DYCoalVRP (BOUDALI; FKI; GHEDIRA, 2004), FGAS (LAU; WANG, 2005), MAA-VRPTW (LEONG; LIU, 2006). São arquiteturas multiagentes que se limitam a tratar um problema específico, portanto não têm generalidade. Neste cenário, foi proposto o projeto AMAM (Arquitetura MultiAgente para Metaheurísticas) (SILVA, 2007), com o objetivo de acoplar diversas metaheurísticas em uma estrutura geral, visando usufruir do trabalho conjunto de agentes e procurando encontrar melhores soluções para os problemas de otimização combinatória. O modelo conceitual da arquitetura AMAM inclui agentes, ambiente e demais entidades e relacionamentos necessários para sua utilização como uma arquitetura computacional para criação e testes de aplicações com problemas de otimização combinatória. Um resultado importante e extremamente relevante para o presente trabalho é o teorema conhecido como No Free Lunch Theorem, devido a Wolpert e Macready (1997) que estabelece que todos os algoritmos de busca têm exatamente o mesmo desempenho, quando se faz a média de todos os infinitos problemas existentes. De forma geral, isto equivale a afirmar que se um dado algoritmo A é melhor que um algoritmo B em uma série de k problemas, então deve haver uma outra série de k problemas em que o algoritmo B tem um desempenho superior ao algoritmo A. Portanto, o uso de diversas metaheurísticas em um framework tem a capacidade de resolver vários problemas diferentes, bastando para isso que o melhor algoritmo para resolver aquele problema esteja entre os algoritmos implementados no framework. A proposta do presente trabalho vai ao encontro deste resultado, no sentido de que se pretende implementar todos os algoritmos possíveis, independentemente do problema que eles

18 1 INTRODUÇÃO 17 venham a resolver. Assim fazendo, teremos um framework de propósito geral que poderá ser utilizado na resolução de uma ampla gama de problemas. Entretanto, o modelo tal como apresentado em Silva (2007) teve como foco o aspecto conceitual e não considera aspectos de projeto e desenvolvimento da arquitetura como um software extensível, como interfaces, criação indireta de objetos, formas para comunicação entre objetos e outros fatores que aparecem no projeto de uma arquitetura computacional. O modelo proposto por Silva (2007) para a AMAM também não inclui o nível de implementação, se restringindo a entidades de nível mais alto. Assim, a presente dissertação apresenta o projeto e implementação do modelo conceitual da AMAM proposto por Silva (2007) como uma arquitetura de software extensível, para criação e utilização de metaheurísticas em um ambiente multiagente para aplicações de otimização combinatória. Para tanto, no capítulo 2 é feita uma revisão da literatura concernente ao tema. Na seção 2.1, algumas metaheurísticas selecionadas são apresentadas, diante da classificação proposta por Dreo et al. (2006) e Meliàn, Perez e Moreno-Vega (2003). A seção 2.2 apresenta os modelos de metaheurísticas Adaptive Memory Program (AMP) e Adaptive Learning Search (ALS). Já a seção 2.3 discute bibliotecas e frameworks utilizados para desenvolvimento de metaheurísticas, destacando-se, entre eles, o framework Open Metaheuristics (ometah) e, principalmente, a MultiAgent Metaheuristic Architecture (MAGMA). O capítulo 3 apresenta a arquitetura AMAM. Na seção 3.1 o modelo conceitual da arquitetura, proposto por Silva (2007), é apresentado. A seção 3.2 discute os aspectos de desenvolvimento da arquitetura AMAM v.0.8. Já a seção 3.3 discute os aspectos dinâmicos da interação entre os agentes e entre os agentes e o ambiente proposto no modelo, destacando-se o fato de que essa interação não possui uma linguagem préestabelecida para a comunicação dos agentes entre si e com o ambiente. A seção 3.4 mostra os aspectos estáticos utilizados para a elaboração do modelo da arquitetura AMAM v.0.8, e a seção 3.5 mostra e discute a criação de instâncias específicas a partir do modelo proposto. No capítulo 4, um exemplo de utilização da arquitetura para a solução do Problema de Roteamento de Veículos Capacitado (PRVC), um problema NP-Completo, é mostrada. Assim, o problema é apresentado na seção 4.1, sua modelagem para a arquitetura é discutida na seção 4.2 e a descrição dos problemas testes e resultados obtidos é apresentada na seção 4.3. Deve-se ressaltar que não é objetivo da presente

19 1 INTRODUÇÃO 18 dissertação a comparação com os melhores resultados encontrados na literatura para a solução de instâncias do PRVC, mas, sim, a utilização destas instâncias para a validação da proposta de arquitetura apresentada. Por fim, o capítulo 5 apresenta as conclusões e as perspectivas de trabalhos futuros.

20 19 2 HEURÍSTICAS E METAHEURÍSTICAS Segundo Goldberg (1989), a otimização é uma área da Pesquisa Operacional que utiliza o método científico para apoiar a tomada de decisões, procurando determinar como melhor projetar e operar um sistema, usualmente sob condições que requerem a alocação de recursos escassos. No caso especial de problemas de otimização combinatória, o espaço de soluções viáveis envolve um grande número de alternativas de soluções, tornando extremamente complexo a busca de soluções ótimas. Muitos desses problemas práticos são problemas classificados como NP-Difíceis, ou seja, são problemas para os quais o custo computacional cresce de maneira exponencial com o aumento do número de variáveis para o problema citado. Na prática, em geral, nem sempre é necessário encontrar a melhor solução possível, sendo suficiente que se encontre uma boa solução para o problema. Sendo assim, o uso de heurísticas e metaheurísticas torna-se uma opção interessante para a solução desses problemas. Neste contexto, o objetivo desse capítulo é introduzir os conceitos de heurísticas e metaheurísticas e ainda apresentar e discutir algumas bibliotecas e frameworks utilizados para a busca de solução para problemas de otimização combinatória. 2.1 Algumas Metaheurísticas selecionadas A palavra heurística vem do grego heuriskein, que significa encontrar ou buscar. Em otimização,fala-se em heurísticas para se referir a uma técnica, método ou processo inteligente para se executar uma tarefa, que não é produto de uma análise formal, mas, sim, de conhecimentos específicos do problema (MELIàN; PEREZ; MORENO-VEGA, 2003). Assim, heurísticas são algoritmos que podem produzir uma

21 2.1 Algumas Metaheurísticas selecionadas 20 boa solução (próxima da solução ótima), a um custo computacional baixo, porém sem garantir a otimalidade dessa solução. A maioria das heurísticas desenvolvidas são específicas para um determinado problema particular, não sendo possível aplicálas a outras classes de problemas. Já a palavra metaheurística é derivada da palavra heurística, acrescentando-se a esta o termo meta, que significa além ou em um nível superior. Segundo Meliàn, Perez e Moreno-Vega (2003), os conceitos atuais do que é uma metaheurística são baseados em diferentes interpretações do que é uma maneira inteligente de resolver um problema. Em Osman e Laporte (1996), uma metaheurística é formalmente definida como um processo de geração iterativo, que guia uma heurística subordinada, pela combinação de diferentes conceitos inteligentes para explorar e expandir o espaço de busca. Estratégias de aprendizagem são usadas para estruturar informações, com a finalidade de encontrar, de forma eficiente, soluções próximas do ótimo. Assim, metaheurísticas são estratégias inteligentes para resolver de forma genérica problemas de otimização, combinando métodos construtivos, estratégias de busca local, estratégias para escapar de ótimos locais e buscas baseadas em população. Portanto, as metaheurísticas são estratégias de alto nível para a exploração do espaço de busca através da utilização de diferentes métodos onde o equilíbrio entre diversificação e intensificação é importante. O termo diversificação geralmente se refere à exploração da pesquisa espacial, enquanto que o termo intensificação se refere à exploração da experiência acumulada na pesquisa espacial (DREO et al., 2006). Considerando que a solução ótima de um problema NP-Completo envolve um alto custo computacional e que a solução ótima nem sempre é necessária, na prática, em aplicações com estes problemas, o uso de heurísticas e metaheurísticas torna-se uma opção viável. Há diferentes formas de classificar e descrever metaheurísticas. Dreo et al. (2006) apresenta uma classificação segundo diferentes aspectos: Computação Evolucionária, Populacional ou baseada em trajetória, Inspiradas na Natureza (Nature-inspired), sem uso de memória, com função objetivo dinâmica, Implícita, Explicita ou Direta. conforme ilustra a figura 1. Já Meliàn, Perez e Moreno-Vega (2003) classificam as metaheurísticas de acordo com o tipo de função a que se referem. Alguns tipos fundamentais são:

22 2.1 Algumas Metaheurísticas selecionadas 21 Figura 1: Classificação de Metaheurísticas. Fonte: Dreo et al. (2006) Metaheurísticas de Relaxação: procedimentos de resolução de problemas que utilizam relaxações do modelo original (modificações do modelo para facilitar a resolução dos problemas). Assim, esse tipo de metaheurística simplifica o problema real, eliminando e modificando algumas de suas restrições. As boas estratégias de relaxação são aquelas que simplificam o modelo do problema, de modo a proporcionar a elaboração de procedimentos mais eficientes, proporcionando boas soluções do problema original. Metaheurísticas Construtivas: procedimentos que tratam da obtenção de uma solução a partir de análises e seleção, elemento a elemento, dos componentes que a formam. Assim, as metaheurísticas construtivas estabelecem estratégias para selecionar os componentes com os quais se deseja construir a solução para um problema. Dentre as estratégias adotadas, uma das mais populares é o uso de uma função gulosa (figura 2), que elege os candidatos que produzem os melhores resultados imediatos, sem levar em conta uma perspectiva mais ampla. Nesta figura 2, tmelhor indica o membro do conjunto de elementos candidatos com o valor mais favorável da função de avaliação g, isto é, aquele que possui o menor valor de g no caso de o problema

23 2.1 Algumas Metaheurísticas selecionadas 22 ser de minimização ou o maior valor de g no caso de o problema ser de maximização (SOUZA, 2007). Figura 2: Heurística de construção gulosa de uma solução inicial Fonte: Souza (2007, p. 3) Metaheurísticas de Busca Local: procedimentos que usam transformações e movimentos para explorar o espaço de busca e a vizinhança associada a uma solução, à procura de soluções alternativas. As metaheurísticas de busca são estratégias que constroem a solução de um problema através de uma busca sobre um espaço, cujos elementos representam as soluções candidatas alternativas. A representação das soluções é feita através de uma codificação que inclua toda a informação necessária para sua identificação e avaliação. Uma busca sobre um espaço consiste em gerar uma sucessão de pontos do espaço, passando de um ponto a outro por meio de uma série de transformações e movimentos. Um procedimento de busca para resolver um problema de otimização realiza várias iterações sobre o espaço das soluções alternativas (espaço de busca) e seleciona a melhor solução encontrada. A figura 3 descreve o processo geral de solução de um problema por busca local. Partindo de uma solução inicial, deve-se aplicar iterativamente uma operação para modificar a solução atual até que se alcance um critério de parada. A função Melhora (s, N(s)) depende da heurística de busca local utilizada, podendo ser, por exemplo,

24 2.1 Algumas Metaheurísticas selecionadas 23 um procedimento que explora a vizinhança (N(s)) da solução corrente e seleciona a primeira solução que melhora o valor da função objetivo da solução corrente ou ainda um procedimento que realiza uma exploração exaustiva na vizinhança, retornando a solução com o melhor valor da função objetivo (SILVA, 2007). Figura 3: Pseudocódigo Algoritmo de Busca Local Fonte: Silva (2007, p. 24) Entretanto, as metaheurísticas de busca local apenas selecionam soluções melhores que a solução corrente. Como conseqüência, algoritmos de busca local possuem o inconveniente de encontrarem soluções particulares denominadas ótimo local. Um ótimo local é uma solução que não pode ser melhorada através de uma estratégia de análise local. Para estender a busca de soluções além dos ótimos locais, são utilizadas as estratégias de buscas globais. Metaheurísticas de Busca Global: incorporam regras para escapar de ótimos locais, através de basicamente três estratégias: 1. Reiniciar a busca a partir de outra solução inicial; 2. Modificar a estrutura de vizinhança aplicada; 3. Permitir temporariamente movimentos que levam a soluções piores que a encontrada ou mesmo infactíveis; Assim, surgem metaheurísticas que englobam uma ou mais regras para escapar de ótimos locais. A figura 4 ilustra a metaheurística GRASP (FEO; RESENDE, 1995), que é composta de duas fases:

25 2.1 Algumas Metaheurísticas selecionadas 24 Um procedimento de construção de solução gulosa: a cada iteração uma lista de candidatos restrita é gerada com os melhores elementos. Depois, cada elemento a ser inserido na solução é escolhido aleatoriamente, na lista de candidatos restrita. Um procedimento de busca local: tem o objetivo de melhorar a solução encontrada na fase de construção. Figura 4: Pseudocódigo Algoritmo GRASP Fonte: Silva (2007, p. 26) Metaheurísticas evolutivas: procedimentos baseados em busca populacional, que estabelecem estratégias para evoluir, através da interação entre seus elementos e de processos individuais, procurando enfatizar as características desejáveis das soluções em toda a população. Este processo tem por objetivo aumentar a qualidade média da solução sem comprometer a diversidade do conjunto. Como exemplo pode-se citar Algoritmos Genéticos (GOLDBERG, 1989) e Colônia de Formigas (DORIGO, 1992), (DORIGO; MANIEZZO; COLORNI, 1996) e (DORIGO; CARO, 1999). A figura 5 mostra a metaheurística Colônia de Formigas (DORIGO, 1992), (DORIGO; MANIEZZO; COLORNI, 1996) e (DORIGO; CARO, 1999). A otimização com formigas artificiais é inspirada no comportamento das colônias de formigas. As formigas traçam rotas entre o formigueiro e as fontes de alimentação através da secreção de uma substância chamada feromônio. A metaheurística emprega formigas artificiais, representadas por processos concorrentes, que traçam caminhos em um grafo cujas arestas representam componentes de soluções. A classificação de metaheurísticas permite estabelecer diferenças e semelhanças

26 2.2 Modelos de Metaheurísticas 25 Figura 5: Pseudocódigo Algoritmo Colônia de Formigas Fonte: Silva (2007, p. 29) entre essas. A formalização de metaheurísticas em uma arquitetura é importante para comparar algoritmos existentes, analisar propriedades de algoritmos e verificar sua eficiência. No entanto, para que se possa construir uma arquitetura flexível e genérica, de modo a permitir o uso de uma variedade de metaheurísticas trabalhando em conjunto, cooperativamente, para a solução de um problema de otimização (por sua vez também genérico), é preciso, antes, discutir acerca de modelos de metaheurísticas. 2.2 Modelos de Metaheurísticas Metaheurísticas compartilham certas propriedades comuns. Essencialmente, um processo comum para encontrar a solução ótima pela aplicação da função objetivo. Dreo et al. (2006) descreve metaheurísticas como um processo denominado Adaptive Memory Programming (AMP), dividido em três fases, que incluem o conceito de memória, intensificação e diversificação, detalhados a seguir como: Memória: informação coletada pelo algoritmo, mediante varredura no espaço de busca pela função objetivo. Pode ser representada como um conjunto simples de pontos ou como uma estrutura mais complexa (por exemplo, o rastro de feromônio na metaheurística colônia de formigas). Pode ser global (referente ao problema como um todo) ou individual; Intensificação: explorar a informação coletada pela memória, buscando melhorar a solução corrente. Exemplos são algoritmos de busca local (Algoritmo de Nelder-Mead ou metaheurística Busca Tabu);

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C01 Simulated Annealing (20/11/07). C02 Busca Tabu (22/11/07). C03 Colônia

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

Padrões de projeto 1

Padrões de projeto 1 Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

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

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14 1 Introdução O termo "roteamento de veículos" está relacionado a um grande conjunto de problemas de fundamental importância para a área de logística de transportes, em especial no que diz respeito ao uso

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Inteligência Computacional Aplicada a Engenharia de Software

Inteligência Computacional Aplicada a Engenharia de Software Inteligência Computacional Aplicada a Engenharia de Software Estudo de caso III Prof. Ricardo de Sousa Britto rbritto@ufpi.edu.br Introdução Em alguns ambientes industriais, pode ser necessário priorizar

Leia mais

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Algoritmos Genéticos

Algoritmos Genéticos UNIVERSIDADE PRESBITERIANA MACKENZIE Laboratório de Computação Natural LCoN I ESCOLA DE COMPUTAÇÃO NATURAL Algoritmos Genéticos Rafael Xavier e Willyan Abilhoa Outubro/2012 www.computacaonatural.com.br

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas 4.1 Motivação Sistemas de Informação são usados em diversos níveis dentro de uma organização, apoiando a tomada de decisão; Precisam estar

Leia mais

Introdução a computação móvel. Middlewares para Rede de Sensores sem Fio. Uma avaliação na ótica de Adaptação ao Contexto

Introdução a computação móvel. Middlewares para Rede de Sensores sem Fio. Uma avaliação na ótica de Adaptação ao Contexto Introdução a computação móvel Monografia: Middlewares para Rede de Sensores sem Fio Uma avaliação na ótica de Adaptação ao Contexto Adriano Branco Agenda Objetivo do trabalho O que é uma WSN Middlewares

Leia mais

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR 6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução Prof. Humberto Brandão humberto@dcc.ufmg.br aula disponível no site: http://www.bcc.unifal-mg.edu.br/~humberto/ Universidade Federal de

Leia mais

Prof. Marcelo Henrique dos Santos

Prof. Marcelo Henrique dos Santos ORIENTAÇÃO A OBJETOS COM PROTOTIPAÇÃO CAPÍTULO 02 CONCEITOS FUNDAMENTAIS OBJETIVOS Definiremos alguns conceitos fundamentais de forma a não deixar dúvidas básicas ou interpretações que nos coloquem em

Leia mais

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES Trabalho de Graduação Orientando: Vinicius Stein Dani vsdani@inf.ufsm.br Orientadora: Giliane

Leia mais

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Engenharia de Software Parte I Introdução Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Mitos do Desenvolvimento de Software A declaração de objetivos é suficiente para se construir um software.

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

Processos de Desenvolvimento de Software

Processos de Desenvolvimento de Software Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e

Leia mais

7.Conclusão e Trabalhos Futuros

7.Conclusão e Trabalhos Futuros 7.Conclusão e Trabalhos Futuros 158 7.Conclusão e Trabalhos Futuros 7.1 Conclusões Finais Neste trabalho, foram apresentados novos métodos para aceleração, otimização e gerenciamento do processo de renderização

Leia mais

Processos de gerenciamento de projetos em um projeto

Processos de gerenciamento de projetos em um projeto Processos de gerenciamento de projetos em um projeto O gerenciamento de projetos é a aplicação de conhecimentos, habilidades, ferramentas e técnicas às atividades do projeto a fim de cumprir seus requisitos.

Leia mais

A Otimização Colônia de Formigas

A Otimização Colônia de Formigas A Otimização Colônia de Formigas Estéfane G. M. de Lacerda Departamento de Engenharia da Computação e Automação UFRN 22/04/2008 Índice A Inspiração Biológica O Ant System Aplicado ao PCV O Ant System Aplicado

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores

Leia mais

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 A LEGO Education tem o prazer de trazer até você a edição para tablet do Software LEGO MINDSTORMS Education EV3 - um jeito divertido

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

Leia mais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Busca Estocástica Baseada em Planejamento para Maximizar Metas em Jogos de RTS

Busca Estocástica Baseada em Planejamento para Maximizar Metas em Jogos de RTS Busca Estocástica Baseada em Planejamento para Maximizar Metas em Jogos de RTS Autor:Thiago França Naves 1, Orientador: Carlos Roberto Lopes 1 1 Programa de Pós-Graduação em Ciência da Computação Universidade

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

Engenharia de software para desenvolvimento com LabVIEW: Validação

Engenharia de software para desenvolvimento com LabVIEW: Validação Engenharia de software para desenvolvimento com LabVIEW: Orientação a Objetos, Statechart e Validação André Pereira Engenheiro de Vendas (Grande São Paulo) Alexsander Loula Coordenador Suporte Técnico

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior MRP II Introdução A lógica de cálculo das necessidades é conhecida há muito tempo Porém só pode ser utilizada na prática em situações mais complexas a partir dos anos 60 A partir de meados da década de

Leia mais

Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática

Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática Rene Baltazar Introdução Serão abordados, neste trabalho, significados e características de Professor Pesquisador e as conseqüências,

Leia mais

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

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1132 Processo e qualidade de software II Prof. Me. Elias Ferreira Sala: 402 E Quarta-Feira:

Leia mais

Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha

Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha Amarildo de Vicente Colegiado do Curso de Matemática Centro de Ciências Exatas e Tecnológicas da Universidade Estadual do Oeste

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 3º PERÍODO - 5º MÓDULO AVALIAÇÃO A4 DATA 23/04/2009 ENGENHARIA DE SOFTWARE Dados de identificação do Acadêmico: Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

ESTUDO DE CASO: LeCS: Ensino a Distância

ESTUDO DE CASO: LeCS: Ensino a Distância ESTUDO DE CASO: LeCS: Ensino a Distância HERMOSILLA, Lígia Docente da Faculdade de Ciências Jurídicas e Gerenciais de Garça FAEG - Labienópolis - CEP 17400-000 Garça (SP) Brasil Telefone (14) 3407-8000

Leia mais

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2 .:: Universidade Estadual de Maringá Bacharelado em Informática Eng. de Software III :. Sistema de Gerenciamento de Eventos - Equipe 09 EPSI Event Programming System Interface Metodologia e Gerenciamento

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Orientação à Objetos. Aécio Costa

Orientação à Objetos. Aécio Costa Aécio Costa O paradigma da orientação à objetos Paradigma? Um paradigma é uma forma de abordar um problema. No contexto da modelagem de um sistema de software, um paradigma tem a ver com a forma pela qual

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Modelagem e Simulação

Modelagem e Simulação AULA 11 EPR-201 Modelagem e Simulação Modelagem Processo de construção de um modelo; Capacitar o pesquisador para prever o efeito de mudanças no sistema; Deve ser próximo da realidade; Não deve ser complexo.

Leia mais

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas

Leia mais

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

GARANTIA DA QUALIDADE DE SOFTWARE

GARANTIA DA QUALIDADE DE SOFTWARE GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características

Leia mais

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA Muitas organizações terceirizam o transporte das chamadas em seus call-centers, dependendo inteiramente

Leia mais

O modelo unificado de processo. O Rational Unified Process, RUP.

O modelo unificado de processo. O Rational Unified Process, RUP. Cursos: Sistemas de Informação Disciplina: Administração ADM Prof. Jarbas Avaliação: Prova B1, 5º/6º semestres Data: 27/09/2010 Nome: Gabarito RA: Assinatura: Turma: 1) Segundo as afirmações a seguir,

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Aspectos técnicos do desenvolvimento baseado em componentes

Aspectos técnicos do desenvolvimento baseado em componentes Aspectos técnicos do desenvolvimento baseado em componentes Um novo processo de desenvolvimento O uso de componentes traz mudanças no processo de desenvolvimento Além de desenvolver um produto, queremos

Leia mais

Forneça a próxima onda de inovações empresariais com o Open Network Environment

Forneça a próxima onda de inovações empresariais com o Open Network Environment Visão geral da solução Forneça a próxima onda de inovações empresariais com o Open Network Environment Visão geral À medida que tecnologias como nuvem, mobilidade, mídias sociais e vídeo assumem papéis

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

Leia mais

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

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 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

7 Trabalhos Relacionados A idéia é tentar dar todas as informações que ajudem os outros a julgar o valor da sua contribuição; não apenas as informações que levem o julgamento a uma direção em particular.

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

15 Computador, projeto e manufatura

15 Computador, projeto e manufatura A U A UL LA Computador, projeto e manufatura Um problema Depois de pronto o desenho de uma peça ou objeto, de que maneira ele é utilizado na fabricação? Parte da resposta está na Aula 2, que aborda as

Leia mais

1.1. Aplicações de TVD dinâmicas

1.1. Aplicações de TVD dinâmicas 1 Introdução Uma aplicação de TV Digital (TVD) comumente é composta por um vídeo principal associado a outros objetos (aplicações, imagens, vídeos, textos etc.), que são transmitidos em conjunto possibilitando

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software O que é a engenharia de software É um conjunto integrado de métodos e ferramentas utilizadas para especificar, projetar, implementar e manter um sistema. Método É uma prescrição

Leia mais

Módulo 15 Resumo. Módulo I Cultura da Informação

Módulo 15 Resumo. Módulo I Cultura da Informação Módulo 15 Resumo Neste módulo vamos dar uma explanação geral sobre os pontos que foram trabalhados ao longo desta disciplina. Os pontos abordados nesta disciplina foram: Fundamentos teóricos de sistemas

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1 PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB PADRÕES MVC E DAO Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o conceito de Padrões de Projeto Compreender o Padrão MVC Conhecer o princípio de alguns dos

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância 5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

3 Método de Monte Carlo

3 Método de Monte Carlo 25 3 Método de Monte Carlo 3.1 Definição Em 1946 o matemático Stanislaw Ulam durante um jogo de paciência tentou calcular as probabilidades de sucesso de uma determinada jogada utilizando a tradicional

Leia mais

Documento de Arquitetura

Documento de Arquitetura Documento de Arquitetura A2MEPonto - SISTEMA DE PONTO ELETRÔNICO A2MEPonto - SISTEMA DE PONTO ELETRÔNICO #1 Pág. 1 de 11 HISTÓRICO DE REVISÕES Data Versão Descrição Autor 28/10/2010 1 Elaboração do documento

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

IA Colônia de Formigas. Prof. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

IA Colônia de Formigas. Prof. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br IA Colônia de Formigas Prof. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br Sumário Introdução O Experimento da Ponte Binária. Ant System Aplicado ao PCV. Elitist Ant System. Introdução Otimização colônia

Leia mais

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto

Leia mais

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Marco T. A. Rodrigues*, Paulo E. M. de Almeida* *Departamento de Recursos em Informática Centro Federal de Educação Tecnológica de

Leia mais

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc. Herança Técnico em Informática, M.Sc. Herança 2 Herança Reutilização de código Exemplo Banco: Um banco oferece diversos serviços que podem ser contratados individualmente pelos clientes. Quando um serviço

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE

USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE SUMÁRIO usando o izcode... 1 para gerar software rapidamente... 1 introdução... 2 o que é o izcode?... 2 Como funciona o izcode?... 2 os tipos diferentes

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informação Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 3 Introdução à Arquitetura de Software (continuação)

Leia mais

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais