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 term in a valued CSP instance over the template Γ
.
- n : ℕ
Arity of the function
- f : (Fin self.n → D) → C
Which cost function is instantiated
- inΓ : ⟨self.n, self.f⟩ ∈ Γ
The cost function comes from the template
- app : Fin self.n → ι
Which variables are plugged as arguments to the cost function
Instances For
The cost function comes from the template
Evaluation of a Γ
term t
for given solution x
.
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
.
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
Arity of the "output" of the fractional operation.
Equations
- ω.size = (↑Multiset.card).toFun ω
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
- Function.AdmitsFractional f ω = ∀ (x : Fin m → Fin n → D), m • (Multiset.map f (ω.tt x)).sum ≤ ω.size • ∑ i : Fin m, f (x i)
Instances For
Fractional operation is a fractional polymorphism for given VCSP template.
Equations
- ω.IsFractionalPolymorphismFor Γ = ∀ f ∈ Γ, Function.AdmitsFractional f.snd ω
Instances For
Fractional operation is a symmetric fractional polymorphism for given VCSP template.