Thursday, April 30, 2009

Report on Agent Development Stimulation Platform

In the Assignment 3 of ICS606, I was supposed to install the Robocup Rescue system and do some experimental agent development upon it. However, even compile the system came out to be nothing trivial. The system is written in both C/C++ and Java. The latest version is back to Mar 2007. They use both GCC and JDK to compile the system, but since their latest release, both these two compilers have updated quite a bit. As a result, the code cannot be compiled using the latest version of the compilers. Moreover, as although the system is claimed to be platform-independent, its makefile do use some parameter that is not available to Macintosh (like -soname), and the source code contain some function that has no Macintosh version(like pthread_yield()). The only guaranteed is Unix, in the state when their latest version released.

I have tried to compile it in Mac OS X 10.5, Windows XP SP3 and Ubuntu 9.04, with the latest compilers. None of them has any luck to pass the compiling, and the error given in these three platform are different.

In order to successful compile the system, the user have three choices. The first way, also the hard way, is to fix all the compile failures to match the compiler of the user's enviornment. The second way, which is theorictical, is to configure the compile system to compatible to the state of the release day. The third, which is somehow tricky but most easy way, is to install a stand-alone Linux using the old build. The easier way is to install that in a virtual machine. It is proofed to work to install the Ubuntu 6.10(Edgy Eft).

On contrary, the Robocode, which I got to know from a classmate's presentation, is much user-friendly. The procedure from downloading to start using it is quite straight forward. The installation package execute correctly and I can start writing my own agent in 10 minutes!

In conculsion, the Robocup platform is ill designed and extremely user-unfriendly, while Robocode is a much better platform for agent stimulation and easy to use.

Monday, April 13, 2009

Boswell continue?

Last week I started working on the course project of the agent class. The project I pick is based on Hackystat, and is a continue study of an existed topic: boswell/tickertape, a auto blogging agent for software development. While working on it, I am kind of lost my way. There is no directly related research about that. But there are many likely related fields, such as language processing, knowledge base, etc. The search field is so large that I am lost inside it. All potential related fields are so big to understand in short time. However, without understanding, it is hard to tell if concepts and technics from it will be useful or not. Currently, I just put my hope in language processing. There is some study of it and also using knowledge base concepts. I hope I can get a breakpoint from there.

This research is not directly related to my thesis. But it is an interesting research of Hackystat. Hopefully I can end up with some useful insight after finish the course project, if I can indeed finish it well....

Monday, April 6, 2009

Stuck in course work

Another week done nothing about Hackystat nor thesis... But it was a busy week because I was stuck in my course work during the whole week.

In the first half of the week, I was preparing the midterm of ICS606 Autonomous Agent, which is on Wednesday. After that, I switch to the assignment of ICS621 Analysis of Algorithm. The assignment is to design an algorithm to solve the power grid load shedding problem. It is an NP-complete problem, and it is about directed weighted graph. It took me the whole week thinking of a better algorithm. Then at the end it came out to be worst than the brainless enumeration. That is quite frustrating.

This this week, I will have to start the almost-forgot course project of Autonomous Agent. The project I choose is to further develop the Tickertape in Hackystat project, to grant it more intelligence to act as human beings. The first step will be constructing "knowledge" about user's developing behaviours from hackystat sensor data. The hard part is how to design the structure of that knowledge in a way that it not only has good representation power, but also facilitate to generate human language sentence. I am not sure where to start, design the knowledge first then the way to express it, or the opposit way.

I hope I will be able to finish the course work faster and left some time for my other jobs.