Teoria da Computação

17
1 Faculdade Anhanguera de Taubaté – Ciência da Computação Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Prof. Fabiano Sabha Sabha Teoria da Teoria da Computação Computação Teoria Teoria da da Computação Computação Aula 1

description

Teoria da Computação. Aula 1. Conteúdo. Introdução e Conceitos Básicos Alfabeto; Cadeia de símbolos, palavra; Linguagem formal; Palavras e Subpalavras ; Concatenações;e Exercícios de Fixação. O que é Teoria da Computação?. - PowerPoint PPT Presentation

Transcript of Teoria da Computação

Page 1: Teoria da Computação

1

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

TeoriaTeoria

dada

ComputaçãoComputação

Aula 1

Page 2: Teoria da Computação

2

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Introdução e Conceitos Básicos Alfabeto; Cadeia de símbolos, palavra; Linguagem formal; Palavras e Subpalavras; Concatenações;e Exercícios de Fixação.

ConteúdoConteúdo

Page 3: Teoria da Computação

3

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Pode ser vista como um guia (um roteiro) que nos orienta no sentido de informar o que pode e o que não pode ser efetivamente computável, explicando porque, de que forma e com que complexidade.

Neste sentido, a Teoria da Computação classifica os problemas computacionais em três classes:

O que é Teoria da Computação?O que é Teoria da Computação?

Page 4: Teoria da Computação

4

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Problemas Indecidíveis (ou impossíveis de serem solucionados);

Problemas Intratáveis (possíveis com recursos ilimitados, porém impossíveis com recursos limitados);

Problemas Tratáveis (possíveis de serem solucionadas com recursos limitados).

Esta classificação engloba problemas de toda a natureza, envolvendo desde problemas clássicos que fundamentam a teoria da computação até problemas (ou instâncias de problemas) práticos da ciência da computação, tais como:

Classes dos problemas computacionaisClasses dos problemas computacionais

Page 5: Teoria da Computação

5

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Existe programa para solucionar um determinado problema?

Qual o poder de expressão de um determinado modelo de especificação?

Dado um programa qualquer, ele sempre tem parada garantida?

Dois programas P1 e P2 são equivalentes entre si? Uma determinada solução é a melhor solução para um

dado problema? Qual o significado de um determinado programa? Dado um programa qualquer, este programa está

correto?

Problemas computacionaisProblemas computacionais

Page 6: Teoria da Computação

6

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Formalização dos conceitos de programa e de máquina

Existem diferentes computadores, com diferentes arquiteturas, e existem diversos tipos de linguagens de programação,

Modelos matemáticos simples.

Programas e máquinas são tratados como entidades distintas, mas complementares e necessárias para a definição de computação.

O Propósito da Teoria da ComputaçãoO Propósito da Teoria da Computação

Page 7: Teoria da Computação

7

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Conjunto é um grupo de objetos representado como uma unidade. Os conjuntos podem conter qualquer tipo de objeto. Esses objetos são chamados de elementos ou membros.

{7,21,57} – é a notação de um conjunto que contem os elementos ou membros 7, 21, e 57, a ordem não importa.

Alguns símbolos : Pertence e não Pertence Subconjunto e Subconjunto próprio União Interseção

Conceitos Básicos - ConjuntosConceitos Básicos - Conjuntos

Page 8: Teoria da Computação

8

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Multiconjunto:Multiconjunto: Consideramos a repetição dos elementos

Conjunto Finito: Conjunto Finito: Contém uma quantidade finita de elementos

Conjunto Infinito: Conjunto Infinito: Contém uma quantidade infinita elementos

Conjunto VazioConjunto Vazio: conjunto sem elementos

Conjuntos “elementares” Conjunto dos números naturais números naturais

{1,2,3...}

Conjunto dos números inteirosnúmeros inteiros {...,-2 ,-1,0,1,2...}

Conceitos Básicos - Conjuntos Conceitos Básicos - Conjuntos

Page 9: Teoria da Computação

9

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Para o nosso propósito definimos um ALFABETO como podendo ser qualquer conjunto finito não vazio.

Normalmente usamos a letra grega ∑ (sigma) para designar alfabetos, como nos exemplos abaixo: ∑ = {0,1} ∑ = {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,z}

Conceitos Básicos - Alfabeto Conceitos Básicos - Alfabeto

Page 10: Teoria da Computação

10

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Uma Cadeia de Símbolos sobre um conjunto é uma seqüência de zero ou mais símbolos (do conjunto) justapostos.

Uma Cadeia de Símbolos Finita é usualmente denominada de Palavra.

ε (epsilon) Representa uma cadeia ou palavra vazia.

Se ∑ representa um conjunto de símbolos (um alfabeto),∑ * denota o conjunto de todas as palavras possíveis

sobre ∑;∑+ denota ∑* - {ε}

Cadeia de Símbolos, palavraCadeia de Símbolos, palavra

Page 11: Teoria da Computação

11

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

O Comprimento ou Tamanho de uma palavra w, representado por |w|, É o número de símbolos que compõem a palavra.

Exemplos:|011| = 3| | = 0|abba| = 4

Palavra de comprimento zero = palavra nula = 0;

Comprimento ou Tamanho de uma Palavra.Comprimento ou Tamanho de uma Palavra.

Page 12: Teoria da Computação

12

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Um Prefixo (respectivamente, Sufixo) de uma palavra é qualquer seqüência inicial (respectivamente, final) de símbolos da palavra. Uma Subpalavra de uma palavra é qualquer seqüência de símbolos contígüa da palavra.

Exemplos:abcb é uma palavra sobre o alfabeto {a, b, c};

Qualquer prefixo ou sufixo de uma palavra é uma sub-palavra.

Se ∑ = {a, b}, então:∑ + = {a, b, aa, ab, ba, bb, aaa,...}

, a, ab, abc, abcb são os prefixos; , b, cb, bcb, abcb são os respectivos sufixos.

Prefixo, Sufixo e SubpalavraPrefixo, Sufixo e Subpalavra

Page 13: Teoria da Computação

13

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Subpalavra = Qualquer cadeia finita de símbolos de constante em W.

Uma palavra x é subpalavra de y e escrevemos x<<y.

Se existirem palavras u e v tal que u x v= y

Exemplo:A)415 << 415 u =0 ; v = 0;B)755 << 37554 u = 3; v =4;

SubPalavrasSubPalavras

Page 14: Teoria da Computação

14

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

A Concatenação de Palavras é uma operação binária, definida sobre uma linguagem L, a qual associa a cada par de palavras uma palavra formada pela justaposição da primeira com a segunda tal que:

é associativa; v(wt) = (vw)t = vwt possui elemento neutro à esquerda e à direita, o

qual é a palavra vazia. ε w = w = w ε

ConcatenaçãoConcatenação

Page 15: Teoria da Computação

15

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Exemplos:

Suponha o alfabeto ∑ = {a, b}.

Então, para as palavras v = baaaa e w = bb, tem-se que:a) vw = baaaabbb) v ε = v = baaaac) w4 = bbbbbbbb (concatenação sucessiva)

35 8 = 358 e cas a = casa

Note que: 0 x = x 0 = x ee x (y z) = (x y) z

ConcatenaçãoConcatenação

Page 16: Teoria da Computação

16

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Uma Linguagem Formal ou simplesmente Linguagem é um conjunto de palavras sobre um alfabeto.

Exemplo

Suponha o alfabeto ∑ = {a, b}. Então:

a) O conjunto vazio e o conjunto formado pela palavra vazia são linguagens sobre ∑. Obviamente, { } ¹ { e }.

b) O conjunto de palíndromos (palavras que têm a mesma leitura da esquerda para a direita e vice-versa) sobre å é um exemplo de linguagem infinita.e, a, b, aa, bb, aaa, aba, bab, bbb, aaaa,...

Linguagem FormalLinguagem Formal

Page 17: Teoria da Computação

17

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Exercícios de FixaçãoExercícios de Fixação

Com suas palavras defina conjunto: Defina:

Multiconjunto: Conjunto Finito: Conjunto Infinito: Conjunto Vazio:

O que é uma cadeia de símbolos? O que é um alfabeto? Defina subpalavra.