SlideShare uma empresa Scribd logo
Grafos 
Samyra Lara 
Graduanda em Tecnologia em 
Sistemas para Internet – IFPB, 
campus João Pessoa.
Porque aprender Grafos? 
Estamos conhecendo: GRAFOS 
 Importante ferramenta matemática com aplicação em diversas áreas 
do conhecimento como: genética, química, pesquisa operacional, 
telecomunicações, engenharia elétrica, redes de computadores, 
conexão de voos aéreos, restrições de precedência, fluxo de 
programas, dentro outros; 
 Utilizados na definição e/ou resolução de problemas; 
 Existem centenas de problemas computacionais que empregam 
grafos com sucesso;
Porque aprender Grafos? 
Que tal começar pela Conectividade Social? 
Estamos conhecendo: GRAFOS
Aplicação Prática: Voos aéreos 
WebJet Linhas Aéreas: http://www.webjet.com.br 
Estamos conhecendo: GRAFOS
Definição de Grafos 
 É um conceito matemático que basicamente estuda os elementos de um 
conjunto e a relação entre eles; 
Definição matemática: 
G = {V, A} 
 V : Vértices (elementos); 
 A: Arestas ou Arcos (relações entre elementos); 
|V| e |A| representam a cardinalidade dos conjuntos V e A, isto é, número de 
elementos dos respectivos conjuntos. 
Terminologias: vértice = nós ; aresta = arco. 
Pode variar conforme o autor. 
Estamos conhecendo: GRAFOS
Definição e Notação 
 Exemplo: 
G={V,A} 
V={1,2,3,4,5,6} 
A={ (6,4), (4,3), (4,5), (4,6), (5,2), (5,1), (5,4) 
(3,2), (3,4), (2,5), (2,3), (2,1), (1,2), (1,5) } 
|V| = 6 
|A| = 14 
Estamos conhecendo: GRAFOS
Tipos de Grafos 
 NÃO-DIRIGIDOS: 
As arestas indicam uma conexão bidirecional 
 DIRIGIDOS: 
 As arestas determinam o sentido da conexão 
através de uma seta; 
Faz distinção entre origem e destino; 
Convenção: 
aresta: GND / arco: GD 
Estamos conhecendo: GRAFOS
Grafo dirigido 
 Exemplo de Grafo Dirigido 
G = {V,A} 
V = {0,1,2,3} 
A = { {0,1}, {0,3}, {1,2}, {1,3}, {2,3}, {2,2} , {3,0}} 
|V| = 4 
|A| = 7 
Estamos conhecendo: GRAFOS
Conceitos Básicos 
 Vértice Adjacente 
Vértices ligados por uma aresta 
Exemplo: 
• Vértice 1 é adjacente a 0 
• Vértice 1 é adjacente a 2 
 Aresta Incidente 
Uma aresta/arco que conecta dois vértices em particular 
Exemplo: 
• A aresta (0,1) é incidente aos vértices 0 e 1 
• O arco {3,4} é incidente de 3 ou incidente a 4 
Estamos conhecendo: GRAFOS 
(0,1)
Conceitos Básicos 
 Grau de um vértice 
Número de arestas/arcos incidentes a um vértice 
Exemplo: o grau do vértice “1” é 2; 
Tratando-se de Grafos dirigidos, temos: 
 Grau de Emissão: # arcos que partem de v; 
 Grau de Recepção: # arcos que chegam em v; 
Exemplo: Grau do vértice 0: 
Emissão: 2; 
Recepção: 1. 
Estamos conhecendo: GRAFOS
Grafo dirigido 
 Caminho: 
É determinado através da sequência de um ou mais arcos. É possível chegar 
até outro vértice (não adjacente), através do percurso dos arcos. 
Exemplo: 
“0” não é adjacente a “2”, é possível chegar 
até ele através dos arcos {0,1} e {1,2}. 
Estamos conhecendo: GRAFOS
Estamos conhecendo: GRAFOS 
Samyra, como eu represento isso?
Formas de representação 
1ª FORMA: Matriz de Adjacência (estática): 
A partir de um Grafo (G), dado por: 
G = (V, A); 
 n = número de vértices (n > 0). 
Consiste em uma matriz (E) quadrada (n x n), cujos elementos, são: 
 eij = 1, se a aresta <ei, ej> pertence a “A” 
 eij = 0, caso contrário. 
Estamos conhecendo: GRAFOS
Matriz de Adjacência 
Como montar essa matriz de adjacência ? 
1. Identificar a quantidade de vértices; 
2. Montar uma matriz com essa quantidade; 
3. Usar a regra (slide anterior) para determinar os 
elementos dessa matriz. 
Estamos conhecendo: GRAFOS
Matriz de Adjacência 
• O Grafo (G), possui 6 vértices. 
• Implica dizer que a matriz será 
composta por 6 linhas e 6 colunas. 
Estamos conhecendo: GRAFOS 
GRAFO G
Matriz de Adjacência 
 Matriz 6 x 6: 
