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.

CONSTRAINT MANAGEMENT FOR DESIGN
OUTPUT FROM CONMAN, THE CONSTRAINT MANAGER
CONMAN REFINEMENT
PROPAGATION = SATISFACTION
VARIABLES AND EQUALS