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

A U B = B U A ou A B = B A Comutatividade

Idempotncia.

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

O produto cartesiano de A x B um conjunto de


pares ordenados com a A e b B:

Exemplo: {a,b} {b,a} quando estamos falando de


par ordenado.

{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').

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.

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.

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.

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

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

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.

Entretanto quando comeamos a trabalhar com conjuntos infinitos


essas afirmaes no so to bvias.

Por exemplo se A subconjunto de B o nmero de elementos de A


menor ou igual ao nmero de elementos de B.

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


a

Considere a relao R = {(a,b),(a,d),(b,b),(b,c),(c,c),

(d,b),(d,c),(d,e),(d,f),(e,e),(e,f),(f,a),(f,c),(f,d),(f,e)};
observe que Ra = {b,d},Rb={b,c}, Rc={c}, Rd={b,c,e,f},
Re={a,e} e Rf={c,d,e}.

Levando tudo isso em conta R pode ser


representada de acordo com a seguinte matriz ao
lado.

A sequencia de clulas da diagonal


x

Seu complemento
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

x
x
x

e
f

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:

4.

5.

6.

7.

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}

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}}}

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)

Escreva explicitamente cada uma das seguinte expresses.


1.

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

2.

x {1,2}

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.

9.

10.

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.

9.

R-1

10.

R U R-1

11.

R R-1

Desenhe dois grafos orientados representando relaes dos seguintes tipos:


8.

Reflexiva, transitiva e anti-simtrica.

9.

Reflexiva, transitiva e nem simtrica nem anti-simtrica.

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