Você está na página 1de 46

Curso: Cincia da Computao

Turma: 6 Srie

Teoria da Computao

Aula 2

Conceitos Bsicos da Teoria da Computao

Teoria da Computao
Teoria da Computao
Computao pode ser definida como a soluo de
um problema ou, formalmente, o clculo de uma
funo, atravs de um algoritmo. A teoria da
computao, um subcampo da cincia da
computao e matemtica, busca determinar
quais problemas podem ser computados em um
dado modelo de computao. Por milhares de
anos, a computao foi feita com lpis e papel, ou
giz e quadro, ou mentalmente, s vezes com a
ajuda de tabelas.

Teoria da Computao
Qual o conjunto dos nmeros binrios que
tem dois dgitos?

Teoria da Computao
M = {00, 01, 10, 11}

E se fosse o conjunto N de todas as


combinaes de nmeros binrios?

Teoria da Computao
N = {0, 1, 01, 00, 10, 010, 011...}

Qual uma caracterstica importante


desse conjunto?

Teoria da Computao
Ele infinito

Teoria da Computao
Introduo
Linguagem Natural
No tem padro
Linguagem Computacional
So mais simples.
So criadas artificialmente para representao.
So padronizadas.
Isso acontece para que os problemas possam ser
tratados e resolvidos de maneira satisfatria pelo
computador.

Teoria da Computao
Linguagem Computacional
As maneiras sistemticas de descrever uma
linguagem de programao so:
um mtodo que permite construir programas
sintaticamente corretos - gerao (Gramtica);
um mtodo que permite verificar se um programa
escrito est sintaticamente correto -
reconhecimento (Autmatos);

Teoria da Computao
Conjuntos, Relaes e Linguagens
Um conjunto uma coleo de objetos.
Por exemplo o conjunto L composto de 4
letras. Escrevemos L={a,b,c,d}.
Os componentes de um conjunto so
chamados de elementos ou membros do
conjunto.
Por exemplo b um elemento de L.
Escrevemos b L.
Podemos dizer tambm L contm b.
Por outro lado z no pertence a L.

Teoria da Computao
Conjuntos
H tambm um conjunto sem elementos
denominado conjunto vazio
Ele representado por {} ou
Podemos indicar um conjunto como referncia
de outro.
Por exemplo seja I = {1,3,9} e G = {3,9}
Podemos indicar G da seguinte maneira:
G = {x:x I tal que x > 2}

Teoria da Computao
Conjuntos
Como podemos por exemplo representar os nmeros
naturais mpares?
O = {x: N e x no divisvel por 2}
Dizemos ento que O um subconjunto de N.
Um conjunto A um subconjunto de B A est
contido em B se cada elemento de A tambm um
elemento de B.
Qualquer conjunto um subconjunto dele prprio.
O conjunto vazio um subconjunto de qualquer
conjunto.
Como podemos provar ento que dois conjuntos so
iguais?
Teoria da Computao
Conjuntos
Provando que A est contido em B e que B est
contido em A

Teoria da Computao
Operaes entre Conjuntos
Unio
A U B = {x : x A ou x B}
Exemplo {1,3,9} U {3, 5, 6} = {1,3,5,7,9}
Interseco
A B = {x : x A e x B}
Exemplo {1,3,9} {3,5,7} = {3}
Diferena
A B = {x : x A e x no pertence a B}
{1,3,9} {3,5,7} = {1,9}

Teoria da Computao
Conceitos Bsicos
Propriedades de conjuntos
A U A = A ou A A = A Idempotncia.
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 Absoro
A (B U C) = (A B) (A C) ou A (B C) = (A B) U (A C)
Leis de Morgan

Teoria da Computao
1 Lei de Morgan
Provar (pg. 21 do livro)
L = A (B U C)

Teoria da Computao
Conjuntos
Dois conjuntos so disjuntos se no tiverem nenhum
elemento em comum.
Temos tambm US={x : x P para algum conjunto P
S}
Exemplo: S = {{a,b}, {b,c}, {c,d}}, ento US = {a,b,c,d}
A coleo de todos os subconjuntos de A ela prpria
um conjunto chamado conjunto-potncia de A, e
denominado 2A.
Por exemplo os subconjuntos de {c,d} so:
O prprio conjunto {c,d}
E os conjuntos unitrios {c} e {d}
E o conjunto vazio

