A New Algorithm for Finding All Tours and Hamiltonian Circuits in Graphs

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

Download "A New Algorithm for Finding All Tours and Hamiltonian Circuits in Graphs"

Transcrição

1 A New Algorithm for Finding All Tours and Hamiltonian Circuits in Graphs J. L. C. Silva, L. Rocha and B. C. H. Silva Abstract This paper presents a new algorithm that finds all tours and Hamiltonian circuits in graphs. The algorithm makes the search for tours through the construction of n (number of nodes do graph) trees, one for each node of the graph. In the tree, all possible paths are configured from the initial node to the other nodes without repetition. The n-1 long paths are the tours of the graph. When a tour is in the tree and there is an edge in the graph connecting the end node to the start node of this tour, then a Hamiltonian circuit was found. The algorithm is easy to program and does not use recursion. The algorithm was applied to solve a problem of operational research within the graph theory. Several computational experiments were produced to measure the performance of the method in consolidated problem instances of literature. Keywords Graph Theory, Operational Research, Flowshop Scheduling Problem, Permutation. I. INTRODUÇÃO SURGIMENTO da Teoria dos Grafos aconteceu no ano Ode 1736, quando o matemático Leonhard Euler estudou o problema das pontes de Konigsberg, uma cidade da antiga Prússia do século XVIII, atual Kaliningrado (Rússia), onde há duas ilhas que, juntas com a parte continental, eram ligadas por 7 pontes. O objetivo do problema era encontrar uma maneira de se atravessar todas as sete pontes sem repeti-las. Euler abordou o problema, transformando os caminhos das pontes em retas e suas interseções em pontos, o que para muitos (Fig. 1), resultou no primeiro grafo da história. Figura 1. Esquema de Euler para o problema das Pontes de Konigsberg. Baseado no fato de que em cada ponto deveria haver um número par de caminhos, os quais representariam a chegada e a saída, Euler concluiu que só seria possível atravessar o J. L. C. Silva, Universidade Federal do Ceará (UFC), Fortaleza, Ceará, Brasil, lassance@lia.ufc.br L. Rocha, Universidade Estadual do Ceará (UECE), Fortaleza, Ceará, Brasil, leonardo.sampaio@uece.br B. C. H. Silva, Universidade Estadual do Ceará (UECE), Fortaleza, Ceará, Brasil, breno-honorato@hotmail.com. caminho inteiro passando uma única vez em cada ponte se houvesse no máximo dois pontos de onde sairia um número ímpar de caminhos. Sendo assim, os dois pontos com caminhos ímpares, seriam referentes ao início e fim do percurso, pois estes não necessitavam de um caminho de chegada ou saída. Em [1] menciona-se que o interesse na utilização da teoria dos grafos, como instrumento de modelagem para diversos problemas, se deu a partir de 1847 através das pesquisas de Kirchhoff, cidadão de Konigsberg, sobre circuitos elétricos utilizando modelos de Árvore, um tipo de grafo bipartido, conexo e planar. Em 1852, Morgan relacionou a teoria dos grafos com a formulação do Problema das 4 Cores, cuja premissa é definir a quantidade mínima de cores para colorir um mapa de tal forma que países de fronteira comum possuam cores diferentes. Em 1859, Hamilton estudou os problemas dos caminhos mínimos e, em 1869, Jordan buscou estabelecer certo formalismo matemático à Teoria das Árvores de Kirchhoff. Com a aplicabilidade da teoria dos grafos em problemas de otimização e o interesse crescente que se deu pela Pesquisa Operacional nos anos pós 2ª guerra mundial, muitos estudos foram feitos acerca de algoritmos em grafos. Dois algoritmos foram considerados fundamentais durante muito tempo em grafos são eles: o Depth First Search (DFS) e Breadth First Search (BFS). Ambos serviram de base para o desenvolvimento de novos algoritmos em grafos encontrados na literatura [2]. O algoritmo DFS, também denominado como método de Busca em Profundidade, tem por objetivo explorar os nós de um grafo. Para isso, este algoritmo começa num nó raiz (selecionando algum nó como sendo a raiz, no caso de um grafo) e explora cada uma de suas conexões (arestas) tanto quanto possível, antes de retroceder (backtracking). No algoritmo BFS, também denominado como método de Busca em Largura, a busca inicia em um vértice raiz e explora todos os vértices vizinhos. Para cada um desses vértices mais próximos, são explorados os seus vértices vizinhos inexplorados e assim por diante, até que se encontre o alvo da busca. O funcionamento deste algoritmo produz uma árvore em extensão onde o nível em que se encontra um vértice representa exatamente a sua distância (ou número de arestas) até o vértice inicial, conforme [2]. Na literatura há vários algoritmos na Teoria dos Grafos baseados nos métodos DFS e BFS: Algoritmo de Dijkstra, Algoritmo de Bellman-Ford, Algoritmo de Prim e o Algoritmo Ford-Fullkerson. Os primeiros trabalhos brasileiros sobre a Teoria dos Grafos no Brasil foram apresentados no I Simpósio Brasileiro de Pesquisa Operacional, em 1968, informa [1]. Em [3] foi mencionado que um dos problemas importantes de ser tratado na atualidade é determinar um bom algoritmo

