itc: introdu˘c~ao a teoria da computa˘c~ao · 2019. 2. 19. · motiva˘c~ao i em teoria da...

41
ITC:Introdu¸c˜ ao ` a Teoria da Computa¸c˜ ao Prof. Dr. Marcos Castilho Departamento de Inform´ atica/UFPR 19 de fevereiro de 2019 Prof. Dr. Marcos Castilho Departamento de Inform´ atica/UFPR ITC:Introdu¸c˜ ao ` a Teoria da Computa¸ ao

Upload: others

Post on 22-Jan-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

ITC: Introducao a Teoria da Computacao

Prof. Dr. Marcos Castilho

Departamento de Informatica/UFPR

19 de fevereiro de 2019

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 2: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Motivacao

I O que e um computador?

I O que e um algoritmo?

I Para que serve um algoritmo?

I Quando um algoritmo e bom?

I A analise de um algoritmo depende do computador?

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 3: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Motivacao

I Em teoria da computacao, a preocupacao e estudar o processoda computacao independentemente do hardware ou dosoftware da maquina atraves de modelos matematicos.

I Uma soma de dois numeros e sempre uma soma, nao importase voce usou um computador ou os dedos da mao!

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 4: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

O que estudaremos?

I Modelos computacionais: maquinas abstratas que podem serdefinidas matematicamente.

I Linguagens: do ponto de vista de um problema de decisao.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 5: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Problemas de decisao

Um problema de decisao e um problema computacional que podeser respondido com SIM ou NAO.

I Exemplo: Para uma string de dıgitos qualquer, ela representaum numero primo?

Deve existir um modelo computacional que reconhece as stringsque representam numeros primos.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 6: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Panorama

I Automatos Finitos

I Automatos com Pilha

I Maquinas de Turing

I Decidibilidade

I Complexidade computacional

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 7: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Automatos Finitos

I Reconhecem as linguagens regulares obtidas por aplicacao deoperacoes simples em termos de um alfabeto.

I Problema: nao tem memoria.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 8: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Automatos com Pilha

I Reconhecem as linguagens livre de contexto, como porexemplo as linguagens de programacao.

I Problema: tem memoria auxiliar, mas muito simples.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 9: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Maquinas de Turing

I Podem realizar qualquer tarefa que um computador pode, emsuma e o modelo matematico do computador por excelencia!

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 10: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Decidibilidade

I E o estudo sobre decidir se um problema pode ser resolvido ounao por um computador.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 11: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Pre-requisitos

I Teoria dos conjuntos: produto cartesiano, relacoes e funcoes;

I Relacoes de equivalencia;

I Conjuntos enumeraveis e nao enumeraveis;

I Definicoes recursivas;

I Logica matematica;

I Tecnicas de provas de teoremas, em particular: inducao finita.

Co-requisito: desejavel conhecimento de teoria dos grafos.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 12: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Questoes tratadas em Teoria da Computacao

I Como sao definidas as linguagens?

I O que e um algoritmo?

I Quais sao as capacidades e limites da computacao?

I Quanto custa uma computacao?

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 13: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Teoria de Linguagem Formal

I Como as linguagens sao definidas?

I Inıcio: Chomsky no contexto das linguagens naturais.

I Na Ciencia da Computacao: Gramatica Livre de Contextopara a linguagem ALGOL 60.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 14: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Computabilidade

O que e um algoritmo?

I A resposta depende de um modelo formal da computacao.

I Primeira tentativa: um computador e uma linguagem deprogramacao.

Sim, mas qual computador? Quanta memoria? Qual linguagem deprogramacao?

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 15: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Quais sao as capacidades e limites da computacaoalgarıtmica?

Problemas para responder esta pergunta:

I O que e soluvel em um computador pode nao ser em outro!

I Deve haver um modelo independente para servir como base!!!

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 16: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Modelos conhecidos (desde 1930...)

I Funcoes recursivas;

I Lambda calculus;

I Sistemas de Markov;

I Maquinas abstratas, por exemplo, as Maquinas de Turing.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 17: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Tese de Church/Turing

