Featured image of post Uma Única Linha Pode Preencher um Quadrado? Curvas de Preenchimento de Espaço e a Intuição da Dimensão

Uma Única Linha Pode Preencher um Quadrado? Curvas de Preenchimento de Espaço e a Intuição da Dimensão

Da descoberta de Cantor da cardinalidade do contínuo à construção rigorosa das curvas de Peano e Hilbert, provas de convergência uniforme, sobrejetividade, continuidade 1/2-Hölder e não-diferenciabilidade em toda a parte, dimensão topológica vs. Hausdorff e aplicações como Google S2 e Hilbert R-Tree.

Logo na abertura do Livro I dos Elementos, Euclides de Alexandria estabeleceu duas definições fundamentais: «Um ponto é aquilo que não tem partes; uma linha é um comprimento sem largura (\(\mu\tilde{\eta}\kappa\omicron\varsigma\ \dot{\alpha}\pi\lambda\alpha\tau\acute{\varepsilon}\varsigma\)).» Segundo a nossa intuição geométrica quotidiana, uma curva matemática ideal tem espessura estritamente nula (\(\delta = 0\)). Durante mais de dois milénios pareceu evidente que um fio unidimensional sem largura jamais poderia preencher completamente o interior de um quadrado bidimensional \([0,1]^2\) sem deixar espaços vazios.

Contudo, em 1890, o matemático italiano Giuseppe Peano (1858–1932) derrubou essa certeza de dois mil anos num artigo de apenas cinco páginas nos Mathematische Annalen, construindo uma aplicação contínua e sobrejetiva \(f: [0,1] \to [0,1]^2\) do intervalo unitário sobre o quadrado unitário. Um ano depois (1891), David Hilbert (1862–1943) apresentou a sua construção geométrica recursiva: a curva de Hilbert. Mais surpreendente ainda: o que no final do século XIX foi encarado como um «monstro patológico» da matemática pura tornou-se um século mais tarde num dos algoritmos essenciais da ciência da computação moderna, alimentando o Google Maps (biblioteca Google S2), bases de dados espaciais (Hilbert R-Tree), algoritmos cache-oblivious e o balanceamento de carga em supercomputadores.


1. O Choque de Cantor (1877) e o Teorema de Netto (1879)

Em 1877, o fundador da teoria dos conjuntos, Georg Cantor, descobriu que existe uma bijeção (correspondência um-para-um) entre os pontos do segmento \([0,1]\) e os do quadrado \([0,1]^2\). Espantado com a sua própria demonstração, escreveu a Richard Dedekind a célebre frase: «Je le vois, mais je ne le crois pas!» (Eu vejo-o, mas não consigo acreditar!)

A ideia central de Cantor foi entrelaçar (interleave) os dígitos decimais (ou blocos indivisíveis terminados num dígito não nulo para eliminar rigorosamente a dupla representação de dízimas finitas como \(0{,}5 = 0{,}4999\dots\)):

\[x = 0.a_1 a_2 a_3 \dots, \quad y = 0.b_1 b_2 b_3 \dots \quad \Longrightarrow \quad t = \phi(x, y) = 0.a_1 b_1 a_2 b_2 a_3 b_3 \dots\]\[|[0,1]| = |[0,1]^2| = |[0,1]^n| = |\mathbb{R}| = \mathfrak{c} = 2^{\aleph_0}\]

Isto provou que o segmento \([0,1]\), o quadrado \([0,1]^2\) e o hipercubo \([0,1]^n\) possuem exatamente a mesma cardinalidade do contínuo \(\mathfrak{c} = 2^{\aleph_0}\). Todavia, Dedekind observou de imediato que tal bijeção é descontínua em toda a parte. Em 1879, Eugen Netto provou que não existe nenhuma bijeção contínua (homeomorfismo) entre \([0,1]\) e \([0,1]^2\): como \([0,1]\) é compacto e \([0,1]^2\) é Hausdorff, qualquer bijeção contínua seria um homeomorfismo; mas ao remover o ponto interior \(t_0 = 1/2\), \([0,1]\setminus\{1/2\} = [0,1/2) \cup (1/2,1]\) fica desconexo, enquanto o quadrado perfurado \([0,1]^2 \setminus \{f(1/2)\}\) continua conexo por caminhos — uma contradição!