2 que encontre todos os circuitos hamiltonianos em um grafo qualquer. O termo circuito hamiltoniano deve-se a Willian Rowan Hamilton, matemático Inglês, criador do jogo Icosian played em 1856, que consiste em iniciando em um nó dado, encontrar um caminho de nós consecutivos ao longo das arestas do grafo, visitando todos os nós exatamente uma vez e retornar ao nó inicial para completar um circuito, conforme [4]. O problema geral de encontrar circuitos hamiltonianos em grafos arbitrários pode ser muito difícil. Neste caso, os nós podem ser representados pelos n pontos geográficos de localização das cidades, enquanto as arestas são as vias que ligam diretamente as cidades. Em 1952, Dirac [5] propôs uma condição que garante a existência de um circuito hamiltoniano em um grafo G (n 3). Ela determina que há circuito hamiltoniano no grafo quando o grau de qualquer nó do grafo deve ser maior ou igual a n/2. Entretanto, pode haver grafo com ciclo hamiltoniano sem que esta condição seja verdadeira. Em 1972, Karp [6] mostrou que o problema de encontrar circuito hamiltoniano (respectivamente tours) em grafos é NP-Completo. Desta forma, a existência ou não de um algoritmo para decidir quando um circuito hamiltoniano existe em um grafo qualquer dado, resolveria um dos mais importantes dos problemas abertos em matemática e computação: P x NP [7]. Ashay [8] propôs um algoritmo para o problema que depende da condição de Dirac como pré-requisito para o grafo dado. Neste trabalho propomos um algoritmo eficiente e eficaz para encontrar tours e circuitos hamiltonianos, denominado TG, em um grafo qualquer dado sem pré-requisito. O algoritmo é muito fácil de programar e não é recursivo, apesar de produzir várias árvores. O algoritmo proposto foi aplicado na resolução do problema de seqüenciamento clássico, conhecido na literatura como Flowshop Scheduling Problem (FSP). O FSP pertence a classe dos Problemas de Otimização Combinatória Permutacional (POCP) da Pesquisa Operacional. O algoritmo poderia ser aplicado a qualquer problema dessa classe sem perda de generalidade. As próximas seções deste artigo estarão organizadas da seguinte forma: na seção 2 será apresentado um estudo sobre o FSP. Enquanto na Seção 3 será descrito o algoritmo TG aplicado no FSP. Na seção 4, são descritos os resultados dos experimentos computacionais realizados. Por fim, na seção 4 estarão as considerações finais. II. O FSP As empresas de manufatura enfrentam a difícil tarefa de determinar a melhor sequência de processamento de seus produtos em suas máquinas que atenda aos objetivos competitivos do negócio. A Pesquisa Operacional denomina este problema como Scheduling Problem (SP), na literatura, e o define como: dado um conjunto de tarefas e um conjunto de máquinas, determinar uma sequência específica de tarefas que otimize uma função objetivo. Existem vários tipos de SP, por exemplo, o single machine scheduling problem, multiple machine scheduling problem e manpower scheduling problem. Este trabalho trata do multiple machine scheduling problem mais conhecido na literatura como Flowshop Scheduling Problem. O primeiro artigo publicado sobre este problema foi de Johnson [9] em 1954, que formulou e resolveu o two-machine flowshop problem. Em [10] foi descrito que de 1954 a 2004 mais de artigos foram publicados abordando diferentes aspectos do FSP. O FSP é definido como um fluxo unidirecional de n tarefas em m máquinas, i.e., a ordem de processamento de todas as tarefas nas m máquinas é a mesma. Considerando o caso geral do FSP, o número de sequências possíveis e distintas é igual a n!. Mesmo para problemas com n e m pequenos, a enumeração completa de todas as soluções possíveis e distintas torna-se impraticável. São dados no FSP: um conjunto de n tarefas J 1, J 2,..., J n, onde cada tarefa deve ser processada em m máquinas M 1, M 2,..., M m. Cada tarefa demanda m operações, com uma operação representando o tempo de processamento da tarefa por máquina. As tarefas seguem o mesmo fluxo de operações nas máquinas, i.e., para qualquer j=1, 2,..., n, a tarefa J j deve ser processada primeira na máquina M 1, depois na máquinam 2, e assim por diante até a última máquina, no caso a máquina M m. Caso a tarefa J j não utilize todas as máquinas, o seu fluxo continua sendo o mesmo, todavia com o tempo de operação sendo igual a zero para as máquinas que ela não vai utilizar. Uma máquina pode processar somente uma operação de cada vez, e iniciada uma operação, ela deve ser processada até a sua conclusão. O número de sequências distintas possíveis para realização das tarefas nas máquinas é grande, i.e., O (n!). O problema consiste em realizar todas as n tarefas no menor tempo possível (makespan). Um input do FSP é dado por n, m e uma matriz P(n m) de elementos não negativos, onde P ij denota o tempo de processamento da tarefa J j na máquina M i. O FSP pertence à classe dos problemas NP-completo, no sentido forte, quando m for maior que 3, conforme [11]. No caso em que m for menor ou igual a 3, o problema pode ser solucionado em tempo polinomial. Um Problema de Otimização Combinatória Permutacional (POCP) pode ser definido por um terno (S, g, n), onde S é o conjunto de todas as soluções do problema, g é uma função ou procedimento que aplica a cada solução viável s S um número real e n é uma instância do problema. O número de soluções existentes para um POCP é representado por S (cardinalidade de S) e igual a n!. O objetivo é encontrar uma solução s* S que otimize um dado critério de desempenho representado pela função ou procedimento g. O FSP pode ser modelado como um POCP da seguinte forma: Um elemento s do conjunto de soluções viáveis S é representado por uma permutação das n tarefas, com a ordem de s determinando a sequência na qual as tarefas serão processadas; e o procedimento g, dado na Fig. 2 a seguir, determina o valor do tempo gasto (g) para processar as n tarefas dada pela sequência s, mais precisamente tem-se que g é o tempo utilizado no processamento da última tarefa de s na última máquina M m.

3 Figura 2. Procedimento que determina o makespan de uma solução do FSP. Um exemplo do FSP com n=5 e m=3 é dado na Tabela I, a seguir, onde encontram-se os tempos de processamento (em horas) das tarefas nas máquinas. Por sua vez, a Fig. 3 mostra a distribuição das tarefas nas máquinas de uma solução ótima do exemplo dado, através do gráfico de Gant, onde é possível ver que o makespan é igual a 15 horas. TABELA I INSTÂNCIA DO FSP COM 5 TAREFAS E 3 MÁQUINAS. P(i,j) J1 J2 J3 J4 J5 M M M Figura 3. Ilustração de uma solução ótima do exemplo dado. Neste exemplo, existem 120 (5!) soluções distintas para o problema, sendo 17 soluções ótimas (14,2%) com makespan igual a 15 horas; e 103 soluções não ótimas com o makespan variando de 16 a 20 horas. III. O ALGORITMO TG APLICADO AO FSP A Teoria dos Grafos é uma área do conhecimento científico que trata de objetos combinatórios denominados Grafos, baseada na matemática e na computação. Grafos são representados por pontos dispostos em posições arbitrárias denominados de nós, ou vértices, conectados por curvas chamadas de arestas. Deste modo, um Grafo com n nós e m arestas pode ser representado por G = (V, E), onde V={1, 2,, 3,, n}, E={e 1, e 2,, e m } e cada e k =(i,j), com 1 k m e 1 i, j n. Quando as arestas de um grafo têm direção associada ou sentido, elas são chamadas de arcos e o respectivo grafo é chamado de grafo orientado ou dígrafo. Quando há pesos associados às arestas ou aos nós do grafo, classifica-se este grafo como valorado ou ponderado. Quaisquer nós v e w, são ditos adjacentes se uma aresta e liga-os diretamente, neste caso, a aresta e é classificada como incidente dos nós v e w. O número de nós adjacentes a um nó é chamado de grau do nó, dessa forma, o grau de um nó v em um grafo G é o número de arestas incidindo em v e se todos os nós possuírem o mesmo grau, o grafo é classificado como regular. Uma sequência alternada, de nós e arestas, que começa no nó v i e termina no nó v j é denominada passeio de v i até v j. Se todos os nós que compõem um passeio, forem distintos, denomina-se esse passeio como caminho. Um caminho é classificado como sendo um ciclo se o primeiro e o último nó da sequência são iguais. De forma efêmera, um ciclo pode ser expressado como um caminho v i,..., v j, sendo v i = v j. Grafos que não possuem ciclos são ditos acíclicos. Se para quaisquer que sejam os nós v i e v j distintos em um grafo, existe sempre um passeio que os une, então este grafo é classificado como conexo. Um caminho que permite passar por cada nó do grafo uma única vez é denominado caminho hamiltoniano (tour), assim, um ciclo, cuja sequência de nós v i,..., v j seja um tour, será chamado de ciclo hamiltoniano. Se um grafo G possuir um ciclo hamiltoniano, então, G será classificado como um grafo Hamiltoniano. Existem várias formas de representar um grafo, a mais tradicional delas é através da matriz adjacente (Adj) de dimensão n n, onde Adj ij é igual a 1, se existe no grafo a aresta (i,j). Caso contrário, Adj ij é igual a 0. O FSP na Teoria dos Grafos consiste em: 1º) Construir um Grafo a partir de uma matriz M, com os melhores parceiros para cada tarefa, descrita adiante; 2º) Encontrar vários caminhos (tours) que passam por todos os nós do grafo; 3º) Apresentar o caminho com o melhor desempenho como sendo a solução do FSP. O FSP pode ser descrito por um Grafo G=(V, E): V = {J 1, J 2,, J n } é o conjunto de todas as n tarefas a serem processadas nas m máquinas; E é o conjunto de arestas obtidas a partir dos elementos das matrizes A e S, obtidos a partir da matriz M, onde M vl é a folga no processamento sequencial das tarefas J v e J l na última máquina, sendo que; - Na linha v da matriz A, as melhores tarefas antecessoras imediatas da tarefa J v encontram-se ordenadamente; - Na linha v da matriz S, as melhores tarefas sucessoras imediatas da tarefa J v encontram-se ordenadamente. Define-se como melhor tarefa de J v, a tarefa J k processada imediatamente antes ou depois de J v com a menor folga. A Fig. 4 a seguir ilustra como é realizado o cálculo de alguns valores da matriz M, com base no exemplo do FSP dado.

