Student Term Project:
MultiAgent Mixed-Initiative Planner
(MAMIP)


The Goal of the Project is to create a mixed-initiative multiagent system (and give it a name). This interactive system creates plans for a package shipping company as illustrated in Figure 1.  To create such a system, you will

1.      Analyze (due Day12) the domain requirements below by

·        Capturing the user and system goals

·        Transforming goals to roles with respect to domain task definitions

·        Applying the three “use cases” below

2.      Design (due Day 15) a high-level system specification from the analysis by

·        Creating agent classes

·        Constructing agent conversations

·        Assembling agent classes

3.      Implement (due Day 19) the system from the system specification.

ProjectPik

Figure 1.  Possible System Architecture

 Requirements:

  1. User needs help getting a plan for delivering packages between various cities.
  2. User can define the problems of interest based on various sources of “goal information” such as databases, web pages, or data files available over the Internet.
  3. The user does not want to have to know where the trucks, planes, airports, or post offices are located in the various cities.  
    1. This information is available on the web at various sites. 
    2. There are redundant sites containing the information of interest.  Sometimes the sites are available; sometimes they are not.  The system should use the most current information available.
  4. The PRODIGY planner will be used to help the user; however, the user does not want to interface with PRODIGY directly.  The user only wants to select specific goals, answer queries, and see results.
  5. PRODIGY requires “state information” about the objects in the problem world (i.e., the domain). These objects include trucks, planes, and cities as well as the airports and post offices in the cities. States include where objects are located and what objects are inside of other objects.
    1. The information must be provided to PRODIGY in specific formats as defined below.
    2. The information must be combined with the problem specified by the user.
  6. Locations of information sources are NOT known ahead of times.  The system must be capable of discovering the information sources as they become available.


PRODIGY I/O Format

PRODIGY inputs problem information of three types (in this order).

1.      A set of object-type tuples in the domain

2.      A set of relational states between objects

3.      A set of goal states to achieve

 An example is as follows

·        {(package1 object) (truck3 truck) (Dayton city) (PO1 post-office)}

·        {(loc-at PO1 Dayton) (at-obj package1 PO1) (at-truck truck3 PO1)}

·        {(inside-truck package1 truck3)}

 PRODIGY outputs a plan as a sequence of instantiated operators (specific action steps). An operator is defined by

1.      An operator name

2.      A set of variable substitution tuples (i.e., objects that substitute for operator variables)

 An example one-step plan is as follows

LOAD-TRUCK

OBJ package1

TRUCK truck3

LOC Dayton

The files domain.lisp and manycities.lisp provide details.

Use Case 1

The user logs into his machine and runs his package shipping application.  The user queries the system as to whether there are any high-priority packages waiting to be shipped at company offices.  The system responds with a list of high-priority packages that have not currently been shipped along with their current location and intended location.  The user selects those packages that he wants to schedule.  After selecting the packages for scheduling, the user requests that the system try to schedule the packages.  After a few seconds, the system returns a plan for getting the packages to their intended destinations.  The user may accept, reject, or modify the plan.

Use Case 2

The user logs in and runs the package shipping application.  Instead of selecting the packages to be shipped, he simply tells the system to create a plan for all packages currently waiting to be shipped.  The system finds all the required information and attempts to create a plan.  If a plan can be created it is returned to the user.  If a plan cannot be created, the user is returned the problem.  Typical problems include not being able to get all the information PRODIGY needs to create a plan, or just not being able to create a valid plan with the right information.  In case certain information is not available, the user can be asked about if he knows the missing information (we assume the user can call the office/airport whose agent is unavailable).

Use Case 3

The user logs in and asks the system to list all packages for shipping.  The system returns all packages waiting to be shipped, their location, their destination, and their priority.  The user selects those packages he wants shipped and tells the system to create a plan.  If the system can create a plan, it does.  If the system cannot create a plan, the user is returned the appropriate error message.  The user may then deselect some of the selected packages and ask the system to try again.

Information Sources & Data Formats

 There will be an information source for each office and airport in each city.  The system should gracefully degrade if an office or airport information source goes offline.  Each office and airport information source should be modeled with an information agent that has access to the current state of the data at that location (each city should run on a separate computer). 

 o       Each office in each city knows

§         What packages it currently has

·        Priority

·        Destination

§         What trucks are currently located at that office

o       Each airport in each city knows

§         What trucks are currently located at the airport

§         What airplanes are at the airport


Correspondence: cs790a@cs.wright.edu

Last Edited: April 21, 2000