MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

Documentos relacionados
Grafos: caminhos mínimos

Grafos. Antonio Alfredo Ferreira Loureiro. UFMG/ICEx/DCC PAA Grafos 1

Grafos. Antonio Alfredo Ferreira Loureiro. UFMG/ICEx/DCC MD Grafos 1

Projeto e Análise de Algoritmos. PAA Grafos: Conceitos e Algoritmos 1

Grafos: aplicações. Grafos: árvore geradora mínima

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

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

GRAFOS: UMA INTRODUÇÃO

Circuitos Hamiltorianos

GRAFOS. Introdução Conceitos Fundamentais

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 Departamento de Matemática Aplicada.

Alguns probleminhas...

Noções da Teoria dos Grafos. André Arbex Hallack

As Pontes de Königsberg

Capítulo 1. Aula Caminhos de Euler e Hamilton Caminhos de Euler e Circuitos

Introdução a Teoria dos Grafos Raimundo Macêdo

BCC204 - Teoria dos Grafos

Teoria dos Grafos Introdu c ao

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

Noções da Teoria dos Grafos

x y Grafo Euleriano Figura 1

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

Noções da Teoria dos Grafos. André Arbex Hallack

Ciência da Computação Engenharia de Computação Mestrado em Informática. Teoria dos Grafos. Maria Claudia Silva Boeres.

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

1 Trajeto Euleriano. > Trajeto Euleriano 0/20

Teoria dos Grafos. Maria Claudia Silva Boeres. UFES. Teoria dos Grafos

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

Grafos Eulerianos e o Problema do Carteiro Chinês

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

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

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

Teoria dos Grafos. Edson Prestes

Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17)

Capítulo 2- Modelos de grafos.

UNIVERSIDADE FEDERAL DO PARÁ BIBLIOTECA DE OBJETOS MATEMÁTICOS COORDENADOR: Dr. MARCIO LIMA

04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II

Teoria dos Grafos. Profa. Alessandra Martins Coelho

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

Teoria dos Grafos AULA 1

Teoria dos Grafos AULA 1

MATEMÁTICA DISCRETA GRAFOS (1/4) Carlos Luz. EST Setúbal / IPS. 28 Maio - 3 Junho 2012

TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO

Teoria dos Grafos. Motivação

Grafos AULA META. Introduzir noções elementares da teoria dos grafos. OBJETIVOS. Ao final da aula o aluno deverá ser capaz de:

Grafos I. Figura 1: Mapa de Königsberg

Escola Básica e Secundária Mouzinho da Silveira. MACS 11.º Ano Problema do Caixeiro Viajante

Algoritmos de aproximação - Problema do caixeiro viajante

As pontes de Königsberg

01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II

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

76) 1.1 Sim 1.2 Não 1.3 Não

Teoria dos Grafos Aula 16

Parte B Teoria dos Grafos

Lista de Exercícios 9 (Extra): Soluções Grafos

Problemas de otimização

Introdução à Teoria do Grafos Notas de aula. Socorro Rangel últimas atualizações: (2009), (2012)

15 - Coloração Considere cada um dos grafos abaixo:

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

Ciclos hamiltonianos e o problema do caixeiro viajante

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE MATEMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENSINO DE MATEMÁTICA

Euler e as Origens da Teoria dos Grafos

Alguns Problemas Clássicos Sobre Grafos

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 11: Grafos Eulerianos. Departamento de Matemática Aplicada

Aplicações da Matemática: Redes Sociais, Jogos, Engenharia

APLICAÇÕES DE BUSCA EM GRAFOS

Teoria dos Grafos. Coloração de Vértices

Teoria dos Grafos AULA 3

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

14 Coloração de vértices Considere cada um dos grafos abaixo:

Matemática Discreta Capítulo 3 Versão preliminar

PCC173 - Otimização em Redes

Teoria dos grafos. FATEC Carapicuíba Augusto de Toledo Cruz Junior

Matemática Discreta. Aula 06: Teoria dos Grafos. Tópico 01: Grafos e suas Representações. Observaçã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

