The Art of Universal Constraint Solving w/ Universal Solvers

Original article can be found here (source): Artificial Intelligence on Medium

The Art of Universal Constraint Solving w/ Universal Solvers

All solvers e.g. K-SAT, SMT, K-CSP etc. solve constraints. But they represent those constraints in some ‘limited’ fashion and solve them.

For example in boolean satisfiability (K-SAT) we represent constraints in CNF form as

(x1∧y1∧z1) ∨ (x2∧y2∧z2) ∨ … ∨ (xn∧yn∧zn)

While all such solvers are interesting and useful. Its hard to represent practical problems in these forms very easily, compactly and solve them efficiently.

We have to think of what is the best form of representing and solving constraints. (In a theoretical sense)

Universal Constraints

Given n variables. Universal Constraints mean that they can represent any kind of mathematical constraint relationship between them. Including but not limited to below. e.g.


3xy + 2x² — y³ ≥ 9

5xy²-10x-5y != 10

The Problem?

Can we make a solver which uses and solves Universal Constraints? Yes!

Thats what we have at Automatski.

But why would we want to do that?

#1 Universal Problem Solving

If we are able to represent and solve arbitrary Universal Constraints we can solve gazillions of problems of interest to us.

#2 Exponentially Powerful

Universal Constraints are exponentially more powerful in comparison to e.g. CNF in Boolean Satisfiability.

#3 Exponentially Compact and Efficient

We can represent problems in exponentially lesser constraints exponentially efficiently if we can use Universal Constraints.

The biggest problem with other solvers is that for e.g. we need exponential clauses to represent some problems in Boolean Satisfiability. Combined with the fact that K-SAT takes an exponential amount of time/effort to solve anyway over and above that. So it becomes a double exponential nightmare.

#4 Natural

Universal Constraints are very natural and intuitive to think of and use. It requires minimum effort to encode a problem using natural constraints.

#5 Exponentially Difficult (The Problem)

Solving Universal Constraints can be exponentially more difficult than solvers with simple constraint representations. Thats the only reason why solvers with simple constraint representations are used and so popular.

But if P = NP (which it is) we might be able to solve Universal Constraints in non-exponential and better, in polynomial time.


Why are we harping about universal constraints and universal solvers? Obviously we are the least interested in literature surveys and theory.

Answer: At Automatski our K-CSP Solvers use and solve Universal Constraints. And we have already proven P = NP in 1990’s.

So now we have a class of algorithms which deliver an entire class of solvers for use in universal problem solving.

The first requirement to achieving AGI is to make Universal Solvers which Use and Solve Universal Constraints.

Time to light a cigar…

About us

This is our website