Teoria da Computação. Aula 01

Documentos relacionados
Linguagens Formais e Autômatos 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior.

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

PLANO DE ENSINO. CURSO: Bacharelado em Sistemas de Informação MODALIDADE: PRESENCIAL ( X ) OBRIGATÓRIA ( ) OPTATIVA DEPARTAMENTO: DEINFO

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Universidade Federal de Alfenas

Linguagens Formais e Autômatos

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000)

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 6. Programas, Máquinas e Computações

INE5317 Linguagens Formais e Compiladores. Ricardo Azambuja Silveira INE-CTC-UFSC URL:

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

Linguagens Formais e Autômatos

Máquina de Turing. Teoria da Computação. Teoria da Computação. Histórico da Computação:

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

PCS3616. Programação de Sistemas (Sistemas de Programação) Visão Geral

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

UNIVERSIDADE PRESBITERIANA MACKENZIE Decanato Acadêmico

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Universidade Federal de Alfenas

Plano de Ensino. Identificação. Curso EngE.INT - Engenharia de Energia. Ênfase. Disciplina B161S - Introdução à Ciência da Computação I

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

SSC0120- Sistemas de Informação. Apresentação da Disciplina

Organização e Arquitetura de Computadores I

Plano de Ensino. Identificação. Câmpus de Bauru. Curso Engenharia de Produção. Ênfase. Disciplina EM1 - Cálculo Numérico Computacional

FORMULÁRIO PARA CRIAÇÃO DE DISCIPLINA

Arquitetura de Computadores

Linguagens Formais e Autômatos P. Blauth Menezes

Apresentação. Sistemas Operacionais. Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D.

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

INSTITUTO FEDERAL CEARÁ - IFCE CAMPUS AVANÇADO DE ARACATI CURSO: BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO PROGRAMA DE UNIDADE DIDÁTICA PUD.

Redes de Computadores

Capítulo 2: Procedimentos e algoritmos

DISTRIBUIÇÃO DA CARGA HORÁRIA TEÓRICA PRÁTICA TEO/PRAT OUTRAS NÚMERO MÁXIMO DE ALUNOS POR TURMA AULAS TEÓRICAS PRÁTICAS 80 40

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

Teoria da Computação

Universidade Federal de Alfenas

Projeto e Análise de Algoritmos NP Completude Parte 2. Prof. Humberto Brandão

FACULDADE PITÁGORAS PRONATEC

SCC Capítulo 4 Máquinas de Turing e a Teoria da Computabilidade

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba

INE5622 INTRODUÇÃO A COMPILADORES

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador

SSC0548 Redes Móveis

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO

Linguagens Formais e Autômatos P. Blauth Menezes

Redes de Computadores

PLANO DE ENSINO 1. IDENTIFICAÇÃO 2. DISCIPLINA / COMPONENTE CURRÍCULAR 3. SABERES / EMENTA 4. PERFIL PROFISSIONAL DO EGRESSO 5.

Universidade Federal de Alfenas

SSC0541 Sistemas Operacionais

SSC0541 Sistemas Operacionais

SSC510 Arquitetura de Computadores 1ª AULA

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Pontifícia Universidade Católica Federal do Rio de Santa Grande Catarina do Sul

Gramática. Gramática. Gramática

DISCIPLINA: Arquitetura e Organização de Computadores I

Aula 10: Decidibilidade

LINGUAGENS FORMAIS E AUTÔMATOS

SUBGERÊNCIA DE GESTÃO EDUCACIONAL PLANO DE CURSO

CT-200 Fundamentos de Linguagens Formais e Automata - Aula 01 - In...

Teoria da Computação. Máquinas Universais Máquina com Pilhas

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

MINISTÉRIO DA EDUCAÇÃO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS DIRETORIA DE GRADUAÇÃO

Fundamentos de Redes de Computadores

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADASS

Plano de Ensino de Disciplina Ciência da Computação 2º / 2016

Plano de Ensino. Identificação. Câmpus de Bauru. Curso Bacharelado em Ciência da Computação Física. Ênfase

Linguagens de Programação Aula 3

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Linguagens Regulares. Prof. Daniel Oliveira

Introdução à Computação

Construção de Compiladores Aula 16 - Análise Sintática

Como construir um compilador utilizando ferramentas Java

PROCESSAMENTO DA INFORMAÇÃO