4 d) O método encerra a adição de novas arestas ao grafo e a busca por tour quando o grafo atual apresentar tour(s); Figura 4. Ilustração de como obter valores da matriz M. A Tabela II mostra os valores da matriz M, enquanto a Tabela III mostra os valores das matrizes A e S. Em cada linha J v da matriz A encontra-se os melhores parceiros para ser processados imediatamente antes da tarefa J v, obtidos em ordem crescente. Idem para matriz S, sendo que em cada linha J v tem-se os melhores parceiros para ser processados imediatamente após a tarefa J v. Figura 5. Ilustração do Grafo do FSP dado na Tabela I. TABELA II VALORES DA MATRIZ M PARA O EXEMPLO DADO NA TABELA I. M(v,l) J1 J2 J3 J4 J5 J J J J J TABELA III MATRIZES A E S COM BASE NOS VALORES DA MATRIZ M DA TABELA II. A S J J J J J J J J J J Uma forma de resolver o FSP através da Teoria dos Grafos é determinar e avaliar (calcular o makespan) todos os caminhos (tours) que passam por todos os nós do grafo G=(V,E), construído a partir das matrizes A e S. Tomar o tour (solução s) com o melhor desempenho e apresentar como solução do problema, onde: a) Inicialmente, as arestas existentes no grafo serão aquelas com as menores folgas entre duas tarefas quaisquer; b) Na 1ª iteração, E={ (v, S(v,1)), (A(v,1),v) / para todo v=1,...,n}; c) Em cada iteração seguinte, 2n novas arestas são adicionadas ao grafo atual, verificando se o novo grafo possui tour(s); Figura 6. Pseudo-código do Algoritmo TG. Um tour representa uma sequência de processamento das n tarefas nas máquinas. A Fig. 5, dada anteriormente, mostra o grafo construído a partir das matrizes A e S. A Fig. 6 apresenta o Pseudo-código do Algoritmo TG, proposto por nós, para encontrar tour e circuito hamiltoniano em um grafo qualquer. O algoritmo constrói n árvores, sendo cada uma delas iniciada por um nó do grafo dado. Todos os caminhos possíveis, do nó inicial da árvore a todos os demais nós do grafo, são determinados e explicitados na árvore construída. O caminho, sem nó repetido, de comprimento igual a n-1 forma um tour, sendo destacado na árvore. O circuito hamiltoniano dar-se-á quando existe, no grafo, uma aresta do nó final ao nó inicial do tour encontrado. Caso o primeiro Grafo do problema não apresente tour, farse-á a inserção de 2n novas arestas em G, sendo n arestas compostas pelos dados da matriz S e n arestas vindas da

5 matriz A, dada por: (v, S(v,2)) e (A(v,2), v), para v=2. O valor de v pode variar de 2 até k, onde o k-éssimo Grafo é o primeiro grafo a apresentar tour. As arestas adicionadas ao Grafo estão concentradas somente na coluna v de cada matriz S e A. A Fig. 7 ilustra a árvore da primeira iteração do algoritmo TG aplicado ao Grafo do FSP da Fig. 5. Neste exemplo, TG encontrou: 0 (zero) tour no primeiro grafo construído; e 25 tours no segundo grafo construído, sendo 6 soluções ótimas. Figura 7. Ilustração da árvore da primeira iteração (i=1) do algoritmo TG. IV. EXPERIMENTOS COMPUTACIONAIS Os experimentos computacionais foram realizados num PC Dell, com 4 GB de RAM e Clock de 3.20 GHz, nos 90 problemas do FSP, através de instâncias consolidadas na literatura, benchmark de Taillard [12]. As instâncias foram divididas em 9 Classes, com 10 problemas cada, conforme os valores de n (20, 50, 100) e m (5, 10, 20). As Classes estão definidas por: C1 (m=5), C2 (m=10) e C3 (m=20), com n=20; C4 (m=5), C5 (m=10) e C6 (m=20), com n=50; e C7 (m=5), C8 (m=10) e C9 (m=20), com n=100. A Tabela IV contém os resultados dos experimentos computacionais realizados, com as seguintes informações: Desempenhos dos algoritmos PAL [13], CDS [14] e HP [15]; Desempenho e tempo de execução do método proposto (TG) com um limite no número máximo de soluções geradas e avaliadas, por iteração, igual a 100 mil (TG1), 1 milhão (TG2) e 10 milhões (TG3). O desempenho é dado por 100*(z-z )/z, onde z é o makespan da melhor solução encontrada e z é o valor ótimo do problema atacado. A Fig. 8, abaixo, mostra o gráfico do desempenho de cada algoritmo por classe e a média geral. As linhas mínimo e máximo da tabela informam o intervalo de desempenho de cada algoritmo. Na linha melhor, o número de instâncias que o algoritmo teve melhor desempenho são reportados. TG1, TG2 e TG3 tiveram também um limite no tempo de máximo de execução, que foi de 3600 segundos (1 hora). Um novo procedimento foi adicionado somente a TG3 sempre que ele encontrou um tour, com o intuito de aumentar o número de soluções a serem avaliadas no problema atacado. Para cada tour (solução s que é uma permutação) encontrado no grafo, n-1 novas soluções do problema são geradas e analisadas da seguinte forma: seja s=< > um tour encontrado, então foram geradas e avaliadas as soluções < >, < >, < > e < >. Cada uma das n-1 novas soluções muda a ordem de processamento da primeira tarefa seguindo a ordem do tour encontrado. TABELA IV. RESULTADOS DOS EXPERIMENTOS COMPUTACIONAIS. Instância PAL CDS HP TG1 TG2 TG3 C1 (ta001-10) 10,82 9,49 9,07 6,19 4,37 2,93 C2 (ta011-20) 15,28 12,13 13,25 9,53 8,07 6,32 C3 (ta021-30) 16,34 9,64 11,10 7,44 6,30 5,47 C4 (ta031-40) 5,34 6,10 6,55 9,04 8,95 4,34 C5 (ta041-50) 14,03 12,99 16,85 17,12 17,09 13,40 C6 (ta051-60) 17,95 15,77 21,57 21,07 20,91 18,39 C7 (ta061-70) 2,51 5,13 7,18 8,60 8,60 5,41 C8 (ta071-80) 9,14 9,15 13,93 14,93 16,14 11,71 C9 (ta081-90) 15,55 14,19 21,31 21,08 21,06 18,11 Média 11,88 10,51 13,42 12,78 12,39 9,56 Mínimo 0,70 1,80 3,24 1,49 0,63 0,07 Máximo 24,75 18,42 25,25 25,05 25,41 22,04 Melhor Figura 8. Ilustração gráfica do desempenho de cada algoritmo. Nas Classes C1 a C3 (n=20), cada problema tem 20! soluções (2,43 pentalhões) e TG3 gerou e avaliou, para cada um deles, no máximo 200 milhões de soluções, isto é bem menos de 1% do total de soluções do problema. Nas demais Classes (C4 a C9), o percentual de soluções geradas é menor ainda, daí o fato de TG3 não ter tido melhores desempenhos nestas 6 classes. Ainda nas Classes C4 a C9, o critério tempo evitou a avaliação das 10 milhões de soluções, por iteração de TG3, onde o máximo alcançado foi de: 4 milhões para n=50 e 2 milhões para n=100. TG3 teve o melhor desempenho entre