6. Mostre que, se há mais livros numa biblioteca do que páginas em qualquer dos livros, então pelo menos dois livros têm igual número de páginas.

Percursos em um grafo

Algoritmos em Grafos - Aula 02 Introdução à Teoria dos Grafos

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47

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

Matemática Discreta. Aula nº 22 Francisco Restivo

Helena Alves Rafael Sousa Rui Pedro Soares. MACS - Helena, Rafael, Rui Pedro 1

GRAFOS Aula 01 Introdução Max Pereira

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

Matemática Discreta - Exercícios de Grafos

Transcrição:

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya Collazos Linares *As aulas baseiam-se no material do Professor Antonio Alfredo Ferreira Loureiro

O problema das sete pontes de Königsberg ou O início da teoria dos grafos (1) Leonhard Euler (1707-1783) aos 49 anos. Tela em óleo pintada por Jakob Emanuel Handmann em 1756. Leonhard Euler, matemático suíço. Considerado um dos maiores matemáticos de todos os tempos. Foi um cientista extremamente produtivo contribuindo para muitas áreas da matemática como teoria dos números, análise combinatória e análise, bem como o seu uso em áreas como música e arquitetura naval. Euler foi o primeiro a usar o termo função para descrever uma expressão envolvendo vários argumentos, ou seja, y = F (x). No total escreveu mais de 1100 artigos e livros. Durante os últimos 17 anos de vida, ele ficou praticamente cego, quando produziu quase que metade de seus trabalhos. A área de teoria dos grafos começa em 1736 quando publica um artigo (Solutio problematis ad geometriam situs pertinentis) contendo a solução para o problema das sete pontes de Königsberg, na época uma cidade da Prússia e, atualmente, cidade da Rússia.

O problema das sete pontes de Königsberg ou O início da teoria dos grafos (2) A cidade de Königsberg foi construída numa região onde haviam dois braços do Rio Pregel e uma ilha. Foram construídas sete pontes ligando diferentes partes da cidade, como mostrado na figura: Problema: É possível que uma pessoa faça um percurso na cidade de tal forma que inicie e volte a mesma posição passando por todas as pontes somente uma única vez?

O problema das sete pontes de Königsberg ou Onde é Königsberg (3) Referência: Northern Germany as far as the Bavarian and Austrian Frontiers; Handbook for Travellers by Karl Baedeker. Fifteenth Revised Edition. Leipzig, Karl Baedeker; New York, Charles Scribner s Sons 1910. History: Kaliningrad was formerly the Prussian port of Königsberg, capital of East Prussia. It was captured by the Red Army in April 1945 and ceded to the Soviet Union at the Potsdam conference. It was renamed in honor of senior Soviet leader Mikhail Kalinin, although he never actually visited the area. Mapa parcial (recente) da cidade.

O problema das sete pontes de Königsberg (4) Euler resolveu este problema dando início à teoria dos grafos. Modelagem proposta por Euler: Todos os pontos de uma dada área de terra podem ser representados por um único ponto já que uma pessoa pode andar de um lado para o outro sem atravessar uma ponte. Um ponto é conectado a outro se houver uma ponte de um lado para o outro. Graficamente, Euler representou o problema como: A B C D

O problema das sete pontes de Königsberg (5) Problema a ser resolvido: É possível achar um caminho que comece e termine num vértice qualquer (A, B, C, ou D) e passe por cada aresta, exatamente, e uma única vez?, ou ainda, É possível desenhar este grafo que comece e termine na mesma posição sem levantar o lápis do papel? A B C D

O problema das sete pontes de Königsberg (6) Aparentemente não existe solução! Partindo do vértice A, toda vez que se passa por qualquer outro vértice, duas arestas são usadas: a de chegada e a de saída. Assim, se for possível achar uma rota que usa todas as arestas do grafo e começa e termina em A, então o número total de chegadas e saídas de cada vértice deve ser um valor múltiplo de 2. B A C No entanto, temos: grau(a) = grau(c) = grau(d) = 3; e grau(b) = 5. D Assim, por este raciocínio informal não é possível ter uma solução para este problema.

