Frank-Wolfe Method

Frank-Wolfe Method

The following problem is given:

minxf(x)

subjet to

Ax=b,x0

from which we get the solution x^.

where:

The Frank-Wolfe is an iterative method to solve the problem with the following steps

0. Find a feasible solution

The first step is to find any feasible solution x(k). In the first iteration, k=0.

This solution has to meet the condition Ax=b,x0

1. Define the subproblem

The Frank-Wolfe method works generating a new problem, called a subproblem. This is still an optimization problem but is allegedly easier to solve.

In order to define the new problem, we first need to find the Gradient of f(x). Then, the subproblem is:

minyf(x(k))Ty

subj to:

Ay=b,y0

from which we get the value y^.

Calculate the descent direction

The, we need to calculate a new vector, called the direction, that will allow us to get the solution for the next step of the algorithm.

d(k)=y^x(k)

2. Stopping criteria

We need some sort of stopping criteria to know if the solution x(k) is close enough to the actual solution x^ of the original problem.

We calculate a relative gap, r as

r=f(x(k))Td(k)f(x(k))Tx(k)

We define a relative gap that we find suitable. This is going to be a very small value, ε (=102,104,...)

If r<ε than we stop and accept x(k) as a solution (x(k)x^). Otherwise, we go the next step

The new solution will be given by

x(k+1)=x(k)+αd(k)

where α is the solution to the problem:

min0α1h(α)=min0α1f(x(k)+αd(k))

This can be solved finding the first derivative of h(α), imposing it equal to 0 and then solving for α. This last step is often impossible to do analitically, so we rely on numeric methods to find α (like: Metodo di Newton o Il metodo delle Tangenti, Metodo di Bisezione, Il metodo delle Secanti).

In the particular case that all elements of f(x(k))=s(x(k)) are in the form a+bx, then α can be taken equal to
min{1,α~}
where:
α~=isi(xi)di(k)ibi(di(k))2

4. Update

After having found α is time to update the solution to the next step: x(k) and repeat the method from step #0. Find a feasible solution