170 likes | 259 Views
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?.
E N D
Teoria da Computação Aula1
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? 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:
Classes dos problemas computacionais • 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:
Problemas computacionais • 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?
O Propósito da Teoria da Computaçã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.
Conceitos Básicos - Conjuntos • 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 - Conjuntos • Multiconjunto: Consideramos a repetição dos elementos • Conjunto Finito: Contém uma quantidade finita de elementos • Conjunto Infinito: Contém uma quantidade infinita elementos • Conjunto Vazio: conjunto sem elementos • Conjuntos “elementares” • Conjunto dos números naturais • {1,2,3...} • Conjunto dos números inteiros • {...,-2 ,-1,0,1,2...}
Conceitos Básicos - Alfabeto • 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}
Cadeia de Símbolos, palavra • 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 ∑* - {ε}
Comprimento ou Tamanho de uma Palavra. • 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;
Prefixo, Sufixo e Subpalavra • 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.
SubPalavras • 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: • 415 << 415 u =0 ; v = 0; • 755 << 37554 u = 3; v =4;
Concatenaçã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ção • Exemplos: • Suponha o alfabeto ∑ = {a, b}. Então, para as palavras v = baaaa e w = bb, tem-se que: a) vw = baaaabb b) v ε = v = baaaa c) w4 = bbbbbbbb (concatenação sucessiva) • 35 8 = 358 e cas a = casa Note que: • 0 x = x 0 = x e x (y z) = (x y) z
Linguagem Formal • 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,...
Exercí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.