Skip to content

Lineprog

LPProblem dataclass

LPProblem(
    constraints_eqz: list[Expression] = list(),
    constraints_gez: list[Expression] = list(),
    linear_objective: Expression = (
        lambda: Expression({})
    )(),
    quadratic_objective: list[Expression] = list(),
)

add_abs

add_abs(expr: Expression)

Use a slack variable to add an absolute value constraint.

Source code in .venv/lib/python3.12/site-packages/bloqade/cirq_utils/lineprog.py
166
167
168
169
170
171
172
173
174
def add_abs(self, expr: Expression):
    """
    Use a slack variable to add an absolute value constraint.
    """
    slack = Variable()
    self.add_gez(slack - expr)
    self.add_gez(slack + expr)
    self.add_gez(1.0 * slack)
    self.add_linear(1.0 * slack)