This framework supplies a set of specifications and implementations for concepts from Russell & Norvig's "Artificial Intelligence: A Modern Approach."

See:
          Description

Packages
edu.columbia.awh2101 Aaron's implementations of Assignments 1 & 2.
edu.columbia.cs.coms4701.agent R&N ch 2: Specifications for intelligent agents and their environments.
edu.columbia.cs.coms4701.agent.environments.grid Assignments 1 & 2: Environments in which objects have a location in an 2-dimensional grid.
edu.columbia.cs.coms4701.agent.environments.pente Assignment 2: Pente game-playing.
edu.columbia.cs.coms4701.agent.environments.robot Assignment 1: The Robot Vacuum environment.
edu.columbia.cs.coms4701.agent.environments.simple For all assignments: Base classes (some abstract) for Environment implementations.
edu.columbia.cs.coms4701.agent.events For EnvironmentObservers: Defines the events and event listener interfaces for tracking changes in an environment.
edu.columbia.cs.coms4701.agent.observer For EnvironmentObservers: Implementations of text and GUI environment observers to trace the operation of an agent in an environment.
edu.columbia.cs.coms4701.geometry Tools for basic 2-dimensional geometry.
edu.columbia.cs.coms4701.search R&N ch 3: Search data structures, algorithms, and agent programs.
edu.columbia.cs.coms4701.search.adversarial R&N ch 6: Adversarial Search.
edu.columbia.cs.coms4701.search.informed R&N ch 4: Search with heuristics.
edu.columbia.cs.coms4701.search.informed.local R&N ch 4.3-4.4: Informed search for problems in which only the final state, not the path to the state, matters.
edu.columbia.cs.coms4701.search.online R&N ch 4.5: Search in partially observable environments, in which planning and action must be interleaved.
edu.columbia.cs.coms4701.search.uninformed R&N ch 3: Uninformed search algorithms and strategies.
edu.columbia.cs.coms4701.util Handy utility classes not specific to any R&N content.
edu.columbia.human Provides a human-usable interface for playing Pente.

 

This framework supplies a set of specifications and implementations for concepts from Russell & Norvig's "Artificial Intelligence: A Modern Approach."

Introduction

To implement the assignments for this class, you will need a Java 1.5 SDK, the Apache ant build tool, and the text editor or IDE of your choice.

For each assignment, we'll supply step-by-step instructions for getting an initial compile in each of the following build environments:

Platform Build environment
Unix cunix.cc.columbia.edu command-line tools
Windows X-Windows connection to cunix via Cygwin
Command prompt + Java SDK + Apache Ant + text editor
Eclipse IDE
Mac X-Windows connection to cunix via built-in X11
Terminal + Apple-supplied Developer Tools + text editor
Eclipse IDE

Download and initial setup

Platform Build environment Instructions
Unix cunix.cc.columbia.edu command-line tools

The tools java and ant are already installed, at /opt/local/bin/java and opt/local/bin/ant, respectively.

All you need is a familiarity with a text editor, and an X11 or VNC connection to the cunix machine.

Windows X-Windows connection to cunix via Cygwin

To develop on cunix from your Windows machine, you need an X11 connection. The easiest way to do this is by installing Cygwin.

  1. Go to this page:
    http://x.cygwin.com/docs/ug/setup-cygwin-x-installing.html
    and follow the instructions to install both Cygwin and the Cygwin/X X11 software.

    In particular, make sure you click to select the 'xorg-x11-base' package under X11, and the 'openssh' and 'inetutils' packages under Net.

  2. Double-click the Cygwin icon to start a bash shell.
  3. Type startxwin.sh to launch the Cygwin/X server.
  4. In the new xterm window that opens, type
    ssh -X yourUNI@cunix.cc.columbia.edu

    The -X flag tells ssh to tunnel the X11 windowing commands.

Command prompt + Java SDK + Apache Ant + text editor

You will need to install the Java SDK and Apache ant, then update some environment variables.

  1. Install Java SDK
    • Download the JDK 5.0 (without Netbeans)
    • Run the installer.
    • Update your PATH environment variable:
      1. Choose Start, Settings, Control Panel, and double-click System.
      2. On Windows XP, select the Advanced tab and then Environment Variables. In the "User Variables" section (on top), click "New."
      3. Enter the name PATH
      4. As the value, enter the path to the java bin/ directory, for example
        C:\Program Files\java\jdk1.5.0_8\bin
        (or whatever the right path is for the JDK you installed).
      5. Click "Set", "OK" or "Apply".
  2. Install Apache ant
    • Download Apache ant zipfile
    • Unzip the file to somewhere convenient, such as C:\Program Files\apache-ant-1.6.5.
    • Update your PATH environment variable so that you can type 'ant' in any directory. Follow the same directions as above to open the Environment Variables panel. Click on the existing PATH entry, and click "Edit". Append a semicolon (;) to the existing entry, and add (for example)
      C:\Program Files\apache-ant-1.6.5\bin
      (or wherever you put ant)
  3. Set a few environment variables
    • ant needs a few more environment variables to be set in order to work happily:
    • Make a new environment variable named JAVA_HOME, set to the base directory of your java SDK installation, e.g. C:\Program Files\Java\jdk1.5.0_8
    • Make a new environment variable named ANT_HOME, set to the base directory of your ant installation, e.g. C:\Program Files\apache-ant-1.6.5
    • Add a CLASSPATH entry pointing to tools.jar file, e.g. C:\Program Files\Java\jdk1.5.0_8\lib\tools.jar
    • Add a CLASSPATH entry pointing to the java library directory, e.g. C:\Program Files\Java\jdk1.5.0_8\lib
  4. Now you should be able to cd to an assignment directory and run ant to compile.
Eclipse IDE
  1. Install Java SDK
  2. Install Eclipse
    • Download Eclipse from the Eclipse.org downloads page
    • The downloads page has the IDE zipped up, as opposed to an installer, so simply uninstall eclipse to the directory of your choice.
Mac X-Windows connection to cunix via built-in X11
  1. Install X11 from your Mac OS X install disk (10.4+), or from the Apple download (for 10.3).
  2. Double-click to launch X11.
  3. In the xterm window that opens, type
    ssh -X yourUNI@cunix.cc.columbia.edu
  4. Or, if you prefer to use Terminal, iTerm, or another terminal of your choice, first type
    export DISPLAY=:0.0
    then the ssh command as above.
Terminal + Apple-supplied Developer Tools + text editor
  1. Install the Apple Developer Tools from connect.apple.com if you haven't already.

    Make sure you select to install the latest (1.5+) Java SDK.

  2. There is no step 2!
Eclipse IDE
  1. Install the Apple Developer Tools from connect.apple.com if you haven't already.

    Make sure you select to install the latest (1.5+) Java SDK.

  2. Install Eclipse
    • Download Eclipse from the Eclipse.org downloads page
    • The downloads page has the IDE zipped up, as opposed to an installer, so simply uninstall eclipse to the directory of your choice.

Related Documentation