Tony Ítalo Abreu Santiago

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

Download "Tony Ítalo Abreu Santiago"

Transcrição

1 FACULDADE LOURENÇO FILHO Curso de Bacharelado em Ciência da Computação Tony Ítalo Abreu Santiago UM ALGORITMO HEURÍSTICO PARA O PROBLEMA DA ÁRVORE GERADORA MÍNIMA DE GRAU RESTRITO BASEADO NA META-HEURÍSTICA GRASP E NO ALGORITMO DE PRIM Fortaleza 2010

2 1 Tony Ítalo Abreu Santiago UM ALGORITMO HEURÍSTICO PARA O PROBLEMA DA ÁRVORE GERADORA MÍNIMA DE GRAU RESTRITO BASEADO NA META- HEURÍSTICA GRASP E NO ALGORITMO DE PRIM Monografia apresentada à Faculdade Lourenço Filho como exigência parcial para obtenção do título de Bacharel em Ciência da Computação. Orientador: Prof. MSc. André Barros Pereira. Fortaleza 2010

3 2 Tony Ítalo Abreu Santiago UM ALGORITMO HEURÍSTICO PARA O PROBLEMA DA ÁRVORE GERADORA MÍNIMA DE GRAU RESTRITO BASEADO NA META- HEURÍSTICA GRASP E NO ALGORITMO DE PRIM Monografia apresentada à Faculdade Lourenço Filho como requisito parcial para obtenção título de Bacharel em Ciência da Computação. Monografia aprovada em: / / Orientador: Prof. MSc. André Barros Pereira 1º Examinador: Prof. MSc. Emanuel Ferreira Coutinho 2º Examinador: Prof. MSc. João Frederico Roldan Viana Coordenador do Curso; Prof. MSc. Carlos Manso

4 3 RESUMO Os problemas de Otimização Combinatória são muito comuns no mundo dos negócios, e fazem parte do cotidiano da maioria das pessoas, principalmente entre profissionais de engenharia de telecomunicações, que em seus projetos buscam resolver as mais diversas situações com o menor gasto de material. Esses problemas buscam a melhor configuração de um conjunto finito de variáveis para atingir um objetivo. Estes geralmente se resumem a aumentar lucros e/ou diminuir custos. Existem na literatura atual, vários métodos propostos para resolução desse tipo de problema, que normalmente buscam um equilíbrio entre qualidade de solução e tempo computacional. Esses métodos ao serem utilizados em instâncias de médio e grande porte, podem se tornar procedimentos muito exaustivos, ou até mesmo inviáveis, pois métodos que produzem soluções exatas ou pelo menos de boa qualidade geralmente são computacionalmente muito custosos e métodos que produzem uma solução rapidamente podem estar muito distantes da solução exata. A monografia apresenta uma proposta para resolver um problema bastante comum entre empresas de telecomunicações, de engenharia, de distribuição de energia, enfim, entre empresas que tenham em seu projeto o intuito de diminuir gastos de ligação. Este é conhecido como o Problema da Árvore Geradora Mínima de Grau Restrito. No decorrer deste trabalho serão descritos todos os conceitos necessários para o entendimento do problema, mostrando algumas técnicas de resolução. Será apresentada uma proposta utilizando uma combinação de dois métodos de resolução: Meta-heurística GRASP e o Algoritmo de Prim, formando assim um procedimento que obteve soluções de qualidade com baixo custo computacional, conforme os resultados computacionais disponíveis neste trabalho. Palavras-Chave: Meta-heurística, GRASP, Otimização Combinatória, Árvore Geradora Mínima de Grau Restrito, Algoritmo de Prim

5 4 ABSTRACT The combinatorial optimization problems are very common in the business world and are part of everyday life for most people, especially among engineering professionals in telecommunications, which in their projects seek to solve the different situations with the least expenditure of material. These problems seek the best configuration of a finite set of variables to achieve a goal. These usually boil down to increase profits and/or reduce costs. Exist in current literature, several methods for resolution of this problem, they typically look for a balance between solution quality and computational time. These methods to be used in instances of medium and large, can become very extensive procedures, or even that is impractical because methods that produce exact solutions or at least of good quality are often computationally very expensive and methods to produce a solution quickly may be far from the exact solution. This paper presents a proposal to solve a common problem existing on telecom companies, engineering, power distribution, finally, or undertakings which have in your project in order to lower costs of connection. This is known as the Problem of Minimum Spanning Tree Grade Restricted. In this paper will describe the necessary concepts for understanding the problem, showing some resolution techniques. It will be showed a proposal using a combination of two methods of resolution: Meta-heuristic GRASP and Prim's algorithm to form a procedure that obtained good quality solutions with low computational cost, as will be showed through the computational results available in this work. Keywords: Meta-heuristics, GRASP, combinatorial optimization, minimum spanning tree Degree Restricted, Prim's algorithm

6 5 SUMÁRIO LISTA DE FIGURAS...06 LISTA DE TABELAS...07 LISTA DE QUADROS INTRODUÇÃO PROBLEMA DA ÁRVORE GERADORA MÍNIMA DE GRAU RESTRITO Conceitos Básicos sobre Grafos Árvore Geradora Mínima Árvore Geradora Mínima com Grau Restrito TÉCNICAS DE RESOLUÇÃO Meta-heurísticas Meta-heurística GRASP Fase de Construção Fase de Busca Local Algoritmos para Árvore Geradora Mínima O ALGORITMO PROPOSTO Fase de Construção Fase de Busca Local Codificação Exemplo Numérico Modelo Matemático RESULTADOS COMPUTACIONAIS CONCLUSÃO E TRABALHOS FUTUROS...43 REFERÊNCIAS...44

7 6 LISTA DE FIGURAS 1. Exemplo de um grafo Exemplo de um grafo completo Grafo Valorado Exemplo de ciclo em um grafo Árvore (G1) e Floresta (G2) Exemplo de Rede Grafo com as possíveis arestas Algoritmo de Prim Passo Algoritmo de Prim Passo Algoritmo de Prim Passo Algoritmo de Prim Passo Algoritmo de Prim Passo Algoritmo de Prim Passo Algoritmo de Prim Solução Obtida Representação Gráfica do Grafo G Algoritmo Proposto Passo Algoritmo Proposto Passo Algoritmo Proposto Passo Algoritmo Proposto Passo Algoritmo Proposto Solução da Fase de Construção Algoritmo Proposto Início da Fase de Busca Local Algoritmo Proposto Final da Iteração de Busca Local Algoritmo Proposto Solução Encontrada...34

8 7 LISTA DE TABELAS 1. Tabela de Custos do grafo G Exemplo de Grafo com 5 vértices Resultados Obtidos para Exemplo de Grafo com 5 vértices Matriz de Custos de um grafo de 10 vértices Resultados obtidos pelo Algoritmo para um grafo de 10 vértices Matriz de custos de um grafo de 20 vértices Resultados obtidos pelo Algoritmo para um grafo de 20 vértices...41

9 8 LISTA DE QUADROS 1. Passos do Algoritmo de Prim Algoritmo Proposto Passos da Fase de Construção Algoritmo Proposto Passos da Fase de Busca Local Modelagem Método Exato... 35

10 9 1 INTRODUÇÃO Os problemas de Otimização Combinatória são importantes tanto no meio científico como no mundo dos negócios. Estes problemas consistem na busca da melhor configuração de um conjunto finito de variáveis para atingir algum objetivo. Usualmente estes objetivos se resumem a maximizar lucros e/ou reduzir custos. Para esses problemas existem vários métodos de resolução, que normalmente passam por um dilema entre qualidade da solução e tempo computacional: métodos que produzem soluções ótimas ou pelo menos de boa qualidade podem ser computacionalmente muito custosos ou mesmo inviáveis, enquanto que métodos que fornecem rapidamente uma solução podem estar bem distantes da solução ótima do problema. O grande desafio para os projetistas de algoritmos para resolução de problemas de otimização combinatória é, sem dúvida, encontrar um equilíbrio entre qualidade da solução e tempo computacional. Normalmente, problemas de Otimização Combinatória tais como: sistemas de irrigação, projetos de rodovias, redes de telecomunicações, computadores, telefonia, entre outros, possuem uma série de parâmetros como custo, capacidades de ligação, demandas dos serviços, entre outros. Este fato faz com que a modelagem e resolução desses problemas através de um método exato se tornem um processo exaustivo ou até mesmo inviável, levando em consideração o tempo gasto pelo computador para analisar todas as possibilidades observando as restrições existentes no problema. Durante muitos anos, têm-se estudado métodos para resolver problemas de otimização combinatória. Um tipo particular destes métodos, chamado de heurística, caracteriza-se pela busca de características e informações intrínsecas ao problema a ser explorado, facilitando o encontro de um mínimo global no espaço de soluções viáveis. As heurísticas são limitadas e fornecem sempre a mesma solução quando iniciadas de um mesmo ponto de partida. Somente a partir dos anos 80, começaram a surgir na literatura o que se denomina de meta-heurísticas ou heurísticas inteligentes, tais como: Algoritmos Genéticos, GRASP, Busca Tabu, entre outras diversas. Esta nova técnica heurística veio suprir a deficiência das heurísticas e, tem como objetivo principal explorar um espaço de pesquisa de forma inteligente, ou seja, encontrar soluções de alta qualidade movendo-se para áreas não exploradas quando necessário. Formalmente, Meta-heurística é um processo iterativo ou de refinamento de solução de

