Autor Tema: Cuadro de competición

0 Usuarios y 1 Visitante están viendo este tema.

13 Febrero, 2007, 07:25 pm
Respuesta #10

Jabato

  • Visitante
Yo diría que es imposible calcular el número de partidos necesario ya que dependerá de cual sea el criterio que se utilice para definir los partidos a jugar en cada momento y cuales sean los equipos que lo jueguen, (influye el orden en que se jueguen los partidos), yo dí un criterio que creo que es aceptable, aunque no es el único desde luego, hay infinidad de combinaciones posibles y cada una de ellas conducirá a un número de partidos mínimo distinto. No es fácil hacer muchos números en este problema. Creo que es más bien un problema tipo para ser resuelto mediante la técnica de los algoritmos genéticos, lo que obliga al uso de programación informática. No es un problema de matemáticas propiamente dicho, es un problema de ciencias de la computación más bien.

Saludos, Jabato.

13 Febrero, 2007, 07:40 pm
Respuesta #11

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,878
  • País: es
  • Karma: +0/-0
Hola

Citar
Yo diría que es imposible calcular el número de partidos necesario


La cosa es...¿necesario para qué?

Yo entiendo: mínimo número necesario para que todos hayan jugado con todos y contra todos. Esto, sea sencillo o no, tiene una respuesta muy concreta. Y no es imposible de calcular.

No hay ningún método, de momento, que me convenza del todo para montar los partidos. El de Jabato está bien pensado, pero tanto como "muy fácil"... Evidentemente haciendo un programa sale. Pero ... hay que hacerlo!.

Además, tampoco me convence que dependa de cómo "penalizamos" que un jugador haya jugado o no con o contra otro.

Si exigimos que TODOs jueguen el mismo número de partidos. Ese número mínimo ha de ser múltiplo de 13 e intuyo que no llega con trece.

Yo estoy tratando de jugar con permutaciones.

Por ejemplo partimos del equipo 1,2,4,7 y formamos nuevos equipos sumando 1 a cada número:

2,3,5,8
3,4,6,9
etcétera

si llegamos a 13 empezamos en el 1 de nuevo. Así tendremos 13 equipos. Cada jugador aparece en 4. Podemos fijarnos que hay exactamente 13 partidos posibles a montar con esos equipos. Si los denotamos por su primer jugador los enfrentamientos serían:

1-5,1-10,k2-6,2-11,3-7,3-12,4-8,4-13,5-9,6-10,7-11,8-12,9-13

Y conseguimos que TODOS hayan jugado contra todos, pero.... cada uno ha sido compañero de todos... excepto de 2. También hay disparidad en el número de veces que cada jugador se enfrenta a otro.

De todas formas desde el punto de vista práctico, es una forma fácil de hacer una distribución moderadamente uniforme y con no demasiados partidos. Cada jugador habrá jugado 8.

Modificando el equipo inicial 1,2,4,7 quizá puedan obtenerse otras configuraciones.

Saludos.
 

13 Febrero, 2007, 08:13 pm
Respuesta #12

Jabato

  • Visitante
Por supuesto manco, eso está clarísimo, si haces todas las permutaciones completas jugando todas las rondas ó un determinado ciclo de rondas completas es un cálculo combinatorio algo complicadillo pero que se puede hacer, el problema no es ése:

El problema es que deben usarse algoritmos que resuelvan el problema en un número de partidos no superior a 10 ya que es condición impuesta en el enunciado.

y es ahí donde nos encontramos con la madre del cordero. ¿Con esas condiciones que algoritmo utilizamos para definir los partidos? y ¿como calculamos el número de partidos que transcurrirán hasta cumplirse los requisitos?

Si puedes contestar a esas preguntas pues perfecto, yo creo que no se puede sin usar computación, ya lo dije, pero si alguien me demuestra que estoy equivocado, lo primero que haré será darle las gracias, claro.

Saludos, Jabato.