I Um problema tem solucao algorıtmica apenas se pode serresolvido com um destes modelos computacionais.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 18: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Modelo escolhido aqui

Adotaremos as Maquinas de Turing, pois:

I Processam entrada;

I Escrevem em memoria;

I Produzem saıda.

Qualquer computacao em um computador pode ser simulada emuma Maquina de Turing, assim o estudo e imune as limitacoes detempo e espaco.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 19: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

MT como base

I Quais as capacidades e limites da computacao algorıtmica?

I Tese de Church/Turing: um problema e soluvel apenas seexiste uma Maquina de Turing que o resolve.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 20: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Questoes subsequentes

I Quanto tempo leva uma computacao?

I Quanta memoria consome?

O estudo de complexidade computacional e um topico avancadoem Teoria da Computacao e nao sera abordada em profundidadeneste curso.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 21: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Tudo ao seu tempo

I Automatos finitos: modelo sem memoria bastantesimplificado. A aplicacao e em analise lexica de linguagens deprogramacao e design de circuitos.

I Automatos com pilha: modelo mais complexo, pois temmemoria baseada em pilhas. A aplicacao e em compilacao delinguagens de programacao.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 22: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Linguagens e Computabilidade

I Sao conceitos intimamente relacionados, basta ver o nome depraticamente todos os livros da area.

I Computacoes de uma maquina podem ser usadas parareconhecer uma linguagem.

I Assim, cada maquina tem uma linguagem associada.

I E esta linguagem caracteriza a maquina.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 23: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Importancia das linguagens

I Engenharia;

I Fısica;

I Quımica;

I Computacao

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 24: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Plano de curso

1. Introducao

2. Linguagens

3. Automatos finitos

4. Linguagens regulares

5. Automatos com pilha e gramaticas livre de contexto

6. Introducao a analise sintatica

7. Formas normais

8. Maquinas de Turing

9. A hierarquia de Chomsky

10. Decidibilidade

11. Introducao a complexidade computacional

12. Classes de complexidade

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 25: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Bibliografia basica

I Introducao aos Fundamentos da Computacao, Newton JoseVieira, Pioneira Thomson Learning, 2006.

I Languages and Machines: An Introduction to the Theory ofComputer Science Thomas Sudkamp. Addison-Wesley,Second Edition, 1998.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 26: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Bibliografia complementar

I Introducao a Teoria de Automatos, Linguagens e ComputacaoJohn E. Hopcroft, Jeffrey D. Ullman, Rajeev Motwani,Segunda Edicao, Editora Campus, 2003.

I Elementos de Teoria da Computacao, Harry F. Lewis, C. H.Papadimitriou. 2a Edicao, Editora Bookman. 2004.

I Introduction to the Theory of Computation, Michael Sipser,Course Technology; 2 edition, February 15, 2005.

I Theory of Computation, Wood, D., Ed. John Wiley & Sons,1987.

I Linguagens Formais e Automatos, Numero 3 – serie livrosdidaticos, Paulo Blauth de Menezes, Instituto deInformatica/UFRGS, 2a edicao, 1998. Editora Sagra Luzzatto.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 27: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Bibliografia dos pre-requisitos

I How to prove it, a structured approach. Valleman, Daniel.Cambridge University Press. Second edition. 2006.

I Fundamentos de Matematica Elementar - Vol. 1 - Conjuntos -Funcoes - 9a Ed. 2013, Iezzi, Gelson; Murakami, Carlo

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 28: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Linguagens

I Linguagem natural

I Linguagem matematica

I Linguagem de computadores

I . . .

Para definir formalmente o conceito de linguagem precisamosenglobar todos estes tipos.

Definiremos linguagem atraves da nocao de conjuntos.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 29: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Linguagens

Definicao formal:

I Uma linguagem sera um conjunto de palavras (strings) sobreum alfabeto.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 30: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Linguagens

I Linguagens interessantes sao constituıdas de palavras quesatisfazem uma propriedade: a sintaxe.

I Usaremos definicoes recursivas e operacoes sobre conjuntos.

I Terminaremos com a nocao de conjuntos regulares que saouma famılia de linguagens especial.

