A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

Apresentações semelhantes


Apresentação em tema: "ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação."— Transcrição da apresentação:

1 ESCOLA DE ENGENHARIA C++ Grafos e Árvores

2 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

3 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 3/33 América do Sul Fronteiras entre os países.

4 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 4/33 Herança Relacionamento de especialização. Marinho Animal Mamífero Leão Homem Inseto Mosca Barata Peixe Homosca

5 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 5/33 x--; if(x>0) x+= 2; for(int k= 1; k<=x; k++){ y+= 3; w--; if(w<0) y--; else y++; } y= sqr(x); Linguagem C++ Indentação das linhas do programa

6 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 6/33 Fluxograma ISO 5807 u i+1 |L(u i+1 )= mín({L(v)| v D}) início M = {u 0 } L(u 0 ) = 0 L(v) = v D i = 0 L(v) = mín(L(v), L(u i )+W(u i, v)) v D F L(v) é a distância mínima de u 0 até v, v M V M = M {u i+1 } i = i + 1 fim D = 1 1 Processos e processos de decisão.

7 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 7/33 Lista Cabeça Remove do começo Insere no começo Remove do meio Insere no fim Remove do fim

8 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 8/33 Pilha Cabeça Empilha Desempilha Empilha

9 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 9/33 Fila Cabeça Enfileira Desenfileira Enfileira

10 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 10/33 Grafos e Dígrafos (Graph, Digraph) V ØV Ø V E = ØV E = Ø Ψ : E { {v, w} | v, w V} (Grafo)Ψ : E { {v, w} | v, w V} (Grafo) Ψ : E { (v, w) | v, w V} (Dígrafo)Ψ : E { (v, w) | v, w V} (Dígrafo) G = (V, E, Ψ) Vértices Arestas ou Arcos Função de Incidência Dirigido, Orientado (Directed)

11 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 11/33 Exemplo de Grafo Lula = (Bar, Bu, Do) Do(A) = {a, b} Do(B) = {b, c} Do(C) = {c, c} = {c} Do(D) = {c, d} Do(E) = {b, d} Do(F) = {d, e} Do(G) = {b, e} Do(H) = {b, e} A B C D F G H E c b e d a Do Bar = {a, b, c, d, e} Bu = {A, B, C, D, E, F, G, H}

12 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 12/33 A B C D F G H E Outra Geometria do exemplo c b e d a mude a posição dos arcos mude a posição dos vértices Os arcos podem se cruzar.

13 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 13/33 Exemplo de Dígrafo Pico = (Lé, DeChu, Chu) Chu(A) = (a, b) Chu(B) = (b, c) Chu(C) = (c, c) Chu(D) = (c, d) Chu(E) = (b, d) Chu(F) = (d, e) Chu(G) = (b, e) Chu(H) = (b, e) G H E c b e d a Chu Lé = {a, b, c, d, e} DeChu = {A, B, C, D, E, F, G, H} A B C D F

14 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 14/33 Grafo Simples Não possui laços (loops) Não possui arestas múltiplas X X X X X X

15 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 15/33 Vértices Adjacentes Grafo: o vértice a é adjacente ao vértice b; o vértice a é adjacente ao vértice b; o vértice b é adjacente ao vértice a. o vértice b é adjacente ao vértice a. ba A Dígrafo: o vértice a não é adjacente ao vértice b; o vértice a não é adjacente ao vértice b; o vértice b é adjacente ao vértice a. o vértice b é adjacente ao vértice a. ba A

16 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 16/33 Grafo e Matriz de Adjacência abcde a01000 b10112 c01110 d01101 e02010 c b e d a A B C D F G H E simétrica i j cada elemento da matriz é a quantidade de arestas que vão do vértice i ao vértice j e vice- versa (são adjacentes). b e e b 2 2 Exemplo

17 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 17/33 abcde a01000 b00112 c00110 d00001 e00000 Dígrafo e Matriz de Adjacência c b e d a A B C D F G H E cada elemento da matriz é a quantidade de arestas que vão do vértice i ao vértice j (o j é adjacente ao i). do i ao j e b 2 Exemplo 18/25 = 72% de nulos

18 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 18/33 Rede ou Grafo Ponderado R = (V, E, Ψ, ω) Vértices Arestas ou Arcos Função de Incidência Função de Pesos ω : E R (número real)

19 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 19/33 Lu = (Isa, He, Le, Na) Exemplo de Rede Isa = {a, b, c, d, e} He = {A, B, C, D, E, F, G, H} F, G, H} Le, Na Le(B)={b, c}, Na(B)=5 Le(B)={b, c}, Na(B)=5 Le(A)={a, b}, Na(A)=6 Le(A)={a, b}, Na(A)=6 Le(C)={c}, Na(C)=8 Le(C)={c}, Na(C)=8 Le(D)={c, d}, Na(D)=7 Le(D)={c, d}, Na(D)=7 Le(E) = {b, d}, Na(E)=6 Le(E) = {b, d}, Na(E)=6 Le(F) = {d, e}, Na(F)=7 Le(F) = {d, e}, Na(F)=7 Le(G) = {b, e}, Na(G)=4 Le(G) = {b, e}, Na(G)=4 Le(H) = {b, e}, Na(H)=3 Le(H) = {b, e}, Na(H)=3 c b e d a