13 Febrero, 2007, 08:28 pm
Respuesta #13

Jabato

  • Visitante
Creo que ya Germán demostró que el mínimo ciclo completo de rondas conduce necesriamente a 13 partidos por lo que no es posible establecer ningun criterio de este tipo que dé satisfacción al enunciado. A partir de ahí estamos abocados a computación. Yo no veo otra solución.

Saludos, Jabato.

14 Febrero, 2007, 10:14 am
Respuesta #14

ulises2010

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 10
  • Karma: +0/-0
Bueno, creo que he sido yo el que ha metido la pata en el enunciado, y espero que no me 'mateís' por ello.

En cualquier caso, por lo que veo estais disfrutando de lo lindo con la discúsión (de discurrir) del problema.

El caso es que efectivamente yo ponía en el enunciado que deberian ser entre 5 y 10 los partidos a disputar, cuando a lo que me refería es que serían los partidos a disputar... por participante.

Siento de verdad el no haber sido claro en el enunciado, aunque he disfrutado muchisimo con todas vuestras aportaciones, especialmente con la trabajada exposición de Jabato.

Supongo que con esta nueva premisa el método más sencillo será el propuesto por el_manco, aunque tiene el handicap de no conseguir que todos sean compañeros de todos... cosa que supongo imposible de conseguir..... ¿o no?

Gracias de nuevo y perdón por no explicarme bien.

Ulises

14 Febrero, 2007, 10:53 am
Respuesta #15

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,878
  • País: es
  • Karma: +0/-0
Hola


El problema es que deben usarse algoritmos que resuelvan el problema en un número de partidos no superior a 10 ya que es condición impuesta en el enunciado.

y es ahí donde nos encontramos con la madre del cordero. ¿Con esas condiciones que algoritmo utilizamos para definir los partidos? y ¿como calculamos el número de partidos que transcurrirán hasta cumplirse los requisitos?

Si puedes contestar a esas preguntas pues perfecto, yo creo que no se puede sin usar computación, ya lo dije, pero si alguien me demuestra que estoy equivocado, lo primero que haré será darle las gracias, claro.

Saludos, Jabato.

El problema de ese problema (permítaseme la redundancia) es que quizá NO SEA POSIBLE SOLUCIONARLO en MENOS de 10 PARTIDOS. Es decir quizá no sea posible organizar las cosas para que en menos de 10 partidos TODOS hallan jugado CON y CONTRA TODOS.

Por eso la restricción de 10 partidos es INNECESARIA a la hora de intentar buscar el MINIMO NUMERO DE PARTIDOS para que las condiciones anteriores se cumplan. En todo caso una vez calculado ese número pues uno dice "vaya!!, era mayor que 10 y eso no me interesa...!qué lastima!" o... "bien!!! el número es menor que 10... perfecto!".

Por otro lado hay algo que tampoco no me convence del algoritmo. Si entendí bien tiene en cuenta el número de partidos jugados de cada jugador y con quien ha jugado pero no distingue si ha jugado CON o CONTRA él. Con eso parece olvidarse el objerivo de que todos juegen CONTRA y CON todos. Estaba programándolo cuando me fije en eso y paré.

En definitiva, me despierta mucha curiosidad cual es el mínimo número de partidos (número que, repito una vez más, no depende del algoritmo ni criterio utilizado: ese mínimo existe) otra cosa es que seamos capaces de calcularlo con el método que sea (algorítmico o no).

Saludos.

P.D. Con la nueva aclaración de Ulises pues... ya no hay ese límite de 10...

14 Febrero, 2007, 01:32 pm
Respuesta #16

Jabato

  • Visitante
Bueno manco, permiteme unos comentarios.

1º Si eliminamos la condición de los 10 partidos estamos cambiando el problema, algo que no debemos hacer, ya sabes supongo que el enunciado de un problema es sagrado para un matemático que se precie.

