MATEMÁTICA DISCRETA PARA ENGENHARIA DE...

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

Transcript of MATEMÁTICA DISCRETA PARA ENGENHARIA DE...

Page 1: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃOProfa. Kathya Collazos Linares

*As aulas baseiam-se no material do Professor Antonio Alfredo Ferreira Loureiro; Jorge Figueiredo e Judith Gersting

Page 2: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Árvore

Definição: Uma árvore (também chamada de árvorelivre) é um grafo não dirigido acíclico e conexo.

Page 3: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Árvore

Dado um grafo G as seguintes proposições são equivalentes:

1. G é uma árvore.

2. G é conexo e não tem ciclos.2. G é conexo e não tem ciclos.

3. Entre cada par de vértices de G existe um único caminho.

4. G é conexo com ordem n e tamanho n-1.

5. G é conexo, mas G-e não é conexo para toda aresta e quepertence a E(G).

6. G é acíclico, mas G + uv contém um ciclo para todo par u, v

de vértices independentes.

Page 4: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Árvore geradora

Definição: Uma árvore geradora de um

grafo G é um grafo que contém cada

vértice de G e é uma árvore.

�Proposição:

� Cada grafo conexo tem uma árvore

geradora.

� Duas árvores geradores quaisquer de um

grafo têm a mesma quantidade de

arestas.

Page 5: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Árvore geradora

Seja o grafo G

abaixo Este grafo possui o circuito

v2v1v4v2.

A remoção de qualquer uma dastrês arestas do circuito leva a uma

V5 V4 V3

três arestas do circuito leva a umaárvore.

Assim, todas as três árvores geradoras são:

V2V0 V1

V0

V5 V4

V1 V2

V3

V0 V1 V2

V3V4V5

V0 V1 V2

V3V4V5

Page 6: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

AM D

Seja o grafo G:

AM

DM

Uma árvore geradora é:

Árvore Geradora

M

C

D

I

L

N

S

D

I

L

N

S

C

Page 7: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Árvore geradoraComo encontrar uma árvore geradora?

Para encontrar uma árvore geradora:

��Se o grafo G não tem ciclos, G é uma árvore

geradora

�Se G tem ciclo, é necessário remover

recursivamente arestas (até achar uma árvore),

mantendo o grafo conectado.

Page 8: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Árvore geradoraComo encontrar uma árvore geradora?

Page 9: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Árvore geradora mínimaMinimal Spanning Tree (MST)

�Em muitas das aplicações de relações com

conexões simétricas. O grafo da relação

modela uma situação na qual as arestas

assim como os vértices carregam assim como os vértices carregam

informação.

�O grafo ponderado é um grafo no qual cada

aresta é etiquetada com um valor

numérico denominado peso.

Page 10: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Árvore geradora mínimaMinimal Spanning Tree (MST)

� Cidade de “Oz” onde

as trilhas do circuito

de trens entre os

H

B D6

6

2

pontos turísticos

formam um grafo

ponderado, os pesos

indicam a distância

em quilômetros.

A

F

C

E

G

3 3

3

4

4

5

5

6

2

Page 11: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Árvore geradora mínimaMinimal Spanning Tree (MST)

� Os pesos de uma aresta (vi, vj) é algumas vezes

referenciada como a distância entre vértices vi e

vj.

� Um vértice u é um vizinho próximo do vértice v� Um vértice u é um vizinho próximo do vértice v

se u e v são adjacentes e não há nenhum outro

vértice unido a v por uma aresta de peso menor

do que (u,v).

� Note que v pode ter mais do que um vizinho

próximo.

Page 12: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Árvore geradora mínimaMinimal Spanning Tree (MST)

Definição: Um grafo com peso é um grafo onde cada aresta

possui um peso representado por um número real. A soma

de todos os pesos de todas as arestas é o peso total do grafo.

Uma árvore geradora mínima para um grafo com peso é

