Universidade dos Açores Departamento de Matemática

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

Download "Universidade dos Açores Departamento de Matemática"

Transcrição

1 Universidade dos Açores Departamento de Matemática Grafos, Problemas de Optimização Combinatória e Algoritmos Elaboração: Abel Carneiro Orientação: Armando Mendes Ponta Delgada Junho de 001

2 When I was a Boy of 14 my father was so ignorant I could hardly stand to have the old man around. But when I got to be 1, I was astonished at how much the old man had learned in 7 years. Mark Twain

3 Agradecimentos Ao meu orientador Armando Mendes pela atenção e orientação na elaboração desta monografia. Ao pessoal dos Serviços Académicos da Universidade dos Açores, pela colaboração prestada. Aos meus familiares e amigos que sempre me apoiaram ao longo destes oito meses de trabalho.

4 Índice Introdução...1 Capítulo 1 Noções Básicas sobre Grafos Definições sobre nós, vértices, arcos e arestas Subgrafos e Grafos Parciais Operações com Grafos Caracterização de Grafos Isomorfismos de Grafos Tipos de Grafos Representação matricial de Grafos...0 Capítulo - Problemas de Optimização Combinatória e Grafos: Algoritmos Problemas dos Circuitos e ciclos de Euler Problemas de colorações Desenho de Grafos Árvore geradora mínima ou árvore de ligações mínimas Caminho mais curto Caixeiro viajante Problema de fluxo máximo numa rede de capacidades limitadas Outros Problemas...5 Capítulo 3 Caso de Estudo...55 Conclusão...6 Referências Bibliográficas...63

5 Introdução Esta monografia foi elaborada segundo uma proposta de trabalho e acompanhamento do orientador Armando Mendes, estando estruturada em três capítulos. O primeiro capítulo consta de breves noções sobre grafos, a meu ver, necessárias a uma melhor compreensão desta monografia no seu todo. Neste capítulo, foram utilizados essencialmente os livros Graph Theory de Frank Harary (1969) e Tópicos de Matemática Finita de Ilda Silva (199). No segundo capítulo estão descritos alguns problemas de optimização combinatória em grafos e os seus processos de resolução segundo um algoritmo ou uma heurística. As consultas bibliográficas neste capítulo já foram mais diversificadas sendo referenciadas no final de cada sub-capítulo. Finalmente no terceiro capítulo, é apresentado um caso de estudo como forma de exemplificar a aplicação prática dos problemas de optimização combinatória utilizando os grafos. Assim, sem esquecer que foi mais um importante momento de aprendizagem, pretendo com esta monografia corresponder às propostas e sugestões do meu orientador. 1

6 Capítulo 1 Noções Básicas sobre Grafos Quando analisamos um conjunto de elementos de dados (não necessariamente dados computacionais), podemos estar preocupados com o seu conteúdo ou com as relações existentes entre eles, por vezes estas relações entre elementos de dados podem ser vistas através de um grafo. Os grafos servem como modelo matemático para representar o mundo real e o seu estudo é importante pois qualquer relação binária pode ser representado num grafo. A Teoria dos Grafos, preocupa-se com o estudo das relações existentes entre diversos objectos em análise, podendo ser utilizada em qualquer área que necessite de organização de dados: sociologia, investigação operacional, química, etc. A tecnologia actual impõe um grande número de problemas que requerem a construção de sistemas complexos através de arranjos específicos dos seus elementos. Isto inclui problemas de planeamento no tempo ou scheduling de processos industriais, redes eléctricas, economia e muitas outras áreas. Baseada na simples ideia de pontos interligados por linhas, a Teoria dos Grafos combina estes factores básicos numa rica e útil teoria, que fornece métodos poderosos de elaboração de modelos e solução de problemas tendo em conta arranjos discretos de objectos Definições sobre nós, vértices, arcos e arestas. Um grafo dirigido, digrafo ou grafo orientado é um par G ( V, A) = em que V é um conjunto (finito não vazio) e A V V uma família (finita) de pares ordenados de elementos de V. Chamam-se nós ou nodos aos elementos v 1, v V e aos elementos ( v1, v ) A chamam-se arcos. Quando se escreve, ) está-se a denotar o arco que vai de para v, ( v v 1 v1 assim a ordem em que aparecem os nós de cada arco de A é relevante. Para facilitar o estudo de um grafo podem ser atribuídos rótulos aos seus nós e arcos. Sendo assim, um rotulador de nós (respectivamente arcos) é uma função f : A D para arcos e g : V D para nós, em que D é um domínio de rótulos qualquer (por ex. um valor numérico). O peso de um arco ou de um nó é o valor que lhe está atribuído no seu domínio de

7 rótulos. Uma rede é um grafo rotulado, ou seja, um grafo com um rotulador para arcos e/ou nós. Um grafo não orientado é um par G = (V,A) onde V é um conjunto (finito não vazio) e A é uma família de pares não ordenados de elementos de V. Os elementos v 1, v V chamam-se vértices e quando falamos de grafos não orientados, os elementos v, v } A chamam-se arestas e denotam-se {v 1,v }. { 1 Na figura 1 é apresentado o exemplo da representação sagital de um grafo orientado em que V = {1,,3,4} e A = {(1,),(1,3),(,3),(3,4),(4,1)}. Na figura temos um exemplo de um grafo não orientado, em que V = {1,,3,4} e A = {{1,},{1,3},{1,4},{,3},{3,4}} Figura 1 - Grafo orientado 4 Figura - Grafo não orientado Note-se que num grafo não orientado tem-se ( v, v ) A ( v, v ) A, v v V , Chama-se grafo fundamental a um grafo não orientado construído a partir de um grafo originalmente orientado. Dois vértices (nós) aresta que os una, ou seja v 1, v V {, num grafo não orientado, são adjacentes se existe uma v1, v } A, caso se trate de um grafo orientado, se ( v1, v ) A então é adjacente a e é adjacente de v. Uma aresta v1 v v 1 { v1, v } A (arco ( v1, v ) A ) é incidente aos vértices e v. Caso duas arestas (arcos) distintas sejam incidentes a um mesmo vértice então dizem-se arestas (arcos) adjacentes. Um lacete é uma aresta do tipo { v, v1} 1 A. v1 3

8 Num grafo não orientado o grau de um vértice v, grau (v), é o número de arestas incidentes ao vértice v, os lacetes contam como incidindo duas vezes no vértice v. No caso de G ser um grafo orientado chamamos grau exterior de v e denotamos grau + (v), ao número de arcos de que v é extremidade inicial (neste caso os lacetes contam uma única vez). Analogamente, chamamos grau interior de v e denotamos grau (v), ao número de arcos de que v é extremidade final. Assim temos que: em grafos não orientados grau( v ) = #{ v V :{ v, v} A}; e em grafos orientados grau grau + ( v ) = #{ v V : ( v, v) A ( v ) = #{ v V : ( v, v ) A } } v (arcos que partem do nó ); v (arcos que chegam ao nó ); + grau( v ) = grau ( v ) + grau ( v ) Por exemplo, na figura 1 temos grau + (1) =, grau - (1) = 1 e grau(1) = 3. No caso da figura temos grau(1) = 3. Torna-se conveniente dar nomes a vértices de baixo grau, assim um vértice é isolado se grau( v) = 0. Um grafo diz-se completo de ordem n, se e só se # V = n e ( v, v ) A, vi, v j V com vi v j. Um grafo é de ordem n quando # V = n e de tamanho m quando #A = m. Na figura temos um grafo de ordem 4 e tamanho 5. Num grafo completo de ordem n tem-se #A = (n(n-1))/ onde n é o número de vértices i j Teorema Sejam G = (V,A) um grafo e v V. i) Se G for um grafo orientado então ( v) = v V + grau grau ( v) = # v V A ii) Se G for um grafo não orientado então grau ( v) = # A v V (a demonstração resulta do facto de todos os arcos serem simultaneamente incidentes para o interior de um nó e para o exterior de outro) 4

9 + Dado que num grafo orientado grau ( v) = grau ( v) + grau ( v), podemos reformular este teorema dizendo que em qualquer grafo v V grau ( v) = # A. Assim, o grau de um vértice é o número de arestas incidentes a ele, no entanto, cada aresta é incidente a dois vértices (ou no caso de lacetes duas vezes o mesmo vértice). Teorema de Euler (1736) Em qualquer grafo, há um número par de vértices de grau impar (eventualmente zero) Demonstração: Seja G um grafo, então pelo teorema anterior grau ( v) = # A. O resultado da soma entre dois números pares ou entre dois números ímpares é sempre um número par, sendo impossível obter como resultado um número ímpar. Assim, uma vez que v V grau ( v) (eventualmente zero). é um número par só podemos ter um número par de vértices de grau ímpar v V Num grafo G = (V,A) temos δ (G) = min{grau(v) : v V } que corresponde ao menor grau de G e (G) = máx{grau(v) : v V } que corresponde ao maior grau de G. Se δ ( G ) = ( G) = r, então todos os vértices de G têm o mesmo grau e G é chamado grafo regular de grau r, podemos então falar no grau de G e escrever grau ( G) = r. Um grafo regular de grau 0 não tem arestas. Se G é regular de grau 1, então cada vértice v 1 é adjacente a um único vértice v ; se for regular de grau, uma aresta é adjacente a exactamente duas outras arestas. Os primeiros grafos regulares com interesse são chamados cúbicos e têm grau 3. Corolário Cada grafo cúbico tem um número par de vértices. Demonstração: Seja G um grafo cúbico qualquer. Então se G é cúbico temos que grau ( G) = 3, ou seja, v V, grau ( v) = 3. Como já vimos em qualquer grafo há um número 5

10 par de vértices de grau ímpar. Como todos os vértices de G são de grau ímpar conclui-se que G tem um número par de vértices. 1.. Subgrafos e Grafos Parciais Quando estamos a trabalhar com um grafo pode ser necessário considerar apenas uma parte desse mesmo grafo. Sendo assim, se retirarmos ao grafo original G = (V,A) uma ou mais arestas ficamos com G = (V,A ) em que A' A. Temos então um grafo parcial de G gerado por A ou simplesmente um grafo parcial de G. Diz-se que G' tem a extensão de G sempre que V ' = V, figura 3. no entanto, note-se que necessariamente A' A logo A' A como se exemplifica na Figura 3 - Grafo Original e Grafo Parcial gerado a partir do original Um subgrafo de G gerado por V, ou apenas subgrafo de G é um grafo G V = ( V ', A') ' com V ' V e A' A tais que ( v, v ) A' v1, v 1 V ', ou seja, um subgrafo não é mais que uma parte do grafo original depois de retirados alguns vértices e as respectivas arestas incidentes. Se é um subgrafo de G então G é chamado supergrafo ou grafo gerador de. Ao G V ' retirarmos uma aresta a uma subgrafo ficamos então com um subgrafo parcial, ou seja, G V = ( V ', A') ' G V = ( V ', A'') com A' ' A'. ' ' um subgrafo de G = (V,A), então um subgrafo parcial é um grafo G V ' 6

11 Figura 4 - Grafo Original, Subgrafo e Subgrafo Parcial Operações com Grafos Podem-se definir operações sobre um grafo para que ele represente melhor as alterações que sofrem os seus componentes: os dados correspondentes. As operações elementares unárias definidas sobre grafos estão representadas nas figuras 5 e Inserção de uma aresta ou vértice Figura 5 - Exemplos de operações elementares unárias definidas sobre grafos 7

12 Eliminar arestas e/ou vértices Rotação dos vértices adjacentes num dos sentidos / Fusão ou junção de dois vértices num Inversão ou troca do sentido dos arcos Figura 6 - Exemplos de operações elementares unárias definidas sobre grafos 8

13 Como podemos ver em Harary (1969) também podemos definir operações binárias, estas são operações baseadas nas utilizadas na Teoria dos Conjuntos. O seu objectivo é fazer operações sobre os elementos dos grafos (vértices e arestas) de modo a obterem-se novos grafos a b c G1 G G3 G4 Figura 7 - Grafos utilizados nos exemplos de operações binárias Considerando os grafos G = V, ), G = V, ) e G = V, ) representados na 1 ( 1 A1 ( A 3 ( 3 A3 figura 7, podemos definir a união de grafos, G G' = ( V V ', A A' ), como a junção de dois grafos através de vértices em comum se estes existirem, como se pode verificar nos exemplos apresentados na figura 8, a união de com G em que existem vértices em G 3 G1 comum e a união de com G em que não existem vértices em comum G1 G G G3 Figura 8 Exemplos de união de grafos 9

14 A intersecção de grafos, G G' = ( V V ', A A' ), tem como resultado os elementos em comum entre os dois grafos. 3 G1 G G G3 Figura 9 - Intersecção de grafos A adição de grafos, G + G', definida por Zykov (1949), consiste em G G' acrescentando todas as arestas unindo vértices de G com vértices de G. Por seu turno, a diferença de grafos, do grafo G em relação a G. G G', consiste na eliminação de elementos comuns Assim, G(V,A) G (V,A ) = G (V, A ), onde V = V V e A = A A G 1 + G 1 G G G G3 Figura 10 Adição e diferença de grafos Como já foi dito podem-se retirar vértices e/ou arestas a um grafo. Assim, considerando um grafo G = (V,A), v V, a A e F A, a eliminação de arestas de um grafo G representa-se por G a = ( V, A a) e a eliminação de vértices de um grafo G representa-se por G v = ( V v, F) tal que F contenha todas as arestas de A não incidentes a v. Usamos a notação G { a 1, K, a m } para eliminar mais do que uma aresta e G v, K, v } para eliminar { 1 n mais do que um vértice. É possível definir várias operações entre dois grafos G = (V,A) e G = (V,A ) que resultam num grafo G = (V,A ) em que o conjunto dos vértices V é o produto cartesiano V V ', 10

15 desde que V V '= e A A' =. Sendo assim podemos definir o produto e a composição de dois grafos, outras operações deste tipo estão desenvolvidas em Harary e Wilcox (1967). Para definir o produto G G', consideremos dois vértices quaisquer u, v V '' = V V ', ou seja, u = u, u ) e v = v, v ) 1 1. Assim, u e v são adjacentes em G G' sempre que se ( ( verifique [ u 1 = v 1 e u adjacente a v ] ou [ u = v e u1 adjacente a v1 ]. (3,a) (3,b) (3,c) (5,a) (5,b) (5,c) G G 4 Figura 11 Grafo produto A composição G = G[G ] também tem V '' = V V ' como conjunto de vértices e u e v são adjacentes sempre que [ adjacente a ] ou [ u = e adjacente a v ]. u1 v1 1 v1 u (3,a) (3,b) (3,c) (a,5) (b,5) (c,5) (5,a) (5,b) (5,c) (a,3) (b,3) (c,3) G G4 G4 [ ] [ G ] Figura 1 Grafo composto Considerando dois grafos G = (V,A) e G = (V,A ), em que #V=n, #A=m, #V =p, #A =q, V V '= e A A' =, podemos calcular o número de vértices e de arestas do grafo resultado das operações, como se mostra na tabela 1. 11

16 Tabela 1 Cálculo do número de arestas e vértices, do grafo resultado de algumas operações binárias Operação Número de vértices Número de arestas G G' n + p m + q G G' 0 0 G + G' n + p m + q + np G G' n m G G' np nq + pm G[G ] np nq + p m O complementar de um grafo G = (V,A), é um grafo G = ( V, A' ) em que A A' = e G G é um grafo completo, ou seja, se G é o complementar de um grafo G então G tem os mesmos vértices de G e dois vértices de G são adjacentes se e só se não o são em G. Na figura 13 temos um exemplo de um grafo G e do seu complementar G. G G Figura 13 Exemplo de um grafo e do seu complementar 1

