Per minimizzare una funzione convessa
f
{\displaystyle f}
(in blu) su un insieme convesso
D
{\displaystyle D}
(in verde), l'algoritmo di Frank-Wolfe considera la linearizzazione della funzione obiettivo all'iterazione corrente (in rosso)
In ottimizzazione convessa vincolata e in analisi numerica , l'algoritmo di Frank-Wolfe (detto anche algoritmo del gradiente condizionale [ 1] , oppure del gradiente ridotto ; in inglese conditional gradient o reduced gradient ) è un metodo iterativo che consente di determinare il punto di minimo di un'approssimazione lineare della funzione obiettivo .
Il metodo fu sviluppato da Marguerite Frank e Philip Wolfe nel 1956[ 2] .
Sia
D
{\displaystyle D}
un insieme convesso compatto in uno spazio vettoriale , e sia
f
:
D
→
R
{\displaystyle f\colon D\to \mathbb {R} }
una funzione convessa e differenziabile . L'algoritmo di Frank-Wolfe trova
min
x
∈
D
f
(
x
)
{\displaystyle \min _{\mathbf {x} \in D}f(\mathbf {x} )}
in modo iterativo.
* Passo 0 (Inizializzazione) : Si sceglie un punto
x
0
∈
D
{\displaystyle \mathbf {x} _{0}\in D}
e si pone
k
=
0.
{\displaystyle k=0.}
* Passo 1 : Si determina
s
k
=
min
s
∈
D
s
T
∇
f
(
x
k
)
{\displaystyle \mathbf {s} _{k}=\min _{\mathbf {s} \in D}\mathbf {s} ^{T}\nabla f(\mathbf {x} _{k})}
.
* Passo 2 : Si determina
α
=
min
0
≤
α
≤
1
f
(
x
k
+
α
(
s
k
−
x
k
)
)
{\displaystyle \alpha =\min _{0\leq \alpha \leq 1}f(\mathbf {x} _{k}+\alpha (\mathbf {s} _{k}-\mathbf {x} _{k}))}
.
* Passo 3 : Si pone
x
k
+
1
=
x
k
+
α
(
s
k
−
x
k
)
{\displaystyle \mathbf {x} _{k+1}=\mathbf {x} _{k}+\alpha (\mathbf {s} _{k}-\mathbf {x} _{k})}
.
* Passo 4 : Si pone
k
=
k
+
1
{\displaystyle k=k+1}
e si torna al Passo 1.
A ogni iterazione l'algoritmo determina la direzione
s
k
{\displaystyle \mathbf {s} _{k}}
e la dimensione del passo
α
{\displaystyle \alpha }
lungo quella direzione in modo da minimizzare l'approssimazione lineare del problema. A differenza di metodi per l'ottimizzazione non vincolata, quali ad esempio la discesa del gradiente , l'algoritmo di Frank-Wolfe non necessita di proiezioni, poiché in ciascuna iterazione richiede soltanto la soluzione di un problema lineare sull'insieme
D
{\displaystyle D}
.
La convergenza dell'algoritmo di Frank-Wolfe è sublineare: l'errore nella funzione obiettivo è minimo dopo
k
{\displaystyle k}
iterazioni, purché il gradiente sia Lipschitziano rispetto ad una norma.
^ (EN ) E.S. Levitin e B.T. Polyak, Constrained minimization methods , in USSR Computational Mathematics and Mathematical Physics , vol. 6, n. 5, gennaio 1966, pp. 1-50, DOI :10.1016/0041-5553(66)90114-5 . URL consultato l'8 marzo 2024 .
^ (EN ) Marguerite Frank e Philip Wolfe, An algorithm for quadratic programming , in Naval Research Logistics Quarterly , vol. 3, n. 1-2, marzo 1956, pp. 95-110, DOI :10.1002/nav.3800030109 . URL consultato l'8 marzo 2024 .
(EN ) Jorge Nocedal e Stephen J. Wright, Numerical Optimization , 2ª ed., Berlino, Springer-Verlag, 2006, ISBN 978-0-387-30303-1 .