uma árvore geradora que tem o menor peso total possíveluma árvore geradora que tem o menor peso total possível

dentre todas as possíveis árvores geradoras do grafo.

Se G é um grafo com peso e e uma aresta de G

então:

• w (e) indica o peso da aresta e,

• w (G) indica o peso total do grafo G.

Page 13: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Árvore geradora mínimaMinimal Spanning Tree (MST)

O grafo de rotas da companhiaaérea que recebeu permissãopara voar pode ser “rotulado”com as distâncias entre ascidades:

Uma companhia aérea recebeupermissão para voar nas seguintesrotas:

DAA

D

A

MD

I

L

N

S

C

355

695

262

269

242

151

230306

83

348

74

AD

I

S

MD

I

L

N

S

C

I

S

Page 14: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Árvore geradora mínimaMinimal Spanning Tree (MST)

A companhia deseja voar para todas as cidades mas usando um

conjunto de rotas que minimiza o total de distâncias

percorridas:

�Precisa-se determinar a árvore geradora

�A árvore geradora deve ser mínima A�A árvore geradora deve ser mínima

MD

I

L

N

S

C695

269

242

151

306

83

74

A

I

S

A

MD

I

L

N

S

C

355

262

242151

230

83

74

AA

I

S

Page 15: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmos para obter a árvore geradora mínima

�Algoritmo de Prim.

�Algoritmo de Kruskal.

Grafo inicial: Árvore geradora mínima:

AM

D

I

L

N

S

C

355

695

262

269

242

151

230306

83

34874

AA

IS

AM

D

I

L

N

S

C

355

262

242151

230

83

74

AA

IS

Page 16: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Prim

Idéia básica:

•Passo 1: Escolher o vértice v1 de G. Seja V = {v1 } e E = { }

•Passo 2: Escolher o vizinho próximo de v1 de V que•Passo 2: Escolher o vizinho próximo de v1 de V queseja adjacente a v1, (p.e. vj ∈ V) e para o qual a aresta(v1, vj) não forma ciclo com os membros de E.Adicionar vj para V e adicionar (v1, vj) para E

•Passo 3: Repetir 2 até todos os vértices sejamvisitados. Logo V contém todos os vértices de G e Econtém todas as arestas da MST de G

Page 17: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Prim

a b c d e f g h i

a 0 4 x x x x x 8 x

b 4 0 8 x x x x 11 x

c x 8 0 7 x 4 x x 2

d x x 7 0 9 14 x x x

e x x x 9 0 10 x x x

f x x 4 14 10 0 2 x x

g x x x x x 2 0 1 6

h 8 11 x x x x 1 0 7

i x x 2 x x x 6 7 0

Page 18: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Prim

a b c d e f g h i

a 0

b 4 0

c x 8 0

d x x 7 0

e x x x 9 0

f x x 4 14 10 0

g x x x x x 2 0

h 8 11 x x x x 1 0

i x x 2 x x x 6 7 0

Page 19: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Prim

a b c d e f g h i

a 0a 0

b 4 0

c x 8 0

d x x 7 0

e x x x 9 0

f x x 4 14 10 0

g x x x x x 2 0

h 8 11 x x x x 1 0

i x x 2 x x x 6 7 0

V=[a]E=[ ]

|V|=9-1=8

Page 20: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Prim

a b c d e f g h i

a 0

V=[a]E=[ ]V=[a, b]E=[ ab,]

a 0

b 4 0

c x 8 0

d x x 7 0

e x x x 9 0

f x x 4 14 10 0

g x x x x x 2 0

h 8 11 x x x x 1 0

i x x 2 x x x 6 7 0

|V|=8-1=7

Page 21: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Prim

a b c d e f g h i

a 0a 0

b 4 0

c x 8 0

d x x 7 0

e x x x 9 0

f x x 4 14 10 0

g x x x x x 2 0

h 8 11 x x x x 1 0

