Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Aplicações à Computação
Tópicos que serão estudados:
• Álgebra dos Conjuntos nas Linguagens de
Programação.
• Programação Lógica.
• Caminho Crítico no Diagrama PERT.
• Autômatos Finitos e Funções.
• Relações e Banco de Dados.
2
Álgebra dos Conjuntos nas
Linguagens de Programação
Definições:
1. Alfabeto: Conjunto finito e não vazio de símbolos (ou
caracteres).
Notação: Σ
4
Álgebra dos Conjuntos nas
Linguagens de Programação
Exemplo:
Σ = 0,1
• Σ ∗ = {𝜀, 0, 1, 00, 01, 10, 11, 000, 001, 010,
100, 101, 110, 111, 0000, … }.
• | 𝛼 | = 9; | 𝛽 | = 2; | 𝛾 | = 1; | 𝛿 | = 0.
a) 𝐿1 = 𝑎, 𝑎𝑏, 𝑏 .
b) 𝐿2 = 𝜀
7
Linguagens
c) 𝐿2 = 𝑎, 𝑎𝑎, 𝑎𝑎𝑎, 𝑎𝑎𝑎𝑎, …
𝐿2 = 𝑎, 𝑎2 , 𝑎3 , 𝑎4 , … = 𝑎𝑛 𝑛 > 0}.
d) 𝐿3 = 𝑎𝑏 𝑛 | 𝑛 ≥ 0
𝐿3 =
9
Operações sobre Linguagens
𝐿, 𝐿1 , 𝐿2 linguagens sobre um alfabeto Σ.
• União: 𝐿1 ∪ 𝐿2 = 𝛼 𝛼 ∈ 𝐿1 𝑜𝑢 𝛼 ∈ 𝐿2 }.
• Interseção: 𝐿1 ∩ 𝐿2 = 𝛼 𝛼 ∈ 𝐿1 𝑒 𝛼 ∈ 𝐿2 }.
• Diferença: 𝐿1 − 𝐿2 = 𝛼 𝛼 ∈ 𝐿1 𝑒 𝛼 ∉ 𝐿2 }.
• Complemento de 𝐿 sobre Σ:
𝐿′ = 𝛼 𝛼 ∈ Σ ∗ 𝑒 𝛼 ∉ 𝐿} = Σ ∗ − 𝐿.
10
Operações sobre Linguagens
Exemplo:
𝐿1 = 𝑎, 𝑏𝑎, 𝑎𝑏𝑎, 𝑎𝑏𝑏𝑏𝑎 ; 𝐿2 = 𝑏, 𝑎𝑏, 𝑎𝑏𝑎, 𝑎𝑎𝑏𝑏
linguagens sobre Σ = {𝑎, 𝑏}.
b) 𝐿1 ∩ 𝐿2 =
c) 𝐿1 − 𝐿2 =
11
Linguagem de Programação
• São linguagens sobre o alfabeto
constituído por letras, dígitos e símbolos
especiais.
14
Conjuntos e
Linguagem de Programação
• 𝑈: conjunto de idades das pessoas.
15
Programação em Lógica
• C, Pascal e Basic são linguagens
procedimentais (ou imperativas) –
especificam como deve ser feita alguma
coisa; codificam algoritmos (passo-a-
passo).
16
Prolog
• A linguagem Prolog inclui: predicados, conectivos
lógicos e regras de inferência - Princípio da
Resolução.
18
Fatos e Regras
Uma forma de declarar um fato como “uma
baleia é um mamífero” é:
mamifero(baleia).
Para representar o fato “Lucas é supervisor de
Meire” podemos escrever:
supervisor(lucas, meire).
19
Consultas
Consideremos uma Consultas:
árvore genealógica
representada em Prolog: ?progenitor(josé, rui).
true
progenitor(maria, josé).
progenitor(joão, josé).
?progenitor(joão, X ).
progenitor(joão, ana).
progenitor(josé, rui). X=josé;
X=ana. Variável
progenitor(josé, lia).
fail
progenitor(lia, jorge). substituída
pelo termo
20
Consultas
?progenitor(josé, rui).
21
Regras
Uma diferença básica entre uma regra e um fato é
que um fato é sempre uma informação verdadeira,
já uma regra precisa ser avaliada para que se
possa determinar se esta é verdadeira ou não.
Exemplo:
Consideremos a seguinte base de dados (fatos):
22
Regras
progenitor(maria, josé).
progenitor(joão, josé).
progenitor(joão, ana).
progenitor(josé, rui).
progenitor(josé, lia).
progenitor(lia, jorge).
masculino(joão).
masculino(josé).
masculino(jorge).
masculino(rui).
feminino(maria).
feminino(ana).
feminino(lia).
23
Regras
Relações pai / mãe / avô: Em Prolog:
• X é pai de Y se se
X é progenitor de Y e pai(X,Y) :- progenitor(X,Y),
X é masculino. masculino(X). e
• X é mãe de Y se
X é progenitor de Y e mãe(X,Y):- progenitor(X,Y),
X é feminino. feminino(X).
• X é avô de Y se X é pai de
Z e Z é progenitor de Y. avô(X,Y):- pai(X,Z),
progenitor(Z,Y).
(Ou: se X é pai de Z e Z é progenitor
de Y, então X é avô de Y)
24
Inferência da Linguagem Prolog
progenitor(maria, josé). fato 1
progenitor(joão, josé). fato 2
progenitor(joão, ana). fato 3
progenitor(josé, rui). fato 4
progenitor(josé, lia). fato 5
progenitor(lia, jorge). fato 6
masculino(joão). fato 7
masculino(josé). fato 8
masculino(jorge). fato 9
masculino(rui). fato 10
feminino(maria). fato 11
feminino(ana). fato 12
feminino(lia). fato 13
25
Inferência da Linguagem Prolog
26
Inferência da Linguagem Prolog
?pai(X, rui). Cabeça da regra 1
pai(X,rui):=progenitor(X,rui),masculino(X).
pai(X,rui):=progenitor(josé,rui),masculino(X).
fato4
pai(X,rui):=progenitor(josé,rui),masculino(josé).
fato8
X=josé
Ocorre então um retrocesso e Prolog busca, a partir da
posição seguinte ao fato 4 uma nova cláusula que
possa ser resolvida com a regra.
27
Relações de Ordem e
Diagramas PERT
Relações de ordem podem ser representadas
por diagramas de Hasse.
28
Diagrama PERT
Exemplo1: Projeto de elaboração de uma apostila
para um novo curso.
Atividade Atividade Duração Pré-requisito
(semana)
A Definição do projeto 1 -
B Pesquisa bibliográfica 4 A
C Texto preliminar 3 B
D Digitação 2 C
E Desenhos 3 C
F Revisão 2 D, E
G Correção e impressão 4 F
29
Diagrama PERT
Atividade A B C D E F G
Pré-requisito - A B C C D, E F
Tempo estimado
Precedência
Atividade
30
Caminho em um diagrama PERT
• Caminho:
31
Diagrama PERT
CAMINHO 1: A-B-C-D-F-G
CAMINHO 2: A-B-C-E-F-G
32
Caminho em um diagrama PERT
• Duração de um caminho: soma das durações de
todas as atividades que o compõe.
• Caminho 1: (A-B-C-D-F-G)
→ duração: 1+4+3+2+2+4 = 16 semanas.
• Caminho 2: (A-B-C-E-F-G)
→ duração: 1+4+3+3+2+4 = 17 semanas.
33
Caminho crítico em um
diagrama PERT
Caminho Crítico:
É o caminho com maior duração na rede.
34
Caminho crítico em um
diagrama PERT
35
Caminho crítico em um
diagrama PERT
36
Caminho em um diagrama PERT
Exemplo 2: 5h
C
10h 11h 3h 7h
A B F G
D
4h I
3h
E H
12h 11h
CAMINHOS:
Caminho 1. A-B-C-F-G-I
Caminho 2. A-B-D-F-G-I
Caminho 3. A-E-H-I
37
Caminho crítico em um
diagrama PERT
5
C
10 11 3 7
A B F G
10 D
4 I
3
E H
12 11
38
Autômatos Finitos
Máquina (ou Sistema) de Estados Finitos:
• É um modelo matemático de um sistema
com entradas e saídas discretas que podem
assumir um número finito e pré-definido de
estados.
39
Autômatos Finitos
Autômato Finito (Máquina de estado finito):
• Reconhecedor de palavras ou cadeia de
caracteres (𝑤 ∈ 𝐿 𝑜𝑢 𝑤 ∉ 𝐿).
• Bons modelos para computadores com
memória reduzida.
• Fazem parte de diversos dispositivos
eletromecânicos do dia-a-dia: lavadoras
de louça/roupa, termômetros eletrônicos,
relógios digitais, calculadoras e máquinas
de venda automática, etc.
40
Autômatos Finitos
Um exemplo concreto, embora redutor, é o caso de
um interruptor.
Tem associado dois estados de uma lâmpada:
acesa e apagada .
A transição de estado é comandada pela
manipulação do interruptor.
42
Autômatos Finitos Determinísticos
Definições Básicas:
Um AFD (M) é uma quíntupla
𝑀 = Σ, 𝑄, 𝛿, 𝑞0 , 𝐹 ,
onde:
Σ – é o alfabeto de entrada.
𝑄 – é um conjunto finito não vazio de estados.
𝛿 – é a função de transição de estados, definida
𝛿: 𝑄 × Σ → 𝑄 .
𝑞0 − é o estado inicial (𝑞0 ∈ 𝑄).
𝐹 − é o conjunto de estados finais, 𝐹 ⊆ 𝑄.
𝑞𝑓 é dito estado final.
43
Autômatos Finitos Determinísticos
44
Autômatos Finitos Determinísticos
Verifique se M reconhece as
seguintes palavras:
0 q0 • 001
• 1100
0 1
• 111
q1
1 • 00101
• 0
46
Banco de Dados
• Entende-se por dado, toda informação que
pode ser armazenada e que apresenta
algum significado dentro do contexto ao
qual ele se aplica.
Exemplos:
Nº matrícula
Nome
Data admissão
Endereço
Bairro
Cidade
47
Banco de Dados
• Banco de dados relacional:
48
Banco de Dados
Entidade: objeto importante no modelo.
Atributos: representam as propriedades das entidades.
Tupla: cada linha individual da tabela.
Grau da relação: Número de atributos.
Cardinalidade da relação: número de tuplas (linhas).
entidade
atributo Empregado
Matric. Nome Endereço Função Salário Dep.
147 Maria Lopes R. Antonio Soop, 632 Secretária 1200,00 D1
086 Zilda P. Silva R. Sibipiruna, 063 Aux. Adm. 1350,00 D3
204 André Moire Av. Palmares, 1027 Engenheiro 7900,00 D1
213 Sônia Valada Av. Brasil, 3255 Engenheiro 8200,00 D2
136 Roger Porto R. Ari Costa, 147 Técnico 1950,00 D1
Tupla 5
49
Banco de Dados
Exemplos:
• Fone: conjunto de 10 dígitos
• CPF: conjunto de 11 dígitos
• Idade_Empregado: 16 ≤ idade ≤70
• Departamentos: conjunto de departamentos
de uma empresa.
50
Relações e Banco de Dados
Definição Formal:
Relação em um Banco de Dados
É um subconjunto de 𝐷1 × 𝐷2 × 𝐷3 × ⋯ × 𝐷𝑛 ,
em que 𝐷𝑖 é o domínio do atributo 𝐴𝑖 , ou seja,
o conjunto no qual o atributo toma seus
valores.
Exemplo:
Empregado(matrícula, nome, endereço,
função, salário, departamento).
51
Banco de Dados
Modelo conceitual usual para um projeto de banco
de dados: diagrama entidade-relacionamento
(diagrama E-R)
Retângulos: entidades
Elipses: atributos
Losangos: relacionamentos
52
Banco de Dados
Exemplo:
Diagrama E-R para a relação “Proprietário”
53
Banco de dados
• Exemplos de Relacionamentos
ContaCliente Conta
Cliente
Residência
Cidade
Fonte: http://unip.moraes.org/2semestre/Administracao_Banco_Dados/Aula2_ModeloERa.pdf
54
Banco de Dados
• Chave primária: (Primary Key (PK) )
Chave (atributo) que identifica de forma única cada
tupla (linha) da tabela.
• Chave candidata:
Possui as mesmas propriedades da chave primária,
mas não é implementada.
• Chave invisível:
Atributo criado para ser usado como chave primária
(código de identificação).
55
Banco de Dados
Chave
Candidata
Chave
Primária
56
Banco de dados
Chave estrangeira: (Foreign Key (FK))
Atributo ou conjunto de atributos de uma relação
que é chave primária em outra relação.
A chave estrangeira implementa o relacionamento
em um banco de dados relacional.
57
Banco de dados
Disponível em http://www.luis.blog.br/chave%20primaria-chave-estrangeira-e-candidata.aspx
58
Banco de Dados
Integridade dos dados:
• Restrição de Chave: Toda relação deve ter pelo
menos uma chave primária.
59
Operações em Banco de Dados
No modelo de banco de dados relacional
podemos extrair dados usando operações
matemáticas pré-definidas sendo 4 operações
de conjunto e operações relacionais.
60
Operações em Banco de Dados
• Operação Junção (ou Join): combina as linhas de
duas tabelas através de uma chave comum.
Disponível em http://goo.gl/QNDjOF
61
LÓGICA PARA COMPUTAÇÃO
62