6 todos os outros métodos, alcançando desvio médio geral de 9,56%. TG3 obteve melhor desempenho em 40 (44,4%) dos 90 problemas testados, depois vieram PAL com 26 (28,8%) e CDS com 23 (25,5%). O melhor desempenho por classe deuse da seguinte forma: TG3 com 4; CDS com 3; e PAL com 2. TG3 obteve o menor mínimo e CDS obteve o menor máximo. É fácil ver o bom desempenho de TG3 pelo gráfico da Fig. 8. V. CONCLUSÃO O nosso principal objetivo, nesta pesquisa, foi alcançado: desenvolver, testar e validar um método (TG) para encontrar tour e circuitos hamiltonianos num grafo qualquer. Na literatura, não encontrou-se um algoritmo tão simples de implementar quanto TG, para este fim. Não foi possível comparar os tempos de execução de TG com os outros métodos, porque eles foram executados em máquinas distintas. TG não obteve melhor resultado que os demais métodos, nas instâncias C5 a C9 (n 50), devido o tempo de processamento ter sido limitado há no máximo 1 hora. Com este tempo, TG não consegue avaliar se quer todas as soluções do primeiro grafo construído com tour para essas instâncias, de ordem exponencial. Sugestões para trabalhos futuros: a) Aplicar TG a outros tipos de problemas de otimização combinatória permutacional da Pesquisa Operacional; b) Implementar TG usando processamento paralelo ou distribuído com intuito de diminui bastante o tempo máximo de execução do algoritmo, podendo aumentar bastante o número de soluções geradas e avaliadas; c) Implementar TG com outro tipo de matriz M aplicado ao FSP, gerando outra configuração de grafo para o problema e busca; d) Aumentar o tempo de execução de TG para a resolução de problemas de grande porte, como o FSP com n 50, o algoritmo deve ser executado com pelo menos 2 horas para cada problema, dobrando o número de soluções geradas e avaliadas, consequentemente melhorando o seu desempenho. REFERÊNCIAS [1] P. O. Boaventura Netto, Grafos: teoria, modelos e algoritmos, Edgard Blucher, São Paulo-SP, [2] T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, Introduction to Algorithms, Second Edition, The MIT Press, Cambridge, MA, USA, [3] M. Goldbarg and P. L. Luna, Otimização Combinatória e Programação Linear, 2a. edição, Editora Campus, Rio de Janeiro, [4] C. B. Cunha, U. D. E. Bonasser and F. T. M. Abrahão, Experimentos computacionais com heurísticas de melhorias para o problema do caixeiro viajante, Anais do XVI Congresso da ANPET, Natal, [5] G. A. Dirac, Some theorems on abstract graphs, Proceedings London. Mathematic Society, 2, [6] R. M. Karp, Reducibility among combinatorial problems, Complexity of Computer Computations, Plenum Press, [7] S. Cook, The P versus NP Problem, Official Problem Description, Millennium Problems, Clay Mathematics Institute, [8] A. Dharwadker, A new algorithm for finding Hamiltonian circuits, Institute of Mathematics, India, Amazon, [9] S. M. Johnson, Optimal two and three stage production schedules with setup times included, Naval Research logistics Quarterly1, p , [10] J. N. D. Gupta and E. F. Stafford Jr, Flowshop scheduling research after five decades, European Journal of Operational Research, v.169, p , [11] M. R. Garey and D. S. Johnson, Computers and Intractability: a Guide to the Theory of NP-completeness, W.H. Freeman and Company, San Francisco, CA, [12] E. Taillard, Benchmarks for basic scheduling problems, European Journal of Operational Research, vol. 64, p , [13] D. S. Palmer, Sequencing jobs through a multistage process in the minimum total time - a quick method of obtaining a near optimum, Operational Research Quartetly, vol. 16, p , [14] H. G. Campbell, R. A. Dudek and M. L. Smith, An heuristic algorithm for n job m machine sequencing problem, Management Science, vol.16, p , [15] J. L. C. Silva and N. Y. Soma, A heristic for Permutation Combinatorial Optimization Problems, Proceedings of the XXXIII SBPO (in Portuguese), Campos do Jordão-SP, Brazil, José Lassance de Castro Silva tem graduação em Matemática, pela Universidade Federal do Ceará (1990), e Web-Design e Programação, pela Universidade do Sul de Santa Catarina (2010), Especialização em Engenharia de Sistemas e Computação pela Universidade Federal do Rio de Janeiro (1992), Mestrado em Matemática Aplicada pela Universidade Federal do Ceará (1996) e Doutorado em Engenharia Eletrônica e Computação pelo Instituto Tecnológico de Aeronáutica (2002). É professor associado da Universidade Federal do Ceará, desde Consultor ad hoc do MEC/INEP e da CAPES. Revisor das revistas: IEEE Transactions on Evolutionary Computation, Produção (ABEPRO), Produção OnLine (ABEPRO), IEEE Latim America Transaction, Gestão & Produção (UFSCar), entre outras. Possui experiência na área de Ciência da Computação, com ênfase em análise e complexidade de algoritmos, otimização combinatória, heurísticas, meta-heurísticas, programação linear inteira/mista e desenvolvimento de sistemas para internet/intranet. Leonardo Rocha é bacharel (2007) e mestre (2009) em Ciência da Computação, pela Universidade Federal do Ceará, e doutor (2012) em Informatique pela Université de Nice- Sophia Antipolis, da França. Desde 2013 é Professor Adjunto da Universidade Estadual do Ceará, vinculado ao Curso de Computação do Centro de Ciências e Tecnologia. Atua como revisor dos periódicos: Algorithmica, Discrete Applied Mathematics e Discrete Mathematics & Theoretical Computer Science. É consultor ad-hoc da Fundação Cearense de Amparo a Pesquisa (FUNCAP). Tem experiência nas áreas de Ciências da Computação, Algoritmos, Análise de Algoritmos e Teoria da Computação e Teoria dos Grafos. Breno de Castro Honorato Silva nasceu na cidade de Fortaleza, estado do Ceará, Brasil, em 09 de dezembro de É graduado (2013) em Análise e Desenvolvimento de Sistemas, pela Faculdade Integrada do Ceará (FIC). Está concluindo o curso de Mestrado em Ciências da Computação da Universidade Estadual do Ceará (UECE). Tem experiência no desenvolvimento de sistemas computacionais com ferramentas modernas para internet e intranet. Atualmente suas pesquisas se concentram na área de banco de dados, desenvolvimento de sistemas computacionais e linguagem de programação Java, C++ e PHP.

04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II

04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II 04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir Ponti Jr.

Leia mais

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 10: Introdução aos Grafos História O assunto que se constitui no marco inicial da teoria de grafos é na realidade um problema algorítmico.

Leia mais

Teoria da Complexidade Computacional

Teoria da Complexidade Computacional Teoria da Complexidade Computacional 25 de novembro de 2011 Enquanto a teoria de análise de algoritmos estuda a análise de complexidade de algoritmos, a teoria da complexidade estuda a classificação de

Leia mais

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão Projeto e Análise de Algoritmos NP Completude Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas versão da aula: 0.4 Introdução Problemas intratáveis ou difíceis são comuns

Leia mais

UMA HEURISTICA APLICADA AO PROBLEMA DO CAIXEIRO VIAJANTE

UMA HEURISTICA APLICADA AO PROBLEMA DO CAIXEIRO VIAJANTE UMA HEURISTICA APLICADA AO PROBLEMA DO CAIXEIRO VIAJANTE Flávio Martins Colares Faculdade Lourenço Filho, flaviocolares@yahoo.com José Lassance de Castro Silva Universidade Federal do Ceará, lassance@lia.ufc.br

Leia mais

01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II

01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II 01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir Ponti Jr. (ICMCUSP) 01

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema

Leia mais

PERCURSOS. André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré

PERCURSOS. André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré PERCURSOS André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré Serra 2011 Índice 1...O que é caminho e circuito 1.1...Caminho 1.2...Circuito 1.3...Classificação 2...Caminhos Eulerianos 2.1...Definição

Leia mais

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Cap. 2 Conceitos Básicos em Teoria dos Grafos Teoria dos Grafos e Aplicações 8 Cap. 2 Conceitos Básicos em Teoria dos Grafos 2.1 Grafo É uma noção simples, abstrata e intuitiva, usada para representar a idéia de alguma espécie de relação entre os

Leia mais

Grafos representação e aplicações. Prof. Guilherme Tomaschewski Netto

Grafos representação e aplicações. Prof. Guilherme Tomaschewski Netto Grafos representação e aplicações Prof. Guilherme Tomaschewski Netto guilherme.netto@gmail.com Roteiro! Contextualização! Apresentação, um pouco de história! Conceitos Grafos! Principais aplicacões! Estruturas

Leia mais

MÓDULO 3 - PROBLEMAS DE COBERTURAS DE ARCOS E NÓS

MÓDULO 3 - PROBLEMAS DE COBERTURAS DE ARCOS E NÓS MÓULO 3 - PROBLEMAS E COBERTURAS E ARCOS E NÓS 1. CONCEITOS INICIAIS Área contida na Pesquisa Operacional. Pode ser considerada como uma teoria baseada na interligação de pontos e linhas, utilizada principalmente

Leia mais

Teoria dos Grafos. Motivação

Teoria dos Grafos. Motivação Teoria dos Grafos Aula 1 Primeiras Ideias Prof a. Alessandra Martins Coelho março/2013 Motivação Muitas aplicações em computação necessitam considerar conjunto de conexões entre pares de objetos: Existe

Leia mais

PCC173 - Otimização em Redes

PCC173 - Otimização em Redes PCC173 - Otimização em Redes Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 31 de maio de 2017 Marco Antonio M. Carvalho

Leia mais

GRAFOS Aula 04 Caminhos, Conexidade e Distância Max Pereira

GRAFOS Aula 04 Caminhos, Conexidade e Distância Max Pereira Ciência da Computação GRAFOS Aula 04 Caminhos, Conexidade e Distância Max Pereira Um grafo é dito conexo se for possível visitar qualquer vértice, partindo de um outro qualquer, passando pelas suas arestas.

Leia mais

Conceitos Básicos da Teoria de Grafos

Conceitos Básicos da Teoria de Grafos Conceitos Básicos da Teoria de Grafos Universidade Federal do Pampa - UNIPAMPA Engenharia da Computação Estrutura de Dados Profª Sandra Piovesan Grafos Uma noção simples, abstrata e intuitiva. Representa

Leia mais

05 Grafos: ordenação topológica SCC0503 Algoritmos e Estruturas de Dados II

05 Grafos: ordenação topológica SCC0503 Algoritmos e Estruturas de Dados II 05 Grafos: ordenação topológica SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir Ponti Jr.

Leia mais

GRAFOS Conceitos Básicos (Parte 1)

GRAFOS Conceitos Básicos (Parte 1) ALGORITMOS E ESTRUTURAS DE DADOS II GRAFOS Conceitos Básicos (Parte 1) Gustavo Batista Profa. Elaine Parros Machado de Sousa alterações: Cris-na Dutra de Aguiar Ciferri Material baseado em aulas dos professores:

Leia mais

ESTÁGIOS DOMINANTES FLEXÍVEIS EM SISTEMAS DE PRODUÇÃO FLOW SHOP HÍBRIDOS

ESTÁGIOS DOMINANTES FLEXÍVEIS EM SISTEMAS DE PRODUÇÃO FLOW SHOP HÍBRIDOS ESTÁGIOS DOMINANTES FLEXÍVEIS EM SISTEMAS DE PRODUÇÃO FLOW SHOP HÍBRIDOS João Vitor Moccellin Departamento de Engenharia de Produção Escola de Engenharia de São Carlos, Universidade de São Paulo. Av. Trabalhador

Leia mais

Grafo planar: Definição

Grafo planar: Definição Grafo planar Considere o problema de conectar três casas a cada uma de três infraestruturas (gás, água, energia) como mostrado na figura abaixo. É possível fazer essas ligações sem que elas se cruzem?

Leia mais

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher TGR BCC Representação Computacional de Grafos Prof. Ricardo José Pfitscher Cronograma Representação Matriz de djacências Lista de djacências Matriz de Incidências Representação Como podemos representar

Leia mais

APLICAÇÕES DE BUSCA EM GRAFOS

APLICAÇÕES DE BUSCA EM GRAFOS APLICAÇÕES DE BUSCA EM GRAFOS David Krenkel Rodrigues de Melo david.melo1992@gmail.com Prof. Leonardo Sommariva, Estrutura de Dados RESUMO: São inúmeras as aplicaçõe de grafos, bem como os problemas clássicos

Leia mais

Ciclos hamiltonianos e o problema do caixeiro viajante

Ciclos hamiltonianos e o problema do caixeiro viajante Ciclos hamiltonianos e o problema do caixeiro viajante Algoritmos em Grafos Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional.

Leia mais

As Pontes de Königsberg

As Pontes de Königsberg As Pontes de Königsberg Anderson Freitas Ferreira e Lívia Minami Borges 13 de junho de 2015 Resumo A teoria de grafos teve seu início em 1736, quando Euler utilizou uma estrutura para resolver o Problema

Leia mais

Teoria dos Grafos Aula 5

Teoria dos Grafos Aula 5 Teoria dos Grafos Aula Aula passada Explorando grafos Mecanismos genéricos Ideias sobre BFS, DFS Aula de hoje Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Busca em Grafos Problema

Leia mais

Algoritmos Combinatórios: Introdução

Algoritmos Combinatórios: Introdução lucia@site.uottawa.ca UFSC, Fevereiro, 2010 Estruturas e Problemas Combinatórios Introdução a Algoritmos Combinatórios O que são: Estruturas Combinatórias? Algoritmos Combinatórios? Problemas Combinatórios?

Leia mais

Alguns probleminhas...

Alguns probleminhas... Introdução Vários problemas da computação, com aplicações em diversos problemas importantes, nasceram de jogos ou brincadeiras. Hoje veremos uma pequana amostra deste fato. Alguns probleminhas... Problema

Leia mais

BCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Toffolo 2012/1

BCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Toffolo 2012/1 BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Toffolo 2012/1 Definições e Estruturas de Grafos Representações; Percursos Busca em Largura; Busca em Profundidade.

Leia mais

Análise e Síntese de Algoritmos. Algoritmos em Grafos CLRS, Cap. 22

Análise e Síntese de Algoritmos. Algoritmos em Grafos CLRS, Cap. 22 Análise e Síntese de Algoritmos Algoritmos em Grafos CLRS, Cap. 22 Mudança no Horário Aulas Teóricas de 4ª feira 10:30 12:00 Sala: FA1 12:00 13:30 Sala: FA1 Deixa de haver aula teórica às 9:00 por troca

Leia mais

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá Grafos Hamiltonianos e o Problema do Caixeiro Viajante Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá Grafo Hamiltoniano Definição: Um circuito hamiltoniano em um

Leia mais

TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO

TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO Por que estudar grafos? Importante ferramenta matemática com aplicação em diversas áreas

Leia mais

Emparelhamentos Máximos em Grafos Bipartidos

Emparelhamentos Máximos em Grafos Bipartidos Introdução à Teoria dos Grafos Emparelhamentos Máximos em Grafos Bipartidos Bacharelado em Ciência da Computação, DCT UFMS, 6/6/2005 Entrega em 04/07/2005 Resumo Quando estudamos emparalhementos e fatorações

Leia mais