Estamos conhecendo: GRAFOS
Matriz de Adjacência 
Vantagens: 
 Fácil visualização dos dados; 
 Pesquisas são facilmente respondidas: 
Quantidade de arestas/arcos do grafo; 
Grau de cada vértice; 
Existência de caminhos; 
Existência de ciclos; 
Existência de Laços (loop). 
Estamos conhecendo: GRAFOS
Matriz de Adjacência 
Desvantagens: 
Estamos conhecendo: GRAFOS 
 Geralmente essa matriz de representação é esparsa, uma vez que, são 
representados, mesmo que não existam, arestas/arcos entre os 
vértices; 
 Piorando a situação, as aplicações reais costumam não possuir 
limitações quanto ao número de vértices.
Formas de representação 
Estamos conhecendo: GRAFOS 
2ª FORMA: Lista de Adjacências (dinâmica) 
• É uma lista (L), onde cada nó possui uma lista de seus vértices 
adjacentes.
Lista de Adjacências 
Como montar essa lista de adjacência ? 
Estamos conhecendo: GRAFOS 
1. Identificar a quantidade de vértices; 
2. Montar uma lista com essa quantidade (nó); 
3. Cada nó dessa lista contém a identificação do vértice de um 
apontador para o próximo vértice, cujo valor será nulo (zero ou 
NULL) quando for o fim da lista.
Lista de Adjacências 
Estamos conhecendo: GRAFOS 
Exemplo: 
 Qual seria a representação do Grafo (G), usando a representação 
“Lista de Adjacência” ?
Lista de Adjacências 
Vantagens: 
• Fácil visualização dos dados; 
• Ocupa pouco espaço; 
• Fácil responder as perguntas. 
Desvantagens: 
• Complica “um pouco” a implementação. 
Estamos conhecendo: GRAFOS
Percursos 
Algumas regras 
Estamos conhecendo: GRAFOS 
 A partir de uma ordem pré-estabelecida, os vértices de um grafo são 
percorridos, a partir de um deles; 
 Todos os caminhos relacionados a um vértices devem ser percorridos; 
 A escolha desse vértice inicial pode ser aleatório ou predefinido; 
 Geralmente a ideia é descobrir o melhor caminho, ou seja, o de 
menor comprimento.
Percursos 
Algumas regras 
Estamos conhecendo: GRAFOS 
 É necessário que o algoritmo, de percurso, defina o primeiro “nó” a 
ser visitado, podendo ser: 
 Escolhido; 
Será selecionado aleatoriamente. 
 Também deve ser definido a ordem que será seguida para visitar os 
“nó” sucessores a um determinado “nó”.
Percursos 
Observações 
Estamos conhecendo: GRAFOS 
 Em um grafo nem sempre é possível atingir todos os demais “nó” a 
partir do “nó” inicial; 
 Não existe uma sequência natural entre os sucessores de um 
determinado “nó”;
Tipos de Percursos 
 Pesquisa Inicial em Profundidade (DFS): 
“Depth First Search”. 
 Pesquisa Inicial em Largura (BFS): 
“Breadth First Search”. 
Estamos conhecendo: GRAFOS
Pesquisa em profundidade (DFS) 
Estamos conhecendo: GRAFOS 
Faz uma análise nos arcos de um grafo.
Pesquisa em profundidade (DFS) 
Estamos conhecendo: GRAFOS 
A busca em profundidade procura acessar todos os vértices em um 
grafo. Para acessar todos os possíveis vértices, varre a lista de arestas 
de cada vértice do grafo.
Pesquisa em profundidade (DFS) 
empilha primeiro vértice (origem) 
repita enquanto pilha não vazia{ 
"V" <- vértice do topo da pilha 
se (existir vértice adjacente){ 
remove o arco que está incidindo 
se o vértice adjacente não está marcado{ 
marca o vértice adjacente 
empilha o vértice adjacente 
} 
} 
senao desempilha "V" 
} 
Estamos conhecendo: GRAFOS
Pesquisa em amplitude (BFS) 
Estamos conhecendo: GRAFOS 
Faz uma análise nos vértices de um grafo.
Pesquisa em amplitude (BFS) 
Estamos conhecendo: GRAFOS 
Dado um grafo e um vértice de origem, a busca em largura 
explora as arestas do grafo até explorar todos os vértices 
alcançáveis a partir do vértice de origem.
Pesquisa em amplitude (BFS) 
insere o primeiro vértice na fila 
repita enquanto fila não vazia{ 
"V" <- primeiro vértice da fila 
repita para todos os arcos incidentes a "V“ (adjac.){ 
se (vértice adjacente não está marcado){ 
marca o vértice adjacente 
insere o vértice adjacente no final da fila 
} 
} 
remova o vértice da fila 
} 
Estamos conhecendo: GRAFOS
Vamos ao código... 
Estamos conhecendo: GRAFOS
REFERÊNCIAS 
Estamos conhecendo: GRAFOS 
• Material do Curso de Extensão de Grafos, ministrado pelo Professor 
M.Sc. Alex Sandro da Cunha Rêgo; 
• Material do Projeto Olímpico de Programação, ministrado pela Ms. 
Valéria Maria Bezerra Cavalcanti; 
• ASCENCIO, A. F. G.; ARAÚJO, G. S.. Estrutura de Dados: Algoritmos, 
análise da Complexidade e Implementações em Java e 
C/C++. Editora PEARSON, 2010. 
• VELOSO, Paulo.; SANTOS, Clesio dos; AZEREDO, Paulo; FURTADO, 
Antonio Estruturas de Dados. Rio de Janeiro: Editora Campus, 1984.

