Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Algoritmo Genetico Horarios Escolares

Estas en el tema de Algoritmo Genetico Horarios Escolares en el foro de PHP en Foros del Web. Hola a todos, espero que alguien que ya ah pasado por esto me eche una mano se los agradezco. Llevo días queriendo realizar este proyecto ...

  #1 (permalink)  
Antiguo 19/08/2012, 18:21
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Pregunta Algoritmo Genetico Horarios Escolares

Hola a todos, espero que alguien que ya ah pasado por esto me eche una mano se los agradezco.

Llevo días queriendo realizar este proyecto que genere los horarios de una escuela secundaria, tras muchas horas de investigación me doy cuenta que la forma mas documentada es el algoritmo genético pues permite resolver problemas de este tipo, pero por mas manuales y pruebas que eh echo no logro entender como funciona.

Hablan de cromosomas y genes y pues esto es a lo que eh llegado...

http://efektoservicios.com/horarios

Usuario: 1
Pass: 1


La idea es que
  • Una materia no se repita mas de 2 veces por día
  • Una materia no se repita mas veces que las asignadas a ese grupo Eje. Historia - 4 horas a la semana
  • Un Profesor no tenga asignado a dos grupos diferentes a la misma hora y dia
  • Un Profesor no tenga asignado a un grupo en las horas que no tiene como sugeridas

Les dejo el codigo y la base de ejemplo que uso la exporte con el PHPMyAdmin
http://efektoservicios.com/horarios/horarios.rar

Les agradecería que me asesoren en como se resuelve esto, ya me dejo casi calva y sin uñas jejeje

Un abrazo a todos :)
  #2 (permalink)  
Antiguo 19/08/2012, 21:29
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Algoritmo Genetico Horarios Escolares

Que tal, me pareció muy interesante tu "problema" y me puse a ello, PERO, tengo varios problemas, la primera es que no entiendo muy bien tus requerimientos...

a) Una materia no se repita mas de 2 veces por día
No se cuantos grupos tiene la escuela, pero, teniendo como ejemplo las escuelas secundarias de mi estado/pais tienen entre 3 y 5 grupos por año dependiendo del numero de alumnos, en este caso es imposible tener solo 2 veces por dia una sola manteria, a menos que tengas suficientes materias para cubrir el requerimiento, pero volvemos al problema inicial, no dices cuantos grupos hay ni cuantas materias tienes a "disposición"

b) Una materia no se repita mas veces que las asignadas a ese grupo Eje. Historia - 4 horas a la semana
Volvemos al problema anterior, no sabemos cuantas materias hay, ni tampoco el horario a cubrir, sin explicar esto, estará muy difícil que te podamos ayudar

c) Un Profesor no tenga asignado a un grupo en las horas que no tiene como sugeridas
Similar de nuevo, no sabemos cuantos profesores hay ni que horarios tienen como sugeridos

Para serte sincero la mayoría ni si quiera se molestará en descargar los archivos que pones a disposición, la ayuda es proporcional a la información que pones a disposición de manera directa, si no pones la información minima requerida será muy difícil que alguien pueda ayudarte, lo mejor es que detalles bien los requerimientos pero sobre todo que describas lo que ya lograste realizar, ya que enserio, nadie va a querer hacer todo el trabajo
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 19/08/2012, 22:44
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Algoritmo Genetico Horarios Escolares

Hola gracias por responderme :)

Mira te explico es una escuela secundaria en donde separan cada generación de alumnos en 3 años (1er año, 2do año, 3er año) y cada año tiene 4 grupos (1A, 1B, 1C, 1D.... 3C, 3D) y trabaja dos turnos Matutino y Vespertino.

Resumiendo es una escuela con 12 salones y en cada salón va un año-grupo x dos turnos

Las materias se imparten en bloques semanales de lunes a viernes y depende el turno es el horario por ejemplo

Matutino
| Horario | Lunes | Martes | Miércoles | Jueves | Viernes |
| 7-8 | | | | | |
| 8-9 | | | | | |
| 9-10 | | | | | |
| 10-11 | | | | | |

Vespertino
| Horario | Lunes | Martes | Miercoles | Jueves | Viernes |
| 2-3 | | | | | |
| 3-4 | | | | | |
| 4-5 | | | | | |
| 5-6 | | | | | |


El caso de las materias es así:

