terça-feira, 12 de abril de 2016

Mindfuck do dia: ninguém sabe qual é a área do conjunto de Mandelbrot. Ninguém conseguiu calcular analiticamente, mas os melhores bounds colocam a área entre 1.66 e 1.71. Agora, se você usar um método numérico, a área é 1.506591884 com precisão no último dígito. Cadê esse 0.16 que falta? Ninguém sabe, mas a melhor teoria até agora é que...

(dramatic chipmunk)

... o contorno contribui para a área! A dimensão hausdorff do contorno do conjunto é 2, então ele é área-like, pode ser isso que os métodos numéricos não estão capturando.

(sim, eu fiquei estudando fractais enquanto não dava meia-noite)


segunda-feira, 11 de abril de 2016

Parece inacreditável, mas existe uma meta-máquina universal de Turing, capaz de computar *qualquer* função f:N->N, *incluindo as não-computáveis*, desde que você ache um universo paralelo apropriado!
A demonstração em si não é difícil, mas eu vou dar uma simplificada aqui para ficar mais fácil de entender. Quem quiser ver a versão original, é só pegar no link acima que tem os detalhes (thx Joao Kogler pelo link):
Passo 1: Vamos relembrar o "teorema do reirom": existe um emulador capaz de emular qualquer sistema. Formalmente: as máquinas de Turing são enumeráveis, ou seja, para cada máquina você atribuir um número inteiro único. Com isso, você consegue construir uma máquina universal que tem como input o número da máquina que você quer emular, e o input original do problema que você quer resolver. Assim, você emula qualquer função computável.
Passo 2: Vamos relembrar que nenhum sistema formal é completo. Pelo teorema de Gödel, sempre existem proposições de um sistema que não admitem demonstração. E mais, mesmo que você pegue uma proposição e adicione com axioma ao sistema, ele continua sendo incompleto. Você pode adicionar infinitas proposições, sempre vai faltar uma.
Passo 3: Vamos relembrar que um sistema formal admite proposições que são independentes do sistema. Ou seja, tanto faz se você adiciona p ou não-p ao sistema, ele continua consistente. Exemplos conhecidos são o teorema das paralelas em relação aos outros axiomas do Euclides, ou a hipótese do continuum em relação à teoria dos conjuntos (ZFC).
Passo 4 (a pegadinha): Se você tem um sistema formal S onde tanto faz adicionar a proposição p ou a não-p, isso significa que, depois de adicionar a proposição, os sistemas S+p e S+não-p tem *um bit a mais de informação*. Para checar o valor desse bit, é só verificar qual proposição foi adicionada, se foi p o bit é 1, se foi não-p o bit é 0.
Passo 5 (a parte técnica): Se você conseguir construir uma sequência ordenável de proposições p_i, onde todas são independentes entre si, então você consegue adicionar ao sistema S uma string infinita de bits. Essa é a parte complicada da demonstração original, onde ele mostra como construir essa sequência. Mas o fato é que é possível, em qualquer caso.
Passo 6: Se você adicionou uma string infinita de bits ao sistema, então você codificou uma função binária f:N->{0,1} dentro do sistema. Agora é só escrever um algoritmo que, dado n, calcula f(n) através da enumeração das propriedades que você construiu dentro do sistema. Esse é um algoritmo universal que calcula qualquer função binária, até as não-computáveis!, dado que você codificou a função na unha, valor a valor. Assim como o input da máquina universal era o problema + o código da máquina que tem que ser emulado, nessa aqui o input é o problema + o sistema formal acrescido dos p_i que você codificou.
Passo 7: Obviamente, se você tem uma função f:N->{0,1}, então você também tem uma função f:N->N, é só usar um código de comprimento variável, tipo UTF-8.
Pronto, agora você tem um meta-algoritmo que calcula qualquer função. É só levar o algoritmo para um universo onde as regras são S+p_i que ele computa sozinho a função para você! Achar um universo paralelo fica como exercício para o leitor.
Agora as implicações do teorema:
1. Utilidade prática: nula
2. Você consegue codificar f:N->N, mas não consegue codificar f:R->R (Como você adiciona um bit por vez, o máximo que você consegue colocar é aleph-zero. Para suportar os reais precisaria colocar c).
3. Uma das funções não-computáveis que você pode computar é a parada de Turing. Então tem um universo aí onde você pode determinar exatamente quais das nossas máquinas de Turing param, e quais não param! Mas nesse universo, eles não conseguem calcular a parada das máquinas deles, só das nossas.
4. Se você estiver criando um universo do zero, é um jeito bacana de esconder um easter egg dentro da matemática que rege seu universo. Fica a dica aí pra quem for onipotente.

quinta-feira, 7 de abril de 2016

Você acha que o Euclides é grego ou que a Cleopatra é egípcia? Precisa escolher um, os dois ao mesmo tempo não dá.
Ambos viveram em Alexandria, que pelos critérios de hoje é claramente Egito. Se você levar em conta exclusivamente os critérios de geolocalização, os dois são claramente egípcios.
Mas Alexandria foi fundada por um grego e sempre teve cultura grega. Euclides viveu na época do rei Ptolomeu I, a Cleopatra era filha do Ptolomeu XII, são 200 anos de diferença mas ainda é o mesmo império fundado pelo Alexandre (que era discípulo de Aristóteles, grego de raiz). Se você levar em conta os critérios culturais, os dois eram claramente gregos.
Acho que a treta só existe porque a Cleopatra era populista e queria muito ser a rainha do povo, inclusive ela foi a única da dinastia inteira que aprendeu a falar egípcio (todos os outros Ptolomeus só falavam grego). Ela se vendia como egípcia, mas era só propaganda para ganhar confiança da massa. Na minha cabeça, tanto o Euclides como a Cleopatra são gregos.


Comprei um kit grego: régua, compasso, lapiseira, prancheta e papel de gramatura alta.
Essa é a parte legal de ser adulto, você pensa "puxa estou com vontade de comprar um compasso", aí vai ali na esquina, compra, e pode passar o resto da noite feliz agregando conhecimento.


Pausa para o estudo de grego arcaico. O substantivo "cinco" é πεμπασ, e o verbo "contar" é πεμπαζειυ. Daí você deduz que no tempo do Homero, "contar" era "cincar", e portanto é uma boa evidência de que eles usavam base 5 ao invés de base 10!
(O Heath concorda com o raciocínio então deve ser isso mesmo).


Desenho da noite da Ila Fox: porque todos gostamos de emus! Na real só não gosta de emus quem ainda não conhece, o bracinho dele é igual ao do T-Rex, então se você gosta de dinossauros provavelmente vai gostar de emus também.
(E eu estou falando como especialista em emus, já até escrevi alguns)