disciplina de Álgebra i unidade de aprendizagem: a...

15
Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012. Complexo de Ensino Superior de Cachoeirinha Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected] Disciplina de Álgebra I Unidade de Aprendizagem: A Lógica da Matemática, Caminhos, Grafos e Algoritmos GRAFOS Conceito Muitas situações do dia-a-dia podem ser convenientemente descritas através de diagramas que consistem de um conjunto de pontos, juntamente com linhas que ligam alguns pares desses pontos. Por exemplo, os pontos podem representar pessoas e as linhas ligam pares de amigos; os pontos podem representar centros de comunicação e as linhas ligações entre esses centros. A abstração matemática de situações desse tipo dá lugar ao conceito de grafo. Vamos começar com um exemplo Manoel, um carteiro, incumbido de trabalhar em uma região desconhecida (figura 1), quer descobrir qual é o percurso para a entrega da correspondência diária em que, saindo do posto dos Correios, passe por todas as ruas sem nunca cruzar por um trecho de rua (entre duas esquinas consecutivas) pelo qual já tenha passado (não passe duas vezes pela mesma rua) e quando for entregar na última rua, já esteja voltando ao posto inicial. Para tal região, isto é possível? Figura 1 Representemos o Posto dos Correios, onde está Manoel, por A, as (outras) sete esquinas respectivamente pelas letras de B até H, bem como os trechos de ruas entre duas esquinas consecutivas por linhas, como na figura 2. Figura 2 Feito isso, dizemos que partimos de uma situação-problema concreta e a representamos por um grafo, neste caso com vértices A, B, C, D, E, F, G e H, e arestas AB, AF, BC, BD, BF, CD, FD, FE, DE, FG, FH e GH. Trata-se assim de um caminho para a resolução da situação-problema proposta com base numa modelagem em grafos para ela, ou seja, um grafo-modelo. Este grafo-modelo, por exemplo, não possui aresta AH, pois A e H não são vértices que representam esquinas consecutivas (limites de um mesmo trecho de rua). Completando, AFBDFG é um percurso por arestas desse grafo e o grau (número de arestas que chegam num vértice) do vértice A é 2, bem como o de F é 6, e em tal grafo nenhum dos oito vértices tem grau ímpar. Acrescentemos mais uns poucos conceitos: vértices adjacentes são quaisquer dois vértices ligados por alguma aresta; grafo conexo é todo aquele no qual existe um percurso conectando qualquer par de vértices que se escolha, caminho é percurso sem repetição de vértices; ciclo é caminho fechado (isto é, onde o vértice final coincide com o inicial); árvore é qualquer grafo conexo sem ciclos. Que o leitor note que as ligações na figura 2, feitas com segmentos, poderiam ser linhas quaisquer (curvas), mesmo sendo os trechos de ruas dados retilíneos, pois o que importa é representarmos fielmente (seja qual for a forma gráfica) que pares de vértices devem relacionar-se, no caso, quais representam duas esquinas consecutivas. Veremos outro exemplo Numa escola algumas turmas resolveram realizar um torneio de vôlei. Participam do torneio as turmas 6A, 6B, 7A, 7B, 8A e 8B. Alguns jogos foram realizados até agora: 6A jogou com 7A, 7B, 8B 6B jogou com 7A, 8A, 8B 7A jogou com 6A, 6B 7B jogou com 6A, 8A, 8B 8A jogou com 6B, 7B, 8B 8B jogou com 6A, 6B, 7B, 8A Também podemos representar essa situação por meio de um grafo, onde as turmas serão representadas por pontos e os jogos serão representados por linhas. Não é difícil constatar por meio do grafo, que nem todos os times jogaram todas as partidas necessárias, mesmo que a relação já tenha nos informado. Podemos representar essa situação por uma lista, dizendo quem se relaciona com quem ou por um desenho, isto é, uma representação gráfica. Qual é a forma correta? As duas são corretas. . F E G H A B D C

Upload: nguyennhu

Post on 04-Sep-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

Disciplina de Álgebra I

Unidade de Aprendizagem: A Lógica da

Matemática, Caminhos, Grafos e Algoritmos

GRAFOS

Conceito

Muitas situações do dia-a-dia podem ser convenientemente

descritas através de diagramas que consistem de um conjunto de

pontos, juntamente com linhas que ligam alguns pares desses

pontos. Por exemplo, os pontos podem representar pessoas e as

linhas ligam pares de amigos; os pontos podem representar centros

de comunicação e as linhas ligações entre esses centros. A

abstração matemática de situações desse tipo dá lugar ao conceito

de grafo.

Vamos começar com um exemplo

Manoel, um carteiro, incumbido de trabalhar em uma região

desconhecida (figura 1), quer descobrir qual é o percurso para a

entrega da correspondência diária em que, saindo do posto dos

Correios, passe por todas as ruas sem nunca cruzar por um trecho

de rua (entre duas esquinas consecutivas) pelo qual já tenha

passado (não passe duas vezes pela mesma rua) e quando for

entregar na última rua, já esteja voltando ao posto inicial. Para tal

região, isto é possível?

Figura 1

Representemos o Posto dos Correios, onde está Manoel, por

A, as (outras) sete esquinas respectivamente pelas letras de B até

H, bem como os trechos de ruas entre duas esquinas consecutivas

por linhas, como na figura 2.

Figura 2

Feito isso, dizemos que partimos de uma situação-problema

concreta e a representamos por um grafo, neste caso com vértices

A, B, C, D, E, F, G e H, e arestas AB, AF, BC, BD, BF, CD, FD,

FE, DE, FG, FH e GH. Trata-se assim de um caminho para a

