Teoria do Grafos. Prof. Luiz Fernando L. Nascimento

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

CONCEITOS BÁSICOS EM GRAFOS

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

Grafos IFRN. Robinson Alves

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

Conceito Básicos da Teoria de Grafos

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

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

Conceitos Básicos da Teoria de Grafos

Cap. 2 Conceitos Básicos em Teoria dos Grafos

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 /

Definição e Conceitos Básicos

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

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

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

Teoria dos Grafos AULA 3

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

Teoria dos Grafos. Edson Prestes

As Pontes de Königsberg

Teoria dos Grafos Introdu c ao

Algoritmos em Grafos - Aula 02 Introdução à Teoria dos Grafos

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes

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

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

Definições Básicas para Grafos

Grafos Orientados (digrafos)

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

Teoria dos Grafos. Motivação

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

Teoria dos Grafos Aula 2

Introdução à Teoria dos Grafos. Isomorfismo

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

Teoria dos Grafos. Edson Prestes

CI065 CI755 Algoritmos e Teoria dos Grafos

Teoria dos Grafos. Edson Prestes

x y Grafo Euleriano Figura 1

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

1.3 Isomorfismo 12 CAP. 1 CONCEITOS BÁSICOS

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

Matemática Discreta. Aula nº 22 Francisco Restivo

2 Relação entre soma dos graus e número de arestas

Teoria dos grafos. Caminho euleriano e Hamiltoniano. Prof. Jesuliana N. Ulysses

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

Matemática Discreta 10

Grafos Planares. Grafos e Algoritmos Computacionais. Prof. Flávio Humberto Cabral Nunes

Grafos Eulerianos e o Problema do Carteiro Chinês

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

Grafo planar: Definição

Teoria dos Grafos. Componentes, Conj. Indep., Cliques

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

1 Trajeto Euleriano. > Trajeto Euleriano 0/20

Teoria dos Grafos. Edson Prestes

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

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

Pesquisa Operacional

Teoria dos Grafos. Edson Prestes

Percursos em um grafo

Cortes (cut sets) 2010/2 Teoria dos Grafos (INF 5037/INF2781) CC/EC/UFES

GRAFOS ORIENTADOS. PSfrag replacements. Figura 1: Exemplo de um grafo orientado.

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

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

BCC204 - Teoria dos Grafos

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

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Cobertura, Coloração de Arestas, Emparelhamento

Teoria dos Grafos Aula 6

ANÁLISE COMBINATÓRIA

Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko. Capítulo 3

A resposta para este problema envolve a partição do conjunto de arestas de tal forma que arestas adjacentes não pertençam a um mesmo conjunto.

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

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

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

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

Teoria dos Grafos. Edson Prestes

PCC173 - Otimização em Redes

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

Teoria dos Grafos Aula 2

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

Teoria dos Grafos Aula 5

APLICAÇÕES DA TEORIA DOS GRAFOS

Teoria dos Grafos. Teoria dos Grafos. Profa. Sheila Morais de Almeida DAINF-UTFPR-PG. agosto

Alguns probleminhas...

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

Pesquisa Operacional II. Professor João Soares de Mello

Teoria dos Grafos. Edson Prestes

A resposta para este problema envolve a partição do conjunto de arestas de tal forma que arestas adjacentes não pertençam a um mesmo conjunto.

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

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 2. Conceitos Básicos da Teoria da Computação

Teoria dos Grafos. Conjuntos de Corte e Conectividade

Árvores: Conceitos Básicos e Árvore Geradora

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

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

Introdução à Teoria dos Grafos

INE Fundamentos de Matemática Discreta para a Computação

1.2 Grau de um vértice

Aula 10: Tratabilidade

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

O grau de saída d + (v) de um vértice v é o número de arcos que tem

Teoria dos Grafos. Edson Prestes

Transcrição:

Teoria do Grafos Prof. Luiz Fernando L. Nascimento Versão 3.0-2015

Introdução aos Grafos - A história das pontes é de 300 anos atrás. Königsberg foi uma importante cidade da Prússia, localizada ao norte da Europa, próximo à costa do Mar Báltico, e que hoje é chamada de Kaliningrado. A cidade possuía duas ilhas cortadas pelo Rio Pregel e, na época, seis pontes as ligavam às margens e outra fazia a ligação das duas ilhas entre si. Por volta de 1735, os moradores de Königsberg se desafiaram com o seguinte problema: Como seria possível fazer um passeio a pé pela cidade de forma a passar uma única vez por cada uma das sete pontes e retornar ao ponto de partida.

Introdução aos Grafos Mapa 2014 Google Maps

Introdução aos Grafos Na época, foi o matemático Leonhard Euler quem decifrou o enigma, revelando ser impossível tal façanha. Euler raciocinou da seguinte maneira: Ao atravessar cada ponto, são gastos exatamente duas linhas, uma para entrar no ponto e outra para sair. Para atravessar qualquer vértice, são gastas duas linhas, uma para entrar no vértice e outra para sair. Conclusão, cada vértice deve ter grau par de linhas. Como o grafo das pontes de Königsberg tem pontos de grau ímpar, o problema não pode ter solução.