Mais conteúdo relacionado

Mais procurados

Rosáceas, frisos e padrões
Rosáceas, frisos e padrõesRosáceas, frisos e padrões
Rosáceas, frisos e padrões
ppaisaec
 
Geometria
GeometriaGeometria
Geometria
msanchez93
 
Matemática Discreta - Parte V relações
Matemática Discreta - Parte V relaçõesMatemática Discreta - Parte V relações
Matemática Discreta - Parte V relações
Ulrich Schiel
 
Aula 21 vetores
Aula 21   vetoresAula 21   vetores
TEORIA DE CONJUNTOS
TEORIA DE CONJUNTOS TEORIA DE CONJUNTOS
TEORIA DE CONJUNTOS
Luciano Pessanha
 
Geometria euclidiana 2
Geometria euclidiana 2Geometria euclidiana 2
Geometria euclidiana 2
Ana Cristina Mesquita
 
Critérios de paralelismo e perpendicularidade
Critérios de paralelismo e perpendicularidadeCritérios de paralelismo e perpendicularidade
Critérios de paralelismo e perpendicularidade
Joana Ferreira
 
Aula 02 Cálculo de limites - Conceitos Básicos
Aula 02   Cálculo de limites - Conceitos BásicosAula 02   Cálculo de limites - Conceitos Básicos
A matemática do Egito e Mesopotâmia .Artigo baseados em pesquisas bibliográfi...
A matemática do Egito e Mesopotâmia .Artigo baseados em pesquisas bibliográfi...A matemática do Egito e Mesopotâmia .Artigo baseados em pesquisas bibliográfi...
A matemática do Egito e Mesopotâmia .Artigo baseados em pesquisas bibliográfi...
Zaqueu Oliveira
 
Conteúdo matemática conceitual atitudinal e procedimental
Conteúdo matemática conceitual atitudinal e procedimentalConteúdo matemática conceitual atitudinal e procedimental
Conteúdo matemática conceitual atitudinal e procedimental
Giselle Amaral Abreu dos Santos
 
Gráficos de funções afim - Matemática 8º ano - Resumo da matéria
Gráficos de funções afim - Matemática 8º ano - Resumo da matériaGráficos de funções afim - Matemática 8º ano - Resumo da matéria
Gráficos de funções afim - Matemática 8º ano - Resumo da matéria
O Bichinho do Saber
 
História da matematica
História da matematicaHistória da matematica
História da matematica
angerba7
 
Inteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em GrafosInteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em Grafos
Rafael Pinto
 
Função Quadrática
Função QuadráticaFunção Quadrática
Função Quadrática
Aab2507
 
Polinómios e monómios
Polinómios e monómiosPolinómios e monómios
Polinómios e monómios
aldaalves
 
Circunferência
CircunferênciaCircunferência
Circunferência
leilamaluf
 
Slides projeto raciocínio lógico
Slides projeto raciocínio lógicoSlides projeto raciocínio lógico
Slides projeto raciocínio lógico
grupoibiuna
 
Historia da-matematica
Historia da-matematicaHistoria da-matematica
Historia da-matematica
João Braz
 
Domínio, contradomínio e imagem de uma função
Domínio, contradomínio e imagem de uma funçãoDomínio, contradomínio e imagem de uma função
Domínio, contradomínio e imagem de uma função
Dosvaldo Alves
 
