Está en la página 1de 6

LABORATORIO: SOLUCIONES SESIÓN L7

Se presenta a continuación la modelización y la solución mediante solver del problema


correspondiente a la sesión L7 (enunciado 13).

Se añaden comentarios en azul para guiar la modelización.

Enunciado 13

El seleccionador nacional juvenil de baloncesto debe realizar la convocatoria para participar en un


torneo internacional el próximo verano. La convocatoria consta de 12 jugadores que debe escoger
de entre los 20 jugadores que conforman una lista que le han pasado sus ojeadores. El listado de
jugadores cuenta con la siguiente información para cada jugador:

• Las posiciones en las que puede jugar (base, escolta, alero, ala-pívot, pívot).
• El equipo de origen.
• Las medias por minuto de anotación, asistencias y rebotes por partido de la última temporada
en la liga nacional juvenil.
• El número máximo de minutos que puede jugar el jugador durante un partido antes de sufrir un
empeoramiento de las medias indicadas (efecto que no se aceptará).

El entrenador desea seleccionar 3 jugadores para cada una de las cinco posiciones (y por tanto será
necesario escoger jugadores que puedan jugar en varias posiciones). Los 12 jugadores
seleccionados deberán aportar un mínimo de asistencias y rebotes, fijados en los datos del
problema. Además, desea repartir los minutos de un partido entre los jugadores seleccionados.

Como buen amante de las altas anotaciones, el entrenador desea que la herramienta de selección le
indique el número tentativo de minutos que jugaría cada seleccionado si se intentase maximizar la
anotación promedio (sumatorio del número de minutos de cada jugador multiplicado por su media
de puntuación por minuto).

Adicionalmente, el seleccionador no desea escoger a más de un número de jugadores de cada


equipo de origen para evitar acusaciones de favoritismo, y también desea que al menos haya
siempre en la pista un base y un pívot (esto es, la suma de minutos de los jugadores que pueden
jugar de base deberá ser siempre igual o superior a la duración del partido; y lo mismo sucede con
los que pueden jugar de pívot).

Con las condiciones indicadas, establezca un modelo lineal para resolver el problema.
Cada vez es más frecuente en el deporte profesional el análisis de datos para tareas como la
configuración de un equipo o la repartición de minutos en cancha. En este ejercicio nos ponemos
en la piel de un entrenador de baloncesto, que debe seleccionar un grupo de jugadores juveniles
para un torneo, teniendo en cuenta sus estadísticas de la temporada. En consecuencia, necesitamos
una variable binaria que nos indique si seleccionamos un jugador o no. Además, debemos proponer
un reparto de minutos con el fin de maximizar la anotación potencial del equipo a lo largo del
partido (según las medias por minuto de anotación de los jugadores). Por lo tanto, deberemos
encontrar también el número de minutos en pista que se darán a cada jugador. Con estas variables,
podemos definir tanto la función objetivo, como el conjunto de restricciones que nos imponen:
proteger bien el aro propio cumpliendo con el número mínimo de rebotes; asegurar un juego fluido
cumpliendo con el número mínimo de asistencias; dar el descanso necesario a los jugadores para
que puedan rendir a su máximo nivel cumpliendo con el número máximo de minutos en cancha;
evitar acusaciones malintencionadas de favoritismo cumpliendo con el número máximo de
jugadores procedentes de un mismo equipo; y asegurar que el equipo en pista está siempre bien
compensado con un base y un pívot.

Modelización

Datos
En este problema los datos están solamente anunciados, no escritos detalladamente. Es, por tanto,
muy recomendable que os toméis el tiempo necesario para escribirlos de forma genérica.
Repasamos uno por uno el listado de información que tenemos de cada jugador:
• Las posiciones en las que puede jugar, teniendo en cuenta que puede jugar en más de una.
La forma más fácil de definir este dato para su posterior operación es con una matriz binaria
(Pij) que nos informa con un 1 o un 0 si el jugador i puede jugar en la posición j, o si no.
Con otras representaciones se dificulta mucho la generalización de las restricciones que se
tendrán que definir para todos los jugadores.
• El equipo de procedencia de cada jugador. Como en el caso anterior, la forma más fácil de
representar este dato es con una matriz binaria (Eik) que nos indica si el jugador i procede
del equipo k, o si no es así.
• La anotación (ANi), el número de asistencias (ASi) y de rebotes (REBi) que aporta un jugador
i por cada minuto en pista. Al ser datos por minuto, se deberán multiplicar por la variable
correspondiente a los minutos jugados para determinar las estadísticas totales de cada
jugador.
• El número de minutos (MINSi) que puede jugar el jugador i para mantener sus estadísticas.
• Y, por último, el número mínimo de asistencias (MA) y rebotes (MR) que se quieren
conseguir en un partido, así como el número máximo de jugadores que se pueden
seleccionar de un mismo equipo (ME). Estos datos nos ayudarán a completar las
restricciones del problema.
i Jugadores (i = 1,…,20)
j Posiciones (j = 1(base), 2(escolta), 3(alero), 4(ala-pívot), 5(pívot))
k Equipos (k = 1,…,K)
Pij Matriz binaria que indica si el jugador i puede jugar en la posición j (∀i; ∀j)
Eik Matriz binaria que indica si el jugador i juega en el equipo k (∀i; ∀k)
ANi Media por minuto de anotaciones del jugador i (∀i)
ASi Media por minuto de asistencias del jugador i (∀i)
REBi Media por minuto de rebotes del jugador i (∀i)
MINSi Minutos máximos que puede jugar el jugador i sin empeorar sus medias (∀i)
MA Número mínimo de asistencias a repartir en un partido
MR Número mínimo de rebotes a atrapar en un partido
ME Número máximo de jugadores que se pueden seleccionar de un mismo equipo