2º La cota mínima para el número de partidos es al menos 6'5, según el cálculo que hizo german, lo que nos viene a decir que presumiblemente con 7, 8, 9 ó 10 partidos es bastante verosimil que haya suficiente margen para que las condiciones puedan cumplirse, claro que no va a resultar fácil demostrar que efectivamente lo es, eso es precisamente lo que yo estoy defendiendo.

3º Es cierto que el algoritmo que propuse solo se apoya en los partidos jugados con, y no en los partidos jugados contra, pero fíjate que siempre da prioridad al que menos haya jugado con, lo que hace que los jugadores que más hayan jugado con este capitán tiendan a jugar mayormente contra él ya que su capitan los rechazará con mayor probabilidad, es decir, basta con controlar uno de los parámetros para que automáticamente tengamos el otro controlado, ya que la idea es que los partidos sean lo más distribuidos posibles y si favorecemos siempre al par (a, b) que menos veces han jugado juntos, estamos realmente favoreciendo el objetivo.

Desde luego yo no defiendo que este algoritmo resuelva con seguridad el problema, aunque podría verificarse sin más que realizar el programa adecuado de ordenador y ver lo que pasa. Y tampoco defiendo que ésta sea la única ó la mejor forma de hacerlo. Solo entiendo que este algoritmo va buscando cumplir el objetivo lo antes posible y en consecuencia es presumible que pueda hacerlo en un número aceptable de partidos (si es que puede hacerse). Ya comenté que es posible poner a prueba diversos algoritmos y ver cual ó cuales pueden funcionar mejor, pero ¿como realizarías el cálculo de ese mínimo?. Perdóname manco que insista, me parece lisa y llanamente imposible ya que el número de algoritmos que podemos utilizar es infinito, y no deben ajustarse necesariamente a un esquema único sino que cada uno puede utilizar criterios completamente distintos, incluso algunos aleatorios, imaginate, por poner un ejemplo sencillo, que sea aleatoria solamente la decisión de que cual será el capitan que elige primero a su equipo, lo que hace que sea realmente imposible formular el número de partidos en cada caso, y si no es posible formularlo, será mucho más dificil averiguar cual es el mínimo.

Vuelvo a remitirme por tanto al tema de los algoritmos genéticos, que tampoco es capaz de proporcionarnos la mejor solución, no encuentra el mejor algoritmo, por supuesto, pero sí puede buscar algoritmos que estén dentro del margen de 10 partidos con facilidad y rechazar el resto, y si sabes como funcionan los algoritmos genéticos, debo suponer que sí, pues me parece que deberías entender mis argumentos.

Saludos, Jabato.

14 Febrero, 2007, 01:50 pm
Respuesta #17

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,878
  • País: es
  • Karma: +0/-0
Hola

Citar
1º Si eliminamos la condición de los 10 partidos estamos cambiando el problema, algo que no debemos hacer, ya sabes supongo que el enunciado de un problema es sagrado para un matemático que se precie.

No se como volver a explicar que lo de los 10 partidos es anecdótico sin repetirme. Lo que me refiero es que ni tu ni yo ni nadie en ninguna de las aproximaciones que hemos hecho utilizamos este dato. Uno intenta resolver el problema con el menor número posible de partidos. Si da menos de 10.. mejor que mejor. Incluso tu algortimo hace eso.

Pero creo que en realidad estamos de acuerdo porque no veo que este punto de para más.

Citar
3º Es cierto que el algoritmo que propuse solo se apoya en los partidos jugados con, y no en los partidos jugados contra, pero fíjate que siempre da prioridad al que menos haya jugado con, lo que hace que los jugadores que más hayan jugado con este capitán tiendan a jugar mayormente contra él ya que su capitan los rechazará con mayor probabilidad, es decir, basta con controlar uno de los parámetros para que automáticamente tengamos el otro controlado, ya que la idea es que los partidos sean lo más distribuidos posibles y si favorecemos siempre al par (a, b) que menos veces han jugado juntos, estamos realmente favoreciendo el objetivo.

