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
Notas de Aula
●   Livro texto: Linguagens Formais e Autômatos
●




                  Aspectos Teóricos da Computação
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
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
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
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
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
Conjuntos
●   Provando que A está contido em B e que B
    está contido em A




                  Aspectos Teóricos da Computação
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Para a Próxima Aula
●   Ler capítulo 1 do livro texto.




                    Aspectos Teóricos da Computação
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

Aula 2 conceitos fundamentais-conjuntoserelacoes

  • 1.
    Curso: Ciência daComputaçã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 daComputaçã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 eLinguagens ● 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 Propriedadesde 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 juntosentã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 deRelaçõ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 eRelaçã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 Grafode 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 deRelaçõ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 eInfinitos ● 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 eInfinitos ● 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óximaAula ● 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