This guide demonstrates how to use the Julia packages GenericTensorNetworks.jl, OMEinsum.jl, and ProblemReductions.jl to represent constraint satisfaction problems as tensor networks, optimize contraction orders, and extract solution-space properties.
Automated Discovery of Branching Rules with Optimal Complexity for the Maximum Independent Set Problem
1 Pith paper cite this work. Polarity classification is still indexing.
abstract
The branching algorithm is a fundamental technique for designing fast exponential-time algorithms to solve combinatorial optimization problems exactly. It divides the entire solution space into independent search branches using predetermined branching rules, and ignores the search on suboptimal branches to reduce the time complexity. The complexity of a branching algorithm is primarily determined by the branching rules it employs, which are often designed by human experts. In this paper, we show how to automate this process with a focus on the maximum independent set problem. The main contribution is an algorithm that efficiently generate optimal branching rules for a given sub-graph with tens of vertices. Its efficiency enables us to generate the branching rules on-the-fly, which is provably optimal and significantly reduces the number of branches compared to existing methods that rely on expert-designed branching rules. Numerical experiment on 3-regular graphs shows an average complexity of O(1.0441^n) can be achieved, better than any previous methods.
citation-role summary
citation-polarity summary
fields
physics.comp-ph 1years
2024 1verdicts
CONDITIONAL 1roles
background 1polarities
unclear 1representative citing papers
citing papers explorer
-
Programming guide for solving constraint satisfaction problems with tensor networks
This guide demonstrates how to use the Julia packages GenericTensorNetworks.jl, OMEinsum.jl, and ProblemReductions.jl to represent constraint satisfaction problems as tensor networks, optimize contraction orders, and extract solution-space properties.