Algoritmos Branch e Bound para o problema de sequenciamento em uma única máquina

Algoritmos Branch e Bound para o problema de sequenciamento em uma única máquina Trabalho apresentado no XXXV CNMAC, Natal-RN, 2014. Algoritmos Branch e Bound para o problema de sequenciamento em uma única máquina Carlos E. Ferreira Instituto de Matemática e Estatística, IME, USP 05508-090,

Leia mais

Resolução de Problemas. Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial

Resolução de Problemas. Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial Resolução de Problemas Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial 2 Resolução de Problemas Introdução Componentes Solução Busca de soluções 3 Resolução

Leia mais

Teoria dos Grafos Aula 6

Teoria dos Grafos Aula 6 Teoria dos Grafos Aula 6 Aula passada Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Aula de hoje BFS implementação Complexidade Busca em profundidade (DFS) Conectividade, componentes

Leia mais

Teoria dos Grafos Introdu c ao

Teoria dos Grafos Introdu c ao Teoria dos Grafos Introdução Referências P. O. Boaventura Netto, Grafos: Teoria, Modelos e Algoritmos, São Paulo, E. Blucher 001; R. J. Trudeau, Introduction to Graph Theory, New York, Dover Publications,

Leia mais

Introdução a Teoria dos Grafos Raimundo Macêdo

Introdução a Teoria dos Grafos Raimundo Macêdo Doutorado em Ciência da Computação lgoritmos e Grafos Raimundo Macêdo LaSiD/DCC/UF Introdução a Teoria dos Grafos Raimundo Macêdo Definição Estrutura que consiste em dois conjuntos: um conjunto de vértices

Leia mais

UMA FERRAMENTA INTERATIVA E GRÁFICA APLICADA NA RESOLUÇÃO DO PROBLEMA FLOWSHOP PERMUTACIONAL

UMA FERRAMENTA INTERATIVA E GRÁFICA APLICADA NA RESOLUÇÃO DO PROBLEMA FLOWSHOP PERMUTACIONAL UMA FERRAMENTA INTERATIVA E GRÁFICA APLICADA NA RESOLUÇÃO DO PROBLEMA FLOWSHOP PERMUTACIONAL José Lassance de Castro Silva Universidade Federal do Ceará-UFC. Campus do Pici, Bloco 910, CEP 60455-760, Fortaleza

Leia mais

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

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. Teoria dos Grafos Valeriano A de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilceunespbr, socorro@ibilceunespbr Grafos Hamiltonianos Preparado a partir do texto: Rangel, Socorro

Leia mais

Caixeiro Viajante. Estruturas de Dados II. Prof. a Mariella Berger. 1. Objetivo

Caixeiro Viajante. Estruturas de Dados II. Prof. a Mariella Berger. 1. Objetivo Estruturas de Dados II Prof. a Mariella Berger Caixeiro Viajante 1. Objetivo O objetivo deste trabalho é implementar diferentes soluções para o problema clássico do Caixeiro Viajante. 2. Introdução O Problema

Leia mais

Grafos Eulerianos e o Problema do Carteiro Chinês

Grafos Eulerianos e o Problema do Carteiro Chinês Prof. Ademir A. Constantino DIN - UEM 1 Grafos Eulerianos e o Problema do Carteiro Chinês Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá Prof. Ademir A. Constantino

Leia mais

Algoritmos em Grafos: Caminho Mínimo

Algoritmos em Grafos: Caminho Mínimo Algoritmos em Grafos: Caminho Mínimo Letícia Rodrigues Bueno UFABC Problema 2: Menor caminho entre duas cidades Dado um mapa de cidades, contendo as distâncias entre cidades, qual o menor caminho entre

Leia mais

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações? 8/0/06 GRAFOS Prof. André Backes Definição Como representar um conjunto de objetos e as suas relações? Diversos tipos de aplicações necessitam disso Um grafo é um modelo matemático que representa as relações

Leia mais

Busca em Profundidade. Busca em Grafos. Busca em Grafos. Busca em Grafos. Busca em Grafos. Os objetivos da busca são: Aplicações???

Busca em Profundidade. Busca em Grafos. Busca em Grafos. Busca em Grafos. Busca em Grafos. Os objetivos da busca são: Aplicações??? Teoria dos Grafos Introdução Prof. Humberto Brandão humberto@unifal-mg.edu.br aula disponível no site: http:bcc.unifal-mg.edu.br~humberto Universidade Federal de Alfenas Departamento de Ciências Exatas

Leia mais

TEORIA DOS GRAFOS UMA APLICAÇÃO DE LOGÍSTICA PARA O ENSINO MÉDIO. Profº M. Sc. Marcelo Mazetto Moala

TEORIA DOS GRAFOS UMA APLICAÇÃO DE LOGÍSTICA PARA O ENSINO MÉDIO. Profº M. Sc. Marcelo Mazetto Moala TEORIA DOS GRAFOS UMA APLICAÇÃO DE LOGÍSTICA PARA O ENSINO MÉDIO mmmoala@fafica.br Breve Histórico Leonhard Euler (Matemático Suíço) - Pai da Teoria dos Grafos Nascimento de abril de 77 / 8 de setembro

Leia mais

O uso da Teoria dos Grafos no Jogo Icosiano

O uso da Teoria dos Grafos no Jogo Icosiano O uso da Teoria dos Grafos no Jogo Icosiano Leandro Natal Coral 1, Rafael Spilere Marangoni 1, Kristian Madeira 2 1 Acadêmico do curso de Ciência da Computação Unidade Acadêmica de Ciências, Engenharias

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Referências P. O. Boaventura Netto, Grafos: Teoria, Modelos e Algoritmos, São Paulo, E. Blucher 2001; R. J. Trudeau, Introduction to Graph Theory, New York, Dover Publications, 1993; Kaufmann,

Leia mais

Grafos: caminhos mínimos

Grafos: caminhos mínimos quando o grafo é sem pesos, a determinação de um caminho mais curto pode ser feita através de uma busca em largura caminho mais curto é aquele que apresenta o menor número de arestas quando o grafo tem

Leia mais

Noções da Teoria dos Grafos. André Arbex Hallack

Noções da Teoria dos Grafos. André Arbex Hallack Noções da Teoria dos Grafos André Arbex Hallack Junho/2015 Índice 1 Introdução e definições básicas. Passeios eulerianos 1 1.1 Introdução histórica..................................... 1 1.2 Passeios

Leia mais

Análise e Implementação de Algoritmos para o Roteamento de Veículos

Análise e Implementação de Algoritmos para o Roteamento de Veículos Análise e Implementação de Algoritmos para o Roteamento de Veículos Milton Roberto Heinen 1 1 Universidade do Vale do Rio dos Sinos (UNISINOS) Mestrado em Computação Aplicada CEP 93022-000 - São Leopoldo

Leia mais

IFRN. Introdução à Teoria dos Grafos. Prof. Edmilson Campos

IFRN. Introdução à Teoria dos Grafos. Prof. Edmilson Campos IFRN Introdução à Teoria dos Grafos Prof. Edmilson Campos Conteúdo Histórico Aplicações Definições Grafo Dígrafo Ordem, adjacência e grau Laço Tipos de grafos Representação de Grafos Matriz de adjacências

Leia mais

Otimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2

Otimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2 Otimização Otimização em Redes Paulo Henrique Ribeiro Gabriel phrg@ufu.br Faculdade de Computação Universidade Federal de Uberlândia 2016/2 Paulo H. R. Gabriel (FACOM/UFU) GSI027 2016/2 1 / 51 Conteúdo

Leia mais

Árvore Binária de Busca Ótima

Árvore Binária de Busca Ótima MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nas seções sobre árvore binária de busca ótima do capítulo 4 do livro N. Wirth. Algorithms

