Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Aula 1: Fundamentos
Apresentação
Esta aula consiste em apresentar as de nições básicas de Teoria dos Autômatos, gramáticas, linguagens formais e
conceitos básicos da disciplina.
Objetivo
Identi car o contexto teórico do início da Teoria da Computação;
Narrar os conteúdos a serem estudados, como: Autômatos Finitos e Expressões Regulares, Linguagens Livres de
Contexto, Gramática Livre de Contexto, Máquina de Turing e Complexidade.
Teoria da Computação
A Ciência da Computação baseia-se em resoluções de problemas envolvendo o processamento de dados e apresenta dois
itens essenciais:
2
1
Áreas correlatas
A Teoria da Computação deu-se por meio do estudo em diversas áreas:
1 2
Na Biologia, pela análise de neurônios evoluindo, assim, Na Engenharia Elétrica, com os conceitos de circuitos
para as redes neurais; elétricos;
4
3
Linguagens Formais
A Teoria da Computação apresenta várias áreas de conhecimento, porém a vertente que será estudada é a Linguagem
Natural. Atualmente, é essencial para o estudo em Inteligência Arti cial e, também, em Ciência da Computação pelas
Linguagens.
Em Linguagem Natural para a disciplina de Teoria da Computação é preciso um conhecimento prévio sobre:
As cidades são representadas por nós/vértices e os caminhos são representados por arestas. Pode-se dizer,
então, que Grafos são um conjunto de vértices (ou nós), interconectados dois a dois por arestas.
Já as Expressões Regulares são usadas para identi car caracteres por meio de geradores de sentenças e
conjuntos (linguagens) básicos de nidos por operações de concatenação e união.
Os dois conceitos podem ser aplicados em analisadores léxicos, sistemas de auxílio para a construção de
compiladores, processadores de textos e programas de busca de arquivos, por exemplo.
O autômato com pilha é um autômato com propriedades de uma pilha. Diferente de um Autômato Finito, usa a
informação que está no topo da pilha para decidir qual transição deve ser efetuada e ainda pode manipular a pilha
ao efetuar uma transição.
Os dois conceitos podem ser aplicados em compiladores responsáveis pela análise sintática (parsers) e
especi cações formais em linguagens de programação.
A Teoria da Computabilidade analisa a Tese de Church, as funções primitivas recursivas, as Máquinas de Turing
universais, a não computabilidade, o problema de parada em Máquinas de Turing, a enumerabilidade, a
aceitabilidade e a decidibilidade.
Complexidade Computacional
A Complexidade Computacional analisa as Máquinas de Turing limitadas em tempo e espaço, o grau de
crescimento de funções, as simulações limitadas em tempo, as classes P e NP, NP-completude e hierarquia de
complexidade.
Propriedades
Vejamos algumas propriedades e suas representações:
A ⊆ B ou B ⊇ A
A ⊂ B ou B ⊃ A
A = B
A ⊆ B e B ⊆ A
De nições
Um conjunto pode ser nito ou in nito.
Propriedades de conjuntos
Os conjuntos podem ser de nidos como:
Operações em conjuntos
União
A ∪ B = {x | x ϵ A ou x ϵ B}
Exemplo
A ∩ B = {x | x ϵ A e x ϵ B}
Exemplo
Diferença
A − B = {x | x ϵ A e x ∉ B}
Exemplo
Complemento
′
A = {x | x ϵ U e x ∉ A}
Exemplo
2A = { S | S ⊆ A}
Exemplo
Seja A = {0, 1, 2} e B = {2, 3}, então 2B = {∅, {2}, {3}, {2, 3}}.
Produto cartesiano
Exemplo
Seja A = {0, 1, 2} e B = {2, 3}, então A×B = {(0, 2), (0, 3), (1, 2), (1, 3), (2, 2), (2, 3)}.
Propriedades de operações de conjuntos
Propriedades de relações
Considerando dois conjuntos, A e B (relacionados entre sí, ou seja, envolvidos em uma relação chamada R), dizemos que A
é domínio e B é contradomínio. Logo, aRb denota (a, b) ∈ R.
Álgebra
Uma álgebra é de nida pelo trio A = (S, O, E), onde:
S é um conjunto de portadores;
O é um conjunto de operações;
E é um conjunto de equações.
O par (S, O) de ne a base da álgebra e E de ne a sua semântica. A álgebra é considerada uma linguagem de especi cação
algébrica. Conclui-se, então, que, para os conhecimentos posteriores, é imprescindível o conhecimento algébrico.
Comprimento
Dizemos que o comprimento |w| de uma sequência w é igual ao número de símbolos dessa sequência.
Pre xo e su xo
Um pre xo de uma sequência é qualquer número de símbolos portador dessa sequência. Um su xo é qualquer
número de símbolos continuadores dessa sequência. São chamados de pre xos ou su xos próprios de uma
sequência qualquer pre xo ou su xo de uma sequência diferente dela mesma.
Os su xos são: Є, c, b c, a b c.
Concatenação
A concatenação de sequências é uma sequência formada pela concatenação de ambas. Em concatenação dizemos
que Є é a identidade da concatenação.
Concatenação: w = casamata.
Atividade
Atividade do objetivo 1.
Sejam A = {0, 1} e B = {1, 2, 3}, onde m e n representam o número de elementos de cada conjunto, m = 2 e n = 3, faça a
operação de união.
Atividade do objetivo 2.
Sejam A = {1, 2} e B = {0, 2, 4}, onde m e n representam o número de elementos de cada conjunto, m = 2 e n = 3, faça a
operação de intersecção.
Atividade do objetivo 3.
Sejam A = {0, 2} e B = {0, 1, 3, 5}, onde m e n representam o número de elementos de cada conjunto, m = 2 e n = 4, faça a
operação da diferença.
Atividade do objetivo 4.
Sejam A = {0, 2} e B = {1, 3, 5}, onde m e n representam o número de elementos de cada conjunto, m = 2 e n = 3, faça a
operação de produto cartesiano.
Atividade do objetivo 5.
Dada a sequência w1 = consoantes do alfabeto e w2 = vogais do alfabeto, determine:
Referências
HOPCROFT, Ullman and Motwani. Introdução à teoria dos autômatos, linguagens e computação. Tradução da 2.ed. original de
Vandenberg D. de Souza. Rio de Janeiro: Elsevier, 2002 (tradução de: Introduction to automata theory, languages, and
computation – ISBN 85-352-1072-5).
SIPSER, Michael. Introdução à teoria da computação. Tradução técnica de Rui José Guerra Barretto de Queiroz. Revisão
técnica de Newton José Vieira. São Paulo: Thomson Learning, 2007 (título original: Introduction to the theory of computation.
“Tradução da segunda edição norte-america” – ISBN 978-85-221-0499-4).
Próxima aula
Explore mais
Pesquise, na internet, sites, vídeos e artigos relacionados ao conteúdo visto. Em caso de dúvidas, converse com seu professor
online por meio dos recursos disponíveis no ambiente de aprendizagem.