AIMA3e-Java Demo Applications

Note: To start an application, click on the appropriate link (on the left hand side). Requires Java Web Start to be supported by your browser.

OSM and AIMA Unified Demo Application - A starter for running all applications and command line demos from the AIMA-GUI sub-project and most of the AIMAX-OSM applications. Details of how to use each of the individual applications are detailed below.

AIMA-GUI Applications

Vacuum Demo - A simple graphical application for experiments with vacuum cleaner agents. It demonstrates different agents described in chapter two of Artificial Intelligence a Modern Approach (AIMA3e). The red - pac man like - character represents an agent playing the role of an intelligent vacuum. The squares (A and B) represent the different tiles in the Agents environment. A clean tile is colored white while a dirty tile is colored gray. The goal for the Agent is to ensure all tiles are clean.
Control Description
Environment Selector Top left drop down widget. Used to select the environment in which the Agent is to run. Currently this is restricted to the 'A/B Environment' described in the book.
Agent Selector Drop down widget beside the 'Environment Selector'. Used to select the type of Agent to be used, available Agents are:
Clear Top right button widget. Used to clear the output log (text area on the right hand side of the application) and reset the agent and its environment if necessary.
Prepare Top right button widget. Used to randomly position the Agent and to mark tiles as either clean or dirty.
Run Top right button widget. Used to tell the Agent to clean the environment until it thinks it has reached its goal.
Step Top right button widget. Allows you to step the Agent one action at a time through achieving its goal.
Pause Top right button widget. Allows you to pause the Agent if you selected 'Run' and wish to inspect its current output log.
Cancel Bottom right button widget. Will cancel the current Agent's running execution.

Route Finding Agent - An example of a route finding agent application. It provides a demonstration of the different agents/search algorithms described in chapters three and four of AIMA3e, for tackling route planning tasks within simplified map based environments.
Control Description
Scenario Selector Top left drop down widget. Used to select the map and starting location from which the Agent is to start its route.
Destination Selector Drop down widget beside the 'Scenario Selector'. Used to select the location from the map that the Agent is to end its route.
Search Strategy Selector Drop down widget beside the 'Destination Selector'. The different types of search strategy available are:
Search Mode Selector Drop down widget beside the 'Search Strategy Selector'. The different types of search mode available are: These are applicable to configuring the general mechanism used by several of the Search Algorithms when traversing their search spaces.
Heuristic Selector Drop down widget beside the 'Search Mode Selector'. To select a heuristic function to be used by the selected search algorithm, if applicable (e.g. A*). '=0' is equivalent to using no heuristic. 'SLD' uses the Straight Line Distance (SLD) to the goal as the heuristic function.
Clear Top right button widget. Used to clear the output log (text area on the right hand side of the application) and reset the agent and its environment if necessary.
Prepare Top right button widget. Used to place the Agent back at its start location and to select a new random destination depending on destination selection.
Run Top right button widget. Used to tell the Agent to calculate the route between the specified start and end location, and to traverse it.
Step Top right button widget. Allows you to step the Agent one action at a time through achieving its goal.
Pause Top right button widget. Allows you to pause the Agent if you selected 'Run' and wish to inspect its current output log.
Cancel Bottom right button widget. Will cancel the current Agent's running execution.

8-Puzzle Demo - An example of the 8-puzzle, which consists of a 3x3 board with eight numbered tiles and a blank space. The goal is to reach the specified goal state as detailed in Figure 3.4 of AIMA3e (depicted left). Provides a demonstration of the different search algorithms described in chapters three and four of AIMA3e. You can choose to solve the problem yourself by selecting tiles next to the empty square to which you want to move the empty square.
Control Description
Difficulty Selector Top left drop down widget. Used to select the level of difficulty of the 8-puzzle problem to solve.
Search Strategy Selector Drop down widget beside the 'Difficulty Selector'. The different types of search strategy available are:
Clear Top right button widget. Used to clear the output log (text area on the right hand side of the application).
Prepare Top right button widget. Used to reset the problem and to set things up in preparation to be solved.
Run Top right button widget. Used to tell the Agent to solve the 8-puzzle problem.
Step Top right button widget. Allows you to step the Agent one action at a time through achieving its goal.
Pause Top right button widget. Allows you to pause the Agent if you selected 'Run' and wish to inspect its current output log.
Cancel Bottom right button widget. Will cancel the current Agent's running execution.

N-Queens Problem Demo - The goal of the n-queens problem is to place n queens on a chessboard such that no queen attacks any other (A queen attacks any piece in the same row, column or diagonal). Provides a demonstration of the different search algorithms described in chapters three and four of AIMA3e. You can choose to solve the problem yourself by selecting board positions to where you wish to place Queens.
Control Description
Difficulty Selector Top left drop down widget. Used to select the size of the n-queens problem to solve (the larger n, the more difficult).
Action Strategy Selector Drop down widget beside the 'Difficulty Selector'. The different types of action strategy available are:
  • Incremental - Assumes that queens are placed column by column, starting with an empty board, and provides queen placing actions for all non-attacked positions of the first free column.
  • Complete State - Assumes exactly one queen in each column and provides all possible queen movements in vertical direction as actions.
Search Strategy Selector Drop down widget beside the 'Action Strategy Selector'. The different types of search strategy available are:
Clear Top right button widget. Used to clear the output log (text area on the right hand side of the application).
Prepare Top right button widget. Used to reset the problem and to set things up in preparation to be solved.
Run Top right button widget. Used to tell the Agent to solve the n-queens problem.
Step Top right button widget. Allows you to step the Agent one action at a time through achieving its goal.
Pause Top right button widget. Allows you to pause the Agent if you selected 'Run' and wish to inspect its current output log.
Cancel Bottom right button widget. Will cancel the current Agent's running execution.