Caminhamentos em grafos Caminho (1) Seja G um grafo não dirigido, n 1, e v e w vértices de G. Caminho (walk): Um caminho de v para w é uma sequência alternada de vértices e arestas adjacentes de G. Um caminho tem a forma: ou ainda (v =)v 0 e 1 v 1 e 2 v 2... v n 1 e n v n (= w) onde v 0 = v e v n = w. v 0 [v 0, v 1 ]v 1 [v 1, v 2 ]v 2... v n 1 [v n 1, v n ]v n v 2 e v 1 3 Um possível caminho entre v 1 e v 4 : v 1 e 6 v 3 e 2 v 4 e 7 v 2 e 1 v 3 e 2 v 4 e 3 v 1 e 4 v 2 e 5 v 4 e 7 e 4 e 6 e 5 v e v 1 3 4 e 2

Caminhamentos em grafos Caminho fechado (1) Caminho fechado (Closed walk): Caminho que começa e termina no mesmo vértice: onde v = w. (v =)v 0 e 1 v 1 e 2 v 3... v n 1 e n v n (= w) v 2 e v 1 3 Um possível caminho fechado é: v 1 e 6 v 3 e 2 v 4 e 7 v 2 e 1 v 3 e 2 v 4 e 3 v 1 e 4 v 2 e 5 v 4 e 3 v 1 e 7 e 4 e 6 e 5 v e v 1 3 4 e 2

Caminhamentos em grafos Trajeto Trajeto (Path): Caminho de v para w sem arestas repetidas: (v =)v 0 e 1 v 1 e 2 v 3... v n 1 e n v n (= w) onde todas as arestas e i são distintas, ou seja, e i e k, para qualquer i k. v 2 e v 1 3 Um possível trajeto é: v 1 e 6 v 3 e 2 v 4 e 7 v 2 e 1 v 3 e 7 e 4 e 6 e 5 v e v 1 3 4 e 2

Caminhamentos em grafos Trajeto simples Trajeto simples (Simple path): Caminho de v para w sem arestas e vértices repetidos. v 2 e v 1 3 Um possível trajeto simples é: v 1 e 6 v 3 e 2 v 4 e 7 v 2 e 7 e 4 e 6 e 5 v e v 1 3 4 e 2

Caminhamentos em grafos Circuito Circuito (Circuit): Trajeto fechado, ou seja, um caminho onde não há aresta repetida e os vértices inicial e final são idênticos: (v =)v 0 e 1 v 1 e 2 v 3... v n 1 e n v n (= w) onde toda aresta e i, 1 i n, é distinta e v 0 = v n. v 2 e v 1 3 Um possível circuito é: v 1 e 6 v 3 e 2 v 4 e 7 v 2 e 1 v 3 e 7 e 4 e 6 e 5 v e v 1 3 4 e 2

Caminhamentos em grafos Circuito simples Circuito simples (Simple circuit): Trajeto fechado, ou seja, um caminho onde não há arestas e vértices repetidos, exceto os vértices inicial e final que são idênticos. v 2 e v 1 3 Um possível circuito simples é: v 1 e 6 v 3 e 2 v 4 e 7 v 2 e 4 v 1 e 7 e 4 e 6 e 5 v e v 1 3 4 e 2 Um circuito simples também é chamado de ciclo simples.

Terminologia de caminhamentos Aresta Vértice Começa e termina Tipo repetida? repetido? no mesmo vértice? Caminho (walk) Pode Pode Pode Caminho fechado (closed walk) Pode Pode Sim Trajeto (path) Não Pode Pode Trajeto simples (simple path) Não Não Não Circuito (circuit) Não Pode Sim Circuito simples (simple circuit) Não v 0 = v n Sim