MT como calculadoras de funções parciais

Apresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais.

Uma Introdução à Computação Quântica

SSC0548 Redes Móveis

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS

SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

UNIDADE ACADÊMICA: Faculdade de

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem

Pró-Reitoria de Ensino de Graduação P L A N O D E E N S I N O

Plano de Ensino. Identificação. Câmpus de Bauru. Curso Licenciatura em Matemática. Ênfase. Disciplina B - Funções Elementares

MATRIZ CURRICULAR BACHARELADO EM ENGENHARIA DA COMPUTAÇÃO. 1º Período

Aula 9: Máquinas de Turing

TEORIA: 60 LABORATÓRIO: 0

Complexidade computacional

Programação em C. Victor Amorim dos Santos

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

Computação I: Representações de Algoritmos

TECNOLOGIA WEB. Formação: o Bacharel em Sistemas de Informações (SI); o MBA em Tecnologia da Informação e Comunicação (TIC).

Programação de Computadores:

Transcrição:

Teoria da Computação Aula 01 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/tc 1

Professor Celso Olivete Júnior Bacharelado em Ciência da Computação (Unoeste-2002) Mestrado e Doutorado em Engenharia Elétrica Área: Visão Computacional (USP-SC-2005/2009) Áreas de interesse e atuação: visão computacional desenvolvimento Web compiladores Celso Olivete Júnior 2

Site do Curso www.fct.unesp.br/docentes/dmec/olivete/tc slides, exercícios, notas e demais materiais estarão disponíveis no site Envio de trabalhos e dúvidas através do email olivete@fct.unesp.br Celso Olivete Júnior 3

62% Celso Olivete Júnior 4

A disciplina Teoria da Computação Objetivo geral do curso Dar ao aluno noções sobre as capacidades (e as limitações) de resolução de problemas das máquinas. Celso Olivete Júnior 5

A disciplina Teoria da Computação O que será estudado? 1. Definir o que a teoria estuda e suas limitações Definir o que a teoria estuda é definir o que é computável Utilizando Modelos formais: Caracterizam em nível conceitual: programas, máquinas e enfim a computação; Especificam o que é computável ou não: o mais famoso é a Máquina de Turing Celso Olivete Júnior 6

A disciplina Teoria da Computação Máquina de Turing: modelo construído com circuitos digitais http://www.youtube.com/watch?v=e3kelemwfhy Celso Olivete Júnior 7

A disciplina Teoria da Computação Máquina de Turing: modelo construído com lego http://www.youtube.com/watch?v=-qetun11lbi Celso Olivete Júnior 8

A disciplina Teoria da Computação Máquina de Turing: reportagem... http://www.youtube.com/watch?v=yiluxahl0v0 Celso Olivete Júnior 9

A disciplina Teoria da Computação O que será estudado? 1. Definir o que a teoria estuda e suas limitações Apresentar a hipótese de Church-Turing (1936): A capacidade de computação representada pela Máquina de Turing é o limite máximo que pode ser atingido por qualquer dispositivo de computação, independentemente da tecnologia Celso Olivete Júnior 10

A disciplina Teoria da Computação O que será estudado? 2. Apresentar linguagens (ou problemas) reconhecidas por MT (recursivamente enumeráveis) e decididas por MT(recursivas). 3. Mostrar que tipos de problemas algorítmicos são insolúveis/indecidíveis Linguagens Recursivamente Enumeráveis Linguagens Sensíveis ao Contexto Linguagens Livres de Contexto MT NORMA POST AP GLC Linguagens Regulares AFD AFND AFS GR ER Celso Olivete Júnior 11

Programa detalhado 1. Introdução e conceitos básicos: Símbolos, cadeias, conjuntos e suas operações; 2. Programas, Máquinas e Computação: Tipos de Programas, Máquinas, Computações e Funções Computadas, Equivalência de Programas e Máquinas, Verificação da Equivalência Forte de Programas 3. Máquinas Universais: Codificação de Conjuntos Estruturados, Máquina de Registradores Norma, Máquina Norma como Máquina Universal, Máquina de Turing, Outros Modelos de Máquinas Universais, Modificações sobre as Máquinas Universais, Hierarquia de Classes de Máquinas e Hipótese de Church 4. Computabilidade Classes de Solucionabilidade de Problemas Celso Olivete Júnior 12

