;;; ~/my-domains/jobsite3/README
;;;
;;; AUTHOR : Bruce LeSourd
;;;          c473ak
;;;
;;; DATE   : 5/12/91
;;;
;;; PROJECT - domain description

JOBSITE3

CONSTRUCTION JOB-SITE PLANNER - VERSION 3

PROBLEMS RECOMMENDED:
	exc.lisp  (excavate a hole)
	exc1.lisp (excavate a hole with resources already onsite)
	exc2.lisp (like exc.lisp, but without superflous resources and with
		   better names)
	exc3.lisp (dig a hole 2 floors deep)
	exc5.lisp (dig two adjacent holes on a larger site)

	The lean, mean, most working version of jobsite.

	This domain is really the "jobsite bucket-excavating
planner".  It uses "at-loc" to trace the movements of resources.
Unlike the "last-scheduled" predicate in JOBSITE, "at-loc" is
never deleted from the state.  Each operator simply checks that
the "at-loc" it is subgoaling on is the latest for that resource.
Since "at-loc" is never deleted from the state, Prodigy does not
attempt erroneous subgoaling on these checks.
	Checking to see if the selected "at-loc" is the latest occurrence
in the state seems to work very well from a search control perspective,
and has the added benefit of allowing "at-loc" to act as a permanent record
of all site location uses.  This record would be used to implement
location occupation constraints (a crane and a bucket excavator can not
be at the same location at the same time).

	JOBSITE3 has search control rules.  The most important rules
attempt to prevent Prodigy from going very far down temporally im-
possible search paths when it is attempting to dig more than one hole.
The following trace fragment demonstrates this problem:

   N31 (GROUND (1 1 -1))
   Alts: BUCKET-EXCAVATE (1 1 -1) 1 2 EXC-SUB-1 BUCKET-EXC-1 DUMP-TRUCK-1

 ...Done: BUCKET-EXCAVATE (1 1 -1) 1 2 EXC-SUB-1 BUCKET-EXC-1 DUMP-TRUCK-1

 N32 (DONE)
 Alts: *FINISH*

   N33 (GROUND (1 1 -2))
   Alts: BUCKET-EXCAVATE (1 1 -2) 2 3 EXC-SUB-1 BUCKET-EXC-1 DUMP-TRUCK-1 [2-12]

      N34 (SOLID (1 1 -2))
      Alts: INFER-SOLID (1 1 -2)

   ...Done: INFER-SOLID (1 1 -2)
WARNING: Can't find deletions in state ((SOLID (1 1 -2)))

   N35 (GROUND (1 1 -2))
   Alts: BUCKET-EXCAVATE (1 1 -2) 2 3 EXC-SUB-1 BUCKET-EXC-1 DUMP-TRUCK-1 [2-4]

 ...Done: BUCKET-EXCAVATE (1 1 -2) 2 3 EXC-SUB-1 BUCKET-EXC-1 DUMP-TRUCK-1

**** For some reason, prodigy does not find the obvious solution -
**** BUCKET-EXCAVATE using the resources at their present locations.

 N36 (DONE)
 Alts: *FINISH*

   N37 (GROUND (1 1 -1))
   Alts: BUCKET-EXCAVATE (1 1 -1) 3 4 EXC-SUB-1 BUCKET-EXC-1 DUMP-TRUCK-1 [2-11]

      N38 (SOLID (1 1 -1))
      There are no relevant alts for this node!
-------------------------------------------------



PROJECT 3

1. a) The General Contractor Construction Site Planning domain has
so many tricky aspects, what with the ubiquitous precondition of
scheduling several resources at a certain spot at a certain time,
that control rules are absolutely necessary to limit the search.
However, I am unable to get the key search control rules to work.

   b) None.

   c) Search analysis was very helpful, once you figure out all the
tricks to using it.

   d) Better "compile-time" error detection and identification.