Caminhamentos em grafos Notação simplificada (1) Em geral um caminho pode ser identificado de forma não ambígua através de uma sequência de arestas ou vértices. e 1 2 v1 v2 e v3 3 e e 4 O caminho e 1 e 2 e 4 e 3 representa de forma não ambígua o caminho v 1 e 1 v 2 e 2 v 3 e 4 v 3 e 3 v 2 A notação e 1 é ambígua, se usada para referenciar um caminho, pois pode representar duas possibilidades: v 1 e 1 v 2 ou v 2 e 1 v 1. A notação v 2 v 3 é ambígua, se usada para referenciar um caminho, pois pode representar duas possibilidades: v 2 e 2 v 3 ou v 2 e 3 v 3.

Caminhamentos em grafos Notação simplificada (2) e 2 e1 v1 v2 e 3 v 3 A notação v 1 v 2 v 2 v 3, se for associada a um caminho, representa de forma não ambígua o caminho v 1 e 1 v 2 e 2 v 2 e 3 v 3 Se um grafo G não possui arestas paralelas, então qualquer caminho em G pode ser determinado de forma única por uma sequência de vértices.

Identificando o caminhamento (1) e 4 v 1 e 2 e 1 v 2 e 3 e 8 v 3 e 7 e 5 v 4 e 6 e 10 v e 6 9 v5 Que tipo de caminhamento é? v 1 e 1 v 2 e 3 v 3 e 4 v 3 e 5 v 4 Aresta repetida? Não. Vértice repetido? Sim v 3. Começa e termina no mesmo vértice? Não. Trajeto. e 1 e 3 e 5 e 5 e 6 Aresta repetida? Sim e 5. Vértice repetido? Sim v 3. Começa e termina no mesmo vértice? Não. Caminho.

Identificando o caminhamento (2) e 4 v 1 e 2 e 1 v 2 e 3 e 8 v 3 e 7 e 5 v 4 e 6 e 10 v e 6 9 v5 Que tipo de caminhamento é? v 2 v 3 v 4 v 5 v 3 v 6 v 2 Aresta repetida? Não. Vértice repetido? Sim v 2 e v 3. Começa e termina no mesmo vértice? Sim v 2. Circuito. v 2 v 3 v 4 v 5 v 6 v 2 Aresta repetida? Não. Vértice repetido? Sim v 2. Começa e termina no mesmo vértice? Sim v 2. Circuito simples.

Identificando o caminhamento (3) e 4 v 1 e 2 e 1 v 2 e 3 e 8 v 3 e 7 e 5 v 4 e 6 e 10 v e 6 9 v5 Que tipo de caminhamento é? v 2 v 3 v 4 v 5 v 6 v 3 v 2 Aresta repetida? Sim e 3. Vértice repetido? Sim v 2 e v 3. Começa e termina no mesmo vértice? Sim v 2. Caminho fechado. v 1 Aresta repetida? Não. Vértice repetido? Não. Começa e termina no mesmo vértice? Sim v 1. Caminho (circuito) trivial.

Conectividade (1) Informalmente um grafo é conexo (conectado) se for possível caminhar de qualquer vértice para qualquer outro vértice através de uma sequência de arestas adjacentes. Definição: Seja G um grafo. Dois vértices v e w de G estão conectados sse existe um caminho de v para w. Um grafo G é conexo sse dado um par qualquer de vértice v e w em G, existe um caminho de v para w. Simbolicamente, G é conexo vértices v, w V (G), um caminho de v para w. Se a negação desta afirmação for tomada, é possível ver que um grafo não é conexo sse existem dois vértices em G que não estão conectados por qualquer caminho.

Conectividade (2) v 2 v3 v4 v5 v6 v 1 G 1 Grafo conexo. v2 v4 v 5 v6 v 3 v 4 v 2 v 5 v1 v3 v8 v7 v 1 v 6 G 2 G 3 Grafos não conexos.

Conectividade (3) Lemas Seja G um grafo. (a) Se G é conexo, então quaisquer dois vértices distintos de G podem ser conectados por um trajeto simples (simple path). (b) Se vértices v e w são parte de um circuito de G e uma aresta é removida do circuito, ainda assim existe um trajeto de v para w em G. (c) Se G é conexo e contém um circuito, então uma aresta do circuito pode ser removida sem desconectar G.

