Sei sulla pagina 1di 10

Teoria da Computação

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;

Descrever a importância da Linguagem Natural;

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

Estudo de engenharia de software e hardware voltados para


Modelos teóricos e ideias fundamentais da computação.
a construção de sistemas computacionais.

Á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

Na Linguística, baseando-se tendo como base o


Na Matemática, com o aprendizado em Lógica e evoluindo
conhecimento em Gramáticas de Linguagens Naturais,
para a Lógica da Computação;
evoluindo para o Processamento de Linguagem Natural.

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:

Teoria dos Grafos;


Autômatos Finitos e Expressões Regulares;
Linguagens Regulares e Gramática Livre de Contexto;
Máquina de Turing e Teoria da Computabilidade;
Complexidade Computacional.

Leiamos, no texto a seguir, sobre cada um.

 Conceitos computacionais e linguagens

 Clique no botão acima.


Teoria dos Grafos
Os grafos são utilizados para modelar problemas das mais variadas áreas, como redes de transportes, problemas
de telecomunicações etc. Para entender melhor a Teoria dos Grafos, é necessário remeter ao conceito básico em
que é baseada essa abordagem, onde tem-se problemas para ir de uma cidade a outra e vários caminhos para
chegar ao destino nal.

 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.

Autômatos Finitos e Expressões Regulares


Os Autômatos Finitos são a base operacional para reconhecer sentenças em um sistema de estados nitos.

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.

Linguagens Regulares e Gramática Livre de Contexto


A Gramática Livre de Contexto é usada 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, assim como as Expressões
Regulares, porém sua gramática tem restrições nas regras de produção.

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.

Máquina de Turing e Teoria da Computabilidade


A Máquina de Turing é um modelo de computador com fundamentos lógicos em seu funcionamento. Ela faz
análise de computação, combinação e extenção das Máquinas de Turing, por exemplo.

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.

Os dois conceitos podem ser aplicados em solução de problemas de reconhecedores e geradores de


determinadas linguagens.

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.

Conceitos básicos de conjuntos e álgebra


Conjunto
É um agrupamento contendo zero ou mais objetos diferentes, chamados de elementos de um conjunto.

Propriedades
Vejamos algumas propriedades e suas representações:

A está contido em B / A é subconjunto de B / B contém A.

a  ∈  A,  a  ∉  A 

A  ⊆  B ou B  ⊇  A  

A está contido propriamente em B / A é subconjunto próprio de B / B contém propriamente A.

A  ⊂  B ou B  ⊃  A

A é igual a B / A está contido em B, assim como B está contido em A.

A  =  B

A  ⊆  B e B  ⊆  A

De nições
Um conjunto pode ser nito ou in nito.

O conjunto nito pode ser apresentado por meio de sua descrição

Exemplo: {a, b, c}.

O conjunto vazio é aquele que não tem elementos.

Exemplo: { } símbolo usado para representar um conjunto nito.

             ∅ símbolo usado para representar um conjunto in nito.

Propriedades de conjuntos
Os conjuntos podem ser de nidos como:

N: Conjunto dos Números Naturais;


Z: Conjunto dos Números Inteiros;
Q: Conjunto dos Números Racionais;
I: Conjunto dos Números Irracionais;
R: Conjunto dos Números Reais.

Operações em conjuntos
União

A ∪ B = {x | x ϵ A ou x ϵ B}

Exemplo

Seja A = {0, 1, 2} e B = {2, 3}, então A ∪ B = {0, 1, 2, 3}.


Intersecção

A ∩ B = {x | x ϵ A e x ϵ B}

Exemplo

Seja A = {0, 1, 2} e B = {2, 3}, então A ∩ B = {2}.

Diferença

A − B = {x | x ϵ A e x ∉ B}

Exemplo

Seja A = {0, 1, 2} e B = {2, 3}, então A - B = {0, 1}.

Complemento


A = {x | x ϵ U e x ∉ A}

Exemplo

Seja A = {0, 1, 2} e B = {2, 3}, então A' = {x ∈ N | x > 2}.

Conjunto das partes

2A = { S | S ⊆ A}

Exemplo

Seja A = {0, 1, 2} e B = {2, 3}, então 2B = {∅, {2}, {3}, {2, 3}}.

Produto cartesiano

AxB = {( a, b ) | a ∈ A e b ∈ B}

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.

Considerando A um conjunto e R uma relação em A, há algumas propriedades a serem respeitadas. Vejamos:


Propriedades de ordem (R em A)
A seguir, algumas propriedades de ordem:

Á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.

Sequências, alfabetos e linguagens


Sequência é uma sobreposição nita de símbolos. Símbolos são entidades abstratas não de nidas formalmente, como
letras e dígitos. Uma sequência é representada por w. Consideramos em sequência, sequências vazias, que são
representadas por Є.

Propriedades de uma sequência

Clique nos botões para ver as informações.

Comprimento 

Dizemos que o comprimento |w| de uma sequência w é igual ao número de símbolos dessa sequência.

Ex.: Considerando w = a, b, c, d, então |w|= 4.

Considerando w = Є, então |w|= 0.

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.

Exemplo:  Considerando w = a, b, c, então:

Os pre xos são: Є, a, a b, a b c.

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.

Exemplo:  Considerando w1 = casa e w2 = mata, então:

Concatenação: w = casamata.

Identidade da concatenação: Є w = w Є = 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:

a. A concatenação dessas sequências;


b. A identidade dessa concatenação;
c. O comprimento |w| dessa sequência.

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

Teoria dos Grafos;


Alfabetos e linguagens;
Grafos;
Árvores.

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.

Potrebbero piacerti anche