11 10 problemas, que organiza e direciona heurísticas subordinadas, pela combinação de diferentes conceitos, podendo manipular soluções completas, incompletas ou um conjunto de soluções, tentando evitar a parada prematura em um ótimo local, através de mecanismos que permitam escapar deste, podendo assim obter um desempenho superior ao comparar com heurísticas tradicionais. A utilização de meta-heurísticas visando à solução de problemas, tais como o problema da Árvore Geradora de custo Mínimo com Grau Restrito (AGMGR), que será estudado neste trabalho, é justificada pela complexidade do problema em geral, motivo que inviabiliza a utilização de técnicas exatas para resolvê-los, para instâncias de médio e grande porte. A meta-heurística GRASP, atualmente possui um grande destaque na literatura para problemas de otimização. Tal destaque deve-se aos bons resultados obtidos nas aplicações já realizadas, pela facilidade de paralelização e principalmente por sua flexibilidade, sendo tais características o motivo da escolha desta meta-heurística para ser aplicada ao problema da Árvore Geradora Mínima com Grau Restrito. A utilização de uma meta-heurística GRASP neste caso se torna viável devido à complexidade existente nesse tipo de problema, principalmente quando existem vários vértices envolvidos no problema. Neste trabalho, procura-se fazer uma melhoria no desempenho dessa meta-heurística inserindo na fase de construção da solução inicial o Algoritmo de Prim, visando-se obter um resultado de qualidade no inicio da execução do algoritmo, aumentando, desta forma, a possibilidade de encontrar a solução ótima do problema com um número menor de iterações. Esta monografia está organizada da seguinte forma: o Capítulo 2 apresenta uma revisão bibliográfica sobre o problema da Árvore Geradora Mínima de Grau Restrito; o Capítulo 3 apresenta os métodos de resolução dos problemas de Otimização Combinatória mais conhecidos; no Capítulo 4 é apresentada uma proposta de resolução para o problema da Árvore Geradora Mínima de Grau Restrito; no Capítulo 5 os resultados dos testes computacionais são reportados; e por fim, no Capítulo 6 são apresentadas as conclusões e as pesquisas futuras.

12 11 2 PROBLEMA DA ÁRVORE GERADORA MÍNIMA DE GRAU RESTRITO 2.1 Conceitos Básicos Sobre Grafos O problema da árvore geradora mínima de grau restrito, cuja resolução consiste no foco deste trabalho, pertence à Teoria dos Grafos, que é um ramo da matemática que estuda a relação entre os objetos de um determinado conjunto. Antes de apresentarmos o problema propriamente dito, faz-se necessário resgatar alguns conceitos da Teoria dos Grafos baseados nos trabalhos escritos por Arroyo (2002), Rosseti (2003), Nascimento (2007), Szwarcfiter (1984), Christofides (1975) Wai-Kai (1990), Even (1980), Chartrand (1993), Boaventura (1996), a fim de se obter uma melhor compreensão sobre o problema estudado e suas variações. Grafo é uma estrutura G(V, A) onde V é um conjunto não vazio de objetos denominados vértices e A um conjunto de pares ordenados de V, chamados arcos. O primeiro vértice do par é a ponta inicial do arco e o segundo vértice é a ponta final do arco. Um arco com ponta inicial u e ponta final v é denotado (u, v) ou simplesmente uv. Dizemos que o arco uv vai de u até v. A Figura 1 mostra um exemplo de um grafo G em que V é o conjunto composto pelos vértices {a, b, c, d} e A o conjunto de arestas denotado pelos pares ordenados {(a, b), (b, c), (c, a), (c, b), (c, d), (d, d)}. Dizemos que um arco xy sai de um vértice u, se x=u. Analogamente um arco xy entra no vértice u se y=u. Dados vértices u e v de um grafo, existe no máximo um arco uv e no máximo um arco vu. Em outras palavras, em grafos não existem arcos paralelos. Por outro lado podem existir arcos do tipo uu, onde a ponta final coincide com a inicial. Um arco desse tipo é conhecido

13 12 como laço. No caso de existir no mesmo par de vértices um arco do tipo uv e um arco do tipo vu, esse par de arcos pode ser denominado simplesmente de aresta, conceitos ilustrados na Figura 1. Um grafo é dito completo, Figura 2, se não possuir laços e para cada vértice deve haver uma aresta ligando este vértice a cada um dos demais vértices. Ou seja, em um grafo com n vértices, cada um dos vértices possui n-1 arestas. Uma aresta conecta dois vértices e esses dois vértices usualmente são denominados incidentes à aresta. O grau, ou valência, de um vértice é o número de arestas incidentes a ele. Nos casos em que o vértice possui um laço, este é contado duas vezes. Percebe-se que em um grafo completo de n vértices todos os vértices possuem o mesmo grau (n-1). O grau de um grafo é definido como o maior grau entre seus vértices. Dependendo do que se deseja modelar através do uso de grafos, arestas podem ou não ter direção. Vértices ou arestas podem ter um peso (numérico) associado. Se as arestas têm uma direção associada (indicada por uma seta na representação gráfica), como ilustrado na Figura 1, o grafo é dito direcionado, orientado ou dígrafo. Se tiver pesos associados às arestas, é chamado de valorado, que é mostrado na Figura 3. Em Teoria dos Grafos, um caminho em um grafo é uma sequência de vértices tal que, de cada dois vértices consecutivos há uma aresta unindo-os no grafo. O primeiro vértice é

14 13 chamado de vértice inicial e o último de vértice final. Um caminho sem vértices repetidos é chamado de caminho simples. A Figura 4 mostra um caminho cujo vértice inicial coincide com o vértice final. Um caminho com esta característica é denominado ciclo. Observe que a escolha do vértice inicial em um ciclo é arbitrária. Um laço pode ser considerado um ciclo de comprimento igual a um. Se o ciclo envolve todos os vértices do grafo, ele é chamado de ciclo hamiltoniano. Um ciclo simples é um ciclo que tem comprimento maior ou igual a 3 e no qual o vértice inicial só aparece mais uma vez, como vértice final, e os demais vértices aparecem só uma vez. Um grafo é denominado acíclico se não contém ciclos simples. Um grafo é denominado conexo se, para qualquer par de vértices u e v do grafo, existe um caminho de u para v. Na Teoria dos Grafos, uma árvore é um grafo conexo e acíclico. Caso o grafo seja acíclico, mas não conexo, ele é dito uma floresta. Estes conceitos estão ilustrados na Figura 5. Uma floresta também é definida como uma união disjunta de árvores. Uma árvore de um grafo G é um subgrafo de G = (V, A) conexo e acíclico. Uma Árvore Geradora de G é uma árvore que contém todos os nós do grafo. Uma Árvore Geradora Mínima é uma árvore geradora cuja soma dos pesos de suas arestas é mínima em G. A importância dessa estrutura é enorme tanto na prática dos problemas de otimização, como parte da solução de vários outros modelos. Suas maiores aplicações na área de Pesquisa

15 14 Operacional estão associadas aos problemas de comunicação e conexões. Outra maneira usual de definir o Problema da Árvore Geradora Mínima diz respeito ao conceito de grafo do tipo rede. Esta estrutura é bastante utilizada nos mais diversos problemas de Otimização. Um grafo que possui valores numéricos associado à suas arestas, ou vértices, ou até mesmo em ambos é chamado de Rede, demonstrado pela Figura 6. Uma rede básica, N, é um dígrafo que possui as seguintes características: N tem, exatamente, uma origem e um destino e para cada arco v de N está associado um número positivo c(v) que se designa capacidade do arco v e representa a quantidade máxima de fluxo nesse arco em um determinado período de tempo. A capacidade de cada arco de uma rede geralmente é distinta, de uma maneira geral. A capacidade de transporte dos arcos que saem do vértice inicial e chegam por diferentes caminhos ao vértice final em uma rede é chamada de fluxo de rede. Um fluxo numa rede básica N com origem S e destino T consiste na atribuição de um número não negativo f(v) a cada arco de N. Os fluxos de uma rede devem obedecer a algumas restrições: Em cada arco, o fluxo não pode exceder a capacidade do arco, e os vértices, ou nós, não são pontos de consumo, isto é, a soma que chega ao nó deve ser igual à soma que sai do nó. Exceto os nós de origem e destino. Quando o fluxo de um arco é igual à capacidade do mesmo, esse arco é chamado de arco saturado, e quando o fluxo é menor do que a capacidade é dito arco não saturado Árvore Geradora Mínima Baseado em Goldbarg e Luna (2002), o problema da Árvore Geradora Mínima (AGM) pode ser descrito da seguinte forma: considere uma rede não direcionada, conectada e associada a cada arco um valor (peso, tempo, etc.) não negativo, o objetivo é encontrar o caminho mais curto de tal maneira que os arcos forneçam um caminho entre todos os pares de nós.

16 15 Esse problema pode ser aplicado em diversas situações como: projetos de redes de telecomunicação (redes de computadores, de fibra óptica, de telefonia, de televisão a cabo), no projeto de rodovias, estradas e ferrovias, projetos de redes de transmissão de energia, e diversas outras aplicações com o intuito de diminuir gastos de ligação ou melhorar desempenho de sistemas. Sobre o problema da Árvore Geradora Mínima alguns conceitos fundamentais estão envolvidos. Uma rede com n nós, requer somente n-1 arcos para produzir uma ligação entre cada par de nós. Os n-1 arcos devem formar uma árvore geradora. O problema é achar a árvore geradora com menor custo total. Parte do princípio que existe apenas os nós de uma rede e arcos potenciais. 2.3 Árvore Geradora Mínima com Grau Restrito O problema abordado nesse trabalho é uma situação específica do problema da Árvore Geradora Mínima, conhecido como Problema da Árvore Geradora Mínima com Grau Restrito. Esse problema específico visa identificar uma Árvore Geradora Mínima cujos vértices possuem um determinado grau máximo k, onde k>=2. O objetivo do algoritmo que resolve esse problema é ligar todos os nós que compõem o grafo em questão com o menor custo possível, obedecendo a capacidade de ligação de cada nó, como por exemplo, cada nó do grafo deve conter no máximo três ligações. O problema da Árvore Geradora Mínima de Grau Restrito é considerado NP - Difícil. Problemas da classe NP são problemas onde o número de computações do melhor algoritmo conhecido cresce exponencialmente em função do tamanho da instância e não existe a garantia da existência de algoritmos melhores. Um problema é NP - Difícil se todos os problemas da classe NP forem redutíveis a ele. Como o número de computações cresce exponencialmente, para instâncias maiores desse problema, a utilização de um algoritmo exato se torna inviável devido ao algoritmo levar um tempo enorme para resolver o problema ou até mesmo levar o computador a situações de instabilidade como o travamento. Então, para resolver esse problema, será utilizado nesse trabalho um método aproximativo chamado de meta-heurística, que não garante a solução ótima, mas para problemas complexos normalmente oferece uma solução muito boa em tempo relativamente pequeno.

