(2020) “An overview to monotone co-design theory”.
2020 talk at MIT Categories Seminar .
(2015) “Monotone Co-Design Problems: or, everything is the same”.

Co-design with categories

Co-design is explained in Chapter 4 of “Seven Sketches in Compositionality” by Spivak and Fong.

Co-design Applications

Gioele Zardini, Nicolas Lanzetti, Andrea Censi, Emilio Frazzoli, Marco Pavone. Co-Design to Enable User-Friendly Tools to Assess the Impact of Future Mobility Solutions. Preprint, 2020. pdf supp. materialbibtex

This paper applies a monotone theory of co-design to model and solve the co-design of future mobility systems. In particular, we show how such a formalism allows for a user-friendly framework, which allows stakeholders to assess the impact of future mobility solutions, such as autonomous vehicles and micrmobility.


Gioele Zardini, Dejan Milojevic, Andrea Censi, Emilio Frazzoli. A Formal Approach to the Co-Design of Embodied Intelligence. Preprint, 2020. pdf supp. materialbibtex

We consider the problem of formally co-designing embodied intelligence as a whole, from hardware components such as chassis and sensors to software modules such as control and perception pipelines. We propose a principled approach to formulate and solve complex embodied intelligence co-design problems, leveraging a monotone co-design theory. The methods we propose are intuitive and integrate heterogeneous engineering disciplines, allowing analytical and simulation-based modeling techniques and enabling interdisciplinarity. We illustrate through a case study how, given a set of desired behaviors, our framework is able to compute Pareto efficient solutions for the entire hardware and software stack of a self-driving vehicle.


Co-design without categories

This paper is currently the best reference for the algorithmics:

Andrea Censi. A mathematical theory of co-design. Technical Report, Laboratory for Information and Decision Systems, MIT, September 2016. pdf supp. materialbibtex

This paper introduces a theory of co-design that describes "design problems", defined as tuples of "functionality space", "implementation space", and "resources space", together with a feasibility relation that relates the three spaces. Design problems can be interconnected together to create "co-design problems", which describe possibly recursive co-design constraints among subsystems.


This is a rather technical paper with more examples and the description of the certainty handling mechanism currently implemented:

Andrea Censi. Uncertainty in monotone co-design problems. Robotics and Automation Letters, 2017. pdf supp. materialbibtex

This paper concerns the introduction of uncertainty in the MCDP framework. Uncertainty has two roles: first, it allows to deal with limited knowledge in the models; second, it also can be used to generate consistent relaxations of a problem, as the computation requirements can be lowered should the user accept some uncertainty in the answer.