Avaliação Avaliação 1: 29/05 Avaliação 2: 31/07 EXAME: 07/08 As notas de todas as atividades entre 0 (zero) e 10,0 (dez) serão atribuídas individualmente, mesmo em atividades em grupo; A média final será calculada da seguinte maneira: MA = (NP1 + NP2)/2 Mt = (NT1 + NT2 +...+ NTn) / n MT = (7 * NPJ + 3 * Mt) Média Final: MF = (7*MA + 3*MT)/10 SE E SOMENTE SE (MA>=5 E MT>=5) Caso contrário (MA<5 OU MT<5) MF = Menor Nota (MA ou MT) Sendo: MF = Média Final. MA = Média de Provas MP = Média de Trabalhos e Projeto Mt = Média de Trabalho (Listas de Exercícios) NPJ = Nota Projeto MT = Média final dos trabalhos (parte prática). Atendendo a RESOLUÇÃO UNESP 75/2016, que extingue o Regime de Recuperação e implanta o Processo de Recuperação, composto por: ações pedagógicas, no qual serão propostas atividades extra sala, durante o semestre letivo objetivando minimizar as dificuldades de aprendizagem dos estudantes identificados com baixo rendimento; e a Realização do Exame Final, constituído por uma avaliação contendo todo o conteúdo programático, teórico e das atividades práticas. Todos os alunos com Média Semestral (MS) menor do que 5.0 (cinco) poderão fazer o Exame Final. Desta forma, a nova Média Final do aluno será obtida pela média aritmética simples entre a Média Semestral e a nota do Exame Final, que deverá ser igual ou maior que 5.0 (cinco) para aprovação: Média Final = (Média Semestral + Exame Final) / 2 se Média Final 5: "Aprovado"; caso contrário: "Reprovado Celso Olivete Júnior 13

Avaliação A cola ou plágio em provas, exercícios ou atividades práticas implicará na atribuição de nota zero para todos os envolvidos. Dependendo da gravidade do incidente, o caso será levado ao conhecimento da Coordenação e do Conselho do Departamento, para as providências cabíveis. Na dúvida do que é considerado cópia ou plágio, o aluno deve consultar o professor antes de entregar um trabalho. Celso Olivete Júnior 14

BIBLIOGRAFIA COMPLEMENTAR KFOURY, A. F., A programming approach to computability, Springer. MINSKY, M., Computation: finite and infinite machines, Prentice-Hall GERSTING, J. L., Fundamentos Matemáticos para a Ciência da Computação. 4ª ed., Editora LTC, 2001. PIPPENGER, N., Theories of Computability. Cambridge Univ. Press, 1997. KFOURY, A. F., A programming approach to computability, Editora Springer- Verlag. BIBLIOGRAFIA BÁSICA DIVERIO, T. A.; MENEZES, P. B. Teoria da Computação: Máquinas Universais e Computabilidade. Porto Alegre: Sagra-Luzzatto, 2000. HOPCROFT, J. E.; ULLMAN, J. D.; MOTWANI, R. Introdução à Teoria de Autômatos, Linguagens e Computação. Rio de Janeiro: Elsevier, 2002. Celso Olivete Júnior 15

Visão geral da disciplina Dentro da Teoria da Computação encontrase duas linhas de estudo: Teoria da Computação Máquinas Universais e Computabilidade Linguagens Formais e Autômatos Celso Olivete Júnior 16

Visão geral da disciplina LFA trata das definições e propriedades de modelos matemáticos que tem um papel fundamental em várias áreas da Computação como o processamento de textos, compiladores, definição de LP s, dentre outras. Celso Olivete Júnior 17

Visão geral da disciplina Dentro da Teoria da Computação encontrase duas linhas de estudo: Teoria da Computação Máquinas Universais e Computabilidade Linguagens Formais e Autômatos Celso Olivete Júnior 18

Visão geral da disciplina Máquinas universais: Se um problema algorítmico não pode ser solucionado por uma máquina universal, então não existe uma solução computável para ele. Computabilidade classifica os problemas em solúveis, parcialmente solúveis e insolúveis, e se forem problemas de decisão, em problemas decidíveis, parcialmente decidíveis e indecidíveis. Celso Olivete Júnior 19

Visão geral da disciplina Celso Olivete Júnior 20

Visão geral da disciplina Celso Olivete Júnior 21

