Teoria dos Grafos Aula 3
|
|
|
- Luana Wagner
- 6 Há anos
- Visualizações:
Transcrição
1 Teoria dos Grafos Aula 3 Aula passada Exemplo (mapas) Definições Algumas propriedades Aula de hoje Representando grafos Matriz e lista Comparando tempos de acesso
2 Grafo G=(V, E) Grafo V = conjunto de vértices (inteiros) E = conjunto de arestas (pares não-ordenados) Representação matemática de grafos V = {1, 2, 3, 4, 5, 6}, Exemplo E = {(1,2), (1,5), (2,3), (2,6), (3,4), (5,4)} Representação visual de grafos
3 Representando Grafos Como representar grafos no computador? Estrutura de dados Duas estruturas fundamentais matriz lista
4 Representação via Matriz Como representar utilizando matrizes? Idéia: associar vértices às linhas e colunas da matriz elemento da matriz indica se há aresta Matriz de adjacência Matriz n x n (n é número de vértices) a ij = 1, se existe aresta entre vértices i e j a ij = 0, caso contrário.
5 Matriz de Adjacência Exemplo ? Algumas propriedades?
6 Representação via Matriz Matriz de adjacência Grafo completo? Grafo em ciclo? K 5 C
7 Matriz de Incidência Idéia: associar vértices às linhas e arestas às colunas elemento da matriz indica se aresta incide sobre o vértice Matriz de incidência Matriz n x m (n vértices, m arestas) a ij = 1, se vértice i incide sobre aresta j a ij = 0, caso contrário.
8 Matriz de Incidência Exemplo 1 e e e 1 e e 1 e 2 e 3 e e 1 e 2 e 3 e 4 e 5 e ? Algumas propriedades?
9 Custo de Memória Matriz de adjacência Matriz de incidência ex: 10 4 vértices 10 8 posições = 10 8 bytes = 100MB Considere grafos grandes e esparços grande: muitos vértices n 2 posições (1 bit) nm posições (1 bit) esparço: relativamente poucas arestas Matriz formada principalmente de zeros! Grande consumo de memória (desnecessário)! Como resolver este problema?
10 Representação via Listas Idéia: associar a cada vértice uma lista de vértices adjacentes (lista de vizinhos) Lista de adjacência Vértices associados a um vetor, dimensão n (número de vértices no grafo) Cada vértice possui uma lista de vértices adjacentes
11 Lista de Adjacência Exemplo > 2 > 3 2 > 1 > 3 3 > 1 > 2 > 4 4 > 3 Vetor de vértices Lista de vizinhos de cada vértice
12 Desvantagem Desvantagem da representação com lista? Considere grafos com muitas arestas listas de adjacência vão ser grandes (longas) Problema? Tempo de acesso! Ex. descobrir se dois vértices são vizinhos
13 Tempo de Acesso Vetor x Lista (código em Java) int n = ; Vector vec = new Vector(n); for(int i = 1; i <= n; i=i+1) vec.add((string) i); String p = vec[n-1]; int n= ; LinkedList ll = new LinkedList(); for(int i = 1; i <= n; i=i+1) ll.add((string) i); String p = ll.get(n-1); constante : não depende de n Quanto tempo para executar última linha? linear : depende linearmente de n, vezes maior! Por quê?
14 Vetor x Lista Memória do computador organizada como uma matriz 32 bits Vetor: alocação contígua em memória Lista: alocação elemento a elemento, ponteiro para próximo Capacidade: 4GB Como chegar no k-ésimo elemento? endereço do k-ésimo elemento?
15 Vetor x Lista Como chegar no k-ésimo elemento? Vetor Lista Variável vec tem o endereço base, onde começa o vetor na memória Cada elemento tem tamanho (L) Endereço do elemento k: base + (k-1)*l Constante! Variável ll tem o endereço do primeiro elemento Cada elemento tem endereço do próximo elemento Endereço do elemento k: tem que percorrer a lista! Proporcional a k!
16 Vantagens/Desvantagens Tempo de execução Matriz Lista Inserir aresta? O(1) O(1) Remover aresta? O(1) O(g max ) Testar adjacência (v 1 e v 2 são vizinhos)? Listar vizinhos de v? Descobrir vértice de maior grau? O(1) O(g max ) O(n) O(g max ) O(n 2 ) O(n g max )
17 Vetor de Adjacência Exemplo > > > > 3 Vetor de vértices Parecida com lista de adjacência Por quê? Vetor com vizinhos de cada vértice Mesma complexidade (memória e tempo) vantagens na prática
18 Matriz x Lista Qual é a estrutura mais adequada (ou mais eficiente)? Depende do algoritmo! Memória x Tempo: eficiente em que aspecto? matriz sempre utiliza mais memória (muitas vezes é inviável) matriz ou lista pode levar menos tempo Implementarão as duas!
GRAFOS Aula 03 Representações de Grafos Max Pereira
Ciência da Computação GRAFOS Aula 03 Representações de Grafos Max Pereira A maior vantagem de um grafo é a sua representação visual da informação. Mas para a manipulação e armazenamento em um computador,
Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013
Teoria dos Grafos Aula 5 - Estruturas de Dados para Grafos Profª. Alessandra Martins Coelho março/2013 Estrutura é o que caracteriza o próprio grafo e independe da forma como ele é representado. A representação
Teoria dos Grafos Aula 1 - Introdução
Teoria dos Grafos Aula 1 - Introdução Profa. Sheila Morais de Almeida Mayara Omai Universidade Tecnológica Federal do Paraná - Ponta Grossa 2018 Sheila Almeida e Mayara Omai (UTFPR-PG) Teoria dos Grafos
Estruturas de Dados Estruturas de Dados Fundamentais
Estruturas de Dados Estruturas de Dados Fundamentais Prof. Eduardo Alchieri Estruturas de Dados Fundamentais Todos os tipos abstratos de dados (pilhas, filas, deques, etc.) podem ser implementados usando
Teoria dos Grafos. Teoria dos Grafos. Profa. Sheila Morais de Almeida DAINF-UTFPR-PG. agosto
Teoria dos Grafos Introdução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG agosto - 2017 O que é Grafo? Definição formal Um grafo G = (V (G), E(G)) é uma estrutura matemática que consiste de dois conjuntos:
Teoria dos Grafos Aula 2
Teoria dos Grafos Aula 2 Aula passada Logística, regras Objetivos Grafos, o que são? Formando pares Encontrando caminhos Aula de hoje Outro problema real Definições importantes Algumas propriedades Grafo
Teoria dos Grafos Aula 6
Teoria dos Grafos Aula 6 Aula passada Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Aula de hoje BFS implementação Complexidade Busca em profundidade (DFS) Conectividade, componentes
Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada
Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 09: Representação de Grafos Preparado a partir do texto: Rangel, Socorro. Teoria
AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado
AULA 11 PROJETO E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado Roteiro Motivação Conceitos básicos Representação Motivação Um grafo é uma abstração que permite
Introdução à Teoria dos Grafos
Introdução à Teoria dos Grafos Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Introdução à Teoria dos Grafos junho - 2018 1 / 38 Este material é preparado usando
TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher
TGR BCC Representação Computacional de Grafos Prof. Ricardo José Pfitscher Cronograma Representação Matriz de djacências Lista de djacências Matriz de Incidências Representação Como podemos representar
ALOCAÇÃO DINÂMICA DE MEMÓRIA
INE5408 Estruturas de Dados Semestre 2008/1 Prof. Leandro J. Komosinski ALOCAÇÃO DINÂMICA DE Memória de Computador 1 byte = 8 bits (ex.: 00100110) 1 KB = 1024 bytes 1 MB = 1024 KB 1 GB = 1024 MB Meu computador
Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada [email protected], [email protected] Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos,
Teoria dos Grafos Aula 2
Teoria dos Grafos Aula 2 Aula passada Logística Objetivos Grafos, o que são? Formando pares Aula de hoje Mais problemas reais Definições importantes Algumas propriedades Objetivos da Disciplina Grafos
O que é um jogo digital?
O que é um jogo digital? Programa de Computador Dados Algoritmos Para que estudar Estrutura de Dados? Para manipular os dados dos programas usamos os ALGORITMOS e para organizar os dados da melhor forma
Algoritmo da IFT 2 / 16. Algoritmo da IFT Estrutura da fila de prioridade Resolvendo empates. Algoritmo 1 Algoritmo geral da IFT
Transformada Imagem-Floresta (Estrutura de dados) Prof. Dr. Paulo A. V. de Miranda Instituto de Matemática e Estatística (IME), Universidade de São Paulo (USP) [email protected] 1 / 16 Algoritmo
GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?
8/0/06 GRAFOS Prof. André Backes Definição Como representar um conjunto de objetos e as suas relações? Diversos tipos de aplicações necessitam disso Um grafo é um modelo matemático que representa as relações
Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32
Grafos - Introdução Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/2015 1 / 32 Conceito Definição de Grafo Formalmente, um grafo é: Um conjunto de nós/vértices (V).
Listas e matrizes esparsas Orthogonal List Representation (Listas Cruzadas) 21/10/2010
Listas e matrizes esparsas Orthogonal List Representation (Listas Cruzadas) 1/1/1 Matriz: definição Matriz é um arranjo (tabela) retangular de números dispostos em linhas e colunas 8 9 6 1 4 7 3 3x3 B
Estruturas de Dados. Profº Carlos Alberto Teixeira Batista
Estruturas de Dados Profº Carlos Alberto Teixeira Batista E-mail: [email protected] [email protected] Lista Linear São estruturas formadas por um conjunto de dados de forma a preservar
Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35
Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática
UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 8 Grafos. Estrutura de Dados 1
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 8 Grafos Estrutura de Dados 1 Grafos - Motivação Muitas aplicações em computação necessitam considerar conjunto de conexões
Aula 08. Estruturas de dados Árvore e Grafo
Logo Aula 08 Estruturas de dados Árvore e Grafo 2 Árvore Estruturas estudadas até agora não são \ adequadas para representar dados que devem ser dispostos de maneira hierárquica Ex., hierarquia de pastas
Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 10: Introdução aos Grafos História O assunto que se constitui no marco inicial da teoria de grafos é na realidade um problema algorítmico.
Teoria dos Grafos Aula 24
Teoria dos Grafos Aula 24 Aula passada Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação dinâmica Aula de hoje Caminho mais curto em grafos Algoritmo de Bellman Ford Algoritmo
Aula 14. Aula de hoje. Aula passada
Aula 14 Aula passada Autovalores, autovetores, decomposição Convergência para estacionaridade Tempo de mistura Spectral gap Tempo de mistura de passeios aleatórios Aula de hoje Caminho amostral Teorema
Aula 02: Custos de um algoritmo e funções de complexidade
MCTA028 Programação Estruturada Aula 02: Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco [email protected] 3Q-20106 1 Linguagem C: Tipos de dados 2 Linguagem C: Tipos
Conceitos Básicos da Teoria de Grafos
Conceitos Básicos da Teoria de Grafos Universidade Federal do Pampa - UNIPAMPA Engenharia da Computação Estrutura de Dados Profª Sandra Piovesan Grafos Uma noção simples, abstrata e intuitiva. Representa
Algoritmos e Estrutura de Dados. Aula 05 Estrutura de Dados: Listas (Parte II) Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 05 Estrutura de Dados: Listas (Parte II) Prof. Tiago A. E. Ferreira Listas Seqüenciais Estática Seqüencial É implementada usando um vetor Deve-se determinar qual a
IFRN. Introdução à Teoria dos Grafos. Prof. Edmilson Campos
IFRN Introdução à Teoria dos Grafos Prof. Edmilson Campos Conteúdo Histórico Aplicações Definições Grafo Dígrafo Ordem, adjacência e grau Laço Tipos de grafos Representação de Grafos Matriz de adjacências
GRAFOS E ALGORITMOS TEORIA DE GRAFOS
GRAFOS E ALGORITMOS TEORIA DE GRAFOS 1a. PARTE Prof. Ronaldo R. Goldschmidt [email protected] [email protected] ROTEIRO 1. INTRODUÇÃO E MOTIVAÇÃO 2. FUNDAMENTOS 3. CONECTIVIDADE 4.
Teoria dos Grafos Aula 14
Teoria dos Grafos Aula 14 Aula passada MST Aula de hoje Construção de algoritmos Paradigma guloso Escalonando tarefas no tempo (interval scheduling) Projetando Algoritmos Dado um problema P, como projetar
ESTRUTURA DE DADOS I AULA I
ESTRUTURA DE DADOS I AULA I PROF. ME. HÉLIO ESPERIDIÃO O que é um dado? Dado pode ser definido como a matéria-prima originalmente obtida de uma ou mais fontes (etapa de coleta). o que é a informação A
Algoritmos Probabilísticos
Algoritmos Probabilísticos Gilson Evandro Fortunato Dias Orientador: José Coelho de Pina Universidade de São Paulo Instituto de Matemática e Estatística Departamento de Ciência da Computação MAC0499 p.
Teoria dos Grafos. Edson Prestes
Edson Prestes Introdução Grafo Estrela Um grafo estrela é um grafo bipartido de n vértices que possui um conjunto independente com um único vértice e o outro com n-1 vértices Quantos grafos estrelas podemos
ESTRUTURA DE DADOS LISTAS LINEARES
ESTRUTURA DE DADOS LISTAS LINEARES Prof. Dr. Daniel Caetano 2014-2 Objetivos Compreender as listas sequenciais Implementar uma Lista Sequencial com Vetor Compreender o uso de listas sequenciais Material
Introdução a Grafos Letícia Rodrigues Bueno
Introdução a Grafos Letícia Rodrigues Bueno UFABC Teoria dos Grafos - Motivação Objetivo: aprender a resolver problemas; Como: usando grafos para modelar os problemas; Grafos: ferramenta fundamental de
Estrutura de Dados Listas
Universidade Federal da Paraíba Centro de Informática Departamento de Informática Estrutura de Dados Listas 1 Tiago Maritan [email protected] Conteúdos Abordados O Conceito de Listas Listas com Representação
ESTRUTURA DE DADOS VETORES E LISTAS LINEARES
ESTRUTURA DE DADOS VETORES E LISTAS LINEARES Prof. Dr. Daniel Caetano 2012-2 Objetivos Conhecer os vetores Compreender as Listas Sequenciais Implementar uma Lista Sequencial com Vetor GRUPOS? Até o fim
SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2
SISTEMAS OPERACIONAIS INF09344 - Sistemas Operacionais / INF02780 - Sistemas Operacionais / INF02828 - Sistemas de Programação II Prof a. Roberta Lima Gomes ([email protected]) 2ª. Lista de Exercícios Parte
Aplicações de listas e outras estruturas
plicações de listas e outras estruturas Baseado no material de Thiago. S. Pardo lgoritmos e Estruturas de Dados I Problema: lidar com números muito grandes Em C, inteiros (mesmo long int) são limitados
Estruturas de Dados I
Estruturas de Dados I Rodrigo Porfírio da Silva Sacchi [email protected] 3410-2075 Aula 6: Listas Encadeadas e Alocação Dinâmica Listas Encadeadas e Alocação Dinâmica Alocação Seqüencial versus
Algoritmo de Dijkstra Estudo e Implementação
Teoria dos Grafos 0/0 Algoritmo de Dijkstra Estudo e Implementação Professora: Claudia Boeres Alunos: José Alexandre Macedo Maycon Maia Vitali Problema do Caminho Mínimo Qual o caminho mínimo entre um
Representações de Grafos
Representações de Grafos Teoria dos Grafos 1 É possível diversas representações dos grafos. Vamos estudar as três utilizadas mais comumente: as matrizes de adjacência, as listas de adjacência e as multilistas
Lista de Exercícios Programação Inteira. x 2 0 e inteiros.
Lista de Exercícios Programação Inteira ) Resolva os problemas a seguir usando o método B&B a) Max z = 5 x + 2 y s.a x + y 2 x + y 5 x, y 0, x e y inteiros b) Max z = 2 x + y s.a x + 2y 0 x + y 25 x, y
Medida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Medida do Tempo de Execução de um Programa Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo estudo
Lista de exercícios sobre contagem de operações Prof. João B. Oliveira
Lista de exercícios sobre contagem de operações Prof. João B. Oliveira 1. metodo m ( Vetor V ) int i, res = 0; para i de 1 a V.size res = res + V[i]; return res; Soma de elementos de um vetor, O( ). 2.
O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste
O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste material e a resolução (por parte do aluno) de todos os
Cálculo Numérico. Aula 8 Sistemas de Equações Lineares / Parte /04/2014. Prof. Guilherme Amorim*
Cálculo Numérico Aula 8 Sistemas de Equações Lineares / Parte 1 2014.1-29/04/2014 Prof. Guilherme Amorim* [email protected] * Com algumas modificações pelo Prof. Sergio Queiroz Perguntas... O que é um sistema
TÉCNICAS DE PROGRAMAÇÃO. Estrutura de dados
TÉCNICAS DE PROGRAMAÇÃO Estrutura de dados O que são estrutura de dados? É a forma como os armazenamos tipos de dados, vistos dia a dia, ou seja, nada mais são do que a transformação de uma forma de armazenamento
Matrizes esparsas: definição
Matrizes esparsas: definição o objetivo é mostrar os métodos de armazenamento e manipulação de matrizes esparsas esparsidade de uma matriz é a relação entre o número de elementos nulos de uma matriz e
Lista de Exercícios sobre Listas Implementadas por Encadeamento
Lista de Exercícios sobre Listas Implementadas por Encadeamento 1) Se você tem de escolher entre uma representação por lista encadeada ou uma representação usando posições contíguas de memória para um
Alg l ori r t i m t os e E str t u r tu t ra r s d e D ados I I Intr t o r duçã ç o ã a a Gr G a r f a o f s P of o a. M. C r C ist s ina n a /
Algoritmos e Estruturas de Dados II Introdução a Grafos Profa. M. Cristina / Profa. Rosane (2012) Baseado no material de aula original: Profª. Josiane M. Bueno Divisão do arquivo 1ª parte: Motivação Definição:
Algoritmos e Estruturas de Dados II Introdução a Grafos. Divisão do arquivo
Algoritmos e Estruturas de Dados II Introdução a Profa. M. Cristina / Profa. Rosane (2010/11) Baseado no material de aula original: Profª. Josiane M. Bueno Divisão do arquivo 1ª parte: Motivação Definição:
Circuitos Hamiltorianos
Circuitos Hamiltorianos Vimos que o teorema de euler resolve o problema de caracterizar grafos que tenham um circuito em que cada aresta apareça exatamente uma vez. Vamos estudar aqui uma questão relacionada.
Otimização em Grafos
Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 33 Definição do Problema Dado: um grafo ponderado G = (V, E), orientado ou não, onde d : E R + define as distâncias
Teoria dos Grafos. Edson Prestes
Edson Prestes Introdução Representação Mostre que todo passeio de u até v contém um caminho de u até v. Considere um passeio de comprimento l de u até v. Se l = 0 então temos um passeio sem nenhuma aresta.
BCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) ASN Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Material elaborado com base nos slides do Prof. Reinaldo Fortes (curso
Comunicação e redes. Aula 2: Teoria dos Grafos Conceitos básicos. Professor: Guilherme Oliveira Mota.
Comunicação e redes Aula 2: Teoria dos Grafos Conceitos básicos Professor: Guilherme Oliveira Mota [email protected] Aula passada Redes complexas Grafo G: Conjunto de pontos e linhas ligando esses pontos
Teoria dos Grafos Aula 23
Teoria dos Grafos Aula 23 Aula passada Apresentação de trabalhos Discussão da prova Subset sum Problema da mochila Aula de hoje Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação
Matemática Discreta 10
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 10 Prof. Jorge Cavalcanti [email protected] - www.univasf.edu.br/~jorge.cavalcanti 1 Muitas
3. Conteúdo de um vértice v é conteúdo dos filhos de v.
Árvore Hierárquica Em inglês é chamada de Heap. Representar: conjunto C de elementos com relação. Operações: Ins x,c (inserir x em C e ExMax C (extrair o máximo do conjunto). Chamado também de Fila de