Variables
Como hemos comentado, necesitamos dos variables para el problema planteado: una binaria que
nos indique si seleccionamos o no el jugador i, y una real que nos dé los minutos que jugará cada
jugador.
yi Variable binaria. 1 si se selecciona al jugador i; 0 en caso contrario (∀i)
xi Variable real. Minutos jugados por el jugador i en cada partido (∀i)

Función objetivo
“Quién necesita defender si puedes anotar más puntos que el contrario.” Aceptamos el reto. Para
maximizar los puntos totales, debemos sumar la anotación que produce por minuto cada jugador,
multiplicándola primero por el número de minutos que se da a cada jugador.

[𝑀𝑀𝑀𝑀𝑀𝑀] 𝑧𝑧 = � 𝑥𝑥𝑖𝑖 · 𝐴𝐴𝐴𝐴𝑖𝑖


∀𝑖𝑖

Restricciones
Se deben seleccionar exactamente 12 jugadores para completar la convocatoria.

� 𝑦𝑦𝑖𝑖 = 12
∀𝑖𝑖

La siguiente restricción cumple dos funciones. Por una parte, impone el máximo de minutos que
puede jugar cada jugador para que no se vea comprometido su rendimiento en pista (y pueda seguir
produciendo a su ritmo de puntos, asistencias y rebotes por minuto). Además, permite relacionar
las dos variables del problema, ya que si un jugador no se selecciona (𝑦𝑦𝑖𝑖 = 0), no se le puede dar
minutos (se obliga a que 𝑥𝑥𝑖𝑖 sea también 0). En cambio, si un jugador sí se selecciona (𝑦𝑦𝑖𝑖 = 1)
entonces sus minutos quedan limitados por 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑖𝑖 , y se acabarán de determinar según la
maximización de la anotación que se desea y cumpliendo con las otras restricciones.
Es importante que veáis que una restricción de este tipo ya la hemos visto en el enunciado 6 de la
sesión L4 (restricción 2’), ya que es la manera de condicionar el valor de una variable de cualquier
tipo (real en este caso, binaria en el enunciado 6), a partir de otra variable, ésta sí, binaria. Siguiendo
con el razonamiento expuesto para explicar la modelización de ese enunciado 6, el dato 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑖𝑖
funciona como una cota máxima que limita el número de minutos disponible de un jugador según
si se selecciona o no. Así, el número de minutos disponible (𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑖𝑖 · 𝑦𝑦𝑖𝑖 ) para el jugador i es 0 si
este jugador no se selecciona (𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑖𝑖 · 𝑦𝑦𝑖𝑖 = 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑖𝑖 · 0 = 0) o es el dato de la estadística si sí se
selecciona (𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑖𝑖 · 𝑦𝑦𝑖𝑖 = 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑖𝑖 · 1 = 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑖𝑖 ). Si no lo acabáis de ver claro, os recomendamos
que repaséis la explicación de la modelización del enunciado 6. Esta limitación se debe imponer
para todos los jugadores (∀𝑖𝑖)

𝑥𝑥𝑖𝑖 ≤ 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑖𝑖 · 𝑦𝑦𝑖𝑖 ∀𝑖𝑖