Definições Básicas Definição 1: Denomina-se grafo (G) o par G=(V,A) em que: V é o conjunto de vértices ou nodos, sendo esse um conjunto finito. A é o conjunto de arestas, sendo que essas arestas são formadas por pares ordenados e = (v,w), onde v e w V, isto é, A é subconjunto de V. Exemplo: V={1,2,3,4} A={(1,2),(1,3),(2,3),(2,4),(3,4)} Nota: É também referenciada pela letra E (edges)

Definições Básicas Definição 2: Um grafo G é definido por G = (V, E), sendo que V representa o conjunto de nós e E, o conjunto de arestas (i, j), onde i, j V. Dois nós i, j são vizinhos, denotado por i j, se eles estão conectados por uma aresta. Exemplos de grafos. O grafo G 1 consiste dos conjuntos V = {a, b, c, d, e} e E = { e 1, e 2, e 3, e 4, e 5, e 6 }; G 2 possui o nó c que não é conectado a nenhum outro nó do grafo.

Definições Básicas Exemplo: G=(V,A) V={1,2,3,4} A={(2,1),(1,3),(3,2),(4,2),(4,3)} arcos ( Digrafo )

Definições Básicas Exemplo: G=(V,A) V={1,2,3,4} A={(1,2),(1,3),(2,3),(2,4),(3,4)} Os vértices v e w dizem-se adjacentes (vizinhos) se existe uma aresta incidente em ambos. (Incidente = sai de um vértice e chega em outro) v w O número de arestas incidentes em v diz-se o grau de v G =(V,A ) V ={1,2,3} A ={(1,2),(1,3),(2,3)} Lê-se: V é subconjunto de V A é subconjunto de A

Definições Básicas Multigrafo ou pseudografo : É um grafo não dirigido que pode possuir arestas múltiplas (ou paralelas), ou seja, arestas com mesmos nós finais. Assim, dois vértices podem estar conectados por mais de uma aresta. Formalmente, um multigrafo G é um par ordenado, sendo: V: um conjunto de vértices ou nós, E: um multiconjunto de pares não-ordenados de vértices, chamado arestas ou linhas.

Definições Básicas Grafo (simples) Um grafo é dito ser simples se não existirem arestas paralelas (mais do que 1 aresta entre um par de vértices),nem lacetes (arestas com ambos os extremos no mesmo vértice) Multigrafo Com lacetes e/ou arestas paralelas

Definições Básicas Ordem (cardinalidade) A ordem de um grafo G é dada pela cardinalidade do conjunto de vértices, ou seja, pelo número de vértices de G. G 1 G 2 ordem(g 1 ) = 4 ordem(g 2 ) = 6

Definições Básicas Vértices Vizinhos (neighbors) Defini-se como vértices vizinhos os vértices que estão conectados as mesmas arestas que o vértice em questão: Para descobrir os vértices vizinhos (vizinhança) de um vértice u verifica-se se existe um vértice w que pertence ao conjunto de vértices de G tal que a aresta identificada por u w pertença ao conjunto de arestas de G. Exemplo: O grafo dos estados do Brasil é definido assim: cada vértice é um dos estados da República Federativa do Brasil; dois estados são adjacentes se têm uma fronteira comum. Quantos vértices tem o grafo? Quantas arestas?

Definições Básicas Conjunto independente e Clique No grafo G os conjuntos {3,5,6} e {1,4,6,8} são independentes; Nesse mesmo grafo, {8}, {6,7} e {1,2,5} são cliques, o último de cardinalidade máxima. Considerando o grafo G

Definições Básicas Definição 1: Dizemos que o grafo H é um subgrafo do grafo G se, e somente se, V (H) V (G) e E(H) E(G) e nesse caso escrevemos H G para indicar que H é subgrafo de G. Definição 2: Um sub-grafo de um grafo G é um grafo H cujos vértices e arestas estão todos em G. Se H é sub-grafo de G, também pode-se dizer que G é um super-grafo de H. G H G H

Introdução aos Grafos Grau O grau de um vértice é dado pelo número de arestas que lhe são incidentes. O grau de um nó u (ou valência), denotado por d G (u) é o número E(u) de arestas em u. Um nó de grau 0 é um nó isolado.

Definições Básicas Um vértice que possui grau zero é um vértice isolado. Caso o grafo não contenha nenhuma aresta, todos os vértices são isolados e o grafo é chamado grafo nulo Vértice Isolado (ou trivial) Grafo Nulo Chamamos G 0 = (, ) de grafo vazio e todo grafo de ordem 1 de grafo trivial.

Definições Básicas Grafo Regular Um grafo é dito ser regular quando todos os seus vértices tem o mesmo grau. O grafo G 4, por exemplo, é dito ser um grafo regular-3, pois todos os seus vértices tem grau 3. Grau 1 Grau 2 Grau 3 Grau4 Um grafo no qual todos os vértices têm o mesmo grau r é chamado grafo regular de grau r ou r-regular. Exemplo: 2-regular (quadrado)

Definições Básicas Grafo irregular Um grafo é altamente irregular se cada um de seus vértices é adjacente a vértices de graus diferentes entre si.