Tic-Tac-Toe Demo - A demonstration of the Minimax and Alpha-Beta adversarial search algorithms as described in chapter 5 of AIMA3e, using the tic-tac-toe game as an example. You can choose to play the game yourself by selecting board positions or have the Agent propose moves.
Control Description
Algorithm Selector Top left drop down widget. Used to select the adversarial search algorithm to use.
Clear Top left button widget. Used to clear the board.
Propose Move Top right button widget. Used to request the Agent make a move based on the current board state and selected search algorithm.

Connect Four Demo - A demonstration of the Minimax and Alpha-Beta adversarial search algorithms as described in chapter 5 of AIMA3e, using the Connect Four game as an example (much larger search space than Tic-Tac-Toe). You can choose to play the game yourself by selecting board positions or have the Agent propose moves.
Control Description
Algorithm Selector Top left drop down widget. Used to select the adversarial search algorithm to use.
Search Duration Top right drop down widget. Sets a limit in seconds (5, 10, 15, or 20) for how long to search for a best proposed move.
Clear Top left button widget. Used to clear the board.
Propose Move Top right button widget. Used to request the Agent make a move based on the current board state and selected search algorithm.

Map Coloring CSP Demo - Application which demonstrates basic constraint algorithms based on map coloring problems, as described in chapter 6 of AIMA3e. It shows the constraint graph, lets the user select a solution strategy, and allows them to follow the progress step by step.
Control Description
Scenario Selector Top left drop down widget. Used to select the map and constraints to solve.
Solution Strategy Selector Top left drop down widget beside the 'Scenario Selector'. Used to select the solution strategy to use.
Clear Top right button widget. Used to clear prior solutions and the output log (text area on the right hand side of the application).
Prepare Top right button widget. Used to reset the problem and to set things up in preparation to be solved.
Run Top right button widget. Used to tell the Agent to solve the CSP.
Step Top right button widget. Allows you to step the Agent one action at a time through achieving its goal.
Pause Top right button widget. Allows you to pause the Agent if you selected 'Run' and wish to inspect its current output log.
Cancel Bottom right button widget. Will cancel the current Agent's running execution.

AIMAX-OSM (Open Street Map) Applications
OSM Agent Search Demo - This application demonstrates how different search strategies explore a complex search space. This is similar to the AIMA-GUI 'Route Finding Agent' application with the exception that it is using realistic map data to construct its environment, which has been obtained from the Open Street Map repository. In addition, online as opposed to just offline search is supported. Clicking anywhere on the map will place a numbered marker/pin on the map indicating a point on the route the agent is to visit. A minimum of two markers are required before the agent can calculate its route (i.e. a start and end location). The following navigation and map control elements are available:
Command How To
Pan Left,Right,Up, and Down Arrow keys. Mouse left click held down and drag.
Zoom In Space bar. + key. Mouse scroll wheel.
Zoom Out Ctrl+Space Bar. - key. Mouse scroll wheel.
Increase Symbol and Font Size Ctrl+'+ key'.
Decrease Symbol and Font Size Ctrl+'- key'.
Context Sensitive Command Menu Mouse right click. This will bring up a menu with the following options:
  • Info: Will provide map entity information for the current mouse location on the map.
  • Mark: You may remove the currently selected Mark. Load previously saved marks or Save the current set of Marks on the map.
  • Clear M&T: Clear all the mark and track information (i.e. if the Agent has calculated a route) on the map.
  • Debug: Provides more visual feedback to help with debugging/tracing calculated routes.
In addition, the general widget controls are:
Control Description
Scenario Selector Top left drop down widget. Used to select the mode of transportation being used by the Agent.
Agent Selector Drop down widget beside the 'Scenario Selector'. Used to select between an Offline Agent (i.e. it calculates the full route before moving along it) or an Online search agent, which incrementally calculates its route as it moves through its environment.
Search Strategy Selector Drop down widget beside the 'Agent Selector'. The different types of search strategy available for offline search are:
Search Mode Selector Drop down widget beside the 'Search Strategy Selector'. The different types of search mode available are: These are applicable to configuring the general mechanism used by several of the Search Algorithms when traversing their search spaces.
Heuristic Selector Drop down widget beside the 'Search Mode Selector'. To select a heuristic function to be used by the selected search algorithm, if applicable (e.g. A*). 'H1=0' is equivalent to using no heuristic. 'H2=(sld to goal)' uses the Straight Line Distance (SLD) to the goal as the heuristic function.
Clear Top right button widget. Used to clear the output log (text area on the right hand side of the application) and reset the agent and its environment if necessary.
Prepare Top right button widget. Used to place the Agent back at its start location.
Run Top right button widget. Used to tell the Agent to calculate the route between the specified start and end location, and to traverse it.
Step Top right button widget. Allows you to step the Agent one action at a time through achieving its goal.
Pause Top right button widget. Allows you to pause the Agent if you selected 'Run' and wish to inspect its current output log.
Cancel Bottom right button widget. Will cancel the current Agent's running execution.

Mini Navigation App - A little demo application which shows map information and provides routing functionality. It uses similar navigation controls as the OSM Agent Search Demo. Different OSM maps can be loaded from file. By setting several markers, complete tours can be planned. Routing runs in background and can be canceled. Also straight line distances can be obtained by 2x ctrl-mouse-left. The GPS selector supports loading NEMEA data from file. The option to connect to a GPS directly is disabled because an additional (native) serial port libraray is needed for that. See gps sub-package documentation for details.

OSM Map Viewer Plus - Adds a night view mode to the map viewer. Used to demonstrate how the Map Viewer can be easily extended. Uses similar navigation controls as the OSM Agent Search Demo.