Teoria da Computação. Unidade 2 Programas, máquinas e computação: Equivalência de programas. Referência Teoria da Computação (Divério, 2000)

Tamanho: px
Começar a partir da página:

Download "Teoria da Computação. Unidade 2 Programas, máquinas e computação: Equivalência de programas. Referência Teoria da Computação (Divério, 2000)"

Transcrição

1 Unidade 2 Programas, máquinas e computação: Equialência de programas Reerência (Diério, 2000)

2 Programas, Máquinas e Computações a

3 Programas, Máquinas e Computações Exercício - Fazer a computação e eriicar se a computação é inita ou ininita programa Recursio duplica duplica é R onde R de (se zero então senão sub; R; ad; ad)

4 Programas, Máquinas e Computações duplica é R onde R de (se zeroentão senão sub; R; ad; ad) Computação de duplica (R,, 2) (se zero então senão (sub; R; ad; ad); ; 2) (sub; R; ad; ad); ; 2) (R; ad; ad); ; 1) (se zero então senão (sub; R; ad; ad); ad; ad ; 1) (sub; R; ad; ad; ad; ad ; 1) (R; ad; ad; ad; ad ; 0)...

5 Programas, Máquinas e Computações (R; ad; ad; ad; ad ; 0) (se zero então senão (sub; R; ad; ad); ad; ad; ad; ad ; 0) ( ; ad; ad; ad; ad ; 0) (ad; ad; ad ; 1) (ad; ad ; 2) (ad ; 3) ( ; 4) A computação é inita

6 Conclusão A partir do conceito de unção computada são apresentadas noções de equialências de programas e máquinas: programas equialentes ortemente e programas equialentes em uma máquina; É apresentado um algoritmo para eriicar se programas monolíticos (ou iteratios) são equialentes ortemente. Até o momento não existe um algoritmo para programas recursios; Posteriormente, será apresentado o conceito de máquina uniersal.

7 Programas, Máquinas e Computações a

8 Equialência de Programas e Máquinas 1. Relação Equialência Forte de Programas: Um par de programas pertence a relação se as correspondentes unções computadas coincidem para qualquer máquina 2. Relação Equialência de Programas em uma Máquina: Um par de programas pertence a relação se as correspondentes unções computadas coincidem para uma dada máquina 3. Relação Equialência de Máquinas: Um par de máquinas pertence a relação se as máquinas podem se simular mutuamente. A simulação de uma máquina por outra pode ser eita usando programas dierentes.

9 Equialência Forte de Programas 1. Relação Equialência Forte de Programas, Programas Equialentes Fortemente Sejam P e Q dois programas. Então o par (P, Q) está na Relação Equialência Forte de Programas, denotadopor:p Q Se, e somente se, para qualquer máquina M as correspondentes unções computadas são iguais, ou seja: <P,M> = <Q,M> Neste caso, P e Q são ditos Programas Equialentes Fortemente

10 Equialência Forte de Programas 1. Programas Equialentes Fortemente: partida PM 1 partida PM 2 parada PI 3 enquanto aça (F) F PR 4 parada F parada P 4 é R onde R de (se então F;R senão )

11 Equialência Forte de Programas É importante considerar a relação Equialência Forte de Programas por árias razões, como: Permite identiicar dierentes programas em uma mesma classe de equialência, ou seja, identiicar dierentes programas cujas unções computadas coincidem, para qualquer máquina; As unções computadas por programas equialentes ortemente têm a propriedade de que os mesmos testes e as mesmas operações são eetuados na mesma ordem, independentemente do signiicado dos mesmos Fornece subsídios para analisar a complexidade estrutural de programas. Por exemplo, analisando os programas monolíticos equialentes ortemente PM 1 e PM 2, pode-se concluir quepm 1 é estruturalmente mais otimizado que PM 2, pois contém um teste a menos.

12 Equialência Forte de Programas Veriica-se que: Para todo iteratio, existe um monolítico equialente ortemente Para todo monolítico, existe um recursio equialente ortemente Para todo iteratio, existe um recursio equialente ortemente Programas Recursios Programas Monolíticos Programas Iteratios

13 Equialência Forte de Programas Equialência Forte de Programas Iteratio Monolítico Monolítico Recursio Iteratio Recursio Recursio Monolítico Monolítico Iteratio

14 Equialência Forte de Programas Equialência Forte de Programas Iteratio Monolítico Monolítico Recursio Iteratio Recursio Recursio Monolítico Monolítico Iteratio

15 Equialência Forte de Programas Iteratio Monolítico Justiicatia: a obtenção de um programa monolítico a partir de um iteratio é direta, a partir do mapeamento das construções elementares de um programa iteratio em sequências de construções equialentes em um programa monolítico. Como as mesmas operações são executadas na mesma ordem em ambos os programas, as unções computadas são idênticas

16 Equialência Forte de Programas Iteratio Monolítico Para qualquer programa iteratio P i, existe um programa monolítico P m,tal quep i P m a) Para a operação azia corresponde ao luxograma elementar: b) Para cada identiicador de operação F de P i F

17 Equialência Forte de Programas Iteratio Monolítico c) Suponha que é um identiicador de teste e que V, W são programas iteratios usados na construção de P i. Então, para cada um dos seguintes tipos de composição é apresentadoocorrespondenteluxogramade P m. c.1) Composição sequencial. V;W V W

18 Equialência Forte de Programas Iteratio Monolítico c.2) Composição condicional. (Se então V senão W) V W

19 Equialência Forte de Programas Iteratio Monolítico c.3) Composição enquanto. ( Enquanto aça (V)) V

20 Equialência Forte de Programas Iteratio Monolítico c.4) Composição até. ( Até aça (V)) V

21 Equialência Forte de Programas Iteratio Monolítico Exemplo: aça o mapeamento do programa iteratio para um programa monolítico até a_zero aça (subtrai_a; adiciona_b)

22 Iteratio até a_zero aça (subtrai_a; adiciona_b) Equialência Forte de Programas Iteratio Monolítico 1: se a_zero então á_para 4 senão á_para 2 2: aça subtrai_a á_para 3 3: aça adiciona_b á_para 1 Partida Instruções rotuladas Fluxograma adiciona_b subtrai_a a_zero Parada

23 Equialência Forte de Programas Equialência Forte de Programas Iteratio Monolítico Monolítico Recursio Iteratio Recursio Recursio Monolítico Monolítico Iteratio

24 Equialência Forte de Programas Monolítico Recursio Para qualquer programa monolítico P m, existe um programa recursiop r,talquep m P r Seja P m um programa monolítico qualquer onde L = {r 1, r 2,, r n } é o correspondente conjunto de rótulos. Suponha que de P m, r n é o único rótulo inal. Então P r é um programa recursio construídoapartir dep m eétalque: P r é R 1 onde R 1 de E 1, R 2 de E 2,, R n de onde,parak {1,2,...,n-1},E k é deinidocomo:

25 Equialência Forte de Programas Monolítico Recursio a)operação.se r k éda orma: r k : aça F á_para r k ' entãoe k éaseguinteexpressãode sub-rotinas: F;R k ' b)este.se r k éda orma: r k : se então á_para r k ' senão á_para r k " entãoe k éaseguinteexpressãode sub-rotinas: (se então R k ' senão R k ")

26 Equialência Forte de Programas Monolítico Recursio Exemplo: aça o mapeamento do programa monolítico (instruções rotuladas) para recursio 1: se a_zero então á_para 4 senão á_para 2 2: aça subtrai_a á_para 3 3: aça adiciona_b á_para 1

