摘要 |
A system and method provides a solution to the problem of applying end-to-end requirements of connectivity, security, reliability and performance to configure a network and ultimately assign network components to the network. All requirements are modeled as constraints and a constraint solver does the resolution. Not every constraint to be solved is solved by the model-finder. Instead, we factor away subsets of a constraint that can be efficiently solved via a special-purpose constraint solver, such as an SQL/Prolog engine, linear programming system, or even an algorithm, leaving behind a constraint that truly requires the power of model-finding, and that is often efficiently solvable by existing model-finders. Such constraints are compiled into quantifier-free constraints that are Boolean combinations of constraints of two forms x=y and x=c where x, y are variables and c is a constant. Such constraints can be efficiently solved by modern SAT-based model-finders. The system intelligently removes the quantifiers instead of having the model-finder remove the quantifiers. An unsatisfiability-core analysis efficiently guides the search for configurations to change to restore consistency. |