resolução da situação-problema proposta com base numa

modelagem em grafos para ela, ou seja, um grafo-modelo. Este

grafo-modelo, por exemplo, não possui aresta AH, pois A e H não

são vértices que representam esquinas consecutivas (limites de um

mesmo trecho de rua). Completando, AFBDFG é um percurso

por arestas desse grafo e o grau (número de arestas que chegam

num vértice) do vértice A é 2, bem como o de F é 6, e em tal grafo

nenhum dos oito vértices tem grau ímpar. Acrescentemos mais uns

poucos conceitos: vértices adjacentes são quaisquer dois vértices

ligados por alguma aresta; grafo conexo é todo aquele no qual

existe um percurso conectando qualquer par de vértices que se

escolha, caminho é percurso sem repetição de vértices; ciclo é

caminho fechado (isto é, onde o vértice final coincide com o

inicial); árvore é qualquer grafo conexo sem ciclos. Que o leitor

note que as ligações na figura 2, feitas com segmentos, poderiam

ser linhas quaisquer (curvas), mesmo sendo os trechos de ruas

dados retilíneos, pois o que importa é representarmos fielmente

(seja qual for a forma gráfica) que pares de vértices devem

relacionar-se, no caso, quais representam duas esquinas

consecutivas.

Veremos outro exemplo

Numa escola algumas turmas resolveram realizar um torneio

de vôlei. Participam do torneio as turmas 6A, 6B, 7A, 7B, 8A e

8B. Alguns jogos foram realizados até agora:

6A jogou com 7A, 7B, 8B

6B jogou com 7A, 8A, 8B

7A jogou com 6A, 6B

7B jogou com 6A, 8A, 8B

8A jogou com 6B, 7B, 8B

8B jogou com 6A, 6B, 7B, 8A

Também podemos representar essa situação por meio de um

grafo, onde as turmas serão representadas por pontos e os jogos

serão representados por linhas. Não é difícil constatar por meio do

grafo, que nem todos os times jogaram todas as partidas

necessárias, mesmo que a relação já tenha nos informado.

Podemos representar essa situação por uma lista, dizendo quem se

relaciona com quem ou por um desenho, isto é, uma representação

gráfica. Qual é a forma correta? As duas são corretas.

.

F

E

G

H

A

B

D C

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

Para que um grafo fique bem definido temos de ter dois

conjuntos:

- o conjunto V, dos vértices, que no nosso exemplo é o

conjunto das turmas;

- o conjunto A, das arestas, que no nosso exemplo são os jogos

realizados.

Em outras palavras, o que nos interessa num grafo é: quem são

os vértices e que pares de vértices estão ligados e quais não estão

(isto é, quem são as arestas).

Quando existe uma aresta ligando dois vértices dizemos que

os vértices são adjacentes e que a aresta é incidente aos vértices.

No nosso exemplo podemos representar o grafo de forma sucinta

como:

V = {6A; 6B; 7A; 7B; 8A; 8B}

A = {(6A; 7A); (6A; 7B); (6A; 8B); (6B; 7A); (6B; 8A); (6B;

8B); (7B; 8A); (7B; 8B); (8A; 8B)}

Observe que não precisamos colocar (8A; 7B) no conjunto de

arestas, pois já tínhamos colocado (7B; 8A).

O número de vértices será simbolizado por │V│ ou pela letra

n, e o número de arestas será simbolizado por │A│ ou pela letra

m. No nosso exemplo n = 6 e m = 9.

Grau de um Vértice

No nosso exemplo vimos que cada turma jogou um número

diferente de jogos:

6A jogou 3 jogos

6B jogou 3 jogos

7A jogou 2 jogos

7B jogou 3 jogos

8A jogou 3 jogos

8B jogou 4 jogos

Por isso, no nosso desenho, o vértice 6A tem 3 arestas ligadas

a ele, o vértice A7 tem 2 arestas ligadas a ele e assim por diante.

Dizemos que estas arestas são incidentes ao vértice. O número de

vezes que as arestas incidem sobre o vértice V é chamado grau do

vértice V, simbolizado por d(v). No nosso exemplo, d(6A) = 3;

d(7A) = 2.

Exercícios

1) Usando o grafo do campeonato:

(a) Dê o grau de cada um dos vértices

(b) Qual a soma de todos os graus?

(c) Qual o número de arestas?

(d) O que você observou? Será coincidência?

2) Faça o mesmo exercício anterior (itens a, b e c) usando os grafos

abaixo:

Agora vamos conhecer, de maneira formal, um pouco mais

sobre os grafos!

Definição

No exercício anterior você deve ter observado que a soma dos

graus de um grafo é sempre o dobro do número de arestas (e isso

não deve ser coincidência...). Isso pode ser escrito em linguagem

matemática. Para isso, denotaremos um grafo pela letra G e

representaremos por V(G) e A(G) respectivamente, os conjuntos

de vértices e das arestas de G.

Teorema

Para todo grafo G:

Isto é, a soma dos graus dos vértices de um grafo é sempre o

dobro do número de arestas.

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

Alguns Problemas com as Definições

Algumas perguntas acerca das definições podem nos deixar

atrapalhados. Vamos examinar algumas.

- Uma aresta pode ligar um vértice a ele mesmo? Pode. É o que

chamamos de laço (veja na figura abaixo). Por exemplo, vamos

construir o grafo em que V = {2; 3; 4; 5; 6} e dois vértices serão

ligados quando tiverem um divisor comum (diferente de 1).

Pela definição do grafo vemos que o 5 não está ligado a