27 Equialência Forte de Programas Monolítico Recursio Exemplo: aça o mapeamento do programa monolítico para recursio R é R 1 onde 1 R 1 de (se a_zero então R 4 senão R 2 ) R 2 de (aça subtrai_a; R 3 ) R 3 de (aça adiciona_b; R 1 ) R 4 de Monolítico 1: se a_zero entãoá_para 4 senãoá_para 2 2: aça subtrai_a á_para 3 3: aça adiciona_b á_para 1

28 Equialência Forte de Programas Equialência Forte de Programas Iteratio Monolítico Monolítico Recursio Iteratio Recursio Recursio Monolítico Monolítico Iteratio

29 Programas, Máquinas e Computações Exercícios: 2.12 ao 2.14 Eniar por (oliete@ct.unesp.br) até o dia 22/03

30 Equialência Forte de Programas Recursio Monolítico Dado um programa recursio qualquer, não necessariamente existe um programa monolítico Um programa de qualquer tipo não pode ser modiicado dinamicamente, durante uma computação; Um programa, para ser ortemente equialente a outro, não pode conter ou usar acilidades adicionais como memória auxiliar ou operações ou testes extras; para que um programa monolítico possa simular uma recursão sem um número inito e predeinido de quantas ezes a recursão pode ocorrer, seriam necessárias ininitas opções de ocorrências das diersas operações ou testes enolidos na recursão em questão;

31 Veriicação de Equialência Forte de Programas A eriicação de que dois programas monolíticos são equialentes ortemente usa os seguintes conceitos: Máquina de raços: Produz um rastro ou histórico (denominado traço) da ocorrência das operações do programa. Neste contexto, dois programas são equialente ortemente se são equialentes em qualquer máquina de traços. Programa Monolítico com Instruções Rotuladas Compostas: Instruções rotuladas compostas constituem uma orma alternatia de deinir programas monolíticos. Ex.: r 1 :se então aça F á_parar 2 senão aça Gá_para r 3

32 Instruções Rotuladas Compostas A eriicação da equialência orte de dois programas monolíticos pode ser realizada usando uma representação baseada em conjuntos de instruções rotuladas compostas. Instruções rotuladas compostas possuem somente uma única orma, ao contrário das instruções rotuladas, as quais podem ser de duas ormas: operação ou teste. De ato, uma instrução rotulada composta combina ambas em uma única orma.

33 Instrução Rotulada Composta É uma sequência de símbolos da seguinte orma: r 1 :se entãoaça F á_para r 2 senão aça G á_para r 3 Adicionalmente: r 2 e r 3 são ditosrótulossucessores de r 1 r 1 é ditorótuloantecessor der 2 er 3

34 Programa Monolítico com Instruções Rotuladas Compostas Um Programa Monolítico com Instruções Rotuladas Compostas Péumparordenado onde: P=(I, r) I Conjunto de Instruções Rotuladas Compostas o qual é inito; r Rótulo Inicial o qual distingue a instrução rotulada inicial em I Adicionalmente, relatiamente ao conjunto I tem-se que: não existem duas instruções dierentes com um mesmo rótulo; um rótulo reerenciado por alguma instrução o qual não é associado a qualquer instrução rotulada é dito Rótulo Final.

35 Programa Monolítico com Instruções Rotuladas Compostas Considerando um único identiicador de teste, uma instrução rotulada composta da orma: r 1 :se entãoaça F á_para r 2 senão aça Gá_para r 3 pode ser abreiada simplesmente por: r 1 :(F, r 2 ), (G,r 3 )

36 Algoritmo: FluxogramaRotuladas Compostas Rotulação de Nós. Rotula-se cada nó do luxograma. Existe uma parada associada ao identiicador ε (palara azia). PartidaéoRótuloInicial doprogramap. Instruções Rotuladas Compostas. este: r 1 : (F, r 2 ), (G, r 3 ) Operação: r 1 : (F, r 2 ), (F, r 2 ) Parada: r: (parada,ε), (parada,ε) estes Encadeados: r 1 : (F, r 2 ), (G, r 3 ) estes Encadeados em Ciclo Ininito. r 1 : (F, r 2 ), (ciclo, ω)

37 Algoritmo: FluxogramaRotuladas Compostas este r 1 r 2 F G r 3 este: r 1 : (F, r 2 ), (G, r 3 )

38 Algoritmo: FluxogramaRotuladas Compostas r 1 r 2 F Operação Operação: r 1 : (F, r 2 ), (F, r 2 )

39 Algoritmo: FluxogramaRotuladas Compostas r ε parada Parada Parada: r: (parada,ε), (parada,ε)

40 Algoritmo: FluxogramaRotuladas Compostas r 1 estes Encadeados r 2 F r 4 H G r 3 estes Encadeados: r 1 : (F, r 2 ), (G, r 3 )

41 Algoritmo: FluxogramaRotuladas Compostas r 2 F r 1 estes Encadeados em Ciclos Ininitos estes Encadeados em Ciclo Ininito. r 1 : (F, r 2 ), (ciclo, ω)

42 Algoritmo de Equialência Forte de Programas Monolíticos Passos para eriicação: a) Especiicação do programa usando instruções rotuladas compostas; b) Conjunto de instruções rotuladas compostas; c) Identiicação dos ciclos ininitos; d) Simpliicação dos ciclos ininitos; e) União disjunta dos conjuntos I Q e I R, excetuando-se a instrução rotulada ω; )Veriicar se Q R

43 Equialência Forte de Programas Monolíticos a) Especiicação do programa utilizando instruções rotuladas compostas 1. Representar o programa monolítico na orma de luxograma 2. Atribuir rótulos numéricos para todas as operações 3. Atribuir o rótulo ε paraainstrução parada dee ser único 4. Considerar que os rótulos seguem os nós 5. Acadarótulo numérico i, criari: (F,i ) (G, i ) se: A condição erdadeira para o teste implica na execução de F Após a execuçãode Fopróximo rótulo atingidoéi Acondiçãoalsaparaoteste implica na execuçãode G Após a execuçãode G o próximo rótulo atingido é i Se a execução de uma operação lear a um loop ininito, dee-se usar (ciclo, w) e acrescentar a instrução rotulada composta w: (ciclo, w), (ciclo, w) ao programa

44 Equialência Forte de Programas Monolíticos a) Especiicação do programa utilizando instruções rotuladas compostas 1. Representar o programa monolítico na orma de luxograma 2. Atribuir rótulos numéricos para todas as operações 3. Atribuir o rótulo ε para a instrução parada dee ser único 4. Considerar que os rótulos seguem os nós 5. Acadarótulo numérico i, criari: (F,i ) (G, i ) se: A condição erdadeira para o teste implica na execução de F Após a execuçãode Fopróximo rótulo atingidoéi Acondiçãoalsaparaoteste implica na execuçãode G Após a execuçãode G o próximo rótulo atingido é i Se a execução de uma operação lear a um loop ininito, dee-se usar (ciclo, w) e acrescentar a instrução rotulada composta w: (ciclo, w), (ciclo, w) ao programa

45 Equialência Forte de Programas Monolíticos Exemplo: luxograma rotulado e instruções rotuladas compostas 1 partida Programa P 2 G F 3 4 F G 5 6 F 7 G ε parada

