I2 2019-1
I2 2019-1
I2 2019-1
Interrogación 2
Duración: 2 horas y 30 minutos.
Suponga que dada una muestra de puntos en Rn , usted ha podido agruparlos en m clusters.
El cluster i ha sido aproximado por la bola Bi = B(ci , ri ) = {z ∈ Rn : kz − ci k2 ≤ ri },
donde ci ∈ Rn es el centro y ri > 0 es el radio. Lo que le interesa determinar ahora es un
punto x∗ ∈ Rn que esté razonablemente cerca de todos los clusters a la vez. Para ello, sea
Pm
n
gi (x) = d(x, Bi ) = min{kx − zk2 : z ∈ Bi } la distancia de x ∈ R a Bi . Sea f (x) = i=1 gi (x)
la función que desea minimizar.
1
3. (4 puntos) Muestre que si kx − ci k2 ≥ ri , entonces h = kx−ci k2 (x − ci ) ∈ ∂gi (x).
Solución: Tenemos gi (x) = kx − ci k2 − ri , por lo que
1
gi (x) + h> (y − x) = kx − ci k2 − ri + (x − ci )> (y − x)
kx − ci k2
1 1
= kx − ci k2 − ri + (x − ci )> (y − ci ) + (x − ci )> (ci − x)
kx − ci k2 kx − ci k2
1 1
≤ kx − ci k2 − ri + kx − ci k2 ky − ci k2 − kx − ci k22
kx − ci k2 kx − ci k2
= ky − ci k2 − ri = gi (y).
4. (2 puntos) ¿Es f de clase C 1 ? Justifique claramente.
1
Solución: Si kx − ci k2 = ri , entonces kx−ci k2 (x − ci ) 6= 0 y estos dos vectores pertenecen
a ∂gi (x). Luego, gi no es C 1 .
6. (4 puntos) Suponga que en Julia tiene definidos n, m, una matriz C ∈ Rm×n cuyas filas
corresponden a c> m
i , y un vector r ∈ R cuyas componentes corresponden a ri . Indique el
código necesario para definir la función f .
Solución: Un código posible es
• using LinearAlgebra
• e = ones(n,1)
• f(x) = sum(max.(sqrt.(diag((C-e*x’)*(C-e*x’)’))-r,0))
V λ + Rµ = x̂, 1> λ = 1, λ ≥ 0, µ ≥ 0.
Pp i
Solución: Si el sistema fuese factible, entonces existirían v̂ = i=1 λi v ∈ C y r̂ =
P q j
j=1 µj r ∈ K tales que x̂ = v̂ + r̂, por lo que x̂ ∈ C + K. Por el teorema de Minkowski-
Weyl, tendríamos x̂ ∈ P , una contradicción.
/ P , entonces existen π ∈ Rn y σ ∈ R tales que
2. (5 puntos) Muestre que si x̂ ∈
λi π > v i + λi σ ≤ 0 i = 1, . . . , p, µj π > rj ≤ 0 j = 1, . . . , q.
Pp
Si además i=1 λi= 1, sumando obtenemos
p q p
!
X X X
>
π i
λi v + µj r j
+σ λi = π > x + σ ≤ 0,
i=1 j=1 i=1
genera de esta forma, por lo que concluimos que π > x + σ ≤ 0 para todo x ∈ P .
4. (5 puntos) Para P = conv{(1, 0), (0, 2)} + cone{(1, 0), (0, 1)} y x̂ = (0, 0), verifique que
x̂ ∈
/ P exhibiendo (π, σ) que satisfaga (∗).
Solución: Escribamos P = conv{v 1 , v 2 } + cone{r1 , r2 }. Tomemos π = (−2, −1) y σ = 2.
Tenemos π > v 1 + σ = 0, π > v 2 + σ = 0, π > r1 = −2, π > r2 = −1, π > x̂ + σ = 2. Luego,
x̂ ∈
/ P.
El torneo está dividido en dos rondas de t = n − 1 fechas cada una, donde en cada fecha f ,
cada equipo juega un partido de local o visita. Cada equipo juega la mitad de las fechas como
local y la otra mitad como visita. Ningún equipo puede jugar cuatro o más fechas consecutivas
de local o visita a lo largo del torneo. Por otro lado, si un equipo juega tres fechas consecutivas
de local o visita dentro de una ronda, decimos que hay un break. Cada equipo puede tener a lo
más un break en cada ronda. Si un equipo juega las fechas f y f + 1 como local o visita dentro
de una misma ronda, percibe un beneficio lf > 0 o un costo vf > 0, respectivamente. Note que
un break contabiliza dos veces estas cantidades. Su objetivo es determinar patrones local-visita
para los equipos del torneo tales que sean compatibles entre ellos y que maximicen la utilidad
total sobre todos los equipos.
1. (6 puntos) Formule un problema lineal entero donde cada columna representa un patrón
local-visita para un equipo cualquiera a lo largo del torneo. Sea explícito en la definición
de parámetros, variables y restricciones.
Solución: Sea m = 2t la cantidad de fechas del torneo. Sea P el conjunto de todos los
patrones local-visita válidos. Para cada p ∈ P , sea cp la utilidad del patrón p, y sea af p
un parámetro que toma el valor 0 o 1 si en el patrón p, la fecha f corresponde a un partido
de visita o local, respectivamente.
Si suponemos que un patrón puede ser utilizado por más de un equipo, consideramos la
variable xp ∈ Z+ que indica cuántos equipos utilizan el patrón p a lo largo del torneo. El
modelo resultante es
X
max cp xp
p∈P
X
s.a af p xp = n/2 f = 1, . . . , m
p∈P
xp ∈ Z+ p ∈ P.
Si suponemos que un patrón puede ser utilizado por un solo equipo, consideramos la
variable xp ∈ {0, 1} que indica si algún equipo utiliza el patrón p a lo largo del torneo. El
modelo resultante es
X
max cp xp
p∈P
X
s.a af p xp = n/2 f = 1, . . . , m
p∈P
xp ∈ {0, 1} p ∈ P.
En ambos casos, la restricción impone que en cada fecha, la mitad de los equipos juega
de local y la otra mitad de visita.
Para este último problema, las restricciones xp ≤ 1 son inactivas para p ∈ / R, por lo
que σp = 0 en tales casos. Por lo tanto, el problema de pricing es el mismo para ambos
modelos.
Como el problema maestro es de maximización, el problema de pricing corresponde a
buscar una columna de costo reducido máximo. Para ello, consideramos variables uf ∈
{0, 1} que indican si la fecha f se juega de local o no, variables yf ∈ {0, 1} que indican si
las fechas f y f + 1 se juegan de local, variables wf ∈ {0, 1} que indican si las fechas f y
f + 1 se juegan de visita, y variables zf ∈ {0, 1} que indican si las fechas f − 1, f y f + 1
conforman un break. Obtenemos entonces
X m
X
η = max (lf yf − vf wf ) − πf uf
f 6=t,m f =1
Xm
s.a uf = t
f =1
f
X +3
ug ≤ 3 f = 1, . . . , m − 3
g=f
f
X +3
(1 − ug ) ≤ 3 f = 1, . . . , m − 3
g=f
f
X +1
ug ≤ zf + 2 f 6= 1, t, t + 1, m
g=f −1
f
X +1
(1 − ug ) ≤ zf + 2 f 6= 1, t, t + 1, m
g=f −1
t−1
X
zf ≤ 1
f =2
m−1
X
zf ≤ 1
f =t+1
yf ≤ uf f 6= t, m
yf ≤ uf +1 f 6= t, m
(1 − uf ) + (1 − uf +1 ) ≤ wf + 1 f 6= t, m
u ∈ {0, 1}m
y ∈ {0, 1}m−2
w ∈ {0, 1}m−2
z ∈ {0, 1}m−4 .