nenhum outro vértice mas tem um laço (como aliás todos os outros

vértices deste grafo). Para haver coerência com os resultados da

seção anterior, temos que contar o laço duas vezes (uma para cada

extremidade) quando calcularmos o grau do vértice. No nosso

exemplo: d(2) = 4; d(3) = 3; d(4) = 4; d(5) = 2; d(6) = 5, e o

teorema continua valendo.

- Dois vértices podem estar ligados por mais de uma aresta?

Podem. Neste caso usamos o nome especial de multigrafo,

conforme a figura abaixo, por exemplo:

Grafos sem laços ou arestas múltiplas são chamados de grafos

simples.

A figura abaixo mostra um grafo ou dois grafos?

Isto depene da situação ou contexto, pois pode representar

tanto dois grafos distintos como um grafo desconexo. Cada parte

conexa do grafo (no nosso exemplo, o quadrado e o triângulo) é

chamada de componente conexa do grafo. Dizemos que um grafo

é conexo se qualquer par de pontos é ligado por ao menos um

caminho.

Vizinhança e outras particularidades dos grafos

O conjunto de vértices adjacentes a v é chamado vizinhança aberta de

v, denotado por N(v). A vizinhança fechada de v é denotada e definida

por N[v] = N(v) ∪ {v}, isto é, inclui a vizinhança e o próprio vértice.

Podemos estender esta definição para conjuntos de vértices (N(S) e N[S]).

Por exemplo, no grafo do campeonato da aula anterior temos N(7B) =

{6A; 8A; 8B} e N[7B] = {6A; 7B; 8A; 8B}.

Um vértice de grau 0 é dito isolado; um vértice de grau 1 é dito

pendente. A sequência de graus de um grafo é a sequência não crescente

formada pelos graus dos vértices dos grafos. Por exemplo, a sequência de

graus do grafo do campeonato é (4; 3; 3; 3; 3; 2). O menor grau de um

vértice em G é o grau mínimo, denotado 𝛿(G), e o maior é o grau máximo,

denotado Δ(G). No caso do campeonato temos Δ(G) = 4 e 𝛿 (G) = 2.

G’ é dito um subgrafo de G se V(G’) ⊆ V(G) e A(G’) ⊆ A(G). Na

figura a seguir, o grafo G’ é um subgrafo de G.

Grafo completo

Imagine o grafo do campeonato quando todos os jogos tiverem sido

jogados. Ele ficaria com o aspecto da figura abaixo:

Isto é o que chamamos um grafo completo. Um grafo completo é

definido como um grafo onde todo par de vértices é ligado por uma aresta.

Um grafo completo com n vértices é denotado por Kn (o nosso exemplo

é K6).

Exercícios I

1) Quantas arestas têm K7? e K12? e Kn?

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

2) Quantos vértices um grafo simples precisa ter para poder ter 210

arestas?

Grafo complementar

Imagine agora que temos o grafo do campeonato e queremos fazer o

grafo dos jogos que faltam. Faríamos um grafo com o mesmo conjunto

de vértices, mas com as arestas que faltam no grafo original. Veja a figura.

Chamamos este grafo de grafo complementar do grafo G, denotado

por 𝐺. É fácil perceber que V(G) = V(𝐺) e que A(G) ∪ A(𝐺) inclui todas

as arestas de G.

Grafo nulo ou vazio

Um grafo G é nulo ou vazio quando o conjunto de arestas A(G) é

vazio. Por exemplo, antes de começar o campeonato nenhum jogo havia

sido jogado. Nosso grafo ficaria como na figura:

Grafo regular

Um grafo é regular (de grau k, ou ainda k-regular) quando todos os

seus vértices têm o mesmo grau (k). A figura abaixo mostra um grafo 3-

regular, isto é, todos os vértices tem grau 3.

Ciclo

Um ciclo é um grafo conexo regular de grau 2. A notação é Cn, veja

os exemplos abaixo:

Caminho

Um caminho é um ciclo do qual retiramos uma aresta. O comprimento

do caminho é dado pelo número de arestas. Assim, o caminho Pn é obtido

retirando uma aresta do ciclo Cn+1.

Árvores

Uma árvore é um grafo conexo sem ciclos como subgrafos. Note que

o fato de não ter ciclos faz com que a árvore seja a maneira “mais

econômica” de conectar os vértices.

Grafo bipartido

Um grafo bipartido G é um grafo cujo conjunto de vértices admite

uma partição em dois subconjuntos não vazios, V1 e V2, de tal modo que

toda a aresta de G é incidente num elemento de V1 e noutro de V2. Se todo

o vértice de V1 estiver ligado por uma (e uma só) aresta a cada vértice de

V2, G diz-se um grafo bipartido completo. Neste caso, se │V1│= m e

│V2│= n, G denota-se por Km,n. Se │V1│ = 1, G diz-se uma estrela.

Acabamos por “separar” dois grupos de vértices que não se ligam

entre si. Apresentemos alguns exemplos de grafos bipartidos:

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

Representação por Matrizes

Uma das formas mais comuns de informar uma estrutura de grafo para

um computador é através de matrizes. Uma matriz nada mais é do que

uma tabela com linhas e colunas. Um exemplo bastante conhecido é a

tabuada:

Se quisermos saber o valor de 3 x 5 procuramos o valor na linha do 3

e na coluna do 5, isto é 15. Mas as matrizes têm outras utilidades. No caso

dos grafos elas podem ser usadas na representação de várias formas. Eis

algumas delas, exemplificadas com as representações do grafo a seguir:

Exercícios II

1) Desenhe uma representação do grafo cuja matriz de adjacência é:

2) Considere o grafo:

Responda as seguintes perguntas:

a) O grafo é simples?

b) O grafo é completo?

c) O grafo é conexo?

d) É possível encontra dois caminhos do nó (vértice) 3 para o nó 6?

e) É possível encontrar um ciclo, ou seja, sair de um ponto em voltar ao

mesmo ponto (não sendo necessário passar por todas as arestas)?

f) É possível encontrar uma aresta cuja remoção transforma o grafo em

um grafo acíclico?

3) Esboce um grafo simples com 3 vértices, cada um com grau 2.

Grafo direcionado (dirigido)

Muitas vezes, na modelação de certos problemas convém considerar

um sentido para as arestas. Por exemplo, na modelação de mapas de

estradas com sentido único:

Um grafo dirigido (ou, abreviadamente, digrafo) D consiste num

conjunto finito não vazio V(D) de elementos chamados vértices, e num

conjunto finito A(D) de arestas orientadas (eventualmente múltiplas),

chamadas arestas. Por exemplo:

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

Um digrafo diz-se simples se não contiver laços e os seus arcos forem

todos distintos.

Exercícios III

1) Observe o grafo direcionado abaixo:

Responda as seguintes perguntas:

a) Quais são os vértices acessíveis a partir do vértice 3?

b) Qual o caminho mais curto do nó 3 para o nó 6?

c) Qual o caminho de comprimento 8 (que passa por oito arestas) do nó 1

para o nó 6?

2) Observe o grafo direcionado abaixo:

Responda as seguintes perguntas:

a) Existe um caminho de comprime 5 do nó 1 para o nó 4?

b) É possível acessar o nó 1 de algum outro nó?

c) Quais são os ciclos deste grafo?

3) Escreva a matriz de adjacências dos grafos abaixo:

4) Quantas arestas tem um grafo com vértices de graus 5, 2, 2, 2, 2, 1?

Desenhe um possível grafo.

a)

b)

c)

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

5) Determine se cada um dos grafos é bipartido.

a)

b)

PROBLEMAS DE CAMINHOS

Recordemos o problema das pontes de Königsberg da aula anterior

onde se perguntava se era a possível atravessar cada uma das 7 pontes

exatamente uma vez e voltar ao ponto de partida. Isto é equivalente a

perguntar se no grafo abaixo existe um caminho fechado, sem repetição

de arestas, contendo todas as arestas, ou seja, um ciclo (caminho fechado,

onde o vértice final coincide com o inicial).

Para compreender um grafo euleriano, temos de retomar alguns

aspectos referentes aos grafos de um modo geral. Como já sabemos, um

caminho, num grafo, consiste numa sequência de arestas do grafo,

construída de tal modo que, duas arestas consecutivas da seqüência tem

ao menos um vértice em comum e, nessa seqüência, não aparecem arestas

repetidas (no caso, para que caminho seja “econômico”). Tendo-se um

caminho em um grafo, cada aresta desse caminho fica “orientada”,

passando a ter um vértice inicial e um vértice final, de modo que, se a e b

são duas arestas consecutivos do caminho, o vértice final de a é o vértice

inicial de b. Além disso, o caminho terá um vértice inicial – o seu ponto

de partida –, e um vértice final – o seu ponto de chegada. Quando o vértice

inicial e o vértice final de um caminho coincidem, dizemos que o caminho

é fechado.

Historicamente, os caminhos eulerianos estão associados à gênese da

teoria de grafos, essencialmente à custa das pontes de Königsberg (atual

Kalingrado, no enclave russo entre a Polónia e a Lituânia). A questão era

saber se seria possível passar exatamente uma vez em cada ponte,

voltando ao ponto de partida. Em 1736, Leonhard Euler mostrou que tal

“passeio” não é possível. De suas conclusões, temos as seguintes

características e propriedades:

• Um caminho euleriano percorre cada aresta uma vez, sem a

necessidade de voltar ao ponto de partida.

• Um ciclo euleriano é um caminho em um grafo que visita cada

aresta exatamente uma vez, iniciando e terminando no mesmo vértice.

• Um grafo euleriano é aquele que contém um ciclo euleriano.

• Um grafo não-dirigido é euleriano se não tiver nenhum vértice de

grau ímpar;

• Um grafo dirigido é euleriano se todos os vértices tiverem grau de

entrada igual ao seu grau de saída.

• Um grafo semi-euleriano (que permite um caminho euleriano)

possui exatamente dois vértices de grau ímpar, um é o ponto de

partida e outro é o ponto de chegada.

Ou seja:

Teorema 1: Se um grafo admite um caminho euleriano, começando e

terminando num mesmo vértice, então todo vértice desse grafo tem ordem

par.

Demonstração: Considere um vértice qualquer do grafo, digamos A, e

suponhamos que ele é um vértice intermediário (nem final, nem inicial)

do passeio. Então, cada vez que chegamos em A, através de uma aresta

do caminho, partimos de A logo em seguida, e assim, contadas as

chegadas e partidas, teremos um número par de arestas apoiando-se em

A (figura abaixo). Suponhamos agora que B é o vértice inicial e final do

caminho. Então, calculando a ordem de B, contamos 1 na partida, mais 1

na chegada, e somamos 2 cada vez que passamos por B (podemos, ao

longo do caminho, passar diversas vezes por B). Logo, B é também um

vértice par.

Teorema 2: Se um grafo admite um caminho euleriano, começando num

vértice e terminando em outro, então os vértices final e inicial do passeio

são ímpares, e todos os demais vértices do grafo tem ordem par.

Demonstração: Se um vértice não é o fim nem o início do caminho então,

