Lab 5: Constrained Optimization via Duality & KKT (Quadratic)
Aim
Solve a convex quadratic minimization with linear equality constraint and verify KKT conditions.
Objectives
- Model a quadratic objective in cvxpy.
- Add linear equality constraint.
- Solve and inspect primal solution.
- Discuss stationarity, feasibility, complementary slackness.
Algorithm / Procedure
- Define variables x, y.
- Set objective minimize x^2 + y^2.
- Set constraint x + y = 1.
- Solve with a convex optimizer.
- Verify that solution (0.5,0.5) satisfies KKT.
Python Code
import cvxpy as cp
x = cp.Variable()
y = cp.Variable()
objective = cp.Minimize(x**2 + y**2)
constraints = [x + y == 1]
prob = cp.Problem(objective, constraints)
result = prob.solve()
print("Optimal Value:", round(result, 4))
print("x =", round(x.value, 4), "y =", round(y.value, 4))
Sample Output (expected)
Optimal Value: 0.5
x = 0.5 y = 0.5