9 – M4 L4 12 Infeasible Problems V4

Remember how earlier we talked about the possibility of setting yourself a problem that doesn’t have a solution because there is no answer that satisfies all the constraints? Well, that can happen in practice. When you’re working with two or three dimensional problems where you can graph the functions and observe what’s going on, it might be easier to see when the problem becomes infeasible. However, in practice you’re working in a high-dimensional space where it’s hard to visualize what’s going on. In general learning what makes the problem infeasible comes with experience. So, much of this might sound rather abstract, but we want to have a short discussion here to give you an intuition. One possible situation where this might arise, is if you fix the weight on a particular stock. For example, sometimes for some reason the compliance group at your company may restrict trading company wide on a particular stock. So, there may be some stock that you can’t trade or there may be a particular stock that’s difficult to short, so again, you’d like to constrain the weight on that stock. However, if you put a hard constraint on the weight on that particular stock, this might cause you to reach an infeasible solution in your optimization problem. Let’s just say first that it’s often dangerous to put equality constraints in an optimization problem because the problem can get infeasible very easily. Remember that inequality constraint is a much stronger condition than an inequality constraint. It’s the difference between requiring that they answer lie on a line or below a line, for example. Infeasibility is an issue with your constraints. One possible solution is to move one or more constraints to penalty terms in the objective function. This changes the problem from placing a hard limit on some quantity to seeking to minimize that quantity, but balanced against the other terms in the objective. So, what are general rules of thumb or guidelines for avoiding these situations in practice? In production you’re inheriting a live portfolio. Your job in optimization is to transition that portfolio to a new state using new data, new Alpha factors, and keeping in mind that market movements have caused the old weights to change slightly. The first thing to check is whether the starting portfolio produces an infeasible problem or not. In general start with fewer terms in the objective function. If that problem becomes infeasible, try to figure out which constraints are the ones causing the infeasibility, see if you can change or override any of those constraints. Finally, consider moving constraints to penalty terms in the objective function.