Maximizar número de puntos del 18° clasificado en liga

B

En una competición de liga hay 20 equipos participantes, todos se enfrentan entre sí 2 veces, es decir hay un total de 380 partidos, 38 por equipo. Se dan 3 puntos por ganar un partido, 1 por empate y 0 por perder.

¿Cómo se calcularía el máximo de puntos que puede hacer el equipo que quede el 18° al término de la jornada 38?
¿Cambia la forma de resolverlo si partimos desde la jornada 0, o si partimos desde una jornada elegida arbitrariamente?

No son deberes ni nada, es simple curiosidad porque llevo años preguntándome si realmente esto se puede saber.

Kb

asi sin mucho calculo...

todo ganan la mitad de sus partidos: con 57 puntos acaban todos los quipos. El 18 tendria los mismos que el primero, pero no es ilegal en tu premisa

si no... todos ganan la mitad de sus partidos, menos 3 equipos que pierden un partido mas.

3 equipos 60, el resto 57 y los tres ultimos 54

podria ser?

1 respuesta
B

#2 Me vale que todos acaben con los mismos puntos. Pero ahora, cómo lo calculas en la jornada 30? Porque depende de qué equipos falten por jugar entre sí y a lo mejor la premisa de que todos ganen la mitad de los partidos no sería posible.

2 respuestas
Kb

#3 pero en la jornada 30 todos pueden llevar tambien la mitad de ganados y perdidos y seria tambien puntuacion maxima para el 18

habran ganado 15 y perdido 15

en jornada impar, la 29, los habran con 15 victorias y con 14 perdidas

si es par, puntuacion = (jornada/2)3
si es impar, puntuacion = ((jornada-1)/2)
3

ya podria haber desviaciones por como se emparejan los partidos, pero bueno, ya habria que meterse en probabilidad y mas temas imagino

1 respuesta
B

#4 me refiero a maximizar los puntos que puede conseguir el 18° a partir de una situación previa que puede ser o no la ideal.

1 respuesta
Kb

#5 es imposible, porque en la jornada 18, si no sabes si tiene 0 puntos, 10 o 15, al igual que los equipos de alrededor... imposible

1 respuesta
B

#3 Como apunta Kb, la forma más fácil es resolver esto:

  • Todos los equipos ganan sus partidos dentro de casa (19 x 3 = 57 puntos).

  • Todos los equipos pierden sus partidos fuera de casa

  • 57 sería el máximo de puntos que podría tener el equipo en el puesto 18. Todos empatados y el golaverage, goles a favor o en contra, faltas y otras estadísticas harían que estuviera 18 o 1ro.

En una balanza equilibrada, los 20 equipos habrían jugado 15 partidos en casa y 15 partidos fuera.
Con lo que estarían a 45 puntos. Pero se da el caso que para ciertos equipos, juegan 2 veces fuera o 2 veces dentro en una primera vuelta.
Tendrías equipos que sumarían más puntos que otros simplemente por haber jugado en casa y otros fuera.
Para estos casos, cuando juegas 2 partidos seguidos fuera o dentro, lo tratas como Ganado - Perdido y se te queda igual en 45 puntos

B

#6 Por ejemplo, partiendo de la jornada 30 de la temporada 2020/2021 de la primera división española...

El Elche va 18° y tiene 26 puntos, faltan 8 partidos, lo máximo que puede conseguir son 50. Eso quiere decir que el Sevilla, 4° con 61 puntos ya está salvado, pero ¿la Real Sociedad, 5° con 47 puntos está salvada? (Para esto se daría además el dato de los partidos que faltan por jugarse)

1 respuesta
B

#8 La Real Sociedad estaría salvada con 51 puntos en el momento que los alcance. Si el Elche empata o pierde, se reduce el número necesario que necesitaría la Real para mantenerse.

Puntos del 4to por la cola + Puntos faltantes por disputarse = Puntos para salvarse + 1

Si quieres saber los puntos necesarios según jornada

Coges el equipo situado en la posición 18. Coges sus puntos. En el caso del Elche 26. Lo divides por el número de jornadas disputadas 31 Y eso lo multiplicas por el número total de jornadas (38)

26 / 31 = 0.83
0.83 * 38 = 31 puntos.

Eso te daría una estimación media aproximada. No es real completamente, pero te da una idea de por donde van a estar los puntos.

1 respuesta
B

#9 pero a ver, puede darse el caso de que debido a los enfrentamientos directos sea imposible que el 18° consiga 51 puntos a pesar de que el Elche los pueda conseguir ganando todo. Por ejemplo, si el Elche tiene que jugar con el Valladolid y el Huesca que tienen 27 puntos ambos, es imposible que estos equipos alcancen más de 48 puntos. Si estos dos además se enfrentasen entre ellos, lo máximo que podrían conseguir son 46 puntos (o uno de ellos se quedaría con 45 y el otro con 48) y la Real Sociedad ya estaría salvada en ambos casos.

