CSSE 413: Reasoning Programming Assignment
The aim of this assignment is to understand and implement the use of
knowledge representation and reasoning to solve problems. In
particular, we ask you to develop a rule-base system in which
knowledge is stored in declarative rules rather than built into
procedures. This will later on enable you to develop sophisticated
learning algorithms.
Problem
We ask you to develop, implement and test a knowledge representation
formalism to represent game states and rules of game play. This will
likely result in somewhat of a re-write of the system you developed so
far as you will need a different architecture.
Work on this assignment by yourself.
The following specifications are added to this more complex version of
"Capture the Flag":
- One or more persons may be on your team.
- No two persons on your team may occupy the same space.
- Zero or more persons may move per turn. Two players may switch
positions.
- There may be more flags than players.
The specifications for your software are as follows:
- Implement a production system. Develop and implement productions
to hold state information and to encode moves that can be made.
- Ensure you have a good heuristic to select among rules to fire or
build this knowledge into the production set.
In addition to turning in your software, we ask you to turn in a
document in which you list your Java code implementing the
productions, a short natural language description of the productions
as well as a description of how you implemented your heuristics.
We will attempt to publish the length of shortest paths sometime
next week and modify the server and scenarios
files to automate this check.
Please add code to print out path information like the one shown here. This enables us to grade your
code in a more effective manner.
Turnin
- Submit your code and write-up to the appropriate drop box on Angel
by midnight on Monday, October 4th.