Você está na página 1de 74

Instituto Superior Politécnico Metropolitano de Angola

www.unimetroangola.com
Departamento de Ciências Tecnológicas e Engenharias (DTEC)

TCL – Aula 1
Apresentação da disciplina e breves
considerações
Perguntas iniciais – Diálogo com os
estudantes
 Quando se fala de computação, o que te vem em mente?

 O que entendes por linguagem?

Algumas anotações deste Capítulo foram feitas com base nos slides da Prof Gizela Levita
A Disciplina (I)
A disciplina é composta de cinco partes centrais da Teoria da
Computação que têm o objectivo de tentar responder quais são as
capacidades e as limitações dos computadores:
1. Revisão matemática de conjuntos.
2. Linguagens e suas representações
3. Teoria das Linguagens Formais e dos Autómatos
4. Programação
5. Decibilidade e Computabilidade
A Disciplina (II)
 1ªparte : Revisão geral sobre conjuntos e sua representação,

funções, relações, definições e grafos.


 2ª e 3ª parte : Modelos matemáticos de computação com

aplicações em :
 processamento de textos

 Compiladores

 definição de linguagens formais.

 4ª e 5ª partes : Máquinas de Turing (MT).


Tese de Chrurch-Turing
 Tese de Church-Turing: se um problema algorítmico não pode ser

resolvido por uma máquina de Turing, então não existe nenhuma


solução computável para ele.
 Usando o modelo simples como a Máquina de Turing, é possível

aprender sobre as limitações teóricas dos computadores.


Metas das TCL
 A meta principal da teoria da complexidade é a classificação de

problemas de acordo com a dificuldade computacional.


 Nem todos os problemas algorítmicos podem ser resolvidos na

prática: os recursos computacionais requeridos (tempo “ou


espaço”) podem ser proibitivos.
 A meta da teoria da computabilidade é a classificação de

problemas em solúveis, parcialmente solúveis e não solúveis e


se forem problemas de decisão em problemas decidíveis,
parcialmente decidíveis e indecidíveis.
Sumário

Teoria da Computação e Linguagens

1. Objectivos da disciplina

2. Programa da disciplina

3. Procedimentos Metodológicos

4. Procedimentos de Avaliação

5. Aulas

Bibliografia
1. Objectivos da disciplina
 Dar ao estudante noção formal de algorítimo, computabilidade e

do problema de decisão, de modo a deixá-lo consciente das


limitações da ciência da computação.
 Apresentar aos estudantes conceitos gerais sobre teoria da

computação e as suas linguagens.


 Dar subsídios para o estudante poder definir as linguagens de

programação, isto é, sua sintaxe e semântica, através do estudo


das gramáticas formais.
2. Programa da Disciplina
 1- Revisão de Matemática de conjuntos 3- Linguagens Formais
 Representação; prova de teoremas; ◦ Linguagens regulares: expressões
conjuntos; relações; funções; conjuntos regulares; gramáticas regulares.
enumeráveis; definições recursivas; ◦ Autómatos finitos; propriedades;
indução matemática; grafos. conjuntos regulares e expressões
 2- Linguagens e suas representações regulares.
 Gramáticas: definição formal. ◦ Linguagens livres do contexto:
 Classificação (Hierarquia de Chomsky), gramáticas livres do contexto.
propriedades. ◦ Autómatos a pilha.
 Problemas de decisão e aplicações.
2. Programa da Disciplina
 Linguagens sensíveis ao contexto: 5- Decidibilidade e Computabilidade:
gramáticas sensíveis ao contexto; ◦ Decidibilidade: problemas de decisão;
autómatos lineares limitados; tese de Church-Turing; o problema da
propriedades. parada; máquina de Turing universal;
 Linguagens recursivamente redutibilidade; exemplos de problemas
enumeráveis: gramáticas irrestritas. indecidíveis.
 4- Programação
◦ Computação numérica: computação de
 Programas, Máquinas e Computações.
funções; computação numérica;
 Máquinas de Turing. composição de funções; funções não
 Funções Recursivas e linguagens computáveis
recursivas. ◦ Classes e complexidade de problemas
computacionais.
3. Procedimentos Metodológicos
 Aulas expositivas e práticas.

 Modelo participativo.

 Estudos de caso

 Exercícios de verificação e fixação dos conteúdos abordados.

 Elaboração de trabalhos em grupo.


3. Procedimentos de Avaliação I
Formação de grupos:
 Os grupos serão compostos por 1 à 3 elemento(s).
