Gazelle, NRA member

Due: Friday, April 29, 2003, 5PM
Last modified: "February 16, 2004 14:59:37 by matt"

You should download the newest version of Gazelle.jar, as it now displays the position of the gazelle when shots were fired. (Think of them as puffs of smoke resulting from the firing of the weapon.) [For those of you who indicate a "shot" by setting the gazelle's heading to be >360 or <-360, use this version of Gazelle.jar.]

Use the lil'GP package or ECJ to evolve a self-defense strategy for a gun-toting gazelle in our game of "hunt the gazelle".

The same rules apply as in the first assignment with a few modifications:

  1. Always start with 6 lions
  2. The lions should use one or more of the hunting strategy that you evolved in the second assignment.
  3. The gazelle is armed with antler-launched missiles. The gazelle may either fire or move during each turn, but not both. The gazelle has an infinite supply of missiles, but the time between launchings must be at least .5 seconds (5 time-steps of your simulation).
  4. The missiles are "smart" in the sense that they don't have to be aimed--they always fly to the lion nearest the gazelle. The probability of actually "pacifying" the lion is inversely proportional to the distance; the probability is (100 - min(distanceInMeters,90))/100. Where distanceInMeters is the distance between the gazelle and the targetted lion.
  5. The gazelle wins if it pacifies all the lions by the end of the game, else it loses. The game also ends with a loss if any lion gets close enough to pacify the gazelle.

Points to consider

  1. Most of the modifications are in the simulation and the fitness function. Your simulation needs to enforce the ".5 second rule", and deal with the removal of pacified lions from the game. This may require the use of a new element in your terminal set: something to keep track of how many lions remain.
  2. How will you represent the gazelle's choice to move, or to shoot? Perhaps you can just change your wrapper?

Graphical applet for displaying behavior of gazelle and lions

The applet has been slightly modified. All headings should be postive values from 0 to 360. If heading the gazelle is negative, that will indicate that a missile is fired that round. (The actual heading of the gazelle should be the absolute value.)
Submit your source code, and a sample output file (for use with the java applet) to the usual place.