CS 470 Artificial Intelligence Winter 2006, Instructor:
Jeffrey Horn
HOMEWORK
2:
(program 2): Heuristic Planner (A* Search) in
Java
PROBLEM DOMAIN 2 |
Outer Space
Maneuvering |
2D, dynamic, with moving opponents and moving goal |

- GOAL:
- To show how A* can be used to generate plans that move a spaceship through
2D space to dock with a space station while avoiding disastrous collisions with
asteroids, with a minimum amount of energy expended.
- You can also use any other similar simulation of a 2D environment. The
general goal is to plan a path around obstacles and enemies to a goal, moving or
not, with the plan minimizing cost, damage, etc.
- Actually, this problem domain is very similar to
Problem Domain 1. But Problem Domain 1
takes place in a much more confined 2D space, a "maze" essentially, in which
obstacles cover more area than does "open space", and movement is not inertial.
Furthermore, the moving obstacles in PD1 actually come after you!
- CODE:
- Here is a folder with Correy Kowall's
StarShip code, which he has graciously made available for our modification!
Some modifications for our purposes:
- Turn off the neural network brain and the evolution.
We are just planning a single, simple, fixed path!
- Make space wraparound ( by using the "%" operator)
- Make the starbase move
- Implement inertial physics (MANDATORY!)
with thrusters for control (i.e., maintain current velocity unless a
thruster fires, then increment/decrement velocity in direction of thrust
by fixed amount for as long as the thruster fires; let the thruster
firings be operators for the planner to try, but limit the choices!
(and hence branching factor) for example by only allowing thrusts in the
four main compass directions (NESW) and for only one or two choice(s) of
duration...)
- Discretize space to make the search manageable.
See Problem Domain 3 for a discussion
of this issue.
- Feel free to develop your own or to seek out other sources of 2D
simulations in Java.