Introdução aos Grafos Grafo Completo Definição 1: Um grafo é dito ser completo quando há uma aresta entre cada par de seus vértices. Estes grafos são designados por K n, onde n é a ordem do grafo. Um grafo K n possui o número máximo possível de arestas para um dados n. Ele é, também regular-(n-1) pois todos os seus vértices tem grau n-1. K1 = Grafo Trivial Definição 2: Um grafo completo G=(V,E) com V vértices, denotado por K v, é um grafo simples onde todo par de vértices é ligado por uma aresta. Em outras palavras, um grafo completo é um grafo simples que contém o número máximo de arestas.

Lemas e Teoremas Grafo Completo Teorema 1-1: O número de arestas em um grafo completo é n(n-1)/2. Prova: A prova é por indução matemática. Chamaremos G n um grafo que contém n vértices. Consideramos primeiro o caso, um grafo trivial. Nesse caso, como existe somente um vértice, é impossível definir uma aresta que não seja um laço. Então não pode existir nenhuma aresta. Portanto n(n-1)/2 = 0. Suponhamos que a hipótese é verdadeira para G n, onde n 1. Seja agora o grafo G n+1. Precisamos provar que o número de vértices nesse grafo é n(n+1)/2. Seja v n+1 o vértice adicional que se encontra em G n+1 e não em G n. O número máximo de arestas no grafo G n+1 é igual ao número máximo no grafo G n mais todas as ligações possíveis entre v n+1 e cada vértices de G n. Como esse número de ligações é igual ao número de vértices em G n, temos: Uma outra maneira de chegar a esse resultado e considerar o fato que o número de arestas em um grafo completo de n vértices corresponde a todos os pares possíveis (u, v), onde u e v são vértices. Assim, o número de vértices é:

Lemas e Teoremas Lema 1.1. A soma dos graus de todos os vértices de um grafo é um número par. Prova: Suponhamos que um grafo G tenha n vértices e m arestas. Como cada aresta contribui com dois graus, a soma dos graus relacionados a todas as arestas de G é duas vezes o número de arestas, ou seja, Teorema 1-2: O número de vértices de grau ímpar de um grafo é sempre par. Prova: Separando os vértices de grau par e os de grau ímpar, a soma pode ser separada em duas somas: onde PAR e IMPAR são os conjunto de vértices de grau par e impar, respectivamente. Como a soma na esquerda é par (=2m) e a primeira soma do lado de direita também é par, por ser uma soma de números pares, a segunda também tem que ser par. Como todo valor d(vl) é ímpar, a quantidade de itens na soma tem que ser par

Definições Básicas Grafo Bipartido Um grafo é dito ser bipartido quando seu conjunto de vértices V puder ser particionado em dois subconjuntos V 1 e V 2, tais que toda aresta de G une um vértice de V 1 a outro de V 2. Chamamos um grafo G de grafo bipartido se existem dois conjuntos independentes A e B em G que particionam V (G), isto é, A B = e A B = V (G).

Definições Básicas Grafo K-partido K-partido: Existe uma partição P = { Y i i = 1,..., k, Y i Y j = ᴓ, i j } do seu conjunto de vértices, tal que não existam ligações entre elementos de um mesmo Y i

Definições Básicas Grafo Bipartido Completo - K n,m Um grafo é bipartido em V 1 elemento de V 2. e V 2, sendo que cada elemento de V 1 é adjacente a cada V 1 =m e V 2 = n Comparação entre um Grafo Bipartidos e Bipartido Completo

Definições Básicas Problema: Você tem que levar água, luz e esgoto para 3 casas de uma cidade. As fornecedoras de água (A), luz (L) e esgoto (E) permitem que os canos distribuidores não sejam retos. São canos flexíveis e podem ser arrumados da forma que você desejar. Os canos JAMAIS podem se cruzar e/ou invadir a região interna de qualquer casa e de qualquer fornecedora. A profundidade de encanamentos sob os terrenos da cidade que a prefeitura tolera é única. Ou seja, assuma no esquema que todos os canos são como linhas no mesmo plano. Solução: Segundo o Teorema de Kuratowski, um grafo planar não pode apresentar nem o grafo completo K 5 nem o grafo bipartido K 3,3 como subgrafos. A prova de que o K 3,3 não é planar pode ser feita de duas formas: por indução e por construção, enquanto a do K 5 é feita apenas por construção. Não é possível redesenhar estes grafos sem que suas arestas se cruzem.

Definições Básicas Grafo Conexo Um grafo diz-se conexo se quaisquer que sejam os vértices distintos u e v existe sempre um caminho que os une. Quando tal não acontece o grafo diz-se desconexo. A representação gráfica destes grafos contém no mínimo duas "partes" e cada uma dessas partes é uma componente conexa. Para além de grafos conexos e desconexos podemos ainda encontrar grafos totalmente desconexos, quando não existe nenhuma aresta. Considerando o conceito de componente conexa, um grafo é dito ser conexo se ele possui apenas uma única componente conexa.