Cada salón tiene asignadas para toda la semana 40 horas en la mañana y 35 en la tarde, cada materia cubriría el espacio de una hora y tiene asignadas ciertas horas para ese grupo por ejemplo

Matemáticas - 5 Horas para 1A Matutino
Español - 6 Horas para 1A Matutino
...
...
Matematicas - 5 Horas para 3D Vespertino
Español - 6 Horas para 3D Vespertino


Y el profesor trabaja asi:

El tiene ya un "año-materia" seleccionadas, es decir ya sabemos que profesor da que materia a que año, pero tiene un horario sujerido por ejemplo

Profesor 1
Tiene asignadas 30 horas para el turno matutino
Tiene sugeridas 40 horas para el turno matutino

| Horario | Lunes | Martes | Miercoles | Jueves | Viernes |
| 2-3 | X | | | | |
| 3-4 | X | X | X | | |
| 4-5 | X | X | X | | |
| 5-6 | | X | | | |

Profesor 2
Tiene asignadas 10 horas para el turno matutino
Tiene sugeridas 15 horas para el turno matutino

| Horario | Lunes | Martes | Miercoles | Jueves | Viernes |
| 2-3 | X | | | | |
| 3-4 | X | | X | X | |
| 4-5 | X | | X | X | |
| 5-6 | | | | X | |

Cada "X" es un día que puede asistir a dar la clase y la idea de la aplicación es que seleccione la hora mas conveniente para asignar un maestro a esa hora tomando en cuenta estos criterios
  • Una materia no se repita mas de 2 veces por día
  • Una materia no se repita mas veces que las asignadas a ese año Eje. Historia - 4 horas a la semana
  • Un Profesor no tenga asignado a dos años diferentes a la misma hora y dia
  • Un Profesor no tenga asignado años en las horas que no tiene como sugeridas

Espero quede un poco mas claro la verdad es que si me ha costado trabajo entender tantas reglas jeje pero en fin, muchas gracias por tomarte el tiempo de ayudarme, te lo agradezco de corazón :)
  #4 (permalink)  
Antiguo 19/08/2012, 22:45
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Algoritmo Genetico Horarios Escolares

Buenas!!!

haber... suena interesante tu "proyecto" y me gustaria apoyar pero creo que hay varias partes al aire como ya te comentaron

asumo que tendras algun control de los profesores, necesitaria saber que datos estas manejando de los profesores aparte de los generales...

ademas de la informacion de numero de grupos y grados ya sean primaria o secundaria..

saludos!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #5 (permalink)  
Antiguo 19/08/2012, 22:49
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Algoritmo Genetico Horarios Escolares

Te agrego el código que hace los ciclos para que se de una idea de lo que estoy haciendo

Cita:
if($_POST["bloque"]=="0"){
//RECORRO LOS GRUPOS
for($g=0;$g<count($_SESSION['Grupos']);$g++){
$grupo=$_SESSION["Grupos"][$g];
//RECORRO LAS HORAS
for($h=0;$h<count($_SESSION['Horarios']);$h++){
$hora=$_SESSION["Horarios"][$h];
//RECORRO LOS DIAS
for($dia=1;$dia<=5;$dia++){
//SI LA HORA ES DEL MISMO TURNO QUE EL GRUPO Y NO ES FIJA
if($grupo["turno"]==$hora["turno"] and $_SESSION["Horario_Grupo"][$grupo["idgrupos"]][$hora["idhorarios"]][$dia]["fija"]==""){
for($pm=0;$pm<count($_SESSION["Posibilidades"][$grupo["idgrupos"]][$hora["idhorarios"]][$dia]);$pm++){
$posible=$_SESSION["Posibilidades"][$grupo["idgrupos"]][$hora["idhorarios"]][$dia][$pm];
//CALIFICA
$calificacion=Evalua_Bloque($grupo["idgrupos"],$hora["idhorarios"],$dia,$pm);
$_SESSION["Posibilidades"][$grupo["idgrupos"]][$hora["idhorarios"]][$dia][$pm]["calificacion"]=$calificacion;
//MUESTRA
$c='black';
if($Padres["1"]["pos"]==$pm or $Padres["2"]["pos"]==$pm)$c='blue';
$_SESSION["Horario_Grupo"][$grupo["idgrupos"]][$hora["idhorarios"]][$dia]["Debug"].="<span style='color:".$c."'>".$posible["idmateria"]."-".$posible["idprofesores"]."|".$calificacion."</span><br>";
}
}
}
}
}
exit();
}
Y te anexo una imagen de como se ve hasta el momento, cada numero que se muestra dentro de cada "bloque" u hora-dia es una posibilidad de que esa materia encaje ahi.