Tautologias, contradições, contigências e equivalências
Tautologias, contradições, contigências e equivalênciasTautologias, contradições, contigências e equivalências
Tautologias, contradições, contigências e equivalências
Aristóteles Meneses
 

Mais procurados (20)

Rosáceas, frisos e padrões
Rosáceas, frisos e padrõesRosáceas, frisos e padrões
Rosáceas, frisos e padrões
 
Geometria
GeometriaGeometria
Geometria
 
Matemática Discreta - Parte V relações
Matemática Discreta - Parte V relaçõesMatemática Discreta - Parte V relações
Matemática Discreta - Parte V relações
 
Aula 21 vetores
Aula 21   vetoresAula 21   vetores
Aula 21 vetores
 
TEORIA DE CONJUNTOS
TEORIA DE CONJUNTOS TEORIA DE CONJUNTOS
TEORIA DE CONJUNTOS
 
Geometria euclidiana 2
Geometria euclidiana 2Geometria euclidiana 2
Geometria euclidiana 2
 
Critérios de paralelismo e perpendicularidade
Critérios de paralelismo e perpendicularidadeCritérios de paralelismo e perpendicularidade
Critérios de paralelismo e perpendicularidade
 
Aula 02 Cálculo de limites - Conceitos Básicos
Aula 02   Cálculo de limites - Conceitos BásicosAula 02   Cálculo de limites - Conceitos Básicos
Aula 02 Cálculo de limites - Conceitos Básicos
 
A matemática do Egito e Mesopotâmia .Artigo baseados em pesquisas bibliográfi...
A matemática do Egito e Mesopotâmia .Artigo baseados em pesquisas bibliográfi...A matemática do Egito e Mesopotâmia .Artigo baseados em pesquisas bibliográfi...
A matemática do Egito e Mesopotâmia .Artigo baseados em pesquisas bibliográfi...
 
Conteúdo matemática conceitual atitudinal e procedimental
Conteúdo matemática conceitual atitudinal e procedimentalConteúdo matemática conceitual atitudinal e procedimental
Conteúdo matemática conceitual atitudinal e procedimental
 
Gráficos de funções afim - Matemática 8º ano - Resumo da matéria
Gráficos de funções afim - Matemática 8º ano - Resumo da matériaGráficos de funções afim - Matemática 8º ano - Resumo da matéria
Gráficos de funções afim - Matemática 8º ano - Resumo da matéria
 
História da matematica
História da matematicaHistória da matematica
História da matematica
 
Inteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em GrafosInteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em Grafos
 
Função Quadrática
Função QuadráticaFunção Quadrática
Função Quadrática
 
Polinómios e monómios
Polinómios e monómiosPolinómios e monómios
Polinómios e monómios
 
Circunferência
CircunferênciaCircunferência
Circunferência
 
Slides projeto raciocínio lógico
Slides projeto raciocínio lógicoSlides projeto raciocínio lógico
Slides projeto raciocínio lógico
 
Historia da-matematica
Historia da-matematicaHistoria da-matematica
Historia da-matematica
 
Domínio, contradomínio e imagem de uma função
Domínio, contradomínio e imagem de uma funçãoDomínio, contradomínio e imagem de uma função
Domínio, contradomínio e imagem de uma função
 
Tautologias, contradições, contigências e equivalências
Tautologias, contradições, contigências e equivalênciasTautologias, contradições, contigências e equivalências
Tautologias, contradições, contigências e equivalências
 

Destaque

Kruskal
KruskalKruskal
Kruskal
Brian Supra
 
Análise de Redes Sociais: Introdução
Análise de Redes Sociais: IntroduçãoAnálise de Redes Sociais: Introdução
Análise de Redes Sociais: Introdução
Alexandre Duarte
 
Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...
Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...
Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...
Thiago Colares
 
Grafos
GrafosGrafos
Grafos
rodrigogolin
 
Pesquisa operacional teoria dos grafos
Pesquisa operacional teoria dos grafosPesquisa operacional teoria dos grafos
Pesquisa operacional teoria dos grafos
Diego Henrique
 
Aula sobre Tabela Hash
Aula sobre Tabela HashAula sobre Tabela Hash
Aula sobre Tabela Hash
CriatividadeZeroDocs
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordCaminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Gabriel Albuquerque
 
MACS - grafos, trajetos e circuitos eulerianos; circuitos eulerianos...
MACS - grafos, trajetos e circuitos eulerianos; circuitos eulerianos...MACS - grafos, trajetos e circuitos eulerianos; circuitos eulerianos...
MACS - grafos, trajetos e circuitos eulerianos; circuitos eulerianos...
Joana Pinto
 