Leia mais

14 Coloração de vértices Considere cada um dos grafos abaixo:

14 Coloração de vértices Considere cada um dos grafos abaixo: 14 Coloração de vértices Considere cada um dos grafos abaixo: a) Quantas cores são necessárias para colorir os vértices de um grafo de maneira que dois vértices adjacentes não recebam a mesma cor? b) Qual

Leia mais

Estudo e Implementação de Algoritmos de Roteamento sobre Grafos em um Sistema de Informações Geográficas

Estudo e Implementação de Algoritmos de Roteamento sobre Grafos em um Sistema de Informações Geográficas Estudo e Implementação de Algoritmos de Roteamento sobre Grafos em um Sistema de Informações Geográficas RUDINI MENEZES SAMPAIO 1 HORÁCIO HIDEKI YANASSE 2 1 UFLA Universidade Federal de Lavras DCC Departamento

Leia mais

Paulo Guilherme Inça. 7 de dezembro de 2016

Paulo Guilherme Inça. 7 de dezembro de 2016 Coloração de grafos é NP-Difícil Paulo Guilherme Inça 7 de dezembro de 2016 Sumário 1 Introdução 1 2 O Problema da Coloração de Grafos 2 3 3-Coloração é NP-Completo 3 4 Generalizações e Restrições 6 5

Leia mais

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya Collazos Linares *As aulas baseiam-se no material do Professor Antonio Alfredo Ferreira Loureiro O problema das sete pontes de Königsberg

Leia mais

Busca em Largura. Adaptado de Humberto C. B. Oliveira

Busca em Largura. Adaptado de Humberto C. B. Oliveira Busca em Largura Adaptado de Humberto C. B. Oliveira Últimas aulas Introdução: História Aplicações Conceitos Básicos: Grafo simples Grafo completo/vazio Grafo não orientado: Arestas laço Arestas paralelas

Leia mais

Ciência da Computação Engenharia de Computação Mestrado em Informática. Teoria dos Grafos. Maria Claudia Silva Boeres.

Ciência da Computação Engenharia de Computação Mestrado em Informática. Teoria dos Grafos. Maria Claudia Silva Boeres. Ciência da Computação Engenharia de Computação Mestrado em Informática Maria Claudia Silva Boeres boeres@inf.ufes.br Programa 1.Conceitos Básicos 2.Grafos Eulerianos e Hamiltonianos 3.Caminhos, Ciclos

Leia mais

Pesquisa Operacional II. Professor João Soares de Mello

Pesquisa Operacional II. Professor João Soares de Mello Pesquisa Operacional II Professor João Soares de Mello http://www.uff.br/decisao/notas.htm Ementa Teoria dos grafos (pré-requisitos: PO I, Álgebra Linear) Programação não linear (pré-requisitos: PO I,

Leia mais

Prática 00. Total 04. Pré-requisitos. No. De Créditos 04

Prática 00. Total 04. Pré-requisitos. No. De Créditos 04 Disciplina Otimização Combinatória Departamento Carga Horária Semanal MINISTÉRIO DA EDUCAÇÃO E CULTURA PRÓ-REITORIA DE GRADUAÇÃO 1 PROGRAMA DE DISCIPLINA Departamento de Computação Teórica Pré-requisitos

Leia mais

Pesquisa Operacional

Pesquisa Operacional Faculdade de Engenharia - Campus de Guaratinguetá Pesquisa Operacional Livro: Introdução à Pesquisa Operacional Capítulo 3 - Teoria dos Grafos Fernando Marins fmarins@feg.unesp.br Departamento de Produção

Leia mais

Grafos: aplicações. Grafos: árvore geradora mínima

Grafos: aplicações. Grafos: árvore geradora mínima árvore geradora mínima caminhos mínimos problemas tipo 1 desejase conectar todos os computadores em um prédio usando a menor quantidade possível de cabos uma companhia aérea deseja voar para algumas cidades

Leia mais

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Lista de Exercícios Programação Inteira. x 2 0 e inteiros. Lista de Exercícios Programação Inteira ) Resolva os problemas a seguir usando o método B&B a) Max z = 5 x + 2 y s.a x + y 2 x + y 5 x, y 0, x e y inteiros b) Max z = 2 x + y s.a x + 2y 0 x + y 25 x, y

Leia mais

Algoritmos de Caminho Mínimo Parte 1

Algoritmos de Caminho Mínimo Parte 1 Algoritmos de Caminho Mínimo Parte 1 A journey of a thousand miles starts with a single step and if that step is the right step, it becomes the last step. Index 1. Introduction 2. Applications 3. Tree

Leia mais

Uma forma de classificação

Uma forma de classificação Uma forma de classificação L. Não-RE ou f. nãocomputáveis LRE ou MT ou f. comput. L. Indecidíveis ou Procedimentos L. Recursivas ou Decidíveis ou Algoritmos Outra forma de classificação Problemas Indecidíveis

Leia mais

CAL ( ) MIEIC/FEUP Grafos: Introdução (Março, 2011)

CAL ( ) MIEIC/FEUP Grafos: Introdução (Março, 2011) 1 Algoritmos em Grafos: Introdução R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes CAL, MIEIC, FEUP Março de 2011 Índice 2 Revisão de conceitos e definições Exemplificar aplicações Representação

Leia mais

Grafos: componentes fortemente conexos, árvores geradoras mínimas

Grafos: componentes fortemente conexos, árvores geradoras mínimas Grafos: componentes fortemente conexos, árvores geradoras mínimas SCE-183 Algoritmos e Estruturas de Dados 2 Thiago A. S. Pardo Maria Cristina 1 Componentes fortemente conexos Um componente fortemente

Leia mais

Estruturas de Dados para Conjuntos Disjuntos: Union-find Letícia Rodrigues Bueno

Estruturas de Dados para Conjuntos Disjuntos: Union-find Letícia Rodrigues Bueno Estruturas de Dados para Conjuntos Disjuntos: Union-find Letícia Rodrigues Bueno UFABC Estruturas de Dados para Conjuntos Disjuntos: Introdução Estruturas de Dados para Conjuntos Disjuntos: Introdução

Leia mais

Teoria dos Grafos AULA

Teoria dos Grafos AULA Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br AULA Caminho mínimo - Algoritmo de Djskstra Preparado a partir

Leia mais

Grafos: árvores geradoras mínimas. Graça Nunes

Grafos: árvores geradoras mínimas. Graça Nunes Grafos: árvores geradoras mínimas Graça Nunes 1 Motivação Suponha que queremos construir estradas para interligar n cidades Cada estrada direta entre as cidades i e j tem um custo associado Nem todas as

Leia mais

Complexidade Assintótica de Programas Letícia Rodrigues Bueno

Complexidade Assintótica de Programas Letícia Rodrigues Bueno Complexidade Assintótica de Programas Letícia Rodrigues Bueno Análise de Algoritmos 1. Introdução; Análise de Algoritmos 1. Introdução; 2. Conceitos básicos; Análise de Algoritmos 1. Introdução; 2. Conceitos

Leia mais

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Classes de Comportamento Assintótico Se f é uma função de complexidade para um algoritmo F, então

Leia mais

Matemática Discreta - Exercícios de Grafos

Matemática Discreta - Exercícios de Grafos UALG - 0/0 1. Seja G o grafo cuja matriz de adjacência é: 1 8 9 1 8 9 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0

Leia mais

CAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo:

CAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo: Matemática Discreta ESTiG\IPB Cap4. Elementos da Teoria de Grafos pg 1 CAP4. ELEMENTOS DA TEORIA DE GRAFOS Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E), sendo: Exemplos

Leia mais

Definição e Conceitos Básicos