toda vez que chegamos a ele no caminho, partimos em seguida, e assim

haverá um número par de arestas nele se apoiando. Se C é o vértice inicial

do passeio, então, ao calcular sua ordem, contamos 1 quando partimos de

C, e somamos 2 cada vez que passamos por C. Assim, C é um vértice

ímpar. Da mesma forma, para o vértice D, final do caminho, somamos 2

cada vez que passamos por ele e mais 1 na chegada, sendo D, portanto,

também um vértice ímpar.

Em vista dos dois teoremas acima, agora fica fácil saber quais dos

grafos já vistos em nossas aulas admitem caminho euleriano. Igualmente

fácil é determinar se o problema das pontes de Königsberg tem ou não

solução. Verificaremos agora que, reciprocamente, todo grafo, com todas

as arestas pares, ou apenas duas ímpares, admite um caminho euleriano.

Teorema 3: Se um grafo tem seus vértices todos pares, então ele admite

um caminho euleriano. Além disso, esse caminho pode começar (e

terminar) em qualquer vértice previamente escolhido. A primeira aresta

do caminho pode ser qualquer aresta partindo desse vértice.

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

Teorema 4: Se um grafo tem dois vértices ímpares e os demais todos

pares, então ele admite um caminho euleriano. Esse caminho deve

começar em um dos vértices ímpares e terminar no outro.

Exercícios

1) Quais destas figuras podemos fazer, com um único traço, sem tirar o

lápis do papel, passando o lápis só uma vez em cada traço?

2) Tente construir um caminho (ou ciclo) eulerianos no grafo abaixo,

verificando se o mesmo satisfaz as hipóteses de um dos teoremas 3 e 4 (leve em conta que o encontro de duas ou mais arestas é um vértice).

3) Agora, tente construir caminhos eulerianos nos grafos abaixo,

verificando, da mesma forma, em cada caso, se o grafo satisfaz as

hipóteses de um dos teoremas 3 e 4.

O Problema do Menor Caminho

O algoritmo que soluciona este problema (e até hoje não se encontrou

forma melhor) foi criado por Edsger Wybe Dijkstra, em 1952. Dijkstra

nasceu em 1930, na cidade de Roterdan (Holanda), e morreu em 2002.

Foi um cientista de computação e recebeu o Turing Award de 1972 por

suas contribuições fundamentais na área de linguagens de programação.

Notem um fato interessante: geralmente o que estudamos em matemática

foi criado há muito tempo. Mas, como veremos no problema a seguir, a

matemática continua a oferecer soluções e com o desenvolvimento da

Informática a ideia de uma solução para um problema tem se modificado.

Em vez de procurarmos um número, uma resposta (o que em muitos casos

é necessário), procuramos um algoritmo, isto é, uma série de

procedimentos que os levem à solução. A vantagem é que, se o problema

for muito extenso, poderemos programar um computador para realizar

este algoritmo.

E o problema a seguir é um excelente exemplo disso. E observe que

trabalharemos com grafos valorados, isto é, estaremos atribuindo valores

às arestas. Estes valores podem ser distâncias, tempo gasto no trajeto,

custo com a ligação etc. Usaremos as expressões custo ou distância para

nos referirmos a estes valores. Estes valores geralmente são estimados por

engenheiros, economistas e consideraremos nos próximos exemplos que

eles são dados. Este algoritmo trabalha apenas com grafos valorados com

valores positivos e nossa tarefa é minimizar o custo ou a distância.

(a) (b) (c) (d)

a)

a)

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

Qual o Menor Caminho até a Escola?

Tente criar uma estratégia (ou melhor, um algoritmo) para

checar seguramente o menor caminho!

Monte uma matriz de distância, colocando, para os vértices que

se conectam, o valor equivalente, e para os vértices que não se

conectam, use o símbolo do infinito ( ).

Pesquise por: Algoritmo de Dijkstra.

Exercícios de fixação

1) Preencha o quadro:

Tipo Arestas (sem

direção ou dirigidas)

Arestas

Múltiplas (sim ou não)

Laços (sim ou

não)

Grafos simples

Multigrafo

Pseudografo Sem direção sim sim

Grafo dirigido simples

Grafo dirigido

2) Dê a matriz adjacência, usando:

para grafos simples:

A(G) se 0

A(G) se 1

ij

ijxij

Para multigrafos:

A(G) se 0

A(G) )2x( se 2

A(G) se 1

ij

ij

ij

xij

Para grafos dirigidos

A(G) se 0

A(G) se 1

ij

ijxij

c) Monte o grafo da matriz transposta da questão b).

3) Esboce os grafos com as seguintes características:

a) Com 4 vértices e ciclos de comprimento 1, 2, 3 e 4.

b) Não completo com 4 vértices, cada um com grau 4.

4) Para os grafos abaixo:

a) preencha a tabela:

Vértice Grau

A

B

C

D

E

F

G

Nº de vértices com grau par

Nº de vértices com grau ímpar

Soma dos graus

b) qual é o número de arestas?

c) É um grafo euleriano? Se afirmativo, dê o ciclo, caso contrário,

verifique se o grafo possui caminho euleriano.

a)

a

b

c

d

b)

a

b

c

d)

A

B C

D

F E

G

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

Grafos e Ciclos Hamiltonianos

Um problema aparentemente similar ao dos grafos eulerianos é o de

procurar em G um caminho fechado que passe por todos os vértices uma

e só uma vez. Um caminho assim teria de ser necessariamente um ciclo;

chamamos um tal ciclo de ciclo hamiltoniano. O nome é em homenagem