Gracias :)

  #6 (permalink)  
Antiguo 19/08/2012, 22:54
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Algoritmo Genetico Horarios Escolares

Buenas!!!

habia respondido pidiendo info y ya la has puesto..

haber entonces lo tienes relativamente facil porque lo que tienes que hacer es que por ejemplo el prof. de matematicas de primero matutito "elige" y por ende se asignan las horas, ese horario queda cubierto, estamos por entendido que el profesor en la mañana solo puede tener por ejemplo 5 horas a la semana y al cubrir
lunes 2, martes 1, miercoles 2, en horario de 8 a 9, este mismo horario queda libre para español que puede dar jueves 3 y viernes 3
asi sucesivamente, obviamente esto es una cadena porque todos lo horarios estan enlazados, si mueves a un profesor, todo se tiene que ajustar para que pueda acoplarse de nuevo...

haber si me entendiste

saludos!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #7 (permalink)  
Antiguo 19/08/2012, 22:54
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Algoritmo Genetico Horarios Escolares

Cita:
Iniciado por HalconVigia Ver Mensaje
Buenas!!!

haber... suena interesante tu "proyecto" y me gustaria apoyar pero creo que hay varias partes al aire como ya te comentaron

asumo que tendras algun control de los profesores, necesitaria saber que datos estas manejando de los profesores aparte de los generales...

ademas de la informacion de numero de grupos y grados ya sean primaria o secundaria..

saludos!!
Gracias Halcon pues mira de los profesores solo tengo almacenado

Nombre
Horas Sujeridas
| Horario | Lunes | Martes | Miercoles | Jueves | Viernes |
| 2-3 | X | | | | |
| 3-4 | X | | X | X | |
| 4-5 | X | | X | X | |
| 5-6 | | | | X | |

Si tiene horario fijo o no, hay algunos profesores que se acoplan al horario que les toque no dan sugerencias y pueden a la hora que sea

Y su relación año-materia

Te anexo una imagen de esto ultimo para que se aclare, te agradezco tu tiempo :)

  #8 (permalink)  
Antiguo 19/08/2012, 22:57
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Algoritmo Genetico Horarios Escolares

Cita:
Iniciado por HalconVigia Ver Mensaje
Buenas!!!

habia respondido pidiendo info y ya la has puesto..

haber entonces lo tienes relativamente facil porque lo que tienes que hacer es que por ejemplo el prof. de matematicas de primero matutito "elige" y por ende se asignan las horas, ese horario queda cubierto, estamos por entendido que el profesor en la mañana solo puede tener por ejemplo 5 horas a la semana y al cubrir
lunes 2, martes 1, miercoles 2, en horario de 8 a 9, este mismo horario queda libre para español que puede dar jueves 3 y viernes 3
asi sucesivamente, obviamente esto es una cadena porque todos lo horarios estan enlazados, si mueves a un profesor, todo se tiene que ajustar para que pueda acoplarse de nuevo...

haber si me entendiste

saludos!!
Si hasta ese punto me quedo no se como hacer esa cadena de enlaces eh investigado un montón y dicen que es con algoritmos genéticos pero la verdad me quedo igual o_O
  #9 (permalink)  
Antiguo 19/08/2012, 22:57
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Algoritmo Genetico Horarios Escolares

si quieres que todo sea automatico entonces tienes que tener mas datos de control..

por ejemplo el horario el numero de horas de cada maestro y su preferencia, porque igual tiene que ser controlable asi como la asignatura, ejemplo.. matematicas tiene que ser 5 horas a la semana sin importar que UN solo dia de clase el maestro o que sea 1 hora diaria
pero... TAMPOCO puede ser mas.... me entiendes??
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #10 (permalink)  
Antiguo 19/08/2012, 23:04
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Algoritmo Genetico Horarios Escolares

Cita:
Iniciado por HalconVigia Ver Mensaje
si quieres que todo sea automatico entonces tienes que tener mas datos de control..