Definição e Conceitos Básicos Definição e Conceitos Básicos Grafos e Algoritmos Computacionais Prof. Flávio Humberto Cabral Nunes fhcnunes@yahoo.com.br 1 Conceitos Básicos Em grafos ocorrem dois tipos de elementos: Vértices ou nós;

Leia mais

Introdução à Inteligência Artificial MAC MAC 415. Exercício Programa 1 Busca

Introdução à Inteligência Artificial MAC MAC 415. Exercício Programa 1 Busca Introdução à Inteligência Artificial MAC 5739 - MAC 415 006 Exercício Programa 1 Busca Data de Divulgação: 6 de agosto Data de Entrega: 6 de setembro 1 Objetivo Implementar os algoritmos de busca em Inteligência

Leia mais

Algoritmos e Estruturas de Dados II

Algoritmos e Estruturas de Dados II Algoritmos e Estruturas de Dados II Organização Revisão (DFS) Exemplo de Execução (DFS) Grafos V: e Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis

Leia mais

Matemática Discreta 10

Matemática Discreta 10 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 10 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti 1 Muitas

Leia mais

Caminho Mínimo de Fonte Única em Grafos sem Pesos Negativos

Caminho Mínimo de Fonte Única em Grafos sem Pesos Negativos Caminho Mínimo de Fonte Única em Grafos sem Pesos Negativos Letícia Rodrigues Bueno UFABC Problema : Menor caminho entre duas cidades Dado um mapa de cidades, contendo as distâncias entre cidades, qual

Leia mais

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

COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS Rosiana da Silva Lopes Danilo César Rodrigues Azevedo rosianalopes16@gmail.com danilo.azevedo@ufpi.edu.br.com

Leia mais

Buscas Informadas ou Heurísticas - Parte II

Buscas Informadas ou Heurísticas - Parte II Buscas Informadas ou Heurísticas - Parte II Prof. Cedric Luiz de Carvalho Instituto de Informática - UFG Graduação em Ciência da Computação / 2006 FUNÇÕES HEURÍSTICAS - 1/7 FUNÇÕES HEURÍSTICAS - 2/7 Solução

Leia mais

Mistério das Pirâmides

Mistério das Pirâmides Mistério das Pirâmides UNIVERSIDADE FEDERAL DE GOIÁS Cleusa Maria do Nascimento nmcleusa@gmail.com Rogéria Wolpp Wolpp@cultura.com.br Mistério das Pirâmides Introdução Supercomputador para um cálculo numérico

Leia mais

Euler e as Origens da Teoria dos Grafos

Euler e as Origens da Teoria dos Grafos Euler e as Origens da Teoria dos Grafos Yoshiko Wakabayashi Universidade de São Paulo - USP Instituto de Matemática e Estatística Departamento de Ciência da Computação 5 de dezembro de 2007 Euler 2007

Leia mais

Estruturas de Dados II. Caixeiro Viajante

Estruturas de Dados II. Caixeiro Viajante Estruturas de Dados II Prof. a Mariella Berger Caixeiro Viajante 1. Objetivo O objetivo deste trabalho é implementar diferentes soluções para o problema clássico do Caixeiro Viajante. 2. Introdução O Problema

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 12 Prof. Dr. Sylvio Barbon Junior Sumário - Árvore Geradora Mínima - Teorema pare reconhecer arestas seguras; - Algoritmo de Prim; - Algoritmo

Leia mais

Pesquisa em Grafos. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Pesquisa em Grafos 2014/ / 33

Pesquisa em Grafos. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Pesquisa em Grafos 2014/ / 33 Pesquisa em Grafos Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Pesquisa em Grafos 2014/2015 1 / 33 Pesquisa em Grafos Uma das tarefas mais importantes é saber percorrer um grafo, ou seja

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes O limite superior de complexidade de um problema refere-se ao melhor algoritmo que o resolve. nlog 2 n é um limite superior para o problema de classificação. O limite inferior de um problema

Leia mais

x y Grafo Euleriano Figura 1

x y Grafo Euleriano Figura 1 Grafo Euleriano Um caminho simples ou um circuito simples é dito euleriano se ele contém todas as arestas de um grafo. Um grafo que contém um circuito euleriano é um grafo euleriano. Um grafo que não contém

Leia mais

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32 Grafos - Introdução Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/2015 1 / 32 Conceito Definição de Grafo Formalmente, um grafo é: Um conjunto de nós/vértices (V).

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Árvores Sabemos que com um ou dois vértices apenas uma árvore pode ser formada. Entretanto com três vértices podemos formar três árvores. Com quatro vértices temos quatro estrelas e doze

Leia mais

Teoria da Computação. Clique de um Grafo. Alexandre Renato Rodrigues de Souza 1

Teoria da Computação. Clique de um Grafo. Alexandre Renato Rodrigues de Souza 1 Teoria da Computação Clique de um Grafo Alexandre Renato Rodrigues de Souza 1 O que é um grafo? Definição 1: grafo é uma estruturas utilizada para representar relações entre elementos de um dado conjunto.

Leia mais

Teoria dos Grafos Aula 2

Teoria dos Grafos Aula 2 Teoria dos Grafos Aula 2 Aula passada Logística, regras Objetivos Grafos, o que são? Formando pares Encontrando caminhos Aula de hoje Outro problema real Definições importantes Algumas propriedades Grafo

Leia mais

Alg l ori r t i m t os e E str t u r tu t ra r s d e D ados I I Intr t o r duçã ç o ã a a Gr G a r f a o f s P of o a. M. C r C ist s ina n a /

Alg l ori r t i m t os e E str t u r tu t ra r s d e D ados I I Intr t o r duçã ç o ã a a Gr G a r f a o f s P of o a. M. C r C ist s ina n a / Algoritmos e Estruturas de Dados II Introdução a Grafos Profa. M. Cristina / Profa. Rosane (2012) Baseado no material de aula original: Profª. Josiane M. Bueno Divisão do arquivo 1ª parte: Motivação Definição:

Leia mais

Algoritmos e Estruturas de Dados II Introdução a Grafos. Divisão do arquivo

Algoritmos e Estruturas de Dados II Introdução a Grafos. Divisão do arquivo Algoritmos e Estruturas de Dados II Introdução a Profa. M. Cristina / Profa. Rosane (2010/11) Baseado no material de aula original: Profª. Josiane M. Bueno Divisão do arquivo 1ª parte: Motivação Definição:

Leia mais

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas Inteligência Artificial Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas 1 Agente solucionador de problemas (guiado por objetivo) O agente reativo Escolhe suas ações com base apenas nas percepções

Leia mais

Busca em Profundidade e em Largura

Busca em Profundidade e em Largura Busca em Profundidade e em Largura Grafos e Algoritmos Computacionais Prof. Flávio Humberto Cabral Nunes fhcnunes@yahoo.com.br 1 Mais sobre Caminhos TEOREMA: Se um grafo possui exatamente 2 vértices de

Leia mais

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

Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos Teobaldo L. Bulhões Júnior a a Instituto de Computação, Universidade Federal Fluminense, Niterói, RJ, Brazil

Leia mais

Algoritmos e Estrutura de Dados. Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira Ementa e Objetivos Ementa: Análise de Algoritmos: Notação O e Análise Assintótica.

Leia mais

PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos

PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GBC052 PERÍODO:

Leia mais

Estudo e implementação de heurísticas para determinação do caminho de menor custo para atender a rotas pré estabelecidas. Por: Charles Pereira

Estudo e implementação de heurísticas para determinação do caminho de menor custo para atender a rotas pré estabelecidas. Por: Charles Pereira Estudo e implementação de heurísticas para determinação do caminho de menor custo para atender a rotas pré estabelecidas Por: Charles Pereira Objetivos Principal: - Criar, implementar e avaliar heurísticas

Leia mais