Definições Básicas Conectividade é um dos conceitos básicos da teoria dos grafos: fala sobre o número mínimo de elementos (vértices ou arestas) que precisam ser removidas para desconectar os vértices restantes uns dos outros. É um tema fortemente ligado a teoria dos problemas de fluxo de redes. A conectividade de um grafo é uma importante medida da robustez de uma rede. Rede conexa utilizando Diferentes equipamentos portáteis Sensor RSSF Modulo Zibee Exemplo de conectividade em Rede de Sensores Sem Fio Exemplo (simulação NS2) https://www.youtube.com/watch?v=vn0pmkj3s-a

Definições Básicas Vértice de articulação ou vértice de corte: é um vértice de um grafo conexo em que sua remoção torna o grafo desconexo. Qualquer grafo que contenha um vértice de articulação é considerado frágil. Vértice de corte (articulação) A conectividade de vértices k(g) de um grafo G=(VA) é o menor número de vértices cuja remoção desconecta G ou o reduz a um único vértice, isto é, quantos vértices são necessário para que o grafo se torne desconexo. K = Kappa (Letra Grega)

Definições Básicas Vértice de articulação ou vértice de corte: é um vértice de um grafo conexo em que sua remoção torna o grafo desconexo. Qualquer grafo que contenha um vértice de articulação é considerado frágil. Remoção do vértice 4 criou duas componentes conexas

Definições Básicas Ponte ou aresta de corte: é a aresta de um grafo conexo em que sua remoção torna o grafo desconexo. Qualquer grafo que também contenha uma única aresta de corte é considerado frágil. d g a c f b e h Aresta de corte (ponte) e={c,f} A conectividade de arestas K'(G) de um grafo G=(V,A) é o menor número de arestas cuja remoção resulta em um grafo não conexo. K = Kappa (Letra Grega)

Definições Básicas Ponte ou aresta de corte: é a aresta de um grafo conexo em que sua remoção torna o grafo desconexo. Qualquer grafo que também contenha uma única aresta de corte é considerado frágil. d g a c f b e h A conectividade de arestas K'(G) de um grafo G=(V,A) é o menor número de arestas cuja remoção resulta em um grafo não conexo. K = Kappa (Letra Grega)

Introdução aos Grafos Grafos Planares Um grafo pode ser desenhado no plano sem cruzamento de arestas se e somente se o grafo não contém um sub-grafo completo K 5, nem um sub-grafo bipartido K 3,3 Uma aplicação que utiliza o conceito de grafos planares é a disposição de circuitos impressos numa placa. Um circuito eletrônico pode ser considerado um grafo onde as junções são vértices e as arestas são os fios ligando as junções.

Introdução aos Grafos Grafos Planares Um grafo pode ser desenhado no plano sem cruzamento de arestas se e somente se o grafo não contém um sub-grafo completo K 5, nem um sub-grafo bipartido K 3,3 Em Teoria dos Grafos, um grafo planar é um grafo que pode ser imerso no plano de tal forma que suas arestas não se cruzem.

Introdução aos Grafos Grafo Rotulado ou Valorado Grafo Rotulado ou valorado em vértices ou arestas: a cada vértice ou cada aresta é atribuído um rótulo.

Definições Básicas Vetor de grau O vetor de grau d(g) de um grafo G é a sequência dos graus dos vértices de G em ordem não crescente. Note que dois grafos não isomorfos podem ter o mesmo vetor de grau. Por exemplo, o vetor de grau do grafos G é o seguinte: [3,3,3,3,2,2,2,2]

Definições Básicas Representação do grafo Uma das formas mais simples de representar um grafo no computador é usando matrizes. Representar grafos por matrizes permite usar as ferramentas da álgebra linear para tratar grafos. As representações usuais: Matriz de adjacência e Matriz de incidência.

Introdução aos Grafos Matriz de Adjacência Definição: Se G é um grafo com vértices {1,2,3,...,n}, sua matriz de adjacência é a matriz n x n cujo elemento ij é o número de arestas ligando o vértice i ao vértice j;

Definições Básicas Lista de Adjacência Como a matriz de adjacência e a matriz de incidência são compostas, em sua maior parte, por zeros, é possível construir uma representação mais eficiente, no que diz respeito ao uso de memória. Definição: Uma lista de incidência é uma tabela que lista, para cada vértice v, todos as arestas incidentes em v.

Definições Básicas Matriz de Incidência Ideia: associar vértices às linhas e arestas às colunas elemento da matriz indica se aresta incide sobre o vértice. Matriz de incidência Matriz n x m (n = vértices, m = arestas) a ij = 1, se vértice i incide sobre aresta j a ij = 0, caso contrário

Definições Básicas Exercício: Construir o Grafo G com baseado na seguinte matriz de incidência

Definições Básicas Isomorfismo: Definição1: Dois grafos G1=(V1,E1) e G2=(V2,E2) são ditos isomorfos entre si se existe uma correspondência entre os seus vértices e arestas de tal maneira que a relação de incidência seja preservada. Em outros termos, temos V1 = V2 e existe uma função unívoca f: V1 V2, tal que (i,j) é elemento de E1 se e somente se (ƒ(i),f(j)) é elemento de E2. Definição2: Dados os grafos simples G1=(V1, E1) e G2=(V2, E2 ), esses são isomorfos se: G1 e G2 possuírem a mesma quantidade de vértices e arestas G1 e G2 possuírem o mesmo vetor de graus Existir uma função bijetora f:v1 V2 tal que a e b são adjacentes em G1 se f(a) e f(b) são adjacentes em G2 A função f é chamada de um isomorfismo

