graph TD subgraph Diagonais D2["s=2: (1,1)"] D3["s=3: (1,2),(2,1)"] D4["s=4: (1,3),(2,2),(3,1)"] D5["s=5: (1,4),(2,3),(3,2),(4,1)"] end start((Início)) --> D2 --> D3 --> D4 --> D5 note["Ordem por soma s=n+m crescente; percorre cada diagonal listando pares (n,m)."] D4 -.-> note
Conjuntos Enumeráveis e Não Enumeráveis
Objetivos da Aula
- Compreender o conceito de conjuntos enumeráveis e não-enumeráveis
- Diferenciar entre conjuntos contáveis e não-contáveis
- Aplicar o conceito de enumeração em problemas computacionais
Conteúdo
NotaDefinições essenciais
- Enumerável (contável): existe bijeção com \(\mathbb{N}\), ou enumeração total (e: \(\mathbb{N} \to A\)).
- Não-enumerável: não existe tal bijeção; cardinalidade estritamente maior que \(|\mathbb{N}|\).
- Cardinalidades:
- \(|\mathbb{N}| = \aleph_0\) (contável).
- \(|(0,1)| = |\mathbb{R}| = \mathfrak{c}\) (contínuo), não-enumerável (prova por diagonalização de Cantor; ver Sipser (2012)).
- Fatos úteis:
- União contável de conjuntos enumeráveis é enumerável.
- Produto cartesiano \(\mathbb{N} \times \mathbb{N}\) é enumerável (enumeração por diagonais).
1. Conjuntos Enumeráveis
- Definição formal de conjunto enumerável
- Exemplos de conjuntos enumeráveis:
- Números naturais \(\mathbb{N}\)
- Números inteiros \(\mathbb{Z}\)
- Números racionais \(\mathbb{Q}\)
- Técnicas de enumeração
2. Conjuntos Não-Enumeráveis
- O conceito de não-enumerabilidade
- O conjunto dos números reais \(\mathbb{R}\)
- O conjunto das funções f: \(\mathbb{N} \to \{0,1\}\)
Prova por Diagonalização de Cantor (esboço)
- Suponha, para fins de contradição, que as sequências infinitas \(x: \mathbb{N} \to \{0,1\}\) possam ser enumeradas: \(x_1, x_2, x_3, \dots\).
- Construa a sequência \(y\) tal que \(y(i) = 1 - x_i(i)\) (inverte o i-ésimo bit da i-ésima sequência).
- Então \(y\) difere de cada \(x_i\) no i-ésimo bit, logo \(y\) não aparece na enumeração — contradição. Portanto, o conjunto é não-enumerável (ver Sipser (2012)).
3. Cardinalidade e Comparação de Conjuntos
- Noção de cardinalidade
- Conjuntos equipotentes
- O conceito de contagem em conjuntos infinitos
Diagrama: Enumeração por Diagonais em \(\mathbb{N} \times \mathbb{N}\)
Prova: Produto de Enumeráveis é Enumerável (esboço)
Sejam \(A = \{a_i\}_{i\in\mathbb{N}}\) e \(B = \{b_j\}_{j\in\mathbb{N}}\) enumerações. Para enumerar \(A\times B\):
- Considere o reticulado de índices \((i,j)\in\mathbb{N}\times\mathbb{N}\) e percorra por diagonais de soma \(s=i+j\) crescente (ver Seção 2.3.1).
- Liste os pares \((a_i, b_j)\) na mesma ordem dos índices.
Alternativamente, use a função de pareamento de Cantor \(\pi(i,j) = \tfrac{1}{2}(i+j)(i+j+1) + j\), que é uma bijeção \(\mathbb{N}\times\mathbb{N} \to \mathbb{N}\). Assim, \(k=\pi(i,j)\) fornece uma enumeração explícita.
Exemplo: Enumerando os Números Racionais
Código Python
from math import gcd
def racionais_positivos_unicos():
"""Gera racionais positivos em termos reduzidos (n/d) sem duplicatas,
percorrendo diagonais de n+d = s (s = 2,3,...) em ordem crescente."""
s = 2
while True:
for n in range(1, s):
d = s - n
if gcd(n, d) == 1:
yield (n, d)
s += 1
print("Primeiros 20 racionais positivos em termos reduzidos (n/d):")
gen = racionais_positivos_unicos()
for i in range(20):
n, d = next(gen)
print(f"{n}/{d}", end="\n" if i % 5 == 4 else " ")
Primeiros 20 racionais positivos em termos reduzidos (n/d):
1/1 1/2 2/1 1/3 3/1
1/4 2/3 3/2 4/1 1/5
5/1 1/6 2/5 3/4 4/3
5/2 6/1 1/7 3/5 5/3
Diagrama: Relação entre Conjuntos Numéricos
graph TD N[Naturais ℕ] --> Z[Inteiros ℤ] Z --> Q[Racionais ℚ] Q --> R[Reais ℝ] R --> C[Complexos ℂ] style N fill:#f9f,stroke:#333,stroke-width:2px style Z fill:#bbf,stroke:#333,stroke-width:2px style Q fill:#9f9,stroke:#333,stroke-width:2px style R fill:#f99,stroke:#333,stroke-width:2px style C fill:#ff9,stroke:#333,stroke-width:2px classDef enumeravel fill:#9f9,stroke:#333,stroke-width:2px class N,Z,Q enumeravel classDef nao_enumeravel fill:#f99,stroke:#333,stroke-width:2px class R,C nao_enumeravel
NotaAtividade Prática
- Implemente uma função em Python que gere os números inteiros na seguinte ordem: \(0, 1, -1, 2, -2, 3, -3, \ldots\)
- Explique por que o conjunto dos números reais entre 0 e 1 é não-enumerável (veja Seção 2.2.1).
- Demonstre que o conjunto dos números algébricos é enumerável.
Exercícios para Casa
- Mostre que a união de uma quantidade enumerável de conjuntos enumeráveis é enumerável.
- O produto cartesiano \(\mathbb{N} \times \mathbb{N}\) é enumerável? Justifique sua resposta (veja Seção 2.3.1 e Seção 2.3.2).
- O conjunto das sequências finitas de números naturais é enumerável? E o conjunto das sequências infinitas?
DicaGabarito Resumido
- União contável de enumeráveis: interlace/pareamento de enumerações (por diagonais) produz uma enumeração única.
- \(\mathbb{N}\times\mathbb{N}\) é enumerável: ordenar por diagonais de \(n{+}m\) e listar pares \((n,m)\) nessa ordem (cf. Seção 2.3.1, Seção 2.3.2).
- Sequências finitas de naturais: enumerável (união, sobre o comprimento, de \(\mathbb{N}^k\), cada \(\mathbb{N}^k\) é enumerável). Sequências infinitas de naturais: não-enumerável; há uma injeção de \(\{0,1\}^{\mathbb{N}}\) em \(\mathbb{N}^{\mathbb{N}}\) e \(\{0,1\}^{\mathbb{N}}\) é não-enumerável por diagonalização.
Referências Bibliográficas
SIPSER, Michael. Introdução à Teoria da Computação. 3. ed. São Paulo, Brasil: Cengage Learning, 2012.