Estrutura de Dados - Grafos
Estrutura de Dados - GrafosEstrutura de Dados - Grafos
Estrutura de Dados - Grafos
Leinylson Fontinele
 
Projeto de Experimentos
Projeto de ExperimentosProjeto de Experimentos
Projeto de Experimentos
Alexandre Duarte
 
Prismas e áreas
Prismas e áreasPrismas e áreas
Prismas e áreas
iran rodrigues
 
Introdução à Teoria dos Grafos e Análise de Redes Sociais
Introdução à Teoria dos Grafos e Análise de Redes SociaisIntrodução à Teoria dos Grafos e Análise de Redes Sociais
Introdução à Teoria dos Grafos e Análise de Redes Sociais
fabiomalini
 
Apostila grafos
Apostila grafosApostila grafos
Apostila grafos
Carla Jaciara Sousa
 

Destaque (13)

Kruskal
KruskalKruskal
Kruskal
 
Análise de Redes Sociais: Introdução
Análise de Redes Sociais: IntroduçãoAnálise de Redes Sociais: Introdução
Análise de Redes Sociais: Introdução
 
Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...
Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...
Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...
 
Grafos
GrafosGrafos
Grafos
 
Pesquisa operacional teoria dos grafos
Pesquisa operacional teoria dos grafosPesquisa operacional teoria dos grafos
Pesquisa operacional teoria dos grafos
 
Aula sobre Tabela Hash
Aula sobre Tabela HashAula sobre Tabela Hash
Aula sobre Tabela Hash
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordCaminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
 
MACS - grafos, trajetos e circuitos eulerianos; circuitos eulerianos...
MACS - grafos, trajetos e circuitos eulerianos; circuitos eulerianos...MACS - grafos, trajetos e circuitos eulerianos; circuitos eulerianos...
MACS - grafos, trajetos e circuitos eulerianos; circuitos eulerianos...
 
Estrutura de Dados - Grafos
Estrutura de Dados - GrafosEstrutura de Dados - Grafos
Estrutura de Dados - Grafos
 
Projeto de Experimentos
Projeto de ExperimentosProjeto de Experimentos
Projeto de Experimentos
 
Prismas e áreas
Prismas e áreasPrismas e áreas
Prismas e áreas
 
Introdução à Teoria dos Grafos e Análise de Redes Sociais
Introdução à Teoria dos Grafos e Análise de Redes SociaisIntrodução à Teoria dos Grafos e Análise de Redes Sociais
Introdução à Teoria dos Grafos e Análise de Redes Sociais
 
Apostila grafos
Apostila grafosApostila grafos
Apostila grafos
 

Semelhante a Seminário sobre Grafos por Samyra Lara

Grafos
GrafosGrafos
Topological Sorting (Portuguese)
Topological Sorting (Portuguese)Topological Sorting (Portuguese)
Topological Sorting (Portuguese)
Hudson Miranda
 
Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...
Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...
Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...
Murilo Adriano Vasconcelos
 
Introdução aos grafos: Principais conceitos
Introdução aos grafos: Principais conceitosIntrodução aos grafos: Principais conceitos
Introdução aos grafos: Principais conceitos
ssusera0fc94
 
Grafos_1.pptx
Grafos_1.pptxGrafos_1.pptx
Grafos_1.pptx
ssusera0fc94
 
Análise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de GrafosAnálise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de Grafos
Delacyr Ferreira
 
Algoritmo de Kosaraju
Algoritmo de KosarajuAlgoritmo de Kosaraju
Algoritmo de Kosaraju
Marcos Castro
 
Busca em largura (breadth first search)
Busca em largura (breadth first search)Busca em largura (breadth first search)
Busca em largura (breadth first search)
Rafael Coelho Silva
 
slidesWtisc(1).pptx
slidesWtisc(1).pptxslidesWtisc(1).pptx
slidesWtisc(1).pptx
Cedemir Pereira
 
Apresentação ia
Apresentação iaApresentação ia
Apresentação ia
Rafael Leiva
 
Teoria de Grafos.ppt.pptx para estudar MACS
Teoria de Grafos.ppt.pptx para estudar MACSTeoria de Grafos.ppt.pptx para estudar MACS
Teoria de Grafos.ppt.pptx para estudar MACS
sandra soares
 
Árvores Espalhadas Mínimas
Árvores Espalhadas MínimasÁrvores Espalhadas Mínimas
Árvores Espalhadas Mínimas
Diego Cavalca
 
Grafos.ppt
Grafos.pptGrafos.ppt
Apostila geometria analítica plana 2º ed.
Apostila geometria analítica plana   2º ed.Apostila geometria analítica plana   2º ed.
Apostila geometria analítica plana 2º ed.
day ....
 