Teoria da Computao
Conjuntos
Uma partio de um conjunto no vazio A qualquer
subconjunto de 2A, tal que no seja elemento de
, e que cada elemento de A pertena a um e
somente um dos conjuntos contidos em . Em outras
palavras, uma partio de A, se for um conjunto
de subconjuntos de A, tal que:
1. Cada elemento de no vazio;
2. Membros distintos de so disjuntos;
3. U = A;

Por exemplo, {{a,b},{c},{d}} uma partio de {a,b,c,d},


mas {{b,c,{c,d}} no o .

Teoria da Computao
Relaes e Funes
Par ordenado: A ordem dentro do conjunto
importante. Formado por dois elementos.
Exemplo: {a,b} {b,a} quando estamos falando de
par ordenado.
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 tambm uma
relao binria.

Teoria da Computao
Vamos definir juntos ento
O que seria uma Tripla?
E uma Qudrupla?
E uma Quntupla?
E uma Tupla?

Se A1,...,An so conjuntos quaisquer, ento o produto cartesiano


mltiplo de nvel n A1 x x An o conjunto de todas as n-tuplas
ordenadas (a1, ...,an), com ai Ai, para cada i = 1,...,n
Temos tambm como notao A x x A = An
Por exemplo N2 o conjunto de todos os possveis pares
ordenados dos nmeros naturais.

Teoria da Computao
Funo

O que uma funo???

Teoria da Computao
Funo
uma associao de cada objeto de um tipo
com um nico objeto de outro tipo.
Pessoas com seu pai.
Ces com seus donos.
Formalmente: Uma funo de um conjunto A
para um conjunto B uma relao binria 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.

Teoria da Computao
Funo
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 funo mas R2 no uma funo.
Cada cidade est em um e somente um
estado.
No segundo caso um estado pode conter vrias
cidades.

Teoria da Computao
Funes
f:A B
Dizemos que A o domnio da funo.
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-domnio de f a imagem do seu
domnio.
Exemplo: funo soma m e n
f((m,n)) = m + n

Teoria da Computao
Funes
Funo injetora: Uma funo 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
funo g: S C for especificada como g(s) = a capital do estado S para cada s S; ento
g injetora, uma vez que nenhum par de estados apresenta a mesma capital.
Funo sobrejetora: Uma funo f: A B dita sobrejetora se cada elemento de B
for a imagem, sob f, de algum dos elementos de A. A funo g acima no
sobrejetora mas a funo R1 , j que cada estado contm, pelo menos, uma
cidade.
Bijeo: Um mapeamento f: A B dita uma bijeo entre A e B, se ele for
simultaneamente injetor e sobrejetor.
Por exemplo, se Co o conjunto das cidades que so capitais de estado, ento a
funo g: S Co , acima especificada, g(s) = a capital do estado s uma
bijeo entre S e Co.
A inversa de uma relao binria R est contido A x B denotada R-1 est contido B
x A, e simplesmente a relao {(b,a): (a,b) R). Por exemplo, a relao R2 definida
anteriormente a inversa de R1.
Uma funo f: A B tambm pode no ter uma inversa caso haja algum elemento b
B, tal que, f(a) b para todo a A.. No entanto se f for uma bijeo nenhuma
dessas situaes podem ocorrer.
Teoria da Computao
Tipos Especiais de Relaes Binrias
Uma relao binria pode ser representada por
um grafo orientado.
Seja A um conjunto e R um subconjunto de A
x A, ento cada elemento de A representado
por um pequeno crculo denominado vrtice
do grafo orientado.
Uma seta apontando de a para b, ocorre no
grafo se, e somente se, (a,b) R.
Essas setas so denominados arcos do grafo
orientado ou tambm arestas.

Teoria da Computao
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 no orientados so muito teis


para representar sistemas complexos como trfego de
redes de comunicao, estruturas e processos
computacionais.
Teoria da Computao
Grafos Orientados
Relao reflexiva: se (a,a) R para cada a A.
Os grafos orientados reflexivos tm em cada
vrtice um arco apontando para si mesmo.
Uma relao R subconjunto de A x A
simtrica se (b,a) R, sempre que (a,b) R.
D um exemplo de uma relao simtrica e
outro de uma relao reflexiva.

Teoria da Computao
Relao Simtrica e Relao Reflexiva
Simtrica: 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 nmeros naturais
menores ou iguais a ele mesmo.

Teoria da Computao
Grafos
Uma relao simtrica que no apresenta
pares da forma (a,a) costuma ser representada
na forma de grafo no orientado, ou
simplesmente, grafo.
a b

d c

Teoria da Computao
Grafos
Uma relao R dita anti-simtrica quando, sempre que (a,b)
R, e a e b forem distintos, ento, (b,a) no pertence R.
Por exemplo seja P o conjunto de todas as pessoas.
Ento {(a,b): a,b P e a o pai de b} anti-simtrica.
Uma relao pode no ser simtrica, nem anti-simtrica; por
exemplo a relao {(a,b): a,b P e a gosta de b}.
Uma relao binria dita transitiva quando sempre que
(a,b) R e (b,c) R, ento (a,c) R. Por exemplo a relao
{(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, ento a um
ancestral de c.
Como representamos em um grafo a transitividade. Vamos
pensar em termos dos ascestrais....

Teoria da Computao
Exemplo de Grafo de uma Relao 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

Teoria da Computao
Tipos Especiais de Relaes Binrias
Uma relao que seja reflexiva, simtrica, e
transitiva denominada relao de
equivalncia.
A representao de uma relao de
equivalncia por meio de um grafo no
orientado compe-se de um certo conjunto de
clusters.
Em cada um desses clusters , cada par de
vrtices conectado por uma linha.

Teoria da Computao
Conjuntos Finito e Infinitos
Quando trabalhamos com conjuntos finitos algumas afirmaes
sobre os conjuntos no exigem demonstrao pois so bvias.
Por exemplo se A subconjunto de B o nmero de elementos de A
menor ou igual ao nmero de elementos de B.
Entretanto quando comeamos a trabalhar com conjuntos infinitos
essas afirmaes no so to bvias.
Ser que existem mais mltiplos de 17 {0, 17, 34, 51, } do que
quadrados perfeitos { 0, 1, 4, 9, 16, ...}
Dizemos que dois conjuntos, A e B, so equinumerosos se houver
uma funo bijetora f: A B.
Lembre-se que se h uma bijeo f: A B ento h uma bijeo f-1 :
B A: logo, a equinumerosidade uma relao simtrica.
Por exemplo, {8, vermelho, {,b}} e {1,2,3} so equinumerosos;
suponha que f(8)=1, f(vermelho)=2, f({ ,b})=3.

Teoria da Computao
Conjuntos Finito e Infinitos
No caso geral dizemos que um conjunto finito se, intuitivamente ele
for equinumeroso com {1,2,3,...,n} para algum nmero natural N.
Dizemos que o nmero de elementos de um conjunto finito a sua
cardinalidade |A|.
J um conjunto dito infinito quando ele no for finito.
Por exemplo o conjunto dos nmeros naturais N infinito.

Teoria da Computao
Tcnicas de Demonstrao
Induo Matemtica.
Princpio das Casas de Pombo.
Diagonalizao.

Teoria da Computao
Princpio da Induo Matemtica
Seja A um conjunto de nmeros naturais tal que:
1. 0 A, e,
2. Para cada nmero natural n, se {0,1,...,n} um subconjunto de A, ento
n+1 A
Neste caso A = N.
Em termos menos formais, o princpio da induo matemtica garante
que qualquer conjunto de nmeros naturais que contenha o zero e que
goze da propriedade de conter o nmero n+1 sempre que contiver todos
os nmeros de 0 at n, deve ser, o prprio conjunto de todos os
nmeros naturais.
A justificativa desse princpio deve ser intuitivamente clara; todo nmero
natural deve ser encontrado em A, j que ele pode ser atingido, a partir
de zero, atravs de uma sucesso finita de passos, que adiciona ao
conjunto um elemento de cada vez.

Teoria da Computao
Princpio da Induo Matemtica
Outro argumento em favor da mesma ideia explora a contradio:
suponhamos que (1) e (2) so vlidas, mas que A N. Nesse caso,
algum nmero natural de N ter sido omitido em A.. Em particular, seja n
o primeiro nmero de N omitido em A.. Ento n, no pode ser zero, uma
vez que 0 A por (1); e uma vez que {0,1,...,n-1) um subconjunto de A
pela escolha de n, ento n A por (2), o que uma contradio.
Como utilizamos a induo:
Como base da induo, demonstramos que 0 A, isto , que P
verdadeiro para 0.
Na hiptese da induo pressuposto que, para algum n>=0 fixo,
mas arbitrrio, a propriedade se aplica para nmero natural 0, 1,
2, ...,n.
No passo indutivo, demonstramos, utilizando a hiptese da
induo, que P verdadeiro para n+1. Pelo princpio da induo,
A ser, ento, igual a N, ou seja, a propriedade P se aplica a
todos os nmeros naturais.

Teoria da Computao
Induo Matemtica
Exemplo: Demonstraremos que, para qualquer
n>=0, 1+2+...+n=(n2+n)/2
Base da induo. Seja n=0. Ento, a somatria, do
lado esquerdo da igualdade, nula, pela ausncia
de elementos a somar. A expresso direita
tambm 0.
Hiptese da induo. Admitamos como verdade
que, para algum n>=0, 1+2+...+m=(m2+m)/2
sempre que m<=n.
Passo indutivo 1+2+...+n+(n+1) = (1+2+...+n)+(n+1)
= (n2+n)/2 + (n + 1) (Pela hiptese da induo) =
(n2 + n + 2n + 2)/2 = [(n+1)2 + (n+1)]/2 CQD.

Teoria da Computao
O Princpio das Casas de Pombos
Se A e B so conjuntos finitos, e |A| > |B|, ento
no pode haver nenhuma funo injetora de A
para B.
Em outras palavras, se tentarmos fazer
corresponder os elementos de A (os pombos)
aos elementos de B (as casas de pombos),
cedo ou tarde teremos de colocar mais de um
pombo em uma mesma casa.

Se uma funo so crescente ou s decrescente, valores diferentes de x possuem


imagens diferentes. Quando isso ocorre dizemos que a funo injetora.
Em outras palavras, uma funo dita injetora se dois elementos distintos de A
correspondem sempre a duas imagens distintas em B.

Teoria da Computao
Prova do Princpio das Casas de Pombos
Suponhamos que |b| = 0, isto , B = . Ento no pode haver
nenhuma funo f: A B de qualquer natureza e, portanto, no pode
haver nenhuma funo injetora de A para B.
Hiptese da induo. Suponha que f no seja injetora, garantindo-se
que f:A B, |A| > |B|, |B| <= n com n>=0.
Passo indutivo. Suponhamos que f: A B e |A| > |B| = n+1.
Escolhamos algum a A (uma vez que |A| > |B| = n+1 >=1, A no
vazio e portanto tal escolha possvel. Se houver outro elemento de
A, digamos a', tal que f(a) = f(a'), ento, obviamente f no ser uma
funo injetora e teremos concluda a prova.
Suponhamos, ento, que a seja o nico elemento mapeado por f
para o valor f(a) em B. Consideraremos, agora, os conjuntos A -{a}, B
{f(a)} e a funo g de A {a} para B {f(a)} que concorda com f em
todos os elementos, de A -{a}. Agora a hiptese indutiva se aplica,
porque B {f(a)} tem n elementos e |A-{a}| = |A| - 1 > |B| - 1 = |B
{f(A)}|. Portanto, h em |A| - {a} dois elementos distintos que so
mapeados por g (e portanto por f) para o mesmo elemento de B-{b}
e, assim, f no poderia ser injetora.
Teoria da Computao
Teorema
Seja R uma relao binria em um conjunto finito A se seja a,b
A.. Se houver algum caminho de a para b em R, ento,
existir em R um caminho cujo comprimento seja no mximo
igual a |A|, de a para b.
Prova: Suponhamos que (a1, a2,...,an) seja o caminho mais
curto de a1 = a para an = b, isto , o caminho com o menor
comprimento possvel entre esses dois elementos e suponha
que n > |A|. Pelo princpio das casas de pombos, deve haver
algum elemento de A visitado mais do que uma vez neste
caminho. Seja, ai=aj para 1 <= i < j <+ n. Nesta hiptese,
entretanto, (a1,a2,...,ai,aj+1,...,an) ser um caminho mais curto de
a para b, contradizendo nosso pressuposto de que (a1, a2,...,an)
o caminho mais curto de a para b.

Teoria da Computao
Princpio da Diagonalizao
Muito utilizado para demonstrar alguns fatos da
teoria da computao.
Seja R uma relao binria sobre um conjunto
A Seja D, o conjunto diagonal para R, dado por
{a:a A e {a,a} no pertence a R}. Para cada a
A, seja Ra = {b: b A e (a,b) R}. Nessas
condies, D ser distinto de cada Ra.

Teoria da Computao
O Princpio da Diagonalizao
Seja A um conjunto finito, ento R pode ser representado
como uma matriz quadrada; as linhas e as colunas so
rotulados com os elementos de A, e h um x na clula da
matriz cunha linha esteja rotulado com a, e cuja coluna
esteja rotulada com b, nos casos em que (a,b) R. O
conjunto diagonal D corresponde ao complemento da
sequncia de clulas da diagonal principal. Nessa
sequncia, as clulas com x da diagonal principal so
substitudas por clulas vazias e vice versa. Os
conjuntos Ra correspondem s diversas linhas da matriz.
O princpio da diagonalizao pode, em vista disso, ser
reenunciado: o complemento da diagonal diferente de
cada uma das linhas da matriz a que corresponde.

Teoria da Computao
Exemplo: O Princpio da Diagonalizao
Considere a relao R = {(a,b),(a,d),(b,b),(b,c),(c,c), a b c d e f
(d,b),(d,c),(d,e),(d,f),(e,e),(e,f),(f,a),(f,c),(f,d),(f,e)}; a x x
observe que Ra = {b,d},Rb={b,c}, Rc={c}, Rd={b,c,e,f},
b x x
Re={a,e} e Rf={c,d,e}.
c x
Levando tudo isso em conta R pode ser d x x x x
representada de acordo com a seguinte matriz ao
lado. e x x
f x x x x
A sequencia de clulas da diagonal
x x x
Seu complemento
x x x

O qual corresponde ao conjunto diagonal D ={a,d,f}.


De fato, D diferente de cada uma das linhas da
matriz; pois D, por construo, difere da primeira
linha ao menos na primeira posio; da segunda ao
menos na segunda posio, e assim por diante.
O princpio da diagonalizao tambm se aplica a
conjuntos infinitos pela mesma razo.
Teoria da Computao
Exerccios para Entregar
1. Descreva o conjunto dos nmeros que satisfazem a seguinte condio: 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?

3. Determine quais das afirmaes abaixo so verdadeiras e quais so falsas:

a) est contido

b)

c) {}

