PyEvolve: Framework Open-Source de Algoritmos genéticos rodando com PyS60!

Dando continuidade a meu último post, encontrei há algumas semanas atrás um trabalho muito interessante que está sendo desenvolvido pelo brasileiro Christian S. Perone: um framework open-source de algoritmos genéticos escrito na linguagem Python denominado Pyevolve. O Pyevolve é um toolbox com várias ferramentas para solução de diversos problemas de otimização , no qual se baseia na computação evolucionária através do poder dos algoritmos genéticos.

Uma dos trabalhos recentes feitos por Christian, é o porting do Pyevolve para dispositivos portáteis. Ele já conseguiu portar com sucesso a execução dos algoritmos genéticos em um aparelho PSP da Sony solucionando o problema do caixeiro viajante, e ilustrando na tela do aparelho no fim a melhor jornada obtida pelo algoritmo. Muito legal, recomendo darem uma olhada aqui. Agora, recentemente ele decidiu portar o Pyevolve para ser executado nos aparelhos móveis.

A linguagem escolhida por ele, claro, foi o Python, visto que o próprio PyEvolve foi escrito nela. Através do PyS60, Python para celulares Symbian S60, ele conseguiu executar com desempenho satisfatório no aparelho Nokia N73. O problema tratado pelo algoritmo genético foi a busca do mínimo de uma função matemática (Sphere) com 5 dimensões.

Algo muito legal, mesmo especialmente por se acreditar que rodar algoritmos desse nível que exigem uma certa computação exaustiva não seriam estáveis em aparelhos como celulares.

De acordo com os experimentos realizados, o algoritmo genético conseguiu encontrar o mínimo da função matemática de complexidade fácil-mediana em apenas 8 segundos (com 18 gerações).

Seguem alguns screenshots do PyEvolve for Mobile em execução:


Olá pessoal,

Estive essa semana aproveitando alguns intervalos livres para ler alguns feeds de blogs de Inteligência Artificial que acompanho. Uma das novidades que me chamou bem atenção foi a execução de algoritmos inteligentes de forma computacionalmente distribuída. Irei dar um simples exemplo:

Um dos projetos aceitos em um congresso internacional na Espanha (International Symposium on Distributed Computing and Artificial Intelligence 2009 - DCAI ) foi o desenvolvimento de um framework de computação de distribuída por meio de aparelhos móveis através de comunicação via sem fio Bluetooth. A idéia do projeto é desenvolver uma API em JavaME disponibilizando um ambiente de computação distribuída com uso de camadas, cliente-servidor e arquitetura de comunicação assíncrona entre os dispositivos. Na prática, eles solucionaram alguns problemas bem conhecidos na literatura de computação evolucionária (O problema do Caixeiro Viajante e o problema de maximização de funções de onda).

O mais interessante é que eles usaram aparelhos móveis reais para executar os experimentos a fim de solucionar os respectivos problemas. De acordo com os autores, a parte mais difícil foi encontrar aparelhos que tivesse a pilha de protocolos Bluetooth funcionando corretamente. A figura abaixo ilustra o experimento em execução:

2 aparelhos Nokia em execução

Achei muito interessante a idéia, especialmente este campo de sistemas distribúidos com computação inteligente. Imagine se cada telefone nosso fosse um agente inteligente e as conexões fossem as conexões sem fio através de WiFi, Bluetooth, etc. Imagine uma rede de varios telefones interconectados processando informações em paralelo. Agora dimensione isso para mais de 150 milhões de aparelhos rodando em paralelo. Uma mega infra-estrutura de computação distribuída pervasiva portátil e móvel! Incrível não ?? Quem sabe não ouviremos isso num futuro próximo. Por sinal, tive até a idéia de portar minha implementação de algoritmos de inteligência de enxame para os aparelhos móveis. E não foi só eu que tive essa idéia, já existe já uma implementação de algoritmos genéticos rodando em aparelhos móveis (smartphones) solucionando problemas de otimização. O mais legal ainda criada por um brasileiro! Essa notícia deixo para um próximo post. ;D

Referências sobre o trabalho acima , ver o blog GeNeuraTeam.

Olá pessoal,

Estou desenvolvendo alguns aplicativos em Python para Symbian S60, e sempre encontro quando encontro algumas dificuldades durante o desenvolvimento, começo a catucar em fóruns, sites específicos, documentações para ajudar a dar uma direção para a solução do meu problema. Um dos problemas que enfrentei recentemente foi desenvolver um algoritmo simples que detectasse colisões entre dois objetos dentro de uma tela. Essa técnica é muito utilizada em jogos, especialmente para detectar quando queremos saber se nosso player atingiu o adversário ou atingiu um limite de um cenário, etc. Pois, após solucionado o problema, pensei: Porque não divulgar para outros, afim de ajudar o pessoal caso encontre o mesmo problema ? Seguindo esta filosofia, por sinal já fui aconselhado várias vezes pelo meu colega Felipe Andrade, de postar artigos no Wiki do Forum Nokia. Tomei finalmente, tardiamente, a decisão de escrever artigos que auxiliem na solução de problemas que enfrentei ou até que eu descobri e que possam ajudar outros.

Neste âmbito, estou aqui divulgando meu mini-artigo em inglês sobre como detectar colisões com Python para Symbian S60.

Segue o link:

Collision detection events with PyS60


Espero tornar este hábito agora bem comum!

Python S60 1.9.3 Release!


