Frank–Wolfe algorithm
From Wikipedia, the free encyclopedia
The Frank–Wolfe algorithm, also known as the convex combination algorithm, is a classic algorithm in operations research (OR). 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 taken 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.
Contents |
[edit] 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).
[edit] 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. The approximation of the problem that is obtained by replacing the function f with its first-order Taylor expansion around is found. Solve for :
- Minimize
- Subject to
- (note that this is a Linear Program. is fixed during Step 3, while the minimization takes place by varying and is equivalent to minimization of ).
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.
[edit] Comments
The algorithm generally makes good progress towards the optimum during the first few iterations, but convergence often slows down substantially when close to the minimum point. For this reason the algorithm is perhaps best used to find an approximate solution. It can be shown that the worst case convergence rate is sublinear; however, in practice the convergence rate has been observed to improve in case of many constraints.[1]
[edit] References
- M. Frank and P. Wolfe, An algorithm for quadratic programming, Naval Research Logistics Quarterly, 3 (1956), pp. 95--110.
- The Frank-Wolfe algorithm description
- Combined Traffic Signal Control and Traffic Assignment: Algorithms, Implementation and Numerical Results, Chungwon Lee and Randy B. Machemehl, University of Texas at Austin, March 2005
[edit] Notes
- ^ "Nonlinear Programming", Dimitri Bertsekas, 2003, page 222. Athena Scientific, ISBN 1-886529-00-0.