17 1.4. Caracterização de Grafos Para melhor compreender as características dos grafos, é apresentado um pequeno conjunto de conceitos que expressam a peculiaridade de cada grafo. Vamos então considerar G = (V,A) um grafo com v i V, 0 i # V e a j A, 1 j # A. Temos assim que, num grafo G não orientado chama-se caminho, enquanto num grafo orientado chama-se trajectória, a toda a sequência alternada de vértices (nós) e arestas (arcos) que começa e acaba com vértices (nós), v, x, v 0, x1, v1, K, vk 1 k k, em que cada aresta (arco) é incidente a dois vértices (nós), o antecessor e o sucessor. Este caminho (trajectória) une v 0 a vk e também pode ser denotado v0 1 1 v v Kv k v k visto que as arestas (arcos) são evidentes do contexto. O comprimento de um caminho é o valor de k, i.e., o número de arestas que o constituem. Um caminho é simples se não utiliza duas vezes a mesma aresta e diz-se elementar se não passa duas vezes pelo mesmo vértice. Um circuito é um caminho v0v1v Kv k 1v k, tal que v0 e vk coincidem, i.e., um caminho fechado. Segundo este conceito um lacete é um circuito de comprimento 1. Um ciclo é um circuito simples v0v1v Kv k 1v k, tal que v 0 e v k coincidem e k > 0, i.e., um caminho fechado não trivial (mais que um vértice) e que não passa pela mesma aresta mais do que uma vez. Um ciclo é de ordem n se e só se #V = #A = n e as suas arestas formam um ciclo de comprimento n, quando um grafo não tem ciclos diz-se acíclico. Num grafo um ciclo de Hamilton é um ciclo que passa por todos os vértices do grafo; um grafo é chamado hamiltoniano se possui pelo menos um ciclo de Hamilton. O fecho transitivo directo de um vértice v é o conjunto de todos os vértices que podem ser atingidos por algum caminho iniciando em v, o fecho transitivo inverso de um vértice v é o conjunto de todos os vértices a partir dos quais se pode atingir v por algum caminho. O próprio vértice v faz parte do seu fecho directo e inverso. Dois vértices são conexos se são adjacentes ou possuem uma relação de adjacência, ou seja, dados dois vértices v 1 e v, existe um vértice v' 1 que é adjacente a v 1, outro v' que é 13

18 adjacente a v' 1, e assim sucessivamente até v. Isto é o mesmo que dizer que existe um caminho entre eles. Na figura 14 o vértice C é conexo com o vértice D. B C A D Figura 14 - Grafo com todos os vértices conexos Dois vértices e v são chamados de: v1 debilmente conexos se e só se existe um caminho não orientado desde até v ; v1 unilateralmente conexos se e só se existe uma trajectória orientada desde até v, ou vice-versa; fortemente conexos se e só se existe uma trajectória orientada desde até v, e vice-versa. Existindo vértices conexos, também podemos falar em grafos conexos. Sendo assim um grafo orientado diz-se: v 1 v1 debilmente conexo se e só se v, v V existe um caminho não orientado desde v1 até v ; 1 unilateralmente conexo se e só se v, v V existe uma trajectória orientada desde até v, ou vice-versa; v1 1 fortemente conexo se e só se v, v V existe uma trajectória orientada desde 1 v 1 até v, e vice-versa. Um grafo não orientado diz-se conexo se como é exemplo o grafo da figura v, v V existe um caminho desde até v, v1 14