17 16 3 TÉCNICAS DE RESOLUÇÃO 3.1 Meta-heurísticas Até o final dos anos 80, os métodos heurísticos propostos para resolver problemas de otimização combinatória eram, em sua maioria, específicos e dedicados a um dado problema. A partir daí, esse paradigma muda e surge um grande interesse em técnicas que sejam mais gerais e por isso, aplicáveis a diversos problemas. Técnicas assim são conhecidas por Metaheurísticas. Dentre elas destacam-se: Simulated Annealing, Tabu Search, Genetic Algorithm, Scatter Search, GRASP (Greedy Randomized Adaptive Search Procedures), Colônia de Formigas, VNS (Variable Neighbourhood Search), e outras técnicas. Meta-heurísticas são heurísticas genéricas que são utilizadas para obter, em tempo hábil, soluções viáveis e eventualmente ótimas, principalmente para problemas de otimização combinatória de elevada complexidade computacional. A seguir será descrito, de forma breve, um pouco sobre as meta-heurísticas mais conhecidas e mais utilizadas. As Meta-heurísticas vêm tendo um ótimo desempenho nos últimos anos quando se diz respeito a problemas de otimização. Por essa razão, acredita-se ser importante discorrer sobre algumas meta-heurísticas mais conhecidas para a resolução desse tipo de problema, com o objetivo de ter uma visão geral sobre o procedimento utilizado por cada uma delas a fim de se obter resultados satisfatórios em um tempo hábil. Uma grande vantagem das meta-heurísticas em relação a outros métodos de resolução de problemas de otimização é que elas são bastante adaptáveis. Cada uma delas pode ser, com mais ou menos esforço, personalizada para resolver praticamente todo tipo de problema de otimização, independente de suas peculiaridades. Para que uma meta-heurística explore o espaço de busca de forma inteligente, obtenha soluções de ótima qualidade e consiga mover-se para áreas não exploradas quando necessário, os conceitos de intensificação e diversificação devem ser contemplados. A intensificação consiste em concentrar as buscas em regiões promissoras em torno de boas soluções. A diversificação consiste em fazer buscas em regiões ainda não exploradas, visando fugir de ótimos locais. Toda meta-heurística deve possuir componentes de diversificação e intensificação. Esses dois componentes devem ser balanceados e bem utilizados. Baseando-se nos trabalhos realizados por Campello e Maculan (1994), Feo e Resende (1995), Osman e Kelly (1995), Pirlot (1992) e Viana (1998), será descrito os aspectos mais

18 17 relevantes de algumas Meta-heurísticas que possuem destaque na literatura atual. Sobre a Meta-heurística Simulated Annealing pode-se afirmar que: Considerando a diferença de Energia dada por E E = Ei+1 Ei. É um algoritmo de busca local que explora a analogia entre os problemas de otimização combinatória e os da mecânica estatística. Tal analogia é feita associando-se as soluções viáveis dos problemas de otimização combinatória a estados dos sistemas físicos sendo que seus custos são associados à energia desses estados. Considerando dois estados sucessivos de energia Ei e Ei+1, correspondendo a duas soluções vizinhas e tomemos E E = 0, há situação de estabilidade e, portanto, não há alteração de energia, isto é, a função custo do problema permanece inalterada; se E E<0, há redução de energia e o processo continua, ou seja, há redução na função custo do problema e a nova alocação deve ser aceita; se E E > 0, fica caracterizado um aumento de energia, útil no processo físico para permitir uma futura acomodação das partículas, ou seja, a função custo do problema sofre aumento. Ao invés desta alocação ser eliminada, ela poderá eventualmente ser aproveitada. Para isso, uma função de probabilidade deverá ser acionada para evitar a convergência da função para mínimos locais indesejáveis. Sobre a Meta-heurística Busca Tabu afirma-se que é um algoritmo de busca local introduzido por Glover (1989) para problemas de programação inteira, com o objetivo de encontrar soluções de boa qualidade. Caracteriza-se pela existência de uma lista atualizada das melhores soluções encontradas no decorrer do algoritmo, onde cada solução possui um valor de prioridade ou critério de aspiração. Seus ingredientes básicos são uma lista tabu, para armazenar um histórico da evolução do processo de busca, um mecanismo que permite aceitar ou rejeitar uma nova alocação na vizinhança, baseado nas informações armazenadas na lista tabu e suas respectivas prioridades e um mecanismo que permite alternar entre estratégias de diversificação e intensificação na vizinhança. Algoritmos Genéticos são definidos como técnicas que se apóiam nos mecanismos de seleção e adaptação natural das espécies. Tais algoritmos mantêm uma população formada por um subconjunto de indivíduos, que no caso dos problemas de otimização combinatória são as soluções viáveis, com valores de aptidão associados aos custos de tais soluções. Através dos chamados operadores genéticos e de critérios de seleção, cada algoritmo substitui uma população de indivíduos por outra, com valores de aptidão, em média, melhores. A idéia básica consiste em acreditar que os melhores indivíduos sobrevivem e geram descendentes com suas características hereditárias, de maneira semelhante à teoria biológica das espécies. De forma análoga, os algoritmos genéticos partem de um conjunto de soluções iniciais

19 18 geradas aleatoriamente, avaliam seus custos, selecionam um subconjunto das melhores soluções e realizam operações genéticas sobre elas, gerando um novo conjunto de soluções ou uma nova população. A Meta-heurística Scatter Search foi introduzida por Glover (1977) em um estudo heurístico de problemas de programação linear inteira. É um método evolutivo que considera combinações lineares de vetores-solução para produzir novos vetores-solução através de gerações sucessivas. Esta metaheurística é composta por uma fase inicial e outra evolutiva. Na primeira, se constitui um conjunto de soluções, das quais as melhores são escolhidas para fazerem parte de um conjunto referência. Na fase evolutiva, novas soluções são geradas utilizando combinações de subconjuntos referência que são selecionados estrategicamente. A partir daí, um conjunto das melhores soluções geradas é incluído no conjunto referência. Os procedimentos da fase evolutiva são repetidos até que o processo satisfaça a um critério de parada qualquer. O GRASP (Greedy Randomized Adaptive Search Procedures) é uma técnica aleatória e iterativa onde, a cada iteração, uma solução aproximada para o problema é obtida. A melhor solução resultante de todas as iterações é a solução final. Em cada iteração, a primeira solução é construída através de uma função gulosa aleatória e as soluções posteriores são obtidas aplicando-se, sobre a solução anterior, um algoritmo de busca local que forneça uma nova solução melhor que a anterior. Ou seja, cada iteração é composta por duas fases, uma de construção e outra de busca local. Ao final de todas as iterações, a solução resultante é a melhor solução gerada. Nada garante que soluções geradas por uma construção GRASP não recaiam em ótimos locais. Assim, é importante aplicar a fase de busca local na tentativa de melhorar tais soluções. Com o uso de estruturas de dados personalizadas e uma implementação cuidadosa, uma fase construtiva eficiente pode produzir boas soluções iniciais, possibilitando uma busca local eficiente. O método Colônia de Formigas trata-se de uma classe de algoritmos distribuídos que tem como principal característica, a definição de propriedades na interação de vários agentes simples. Tem como princípio a forma como as formigas são capazes de encontrar um caminho do formigueiro até uma fonte de alimento e vice-versa. Cada agente simples é chamado de formiga e o conjunto de formigas, cooperando numa atividade comum para resolver um problema, constitui o sistema. A principal característica do método é que a interação desses agentes gera um efeito sinérgico, pois a qualidade da solução obtida aumenta quando tais agentes trabalham juntos, interagindo entre si, para a resolução de um mesmo problema.

20 19 A Meta-heurística de Busca em Vizinhança Variável, conhecida por VNS (Variable Neighbourhood Search), foi introduzida por Mladenović (1995) e Mladenović & Hansen (1997). É baseada na mudança sistemática das vizinhanças utilizadas na busca e vem sendo aplicada na resolução de grandes exemplares para problemas combinatórios. Não resta dúvida que, embora essas Meta-heurísticas tenham sido criadas a partir de conceitos distintos, todas possuem características em comum que na prática tem produzido resultados confiáveis, e eventualmente soluções ótimas têm sido encontradas. Além disso, como regra geral no campo das Meta-heurísticas, a solução tem sido encontrada em tempo relativamente baixo se comparada com os métodos de solução exatos. 3.2 Meta-heurística GRASP A meta-heurística que será abordada nesse trabalho, GRASP Greedy Randomized Adaptive Search Procedure baseia-se na construção de uma solução inicial e, a partir desta, realizar vários procedimentos de busca local visando uma melhoria na solução inicial. É importante frisar que esta meta-heurística atualmente possui um grande destaque na literatura para problemas de otimização em geral, devido aos bons resultados obtidos e, por esse motivo, foi escolhida para a solução do problema estudado neste trabalho. O GRASP que significa em português Procedimento de Busca Gulosa Adaptativa Aleatória é um processo iterativo em que cada iteração consiste em múltiplas aplicações de busca local, cada uma iniciando de uma solução diferente. O método em geral divide-se em duas fases: uma fase de construção e uma fase de busca local Fase de Construção Na fase de construção da meta-heurística GRASP, é utilizado um método para a construção de uma solução viável do problema para ser adotada como solução inicial. Nesta fase são geradas soluções iniciais através de algum tipo de construção randômica gulosa ou algum esquema de perturbação. O método de construção varia de acordo com o problema a ser resolvido. Nessa fase a solução inicial é construída elemento a elemento. Inicialmente o elemento está em uma lista de candidatos (LC) e através de um fator α (alfa), cujo valor se situa entre 0 e 100%, é criada uma lista restrita de candidatos LRC que possui os melhores elementos de LRC. O tamanho da LRC é determinado por: CardinalidadeLRC = α * CardinalidadeLC