por ejemplo el horario el numero de horas de cada maestro y su preferencia, porque igual tiene que ser controlable asi como la asignatura, ejemplo.. matematicas tiene que ser 5 horas a la semana sin importar que UN solo dia de clase el maestro o que sea 1 hora diaria
pero... TAMPOCO puede ser mas.... me entiendes??

Puedo agregar esos campos decirle quien tiene prioridad sobre quien, pero los ejemplos que eh visto dicen que arme una cadena de este tipo 11100011010 y que altere esos valores, pero no se de donde los obtienen

Mira lo tengo asi



  #11 (permalink)  
Antiguo 19/08/2012, 23:20
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Algoritmo Genetico Horarios Escolares

ok, bueno... ya avanzaste en algo mas..
mira... creo que esas rebuscando cuando es mas sencillo, la cosa esta en que se cubra primero el horario con la prioridad del maestro por horas de trabajo.
Ejemplo:
Prof. Jose tiene 20horas de matematicas
prof. manuel tiene 10horas de matematicas
prof. margarita tiene 18horas de español
prof. alicia tiene 30horas de español
ahora...
los asignados para cada grupo 1A tiene 5hrs de matematicas a la semana y 6hrs de español
a la hora de asignar repasas al que tiene mas horas porque obvio tiene mayor prioridad por antiguedad.
tomando asi primero a jose y alicia para llenar el horario, tomando en cuenta que la hora este libre, la va asignando uno a uno hasta completar el horario.

ahora... si me permites una observacion.... en mi experiencia... este tema no puede ser automatizado porque entran factores como la facilidad de cada maestro por cumplir y el hecho que no tengan "puentes" entre hora y hora... asi tambien cuando tienen que "empatar" entre el turno matutino con el vespertino....

eso no quiere decir que no se pueda programar... ;)

Saludos!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #12 (permalink)  
Antiguo 19/08/2012, 23:23
 
Fecha de Ingreso: agosto-2012
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Algoritmo Genetico Horarios Escolares

alguien me ayuda en mi post por favor? :( es algo rapido:

http://www.forosdelweb.com/f18/urgente-filtrar-datos-campo-del-otro-1009035/
  #13 (permalink)  
Antiguo 19/08/2012, 23:34
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Algoritmo Genetico Horarios Escolares

Pues Fijate que ya lo intente, pero entra otro problema si recorro año por año y voy asignando el que mejor se postule para esa hora-dia, ya que recorro todos los grupos encuentra conflicto con horas ya asignadas a otros años en pasadas anteriores del bucle por ejemplo

Grupo 1A Matu
| Horario | Lunes | Martes | Miércoles | Jueves | Viernes |
| 7-8 | ESP | MAT | HIS | EF | CIE |
| 8-9 | ESP | MAT | HIS | EF | CIE |
| 9-10 | ORI | ESP | GEO | IN | ART |
| 10-11 | CIE | ESP | GEO | IN | ART |


Grupo 3A Matu
| Horario | Lunes | Martes | Miércoles | Jueves | Viernes |
| 7-8 | ESP | ORI | HIS | HIS | CIE |
| 8-9 | ESP | MAT | ESP | HIS | CIE |
| 9-10 | MAT | CIE | ART | EF | ART |
| 10-11 | MAT | HIS | ART | EF | ART |

Recorro los grupos las horas y los dias y voy tomando los mejores según las horas que da pero supongamos que

Español la da Alta a los dos grupos
Ciencias la da Maguey a los dos grupos

Las que están marcadas en negrita tienen conflicto porque están a la misma hora en diferentes grupos y en el caso del segundo grupo esa hora no la pondría por la restricción de que un profesor no puede dar dos horas el mismo día a diferentes grupos

Espero me entiendas ;)
  #14 (permalink)  
Antiguo 19/08/2012, 23:39
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Algoritmo Genetico Horarios Escolares

obvio porque como te dije te faltan campos de control....

al maestro le tienes que poner un campo que controle los horarios ya asignados para cada dia, asi al hacer la comparacion podras verificar que este disponible
ejemplo:
mtro. julio ocupado 7 a 8, 8 a 9 lunes
utilizo 2 horas de sus 5 libres...
al buscar en otro grado/grupo esas horas para ese dia ya no pueden ser usadas..

me explico??
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #15 (permalink)  
Antiguo 19/08/2012, 23:46
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Algoritmo Genetico Horarios Escolares