2. A Curva de Peano (1890): Abdicar da Injetividade Liberta a Sobrejetividade Contínua!

Peano identificou a brecha lógica no teorema de Netto: apenas é impossível satisfazer simultaneamente continuidade, sobrejetividade e injetividade. Se abdicarmos da injetividade (permitindo autointerseções ou pontos múltiplos), podemos construir uma sobrejeção contínua \(f: [0,1] \to [0,1]^2\)!

Peano utilizou a expansão na base \(3\) (ternária) \(t = 0{,}t_1 t_2 t_3 \dots_3\) (\(t_m \in \{0,1,2\}\)) juntamente com o operador complemento \(k(d) = 2 - d\):

\[t = \sum_{m=1}^{\infty} \frac{t_m}{3^m} \;\; (t_m \in \{0,1,2\}), \qquad k(d) = 2 - d, \qquad k^n(d) = \begin{cases} d & (n \text{ even}) \\ 2 - d & (n \text{ odd}) \end{cases}\]\[x_n = k^{t_2 + t_4 + \cdots + t_{2n-2}}(t_{2n-1}), \qquad y_n = k^{t_1 + t_3 + \cdots + t_{2n-1}}(t_{2n})\]

Como \(k^n(d)\) depende apenas da paridade (par ou ímpar) do expoente \(n\), em qualquer fronteira de dupla representação ternária (como \(t = 1/3 = 0{,}0222\dots_3 = 0{,}1000\dots_3\)), a mudança de \(t_1 = 0\) (par) para \(t_1 = 1\) (ímpar) aciona \(k^1\), invertendo todos os zeros seguintes em dois e colando perfeitamente ambas as representações no mesmo ponto \((1/3, 1)\).


3. A Recursão Geométrica de Hilbert (1891) e Provas Analíticas Completas

Em 1891, David Hilbert substituiu a subdivisão \(3 \times 3\) de Peano por uma recursão binária de \(2 \times 2 = 4\) quadrantes: no nível \(n\), \([0,1]\) é dividido em \(4^n\) subintervalos fechados \(I_{n,k}\) de comprimento \(4^{-n}\) e \([0,1]^2\) em \(4^n\) subquadrados \(Q_{n,k}\) de lado \(2^{-n}\), cumprindo o Axioma A (Adjacência: \(Q_{n,k}\) e \(Q_{n,k+1}\) partilham sempre um lado) e o Axioma B (Encaixamento: \(Q_{n,k} = \bigcup_{j=0}^3 Q_{n+1, 4k-j}\)).

  flowchart TD
    A["Intervalo Unitário I = [0,1] & Quadrado Unitário Q = [0,1]²"] --> B["Subdivisão de nível n: 4ⁿ intervalos I_{n,k} (comprimento 4⁻ⁿ)<br/>e 4ⁿ subquadrados Q_{n,k} (lado 2⁻ⁿ, diagonal √2·2⁻ⁿ)"]
    B --> C["Axioma A (Adjacência): Q_{n,k} e Q_{n,k+1} partilham sempre uma aresta"]
    B --> D["Axioma B (Encaixamento): Para m > n e t ∈ I_{n,k}, H_n(t), H_m(t) ∈ Q_{n,k}"]
    C --> E["Continuidade 1/2-Hölder: ||H(t₁) - H(t₂)||₂ ≤ √6 · |t₁ - t₂|^{1/2}"]
    D --> F["Cota Uniforme de Cauchy: sup_t ||H_m(t) - H_n(t)||₂ ≤ √2 · 2⁻ⁿ → 0"]
    F --> G["Convergência Uniforme no espaço completo C([0,1], ℝ²): H(t) = lim_{n→∞} H_n(t)"]
    G --> H["Teorema 1 (Continuidade): Pelo teorema de Weierstrass, H(t) é contínua em todo [0,1]"]
    G --> I["Teorema 2 (Sobrejetividade): Intervalos encaixados e compacidade ⇒ H([0,1]) = [0,1]²"]
    H --> J["Teorema 3 (Não-injetividade): Pontos múltiplos, ex. H(1/6)=H(1/2)=H(5/6)=(1/2,1/2)"]
    E --> K["Teorema 4 (Não-diferenciável em parte alguma): Quociente incremental ≥ 2^{n-1} → ∞"]
  1. Teorema 1 (Convergência Uniforme e Continuidade): Para \(m > n \ge 1\) e qualquer \(t \in I_{n,k}\), pelo Axioma B tanto \(H_n(t)\) como \(H_m(t)\) pertencem ao mesmo subquadrado \(Q_{n,k}\) de diâmetro \(\sqrt{2}\cdot 2^{-n}\):