Apostilageometriaanalticaplana 2ed-130825062334-phpapp01
Apostilageometriaanalticaplana 2ed-130825062334-phpapp01Apostilageometriaanalticaplana 2ed-130825062334-phpapp01
Apostilageometriaanalticaplana 2ed-130825062334-phpapp01
Carlos Andrade
 
Trabalho2
Trabalho2Trabalho2
App
AppApp
Graph Theory - Exercises - Chapter 8
Graph Theory - Exercises - Chapter 8Graph Theory - Exercises - Chapter 8
Graph Theory - Exercises - Chapter 8
Michel Alves
 
ARS - Análise de Redes Sociais - VIII ERI MG
ARS - Análise de Redes Sociais - VIII ERI MGARS - Análise de Redes Sociais - VIII ERI MG
ARS - Análise de Redes Sociais - VIII ERI MG
Petronio Candido
 
Labirintos 2D - Abordagem de grafos
Labirintos 2D - Abordagem de grafosLabirintos 2D - Abordagem de grafos
Labirintos 2D - Abordagem de grafos
Bruno Oliveira
 

Semelhante a Seminário sobre Grafos por Samyra Lara (20)

Grafos
GrafosGrafos
Grafos
 
Topological Sorting (Portuguese)
Topological Sorting (Portuguese)Topological Sorting (Portuguese)
Topological Sorting (Portuguese)
 
Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...
Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...
Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...
 
Introdução aos grafos: Principais conceitos
Introdução aos grafos: Principais conceitosIntrodução aos grafos: Principais conceitos
Introdução aos grafos: Principais conceitos
 
Grafos_1.pptx
Grafos_1.pptxGrafos_1.pptx
Grafos_1.pptx
 
Análise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de GrafosAnálise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de Grafos
 
Algoritmo de Kosaraju
Algoritmo de KosarajuAlgoritmo de Kosaraju
Algoritmo de Kosaraju
 
Busca em largura (breadth first search)
Busca em largura (breadth first search)Busca em largura (breadth first search)
Busca em largura (breadth first search)
 
slidesWtisc(1).pptx
slidesWtisc(1).pptxslidesWtisc(1).pptx
slidesWtisc(1).pptx
 
Apresentação ia
Apresentação iaApresentação ia
Apresentação ia
 
Teoria de Grafos.ppt.pptx para estudar MACS
Teoria de Grafos.ppt.pptx para estudar MACSTeoria de Grafos.ppt.pptx para estudar MACS
Teoria de Grafos.ppt.pptx para estudar MACS
 
Árvores Espalhadas Mínimas
Árvores Espalhadas MínimasÁrvores Espalhadas Mínimas
Árvores Espalhadas Mínimas
 
Grafos.ppt
Grafos.pptGrafos.ppt
Grafos.ppt
 
Apostila geometria analítica plana 2º ed.
Apostila geometria analítica plana   2º ed.Apostila geometria analítica plana   2º ed.
Apostila geometria analítica plana 2º ed.
 
Apostilageometriaanalticaplana 2ed-130825062334-phpapp01
Apostilageometriaanalticaplana 2ed-130825062334-phpapp01Apostilageometriaanalticaplana 2ed-130825062334-phpapp01
Apostilageometriaanalticaplana 2ed-130825062334-phpapp01
 
Trabalho2
Trabalho2Trabalho2
Trabalho2
 
App
AppApp
App
 
Graph Theory - Exercises - Chapter 8
Graph Theory - Exercises - Chapter 8Graph Theory - Exercises - Chapter 8
Graph Theory - Exercises - Chapter 8
 
ARS - Análise de Redes Sociais - VIII ERI MG
ARS - Análise de Redes Sociais - VIII ERI MGARS - Análise de Redes Sociais - VIII ERI MG
ARS - Análise de Redes Sociais - VIII ERI MG
 
Labirintos 2D - Abordagem de grafos
Labirintos 2D - Abordagem de grafosLabirintos 2D - Abordagem de grafos
Labirintos 2D - Abordagem de grafos
 

Último

História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 

Último (6)

História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 

