# Pesquisa e Ordenação #
Aula Apoio - Grafos
Prof. Leinylson Fontinele Pereira
17:20 2
TEOREMA
Pesquisa e Ordenação - Aula Apoio - Grafos
17:20 3
Um grafo conexo G é um grafo de
Euler se e somente se todos os seus
vértices são de grau par.
Pesquisa e Ordenação - Aula Apoio - Grafos
17:20 4
Grafos?
Pesquisa e Ordenação - Aula Apoio - Grafos
Grafo Não é Algo Recente
17:20
 Quem se lembra das aulas de estrutura de dados?
 Vetores (arrays);
 Fila;
 Pilha;
 Árvores;
 Grafos...
Pesquisa e Ordenação - Aula Apoio - Grafos
O Mundo Não Gira Apenas no Banco Relacional
17:20
 Muita gente ainda está viciada
nos RDBMs, quando pensa em um
novo projeto, já começa imaginar a
estrutura de tabelas;
 Um arquiteto precisa pensar na
melhor solução para cada caso e
saber que o mundo da persistência
não tem apenas os RDBMs.
Pesquisa e Ordenação - Aula Apoio - Grafos
Pensar Fora da Caixa 
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Ser Eficiente
17:20
 Usar a tecnologia certa no momento certo vai tornar seu trabalho
absurdamente eficiente!
Pesquisa e Ordenação - Aula Apoio - Grafos
Grafos?
17:20
 Leonhard Euler
 Inventor da teoria de grafos (1736)
 Qual a possibilidade de atravessar todas as
pontes da cidade sem repetir nenhuma?
 Grafo Euleriano
Pesquisa e Ordenação - Aula Apoio - Grafos
Exemplo Clássico: Rede Social
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Isso é um Grafo?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Isso é um Grafo?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Isso é um Grafo?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Isso é um Grafo?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Isso é um Grafo?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Isso é um Grafo?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Isso é um Grafo?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Isso é um Grafo?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Isso é um Grafo?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Isso é um Grafo?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Isso é um Grafo?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Isso é um Grafo?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Isso é um Grafo?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Isso é um Grafo?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Exemplos de Grafos
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Grafo Regular
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Grafo Regular
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Multigrafo
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Subgrafo
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Grafos Estrela
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Teoria dosGrafos
17:20
A teoria dos grafos é um ramo da matemática que estuda
as relações entre os objetos de um determinado conjunto.
Para tal são empregadas estruturas chamadas de grafos,
G(V,A), onde V é um conjunto não vazio de objetos
denominados vértices e A é um conjunto de pares não
ordenados de V, chamado arestas.
Pesquisa e Ordenação - Aula Apoio - Grafos
Representação de Grafos
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Para que usar Grafos?
17:20
 Sistemas de recomendação
 Catálogo de produtos
 Filtragem colaborativa
 Redes sociais (o clássico)
 Sistemas geoespaciais
 e muito mais...
Pesquisa e Ordenação - Aula Apoio - Grafos
Quais as Opções para usar Grafos?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Neo4J
17:20
 Persistência apenas em Grafos;
 Implementação em Java;
 É o banco mais popular em Grafos;
 GPL;
 Cypher Query Language
Pesquisa e Ordenação - Aula Apoio - Grafos
Neo4J
17:20
MATCH (keanu:Person { name:'Keanu Reeves' })-
[:ACTED_IN]-(movie:Movie)
RETURN movie
Pesquisa e Ordenação - Aula Apoio - Grafos
ArangoDB
17:20
 Multi Modelagem:
 Grafos
 Documentos
 Query Language poderosa (AQL);
 Desenvolvido em C++
 Interface REST HTTP;
 FOXX → Framework que auxilia desenvolvimento web;
 Drivers nativos para quase todas as linguagens;
 Livre, mas possui suporte comercial.
Pesquisa e Ordenação - Aula Apoio - Grafos
ArangoShell
17:20
arangosh> var graph_module = require("org/arangodb/general-graph");
arangosh> var graph = graph_module._create("myGraph");
arangosh> graph;
[ Graph myGraph EdgeDefinitions: [ ] VertexCollections: [ ] ]
arangosh> graph._addVertexCollection("shop");
arangosh> graph._addVertexCollection("customer");
arangosh> graph._addVertexCollection("pet");
arangosh> graph
arangosh> var rel = graph_module._directedRelation("isCustomer", ["shop"], ["customer"]);
arangosh> graph._extendEdgeDefinitions(rel);
arangosh> graph;
[ Graph myGraph EdgeDefinitions: [
"isCustomer: [shop] -> [customer]"
] VertexCollections: [ ] ]
Pesquisa e Ordenação - Aula Apoio - Grafos
OrientDB
17:20
 Assim como ArangoDB, é multi-modelagem:
 Documento
 Grafos
 Desenvolvido em Java;
 Suporta transações ACID;
 Possui linguagem semelhante a SQL;
 Livre, mas possui suporte comercial também.
Pesquisa e Ordenação - Aula Apoio - Grafos
Query Language - Exemplos
17:20
orientdb> insert into V set name = 'Jay'
create record with RID #9:0
orientdb> create vertex V set name = 'Jay'
create vertex with RID #9:1
orientdb> create edge Eat from (select from Person where name =
'Luca') to (select from Restaurant where name = 'Dante')
Pesquisa e Ordenação - Aula Apoio - Grafos
Definição
17:20
 Como representar um conjunto de objetos e as suas relações?
Pesquisa e Ordenação - Aula Apoio - Grafos
Diversos tipos de aplicações necessitam disso
 Um grafo é um modelo matemático que
