RENATA BARBOSA DE OLIVEIRA DESENVOLVIMENTO DE UMA ARQUITETURA MULTIAGENTES BASEADA EM METAHEURÍSTICAS COM UMA ABORDAGEM ADAPTIVE LEARNING SEARCH
|
|
- Dina Balsemão Domingues
- 8 Há anos
- Visualizações:
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 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 maisUNIVERSIDADE 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 maisCAP 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 maisDesenvolvendo 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 maisPadrõ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 maisRoteiro. 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 mais2 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 maisUNIVERSIDADE 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 maisConceitos 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 maisEngenharia 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 maisNa 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 maisTé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 maisENGENHARIA 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 maisInteligê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 maisProgramaçã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 maisAná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 maisMetodologias 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 maisConteú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 maisPara 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 maisAlgoritmos 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 maisDadas 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 maisUNIDADE 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 maisIntroduçã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
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 maisProjeto 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 maisProf. 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 maisDESENVOLVIMENTO 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 maisEngenharia 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 maisEsta 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 maisProcessos 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 mais7.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 maisProcessos 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 maisA 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 maisOrganizaçã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 maisIntroduçã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 maisTó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 maisPROGRAMAÇÃ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 mais3.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 maisATRIBUTOS 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 maisCapacidade = 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 maisIntroduçã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 maisBusca 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 maisAUTOR: 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 maisEngenharia 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 maisModelo 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 maisOrientaçã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 maisMRP 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 maisPesquisa 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 maisPONTIFÍ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 maisOtimizaçã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 maisISO/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 maisNome: 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 maisEspecificaçã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 maisESTUDO 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 maisMetodologia 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 maisFeature-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 maisOrientaçã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 maisAná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 maisModelagem 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 maisGUIA 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 maisCapí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 maisSemâ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 maisGARANTIA 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 maisSERVIÇ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 maisO 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 maisSistemas 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 maisAspectos 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 maisForneç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 maisSistemas 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 maisTabela 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 mais7 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 maisProjeto 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 maisPRODUTO 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 mais15 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 mais1.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 maisEngenharia 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 maisMó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 maisDESENVOLVENDO 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 maisPROGRAMAÇÃ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 maisDado: 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 maisIntroduçã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 mais5 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 mais04/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 maisHardware (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 maisRequisitos 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 maisPersistê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 maisFACULDADE 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 mais3 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 maisDocumento 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 maisArquitetura 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 maisIA 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 maisDesenvolvimento 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 maisSistema 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 maisProgramaçã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 maisUNIVERSIDADE 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 maisUSANDO 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 maisUFG - 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 maisIntroduçã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