46 Algoritmo de Equialência Forte de Programas Monolíticos Passos para eriicação: a) Especiicação do programa usando instruções rotuladas compostas; b) Conjunto de instruções rotuladas compostas; c) Identiicação dos ciclos ininitos; d) Simpliicação dos ciclos ininitos; e) União disjunta dos conjuntos I Q e I R, excetuando-se a instrução rotulada ω; )Veriicar se Q R

47 Equialência Forte de Programas Monolíticos a) Especiicação do programa utilizando instruções rotuladas compostas 1. Representar o programa monolítico na orma de luxograma 2. Atribuir rótulos numéricos para todas as operações 3. Atribuir o rótulo ε paraainstrução parada dee ser único 4. Considerar que os rótulos seguem os nós 5. Acadarótulo numérico i, criari: (F,i ) (G, i ) se: A condição erdadeira para o teste implica na execução de F Após a execuçãode Fopróximo rótulo atingidoéi Acondiçãoalsaparaoteste implica na execuçãode G Após a execuçãode G o próximo rótulo atingido é i Se a execução de uma operação lear a um loop ininito, dee-se usar (ciclo, w) e acrescentar a instrução rotulada composta w: (ciclo, w), (ciclo, w) ao programa

48 Equialência Forte de Programas Monolíticos Exemplo: luxograma rotulado e instruções rotuladas compostas 1 partida Programa P b) Instruções rotuladas compostas 2 G F 3 4 F G 5 6 F 1: (G, 2), (F, 3) 2: (G, 2), (F, 3) 3: (F, 4), (G, 5) 4: (F, 4), (G, 5) 5: (F, 6), (ciclo, ω) 6: (parada, ε), (G, 7) 7: (G, 7), (G, 7) ω: (ciclo, ω), (ciclo, ω) 7 G ε parada

49 Algoritmo de Equialência Forte de Programas Monolíticos Passos para eriicação: a) Especiicação do programa usando instruções rotuladas compostas; b) Conjunto de instruções rotuladas compostas; c) Identiicação dos ciclos ininitos; d) Simpliicação dos ciclos ininitos; e) União disjunta dos conjuntos I Q e I R, excetuando-se a instrução rotulada ω; )Veriicar se Q R

50 Equialência Forte de Programas Monolíticos c) Identiicação dos ciclos ininitos; A união disjunta de conjuntos garante que todos os elementos dos conjuntos componentes constituem o conjunto resultante, mesmo que possuam a mesma identiicação. Neste caso, considera-se que os elementos são distintos, mesmo que possuam a mesma identiicação. Por exemplo, para os conjuntos A={a, x} e B={b,x}, o conjunto resultante da união disjunta é: {a A,x A,b B, x B } Quando a identiicação or única, o índice pode ser omitido {a,x A,b,x B }

51 Equialência Forte de Programas Monolíticos Equialência Forte: União Disjunta. Sejam: Q = (I Q, q) e R = (I R, r) dois programas monolíticos especiicados usando instruções rotuladas compostas P q = (I, q) e P r = (I, r) programas monolíticos onde I é o conjunto resultante da união disjunta de I Q e I R. Então: P q P r se, e somente se, Q R

52 Equialência Forte de Programas Monolíticos O algoritmo para eriicação da equialência orte de Q e R resume-se à eriicaçãose P q e P r sãoequialentes ortemente. cadeia de conjuntos: sequência de conjuntos ordenada pela relação de inclusão; programa monolítico simpliicado: instruções rotuladas compostas que determinam ciclos ininitos a serem excluídos (excetuando-se a instrução rotulada por ω, se existir). A simpliicação baseia-se em cadeia de conjuntos; rótulos equialentes ortemente: o algoritmo de eriicação se P q e P r são equialentes ortemente baseia-se em rótulos equialentes ortemente de programas simpliicados.

53 Cadeia de conjuntos, Cadeia inita de Conjuntos, Limite de uma Cadeia Finita de Conjuntos. Umacadeia deconjuntosa 0 A 1...édita: UmaCadeiadeConjuntosse, paraqualquerk 0, A k A k+1 Uma Cadeia Finita de Conjuntos é uma cadeia de conjuntos onde existe n, para todo k 0, tal que: A n = A n+k Neste caso, deine-se o Limite da Cadeia Finita de Conjuntos como segue: lima k = A n

54 Identiicação de Ciclos Ininitos em Programa Monolítico Identiicação de Ciclos Ininitos em Programa Monolítico. ornece um algoritmo para determinar se existem ciclos ininitos em um conjunto de instruções rotuladas compostas. A ideia básica é partir da instrução parada, rotulada por ε, determinando os seus antecessores. Por exclusão, uma instrução que não é antecessor da parada determina um ciclo ininito.

55 Identiicação de Ciclos Ininitos em Programa Monolítico Se I é um conjunto de n instruções rotuladas compostas. Seja A 0 A 1...uma sequência de conjuntos de rótulos deinida como segue A 0 ={ε} 0 A 1 = A k {r r é rótulo de instrução antecessora de alguma instrução rotulada A k } Então A 0 A 1... é uma cadeia inita de conjuntos e, para qualquer rótulo r de instrução I, tem-se que (I,r) (I, ω) se, e somentese, r lim A k Proporciona uma maneira ácil de determinar se algum rótulo caracteriza ciclos ininitos

56 Exemplo: Identiicação de Ciclos Ininitos em Programa Monolítico 1 partida 2 G F 3 Programa P Instruções rotuladas compostas 1: (G,2),(F,3) 2: (G,2),(F,3) 3: (F,4),(G, 5) 4: (F,4),(G, 5) 5: (F,6),(ciclo, ω) 6: (parada, ε), (G,7) 7: (G,7),(G, 7) ω: (ciclo, ω), (ciclo, ω) 4 F G F G ε parada

57 1 partida Programa P 2 G F 3 4 F G 5 6 F A correspondente cadeia inita de conjuntos é: A 0 = {ε} A 1 = {6, ε} A 2 = {5, 6, ε} A 3 = {3, 4, 5, 6, ε} A 4 = {1, 2, 3, 4, 5, 6, ε} A 5 = {1, 2, 3, 4, 5, 6, ε} Logo:limA k = {1, 2, 3, 4, 5, 6, ε} 7 G Simpliicação de ciclos ininitos: (I,7) (I, ω), pois7 lima k. A ideia básica é partir da instrução parada, rotulada por ε, determinando os seus antecessores. ε parada Portanto, pode-se simpliicar um conjunto de instruções rotuladas compostas eliminando-se qualquer instrução de rótulo r ω que determine um ciclo ininito.

58 Algoritmo de Equialência Forte de Programas Monolíticos Passos para eriicação: a) Especiicação do programa usando instruções rotuladas compostas; b) Conjunto de instruções rotuladas compostas; c) Identiicação dos ciclos ininitos; d) Simpliicação dos ciclos ininitos; e) União disjunta dos conjuntos I Q e I R, excetuando-se a instrução rotulada ω; )Veriicar se Q R

59 Algoritmo de Equialência Forte de Programas Monolíticos Passos para eriicação: d) Simpliicação de ciclos ininitos Seja I um conjunto inito de instruções rotuladas compostas. Algoritmo: Identiicação de ciclos ininitos Paraqualquer rótulorde instruçãoital que r lim A k A instrução rotulada por r é excluída odareerência a paresda orma (F, r) é substituída por (ciclo, ω)