i x x 2 x x x 6 7 0

V=[ a,b]E=[ab, ]V=[ a,b,c]E=[ab,bc]

|V|=7-1=6

Page 22: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Prim

a b c d e f g h i

a 0a 0

b 4 0

c x 8 0

d x x 7 0

e x x x 9 0

f x x 4 14 10 0

g x x x x x 2 0

h 8 11 x x x x 1 0

i x x 2 x x x 6 7 0

V=[ a,b,c]E=[ab, bc ]V=[ a,b,c,i]E=[ab,bc,ci]

|V|=6-1=5

Page 23: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Prim

a b c d e f g h i

a 0

b 4 0

c x 8 0

d x x 7 0

e x x x 9 0

f x x 4 14 10 0

g x x x x x 2 0

h 8 11 x x x x 1 0

i x x 2 x x x 6 7 0

V=[ a,b,c,i]E=[ab, bc,ci ]V=[ a,b,c,i,f]E=[ab,bc,ci, cf]

|V|=5-1=4

Page 24: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Prim

a b c d e f g h i

a 0a 0

b 4 0

c x 8 0

d x x 7 0

e x x x 9 0

f x x 4 14 10 0

g x x x x x 2 0

h 8 11 x x x x 1 0

i x x 2 x x x 6 7 0

V=[ a,b,c,i,f]E=[ab, bc,ci,cf ]V=[ a,b,c,i,f,g]E=[ab,bc,ci, cf,fg]

|V|=4-1=3

Page 25: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Prim

a b c d e f g h i

a 0a 0

b 4 0

c x 8 0

d x x 7 0

e x x x 9 0

f x x 4 14 10 0

g x x x x x 2 0

h 8 11 x x x x 1 0

i x x 2 x x x 6 7 0

V=[ a,b,c,i,f,g]E=[ab, bc,ci,cf,fg ]V=[ a,b,c,i,f,g,h]E=[ab,bc,ci, cf,fg,gh]

|V|=3-1=2

Page 26: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Prim

a b c d e f g h i

a 0

b 4 0

c x 8 0

d x x 7 0

e x x x 9 0

f x x 4 14 10 0

g x x x x x 2 0

h 8 11 x x x x 1 0

i x x 2 x x x 6 7 0

V=[ a,b,c,i,f,g,h]E=[ab, bc,ci,cf,fg,gh ]V=[ a,b,c,i,f,g,h,d]E=[ab,bc,ci, cf,fg,gh, cd]

|V|=2-1=1

Page 27: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Prim

a b c d e f g h i

a 0

b 4 0

c x 8 0

d x x 7 0

e x x x 9 0

f x x 4 14 10 0

g x x x x x 2 0

h 8 11 x x x x 1 0

i x x 2 x x x 6 7 0

V=[ a,b,c,i,f,g,h,d]E=[ab, bc,ci,cf,fg,gh, cd ]V=[ a,b,c,i,f,g,h,d,e]E=[ab,bc,ci, cf,fg,gh, cd, de]

|V|=1-1=0

Page 28: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Kruskal

Idéia básica:

• Passo 1: Ordenar as arestas por ordem crescente docomprimento (ou custo), sendo os desempates feitoscomprimento (ou custo), sendo os desempates feitosarbitrariamente, formando uma lista.

• Passo 2: Selecionar a primeira aresta da lista. Seoriginar um ciclo, retirá-la da lista e voltar ao início doPasso 2. Caso contrário, adicioná-la à árvore e retirá-lada lista

• Passo 3: Repetir o passo 2 até que a árvore estejaformada (todos os vértices conectados).

Page 29: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Kruskal

Page 30: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Kruskal

Page 31: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Kruskal

Page 32: MATEMÁTICA DISCRETA PARA ENGENHARIA DE …paginapessoal.utfpr.edu.br/kathya/Disciplinas/matematica_discreta... · MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya

Algoritmo de Kruskal