Knowledge-based configuration (of complex products and services) has a long history as an
artificial intelligence application area, see, e.g. Informally, configuration can be defined as a "special case of design activity, where the artifact being configured is assembled from instances of a fixed set of well-defined component types which can be composed conforming to a set of constraints". Such constraints represent technical restrictions, restrictions related to economic aspects, and conditions related to production processes. The result of a configuration process is a product configuration (concrete configuration), i.e., a list of instances and in some cases also connections between these instances. Examples of such configurations are computers to be delivered or financial service portfolio offers (e.g., a combination of loan and corresponding risk insurance).
Theory and complexity of configuration Numerous practical configuration problems can be analyzed by the theoretical framework of Najmann and Stein, an early axiomatic approach that does not presuppose any particular
knowledge representation formalism. One important result of this methodology is that typical optimization problems (e.g. finding a cost-minimal configuration) are
NP-complete. Thus they require (potentially) excessive computation time, making
heuristic configuration algorithms the preferred choice for complex artifacts (products, services). ==Configuration systems==