GRAFOS E ALGORITMOS ALGORITMOS E APLICAÇÕES

Documentos relacionados
GRAFOS E ALGORITMOS TEORIA DE GRAFOS

Teoria dos Grafos Aula 5

Matemática Discreta 10

Parte B Teoria dos Grafos

Grafos: Busca. Algoritmos e Estruturas de Dados 2. Graça Nunes

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios

Departamento de Engenharia de Produção UFPR 57

GRAFOS Aula 05 Algoritmos de percurso: busca em largura e profundidade Max Pereira

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios

Grafos COM11087-Tópicos Especiais em Programação II

Grafos: algoritmos de busca

Teoria dos Grafos Aula 6

Teoria da Computação. Clique de um Grafo. Alexandre Renato Rodrigues de Souza 1

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

GRAFOS Aula 04 Caminhos, Conexidade e Distância Max Pereira

Grafos Parte 1. Aleardo Manacero Jr.

Comunicação e redes. Aula 2: Teoria dos Grafos Conceitos básicos. Professor: Guilherme Oliveira Mota.

GRAFOS Aula 02 Formalização: definições Max Pereira

Algoritmos em Grafos

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Estruturas de Dados Grafos

Teoria dos Grafos. Edson Prestes

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32

Grafos e Algoritmos de Busca

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

SCC603 Algoritmos e Estruturas de Dados II Prof.a Rosane Minghim 1o sem. 2013

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

GRAFOS: UMA INTRODUÇÃO

Circuitos Hamiltorianos

INF 1010 Estruturas de Dados Avançadas

Matemática Discreta - Exercícios de Grafos

Instituto de Computação Universidade Federal Fluminense. Notas de Aula de Teoria dos Grafos. Prof. Fábio Protti Niterói, agosto de 2015.

Teoria dos grafos. Caminho euleriano e Hamiltoniano. Prof. Jesuliana N. Ulysses

Introdução à Teoria dos Grafos. Isomorfismo

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos.

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Pato Branco ENGENHARIA DE COMPUTAÇÃO. Prova Parcial 1 Matemática Discreta para Computação

Introdução a Grafos Letícia Rodrigues Bueno

Busca em Largura. Adaptado de Humberto C. B. Oliveira

SCC Modelagem Computacional em Grafos Profª Rosane Minghim 1º sem ª lista de exercícios

IFRN. Introdução à Teoria dos Grafos. Prof. Edmilson Campos

Percursos em um grafo

Subgrafos. Se G é um grafo e F A(G) então o subgrafo de G induzido (ou gerado) por F é o

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa

Projeto e Análise de Algoritmos

CONCEITOS BÁSICOS EM GRAFOS

Circuitos Eulerianos Ciclos Hamiltonianos O Problema do Caixeiro Viajante CAMINHAMENTOS BASEADO EM TOWNSEND (1987), CAP. 7.

Planaridade UFES. Teoria dos Grafos (INF 5037)

Análise e Síntese de Algoritmos. Algoritmos em Grafos CLRS, Cap. 22

Conceito Básicos da Teoria de Grafos

Busca em Profundidade. Componentes Conexos. Grafos. Maria Adriana Vidigal de Lima. Fevereiro

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Percursos em um grafo

CI065 CI755 Algoritmos e Teoria dos Grafos

Grafos IFRN. Prof. Robinson Alves

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 8 Grafos. Estrutura de Dados 1

APLICAÇÕES DE BUSCA EM GRAFOS

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação

Grafos: componentes fortemente conexos, árvores geradoras mínimas

x y Grafo Euleriano Figura 1

TEORIA DOS GRAFOS UMA APLICAÇÃO DE LOGÍSTICA PARA O ENSINO MÉDIO. Profº M. Sc. Marcelo Mazetto Moala

Conteúdo. Conceitos e Resultados Gerais. 11 Combinatória. Introdução

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. Divisão do arquivo

PERCURSOS. André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré

Grafos: árvores geradoras mínimas. Graça Nunes

Teoria dos Grafos. Edson Prestes

Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ

Teoria dos Grafos. Edson Prestes

Busca em Profundidade e em Largura

03 Grafos: percurso, ponderação e caminhos SCC0503 Algoritmos e Estruturas de Dados II

Grafos Direcionados. > Grafos Direcionados Representações Computacionais 1/36

Grafos representação e aplicações. Prof. Guilherme Tomaschewski Netto

Algoritmos e Estruturas de Dados II Grafos conceitos gerais. Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M.

grafo nós vértices arcos arestas

Árvore Geradora Mínima

Busca em largura. Algoritmos em Grafos. Marco A L Barbosa

Teoria dos Grafos. Edson Prestes

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos

Teoria dos Grafos Aula 2

INF 1010 Estruturas de Dados Avançadas

BCC204 - Teoria dos Grafos

Teoria dos Grafos Caminhos. Profª. Alessandra Martins Coelho

Árvores: Conceitos Básicos e Árvore Geradora

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 5 a Lista de Exercícios

ESTUDO COMPARATIVO ENTRE ALGORITMO A* E BUSCA EM LARGURA PARA PLANEJAMENTO DE PERSONAGENS EM JOGOS DO TIPO PACMAN

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

BCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Toffolo 2012/1

Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I

Capítulo 2- Modelos de grafos.

FICHA DE COMPONENTE CURRICULAR

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos.

Transcrição:

GRAFOS E ALGORITMOS ALGORITMOS E APLICAÇÕES 1a. PARTE Prof. Ronaldo R. Goldschmidt rribeiro@univercidade.br ronaldo_goldschmidt@yahoo.com.br

ROTEIRO 1. EXEMPLOS DE APLICAÇÕES DE GRAFOS 2. IMPLEMENTAÇÕES DE GRAFOS 3. PERCURSOS EM GRAFOS

ROTEIRO 1. EXEMPLOS DE APLICAÇÕES DE GRAFOS 2. IMPLEMENTAÇÕES DE GRAFOS 3. PERCURSOS EM GRAFOS

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex1: Considere o jogo da velha e que cada jogada resulte em um estado do jogo. Que tipo de grafo você poderia utilizar para representar os possíveis estados deste jogo? 1 1... 1 1 1 1 1 2 1 2 2... 2 Uma árvore, por exemplo (seqüência de jogadas identificada).

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex2: Considere o jogo da velha do exemplo anterior. Que estratégia de busca poderia ser utilizada na estrutura indicada caso o objetivo fosse vencer o jogo com o menor número de jogadas possível? 2 3 4 1 2 3 2 3 2 3 2 3 2 3 4 1 4 1 4 1 4 1 5 4 1 5 5 5 5 Busca/Percurso em Largura.

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex3: Considere um conjunto de cidades e seus acessos indicados por um grafo. Pergunta-se: é possível passar por todas as cidades sem repetição, a menos da última cidade, que deve corresponder à cidade de partida? Obs: a cidade de partida pode ser qq uma. Em outras palavras: o grafo é hamiltoniano?

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex4: Considere uma rede de computadores cuja topologia é representada por um grafo. De forma a minimizar o tempo de comunicação entre o servidor e as demais máquinas, deseja-se saber qual ou quais computadores seriam candidatos a servidores desta rede. Considere que a comunicação entre máquinas adjacentes corresponda a uma unidade de tempo. a b c d Em outras palavras: qual é o centro do grafo?

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex5: Considere o problema anterior (uma rede de computadores cuja topologia é representada por um grafo e que a comunicação entre máquinas adjacentes corresponda a uma unidade de tempo). Qual o maior tempo de comunicação entre duas máquinas quaisquer desta rede? a b c d Em outras palavras: qual é o diâmetro do grafo?

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex6: Considere uma rede de computadores cuja topologia é representada por um grafo. É possível fazer um único teste a partir de uma determinada máquina que verifique o funcionamento de todas as conexões, sem analisar a mesma conexão mais de uma vez? a b c d Em outras palavras: o grafo é euleriano?

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex7: Considere dois tipos de elementos A e B. Para montar uma placa de circuito, deseja-se conectar cada elemento do tipo A a cada elemento do tipo B, sem o cruzamento de conexões de forma a evitar possíveis interferências de comunicação que possam ocorrer. Analise o problema e emita seu parecer a respeito. Em outras palavras: o grafo bipartido completo é planar?

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex8: Considere a modelagem de casos de uso de um sistema. Pergunta-se: como fazer para evitar cruzamento de associações entre atores e casos de uso? Considere o modelo como um grafo e procure identificar os centros. Estes deverão ficar na parte central do diagrama... UC 1 Ator 1 Ator 2 UC 2 Ator 4 UC 3 Ator 3

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex9: Em Banco de Dados, um grafo de espera indica as dependências entre transações. Como verificar, a partir de um grafo deste tipo, sehá ocorrência de deadlocks entre as transações? Verificar a existência de ciclos no digrafo.

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex10: A topologia de um modelo de Rede Neural chamada Back- Propagation pode ser representada como a união de grafos bipartidos completos entre camadas sucessivas de neurônios. K n,p K p,m... K r,s. Represente graficamente uma rede neural deste tipo com topologia n-m-z. Dados Externos Processamento Interno Estimativa 1 2... n n+1... n+m n+m+1... n+m+z Camada de Entrada Camada Escondida Camada de Saída

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex11: Suponha que você foi contratado para elaborar um jogo de computador. Uma de suas preocupações deve ser o arranjo de cores para que não haja objetos de mesma cor que se interceptem (pois prejudicaria a compreensão dos cenários). Qual seria o número mínimo de cores a ser utilizado de forma a evitar este problema? Ex: fundo árvore Resp: 4 cores casa avatar

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex12: Considere um composto químico representado pelo diagrama de sua estrutura atômica (em outras palavras, um grafo simples). Suponha que exista uma base de dados com diversos compostos químicos. Deseja-se recuperar os compostos que contenham o composto apresentado para busca. Problema de busca de subestruturas. Verificação da existência de isomorfismo entre o composto e os subgrafos dos compostos armazenados. Pode ser estendido para o problema de busca de imagens contidas em outras imagens.

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex13: Considere uma base de textos onde cada texto seja representado por uma rede semântica. Deseja-se recuperar textos similares ao informado. fruta ISA manga maçã camisa PART manga gola Ex: Manga é uma expressão polissêmica. Depende do contexto para sua caracterização. As relações entre as expressões pode eliminar ambiguidades.

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex14: Considere uma relação que associa a cada transação, os produtos vendidos na transação. Deseja-se descobrir quais os produtos vendidos simultaneamente de forma frequente. Nº Transação Item Café 1 1 1 2 2 2 2 Café Pão Manteiga Leite Cerveja Pão Manteiga Pão Manteiga Leite Cerveja Ou seja: quais os subgrafos bipartidos mais frequentes?

