liveBook · Manning

Feasible region

As explained in Build a Robo-Advisor with Python (From Scratch)

A feasible set is the set of variable values that satisfy all constraints of an optimization problem.

A feasible region, or feasible set, is the collection of all variable values that satisfy every constraint in an optimization problem. The objective function is minimized or maximized only over these allowed points; constraints can therefore move an optimum to an endpoint rather than the point where a derivative is zero. section 10.1.1

Feasibility matters to iterative optimization. An algorithm may begin at a feasible point and repeatedly step in a direction that improves the objective. When the feasible region is convex, every point on the line segment between any two feasible points is also feasible. A nonconvex region can contain holes that block an improving path, even when feasible points exist beyond the gap. A convex objective together with a convex feasible set forms a convex optimization problem, for which efficient solution methods exist. section 10.1.2

Figure 10.7 Two nonconvex sets. The line segments shown connect two points in each set but don’t lie completely in the set.
figure

Compare nonconvex sets with the line segments that leave each set: the missing segment illustrates the hole that violates convexity. section 10.1.2

Portfolio constraints can empty the set

Consider a portfolio constrained to be long-only, fully invested, below a volatility target, and no more than 25% in any position. With a 15% volatility bound, capped weights can produce a portfolio spread across VTI, VEA, VWO, and EMB. Tightening the volatility bound to 5% can make the feasible set empty: no portfolio satisfies all constraints simultaneously. In that case, cvxpy returns a vector of NaN, so adding a diversification constraint requires checking that the combined requirements remain feasible. section 10.3.2 section 10.3.2

How Build a Robo-Advisor with Python (From Scratch) covers it

How deep it goes
Explains endpoints, convexity, iterative search obstruction, and an empty constrained portfolio case.
Examples
Uses bounded one-variable objectives and capped VTI, VEA, VWO, AGG, BNDX, and EMB portfolio weights.
What you can do after
Diagnose/debug with it by recognizing when combined portfolio constraints leave no admissible allocation.
How it connects
Connects constraints and objective functions to convex sets, convex optimization, and portfolio diversification.

Also explained in

Compare how 2 books explain feasible region →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Build a Robo-Advisor with Python (From Scratch). The section links point to the parts of the book it draws on.