3. Procedimentos de Avaliação I
Avaliação Teórica (50%)

1) Prova (individual) com ponderação de 40% .

Avaliação Contínua (50%)


1. Trabalhos de grupo (70%) - Apresentação dos trabalhos a ser
entregue. Apresentação em slides (10 a 30 minutos) Relatório
escrito – Máximo 10 páginas. Comunicação Oral Individual e
Trabalho em Equipa. Conta também o cumprimento quanto ás
data limite de entrega dos trabalhos.
2. Intervenção nas aulas / Assiduidade / Pontualidade (30%)

Assiduidade abaixo de 60% de presenças pode levar a reprovação.


Objectivos específicos
Ao final dessa aula, o aluno deverá ser capaz de:
 Apresentar conceitos de conjuntos na lógica matemática.

 Esquematizar um conjunto segundo a sua notação.

 Reconhecer quando estamos perante a uma operação de

conjuntos.
Exercícios
1. Escreva numa folha de papel as respostas para as seguintes
questões:
a) O que entendes por conjuntos?

b) Dê exemplo de um ou dois conjuntos.

2. O que entende por autómato

3. Que tipos de problemas podemos resolver com os computadores

4. Quais são os conceitos estudados em TCL ?

5. Comentar o video (aula1) https://


www.youtube.com/watch?v=0aUEDxYjZg8
Instituto Superior Politécnico Metropolitano de Angola
www.unimetroangola.com
Departamento de Ciências Tecnológicas e Engenharias (DTEC)

TCL– Aula 2
Revisão de Matemática de conjuntos

Anotações com base nos slides da Prof Gizela Levita


Sumário
1. Breve historial

2. Conjuntos. Conceitos

3. Relação de pertinência

4. Conjuntos especiais

5. Operações de conjuntos.

6. Conclusão

7. Bibliografia
1. Breve Historial (1/1)

O homem sempre teve a


necessidade de se
organizar

e administrar ou gerir os
seus bens
de forma
a não ser enganado.
1. Breve Historial (1/2)
O primeiro sistema de
contagem foi à mão.

Depois riscos em
madeiras e ossos.

Alguns utilizavam
símbolos
para representar
quantidades.
1. Breve Historial (1/3)
 Desde muito tempo o homem sempre teve a preocupação em

contar objectos e ter registos numéricos. Desta preocupação


ou necessidade surgiu então os Conjuntos.
2. Conjuntos (2/1)
 Matematicamente, o conceito de conjunto é considerado
primitivo e não se dá uma definição deste, portanto, a palavra
CONJUNTO deve aceitar-se logicamente como um termo não
definido.
 Podemos entender conjunto como: uma colecção, agrupamento
ou reunião de objectos de qualquer classe. Ou ainda colecção de
elementos.

 Nota: os objectos podem ser qualquer coisa como por exemplo:


números, pessoas, letras, ríos, máquinas, pedras, animais, etc.
2. Conjuntos (2/2)
 Exemplos:

Estudantes da Grupo de Peixes de


Turma LCC3M um aquário
Notação
 Todo conjunto se escreve entre chaves { } e se denota mediante
letras maiúsculas A, B, C, ..., seus elementos se separam
mediante ponto e vírgula.
Notação
Conjuntos: letras maiúsculas: A, B, C, D, …., X, Y, Z

Elementos: letras minúsculas: a, b, c, d, …., x, y, z


Cardinal de conjuntos
 Na teoria de conjuntos não precisa repetir os elementos, por
exemplo:
 O conjunto {x; x; x; y; y; z } simplemente será { x; y; z }.
Ao número de elementos que tem um conjunto X chamamos
Cardinal do Conjunto e se representa por n(X).

Exemplos:

A = {a; b; c; d; e} seu cardinal n(A) = 5

B = {x; x; x; y; y; z} seu cardinal n(B) = 3


3. Relação de Pertinência
 Para indicar que um elemento pertenece a um conjunto se usa o
símbolo: 
 Se um elemento não pertenece a um conjunto se usa o símbolo:

 Exemplos: Seja M = {2; 4; 6; 8; 10}

2 M
=> se lê 2 pertenece ao conjunto M
5 M
=> se lê 5 não pertenece ao conjunto M
4. Diagrama de Venn
 Os diagramas de Venn que se devem ao filósofo inglês John Venn

(1834-1883) servem para representar conjuntos de maneira


gráfica mediante desenhos ou diagramas que podem ser círculos,
retângulos, triângulos ou qualquer curva fechada.