Conectividade (4) Os grafos v2 v4 v 5 v6 v 3 v 4 v 2 v 5 v1 v3 v8 v7 v 1 v 6 G 2 G 3 possuem três partes cada um, sendo cada parte um grafo conexo. Um componente conexo de um grafo é um subgrafo conexo de maior tamanho possível.

Componente conexo (1) Definição: Um grafo H é um componente conexo de um grafo G sse: 1. H é um subgrafo de G; 2. H é conexo; 3. Nenhum subgrafo conexo I de G tem H como um subgrafo e I contém vértices ou arestas que não estão em H. Um grafo pode ser visto como a união de seus componentes conexos.

Componente conexo (2) Os componentes conexos do grafo G abaixo são: v3 v4 v 5 v8 e1 e2 v1 v2 e5 e3 v e 6 4 v7 G possui três componentes conexos: H 1 : V 1 = {v 1, v 2, v 3 } E 1 = {e 1, e 2 } H 2 : V 2 = {v 4 } E 2 = H 3 : V 3 = {v 5, v 6, v 7, v 8 } E 3 = {e 3, e 4, e 5 }

Componente fortemente conexo (conectado) Um grafo dirigido G = (V, E) é fortemente conexo se cada dois vértices quaisquer são alcançáveis a partir um do outro. Os componentes fortemente conexos de um grafo dirigido são conjuntos de vértices sob a relação são mutuamente alcançáveis. Um grafo dirigido fortemente conexo tem apenas um componente fortemente conexo. v3 v0 v 4 Os componentes fortemente conexos do grafo ao lado são: H 1 : V 1 = {v 0, v 1, v 2, v 3 } H 2 : V 2 = {v 4 } H 3 : V 3 = {v 5 } Observe que {v 4, v 5 } não é um componente fortemente conexo já que o vértice v 5 não é alcançável a partir do vértice v 2 v 1 v 5 v 4.

Circuito Euleriano (1) Definição: Seja G um grafo. Um circuito Euleriano é um circuito que contém cada vértice e cada aresta de G. É uma sequência de vértices e arestas adjacentes que começa e termina no mesmo vértice de G, passando pelo menos uma vez por cada vértice e exatamente uma única vez por cada aresta de G.

Circuito Euleriano (2) Teorema: Se um grafo possui um circuito Euleriano, então cada vértice do grafo tem grau par. Prova: Suponha que G é um grafo que tem um circuito Euleriano. [Deve-se mostrar que qualquer vértice v de G tem grau par.] Seja v um vértice particular de G mas escolhido aleatoriamente. O circuito Euleriano possui cada aresta de G incluindo todas as arestas incidentes a v. Vamos imaginar um caminho que começa no meio de uma das arestas adjacentes ao início do circuito Euleriano e continua ao longo deste circuito e termina no mesmo ponto.

Circuito Euleriano (3) Par de arestas entrada/saída Comece aqui v 1 v 3 v 0 v 2 v 5 Par de arestas entrada/saída v 4 Prova (continuação): Cada vez que o vértice v é visitado através de uma aresta de entrada, este vértice é deixado já que o caminho termina no meio de uma aresta. Já que cada circuito Euleriano passa em cada aresta de G exatamente uma única vez, cada aresta incidente a v é visitada uma única vez neste processo. Como o caminho que passa por v é feito através de arestas incidentes a v na forma de pares entrada/saída, o grau de v deve ser múltiplo de 2. Isto significa que o grau de v é par. [O que devia ser mostrado.]

Circuito Euleriano (4) O contrapositivo deste teorema (que é logicamente equivalente ao teorema original) é: Teorema: Se algum vértice de um grafo tem grau ímpar, então o grafo não tem um circuito Euleriano. Esta versão do teorema é útil para mostrar que um grafo não possui um circuito Euleriano. v 2 e v 1 3 e 7 e 4 e 6 e 5 v e v 1 3 4 e 2 Vértices v 1 e v 3 possuem grau 3 e, assim, não possuem um circuito Euleriano.

Circuito Euleriano (5) Revisitando o problema das sete pontes da cidade de Königsberg. A B C D Problema: É possível que uma pessoa faça um percurso na cidade de tal forma que inicie e volte a mesma posição passando por todas as pontes somente uma única vez? Não. Todos os vértices têm grau ímpar.

