General-Valued Constraint Satisfaction Problems #
General-Valued CSP is a very broad class of problems in discrete optimization. General-Valued CSP subsumes Min-Cost-Hom (including 3-SAT for example) and Finite-Valued CSP.
Main definitions #
ValuedCSP: A VCSP template; fixes a domain, a codomain, and allowed cost functions.ValuedCSP.Term: One summand in a VCSP instance; calls a concrete function from given template.ValuedCSP.Term.evalSolution: An evaluation of the VCSP term for given solution.ValuedCSP.Instance: An instance of a VCSP problem over given template.ValuedCSP.Instance.evalSolution: An evaluation of the VCSP instance for given solution.ValuedCSP.Instance.IsOptimumSolution: Is given solution a minimum of the VCSP instance?Function.HasMaxCutProperty: Can given binary function express the Max-Cut problem?FractionalOperation: Multiset of operations on given domain of the same arity.FractionalOperation.IsSymmetricFractionalPolymorphismFor: Is given fractional operation a symmetric fractional polymorphism for given VCSP template?
References #
- [D. A. Cohen, M. C. Cooper, P. Creed, P. G. Jeavons, S. Živný, An Algebraic Theory of Complexity for Discrete Optimisation][cohen2012]
A template for a valued CSP problem over a domain D with costs in C.
Regarding C we want to support Bool, Nat, ENat, Int, Rat, NNRat,
Real, NNReal, EReal, ENNReal, and tuples made of any of those types.
Instances For
A term in a valued CSP instance over the template Γ.
- n : ℕ
Arity of the function
Which cost function is instantiated
The cost function comes from the template
Which variables are plugged as arguments to the cost function
Instances For
Evaluation of a Γ term t for given solution x.
Equations
- t.evalSolution x = t.f (x ∘ t.app)
Instances For
A valued CSP instance over the template Γ with variables indexed by ι.
Instances For
Evaluation of a Γ instance I for given solution x.
Equations
- I.evalSolution x = (Multiset.map (fun (x_1 : Γ.Term ι) => x_1.evalSolution x) I).sum
Instances For
Condition for x being an optimum solution (min) to given Γ instance I.
Equations
- I.IsOptimumSolution x = ∀ (y : ι → D), I.evalSolution x ≤ I.evalSolution y
Instances For
Function f has Max-Cut property at labels a and b when argmin f is exactly
{ ![a, b] , ![b, a] }.
Equations
Instances For
Function f has Max-Cut property at some two non-identical labels.
Equations
- Function.HasMaxCutProperty f = ∃ (a : D) (b : D), a ≠ b ∧ Function.HasMaxCutPropertyAt f a b
Instances For
Fractional operation is a finite unordered collection of D^m → D possibly with duplicates.
Equations
- FractionalOperation D m = Multiset ((Fin m → D) → D)
Instances For
Fractional operation is valid iff nonempty.
Instances For
Valid fractional operation contains an operation.
Fractional operation applied to a transposed table of values.
Equations
- ω.tt x = Multiset.map (fun (g : (Fin m → D) → D) (i : ι) => g (Function.swap x i)) ω
Instances For
Cost function admits given fractional operation, i.e., ω improves f in the ≤ sense.
Equations
Instances For
Fractional operation is a fractional polymorphism for given VCSP template.
Equations
- ω.IsFractionalPolymorphismFor Γ = ∀ f ∈ Γ, Function.AdmitsFractional f.snd ω
Instances For
Fractional operation is symmetric.
Instances For
Fractional operation is a symmetric fractional polymorphism for given VCSP template.