B C
7 6
A
o
4 8 e a
1 5 i
3 u
9 2
5. Conjuntos Especiais (5/1)
Conjunto Vazio

É um conjunto que não possui elementos, também pode ser


chamado de conjunto nulo. Geralmente representa-se pelos
símbolos: ou { }

Exemplos:
5. Conjuntos Especiais (5/2)
Conjunto Unitário

É o conjunto que tem um só elemento.

Exemplos: A = {5} ;

Conjunto Finito

É o conjunto com limitado número de elementos.

Exemplos:
E = { x / x é um número impar positivo menor que 10 }
5. Conjuntos Especiais (5/3)
Conjunto Infinito
É o conjunto com ilimitado número de elementos.

Exemplos:
R={x/x<6} S = { x / x é um número par }
Conjunto Universal
É um conjunto referencial que contém todos os elementos de uma
situação particular e geralmente representa-se pela letra U.

Exemplos:
E = { Todas as pessoas existentes na terra }
6. Operações de conjuntos (6/1)
União de Conjuntos

 Dados os conjuntos A e B, a união de A e B é o conjunto formado


pelos elementos que pertencem a A ou a B.

A  B = {x | x  A ou x  B}
6. Operações de conjuntos (6/2)
Intercessão de conjuntos

 Dados os conjuntos A e B, a intersecção de A e B é o conjunto


formado pelos elementos que pertencem a A e a B.

A  B = {x | x  A e x  B}
6. Operações de conjuntos (6/3)
Diferença de conjuntos

 Dados os conjuntos A e B, a diferença de A e B é o conjunto


formado pelos elementos que pertencem a A, mas não a B.

A − B = {x | x  A e x  B}
Exercícios sobre operações de
conjuntos
 Sejam os conjuntos:

A = {1;4;7;10;13;16;19;22;25;28;31;34}

B = {2;4;6;8;10;12;14;16;18;20;22;24;26}

C = {3;7;11;15;19;23;27;31}

Achar: A  B , C – A e B U A
Conclusão
1. Definir conjunto.

R:

2. Dar exemplos de conjuntos não resolvidos anteriormente.

R:

3. Efectuar e apresentar o resultado da seguinte operação destes


conjuntos:

R:
Na próxima aula…
Na aula seguinte iremos falar sobre:
 Prova de Teoremas

 Conjuntos Enumeráveis.

 Funções

 Definições Recursivas
Bibliografia
 H.R. LEWIS, C.H. Papadimitriou, Elementos de Teoria da Computação, 2nd ed., Bookman,

2000.
 P.B. MENEZES, Linguagens Formais e Autômatos, 3a ed., Sagra Luzzatto, Porto Alegre,

2000.
 J.E. HOPCROFT, R. Motwani, J.D. Ullman, Introduction to Automata Theory, Languages,

and Computation, 2nd ed., Addison-Weley, 2000.


 Hopcroft, J. E., Ullman, J. D. Formal Languages and Their Relation to Automata. Addison-

Wesley Publishing Company, 1969.


 Hopcroft, J. E., Ullman, J. D. e Motwani, R. Introdução à Teoria de Autômatos, Linguagens

e Computação. Tradução da segunda edição americana. Editora Campus, 2003.


 Rosa, J. L. G. Linguagens Formais e Autômatos. Editora LTC, 2010
Bibliografia
 H.R. LEWIS, C.H. Papadimitriou, Elementos de Teoria da Computação, 2nd ed.,

Bookman, 2000.
 P.B. MENEZES, Linguagens Formais e Autômatos, 3a ed., Sagra Luzzatto, Porto Alegre,

2000.
 J.E. HOPCROFT, R. Motwani, J.D. Ullman, Introduction to Automata Theory,

Languages, and Computation, 2nd ed., Addison-Weley, 2000.


 Hopcroft, J. E., Ullman, J. D. Formal Languages and Their Relation to Automata.

Addison-Wesley Publishing Company, 1969.


 Hopcroft, J. E., Ullman, J. D. e Motwani, R. Introdução à Teoria de Autômatos,

Linguagens e Computação. Tradução da segunda edição americana. Editora Campus,


2003.
 Rosa, J. L. G. Linguagens Formais e Autômatos. Editora LTC, 2010
Motivação
Motivação
 Por que estudar grafos?
 Importante ferramenta matemática com
aplicação em diversas áreas do
conhecimento
 Utilizados na definição e/ou resolução de