representa as relações entre objetos de um
determinado conjunto.
Definição
17:20
 Grafos em computação
Pesquisa e Ordenação - Aula Apoio - Grafos
Forma de solucionar problemas computáveis
Buscam o desenvolvimento de algoritmos mais
eficientes
 Qual a melhor rota da minha casa até o
restaurante?
 Duas pessoas tem amigos em comum?
Definição
17:20
 Um grafo G(V,A) é definido por dois conjuntos
Pesquisa e Ordenação - Aula Apoio - Grafos
Conjunto V de vértices (não vazio)
 Itens representados em um grafo;
Conjunto A de arestas
 Utilizadas para conectar pares de vértices, usando
um critério previamente estabelecido.
Definição
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Conceitos Básicos
17:20
 Vértice é cada um dos itens representados no grafo.
Pesquisa e Ordenação - Aula Apoio - Grafos
 O seu significado depende da natureza
do problema modelado
 Pessoas, uma tarefa em um projeto,
lugares em um mapa, etc.
Conceitos Básicos
17:20
 Aresta liga dois vértices
Pesquisa e Ordenação - Aula Apoio - Grafos
 Diz qual a relação entre eles
 Dois vértices são adjacentes se existir
uma aresta ligando eles.
 Pessoas (parentesco entre elas ou amizade), tarefas
de um projeto (pré-requisito entre as tarefas),
lugares de um mapa (estradas que existem ligando
os lugares), etc.
Conceitos Básicos
17:20
 Praticamente qualquer objeto pode ser
representado como um grafo.
Pesquisa e Ordenação - Aula Apoio - Grafos
Conceitos Básicos
17:20
 Praticamente qualquer objeto pode ser
representado como um grafo.
Pesquisa e Ordenação - Aula Apoio - Grafos
Conceitos Básicos
17:20
 As arestas podem ou não ter direção
Pesquisa e Ordenação - Aula Apoio - Grafos
Conceitos Básicos
17:20
 As arestas podem ou não ter direção
Pesquisa e Ordenação - Aula Apoio - Grafos
Conceitos Básicos
17:20
 Grau
 Indica o número de arestas que conectam um vértice do
grafo a outros vértices
•número de vizinhos que aquele vértice possui no grafo
 No caso dos dígrafos, temos dois tipos de grau:
•graude entrada: número de arestas que chegam ao vértice;
•graude saída: número de arestas que partem do vértice
Pesquisa e Ordenação - Aula Apoio - Grafos
Conceitos Básicos
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Conceitos Básicos
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Conceitos Básicos
17:20
 Laço
 Uma aresta é chamada de laço
se seu vértice de partida é o
mesmo que o de chegada
Pesquisa e Ordenação - Aula Apoio - Grafos
Conceitos Básicos
17:20
 Caminho
 Um caminho entre dois vértices é uma sequência de vértices onde cada
vértice está conectado ao vértice seguinte por meio de uma aresta.
Pesquisa e Ordenação - Aula Apoio - Grafos
Conceitos Básicos
17:20
 Ciclo
 Caminho onde o vértice inicial e o final são o mesmo vértice.
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Grafos
17:20
 Grafo trivial
 Possui um único vértice e nenhuma aresta
 Grafo simples
 Grafo não direcionado, sem laços e sem arestas
paralelas
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Grafos
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Grafos
17:20
 Grafo completo
 Grafo simples onde cada vértice se conecta a todos os
outros vértices do grafo.
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Grafos
17:20
 Grafo regular
 Grafo onde todos os seus vértices possuem o mesmo grau
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Grafos
17:20
 Subgrafo
 Gs(Vs, As) é um subgrafo de G(V, A) se o conjunto de vértices Vs for um subconjunto
de V, Vs ⊆ V, e se o conjunto de arestas As for um subconjunto de A, As ⊆ A.
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Grafos
17:20
 Grafo conexo e desconexo
 Grafo conexo: existe um caminho ligando quaisquer dois vértices.
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Grafos
17:20
 Grafos isomorfos
Dois grafos, G1(V1, A1) e G2(V2, A2),
são ditos isomorfos se existe uma função que
faça o mapeamento de vértices e arestas de
modo que os dois grafos se tornem coincidentes.
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Grafos
17:20
 Grafos isomorfos
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Grafos
17:20
 Grafo ponderado
 É um grafo que possui pesos associados a cada uma de suas arestas.
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Grafos
17:20
 Grafo Euleriano
 Grafo que possui um ciclo que visita todas as suas arestas apenas
uma vez, iniciando e terminando no mesmo vértice.
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Grafos
17:20
 Grafo Semi-Euleriano
 Grafo que possui um caminho aberto que visita todas as
suas arestas apenas uma vez.
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Grafos
17:20
 Grafo Hamiltoniano
 Grafo que possui um caminho que visita todos os seus
vértices apenas uma vez.
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Representação
17:20
 Como representar um grafo no computador?
 Matriz de Adjacência
 Lista de Adjacência
 Qual a representação que deve ser utilizada?
 Depende da aplicação!
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Representação
17:20
 Matriz de adjacência
 Utiliza uma matriz N x N para armazenar o grafo, onde
N é o número de vértices
• Alto custo computacional, O(N2
)
Uma aresta é representada por uma marca na posição
(i , j) da matriz
• Aresta liga o vértice i ao j
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Representação
17:20
 Matriz de adjacência
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Representação
17:20
 Lista de adjacência
 Utiliza uma lista de vértices para descrever as relações entre
