scc-5832 teoria da computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/scc5832cap0.pdf ·...

21
Teoria da Computação SCC-5832 Teoria da Computação 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 - São Carlos [email protected] 2012 João Luís G. Rosa c 2012 - SCC-5832: Teoria da Computação 1/21

Upload: lamminh

Post on 15-Dec-2018

242 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação

SCC-5832Teoria da Computação

João Luís Garcia Rosa1

1Departamento de Ciências de ComputaçãoInstituto de Ciências Matemáticas e de Computação

Universidade de São Paulo - São [email protected]

2012

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 1/21

Page 2: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação

Sumário

1 Teoria da ComputaçãoA disciplina SCC-5832Objetivos e ProgramaAvaliação

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 2/21

Page 3: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

Sumário

1 Teoria da ComputaçãoA disciplina SCC-5832Objetivos e ProgramaAvaliação

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 3/21

Page 4: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

A disciplina SCC-5832

A disciplina é composta de três partes centrais da Teoriada Computação que têm o objetivo de tentar responderquais são as capacidades e as limitações doscomputadores:

1 Teoria das Linguagens Formais e dos Autômatos,2 Teoria da Computabilidade e3 Teoria da Complexidade.

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 4/21

Page 5: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

A disciplina

A primeira parte (Teoria das Linguagens Formais e dosAutômatos) trata das definições e propriedades demodelos matemáticos de computação que têm um papelfundamental em várias áreas da Computação como oprocessamento de textos, compiladores, definição delinguagens de programação, dentre outras.Além desse lado prático, do ponto de vista teórico, para sedefinir o que é ou não computável é necessário utilizar ummodelo matemático que represente o que se entende porcomputação.

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 5/21

Page 6: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

A disciplina

A segunda parte do curso (Teoria da Computabilidade) écentralizada na Tese de Church-Turing e nas evidênciasdela.Church usou um sistema chamado cálculo-� para definiralgoritmo e Turing fez o mesmo com o uso da Máquina deTuring (MT).As duas definições foram mostradas serem equivalentes ea conexão entre a noção informal de algoritmo (solúvelefetivamente) e a definição precisa por uma MT foichamada Tese de Church-Turing: se um problemaalgorítmico não pode ser resolvido por uma máquina deTuring, então não existe nenhuma solução computávelpara ele.

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 6/21

Page 7: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

A disciplina

Vários outros modelos de computação (por exemplo, asfunções recursivas de Kleene, linguagens formais, RAMs,algoritmos de Markov, linguagens de programação, amáquina de Post) foram propostos e provados terem poderequivalente à máquina de Turing.Assim, estudando qualquer um destes modelos, porexemplo um modelo simples como a máquina de Turing, épossível aprender sobre as limitações teóricas de todos oscomputadores.A meta da teoria da computabilidade é a classificação deproblemas em solúveis, parcialmente solúveis e insolúveise se forem problemas de decisão, em problemasdecidíveis, parcialmente decidíveis e indecidíveis.

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 7/21

Page 8: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

A disciplina

Nem todos os problemas algorítmicos, que podem serresolvidos em princípio, podem ser resolvidos na prática:os recursos computacionais requeridos (tempo ou espaço)podem ser proibitivos.Esta observação motiva o estudo da complexidadecomputacional que será tratada na terceira parte do curso(Teoria da Complexidade).A meta principal da teoria da complexidade é aclassificação de problemas de acordo com a dificuldadecomputacional.

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 8/21

Page 9: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

Sumário

1 Teoria da ComputaçãoA disciplina SCC-5832Objetivos e ProgramaAvaliação

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 9/21

Page 10: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

Objetivos e Justificativa

Objetivos:

Apresentar ao aluno conceitos fundamentais dasdisciplinas de teoria da computação, linguagens formais elógica.Capacitar o aluno a compreender e utilizar estes conceitos.

Justificativa:O estudo destes aspectos fundamentais da ciência dacomputação deve auxiliar na formação da base teóricanecessária às demais disciplinas do curso.

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 10/21

Page 11: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

Programa

1 Linguagens Regulares e Autômatos Finitos1 Gramáticas e Linguagens

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

2 Autômatos de Estados FinitosAutômatos FinitosArcos-�Autômato Mínimo

3 Autômatos Finitos com SaídaMáquinas de MealyMáquinas de MooreExemplos

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 11/21

Page 12: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

Programa

2 Linguagens Livres de Contexto e Autômatos de Pilha1 Linguagens Livres de Contexto

