Frank-Wolfe-algoritme

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

Het Frank-Wolfe-algoritme, ook bekend als convexe-combinatiealgoritme, is een klassiek algoritme in het operationeel onderzoek (OR). Het werd in 1956 gepresenteerd door Marguerite Frank and Phil Wolfe als een procedure voor het oplossen van kwadratische programmeerproblemen met lineaire randvoorwaarden. Bij elke stap (iteratie) wordt de doelfunctie gelineariseerd en wordt een richting gekozen waarbij de doelfunctie wordt gereduceerd. Het algoritme kan worden gezien als een generalisatie van de simplexmethode voor lineair programmeren.

Probleemformulering[bewerken]

Minimaliseer  f(\mathbf{x}) = \frac{1}{2} \mathbf{x}^{\mathrm{T}} E\mathbf{x} +  \mathbf{h}^{\mathrm{T}} \mathbf{x}
met  \mathbf{x} \epsilon \mathbf{P}.

Waarin de n×n matrix E positief-semidefiniet is, h een n×1 vector is, en \mathbf{P} een mogelijk gebied definieert door een mix van lineaire ongelijkheden en gelijkheden (bijvoorbeeld Ax ≤ b, Cx = d).

Algoritme[bewerken]

Stap 1. Initialisatie. Laat k \leftarrow 0 en laat x_0 \! een punt zijn in \mathbf{P}.

Stap 2. Convergentietest. Indien  \nabla f(x_k)=0 stop, het minimum is gevonden.

Stap 3. Richting vinden door benadering van het probleem door vervangen van de functie f door een eerste-order Taylorreeks rond x_k \! . Los op voor \bar{x}_k:

Minimaliseer f(x_k) + \nabla^T f(x_k) \bar{x}_k
Onder voorwaarde \bar{x}_k \epsilon \mathbf{P}
(LP) x_k \! is vast in stap 3, terwijl de minimalisatie plaatsvindt door de \bar{x}_k te variëren, en is equivalent aan de minimalisatie van \nabla^T f(x_k) \bar{x}_k).

Stap 4. Bepaal de stapgrootte. Vind \lambda \! waarbij  f(x_k+\lambda(\bar{x}_k-x_k)) wordt geminimaliseerd onder voorwaarde van 0 \le \lambda \le 1 . Als \lambda = 0 \! stop, het minimum is gevonden.

Stap 5. Pas de waarden aan. Laat x_{k+1}\leftarrow x_k+\lambda(\bar{x}_k-x_k), laat k \leftarrow k+1 en ga naar stap 2.

Opmerkingen[bewerken]

Het algoritme gaat vlot bij de eerste iteraties maar het rendement neemt af naarmate het minimum wordt bereikt. De toepassing van het algoritme vindt onder andere plaats bij verkeersmodellen waarbij iteratief een evenwichtstoedeling van verkeersstromen wordt berekend.

Referenties[bewerken]