60 Programa P Algoritmo de Equialência Forte de Programas Monolíticos Instruções rotuladas compostas A correspondente cadeia inita de conjuntos é: A 0 = {ε} A 1 = {6, ε} A 2 = {5, 6, ε} A 3 = {3, 4, 5, 6, ε} A 4 = {1, 2, 3, 4, 5, 6, ε} A 5 = {1, 2, 3, 4, 5, 6, ε} Logo:limA k = {1, 2, 3, 4, 5, 6, ε} Simpliicação de ciclos ininitos: (I,7) (I, ω), pois7 lima k. Portanto, pode-se simpliicar um conjunto de instruções rotuladas compostas eliminando-se qualquer instrução de rótulo r ω que determine um ciclo ininito. 1: (G,2), (F, 3) 2: (G,2), (F, 3) 3: (F, 4), (G, 5) 4: (F, 4), (G, 5) 5: (F, 6), (ciclo, ω) 6: (parada, ε), (G, 7) 7: (G,7), (G, 7) ω: (ciclo, ω), (ciclo, ω) Instruções rotuladas compostas e simpliicadas 1: (G, 2), (F, 3) 2: (G, 2), (F, 3) 3: (F, 4), (G, 5) 4: (F, 4), (G, 5) 5: (F, 6), (ciclo, ω) 6: (parada, ε), (ciclo, ω) ω: (ciclo, ω), (ciclo, ω)

61 8 Programa Q Algoritmo de Equialência Forte de Programas Monolíticos partida a) Especiicação do programa usando instruções rotuladas compostas; 9 G F 10 G 11 8: (G, 9), (F, 10) 9: (G, 9), (F, 10) 10:(F, 10), (G, 11) 11:(F, 12), (F, 13) 12:(parada, ε), (F, 13) 13:(F, 13), (F, 13) 12 F F 13 parada ε

62 Programa Q Algoritmo de Equialência Forte de Programas 8 partida Monolíticos b.2) Identiicação de ciclos ininitos A 0 = {ε} A 1 = {12, ε} A 2 = {11, 12, ε} A 3 = {10, 11, 12, ε} A 4 = {8, 9, 10, 11, 12, ε} A 5 = {8, 9, 10, 11, 12, ε} Portanto: lim A k = {8, 9, 10, 11, 12, ε} 9 G F 10 G F F 13 parada ε (I r, 13) (I, ω), pois lim A k

63 Algoritmo de Equialência Forte de Programas Monolíticos Instruções rotuladas compostas 8: (G, 9), (F, 10) 9: (G, 9), (F, 10) 10:(F, 10), (G, 11) 11:(F, 12), (F, 13) 12:(parada, ε), (F, 13) 13:(F, 13), (F, 13) Instruções rotuladas compostas simpliicadas 8:(G, 9), (F, 10) 9:(G, 9), (F, 10) 10:(F, 10), (G, 11) 11:(F, 12), (ciclo, ω) 12:(parada, ε), (ciclo, ω) ω: (ciclo, ω), (ciclo, ω) lim A k = {8, 9, 10, 11, 12, ε} (I r, 13) (I, ω), pois lim A k

64 Algoritmo de Equialência Forte de Programas Monolíticos Relatiamente à aplicação do algoritmo, tem-se que: Passo 1: Seja I a união disjunta dos conjuntos I Q e I R, executando-se a instrução rotulada ω, como segue: Seja I um conjunto de n instruções 1:(G, 2), (F, 3) compostas e simpliicadas. 2:(G, 2), (F, 3) Sejam r e s dois rótulos de instruções de 3:(F, 4), (G, 5) I. 4:(F, 4), (G, 5) Deine-se, indutiamente, a sequência de 5:(F, 6), (ciclo, ω) conjuntos B 0 B 1...por: 6: (parada, ε), (ciclo, ω) B 0 = {(r, s)} 8: (G, 9), (F, 10) B k+1 = {(r", s") r" e s" são rótulos 9: (G, 9), (F, 10) sucessores de r e s, respectiamente, 10: (F, 10), (G, 11) (r, s ) B k e (r", s") B i, (0 i k)} 11: (F, 12), (ciclo, ω) Então B 0 B 1... é uma sequência que 12: (parada, ε), (ciclo, ω) conerge para o conjunto azio, e r, s ω: (ciclo, ω), (ciclo, ω) são rótulos equialentes ortemente se, e somente se, qualquer par de B k é constituído por rótulos consistentes.

65 Sejam r e s dois rótulos deinstruções de I. B 0 = {(r, s)} B k+1 = {(r", s") r" e s"são rótulos sucessores de r e s, respectiamente, (r, s ) B k e (r", s") B i, (0 i k)} Então B 0 B 1 Algoritmo... é uma sequência de que Equialência conerge para oforte conjunto azio, de Programas e r, s são rótulos equialentesmonolíticos ortemente se, e somente se, qualquer par de B k é constituído por rótulos consistentes. Paraeriicar se Q Résuiciente eriicar se (I, 1) (I, 8) Passo 2: como 1 e 8 são rótulos equialentes ortemente, então: B 0 = {(1, 8)}. Caso contrário, não são equialentes e o algoritmo para. Passos 3 e 4. Para k >=0, a construção de B k+1 é como segue: B 1 = {(2, 9), (3,10)} pares de rótulos equialentes ortemente B 2 = {(4, 10), (5, 11)} pares de rótulos equialentes ortemente B 3 = {(6, 12), (ω, ω)} pares de rótulos equialentes ortemente B 4 = {(ε, ε)} pares de rótulos equialentes ortemente B 5 = ø conerge para o conjunto azio - Q e R são equialentes Logo (I, 1) (I, 8) e, portanto, Q R a relação equialência orte ornece subsídios para analisar a complexidade estrutural de programas. No caso, Qé estruturalmente mais otimizado que P contem um teste a menos 1:(G, 2), (F, 3) 2:(G, 2), (F, 3) 3:(F, 4), (G, 5) 4:(F, 4), (G, 5) 5:(F, 6), (ciclo, ω) 6: (parada, ε), (ciclo, ω) 8: (G, 9), (F, 10) 9: (G, 9), (F, 10) 10: (F, 10), (G, 11) 11: (F, 12), (ciclo, ω) 12: (parada, ε), (ciclo, ω) ω: (ciclo, ω), (ciclo, ω)

66 1 Algoritmo de Equialência Forte de Programas Monolíticos partida Programa P 8 partida Programa Q 2 G F 3 9 G F 10 4 F G 5 G 11 6 F 12 F F 13 7 G parada ε ε parada a relação equialência orte ornece subsídios para analisar a complexidade estrutural de programas. No caso, Qé estruturalmente mais otimizado que P contem um teste a menos

67 Passos do Algoritmo de Equialência Forte de Programas Monolíticos Passo 1. Sejam P q = (I, q) e P r = (I, r) programas monolíticos onde I é o conjunto resultante da união disjunta de I Q e I R, excetuando-se a instrução rotulada ω, se existir, a qual ocorre, no máximo, uma ez em I. Passo 2. Se q e rsão rótulos equialentes ortemente, então B 0 ={(q, r)}. Caso contrário, Q e R não são equialentes ortemente, e o algoritmo termina. Passo 3. Para k 0, deine-se o conjunto B k+1, contendo somente os pares (q", r") de rótulos sucessores de cada(q', r') B k, tais que: q' r'; q'er' são ambos dierentes de ε; os pares sucessores (q", r")não são elementos de B 0, B 1,..., B k. Passo 4. Dependendo deb k+1, tem-se que: a) B k+1 = : Q ersão equialentes ortemente, eoalgoritmo termina; b) B k+1 : se todos os pares de rótulos de B k+1 são equialentes ortemente, então á para o Passo 3; caso contrário, Q e R não são equialentes ortemente, e o algoritmo termina.