a Sir Willian R. Hamilton, matemático irlandês que estudou e divulgou o

problema, embora a primeira formulação tenha sido feita por Kirkman em

1885. As primeiras denotações de grafo hamiltoniano e de grafo semi-

hamiltoniano seguem as mesmas diretrizes dos grafos eulerianos. Um

grafo e seu ciclo hamiltoniano aparecem na figura (a); um grafo semi-

hamiltoniano aparece na figura (b).

Então, como vimos na figura (a), Um grafo G é chamado

Hamiltoniano quando possui um ciclo que inclui todos os vértices de G,

ou seja, neste ciclo cada vértice aparece uma única vez, com exceção do

vértice de partida. Como vimos no exemplo (b), se o grafo não contiver

um ciclo hamiltoniano, mas contiver um caminho entre dois vértices de

forma que cada vértice do grafo seja visitado uma única vez, então este

grafo é chamado semi-hamiltoniano.

Exercícios I

1) Os grafos (c) e (d) abaixo são, cada um, separadamente, hamiltoniano?

Semi-hamiltoniano? É euleriano ou semi-euleriano?

(c): ___________________________________________________

(d): ___________________________________________________

2) O grafo abaixo é hamiltoniano? Se sim, encontre o ciclo hamiltoniano.

O Problema do Caixeiro Viajante

Embora semelhante ao problema do cálculo do circuito euleriano, o

ciclo hamiltoniano é muito mais complexo, pois não são conhecidas todas

as condições necessárias e suficientes para que um grafo genérico

contenha um ciclo hamiltoniano nem tampouco métodos eficientes para

construir tal ciclo.

Este problema está intimamente relacionado ao problema do caixeiro

viajante, o qual consiste em encontrar um caminho que passe por todas

as cidades uma única vez e retorne ao ponto de partida, escolhendo para

isso um caminho de custo mínimo. Este caminho consiste em um ciclo

hamiltoniano de custo mínimo, onde a soma dos custos das arestas

pertencentes ao ciclo é mínima. O problema do caixeiro viajante é um

dos problemas mais estudados no campo da pesquisa operacional, mas até

hoje não foi encontrado um algoritmo computacionalmente eficiente para

resolvê-lo. Sua formulação é simples: dado um grafo completo valorado

G, desejamos determinar o valor do menor ciclo hamiltoniano de G.

Tomemos o exemplo dado pela seguinte matriz valorada de adjacência:

Como o grafo em questão é K7, uma solução óbvia seria examinar

todas as permutações entre os vértices, cada uma correspondendo a um

ciclo hamiltoniano. Com 7 vértices, teremos 7! = 5760 permutações; na

verdade são 6! = 820, pois são permutações circulares. Seja como for, é

uma tarefa até modesta para um computador. Mas o problema do caixeiro

viajante frequentemente trata de grafos com mais de 60 vértices. Isso nos

daria 60!, o que nos tomaria milênios, mesmo usando todos os

computadores do mundo!

Nossa atitude será então de procurar um algoritmo que use uma ideia

razoável, mesmo que não assegure a melhor solução, a solução ótima.

Uma possível solução é através do algoritmo guloso, que parte do ponto

A e procura sempre a menor distância ao ponto da vez. No nosso caso, o

ciclo produzido seria a-g-c-f-d-e-b-a, com valor 2470. A contra-

indicação para o algoritmo guloso é que no final terminamos por aceitar

arestas de valores muito altos.

Na figura abaixo, por exemplo, temos um grafo completo, valorado

nas arestas, e desejamos encontrar o ciclo hamiltoniano com menor valor

total (problema do caixeiro viajante). Para isto, use o algoritmo guloso e

(a)

(b)

(c) (d)

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

constate que o valor obtido nem sempre (ou quase nunca) é o melhor valor

(que pode ser encontrado por exame exaustivo).

Subconjuntos Especiais de um Grafo

Conjuntos Independentes

Suponhamos que um grafo represente a incompatibilidade de horários

entre professores que devem dar prova final; os vértices x e y estarão

ligados se representarem professores que têm alunos em comum para

ministrar a prova. Qual o maior número de professores que podem dar

prova ao mesmo tempo? A resposta é dada pelo subconjunto

independente máximo de vértices do grafo.

O subconjunto assinalado com quadrados negros no grafo dado a

seguir mostra um conjunto com estas características. O número de

independência (G) é a cardinalidade do subconjunto independente

máximo de vértices do grafo. No nosso exemplo,

𝛼(G) = 4.

Aplicações do conceito de conjunto independente surgem quando,

por exemplo, desejamos evitar duplicação de esforços. Suponhamos que

num parque, representado pelo grafo da figura (e), eu quisesse instalar

barracas para venda de sorvete. A operadora das barracas faz as seguintes

restrições:

Uma barraca deve ser localizada em uma esquina (vértice).

Esquinas próximas (vértices adjacentes) só admitem uma barraca.

Estamos procurando então um conjunto independente. Para instalar o

máximo de barracas procuramos um conjunto independente máximo. Já

vimos que esta pode ser uma tarefa complexa. Na figura abaixo a

configuração da esquerda (f) mostra um conjunto independente maximal,

isto é, não podemos acrescentar mais barracas de sorvete. Mas a

configuração da direita (g) também é independente e contém quase o

dobro de barracas.

(e)

(f) (g)

Coloração

Suponha, no exemplo anterior, o dos professores, que quiséssemos

saber qual o menor número de horários necessários para ministrar as

provas. Para isto, devemos resolver o problema de particionar o conjunto

de vértices do grafo em subconjuntos independentes; cada conjunto