Hice una lista de posibles materias para cada dia-hora



Y califico asi mira

Cita:
function Evalua_Bloque($idgrupos,$idhorarios,$dia,$pos_posi ble){
$posible=$_SESSION["Posibilidades"][$idgrupos][$idhorarios][$dia][$pos_posible];
$idmateria=$posible["idmateria"];

//PROMEDIO DE HORAS LABORALES
$horas_turno=$_SESSION["Horas_Turno"][$_SESSION["GruposID"][$idgrupos]["turno"]]*5;
$Sujeridas=$_SESSION["ProfesoresID"][$posible["idprofesores"]][$_SESSION["GruposID"][$idgrupos]["turno"]];
@$por_sujeridas=100/((100/$horas_turno)*$Sujeridas);
$por_sujeridas=($por_sujeridas=="")?0:$por_sujerid as;
$Horas_Asignadas=$_SESSION["ProfesoresID"][$posible["idprofesores"]]["Total"][$_SESSION["GruposID"][$idgrupos]["turno"]];
$Horas_Uso=($_SESSION["Horas_Uso_Profesor"][$posible["idprofesores"]]=="")?0:$_SESSION["Horas_Uso_Profesor"][$posible["idprofesores"]];
$Pendiente=$Horas_Asignadas-$Horas_Uso;
$Horas_Grupo=$_SESSION["Horas_Profesores"][$idgrupos][$posible["idprofesores"]];
@$Promedio=((100/$Pendiente*$Horas_Grupo)/$Horas_Grupo);
$Promedio=($Promedio=="")?0:$Promedio;
$calificacion=number_format($por_sujeridas+$Promed io,2);

//SI EL PROFESOR TIENE HORAS CRUZADAS
$HorasP=Cuenta_Horas_Profesor($idhorarios,$dia,$po sible["idprofesores"]);
if($HorasP>1) $calificacion-=5;

//SI ESE GRUPO TIENE MAS HORAS DE LAS REQUERIDAS
$Horas=Cuenta_Horas_Materia($idgrupos,$idmateria);
if($Horas>$posible["horas"]) $calificacion-=5;

//SI ESTA MAS DE DOS VECES POR DIA
$horas_dia=0;
for($hP=0;$hP<count($_SESSION['Horarios']);$hP++){
$idhorarios2=$_SESSION['Horarios'][$hP]["idhorarios"];
if($idhorarios2!=$idhorarios and $_SESSION['Horario_Grupo'][$idgrupos][$idhorarios2][$dia]["uso"]==$idmateria)$horas_dia++;
}
if($horas_dia>=2) $calificacion-=5;
return $calificacion;
}
La que esta marcada en azul es la mejor según la calificación y al asignarla me afecta a la variable $Horas_Uso que es la que lleva el conteo de las horas que se le han asignado así si empezó con 0 horas y se asigno al siguiente bloque ya vale 1 y así, pero de todas maneras deja bloques en blanco que fueron los que no pudo rellenar porque anteriormente ya se habían seleccionado a esa hora

La estructura de la tablita es así

IDMaestro | IDProfesores | Calificacion
  #16 (permalink)  
Antiguo 19/08/2012, 23:55
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Algoritmo Genetico Horarios Escolares

Mira aqui se ve mejor su efecto en la calificacion

  #17 (permalink)  
Antiguo 20/08/2012, 00:06
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Algoritmo Genetico Horarios Escolares

ok, se ve bien la "seleccion" pero... en donde lo almacenas para que estas no se pierdan?

porque tu problema es que al terminar de comparar un grado/grupo se inicia la comparativa...
otro detalle... en lo personal en lugar de hacer la comparativa en mas, la haria de menos.... ejemplo:
mtro. X tiene 5hrs
le asigno 3 le quedan 2
en lugar de sumar 1 + 1 +1, parece lo mismo y es el mismo resultado pero procesando los datos no es lo mismo
tengo hecho un sistema de expedientes de alumnos y promedios y en algun momento tuve que sumarle puntos y me dio muchos problemas hasta que hice lo inverso.. puse el 10 que podian tener y le fui restando por malas conductas o etc...

espero haberte orientado... saludos!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #18 (permalink)  
Antiguo 20/08/2012, 00:07
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Algoritmo Genetico Horarios Escolares