68 Conclusão A partir do conceito de unção computada são apresentadas noções de equialências de programas e máquinas: programas equialentes ortemente e programas equialentes em uma máquina; É apresentado um algoritmo para eriicar se programas monolíticos (ou iteratios) são equialentes ortemente. Até o momento não existe um algoritmo para programas recursios; Posteriormente, será apresentado o conceito de máquina uniersal.

69 Programas, Máquinas e Computações Aplique o Algoritmo de Veriicação da Equialência Forte de Programas Monolíticos para os programas abaixo partida 1 partida 3 2 F F 4 parada ε Programa Monolítico P 1 parada ε Programa Monolítico P 2 parada ε

70 Programas, Máquinas e Computações Exercícios: 2.12 ao ao 2.25 Eniar por (oliete@ct.unesp.br) até o dia 22/03

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUAÇÃO EORIA DA COMPUAÇÃO Aula 09 Equialência Forte de Programas Monolíticos Pro.ª Danielle Casillo Equialência orte de programas monolíticos

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 08 Equivalência de programas Parte 2 Prof.ª Danielle Casillo Poder computacional dos diversos tipos de programas

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Os teoremas citados na aula anterior, podem dar a falsa impressão de que o poder computacional da classe dos

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 03 Programas (Monolítico e Iterativo) Prof.ª Danielle Casillo Programas, Máquinas e Computações Diferentes

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferentes computadores podem ter diferentes arquiteturas e os diversos tipos de linguagem de programação.

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 05 Computações Prof.ª Danielle Casillo Computação Será visto como as definições de programas e máquinas caminham

Leia mais

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000)

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000) Unidade 1 Conceitos Básicos Referência (Divério, 2000) Conceitos Básicos Linguagem Conceito fundamental Forma precisa de expressar problemas Permite um desenvolvimento formal adequado ao estudo da computabilidade

Leia mais

Algoritmia. "Conta-me e eu esqueço-me Mostra-me e eu lembro-me Deixa-me fazer e eu aprendo" Confúcio

Algoritmia. Conta-me e eu esqueço-me Mostra-me e eu lembro-me Deixa-me fazer e eu aprendo Confúcio Algoritmia "Conta-me e eu esqueço-me Mostra-me e eu lembro-me Deixa-me azer e eu aprendo" Conúcio ISPGaya 2005/2006 Inormática de Gestão 2.º ano Programação 1 Algoritmo Um algoritmo é uma sequência inita

Leia mais

EQUIVALÊNCIA DE PROGRAMAS E MÁQUINAS

EQUIVALÊNCIA DE PROGRAMAS E MÁQUINAS EQUIVALÊNCIA DE PROGRAMAS E MÁQUINAS Édson Wenning¹, Elias Lampert², Gustavo Claudy³, Pedro E. Camera 4. ¹Discente do Curso Ciência da Computação - Universidade de Cruz Alta ²Discente do Curso Ciência

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Interpreta os programas de acordo com os dados fornecidos. É capaz de interpretar um programa desde que possua

Leia mais

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 6. Programas, Máquinas e Computações

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 6. Programas, Máquinas e Computações Curso: Ciência da Computação Turma: 6ª Série Aula 6 Programas, Máquinas e Computações Avisos Hoje tem dúvidas sobre a segunda etapa da ATPS. Somente 28 alunos/alunas entregaram a ATPS etapa 1. Ainda dá

