1. Curso: Ciência da Computação
Turma: 7ª Série
Aspectos Teóricos da Teoria da Computação
Aula 2
Conceitos Fundamentais: Conjuntos e
Relações
Aspectos Teóricos da Computação
2. Notas de Aula
● Livro texto: Linguagens Formais e Autômatos
●
Aspectos Teóricos da Computação
3. Aspectos Téoricos da Computação
Computação pode ser definida como a solução de um
problema ou, formalmente, o cálculo de uma função,
através de um algoritmo. A teoria da computação, um
subcampo da ciência da computação e matemática,
busca determinar quais problemas podem ser
computados em um dado modelo de computação. Por
milhares de anos, a computação foi feita com lápis e
papel, ou giz e quadro, ou mentalmente, às vezes com a
ajuda de tabelas.
Aspectos Teóricos da Computação
4. Conjuntos, Relações e Linguagens
● Um conjunto é uma coleção de objetos.
● Por exemplo o conjunto L é composto de 4
letras. Escrevemos L={a,b,c,d}.
● Os componentes de um conjunto são
chamados de elementos ou membros do
conjunto.
● Por exemplo b é um elemento de L.
Escrevemos b ∈ L.
● Por outro lado z ∉L.
Aspectos Teóricos da Computação
5. Conjuntos
● Seja A = {1, 2, 3, 4} e B = {3, 4}
● Podemos dizer que B ⊆ A ou B ⊇ A
● Igualdade de conjuntos
● A = B se e somente se os conjuntos possuem
exatamente os mesmos elementos. Formalmente:
– A = B se A ⊆ B e B ⊆ A
Aspectos Teóricos da Computação
6. Conjuntos
● Há também um conjunto sem elementos
denominado conjunto vazio
● Ele é representado por {} ou Ø
● Podemos indicar um conjunto como referência
de outro.
● Por exemplo seja L = {1,3,9} e G = {3,9}
– Podemos indicar G da seguinte maneira:
● G = {x:x є L tal que x > 2}
Aspectos Teóricos da Computação
7. Conjuntos
● Como podemos por exemplo representar os números
naturais ímpares?
● O = {x: є N e x não é divisível por 2}
● Dizemos então que O é um subconjunto de N.
● Um conjunto A é um subconjunto de B – A está
contido em B – se cada elemento de A também é um
elemento de B.
● Qualquer conjunto é um subconjunto dele próprio.
● O conjunto vazio é um subconjunto de qualquer
conjunto.
● Como podemos provar então que dois conjuntos são
iguais?
Aspectos Teóricos da Computação
8. Conjuntos
● Provando que A está contido em B e que B
está contido em A
Aspectos Teóricos da Computação
9. Operações entre Conjuntos
● União
● A U B = {x : x є A ou x є B}
● Exemplo {1,3,9} U {3, 5, 6} = {1,3,5,7,9}
● Intersecção
● A ∩ B = {x : x є A e x є B}
● Exemplo {1,3,9} ∩ {3,5,7} = {3}
● Diferença
● A – B = {x : x є A e x não pertence a B}
● {1,3,9} – {3,5,7} = {1,9}
● Complemento. A operação de complemento é definida em ralação a
um conjunto fixo U denominado conjunto universo, como segue:
● ~A = A' = { x | x є U e x ∉Α}
● Produto cartesiano.
● A x B = {(a,b) | a є A e b є B}
Aspectos Teóricos da Computação
10. Propriedades dos Conjuntos
Propriedades de conjuntos
● A U A = A ou A ∩ A = A → Idempotência.
● A U B = B U A ou A ∩ B = B ∩ A → Comutatividade
● (A U B) U C = A U (B U C) ou (A ∩ B) ∩ C = A ∩ (B ∩ C) →
Associatividade
● (A U B) ∩ C = (A ∩ C) U (B ∩ C) ou (A ∩ B) U C = (A U C) ∩ (B U C)
→ Distributividade
● (A U B) ∩ A = A ou (A ∩ B) U A = A → Absorção
● A – (B U C) = (A – B) ∩ (A – C) ou A – (B ∩ C) = (A – B) U (A – C) →
Leis de Morgan
Aspectos Teóricos da Computação
11. Conjuntos
● Dois conjuntos são disjuntos se não tiverem nenhum
elemento em comum.
● Temos também US={x : x є P para algum conjunto P є
S}
● Exemplo: S = {{a,b}, {b,c}, {c,d}}, então US = {a,b,c,d}
● A coleção de todos os subconjuntos de A é ela própria
um conjunto chamado conjunto-potência de A, e
denominado 2A.
● Por exemplo os subconjuntos de {c,d} são:
– O próprio conjunto {c,d}
– E os conjuntos unitários {c} e {d}
– E o conjunto vazio Ø
Aspectos Teóricos da Computação
12. Conjuntos
● Uma partição de um conjunto não vazio A é qualquer
subconjunto ∏ de 2A, tal que Ø não seja elemento de
∏, e que cada elemento de A pertença a um e
somente um dos conjuntos contidos em ∏. Em outras
palavras, ∏ é uma partição de A, se ∏ for um conjunto
de subconjuntos de A, tal que:
1. Cada elemento de ∏ é não vazio;
2. Membros distintos de ∏ são disjuntos;
3. U∏ = A;
● Por exemplo, {{a,b},{c},{d}} é uma partição de {a,b,c,d},
mas {{b,c,{c,d}} não o é.
Aspectos Teóricos da Computação
13. Conjuntos
● Um elemento do produto cartesiano A x B é
denotado da forma (a,b) é denominado par
ordenado e não deve ser confundido com o
conjunto {a,b}
● A ordem no par ordenado é muito importante
diferente do conjunto {a,b}.
● As componentes pode ser repetidas.
● O conceito de par ordenado pode ser
generalizado para n-upla ordenada (x 1,x2,...,xn)
Aspectos Teóricos da Computação
14. Conjuntos
● O produto cartesiano de A x B é um conjunto
de pares ordenados com a є A e b є B:
● {1,3,9} x {b,c,d} = {(1,b), (1,c), (1,d) …}
● Esse produto cartesiano também é uma
relação binária.
Aspectos Teóricos da Computação
15. Vamos definir juntos então
● O que seria uma Tripla?
● E uma Quádrupla?
● E uma Quíntupla?
● E uma Tupla?
● Se A1,...,An são conjuntos quaisquer, então o produto cartesiano
múltiplo de nível n A1 x … x An é o conjunto de todas as n-tuplas
ordenadas (a1, ...,an), com ai є Ai, para cada i = 1,...,n
● Temos também como notação A x … x A = An
● Por exemplo N2 é o conjunto de todos os possíveis pares
ordenados dos números naturais.
Aspectos Teóricos da Computação
16. Relações e Funções
● Definição: Suponha A e B conjuntos. Uma
Relação (binária) R de A em B é um
subconjunto de um produto cartesiano A x B,
ou seja: R ⊆ A x B
● Sendo que:
– A é denominado domínio, origem ou conjunto de partida
de R.
– B é denominado contradomínio, codomínio, destino ou
conjunto de chegada de R.
– Pode ser denotada como R: A → B
Aspectos Teóricos da Computação
17. Endorrelação, Auto-Relação
● Suponha A um conjunto. Então uma relação
R:A → A (origem e destino no mesmo conjunto)
é dita uma Endorrelação ou Auto-Relação.
Nesse caso, afirma-se que R é uma auto-
relação em A.
Aspectos Teóricos da Computação
18. Relação Conexa, Reflexiva, Simétrica,
Anti-Simétrica, Transitiva
● Sejam A um conjunto e R uma endorrelação
em A. Então R é uma relação:
a) Conexa, se, para todo a, b є A, vale que a = b.
b) Reflexiva, se, para todo a є A, vale (a,a) є R.
c) Simétrica, se, para todo a,b є A, se (a,b) є R então
(b,a) є R.
d) Anti-simétrica, se, para todo a,b є A, caso (a,b) є R
e (b,a) є R então a=b. Não é possível inverter a
ordem dos elementos ou seja o par (b,a) ∉R.
e) Transitiva, se, para todo a,b,c є A, caso (a,b) є R e
(b,c) є R então (a,c) є R.
Aspectos Teóricos da Computação
19. Função
● É uma associação de cada objeto de um tipo
com um único objeto de outro tipo.
● Pessoas com seu pai.
● Cães com seus donos.
● Formalmente: Uma função de um conjunto A
para um conjunto B é uma relação binária R
sobre A e B com a seguinte propriedade
especial: para cada elemento a є A, há
exatamente um par ordenado em R cuja
primeira componente é a.
Aspectos Teóricos da Computação
20. Função
● Exemplo: seja
● R1 = {(x,y) : x є C, u є S e x é uma cidade do
estado y}
● R2 = {(x,y) : x є S, y є C e y é uma cidade do
estado x}
● R1 é uma função mas R2 não é uma função.
● Cada cidade está em um e somente um
estado.
● No segundo caso um estado pode conter
várias cidades.
Aspectos Teóricos da Computação
21. Funções
● f:A → B
● Dizemos que A é o domínio da função.
● Se a é algum elemento de A escrevemos f(a)
para designar o elemento de B, tal que (a,b) є f.
● O objeto f(a) é conhecido como imagem de a
sobre f.
● O contra-domínio de f é a imagem do seu
domínio.
● Exemplo: função soma m e n
● f((m,n)) = m + n
Aspectos Teóricos da Computação
22. Funções
● Função injetora: Uma função f: A → B é dita injetora se, para quaisquer dois
elementos distintos a, a' є A, f(a) ≠ f(a').
● Exemplo: Se C for o conjunto das cidades do Brasil, S é o conjunto de estados e se a
função g: S → C for especificada como g(s) = a capital do estado S para cada s є S; então
g é injetora, uma vez que nenhum par de estados apresenta a mesma capital.
● Função sobrejetora: Uma função f: A → B é dita sobrejetora se cada elemento de B
for a imagem, sob f, de algum dos elementos de A. A função g acima não é
sobrejetora mas a função R1 é, já que cada estado contém, pelo menos, uma
cidade.
● Bijeção: Um mapeamento f: A → B é dita uma bijeção entre A e B, se ele for
simultaneamente injetor e sobrejetor.
● Por exemplo, se Co é o conjunto das cidades que são capitais de estado, então a
função g: S → Co , acima especificada, g(s) = a capital do estado s é uma
bijeção entre S e Co.
● A inversa de uma relação binária R está contido A x B é denotada R-1 está contido B
x A, e é simplesmente a relação {(b,a): (a,b) є R). Por exemplo, a relação R2 definida
anteriormente é a inversa de R1.
● Uma função f: A → B também pode não ter uma inversa caso haja algum elemento b
є B, tal que, f(a) ≠ b para todo a є A.. No entanto se f for uma bijeção nenhuma
dessas situações podem ocorrer.
Aspectos Teóricos da Computação
23. Tipos Especiais de Relações Binárias
● Uma relação binária pode ser representada por
um grafo orientado.
● Seja A um conjunto e R é um subconjunto de A
x A, então cada elemento de A é representado
por um pequeno círculo – denominado vértice
do grafo orientado.
● Uma seta apontando de a para b, ocorre no
grafo se, e somente se, (a,b) є R.
● Essas setas são denominados arcos do grafo
orientado ou também arestas.
Aspectos Teóricos da Computação
24. Grafo Orientado
● Exemplo: Seja R = {(a,b),(b,a),(a,d),(d,c),(c,c),(c,a)} é
representado pelo grafo da figura abaixo.
●
a b
●
●
●
d c
●
● Grafos orientados e não orientados são muito úteis
para representar sistemas complexos como tráfego de
redes de comunicação, estruturas e processos
computacionais.
Aspectos Teóricos da Computação
25. Grafos Orientados
● Relação reflexiva: se (a,a) є R para cada a є A.
Os grafos orientados reflexivos têm em cada
vértice um arco apontando para si mesmo.
● Uma relação R subconjunto de A x A é
simétrica se (b,a) є R, sempre que (a,b) є R.
● Dê um exemplo de uma relação simétrica e
outro de uma relação reflexiva.
Aspectos Teóricos da Computação
26. Relação Simétrica e Relação Reflexiva
● Simétrica: Conjunto de 6 amigos a, b, c, d, e, f.
Se a é amigo de b, b é amigo de a e assim
sucessivamente.
● Reflexiva: Conjunto dos números naturais
menores ou iguais a ele mesmo.
Aspectos Teóricos da Computação
27. Grafos
● Uma relação simétrica que não apresenta
pares da forma (a,a) costuma ser representada
na forma de grafo não orientado, ou
simplesmente, grafo.
a b
d c
Aspectos Teóricos da Computação
28. Grafos
Uma relação R é dita anti-simétrica quando, sempre que (a,b)
є R, e a e b forem distintos, então, (b,a) não pertence R.
● Por exemplo seja P o conjunto de todas as pessoas.
Então {(a,b): a,b є P e a é o pai de b} é anti-simétrica.
Uma relação pode não ser simétrica, nem anti-simétrica; por
exemplo a relação {(a,b): a,b є P e a gosta de b}.
Uma relação binária é dita transitiva quando sempre que
(a,b) є R e (b,c) є R, então (a,c) є R. Por exemplo a relação
{(a,b): a,b є P e a é ancestral de b} é transitiva, pois, se a é
um ancestral de b, e b é um ancestral de de c, então a é um
ancestral de c.
Como representamos em um grafo a transitividade. Vamos
pensar em termos dos ascestrais....
Aspectos Teóricos da Computação
29. Exemplo de Grafo de uma Relação Transitiva
● Sempre que houver um conjunto de setas que
leve a até z haverá uma seta direta ligando a
até z.
a d
b c
Aspectos Teóricos da Computação
30. Tipos Especiais de Relações Binárias
● Uma relação que seja reflexiva, simétrica, e
transitiva é denominada relação de
equivalência.
● A representação de uma relação de
equivalência por meio de um grafo não
orientado compõe-se de um certo conjunto de
clusters.
● Em cada um desses clusters , cada par de
vértices é conectado por uma linha.
Aspectos Teóricos da Computação
31. Conjuntos Finito e Infinitos
● Quando trabalhamos com conjuntos finitos algumas afirmações
sobre os conjuntos não exigem demonstração pois são óbvias.
● Por exemplo se A é subconjunto de B o número de elementos de A é
menor ou igual ao número de elementos de B.
● Entretanto quando começamos a trabalhar com conjuntos infinitos
essas afirmações não são tão óbvias.
● Será que existem mais múltiplos de 17 {0, 17, 34, 51, …} do que
quadrados perfeitos { 0, 1, 4, 9, 16, ...}
● Dizemos que dois conjuntos, A e B, são equinumerosos se houver
uma função bijetora f: A → B.
● Lembre-se que se há uma bijeção f: A → B então há uma bijeção f-1 :
B → A: logo, a equinumerosidade é uma relação simétrica.
● Por exemplo, {8, vermelho, {Ø,b}} e {1,2,3} são equinumerosos;
suponha que f(8)=1, f(vermelho)=2, f({ Ø,b})=3.
Aspectos Teóricos da Computação
32. Conjuntos Finito e Infinitos
● No caso geral dizemos que um conjunto é finito se, intuitivamente ele
for equinumeroso com {1,2,3,...,n} para algum número natural N.
● Dizemos que o número de elementos de um conjunto finito é a sua
cardinalidade |A|.
● Já um conjunto é dito infinito quando ele não for finito.
● Por exemplo o conjunto dos números naturais N é infinito.
Aspectos Teóricos da Computação
33. Para a Próxima Aula
● Ler capítulo 1 do livro texto.
Aspectos Teóricos da Computação
34. Exercícios para Entregar
1. Descreva o conjunto dos números que satisfazem a seguinte condição: G = {x : x є I e x > 2}
2. Se A é um subconjunto de B e B é um subconjunto de A o que podemos afirmar sobre esses
dois conjuntos?
Aspectos Teóricos da Computação