A máquina de Shannon

Terminei de ler recentemente o livro “Decoding the Universe”, de Charles Seife. É um livro muito bacana sobre teoria da informação e como ela se relaciona com a termodinâmica, com a relatividade e com a física quântica, chegando à informação quântica. Em linguagem bem acessível 🙂

Nesse livro fiquei sabendo de um engenho bem-humorado idealizado pelo matemático Claude Shannon, considerado o pai da teoria de informação. Esse engenho se chama “The ultimate machine” e era basicamente uma caixa onde você mexia no interruptor para ligá-la e uma “mão” emergia da caixa para desligá-la. Nas palavras (aproximadas) do escritor Arthur Clarke, “tem algo de sinistro numa máquina que não faz absolutamente nada, exceto desligar-se”. Você pode ver o vídeo de um desses engenhos em ação:

Se você quiser construir sua própria “Ultimate machine”, tente aqui.

Sinistro? Divertido? Você que decide 🙂

Anúncios
Publicado em Computação | 2 Comentários

Tidbits de computação #1

Achei alguns links bem interessantes para quem é da área de computação. Costumo compartilhá-los pelo twitter, mas tem alguns que merecem destaque aqui, então vamos lá 🙂

if you are starting your research in the field of object recognition / object detection… – Esse post leva a um artigo e a um código fonte que visa a facilitar pesquisas na área de reconhecimento de objetos. Como o cara diz lá, pode ser que não entenda 100% do artigo, mas é bom tentar ler e depois olhar o código, para você mesmo tentar escrever, se quiser ser um Jedi na área de visão computacional (o que pretendo ser).

Clever Algorithms – Um livro (gratuito!) que lista vários algoritmos inspirados na natureza, como os de redes neurais, de enxame, de sistemas imunológicos e por aí vai. Indispensável 🙂

The Next Mainstream Programming Language: A Game Developer’s Perspective – Apesar de ser focado no desenvolvimento de games, é bom ler o pdf para ver quais as principais características que uma linguagem de programação precisa ter, hoje em dia, para ser amplamente usada e aproveitada ao máximo.

Mais uma coisa… faz pouco tempo que passei a visitar o site reddit, e descobri que ele tem uma seção só de ciências da computação (além de subseções em machine learning e visão, mas não tão atualizadas frequentemente). Foi por lá que descobri esse pdf do Clever Algorithms, então vale a pena visitar de vez em quando.

Publicado em Computação | Marcado com , | 1 Comentário

Robô que dobra roupas

Puxa, agora só falta aprender a passar a roupa que já temos um protótipo da empregada dos Jetsons! 😀

Link para o artigo e mais detalhes aqui.

Publicado em inteligência artificial | Marcado com | 3 Comentários

Começando com o OpenCV

Alguns de vocês já devem saber que estou usando o OpenCV para minha pós-graduação 🙂 Resolvi fazer um post a respeito (e criar uma nova categoria no blog, opencv) de como instalá-lo e configurá-lo não apenas para eu me lembrar (e parar de perder as anotações) e também ser útil a outros que queiram brincar com ele.

O OpenCV é um conjunto de bibliotecas em C/C++ que tem vários algoritmos comumente usados em visão prontos, sem a necessidade de reinventar a roda. E claro, você até poderia mexer nessas bibliotecas, se quiser modificar algo. Tem tanto para Linux como Windows. Aqui só falarei da parte do Linux.

Para começar, você pode baixar a versão atual, que é a 2.2, aqui. Antes de instalá-lo, porém, é necessário já ter previamente instalado um compilador de C++ (g++) e o CMake. Para quem usa Ubuntu, como eu, é só digitar esses nomes no gerenciador de pacotes (quem disse que ubuntu é complicado?). Tem mais uns pré-requisitos opcionais, dê uma olhada no guia de instalação.

Depois é só descompactar o arquivo baixado em um diretório de sua escolha, e ao abrir esse diretório, crie dentro dele um diretório onde o opencv será compilado (como release ou build):
cd ~/opencv
(supondo que descompactou no diretório /home/user/opencv)

mkdir release
cd release

Aí é só configurar com o CMake:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON ..

E os passos finais, para compilar e instalar:

make -j 2
sudo make install
sudo ldconfig

Depois disso, é só começar a brincar com o OpenCV 🙂 Para verificar se a instalação foi efetivada, tente rodar um dos exemplos que vem em samples, dentro do opencv.

É recomendado usar alguma IDE, como o Eclipse (meu preferido), para facilitar a vida… É só usar o plugin para C++ do Eclipse (CDT) e na hora de criar um projeto novo, ir em propriedades, depois ir nas configurações de build. Aí para o include, só incluir o caminho /home/user/opencv/include/opencv. E para as libraries, a partir da versão 2.2, tem que incluir as seguintes:

opencv_core
opencv_imgproc
opencv_highgui
opencv_ml
opencv_features2d
opencv_video
opencv_objdetect
opencv_calib3d
opencv_flann
(tem mais algumas aqui, mas essas são as principais)

E depois, especificar o caminho dessas libraries, como /home/user/opencv/release/lib.

O post pode não ser sido muito ilustrado, mas espero que os passos sejam suficientes para deixá-lo rodando 🙂 Deixa eu continuar a implementar os algoritmos de visão para a Skynet.

Publicado em opencv | Marcado com | 3 Comentários

Tidbits de matemática

Algumas coisas legais relacionadas à matemática que vi pelo mar de bits.