corresponder a um horário de prova. Uma forma de resolver o problema

é atribuir cores aos vértices de forma que vértices adjacentes tenham

necessariamente cores diferentes. O menor número de cores que se pode

utilizar será, portanto a solução do problema.

Observação: não precisamos efetivamente colorir os vértices, basta

atribuir um número ou um símbolo aos vértices.

O estudo de coloração de grafos nasceu quando Francis Guthrie

percebeu que era possível colorir o mapa da Inglaterra usando apenas 4

cores. A pergunta que surgiu foi se 4 cores eram suficientes para colorir

qualquer decomposição do plano em regiões. Em 1976, usando grafos,

Haken e Appel mostram que a resposta era afirmativa.

Uma coloração de interesse é aquela em que se utiliza um número

mínimo de cores. Um grafo G, que exige k cores para pintar seus vértices,

e não menos, é chamado um grafo k-cromático, ou k-colorável, e o

número k é chamado número cromático de G. Na figura abaixo (i), o

número mínimo de cores é 3, portanto o grafo é 3-cromático.

Do ponto de vista matemático, o subconjunto de vértices com uma

mesma cor é considerado uma partição de vértices, e no caso do exemplo

(h): {a}, {b, d} e {c}.

Temos então, por definição:

(i)

a

c

d

a

b

c

b b

(h)

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

Uma coloração própria dos vértices de um grafo é uma coloração

de vértices tal que aos vértices (pontos finais) de cada aresta são atribuídas

cores diferentes.

Um grafo é dito ser

k-cromático ou k-colorável se ele tem uma coloração própria de vértices

que usa k cores.

O número cromático de um grafo G, denotado crom(G), é o menor

número de cores diferentes necessárias para obter uma coloração própria

de G.

Teorema das Quatro Cores

A história do problema das quatro cores começou em 1852, quando

Francis Guthrie, aluno de Augustus de Morgan, tentava colorir o mapa

da Inglaterra com cores diferentes de maneiras que não houvesse regiões

vizinhas com a mesma cor. Observou que apenas quatro cores seriam

suficientes, e apresentou o problema a De Morgan. Surgindo então o

Problema das Quatro Cores. Este Teorema foi provado inicialmente em

1976, por Kenneth Appel e Wolfgang Haken na Universidade de Illinois,

com o auxílio de um computador.

O Teorema das Quatro Cores afirma que: Qualquer grafo planar

pode ser colorido com apenas quatro cores.

(i) Um grafo é dito planar se pode ser representado no plano sem que

suas linhas se cruzem.

(ii) Um grafo é planar se seu esquema puder ser traçado em um plano de

forma que duas arestas quaisquer se toquem, no máximo, em alguma

extremidade.

Aplicações de Coloração

As aplicações de coloração aparecem quando precisamos repartir o

conjunto de vértices em conjuntos de vértices independentes disjuntos.

Voltando ao problema do parque, suponha que quiséssemos instalar

barracas de sorvete, pipocas, cachorro-quente, algodão doce, etc. Um

algoritmo interessante pode nos ajudar a colorir um grafo.

Algoritmo de Welch-Powell

O Algoritmo de Welch-Powell, é um algoritmo para a coloração de

um grafo G, que consiste em:

Passo 1 - Ordene os vértices de G em ordem decrescente de grau.

Passo 2 - Atribua a primeira cor, C1, ao primeiro vértice e, então,

sequencialmente, atribua C1 a cada vértice que não é adjacente a algum

vértice que o antecedeu e ao qual foi atribuída a cor C1.

Passo 3 - Repita o Passo 2 com a segunda cor C2 e os vértices

subsequentes não coloridos.

Passo 4 - Repita o Passo 3 com a terceira cor C3, depois com a quarta

cor C4, e assim por diante, até que todos os vértices estejam coloridos.

Vamos ver um exemplo abaixo:

1º passo: vértice 5 (grau 4) – vértices 1,2,3 e 4 (grau 3)

2º passo: cor azul no vértice 5 (como o restante dos vértices são todos

adjacentes, passamos para próximo passo).

3º passo: cor amarela no vértice 1 e depois no vértice 3, que não é

adjacente ao vértice 1.

4º passo: cor vermelha no vértice 2 e depois cor vermelha no vértice

4, eu não é adjacente ao vértice 2.

Assim o grafo é 3-cromático.

Exercícios II

1) Dê a coloração dos grafos por meio do algoritmo de Welch-Powell e

determine o número cromático (use cores na sequência: azul, amarelo,

vermelho, verde, preto e branco. Também é possível atribuir letras às

cores: a = azul, b = amarelo, c = vermelho, ...).

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

Árvores

Defini-se por árvore na matemática discreta um grafo simples,

conexo e sem ciclos. Em nosso dia-a-dia nos deparamos com muitos

exemplos de árvores: Árvore genealógica; Organograma de uma

empresa; Tabela de um torneio esportivo, entre outros. Formalmente,

pode-se dizer que, Seja T um grafo com n vértices, As seguintes

afirmações são equivalentes:

i. T é uma árvore.

ii. T não contém ciclos e tem n – 1 arestas.

iii. T é conexo e tem n – 1 arestas.

iv. Todo par de vértices de T é ligado por um único caminho.

v. T não contém ciclos, mas a adição de uma aresta produz um

único ciclo.

São exemplos de árvores com 1, 2, 3, 4, 5 e 6 vértices:

Árvore com raiz ou enraizada

Teorema: Um grafo simples G é uma árvore se e só se quaisquer dois

vértices de G estão ligados por um único caminho sem repetição de

vértices.

Fixando um vértice qualquer r de