19 Teorema Um grafo orientado G é debilmente conexo se e só se o seu grafo fundamental (não orientado) é conexo. Demonstração: Seja G um grafo orientado e G* o seu grafo fundamental. Dado que G é debilmente conexo então v, v V existe um caminho não 1 orientado desde até v e como G* é não orientado temos que G* é conexo. v1 Sendo G* um grafo fundamental conexo então v, v V existe um caminho desde 1 v1 até v. Assim G o grafo originalmente orientado é debilmente conexo. Temos ainda que G V ' é um subgrafo conexo maximal ou componente conexo de G se e só se G V ' é conexo e não existe outro subgrafo de G, GV '' GV ', tal que G V '' também é conexo. A união de todos os componentes conexos de G é o próprio grafo G original. Dado um grafo conexo G e a A uma aresta (respectivamente v V um vértice) de G, diz-se que a é uma aresta de corte (respectivamente v é um vértice de corte) se e só se não é conexo (respectivamente G a G v não é conexo). Note-se que na maioria das vezes um corte é constituído por um conjunto de arestas ou vértices superior a um elemento Isomorfismos de Grafos Dados dois grafos G = (V,A) e G = (V',A'), diz-se que G G', ou seja, G e G' são isomorfos se e só se existe uma função bijectiva ϕ : V V ' tal que ( v1, v ) A ( ϕ ( v1), ϕ( v )) A' v1, v V. Uma invariante de um grafo G é um número associado a G que tem o mesmo valor para todos os grafos isomorfos a G, assim dados G = (V,A) e G = (V',A') dois grafos, uma invariante é toda a função do tipo η :{ Grafos} IN tal que G G' η ( G) = η( G' ). Até agora foram mencionados alguns invariantes, tais como #V, #A, grau + (v), grau - (v), grau(v), δ (G) e (G). O problema geral de, dados dois grafos, saber se eles são ou não isomorfos é um problema difícil porque pode implicar um grande número de verificações. Há, no entanto, condições 15

20 necessárias óbvias que G e G' têm que satisfazer para serem isomorfos. Por exemplo, G e G' têm que ter o mesmo número de vértices, G e G' têm de ter o mesmo número de arestas e G e G' têm que ter o mesmo número de componentes conexas. A proposição seguinte permite-nos obter mais algumas condições necessárias. Proposição Sejam G = (V,A) e G = (V',A') dois grafos isomorfos e Então: f : V V ' um isomorfismo. iii) v V, grau(v) = grau(f(v)) iv) U V o subgrafo de G gerado por U é isomorfo ao subgrafo de G' gerado por f(u), denota-se G G U ' f ( U ) Existe uma conjectura, de certo modo o reciproco da proposição anterior, que diz: Conjectura de Ulam (1960) Suponhamos que G e G' são dois grafos da ordem n com n 3. G'. Sejam V = {v 1,...,v n } e V ={u 1,...,u n } os conjuntos de vértices, respectivamente de G e Se para cada i 1,K, n os subgrafos G = i i = G v e G' i = G' ui forem isomorfos então G e G' são isomorfos Tipos de Grafos Vamos agora atribuir alguns nomes a grafos, o que facilita a sua identificação. Podemos então dizer que dado um grafo G = (V,A), diz-se que G é: nulo de ordem n se só se #V = n e grau(v) = 0, v V ; planar quando a sua representação sagital é possível sem cruzamentos entre arcos; uma árvore se e só se é um grafo simples e v, v V existe um único caminho simples desde até v ; v1 1 16

21 uma árvore com raiz ou Rooted-Tree se e só se existe um vértice designado como raiz ou origem do(s) caminho(s) como é exemplo a figura 15; uma árvore com raiz orientada se e só se for uma árvore com uma trajectória orientada desde a raiz até cada vértice da árvore; Figura 15 - Árvore com raiz Existem algumas propriedades conhecidas sobre estes grafos. Por exemplo, toda a árvore não trivial (dois ou mais vértices) tem pelos menos um vértice de grau 1. Note-se que todo o vértice de uma árvore pode ser a sua raiz, no entanto uma rooted-tree orientada só possui uma única raiz. Numa rooted-tree define-se o nível de um vértice v como o comprimento dum caminho desde a raiz até v e todo o vértice de grau 1 chama-se de folha desde que não seja a raiz. Inserindo em G um vértice a um ciclo de ordem n-1 ao qual se une mediante n-1 novas arestas a todos os vértices originais obtém-se uma roda de ordem n, representada por W n. Numa roda de ordem n tem-se que #V = n e #A =.(n - 1). W 7 Figura 16 - Roda de ordem 7 17

22 Um grafo G = (V,A) com arestas em paralelo, um par de vértices é ligado por duas ou mais arestas, mas que não possui lacetes chama-se multigrafo. Na figura 17 temos um exemplo de um multigrafo em que os vértices e 4 são ligados por arestas em paralelo Figura 17 - Multigrafo Sempre que um grafo não possua lacetes nem arestas em paralelo chama-se grafo simples. Quando um grafo possui lacetes e arestas em paralelo então temos um pseudografo, como se exemplifica na figura 18. Figura 18 Pseudografo Um grafo G = (V,A) diz-se bipartido se e só se existem X V e Y V tais que: X Y = V ; X Y = ; ( v, v ) A v X v Y (ou vice-versa). i j i j O grafo representado na figura 19 é bipartido. Considerando para partição dos vértices X = {1,} e Y = { a, b, c}, qualquer aresta de G tem uma extremidade em X e a outra em Y. 18

23 Figura 19 - Exemplo de grafo bipartido Por outras palavras um grafo é bipartido se e só se podem colorir os vértices com duas cores de modo a que cada aresta tenha uma extremidade de cada cor e logo nenhuma aresta possa ligar dois vértices da mesma cor. Diz-se que um grafo, m, = ( V, A) com m, n IN, é bipartido completo se e só se K n existem X V e Y V tais que: X = x, K, x } e Y = y, K, y }; { 1 m X Y = V ; X Y = ; { 1 n vi X v j Y ( vi, v j ) A, vi, v j V com vi v j. a 1 b c K,3 Figura 0 Grafo bipartido completo 19

24 Teorema Um grafo G é bipartido se e só se todo o ciclo em G tem comprimento par. ciclo Demonstração: Se G for bipartido então o seu conjunto de vértices pode ser escrito como V = X Y de forma que cada aresta de G una um vértice de X com um de Y. Assim qualquer em G tem os seus vértices alternadamente em X e em Y, como no ciclo os índices dos vértices alternam entre impares e pares temos que n é um número par. Como já foi dito antes o índice n é que dá o comprimento do ciclo, logo todo o ciclo é de comprimento par. v 1v Kvnv1 Teorema Toda a árvore é um grafo bipartido. Demonstração: Uma árvore não tem ciclos, sendo assim é possível colorir todos os seus vértices utilizando apenas duas cores, por exemplo azul e vermelho, de forma que todas as arestas são incidentes a um vértice azul e a um vértice vermelho. Sendo assim é possível definir um grafo G em que o conjunto dos vértices é formado pela união de dois conjuntos de vértices disjuntos, cada um composto por vértices de uma única cor e em que qualquer aresta apenas une vértices de cores diferentes. Logo G é um grafo bipartido Representação matricial de Grafos Uma representação alternativa à sagital de grafos é feita recorrendo a matrizes de adjacência e matrizes de incidência. Como podemos ver em Harary (1969) dado um grafo G = (V,A), a matriz quadrada de ordem n, definida por A G = ( a ) em que a = 1, se v é adjacente a v, e zero caso contrário, i j i j i { 1,..., n}, j { 1,..., n}, chama-se matriz associada ou de adjacência de G. Se o grafo for rotulado em arestas, em vez de 1, aparece o peso de cada aresta. Consideremos o grafo orientado utilizado anteriormente na figura 1, em que #V=4 logo a respectiva matriz de adjacência, representada na figura 1, é de ordem 4. Para o grafo não orientado utilizado anteriormente na figura, temos a matriz de adjacência da figura, a qual é simétrica já que as arestas têm os dois sentidos em simultâneo. i j 0

25 Figura 1 Matriz de adjacência da representação sagital da figura Figura Matriz de adjacência da representação sagital da figura Sendo G = (V,A) em que V = { v,... 1, v n } e A = { a,... 1, a m } chama-se matriz de incidência de G à matriz de ordem nxm, I G, definida por I G =( b ) em que i { 1,..., n}, j { 1,..., m}, = 0 se v não é extremidade de a ou se a é um lacete, b = 1 se v é extremidade de a e i não é um lacete. j j A matriz de incidência não é tão utilizada porque esta terá uma ordem superior à da matriz de adjacência e porque não é utilizada em grafos orientados, mas aqui fica um exemplo relativo ao grafo já apresentado na figura : i j i j i b i j j a j {1,} {1,3} {1,4} {,3} {3,4} Figura 3 Matriz de incidência da representação sagital da figura Estas definições, como já foi referido, estão de acordo com Harary (1969) no entanto existem outras definições para este tipo de matrizes como pode ser visto em Kaufmann et Coster (1970). 1

26 Capítulo - Problemas de Optimização Combinatória e Grafos: Algoritmos. Na indústria, comércio, governo, bem como em variados outros campos, uma das necessidades mais frequentes é baseada em questões de eficácia operacional. A optimização combinatória é um campo da matemática aplicada que combina técnicas de Combinatória, Programação Linear, Teoria dos Grafos, entre outras, com o objectivo de encontrar soluções para problemas de optimização. Por exemplo, um engenheiro de telecomunicações com o objectivo de transmitir sinais minimizando a possibilidade de erro na recepção, um transitário ao planear o itinerário dos seus fretes para os rentabilizar diminuindo os custos de espera no cais, a sincronização de semáforos e um variado número de outras situações do nosso dia a dia. Inicialmente, estes problemas eram resolvidos por métodos imprecisos dando resultados pouco fiáveis e dispendiosos. Actualmente, a resolução destes problemas está a ser alvo de uma rigorosa análise matemática, desenvolvida com o intuito de encontrar métodos de resolução exactos ou estimativas confiáveis em vez de meras aproximações. A Combinatória e a Optimização disponibilizam muitas das ferramentas matemáticas utilizadas na resolução de problemas deste tipo. Muitos destes problemas podem ser descritos sobre um grafo. Os problemas consistem em encontrar uma configuração óptima (máxima ou mínima, conforme o caso) de um certo tipo no grafo. A dificuldade de todos os problemas de Optimização Combinatória está em desenvolver algoritmos eficientes que encontrem a configuração óptima desejada. Um dos primeiros problemas resolvido com grafos, e que pode ser visto em Reed (001), é o das sete pontes de Königsberg. O problema diz o seguinte: Figura 4 - Esboço das pontes de Königsberg Na cidade de Königsberg existe uma ilha (A), chamada Kneiphoff, no meio do rio Pregel.

27 Existem sete pontes, a, b, c, d, e, f e g, que atravessam o rio (figura 4). A questão é saber se será possível planear um passeio de forma a passar uma e uma única vez por todas as pontes. Em 1736, o matemático Leonard Euler ( ) dando origem à Teoria dos Grafos, representou as pontes por aresta e as zonas terrestres por vértices, como se pode ver no grafo da figura 5. Figura 5 - Grafo de Königsberg O problema pode ser visto do seguinte modo: como construir o grafo da figura 5 sem levantar o lápis do papel nem passar mais que uma vez o lápis pelo mesmo risco? Este problema não é possível e pode ser explicado através da Teoria dos Grafos como se pode ver na página 4 ou em Silva (199). As técnicas da Teoria dos Grafos cedo se mostraram úteis para além do planeamento de travessias no rio Pregel. Os químicos descobriram uma correspondência natural entre grafos e diagramas de moléculas, os átomos são vértices e as ligações entre átomos arestas. O físico alemão Kirchoff analisou circuitos eléctricos em termos de grafos, em que os fios eram arestas e os terminais vértices. As ruas de Ponta Delgada podem ser representadas por um grafo e podemos construir vários problemas com base nesse grafo de ruas. Por exemplo, podemos querer prever o fluxo de automóveis nas ruas do centro da cidade, dar informações para roteiros turísticos sobre o caminho mais curto entre dois pontos de interesse e planear uma volta pela cidade sem repetir ruas ou até mesmo cruzamentos. São problemas como estes que são chamados problemas de Optimização Combinatória, pois podemos fazer várias combinações de arcos ou arestas com vista a obter um grande número de soluções podendo eventualmente uma delas ser óptima. 3

28 Um problema de optimização combinatória procura encontrar uma solução que minimiza (ou maximiza) uma função objectivo num conjunto não infinito de soluções factíveis. Esta procura é feita muitas vezes segundo um determinado processo a que se chama algoritmo. Desenvolver um algoritmo óptimo muitas vezes não é tarefa fácil e por isso mesmo muitas vezes basta a utilização de heurísticas de resolução. Segundo Müller (1997) heurísticas são critérios ou métodos computacionais para decidir o caminho mais eficiente entre várias alternativas de acção, procurando optimizar um determinado objectivo, porém nem sempre permitem encontrar o melhor caminho entre todas as alternativas possíveis. Dado o exemplo das ruas de Ponta Delgada, podemos tentar encontrar o caminho mais curto entre dois pontos dados, como podemos tentar encontrar o terceiro caminho mais curto ou o caminho mais curto mas que passe pelas portas da cidade. Vamos então apresentar alguns exemplos de problemas de optimização combinatória em grafos, bem como alguns algoritmos de resolução..1. Problemas dos Circuitos e ciclos de Euler Em 1736 Leonard Euler chegou à conclusão que o passeio proposto segundo as pontes da cidade de Königsberg não era possível. Suponhamos que existia um percurso através das pontes de Königsberg nas condições procuradas. Esse percurso começaria numa certa região da cidade e acabaria numa outra região eventualmente a mesma. Com possível excepção dessas duas regiões sempre que se entrasse por uma ponte numa das outras regiões (pelo menos duas) ter-se-ia que sair por outra ponte, implicando que essas regiões (pelo menos duas) seriam extremidade de um número par de pontes. Ora, como se vê na figura 5, qualquer das quatro regiões da cidade é extremidade de um número ímpar de pontes, sendo pois impossível arranjar um percurso nas condições pedidas. Um grafo orientado diz-se euleriano se tiver um circuito de Euler, i.e., um circuito que contenha todos os seus arcos uma e só uma vez. De acordo com o teorema de Euler, um grafo orientado admite um circuito de Euler se e só se for fortemente conexo e qualquer nó tem grau interior igual ao grau exterior. Um grafo não orientado diz-se euleriano se há um ciclo que contenha todas as suas arestas uma e só uma vez (ciclo euleriano). De acordo com o teorema de Euler, um grafo não orientado admite um ciclo de Euler se e só se for conexo e não tiver vértices de grau ímpar. 4

29 Veja-se, na figura 6, um circuito euleriano porque admite o circuito A, B, C e D e um ciclo euleriano porque admite o ciclo E, F, G e H (ou ao contrário). 1 A 5 E 6 D B H F 4 C 3 8 G 7 Figura 6 Exemplo de um circuito euleriano e de um ciclo euleriano Como exemplo para um problema de circuitos de Euler, vamos ter em conta a recolha de lixo na cidade de Ponta Delgada, para isso temos de ter em atenção o sentido indicado pelo trânsito. Considere-se que a figura seguinte representa uma zona da cidade onde uma equipa terá de fazer recolha de lixo em todos os arruamentos existentes, passando só uma vez em cada um dos arruamentos. Em cada um dos arruamentos está indicada a distância (centenas de metros) entre os nós extremos. A recolha de lixo é um exemplo do problema do carteiro chinês que consiste em passar por todos os arruamentos o menor número de vezes possível chegando ao mesmo sítio de partida percorrendo uma distância mínima. Admitindo que se pretende que o percurso de limpeza comece e termine em A qual é o circuito óptimo? 10 A 8 10 B E D 1 C Figura 7 Grafo de distâncias dos arruamentos da cidade O circuito óptimo será um circuito de Euler, em que se percorrerão todos os arruamentos uma única vez. Se existir, a distância total óptima será de 8 centenas de metros, que é o somatório de todas as distâncias associadas a cada um dos arcos do grafo. Será que este grafo 5

30 é euleriano? Porque o grafo é conexo e todos os nós têm o grau interior igual ao grau exterior, de acordo com o teorema de Euler o grafo é euleriano. Para estabelecer um circuito de Euler, que sabemos existir, fazemos o seguinte: 1º Passo Registar em coluna, para cada nó, os seus sucessores. A B C D E E A D B B C E D Figura 8 Exemplo do primeiro quadro º Passo Organizar um segundo quadro para registar, sucessivamente, os arcos do circuito (início em A por exemplo); 3º Passo Escolher sucessivamente sucessores do último vértice atingido, impedindo circuitos parasitas 1. Seleccionar o arco AE; eliminar E no 1º quadro e registar no º quadro; último nó é E; Seleccionar o arco EB; eliminar B no 1º quadro e registar no º quadro; último nó é B; Seleccionar o arco BA; eliminar A no 1º quadro e registar no º quadro; último nó é A; A B C D E E A D B B C E D Ordem 1º º 3º 4º 5º 6º 7º 8º Fecho Vértice A E B A Figura 9 Exemplo da existência de um circuito parasita O nó A não tem sucessores; estabeleceu-se prematuramente o circuito parasita A, E, B, A. O nó A é deslocado para a última casa livre do º quadro. O último nó do circuito é agora B. Seleccionar o arco BC; eliminar C no 1º quadro e registar no º quadro; último nó é C; Seleccionar o arco CD; eliminar D no 1º quadro e registar no º quadro; último nó é D; 1 Quando um nó extremo de um circuito fica sem sucessores temos um circuito parasita. 6

31 Seleccionar o arco DB; eliminar B no 1º quadro e registar no º quadro; último nó é B; O nó B não tem sucessores pelo que se estabeleceu mais um circuito parasita por isso o nó B será deslocado para a última casa livre no º quadro. O último nó do circuito é agora D; Seleccionar o arco DE; eliminar E no 1º quadro e registar no º quadro; último nó é E; Seleccionar o arco ED; eliminar D no 1º quadro e registar no º quadro; último nó é D; A B C D E E A D B B C E D Ordem 1º º 3º 4º 5º 6º 7º 8º Fecho Vértice A E B C D E D B A Figura 30 Quadro final Todos os arcos foram seleccionados. Neste último quadro tem-se o circuito de Euler com início e fim no vértice A. No caso de querermos um ciclo de Euler o método anterior também serve pois basta tornar o grafo em orientado e que satisfaça as condições necessárias à existência de um circuito de Euler. Podemos encontrar diversa informação sobre circuitos e ciclos de Euler em Caldwell (1995) e Morais da Silva (001).. Problemas de colorações Um problema de coloração consiste na ideia de que dado um grafo sem lacetes determinar o menor número de cores necessário para colorir todos os vértices (respectivamente arestas) em que dois vértices (respectivamente arestas) adjacentes não possam ter a mesma cor, este número é chamado número (respectivamente índice) cromático. Este problema está na origem de um dos mais famosos teoremas da Matemática, o teorema das 4 cores. Teorema das 4 cores O número máximo de cores necessário para colorir os vértices de qualquer grafo planar, de modo a que vértices adjacentes tenham cores diferentes, é 4. 7

32 Podemos encontrar mais informações sobre a história deste teorema e sobre algoritmos de colorações em Toft (000), Trick (1994), Thomas et al (1995), Felsner (199), Harary (1969) e Silva (199). Considere-se, como exemplo, o seguinte problema: Um aluno da U.A. necessita de frequentar as cadeiras A, B e C. Quantos momentos diferentes necessitam de ser reservados no horário para que o aluno possa estar presente às aulas das referidas cadeiras? Dada a simplicidade da questão é fácil concluir serem necessários 3 momentos distintos. A mesma conclusão pode obter-se recorrendo a um grafo não orientado em que os vértices representam as cadeiras e as arestas ligam cadeiras que não podem ter lugar em simultâneo. Vamos considerar o grafo da figura 31. C A B Figura 31 Grafo representativo das disciplinas Organizado o grafo, o objectivo é minimizar o número de cores necessárias para colorir todos os vértices para que, vértices adjacentes, não tenham a mesma cor. C A B Figura 3 Grafo colorido Considere-se a relação dos exames requeridos, na mesma época, por alunos do Departamento de Matemática da U.A.. 8

33 Tabela Relação de exames Aluno Cadeiras 1 A,B A,D 3 D,E,F 4 B,C 5 A,C 6 B,E 7 C,F 8 E,G Admitindo que um aluno só pode executar, no máximo, um exame por dia, qual é o menor número de dias necessário para executar todos os exames? O grafo com a coloração óptima dos vértices para este problema é o seguinte: D A B E C G F Figura 33 Grafo de exames colorido O número cromático é 3. São necessários, no mínimo, 3 dias para realizar os subconjuntos de exames {A, E}, {C, D} e {B, F, G}. Existem vários métodos para calcular o número cromático de um grafo. A heurística a seguir apresentada baseia-se no nível de saturação e grau de cada vértice. A primeira cor é atribuída ao vértice de maior grau e a análise de cada um dos vértices restantes é efectuada por ordem decrescente do respectivo grau de saturação. Veja-se a aplicação do método ao grafo anterior em que a matriz de adjacências é a seguinte. Número de cores distintas nos vértices adjacentes. 9

34 A B C D E F G A B C D E F G Figura 34 Matriz de adjacência da representação sagital da figura 33 1º Passo: Ordenar os vértices por ordem decrescente de grau; E 4 A 3 B 3 C 3 D 3 F 3 G 1 º Passo: Atribuir cor ao 1º vértice: exame E com cor 1 (preto na figura 33); 3º Passo: Ordenar os vértices não coloridos por ordem decrescente do grau de saturação. Os vértices B,D,F e G têm grau de saturação 1 pois são adjacentes de E que já tem cor. Como os três primeiros são do mesmo grau a sua ordenação é arbitrária ficando G a seguir a eles. Os restantes vértices têm grau de saturação nulo ficando ordenados de forma arbitrária: Vector B D F G A C ordenado: 4º Passo: Atribuir cor a B (1º vértice do vector ordenado). É adjacente de E com cor 1, pelo que recebe cor (azul na figura 33); A partir de agora repetem-se os passos 3 e 4 até ter colorido todos os vértices. Em síntese os passos são os apresentados em seguida: Vector ordenado Cor atribuída A C D F G C D F G F D G Colorir A com cor 1 (adjacente da cor ) Colorir C com cor 3 (adjacente das cores 1 e ) Colorir F com cor (adjacente das cores 1 e 3) D G G Colorir D com cor 3 (adjacente das cores 1 e ) Colorir G com cor (adjacente da cor 1) 30

35 Pelo que o número cromático é 3. Os exames necessitam de 3 dias para serem realizados e, por exemplo, podem ser assim distribuídos: 1º dia º dia 3º dia A e E B, F e G C e D Um outro método descrito em Gondran e Minoux (1979), também utiliza o grau de cada vértice mas em vez de colorir vértices um a um com cores diferentes, esta heurística vai colorir subconjuntos de vértices. Vamos definir primeiro alguns parâmetros que vamos utilizar. Seja G = (V,A) um grafo com #V = n; k o número de cores a utilizar; d x o grau do vértice x; V x o conjunto dos vértices adjacentes ao vértice x; j ( i) = x, com i = 1,K, n posição do vértice x num conjunto ordenado e j(i) o vértice que está na posição i. 1º Passo: Calcular d = # V ; k =1; x x º Passo: Ordenar V por ordem decrescente do grau dos vértices (V é conjunto dos vértices que estão por colorir); Fazer S = V 3º Passo: Determinar r = min i ; l = j(r) ; V = V l ; n = n 1; f ( l) = k ; j( i) S Para cada x V l fazer ( V x = V l ; d d 1; S = S x ); x x = x S = S l ; se S repetir o 3º Passo caso contrário ir para o 4º Passo; 4º Passo: Se n = 0 termina-se, caso contrário, k = k + 1 e voltar ao º Passo. No fim deste método f (x) dá o número da cor a utilizar no vértice x. Vejamos uma aplicação desta heurística no grafo de exames da tabela. Assim temos: 1º V = { A, B, C, D, E, F, G}, n = 7, d 3, d = 3, d = 3, d = 3, d = 4, d = 3, d = 1, k=1; º S = { E, A, B, C, D, F, G}; A = B C D E F G 3º r = min i = 1, j( i) S l = j( 1) = E, V = { A, B, C, D, F, G}, n = 6, f ( E) = 1, V E = { B, D, F, G}, 31

36 Vértice x V x d x B {A, C} {E, A, C, D, F, G} D {A, F} {E, A, C, F, G} F {C, D} {E, A, C, G} G 0 {E, A, C} S = S E = { A, C}, como S {} repito o 3º passo vindo S r = min i = 1, j( i) S l = j( 1) = A, V = { B, C, D, F, G}, n = 5, f ( A) = 1, V A = { B, C, D} Vértice x V x d x B {C} 1 {A, C} C {B} 1 {A} D 0 {A} S S = S A = ; Neste momento já tenho A e E com cor 1 e não há hipótese de mais vértices com a cor 1, pelo que vou procurar vértices para a cor. 4º K= e volto a repetir o procedimento do º passo até que n = 0. No fim deste processo vou obter igualmente o grafo da figura Desenho de Grafos A própria representação sagital de grafos é um problema de optimização dado que perante um determinado grafo podemos querer saber se é possível desenhar o mesmo grafo sem haver cruzamento de arestas, ou no menor espaço possível de forma que continue legível, etc. O próprio tempo de construção de um grafo é um problema sempre em aberto e alvo de muitos desafios pois se um programa é capaz de construir um grafo com um milhão de vértices e cinco milhões de arestas em trinta segundos, é lançado de imediato o desafio de encontrar um novo algoritmo capaz de aumentar o número de vértices e arestas e diminuir o tempo de execução. Existem diferentes tipos de heurísticas que permitem melhorar a representação sagital de grafos como nos diz Bridgeman et al. (1999) e Six et al. (000). 3

37 Por exemplo, podemos desejar minimizar o número de cruzamentos de arcos num grafo, para esse efeito podemos utilizar o algoritmo de Demucron. Em primeiro lugar precisamos da matriz de adjacência do grafo, depois fazemos o seguinte: 1º - Calcular o grau de cada vértice na matriz de adjacência e eliminar a coluna e a linha do vértice origem que constituirá o nível 0 da representação do grafo; º - Recalcular o grau dos vértices em que se verificar variação de grau com a eliminação efectuada no 1º passo; 3º - De entre os vértices com variação, seleccionar os com menor grau recalculado, constituindo este o nível seguinte da representação; 4º - Eliminar a linha e a coluna dos vértices seleccionados no ponto anterior e voltar ao º passo. Vejamos a aplicação deste método no grafo da figura 47. A B C D E F G A 1 1 B C D E F G Figura 47 Matriz de adjacência O desenvolvimento do algoritmo é o apresentado na figura 48: A B C D E F G A A B C D E F G A B,C A B C D E F G A B,C E A 1 1 A 1 1 A 1 1 B B B C C C D D = D = = E E = E = 1 F F = F = G G = G = A B C D E F G A B,C E D A B C D E F G A B,C E D G, F A 1 1 A 1 1 B B C C D = = D = = E = 1 E = 1 F = = F = = 1 G = = G = = 1 Figura 48 Aplicação do algoritmo de Demucron 33

38 Pelo que no nível 0 temos o nó A, no nível 1 os nós B e C, no nível o nó E, no nível 3 o nó D e no nível 5 os nós G e F. Ordenando os nós da melhor forma é possível obter a representação sagital da figura 49. B G A E D C F Figura 49 Grafo resultado.3. Árvore geradora mínima ou árvore de ligações mínimas Problemas deste tipo são muito usados na construção de redes de comunicações, como é o caso da instalação de uma rede telefónica com o intuito de minimizar os metros de fio utilizados. Um problema do tipo árvore geradora mínima pode ser visto como um sistema de rega num jardim da cidade de Ponta Delgada. A Câmara Municipal pretende, a partir de um sistema de captação de água montar um sistema de rega do jardim com aspersão em locais predefinidos. A resolução deste tipo de problemas requer um grafo rotulado em arestas, vejamos o exemplo da figura 35, em que as arestas representam as condutas entre os diferentes pontos da rede e o peso de cada aresta os custos da instalação (possível) de condutas. Que condutas devem ser instaladas minimizando o custo total da instalação? A B C D E A B C D E Figura 35 Matriz de adjacência de um grafo hipotético A solução do problema é a Árvore Geradora Mínima do último grafo da figura 36. Existem diferentes métodos de resolução para estes problemas, tais como o método gráfico, o de Kruscal e o de Prim. 34

39 O algoritmo óptimo de Kruskal consiste em analisar as arestas por ordem crescente de peso e aceitar as que não fecham ciclos. Para o exemplo da figura 35 podemos ver a evolução do algoritmo de Kruskal na figura 36. A C D E A C D E A C D E A C D E A C D E B B B B B Figura 36 Evolução do algoritmo de Kruskal Somando os pesos das arestas escolhidas, temos a soma dos pesos total =1, valor este que é óptimo. Quanto ao método gráfico é uma heurística que consiste no seguinte, tendo em conta o grafo da figura 35: 1º Seleccionar a aresta de menor peso que é AB; º Seleccionar a aresta de menor peso que ligue a A ou a B. Não seleccionar uma aresta que estabeleça ciclo(s). A aresta a seleccionar é BC (ou BD pois temos empate nos pesos); 3º Seleccionar a aresta de menor peso que ligue a A, B ou C. Não seleccionar uma aresta que estabeleça ciclo(s). A aresta a seleccionar é CD; 4º Seleccionar a aresta de menor custo que ligue a A, B, C ou D. Não seleccionar uma aresta que estabeleça ciclo(s). A aresta a seleccionar é BE. Na figura 37 temos a Árvore Geradora Mínima igualmente com l = 1. C D A E B Figura 37 Árvore geradora mínima 35

40 Outro método de resolução é o algoritmo de Prim que utiliza a matriz de adjacência do grafo. Novamente, tendo em conta a figura 35, como o grafo é não orientado a matriz é simétrica sendo por isso suficiente a metade inferior ou superior para aplicar o método de Prim. A sequência dos passos é a mesma do método gráfico, assim: 1º Seleccionar a aresta de menor peso AB; (para ligar outra aresta a A ou B, a mesma tem que ter extremos em A ou B ; estes extremos podem ser visualizados cortando com rectas as linhas e colunas de A e B. As intersecções das rectas indicam as arestas que fecham ciclo(s). Deste modo a escolha seguinte fica facilitada pois será feita sobre as rectas e evitando as intersecções destas; º Seleccionar, nas rectas traçadas, a aresta de menor peso que ligue a A ou B. Nas rectas traçadas o menor peso é 3. Sendo assim posso escolher BC ou BD. Assinalar a escolha que foi BC e cortar com as rectas a linha e coluna de C; A B C D E A B C D E 7 A B C D E A B 1 C 6 3 D 6 3 E º Seleccionar, nas rectas traçadas, a aresta de menor peso (que ligue a A, B ou C). Nas rectas traçadas o menor peso é, com a aresta CD. Assinalar a escolha e cortar com rectas a linha e coluna de D; A B C D E A B 1 C 6 3 D 6 3 E Figura 38 Aplicação da heurística de Prim 36

41 4º Seleccionar, nas rectas traçadas, a aresta de menor peso (que ligue a A, B, C ou D). Nas rectas traçadas o menor peso é 6 que corresponde a BE (note-se que AC, AD e BD originavam ciclos). Assinalar a escolha e cortar com as rectas a linha e a coluna de E. A B C D E A B 1 C 6 3 D 6 3 E Figura 39 - Aplicação algoritmo de Prim Na matriz as arestas não escolhidas estão em intersecções de rectas pelo que se seleccionadas formam ciclo(s), estão seleccionadas quatro arestas, igual ao número de vértices menos um, a Árvore Geradora Mínima está calculada constituída pelo conjunto de arestas AB, BC, CD e BE com l = 1 sendo a mesma já apresentada na figura 37. Como subproblema das árvores mínimas podemos querer a árvore geradora máxima, podemos aplicar todos os métodos utilizados em árvores mínimas bastando para isso considerar o simétrico dos pesos correspondentes ou então alterar os algoritmos trocando mínimo por máximo e ordenação dos pesos decrescente por ordenação dos pesos crescente. Como observação podemos afirmar que, como uma árvore não tem ciclos, são suficientes duas cores caso se pretenda colorir os seus vértices. O mesmo não se pode dizer para a coloração de arestas que necessita no máximo de um número igual ao maior grau de entre todos os vértices. Para encontrar outros métodos consulte Moret e Shapiro (1991), Karger et al. (1994), Eppstein (001), Pradenas (001) e Drakos (1998)..4. Caminho mais curto Recorrendo ao exemplo das ruas do Ponta Delgada, um problema de caminho mais curto consiste em, dado um ponto de partida, encontrar um caminho mínimo até um ponto de destino. Podemos ter um grafo orientado ou não e, mais uma vez, ao tentar minimizar um caminho temos de ter um grafo rotulado com um peso. Este problema pode parecer idêntico ao das árvores geradoras mínimas mas, um problema de caminho mais curto não obriga a passagem por todos os vértices. Também é possível fazer com que um caminho não passe por 37

42 determinadas arestas bastando para tal atribuir um peso muito elevado a essas arestas. Poderse-ia pensar como métodos de resolução nos mesmos métodos da árvore geradora mínima mas depressa se chega à conclusão que os resultados não são satisfatórios. Certo é que existem diversos algoritmos para obter uma solução óptima deste tipo de problema, tais como os criados por Dijkstra, Floyd, Ford, Faure, Bellman, Hasse entre outros, envolvendo maior ou menor complexidade de cálculo. O algoritmo de Dijkstra requer uma matriz de adjacência, com pesos não negativos, de um grafo. Vamos considerar como pesos as distâncias entre nós adjacentes. Segundo Moura da Silva (1995) o algoritmo de Dijkstra consiste em, partindo do nó origem, ir em cada iteração determinando o nó que está a menor distância do nó origem (que passará a ser o nó original) até se alcançar o nó destino. Por outras palavras, as distâncias dos nós originais ao nó origem formarão uma sucessão não decrescente uma vez que em cada iteração a distância ao nó origem é superior ou igual à obtida na iteração anterior. Quando um nó passa a ser um nó original, todas as ligações directas 3 que o têm como destino deixam de ter utilidade e são eliminadas. Passemos, agora, à descrição pormenorizada deste algoritmo, utilizando a matriz da figura 35, vamos determinar o caminho mais curto entre A e E. Como forma de ordenar os cálculos vamos utilizar a tabela da figura 40. O\D A B C D E A * B 1 * Dist. Origem Min. Dist. C 6 3 * 7 D 6 3 * 7 E * Figura 40 - Tabela utilizada no Algoritmo Dijkstra 1ª iteração Dado que o nó A é o nó origem, será por definição o primeiro nó original, pelo que se podem, desde logo, eliminar todas as ligações que o têm por destino, inscrevendo na coluna de distâncias a A um zero; 3 Diz-se que existe uma ligação directa entre X e Y se o nó X for adjacente ao nó Y. 38

43 ª iteração A partir do nó A, determina-se qual será o novo nó original seguinte, que, como se pode verificar na matriz, é o nó B a uma distância de 1, marcando-se com um circulo a posição correspondente ao arco que estabeleceu esta ligação. Se o nó B passou a ser nó original, eliminam-se todas as ligações que o têm como destino e inscreve-se na coluna das distâncias a A o valor 1. 3ª iteração A partir dos nós originais A e B, vão-se determinar as mínimas distâncias a A. Origem Destino Distância A C e D 0+6=6 B C e D 1+3=4 Como se pretende o menor valor, o novo nó original será C (também podia ser escolhido D), eliminando-se todas as ligações com destino a C, marcando com um circulo o arco que estabeleceu a ligação BC, inscrevendo-se na coluna das distâncias a A o valor 4. Este processo iterativo vai-se repetindo até se atingir o nó E, destino final do caminho mais curto a determinar. 4ª iteração A partir dos nós originais A, B e C determinar as mínimas distâncias a A. Origem Destino Distância A D 0+6=6 B D 1+3=4 C D 4+=6 pelo que o novo nó original será o nó D a uma distância de 4 de A, valor que se inscreve na coluna respectiva, marcando o arco BD e eliminando-se as ligações com destino D. 5ª iteração A partir dos nós originais A, B, C e D determinar as mínimas distância a A. Origem Destino Distância A E 0+10=10 B E 1+6=7 C E 4+7=11 D E 4+7=11 pelo que o novo nó original será o nó E a uma distância de 7 de A, valor que se inscreve na respectiva coluna, marcando o arco BE e como se chegou ao nó destino vamos então ver qual é o caminho mais curto desde A até E. O conjunto dos arcos que fazem parte do caminho mais curto vai ser reconstituído do fim para o princípio utilizando o quadro final. Entrando na coluna do nó E (destino) procura-se o 39

44 circulo que representa o arco utilizado para chegar a este nó e verifica-se que esse arco tem origem em B (linha onde está o circulo). Passando para a coluna do nó B, constata-se que se chegou até ele a partir do nó A, que é o nó origem. Conclui-se, portanto, que o caminho mais curto desde o nó A até ao nó E passa pelos nós A, B e E com uma distância de 7 conforme se verifica no último quadro na coluna das distâncias a A, como se pode ver na figura 41. Figura 41 - Tabela final De notar, que ao determinar o caminho mais curto de A a E, obtiveram-se, também, as mínimas distâncias de A a todos os nós originais. Por exemplo de A a D a mínima distância é 4 e o caminho constituído pelo conjunto de nós A, B e D. O conjunto destas mínimas distâncias é chamado árvore de distâncias mínimas gerada por A. O grafo do caminho mais curto entre A e E é o seguinte: A 1 B 6 E Figura 4 Grafo do caminho mais curto de A até E Outro método de resolução é o Algoritmo de Floyd que apesar de ser mais complexo é de difusão total, ou seja, quando aplicado permite obter o caminho mais curto entre qualquer par de vértices do grafo. No entanto a aplicação do método supõe que no grafo não existam circuitos com peso total negativo e sempre que não seja possível estabelecer uma ligação entre dois vértices considera-se a distância + por se tratar de minimização, este método, também utiliza uma matriz de adjacência com pesos. O processo é o seguinte: 40

45 1º passo Percorrer a matriz, por colunas, elemento a elemento e somar cada elemento (operador) aos elementos da linha com índice j (índice igual ao da coluna do operador); a linha de valores obtida compara-se com a linha do operador sendo os valores desta linha substituídos se são superiores aos calculados, ou seja, se existe uma melhoria; º passo Quando se efectuam substituições, ao novo valor de distância agrega-se o índice da coluna do operador (vértice intermédio) para posteriormente reconstituir o caminho, 3º passo Quando o operador não é finito ou i = j é desnecessário proceder como referido c ij no º passo. Vamos considerar o grafo da figura 43 e respectiva matriz de distâncias (km) para calcular a Matriz de Distâncias Mínimas. c ij Y W X Z X Y Z W X 5 14 Y 7 3 Z 3 4 W 8 Figura 43 Grafo e matriz de distâncias em km Retomando o grafo proposto e respectiva matriz de distâncias, vejamos como executar os passos. 41

46 Tabela 3 Execução dos passos para a coluna de X Operador Tarefa c XX = 0 Diagonal Principal (i=j) desnecessário Desnecessário; através de X não é possível c YX = melhorar a distância de Y aos restantes vértices. c ZX c WX = 3 = Somar à linha de X obtendo: Comparar com a linha corrente do operador (linha Z) Melhoria para ZW=17 Km passando por X Registar em ZW 17x Desnecessário; por X não é possível melhorar a distância de W aos restantes vértices. Após percorrida a 1ª coluna (vértice X como ponto intermédio), a matriz de distâncias apresenta os seguintes valores: X Y Z W X 5 14 Y 7 3 Z x W 8 Figura 44 Matriz de distâncias De momento, o caminho mais favorável de Z para W é no total de 17 km. Terminada a procura de melhores caminhos entre cada par de vértices usando X como ponto de intermédio, passa-se à coluna seguinte em que o ponto intermédio será o vértice Y seguido de Z e W, em que a matriz final está exemplificada na figura 45. X Y Z W X 9 Z 5 1 Z Y 10 Z 7 3 Z Y W 18 Z 8 15 Y Z X W Figura 45 Matriz de distâncias mínimas final Existem outras formas e métodos de resolução deste tipo de problemas como podemos ver em Morais da Silva (001), Drakos (1998) e Foster (1995). 4

47 .5. Caixeiro viajante O problema do caixeiro viajante (travelling salesman probleman) é um dos mais notórios problemas de optimização. O problema pode ser descrito do seguinte modo: um vendedor parte de sua casa de manhã e tem um conjunto de localidades por onde tem de passar durante o dia, regressando a casa no final do dia. Por exemplo, ele mora em Ponta Delgada e tem de visitar Ribeira Grande, Nordeste, Lagoa, Vila Franca, Povoação e regressar a Ponta Delgada minimizando a distância percorrida. Um problema do caixeiro viajante (PCV) pode ser formulado tanto como um problema de caminho mais curto, como um problema de árvore de ligações mínimas ou ambos, uma vez que envolve as duas formulações em simultâneo. Considere-se um grafo, em que os vértices representam os referidos concelhos e as arestas representam as estradas de ligação, a cada aresta está associado um peso, por exemplo a distância entre concelhos. Este problema implica calcular no grafo um ciclo de Hamilton de encargo total mínimo. O tempo necessário para a resolução deste problema cresce exponencialmente com o número de vértices do grafo. Só o método de enumeração, ou seja, identificação de todos os ciclos possíveis, garante o cálculo da solução óptima do problema mas tal método é impraticável quando o número de vértices é elevado. Veja-se que se um computador for capaz de tratar cerca de ciclos por segundo, necessitará aproximadamente de 18 segundos para calcular o óptimo num grafo completo com 10 vértices, 50 dias para um grafo completo com 15 vértices, anos para um grafo completo com 16 vértices e anos para um grafo completo com 0 vértices. É a imensidão destes tempos que tornou este problema um dos mais famosos e não resolvidos problemas matemáticos. Sendo assim são utilizadas heurísticas de resolução, a vantagem no uso de heurísticas está no facto de que elas aumentam a eficiência do processo de busca retornando uma solução boa, que muitas vezes é a óptima ou próximo do óptimo, em detrimento da exploração de todas as alternativas. Uma motivação para o seu uso é que a solução óptima do problema raramente é requerida e as heurísticas raramente apresentam desempenho de pior caso 4. 4 Pior desempenho possível para uma dada instância. 43

48 Existem diversos métodos heurísticos de resolução como por exemplo o método do vértice adjacente mais próximo. É uma das mais simples heurísticas para resolução do PCV. É uma heurística míope 5 que tenta construir um ciclo hamiltoniano baseado na conexão dos nós vizinhos mais próximos. É um método aproximado que é aplicado do seguinte modo: 1º- Selecciona-se arbitrariamente um vértice v i para início do ciclo; º- Selecciona-se dos vértices ainda não seleccionados o vértice que está à menor distância de v, ficando a cadeia v, v. Repete-se este procedimento para o último vértice i agregado até esgotar todos os vértices do grafo. i k Veja-se a sua aplicação no grafo orientado com a matriz de distâncias da figura 46. v k Vértice inicial: A; km A B C D E A * B * C * D * 8 E * Figura 46 - Matriz distâncias em km Vértice, não seleccionado, mais próximo de A: C (1 km); Vértice, não seleccionado, mais próximo de C: E (16 km); Vértice, não seleccionado, mais próximo de E: B (1 km); Vértice, não seleccionado, mais próximo de B: D (0 km); Vértice, não seleccionado, mais próximo de D: A (14 km) Assim o circuito quase óptimo 6 é A, C, E, B, D, A com uma distância total de 74 km, para este problema a solução óptima tem uma distância de 66 km. 5 Uma das técnicas de construção de heurísticas mais explorada é tentar obter uma boa solução, considerando a cada iteração a melhor decisão de um passo à frente, ou seja, utilizando um critério de optimização meramente local. Por esta razão, as heurísticas deste tipo são chamadas míopes ou gulosas (greedy). 6 Diz-se circuito quase óptimo por não resultar de um método exacto. 44

49 Outro método heurístico de resolução é o método da inserção com menor encargo. É mais um método aproximado que é aplicado do seguinte modo: Selecciona-se o subciclo i, j, i associado a Min c ij + c }, em caso de empate a escolha é feita ao acaso; { ji No subciclo corrente, calcular para cada ligação do tipo (u,v) a inserção do vértice k (não seleccionado anteriormente) a que corresponda o aumento mínimo de distância dado por Min c + c c }. Repetir este procedimento até ter { uk kv uv seleccionado todos os vértices do grafo. Vejamos agora um exemplo de aplicação deste método no grafo orientado com a matriz de distâncias da figura 46. A ABA=6 ACA=30 ADA=3 AEA=4 B BCB=38 BDB=38 BEB=3 Escolha do subciclo inicial C CDC=38 CEC=8 D DED=0* O subciclo a estudar é DED com a distância total de 0 km e as inserções possíveis são no par D, E ou no par E, D. Num segundo passo, tendo em conta a regra Min c + c c } sai { uk kv uv que o menor encargo de inserção resulta da escolha do vértice A para inserir no par E, D ficando o subciclo DEAD com distância total de 34 km. Assim o subciclo DEAD é o novo a ser estudado vindo como resultado da aplicação desta heurística o circuito quase óptimo : DCEBAD com distância total 66 km. O método do vértice adjacente mais próximo e o método da inserção com menor encargo são heurísticas de construção pois constroem uma solução passo a passo, onde para cada passo se adicionam componentes individuais até encontrar uma solução aceitável. Nem sempre as heurísticas de construção são satisfatórias se aplicadas em determinados problemas que requerem uma precisão maior na qualidade da solução obtida. Neste caso, pode-se partir de uma solução encontrada por uma heurística de construção boa e optimizar o seu custo usando uma heurística de melhoramento como, por exemplo, a heurística k-opt. Esta heurística assenta no seguinte, inicia-se com uma solução factível gerada por uma heurística de construção e excluem-se k arcos, produzindo k segmentos disjuntos. Então o algoritmo k- opt reconecta os k segmentos de todas as formas possíveis tentando encontrar circuitos mais curtos. Se houver melhoria, executa-se o procedimento sobre a solução melhorada, caso contrário termina-se. As heurísticas mais utilizadas são a -opt e a 3-opt. 45

50 Existem muitos outros métodos heurísticos que podem ser consultados em Marreiros e Ruchkys (000), Cervieri e Py (000), Moscato (1998), Drakos (1998), Morais da Silva (001), Bang-Jensen et al. (1998)..7. Problema de fluxo máximo numa rede de capacidades limitadas. Um problema de fluxo máximo consiste no seguinte, imagine que se quer construir uma rede de condutas de gaz. Cada conduta tem uma capacidade de fluxo que depende essencialmente do seu diâmetro. Qual deve ser o diâmetro das condutas de forma a maximizar o fluxo de gás na rede? Na prática surgem situações que podem ser representadas por um grafo orientado associando um peso a cada um dos arcos, ou seja, uma dada capacidade que limita a quantidade de fluxo que nele pode transitar. Assim, pretende-se calcular o fluxo máximo que a rede suporta desde um ponto inicial Entrada da rede, até atingir um ponto final Saída da rede. O grafo da figura 50 representa um sistema viário, de uma zona urbana, entre o largo L e a praça P. Os arcos representam o sentido obrigatório do trânsito, indicando-se para cada um deles a capacidade máxima de tráfego em viaturas/hora. Quantas viaturas/hora podem, no máximo, atingir a praça P? L B 30 A C 0 E D F P Figura 50- Sistema viário 46

51 Como pode ser visto em Morais da Silva (001), este problema pode ser resolvido usando um modelo de programação linear. Para formalizar o problema é necessário atender aos pressupostos seguintes: O grafo tem nós Inicial e Final únicos e distintos (Entrada e Saída da rede); O grafo é orientado tendo cada um dos arcos uma dada capacidade c ij finita; O fluxo que percorre a rede satisfaz as condições seguintes Não se altera com o tempo; É infinitamente divisível em cada arco (i,j), tendo valor xij tal que 0 x c ; ij ij Nos nós intermédios (distintos dos nós de Entrada e Saída da rede) verifica-se o princípio da conservação do fluxo, ou seja, o fluxo recebido em qualquer destes nós é igual ao fluxo saído do mesmo. Vejamos então o modelo de Programação Linear. Variáveis de Decisão: uma por cada arco (i,j) representando o fluxo (viaturas/hora) que nele transita; Função Objectivo: fluxo máximo em P (número máximo de viaturas que atinge P) que é igual à soma dos fluxos nos arcos incidentes para o interior de P: Max f(p)= x + x + x DP EP FP Atendendo a que o fluxo em P tem que ser igual ao fluxo saído de L, a função também pode ser definida por Max f(l)= x + x + x LA LB LC Restrições Técnicas: Tendo o grafo N nós há N- nós intermédios e consequentemente N- restrições de conservação de fluxo (serão expressas na forma geral fluxo que sai = fluxo que entra, ou seja, fluxo que sai fluxo que entra = 0) vértice A: x x x = 0 ; vértice C: x x x = 0 ; AD + AE LA BD + xbe + xbf xlb CE + CF LC vértice B: x = 0 ; vértice D: x DP x AD + xbd = 0 ; vértice E: x x x x = 0 ; vértice F: x x x = 0 EP AE BE CE Dado que cada uma das Variáveis de Decisão associada a cada um dos arcos do grafo, tem limite superior igual à capacidade do arco têm-se as restrições de capacidade: FP BF CF 47

52 x x LA BF 70; x 60; x LB CE 80; x 30; x LC CF 60; x 0; x AD DP 30; x 70; x AE EP 40; x 70; x BD FP 30; x 70; BE 30; Restrições Lógicas de não negatividade: x LA, x, x, x, x, x, x, x, x, x, x, x 0 LB LC AD AE BD BE BF CE DP EP Outro algoritmo utilizado para resolver o problema do fluxo máximo é o método de Ford- Fulkerson que data de 196. Para aplicar o método é necessário que a rede tenha um nó inicial único. Quando tal não sucede, considera-se um nó inicial fictício ligando-o aos nós iniciais da rede por arcos com capacidade igual à oferta dos vértices reais da rede. Na figura 51, dois depósitos de água com capacidades de e litros alimentam uma rede de distribuição. Para dispor de uma entrada única na rede, considera-se o vértice inicial fictício ligado aos depósitos por arcos de capacidade igual à capacidade máxima dos depósitos. FP Fictício Figura 51 - Introdução de nós fictícios Por vezes, pretende-se estudar uma rede sem que existam quaisquer origens com oferta de fluxo à rede. Nesses casos, é necessário considerar uma entrada fictícia na rede ligada aos nós iniciais com arcos de capacidade infinita. Quando estas situações ocorrem no final da rede procede-se de modo idêntico com um nó final fictício. Vejamos algumas noções necessárias à compreensão do problema de fluxo. Se num grafo o arco (i, j) com capacidade cij transporta o fluxo ϕ ij a sua capacidade restante é cij ϕ, ij diz-se que um arco está saturado quando a sua capacidade restante é nula. Para o cálculo do fluxo máximo só interessa analisar trajectórias elementares com extremos inicial e final respectivamente na entrada e saída da rede. Uma trajectória que não repete nós, com fluxo não 48

53 negativo em qualquer dos seus arcos e em que pelo menos um destes está saturado é chamada trajectória elementar saturada. Se no grafo orientado se relaxar o sentido dos arcos e definir-se uma sucessão de arestas sem repetir vértices tem-se uma cadeia elementar. Se ao percorrer as arestas da cadeia for reactivado o sentido dos arcos originais, haverá arcos percorridos no sentido directo e outros no sentido inverso. Uma cadeia diz-se saturada quando se verifica, pelo menos, uma das seguintes situações: pelo menos um arco tem, no sentido directo, capacidade restante nula; pelo menos um arco tem, no sentido inverso, fluxo nulo; Resulta assim que enquanto houver no grafo uma ou mais cadeias elementares não saturadas ligando a entrada e saída da rede é possível reencaminhar fluxo e aumentar o total que atinge a saída da rede. O método de Ford-Fulkerson para o cálculo do fluxo máximo é o seguinte. 1º passo saturar todas as trajectórias elementares que ligam a entrada e a saída da rede; º passo saturar todas as cadeias elementares que ligam a entrada e a saída da rede. Vamos ver a aplicação deste método no exemplo da figura 50. Na tabela 4 apresenta-se o 1º passo. Tabela 4 Saturação dos arcos Trajectória Arco(s) com menor capacidade restante Fluxo saturante Arco(s) saturado(s) L - A - D P (A,D)=30 30 (A,D) L - A - E - P (L,A)=40; (A,E)=40 40 (L,A); (A,E) L - B - D - P (B,D)=30 30 (B,D) L - B - E - P (B,E)=30; (E,P)=30 30 (B,E); (E,P) L - B - F - P (L,B)=0 0 (L,B) L - C - F - P (C,F)=0 0 (C,F) Todas as trajectórias elementares de L a P estão saturadas como se pode ver na figura 5, pelas arestas a vermelho. 49

54 L B 30 A C 30 0 E D F P Figura 5 Grafo com trajectórias elementares saturadas Terminado o 1º passo, de L o fluxo total é =170 acumulando P esse fluxo. º passo Para detectar uma cadeia não saturada de L a P proceda-se do seguinte modo: em P pode atingir-se no sentido directo quer de D quer de F pois DP e FP não estão saturados; em D não pode ser atingido no sentido directo quer de A quer de B pois são arcos saturados; não se põe a hipótese de ser atingido no sentido inverso pois isso conduzia a P já estudado; em F para encaminhar fluxo para P só o pode receber a partir de B no sentido directo pois há capacidade restante em BF pelo que B deve ser analisado; em B só pode ser atingido no sentido inverso a partir de E pois o arco BE tem fluxo pelo que devo estudar E; não se coloca a hipótese de ser atingido no sentido inverso a partir de F pois já se concluiu que só usando BF é possível aumentar o fluxo que atinge F; em E pode atingir-se a partir de C no sentido directo pois CE não está saturado pelo que estudo C; C pode atingir-se a partir de L no sentido directo pois LC não está saturado. Porque é possível partir de L e atingir P pela cadeia elementar não saturada L C E B F P o fluxo em P não é máximo. Percorrendo a cadeia e registando: a capacidade restante nos arcos percorridos no sentido directo (L,C)=40, (C,E)=30, (B,F)=40; (F,P)=30 o fluxo dos arcos percorridos no sentido inverso (B,E)=30 fixa-se o menor deste valores α = 30. Percorre-se agora a cadeia com o fluxo α = 30 : 50

55 somando-o nos arcos percorridos no sentido directo subtraindo-o nos arcos percorridos no sentido inverso O fluxo em P que era de 170 unidades passou a ser de =00 unidades. Será máximo? É necessário prosseguir com a saturação das cadeias elementares de L a P. Em P o fluxo só aumenta se recebido de D pois só DP não está saturado pelo que estudo D e em D não pode ser recebido mais fluxo pois os arcos AD e BD estão saturados. Assim sendo, as cadeias elementares de L e P estão saturadas terminando o º passo. A solução óptima é então, atingem a praça P, 00 viaturas/hora. A título de curiosidade veja-se que o arruamento BE, com fluxo nulo, podia ser encerrado ao trânsito pois teoricamente é desnecessário. No caso de apenas se querer conhecer o valor do fluxo máximo do nó origem para o nó destino e, nomeadamente, se se tratar de uma rede de grandes dimensões, é possível resolver este problema recorrendo ao teorema do fluxo máximo. Teorema do Fluxo Máximo Para toda a rede com uma só origem e um só destino o fluxo máximo é igual ao valor mínimo de corte de entre todos os cortes possíveis da rede. Um corte é um conjunto de arcos contendo, pelo menos, um arco de cada trajectória da origem ao destino. O valor de corte é a soma das capacidades de fluxo de todos os ramos do corte, no sentido da orientação definida pelo corte. Na figura 53, apresentam-se alguns dos cortes da rede dada na figura 50 (não se traçaram os restantes de modo a que a figura não ficasse incompreensível). Note-se que, a figura está desenhada de tal modo que nenhum destes cortes indica o fluxo máximo da rede, ou seja não é fácil identificar o que tem menor valor de corte. 51

56 00 10 L B 30 A C 30 0 E 50 D F 10 P Figura 53 Exemplos dos cortes da rede Podemos encontrar mais informação sobre fluxo em Drakos (1998), Morais da Silva (001) e Moura da Silva (1995).8. Outros Problemas Existem muitos outros tipos de Problemas de Optimização Combinatória em Grafos e como tal não é possível fazer referência a todos neste trabalho, no entanto é apresentado a seguir mais uns problemas sem no entanto se estudar os seus algoritmos e heurísticas de resolução. Assim, os problemas de scheduling ou planeamento no tempo não são mais do que problemas que tentam encontrar um mapeamento de tarefas óptimo. Por exemplo, num Hipermercado nem sempre são necessárias todas as caixas estarem em funcionamento, cada trabalhador tem um número máximo de horas de trabalho diário e semanal e existem mais do que dois empregados por isso é necessário fazer um mapeamento dos horários de cada trabalhador do caixa para que este esteja o número certo de horas diárias em serviço e que o hipermercado também fique satisfeito com a presença dos funcionários nas horas em que estes são realmente precisos. Quem é que não ficaria confuso se uma lista telefónica não estivesse ordenada por nomes. Como já foi visto, os próprios problemas de ordenação estão inseridos em muitos outros problemas de optimização pois quando se quer procurar um caminho mais curto, por exemplo, é necessário saber se uma aresta escolhida é realmente a de menor valor. Existem diversos 5

57 algoritmos para ordenar um conjunto de dados como podemos ver em Setzer e Carvalheiro (1993). Os problemas de transportes podem ser vistos como uma união de diversos problemas de optimização em rede. Pois um padeiro ao distribuir o pão deve querer minimizar o seu percurso, levar o maior número de pão na carrinha e tem os seus pontos de distribuição por onde tem de passar, geralmente chama-se problema da mochila a este tipo de problema. No entanto, um problema de transporte pode ter mais factores, é que por exemplo um padeiro não tem o menor interesse em ficar com pão no fim do dia por isso ele também tem de optimizar a sua produção/venda diária. Um problema de gestão de projectos pode ser visto do seguinte modo: se um padeiro pretende maximizar a produção diária de fabrico de pão, então é necessário fazer um escalonamento de tarefas para que cada tarefa possa ser iniciada assim que possível, por exemplo, deve poder aproveitar enquanto o pão está no forno para amassar nova massa. É através da gestão de projectos que se consegue planear como vai ser o dia de trabalho, qual a sequência das tarefas, a duração total do projecto e se se vai precisar de mais recursos para cumprir a tarefa que foi proposta. Um tipo de problema que pode não ser muito útil em termos económicos mas que em termos pessoais pode ser interessante são os diversos tipos de jogos e problemas existentes que utilizam a Optimização Combinatória e a Teoria dos Grafos. Vejamos o seguinte exemplo que pode ser representado num grafo de estados (os nós representam diferentes estados do sistema e os arcos transições de estados). A banda U tem um concerto que começa daqui a 19 minutos e todos precisam atravessar uma ponte para chegar lá. Todos os quatro elementos estão do mesmo lado da ponte. É de noite, na ponte só podem passar no máximo duas pessoas de cada vez. Só há uma lanterna. Qualquer pessoa que passe, uma ou duas, deve passar com a lanterna na mão. A lanterna deve ser levada de um lado para o outro, e não pode ser atirada. Cada elemento da banda tem um tempo diferente para passar de um lado para o outro de acordo com a carga. O par deve andar junto e segundo o tempo do menos veloz. Bono : 1 minuto para passar; Edge: minutos para passar; 53

58 Adam: 5 minutos para passar; Larry: 10 minutos para passar. Por exemplo, se o Bono e o Larry passarem juntos, vai demorar 10 minutos até que eles cheguem ao outro lado. Se o Larry regressar com a lanterna, 0 minutos terão passado e o concerto sofrerá um atraso. Como organizar a travessia? Proposta de resolução: Como tenho de chegar em menos de 19 minutos e fazer um mínimo de 5 travessias, podese concluir que o Larry só deve passar a ponte uma única vez. Como as travessias de regresso devem ser feitas no menor espaço de tempo, o Bono é que deverá fazer todas as passagens pela ponte, assim, será sempre o segundo elemento do par que atravessa a ponte. Uma das possíveis sequências para a travessia é a seguinte, o Larry e o Bono vão juntos na primeira travessia, no regresso o Bono transporta a lanterna, volta a fazer mais uma travessia, a segunda em grupo, na companhia do Adam e regressa mais uma vez com a lanterna e faz a terceira e última travessia em grupo com o Edge. Como é sabido as travessias são feitas sempre segundo o tempo do mais lento, assim, somando esses tempos temos: =19, pelo que é possível organizar a travessia da ponte sem haver atraso no espectáculo. 54

59 Capítulo 3 Caso de Estudo Este último capítulo tem como objectivo por em prática um pouco do trabalho teórico feito até aqui. Como já foi visto no capítulo, o método de coloração de vértices de um grafo pode ser utilizado na elaboração de mapas de exames. Uma vez que os mapas de exames geram sempre muitos problemas e situações de discórdia por parte dos alunos, visto ser frequente haver situações de coincidência de exames, ou seja, exames que estão agendados para o mesmo dia, vai-se tentar obter um mapa de exames em que estas situações de coincidências ocorram no menor número possível, dando assim uma imagem geral das dificuldades sentidas na elaboração dos referidos mapas. O regulamento académico em vigor na Universidade dos Açores permite aos alunos a inscrição em cada disciplina num dos dois regime, o ordinário e o voluntário. O mapa de exames finais de cada um dos semestres é afixado no início do semestre, durante o período de inscrição. O mapa de exames da época de recurso é afixado no final do º semestre e é mais difícil de elaborar, dado o novo regime, já que os alunos ao efectuarem a inscrição numa disciplina ficam admitidos a exame na época de recurso no caso de não terem obtido aproveitamento durante o semestre lectivo (alunos ordinários) ou no exame final (alunos voluntários). O caso de estudo é feito apenas para o curso de Matemática (ensino de) que conta com 35 disciplinas obrigatórias e mais duas de opção, estando apenas disponível este ano quatro disciplinas para opção. Mas uma vez que não houve inscrições em Geometria Projectiva esta disciplina não foi incluída no caso de estudo. Podemos ver o mapa das disciplinas no Anexo 1. Para facilitar o trabalho foi atribuído um número a cada disciplina e uma cor às disciplinas do mesmo ano. Os números e as cores foram atribuídos sem qualquer critério de selecção pelo que não influenciam o resultado final. Numa primeira análise podemos pensar que se um aluno pode ir a exame apenas por estar inscrito na disciplina, que os dias necessários para o mapa de exames são tantos quantas as disciplinas. No entanto, existem disciplinas que são precedência de outras disciplinas pelo que um aluno não pode estar matriculado em ambas no mesmo semestre, ou seja, não pode fazer ambos os exames o que diminui o número de dias necessários. Outro aspecto a ter em conta é que o mapa de exames não vai considerar o caso de melhorias na época de recurso, pois isso 55

60 só aumentava o número de dias necessário e um aluno dispõe de três épocas de exame para efectuar as melhorias. Temos então um grafo em que cada uma das disciplinas corresponde a um vértice e dois vértices são adjacentes sempre que exista pelo menos um aluno que possa efectuar exame nas duas disciplinas correspondentes aos vértices, i.e., as duas disciplinas não podem ter exames marcados para o mesmo dia. No Anexo, temos a matriz de adjacência das disciplinas, utiliza-se não um código binário de 0 e 1 mas cores para indicar a adjacência dos vértices. As células a branco significam a não adjacência dos vértices e as células a azul, vermelho, verde e amarelo indicam a adjacência entre os vértices. As células a branco devem-se à existência de precedências entre as disciplinas e como a matriz é simétrica a parte inferior não é apresentada. No caso da disciplina 1 esta é precedência da disciplina 14 que por sua vez é precedência das disciplinas 6 e 8, pelo que na matriz temos que a disciplina 1 também é precedência das disciplinas 6 e 8. Como o grafo das disciplinas não é planar, não podemos utilizar o teorema das quatro cores pelo que são necessárias mais do que quatro cores para colorir os vértices do grafo. Para ajudar na elaboração dos mapas foi utilizado um programa informático elaborado por Morais da Silva (001) que recorre à heurística baseada no nível de saturação e grau de cada vértice, já apresentada no capítulo. Figura 54 Janela de visualização do programa utilizado 56

61 No Anexo 3 pode ser consultada a matriz de adjacências das disciplinas do primeiro semestre. O número mínimo de dias para conseguir um mapa de exames, para o primeiro semestre, em que todo o aluno realize no máximo um exame por dia, é de 16 dias. Tabela 5 - Resultado da coloração dos vértices do grafo do Anexo 3 Cor n.º 1 Cor n.º Cor n.º 3 Cor n.º 4 Cor n.º 5 Cor n.º 6 Cor n.º 7 Cor n.º 8 Vértices Cor n.º 9 Cor n.º 10 Cor n.º 11 Cor n.º 1 Cor n.º 13 Cor n.º 14 Cor n.º 15 Cor n.º 16 Vértices 9 1 e e Este resultado não é único já que, no primeiro semestre, a disciplina 8 é precedência das disciplinas 10 e 5 podendo cada uma delas ser agendada no dia da disciplina 8, no caso da disciplina 1 como é precedência apenas da disciplina 6, estas vão estar sempre agendadas no mesmo dia. Pelo que podemos ver que as disciplinas com precedências permitem a redução no número de dias, sendo possível realizar no mesmo dia os exames das disciplinas 1 e 6 bem como os exames das disciplinas 8 e 5, não sendo por isso considerado uma coincidência de exames. Este ano lectivo de 000/001 a época de exames do primeiro semestre decorreu entre 1 de Fevereiro e 15 de Fevereiro dispondo de 13 dias úteis (é possível a realização de exames num sábado), existindo no mínimo três coincidências de exames, uma vez que não devem ser realizados mais exames nos dias das disciplinas 8, 1, 5 e 6 tendo em conta o resultado da tabela 5. No Anexo 4 está representado, por uma matriz de adjacências, o grafo das disciplinas do segundo semestre e o número mínimo de dias para conseguir um mapa de exames, em que todo o aluno realize no máximo um exame por dia, é de 18 dias. Tabela 6 Resultado da coloração dos vértices do grafo do Anexo 4 Cor n.º 1 Cor n.º Cor n.º 3 Cor n.º 4 Cor n.º 5 Cor n.º 6 Cor n.º 7 Cor n.º 8 Cor n.º 9 Vértices 6 e e Cor n.º 10 Cor n.º 11 Cor n.º 1 Cor n.º 13 Cor n.º 14 Cor n.º 15 Cor n.º 16 Cor n.º 17 Cor n.º 18 Vértices Mais uma vez, este resultado não é único já que, no segundo semestre, a disciplina é precedência das disciplinas 4, 19 e 4 podendo cada uma delas ser agendada no dia da 57

62 disciplina, no caso da disciplina 14 como é precedência apenas da disciplina 8, estas vão estar sempre agendadas no mesmo dia. Os exames do segundo semestre, neste ano lectivo de 000/001, estão agendados para o período que decorre entre 4 de Julho e 17 de Julho, estando disponíveis 1 dias úteis. Mais uma vez as precedências permitiram a redução no número de dias, sendo possível realizar no mesmo dia os exames das disciplinas e 4 bem como os exames das disciplinas 14 e 8, não sendo por isso considerado uma coincidência de exames. Como são necessários 18 dias é fácil concluir que terão de existir no mínimo seis coincidências, já que não devem ser realizados mais exames nos dias das disciplinas, 4, 14 e 8, o que vai dar exactamente dois exames marcados em cada dia, tendo em conta o resultado da tabela 6. À primeira vista poder-se-á afirmar que o número disponível de dias para a execução de exames é muito inferior ao realmente necessário mas, como pode ser verificado, o facto de os mapas de exames serem afixados no início de cada semestre ajuda os alunos na gestão da sua matrícula nas disciplinas. Para os exames da época de recurso e tendo em conta a matriz do Anexo, o número mínimo de dias para conseguir um mapa de exames, em que todo o aluno realize no máximo um exame por dia, é de 33 dias. Tabela 7 - Resultado da coloração dos vértices do grafo do Anexo Cor n.º 1 Cor n.º Cor n.º 3 Cor n.º 4 Cor n.º 5 Cor n.º 6 Cor n.º 7 Cor n.º 8 Cor n.º 9 Vértices 1 e Cor n.º 10 Cor n.º 11 Cor n.º 1 Cor n.º 13 Cor n.º 14 Cor n.º 15 Cor n.º 16 Cor n.º 17 Cor n.º 18 Vértices 1, 14 e e Cor n.º 19 Cor n.º 0 Cor n.º 1 Cor n.º Cor n.º 3 Cor n.º 4 Cor n.º 5 Cor n.º 6 Cor n.º 7 Vértices e Cor n.º 8 Cor n.º 9 Cor n.º 30 Cor n.º 31 Cor n.º 3 Cor n.º 33 Vértices Este resultado não é único pois podemos alterar a colocação das disciplinas com precedências sem alterar o número mínimo de dias. O número mínimo de dias foi reduzido pelo facto de haver precedências entre as disciplinas e note-se que sendo a disciplina 1 precedência das disciplinas 14 e 8 foi possível agendar três exames no mesmo dia sem haver coincidências. Os exames da época de recurso, neste ano lectivo de 000/001, estão agendados para o período que decorre entre 3 de Setembro e de Setembro, estando 58

63 disponíveis apenas 18 dias úteis, um número muito inferior ao pretendido e por essa razão existem dias em que vão ser realizados três exames havendo coincidências, ou seja, existe a possibilidade de um aluno ter de efectuar os três exames. Pelo facto de não ser aceitável o mapa de exames da época de recurso e porque este é lançado durante o segundo semestre, no Anexo 5 foi feita uma matriz com as disciplinas em que cada aluno está realmente matriculado e não com as disciplinas que estão disponíveis para matrícula. Com base nessa matriz foi feita uma matriz de adjacência das mesmas disciplinas no Anexo 6, em que as células a branco significam a não adjacência dos vértices (não existem alunos matriculados em simultâneo nas disciplinas dos vértices) e as células a azul, vermelho, verde e amarelo indicam a adjacência entre os vértices (existe pelo menos um aluno matriculado em simultâneo nas disciplinas dos vértices). Como não podia deixar de ser, foi necessário ter em conta as precedências e é possível um aluno no final do ano estar matriculado em disciplinas que tinham precedência desde que estas sejam em semestres diferentes, por exemplo um aluno que se matricule no primeiro semestre na disciplina 1 e que obtenha aproveitamento na disciplina pode no segundo semestre efectuar inscrição na disciplina 14, o que já não é possível é fazer exame da disciplina 1 e 14 pois se tem de fazer exame da disciplina 1 é porque não teve aproveitamento e consequentemente não foi possível efectuar a inscrição na disciplina 14. Tendo em conta este aspecto, no Anexo 7 temos uma matriz de adjacências em que as células a branco significam a não adjacência dos vértices (não existem alunos matriculados em simultâneo nas disciplinas dos vértices ou então uma das disciplinas é precedência da outra) e as células a azul, vermelho, verde e amarelo indicam a adjacência entre os vértices (existe pelo menos um aluno matriculado em simultâneo nas disciplinas dos vértices que não são precedência). Utilizando a matriz de adjacências do Anexo 7, temos que o número mínimo de dias para conseguir um mapa de exames, em que todo o aluno realize no máximo um exame por dia, é de 1 dias. Este valor é inferior aos 33 dias da primeira tentativa, em que apenas se considerava as precedências entre disciplinas, no entanto continua a ser superior aos 18 dias úteis realmente existentes. Um dos possíveis resultados é o que se encontra na tabela 8 realçando mais uma vez que o resultado não é único pois podemos jogar com a colocação das disciplinas com precedência sem alterar o número mínimo de dias. 59

64 Tabela 8 - Resultado da coloração dos vértices do grafo do Anexo 7 Cor n.º 1 Cor n.º Cor n.º 3 Cor n.º 4 Cor n.º 5 Cor n.º 6 Cor n.º 7 Vértices Cor n.º 8 Cor n.º 9 Cor n.º 10 Cor n.º 11 Cor n.º 1 Cor n.º 13 Cor n.º 14 Vértices Cor n.º 15 Cor n.º 16 Cor n.º 17 Cor n.º 18 Cor n.º 19 Cor n.º 0 Cor n.º 1 Vértices A matriz do Anexo 7 ainda pode ser dividida em duas matrizes uma para o primeiro semestre no Anexo 8 e outra para o segundo semestre no Anexo 9. O estudo destas matrizes pode parecer supérfluo uma vez que as matrículas são feitas depois da afixação dos mapas, mas por outro lado, vai reforçar a importância da saída dos mapas antes das matrículas, pois mostra que é necessário efectuar uma escolha entre a matrícula numa disciplina no regime ordinário ou no regime voluntário, consoante a necessidade de cada aluno frequentar determinadas cadeiras, na medida em que os resultados das tabelas 9 e 10 já não excedem o número de dias úteis disponível para os exames de fim de semestre. Tabela 9 - Resultado da coloração dos vértices do grafo do Anexo 8 Cor n.º 1 Cor n.º Cor n.º 3 Cor n.º 4 Cor n.º 5 Cor n.º 6 Vértices Cor n.º 7 Cor n.º 8 Cor n.º 9 Cor n.º 10 Cor n.º 11 Vértices Tabela 10 - Resultado da coloração dos vértices do grafo do Anexo 9 Cor n.º 1 Cor n.º Cor n.º 3 Cor n.º 4 Cor n.º 5 Cor n.º 6 Vértices Cor n.º 7 Cor n.º 8 Cor n.º 9 Cor n.º 10 Cor n.º 11 Cor n.º 1 Vértices Poder-se-ia melhorar os valores aqui encontrados, mas para isso torna-se necessário mais informação, o que infelizmente não foi possível, pois tendo acesso a uma lista dos alunos 60

65 inscritos em regime voluntário as matrizes dos Anexos 3 e 4 iriam ter muitas mais células em branco o que implicaria uma redução no número mínimo de dias necessário para a realização de exames no fim de cada semestre. Para que a matriz do Anexo 7 ficasse com mais células em branco era necessário aceder a uma lista dos alunos que obtiveram aproveitamento nas disciplinas do primeiro semestre, digo apenas do primeiro semestre pois o mapa da época de recurso é feito durante o segundo semestre não sendo possível saber se os alunos vão ou não ter aproveitamento durante esse semestre. Como foi possível verificar, a elaboração de mapas de exame não é uma tarefa fácil. No entanto, após a aplicação do método de coloração de vértices de um grafo já se tem um bom ponto de partida em que não existem coincidências entre exames, todavia, dado o reduzido número de dias úteis de cada uma das três épocas de exames, essas coincidências são quase impossíveis de evitar. Por isso, sempre que haja necessidade de duas disciplinas ficarem coincidentes deve-se ter em conta, o momento de realização de cada exame (obrigatoriamente um de manhã e um de tarde), o número de alunos com coincidência (a escolha deve ser feita entre as disciplinas com menor número de alunos em comum) e, acima de tudo, o interesse dos alunos e não a disponibilidade das salas e dos professores. 61

66 Conclusão No início da realização desta monografia senti dificuldades na pesquisa bibliográfica. Recorri à internet, um dos recursos ao meu dispor, mas dado que as fontes de informação nem sempre eram fidedignas apelei à ajuda do meu orientador que me sugeriu então um bom suporte bibliográfico. Também encontrei dificuldades em condensar toda a informação disponível dado a diversidade de subproblemas de um mesmo problema. Assim, foi feita para cada um dos casos uma apresentação do problema geral. Apesar das dificuldades, também houve momentos de satisfação pelo trabalho que estava a desenvolver, uma vez que considero este tema muito interessante e com utilidade para o futuro. 6

67 Referências Bibliográficas Consultadas Gondran, M. e Minoux, M., Graphes et Algorithmes, Collection de la Direction des Études e Recherches d Électricité de France, Harary, Frank, Graph Theory, Addison-Wesley Publishing Company, Mendes, Armando, Folhas de Investigação Operacional, 000. Moura da Silva, Rui, Optimização em Redes e Grafos, Associação dos Estudantes do Instituto Superior Técnico, Silva, Ilda, Tópicos de Matemática Finita, Associação dos Estudantes da Faculdade de Ciências de Lisboa, 199. Bang-Jensen, Jorgen; El Haddad, Mohammed; Manoussakis, Yannis e Przytycka, Parallel algorithms for the hamiltonian cycle and hamiltonian path problems in semicomplete bipaarty digraphs, Bernard, M.E. Moret e Shapiro, Henry D., How to Find a Minimum Spanning Tree in Practice, Bridgeman, Stina; Garg, Ashim e Tamassia, Roberto, A Graph Drawing and Translation Service on the WWW, Buriol, Luciana Salete, Implementação Distribuída de um A-Teams para a solução do Problema do Caixeiro Viajante, Caldwell, Chris K., Cervieri, Alexandre e Py, Mônica, Algoritmo para resolução do problema do Caixeiro Viajante,

68 Drakos, Nikos, Eppstein, David, Felsner, Stefan, Interval Orders: Combinatorial Structure and Algorithms, Foster, Ian, Karger, David R.; Klein, Philip N. e Tarjan, Robert E., A Randomized Linear-Time Algorithm, Marreiros, Ana e Ruchkys, Danielle, Estudo da NP-Completude e Algoritmos de Aproximação para o Problema do Caixeiro Viajante, Morais da Silva, António Carlos, Moscato, Pablo, Pradenas, Lorena, Reed, Isaac, Setzer, Valdemar W. e Carvalheiro, Fábio H., Algoritmos e sua análise uma introdução didática, Six, Janet M., Kakoulis, Konstantinos G. e Tollis, Ioannis G., Techniques for the Refinemente of Ortogonal Graph Drawings, Thomas, Robin, Toft, Bjarne, Trick, Michael,

69 Não consultadas Harary, Frank, Wilcox, G., Boolean operations on graphs, Math. Scand. 0, Kaufmann, A., Coster, D., Exercices de Combinatorique avec Solutions, Dunod, Müller, Felipe M., Heurísticas e Metaheurísticas, Anais da V Escola Regional de Informática, Zykov, A. A., One some properties of linear complexes, (Russian) Mat. Sbornik 4 (1949), Amer. Math. Soc. Translation N. 79, 195. DEPARTAMENTO DE MATEMÁTICA Secção de Estatística e Investigação Operacional Abel Carneiro Carneiro, Abel (001) Grafos, Problemas de Optimização Combinatória e Algoritmos Monografias da SEIO. Depto. Matemática da Univ. dos Açores: Ponta Delgada, (ID ) O trabalho apresentado é da exclusiva responsabilidade do aluno que o assina. O Departamento de Matemática e a Universidade dos Açores não se responsabilizam por eventuais erros existentes no mesmo. Os textos podem ser descarregados livremente, impressos e utilizados para ensino ou estudo dos temas a que se referem. No entanto, não podem ser copiados ou incluídos noutros trabalhos académicos ou de qualquer outra natureza, sem o consentimento do autor e a devida referência completa. Para autorização de cópia parcial ou integral, utilize o endereço de correio electrónico: seio@notes.uac.pt 65

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47 1 / 47 MATEMÁTICA DISCRETA Patrícia Ribeiro Departamento de Matemática, ESTSetúbal 2018/2019 2 / 47 1 Combinatória 2 Aritmética Racional 3 3 / 47 Capítulo 3 4 / 47 não orientados Um grafo não orientado

Leia mais

C 3 C 3. De acordo com o teorema de Euler, um grafo não orientado admite um ciclo de Euler se e só for conexo e não tiver vértices de grau ímpar.

C 3 C 3. De acordo com o teorema de Euler, um grafo não orientado admite um ciclo de Euler se e só for conexo e não tiver vértices de grau ímpar. rafos ircuito e iclo de uler X. ircuito e iclo de uler Um grafo orientado diz-se euleriano se há um circuito que contenha todos os seus arcos uma e só uma vez (circuito euleriano ).O grafo da figura é

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

GRAFOS E ALGORITMOS TEORIA DE GRAFOS

GRAFOS E ALGORITMOS TEORIA DE GRAFOS GRAFOS E ALGORITMOS TEORIA DE GRAFOS 1a. PARTE Prof. Ronaldo R. Goldschmidt rribeiro@univercidade.br ronaldo_goldschmidt@yahoo.com.br ROTEIRO 1. INTRODUÇÃO E MOTIVAÇÃO 2. FUNDAMENTOS 3. CONECTIVIDADE 4.

Leia mais

GRAFOS: UMA INTRODUÇÃO

GRAFOS: UMA INTRODUÇÃO GRAFOS: UMA INTRODUÇÃO Vilmar Trevisan -Instituto de Matemática - UFRGS Junho de 2006 Grafos: uma introdução Informalmente, um grafo é um conjunto de pontos no plano ligados entre por flechas ou por segmentos

Leia mais

Considere-se a relação dos exames requeridos, na mesma época, pelos alunos de uma escola: Número do Cadeiras requeridas

Considere-se a relação dos exames requeridos, na mesma época, pelos alunos de uma escola: Número do Cadeiras requeridas X. olorir os Vértices de um Grafo a. Número cromático do grafo onsidere-se que um aluno necessita frequentar as cadeiras, e. Quantos momentos diferentes necessitam ser reservados no horário para que o

Leia mais

Capítulo 2- Modelos de grafos.

Capítulo 2- Modelos de grafos. Capítulo 2- Modelos de grafos. 2.1- Introdução (pág. 8) [Vídeo 24] Grafo- é um esquema constituído por pontos (ou vértices) e por segmentos (ou arestas). (8) Exemplo 1(pág.8) Um grafo diz-se conexo se

Leia mais

Grafos Orientados (digrafos)

Grafos Orientados (digrafos) Grafos Orientados (digrafos) Grafo Orientado ou digrafo Consiste em um grafo G = (V,A) onde V = {v 1,, v n } é um conjunto de vértices e A = {a 1,, a k } é um conjunto de arcos tais que a k, k=1,,m é representado

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

Problemas de Fluxo em Redes

Problemas de Fluxo em Redes CAPÍTULO 7 1. Conceitos fundamentais de grafos Em muitos problemas que nos surgem, a forma mais simples de o descrever, é representá-lo em forma de grafo, uma vez que um grafo oferece uma representação

Leia mais

Noções da Teoria dos Grafos

Noções da Teoria dos Grafos Noções da Teoria dos Grafos André Arbex Hallack Índice 1 Introdução e definições básicas. Passeios eulerianos 1 2 Ciclos hamiltonianos 7 3 Árvores 11 4 Emparelhamento em grafos 15 5 Grafos planares: Colorindo

Leia mais

Parte B Teoria dos Grafos

Parte B Teoria dos Grafos 45 Parte B Teoria dos Grafos B. Grafos e Subgrafos Um grafo G é uma tripla ordenada (V(G), E(G), ), constituindo de um conjunto não vazio V(G) de vértices, um conjunto disjunto E(G) das arestas e uma função

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 2 Ciclos hamiltonianos 5 3 Árvores 7 4 Emparelhamento em grafos 11 5 Grafos planares:

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

MATEMÁTICA DISCRETA GRAFOS (1/4) Carlos Luz. EST Setúbal / IPS. 28 Maio - 3 Junho 2012

MATEMÁTICA DISCRETA GRAFOS (1/4) Carlos Luz. EST Setúbal / IPS. 28 Maio - 3 Junho 2012 MATEMÁTICA DISCRETA GRAFOS (1/4) Carlos Luz EST Setúbal / IPS 28 Maio - 3 Junho 2012 Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 1 / 34 Noção de Grafo De nição Um grafo não orientado

Leia mais

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. Grafos Sugestão bibliográfica: ESTRUTURAS DE DADOS USANDO C Aaron

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

Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17)

Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17) Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17) Professor: Pedro Nóia Livro adotado: Matemática Aplicada às Ciências Sociais- 11º ano Elisabete Longo e Isabel