CIERTO.

Citar
el número de algoritmos que podemos utilizar es infinito

SI. Para cualquier problema el número de formas de intentar resolverlo puede ser infinito, pero eso no quiere decir que no sea posible resolverlo.

Lo que si es FINITO en este caso, son los datos que manejamos. El número máximo de partidos que pueden organizarse es finito. Por tanto aunque halla infinitos algoritmos el número de posibles soluciones que dará cada uno es FINITO.

De entre todas esas soluciones habrá una que sea la mejor (la que de el menor número de partidos).

Por tanto la solución EXISTE (seamos o no capaces de hallarla).

De nuevo, creo que esto no es muy discutible y que en realidad estamos de acuerdo, si hablamos de lo mismo.

Citar
Vuelvo a remitirme por tanto al tema de los algoritmos genéticos, que tampoco es capaz de proporcionarnos la mejor solución, no encuentra el mejor algoritmo, por supuesto, pero sí puede buscar algoritmos que estén dentro del margen de 10 partidos con facilidad y rechazar el resto, y si sabes como funcionan los algoritmos genéticos, debo suponer que sí, pues me parece que deberías entender mis argumentos.

Creo que si te entiendo. Modificando los criterios de valoración del algoritmo se obtendrán distintas soluciones. Y hemos de elegir y "bonificar" aquellas que den como resultado un número menor de partidos.

En definitiva en lo que quiero hacer ver es que la solución del problema (=mínimo número de partidos para que todos juegen con y contra todos) no depende del algoritmo utilizado. Pero eso creo que ya quedó claro.

Saludos.

P.D. Has probado a "lanzar" tu algoritmo a funcionar...?

P.D.D. Por cierto puede probarse (si no me equivoco) que 7 partidos tampoco llegan. La clave está en que si suponemos que 1 jugador está en los cuatro equipos como mínimo donde ha de estar (1,2,3,4), (1,5,6,7),(1,8,9,10),(1,11,12,13) entonces en los rivales de estos equipos siempre habrá dos jugadores que repitan compañero. Por tanto hay 8 jugadores que en lugar de jugar un mínimo de 4 partidos necesitan un mínimo de 5. Esto impide que lleguen 7 partidos.



14 Febrero, 2007, 02:07 pm
Respuesta #18

Jabato

  • Visitante
Solo una nota, yo no niego que exista ese mínimo, por supuesto que debe de existir, de hecho la cota inferior de 6'5 nos permite afirmar que 7 es el infimo, lo único que habría que demostrar entonces es que  puede hacerse en 7 partidos lo que convierte el infimo en el mínimo. Bastaría encontrar un algoritmo que resuelva el problema en 7 partidos para tener el asunto zanjado ya que sabemos que con 6 partidos es imposible hacerlo, pero ... ¿si no lo encontramos podemos afirmar que 7 no es el mínimo? Supongamos que lanzamos un programa tan sofisticado como quieras, que utilice algoritmos genéticos ó la técnica que te dé la gana para ir probando algoritmos, inteligencia artificial, redes neuronales, autómatas celulares, en fin, la leche, pero nunca encontramos un algoritmo que resuelva el problema en 7 partidos.

No he puesto el algoritmo a rodar si es lo que me preguntas, pero si el debate sigue dando caña pues igual lo hago, aunque solo sea para salir de dudas. Lleva su tiempo, pero no es dificil hacerlo.

Saludos, Jabato.

14 Febrero, 2007, 02:35 pm
Respuesta #19

Jabato

  • Visitante
Bueno, otra cosa más, lo de los 10 partidos no es anecdótico en mi opinión, porque precisamente el intringulis del problema está precisamente ahí, ya que si acotáramos en 13 partidos la cosa estaba resuelta, el enunciado no pide calcular el mínimo, solo pide establecer un algoritmo que lo haga. Y en 13 partidos está muy fácil.