Programa, máquina, computação e função computada Programa: Conjunto estruturado de instruções que capacitam uma máquina a aplicar sucessivamente certas operações básicas e testes sobre dados iniciais fornecidos, com o objetivo de transformar estes dados numa forma desejável. Celso Olivete Júnior 22

Programa, máquina, computação e função computada um programa deve possuir uma estrutura de controle de operações e testes. Estruturação Monolítica Estruturação Iterativa Estruturação Recursiva Celso Olivete Júnior 23

Programa, máquina, computação e função computada partida Estruturação Monolítica - exemplo Não faz uso explícito de mecanismos como iteração, subdivisão ou recursão. F T 1 v 1:façaFvá_para2 2:seT 1 entãová_para1senãová_para3 3:façaGvá_para4 4:seT 2 então5()senãová_para1 G f T 2 parada Celso Olivete Júnior 24

Programa, máquina, computação e função computada Estruturação Iterativa - exemplo Substitui desvios incondicionais por estruturas de testes ou repetições resultando em uma melhor estruturação de desvios Enquanto T faça V V v T f Celso Olivete Júnior 25

Programa, máquina, computação e função computada Estruturação Recursiva - exemplo Admite a definição de sub-rotinas recursivas P é R; S onde R deff; (se T então R senão G; S), S def(se T então senão F; R) Celso Olivete Júnior 26

Programa, máquina, computação e função computada Máquina Cabe a máquina dar significado aos identificadores das operações e testes exemplos: Norma, Post, Turing Celso Olivete Júnior 27

Programa, máquina, computação e função computada Computação É um histórico do funcionamento da máquina para o programa, considerando um valor inicial. Função computada É o resultado obtido após o término da computação (finita) Celso Olivete Júnior 28

Programa, máquina, computação e função computada usando noções de programa, máquina e computação é estudado o conceito de computabilidade um programa para uma máquina pode induzir a uma computação se a computação for finita, então é definida a função computada (resultado) por esse programa nessa máquina descreve o que o programa faz. Celso Olivete Júnior 29

Visão geral da disciplina Celso Olivete Júnior 30

Equivalência de programas Se dois programas, em uma máquina, possuem a mesma função computada (resultado), ou seja, computam a mesma função, então eles são equivalentes. O conceito de equivalência é utilizado para otimizar o programa eliminar instruções desnecessárias Celso Olivete Júnior 31

Equivalência de programas Exemplo partida partida T f parada v F T f parada v F T v f parada Celso Olivete Júnior 32

Visão geral da disciplina Celso Olivete Júnior 33

Equivalência de máquinas Se duas máquinas simulam-se mutuamente, é porque elas são equivalentes. Nesse caso, ambas tem o mesmo poder computacional. Celso Olivete Júnior 34

Visão geral da disciplina Celso Olivete Júnior 35

Funções computáveis e máquinas universais uma máquina é universal se toda função computável puder ser executada nela uma função computável é aquela que pode ser processada numa Máquina de Turing ou equivalente (Post, Norma, Pilhas) Celso Olivete Júnior 36

Visão geral da disciplina Teoria da Computação provê conceitos e princípios que ajudam a entender a natureza geral da computação utiliza-se de computadores abstratos para resolução de problemas Para modelar o hardware do computador pode-se utilizar o conceito de AF s, que possuem as características de um computador digital entrada, tomada de decisão, armazenamento e saída. Celso Olivete Júnior 37

Visão geral da disciplina após estudar os conceitos de LFA torna-se necessário um estudo aprofundado sobre questões pertinentes a TC: quais são as capacidades e limitações fundamentais dos computadores? o que pode e o que não pode ser resolvido pelos computadores? o que faz alguns problemas serem mais computacionalmente difíceis do que os outros? ao tentar responder essas questões, exploram-se os conceitos de computabilidade, decidibilidade, redutibilidade e complexidade. Celso Olivete Júnior 38

Visão geral da disciplina Computabilidade, decidibilidade, redutibilidade conceitos que serão estudados utilizando modelos matemáticos, capazes de representar o que é uma computação Linguagens Recursivamente Enumeráveis Linguagens Sensíveis ao Contexto Linguagens Livres de Contexto MT NORMA POST AP GLC Linguagens Regulares AFD AFND AFS GR ER Celso Olivete Júnior 39