Definições Básicas Isomorfismo: Para ver o isomorfismo dos grafos acima, podemos utilizar a seguinte função: f(a) = 1, f(b) = 2, f(c) = 3, f(d) = 8, f(e) = 5, f(f) = 6, f(g) = 7, f(h) = 4. Observação: Analise primeiro a quantidade de vértices, arestas, o vetor de graus e por fim a relação de correspondência.

Definições Básicas Clique: Clique é um subgrafo completo.

Definições Básicas Clique: Clique ou grafo completo é um grafo, ou subgrafo, em que seus vértices são interligados ou adjacentes dois a dois; de forma que o caminho mais curto entre quaisquer dois vértices v e w é a aresta (v,w). Clique { 2,3,4} Clique Máxima { 4,5,6,7}

Definições Básicas Clique Máxima: Uma clique C é máxima se não existe clique C' que seja maior que C. Clique Máxima: {7,8,9,10} Clique Maximal: Uma clique C é maximal se não existe clique C' que seja superconjunto próprio de C. Isto é, uma clique maximal é um grafo C tal que ele é um grafo completo. Clique Maximal C = C

Exercícios Exercícios 1. Demostre através de grafos que se V(G) possui Δ(G) ímpar o grafo é sempre par. Exercícios 2. Mostre que num grafo com δ(g) > 0 e E(G) < V(G) existem pelo menos dois vértices de grau 1. Exercícios 3. Mostre que todo grafo com dois ou mais vértices tem pelo menos dois vértices de mesmo grau.

Definições Básicas Exercício 4 Construa a matriz de adjacência dos seguintes grafos e verifique se G e H são grafos isomorfos. G H Exercício 5 Construa a matriz de adjacência dos seguintes grafos e verifique se G e H são grafos isomorfos. G H

Isomorfismo de Grafos Exercício 6: Verifique se o grafos G e H e K são isomorfos entre si.

Exercícios Exercício 7. Um químico deseja embarcar os produtos A,B,C,D,E,F,X usando o menor número de caixas. Alguns produtos não podem ser colocados numa mesma caixa porque reagem. Os produtos A,B,C,X reagem dois-a-dois; A reage com F e com D e viceversa; E também reage com F e com D e vice-versa. Descreva o grafo que modela essa situação, mostre um diagrama desse grafo e use esse grafo para descobrir o menor número de caixas necessárias para embarcar os produtos com segurança.

Exercícios Exercício 8. Apresente o maior número de representações gráficas possíveis, utilizando 6 diferentes vértices. Descreva o vetor de graus de cada um deles. Exercício 9. Analise a matriz M 1, apresente: M 1 = a) uma clique máxima b) o Vértice de Articulação, além disso e caso exista, informe a quantidade de componentes conexas que M 1 terá se esse ponto de articulação for removido. c) Denotado como dg(u) o grau de um vértice, apresente o vetor de graus (vet)= dg(u) u V(G)

Exercícios Exercício 10. Analise a matriz M 2 abaixo apresentado e responda as seguintes questões: M 2 = a) Construa o grafo de M 2; b) Em M 2 aresta E(G) é dado por: c) Denotado como dg(u) o grau de um vértice, apresente Δ(G) max {dg(u) u V(G)}

Definições Básicas Exercício 11. Adaltina esperava 4 amigas Brandelina, Clodina, Dejaina e Edina para um lanche em sua casa. Enquanto esperava preparou os lanches: Bauru, Misto quente, Misto frio e X-salada. Brandelina gosta de Misto frio e de X-salada; Clodina de Bauru e X-salada; Dejaina gosta de Misto quente e Misto frio; Edina gosta de Bauru e Misto quente. Descreva o grafo que modela essa situação, mostre um diagrama desse grafo e use esse grafo para descobrir se é possível que cada amiga de Adaltina tenha o lanche que gosta.

Definições Básicas Exercício 12. Prove que um grafo G completo e regular com 8 vértice possui mais de 25 arestas. A prova é feita por : Conforme o Teorema 1.1 (slide. 20)...... Exercício 13. Prove que se um grafo tem 100 vértices e mais de 4950 arestas então ele não é simples. Exercício 14. Prove que se um grafo tem 100 vértices e menos de 99 arestas então ele não pode ser conexo. Exercício 15. Desenhe um grafo um grafo K 3,4. Exercício 16. Apresente a matriz de adjacência de um grafo K 4,4

Definições Básicas Exercício 17. Liste todos os grafos simples não-isomorfos de ordem 4. Para cada um diga de que tipo ele é: se é completo, bipartido, bipartido completo, regular. Exercício 18. Quantas arestas tem o grafo completo Kn? Quantas arestas tem o grafo completo K m,n? Exercício 19. Prove que um grafo simples de ordem n com mais do que n²/4 arestas não é bipartido. Exercício 20: Quantas arestas tem um grafo com seguinte vetor de graus {5; 2; 2; 2; 2; 1}? Desenhe um possível grafo.