Con la siguiente restricción se pretende seleccionar un mínimo de tres jugadores por posición (∀𝑗𝑗).
Esta restricción se puede entender de la siguiente manera: para la posición de base (𝑗𝑗 = 1), por
ejemplo, el producto escalar del vector binario indicativo de si el jugador i puede jugar de base
(𝑃𝑃𝑖𝑖1 ) por el vector binario de variables que nos indica si el jugador i se selecciona (𝑦𝑦𝑖𝑖 ), debe ser
igual o superior a 3. Esta limitación se debe imponer para todos las posiciones (∀𝑗𝑗).
Cabe destacar que el enunciado dice que se deben seleccionar 3 jugadores por posición. Por tanto,
podríamos pensar en utilizar el signo =, en vez de ≥. Sin embargo, imaginemos el siguiente
ejemplo: imaginemos que tenemos la posición de escolta cubierta (con 3 jugadores). Entonces,
imaginemos que un jugador es ideal para la posición de base, y lo queremos seleccionar. Sin
embargo, este mismo jugador puede jugar también de escolta y, como esta posición está cubierta,
no lo podemos coger. Luego, para la posición de base tendremos que seleccionar otro jugador, que
será peor, pero con el cual no habrá dicha incompatibilidad. Para evitar este problema y asegurarnos
de escoger el mejor plantel de jugadores, relajamos la restricción y permitimos que haya más de 3
jugadores que pueden ocupar una posición, si fuese necesario.

� 𝑃𝑃𝑖𝑖𝑖𝑖 · 𝑦𝑦𝑖𝑖 ≥ 3 ∀𝑗𝑗


∀𝑖𝑖

Siguiendo el mismo modelo de restricción que en la anterior, se evita superar el número máximo
de seleccionados procedentes de un mismo equipo (𝑀𝑀𝑀𝑀). Esta limitación se debe imponer para
todos los equipos (∀𝑘𝑘)
� 𝐸𝐸𝑖𝑖𝑖𝑖 · 𝑦𝑦𝑖𝑖 ≤ 𝑀𝑀𝑀𝑀 ∀𝑘𝑘
∀𝑖𝑖
Debemos cumplir con el mínimo de rebotes y asistencias totales que se quieren conseguir a lo largo
del partido. Debido a que las estadísticas dadas son por minuto, se multiplican por los minutos que
se dan a cada jugador.
� 𝑥𝑥𝑖𝑖 · 𝑅𝑅𝑅𝑅𝑅𝑅𝑖𝑖 ≥ 𝑀𝑀𝑀𝑀
∀𝑖𝑖

� 𝑥𝑥𝑖𝑖 · 𝐴𝐴𝑆𝑆𝑖𝑖 ≥ 𝑀𝑀𝑀𝑀


∀𝑖𝑖

Las siguientes dos restricciones imponen, siguiendo las indicaciones del enunciado, que siempre
haya un base (𝑗𝑗 = 1) y un pívot (𝑗𝑗 = 5) en los 40 minutos que dura un partido.
Sin embargo, esta modelización, indicada por el enunciado, tiene limitaciones, ya que no permite
controlar minuto a minuto qué jugador está jugando. Por lo tanto, para asumir que cumple su
cometido (que siempre haya un base y un pívot en pista), se debe suponer que el entrenador es
alguien chapado a la antigua que conforma quintetos convencionales (con un base, un escolta, un
alero, un ala-pívot y un pívot), y que, por lo tanto, cambia, por ejemplo, un escolta por otro que
está en el banquillo. Sin embargo, en el baloncesto moderno, cada vez es más habitual hacer
coincidir dos bases o dos pívots en pista, por ejemplo, según las necesidades del momento. Para
imponer que haya siempre un base y siempre un pívot en pista teniendo en cuenta que pueden
coincidir, se deberían cambiar las variables del problema para saber qué jugador está jugando en
cada posición en cada minuto de juego, objetivo que quede fuera del alcance del problema. No
obstante, os animamos, si queréis, a profundizar con esta modelización.

� 𝑥𝑥𝑖𝑖 · 𝑃𝑃𝑖𝑖1 ≥ 40
∀𝑖𝑖

� 𝑥𝑥𝑖𝑖 · 𝑃𝑃𝑖𝑖5 ≥ 40
∀𝑖𝑖

Por último, se debe jugar todo el partido. Es decir, la suma de minutos jugados por todos los
jugadores es igual a 200 minutos (10 minutos por cuarto, por 4 cuartos, por 5 jugadores siempre en
cancha).
� 𝑥𝑥𝑖𝑖 = 200
∀𝑖𝑖

Finalmente, se impone la no negatividad de los minutos jugados por cada jugador.

𝑥𝑥𝑖𝑖 ≥ 0 ∀𝑖𝑖
Solución

Para solucionar el problema, se utilizan los datos en Excel colgados en Atenea.

Valor de la función objetivo: Anotación potencial total = 62.34 (esperemos que defiendan bien)

Valores de las variables:

y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14 y15 y16 y17 y18 y19 y20
1 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1

x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20
22 0 0 0 0 26 6 24 20 28 0 0 34 0 0 0 0 0 12 28

Fijémonos que la anotación óptima, cumpliendo con todas las restricciones, se consigue haciendo
jugar a 9 jugadores. Sin embargo, se escogen 3 más, que no juegan, para completar la convocatoria.

También podría gustarte