
How do we build complex optimization and planning problems from simpler pieces and how can we exploit the compositional structure of such problems to enable fast, distributed solution algorithms? This project uses tools from programming language theory and category theory, specifically functorial semantics, Cartesian reverse derivative categories, and hypergraph categories, to formalize and answer these questions. The result is a general categorical framework for continuous optimization equipped with a graphical language for expressing different types of composite problems and distributed solution algorithms. As useful examples, we showed how our framework can be used to derive a distributed training algorithm for multitask learning and a hierarchical decomposition method for the minimum cost network flow problem.