YAXLib: Yet Another XML Serialization Library for the .NET Framework

An XML serialization library which lets developers design the XML file structure, and select the exception handling policy. This library also supports serializing most of the collection classes such as the Dictionary generic class.

YAXLib is hosted on GitHub and CodePlex, and is released under the MIT License.

For more details please refer to this CodeProject article.

Grid-Soccer Simulator

Grid-Soccer Simulator is a multi-agent soccer simulator in a grid-world environment. The environment provides a test-bed for machine-learning, and control algorithms, especially multi-agent reinforcement learning.

Grid-Soccer Simulator is open-source software, hosted on CodePlex, and released under the MIT License.

The project is developed in C#, so you will need Mono (available for all platforms) or .NET Framework (available for Microsoft Windows only) to run the simulator and the sample clients. The communication between players and the simulator is performed using a human-readable, plain text, network protocol; hence one can create a player in virtually any programming language that supports networking.

Master’s Thesis

Grid-Soccer simulator (above) has been implemented as part of my Master’s thesis entitled: Evaluation of NeuroEvolution of Augmenting Topologies in Cooperative Multi-agent Learning

Here you can view or download my Master’s thesis in Persian.


RCSSCoachable stands for RoboCup Soccer Simulation Coachable Players. Coachable players are special types of RoboCup 2D players that can be given advice from an agent called the coach. Coach uses the coach language (CLang for short) to communicate with the players. Coachable players receive the coach’s advice and behave accordingly.

RCSSCoachable agents were the standard coachable players for the RoboCup coach competitions 2005 and 2006. Coach competition is not held any more in RoboCup, but one might find these agents useful for their research.

RCSSCoachable is hosted on SourceForge. Here’s the home page, and here you will find the project summary page.

Coach Assistant

Coach Assistant is a GUI tool that helps creating strategies for the coachable players. You can get Coach Assistant including source and binary from its GitHub page. Note that you need Java 1.5 or higher to make and run the application. The source code is released under GNU GPL.

Also, here you will find a short tutorial on Coach Assistant.

Temporal Difference Methods: Article, Slides, and Demo Application

Introduction to Reinforcement Learning - R. S. Sutton, and A. G. Barto [+]:

If one had to identify one idea as central and novel to reinforcement learning, it would undoubtedly be temporal-difference (TD) learning.

Due to my interest in Reinforcement Learning, I chose temporal difference learning methods as my research topic for one of my courses (advanced mathematical software).

Here you can view or download the report in Persian.

Here is the presentation slides in Persian.

The Matlab source files for the demo application are hosted on GitHub.