problemas
Existem centenas de problemas
computacionais que empregam grafos com
sucesso.
Motivação
 Por que estudar grafos?
 Importante ferramenta matemática com
aplicação em diversas áreas do
conhecimento
 Utilizados na definição e/ou resolução de
problemas
 Existem centenas de problemas
computacionais que empregam grafos com
sucesso.
Motivação
 Por que estudar grafos?
 Importante ferramenta matemática com
aplicação em diversas áreas do
conhecimento
 Utilizados na definição e/ou resolução de
problemas
 Existem centenas de problemas
computacionais que empregam grafos com
sucesso.
Motivação
 Por que estudar grafos?
 Importante ferramenta matemática com
aplicação em diversas áreas do
conhecimento
 Utilizados na definição e/ou resolução de
problemas
 Existem centenas de problemas
computacionais que empregam grafos com
sucesso.
Motivação
 Por que estudar grafos?
 Importante ferramenta matemática com
aplicação em diversas áreas do
conhecimento
 Utilizados na definição e/ou resolução de
problemas
 Existem centenas de problemas
computacionais que empregam grafos com
sucesso.
Introdução
 Porque estudar Grafos
 Importante ferramenta matemática com aplicação
em diversas áreas do conhecimento
 Genética, química, pesquisa operacional,
telecomunicações, engenharia elétrica, redes de
computadores, conexão de vôos aéreos, restrições de
precedência, fluxo de programas, dentre outros
 Utilizados na definição e/ou resolução de
problemas

Grafos / Matemática
48
Discreta/ Cin / UFPE
 Porque estudar Grafos
 Em computação: estudar grafos é mais uma
forma de solucionar problemas computáveis

 Os estudos teóricos em grafos buscam o


desenvolvimento de algoritmos mais eficientes.

Grafos / Matemática
49
Discreta/ Cin / UFPE
 O que são Grafos

 Tipicamente um grafo é representado como um conjunto


não vazio de pontos ou vértices ligados por retas, que são
chamadas de arestas
 Ferramenta de modelagem
 Abstração matemática que representa situações reais
através de um diagrama.

Grafos / Matemática
50
Discreta/ Cin / UFPE
As pontes de Königsberg

O rio Pregel divide o centro da cidade de Königsberg (Prússia no século XVII,


atual Kaliningrado, Rússia) em quatro regiões. Essas regiões são ligadas por
um complexo de sete (7) pontes, conforme mostra a figura.
Discutia-se nas ruas da cidade a possibilidade de atravessar todas as pontes,
voltando ao lugar de onde se saiu, sem repetir alguma. Havia-se tornado uma
lenda popular a possibilidade da façanha quando Euler, em 1736, provou que
não existia caminho que possibilitasse tais restrições.
Grafos / Matemática
51
Discreta/ Cin / UFPE
 As pontes de Königsberg
 Resolvido em 1736 por Leonhard Euler
 Necessário um modelo para representar o
problema
 Abstração de detalhes irrelevantes:
 Área de cada ilha
 Formato de cada ilha
 Tipo da ponte, etc.

Grafos / Matemática
52
Discreta/ Cin / UFPE
 As pontes de Königsberg
 Euler generalizou o problema através de um
modelo de grafos

Grafos / Matemática
53
Discreta/ Cin / UFPE
 As pontes de Königsberg
 Euler mostrou que não existe o trajeto proposto
utilizando o modelo em grafos

Grafos / Matemática
54
Discreta/ Cin / UFPE
 O problema das 3 casas
 É possível conectar os 3 serviços às 3 casas sem
haver cruzamento de tubulação?

A teoria
dos
grafos
mostra
que não
é
água luz telefone possível

Grafos / Matemática
55
Discreta/ Cin / UFPE
Quantas
cores são
necessárias
para colorir o
mapa do
Brasil, sendo
que estados
adjacentes
não podem
ter a mesma
cor?

Grafos / Matemática
56
Discreta/ Cin / UFPE
Questões sobre o caminho mínimo
De forma a reduzir seus custos operacionais, uma
empresa de transporte de cargas deseja oferecer
aos motoristas de sua frota um mecanismo que
os auxilie a selecionar o melhor caminho (o de
menor distância) entre quaisquer duas cidades
por ela servidas, de forma a que sejam
minimizados os custos de transporte.

Grafos / Matemática
57
Discreta/ Cin / UFPE
Grafos / Matemática
58
Discreta/ Cin / UFPE
 Modelagem com grafos

Estamos interessados em objetos e nas relações entre eles

Quem são eles nos problemas apresentados?