Circuito Euleriano (6) No entanto, se cada vértice de um grafo tem grau par, então o grafo tem um circuito Euleriano? Não. Por exemplo, no grafo abaixo todos os vértices têm grau par, mas como o grafo não é conexo, não possui um circuito Euleriano. e 1 v 2 e 3 v 3 v 1 e 2 v 4 e 4

Circuito Euleriano (7) Teorema: Se cada vértice de um grafo não vazio tem grau par e o grafo é conexo, então o grafo tem um circuito Euleriano. Prova: [Esta é uma prova construtivista, ou seja, apresenta um algoritmo para achar um circuito Euleriano para um grafo conexo no qual cada vértice tem grau par.] Suponha que G é um grafo conexo não vazio e que cada vértice de G tem grau par. [Deve-se achar um circuito Euleriano para G.] Construa um circuito C usando o algoritmo descrito a seguir. PASSO 1: Escolha qualquer vértice v de G. [Este passo pode ser executado já que pela suposição o conjunto de vértices de G é não vazio.]

Circuito Euleriano (19) Teorema: Um grafo G tem um circuito Euleriano sse G é conexo e cada vértice de G tem grau par. Definição: Seja G um grafo e seja v e w dois vértices de G. Um Trajeto Euleriano de v para w é uma sequência de arestas e vértices adjacentes que começa em v, termina em w e passa por cada vértice de G pelo menos uma vez e passa por cada aresta de G exatamente uma única vez. Corolário: Seja G um grafo e dois vértices v e w de G. Existe um trajeto Euleriano de v para w sse G é conexo e v e w têm grau ímpar e todos os outros vértices de G têm grau par.

Trajeto Euleriano (1) Uma casa possui uma divisão representada pela planta abaixo. É possível uma pessoa sair do cômodo A, terminar no cômodo B e passar por todas as portas da casa exatamente uma única vez? Se sim, apresente um possível trajeto. A G F H I B E C D J K

Trajeto Euleriano (2) A planta da casa pode ser representada pelo grafo abaixo: J I E K H F G D C B A H F G D C B A J I E K Cada vértice deste grafo tem um grau par, exceto os vértices A e B que têm grau 1. Assim, pelo corolário anterior, existe um trajeto Euleriano de A para B. AGHFEIHEKJDCB

Circuito Hamiltoniano (1) Em 1859, propôs um jogo na forma de um dodecaedro (sólido de 12 faces). William Hamilton (1805 1865), matemático irlandês. Contribuiu para o desenvolvimento da óptica, dinâmica e álgebra. Em particular, descobriu a álgebra dos quaternions. Seu trabalho provou ser significante para o desenvolvimento da mecânica quântica.

Circuito Hamiltoniano (2) Jogo proposto por Hamilton Cada vértice recebeu o nome de uma cidade: Londres, Paris, Hong Kong, New York, etc. O problema era: É possível começar em uma cidade e visitar todas as outras cidades exatamente uma única vez e retornar à cidade de partida? O jogo é mais fácil de ser imaginado projetando o dodecaedro no plano:

Circuito Hamiltoniano (3) Jogo proposto por Hamilton Uma possível solução para este grafo é: Definição: Dado um grafo G, um Circuito Hamiltoniano para G é um circuito simples que inclui cada vértice de G, ou seja, uma sequência de vértices adjacentes e arestas distintas tal que cada vértice de G aparece exatamente uma única vez.

Comentários sobre circuitos Euleriano e Hamiltoniano (1) Circuito Euleriano: Inclui todas as arestas uma única vez. Inclui todos os vértices, mas que podem ser repetidos, ou seja, pode não gerar um circuito Hamiltoniano. Circuito Hamiltoniano: Inclui todas os vértices uma única vez (exceto o inicial = final). Pode não incluir todas as arestas, ou seja, pode não gerar um circuito Euleriano.