Linguagens Livres de ContextoLema do Bombeamento para Linguagens Livres de ContextoFormas Normais para Gramáticas Livres de Contexto

2 Autômatos de PilhaA Pilha como Processador de LinguagemO Autômato de PilhaO Teorema da Equivalência

3 Programas, Linguagens e ParsingLinguagens de ProgramaçãoParsingGramáticas Livres de Contexto e a Língua Natural

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 12/21

Page 13: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

Programa

3 Linguagens Sensíveis ao Contexto e Autômatos LimitadosLinearmente

1 Gramáticas e Linguagens Sensíveis ao ContextoGramáticas e Linguagens Sensíveis ao ContextoO Lema da Cadeia VaziaProva do Lema da Cadeia Vazia

2 Máquinas de TuringMáquinas de Turing e a ComputabilidadeConjunto de Aceitação de uma Máquina de Turing

3 Autômatos Limitados LinearmenteAutômatos Limitados LinearmenteO Lema do Alfabeto

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 13/21

Page 14: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

Programa

4 Linguagens Recursivamente Enumeráveis e Máquinas deTuring

1 Gramáticas IrrestritasGramáticas IrrestritasDas Gramáticas para as Máquinas de TuringDas Máquinas de Turing para as Gramáticas

2 A Máquina de Turing UniversalA Máquina de Turing e Funções NuméricasA Tese de Church-TuringA Máquina Universal

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 14/21

Page 15: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

Programa

5 Computabilidade e Complexidade1 Indecidibilidade

Máquinas de Turing Não DeterminísticasUma Linguagem que não é Recursivamente EnumerávelO Problema da Parada e a Indecidibilidade

2 Teoria de ComplexidadeComplexidade de TempoComplexidade de Espaço

3 Tratabilidade e Problemas NP-CompletosTratabilidadeA Classe NPOutras Classes de Problemas

Aulas:Terças: 9h00-12h00 - sala 3-012

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 15/21

Page 16: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

Sumário

1 Teoria da ComputaçãoA disciplina SCC-5832Objetivos e ProgramaAvaliação

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 16/21

Page 17: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

Avaliação

2 provas:P1 = 08/5P2 = 26/6

3 trabalhos individuais, com implementação:Apresentação do Trabalho T1: 27/4.Apresentação do Trabalho T2: 25/5.Apresentação do Trabalho T3: 22/6.

Trabalho Extra (Alan Turing) - opcional T4: 29/6acréscimo de 0,2 na média.

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 17/21

Page 18: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Teoria da Computação A disciplina SCC-5832 Objetivos e Programa Avaliação

Avaliação

MP = Média Aritmética das ProvasMT = Média Aritmética dos TrabalhosMF = Média Final:

Se MP ≥ 5,0 e MT ≥ 5,0 então MF = (7*MP + 3*MT)/10Senão MF = menor valor entre MP e MT

CF = conceito final:

CF = A se 8,5 ≤ MP ≤ 10;CF = B se 7 ≤ MP < 8,5;CF = C se 5 ≤ MP < 7;CF = R, caso contrário.

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 18/21

Page 19: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Apêndice Bibliografia

Bibliografia Básica I

[1] Rosa, J. L. G.Linguagens Formais e Autômatos.Editora LTC, 2010.

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 19/21

Page 20: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Apêndice Bibliografia

Bibliografia Complementar I

[1] Hopcroft, J. E., Ullman, J. D.Formal Languages and Their Relation to Automata.Addison-Wesley Publishing Company, 1969.

[2] Hopcroft, J. E., Ullman, J. D. e Motwani, R.Introdução à Teoria de Autômatos, Linguagens eComputação.Tradução da segunda edição americana. Editora Campus,2003.

[3] JFLAP Version 6.0.Ferramenta para Diagrama de Estados.www.jflap.org.

[4] Moll, R. N., Arbib, M. A., and Kfoury, A. J.An Introduction to Formal Language Theory.Springer-Verlag, 1988.

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 20/21

Page 21: SCC-5832 Teoria da Computação - wiki.icmc.usp.brwiki.icmc.usp.br/images/b/b1/SCC5832Cap0.pdf · Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa1

Apêndice Bibliografia

Bibliografia Complementar II

[5] Sipser, M.Introduction to the Theory of Computation.Second Edition, Thomson, 2006.

João Luís G. Rosa c⃝ 2012 - SCC-5832: Teoria da Computação 21/21