I Partiremos de uma construcao em Teoria dos Conjuntos everemos que os conjuntos regulares sao gerados pelasgramaticas regulares e reconhecidos pelos automatos finitos.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 31: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Palavras e linguagens

I Uma palavra sobre um conjunto X e uma sequencia finita deelementos de X .

I O conjunto de elementos a partir dos quais as palavras saoconstituıdas e chamado alfabeto.

I Um alfabeto consiste de um conjunto finito e nao vazio deobjetos indivisıveis. Σ denotara este alfabeto.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 32: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Exemplo 1

I Alfabeto do Portugues: palavras do dicionario.

I Banana e diferente de Ba nana.

I ex.: comida casa olimpıada abrir sao computador

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 33: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Exemplo 2

I Alfabeto Σ = {a, b, c}.I ex.: aabcacba

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 34: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Notacao:

I Elementos do alfabeto: letras a, b, c, d, e

I Palavras: p, q, u, v, w, x, y, z

Obs.: Existe uma palavra que consiste de zero elementos doalfabeto, denominada palavra vazia ou nula que sera representadapelo sımbolo λ.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 35: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Definicao

Seja Σ um alfabeto. Entao Σ∗ sera o conjunto de palavras sobreΣ, assim definido:

I (i) BASE: λ ∈ Σ∗

I (ii) PASSO RECURSIVO: Se w ∈ Σ∗ e a ∈ Σ entao wa ∈ Σ∗

I (iii) FECHO: w ∈ Σ∗ apenas se pode ser obtido a partir de λpor um numero finito de aplicacoes do passo recursivo.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 36: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Observacoes

I ∀Σ,Σ∗ e um conjunto infinito.

I Se Σ = {a} entao Σ∗ contem: λ, a, aa, aaa, aaaa, . . .

I tamanho(w) e o numero de aplicacoes do passo recursivonecessarios para construir a palavra a partir dos elementos doalfabeto.

I Se |Σ| = n entao existem nk palavras de tamanho k em Σ∗.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 37: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Exemplo

Seja Σ = {a, b, c , }. Os elementos de Σ∗ incluem:

I tamanho 0: λ

I tamanho 1: a, b, c

I tamanho 2: aa, ab, ac, ba, bb, bc, ca, cb, cc

I tamanho 3: aaa, aab, . . . , ccb, ccc

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 38: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Observacao

I Uma linguagem consiste de palavras sobre um alfabeto.

I Nem toda palavra de vocabulos do portugues forma umasentenca valida.

I Assim, uma linguagem consiste de um subconjunto de todasas palavras sobre um alfabeto.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 39: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Definicao: linguagem

I Uma linguagem sobre um alfabeto Σ e um subconjunto de Σ∗.

Veremos agora propriedades e operacoes sobre palavras.

Notem que definicoes formais devem ser baseadas apenas emconceitos primitivos ja definidos.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 40: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Definicao: Concatenacao

Sejam u, v ∈ Σ∗. A concatenacao de u e v , denotado por uv e aoperacao binaria sobre Σ∗ assim definida

I (i) BASE: Se tamanho(v) = 0 entao v = λ e uv = u.

I (ii) PASSO RECURSIVO: Seja v uma palavra com tamanhotamanho(v) = n > 0. Entao v = wa para algum w ∈ Σ∗ comtamanho(w) = n − 1 e a ∈ Σ, e uv = (uw)a.

I (iii) FECHO: Uma palavra w e a concatenacao de duaspalavras u e v somente se podem ser obtidas a partir daBASE com um numero finito de aplicacoes do passo recursivo.

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao

Page 41: ITC: Introdu˘c~ao a Teoria da Computa˘c~ao · 2019. 2. 19. · Motiva˘c~ao I Em teoria da computa˘c~ao, a preocupa˘c~ao e estudar o processo da computa˘c~ao independentemente

Exemplo

Sejam u = ab, v = ca, w = bb.

Entao:

I uv = abca

I vw = cabb

I (uv)w = abcabb

I u(vw) = abcabb

Prof. Dr. Marcos Castilho Departamento de Informatica/UFPR

ITC: Introducao a Teoria da Computacao