Description
Problem 1: Duals of Duals (10 pts)
Consider the following optimization problem.
min
x,y∈R
x
2 + y
2
such that
2x + y ≤ 1
x ≥ 0
y ≥ 0
1. Is Slater’s condition satisfied for this optimization problem?
2. Use the method of Lagrange multipliers to construct a dual of this optimization problem.
3. Use the method of Lagrange multipliers to construct a dual of your dual from (2) of this
optimization problem. Did you recover the primal problem?
Problem 2: Projections onto Convex Hulls (30 pts)
For this problem, you will implement the Frank-Wolfe algorithm using scipy.linprog in the Python
scipy package to help you solve the per-iteration subproblems. Recall that, given x
(1), . . . , x(M) ∈
R
n
, their convex hull is the set of all x that can be written as a convex combination of these points.
1. Use the Frank-Wolfe algorithm to compute the projection of a query point q onto the convex
hull of the given x
(1), . . . , x(M) ∈ R
n
. That is, you should solve the following optimization
problem.
min
λ∈RM
1
2
||q −
X
M
m=1
λmx
(m)
||2
2
such that
X
M
m=1
λm = 1
1
λ ≥ 0
Your Python function should take as input the x’s, the query point q, an initial value for λ
that satisfies the constraints, and the tolerance for the Frank-Wolfe convergence condition
and return the best function value found during the iterative procedure.
2. Use the method of Lagrange multipliers to construct a dual of this optimization problem.
Problem 3: Convex Envelopes (60 pts)
Consider a collection of points x
(1), . . . , x(M) ∈ R
n with corresponding function values y
(1), . . . , y(M) ∈
R. The convex envelope of these points is the convex function fenv : R
n → R such that fenv(x
(m)
) ≤
y
(m)
for all m and for any other convex function g : R
n → R such that g(x
(m)
) ≤ y
(m)
for all m,
fenv(x) ≥ g(x) for all x ∈ R
n
.
1. For a finite point set, is the convex envelope differentiable? Explain.
2. Recall that, for any convex function f : R
n → R, and any x, x0 ∈ R, f(x) ≥ f(x
0
)+w
T
(x−x
0
),
where w is a subgradient of f at x
0
. Using this, we can formulate the problem of evaluating the
convex envelope of our collection of points at a query point x ∈ R
n as a convex optimization
problem:
fenv(x) = sup
w∈Rn,y∈R
y
such that
y
(m) ≥ y + w
T
(x
(m) − x), for all m ∈ {1, . . . , M}.
(a) Explain why this optimization problem is unbounded for certain choices of x ∈ R
n
.
(b) To fix the unboundedness, we can add an additional constraint that ||w||2
2 ≤ γ
2
for some
given γ ≥ 0.
In Python, implement projected gradient descent to solve the optimization
problem under this additional constraint. Your Python function should take as input
the x’s, the y’s, γ, the query point x, and the number of iterations of projected gradient
ascent to perform and return the best function value found during the iterative procedure
stating from w = 0 and y = minm y
(m)
. Hint: you can do the projection analytically if
you reformulate the optimization problem to eliminate the linear constraints.
(c) Construct a dual of the optimization problem in (b) using the method of Lagrange
multipliers.
(d) In Python, implement the Frank-Wolfe algorithm to maximize your dual in (c). Your
Python function should take as input the x’s, the y’s, γ, the query point x, a feasible
initial point for the Lagrange multipliers, a tolerance that terminates the Frank-Wolfe
algorithm whenever the convergence criteria from class is met, and an upper bound
max it on the number of iterations, and returns the best function value found during
the iterative procedure.
Hint: you can analytically eliminate the Lagrange multiplier
corresponding to the constraint ||w||2
2 ≤ γ
2
.
2