1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

58
1 BCC-244 Modelos de Computação

Transcript of 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

Page 1: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

1

BCC-244

Modelos de Computação

Page 2: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

2

Computação

CPU memória

Page 3: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

3

CPU

memória entrada

memoria saida

memória de programa

memória temporária

Page 4: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

4

CPU

memória entrada

memória saidamemória de programa

memória temporária

3)( xxf

compute xx

compute xx 2

Exemplo:

Page 5: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

5

CPU

memória entrada

memória saídamemória de programa

memória temporária

3)( xxf

compute xx

compute xx 2

2x

Page 6: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

6

CPU

memória entrada

memória saídamemória de programa

memória temporária3)( xxf

compute xx

compute xx 2

2x

42*2 z82*)( zxf

Page 7: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

7

CPU

memória entrada

memória saídamemória de programa

memória temporária3)( xxf

compute xx

compute xx 2

2x

42*2 z82*)( zxf

8)( xf

Page 8: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

8

Autômato

CPU

memória entrada

memória saída

memória de programa

memária temporária

Autômato

Page 9: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

9

Diferentes Tipos de Autômatos

Autômatos se distinguem pela memória temporaria

•Autômato Finito: sem memória temporária

•Autômato de Pilha : pilha

•Máquina de Turing: memória RAM

Page 10: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

10

memória entrada

memória saída

memória temporária

Autômato

Finito

Autômato Finito

Máquinas de Venda (pequeno poder de computação)

Page 11: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

11

memória entrada

memória saida

Pilha

Autômato

de Pilha

Autômato de Pilha

Parser de Linguagens de Programação

(médio poder de computação)

Push, Pop

Page 12: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

12

memória entrada

memória saída

Memória Acesso Aleatório

Máquina

de Turing

Máquina de Turing

Algoritmos (mais alto poder de computação)

Page 13: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

13

Autômato

Finito

Autômato

de Pilha

Máquina

de Turing

Poder de Autômatos

Page 14: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

14

Vamos mostrar no curso

• Como construir compiladores para LPs

• Alguns problemas não têm solução computacional

• Alguns problemas são difíceis de resolver

Page 15: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

15

Preliminares Matemáticos

Page 16: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

16

Preliminares Matemáticos

• Conjuntos

• Funções

• Relações

• Grafos

• Técnicas de Prova

Page 17: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

17

}3,2,1{AUm conjunto é uma coleção de elementos

CONJUNTOS

Escrevemos

A1

Bship

Page 18: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

18

Representação de Conjuntos

C = { a, b, c, d, e, f, g, h, i, j, k }

C = { a, b, …, k }

S = { 2, 4, 6, … }

S = { j : j > 0, e j = 2k para algum k>0 }

S = { j : j is não negativo e par }

conjunto finito

conjunto infinito

Page 19: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

19

A = { 1, 2, 3, 4, 5 }

Conjunto Universal: Todos os elementos possíveis U = { 1 , … , 10 }

1 2 3

4 5

A

U

6

7

8

910

Page 20: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

20

Operações sobre conjuntos

A = { 1, 2, 3 } B = { 2, 3, 4, 5}

• União

A U B = { 1, 2, 3, 4, 5 }

• Interseção

A B = { 2, 3 }

• Diferença

A - B = { 1 }

B - A = { 4, 5 }

U

A B

A-B

Page 21: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

21

• Complemento

Conjunto Universal = {1, …, 7}

A = { 1, 2, 3 } A = { 4, 5, 6, 7}

12

3

4

5

6

7

AA

A = A

Page 22: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

22

02

4

6

1

3

5

7

pares

{ inteiros pares } = { inteiros ímpares }

impares

Inteiros

Page 23: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

23

Leis de DeMorgan’s

A U B = A B

U

A B = A U BU

Page 24: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

24

Conjunto Vazio, Nulo:= { }

S U = S

S =

S - = S

- S =

U= Conjunto Universal

Page 25: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

25

Subconjunto

A = { 1, 2, 3} B = { 1, 2, 3, 4, 5 }

A B

U

Subconjunto próprio A B

U

A

B

Page 26: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

26

Subconjuntos Disjuntos

A = { 1, 2, 3 } B = { 5, 6}

A B =

UA B

Page 27: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

27

Cardinalidade de Conjuntos

• Para conjuntos finitos

A = { 2, 5, 7 }

|A| = 3

Page 28: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

28

Conjunto Potência

Um Conjunto Poetência é um conjunto de conjuntos

Conjunto Potência de S = conjunto de todos os subconjuntos de S

S = { a, b, c }

2S = { , {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c} }

Observação: | 2S | = 2|S| ( 8 = 23 )

Page 29: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

29

Produto CartesianoA = { 2, 4 } B = { 2, 3, 5 }

A X B = { (2, 2), (2, 3), (2, 5), ( 4, 2), (4, 3), (4, 4) }

|A X B| = |A| |B|

Generaliza para mais de dois conjuntos

A X B X … X Z

Page 30: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

30

FUNÇÕESdomínio

12

3

a

bc

contra-domínio

f : A -> B

A B

Se A = domínio

então f é uma função total

caso contrário f é uma função parcial

f(1) = a

Page 31: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

31

RELAÇÕES R = {(x1, y1), (x2, y2), (x3, y3), …}

xi R yi

e. x. se R = ‘> ’: 2 > 1, 3 > 2, 3 > 1

Em relações xi pode ser repetido

Page 32: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

32

Relações de Equivalência

• Reflexiva: x R x

• Symétrica: x R y y R x

• Transitiva: x R Y e y R z x R z

Exemplo: R = ‘= ‘

• x = x

• x = y y = x

• x = y e y = z x = z

Page 33: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

33

Classes de EquivalênciaPara uma relação de equivalência R

classe de equivalência de x = {y : x R y}

Exemplo:

R = { (1, 1), (2, 2), (1, 2), (2, 1),

(3, 3), (4, 4), (3, 4), (4, 3) }

Classe de equivalência de 1 = {1, 2}

Classe de equivalência de 3 = {3, 4}

Page 34: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

34

GRAFOSUm grafo direcionado

• Nodos (Vértices)

V = { a, b, c, d, e }

• Arcos

E = { (a, b), (b, c), (c, a), (b, d), (d, c), (e, d) }

e

a

b

c

dnodo

edge

Page 35: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

35

Grafo Rotulado

a

b

c

d

e

1 3

56

26

Page 36: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

36

Percurso

a

b

c

d

e

Percurso é uma sequência de arcos adjacentes

(e, d), (d, c), (c, a)

Page 37: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

37

Caminho

a

b

c

d

e

Caminho é um percurso sem nenhum arco repetido

Caminho simples: nenhum nodo é repeatido

Page 38: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

38

Ciclo

a

b

c

d

e

12

3

Ciclo: caminho de um nodo (base) até ele próprio

Ciclo simples: somento o node base é repetido

base

Page 39: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

39

Ciclo de Euler

a

b

c

d

e1

23

45

6

7

8 base

Ciclo que contém cada arco exatamente uma vez.

Page 40: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

40

Ciclo Hamiltoniano

a

b

c

d

e1

23

4

5 base

Ciclo simples que contém todos os nodos

Page 41: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

41

Encontrando todos os caminhos simples

a

b

c

d

ef

Page 42: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

42

a

b

c

d

e

(c, a)

(c, e)

f

Passo 1

Page 43: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

43

a

b

c

d

e

(c, a)

(c, a), (a, b)

(c, e)

(c, e), (e, b)

(c, e), (e, d)

Passo 2

f

Page 44: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

44

Passo 3

a

b

c

d

e

f

(c, a)

(c, a), (a, b)

(c, e)

(c, e), (e, b)

(c, e), (e, d)

(c, e), (e, d), (d, f)

Repete o mesmo

para cada nodo inicial

Page 45: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

45

Árvoresraiz

folha

pai

filho

Árvores não têm ciclos

Page 46: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

46

raiz

folha

Nível 0

Nível 1

Nível 2

Nível 3

Altura 3

Page 47: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

47

Árvores Binárias

Page 48: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

48

TECNICAS DE PROVA

• Prova por indução

• Prova por contradição

Page 49: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

49

Indução

Temos asserções P1, P2, P3, …

Se sabemos

• para algum k P1, P2, …, Pk são verdadeiros

• para todo n >= k

P1, P2, …, Pn implica Pn+1

Então

Todo Pi é verdadeiro

Page 50: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

50

Prova por Indução• Base da Indução

Encontre P1, P2, …, Pk que sejam verdadeiros

• Hipótese de Indução

Suponha que P1, P2, …, Pn sejam verdadeiros,

para todo n >= k

• Passo Indutivo

Mostre que Pn+1 é verdadeiro

Page 51: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

51

Exemplo

Teorema: Uma árvore binária de altura n

tem no máximo 2n folhas.

Prova:

seja l(i) o número de folhas no nível i

l(0) = 1

l(3) = 8

Page 52: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

52

Queremos mostrar: l(i) <= 2i

• Base da Indução

l(0) = 1 (o nodo raiz)

• Hipótese de Indução

Suponha l(i) <= 2i for all i = 0, 1, …, n

• Passo Indutivo

queremos mostrar que l(n + 1) <= 2n+1

Page 53: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

53

Passo Indutivo

hipótese: l(n) <= 2n

Nível

n

n+1

Page 54: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

54

hipótese: l(n) <= 2n

Nível

n

n+1

l(n+1) <= 2 * l(n) <= 2 * 2n <= 2n+1

Induction Step

Page 55: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

55

Lembrete

Recursão é semelhante

Exemplo de função recursiva:

f(n) = f(n-1) + f(n-2)

f(0) = 1, f(1) = 1

Page 56: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

56

Prova por Contradição

Queremos provar que uma asserção P é verdadeira

• supomos que P seja falsa

• então obtemos uma conclusão absurda

• portanto, a asserção P deve ser verdadeira

Page 57: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

57

Exemplo

Teorema: não é racional

Prova:

Suponha, por contradição, que seja racional

= n/m

n e m não possuem fatore comuns

Cvamos mostrar que isso é impossível

2

2

Page 58: 1 BCC-244 Modelos de Computação. 2 Computação CPU memória.

58

= n/m 2 m2 = n2

Portanto, n2 é parn é par

n = 2 k

2 m2 = 4k2 m2 = 2k2m é par

m = 2 p

Então, m e n têm em comum o fator 2

Contradição!

2