The Frank-Wolfe algorithm, also known as the Convex Combination algorithm, is a classic algorithm in Operations Research. It was originally proposed by Marguerite Frank and Phil Wolfe in 1956 as a procedure for solving quadratic programming problems with linear constraints. At each step the objective function is linearized and then a step is take in a direction that reduces the objective while maintaining feasibility. The algorithm can be seen as a generalization of the primal Simplex Algorithm for Linear Programming. In recent years it has been widely used for determining the equilibrium flows in transportation networks.
Problem statement
- Minimize
- subject to .
Where the n×n matrix E is positive semidefinite, h is an n×1 vector, and represents a feasible region defined by a mix of linear inequality and equality constraints (for example Ax ≤ b, Cx = d).
Algorithm
Step 1. Initialization. Let and let be any point in .
Step 2. Convergence test. If then Stop, we have found the minimum.
Step 3. Direction-finding subproblem. Solve for
- Minimize
- Subject to to
(note that this is a Linear Program).
Step 4. Step size determination. Find that minimizes subject to . If then Stop, we have found the minimum.
Step 5. Update. Let , let and go back to Step 2.
Comments
To be added.
References
M. Frank and P. Wolfe, An algorithm for quadratic programming, Naval Research Logistics Quarterly, 3 (1956), pp. 95--110.