Definições Básicas Exercício 21: Mostre que não existem grafos k-regulares com k ímpar que possuam um número ímpar de vértices. Exercício 22: Pode haver um grafo simples com 15 vértices, cada um com grau 5? Exercício 23. São Isomorfos? Justifique

Definições Básicas Exercício 24: Analise os seguintes grafos e determine se cada um dos grafos abaixo é bipartido. Justifique a resposta.

Definições Básicas Caminho: Um caminho é qualquer grafo da forma ({v 1, v 2,..., v n }, {v i v i+1 : 1 i < n}). Em outras palavras, um caminho é um grafo C cujo conjunto de vértices admite uma permutação (v 1, v 2,..., v n ) tal que {v1v2, v2v3,..., vn 1vn} = A(C) Os vértices v1 e vn são os extremos do caminho. O caminho que acabamos de descrever pode ser denotado simplesmente por v1v2 vn. Por exemplo, o grafo ({u, v, w, z}, {wz, vz, uw}) é um caminho, que pode ser denotado por uwzv.

Circuito e Caminho Euleriano Caminhos eulerianos são caminhos nos quais se utilizam todas as arestas uma e uma só vez num dado grafo. Podemos ter um caminho aberto ou fechado (circuito). A diferença entre um caminho euleriano aberto e um fechado está no final do caminho. Caso a origem e o destino sejam o mesmo vértice, então teremos um caminho fechado. Caso a partida não coincida com a chegada teremos um caminho euleriano aberto. Nos caminhos eulerianos, precisamos passar por todas as arestas do grafo e não podemos repeti-las. Uma forma de identificar um caminho eureliano é desenhar o grafo com lápis sem tirá-lo do papel e sem redesenhar nenhuma parte.

Circuito e Caminho Euleriano Exemplo 01: Quais dos grafos direcionados abaixo possuem um circuito Euleriano? Entre os que não tem, quais tem um caminho Euleriano?

Circuito e Caminho Euleriano Exemplo 01: Quais dos grafos direcionados abaixo possuem um circuito Euleriano? Entre os que não tem, quais tem um caminho Euleriano? Em H 1 Não existe um um caminho Euleriano. {a-d-c-b} Em H 2 Existe um um caminho e um circuito Euleriano. {d-f-a-g-c-b-g-e-d} Em H 3 Existe um caminho possível, de forma a passar por todas as arestas do grafo, logo H 3 possui caminho Euleriano sem no entanto ser um caminho fechado. { c-a-b-c-d-b}

Circuito e Caminho Euleriano Exemplo 02: Quais dos grafos abaixo possuem caminho Euleriano? G1 G2 G3

Circuito e Caminho Euleriano Exemplo 02: Quais dos grafos abaixo possuem caminho Euleriano? G1 G2 G3 Ao contrário do exemplo anterior, o grafo G 1 não é orientado. Nesse caso, existe somente um caminho euleriano. {d-c-b-a-d-b} Em G 2 É possível passar por todas as arestas do grafo. Logo G 2 possui caminho, porém o vértice de origem e destino são diferentes, nesse caso não há um circuito euleriano. { b-a-g-f-c-b-g-c-d } Em G 3 não foi possível passar por todas as arestas do grafo. Logo não há um caminho e nem um circuito euleriano. { a-b-g-c-d-g-e-f-g-a }

Exercícios Exemplo 02: Quais dos grafos não direcionados abaixo possuem um circuito Euleriano? Entre os que não tem, quais tem um caminho Euleriano?

Circuito e Caminho Euleriano Teorema: Um grafo conexo G = (V, A) admite caminho euleriano se, e somente se, todos os vértices tiverem grau par ou, apenas dois tiverem grau ímpar. Prova: Se os vértices inicial e final do caminho são distintos, eles são os únicos que podem ter grau ímpar, se orientados as arestas pelo sentido do caminho, cada vértice intermediário terá d( x i ) /2 entradas e d( x i ) /2 saídas, onde d( x i ) representa o grau do vértice x i, ou então o caminho não poderá prosseguir, em um dado momento sem repetir a aresta: logo, d( x i ) deverá ser par, para todo vértice intermediário. Se o caminho é fechado todo vértice será intermediário e não poderão existir vértices de grau ímpar.

Circuito e Caminho Hamiltoniano Hamiltoniano: Um circuito passando exatamente uma vez por cada vértice de um grafo é chamado de circuito hamiltoniano, em homenagem ao matemático irlandês William Rowan Hamilton (1805-1865), que estudou este problema no grafo determinado pelas arestas de um dodecaedro regular. Caminho Hamiltoniano é caminho que passa por todos os vértices do grafo uma única vez Circuito Hamiltoniano é circuito que parte de um vértice, visita todos os outros vértices uma única vez e então retorna ao vértice inicial

Exercícios Questão 00: Quais dos grafos abaixo possuem um caminho Hamiltoniano? Entre os que não tem, quais os grafos que possuem circuitos Hamiltoniano?

