CS 470 Artificial Intelligence Winter 2006, Instructor:
Jeffrey Horn
HOMEWORK
2:
(program 2): Heuristic Planner (A* Search) in
Java
PROBLEM DOMAIN 3 |
Path-finding
on Open Terrain |
3D, static, using heightmaps |
- GOAL: Given a terrain (height map), and a starting coordinate (sx,sy)
and goal coordinate(s) (gx,gy) (or (gx0,gy0), (gx1,gy1), ..., (gxn,gyn) ), find
the least cost path from (sx,sy) to any (gxi,gyi) (with 0 <= i <= n ) on
the terrain.
- For COST, make up something reasonable:
- For example, it should cost more to go uphill.
- The steeper the hill the higher the cost.
- There could be a threshold: if the gradient is too
steep, it is a "cliff", that is, a barrier.
- Whatever you do, make it modular, so that it can be easily
modified (in just one place).
- SEARCH: Here is the creative part. You must design
a state space to search. I can think of two different approaches to
reducing the size of the state space to be searched (but don't just listen to
me; read what
Bryan Stout has to say, or
F.
Markus Jönsson):
- Discretize the terrain into large chunks, like a
rectangular grid (see what GMU did in next bullet point) perhaps by
averaging the height values within each rectangle. then search for a
path through the grid, not the original terrain.
- Use the pixel granularity of the original terrain (e.g.,
for the "Terrain3" below, under "TERRAIN", both the skin and height map
images are 512 by 512 pixels), but limit the branching factor by only
allowing the agent to move NESW (the four compass directions) or maybe {N,
NE, E, SE, S, SW, W, NW} (eight compass points), and only a single, fixed
distance per move (e.g., 10 pixels).
- I was inspired by what SMU is doing:

- TERRAIN: