Status Report
Team 2:
Lisa Anthony
Mike Czajkowski
Luiza da Silva
Due: Feb. 1, 2001
I. Individual Contributions
Each team member has contributed to the project in the following manner to
this point::
Lisa Anthony:
- Has previously worked with an Acquire engine;
- Contributed with research to proposal document writing process;
- Consolidated Proposal Document;
- Contributed to brainstorming of functional and non-functional
requirements, and system evolution.
Mike Czajkowski:
- Set up project's CVS repository;
- Contributed with research to proposal writing process;
- Contributed to brainstorming of functional and non-functional
requirements, and system evolution;
- Has started Glossary.
Luiza Da Silva:
- Project scheduling;
- Contributed with research to proposal writing process;
- Constributed to brainstorming of functional and non-functional
requirements, and system evolution;
- Consolidated Status Report.
Future individual contributions can be seen in the Project Schedule.
II. Responsibilities:
It was decided that Lisa Anthony will act as the Project Manager, Mike
Czajkowski will act as the Configuration Manager, and Luiza da Silva will act
as Moderator.
Despite of scheme of delegation shown above, all decisions have been made
in a democratic fashion.
III. Problems Encountered
So far, we have found some difficulty in coming up with non-functional
requirements for out project, since we are in an early part of the process.
Realizing the need for certain non-functional requirements is part of a
dynamic process, i.e., will be more evident as we move on into specification
and design.
We are also fleshing out the concepts in the System Evolution section
further than they appear in the draft below.
IV. Summary of Status
Here is a summary of what has been achieved up to this point in the
project:
- Project Schedule;
- (Initial) Functional requirements;
- (Initial) Non-functional requirements;
- System Evolution
- Glossary of Terms;
1. Project Schedule:
2. Functional Requirements
OVERALL:
- System plays Acquire
- System agents collaborate via a well-defined set of instructions
- System input:
- integer that defines how many games are to be played by a static set of
agents and heuristics
- # of agents to play, heuristic each will use
- output of system is statistics of game(s) played
- who won/tally of who won most
- which strategies were used
- dump game progress to a file (eventually a script could translate file
to an animation of the game for further study)
ENGINE:
- Stores whose turn it is and can provide this to agents
- Knows currently available actions
- Receive action as input and update state of world
- Engine keeps track of world state
- whose turn
- turn order
- board config
- agent info (stocks, assets, tiles)
- Engine takes input from agents
- Engine outputs state of world to agents
PLANNING ALGORITHM/AGENT:
- Long-term goal
- Made up of ST goals guided by LT goals
- "Brains"
- Flexibility: adjust to changes in path to goal
- Agents can evaluate current state of world
- Agents can send messages to one another suggesting an action
- Agents can receive messages from other agents
- Agent can query world even when not in turn
- Agent can only enact actions when in turn
- Agents use "strategies" to determine output to engine
HEURISTICS:
- ST vs LT strategies where ST takes precedence in turn-by-turn play and
LT takes precedence in collaboration and planning
- A strategy = heuristic = set of criteria to evaluate the outcomes of
different actions
- Heuristics:
- reaction to/evaluation of agent advice
- reaction to/evaluation of state of world (before and after an
action)
- input to heuristics = parameters pertaining to world
- long-term goal(s)
- short-term goal(s)
- comparison of 2 states of world
USER:
- Tell controller what strategies each agent is following
- Indicate allowed level of collaboration
3. Non-Functional Requirements
- Agent count limited to # of players in game (2-6);
- Initially heuristic count limited to at least 4
4. System Evolution
- Can be distributed system of agents
- Could add more heuristics
- Could add more domains
- Could allow human players
- Could graphically display game progress
- Agents could be able to tell when others are
collaborating/"whispering"
5. Glossary of Terms
- Acquire: A game engine which this project is focusing its efforts on.
This game was originally produced by Avalon Hill, and is currently owned by Hasbro Games.
- Agent: An autonomous program which is
capable of playing a game engine.
Agents can interact with the engine by
making moves and gathering information about the domain world. Agents use heuristics to evaluate actions and states of the domain. Agents can also collaborate with other agents by
sending messages that suggest action. Agents can receive messages from
other agents, and respond to them.
- Collaborate: When two or more agents pass messages with one another
suggesting actions that are beneficial to all agents involved in the
negotiations.
- Domain: A domain is the world in
which agents can interact, specifically
as players in a game. Domains contain rules, a state, and a list of actions which each agent can perform. A domain is what an engine implements.
- Engine: A separate game program which
contains the rules, state, and a list
of actions which particiapnts can perform. In this project, Aquire is the engine which our agents
will be interacting with. However, it is our intention that different game
engines could easily be built and played by our system. An engine is a
specific implementation of a domain.
- Heuristic: An algorithm which
takes as input certain information about a domain and calculates what sorts of actions an agent can perform to its benefit.
Heuristics can be used to compare certain actions as well as hypothetical
states of the game world. Generally
each agent has one heuristic which
serves as a strategy on how to play the game.
- Long Term Goal: A user-chosen
goal which each agent seeks to
accomplish throughout game play. Long term goals are set in the beginning
of the game, and each agent's planning algorithm plans a series of short term goals to meet a
specific long term goal.
- Planning Algorithm: Each
agent contains a planning algorithm
which plots out a series of actions the agent will perform. The planning algorithm plots out
each state along the way to a specific
long term goal in mind. The
planning algorithm is flexible enough to adjust to changes in the domain that it had not previously
expected.
- Short Term Goal:: An immediate
course of action which an agent takes.
A short term goal is what the agent
decides to do within its current, or next game turn. A long term goal consist of a series
of short term goals to acheive some desired end for the agent.
- State: A state of a domain surrounds specific time period during game play.
A state of a domain describes the
current positions of all the players in the game, the game board, and
other relevant information. A state of a domain can describe whose turn it is, what actions have
been performed up to this point, and so forth.
- Whispering: A process which when
one agent (A) collaborates with another agent (B), a third agent (C) notices the collaboration between the first two agents (A,B) and becomes suspicious of the first two agents (A,B) as two opponents plotting
against the third agent (C).