se me olvido preguntar...

¿porque promedias al profesor? que intencion tiene eso??
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #19 (permalink)  
Antiguo 20/08/2012, 00:18
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Algoritmo Genetico Horarios Escolares

Lo almaceno en esta variable

$_SESSION['Horario_Grupo'][$idgrupos][$idhorarios2][$dia][uso]

Y el resultado seria este

Array
(
[grupo] => 1-A
[idmateria] => 6
[materia] => ARTES
[horas] => 2
[continua] => 0
[idprofesores] => 15
[profesores] => ALTA
[fijo] => 1
[prioridad] => 86
[sujeridas] => 32
[asignadas] => 20
[uso] => 8

)

Sobre la comparativa te refieres a cuando agrego la materia al bloque o cuando las cuento para evaluarlas ahi me perdi mira el codigo de uno y otro

Cita:
$_SESSION["Horario_Grupo"][$grupo["idgrupos"]][$hora["idhorarios"]][$dia]["uso"]=$posible["idmateria"];
$_SESSION["Horas_Uso_Profesor"][$posible["idprofesores"]]++;
Cita:
$horas_dia=0;
for($hP=0;$hP<count($_SESSION['Horarios']);$hP++){
$idhorarios2=$_SESSION['Horarios'][$hP]["idhorarios"];
if($idhorarios2!=$idhorarios and $_SESSION['Horario_Grupo'][$idgrupos][$idhorarios2][$dia]["uso"]==$idmateria)$horas_dia++;
}
if($horas_dia>=2) $calificacion-=5;
  #20 (permalink)  
Antiguo 20/08/2012, 00:20
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Algoritmo Genetico Horarios Escolares

Cita:
Iniciado por HalconVigia Ver Mensaje
se me olvido preguntar...

¿porque promedias al profesor? que intencion tiene eso??
Porque cada turno tiene diferentes horas

Matutino 40
Vespertino 35

Y para obtener un valor igual en todos los bloques lo promedie en base a las horas por turno

Cita:
@$por_sujeridas=100/((100/$horas_turno)*$Sujeridas);
Tengo un archivo de excel donde hice las pruebas te lo mando por si ayuda en algo

http://efektoservicios.com/horarios/sample.xlsx

Que opinas???
  #21 (permalink)  
Antiguo 20/08/2012, 00:51
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Algoritmo Genetico Horarios Escolares

vaya!!
tendria que analizar mucho mas porque lo tienes algo revuelto.... en mi muy personal punto de vista creo que te complicas mas de lo que ya deporsi es complicado...

pero por ahora me retiro, mañana ya checare y si hace falta info para aclararme, te pedire por aqui si es que aun no lo haz resuelto...

saludos!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #22 (permalink)  
Antiguo 20/08/2012, 01:05
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Algoritmo Genetico Horarios Escolares

Cita:
Iniciado por HalconVigia Ver Mensaje
vaya!!
tendria que analizar mucho mas porque lo tienes algo revuelto.... en mi muy personal punto de vista creo que te complicas mas de lo que ya deporsi es complicado...

pero por ahora me retiro, mañana ya checare y si hace falta info para aclararme, te pedire por aqui si es que aun no lo haz resuelto...

saludos!!

Muchas gracias por tu ayuda de verdad, nos vemos mañana descanza.

Oye si tu ya hiciste uno parecido podrías compartirme tu proyecto, de verdad me interesa resolver esto porque comenzó como algo sencillo y como me dices lo eh complicado demasiado, me gustaría ver como lo resuelves tu.
  #23 (permalink)  
Antiguo 20/08/2012, 01:39
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Algoritmo Genetico Horarios Escolares

ok,

pero mi enfoque no fue hacia horarios de maestros fue hacia calificaciones e historial academico de los alumnos (expedientes) de tal manera que a mi no me interesa el horario del maestro, si no la calificacion y el historial de reportes, reconocimientos, buenas y malas conductas, etc.
como ya te mencione... en algun momento se considero hacer lo que pretendes y despues de mucho analisis se determino que no podia ser asi, me refiero a automatico... entonces el horario que manejan las escuelas es basado en lo "tradicional" y el sistema solo "captura" pero no procesa.
los principales "peros" es que el horario que el sistema les asignaba no les beneficiaba y empezaban a pedir cambios y esto traia otras complicaciones... etc...

