Saturday, January 5, 2013

aima-core library now published to Maven Central Repository


The aima-core classes,source, and javadoc are now accessible via the Maven Central Repository (thanks to Sonatype's support for Open Source Projects, see: All future releases will include a published version of aima-core (i.e. the main algorithms from the book) to the central repository as several people have requested this distribution mechanism as well. The required Maven Information is posted at the top of the project's home page.

Happy Hacking!


Tuesday, October 9, 2012

AIMA-Java 1.7.0-Chp4-Complete

Andrew Brown has joined the project and his submission of the And-Or-Graph-Search algorithm completes the set of algorithms from Chapter 4 in the book. In addition, the Genetic Algorithm has been rewritten in order to make it easier to use/extend. Also, several issues were also resolved as part of this release (see the aima-core README.txt for details).



Sunday, January 8, 2012

AIMA-Java 1.6.0-Chp5-Rewrite

Ruediger has rewritten all of the logic from Chapter 5: Adversarial Search. In addition, he has added a new GUI demo application - Connect 4, in order to highlight the algorithms usage in larger search spaces. This can be run from the demo page:



Friday, September 16, 2011

AIMA-Java 1.5.2-Chp17n21-Rewrite

All of the algorithms from Chapters 17 and 21 have been rewritten, this includes:
  • 17.4 Value-Iteration
  • 17.7 Policy-Iteration 
  • 21.2 Passive-ADP-Agent
  • 21.4 Passive-TD-Agent
  • 21.8 Q-Learning-Agent 
In addition:
  • Rewrote Cell World Environment (environment.cellworld) to be independent of use.
  • Re-organized probability.hmm package.
  • Minor optimization to FrequencyCounter implementation.
  • Documentation clean up.


Sunday, July 31, 2011

AIMA-Java 1.5.1-Chp15-Rewrite

All of the algorithms from Chapter 15 have been rewritten:
  • 15.4 Forward-Backward (3 implementations provided)
  • 15.6 Fixed-Lag-Smoothing 
  • 15.17 Particle-Filtering  
Added an Iterator interface and supporting methods to CategoricalDistribution and Factor. ProbabilityTable.Iterator removed getPostIterateValue() method from API due to not being general. Fixed Issue 63 - all compilation warnings have been resolved or suppressed where appropriate for now. Documentation clean up.



Monday, July 11, 2011

Michael Stampone officially Joins the Team

Michael has been doing great work updating the project's Javadoc and plans to do some games development (chess and checkers) possibly using JOGL to demonstrate some of the core algorithms. He now has commit privileges on the project.



Sunday, July 3, 2011

AIMA-Java 1.5.0-Chp13-and-14-Rewrite

This is the official release of the rewrite of the probability logic from Chapters 13 and 14 of AIMA3e. This includes rewrites for the following algorithms:
  • 14.9 Enumeration-Ask
  • 14.13 Prior-Sample
  • 14.14 Rejection-Sampling
  • 14.15 Likelihood-Weighting
  • 14.16 GIBBS-Ask
as well as the addition of:
  • 14.11 Elimination-Ask
A fix for Issue 66 is also included as well as some minor refactoring and documentation cleanup.



Friday, June 24, 2011

Demo Applications now run from Google Code

Read a couple of articles related to sending out content from a Subversion repository:

and realized I needed to update the svn:mime-type on the relevant .html, .css and .jnlp files to their correct values. All appears to be working now so to get to the main demo page from now on just go to:


Wednesday, June 22, 2011

Rewrite of Chapters 13 and 14 available

An extensive rewrite of the probability logic from Chapters 13 and 14 has been committed to the bleeding edge code base. This includes the addition of the EliminationAsk algorithm.

Sunday, March 20, 2011

AIMA-Java 1.4.1-Minor Fixes

This is a minor patch release to 1.4.0 including fixes to the probability and logic implementations in aima-core and a minor tweak to the aimax-osm project.

Sunday, December 19, 2010

AIMA-Java 1.4.0-OSM Redesign

This includes a redesign of the aimax-osm project and compilations and unit fixes for the UBUNTU platform.



Friday, November 5, 2010

AIMA-Java 1.3.2-Online+CSP+GUI-Improvements Released

This is primarily a clean up release, with changes made primarily to the existing Online, CSP and GUI components.



Saturday, October 2, 2010

AIMA-Java 1.3.1-CSP+PathCost-Fixes released

This is primarily a bug fix release which resolves an issue with Backtracking CSP search and the calculation of path costs when running breadth first search.



Monday, August 23, 2010

Upgrading Ruediger ;-)

Ruediger Lunde has been promoted to project owner due to his significant work on the project (solely responsible for aimax-osm extension project and nearly the totality of the aima-gui project as well as many contributions and improvements to aima-core).

Sunday, August 22, 2010

Release 1.3.0 - CSP Refactored AC-3 Added and 4 new GUIs

Ruediger has been super busy again improving the implementation of the Constraint Satisfaction algorithms, adding the AC-3 algorithm as well as adding four new demonstration GUIs:
  1. Eight Puzzle
  2. N-Queens Problem
  3. Tic-Tac-Toe
  4. Map Coloring Problem

Saturday, June 19, 2010

Release of 1.2.2-AIMA3e AIMAX-OSM Many Improvements

Ruediger has been busy improving the AIMAX-OSM applications with the following improvements:

1. Storage efficency of map representation improved.
2. Rendering speed and quality improved.
3. osm.gz2 file format support added.
4. Reader extended to read parts of a map, specified by bounding box or attribute filter.
5. Writer for writing maps to file added.
6. Slow zoom (activated with ) added.
7. Scale factor replaced by true scale.
8. Mark creation at specified GPS positions added, info dialog extended by node position.

