3.1.1 | ||||||||
Constraint Systems | ||||||||
home page | ||||||||
There are two general ways to compute an answer, either head toward the solution as a goal, or prune away possible answers that are not solutions. A particular item of information can tell you about what the solution is (direct computation), or it can tell you about what the solution is not (constraint management). I've built a couple of constraint management systems, one for placement of seats in a vehicle, and one for reducing the computational load in a virtual environment. |
||||||||
papers/essays | ||||||||
computer science | ||||||||
|
||||||||
∆ constraints | ||||||||
agents/entities | ||||||||
AI | ||||||||
programming | ||||||||
CAD/EDA | ||||||||
HCI | ||||||||
distributed | ||||||||
|
||||||||
site structure | ||||||||
Constraint management has the added advantage of finding sets of solutions, as well as finding a single solution that may not be optimal but is certainly acceptable (a satisficing solution). CONMAN (CONstraint MANager) was designed to converge upon a set of solutions using a possibility calculus to prune the space of possibilities. A context-sensitive control structure helps to avoid searching for explicit solutions. The paper steps though the possibility calculus approach with a long toy example. Output for the example is also included (from a Prolog program written by Eric Gullichsen). A couple of short design discussion memos follow.
|
||||||||