21 20 Após a definição da LRC, seleciona-se um elemento da mesma para compor a solução. A seleção do elemento pode ser realizada aleatoriamente ou através de um critério guloso. Esses dois tipos de seleção provocam duas variações do GRASP conforme a construção da solução: gulosa ou aleatória. Após a adição do elemento na solução, o processo continua com a atualização de ambas as listas LC e LRC. À medida que os elementos vão sendo escolhidos para compor a solução, vão sendo retirados da LC. O processo de construção é finalizado quando a cardinalidade de LC possuir o valor zero, ou seja, não há mais elementos candidatos a constituir a solução, pois uma solução já está disponível. O valor de α influencia na qualidade e diversidade da solução gerada na fase de construção. Valores baixos de α geram soluções gulosas de boa qualidade, mas com pouca diversidade. Um valor alto de α, próximo a 100%, leva a uma grande diversidade, potencializando a obtenção de soluções de qualidade inferior. Isso também influencia o processo de busca local, pois soluções de qualidade inferior tornam o processo de busca local mais lento. O valor de α pode ser constante ao longo do algoritmo, mas pode sofrer também alterações a cada iteração ou por meio de um esquema aleatório ou adaptativo Fase de Busca Local A segunda fase da meta-heurística GRASP consiste em refinar a solução encontrada na primeira fase aplicando um método de busca local para fazer pequenas alterações na solução corrente denominada perturbações. Isso corresponde a uma intensificação na solução encontrada, explorando regiões vizinhas através da busca local para encontrar um ótimo local. A busca local pode ser sofisticada, entretanto, não se deve esquecer o diferencial do GRASP, que é explorar o espaço de soluções com gerações rápidas. Quanto melhor for a qualidade da solução gerada na primeira fase, maior será a velocidade para encontrar um ótimo local. Nesta fase o algoritmo utiliza a solução atual, que no inicio é a solução construída na fase anterior, e nela faz uma série de pequenas perturbações, pequenas alterações, que modificarão levemente a solução, visando uma melhoria no custo final. Após cada perturbação é verificada se a solução continua viável. Após um ciclo de perturbações, é avaliada se houve melhoria na solução ou não. Caso em qualquer uma das perturbações tenha sido achada uma solução melhor que a atual, esta solução será adotada como solução atual para o início de uma nova iteração. Caso não tenha sido identificada melhoria em nenhuma

22 21 das perturbações, a melhor solução encontrada após o término da fase de busca local é adotada como solução do problema sobre análise. No final de um ciclo de iterações, é destacado o melhor resultado encontrado dentre todas elas, que pode não ser a solução ótima, mas espera-se que seja pelo menos uma solução muito boa, com a vantagem de ter sido encontrada em um tempo relativamente pequeno. 3.3 Algoritmos para Árvore Geradora Mínima Existem vários algoritmos que propõem soluções para o problema da Árvore Geradora Mínima e suas variantes, dentre os quais, os mais conhecidos e utilizados serão descritos a seguir. Todos eles são procedimentos que sempre encontram a solução ótima para qualquer instância. Um dos algoritmos para Árvores Geradoras Mínimas mais conhecidos é o de Kruskal. Este algoritmo inicia sua procura da solução fazendo uma busca na tabela de custos das arestas, selecionando as arestas de menor peso e inserindo-a na solução. Logo após, o algoritmo vai analisar a tabela de custos novamente, procurando entre as arestas do grafo, a menor destas que ainda não foi adicionada a solução. Quando a encontra, é verificado dentre as restrições do problema, se a aresta pode ser adicionada à solução sem que a mesma se torne inviável ou nula. Esse passo de buscar a menor aresta e verificar a possibilidade de sua adição na solução é repetido até que todos os vértices façam parte da solução e formem uma Árvore Geradora. Outro algoritmo bastante utilizado para resolver o mesmo tipo de problema é o Algoritmo de Boruvka. Ele funciona da seguinte forma: dado um grafo, representado sob qualquer uma das suas possíveis formas, o Algoritmo consiste em encontrar a mínima distância entre todos os pontos do grafo. Caracteriza-se pela divisão do grafo original em vários subgrafos para os quais é calculado a Árvore Geradora Mínima, ou seja, pode ser considerado uma variação do Algoritmo original de Dijkstra, que é usado para resolver o problema do caminho mais curto em um grafo direcionado ou não direcionado, com arestas de peso não negativo. Trata-se de um algoritmo guloso, ou seja, toma a decisão que parece ótima no momento. O algoritmo de Boruvka é um procedimento com velocidade e convergência bastante rápida, sendo ideal para implementação em computadores paralelos já que a Árvore Geradora Mínima de cada um dos subgrafos pode ser calculada numa máquina diferente. Este algoritmo é recursivo e só termina quando existe apenas um vértice.

23 22 O Algoritmo escolhido para ser utilizado neste trabalho, se não é o mais conhecido dos algoritmos propostos para este problema, é o mais utilizado e seu processo de busca pela solução é fácil de compreender. O Algoritmo de Prim é um algoritmo em Teoria dos Grafos que busca uma Árvore Geradora Mínima para um grafo conexo, ou seja, que possua ligações entre todos os seus nós, e com pesos mínimos. O Algoritmo de Prim é um exemplo de um algoritmo guloso. Um algoritmo guloso, ou ganancioso, é uma técnica de algoritmos para resolver problemas de Otimização, sempre realizando a escolha que parece ser a melhor no momento, fazendo uma escolha ótima local, na esperança de que essa escolha nos leve a uma solução ótima global. Esse tipo de algoritmo tem a vantagem de ser de fácil implementação e ser considerado simples, e tem como desvantagens o fato de, nem sempre, conduzir a soluções ótimas globais e também podem efetuar cálculos repetitivos. No caso do Algoritmo de Prim ele sempre encontra a solução ótima. O Algoritmo de Prim é uma técnica de resolução que parte do princípio de se fazer uma análise da vizinhança adicionando gradativamente os nós candidatos, buscando ligar todos os nós com o menor custo. O algoritmo é muito eficiente em pequenas situações, porém, por se tratar de uma técnica que analisa todas as possibilidades de ligação, não se torna viável para grandes configurações. Os passos do Algoritmo de Prim são mostrados no Quadro 1: Um dos nós candidatos é escolhido para ser o nó inicial do algoritmo. Esse nó passa a fazer parte da solução atual. Na solução atual é feita uma busca pela sua vizinhança considerando-se o valor das possíveis arestas, dentre as quais será escolhida a melhor delas, que no caso do problema da árvore geradora mínima é a aresta de menor custo. A aresta escolhida e o nó que está ligado à aresta passarão a fazer parte da nova solução atual, que agora vai conter o nó inicial, a aresta e o nó escolhido. Com a nova configuração, é feita uma nova pesquisa dentre as vizinhanças nas possíveis arestas que poderão ligar os nós que fazem parte da solução atual aos nós vizinhos que ainda não fazem parte da solução. Novamente é identificado o nó de menor custo e este nó, juntamente com sua respectiva aresta farão parte da nova configuração. O processo de pesquisa de vizinhança e adição de arestas e nós se repetirá até que todos os nós do grafo façam parte da solução. Quadro 1: Passos do Algoritmo de Prim

24 23 Com a finalidade de ilustrar o procedimento usado pelo Algoritmo de Prim, será apresentado um pequeno exemplo numérico e serão descritas, passo a passo, todas as operações realizadas por esse algoritmo de resolução. De acordo com a Figura 7, considere que uma grande multinacional do ramo de medicamentos deseja interligar suas filiais utilizando uma rede de dados de fibra óptica privada com o intuito de melhorar o desempenho de seu sistema de transmissão de dados. Cada filial está representada por um nó do grafo e as conexões potenciais entre as filiais são representadas pelas arestas. As distâncias em km entre as filiais são exibidas como pesos nas arestas do grafo. Arbitrariamente, o algoritmo seleciona um nó para se tornar o vértice inicial do problema. Na Figura 8, o algoritmo seleciona o nó O para inicio do procedimento. Qualquer outro nó poderia ter sido escolhido. O nó não conectado mais próximo de O é o nó A, então o algoritmo irá conectar o nó A ao nó O. O nó não conectado mais próximo dos nós O e A é o nó B, que está mais próximo de A. O algoritmo irá conectar o nó B ao nó A. Passo ilustrado através da Figura 9.

25 24 Na Figura 10, o nó não conectado mais próximo dos nós O, A, B é o nó C, que está mais próximo de B. Então o algoritmo vai conectar o nó C ao nó B. Como se pode observar na Figura 11, o nó não conectado mais próximo dos nós O, A, B, C é o nó E, que está mais próximo do nó B. Logo, o algoritmo irá conectar o nó E ao nó B. O nó não conectado mais próximo dos nós O, A, B, C, E é o nó D, que está mais próximo de E. Então o algoritmo conecta o nó D ao nó E. Passo ilustrado na Figura 12.

26 25 Como representado na figura 13, o nó não conectado mais próximo dos nós O, A, B, C, E, D é o nó T, que está mais próximo do nó D. O algoritmo irá conectar o nó T ao nó D. Na Figura 14, é apresentada a solução final que possui uma distância total de 14 quilômetros. Através dessa rede, é possível ir de uma filial até qualquer outra filial. A solução final encontrada pelo procedimento do Algoritmo de Prim mostrada na Figura 14 é dita Árvore Geradora Mínima do grafo inicial, com custo total da solução de quatorze quilômetros, que é uma solução ótima do problema. Independente do nó inicial escolhido pelo algoritmo, a solução final terá sempre o mesmo custo.

27 26 4 O ALGORITMO PROPOSTO Nesse trabalho foi abordado o problema da Árvore Geradora Mínima de Grau Restrito. Como esse problema é classificado como NP Difícil foi utilizada uma meta-heurística (GRASP) para resolvê-lo. A seguir será descrito em detalhes o algoritmo que foi utilizado na resolução do problema da Árvore Geradora Mínima com Grau Restrito. 4.1 Fase de Construção Na fase de construção da solução inicial de uma meta-heurística GRASP comum normalmente é utilizada uma técnica gulosa ou aleatória para a formação de uma solução inicial viável, para o início do procedimento computacional. Somente na fase seguinte, é utilizada sobre essa solução inicial, técnicas de melhoramento visando aprimorar a solução. Optamos por utilizar para a construção da solução inicial, uma adaptação do Algoritmo de Prim. Com isso, espera-se encontrar na fase de construção, uma solução muito boa, eventualmente ótima, e com isso diminuir o número de iterações de busca local. Desta forma, almeja-se melhorar o tempo computacional gasto para resolver o problema, porém tentandose assegurar a qualidade da solução obtida. O Algoritmo de Prim modificado que compõe a fase de construção da Meta-heurística é apresentado no Quadro 2. Entrada: Grafo G (V, A) conexo, grau máximo do grafo k, tamanho percentual da lista restrita de candidatos. Algoritmo: Passo 1: Escolha aleatoriamente um vértice inicial s. Insira-o na solução S. Passo 2: Selecione os vértices que não estão em S e que são adjacentes a vértices que estão em S, verificando se, uma vez conectados, não ultrapassam o grau k em S e não formam ciclos. Passo 3: Ordene-os do mais próximo ao mais distante de algum vértice de S (ou seja, das arestas de menor peso às de maior peso incidentes aos vértices de S). Passo 4: Selecione os % melhores vértices (ou seja, aqueles cujas arestas possuem menor peso) para formar a lista restrita de candidatos (LRC). Se o valor de LRC não for inteiro, selecione a quantidade de elementos correspondentes ao menor inteiro maior que LRC.