uma árvore é possível, usando o

teorema anterior, dar uma direção a

todas as arestas do seguinte modo:

como existe um único caminho de r

para cada um dos restantes vértices do

grafo, direcionamos cada aresta usando

esses caminhos. Por exemplo, na árvore

ao lado:

Fixando o vértice r indicado,

obtemos, por exemplo, o grafo ao lado.

Este grafo dirigido diz-se uma árvore

com raiz r. Outra escolha de raiz pode

produzir outra árvore enraizada.

Definição: uma árvore T = (V,E) é

denominado com raiz ou enraizada

quando algum vértice r é escolhido

como raiz. Esse vértice r é a raiz da

árvore. Usualmente representamos

graficamente a raiz no topo. Podemos

transformar uma árvore sem raiz numa árvore enraizada simplesmente

escolhendo um vértice como raiz.

A terminologia para as árvores inspira-se na botânica e na genealogia.

Por exemplo, seja a árvore enraizada abaixo, com raiz c temos:

Raiz = c

Ancestrais de j={e,c}

Descendentes de j={i,k}

Pai de j=e

Filhos de j={i,k}

Nível de j = 2

Altura da árvore =3

Folhas = {b,a,i,k,f,h,d}

A raiz de uma árvore não possui pai, e todo vértice v diferente de r,

possui um único pai. Uma folha é um vértice que não possui filhos.

Vértices que possuem filhos são chamados de vértices internos. O nível

da raiz é zero, de seus filhos é 1. O nível de um vértice é igual ao nível de

seu pai mais um. Para dois vértices irmãos v e w, nível(v) = nível(w). A

altura de uma árvore é o valor máximo de nível(r) para todo vértice v de

T.

Excentricidade

Denomina-se excentricidade de um vértice v ∈ V, ao valor da

distância máxima entre v e w, para todo w ∈ V. O centro de G é o

subconjunto dos vértices de excentricidade mínima. A Figura abaixo

apresenta um exemplo em que o centro é o subconjunto {c, d, e}.

VÉRTICE EXCENTRICIDADE

a 3

b 3

c 2

d 2

e 2

f 3

g 3

a b

c g

e

d f

c

l a

e d

j f g

b i h k

r

r

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

Árvore geradora

Árvore geradora é uma árvore T, subgrafo de G, que contém todos os

vértices de G, como no exemplo abaixo:

Exercícios

1) Quantas arestas tem uma árvore com 8 vértices?

2) Qual é a raiz da árvore (a) e qual é a excentricidade de cada vértice da

árvore (b)?

3) Construa a matriz de adjacência da árvore (b) do exercício anterior.

4) Para a árvore abaixo, sendo a a raiz, determine:

a) Os ancestrais de f.

b) Descendentes de c.

c) Filhos de c.

d) Pai de e.

e) Filhos de b.

f) nível de h.

g) Altura da árvore.

h) Folhas.

5) Dê duas árvores geradoras para cada grafo abaixo:

Exercícios de revisão

1) Quais são as diferenças entre grafos simples e multigrafos?

2) Construa um exemplo de grafo simples dirigido e um não dirigido.

3) Construa um exemplo de multigrafo dirigido e um não dirigido.

4) Construa os grafos não-dirigidos a partir dos conjuntos de vértices e

arestas dados a seguir:

a) V = {1, 2, 3, 4, 5} e A = {(1, 2), (1, 4), (1, 5), (2, 3), (3, 4), (4, 4)};

b) V = {1, 2, 3, 4, 5, 6} e A = {(1, 2), (1, 4), (1, 4), (2, 3), (2, 5), (3, 5)};

c) V = {1, 2, 3, 4, 5} e A = {(1, 2), (1, 4), (2, 3), (2, 4), (2, 5), (3, 4), (3,

5)};

d) V = {1, 2, 3, 4} e A = {(1, 2), (2, 3), (2, 4), (3, 4)};

e) V = {1, 2, 3, 4, 5, 6, 7, 8} e A = {(1, 2), (2, 2), (2, 3), (3, 4), (3, 5), (6,

7), (6, 8), (7, 8)}.

5) Dados os grafos da questão anterior, classifique-os como simples ou

multigrafos.

6) Construa um grafo G = (V,E), onde V = {1,2,3,4,5,6} e E = {(1,3),

(1,4), (1,5), (2,3),(2,4),(2,5),(3,5),(4,5)} e represente-o através de sua

matrizes de adjacência.

7) Dado o grafo ao lado, quais afirmações estão

corretas?

( ) Os vértices v e w são adjacentes;

( ) Os vértices v e x são adjacentes;

( ) A aresta 2 é incidente ao vértice u;

( ) A aresta 5 é incidente ao vértice x.

c

c

e

b

f

d

c

c

e

b

f

d

a a

(a) (b)

f d h

b

k

c

a

e g

i j

Recredenciamento Portaria MEC 347, de 05.04.2012 - D.O.U. 10.04.2012.

C o m p l e x o d e E n s i n o S u p e r i o r d e C a c h o e i r i n h a

Rua Silvério Manoel da Silva, 160 - CEP 94930000 - Cachoeirinha – RS - Tel/Fax. (51) 34418650 – www.cesuca.com.br – [email protected]

8) Para o grafo G (V,E) apresentado a seguir encontre os menores

caminhos entre o vértice A e os demais vértices de G:

9) Considere o grafo abaixo:

Construa uma árvore obtida com o algoritmo de DIJKSTRA que

represente um caminho mínimo do vértice v1 ao vértice v8.

5

1

5 2

2

C

A

E

D

B

3

8

5