Circuito e Caminho Euleriano Teorema: Um grafo conexo G = (V, A) admite caminho euleriano se, e somente se, todos os vértices tiverem grau par ou, apenas dois tiverem grau ímpar. Prova: Se os vértices inicial e final do caminho são distintos, eles são os únicos que podem ter grau ímpar, se orientados as arestas pelo sentido do caminho, cada vértice intermediário terá d( x i ) /2 entradas e d( x i ) /2 saídas, onde d( x i ) representa o grau do vértice x i, ou então o caminho não poderá prosseguir, em um dado momento sem repetir a aresta: logo, d( x i ) deverá ser par, para todo vértice intermediário. Se o caminho é fechado todo vértice será intermediário e não poderão existir vértices de grau ímpar.

Circuito e Caminho Hamiltoniano Hamiltoniano: Um circuito passando exatamente uma vez por cada vértice de um grafo é chamado de circuito hamiltoniano, em homenagem ao matemático irlandês William Rowan Hamilton (1805-1865), que estudou este problema no grafo determinado pelas arestas de um dodecaedro regular. Caminho Hamiltoniano é caminho que passa por todos os vértices do grafo uma única vez Circuito Hamiltoniano é circuito que parte de um vértice, visita todos os outros vértices uma única vez e então retorna ao vértice inicial

Caminho Hamiltoniano G A... em um grafo é o caminho que visita cada vértice, exatamente uma vez. B Vértices Visitados A B C D E F G F C E D

Caminho Hamiltoniano G A B Vértices Visitados A B C D E F G F C E D

Caminho Hamiltoniano G A B Vértices Visitados A B C D E F G F C E D

Caminho Hamiltoniano G A B Vértices Visitados A B C D E F G F C E D

Caminho Hamiltoniano G A B Vértices Visitados A B C D E F G F C E D

Caminho Hamiltoniano G A B Vértices Visitados A B C D E F G F C E D

Caminho Hamiltoniano G A B Vértices Visitados A B C D E F G F C E D

Caminho Hamiltoniano G A B Vértices Visitados A B C D E F G F C E D

Circuito Hamiltoniano A... em um grafo é o caminho que visita cada vértice, exatamente uma vez, retornando em seguida ao vértice inicial G B F E D C Vértices Visitados A..... B

Exercícios Questão 00: Quais dos grafos abaixo possuem um caminho Hamiltoniano? Entre os que não tem, quais os grafos que possuem circuitos Hamiltoniano?

Árvore Geradora

Árvore Geradora Subgrafo gerador O subgrafo gerador (ou de espalhamento) de um grafo G1(V1,E1) é um subgrafo G2(V2,E2) de G1 tal que V1=V2. Ou seja, G2 contém todos os vértices de G1 Quando o subgrafo gerador é uma árvore, ele recebe o nome de árvore geradora (ou de espalhamento spanning tree). Centro de Informática - UFPE 80

Árvore Geradora Árvore geradora Uma árvore T é denominada árvore geradora de um grafo conexo G se T é um sub-grafo de G e contém todos os vértices de G Centro de Informática - UFPE 81

Árvore Geradora Subgrafo e Árvore geradora (b) e (c) são subgrafos geradores de (a) (c) é árvore geradora de (a) e (b) Centro de Informática - UFPE 82

Árvore Geradora Teorema Um grafo simples é conexo se e somente se possui uma árvore geradora Prova: 1) Se G (simples) possui uma árvore geradora então G é conexo Seja T a árvore geradora de G. T contem todos os nós de G. Existe um caminho em qualquer dois nós de T. Como T é subgrafo de G e contem todos os nós de G, existe um caminho entre quaisquer dois nós de G. Logo G é conexo Centro de Informática - UFPE 83

Árvore Geradora Prova: 2) Se G (simples) é conexo então ele possui uma árvore geradora. Se G é conexo e não é uma árvore, ele deve conter um circuito simples. Remova uma aresta de um desses circuitos simples. O subgrafo resultante dessa operação possui uma aresta a menos, mas contem todos os nós de G e ainda é conexo. Se esse subgrafo não é uma árvore, ele possui um circuito simples. Do mesmo modo, remova uma aresta desse circuito. Repita esse processo até que não haja mais circuitos. O resultado é uma árvore geradora de G. Centro de Informática - UFPE 84

Árvore Geradora Algoritmo para achar a árvore geradora Se G não contém nenhum ciclo ele já é a sua própria árvore geradora. Suponhamos agora que ele contém um ciclo. Tirando uma aresta desse ciclo resulta em um grafo ainda conexo. Continuando assim até que não tenha nenhum ciclo, o grafo obtido é um grafo conexo que é uma árvore. Centro de Informática - UFPE 85

Árvore Geradora Algoritmo para achar a árvore geradora O algoritmo baseado na prova do teorema não é eficiente, pois ele requer que circuitos simples sejam identificados. No lugar de construir árvores geradoras retirando arestas do grafo, vamos construí-las adicionando arestas sucessivamente. Podemos fazer isso de duas maneiras 1) Fazendo busca em profundidade 2) Busca em largura Centro de Informática - UFPE 86