os vértices.
•Um grafo contendo N vértices utiliza um array de ponteiros de
tamanho N para armazenar os vértices do grafo
•Para cada vértice é criada uma lista de arestas, onde cada
posição da lista armazena o índice do vértice a qual aquele
vértice se conecta
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Representação
17:20
 Lista de adjacência
Pesquisa e Ordenação - Aula Apoio - Grafos
Tipos de Representação
17:20
 Qual representação utilizar?
Lista de adjacência é mais indicada para um grafo que
possui muitos vértices mas poucas arestas ligando-os.
A medida que o número de arestas cresce e não havendo
nenhuma outra informação associada a aresta, o uso de
uma matriz de adjacência se torna mais eficiente
Pesquisa e Ordenação - Aula Apoio - Grafos
Material: https://sites.google.com/site/leinylsonuespi
17:20
Material baseado nas aulas de:
 Christiano Anderson, Grafos - Uma abordagem divertida
 Matemática com o Google Earth, Professor Fernando Brito
 Linguagem C Descomplicada , Dr. André R. Backes
Pesquisa e Ordenação - Aula Apoio - Grafos
17:20 76
Desafio!
Pesquisa e Ordenação - Aula Apoio - Grafos
Desafio MatematicamenteImpossível!!
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Do que Trata o Desafio?
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Explicaçãodo Desafio
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
17:20 80
Atividade
Pesquisa e Ordenação - Aula Apoio - Grafos
17:20 81
Konigsberg Bridges
Pesquisa e Ordenação - Aula Apoio - Grafos
Situação-problema
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
 Por muito tempo os moradores da cidade de Königsberg
(atualmente Kaliningrado, na Rússia) perguntavam-se se era
possível fazer um passeio na cidade cruzando todas as sete
pontes que cortavam o rio Pregel.
 Passando apenas uma vez por cada ponte, retornando ao
ponto de partida, ou seja, percorrendo um caminho fechado.
Mapa de Königsberg de 1652
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Konigsberg Bridges
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
 Muitos tentaram fazer um percurso,
mas as tentativas foram sempre
falhas.
 Até que o matemático suíço
Leonhard Euler (1707 − 1783),
usando argumentos muito simples,
provou em 1736 que não era
possível realizar tal feito.
Konigsberg Bridges
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
 Ele usou um diagrama, chamado de grafo2, para reproduzir os principais
elementos do mapa, onde desenhou pontos (vértices) representando as porções de
terra e linhas (arestas) representando os percursos pelas sete pontes.
Konigsberg Bridges
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
 Daí Euler percebeu que só seria possível fazer o trajeto
passando uma única vez em cada ponte e retornando ao ponto
de partida, se houvesse, partindo de cada vértice, um número
par de arestas
 Isto é, todos os vértices deveriam ser de grau par.
 Assim, esse famoso problema matemático tornou-se ponto de
partida para o desenvolvimento da Teoria dos Grafos.
Konigsberg Bridges
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
 Da mesma forma, outras situações reais podem ser
representadas por grafos como, por exemplo:
 Esquemas de circuitos integrados; rotas otimizadas para empresas de transporte
 sistemas de engenharia de tráfego;
 Distribuição de serviços de energia, água, e telefone.
 Além disso, também é possível modelar relações de
hierarquia, amizade e trabalho.
Konigsberg Bridges
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Konigsberg Bridges – Várias Abstrações
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Modelo do Problema
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
𝑉 = { 𝑚 | 𝑚 é 𝑢𝑚𝑎 𝑖𝑙ℎ𝑎 𝑜𝑢 𝑢𝑚𝑎 𝑚𝑎𝑟𝑔𝑒𝑚 }
𝐴 = { (𝑚1, 𝑚2, 𝑝} | 𝑒𝑥𝑖𝑠𝑡𝑒 𝑢𝑚𝑎 𝑝𝑜𝑛𝑡𝑒 𝑝 𝑢𝑛𝑖𝑛𝑑𝑜 𝑎𝑠 𝑚𝑎𝑟𝑔𝑒𝑛𝑠/𝑖𝑙ℎ𝑎𝑠 𝑚1 𝑒 𝑚2 }
𝑉 = { 𝐴, 𝐵, 𝐶, 𝐷 }
𝐴 = { (𝐴, 𝐶, 𝑐), (𝐴, 𝐶, 𝑑), (𝐴, 𝐵, 𝑎), (𝐴, 𝐵, 𝑏), (𝐴, 𝐷, 𝑒), (𝐵, 𝐷, 𝑓), (𝐶, 𝐷, 𝑔) }
Kaliningrado - Federação Russa (Atualmente)
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Konigsberg Bridges (Atualmente)
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Relaçãodo DesafiocomKonigsberg Bridges
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Teoria dos Grafos
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
 Um Caminho Euleriano é um caminho em um
grafo que visita cada aresta apenas uma vez.
 Com caso especial, um Circuito Euleriano é um
caminho Euleriano que começa e termina no
mesmo vértice.
Grafo de Königsberg
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Teoria dos Grafos
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
 Pela análise do grafo modelo G para o problema das pontes
de Königsberg, observa-se que Para Todo v E V, gr(v) é ímpar.
Logo, o grafo G não é um grafo de Euler.
 Isso significa que o problema não possui solução. Note que
não é necessário que tenhamos Para Todo v E V, gr(v) é impar ,
basta que Exista Pelo Menos Um v E V | gr(v) é impar para
concluirmos que o grafo em questão não é um grafo de Euler.
Grafo Euleriano
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Caminho Hamiltoniano
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Um caminho hamiltoniano é um caminho que permite passar
por todos os vértices de um grafo G, não repetindo nenhum, ou,
seja, passar por todos uma e uma só vez por cada.
Caminho Hamiltoniano
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Matriz de Adjacência
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
 Uma matriz de adjacência é uma das formas de se representar um grafo.
 Dado um grafo G com n vértices, podemos representá-lo em uma matriz 𝑛 𝑥 𝑛