A mi ahora mismo lo que se me ocurre sería hacer una simulación en plan montecarlo para conseguir una aproximación de las probabilidades, pero no se me ocurre una manera matemática de saber el dato exacto.

1 respuesta
B

#10 Te lo he puesto en el edit para hacer un cálculo aproximado de la media de puntos que puede conseguir un equipo a lo largo de las jornadas restantes.
Lo importante en una liga, es ganar en casa y robar puntos en los partidos fuera de casa. Pues no solo consigues 1 ó 3 puntos extra, sino que a tus oponentes les haces perder 2 ó 3.

1 respuesta
B

#11 pero lo que me pones son los puntos que conseguiría el que va el 18° actualmente si mantiene el mismo ritmo de puntos hasta el final, pero eso no tiene por que tener nada que ver con la realidad, históricamente los equipos de abajo suben su ritmo al final.

A mi lo que me gustaría es saber calcular en que punto está la salvación matemática en cada jornada. Por eso lo pregunto aquí y no en otro lado, por si algún buen cerebro matemático me sabe decir si es posible calcularlo XD

1 respuesta
B

#12
La puse aquí

#9yukikaze:

Puntos del 4to por la cola + Puntos faltantes por disputarse = Puntos para salvarse + 1

Te da igual que haya enfrentamientos directos o no. Salvo en la última jornada.

El Elche tiene 26 puntos y con posibilidad de conseguir 21 más. Un total de 47 puntos. Real Sociedad tiene 47 puntos. Necesita 1 extra para permanecer.
Si el Elche jugase con la Real y ganase, estaríamos en
Elche 29 puntos, 18 por jugarse = 47 puntos.
La Real seguiría necesitando 1 para permanecer.

1 respuesta
B

#13 Pero es que no es así, lo he puesto en #10, puede pasar que si el Elche consigue los 47, entonces Huesca y Valladolid no puedan hacerlo debido a los enfrentamientos directos aunque ahora puedan aspirar a más de 47, y en ese caso la Real ya estaría salvada incluso sin puntuar.

1 respuesta
tirutu

Si solo quieres preguntar si se puede calcular o no la respuesta es trivialmente sí. Es un suicidio combinatorio intentarlo pero obviamente puedes simular todos los desenlaces posibles desde una situación dada y anotar el máximo. Fin.

1 respuesta
B

#14 Entonces el Elche deja de ser el 18 y pasa a ser 17.
En cada jornada, no coges un equipo en concreto, coges el clasificado para esa posición.
Siendo primera, es el 3ro por la cola, no el 4to como he puesto. Pero no cambia en este aspecto.

Por eso, se calcula jornada a jornada o incluso minuto a minuto basado en los enfrentamientos.
Tienes a Huesca y Elche con 27 puntos. 21 puntos por disputarse. Con 49 puntos te mantienes
Huesca y Elche están empatando. Ergo 28 puntos de 18 por disputarse. En vez de 49 pasa a 47

Puedes hacer los cálculos cuando te plazcan, al inicio del encuentro, en el descanso, o al finalizar la jornada. Eso va a cambiar los puntos necesarios para salvarte. Sólo hay 3 posibles resultados, Ganar, empatar o perder. Y tres sumas de valores 3, 1 ó 0

1 respuesta
B

#16 pero el tema es que aunque el Elche sea el 18°, que alcanzase a la Real significaría que otro equipo no podría alcanzarla aparte de lo dos últimos, por lo tanto no haría falta esperar a la próxima jornada para saber que la Real ya está salvada. No se si me explico.

#15 O sea que la única manera sería hacer una simulación con todos los resultados (eso a saber cuantos millones de combinaciones son), no habría un método para calcular el resultado que maximiza los puntos del 18°.

2 respuestas
B

#17 Y si te digo que todos los de abajo ganan y todos los de la mitad de la tabla para arriba pierden?

La salvación estaría igual en puntos.

1 respuesta
B

#18 es imposible que todos los de abajo ganen todo si juegan entre ellos.

1 respuesta
tirutu

#17 Intuitivamente, no creo que esa sea la única. Esta clase de problemas suele tener una solución basada en una estrategia voraz. Pero claro, hay que pensarlo.

B

#19 Por eso te basas en los puntos posibles del 3ro por la cola, el resto te da igual.

Kb

En cada jornada cambia porque los eventos futuros no los puedes saber.

A fecha de hoy son x puntos, cuando se dispute la jornada seran y puntos...

Ya te han dicho antes como calcularlo de manera general. Si hay mas casos que quieras meter, pues coge un excel y empieza a hacerte una buena tabla con todos los enfrentamientos que se saben al principio de la liga y los resultados que vayan saliendo semana a semana

werty

los máximos puntos del 18° serían que el 19o y 20o tuvieran 0 puntos.