20 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 20/ ab gh e d c f ij kn q st r po m l u v cucaracha Passeio (Walk) Seqüência não nula, finita e alternada de vértices adjacentes e arestas incidentes. W = v 0 e 1 v 1 e 2 v 2 e 3... e k v k onde: 1 k n (n N* ) (e k ) = {v k-1, v k } Cabeça = 3c4e6f5d3 (fechado) Exemplos: Antenas = 1a3c4b2 W 1 = 14t17r14n12n14m10 W 2 = 5f6v10h8h10m14 W 3 = 5i15o13l9u5 (fechado) W 4 = 12n ab c e d c f

21 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 21/ ab gh e d c f ij kn q st r po m l u v cucaracha Passeio onde as arestas não se repetem. Exemplos: Antenas = 1a3c4b2 Trajeto (Trail) Cabeça = 3c4e6f5d3 (fechado) Patinha Direita Central = 12n14 T 1 = 2b4e6j15p14t17 T 2 = 2b4e6j15p14r17 T 3 = 11k13s16q13l9u5i15j6f n ab c e d c f

22 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 22/ ab gh e d c f ij kn q st r po m l u v cucaracha Passeio onde os vértices não se repetem. Exemplos: Antenas = 1a3c4b2 Caminho (Path) Patinha Direita Central = 12n14 P 1 = 11k13o15j6v10m14t17 P 2 = 2b4e6j15p14t17 P 3 = 2b4e6j15p14r17 P 4 = 8h10m n ab c

23 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 23/ ab gh e d c f ij kn q st r po m l u v cucaracha Ciclo (Cycle) Trajeto fechado (v 0 =v k ). Exemplos: Cabeça = 3c4e6f5d3 (fechado) Asa Esquerda = 5i15o13l9u5 (fechado) Patona Direita = 14t17r14 (fechado) C 1 = 6v10m14t17r14p15j6 (fechado) C 2 = 5f6v10m14p15o13l9u5 (fechado) C 3 = 3c4e6v10m14p15o13l9u5d3 (fechado) 15 f i o l u t r e d c f

24 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 24/33 DAG (Directed Acyclic Graph) Redes PERT (Program Evaluation and Review Technique): DAG ponderado onde os arcos representam atividades, os vértices representam o início e o fim das atividade e os pesos representam intervalos de tempo

25 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 25/33 Árvore (Tree) Grafo acíclico (não possui ciclos) e conexo (existe um caminho entre qualquer par de vértices distintos).

26 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 26/33 Grafos e Listas de Adjacência A B C D E A B C D 0 E A lista de adjacência está em ordem crescente de vértices (do A até o E) de forma a facilitar a implementação.

27 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 27/33 Dígrafos e Listas de Adjacência A B C D E A B CD 0 E Lista dos Vértices Lista de Adjacência do vértice A Lista de Adjacência do vértice B Lista de Adjacência do vértice C Lista de Adjacência do vértice D Lista de Adjacência do vértice E

28 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 28/33 Árvore nível 0 nível 1 nível 2 nível 3 A BCDEF GHIJKLM NOPQRS

29 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 29/33 Árvore: Nó de uma Árvore informaçãopaiprimogênitopróximo irmão class TArvore { private: TAlgumTipo inf; // informação TArvore *pai; // pai TArvore *prim; // primogênito TArvore *prox // próximo irmão //... public: //... // operações em uma árvore. //... }; Não é imprescindível, mas pode ajudar na implementação dos métodos. ponteiros

30 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 30/33 Árvore: ligações F KLM RS L F 0 K M 00 R 0 S 00 vem de E vai para A vem de Q vai para Q

31 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 31/33 Árvore: busca em largura e busca em profundidade nível 0 nível 1 nível 2 nível 3 A BCDEF GHIJKLM NOPQRS Largura Profundidade

32 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 32/33 Árvore: Busca em Largura Fila A BCDEF GHIJKLM NOPQRS M ALGORITMO: enfileire o nó raiz da árvore; enquanto existirem nós enfileirados: desenfileire e marque o nó; para todos os nós filhos deste nó marcado: enfileire o nó filho; A B C D E F G H I J K S R Q P O N M L

33 C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 33/33 Busca em Profundidade A BCDEF GHIJKLM NOPQRS ALGORITMO: empilhe o nó raiz da árvore; enquanto existirem nós empilhados: desempilhe e marque o nó; para todos os nós filhos deste nó marcado: empilhe o nó filho; Pilha A F E D C B G I H N J R S Q K L M O P


Carregar ppt "ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação."

Apresentações semelhantes


Anúncios Google