Learning for Convex Optimization

In many engineered systems, optimization is used for decision making at time-scales ranging from real-time operation to long-term planning. This process often involves solving similar optimization problems over and over again with slightly modified input parameters, often under stringent time requirements. We consider the problem of using the information available through this solution process to directly learn the optimal solution as a function of the input parameters, thus reducing the need of solving computationally expensive large-scale parametric programs in real time. Our proposed method is based on learning relevant sets of active constraints, from which the optimal solution can be obtained efficiently. Using active sets as features preserves information about the physics of the system, enables more interpretable learning policies, and inherently accounts for relevant safety constraints. Further, the number of relevant active sets is finite, which make them simpler objects to learn. To learn the relevant active sets, we propose a streaming algorithm backed up by theoretical results. Through extensive experiments on benchmarks of the Optimal Power Flow problem, we observe that often only a few active sets are relevant in practice, suggesting that this is the appropriate level of abstraction for a learning algorithm to target.