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

Post on 22-Apr-2015

111 views 0 download

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

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

4

CPU

memória entrada

memória saidamemória de programa

memória temporária

3)( xxf

compute xx

compute xx 2

Exemplo:

5

CPU

memória entrada

memória saídamemória de programa

memória temporária

3)( xxf

compute xx

compute xx 2

2x

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

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

8

Autômato

CPU

memória entrada

memória saída

memória de programa

memária temporária

Autômato

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

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)

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

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)

13

Autômato

Finito

Autômato

de Pilha

Máquina

de Turing

Poder de Autômatos

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

15

Preliminares Matemáticos

16

Preliminares Matemáticos

• Conjuntos

• Funções

• Relações

• Grafos

• Técnicas de Prova

17

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

CONJUNTOS

Escrevemos

A1

Bship

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

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

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

21

• Complemento

Conjunto Universal = {1, …, 7}

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

12

3

4

5

6

7

AA

A = A

22

02

4

6

1

3

5

7

pares

{ inteiros pares } = { inteiros ímpares }

impares

Inteiros

23

Leis de DeMorgan’s

A U B = A B

U

A B = A U BU

24

Conjunto Vazio, Nulo:= { }

S U = S

S =

S - = S

- S =

U= Conjunto Universal

25

Subconjunto

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

A B

U

Subconjunto próprio A B

U

A

B

26

Subconjuntos Disjuntos

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

A B =

UA B

27

Cardinalidade de Conjuntos

• Para conjuntos finitos

A = { 2, 5, 7 }

|A| = 3

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 )

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

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

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

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

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}

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

35

Grafo Rotulado

a

b

c

d

e

1 3

56

26

36

Percurso

a

b

c

d

e

Percurso é uma sequência de arcos adjacentes

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

37

Caminho

a

b

c

d

e

Caminho é um percurso sem nenhum arco repetido

Caminho simples: nenhum nodo é repeatido

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

39

Ciclo de Euler

a

b

c

d

e1

23

45

6

7

8 base

Ciclo que contém cada arco exatamente uma vez.

40

Ciclo Hamiltoniano

a

b

c

d

e1

23

4

5 base

Ciclo simples que contém todos os nodos

41

Encontrando todos os caminhos simples

a

b

c

d

ef

42

a

b

c

d

e

(c, a)

(c, e)

f

Passo 1

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

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

45

Árvoresraiz

folha

pai

filho

Árvores não têm ciclos

46

raiz

folha

Nível 0

Nível 1

Nível 2

Nível 3

Altura 3

47

Árvores Binárias

48

TECNICAS DE PROVA

• Prova por indução

• Prova por contradição

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

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

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

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

53

Passo Indutivo

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

Nível

n

n+1

54

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

Nível

n

n+1

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

Induction Step

55

Lembrete

Recursão é semelhante

Exemplo de função recursiva:

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

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

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

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

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