Interface IUniversePseudoBooleanSolver

All Superinterfaces:
IUniverseSatSolver, IUniverseSolver
All Known Subinterfaces:
IUniverseCSPSolver

public interface IUniversePseudoBooleanSolver extends IUniverseSatSolver
The IUniversePseudoBooleanSolver interface defines the contract for pseudo-Boolean solvers.
  • Method Details

    • addPseudoBoolean

      void addPseudoBoolean(List<Integer> literals, List<BigInteger> coefficients, boolean moreThan, BigInteger degree)
      Creates a pseudo-Boolean constraint of type at-least or at-most.
      Parameters:
      literals - The literals of the constraint to add.
      coefficients - The coefficients of the literals.
      moreThan - Whether the constraint is an at-least constraint, or an at-most constraint.
      degree - The degree of the constraint.
      Throws:
      UniverseContradictionException - If the constraint to add is inconsistent.
    • addAtMost

      default void addAtMost(List<Integer> literals, int degree)
      Creates an at-most cardinality constraint.
      Parameters:
      literals - The literals of the constraint to add.
      degree - The degree of the constraint.
      Throws:
      UniverseContradictionException - If the constraint to add is inconsistent.
    • addAtMost

      void addAtMost(List<Integer> literals, List<Integer> coefficients, int degree)
      Creates an at-most pseudo-Boolean constraint.
      Parameters:
      literals - The literals of the constraint to add.
      coefficients - The coefficients of the literals.
      degree - The degree of the constraint.
      Throws:
      UniverseContradictionException - If the constraint to add is inconsistent.
    • addAtMost

      void addAtMost(List<Integer> literals, List<BigInteger> coefficients, BigInteger degree)
      Creates an at-most pseudo-Boolean constraint.
      Parameters:
      literals - The literals of the constraint to add.
      coefficients - The coefficients of the literals.
      degree - The degree of the constraint.
      Throws:
      UniverseContradictionException - If the constraint to add is inconsistent.
    • addAtLeast

      default void addAtLeast(List<Integer> literals, int degree)
      Creates an at-least cardinality constraint.
      Parameters:
      literals - The literals of the constraint to add.
      degree - The degree of the constraint.
      Throws:
      UniverseContradictionException - If the constraint to add is inconsistent.
    • addAtLeast

      void addAtLeast(List<Integer> literals, List<Integer> coefficients, int degree)
      Creates an at-least pseudo-Boolean constraint.
      Parameters:
      literals - The literals of the constraint to add.
      coefficients - The coefficients of the literals.
      degree - The degree of the constraint.
      Throws:
      UniverseContradictionException - If the constraint to add is inconsistent.
    • addAtLeast

      void addAtLeast(List<Integer> literals, List<BigInteger> coefficients, BigInteger degree)
      Creates an at-least pseudo-Boolean constraint.
      Parameters:
      literals - The literals of the constraint to add.
      coefficients - The coefficients of the literals.
      degree - The degree of the constraint.
      Throws:
      UniverseContradictionException - If the constraint to add is inconsistent.
    • addExactly

      default void addExactly(List<Integer> literals, int degree)
      Creates an exactly cardinality constraint.
      Parameters:
      literals - The literals of the constraint to add.
      degree - The degree of the constraint.
      Throws:
      UniverseContradictionException - If the constraint to add is inconsistent.
    • addExactly

      void addExactly(List<Integer> literals, List<Integer> coefficients, int degree)
      Creates an exactly pseudo-Boolean constraint.
      Parameters:
      literals - The literals of the constraint to add.
      coefficients - The coefficients of the literals.
      degree - The degree of the constraint.
      Throws:
      UniverseContradictionException - If the constraint to add is inconsistent.
    • addExactly

      void addExactly(List<Integer> literals, List<BigInteger> coefficients, BigInteger degree)
      Creates an exactly pseudo-Boolean constraint.
      Parameters:
      literals - The literals of the constraint to add.
      coefficients - The coefficients of the literals.
      degree - The degree of the constraint.
      Throws:
      UniverseContradictionException - If the constraint to add is inconsistent.