speederracer123's picture
Upload 17 files
d3527de verified
Raw
History Blame Contribute Delete
1.01 kB
"""
Cost functions for all three QAOA problem modules.
All functions accept binary integer arguments (0 or 1) and return a scalar cost.
"""
def cost_standard(x1, x2, x3):
"""Unconstrained problem: C(x) = x1 + x2 - x2*x3 (3 qubits)."""
return x1 + x2 - (x2 * x3)
def cost_equality(x1, x2, x3):
"""
Equality-constrained problem (3 qubits).
Minimize C(x) = x1 + x2 - x2*x3 subject to x1 + x2 + x3 = 1.
Penalty: A * (x1 + x2 + x3 - 1)^2, A = 3.0
"""
A = 3.0
obj = x1 + x2 - (x2 * x3)
penalty = A * (x1 + x2 + x3 - 1) ** 2
return obj + penalty
def cost_inequality(x1, x2, x3, s):
"""
Inequality-constrained problem via slack variable (4 qubits).
Minimize C(x) = x1 + x2 - x2*x3 subject to x1 + x2 + x3 >= 2.
Slack variable formulation: x1 + x2 + x3 - s = 2, s in {0, 1}.
Penalty: A * (x1 + x2 + x3 - s - 2)^2, A = 4.0
"""
A = 4.0
obj = x1 + x2 - (x2 * x3)
penalty = A * (x1 + x2 + x3 - s - 2) ** 2
return obj + penalty