d) est contido em {}

e) {a,b} {a,b,c,{a,b}}

f) {a,b} est contido em {a,b,{a,b}}

g) {a,b,{a,b}} {a,b} = {a,b}

4. O que so os conjuntos abaixo? Denote-os utilizando somente chaves, vrgulas e numerais.

a) ({1,3,5} U {3,1}) {3,5,7}

b) U {{3}, {3,5}, {{5,7},{7,9}}}

5. Prove cada uma das seguintes igualdades

a) A U (B C) = (A U B) (A U C)

b) A (B U C) = (A B) U (A C)

6. Escreva explicitamente cada uma das seguinte expresses.

1. {1} x {1,2} x {1,2,3}

2. x {1,2}

7. Escreva os elementos do conjunto da funo f: A B tal que f(a) = a2 sendo que A={1,2,3,4,5,6)

Teoria da Computao
Exerccios para Entregar
8. Suponha que R = {(a,c),(c,e),(e,e),(e,b),(d,b),(d,d)}. Desenhe os grafos orientados representando cada uma das seguintes relaes:

8. R

9. R-1

10. R U R-1

11. R R-1

9. Desenhe dois grafos orientados representando relaes dos seguintes tipos:

8. Reflexiva, transitiva e anti-simtrica.

9. Reflexiva, transitiva e nem simtrica nem anti-simtrica.

10. Demonstre por induo que:

1.2.3 + 2.3.4+3.4.5+...+n.(n+1)(n+2) = [n.(n+1).(n+2).(n+3)]/4.

Teoria da Computao