*** README ***
* An information file for the HEIST domain on Prodigy *

Glen Hamilton
c473at@coco
hamilton@wolf

			* HEIST *
 Hamilton's Ersatz Intelligence for Substantial Thefts

	HEIST is a bank-robbery simulation domain, designed to
take the greatest amount of money possible in the shortest amount of 
time.  The robbers in HEIST must contend with bank employees, alarms, locked
drawers, sealed vaults, and possibly police interference.  
	< NOTE : Due to the large amount of interrelation between the
goals in HEIST, some of the aspects cannot be fully implemented without 
search-control rules. >
	
	This domain, at the current level of complexity, took approx-
imately 15 hours to encode and debug.

*** Project 3 Questions ***

a.	Probably the major difficulty I had in implementing this domain was
in *transitivity*, ie. if A is near B, and B is near C, then A is near C.
This was a real bugbear, and I probably should have just chucked it since it
took so much time to fix (and still doesn't work for all cases).  Eventually
I made it implicit with the operator TRANSITIVE-LOCATION.
	Other problem area is that of continous aspects, in this case 
interrupting a process (such as collecting money) because of an outside influ-
ence (such as an alarm).  Because of the trouble in implementing discrete
time , I was forced to abandon this aspect.  Unfortunate, since a working 
stopwatch would allow a lot more fun in the robbery sequence.
	I've also had some trouble with bindings selection.  In cases like
"Have the gangster who is holding the crowbar collect the money", I can't
always get Prodigy to find that gangster.  If you see the problem in either
ASSIGN-CROWBAR-HOLDER-TO-FORCE or -WITHDRAW in the sc-rules file, please
let me know.

b.	While the transitivity problem was awkward, it proved easy to control 
the order of most subgoals, for instance the capture of all civilians before 
money collection can begin.  While this saves no real time in itself, it is
very effective if the racing-against-time aspect is involved.

c.	The advise facility came in very handy during debugging, and I found
the idea of the sc-rules to be easy to comprehend, if not actually work with.
Operators are easy to read and create.  Also, the allowance for lengthy names
is always nice.

d.	I would allow sc-rules to be more flexible, so that they can be read
and written in a closer fashion to the operators.  Also, sc-rules can be
*very* repetitious for certain cases, so how about a COND structure for 
setting up "knowns" and their results in one rule?



***** EXAMPLES FOR HEIST ****

1.  KNOCKOVER -- a typical day's work for Bonnie and Clyde.

2.  SMASH-AND-GRAB -- a quick dash for the cash.

3.  MADDOG -- psycho killer, q'est-que c'est?

4.  DRAGNET -- Dillinger's gang gets its due as the police set a trap.





