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
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
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?
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
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
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
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
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
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
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
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.
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
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
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
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
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
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.
Top Related