pero como ya te dije... eso no quiere decir que no se pueda programar....

Saludos!!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #24 (permalink)  
Antiguo 20/08/2012, 09:53
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Algoritmo Genetico Horarios Escolares

Hola muy biene se tema ya que a mi tambien me serviria para validar esa parte en mi sistema de inscripcion que realizo para mi tesis de gardo, ya que esa parte no la tiene validad si quieres puedes echar un viztazo a mi sistema unt.sytes.net/liceo2/index.php entra como usuario usuario donde dice ingreso al sistema y veras en la seccion de registrar el modulo horarios alli esta
  #25 (permalink)  
Antiguo 20/08/2012, 17:14
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Algoritmo Genetico Horarios Escolares

Halcon se escucha interesante tu proyecto, pero si no tiene que ver con los horarios, estoy aferrada a que se logre hacer y por eso tanta lata, pues que les parece si lo hacemos publico y el producto final lo compartimos todos así también Ruben se puede beneficiar, les voy a subir todos los manuales que baje es muchisima información y así talvez alguien pueda apoyarnos, que me dicen???

El link de los manuales
http://efektoservicios.com/horarios/manual/
  #26 (permalink)  
Antiguo 20/08/2012, 17:19
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Algoritmo Genetico Horarios Escolares

Cita:
Iniciado por HalconVigia Ver Mensaje
ok,

pero mi enfoque no fue hacia horarios de maestros fue hacia calificaciones e historial academico de los alumnos (expedientes) de tal manera que a mi no me interesa el horario del maestro, si no la calificacion y el historial de reportes, reconocimientos, buenas y malas conductas, etc.
como ya te mencione... en algun momento se considero hacer lo que pretendes y despues de mucho analisis se determino que no podia ser asi, me refiero a automatico... entonces el horario que manejan las escuelas es basado en lo "tradicional" y el sistema solo "captura" pero no procesa.
los principales "peros" es que el horario que el sistema les asignaba no les beneficiaba y empezaban a pedir cambios y esto traia otras complicaciones... etc...

pero como ya te dije... eso no quiere decir que no se pueda programar....

Saludos!!!
Cita:
Iniciado por ruben_chirinos_1985 Ver Mensaje
Hola muy biene se tema ya que a mi tambien me serviria para validar esa parte en mi sistema de inscripcion que realizo para mi tesis de gardo, ya que esa parte no la tiene validad si quieres puedes echar un viztazo a mi sistema unt.sytes.net/liceo2/index.php entra como usuario usuario donde dice ingreso al sistema y veras en la seccion de registrar el modulo horarios alli esta

Esta bien interesante tu proyecto, ya le eche un ojo y vale la pena seguirlo vamos a armar algo bueno de todo esto que opinas???
  #27 (permalink)  
Antiguo 20/08/2012, 19:59
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Algoritmo Genetico Horarios Escolares

Hola si muchas gracias pues si ese es mi proyecto final de grado para graduarme de ing. en sistemas pues tambien me echo la mano un gran amigo mio q gracias a el se termino Gracias "Johan Montiel", y bueno cualquier cosa pues podremos intercambiar ideas
  #28 (permalink)  
Antiguo 20/08/2012, 20:10
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Algoritmo Genetico Horarios Escolares

buenas...

pues como dije, y que creo que no fui claro... mi sistema que es operativo actualmente no se enfoca a lo que quieres.. pero la intencion de apoyarte para lograrlo es clara para mi,
vamos para acabar.. creo que si se logra sera todo un exito, y con gusto avanzamos con el otro compañero siempre y cuando sea algo abierto y no cerrado o comercial...

y continuo evaluando lo que tienes en excel para tratar de "des-amarrar" el enrredijo que traes....

saludos!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #29 (permalink)  
Antiguo 20/08/2012, 20:10
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Algoritmo Genetico Horarios Escolares

Bien a quien guste aportar sera bien recibido por lo pronto gracias a todos por su ayuda, esperemos que sigan fluyendo ideas
  #30 (permalink)  
Antiguo 20/08/2012, 20:21
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Algoritmo Genetico Horarios Escolares

Bueno de todas maneras aqui esta mi correo [email protected] o [email protected]

Etiquetas: escolar, genetico, horario, tiemtabling, timetable, algoritmos
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 11:26.