Benson's algorithm

Benson's algorithm, named after Harold Benson, is a method for solving multi-objective linear programming problems and vector linear programs. This works by finding the "efficient extreme points in the outcome set". The primary concept in Benson's algorithm is to evaluate the upper image of the vector optimization problem by cutting planes.

Idea of algorithm
Consider a vector linear program
 * $$\min_C Px \; \text{ subject to } A x \geq b$$

for $$P \in \mathbb{R}^{q \times n}$$, $$A \in \mathbb{R}^{m \times n}$$, $$b \in \mathbb{R}^m$$ and a polyhedral convex ordering cone $$C$$ having nonempty interior and containing no lines. The feasible set is $$S=\{x \in \mathbb{R}^n:\; A x \geq b\}$$. In particular, Benson's algorithm finds the extreme points of the set $$P[S] + C$$, which is called upper image.

In case of $$C=\mathbb{R}^q_+:=\{y \in \mathbb{R}^q : y_1 \geq 0,\dots, y_q \geq 0\}$$, one obtains the special case of a multi-objective linear program (multiobjective optimization).

Dual algorithm
There is a dual variant of Benson's algorithm, which is based on geometric duality for multi-objective linear programs.

Implementations
Bensolve - a free VLP solver Inner
 * www.bensolve.org
 * Link to github