CS 452 – Software Engineering Workshop

CS 452 – Software Engineering Workshop
Acquire-Playing Agent System
Group 1:
Lisa Anthony
Mike Czajkowski
Luiza da Silva
Winter 2001, Department of Mathematics and Computer Science, Drexel University
Introduction
• We propose a system that will incorporate concepts of Game
Theory to model a specific domain, and of Artificial
Intelligent through the use of Intelligent Agents.
• The domain chosen for this project is Avalon Hill's strategy
game Acquire.
• The system will be open to the addition of new engines.
• During play, the agents will pick from a set of heuristics to
evaluate the world and decide how to act upon it.
• In general, the heuristics describe a strategy on how to play
the game.
Introduction (cont.)
• Game theory
behavior.
- can be used as a tool to study human
• Formally introduced by John von Neumann in 1944.
• Many real-life uses;
– In Economics: Study of market behavior through stock
market agents.
– In Business: used in industrial organizations, influencing
competition policies.
– In Biology: application of game theory in the study of
evolution (evolutionary games), etc.
Introduction (cont.)
• Agents - Autonomous entities that, in our system, will be
capable of playing a game through an engine.
• An intelligent agent is a piece of software with an element
of artificial intelligence, that allows the software to either
emulate humans or help support them in a digital manner.
• It is important to teaching computers how to play games
effectively.
• Relevance of our project
The Game of Acquire
Acquire is a game whose objective is to build up hotel
chains, buying stocks in the chains of your choice and
effecting takeovers of neighboring chains.
Players make money during these takeovers, also
called mergers. The winner of the game is the one who
has amassed the most wealth by the time the chains
reach a certain "unmergeable" size.
Acquire is a strategy-based game, like Chess, rather
than luck-based, like roulette.
The Game of Acquire (cont.)
• Because Acquire is a strategy-based game, brute-force AI
searching techniques are not adequate to its solution.
• Instead, planning and knowledge-based reasoning are more
efficient and effective.
• We plan to build a domain engine that will represent the
state of the world and legal actions, or operations, available
to the software agents.
• The heuristics available to the agents define certain
strategies that will help them choose actions during their
turn.
The Agent System
Figure 1: Diagram of the system’s overall structure.
The Agent System (cont.)
• Any number of agents (the game allows up to six players)
will communicate with its engine and with the referee
through a protocol which allows them to send and receive
messages regarding their actions and the effect they have
on the world, as well as what actions the other agents have
made.
• The system will be composed of the following parts:
–
–
–
–
–
Controller
Agents
Heuristic
Planning Algorithm
Referee
Some definitions
Action - A concrete move an agent can make during its turn.
Some possible actions include "buy 1 stock in hotel chain
Continental", or "place tile A7", or "pick tile", or "choose new
hotel chain Imperial", and so on.
Domain - the world in which agents can interact with,
specifically as players in a game.
Short-term goal - An immediate course of action which an
agent takes.
Long-term goal - A goal embodied within the agent's
heuristics which each agent seeks to accomplish throughout
game play.
About the Engines
Engine: A separate game program which contains the rules of
conduct, the world state, and a list of actions which participants
can perform.
An engine is a specific implementation of a domain. There are
two distinct engine types, the referee and the player engine.
Referee: The engine which is "in charge" of running the game
progress. It informs each agent when its turn is, what actions are
available to it, and updates the master state of the world.
Player Engine: Each agent communicates with their own local
engine which allows them to plan and consider hypothetical
scenarios while it is not their turn.
Planning Algorithm
• 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, as when new information becomes
available when another agent makes a move.
Heuristic
• Heuristic - An algorithm which takes as input certain
information about a domain and calculates which action an
agent can perform that is of greatest benefit to it.
• Determining the overall benefit of an action depends on a
comparison of the candidate actions as well as hypothetical
states of the game world, and also depends on the shortterm goal(s) and long-term goal(s) of the agent.
• Generally each agent has one heuristic which serves as a
strategy on how to play the game.
Heuristic (cont.)
•Sample heuristics include aggressive strategies, defensive
strategies, passive strategies, or combinations thereof. It will
be possible to test the strategies against each other in a game
where all agents play in a competitive mode.
•Each heuristic has a mathematical maximization formula
which it uses for evaluation.
•“Manhattan distance” - The distance between two points
measured along axes at right angles. In a plane with p1 at (x1,
y1) and p2 at (x2, y2), it is |x1 - x2| + |y1 - y2|. Heuristics will
have to take “manhattan distance” into consideration when
“planning” moves.
Agents’ communication broadcast
service
• Involves how the agents talk to the engine and use
their heuristic and planning algorithm to come up
with intelligent choices.
• The Agents and Engines must be able to
communicate with one another in order to plan,
make moves and play Acquire, but this is difficult
because they have to:
– Agree on a communication protocol.
– Be allowed to exist as independent processes.
– Be highly portable, able to move to any machine.
Agents’ communication broadcast
service
This is why we will design the communication system to allow
entities to be highly adaptable, and allow multiple connections to
other entities freely.
Other Agent Connectors
Server Connector
Agent Connector
Engine
Agent
Other Agent Connectors
and Engine
Figure 2: System Overview of Objects
Conclusion
• The system is being designed with modularity in mind.
Therefore, many more heuristics could be defined in the
future.
• The system has been implemented around the Acquire
domain; however, we believe the same statistical analysis
of viable strategies would be useful in many other
domains, for example, engineering design, day trading, and
so on.
Conclusion (cont.)
The system can be extended to also accept human players, that
can come up with their own strategies.
It could be possible that agent collaboration will be allowed
and also that the user could define the level of privacy for
messages being sent back and forth.