Así, sería el equivalente a liga de 18 equipos quedando último con los mismos puntos que el primero + 6 puntos gratis de ganar a los dos de abajo.

Así que el máximo es 17*3+12 = 63 puntos.

Partiendo de una jornada aleatoria, sería igual, siempre que podamos hacer la combinatoria para que todos tengan los mismos 62 puntos (21 victorias y 17 derrotas)

1 respuesta
Rivendel

para que quieres saber eso? jaja saludos

1 respuesta
B

#24 no sabía que esto era FEDA

k4rstico

Yo empezaría calculando el numero maximo de puntos totales y dividiria entre 18. A partir de ahi intentaría comprobar si eso es posible, por ej si han tenido que jugar los dos ultimos entre ellos hay que sustraer algun punto

1 respuesta
Ulmo

#26 Yo creo que la solución va por ahí y que se puede programar de forma sencilla siguiendo 3 reglas.

  • Empiezas con 18 equipos con 3 puntos.
  • Cada iteración le das 3 puntos al 18º si tienes 3 o menos puntos que el 17º, sino, le das 3 puntos al 17º hasta gastar los 2280 puntos (20 equipos x 19 rivales x 2 encuentros x 3 puntos)
  • Nueva iteración donde repartes los empates restándole 2 puntos al primero si tiene 2 o más puntos que el 18º y sumándole 1 punto al 18º si tienes 1 o menos puntos que el 17, sino le das el punto al 17º.

El algoritmo podría desbordar si preguntaran por la puntuación de los primeros, pero como pide de los últimos y no especifica que concretes los encuentros, debería funcionar.

1 respuesta
Saffron

A ver partiendo de la jornada 0 es facilisimo como dice #23

Pero para una jornada yo tengo una forma que no hay que hacer más que pocas simulaciones o incluso alguna más dependiendo de cual determines que tiene que ser el candidato 19 o 20 que van a sumar puntos solo en el enfrentamiento directo.

Lo que no tiene sentido es que simuleis cronologicamente jornada a jornada como estais comentado hay que trabajar sobre el conjunto. Me falta pensar bastante más para determinarlo mejor pero sería.

  • Para empezar sumais los puntos de los partidos por jugar del 19 o 20 clasificado que quedan por jugar y restais los partidos que quedan a cada equipo.

  • Multiplicando 3 × los partidos pendientes y sumando los puntos ya repartidos del 1o al 18o, luego dividiendo entre 18 sacais el promedio de puntos a repartir.

  • Si el 1o tiene más puntos que el promedio a final de temporada le eliminas del resto de cálculos y sumas 3 puntos a sus rivales en todos los partidos pendientes y repites el calculo del promedio y este paso las veces que haga falta.

  • Si después por debajo hay equipos que no pueden a llegar al promedio ganando todos sus partidos, el 18 estaría entre alguno de esos equipos con el máximo de victorias posible relativamente facil de simular.

  • Si todos los que quedan pueden llegar al promedio a priori lo mejor sería empezar simulando los partidos de los últimos clásificados contra los rivales con más puntos/partidos por jugar, hasta que quede equilibrado.

  • Y bueno en los últimos partidos entre 2 equipos estableces una condición de empate si están igualados.

Supongo que tendrá fallos que hasta que no te pones a hacer el programa no sacas pero bueno

2 1 respuesta
werty

#28 sí, pero imaginate un caso real ahora como es LaLiga a día de hoy.
Lo mismo tienes el 18 y 19 clasificado con los mismos puntos. O el 20 tiene un punto menos que 18 y 19, pero 18 juega contra 19 y el 20 adelantaría... pufff

c0b4c

Me habeis liado y me he puesto a resolverlo. Estoy probando con algoritmos geneticos ahora.

Es un problema jodido porque como dice #27 hay que tener en cuenta todas las jornadas, es decir, la variable tiene en principio 380 dimensiones (380 partidos). Yo lo he partido por la mitad porque intuyo que sabiendo cómo han de configurarse las jornadas en la ida, la vuelta es simétrica. Así que parto con una variable de 180 dimensiones. Evidentemente esto es un poco absurdo tratar de resolverlo de esta manera porque es mucho más rápido pensar un poco, pero la solución no es tan obvia si no partes con la liga de 0, cosa que yo "podría" estudiar ahora mismo.

Además no estoy muy puesto en optimización discreta @Fyn4r tú sabes de esto no? XD Es posible que sea muy estúpido lo q estoy haciendo xddd

De momento mi mejor resultado es 27 puntos (es decir, 54 en total) :sob::sob::sob::sob: voy a seguir probando xd

dejo por aqui el codigo: https://pastebin.com/4eS4ZPQ7

lo he hecho rapido y es un poco chapucero, pero funciona. Necesitais pygmo para poder usar los algoritmos de optimizacion

1 1 respuesta