Seminário sobre Grafos por Samyra Lara

  • 1. Grafos Samyra Lara Graduanda em Tecnologia em Sistemas para Internet – IFPB, campus João Pessoa.
  • 2. Porque aprender Grafos? Estamos conhecendo: GRAFOS  Importante ferramenta matemática com aplicação em diversas áreas do conhecimento como: genética, química, pesquisa operacional, telecomunicações, engenharia elétrica, redes de computadores, conexão de voos aéreos, restrições de precedência, fluxo de programas, dentro outros;  Utilizados na definição e/ou resolução de problemas;  Existem centenas de problemas computacionais que empregam grafos com sucesso;
  • 3. Porque aprender Grafos? Que tal começar pela Conectividade Social? Estamos conhecendo: GRAFOS
  • 4. Aplicação Prática: Voos aéreos WebJet Linhas Aéreas: http://www.webjet.com.br Estamos conhecendo: GRAFOS
  • 5. Definição de Grafos  É um conceito matemático que basicamente estuda os elementos de um conjunto e a relação entre eles; Definição matemática: G = {V, A}  V : Vértices (elementos);  A: Arestas ou Arcos (relações entre elementos); |V| e |A| representam a cardinalidade dos conjuntos V e A, isto é, número de elementos dos respectivos conjuntos. Terminologias: vértice = nós ; aresta = arco. Pode variar conforme o autor. Estamos conhecendo: GRAFOS
  • 6. Definição e Notação  Exemplo: G={V,A} V={1,2,3,4,5,6} A={ (6,4), (4,3), (4,5), (4,6), (5,2), (5,1), (5,4) (3,2), (3,4), (2,5), (2,3), (2,1), (1,2), (1,5) } |V| = 6 |A| = 14 Estamos conhecendo: GRAFOS
  • 7. Tipos de Grafos  NÃO-DIRIGIDOS: As arestas indicam uma conexão bidirecional  DIRIGIDOS:  As arestas determinam o sentido da conexão através de uma seta; Faz distinção entre origem e destino; Convenção: aresta: GND / arco: GD Estamos conhecendo: GRAFOS
  • 8. Grafo dirigido  Exemplo de Grafo Dirigido G = {V,A} V = {0,1,2,3} A = { {0,1}, {0,3}, {1,2}, {1,3}, {2,3}, {2,2} , {3,0}} |V| = 4 |A| = 7 Estamos conhecendo: GRAFOS
  • 9. Conceitos Básicos  Vértice Adjacente Vértices ligados por uma aresta Exemplo: • Vértice 1 é adjacente a 0 • Vértice 1 é adjacente a 2  Aresta Incidente Uma aresta/arco que conecta dois vértices em particular Exemplo: • A aresta (0,1) é incidente aos vértices 0 e 1 • O arco {3,4} é incidente de 3 ou incidente a 4 Estamos conhecendo: GRAFOS (0,1)
  • 10. Conceitos Básicos  Grau de um vértice Número de arestas/arcos incidentes a um vértice Exemplo: o grau do vértice “1” é 2; Tratando-se de Grafos dirigidos, temos:  Grau de Emissão: # arcos que partem de v;  Grau de Recepção: # arcos que chegam em v; Exemplo: Grau do vértice 0: Emissão: 2; Recepção: 1. Estamos conhecendo: GRAFOS
  • 11. Grafo dirigido  Caminho: É determinado através da sequência de um ou mais arcos. É possível chegar até outro vértice (não adjacente), através do percurso dos arcos. Exemplo: “0” não é adjacente a “2”, é possível chegar até ele através dos arcos {0,1} e {1,2}. Estamos conhecendo: GRAFOS
  • 12. Estamos conhecendo: GRAFOS Samyra, como eu represento isso?
  • 13. Formas de representação 1ª FORMA: Matriz de Adjacência (estática): A partir de um Grafo (G), dado por: G = (V, A);  n = número de vértices (n > 0). Consiste em uma matriz (E) quadrada (n x n), cujos elementos, são:  eij = 1, se a aresta <ei, ej> pertence a “A”  eij = 0, caso contrário. Estamos conhecendo: GRAFOS
  • 14. Matriz de Adjacência Como montar essa matriz de adjacência ? 1. Identificar a quantidade de vértices; 2. Montar uma matriz com essa quantidade; 3. Usar a regra (slide anterior) para determinar os elementos dessa matriz. Estamos conhecendo: GRAFOS
  • 15. Matriz de Adjacência • O Grafo (G), possui 6 vértices. • Implica dizer que a matriz será composta por 6 linhas e 6 colunas. Estamos conhecendo: GRAFOS GRAFO G
  • 16. Matriz de Adjacência  Matriz 6 x 6: Estamos conhecendo: GRAFOS
  • 17. Matriz de Adjacência Vantagens:  Fácil visualização dos dados;  Pesquisas são facilmente respondidas: Quantidade de arestas/arcos do grafo; Grau de cada vértice; Existência de caminhos; Existência de ciclos; Existência de Laços (loop). Estamos conhecendo: GRAFOS
  • 18. Matriz de Adjacência Desvantagens: Estamos conhecendo: GRAFOS  Geralmente essa matriz de representação é esparsa, uma vez que, são representados, mesmo que não existam, arestas/arcos entre os vértices;  Piorando a situação, as aplicações reais costumam não possuir limitações quanto ao número de vértices.
  • 19. Formas de representação Estamos conhecendo: GRAFOS 2ª FORMA: Lista de Adjacências (dinâmica) • É uma lista (L), onde cada nó possui uma lista de seus vértices adjacentes.
  • 20. Lista de Adjacências Como montar essa lista de adjacência ? Estamos conhecendo: GRAFOS 1. Identificar a quantidade de vértices; 2. Montar uma lista com essa quantidade (nó); 3. Cada nó dessa lista contém a identificação do vértice de um apontador para o próximo vértice, cujo valor será nulo (zero ou NULL) quando for o fim da lista.
  • 21. Lista de Adjacências Estamos conhecendo: GRAFOS Exemplo:  Qual seria a representação do Grafo (G), usando a representação “Lista de Adjacência” ?
  • 22. Lista de Adjacências Vantagens: • Fácil visualização dos dados; • Ocupa pouco espaço; • Fácil responder as perguntas. Desvantagens: • Complica “um pouco” a implementação. Estamos conhecendo: GRAFOS
  • 23. Percursos Algumas regras Estamos conhecendo: GRAFOS  A partir de uma ordem pré-estabelecida, os vértices de um grafo são percorridos, a partir de um deles;  Todos os caminhos relacionados a um vértices devem ser percorridos;  A escolha desse vértice inicial pode ser aleatório ou predefinido;  Geralmente a ideia é descobrir o melhor caminho, ou seja, o de menor comprimento.
  • 24. Percursos Algumas regras Estamos conhecendo: GRAFOS  É necessário que o algoritmo, de percurso, defina o primeiro “nó” a ser visitado, podendo ser:  Escolhido; Será selecionado aleatoriamente.  Também deve ser definido a ordem que será seguida para visitar os “nó” sucessores a um determinado “nó”.
  • 25. Percursos Observações Estamos conhecendo: GRAFOS  Em um grafo nem sempre é possível atingir todos os demais “nó” a partir do “nó” inicial;  Não existe uma sequência natural entre os sucessores de um determinado “nó”;
  • 26. Tipos de Percursos  Pesquisa Inicial em Profundidade (DFS): “Depth First Search”.  Pesquisa Inicial em Largura (BFS): “Breadth First Search”. Estamos conhecendo: GRAFOS
  • 27. Pesquisa em profundidade (DFS) Estamos conhecendo: GRAFOS Faz uma análise nos arcos de um grafo.
  • 28. Pesquisa em profundidade (DFS) Estamos conhecendo: GRAFOS A busca em profundidade procura acessar todos os vértices em um grafo. Para acessar todos os possíveis vértices, varre a lista de arestas de cada vértice do grafo.
  • 29. Pesquisa em profundidade (DFS) empilha primeiro vértice (origem) repita enquanto pilha não vazia{ "V" <- vértice do topo da pilha se (existir vértice adjacente){ remove o arco que está incidindo se o vértice adjacente não está marcado{ marca o vértice adjacente empilha o vértice adjacente } } senao desempilha "V" } Estamos conhecendo: GRAFOS
  • 30. Pesquisa em amplitude (BFS) Estamos conhecendo: GRAFOS Faz uma análise nos vértices de um grafo.
  • 31. Pesquisa em amplitude (BFS) Estamos conhecendo: GRAFOS Dado um grafo e um vértice de origem, a busca em largura explora as arestas do grafo até explorar todos os vértices alcançáveis a partir do vértice de origem.
  • 32. Pesquisa em amplitude (BFS) insere o primeiro vértice na fila repita enquanto fila não vazia{ "V" <- primeiro vértice da fila repita para todos os arcos incidentes a "V“ (adjac.){ se (vértice adjacente não está marcado){ marca o vértice adjacente insere o vértice adjacente no final da fila } } remova o vértice da fila } Estamos conhecendo: GRAFOS
  • 33. Vamos ao código... Estamos conhecendo: GRAFOS
  • 34. REFERÊNCIAS Estamos conhecendo: GRAFOS • Material do Curso de Extensão de Grafos, ministrado pelo Professor M.Sc. Alex Sandro da Cunha Rêgo; • Material do Projeto Olímpico de Programação, ministrado pela Ms. Valéria Maria Bezerra Cavalcanti; • ASCENCIO, A. F. G.; ARAÚJO, G. S.. Estrutura de Dados: Algoritmos, análise da Complexidade e Implementações em Java e C/C++. Editora PEARSON, 2010. • VELOSO, Paulo.; SANTOS, Clesio dos; AZEREDO, Paulo; FURTADO, Antonio Estruturas de Dados. Rio de Janeiro: Editora Campus, 1984.