sexta-feira, 7 de março de 2008

TCC + TCC

Olá,

Estou a um tempo sem postar aqui no blog, a falta de tempo é o principal motivo.
Desde a data do último post, além das pesquisas na área de desenvolvimento de sistemas corporativos, tenho estudado e desenvolvido um projeto na área de Jogos 3D usando Java e é justamente isso que estarei comentando hoje.
Este projeto servirá como TCC da faculdade de Ciências da Computação da Universidade Regional de Blumenau, na qual estarei me graduando em julho deste ano de 2008.
Tal projeto prevê o desenvolvimento de um Simulador de um Ambiente Virtual Distribuído (AVD) multiusuário para batalhas de tanques em 3D. Na batalha, os tanques poderão ser controlados por usuários (humanos) ou também por agentes inteligentes programados na linguagem AgentSpeak(L) do interpretador Jason.
Encontrei motivação para o desenvolvimento de tal projeto quando começei a utilizar o Robocode e programar alguns tanques diretamente na linguagem Java. Depois de várias tentativas de criar times com uma certa "inteligência", poucas tiveram sucesso. O principal motivo disso que notei foi que Java não parece ser a linguagem ideal para escrever entidades inteligentes, o código dos tanques ficava extremamento extenso e complicado quando queria implementar determinados "planos" que os tanques tinham que executar, principalmente quando precisava utilizar técnicas de cooperação e/ou coordenação. Simultâneamente ao estudo do Robocode, na faculdade eu estava estudando uma área da IA que se denomina Programação Orientada a Agentes (POA), cuja disciplina era ministrada pelo professor Jomi F. Hubner. Nessa disciplina, estudamos diversos modelos de Sistemas Multiagentes (SMA), porém o foco era contemplar a arquitetura BDI e o interpretador Jason, que é uma ferramenta para executar códigos de agentes escritos na linguagem AgentSpeak(L). Tal linguagem, por natureza, já provê diversas facilidades para a construção de entidades inteligentes. Nessa linguagem, um agente compreende: crenças, desejos e intenções, ou seja, os agentes percebem coisas que acontecem no ambiente, baseado nisso eles podem passar a acreditar em algo (passa para a base de crenças), podem também passar a desejar algo e então ter a intenção de realizar algo. A sintaxe abstrata da linguagem é baseada em linguagens de lógica, tal como o Prolog, dessa forma, se escreve pouco e se tem bastante resultado.
Baseado no Robocode e no estudo de POA, idealizei um simulador de batalhas de tanques, porém com diversas melhorias. Nesta versão, o mundo virtual será em 3D, diferente do robocode que provê uma visualização em 2D. A programação dos tanques também será mais abstrata, pois será utilizada a linguagem AgentSpeak(L), e não mais o Java como o caso do Robocode.
Espero que esse simulador se torne um ambiente mais atrativo para a programação de agentes inteligentes, e que tal paradigma de programação se torne um pouco mais popular.

Conforme vou tendo mais resultados da implementação do simulador, vou postando aí as técnicas utilizadas e eventualmente versões preliminares do "executável".

É isso! ;D

2 comentários:

Israel disse...

Isso ai, um TCC desses da gosto de fazer... negócio agora eh se encarnar!!ehehehe
Abraço!
- Israel

Anônimo disse...

Nice brief and this mail helped me alot in my college assignement. Gratefulness you on your information.