Comentários sobre circuitos Euleriano e Hamiltoniano (2) É possível determinar a priori se um grafo G possui um circuito Euleriano. Não existe um teorema que indique se um grafo possui um circuito Hamiltoniano nem se conhece um algoritmo eficiente (polinomial) para achar um circuito Hamiltoniano. No entanto, existe uma técnica simples que pode ser usada em muitos casos para mostrar que um grafo não possui um circuito Hamiltoniano.

Determinando se um grafo não possui um circuito Hamiltoniano (1) Suponha que um grafo G tenha um circuito Hamiltoniano C dado por: C : v 0 e 1 v 1 e 2... v n 1 e n v n Como C é um circuito simples, todas as arestas e i são distintas e todos os vértices são distintos, exceto v 0 = v n. Seja H um subgrafo de G que é formado pelos vértices e arestas de C, como mostrado na figura abaixo (H é o subgrafo com as linhas grossas).

Determinando se um grafo não possui um circuito Hamiltoniano (2) Se um grafo G tem um circuito Hamiltoniano então G tem um subgrafo H com as seguintes propriedades: 1. H contém cada vértice de G; 2. H é conexo; 3. H tem o mesmo número de arestas e de vértices; 4. Cada vértice de H tem grau 2. Contrapositivo desta afirmação: Se um grafo G não tem um subgrafo H com propriedades (1) (4) então G não possui um circuito Hamiltoniano.

Determinando se um grafo não possui um circuito Hamiltoniano (3) Prove que o grafo G abaixo não tem um circuito Hamiltoniano. a e b c d Se G tem um circuito Hamiltoniano, então G tem um subgrafo H que: 1. H contém cada vértice de G; 2. H é conexo; 3. H tem o mesmo número de arestas e de vértices; 4. Cada vértice de H tem grau 2.

Determinando se um grafo não possui um circuito Hamiltoniano (4) a e b c d Em G, grau(b) = 4 e cada vértice de H tem grau 2; Duas arestas incidentes a b devem ser removidas de G para criar H; Qualquer aresta incidente a b que seja removida fará com que os outros vértices restantes tenham grau menor que 2; Conseqüentemente, não existe um subgrafo H com as quatro propriedades acima e, assim, G não possui um circuito Hamiltoniano.

O Problema do Caixeiro Viajante (1) Em inglês, Traveling Salesman Problem, ou TSP. Suponha o mapa abaixo mostrando quatro cidades (A, B, C, D) e as distâncias em km entre elas. B 30 C A 30 50 35 40 25 D Um caixeiro viajante deve percorrer um circuito Hamiltoniano, ou seja, visitar cada cidade exatamente uma única vez e voltar a cidade inicial. Que rota deve ser escolhida para minimizar o total da distância percorrida?

O Problema do Caixeiro Viajante (2) Possível solução: Enumere todos os possíveis circuitos Hamiltonianos começando e terminando em A; Calcule a distância de cada um deles; Determine o menor deles. Rota Distância (km) ABCDA 30 + 30 + 25 + 40 = 125 30 B 30 C 25 ABDCA 30 + 35 + 25 + 50 = 140 ACBDA 50 + 30 + 35 + 40 = 155 ACDBA 50 + 25 + 35 + 30 = 140 A 50 35 40 D ADBCA 40 + 35 + 30 + 50 = 155 ADCBA 40 + 25 + 30 + 30 = 125 Assim, tanto a rota ABCDA ou ADCBA tem uma distância total de 125 km.

O Problema do Caixeiro Viajante (3) A solução do TSP é um circuito Hamiltoniano que minimiza a distância total percorrida para um grafo valorado arbitrário G com n vértices, onde uma distância é atribuída a cada aresta. Algoritmo para resolver o TSP: Atualmente, força bruta, como feito no exemplo anterior. Problema da classe NP-Completo. Exemplo: para o grafo K 30 existem 29! 8, 84 10 30 circuitos Hamiltonianos diferentes começando e terminando num determinado vértice. Mesmo se cada circuito puder ser achado e calculado em apenas 1µs, seria necessário aproximadamente 2, 8 10 17 anos para terminar a computação nesse computador.