Leia mais

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000) Teoria da Computação Referência Teoria da Computação (Divério, 2000) 1 L={(0,1)*00} de forma que você pode usar uma Máquina de Turing que não altera os símbolos da fita e sempre move a direita. MT_(0,1)*00=({0,1},{q

Leia mais

Resolução Exe 2.12 Monolítico Recursivo

Resolução Exe 2.12 Monolítico Recursivo Resolução Exe 2.12 Monolítico Recursivo Recursivo P R é R 1 onde R 1 def (se T1 então R 2 senão R 3 ) R 2 def F; R 3 R 3 def (se T2 então R 4 senão R 7 ) R 4 def G; R 5 R 5 def (se T1 então R 7 senão R

Leia mais

Linguagens Regulares. Prof. Daniel Oliveira

Linguagens Regulares. Prof. Daniel Oliveira Linguagens Regulares Prof. Daniel Oliveira Linguagens Regulares Linguagens Regulares ou Tipo 3 Hierarquia de Chomsky Linguagens Regulares Aborda-se os seguintes formalismos: Autômatos Finitos Expressões

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 04 Programa Recursivo e Máquinas Prof.ª Danielle Casillo Funções recursivas Alguma função é recursiva quando

Leia mais

Teoria da Computação. Máquinas Universais Máquina com Pilhas

Teoria da Computação. Máquinas Universais Máquina com Pilhas Máquinas Universais Máquina com Pilhas Cristiano Lehrer Introdução A Máquina com Pilhas diferencia-se das Máquinas de Turing e de Post principalmente pelo fato de possuir uma memória de entrada separada

Leia mais

Teoria da Computação. Máquinas, Computações e Funções Computadas

Teoria da Computação. Máquinas, Computações e Funções Computadas Cristiano Lehrer Introdução (1/2) O objetivo de uma máquina é suprir todas as informações necessárias para que a computação de um programa possa ser descrita. Portanto, cabe à máquina suprir o significado

Leia mais

Raiz, filho, pai, irmão, ancestral, descendente, folha.

Raiz, filho, pai, irmão, ancestral, descendente, folha. 17.1 Aula 17: Conceitos de Árvores e Árvores Binárias Raiz, ilho, pai, irmão, ancestral, descendente, olha. Nível, altura, subárvore, subárvore parcial. Árvores binárias completas, binárias cheias, estritamente

Leia mais

Capítulo III. Limite de Funções. 3.1 Noção de Limite. Dada uma função f, o que é que significa lim f ( x) = 5

Capítulo III. Limite de Funções. 3.1 Noção de Limite. Dada uma função f, o que é que significa lim f ( x) = 5 Capítulo III Limite de Funções. Noção de Limite Dada uma unção, o que é que signiica ( 5? A ideia intuitiva do que queremos dizer com isto é: quando toma valores cada vez mais próimos de, a respectiva

Leia mais

Capítulo III. Limite de Funções. 3.1 Noção de Limite. Dada uma função f, o que é que significa lim f ( x) = 5

Capítulo III. Limite de Funções. 3.1 Noção de Limite. Dada uma função f, o que é que significa lim f ( x) = 5 Capítulo III Limite de Funções. Noção de Limite Dada uma unção, o que é que signiica ( 5? A ideia intuitiva do que queremos dizer com isto é: quando toma valores cada vez mais próimos de, a respectiva

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferencia-se das máquinas de Turing e Post principalmente pelo fato de possuir a memória de entrada separada

Leia mais

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas

Leia mais

Linguagens Formais e Autômatos. Simplificação de Gramáticas Livre do Contexto (GLC)

Linguagens Formais e Autômatos. Simplificação de Gramáticas Livre do Contexto (GLC) Linguagens Formais e Autômatos Simplificação de Gramáticas Livre do Contexto (GLC) Cristiano Lehrer, M.Sc. Gramática Simplificada Gramática simplificada é uma gramática livre do contexto que não apresenta

Leia mais

Método da Secante Para Resolução de equações do tipo f(x)=0

Método da Secante Para Resolução de equações do tipo f(x)=0 Método da Secante Para Resolução de equações do tipo 0 Narã Vieira Vetter Guilherme Paiva Silva Santos Raael Pereira Marques naranvetter@walla.com guilherme.pss@terra.com.br rp_marques5@yahoo.com.br Associação

Leia mais

Teoria da Computação. Computabilidade

Teoria da Computação. Computabilidade Cristiano Lehrer Introdução O objetivo do estudo da solucionabilidade de problemas é investigar a existência ou não de algoritmos que solucionem determinada classe de problemas. Ou seja, investigar os

Leia mais

Capítulo 2: Procedimentos e algoritmos

Capítulo 2: Procedimentos e algoritmos Capítulo 2: Procedimentos e algoritmos Para estudar o processo de computação de um ponto de vista teórico, com a finalidade de caracterizar o que é ou não é computável, é necessário introduzir um modelo

Leia mais

5.1 Noção de derivada. Interpretação geométrica de derivada.

5.1 Noção de derivada. Interpretação geométrica de derivada. Capítulo V Derivação 5 Noção de derivada Interpretação geométrica de derivada Seja uma unção real de variável real Deinição: Chama-se taa de variação média de uma unção entre os pontos a e b ao quociente:

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo NORMA (NumberTheOreticRegisterMAchine) Possui como memória um conjunto infinito de registradores naturais e

Leia mais

Tokens, Padroes e Lexemas

Tokens, Padroes e Lexemas O Papel do Analisador Lexico A analise lexica e a primeira fase de um compilador e tem por objetivo fazer a leitura do programa fonte, caracter a caracter, e traduzi-lo para uma sequencia de símbolos lexicos

Leia mais

Cálculo Numérico. que é denominado erro relativo. Temos então para os dados acima:

Cálculo Numérico. que é denominado erro relativo. Temos então para os dados acima: Cálculo Numérico 1 Erros Nenhum resultado obtido através de cálculos eletrônicos ou métodos numéricos tem valor se não tivermos conhecimento e controle sobre os possíveis erros envolvidos no processo.

Leia mais

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado AULA 11 PROJETO E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado Roteiro Motivação Conceitos básicos Representação Motivação Um grafo é uma abstração que permite

Leia mais

TÉCNICO DE INFORMÁTICA - SISTEMAS

TÉCNICO DE INFORMÁTICA - SISTEMAS 782 - Programação em C/C++ - estrutura básica e conceitos fundamentais Linguagens de programação Linguagem de programação são conjuntos de palavras formais, utilizadas na escrita de programas, para enunciar

Leia mais

SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA

SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA Neste trabalho você deverá construir e testar, com a ferramenta JFLAP, uma MT multifita que simula o funcionamento de um computador

Leia mais

Cálculo Numérico. que é denominado erro relativo. Temos então para os dados acima:

Cálculo Numérico. que é denominado erro relativo. Temos então para os dados acima: Cálculo Numérico 1 Erros Nenhum resultado obtido através de cálculos eletrônicos ou métodos numéricos tem valor se não tivermos conhecimento e controle sobre os possíveis erros envolvidos no processo.

Leia mais

3.2 Função de Distribuição Conjunta Acumulada e Função de Densidade de Probabilidade Marginal

3.2 Função de Distribuição Conjunta Acumulada e Função de Densidade de Probabilidade Marginal . Função de Distribuição Conjunta Acumulada e Função de Densidade de Probabilidade Marginal ( ) 9 F ( ) P( y ) / 4 Por vezes o interesse do pesquisador recai sobre as chances de ocorrência de um subconjunto

Leia mais

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD) Linguagens Formais e Autômatos Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Linguagens Regulares A teoria da computação começa com uma pergunta: O que é um computador? É, talvez, uma

Leia mais

1. Noções de Programação

1. Noções de Programação 1. Noções de Programação O objetivo deste capítulo é fornecer ao aluno noções básicas de programação aplicadas à Engenharia Química; assim sendo, apenas estruturas fundamentais e exemplos simples serão

Leia mais

Teoria da Computação. Aula 01

Teoria da Computação. Aula 01 Teoria da Computação Aula 01 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/tc 1 Professor Celso Olivete Júnior Bacharelado em Ciência da Computação (Unoeste-2002) Mestrado

Leia mais

I.2 Introdução a Teoria da Computação

I.2 Introdução a Teoria da Computação I.2 Introdução a Teoria da Computação O que é? Fundamento da Ciência da Computação Tratamento Matemático da Ciência da Computação Estudo Matemático da Transformação da Informação Qual sua importância?

Leia mais

Aula 16 Estruturas de Controle. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Aula 16 Estruturas de Controle. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes Aula 16 Estruturas de Controle Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www3.ifrn.edu.br/~brunogomes Agenda da Aula Estruturas de Controle Estruturas de Condição Revisando

Leia mais

Probabilidades. Wagner H. Bonat Elias T. Krainski Fernando P. Mayer

Probabilidades. Wagner H. Bonat Elias T. Krainski Fernando P. Mayer Probabilidades Wagner H. Bonat Elias T. Krainski Fernando P. Mayer Universidade Federal do Paraná Departamento de Estatística Laboratório de Estatística e Geoinformação 06/03/2018 WB, EK, FM ( LEG/DEST/UFPR

Leia mais

INE Fundamentos de Matemática Discreta para a Computação

INE Fundamentos de Matemática Discreta para a Computação INE543 - Fundamentos de Matemática Discreta para a Computação 5) Relações 5.) Relações e Dígrafos 5.2) Propriedades de Relações 5.3) Relações de Equivalência 5.4) Manipulação de Relações 5.5) Fecho de

Leia mais

Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos

Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos Pode-se dizer que a é em grande parte trabalho de um único matemático: Georg Cantor (1845-1918). noção de conjunto não é suscetível de definição precisa a partir d noções mais simples, ou seja, é uma noção

Leia mais

3 Função - conceitos gerais 45

3 Função - conceitos gerais 45 UFF/GMA - Matemática Básica - Parte III - Função Notas de aula - Marlene - 010-44 Sumário III Função: conceitos erais 45 3 Função - conceitos erais 45 3.1 Conceito e representação simbólica de unção...............................

Leia mais

Engenharia de resolução de problemas

Engenharia de resolução de problemas Engenharia de resolução de problemas O processo de resolução de um problema pode ser visto como uma seqüência de passos que devem ser definidos e aprimorados, até que o modelo escolhido para sua representação

Leia mais

CÁLCULO DIFERENCIAL E INTEGRAL. Prof. Rodrigo Carvalho

CÁLCULO DIFERENCIAL E INTEGRAL. Prof. Rodrigo Carvalho CÁLCULO DIFERENCIAL E INTEGRAL LIMITES Uma noção intuitiva de Limite Considere a unção () = 2 + 3. Quando assume uma ininidade de valores, aproimando cada vez mais de zero, 2 + 3 assume uma ininidade de

Leia mais

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013 Teoria dos Grafos Aula 5 - Estruturas de Dados para Grafos Profª. Alessandra Martins Coelho março/2013 Estrutura é o que caracteriza o próprio grafo e independe da forma como ele é representado. A representação

Leia mais

Universidade Federal do Rio Grande do Norte. Métodos Computacionais Marcelo Nogueira

Universidade Federal do Rio Grande do Norte. Métodos Computacionais Marcelo Nogueira Universidade Federal do Rio Grande do Norte Métodos Computacionais Marcelo Nogueira Raízes de Equações Algébricas Achar a raiz de uma unção signiica achar um número tal que 0 Algumas unções podem ter suas

Leia mais