Leia mais

Circuitos Hamiltorianos

Circuitos Hamiltorianos Circuitos Hamiltorianos Vimos que o teorema de euler resolve o problema de caracterizar grafos que tenham um circuito em que cada aresta apareça exatamente uma vez. Vamos estudar aqui uma questão relacionada.

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

Árvore de Suporte de Comprimento Mínimo Minimal Spanning Tree

Árvore de Suporte de Comprimento Mínimo Minimal Spanning Tree Investigação Operacional Árvore de Suporte de Comprimento Mínimo Minimal Spanning Tree Slide Transparências de apoio à leccionação de aulas teóricas Maria Antónia Carravilla José Fernando Oliveira Árvore

Leia mais

Teoria dos Grafos AULA 1

Teoria dos Grafos AULA 1 Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br AULA 1 Introdução, Conceitos Iniciais, Isomorfismo Preparado

Leia mais

Teoria dos Grafos AULA 1

Teoria dos Grafos AULA 1 Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br AULA 1 Introdução,

Leia mais

Conceito Básicos da Teoria de Grafos

Conceito Básicos da Teoria de Grafos 1 Conceito Básicos da Teoria de Grafos GRAFO Um grafo G(V,A) é definido pelo par de conjuntos V e A, onde: V - conjunto não vazio: os vértices ou nodos do grafo; A - conjunto de pares ordenados a=(v,w),