Árvore Geradora Busca em profundidade para achar a árvore geradora (depth-first search) 1) Arbitrariamente escolha um nó do grafo para a raiz. 2) Construa um caminho começando por esse nó, adicionando arestas sucessivamente, onde cada nova aresta é incidente com o último nó do caminho e com um nó ainda não pertencente ao caminho 3) Continue adicionando arestas a esse caminho para ir o mais longe possível. 4) Se o caminho possui todos os nós do grafo, então o caminho é a árvore geradora do grafo. 5) Caso contrário, retorne ao nó mais próximo de maneira que um novo caminho possa ser construído a partir desse nó e que contenha nós ainda não visitados. 6) Esse processo continua até que todos os nós sejam incluídos na árvore geradora Centro de Informática - UFPE 87

Árvore Geradora Busca em profundidade para achar a árvore geradora (depth-first search) - Exemplo Centro de Informática - UFPE 88

Árvore Geradora Busca em profundidade para achar a árvore geradora (depth-first search) - Exemplo Backtracking Centro de Informática - UFPE 89

Árvore Geradora Busca em largura para achar a árvore geradora (breadth-first search) 1) Arbitrariamente escolha um nó do grafo para a raiz. 2) Adicione todas as arestas incidentes a esse nó 3) Os novos nós adicionados se tornam os nós do nível 1 da árvore geradora 4) Arbitrariamente, ordene os nós do nível 1 5) Seguindo essa ordem, acrescente cada aresta incidente com os nós do nível, desde que ela não forme um circuito simples. 6) Arbitrariamente, ordene os filhos de cada nó do nível 1. 7) Isso produz os nós do nível 2 8) Esse processo continua até que todos os nós sejam incluídos na árvore geradora Centro de Informática - UFPE 90

Árvore Geradora Busca em largura para achar a árvore geradora (bread-first search) - Exemplo 3 1 2 Centro de Informática - UFPE 91

Árvore Geradora Busca em árvores Na busca em profundidade, nós penetram o mais profundamente possível na árvore, antes de partir para outro vértice Por exemplo, temos a árvore rotulada onde os rótulos correspondem à ordem em que os vértices foram visitados pela busca em profundidade. 3 4 5 6 2 8 7 1 9 10 11 12 Centro de Informática - UFPE 92

Árvore Algoritmos

Algoritmo de Prim Começando, arbitrariamente, pelo vértice a Passo Aresta considerada Componentes Início - {a} Adolfo Duran - 2004 Teoria dos Grafos 1 (b,a) {a,b} 2 (c,b) {a,b,c} 3 (d,a) {a,b,c,d} 4 (e,d) {a,b,c,d,e} 5 (g,d) {a,b,c,d,e,f} 94

Algoritmo de Prim Para implementar eficientemente esse algoritmo, utiliza-se uma matriz de adjacências A[1..n, 1..n], onde cada elemento indica a distância entre dois vértices. Caso dois vértices não sejam ligados por uma aresta o valor será. a b c d e f g a 1 4 b 1 2 6 4 c 2 5 6 d 4 6 3 4 e 4 5 3 8 7 f 6 8 3 g 4 7 3 Adolfo Duran - 2004 Teoria dos Grafos 95

Algoritmo de Kruskal A característica principal do algoritmo de Kruskal é que ele seleciona a melhor aresta sem se preocupar com a conexão com as arestas selecionadas antes. O resultado é uma proliferação de árvores que eventualmente se juntam para formar uma única árvore. Já que sabemos que no final temos que produzir uma árvore só, por que não tentar fazer com que uma árvore cresça naturalmente até a obtenção da árvore geradora mínima? Adolfo Duran - 2004 Teoria dos Grafos 96

Algoritmo de Prim Assim, a próxima aresta selecionada seria sempre uma que se conecta à arvore que já existe. Essa é a ideia do algoritmo de Prim. No início, o conjunto B contém um vértice arbitrário. A cada passo, o algoritmo considera todas as arestas que tocam B e seleciona a de menor peso. Depois, o algoritmo acrescenta a B o vértice ligado por essa aresta que não estava em B. O processo continua até que B contenha todos os vértices de G. Adolfo Duran - 2004 Teoria dos Grafos 97

Exercícios Questão 01 Construa um algoritmo em texto puro, que leia um grafo G qualquer e que apresente como resultado seu vetor de graus. Observação: O algoritmo deverá varrer o grafo todo utilizando apenas a ideia de busca. Questão 02 Construa um segundo algoritmo, também em texto puro, que leia um grafo G qualquer, capaz identificar a clique máxima desse grafo. Observação: Utilize o mesmo procedimento de busca feito na questão 01 e quantifique quantas operações foram realizadas em função da quantidade de vértices.

Complexidade de algoritmos em grafos. Neste texto entendemos por complexidade do algoritmo a complexidade de tempo no pior caso. Exemplo: Sejam A e B dois algoritmos distintos que executam a mesma tarefa sobre um grafo G =(V,E). O algoritmo A gasta, no pior caso, V 2 passos para executar a tarefa e o algoritmo B gasta ( V + E )log E passos no pior caso. Para grafos com V 2 4 arestas o primeiro algoritmo é sempre melhor enquanto que para grafos com 1.000 V arestas o segundo algoritmo é assintoticamente melhor (melhor para V 16.645, enquanto que o primeiro é melhor para V 16.644). Para entradas pequenas (até 25 mil vértices) a ordem das funções são comparadas nos gráficos