28 27 Passo 5: Escolha aleatoriamente um vértice da LRC para compor a solução. Insira-o, juntamente com sua aresta correspondente à solução S. Passo 6: Repita os passos 2 a 6 até que não se tenha mais vértices fora da solução S. Saída: Solução S contém uma árvore geradora. Quadro 2: Algoritmo Proposto Passos da Fase de Construção 4.2 Fase de Busca Local Na fase de busca local de uma meta-heurística GRASP, utiliza-se uma técnica sobre a solução inicial de forma a explorar a vizinhança desta solução obtida em busca de melhoramento no custo da solução. A técnica é aplicada até que não se consiga mais obter melhoramento da solução. A forma de exploração da vizinhança da solução obtida na fase de construção que propomos é apresentada no Quadro 3: Entrada: Solução inicial S Algoritmo: Passo 1: Para cada par de vértices v de grau 1 (ou seja, folhas da árvore) de S e sua respectiva aresta (v, u) faça: Passo 2: Para cada vértice w de S, tal que w u, crie uma solução S removendo a aresta (v, u) e inserindo a aresta (v, w). Verifique se a solução continua viável (se a aresta formada existe no grafo original e se o grau k está sendo respeitado). Se S for viável, insira-a em uma lista de soluções candidatas LSC. Passo 3: Seja C a melhor solução da LSC (a solução de menor custo). Passo 4: Se o custo de C for menor que o de S, então S=C e retorne ao passo 1. Senão, Fim do Algoritmo. Saída: Solução final S contendo uma árvore geradora. Quadro 3: Algoritmo Proposto Passos da Fase de Busca Local O algoritmo terá ainda como parâmetro o número de iterações GRASP desejado. Cada iteração GRASP consiste na geração de uma solução através da execução da Fase de Construção e a respectiva tentativa de refinamento da mesma através da execução da Fase de Busca Local. A Solução final S do algoritmo será a melhor solução obtida em todas as iterações GRASP.

29 Codificação A fim de verificar o desempenho computacional do algoritmo proposto, foi realizada uma implementação computacional do algoritmo. Para a implementação foi utilizada a linguagem de programação C e o editor utilizado para a edição e compilação do código foi o Bloodshed Dev C++ Versão 4, que possui um ambiente integrado que aborda as linguagens C e C++. Como guia de referência para codificação do programa na linguagem C foi utilizado Schildt (1997). Nesse primeiro momento, foi implementada uma solução que tem como objetivo resolver problemas de Árvore Geradora Mínima com Grau Restrito em grafos completos. 4.4 Exemplo Numérico Para uma melhor compreensão desse trabalho, aqui será descrito um exemplo numérico da aplicação do algoritmo proposto e para o qual foram realizados testes computacionais. Também será exibido um modelo matemático que foi executado por um resolvedor a fim de se obter a solução ótima. Considere um grafo completo G de vértices V = {1, 2, 3, 4, 5}, deseja-se obter a Árvore Geradora Mínima de G com o grau de vértice k = 3 e matriz de distância entre vértices descrita pela Tabela 1: Tabela 1: Tabela de Custos do grafo G Figura 15. Resolvendo através de um método exato solução ótima deste problema é ilustrada na

30 29 Agora será mostrado passo a passo, todo o processo feito pelo algoritmo proposto em busca da solução final do problema. Na Figura 16, o algoritmo inicia seu procedimento a partir de uma fase de construção de uma solução inicial. Para esta fase, considere que α = 50% e que o grau de cada vértice seja no máximo k = 3. O algoritmo iniciará com o vértice inicial 1 e a partir do mesmo criará uma LRC contendo as 50% melhores arestas da lista de candidatos. Dentre as arestas existentes na LRC o algoritmo faz uma seleção aleatória do vértice e em seguida faz uma ligação entre o vértice escolhido e o vértice inicial. A aresta escolhida por método aleatório foi a aresta (1-2) com custo igual a dois, conforme Figura 17.

31 30 Agora o grupo solução já possui dois vértices. O grupo que já faz parte da solução possui seis arestas candidatas, a LRC deste grupo conterá as três melhores arestas e, dentre estas, uma será escolhida aleatoriamente para fazer parte do grupo solução. Neste passo o algoritmo selecionou a aresta (1, 3) com o custo dois, como se pode observar na Figura 18. Até este ponto a solução possui três vértices e, como mostrado na figura 18, o grupo solução possui seis arestas candidatas. Logo, a lista restrita de candidatos possui as cinqüenta por cento melhores arestas que participarão da seleção aleatória. Agora a aresta selecionada pelo método aleatório foi (1, 4) com custo de três unidades, conforme Figura 19. Neste passo a solução possui quatro vértices e aqui o grupo solução possui somente três arestas na lista de candidatos, pois devido à restrição do grau do vértice que é k = 3 no vértice 1 que já possui três ligações, todos os vértices candidatos ligados a ele deixarão de fazer parte da lista de candidatos. Então, dentre as três arestas da LC as cinqüenta por cento melhores (ou seja, as duas melhores) arestas da LC farão parte da LRC. Como se pode verificar na Figura 20, o algoritmo escolheu de maneira aleatória a aresta (2, 5) de custo quatro.

32 31 Aqui o algoritmo chegou ao final da fase de construção da solução inicial. Foi encontrada uma árvore geradora que tem o custo total onze, a qual servirá como parâmetro de entrada para a fase de busca local, ilustrada na Figura 21. A fase que se inicia agora fará uma busca pela vizinhança da solução tendo como objetivo a redução do custo total da solução já existente. O procedimento de perturbação executado por esta fase trata-se de encontrar um nó com grau de vértice igual a um, desconectá-lo da árvore, tentar conectá-lo a outro vértice que possa receber uma ligação e verificar o custo da nova solução. Esse vértice será testado em todos os vértices da solução. Esse procedimento será feito com todos os nós que possuem grau igual a um. Se houver melhora em alguma dessas tentativas, o algoritmo adota essa configuração melhor como solução corrente e inicia uma nova iteração de busca local, até que sejam feitos todos os testes na vizinhança e em nenhum destes tenha havido melhoria de custo. No final de todo esse processo, se dá por encerrada uma iteração GRASP. Como mostra a Figura 21, no início da fase de busca local o algoritmo identifica todos os nós da solução corrente, que possuem grau de vértice igual a um. No exemplo ilustrado, os nós 3, 4, 5, foram identificados com grau 1, o vértice 2 possui grau 2 e o vértice 1 possui grau 3. Os nós 3, 4, 5, passarão pelos processos de perturbações de busca local.

33 32 Primeiro serão feitas perturbações com o vértice 3, que será desconectado do nó 1 e será conectado ao nó 2. Com isso, a solução passa a ter custo total igual a doze, que é maior que o custo da solução corrente. Logo, essa perturbação será desconsiderada e o algoritmo avança para a próxima perturbação. O próximo passo do algoritmo é desconectar o nó 3 da solução e conectá-lo ao nó 4, com isso, a nova configuração passa a ter custo igual a dezesseis e essa configuração também será descartada pelo algoritmo. Na última ligação possível do nó 3, o mesmo será desconectado do nó 1 e conectado ao nó 5; com essa configuração, a solução passaria a ter custo igual a dezenove e seria descartada pelo algoritmo. Como o nó 3 não pode ser conectado a nenhum outro vértice da solução, o algoritmo passa a analisar o próximo nó de grau igual a um da solução corrente. A próxima tentativa será com o nó 4, que na solução corrente encontra-se ligado ao vértice 1 através de uma aresta com custo de ligação três. Este será desconectado da solução e primeiramente será conectado ao vértice 2, o que eleva o custo total da solução para doze; isto fará com que o algoritmo descarte essa configuração. O próximo passo é conectar o nó 4 ao nó 3, o que resulta que essa configuração possui custo igual a quinze e também será descartada pelo algoritmo. No passo seguinte, o nó 4 será conectado ao vértice 5; essa configuração faz com que o custo da solução, que antes era de onze, passe a ser de nove, e, portanto faz com que o algoritmo guarde esta configuração em memória para que no final da fase de busca, possivelmente substitua a solução corrente. Porém, a iteração não é interrompida e o algoritmo continua testando as possibilidades de configurações identificadas no inicio da fase de busca local. O último vértice de grau um identificado na solução corrente é o vértice 5, que primeiramente será desconectado do nó 2 e será conectado ao nó 3, fazendo com que o custo da solução seja igual a 17 e o algoritmo descarte a configuração. Em seguida, o nó 5 será conectado ao nó 4; essa mudança fará com que o custo, que ainda é de onze, seja reduzido para oito. O algoritmo compara o custo da configuração atual ao da solução que ele tinha encontrado e armazenado na memória. Após essa comparação, ao verificar a redução do valor na nova configuração, o programa substitui a solução armazenada por essa nova configuração encontrada de custo oito. Neste momento, como o nó 5 não pode ser conectado ao nó 1, devido ao grau do vértice 1 já possuir o valor três, e não haver mais nenhuma possibilidade de ligação, o programa resgata da memória a configuração guardada durante a fase de busca local e substitui a

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

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

Meta-heurísticas. Métodos Heurísticos José António Oliveira zan@dps.uminho.pt. meta-heurísticas

Meta-heurísticas. Métodos Heurísticos José António Oliveira zan@dps.uminho.pt. meta-heurísticas Meta-heurísticas 105 meta-heurísticas Propriedades e Características: são estratégias que guiam o processo de pesquisa; - o objectivo a atingir é a exploração eficiente do espaço de pesquisa de modo a

Leia mais

Resolução do Problema de Roteamento de Veículos com Frota Heterogênea via GRASP e Busca Tabu.

Resolução do Problema de Roteamento de Veículos com Frota Heterogênea via GRASP e Busca Tabu. Resolução do Problema de Roteamento de Veículos com Frota Heterogênea via GRASP e Busca Tabu. Camila Leles de Rezende, Denis P. Pinheiro, Rodrigo G. Ribeiro camilalelesproj@yahoo.com.br, denisppinheiro@yahoo.com.br,

Leia mais

UMA HEURÍSTICA GRASP PARA O PROBLEMA ESTENDIDO DE SEQUENCIAMENTO DE CARROS

UMA HEURÍSTICA GRASP PARA O PROBLEMA ESTENDIDO DE SEQUENCIAMENTO DE CARROS UMA HEURÍSTICA GRASP PARA O PROBLEMA ESTENDIDO DE SEQUENCIAMENTO DE CARROS Lucas Middeldorf Rizzo Universidade Federal de Minas Gerais Av. Antônio Carlos, 6627 - Pampulha - Belo Horizonte - MG CEP 31270-901

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais

