A system and method for product configuration represents a product using a configuration
model having numerical clauses. Features of the product are associated with literals
in the numerical clauses. The numerical clauses may specify a number of literals
to determine whether the numerical clause is satisfied, satisfiable, or unsatisfiable.
Numerical clauses represent constraints that govern the configuration of the product.
Resolving numerical clauses and user choices involves one or more inference procedures.
In one embodiment, unit clauses represent user choices, and a configuration engine
asserts the unit clause and performs numerical unit resolution between the unit
clause and all numerical clauses containing the complement (generally a negation)
of the unit clause. Complementary literals are eliminated from the current state
of the configuration model. In one embodiment, if the uneliminated literals in
a numerical clause causes the clause to be satisfied, the uneliminated literals
are recursively asserted. The configuration engine then performs numerical unit
resolution between the recursively asserted, uneliminated literals and numerical
clauses containing the complements of the uneliminated literals. Numerical clauses
may also function as literals. Numerical clauses may include negations of consumer
literals and positive provider literals. If a user chooses a consumer feature,
by knowing the consumer and provider weights, the configuration engine can determine
which provider literals should be included, excluded, or remain selectable. Embodiments
of the invention can implement a logic-based truth maintenance system and numerical
unit resolution.