Como representar graficamente?

Grafos / Matemática
59
Discreta/ Cin / UFPE
 Modelagem com grafos
No problema das casas
 Vértices são casas e serviços
 Arestas são as tubulações entre casas e serviços
No problema da coloração de mapas
 Vértices são estados
 Arestas relacionam estados vizinhos
No problema do caminho mais curto
 Vértices são as cidades
 Arestas são as ligações entre as cidades

Grafos / Matemática
60
Discreta/ Cin / UFPE
 Três desenvolvimentos isolados despertaram
o interesse pela área
 Formulação do problema das 4 cores (De Morgan
1852).

Qual a quantidade mínima de cores para colorir um mapa de


tal forma que países fronteiriços possuam cores diferentes?
Apresenta-se um exemplo em que 3 cores não são
suficientes. Uma prova de que 5 cores é suficiente foi
formulada. Conjecturou-se então que 4 cores seriam
suficientes. Esta questão ficou em aberto até 1976 quando
Appel e Haken provaram para 4 cores

Grafos / Matemática
61
Discreta/ Cin / UFPE
 Três desenvolvimentos isolados despertaram o interesse
pela área

 Problema do ciclo Hamiltoniano (Hamilton 1859)

Existem n cidades. Cada par de cidades pode ser adjacente


ou não arbitrariamente. Partindo de uma cidade qualquer, o
problema consiste em determinar um trajeto que passe
exatamente uma vez em cada cidade e retorne ao ponto de
partida.

Grafos / Matemática
62
Discreta/ Cin / UFPE
 Três desenvolvimentos isolados despertaram
o interesse pela área

 Teoria das árvores


     - Kirchoff (1847) - problemas de circuitos
elétricos
     - Cayley (1857) - Química Orgânica

Grafos / Matemática
63
Discreta/ Cin / UFPE
Definições
 Dois tipos de elementos
 Vértices ou nós
 Arestas
v1

v3 v4 v2

v6
v5

Grafos / Matemática
64
Discreta/ Cin / UFPE
Grafo Simples
 G = (V,E)
 V é um conjunto finito não-vazio de vértices (ou nós)

 E é um conjunto de pares não ordenados de elementos

distintos de V, chamados de arestas


 Cada aresta e pertencente ao conjunto E será denotada pelo
par de vértices {x,y} que a forma
 Dizemos que os vértices x e y são extremos (ou

extremidades) da aresta e.

Grafos / Matemática
65
Discreta/ Cin / UFPE
G = (V,E)

Grafos / Matemática
66
Discreta/ Cin / UFPE
Dois vértices x e y são ditos adjacentes ou vizinhos se
existe uma aresta e unindo-os.

Os vértices u e v são ditos incidentes na aresta e, se


eles são extremos de e.
Duas arestas são adjacentes se elas têm ao menos um
vértice em comum.
A aresta e={x,y} é incidente a ambos os vértices x e y.

Grafos / Matemática
67
Discreta/ Cin / UFPE
Grafo simples
v1

v3 v4 v2
V = {v1, v2, v3, v4, v5, v6}
e1

v5 v6

E = {{v1,v2},{v1,v3},{v1,v4},{v2,v4},{v3,v4},
{v4,v5}}
e1 é incidente a v4 e v5
Grafos / Matemática
68
Discreta/ Cin / UFPE
Exemplo

Exercício
Desenhe a representação geométrica do seguinte
grafo simples:

V = {1,2,3,4,5,6};
E ={(1,2),(1,3),(3,2),(3,6),(5,3),(5,1),(5,6),(4,6), (4,5),
(6,1),(6,2),(3,4)}
Grafos / Matemática
69
Discreta/ Cin / UFPE
Mais definições
 Multigrafo G=(V,E)
 Função f de E em {{u,v } | u,v V,u  v }
 As arestas e1 e e2 são chamadas de arestas múltiplas ou
paralelas se f(e1) = f(e2)

 Laço
 É uma aresta formada por um par de vértices idênticos.

Grafos / Matemática
70
Discreta/ Cin / UFPE
LFA
 LFA.Aula02.Autômatos Finitos
 https://
www.youtube.com/watch?v=xlrVXXt1dlI

 Listas sobre LFA


 https://
www.youtube.com/playlist?list=PLaPmgS59
eMSGBPhHwyDLUzFrtTsc2yHJt
Hipercomputação
 https://
pt.wikipedia.org/wiki/Hipercomputa%C3%A
7%C3%A3o

Você também pode gostar