TÓPICOS DE CORRECÇÃO

TÓPICOS DE CORRECÇÃO Faculdade de Economia Universidade Nova de Lisboa EXAME E CÁLCULO I Ano Lectivo 007-08 - º Semestre Eame Final de ª Época em de Junho de 008 Duração: horas e 30 minutos É proibido usar máquinas de calcular

Leia mais

Algoritmos de Ordenação

Algoritmos de Ordenação Algoritmos de Ordenação! Problema: encontrar um número de telefone em uma lista telefônica! simplificado pelo fato dos nomes estarem em ordem alfabética! e se estivesse sem uma ordem?! Problema: busca

Leia mais

Turing to Norma, uma ferramenta para auxiliar o estudo da equivalência entre Máquina de Turing e Máquina Norma

Turing to Norma, uma ferramenta para auxiliar o estudo da equivalência entre Máquina de Turing e Máquina Norma 4ª Jornada Científica e Tecnológica e 1º Simpósio de Pós-Graduação do IFSULDEMINAS 16, 17 e 18 de outubro de 2012, Muzambinho MG Turing to Norma, uma ferramenta para auxiliar o estudo da equivalência entre

Leia mais

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução. Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel 8.1 - Introdução. Como observado no capítulo anterior, podemos substituir a definição informal de procedimento pela

Leia mais

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente SCC-505 - Capítulo 3 Linguagens Sensíveis ao Contexto e João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação - Universidade de São Paulo http://www.icmc.usp.br/~joaoluis

Leia mais

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 02 Introdução à Teoria da Computação Prof.ª Danielle Casillo Linguagem: é uma forma precisa de expressar

Leia mais

Universidade Federal de Mato Grosso do Sul Estruturas de Dados e Programação. Processamento de Cadeias

Universidade Federal de Mato Grosso do Sul Estruturas de Dados e Programação. Processamento de Cadeias Universidade Federal de Mato Grosso do Sul Estruturas de Dados e Programação Processamento de Cadeias 1 Introdução Processar documentos é atualmente uma das principais funções dos computadores. São inúmeras

Leia mais

Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas.

Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas. Teoria dos Conjuntos Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas. Porém, não é nosso objetivo ver uma teoria axiomática dos conjuntos.

Leia mais

Métodos Numéricos Zeros Posição Falsa e Ponto Fixo. Professor Volmir Eugênio Wilhelm Professora Mariana Kleina

Métodos Numéricos Zeros Posição Falsa e Ponto Fixo. Professor Volmir Eugênio Wilhelm Professora Mariana Kleina Métodos Numéricos Zeros Posição Falsa e Ponto Fixo Professor Volmir Eugênio Wilhelm Professora Mariana Kleina Método da Posição Falsa 2 Método da Posição Falsa O processo consiste em dividir/particionar

Leia mais

Noções de algoritmos - Aula 1

Noções de algoritmos - Aula 1 Noções de algoritmos - Aula 1 Departamento de Física UFPel Definição de algoritmo Sequência ordenada e finita de operações para a realização de uma tarefa. Tarefa: Experimento de Física I. Passo 1: Reunir

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição 1 Comando while Deseja-se calcular o valor de: 1 + 2 + 3 +... + N. Observação: não sabemos, a priori, quantos termos

Leia mais

Linguagens Livres de Contexto

Linguagens Livres de Contexto Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação 364018 Linguagens Formais e Autômatos TEXTO 4 Linguagens Livres de Contexto Prof. Luiz A M Palazzo Maio de 2011

Leia mais

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios 1. Escreva a expressão regular para as seguintes linguagens sobre o alfabeto {0, 1}: strings começando

Leia mais

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior.

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior. LFA Aula 04 Autômatos Finitos 16/11/2016 Celso Olivete Júnior olivete@fct.unesp.br 1 Classificação das Linguagens segundo Hierarquia de Chomsky Máquina de Turing Máquina de Turing com fita limitada Autômato

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos O que é um algoritmo? Sequência bem definida e finita de cálculos que, para um dado valor de entrada, retorna uma saída desejada/esperada. Na computação: Uma descrição de como

Leia mais

Introdução à Análise Algoritmos

Introdução à Análise Algoritmos Introdução à Análise Algoritmos Notas de aula da disciplina IME 4-182 Estruturas de Dados I Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) abril/218 Ordenação por SELEÇÃO: Idéia: Dado um vetor

Leia mais

Experiência III (aula 05) Distância focal de uma lente

Experiência III (aula 05) Distância focal de uma lente Experiência III (aula 05) Distância de uma lente. Objetivos 2. Introdução 3. Medida da distância de uma lente delgada 4. Arranjo e procedimento experimental 5. Análise de dados 6. Reerências. Objetivos

Leia mais

1, tal que x k+ 1 x para k +. x k + 1 : raiz aproximada da f; Uma forma de determinarmos um intervalo I = [ a,

1, tal que x k+ 1 x para k +. x k + 1 : raiz aproximada da f; Uma forma de determinarmos um intervalo I = [ a, - SOLUÇÃO DE EQUAÇÕES NÃO LINEARES INTRODUÇÃO Um dos problemas que ocorrem mais reqüentemente em trabalhos cientíicos é calcular as raízes de equações da orma: () 0. A unção () pode ser um polinômio em

Leia mais

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Linguagem de Programação I Prof. Tiago Eugenio de Melo. Linguagem de Programação I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info 1 Sumário Introdução Conceitos preliminares Introdução Variáveis Comandos Condicionais 2 Por que aprender a

Leia mais

Integração Numérica. Cálculo Numérico

Integração Numérica. Cálculo Numérico Cálculo Numérico Integração Numérica Pro. Jorge Cavalcanti jorge.cavalcanti@univas.edu.br MATERIAL ADAPTADO DOS SLIDES DA DISCIPLINA CÁLCULO NUMÉRICO DA UFCG - www.dsc.ucg.edu.br/~cnum/ Integração Numérica

Leia mais

1 Postulado de Church-Turing 1

1 Postulado de Church-Turing 1 1 Postulado de Church-Turing 1 Alguns modelos alternativos no estudo da computabilidade Turing: Máquina de Turing Gödel-Kleene: Funções recursivas Church: Cáluculo λ (funções definidas por termos λ) Post:

Leia mais

Se tanto o numerador como o denominador tendem para valores finitos quando x a, digamos α e β, e β 0, então pela álgebra dos limites sabemos que.

Se tanto o numerador como o denominador tendem para valores finitos quando x a, digamos α e β, e β 0, então pela álgebra dos limites sabemos que. FORMAS INDETERMINADAS E A REGRA DE L HÔPITAL RICARDO MAMEDE Consideremos o ite. Se tanto o numerador como o denominador tendem para valores initos quando a, digamos α e β, e β, então pela álgebra dos ites

Leia mais

Engenharia Civil. Introdução à Programação

Engenharia Civil. Introdução à Programação Engenharia Civil Introdução à Programação Como se faz um algoritmo computacional? Exemplo Exemplo Será que o algoritmo vai funcionar? Questões: Área de uma circunferência programa area AREA, RAIO: real

Leia mais

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. Grafos Sugestão bibliográfica: ESTRUTURAS DE DADOS USANDO C Aaron

Leia mais

C alculo Num erico Ra ızes de Equa c oes Ana Paula Ana Paula C alculo Num erico

C alculo Num erico Ra ızes de Equa c oes Ana Paula Ana Paula C alculo Num erico Raízes de Equações Sumário 1 Introdução 2 3 Revisão Introdução Introdução Introdução Introdução Serão estudados aqui métodos numéricos para a resolução do problema de determinar as raízes de uma equação

Leia mais

Departamento de Engenharia Mecânica

Departamento de Engenharia Mecânica UC-Rio MEC 40: RANSMISSÃO E CALOR ro Washington Braga epartamento de Engenharia Mecânica ANÁLISE IMENSIONAL Objetios Estudamos ransmissão de Calor com um objetio em mente: o entendimento das características

Leia mais

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE.

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE. DEINFO - UFRPE Julho, 2014 Motivação Introdução O que pode ser computado? E mais intrigantemente, o que não pode ser computado? Motivação Introdução O que pode ser computado? E mais intrigantemente, o

Leia mais

Aulas 10 e 11 / 18 e 20 de abril

Aulas 10 e 11 / 18 e 20 de abril 1 Conjuntos Aulas 10 e 11 / 18 e 20 de abril Um conjunto é uma coleção de objetos. Estes objetos são chamados de elementos do conjunto. A única restrição é que em geral um mesmo elemento não pode contar

Leia mais

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br

Leia mais

FUNÇÕES DE VÁRIAS VARIÁVEIS

FUNÇÕES DE VÁRIAS VARIÁVEIS FUNÇÕES DE VÁRIAS VARIÁVEIS Introdução Considere os seguintes enunciados: O volume V de um cilindro é dado por V r h onde r é o raio e h é a altura. Um circuito tem cinco resistores. A corrente deste circuito

Leia mais

1ª LISTA DE EXERCÍCIOS DE MÉTODOS NUMÉRICOS Prof.: Magnus Melo

1ª LISTA DE EXERCÍCIOS DE MÉTODOS NUMÉRICOS Prof.: Magnus Melo ª LISTA DE EXERCÍCIOS DE MÉTODOS NUMÉRICOS Pro.: Magnus Melo Eercício. Sejam os polinômios dados abaio. Use a regra de sinais de descartes e o teorema da cota de Augustin Cauchy para pesquisar a eistência

Leia mais

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO UFRPE Matemática Discreta Bacharelado em Sistemas de Informação Respostas - 1ª Lista de Exercícios

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO UFRPE Matemática Discreta Bacharelado em Sistemas de Informação Respostas - 1ª Lista de Exercícios UNIERSIDADE EDERAL RURAL DE PERNAMBUCO URPE Matemática Discreta Bacharelado em Sistemas de Inormação Resolução Lista 1 Monitoria: Bruna 1) Lógica Proposicional a) Marque as rases que orem proposições:

Leia mais

& somadosnumeros = valor

& somadosnumeros = valor Correção exercícios Exercício 1 Exercício 2 a) scanf( %d", &valor); b) printf("o produto de %d e %d e %d\n", x, y, z) ; c) somadosnumeros = primeironumero + segundonumero d) /* Programa para determinar

Leia mais

CONCEITOS DE ALGORITMOS

CONCEITOS DE ALGORITMOS CONCEITOS DE ALGORITMOS Fundamentos da Programação de Computadores - 3ª Ed. 2012 Editora Prentice Hall ISBN 9788564574168 Ana Fernanda Gomes Ascênsio Edilene Aparecida Veneruchi de Campos Algoritmos são

Leia mais

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br

Leia mais

Desenvolvimento de programas

Desenvolvimento de programas 1 Desenvolvimento de programas Análise do problema Desenvolvimento do algoritmo Codificação do programa Compilação e execução Teste e depuração 2 Análise do problema Conhecer exatamente o que o problema

Leia mais

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br

Leia mais

Métodos Matemáticos na Ciência de Dados: Introdução Relâmpago. II

Métodos Matemáticos na Ciência de Dados: Introdução Relâmpago. II Métodos Matemáticos na Ciência de Dados: Introdução Relâmpago. II Vladimir Pestov 1 University of Ottawa / Université d Ottawa Ottawa, Ontario, Canadá 2 Universidade Federal de Santa Catarina Florianópolis,

Leia mais

Processamento digital de imagens

Processamento digital de imagens Processamento digital de imagens Agostinho Brito Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte 27 de maio de 2016 Reconhecimento de objetos Padrão: arranjo

Leia mais

Marcos Castilho. DInf/UFPR. 16 de maio de 2019

Marcos Castilho. DInf/UFPR. 16 de maio de 2019 16 de maio de 2019 Motivação Quais são os limites da computação? O que é um Problema de decisão? Um problema de decisão é um conjunto de perguntas, cada uma das quais tem um SIM ou um NÃO como resposta.

Leia mais

Algoritmos e Técnicas de programação. Professora: Luciana Faria

Algoritmos e Técnicas de programação. Professora: Luciana Faria Algoritmos e Técnicas de programação Professora: Luciana Faria Estruturas básicas da construção de algoritmos Controle de fluxo condicionais (se, se-senao e escolha) Continuando Comandos Compostos é um

Leia mais

Métodos Numéricos - Notas de Aula

Métodos Numéricos - Notas de Aula Métodos Numéricos - Notas de Aula Prof a Olga Regina Bellon Junho 2007 Zeros de equações transcendentes e Tipos de Métodos polinomiais São dois os tipos de métodos para se achar a(s) raízes de uma equação:

Leia mais

FICHA de AVALIAÇÃO de MATEMÁTICA A 11.º Ano Versão 3

FICHA de AVALIAÇÃO de MATEMÁTICA A 11.º Ano Versão 3 FICHA de AVALIAÇÃO de MATEMÁTICA A.º Ano Versão Nome: N.º Turma: Apresente o seu raciocínio de orma clara, indicando todos os cálculos que tiver de eetuar e todas as justiicações necessárias. Quando, para

Leia mais

Funções polinomiais, racionais e trigonométricas

Funções polinomiais, racionais e trigonométricas Aula 04 FUNÇÕES (continuação) UFPA, 5 de março de 05 Funções polinomiais, racionais e trigonométricas No inal desta aula, você seja capaz de: Dizer o domínio das unções polinomiais, racionais e trigonométricas;

Leia mais

PSEUDO-CÓDIGO. Nickerson Fonseca Ferreira

PSEUDO-CÓDIGO. Nickerson Fonseca Ferreira 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA PSEUDO-CÓDIGO Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br Introdução 2 Um algoritmo pode ser

Leia mais

Notas de Aula Disciplina Matemática Tópico 03 Licenciatura em Matemática Osasco -2010

Notas de Aula Disciplina Matemática Tópico 03 Licenciatura em Matemática Osasco -2010 1. Funções : Definição Considere dois sub-conjuntos A e B do conjunto dos números reais. Uma função f: A B é uma regra que define uma relação entre os elementos de A e B, de tal forma que a cada elemento

Leia mais

Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação

Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação Árvores N-árias, Binárias, Busca Vanessa Maia Berny Mestrado em Ciência da Computação Disciplina de Estrutura de Dados Prof. Dr. Luzzardi, Paulo Roberto Gomes Abril de 2008 Árvores N-árias São estruturas

Leia mais

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas

Leia mais

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior. Máquinas Universais Máquina de Celso Olivete Júnior olivete@fct.unesp.br http://www2.fct.unesp.br/docentes/dmec/olivete/ Roteiro Hipótese de Church - Máquinas Universais: Máquina de Máquina de : Noção

Leia mais

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior. LFA Aula 05 AFND: com e sem movimentos vazios 05/12/2016 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Na aula passada... Reconhecedores genéricos Autômatos finitos

Leia mais