This repository contains the slides on the convex-concave procedure from EE 364a, together with example code. To see the animations in the PDF file, you need to select a viewer that supports animations, such as Adobe Acrobat Reader.
For more theoretical background, please refer to Thomas Lipp and Stephen Boyd's paper on Variations and Extensions of the Convex-Concave Procedure.
Most of the examples use DCCP, which is short for disciplined convex-concave programming. DCCP is based on the domain-specific language for convex optimization CVXPY.
Here is an example on collision avoidance, using the convex-concave procedure (the code is here). Each colored vehicle aims to travel to the opposite side of the circle of initial positions. We minimize the total distance travelled by all vehicles, subject to no collisions. The convex-concave procedure discovers the roundabout.