\[I_{n,k} = \left[ \frac{k-1}{4^n}, \, \frac{k}{4^n} \right], \qquad \|H_m - H_n\|_\infty = \sup_{t \in [0,1]} \|H_m(t) - H_n(t)\|_2 \le \operatorname{diam}(Q_{n,k}) = \frac{\sqrt{2}}{2^n} \quad (\forall m > n \ge 1)\]

Logo, \(\{H_n\}\) é uniformemente de Cauchy em \(\mathcal{C}([0,1], \mathbb{R}^2)\) e o seu limite uniforme \(H(t)\) é contínuo em \([0,1]\). 2. Teorema 2 (Sobrejetividade): Para todo \(p \in [0,1]^2\), uma sucessão encaixada de subquadrados \(Q_{n,k_n} \ni p\) define intervalos fechados encaixados \(I_{n,k_n}\) de comprimento \(4^{-n} \to 0\) cuja interseção única \(t^* \in [0,1]\) satisfaz \(H(t^*) = p\):

\[\bigcap_{n=1}^{\infty} I_{n, k_n} = \{t^*\}, \qquad \|H(t^*) - p\|_2 \le \frac{\sqrt{2}}{2^n} \xrightarrow{n \to \infty} 0 \quad \Longrightarrow \quad H([0,1]) = [0,1]^2\]
  1. Teorema 3 (Pontos Múltiplos): O centro \((1/2, 1/2)\) é visitado três vezes (\(H(1/6) = H(1/2) = H(5/6) = (1/2, 1/2)\)), e em vértices diádicos superiores surgem pontos quádruplos.
  2. Teorema 4 (Comprimento Infinito, Continuidade \(\frac{1}{2}\)-Hölder e Não-Diferenciabilidade em Parte Alguma): O comprimento \(L(H_n) = 2^n - 2^{-n} \to \infty\) diverge. Para qualquer \(t \in I_{n,k}\), pelo menos um vértice \(v_n = H(s_n)\) de \(Q_{n,k}\) dista \(\ge 2^{-(n+1)}\) de \(H(t)\) com \(|s_n - t| \le 4^{-n}\), pelo que o quociente incremental diverge como \(2^{n-1} \to \infty\): \(H(t)\) não é diferenciável em nenhum ponto de \([0,1]\):
\[L(H_n) = (4^n - 1) 2^{-n} = 2^n - 2^{-n} \to +\infty, \qquad \|H(t_1) - H(t_2)\|_2 \le \sqrt{6}\, |t_1 - t_2|^{1/2}\]\[\frac{\|H(s_n) - H(t)\|_2}{|s_n - t|} \ge \frac{2^{-(n+1)}}{4^{-n}} = 2^{n-1} \xrightarrow{n \to \infty} +\infty\]

4. Resolução da Crise da Dimensão: Dimensão Topológica \(\dim_T\) vs. Dimensão de Hausdorff \(D_H\)

Em 1911, L. E. J. Brouwer provou a invariância da dimensão (\(\mathbb{R}^n \cong \mathbb{R}^m \iff n = m\)) via homologia local. A dimensão de recobrimento de Lebesgue \(\dim_T\) mede a ordem mínima de sobreposição \(d + 1\) de coberturas abertas (\(\dim_T([0,1]) = 1\), mas \(\dim_T([0,1]^2) = 2\) como as juntas triplas de uma parede de tijolos, explicando topologicamente a inevitabilidade de pontos pelo menos triplos). Já a dimensão de Hausdorff (fractal) \(D_H\) mede a escala autossimilar:

\[H_k(U, U \setminus \{p\}; \mathbb{Z}) \cong \tilde{H}_{k-1}(S^{n-1}; \mathbb{Z}) \cong \begin{cases} \mathbb{Z} & (k = n) \\ 0 & (k \ne n) \end{cases}, \qquad \dim_T([0,1]) = 1 < \dim_T([0,1]^2) = 2\]\[D_H = \frac{\log N}{\log(1/r)} \quad \Longrightarrow \quad D_H(\text{Peano}) = \frac{\log 9}{\log 3} = 2, \qquad D_H(\text{Hilbert}) = \frac{\log 4}{\log 2} = 2\]

A curva de Hilbert atinge dimensão fractal \(D_H = 2\) por dobragem infinita e eleva a dimensão topológica da sua imagem a \(\dim_T = 2\) através das autointerseções.

Tipo de Curva / AplicaçãoContínuaInjetiva (sem autointerseção)Sobrejetiva em \([0,1]^2\)DiferenciabilidadeDim. Topológica \(\dim_T(\text{Imagem})\)Dim. de Hausdorff \(D_H\)Área de Lebesgue \(\mu_2\)
Curva suave simples (segmento/arco)Sim (\(C^\infty\))SimNãoDiferenciável em todo o lado\(1\)\(1\)\(0\)
Curva de Koch (floco de neve)SimSimNãoNão-diferenciável em parte alguma\(1\)\(\frac{\log 4}{\log 3} \approx 1{,}262\)\(0\)
Curva de Osgood (1903)SimSim (arco de Jordan)Não (interior vazio)Quase em toda a parte não-dif.\(1\)\(2\)\(> 0\) (área positiva!)
Entrelaçamento de dígitos de CantorNão (descontínua)Sim (bijeção)SimNão-contínua/diferenciável\(2\)\(2\)\(1\)
Curva de Peano (base 3, 1890)SimNão (pontos múltiplos)Sim (preenche o espaço)Não-diferenciável em parte alguma\(2\)\(\frac{\log 9}{\log 3} = 2\)\(1\)
Curva de Hilbert (base 2, 1891)Sim (\(\frac{1}{2}\)-Hölder)Não (até pts. quádruplos)Sim (preenche o espaço)Não-diferenciável em parte alguma\(2\)\(\frac{\log 4}{\log 2} = 2\)\(1\)

5. Aplicações na Ciência da Computação: Indexar o Mundo Multidimensional em Memória 1D

Sendo a memória de hardware (endereços DRAM, blocos SSD, árvores B+) unidimensional enquanto os dados geoespaciais e físicos são multidimensionais, a curva de Hilbert discreta oferece uma preservação de localidade (Locality Preservation) ótima graças à sua continuidade \(\frac{1}{2}\)-Hölder e ao encaixamento em quadtree:

\[z = \text{Morton}(x, y) = (y_{n-1} x_{n-1} \dots y_1 x_1 y_0 x_0)_2, \qquad C_{\text{dilation}} = \sup_{t_1 \ne t_2} \frac{\|\gamma(t_1) - \gamma(t_2)\|_2^2}{|t_1 - t_2|} = 6 \;\; (\text{Hilbert})\]

Ao contrário da curva de Morton (Z-Order Curve), que entrelaça bits sem rotação e sofre grandes saltos diagonais (\(C_{\text{dilation}} = \infty\)), a curva de Hilbert avança sempre uma distância de Manhattan exatamente igual a \(1\) (\(C_{\text{dilation}} = 6\)), reduzindo em \(25\%\text{–}40\%\) a fragmentação de intervalos em consultas espaciais 2D.

  1. Google S2 Geometry Library (Google Maps, Uber, MongoDB): Projeta a esfera terrestre \(S^2\) nas \(6\) faces de um cubo, corrige a distorção de área e aplica uma curva de Hilbert de nível 30 (\(H_{30}\)) em cada face. Cada célula de \(0{,}7\,\text{cm} \times 0{,}7\,\text{cm}\) na Terra é codificada num único inteiro de 64 bits (S2CellId), convertendo pesquisas geográficas 2D em varrimentos 1D ultrarrápidos em árvores B+.
  2. Hilbert R-Tree e Supercomputação (HPC): Ordenar polígonos pelo seu índice de Hilbert minimiza a sobreposição de nós no PostGIS e Apache Sedona, enquanto a curva de Hilbert 3D particiona octrees em simulações cosmológicas (Gadget-4, AMReX) para um balanceamento dinâmico de carga ótimo.
comments powered by Disqus