Parul Patel: Group Activity Planner(GAP)

Group Activity Planner (GAP)

Summary

GAP is an AI program (agent) that provides assistance to any team or group that is attempting to schedule an activity. At a high level, the agent will increase its knowledge about the user and their preferences. Given the knowledge base that it creates, it can help its users to schedule activities. A user can request a specific date and a specific time that he/she would like a group of users to meet for an activity. The agent is very useful in providing users with scheduling capability based upon user preferences/profiles, and their current schedules.

GAP is composed of objects including the agent, the users, user preferences, user schedules, and activities. In the future, GAP can be enhanced to have properties on activities to add even more complexity by associating properties such as location (e.g. hold an activity in California… even though a schedule may permit it, travel time/expense may not), or physical constraints (e.g. if an activity is sky diving, certain people with certain medical conditions may not be able to participate even though the schedule may permit it). GAP can grow to include much more knowledge (as shown by adding properties to Activities), however, for the purposes of this project, GAP will make the following assumptions:

Illustrative Example

  1. We have to let the agent know who are all the users.
  2. Then we have to give preferences for the users. This is the time that a user will not be available for a meeting.
  3. Now the user can try to schedule meetings:
  4. Now the user can see their schedules.
  5. The agent can print the schedules and preferences of all the users. Result:
    **************
    User: Dave
    Preference:
    Schedule: Artificial Intelligence 11/28/99 18:00 21:00
    **************
    **************
    User: John
    Preference: 11/29/99 13:00 15:00
    Schedule: Artificial Intelligence 11/28/99 18:00 21:00
    **************
    **************
    User: Lisa
    Preference:
    Schedule: Artificial Intelligence 11/28/99 18:00 21:00
    **************
    **************
    User: Mary
    Preference: 11/28/99 8:00 12:00
    Schedule: Artificial Intelligence 11/28/99 18:00 21:00
    **************
    **************
    User: Tom
    Preference:
    Schedule:
    **************

TECHNIQUES

There were three main challenging areas of development of the GAP application:

1. Searching the Tree,

2. Saving State Space changes after each command, and

3. Conflict Checking.

The GAP agent saves the state space in a tree format. Each node on the tree consists of the user, preference, and schedule for each individual. Each state is traversed using the depth first search mechanism. The agent uses depth first search to both find and to update the knowledge base database about users, preferences and activities that are being scheduled.

After the user enters a command, the change in the state space is reflected before the next command. This is similiar to the situation calculus discussed in class. The new situation (environment) is passed on to the next command, thus saving the state space changes after each command.

The agent also determines if there are conflicts with schedules and preferences before scheduling any meetings. It performs this conflict checking by using constraint satisfaction techniques. Knowledge about existing schedules and preferences are stored in domain's knowledge base. Rules are created that use this knowledge to constrain their firing; once the constraints are satisfied, the rules can be executed.