Python library to solve certain P-hard problems in polynomial time

1 pointsposted 6 hours ago
by pcoz

1 Comments

pcoz

6 hours ago

Some problems classified as #P-hard - where counting valid solutions is thought to require exponential time - can have a hidden structure that makes them solvable exactly, in polynomial time.

This library finds that encoding automatically, then solves them.

Problems addressed are counting and optimisation problems with bounded-rank constraint structure - scheduling, rostering, network flow, statistical-mechanics partition functions, quantum circuit verification, and others.

Note: Most #P-hard problems don't have this structure. The library is explicit when it can't help.

Repo and docs: - github.com/pcoz/holant-tools - pypi.org/project/holant-tools

All feedback welcome!