Top ten transcendental numbers – Lista dos 10 mais em números transcendentais. Não são números que almejam o nirvana matemático por meio de meditação transcendental e sim, números irracionais que não são raízes de uma equação polinomial com coeficientes inteiros.

Exotic spheres, or why 4-dimensional space is a crazy place – Post bem bacana sobre o espaço 4-dimensional.

65 attempts to solve P vs NP – Esse post leva a outro link detalhando os papers, mas o mencionei por causa das estatísticas que aparecem lá. E aí, quer tentar resolver?

Rejecta Mathematica – Site para hospedar papers rejeitados por jornais (do tipo peer-reviewed) em ciências matemáticas.

Publicado em Matemática | Marcado com | 2 Comentários

Ilusões auditivas e nuances dos sons

Estava fuçando no meu Google Reader quando me deparei com um item compartilhado pelo cbragatto, sobre um tipo de ilusão auditiva, o tom Shepard, em que um som, quando executado continuamente, cria a ilusão de ascender ou descender em tons, sem precisar da mudança no pitch. Meio que como um equivalente auditivo daquele cilindro usado por barbeiros antigos, que girava continuamente (para entender do que tô falando, é o tal do barber’s pole). Interessante, não?

Quando ouvi isso, me lembrei de um experimento que fiz com um amigo meu que tocava violão. Ele ficava executando notas diferentes no violão e me testava, perguntando se era mais grave ou mais agudo. E se tinha um ou mais tons. Putz, é difícil viu. Apesar de ouvir bem o som, não consigo distinguir as notas musicais dos instrumentos musicais. Ou as vizinhanças da nota (entenda como as notas que precedem e que seguem à atual). E para piorar, ainda executava em sequência 2 ou 3 notas e me perguntava quais foram tocadas. Nessa etapa, apanho mesmo para valer. Espero chegar a um ponto de conseguir distinguir o básico das notas, porque ter um ouvido musical já é pedir muito.

E isso me leva a outra coisa, meio diferente, que vi nesse post, sobre como cada pessoa deficiente auditiva ou surda saca os sons. É legal ver o ponto de vista de outros implantados, pois gosto de saber se temos uma espécie de “protocolo universal auditivo” ou se cada implantado tem seu próprio “protocolo auditivo”. Nesse post que mencionei, ela diz que tem uma coisa meio sinestéstica aí. E percebo que eu também faço algo parecido (mas não igual). Assim, para conseguir saber o que as pessoas falam, vocabulário é MUITO importante para mim, para usar como banco de dados, pois faço umas “simulações” das palavras na cabeça (é, ouço sons na cabeça mesmo, quando faço as simulações :P) e tento achar uma correspondência com o que a pessoa falou. É por isso que às vezes demoro um pouco para reagir ao que dizem. E também porque conversas em grupo são complicadas para mim, pois exige um tempo de reação muito rápido (para fazer as simulações e achar as correspondências). E não consigo aprender palavras novas só ouvindo, preciso ver a palavra por escrito (soletrar também resolve, mas não ajuda muito na memória). Ou seja, dependo muito fortemente de pistas visuais, e a leitura labial não é o único auxílio de que lanço mão…

Pode soar meio esquizofrênico esse negócio de simular os sons internamente, mas quebra um galho. E tenho notado que os tempos de reação estão cada vez menores com o uso do implante coclear 😀

Fonte:
Holy audio illusion!

Publicado em Implante coclear | Marcado com | 7 Comentários

Os melhores das leituras de ciência em 2010

Demorei um pouco para fazer aquele post sobre as melhores leituras de 2010… bom, aí vão os meus prediletos de ciência de 2010:

Logicomix – Apostolos Doxiadis e Christos Papadimitriou

Uma excelente HQ que conta a história da lógica matemática sob a ótica da vida do lógico Bertrand Russel. Recomendado mesmo para aqueles que são leigos em matemática, nenhum conhecimento prévio é necessário.

O livro dos códigos – Simon Singh

O autor sabe mesmo escrever livros de divulgação na área de matemática, como o fez no livro O último teorema de Fermat. Esse livro trata-se da história da criptografia desde a antiguidade até os dias atuais. Com algumas brincadeiras criptográficas inclusas.

Group theory in the bedroom – Brian Hayes

Um delicioso livro leve de curiosidades matemáticas, como a base matemática das rodas dentadas.

The trouble with physics – Lee Smolin

Livro bem interessante que conta como a abordagem atual da física pode acabar atrasando ela própria, por se focar muito nas teorias das cordas e não em abordagens alternativas.

Unknown Quantity: A Real and Imaginary History of Algebra – John Derbyshire

Como diz o próprio título, conta a história da álgebra e seus componentes, como os números imaginários. Também conta um pouco dos matemáticos, como Galois e Abel, dentre muitos outros.

Flatterland – Ian Stewart

Sequência de Flatland, sob o ponto de vista de Ian Stewart, que conta a história dos descendentes do personagem de Flatland.

Galileo´s Daughter – Dava Sobel

História de Galileu pelas cartas trocadas entre ele e sua filha.

Fascínio do Universo

Um livro leve e informativo sobre o Universo. Além da versão impressa, tem a versão em pdf que pode ser baixada gratuitamente aqui.

Almanaque das curiosidades matemáticas – Ian Stewart

Outro almanaque de curiosidades matemáticas, na mesma linha de “Group theory in the bedroom”. Fiz um post sobre ele aqui.

Moral Machines – W. Wallach e C. Allen

Livro bem interessante sobre a questão de como incutir moralidade nas inteligências artificiais. Também fiz um post a respeito aqui.

Publicado em Livros | Marcado com , | 1 Comentário