Mais uma versão do Python para Symbian S60 foi lançada pela comunidade do Forum Nokia. =D

A nova versão 1.9.3 pode ser baixada a partir do repositório maemo garage aqui.

Esta nova versão pode ser executada nos aparelhos S60 3rd Edição, S60 3rd Edição FP1, S60 3rd Edição FP2 e S60 5th Edição.

Nesta versão 1.9.3 estão incluídas novas funcionalidades:

- Suporte para eventos de touchScreen para o appuifw Canvas. Uma API foi adicionada ao módulo appuifw, touch_enabled() que verifica se o dispositivo suporta touchscreen.

-Nesta versão inclui um novo módulo de extensão, sciptext. Isto permite o acesso aos serviços da plataforma S60 5 nd edição e portados para S60 3nd Edição. Isso inclui acesso a serviços como Application Manager, Calendar, Contacts, Landmarks, Location, Logging, Messaging, Media Management, Sensors and Sys Info.

-Facilidade na hora de desenvolvimento: Todos os componentes do Python runtime podem ser instalados agora em tempo de execução, execuando a aplicação scriptShell que vem junto com o pacote. Suporte apenas a partir dos telefones S60 3rd edição FP2 em diante (atualizados com o último firmware).

- Suporte SSL para socket.

- Core Python atualizado para 2.5.4.

Claro que há algumas desvantagens em comparação a versão 1.4.5:

- O tamanho do interpretador PyS60 é muito maior que a versão 1.4.x. Em futuras versões, há uma tendência para que o tamanho final do interpretador fique abaixo de 1 MB.

-Maior dependência das bibliotecas OpenC, que deve ser instalado a partir do interpretador para funcionar.

- Infelizmente, aparelhos S60 2.x não são suportados nesta nova versão, visto que as bibliotecas OpenC não estão disponiveis para estes aparelhos.

- Compatibilidade entre versões 1.9.x não são garantidas até a versão 2.0. Logo, há chances de algo para funcionar entre versões.


Ótima notícia!! Especialmente destaco o suporte a touchScreen pelo Canvas e suporte SSL para sockets.

Sun promove o JavaFX Coding Challenge: Prêmios até $ 25.000.

Sun promove um novo desafio para a criação de aplicativos em JavaFX. Prêmios até 25.000 doláres. Vejam mais informações no site JavaFX Coding Challenge.



  • Contest starts: March 23rd, 2009

  • Contest deadline: May 29th, 2009

.NET para Symbian S60 ?!

Estive aqui fuçando alguns blogs quando me deparei com a seguinte notícia:

A Red Five Labs lançou a versão 2.1 do seu Net60, um programa em que é possível portar aplicativos feitos em .NET (microsoft) para a plataforma Symbian.

Para conhecer o Net60, visite http://www.redfivelabs.com/blogs/news/archive/2009/03/07/net60-version-2-1-released.aspx

Mais uma plataforma "suportada" para o Symbian. Isso só faz enriquecer a quantidade de aplicativos para esta plataforma! =D

Fonte: NokiaTouch

Piloto de F1 Lewis Hamilton controla seu carro pelo celular !!

Vejam que maneiro! Em um anúncio da patrocinadora principal da McLaren na Fórmula 1, o piloto de corrida Lewis Hamilton, pilota através do celular um carro de corrida de controle remoto em um ciruito de Portugal. Como surgiu essa idéia ?

Simplesmente um fã que programou em seu celular para controlar, via bluetooth, uma miniatura do carro da equipe inglesa e montou um circuito no seu escritório para simular a corrida. É claro que ele filmou toda a brincadeira e jogou o vídeo pela web.

Após o sucesso da empreitada, a McLaren convocou o fã para assistir aos testes em Portugal. Um dos mecânicos da equipe mostrou então uma versão em tamanho real do carro de controle remoto, também comandado via bluetooth.

Vejam o vídeo da brincadeira do fã e depois o vídeo do carro real controlado por Hamilton!

haha, muito legal isso =D



Isso que é Arte 3D !

Vi esse post no bom blog nerdsnavan.com do meu colega Péricles Miranda sobre um trabalho de 2 anos feito por Bruce Branit, chamado World Builder. Sensacional o vídeo, principalmente nas partes em que ele mesmo constrói o mundo com a ponta dos dedos... Já imaginou se isso é possível ?



Recomendo a visualização! Será que o nosso futuro vai ser desse jeito ?

Nokia 5800 com multi-touchscreen??

Uma das funcionalidades não existentes ainda nos aparelhos touch-screen da Nokia (Symbian 5nd Edition) é a capacidade de multi-touchscreen na tela. Essa funcionalidade, já bem conhecida nos aparelhos da Apple como o Ipod touch e o Iphone, permite o usuário fazer coisas como dar zoom in e zoom out na tela do aparelho com os 2 dedos pressionados em fotos, sites, etc.

Pois bem, um desenvolvedor chamado Jamie Fuller está desenvolvendo um jogo, lembrando o jogo "Guitar Hero", onde ele construiu um tipo de framework capaz de fazer o touchScreen do Nokia 5800 Xpress se comportar de maneira multi-touchscreen a fim de controlar o game a partir de múltiplos toques na tela.

Vejam o vídeo abaixo desmonstrando o game dele:




Cada vez mais estou me convencendo a adquirir um Nokia 5800 desses. =)

Fonte: Symbian Freak
top