Monday, March 15, 2010

AIMA Java 1.2.1 Released - GUIs available via Java Web Start

This release includes several enhancements to the aima-gui and aimax-osm GUI applications (thanks Ruediger). In particular, the AimaDemoApp was updated to include all the command line demos (their output is redirected to a text area widget when run). In addition, we have set up a page for running each of the GUIs from your browser using Java Web Start. This may be linked to from the projects main page:

or directly via:


Saturday, February 6, 2010

AIMA Java 1.1.0 Released

This is our second release based on the 3rd edition of AIMA. This includes a new extension project, the Open Street Map (OSM) library, which has been kindly provided by Ruediger Lunde. This takes advantage of several of the algorithms and utilities from the aima-core and aima-gui projects. Please note that this project is under a different license. Enjoy!


Thursday, December 10, 2009

AIMA Java 1.0.0 Released

This is our first release based on the 3rd Edition of Artificial Intelligence a Modern Approach, see - for details of what is included/changed.



Saturday, October 3, 2009

AIMA Java 0.95 Released

This is our first release containing GUIs (thanks to Ruediger Lunde) see:

- aima.gui.applications.VacuumAppDemo
Provides a demo of the different agents described in Chapter 2 and 3
for tackling the Vacuum World.

Provides a demo of the different agents/search algorithms described
in Chapters 3 and 4, for tackling route planning tasks within
simplified Map environments.

- aima.gui.framework.SimpleAgentAppDemo
Provides a basic example of how to create your own Agent based
demonstrations based on the provided framework.

This will also be our last full release based on the 2nd edition of AIMA.
We are currently in the planning phases to re-organize this project based on the 3rd edition of AIMA, which should be available soon.


Tuesday, July 21, 2009

Upgrading Ciaran ;-)

Ciaran O'Reilly is now joint owner of this project, along with me (Ravi). He has done awesome work in the logic chapters code (and any bug reports should be sent to him ;-). Just kidding, if I get any bug reports for the logic code I can forward to him).

We'll be starting work on the code for AIMA 3d edition soon.

Saturday, May 30, 2009

AIMA JAVA v0.94 released

This is a patch release for the FOL Logic and includes the following fixes:

- Fixed subtle defect in Model Elimination inference algorithm, which caused it to miss portions of the search space.

- Improved the performance of both theorem provers, in particular added support for forward and backward subsumption elimination, which improves significantly the performance and use of the OTTER Like theorem prover.

- Fixed defect in cascade occurs check in unifier logic.

Wednesday, December 10, 2008

Complete implementation of Chapter 9 Available


It's been a while, but finally after much grinding away, a complete implementation of all of the main First Order Logic concepts from Chapter 9 has now been added to the bleeding edge code base. In addition, for giggles :-), I've added an inference algorithm based on model elimination. You can run the FOLDemo:


to get an overview of the different capabilities. I ended up taking a class on Computational Logic (see: in order to get my head around several of the nuances involved in implementing general purpose theorem provers. Highly recommended for those so inclined. I've tried my best, 100+ test cases, to make the resolution based and model elimination implementations sound and complete, as well as reasonably efficient but no guarantees :-) Enjoy!

Saturday, February 23, 2008

Implementation of LRTA*-Agent (Fig. 4.23) available

The implementation for this algorithm can be found in:
with a test case available in:


Tuesday, December 25, 2007

AIMA JAVA v0.92 released

This release has a rewrite of the Neural Network code. The old code didn't do pre processing of data and so the networks would get saturated for some data sets. The new code normalizes the data sets and so doesn't have this problem.

The release also includes an implementation of Online DFS (Thanks Ciaran!). Carl Anderson, Senior Scientist at requested that heuristic functions return doubles instead of int. This is an excellent idea so that's done as well.

The next release scheduled for 28th Feb, will have code for planning (chapters 11 and 12 + bits of chapter 9) + whatever else we feel like working on!

Sunday, November 18, 2007

Implementation of Online DFS Agent (Fig. 4.20) available

Been a while, was home back in Ireland visiting family and friends and started a new job, so have had a little less time available to hack away at this stuff. The implementation for this algorithm can be found in:
with a test case available in:

Thursday, October 18, 2007

AIMA JAVA 0.91 released

Well, it was released on Oct 1, 2007 but I forgot to announce it here. This release adds all of Ciaran's work on the search algorithms plus the usual bug fixes.

The next release is scheduled for Nov 15, 2007.

Friday, September 7, 2007

Genetic-Algorithm implementation added

An implementation of the algorithm described in Figure 4.17 page 119 is now available. The NQueensDemo has been updated to include an example of calling this algorithm. Of interest is the number of iterations/time it takes, on average with respect to the size of the search space, compared to the other algorithms to converge on a goal.

Tuesday, August 28, 2007

Recursive-Best-First-Search available

Just finished an implementation of the Recursive-Best-First-Search from Figure 4.5 page 102 of AIMA. The implementation may be found in along with an associated test case in, which creates a test that mimics Figure 4.6 from page 103. This has also been added to the MapDemo. I think a Genetic Algorithm implementation is up next :-)

Thursday, August 23, 2007

Implementation of Bidirectional search available

After a week of crashed machines and painful recovery/upgrading efforts, I finally got around to implementing a version of the Bidrectional search described on page 79 of the text book. This can be found in A fairly comprehensive test driver for this can be found in as the implementation turned out to be a little trickier/subtler than originally anticipated.