Leia mais

76) 1.1 Sim 1.2 Não 1.3 Não

76) 1.1 Sim 1.2 Não 1.3 Não 6) 1.1 Sim 1.2 Não 1. Não 2.1 2.2 2.. Os grafos dos exercícios 2.1 e 2.2 são conexos, pois existe sempre uma sequência de arestas a unir quaisquer dois vértices. 4.1 Grafo I vértices: ; arestas: 2 Grafo

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ítulo 1 Conceitos e Resultados Básicos

Capítulo 1 Conceitos e Resultados Básicos Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko Capítulo 1 Conceitos e Resultados Básicos Um grafo é um par ordenado (V, A), onde V e A são conjuntos disjuntos, e cada elemento

Leia mais

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos.

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. 1 Árvores Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. Um grafo simples sem ciclos mas não conexo (em que cada componente conexa é portanto uma árvore) chama-se uma floresta. Numa

Leia mais

2. Desenhe o grafo orientado G = (X, Γ) para: 3. Em cada alínea dois grafos são iguais. Identifique-os. (a) (b) (c)

2. Desenhe o grafo orientado G = (X, Γ) para: 3. Em cada alínea dois grafos são iguais. Identifique-os. (a) (b) (c) 1. Desenhe o grafo não orientado G = (X, Γ) para: (a) X = {a, b, c, d} e Γ = {{a, b}, {b, c}, {c, d}}. (b) X = {a, b, c, d} e Γ = φ. (c) X = {1, 2, 3, 4, 5, 6, 7, 8} e Γ = {{1, 2}, {2, 2}, {2, 3}, {3,

Leia mais

Conceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade

Conceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade Conteúdo 1 Teoria de Grafos Conceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade > Teoria de Grafos 0/22 Conceitos Básicos Inicialmente, estudaremos os grafos não direcionados.

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

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa Aula -Grafos Uma figura vale por mil palavras A representação de dados e ou informações utilizando de recursos visuais é, em muitos casos,

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

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

GRAFOS Aula 02 Formalização: definições Max Pereira

GRAFOS Aula 02 Formalização: definições Max Pereira Ciência da Computação GRAFOS Aula 02 : definições Max Pereira Um grafo G é um par ordenado G = (V, E) onde V é um conjunto finito e não vazio de elementos e E é um conjunto de subconjuntos de dois elementos

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

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos Algoritmos e Estruturas de Dados II Introdução a Profa. M. Cristina/ Profa. Rosane (2010) Material de aula original: Profa. Josiane M. Bueno - Motivação : conceito introduzido por Euler, em 1736 Problema

Leia mais

Estruturas de Dados Grafos

Estruturas de Dados Grafos Estruturas de Dados Grafos Prof. Eduardo Alchieri (introdução) Grafo é um conjunto de pontos e linhas que conectam vários pontos Formalmente, um grafo G(V,A) é definido pelo par de conjuntos V e A, onde:

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

Tópicos de Matemática Finita Data: I II-1 II-2 II-3 II-4 III-1 III-2 III-3 III-4 IV-1 IV-2 IV-3 IV-4 Nota Final

Tópicos de Matemática Finita Data: I II-1 II-2 II-3 II-4 III-1 III-2 III-3 III-4 IV-1 IV-2 IV-3 IV-4 Nota Final Tópicos de Matemática Finita Data: 5-07-2003 2 a Época Correcção Código: 2D Nome: Número: Curso: O exame que vai realizar tem a duração de três horas. As respostas às perguntas do grupo I não necessitam

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

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 5 a Lista de Exercícios

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 5 a Lista de Exercícios UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO MATEMÁTICA COMBINATÓRIA 5 a Lista de Exercícios 1. O grafo de intersecção de uma coleção de conjuntos A 1,..., A n é o grafo

Leia mais

Definições Básicas para Grafos

Definições Básicas para Grafos Definições Básicas para rafos RAFO Um grafo (V,A) é definido pelo par de conjuntos V e A, onde: V - conjunto não vazio: os vértices ou nodos do grafo; A - conjunto de pares ordenados a=(v,w), v e w V:

Leia mais

Teoria dos Grafos. Maria Claudia Silva Boeres. UFES. Teoria dos Grafos

Teoria dos Grafos. Maria Claudia Silva Boeres. UFES. Teoria dos Grafos Maria Claudia Silva Boeres boeres@inf.ufes.br Motivação Por que estudar grafos? Importante ferramenta matemática com aplicação em diversas áreas do conhecimento Utilizados na definição e/ou resolução de

Leia mais

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios 1 Conceitos 1. Prove o Teorema da Amizade: em qualquer festa com pelo menos seis pessoas, ou três se conhecem

Leia mais

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios 1 Conceitos 1. Prove o Teorema da Amizade: em qualquer festa com pelo menos seis pessoas, ou três se conhecem

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

Tópicos de Matemática Finita Data: I II-1 II-2 II-3 II-4 III-1 III-2 III-3 III-4 IV-1 IV-2 IV-3 IV-4 Nota Final

Tópicos de Matemática Finita Data: I II-1 II-2 II-3 II-4 III-1 III-2 III-3 III-4 IV-1 IV-2 IV-3 IV-4 Nota Final Tópicos de Matemática Finita Data: 20-06-2003 1 a Época Correcção Código: 1B Nome: Número: Curso: O exame que vai realizar tem a duração de três horas. As respostas às perguntas do grupo I não necessitam

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

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

Prof. Marco Antonio M. Carvalho

Prof. Marco Antonio M. Carvalho Prof. Marco Antonio M. Carvalho Lembretes! Lista de discussão! Endereço:! programaacao@googlegroups.com! Solicitem acesso:! http://groups.google.com/group/programaacao! Página com material dos treinamentos!

Leia mais

CONCEITOS BÁSICOS EM GRAFOS

CONCEITOS BÁSICOS EM GRAFOS Um grafo (simples) G é formado por um conjunto de vértices, denotado por V(G), e um conjunto de arestas, denotado por E(G). Cada aresta é um par (não ordenado) de vértices distintos. Se xy é uma aresta,

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@ibilce.unesp.br, socorro@ibilce.unesp.br Grafos Eulerianos Preparado a partir do texto: Rangel, Socorro.

Leia mais

ESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado.

ESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado. PUC-Rio Departamento de Informática Profs. Marcus Vinicius S. Poggi de Aragão Período: 0. Horário: as-feiras e as-feiras de - horas de maio de 0 ESTRUTURAS DISCRETAS (INF 6) a Lista de Exercícios Procure

Leia mais

Programa. 1 Parte 1 - Conjuntos e Aplicações. 1 Conjuntos. 4 Indução Matemática e Divisibilidade. 5 Congruências Lineares

Programa. 1 Parte 1 - Conjuntos e Aplicações. 1 Conjuntos. 4 Indução Matemática e Divisibilidade. 5 Congruências Lineares Programa Matemática Discreta 2008/09 Jorge Manuel L. André FCT/UNL 1 Parte 1 - Conjuntos e Aplicações 1 Conjuntos 2 Relações Binárias 3 Aplicações 4 Indução Matemática e Divisibilidade 5 Congruências Lineares

Leia mais

Algoritmos e Estruturas de Dados II Grafos conceitos gerais. Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M.

Algoritmos e Estruturas de Dados II Grafos conceitos gerais. Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M. Algoritmos e Estruturas de Dados II conceitos gerais Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M. Bueno Valorados Um grafo valorado (ponderado/com pesos) G(V,A) consiste

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes As arestas possuem a função de indicar o relacionamento(espacial, comportamental, temporal) entre os elementos de um grafo. Em diversas situações esta relação não é simétrica, ou seja, par

Leia mais

4.1 Preliminares. No exemplo acima: Dom(R 1 ) = e Im(R 1 ) = Dom(R 2 ) = e Im(R 2 ) = Dom(R 3 ) = e Im(R 3 ) = Diagrama de Venn

4.1 Preliminares. No exemplo acima: Dom(R 1 ) = e Im(R 1 ) = Dom(R 2 ) = e Im(R 2 ) = Dom(R 3 ) = e Im(R 3 ) = Diagrama de Venn 4 Relações 4.1 Preliminares Definição 4.1. Sejam A e B conjuntos. Uma relação binária, R, de A em B é um subconjunto de A B. (R A B) Dizemos que a A está relacionado com b B sss (a, b) R. Notação: arb.

Leia mais

Redes. ADSA António Câmara

Redes. ADSA António Câmara Redes ADSA António Câmara Redes Método do caminho mais curto Localização de equipamentos Minimum spanning tree Carteiro chinês Caixeiro viajante Links Redes Redes são sistemas de linhas (arcos) ligando

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

Pesquisa Operacional. Teoria dos Grafos

Pesquisa Operacional. Teoria dos Grafos Pesquisa Operacional Teoria dos Grafos 1 Sumário Introdução Histórico Aplicações de modelos em grafos Conceitos e Notação Representações de um grafo G Tipos de grafos Algoritmos Algoritmo de Djisktra Algoritmo

Leia mais

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA Doutorado em Ciência da Computação Algoritmos e Grafos Raimundo Macêdo LaSiD/DCC/UFBA Grafo Completo Grafo simples cujos vértices são dois a dois adjacentes. Usa-se a notação K n para um grafo completo

Leia mais

GRAFOS. Introdução Conceitos Fundamentais

GRAFOS. Introdução Conceitos Fundamentais GRAFOS Introdução Conceitos Fundamentais Uma aplicação do produto de matrizes Agora é a sua vez... Considere o diagrama seguinte Determine, o número de formas diferentes de ir de a 1 até e 2 e de a 2

Leia mais

Grafos AULA META. Introduzir noções elementares da teoria dos grafos. OBJETIVOS. Ao final da aula o aluno deverá ser capaz de:

Grafos AULA META. Introduzir noções elementares da teoria dos grafos. OBJETIVOS. Ao final da aula o aluno deverá ser capaz de: Grafos META Introduzir noções elementares da teoria dos grafos. OBJETIVOS Ao final da aula o aluno deverá ser capaz de: Representar grafos por meio de matrizes e diagramas; Caracterizar uma árvore; Identificar

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

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

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 a Grafos Letícia Rodrigues Bueno

Introdução a Grafos Letícia Rodrigues Bueno Introdução a Grafos Letícia Rodrigues Bueno UFABC Teoria dos Grafos - Motivação Objetivo: aprender a resolver problemas; Como: usando grafos para modelar os problemas; Grafos: ferramenta fundamental de

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

SCC Modelagem Computacional em Grafos Introdução a Grafos

SCC Modelagem Computacional em Grafos Introdução a Grafos SCC0216 - Modelagem Computacional em Grafos Introdução a Grafos Prof. Alneu (alneu@icmc.usp.br ) / Profa. Rosane (rminghim@icmc.usp.br) PAE: Alan (alan@icmc.usp.br) / Henry (henry@icmc.usp.br) Baseado

Leia mais

15 - Coloração Considere cada um dos grafos abaixo:

15 - Coloração Considere cada um dos grafos abaixo: 15 - Coloração 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 é o número

Leia mais

Introdução à Teoria do Grafos Notas de aula. Socorro Rangel últimas atualizações: (2009), (2012)

Introdução à Teoria do Grafos Notas de aula. Socorro Rangel últimas atualizações: (2009), (2012) Campus de São José do Rio Preto Introdução à Teoria do Grafos Notas de aula Socorro Rangel (socorro@ibilce.unesp.br) últimas atualizações: (2009), (2012) Instituto de Biociências Letras e Ciências Exatas

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 16: Grafos Planares. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 16: Grafos Planares. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 16: Grafos Planares Preparado a partir do texto: Rangel, Socorro. Teoria do

Leia mais

Universidade de Aveiro Departamento de Matemática ILDA MARIA DUARTE DE MATOS TEORIA DOS GRAFOS NO ENSINO BÁSICO E SECUNDÁRIO

Universidade de Aveiro Departamento de Matemática ILDA MARIA DUARTE DE MATOS TEORIA DOS GRAFOS NO ENSINO BÁSICO E SECUNDÁRIO Universidade de Aveiro Departamento de Matemática 2013 ILDA MARIA DUARTE DE MATOS TEORIA DOS GRAFOS NO ENSINO BÁSICO E SECUNDÁRIO Universidade de Aveiro Departamento de Matemática 2013 ILDA MARIA DUARTE

Leia mais

Percursos em um grafo

Percursos em um grafo Percursos em um grafo Definição Um percurso ou cadeia é uma seqüência de arestas sucessivamente adjacentes, cada uma tendo uma extremidade adjacente à anterior e a outra a subsequente (à exceção da primeira

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; Jorge Figueiredo e Judith Gersting Árvore

Leia mais

Matemática Discreta. Aula 06: Teoria dos Grafos. Tópico 01: Grafos e suas Representações. Observação

Matemática Discreta. Aula 06: Teoria dos Grafos. Tópico 01: Grafos e suas Representações. Observação Aula 06: Teoria dos Grafos Tópico 01: Grafos e suas Representações Nesta aula nós passamos a estudar um outro assunto, mas que também tem muita aplicação na vida prática, a Teoria dos Grafos. Para esta

Leia mais

Teoria dos Grafos. Profa. Alessandra Martins Coelho

Teoria dos Grafos. Profa. Alessandra Martins Coelho Teoria dos Grafos Profa. Alessandra Martins Coelho fev/2014 Avaliação 2 Provas 30 pontos cada; 3 Implementações 10 pontos cada; 1 Seminário 10 pontos; Listas de exercícios Listas não valem nota, entretanto...

Leia mais

Circuitos Eulerianos Ciclos Hamiltonianos O Problema do Caixeiro Viajante CAMINHAMENTOS BASEADO EM TOWNSEND (1987), CAP. 7.

Circuitos Eulerianos Ciclos Hamiltonianos O Problema do Caixeiro Viajante CAMINHAMENTOS BASEADO EM TOWNSEND (1987), CAP. 7. Matemática Discreta Capítulo 7 SUMÁRIO CAMINHAMENTOS BASEADO EM TOWNSEND (1987), CAP. 7 Circuitos Eulerianos Ciclos Hamiltonianos O Problema do Caixeiro Viajante Newton José Vieira 30 de julho de 2007

Leia mais

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

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 18: Coloração de Arestas Preparado a partir do texto: Rangel, Socorro. Teoria

Leia mais

Instituto de Computação Universidade Federal Fluminense. Notas de Aula de Teoria dos Grafos. Prof. Fábio Protti Niterói, agosto de 2015.

Instituto de Computação Universidade Federal Fluminense. Notas de Aula de Teoria dos Grafos. Prof. Fábio Protti Niterói, agosto de 2015. Instituto de Computação Universidade Federal Fluminense Notas de Aula de Teoria dos Grafos Niterói, agosto de 2015. Conteúdo 1 Conceitos Básicos 5 1.1 Grafos, vértices, arestas..................... 5 1.2

Leia mais

O PRINCÍPIO DAS GAVETAS Paulo Cezar Pinto Carvalho - IMPA

O PRINCÍPIO DAS GAVETAS Paulo Cezar Pinto Carvalho - IMPA Nível Intermediário O PRINCÍPIO DAS GAVETAS Paulo Cezar Pinto Carvalho - IMPA Muitos problemas atraentes de matemática elementar exploram relações entre conjuntos finitos, expressas em linguagem coloquial.

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

Folha 3.1. Grafos (não dirigidos)

Folha 3.1. Grafos (não dirigidos) Matemática para Ciência dos Computadores Outubro, 2005 Docente: n : n Folha 3.1 Grafos (não dirigidos) 1. (*) Seja V = {a, b, c, d, e, f, g} um conjunto de localidades e seja E = { a, b, a, f, b, e, b,

Leia mais

Introdução à Teoria de Grafos e Topologia em SIG. João Matos Departamento de Engenharia Civil e Arquitectura

Introdução à Teoria de Grafos e Topologia em SIG. João Matos Departamento de Engenharia Civil e Arquitectura Introdução à Teoria de Grafos e Topologia em SIG João Matos Departamento de Engenharia Civil e Arquitectura (Versão.0) Outubro 007 Motivação A teoria de grafos no contexto dos sistemas de informação geográfica

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

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Existem três companhias que devem abastecer com gás, eletricidade e água três prédios diferentes através de tubulações subterrâneas. Estas tubulações podem estar à mesma profundidade? Isto

Leia mais

Planaridade AULA. ... META Introduzir o problema da planaridade de grafos. OBJETIVOS Ao final da aula o aluno deverá ser capaz de:

Planaridade AULA. ... META Introduzir o problema da planaridade de grafos. OBJETIVOS Ao final da aula o aluno deverá ser capaz de: Planaridade AULA META Introduzir o problema da planaridade de grafos. OBJETIVOS Ao final da aula o aluno deverá ser capaz de: Distinguir grafo planar e plano; Determinar o dual de um grafo; Caracterizar

Leia mais

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Grafos Conceitos gerais e representações Algoritmos em grafos Exploração sistemática em largura Caminhos

Leia mais

1 Introdução à Teoria dos Grafos

1 Introdução à Teoria dos Grafos 1 Introdução à Teoria dos Grafos Informalmente, designamos por grafo um diagrama, que podemos representar graficamente no plano, de pontos e linhas com extremos nesses pontos. Nessa representação gráfica

Leia mais

Tópicos de Matemática Finita 1 a Chamada 30 de Junho de 2001

Tópicos de Matemática Finita 1 a Chamada 30 de Junho de 2001 Código do Exame: 02 Tópicos de Matemática Finita a Chamada 30 de Junho de 200 Nome: Número: Curso: O exame que vai realizar tem a duração de 3 horas. consiste em: 2 questões de ecolha múltipla, valendo

Leia mais

Tópicos de Matemática Finita 1 a Chamada 30 de Junho de 2001

Tópicos de Matemática Finita 1 a Chamada 30 de Junho de 2001 Código do Exame: 0 Tópicos de Matemática Finita a Chamada 30 de Junho de 200 Nome: Número: Curso: O exame que vai realizar tem a duração de 3 horas. consiste em: 2 questões de ecolha múltipla, valendo

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Árvores Algoritmo de Kruskal O algoritmo de Kruskal permite determinar a spanning tree de custo mínimo. Este custo corresponde à soma dos pesos (distância, tempo, qualidade,...) associados

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

Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ

Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ Suponha que temos um grupo de pessoas (funcionário de uma empresa) que serão submetidos a um treinamento. Queremos identificar os grupos de

Leia mais

Teoria dos Grafos AULA 3

Teoria dos Grafos AULA 3 Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br AULA 3 Trajetos, Caminhos, Circuitos, Grafos Conexos Preparado

Leia mais

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

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 09: Representação de Grafos Preparado a partir do texto: Rangel, Socorro. Teoria

Leia mais

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

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A de Oliveira, Socorro Rangel, Silvio A de Araujo Departamento de Matemática Aplicada Capítulo 12: Grafos Hamiltonianos Preparado a partir do texto: Rangel, Socorro Teoria do

Leia mais