0
0
SciPydata~10 mins

Constrained optimization in SciPy - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Constrained optimization
Define objective function
Define constraints
Choose initial guess
Call optimizer
Check constraints satisfied?
NoAdjust and retry
Yes
Return optimal solution
The process starts by defining the function to minimize and constraints, then uses an optimizer to find the best solution that meets all constraints.
Execution Sample
SciPy
from scipy.optimize import minimize

# Objective: minimize x^2 + y^2
# Constraint: x + y = 1

res = minimize(lambda v: v[0]**2 + v[1]**2, [0,0], constraints={'type':'eq','fun': lambda v: v[0]+v[1]-1})
print(res.x)
This code finds the point (x,y) closest to origin where x + y = 1.
Execution Table
StepCurrent guess (x,y)Objective valueConstraint value (x+y-1)Action
1[0, 0]0-1Start at initial guess, constraint not met
2[0.5, 0.5]0.50Constraint met, objective improved
3[0.6, 0.4]0.520Constraint met, objective worse, optimizer tries better
4[0.5, 0.5]0.50Optimizer returns best found solution
Exit---Optimization converged with constraint satisfied
💡 Optimization stops when constraint is met and objective cannot be improved further.
Variable Tracker
VariableStartAfter 1After 2After 3Final
x00.50.60.50.5
y00.50.40.50.5
Objective00.50.520.50.5
Constraint-10000
Key Moments - 2 Insights
Why does the optimizer start with a guess that does not satisfy the constraint?
The optimizer begins with the initial guess provided (0,0) even if it violates constraints. It then adjusts guesses to satisfy constraints as shown in steps 1 to 2 in the execution table.
Why can the objective value increase in some steps during optimization?
Sometimes the optimizer tries points with worse objective values temporarily to find a better overall solution that satisfies constraints, as seen in step 3 where objective increased but constraint was met.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the constraint value at step 2?
A-1
B0
C0.5
D1
💡 Hint
Check the 'Constraint value' column at step 2 in the execution_table.
At which step does the optimizer first meet the constraint exactly?
AStep 1
BStep 3
CStep 2
DStep 4
💡 Hint
Look for the first step where 'Constraint value' is zero in the execution_table.
If the initial guess was [1,1], how would the constraint value at start change?
AIt would be 1
BIt would be 0
CIt would be 2
DIt would be -1
💡 Hint
Constraint is x + y - 1, so sum the initial guess values and subtract 1.
Concept Snapshot
Constrained optimization:
- Minimize a function subject to constraints
- Define objective and constraints
- Provide initial guess
- Use scipy.optimize.minimize with constraints
- Optimizer adjusts guess to satisfy constraints
- Returns solution meeting constraints with minimal objective
Full Transcript
Constrained optimization finds the best solution that meets rules. We start with a guess, check if it meets constraints, and improve it step by step. The optimizer tries different points, sometimes worse, to find the best valid answer. The process stops when constraints are met and no better solution is found.