Foros del Web » Programando para Internet » PHP »

Planificador de actividades (scheduler)

Estas en el tema de Planificador de actividades (scheduler) en el foro de PHP en Foros del Web. Hola, estoy empezando un proyecto para crear un prorgama para planificar actividades deportivas. He estado trabajando en la base, y he llegado al quid de ...
  #1 (permalink)  
Antiguo 14/08/2016, 07:10
FDA
 
Fecha de Ingreso: agosto-2010
Mensajes: 99
Antigüedad: 13 años, 8 meses
Puntos: 2
Información Planificador de actividades (scheduler)

Hola, estoy empezando un proyecto para crear un prorgama para planificar actividades deportivas. He estado trabajando en la base, y he llegado al quid de la cuestión, como recorrer las posibilidades, obteniendo únicamente soluciones completas.

Me explico:

La idea es que para uno o más centros, en una semana hay X grupos, que tienen que hacer varias actividades (el primer ejemplo con el que trabajo son 4 por dia) en unos días concretos.
Cada grupo se divide en subgrupos según el tamaño del grupo.
Así que por ejemplo, el grupo 1 tiene 3 subgrupos, así que los tres subgrupos deben hacer las 12 actividades durante la semana sin que coincida nunca una actividad.
Los grupos pueden coincidir en dias con otros.

Hay más variantes, como actividades que duran dos horas, o todo el dia, actividades donde pueden ir hasta x subgrupos del mismo grupo juntos, etc.. Pero de momento me interesa la parte grande y después ir añadiendo restricciones.

Después habrá que cuadrar también los monitores que van a cada actividad, pero lo dejo para el siguiente paso.

Para esto he estado leyendo bastante sobre scheduling y asignacción de recursos, pero no acabo de verlo para mi proyecto. He visto sobre algorismos heurísticos, todo teoría, alguna más fácil, otras más difíciles, pero nada práctico.

Alguien tiene alguna idea de hacia donde puedo tirar? donde puedo entrontrar más información?

Si alguien se ha encontrado con algún problema parecido, me encantaría escuchar sus soluciones.

Muchas gracias!

Si no se entiende bien o se neceista más información me puedo extender o detallar como tengo hechas las estructuras de datos, que basicamente son arrays multidimensionales con objetos e índices concretos. Pero no quería poner un tocho así de entrada jejejej

PD: Lo he escrito en el foro de PHP porque la aplicación la hago en php, pero si encaja mejor en cualquier otro subforo, que algun moderador lo mueva, sorry.

Última edición por FDA; 14/08/2016 a las 07:17
  #2 (permalink)  
Antiguo 14/08/2016, 15:55
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Planificador de actividades (scheduler)

Aquí no hay mucha ciencia, una base de datos relacionada. disculpa lo corta de mi respuesta, pero es verdad. Relaciona los centros con grupos, grupos con subgrupos, subgrupos con actividades, monitores, y usuarios.

Lo demás es desarrollar el sistema con PHP.

Recomendación: Siempre parte modelando tu BD con algún programa o lápiz y papel. Personalmente cuando tengo BDs complejas en cuanto a relaciones uso lápiz y papel.

Es mi opinión.
  #3 (permalink)  
Antiguo 15/08/2016, 03:48
FDA
 
Fecha de Ingreso: agosto-2010
Mensajes: 99
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Planificador de actividades (scheduler)

Hola, todo esto ya lo tengo hecho. La base de datos hechas, las clases definidas, y muchas funciones para saber que grupos van uqé dias en que centro y que actividades tienen que hacer. Hasta la configuración de cada centro. Las bases de datos son a lo que me he dedicado bastante en los últimos años, esta parte la tengo controlada.

El problema es que por combinatoria, no todas las soluciones son válidas. Con un solo grupo no hay problemas, pero con 3 grupos, para la misma semana y mismo centro, con 2 o tres subgrupos por grupo, llega un momento que no se pueden asignar todas las actividades a saco, ya que alguien se queda sin hacer alguna actividad en alguna hora, por que ya ha hecho las actividades que estan libres en ese momento.

Entonces, a lo bestia sería tirar de algo de backtracking, pero he esrado haciendo numeros, y facilmente se va de las manos. Por no contar que le iré poniendo restricciones. Por ejemplo, este grupo tiene que hacer esta actividad a esta hora este dia si o si. O no se peude hacer una actividad por la mañana, o el último día, o por ejemplo que el primer dia la primera actividad siempre es la de bienvenida.

La solución que he encontrado para hacer la busqueda parece ser que es con algoritmos genéticos. Que es lo que me estoy mirando ahora, si alguien tiene experiencia me iría de cojones algo de ayuda, contruir el cromosoma me está llevando de cabeza, por no hablar de las restricciones varias.
Seguiré investigando.

Para que te hagas una idea de a lo que se parece, que igual no me he explicado bien.

http://www.codeproject.com/Articles/...etic-Algorithm

Recuerdo algo de la uni sobre problemas NP-Hard y combinatoria, peor no profundizamos en ellos. Y ahroa toca investigar y aprender un poco más... o no tan poco.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:20.