Pesquisa Operacional Programação em Redes

Pesquisa Operacional Programação em Redes Pesquisa Operacional Programação em Redes Profa. Alessandra Martins Coelho outubro/2013 Modelagem em redes: Facilitar a visualização e a compreensão das características do sistema Problema de programação

Leia mais

A SOLUTION OF N-QUEENS PROBLEM BY GENETIC ALGORITHMS

A SOLUTION OF N-QUEENS PROBLEM BY GENETIC ALGORITHMS UMA SOLUÇÃO DO PROBLEMA DAS N RAINHAS ATRAVÉS DE ALGORITMOS GENÉTICOS A SOLUTION OF N-QUEENS PROBLEM BY GENETIC ALGORITHMS Eliane Vendramini de Oliveira Mestre em Engenharia Elétrica UNESP/ Ilha Solteira

Leia mais

CAPÍTULO 2. Grafos e Redes

CAPÍTULO 2. Grafos e Redes CAPÍTULO 2 1. Introdução Um grafo é uma representação visual de um determinado conjunto de dados e da ligação existente entre alguns dos elementos desse conjunto. Desta forma, em muitos dos problemas que

Leia mais

DEFINIÇÃO DE PARÂMETROS NA UTILIZAÇÃO DE METAHEURÍSTICAS PARA A PROGRAMAÇÃO DE HORÁRIOS ESCOLARES

DEFINIÇÃO DE PARÂMETROS NA UTILIZAÇÃO DE METAHEURÍSTICAS PARA A PROGRAMAÇÃO DE HORÁRIOS ESCOLARES DEFINIÇÃO DE PARÂMETROS NA UTILIZAÇÃO DE METAHEURÍSTICAS PARA A PROGRAMAÇÃO DE HORÁRIOS ESCOLARES José Carlos dos Santos Ferreira 1 e Jean Eduardo Glazar 2 1 Aluno do Curso de Ciência da Computação 2 Professor

Leia mais

Grafos Msc. Daniele Carvalho Oliveira. Doutoranda em Computação UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1

Grafos Msc. Daniele Carvalho Oliveira. Doutoranda em Computação UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1 Grafos Msc. Daniele Carvalho Oliveira Doutoranda em Computação UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1 Árvore Geradora Mínima 2 Porque é um problema interessante Suponha que queremos

Leia mais

SLAG - Resolvendo o Problema do Caixeiro Viajante Utilizando Algoritmos Genéticos

SLAG - Resolvendo o Problema do Caixeiro Viajante Utilizando Algoritmos Genéticos SLAG - Resolvendo o Problema do Caixeiro Viajante Utilizando Algoritmos Genéticos Fredson Vieira Costa 1, Fábio Silveira Vidal 1, Claudomiro Moura Gomes André 1 1 Curso de Bacharelado em Ciência da Computação

Leia mais

Sistema de Entrega para Suporte Varejista Utilizando a Metaheurística GRASP

Sistema de Entrega para Suporte Varejista Utilizando a Metaheurística GRASP Sistema de Entrega para Suporte Varejista Utilizando a Metaheurística GRASP Gil Romeu A. Pereira 1, Ivairton M. Santos 1 1 Universidade Federal de Mato Grosso(UFMT) Campus Universitário do Araguaia Instituto

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes Idéias básicas Um algoritmo guloso seleciona, a cada passo, o melhor elemento pertencente a entrada. Verifica se ele é viável - vindo a fazer parte da solução ou não. Após uma seqüência de

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

1. Método Simplex. Faculdade de Engenharia Eng. Celso Daniel Engenharia de Produção. Pesquisa Operacional II Profa. Dra. Lílian Kátia de Oliveira

1. Método Simplex. Faculdade de Engenharia Eng. Celso Daniel Engenharia de Produção. Pesquisa Operacional II Profa. Dra. Lílian Kátia de Oliveira Faculdade de Engenharia Eng. Celso Daniel Engenharia de Produção. Método Simple.. Solução eata para os modelos de Programação Linear O modelo de Programação Linear (PL) reduz um sistema real a um conjunto

Leia mais

BUSCA LOCAL ITERADA (ILS ITERATED LOCAL SEARCH)

BUSCA LOCAL ITERADA (ILS ITERATED LOCAL SEARCH) BUSCA LOCAL ITERADA (ILS ITERATED LOCAL SEARCH) Francisco A. M. Gomes 1º sem/2009 MT852 Tópicos em pesquisa operacional Iterated local search (ILS) Método que gera uma sequência de soluções obtidas por

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas Departamento de Ciências

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

DISCIPLINA: Métodos Heurísticos

DISCIPLINA: Métodos Heurísticos DISCIPLINA: Métodos Heurísticos CURSO(S): Licenciatura em Engenharia e Gestão Industrial Licenciatura em Engenharia de Sistemas e Informática Licenciatura em Matemática Aplicada Licenciatura em Matemática

Leia mais

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS 3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS 3.1 - Conceitos Básicos Entendemos como algoritmo um conjunto predeterminado e bem definido de regras

Leia mais

Utilização da metaheurística GRASP para resolução do problema de construção de trilhos de aeronaves

Utilização da metaheurística GRASP para resolução do problema de construção de trilhos de aeronaves Utilização da metaheurística GRASP para resolução do problema de construção de trilhos de aeronaves Alexander A. Pinto 1, Daniel G. Ramos 1, Lucídio A. Formiga 1 1 Departamento de Informática Universidade

Leia mais

Uma Heurística Gulosa para o Problema de Bin Packing Bidimensional

Uma Heurística Gulosa para o Problema de Bin Packing Bidimensional Uma Heurística Gulosa para o Problema de Bin Packing Bidimensional Leandro Dias Costa, Luiz da Silva Rosa e Marcelo Lisboa Rocha Departamento de Ciência da Computação Fundação UNIRG Alameda Madrid Nº 545,

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Grafos Cliques Maximais Para determinar os cliques maximais de um grafo G podemos usar o método de Maghout em Dado o grafo abaixo, calcule Determine os conjuntos independentes maximais em

Leia mais

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia e não têm a intenção de substituir o livro-texto, nem qualquer outra bibliografia. Introdução O Cálculo Numérico

Leia mais

Algumas Aplicações da Teoria dos Grafos

Algumas Aplicações da Teoria dos Grafos UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE MATEMÁTICA Giselle Moraes Resende Pereira (PET Matemática SESu-MEC) giselle_mrp@yahoo.com.br Marcos Antônio da Câmara (Tutor do PET Matemática) camara@ufu.br

Leia mais

Teoria da Complexidade

Teoria da Complexidade handout.pdf June 5, 0 Teoria da Complexidade Cid C. de Souza / IC UNICAMP Universidade Estadual de Campinas Instituto de Computação o semestre de 0 Revisado por Zanoni Dias Autor Prof. Cid Carvalho de

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

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

PROBLEMA DE TRANSPORTE: MODELO E MÉTODO DE SOLUÇÃO

PROBLEMA DE TRANSPORTE: MODELO E MÉTODO DE SOLUÇÃO PROBLEMA DE TRANSPORTE: MODELO E MÉTODO DE SOLUÇÃO Luciano Pereira Magalhães - 8º - noite lpmag@hotmail.com Orientador: Prof Gustavo Campos Menezes Banca Examinadora: Prof Reinaldo Sá Fortes, Prof Eduardo

Leia mais

4 Estudo de caso: Problema de seqüenciamento de carros

4 Estudo de caso: Problema de seqüenciamento de carros 4 Estudo de caso: Problema de seqüenciamento de carros O problema de seqüenciamento de carros em linhas de produção das indústrias automobilísticas é um tipo particular de problema de escalonamento que

Leia mais

01/05/2016. Danillo Tourinho Sancho da Silva, MSc ROTEIRIZAÇÃO TEORIA DOS GRAFOS MOTIVAÇÃO

01/05/2016. Danillo Tourinho Sancho da Silva, MSc ROTEIRIZAÇÃO TEORIA DOS GRAFOS MOTIVAÇÃO ROTEIRIZAÇÃO Danillo Tourinho Sancho da Silva, MSc TEORIA DOS GRAFOS MOTIVAÇÃO 1 MOTIVAÇÃO Por que estudar grafos? Importante ferramenta matemática com aplicação em diversas áreas do conhecimento Utilizados

Leia mais

APLICAÇÃO DA METAHEURÍSTICA COLÔNIA DE FORMIGAS AO PROBLEMA DE ROTEAMENTO DE VEÍCULOS

