Pasar al contenido principal

Restricciones

Las reglas que deciden dónde pueden ir las actividades: cómo añadir una, qué significa realmente el peso y por qué importa el orden de la lista.

Las actividades indican qué se debe enseñar. Las restricciones indican dónde puede ir: este profesor no está disponible el viernes, ese laboratorio solo puede albergar una clase a la vez, esta materia no debe ser la última lección del día.

Se dividen en dos secciones, porque FET las trata como dos problemas separados. Las restricciones de tiempo se refieren a cuándo. Las restricciones de espacio se refieren a dónde.

Time constraints as FET models them, in a plain list rather than nested dialogs.
Time constraints as FET models them, in a plain list rather than nested dialogs.

Las dos reglas que no escribiste

Cada horario lleva dos restricciones que no creó: una regla básica obligatoria para el tiempo y otra para el espacio. Son la base — ningún profesor o grupo de alumnos en dos lugares a la vez, ninguna aula con doble reserva.

FET las requiere, por lo que siempre tienen su peso máximo y no se pueden desactivar. Aparecen en la lista marcadas como Obligatorias, con su interruptor bloqueado.

El peso es la idea principal

Cada otra restricción lleva un peso entre 0 y 100. Puedes elegir ese número en algunos tipos y no en otros — la regla se encuentra más abajo en esta página.

100% es estricto. Debe cumplirse. Si no puede, no hay horario.

Por debajo del 100% es una preferencia, y su peso indica cuán fuertemente la deseas. Una regla al 95% se respetará a menos que respetarla haga imposible otra cosa; una regla al 40% es un empujón. Esto es lo que permite que un horario sea bueno en lugar de meramente legal — puedes expresar preferiría no hacerlo, pero lo haré si tengo que hacerlo, que es como funcionan las escuelas reales.

La lista etiqueta cada fila como Estricta o Flexible exactamente sobre esta base, y puedes filtrar la lista por rango de peso para encontrar todo lo que has hecho estricto, o todo lo que has dejado como un deseo.

La mayoría de los tipos de restricciones no pueden ponderarse en absoluto. FET mantiene una lista de los tipos que puedes ponderar libremente, y rechaza cualquier tipo que no esté en ella.

⛔ Esto no es una formalidad. FET rechaza el valor dos veces: su propio diálogo no lo guardará, y su generador se detiene antes de comenzar. Un archivo que contenga uno de estos tipos por debajo del 100% no te dará un horario peor. No te dará ninguno.

El editor desactiva el campo de peso para esos tipos y te dice por qué. Por lo tanto, no puedes escribir un número que FET rechazaría.

Dos casos más fuerzan el 100%:

  • las reglas obligatorias anteriores
  • una regla de aula preferida para un aula virtual que ha sido fijada a aulas reales específicas — un requisito propio de FET. Esta depende de lo que contenga la regla, no de su tipo, por lo que cambia a medida que editas la lista de aulas.

Hay una pequeña particularidad. Un archivo importado de FET nunca se ajusta, incluso si contiene una de esas reglas por debajo del peso máximo. Reescribir silenciosamente el archivo de alguien rompería la promesa de que lo que entra sale. Por lo tanto, la lista muestra el peso que está almacenado, con la razón mostrada como una sugerencia, en lugar de mostrarte un número que no está en el archivo.

Añadir una

Añadir abre un selector de cada tipo de restricción que FET soporta, agrupado por categoría y con capacidad de búsqueda. Hay muchísimos, y el cuadro de búsqueda es la forma de encontrarlos — escribe aula, o hueco, o consecutivo, y mira qué existe.

Elegir un tipo abre su editor, que se construye a partir de la propia definición de ese tipo, por lo que los campos que obtienes son los campos que ese tipo realmente tiene. Al lado hay un panel de ayuda que describe lo que hace la restricción. Vale la pena leerlo: los nombres de las restricciones son concisos, y varios tipos son muy similares pero difieren en un aspecto importante.

Cuando una restricción necesita franjas horarias, no rellenas una lista — obtienes una cuadrícula de días × horas y haces clic en las celdas. Un puñado de tipos necesitan conjuntos de franjas en lugar de una sola selección; esos te dan una única cuadrícula donde cada celda se pinta en un conjunto numerado, para que puedas ver los conjuntos uno frente al otro en lugar de mantener varias listas una al lado de la otra.

¿Todas las actividades, o solo algunas?

Esto confunde a la gente, y vale la pena decirlo claramente: en muchos tipos de restricciones, los campos que nombran a un profesor, materia o grupo no deciden quién se ve afectado — deciden qué actividades examina la regla.

Son un filtro sobre las actividades, no un objetivo. Leer un campo de formulario como esta regla es sobre el Sr. Smith cuando significa considerar las lecciones que involucran al Sr. Smith lleva a reglas que silenciosamente no hacen nada. El panel de ayuda para cada tipo indica cuál es.

Orden

La lista tiene un orden, y no es decorativo: es el orden en que las restricciones se escriben en el archivo exportado.

Arrastra las filas por su agarre para organizarlas, o usa Ordenar A→Z para alfabetizar toda la sección y guardar eso. El arrastre se ofrece solo cuando estás viendo la lista completa en su orden natural — mientras una búsqueda, ordenación o filtro la está reduciendo, la posición a la que arrastras no tendría sentido. Las reglas obligatorias son gestionadas por FET y nunca se mueven.

La reordenación se puede deshacer.

Trabajando con una lista larga

La sección tiene una barra de categorías, un cuadro de búsqueda, un filtro activo/inactivo y el deslizador de rango de peso. Entre ellos, normalmente puedes pasar de algo está mal con el viernes al puñado de reglas que lo mencionan.

Seleccionar filas te permite activar, desactivar, establecer un peso o eliminar en una sola acción. Desactivar es lo útil — mantiene la regla y su configuración mientras la saca de juego, que es como pruebas si una regla es lo que hace que tu horario sea imposible.

Cada restricción en una acción masiva se autoriza por sí misma. Alguien que trabaja a través de un enlace de acceso compartido con alcance limitado cambia lo que se le permite cambiar, y el resto se deja intacto en lugar de que toda la acción falle. Un cambio de peso masivo también nombra cualquier cosa que se negó a mover.

Encima de la lista, los editores obtienen un resumen previo de una línea. Si informa un conflicto de bloqueo, eso es una prueba en lugar de una advertencia, y vale la pena seguirlo antes de ir más lejos.