LMU ☀️ CMSI 3300
ARTIFICIAL INTELLIGENCE
HOMEWORK #1

Readings

Read

Instructions

In this class you will be turning in paper copies of most of your homework; however, you will have to keep all of your homework in a version control repository.

Print out the files comprising your answers to the following problems (2up to save trees) and turn them in at the beginning of class on February 2.

The Problems

  1. Create an inventory of hardware and software for your term project. Have it checked by Caskey. Secure funding. Begin purchasing materials. Write a short functional specification for the project. It does not have to be detailed, and it can change over the semester: the point for this assignment is that you get started early and not piece together a pile of junk during the last week of class.
  2. Problem 1.8 in Russell and Norvig (an essay on cognition and AI) — in the form of a beautiful, impeccably written five paragraph essay. Content and style count.
  3. Write PEAS descriptions for
    1. A music composer
    2. An aircraft autolander
    3. An essay evaluator
    4. A robotic sentry gun for the Keck Lab
  4. If the pure reflex vacuum cleaner agent from the text had a performance measure in which two points were given for each square cleaned, and one point was subtracted for each movement from one square to the other, and the squares never became dirty once cleaned, describe an agent function that would make an agent rational.
  5. Problem 2.3 in Russell and Norvig (on the differences between agent functions and agent programs).
  6. Problem 2.12 in Russell and Norvig (on dealing with stochastic environments for vacuum agents).
  7. Write an agent for solving the 8-puzzle using depth-first iterative deepening. But write it in such a way that it makes use of a problem solving framework in which 8-puzzle specific elements are “plugged in.” (To see how nice and pluggable your framework is, try to plug in the specification of the water jug problem, but don't turn that in.) You might consider something like:
    package edu.lmu.cs.yourid.search;
    
    public interface Problem<State, Action> {
        Action[] actionsFor(State state);
        State go(State state, Action action);
        boolean isGoal(State state);
    }