1. EXEMPLOS DE APLICAÇÕES DE GRAFOS Ex14: A hierarquia entre conceitos pode ser representada por grafos, na definição de taxonomias e busca por conceitos relacionados. peça vestuário roupa calçado Ex: camisa sapato roupa sapato camisa calçado roupa calçado calça camisa sapato tênis Descoberta de associações envolvendo níveis de abstração.

ROTEIRO 1. EXEMPLOS DE APLICAÇÕES DE GRAFOS 2. IMPLEMENTAÇÕES DE GRAFOS 3. PERCURSOS EM GRAFOS

2. IMPLEMENTAÇÕES DE GRAFOS Obs: É muito comum a utilização de listas de adjacências para representar grafos esparsos ( E(G) = O( V(G) ).

2. IMPLEMENTAÇÕES DE GRAFOS Obs: É muito comum a utilização de listas de adjacências para representar grafos esparsos ( E(G) = O( V(G) ).

2. IMPLEMENTAÇÕES DE GRAFOS Obs: A representação de grafos esparsos por listas de adjacências é mais econômica (espaço) do que por matrizes de adjacências. Justificativa: Na representação por lista de adjacência: E(G) = O( V(G) ) Na representação por matriz de adjacência: E(G) = O( V(G) 2 ) O( V(G) ) O( V(G) 2 ) Listas de Adjacência utilizam menos espaço que as Matrizes de Adjacência quando: E(G) < ( V(G) 2 2 V(G) )/2 Ex: Seja G com 10 vértices. A representação por lista de adjacência utiliza menos espaço quando existirem menos de 40 arestas.

2. IMPLEMENTAÇÕES DE GRAFOS Obs: Comparação entre as representações de grafos por listas de adjacências e por matrizes de adjacências.

ROTEIRO 1. EXEMPLOS DE APLICAÇÕES DE GRAFOS 2. IMPLEMENTAÇÕES DE GRAFOS 3. PERCURSOS EM GRAFOS

3. PERCURSOS EM GRAFOS Observações: São muitas as aplicações distintas de grafos. Existem muitos algoritmos para manipulação de grafos. Muitos destes algoritmos envolvem a visita sistemática de todos os vértices do grafos. Este processo de caminhar pelos vértices do grafo é chamado de percurso no grafo. Alguns métodos de percurso possuem nomes específicos: Ex: Percurso em Profundidade e Percurso em Largura

3. PERCURSOS EM GRAFOS Percurso em Profundidade - Características: Deve-se escolher o vértice de partida (raiz no caso de árvore). Consiste em visitar um vértice v e depois visitar recursivamente todos os vértices adjacentes a v. Problema: O grafo pode conter ciclos (quando não for árvore). O percurso deve visitar cada vértice uma única vez. O método deve manter um registro dos vértices já visitados, para que o percurso não entre em recorrência infinita. Assim, um percurso em profundidade segue somente arestas que levam a vértices não visitados.

3. PERCURSOS EM GRAFOS Percurso em Profundidade - Exemplo: Vértice de partida: c

3. PERCURSOS EM GRAFOS Percurso em Largura - Características: Deve-se escolher o vértice de partida (raiz no caso de árvore). Mantém uma fila com os vértices seguintes a serem visitados. Esta fila recebe inicialmente o vértice de partida. O vértice no início da fila é retirado e visitado. Os vértices adjacentes a ele são colocados na fila. O método deve manter um controle dos vértices já visitados e dos vértices que já se encontram na fila. Assim, o processo se repete até que não restem vértices na fila.

3. PERCURSOS EM GRAFOS Percurso em Largura - Exemplo: Vértice de partida: a

EXERCÍCIOS ALGORITMOS E APLICAÇÕES 1a. PARTE 1) Identifique, especifique e exemplifique cinco aplicações de Teoria de Grafos na área da Computação. A especificação deverá seguir o modelo utilizado em sala. Não poderão ser utilizados os mesmos exemplos apresentados em sala.

EXERCÍCIOS ALGORITMOS E APLICAÇÕES 1a. PARTE 2) Selecione dois dos conceitos indicados abaixo e faça uma pesquisa sobre algoritmos que identifiquem estes conceitos em grafos. O trabalho deverá conter a especificação e a exemplificação do funcionamento de cada algoritmo. A linguagem de especificação é livre. a) Árvore geradora b) Ciclo c) Ponte d) Planaridade e) Isomorfismo entre dois grafos f) Passeio euleriano