APLICAÇÃO DA METAHEURÍSTICA COLÔNIA DE FORMIGAS AO PROBLEMA DE ROTEAMENTO DE VEÍCULOS APLICAÇÃO DA METAHEURÍSTICA COLÔNIA DE FORMIGAS AO PROBLEMA DE ROTEAMENTO DE VEÍCULOS Mirlam Moro Lombardi e Jean Eduardo Glazar Departamento de Ciência da Computação Faculdade de Aracruz Uniaracruz {mirlam,

Leia mais

15.053 Quinta-feira, 14 de março. Introdução aos Fluxos de Rede Handouts: Notas de Aula

15.053 Quinta-feira, 14 de março. Introdução aos Fluxos de Rede Handouts: Notas de Aula 15.053 Quinta-feira, 14 de março Introdução aos Fluxos de Rede Handouts: Notas de Aula 1 Modelos de Rede Modelos de programação linear que exibem uma estrutura muito especial. Podem utilizar essa estrutura

Leia mais

Complemento IV Introdução aos Algoritmos Genéticos

Complemento IV Introdução aos Algoritmos Genéticos Complemento IV Introdução aos Algoritmos Genéticos Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações e

Leia mais

Inteligência de Enxame: ACO

Inteligência de Enxame: ACO Inteligência de Enxame: ACO! Otimização colônia de formigas é uma meta-heurística: «baseada em população «inspirada no comportamento forrageiro das formigas.! Muitas espécies de formigas são quase cegas.!

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 04 Algoritmos Genéticos Introdução Algoritmos genéticos são bons para abordar espaços de buscas muito grandes e navegálos

Leia mais

O USO DA FERRAMENTA SOLVER DO EXCEL NA RESOLUÇÃO DE PROBLEMAS DE PROGRAMAÇÃO LINEAR

O USO DA FERRAMENTA SOLVER DO EXCEL NA RESOLUÇÃO DE PROBLEMAS DE PROGRAMAÇÃO LINEAR O USO DA FERRAMENTA SOLVER DO EXCEL NA RESOLUÇÃO DE PROBLEMAS DE PROGRAMAÇÃO LINEAR João Batista de Jesus FATEC-JAHU Célio Favoni 2 FATEC-JAHU Resumo Este trabalho expõe de maneira sintetizada as funcionalidades

Leia mais

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 UNIVERSIDADE FEDERAL DE VIÇOSA Departamento de Matemática - CCE Cálculo Numérico - MAT 271 Prof.: Valéria Mattos da Rosa As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia

Leia mais

Otimização de Recuperação de Informação usando Algoritmos Genéticos

Otimização de Recuperação de Informação usando Algoritmos Genéticos Otimização de Recuperação de Informação usando Algoritmos Genéticos Neide de Oliveira Gomes, M. Sc., nog@inpi.gov.br Prof. Marco Aurélio C. Pacheco, PhD Programa de Doutorado na área de Métodos de Apoio

Leia mais

BC-0506: Comunicação e Redes Algoritmos em Grafos

BC-0506: Comunicação e Redes Algoritmos em Grafos BC-0506: Comunicação e Redes Algoritmos em Grafos Santo André, 2Q2011 1 Parte 1: Algoritmos de Busca Rediscutindo: Representações em Grafos Matriz de Adjacências Matriz de Incidências Lista de Adjacências

Leia mais

METAHEURÍSTICAS GRASP E VNS PARA PROBLEMA DE GRAFO COM RESTRIÇÕES DE CAPACIDADE E CONEXIDADE

METAHEURÍSTICAS GRASP E VNS PARA PROBLEMA DE GRAFO COM RESTRIÇÕES DE CAPACIDADE E CONEXIDADE METAHEURÍSTICAS GRASP E VNS PARA PROBLEMA DE GRAFO COM RESTRIÇÕES DE CAPACIDADE E CONEXIDADE Nádia Mendes dos Santos Instituto Federal do Piauí Praça da Liberdade, 1597 Centro Teresina (PI) - 64000-040

Leia mais

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA 136 ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA FILITTO, Danilo 1 Resumo: Os algoritmos Genéticos inspiram-se no processo de evolução natural e são utilizados para resolver problemas de busca e otimização

Leia mais

Pesquisa Operacional

Pesquisa Operacional Pesquisa Operacional Tópicos em Programação Linear e Inteira Prof. Dr.Ricardo Ribeiro dos Santos ricr.santos@gmail.com Universidade Católica Dom Bosco - UCDB Engenharia de Computação Roteiro Introdução

Leia mais

fagury.com.br. PMBoK 2004

fagury.com.br. PMBoK 2004 Este material é distribuído por Thiago Fagury através de uma licença Creative Commons 2.5. É permitido o uso e atribuição para fim nãocomercial. É vedada a criação de obras derivadas sem comunicação prévia

Leia mais

Muitas aplicações modernas podem ser modeladas como tarefas divisíveis.

Muitas aplicações modernas podem ser modeladas como tarefas divisíveis. 1 Introdução O grande aumento de performance das redes de computadores, combinado com a proliferação de computadores de baixo custo e alto desempenho, trouxe à tona ambientes de meta-computação, ou grids[15,

Leia mais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta

Leia mais

Minicurso SBSE 2012:

Minicurso SBSE 2012: Campus de Ilha Solteira Faculdade de Engenharia de Ilha Solteira Departamento de Energia Elétrica Minicurso SBSE 2012: Metaheurísticas em sistemas elétricos de potência: introdução ao estudo e aplicações

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Parte 2. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Parte 2. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu. Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Parte 2 Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br versão da aula: 0.3 Última aula teórica Algoritmo de Tentativa e Erro:

Leia mais

ALGORITMO EVOLUTIVO PARA A OTIMIZAÇÃO DA GRADE HORÁRIA DO CURSO DE ENGENHARIA ELÁTRICA DA FEIS-UNESP

ALGORITMO EVOLUTIVO PARA A OTIMIZAÇÃO DA GRADE HORÁRIA DO CURSO DE ENGENHARIA ELÁTRICA DA FEIS-UNESP INSTRUÇÕES PARA A PREPARAÇÃO E SUBMISSÃO DE TRABALHOS PARA CONGRESSO BRASILEIRO DE ENSINO DE ENGENHARIA 2003 ALGORITMO EVOLUTIVO PARA A OTIMIZAÇÃO DA GRADE HORÁRIA DO CURSO DE ENGENHARIA ELÁTRICA DA FEIS-UNESP

Leia mais

Algoritmos e Estrutura de Dados III. Árvores

Algoritmos e Estrutura de Dados III. Árvores Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas

Leia mais

Introdução. Programa do PA. Plano de Aula. Por que Estudar Algoritmos? O que é um Algoritmo? Por que Estudar Algoritmos?

Introdução. Programa do PA. Plano de Aula. Por que Estudar Algoritmos? O que é um Algoritmo? Por que Estudar Algoritmos? Introdução Noções, e Problemas Importantes Aula 1 Alessandro L. Koerich Pontifícia Universidade Católica do Paraná (PUCPR) Ciência da Computação 7 o Período Engenharia de Computação 5 o Período 1. Resolução

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 14 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas Exponenciais - Algoritmos Exponenciais usando Tentativa e Erro - Heurísticas para

Leia mais

CTC-17 Inteligência Artificial Problemas de Busca. Prof. Paulo André Castro pauloac@ita.br

CTC-17 Inteligência Artificial Problemas de Busca. Prof. Paulo André Castro pauloac@ita.br CTC-17 Inteligência Artificial Problemas de Busca Prof. Paulo André Castro pauloac@ita.br www.comp.ita.br/~pauloac Sala 110, IEC-ITA Sumário Agentes que buscam soluções para problemas: Exemplo Tipos de

Leia mais

Uma Heurística para o Problema de Redução de Padrões de Corte

Uma Heurística para o Problema de Redução de Padrões de Corte Uma Heurística para o Problema de Redução de Padrões de Corte Marcelo Saraiva Limeira INPE/LAC e-mail: marcelo@lac.inpe.br Horacio Hideki Yanasse INPE/LAC e-mail: horacio@lac.inpe.br Resumo Propõe-se um

Leia mais

GUILHERME STUTZ TÖWS ANIMAÇÃO DE ALGORITMOS

GUILHERME STUTZ TÖWS ANIMAÇÃO DE ALGORITMOS GUILHERME STUTZ TÖWS ANIMAÇÃO DE ALGORITMOS Trabalho de graduação do Curso de Ciência da Computação do Setor de Ciências Exatas da Universidade Federal do Paraná. Professor: André Luiz Pires Guedes CURITIBA

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

Estruturas de Dados Árvores

Estruturas de Dados Árvores Estruturas de Dados Árvores Prof. Eduardo Alchieri Árvores (introdução) Importância de estruturas unidimensionais ou lineares (vetores e listas) é inegável Porém, estas estruturas não são adequadas para

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais

UNIVERSIDADE FEDERAL DO CEARÁ PRÓ-REITORIA DE GRADUAÇÃO CAMPUS DE SOBRAL

UNIVERSIDADE FEDERAL DO CEARÁ PRÓ-REITORIA DE GRADUAÇÃO CAMPUS DE SOBRAL UNIVERSIDADE FEDERAL DO CEARÁ PRÓ-REITORIA DE GRADUAÇÃO CAMPUS DE SOBRAL INTEGRALIZAÇÃO CURRICULAR (Currículo 2006.2) Agosto de 2010 Hodiernamente não mais se concebe que a formação do futuro profissional

Leia mais

Busca em Árvores ou Grafos

Busca em Árvores ou Grafos Giga Mundo Computação RSS Sobre a Equipe Mais computacao no seu Email! Nosso forum Politica de Privacidade Busca em Árvores ou Grafos Posted by on March 10th, 2009 in Inteligência Artificial StatSoft Data

Leia mais

Problemas de Satisfação de Restrições

Problemas de Satisfação de Restrições Computação Inteligente Problemas de Satisfação de Restrições Lucas Augusto Carvalho Mestrado em Ciência da Computação 2011.1 DCOMP - Universidade Federal de Sergipe 1 Conteúdo Problemas de Satisfação de

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

Modelos e Métodos de Resolução para Problemas de Escalonamento de Projetos

Modelos e Métodos de Resolução para Problemas de Escalonamento de Projetos Universidade Federal de Ouro Preto Departamento de Computação Modelos e Métodos de Resolução para Problemas de Escalonamento de Projetos Haroldo Gambini Santos Túlio A. Machado Toffolo Marco A.M. de Carvalho

Leia mais

Sistemas Inteligentes Lista de Exercícios sobre Busca

Sistemas Inteligentes Lista de Exercícios sobre Busca Sistemas Inteligentes Lista de Exercícios sobre Busca 1) A* - Problema do metrô de Paris Suponha que queremos construir um sistema para auxiliar um usuário do metrô de Paris a saber o trajeto mais rápido

Leia mais

Trabalho Computacional

Trabalho Computacional Universidade Federal do Espírito Santo Departamento de Informática Profª Claudia Boeres Teoria dos Grafos - 2014/2 Trabalho Computacional 1. Objetivo Estudo e implementação de algoritmos para resolução

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes Caminhos de custo mínimo em grafo orientado Este problema consiste em determinar um caminho de custo mínimo a partir de um vértice fonte a cada vértice do grafo. Considere um grafo orientado

Leia mais

ESTRATÉGIAS DE RESOLUÇÃO DE PROBLEMAS DE PESQUISA OPERACIONAL

ESTRATÉGIAS DE RESOLUÇÃO DE PROBLEMAS DE PESQUISA OPERACIONAL ESTRATÉGIAS DE RESOLUÇÃO DE PROBLEMAS DE PESQUISA OPERACIONAL André Luis Trevisan Universidade Tecnológica Federal do Paraná andrelt@utfpr.edu.br Magna Natalia Marin Pires Universidade Estadual de Londrina

Leia mais

Aplicações de Otimização em Processos Industriais

Aplicações de Otimização em Processos Industriais Aplicações de Otimização em Processos Industriais Maria Cristina N. Gramani gramani@mackenzie.com.br Departamento de Engenharia de Produção Escola de Engenharia Universidade Presbiteriana Mackenzie Organização

Leia mais

Modelos Matemáticos para Tratamento de Grooming em Redes de Fibra Óptica

Modelos Matemáticos para Tratamento de Grooming em Redes de Fibra Óptica Modelos Matemáticos para Tratamento de Grooming em Redes de Fibra Óptica Rangel Silva Oliveira 1, Geraldo Robson Mateus 1 1 Departamento de Ciência da Computação Universidade Federal de Minas Gerais {rangel,mateus}@dcc.ufmg.br

Leia mais

CAPÍTULO 1 INTRODUÇÃO 1.1 INTRODUÇÃO

CAPÍTULO 1 INTRODUÇÃO 1.1 INTRODUÇÃO CAPÍTULO 1 INTRODUÇÃO 1.1 INTRODUÇÃO Em quase todas as nossas atividades diárias precisamos enfrentar filas para atender as nossas necessidades. Aguardamos em fila na padaria, nos bancos, quando trafegamos

Leia mais

Análise matemática para avaliação de desempenho em ambientes Peer-to-Peer

Análise matemática para avaliação de desempenho em ambientes Peer-to-Peer Análise matemática para avaliação de desempenho em ambientes Peer-to-Peer Érico Santos Rocha 1, Janaina Lemos 1, Daniel Bertoglio 1, Rafael Ávila 1, Luis Paulo Luna de Oliveira 1 1 PIPCA - Programa de

Leia mais

A Otimização Nuvem de Partículas (particle swarm)

A Otimização Nuvem de Partículas (particle swarm) A Otimização Nuvem de Partículas (particle swarm) Estéfane G. M. de Lacerda Departamento de Engenharia da Computação e Automação UFRN 20/06/2007 Índice Introdução Algoritmo Nuvem de Partículas Interpretação

Leia mais

O texto desta seção foi publicado em http://msdn.microsoft.com/ptbr/library/ms177433.aspx. o http://msdn.microsoft.com/pt-br/library/ms178104.

O texto desta seção foi publicado em http://msdn.microsoft.com/ptbr/library/ms177433.aspx. o http://msdn.microsoft.com/pt-br/library/ms178104. AULA 12 - Deadlocks Em alguns casos pode ocorrer a seguinte situação: um processo solicita um determinado recurso e este não está disponível no momento. Quando isso ocontece o processo entra para o estado

Leia mais

Balanceamento de Carga

Balanceamento de Carga 40 4. Balanceamento de Carga Pode-se entender por balanceamento de carga uma política a ser adotada para minimizar tanto a ociosidade de utilização de alguns equipamentos quanto a super utilização de outros,

Leia mais

Sistemas Operacionais

Sistemas Operacionais 7 Sistemas Operacionais 7.1 Fundamentos da ciência da computação Cengage Learning Objetivos 7.2 Compreender o papel do sistema operacional. Compreender o processo de inicialização para carregar o sistema

Leia mais

2 Problema das p-medianas

2 Problema das p-medianas 2 Problema das p-medianas 2.1 Definição O PMNC é definido da seguinte forma: determinar quais p facilidades (p m, onde m é o número de pontos onde podem ser abertas facilidades) devem obrigatoriamente

Leia mais

Algoritmos Computacionais ( Programas )

Algoritmos Computacionais ( Programas ) Algoritmos Computacionais ( Programas ) A partir deste tópico, consideramos a utilização do universo Computacional na solução de problemas. Para tanto devemos lembrar que a transposição de problemas do

Leia mais

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2. Pg. 1 Universidade Federal do Espírito Santo - UFES Mestrado em Informática 2004/1 Projetos O Projeto O projeto tem um peso maior na sua nota final pois exigirá de você a utilização de diversas informações

Leia mais

Árvores Binárias e Busca. Jeane Melo

Árvores Binárias e Busca. Jeane Melo Árvores Binárias e Busca Jeane Melo Roteiro Parte 1 Árvores Relação hierárquica Definição Formal Terminologia Caminhamento em Árvores Binárias Exemplos Parte 2 Busca seqüencial Busca Binária Grafos Conjunto

Leia mais

[2.000] (IP:281473857278462

[2.000] (IP:281473857278462 1. [2.000] (IP:281473857278462 19:36:32 19:32:41 56:09 4.486) Considere e discuta a seguinte afirmativa: "Nem sempre o modelo com o melhor R² não-ajustado é o mais adequado". A afirmativa é verdadeira,

Leia mais

Roteamentos AULA ... META. Introduzir alguns problemas de roteamento. OBJETIVOS. Ao final da aula o aluno deverá ser capaz de:

Roteamentos AULA ... META. Introduzir alguns problemas de roteamento. OBJETIVOS. Ao final da aula o aluno deverá ser capaz de: Roteamentos AULA META Introduzir alguns problemas de roteamento. OBJETIVOS Ao final da aula o aluno deverá ser capaz de: Distinguir circuito euleriano e ciclo hamiltoniano; Obter um circuito euleriano

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador)

Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador) Multiprocessamento Multiprocessadores com memória distribuída (multicomputador) Conjunto de processadores, cada qual com sua memória local Processadores se comunicam por troca de mensagens, via rede de

Leia mais

APLICAÇÕES DA DERIVADA

APLICAÇÕES DA DERIVADA Notas de Aula: Aplicações das Derivadas APLICAÇÕES DA DERIVADA Vimos, na seção anterior, que a derivada de uma função pode ser interpretada como o coeficiente angular da reta tangente ao seu gráfico. Nesta,

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

Planejamento operacional de lavra

Planejamento operacional de lavra UNIVERSIDADE FEDERAL DE OURO PRETO INSTITUTO DE CIÊNCIAS EXATAS E BIOLÓGICAS DEPARTAMENTO DE COMPUTAÇÃO Planejamento operacional de lavra Anexo do Relatório Técnico-científico Final apresentado ao CNPq,

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Classes de Complexidades de Problemas Prof. Osvaldo Luiz de Oliveira Estas anotações devem ser complementadas por apontamentos em aula. Tempo polinomial Um algoritmo A, com entrada

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial As organizações estão ampliando significativamente suas tentativas para auxiliar a inteligência e a produtividade de seus trabalhadores do conhecimento com ferramentas e técnicas

Leia mais

OTIMIZAÇÃO DE FLUXO EM GRAFOS

OTIMIZAÇÃO DE FLUXO EM GRAFOS UNIVERSIDADE FEDERAL DO PARANÁ UFPR CIÊNCIA DA COMPUTAÇÃO LEONARDO TERNES SANTOS OTIMIZAÇÃO DE FLUXO EM GRAFOS CURITIBA, MARÇO 2013 LEONARDO TERNES SANTOS OTIMIZAÇÃO DE FLUXO EM GRAFOS Trabalho de graduação,

Leia mais

Integração entre Sistemas de Seqüenciamento e ERP para solução de problemas de alteração de ordens de produção devido a eventos inesperados

Integração entre Sistemas de Seqüenciamento e ERP para solução de problemas de alteração de ordens de produção devido a eventos inesperados Integração entre Sistemas de Seqüenciamento e ERP para solução de problemas de alteração de ordens de produção devido a eventos inesperados Helio Galvão Ciffoni, Ramon Hoshino & Walid Nicolas Assad Malisoft

Leia mais

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas Processamento e Otimização de Consultas Banco de Dados Motivação Consulta pode ter sua resposta computada por uma variedade de métodos (geralmente) Usuário (programador) sugere uma estratégia para achar

Leia mais

INVESTIGAÇÃO OPERACIONAL EM AÇÃO

INVESTIGAÇÃO OPERACIONAL EM AÇÃO INVESTIGAÇÃO OPERACIONAL EM AÇÃO CASOS DE APLICAÇÃO RUI CARVALHO OLIVEIRA JOSÉ SOEIRO FERREIRA (EDITORES) IMPRENSA DA UNIVERSIDADE DE COIMBRA COIMBRA UNIVERSITY PRESS CASO 7 SISTEMA DE APOIO À DECISÃO

Leia mais

Data de recebimento: 03/10/03. Data de aceite para publicação: 26/01/04. 1

Data de recebimento: 03/10/03. Data de aceite para publicação: 26/01/04. 1 Revista Varia Scientia v. 04, n. 07, p.179-184 ARTIGOS & ENSAIOS Elizabete Koehler 1 Reginaldo Aparecido Zara 2 ALGORITMO PARA CÁLCULO DE DISTÂNCIAS MÍNIMAS EM REDES DE ESCALA LIVRE RESUMO: Muitos sistemas

Leia mais

Otimização de Redes de Distribuição de Água com Estações de Bombeamento 1

Otimização de Redes de Distribuição de Água com Estações de Bombeamento 1 Submetido para TEMA Otimização de Redes de Distribuição de Água com Estações de Bombeamento 1 C. H. DIAS 2, F. A. M. GOMES 3, Departamento de Matemática Aplicada, IMECC UNICAMP, 13081-970, Campinas, SP,

Leia mais

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

Simulação Computacional de Sistemas, ou simplesmente Simulação Simulação Computacional de Sistemas, ou simplesmente Simulação Utilização de métodos matemáticos & estatísticos em programas computacionais visando imitar o comportamento de algum processo do mundo real.

Leia mais

FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2. Vieira Lima Junior. Everson Santos Araujo

FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2. Vieira Lima Junior. Everson Santos Araujo 1 FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2 Vieira Lima Junior Everson Santos Araujo ALGORITMOS DE ORDENAÇÃO: estudo comparativo de diversos algoritmos

Leia mais

MINIMIZANDO O NÚMERO DE DIFERENTES PADRÕES DE CORTE - UMA ABORDAGEM DE CAMINHO MÍNIMO

MINIMIZANDO O NÚMERO DE DIFERENTES PADRÕES DE CORTE - UMA ABORDAGEM DE CAMINHO MÍNIMO A pesquisa Operacional e os Recursos Renováveis 4 a 7 de novembro de 2003, Natal-RN MINIMIZANDO O NÚMERO DE DIFERENTES PADRÕES DE CORTE - UMA ABORDAGEM DE CAMINHO MÍNIMO Maria Cristina N. Gramani Universidade

Leia mais

Planejamento e Controle da Produção I

Planejamento e Controle da Produção I Planejamento e Controle da Produção I Sequenciamento e Emissão de Ordens Prof. M.Sc. Gustavo Meireles 2012 Gustavo S. C. Meireles 1 Introdução Programação da produção: define quanto e quando comprar, fabricar

Leia mais