𝐴(𝐺) = [𝑎𝑖𝑗] (ou simplesmente 𝐴).
Listade Adjacência
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Problema do Caixeiro-Viajante – (PCV)
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
 É um problema que tenta determinar a menor rota para
percorrer uma série de cidades (visitando uma única vez cada
uma delas), retornando à cidade de origem.
 Trata-se de um problema de otimização inspirado na
necessidade dos vendedores em realizar entregas em diversos
locais (as cidades) percorrendo o menor caminho possível,
reduzindo o tempo necessário para a viagem e os possíveis
custos com transporte e combustível.
Problema do Caixeiro-Viajante – (PCV)
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
AlgoritmoACO (Ant Colony Optimization)
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
 Nos algoritmos ACO, as formigas são simples agentes que, no caso
do PCV, constroem circuitos através do movimento entre cidades
no grafo do problema.
 A solução construída pelas formigas é elaborada por trilhos de
feromonas (artificiais) e pela disponibilidade de informação
heurística, à priori.
 Quando o algoritmo ACO é aplicado, é associada uma força da
feromona, onde 𝜏𝑖𝑗(𝑡) é uma informação numérica que é
modificada durante o algoritmo, e t é o contador das iterações
AlgoritmoACO (Ant Colony Optimization)
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
AlgoritmoACO (Ant Colony Optimization)
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Teorema das QuatroCores
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Teorema das QuatroCores
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Teorema das QuatroCores
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
17:20 110
Agora é sua vez!
Pesquisa e Ordenação - Aula Apoio - Grafos
Atividade como Google Maps
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
 As Sete Pontes de Königsberb
 Construa o grafo no quadro (indicando as coordenadas) e
determine um percurso optimizado do trecho descrito a seguir:
 Partindo da sua residência, trace o menor percurso para chegar à
Faculdade Maurício de NASSAU. Seu trajeto deve incluir uma visita à
Catedral de N. S. das Graças, Rodoviária de Municipal e Parnaíba
Shopping, retornando à sua residência, sem repetir nenhuma rua ou
ponte, não necessariamente nesta ordem.
Atividade como Google Maps
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Atividade como Google Maps
17:20
Pesquisa e Ordenação - Aula Apoio - Grafos
Alguma Dúvida?
17:20
Até a prova!
leinylson@gmail.com
Prática 
17:20 115
As aulas práticas foram baseadas no material de
Linguagem C Descomplicada , Dr. André R. Backes.
Disponível em: https://programacaodescomplicada.wordpress.com/
Estrutura de Dados - Aula Apoio - Grafos
ListaEstática Sequencial
17:20
 ListaSequencial.h
 Os protótipos das funções
 O tipo de dado armazenado na lista
 O ponteiro lista
 Tamanho do vetor usado na lista
Estrutura de Dados - Aula Apoio - Grafos
ListaEstática Sequencial
17:20
 ListaSequencial.c
 O tipo de dados lista
 Implementar as suas funções
Estrutura de Dados - Aula Apoio - Grafos
17:20 118
Definindo o Grafo
Estrutura de Dados - Aula Apoio - Grafos
Definindoo Grafo: TADGrafo
17:20
Estrutura de Dados - Aula Apoio - Grafos
17:20 120
Criando o Grafo
Estrutura de Dados - Aula Apoio - Grafos
Criandoo Grafo
17:20
Estrutura de Dados - Aula Apoio - Grafos
Criandoo Grafo
17:20
Estrutura de Dados - Aula Apoio - Grafos
17:20 123
Destruindo o Grafo
Estrutura de Dados - Aula Apoio - Grafos
Destruindoo Grafo
17:20
Estrutura de Dados - Aula Apoio - Grafos
Destruindoo Grafo
17:20
Estrutura de Dados - Aula Apoio - Grafos
17:20 126
Inserindo uma
Aresta no Grafo
Estrutura de Dados - Aula Apoio - Grafos
Inserindo uma Aresta no Grafo
17:20
Estrutura de Dados - Aula Apoio - Grafos
Inserindo uma Aresta no Grafo
17:20
Estrutura de Dados - Aula Apoio - Grafos

