p. 1/25 Isomorfismos de Grafos, Grafos Planares e Árvores Esdras Medeiros
p. 2/25 Isomorfismo de Grafos Os isomorfismos preservam adjacências entre vértices.
p. 3/25 Isomorfismo de Grafos Definição 1 Dois grafos (N 1,A 1,g 1 ) e (N 2,A 2,g 2 ) são isomorfos se existem funções f 1 : N 1 N 2 e f 2 : A 1 A 2 tais que, para cada arco a A 1, g 1 (a) = x y se, e somente se, g 2 [f 2 (a)] = f 1 (x) f 2 (y). a3 1 a2 a1 a4 2 e5 e1 a e7 e6 a5 3 c e2 d e3 e 4 a7 a6 e4 e8 a8 5 b
p. 4/25 Isomorfismo de Grafos Isomorfismo encontrado: f 1 : 1 c f 2 : a 1 e 1 2 e a 2 e 4 3 d a 3 e 2 4 b a 4 e 3 5 a a 5 e 8 a 6 e 7 a 7 e 5 a 8 e 6
p. 5/25 Isomorfismo de Grafos Teorema 1 Dois grafos simples (N 1,A 1,g 1 ) e (N 2,A 2,g 2 ) são isomorfos se existe f 1 : N 1 N 2 onde quaisquer n 1, n 2 N 1 são adjacentes se, e somente se, f(n 1 ), f(n 2 ) são adjacentes.
p. 6/25 Isomorfismo de Grafos Pode-se mostrar que grafos não são isomorfos através de invariantes como: Número de nós; Número de arcos; Existência de arcos paralelos; Existência de laços; Existência de um nó com grau diferente; Conexidade; Existência de ciclos;
p. 7/25 Isomorfismo de Grafos Exemplo: Mostre que os grafos abaixo não são isomorfos.
p. 8/25 Grafos Planares Definição 2 Um grafo é planar quando pode ser representado em uma folha de papel, de modo que seus arcos se intersectem apenas em nós. O grafo à esquerda é planar pois é isomorfo ao grafo à direita que é planar. Em grafos planares além de nós e arcos também há regiões planares. No caso acima existem 4 regiões.
p. 9/25 Grafos Planares-Fórmula de Euler Em todo grafo planar vale a fórmula de Euler N A + R = 2, onde N é o número de vértices, A é o número de arestas e R é o número de regiões divididas no plano pelo grafo. Exemplo: N = 13, A = 19 e R = 8. Logo 13 19 + 8 = 2.
Grafos Planares-Fórmula de Euler Demonstração: Façamos indução sobre o número de arcos A. I) A = 1. (a) (b) II)Suponha que seja válido para uma grafo qualquer com K arcos. III)Vamos provar que vale para um grafo qualquer com K + 1 arcos. p. 10/25
p. 11/25 Grafos Planares-Fórmula de Euler Temos dois casos: Caso 1: O grafo tem um nó de grau 1. Apagando temporariamente o arco e o nó vale N K + R = 2. Colocando de volta o arco e o nó vale (N + 1) (k + 1) + R = 2
p. 12/25 Grafos Planares-Fórmula de Euler Caso 2: O grafo não tem nós de grau 1. Apagando temporariamente o arco vale N K + R = 2. Colocando de volta o arco vale N (k +1)+(R +1) = 2.
p. 13/25 Grafos Planares - Duas Desigualdades Desigualdade 1: Temos que em qualquer grafo vale 2A 3R usando que N A + R = 2, temos 2A 3(2 N + A) = 6 3N + 3A 2A 3N 6 Fato importante: O número de de arestas é linear em relação ao número de nós.
p. 14/25 Grafos Planares - Duas Desigualdades Desigualdade 2: Em grafos sem ciclos de comprimento 3 vale 2A 4R usando que N A + R = 2, temos 2A 4(2 N + A) = 8 4N + 4A A 2N 4 Com isso podemos mostrar a impossibilidade de resolver o problema da água, luz e telefone.
p. 15/25 Grafos Planares - Duas Desigualdades Observe o grafo abaixo: Nesse grafo A = 9, N = 6 e não há ciclos de tamanho 3. Logo não satisfaz a desigualdade 2 A 2N 4 pois 9 > 2(6) 4.
p. 16/25 Árvores Definição 3 Uma árvore é um grafo conexo acíclico com um nó especial, denominado raiz da árvore. Exemplos: r
p. 17/25 Árvores-Terminologia R raiz R1 R2 R3 T2 T2 é sub-árvore R é nó pai de R1, R2 e R3. R1, R2 e R3 são nós filhos de R.
p. 18/25 Árvores-Terminologia A profundidade de um nó em uma árvore é o comprimento do caminho da raiz ao nó. A profundidade (altura ou nível) de uma árvore é a maior profundidade dos nós na árvore. Uma folha é um nó sem filhos. Nós internos são nós que não são folhas. Floresta é um grafo acíclico não necessariamente conexo
Árvores binárias Definição 4 Em uma árvore binária cada nó tem no máximo dois filhos, filho esquerdo e filho direito. Uma árvore estritamente binária é uma árvore binária em que cada nó tem 0 ou 2 filhos. Uma árvore binária cheia é uma árvore em que se um nó tem alguma sub-árvore vazia então ele está no último nível. Uma árvore completa é aquela em se n é um nó com algumas de sub-árvores vazias, então n se localiza no penúltimo ou no último nível. Portanto, toda árvore cheia é completa e estritamente binária. p. 19/25
p. 20/25 Árvores binárias Exemplos: Estritamente Binaria Completa Cheia
p. 21/25 Fluxo Organizacional: Árvores binárias-aplicações Presidente Reitor Vice Reitor Academico Vice Reitor Administrativo Diretor Humanas Diretor Ciencias Diretor Engenharias Diretor Saude Chefe Ciencia Computacao Coordenador Ciencia Computacao Professor Ciencia Computacao
p. 22/25 Diretórios: Árvores binárias-aplicações
p. 23/25 Árvores binárias-aplicações Expressões Algébricas: + * 2 x y 3 A expressão correspondente é (2 + x) (y 3).
p. 24/25 Lendo arquvos em C Abrindo um arquivo: #include <stdio.h> int main() { FILE *fp; fp = fopen ("MEU_ARQUIVO", "r"); if (fp == NULL) { printf ("Houve um erro ao abrir o arquivo.\n"); return 1; } printf ("Arquivo MEU_ARQUIVO criado com sucesso.\n"); fclose (fp); return 0; }
p. 25/25 Lendo arquvos em C Lendo letra por letra: #include <stdio.h> int main(){ FILE *entrada, *saida; int letra; int str[100]; int i=0; entrada = fopen("arquivo1", "r"); //abre para leitura! while((letra = fgetc(entrada))!= EOF){ //le arquivo1 str[i] = letra; //armazena string no vetor str i++; } fclose(entrada); }