aula 11 projeto e anÁlise de algoritmos - … e anÁlise de algoritmos conceitos básicos e...
TRANSCRIPT
![Page 1: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/1.jpg)
AULA 11PROJETO E ANÁLISE DE
ALGORITMOS
Conceitos básicos e representação de grafos
Karina Valdivia Delgado
![Page 2: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/2.jpg)
Roteiro
MotivaçãoConceitos básicosRepresentação
![Page 3: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/3.jpg)
MotivaçãoUm grafo é uma abstração que permite codificar relacionamentos entre pares de objetos (definição informal)
Em que:Os objetos são os vértices do grafoOs relacionamentos são as arestas do grafo
![Page 4: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/4.jpg)
MotivaçãoObjeto: cidadesRelacionamento: voo comercial entre duas cidades
Fonte: Wikipedia
![Page 5: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/5.jpg)
MotivaçãoObjeto: página webRelacionamento: link de uma página para outra
![Page 6: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/6.jpg)
MotivaçãoExiste um tipo abstrato de dados (TAD=conjunto de operações associado a uma estrutura de dados) usado para modelar tais situações! grafo
Muitos problemas podem ser resolvidos com o mesmo algoritmo em cima da abstração
![Page 7: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/7.jpg)
MotivaçãoQuantos caminhos existem para ir da cidadeX até a cidade Y?
Qual é o menor(melhor) caminho entre X e Y?
Existe um caminho para ir de uma cidade a outra?
Fonte: Wikipedia
![Page 8: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/8.jpg)
Motivação
Fonte: Wikipedia
Vértices: cidadesArestas: estradas entre as cidades
![Page 9: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/9.jpg)
MotivaçãoComo saber se duas pessoas estão conectadas através de uma sequência de relacionamentos (interligadas via relacionamentos declarados)?
Qual é o menor caminho entre duas pessoas? Fonte: Flickr
![Page 10: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/10.jpg)
MotivaçãoVértices: pessoasArestas: relacionamentos declarados
Fonte: Flickr
![Page 11: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/11.jpg)
Definição de grafoGrafo: conjunto de vértices e arestas.
Vértice: objeto simples que pode ter nome e outros atributos.Aresta: conexão entre dois vértices.
Fonte: Wikipedia
![Page 12: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/12.jpg)
Definição de grafoFormalmente um grafo G é definido por G=(V,A)Em que:– V é o conjunto de vértices– A é o conjunto de arestas
Fonte: Wikipedia
![Page 13: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/13.jpg)
Definição de grafo direcionadoUm grafo direcionado G é um par (V,A), em que:
– V é um conjunto finito de vértices– A é uma relação binária em V (i.e., uma aresta é um par ordenado de vértices)
Fonte: Wikipedia
![Page 14: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/14.jpg)
Definição de grafo direcionadoUm grafo direcionado G é um par (V,A), em que:
– V é um conjunto finito de vértices– A é uma relação binária em V (i.e., uma aresta é um par ordenado de vértices)
Fonte: Wikipedia
A aresta (B, E) sai do vértice B e entra no vértice E . Dizemos que o vértice E é adjacente ao vértice B.
![Page 15: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/15.jpg)
Definição de grafo direcionadoUm grafo direcionado G é um par (V,A), em que:
– V é um conjunto finito de vértices– A é uma relação binária em V (i.e., uma aresta é um par ordenado de vértices)
Fonte: Wikipedia
Podem existir arestas de um vértice para ele mesmo, chamadas de self-loops.
![Page 16: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/16.jpg)
Definição de grafo não direcionadoUm grafo não direcionado G é um par (V, A), em que:– O conjunto de arestas A é constituído de pares de vértices não ordenados.– As arestas (u, v) e (v , u) são consideradas como uma única aresta.
Fonte: Wikipedia
![Page 17: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/17.jpg)
Definição de grafo não direcionadoUm grafo não direcionado G é um par (V, A), em que:– O conjunto de arestas A é constituído de pares de vértices não ordenados.– As arestas (u, v) e (v , u) são consideradas como uma única aresta.
Fonte: Wikipedia
A relação de adjacência é simétrica.Self-loops não são permitidos.
![Page 18: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/18.jpg)
Grau de um vértice em grafos direcionadosGrau de saída: número de arestas que saem do vértice.Grau de entrada: número de arestas que chegam no vértice.Grau de um vértice: grau de saída + grau de entrada.
Fonte: Wikipedia
![Page 19: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/19.jpg)
Grau de um vértice em grafos direcionadosGrau de saída: número de arestas que saem do vértice.Grau de entrada: número de arestas que chegam no vértice.Grau de um vértice: grau de saída + grau de entrada.
Fonte: Wikipedia
O vértice B temgrau de saída 3,grau de entrada 1e grau 4.
![Page 20: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/20.jpg)
Grau de um vértice em grafos não direcionadosO grau de um vértice é o número de arestas que incidem nele.
Fonte: Wikipedia
![Page 21: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/21.jpg)
Grau de um vértice em grafos não direcionadosO grau de um vértice é o número de arestas que incidem nele.
Fonte: Wikipedia
Um vértice de grau zero é dito isolado ou não conectado.
![Page 22: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/22.jpg)
Grau de um vértice em grafos não direcionadosO grau de um vértice é o número de arestas que incidem nele.
Fonte: Wikipedia
O vértice 5 tem grau 3
![Page 23: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/23.jpg)
Representação de grafosG=(V,A)V={1,2,3,4,5,6}A={(1,2), (1,5), (2,3), (2,5), (3,4), (4,5), (4,6)}
Fonte: Wikipedia
![Page 24: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/24.jpg)
Representação de grafosG=(V,A)V={1,2,3,4,5,6}A={(1,2), (1,5), (2,3), (2,5), (3,4), (4,5), (4,6)}
Fonte: Wikipedia
Como um grafopode serrepresentado nocomputador?
![Page 25: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/25.jpg)
Representação de grafosComo uma matriz de adjacênciasComo uma coleção de listas de adjacências
Qual a representação mais eficiente ou maisadequada?
![Page 26: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/26.jpg)
Representação de grafosComo uma matriz de adjacênciasComo uma coleção de listas de adjacências
Qual a representação mais eficiente ou maisadequada?
Depende
![Page 27: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/27.jpg)
Matriz de adjacênciasAssociar vértices às linhas e colunas da matriz e o elemento da matriz indica se há aresta.
![Page 28: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/28.jpg)
Matriz de adjacênciasA matriz de adjacência de um grafo G = (V , A) contendo n vértices é uma matriz n × n, em que:– A[i, j]=1 se e somente se existe um arco do vértice i para o vértice j .– A[i, j]=0 caso contrário.
![Page 29: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/29.jpg)
Matriz de adjacênciasPara grafos ponderados:– A[i, j] contém o rótulo ou peso associado com aaresta do vértice i para o vértice j.– Se não existir uma aresta de i para j, utilizar umvalor que não possa ser usado como rótulo ou peso.
![Page 30: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/30.jpg)
Matriz de adjacênciasA B C D E F G
A 1B 1 1 1C 1D 1E 1F
G 1
![Page 31: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/31.jpg)
Matriz de adjacências
1 2 3 4 5 6
1 1 1
2 1 1 1
3 1 1
4 1 1 1
5 1 1 1
6 1
![Page 32: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/32.jpg)
Matriz de adjacênciasConsidere grafos grandes (muitos vértices) e esparsos (relativamente poucas arestas)
Matriz estará formada principalmente de zeros!
Grande consumo de memória (desnecessário)!
![Page 33: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/33.jpg)
Matriz de adjacênciasDeve ser utilizada para grafos densos, em que |A|é próximo de |V|2.O tempo necessário para acessar um elemento éindependente de |V| ou |A|.É muito útil para algoritmos em que necessitamos saber com rapidez se existe uma aresta ligando dois vértices.Desvantagem: a matriz necessita Ω(|V|2) de espaço.
![Page 34: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/34.jpg)
Como representar grafos grandes e esparsos?
![Page 35: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/35.jpg)
Coleção de listas de adjacênciasAssociar a cada vértice uma lista de vértices adjacentes
![Page 36: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/36.jpg)
Coleção de listas de adjacênciasA representação de um grafo G = (V,A) usando listas de adjacências consiste de:
– Um vetor Adj de |V| listas, uma para cada vértice em V.– Para cada u∈V, a lista de adjacências Adj[u] consiste de todos os vértices adjacentes a u, i.e., todos os vértices v tais que existe uma aresta (u,v)∈A.
![Page 37: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/37.jpg)
Coleção de listas de adjacênciasA
B
C
D
E
F
G
B
C D E
E
E
F
//
D
![Page 38: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/38.jpg)
Coleção de listas de adjacências1
2
3
4
5
6
5 2
3 5 1
4 2
3 6 5
1 2 4
4
![Page 39: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/39.jpg)
Coleção de listas de adjacênciasOs vértices de uma lista de adjacência são em geral armazenados em uma ordem arbitrária.
A soma dos comprimentos de todas as listas deadjacências– se G é um grafo orientado é: |A|– se G é um grafo não orientado é: 2*|A|O espaço requerido por essa representação é:
![Page 40: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/40.jpg)
Coleção de listas de adjacênciasOs vértices de uma lista de adjacência são em geral armazenados em uma ordem arbitrária.
A soma dos comprimentos de todas as listas deadjacências– se G é um grafo orientado é: |A|– se G é um grafo não orientado é: 2*|A|O espaço requerido por essa representação é: O(|V| + |A|)seja o grafo orientado ou não.
![Page 41: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/41.jpg)
Coleção de listas de adjacênciasRepresentação mais adequada para grafos esparsos ( quando |A| é muito menor do que |V|2).É compacta e usualmente utilizada na maioria dasaplicações.
Desvantagem: pode consumir O(|V|) para determinar se existe uma aresta entre o vértice i e o vértice j, pois podem existir O(|V|) vértices na lista de adjacentes do vértice i.
![Page 42: AULA 11 PROJETO E ANÁLISE DE ALGORITMOS - … E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado. Roteiro ... mesmo algoritmo em cima](https://reader031.vdocuments.site/reader031/viewer/2022022707/5be518a709d3f22b448b8f67/html5/thumbnails/42.jpg)
AULA 11PROJETO E ANÁLISE DE
ALGORITMOS
Conceitos básicos e representação de grafos
Karina Valdivia Delgado