Estrutura de Dados - Grafos

  • 1.
    # Pesquisa eOrdenação # Aula Apoio - Grafos Prof. Leinylson Fontinele Pereira
  • 2.
    17:20 2 TEOREMA Pesquisa eOrdenação - Aula Apoio - Grafos
  • 3.
    17:20 3 Um grafoconexo G é um grafo de Euler se e somente se todos os seus vértices são de grau par. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 4.
    17:20 4 Grafos? Pesquisa eOrdenação - Aula Apoio - Grafos
  • 5.
    Grafo Não éAlgo Recente 17:20  Quem se lembra das aulas de estrutura de dados?  Vetores (arrays);  Fila;  Pilha;  Árvores;  Grafos... Pesquisa e Ordenação - Aula Apoio - Grafos
  • 6.
    O Mundo NãoGira Apenas no Banco Relacional 17:20  Muita gente ainda está viciada nos RDBMs, quando pensa em um novo projeto, já começa imaginar a estrutura de tabelas;  Um arquiteto precisa pensar na melhor solução para cada caso e saber que o mundo da persistência não tem apenas os RDBMs. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 7.
    Pensar Fora daCaixa  17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 8.
    Ser Eficiente 17:20  Usara tecnologia certa no momento certo vai tornar seu trabalho absurdamente eficiente! Pesquisa e Ordenação - Aula Apoio - Grafos
  • 9.
    Grafos? 17:20  Leonhard Euler Inventor da teoria de grafos (1736)  Qual a possibilidade de atravessar todas as pontes da cidade sem repetir nenhuma?  Grafo Euleriano Pesquisa e Ordenação - Aula Apoio - Grafos
  • 10.
    Exemplo Clássico: RedeSocial 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 11.
    Isso é umGrafo? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 12.
    Isso é umGrafo? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 13.
    Isso é umGrafo? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 14.
    Isso é umGrafo? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 15.
    Isso é umGrafo? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 16.
    Isso é umGrafo? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 17.
    Isso é umGrafo? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 18.
    Isso é umGrafo? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 19.
    Isso é umGrafo? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 20.
    Isso é umGrafo? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 21.
    Isso é umGrafo? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 22.
    Isso é umGrafo? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 23.
    Isso é umGrafo? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 24.
    Isso é umGrafo? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 25.
    Exemplos de Grafos 17:20 Pesquisae Ordenação - Aula Apoio - Grafos
  • 26.
    Grafo Regular 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos
  • 27.
    Grafo Regular 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos
  • 28.
  • 29.
  • 30.
    Grafos Estrela 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos
  • 31.
    Teoria dosGrafos 17:20 A teoriados grafos é um ramo da matemática que estuda as relações entre os objetos de um determinado conjunto. Para tal são empregadas estruturas chamadas de grafos, G(V,A), onde V é um conjunto não vazio de objetos denominados vértices e A é um conjunto de pares não ordenados de V, chamado arestas. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 32.
    Representação de Grafos 17:20 Pesquisae Ordenação - Aula Apoio - Grafos
  • 33.
    Para que usarGrafos? 17:20  Sistemas de recomendação  Catálogo de produtos  Filtragem colaborativa  Redes sociais (o clássico)  Sistemas geoespaciais  e muito mais... Pesquisa e Ordenação - Aula Apoio - Grafos
  • 34.
    Quais as Opçõespara usar Grafos? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 35.
    Neo4J 17:20  Persistência apenasem Grafos;  Implementação em Java;  É o banco mais popular em Grafos;  GPL;  Cypher Query Language Pesquisa e Ordenação - Aula Apoio - Grafos
  • 36.
    Neo4J 17:20 MATCH (keanu:Person {name:'Keanu Reeves' })- [:ACTED_IN]-(movie:Movie) RETURN movie Pesquisa e Ordenação - Aula Apoio - Grafos
  • 37.
    ArangoDB 17:20  Multi Modelagem: Grafos  Documentos  Query Language poderosa (AQL);  Desenvolvido em C++  Interface REST HTTP;  FOXX → Framework que auxilia desenvolvimento web;  Drivers nativos para quase todas as linguagens;  Livre, mas possui suporte comercial. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 38.
    ArangoShell 17:20 arangosh> var graph_module= require("org/arangodb/general-graph"); arangosh> var graph = graph_module._create("myGraph"); arangosh> graph; [ Graph myGraph EdgeDefinitions: [ ] VertexCollections: [ ] ] arangosh> graph._addVertexCollection("shop"); arangosh> graph._addVertexCollection("customer"); arangosh> graph._addVertexCollection("pet"); arangosh> graph arangosh> var rel = graph_module._directedRelation("isCustomer", ["shop"], ["customer"]); arangosh> graph._extendEdgeDefinitions(rel); arangosh> graph; [ Graph myGraph EdgeDefinitions: [ "isCustomer: [shop] -> [customer]" ] VertexCollections: [ ] ] Pesquisa e Ordenação - Aula Apoio - Grafos
  • 39.
    OrientDB 17:20  Assim comoArangoDB, é multi-modelagem:  Documento  Grafos  Desenvolvido em Java;  Suporta transações ACID;  Possui linguagem semelhante a SQL;  Livre, mas possui suporte comercial também. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 40.
    Query Language -Exemplos 17:20 orientdb> insert into V set name = 'Jay' create record with RID #9:0 orientdb> create vertex V set name = 'Jay' create vertex with RID #9:1 orientdb> create edge Eat from (select from Person where name = 'Luca') to (select from Restaurant where name = 'Dante') Pesquisa e Ordenação - Aula Apoio - Grafos
  • 41.
    Definição 17:20  Como representarum conjunto de objetos e as suas relações? Pesquisa e Ordenação - Aula Apoio - Grafos Diversos tipos de aplicações necessitam disso  Um grafo é um modelo matemático que representa as relações entre objetos de um determinado conjunto.
  • 42.
    Definição 17:20  Grafos emcomputação Pesquisa e Ordenação - Aula Apoio - Grafos Forma de solucionar problemas computáveis Buscam o desenvolvimento de algoritmos mais eficientes  Qual a melhor rota da minha casa até o restaurante?  Duas pessoas tem amigos em comum?
  • 43.
    Definição 17:20  Um grafoG(V,A) é definido por dois conjuntos Pesquisa e Ordenação - Aula Apoio - Grafos Conjunto V de vértices (não vazio)  Itens representados em um grafo; Conjunto A de arestas  Utilizadas para conectar pares de vértices, usando um critério previamente estabelecido.
  • 44.
  • 45.
    Conceitos Básicos 17:20  Vérticeé cada um dos itens representados no grafo. Pesquisa e Ordenação - Aula Apoio - Grafos  O seu significado depende da natureza do problema modelado  Pessoas, uma tarefa em um projeto, lugares em um mapa, etc.
  • 46.
    Conceitos Básicos 17:20  Arestaliga dois vértices Pesquisa e Ordenação - Aula Apoio - Grafos  Diz qual a relação entre eles  Dois vértices são adjacentes se existir uma aresta ligando eles.  Pessoas (parentesco entre elas ou amizade), tarefas de um projeto (pré-requisito entre as tarefas), lugares de um mapa (estradas que existem ligando os lugares), etc.
  • 47.
    Conceitos Básicos 17:20  Praticamentequalquer objeto pode ser representado como um grafo. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 48.
    Conceitos Básicos 17:20  Praticamentequalquer objeto pode ser representado como um grafo. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 49.
    Conceitos Básicos 17:20  Asarestas podem ou não ter direção Pesquisa e Ordenação - Aula Apoio - Grafos
  • 50.
    Conceitos Básicos 17:20  Asarestas podem ou não ter direção Pesquisa e Ordenação - Aula Apoio - Grafos
  • 51.
    Conceitos Básicos 17:20  Grau Indica o número de arestas que conectam um vértice do grafo a outros vértices •número de vizinhos que aquele vértice possui no grafo  No caso dos dígrafos, temos dois tipos de grau: •graude entrada: número de arestas que chegam ao vértice; •graude saída: número de arestas que partem do vértice Pesquisa e Ordenação - Aula Apoio - Grafos
  • 52.
    Conceitos Básicos 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos
  • 53.
    Conceitos Básicos 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos
  • 54.
    Conceitos Básicos 17:20  Laço Uma aresta é chamada de laço se seu vértice de partida é o mesmo que o de chegada Pesquisa e Ordenação - Aula Apoio - Grafos
  • 55.
    Conceitos Básicos 17:20  Caminho Um caminho entre dois vértices é uma sequência de vértices onde cada vértice está conectado ao vértice seguinte por meio de uma aresta. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 56.
    Conceitos Básicos 17:20  Ciclo Caminho onde o vértice inicial e o final são o mesmo vértice. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 57.
    Tipos de Grafos 17:20 Grafo trivial  Possui um único vértice e nenhuma aresta  Grafo simples  Grafo não direcionado, sem laços e sem arestas paralelas Pesquisa e Ordenação - Aula Apoio - Grafos
  • 58.
    Tipos de Grafos 17:20 Pesquisae Ordenação - Aula Apoio - Grafos
  • 59.
    Tipos de Grafos 17:20 Grafo completo  Grafo simples onde cada vértice se conecta a todos os outros vértices do grafo. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 60.
    Tipos de Grafos 17:20 Grafo regular  Grafo onde todos os seus vértices possuem o mesmo grau Pesquisa e Ordenação - Aula Apoio - Grafos
  • 61.
    Tipos de Grafos 17:20 Subgrafo  Gs(Vs, As) é um subgrafo de G(V, A) se o conjunto de vértices Vs for um subconjunto de V, Vs ⊆ V, e se o conjunto de arestas As for um subconjunto de A, As ⊆ A. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 62.
    Tipos de Grafos 17:20 Grafo conexo e desconexo  Grafo conexo: existe um caminho ligando quaisquer dois vértices. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 63.
    Tipos de Grafos 17:20 Grafos isomorfos Dois grafos, G1(V1, A1) e G2(V2, A2), são ditos isomorfos se existe uma função que faça o mapeamento de vértices e arestas de modo que os dois grafos se tornem coincidentes. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 64.
    Tipos de Grafos 17:20 Grafos isomorfos Pesquisa e Ordenação - Aula Apoio - Grafos
  • 65.
    Tipos de Grafos 17:20 Grafo ponderado  É um grafo que possui pesos associados a cada uma de suas arestas. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 66.
    Tipos de Grafos 17:20 Grafo Euleriano  Grafo que possui um ciclo que visita todas as suas arestas apenas uma vez, iniciando e terminando no mesmo vértice. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 67.
    Tipos de Grafos 17:20 Grafo Semi-Euleriano  Grafo que possui um caminho aberto que visita todas as suas arestas apenas uma vez. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 68.
    Tipos de Grafos 17:20 Grafo Hamiltoniano  Grafo que possui um caminho que visita todos os seus vértices apenas uma vez. Pesquisa e Ordenação - Aula Apoio - Grafos
  • 69.
    Tipos de Representação 17:20 Como representar um grafo no computador?  Matriz de Adjacência  Lista de Adjacência  Qual a representação que deve ser utilizada?  Depende da aplicação! Pesquisa e Ordenação - Aula Apoio - Grafos
  • 70.
    Tipos de Representação 17:20 Matriz de adjacência  Utiliza uma matriz N x N para armazenar o grafo, onde N é o número de vértices • Alto custo computacional, O(N2 ) Uma aresta é representada por uma marca na posição (i , j) da matriz • Aresta liga o vértice i ao j Pesquisa e Ordenação - Aula Apoio - Grafos
  • 71.
    Tipos de Representação 17:20 Matriz de adjacência Pesquisa e Ordenação - Aula Apoio - Grafos
  • 72.
    Tipos de Representação 17:20 Lista de adjacência  Utiliza uma lista de vértices para descrever as relações entre os vértices. •Um grafo contendo N vértices utiliza um array de ponteiros de tamanho N para armazenar os vértices do grafo •Para cada vértice é criada uma lista de arestas, onde cada posição da lista armazena o índice do vértice a qual aquele vértice se conecta Pesquisa e Ordenação - Aula Apoio - Grafos
  • 73.
    Tipos de Representação 17:20 Lista de adjacência Pesquisa e Ordenação - Aula Apoio - Grafos
  • 74.
    Tipos de Representação 17:20 Qual representação utilizar? Lista de adjacência é mais indicada para um grafo que possui muitos vértices mas poucas arestas ligando-os. A medida que o número de arestas cresce e não havendo nenhuma outra informação associada a aresta, o uso de uma matriz de adjacência se torna mais eficiente Pesquisa e Ordenação - Aula Apoio - Grafos
  • 75.
    Material: https://sites.google.com/site/leinylsonuespi 17:20 Material baseadonas aulas de:  Christiano Anderson, Grafos - Uma abordagem divertida  Matemática com o Google Earth, Professor Fernando Brito  Linguagem C Descomplicada , Dr. André R. Backes Pesquisa e Ordenação - Aula Apoio - Grafos
  • 76.
    17:20 76 Desafio! Pesquisa eOrdenação - Aula Apoio - Grafos
  • 77.
  • 78.
    Do que Tratao Desafio? 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 79.
    Explicaçãodo Desafio 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos
  • 80.
    17:20 80 Atividade Pesquisa eOrdenação - Aula Apoio - Grafos
  • 81.
    17:20 81 Konigsberg Bridges Pesquisae Ordenação - Aula Apoio - Grafos
  • 82.
    Situação-problema 17:20 Pesquisa e Ordenação- Aula Apoio - Grafos  Por muito tempo os moradores da cidade de Königsberg (atualmente Kaliningrado, na Rússia) perguntavam-se se era possível fazer um passeio na cidade cruzando todas as sete pontes que cortavam o rio Pregel.  Passando apenas uma vez por cada ponte, retornando ao ponto de partida, ou seja, percorrendo um caminho fechado.
  • 83.
    Mapa de Königsbergde 1652 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 84.
    Konigsberg Bridges 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos  Muitos tentaram fazer um percurso, mas as tentativas foram sempre falhas.  Até que o matemático suíço Leonhard Euler (1707 − 1783), usando argumentos muito simples, provou em 1736 que não era possível realizar tal feito.
  • 85.
    Konigsberg Bridges 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos  Ele usou um diagrama, chamado de grafo2, para reproduzir os principais elementos do mapa, onde desenhou pontos (vértices) representando as porções de terra e linhas (arestas) representando os percursos pelas sete pontes.
  • 86.
    Konigsberg Bridges 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos  Daí Euler percebeu que só seria possível fazer o trajeto passando uma única vez em cada ponte e retornando ao ponto de partida, se houvesse, partindo de cada vértice, um número par de arestas  Isto é, todos os vértices deveriam ser de grau par.  Assim, esse famoso problema matemático tornou-se ponto de partida para o desenvolvimento da Teoria dos Grafos.
  • 87.
    Konigsberg Bridges 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos  Da mesma forma, outras situações reais podem ser representadas por grafos como, por exemplo:  Esquemas de circuitos integrados; rotas otimizadas para empresas de transporte  sistemas de engenharia de tráfego;  Distribuição de serviços de energia, água, e telefone.  Além disso, também é possível modelar relações de hierarquia, amizade e trabalho.
  • 88.
    Konigsberg Bridges 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos
  • 89.
    Konigsberg Bridges –Várias Abstrações 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 90.
    Modelo do Problema 17:20 Pesquisae Ordenação - Aula Apoio - Grafos 𝑉 = { 𝑚 | 𝑚 é 𝑢𝑚𝑎 𝑖𝑙ℎ𝑎 𝑜𝑢 𝑢𝑚𝑎 𝑚𝑎𝑟𝑔𝑒𝑚 } 𝐴 = { (𝑚1, 𝑚2, 𝑝} | 𝑒𝑥𝑖𝑠𝑡𝑒 𝑢𝑚𝑎 𝑝𝑜𝑛𝑡𝑒 𝑝 𝑢𝑛𝑖𝑛𝑑𝑜 𝑎𝑠 𝑚𝑎𝑟𝑔𝑒𝑛𝑠/𝑖𝑙ℎ𝑎𝑠 𝑚1 𝑒 𝑚2 } 𝑉 = { 𝐴, 𝐵, 𝐶, 𝐷 } 𝐴 = { (𝐴, 𝐶, 𝑐), (𝐴, 𝐶, 𝑑), (𝐴, 𝐵, 𝑎), (𝐴, 𝐵, 𝑏), (𝐴, 𝐷, 𝑒), (𝐵, 𝐷, 𝑓), (𝐶, 𝐷, 𝑔) }
  • 91.
    Kaliningrado - FederaçãoRussa (Atualmente) 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 92.
    Konigsberg Bridges (Atualmente) 17:20 Pesquisae Ordenação - Aula Apoio - Grafos
  • 93.
  • 94.
    Teoria dos Grafos 17:20 Pesquisae Ordenação - Aula Apoio - Grafos  Um Caminho Euleriano é um caminho em um grafo que visita cada aresta apenas uma vez.  Com caso especial, um Circuito Euleriano é um caminho Euleriano que começa e termina no mesmo vértice.
  • 95.
    Grafo de Königsberg 17:20 Pesquisae Ordenação - Aula Apoio - Grafos
  • 96.
    Teoria dos Grafos 17:20 Pesquisae Ordenação - Aula Apoio - Grafos  Pela análise do grafo modelo G para o problema das pontes de Königsberg, observa-se que Para Todo v E V, gr(v) é ímpar. Logo, o grafo G não é um grafo de Euler.  Isso significa que o problema não possui solução. Note que não é necessário que tenhamos Para Todo v E V, gr(v) é impar , basta que Exista Pelo Menos Um v E V | gr(v) é impar para concluirmos que o grafo em questão não é um grafo de Euler.
  • 97.
    Grafo Euleriano 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos
  • 98.
    Caminho Hamiltoniano 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos Um caminho hamiltoniano é um caminho que permite passar por todos os vértices de um grafo G, não repetindo nenhum, ou, seja, passar por todos uma e uma só vez por cada.
  • 99.
    Caminho Hamiltoniano 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos
  • 100.
    Matriz de Adjacência 17:20 Pesquisae Ordenação - Aula Apoio - Grafos  Uma matriz de adjacência é uma das formas de se representar um grafo.  Dado um grafo G com n vértices, podemos representá-lo em uma matriz 𝑛 𝑥 𝑛 𝐴(𝐺) = [𝑎𝑖𝑗] (ou simplesmente 𝐴).
  • 101.
    Listade Adjacência 17:20 Pesquisa eOrdenação - Aula Apoio - Grafos
  • 102.
    Problema do Caixeiro-Viajante– (PCV) 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos  É um problema que tenta determinar a menor rota para percorrer uma série de cidades (visitando uma única vez cada uma delas), retornando à cidade de origem.  Trata-se de um problema de otimização inspirado na necessidade dos vendedores em realizar entregas em diversos locais (as cidades) percorrendo o menor caminho possível, reduzindo o tempo necessário para a viagem e os possíveis custos com transporte e combustível.
  • 103.
    Problema do Caixeiro-Viajante– (PCV) 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 104.
    AlgoritmoACO (Ant ColonyOptimization) 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos  Nos algoritmos ACO, as formigas são simples agentes que, no caso do PCV, constroem circuitos através do movimento entre cidades no grafo do problema.  A solução construída pelas formigas é elaborada por trilhos de feromonas (artificiais) e pela disponibilidade de informação heurística, à priori.  Quando o algoritmo ACO é aplicado, é associada uma força da feromona, onde 𝜏𝑖𝑗(𝑡) é uma informação numérica que é modificada durante o algoritmo, e t é o contador das iterações
  • 105.
    AlgoritmoACO (Ant ColonyOptimization) 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 106.
    AlgoritmoACO (Ant ColonyOptimization) 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 107.
    Teorema das QuatroCores 17:20 Pesquisae Ordenação - Aula Apoio - Grafos
  • 108.
    Teorema das QuatroCores 17:20 Pesquisae Ordenação - Aula Apoio - Grafos
  • 109.
    Teorema das QuatroCores 17:20 Pesquisae Ordenação - Aula Apoio - Grafos
  • 110.
    17:20 110 Agora ésua vez! Pesquisa e Ordenação - Aula Apoio - Grafos
  • 111.
    Atividade como GoogleMaps 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos  As Sete Pontes de Königsberb  Construa o grafo no quadro (indicando as coordenadas) e determine um percurso optimizado do trecho descrito a seguir:  Partindo da sua residência, trace o menor percurso para chegar à Faculdade Maurício de NASSAU. Seu trajeto deve incluir uma visita à Catedral de N. S. das Graças, Rodoviária de Municipal e Parnaíba Shopping, retornando à sua residência, sem repetir nenhuma rua ou ponte, não necessariamente nesta ordem.
  • 112.
    Atividade como GoogleMaps 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 113.
    Atividade como GoogleMaps 17:20 Pesquisa e Ordenação - Aula Apoio - Grafos
  • 114.
    Alguma Dúvida? 17:20 Até aprova! leinylson@gmail.com
  • 115.
    Prática  17:20 115 Asaulas práticas foram baseadas no material de Linguagem C Descomplicada , Dr. André R. Backes. Disponível em: https://programacaodescomplicada.wordpress.com/ Estrutura de Dados - Aula Apoio - Grafos
  • 116.
    ListaEstática Sequencial 17:20  ListaSequencial.h Os protótipos das funções  O tipo de dado armazenado na lista  O ponteiro lista  Tamanho do vetor usado na lista Estrutura de Dados - Aula Apoio - Grafos
  • 117.
    ListaEstática Sequencial 17:20  ListaSequencial.c O tipo de dados lista  Implementar as suas funções Estrutura de Dados - Aula Apoio - Grafos
  • 118.
    17:20 118 Definindo oGrafo Estrutura de Dados - Aula Apoio - Grafos
  • 119.
    Definindoo Grafo: TADGrafo 17:20 Estruturade Dados - Aula Apoio - Grafos
  • 120.
    17:20 120 Criando oGrafo Estrutura de Dados - Aula Apoio - Grafos
  • 121.
    Criandoo Grafo 17:20 Estrutura deDados - Aula Apoio - Grafos
  • 122.
    Criandoo Grafo 17:20 Estrutura deDados - Aula Apoio - Grafos
  • 123.
    17:20 123 Destruindo oGrafo Estrutura de Dados - Aula Apoio - Grafos
  • 124.
    Destruindoo Grafo 17:20 Estrutura deDados - Aula Apoio - Grafos
  • 125.
    Destruindoo Grafo 17:20 Estrutura deDados - Aula Apoio - Grafos
  • 126.
    17:20 126 Inserindo uma Arestano Grafo Estrutura de Dados - Aula Apoio - Grafos
  • 127.
    Inserindo uma Arestano Grafo 17:20 Estrutura de Dados - Aula Apoio - Grafos
  • 128.
    Inserindo uma Arestano Grafo 17:20 Estrutura de Dados - Aula Apoio - Grafos