Mercado libre (ver. 1.1, beta)

Algoritmo de reparto de docencia


Este es un algoritmo (en realidad una familia de algoritmos) para repartir asignaturas. Se pretende que tenga las siguientes características:

1. Variantes del algoritmo

Para seleccionar el algoritmo en concreto que se va a usar es necesario especificar P, porcentaje de proteccionismo: También es necesario asignar un poder de decisión a cada profesor. Este poder de decisión se expresa en puntos y estos pueden venir en función del puesto, antigüedad, edad, etc. Mi propuesta es que estos puntos coincidan con lo que cada profesor cobra en euros (¿Por qué?)

Por último hay que decidir si se permite, una vez asignadas las asignaturas, el intercambio posterior. Parece lógico que así sea.

2. Entrada del algoritmo

Hay que proporcionar datos de asignaturas y profesores.

  2.1 Datos de asignaturas

Las asignaturas que salen a mercado, sus créditos, sus grupos y el cuatrimestre en que se dan. Las asignaturas que sean prioritarias para el Departamento, se marcan con un asterisco. Estas asignaturas se reparten primero. Por ejemplo:
NombreCréditosNº gruposCuatrimestre
Los grupos de teoría y prácticas se cuentan como asignaturas diferentes.

  2.2 Datos de profesores

Se compone fundamentalmente de los créditos que pueden llegar a dar como máximo y su poder de decisión. En el caso de que el profesor acarree un superávit o déficit de créditos del curso anterior frente a la media, también se hacen constar como créditos iniciales. Por ejemplo:
NombreCréditosPoder de decisiónCréditos iniciales
Los créditos son los que realmente pueden llegar a dar, es decir, su dedicación menos lo que se quita por cargos, etc. Las asignaturas que conserva si el algoritmo es proteccionista, o créditos que ya está dando en otros lugares se computan como créditos iniciales. También se computan como créditos iniciales los créditos concedidos por dirección de proyectos de fin de carrera (medio crédito por proyecto leído hasta un máximo de seis).

En cuanto al poder de decisión, la única condición es que no puede haber dos iguales, para evitar empates y tener que recurrir al azar.

Con los datos del ejemplo, podemos calcular cuál es el porcentaje de ocupación medio necesario para dar las asignaturas (αQM). Se calcula como la suma de créditos que hay que dar dividido por la suma de los créditos que los profesores pueden dar (sus créditos menos sus créditos iniciales). Si el algoritmo funciona, los porcentajes de ocupación particulares una vez repartidas las asignaturas no deberían diferir mucho de este. En el caso del ejemplo, el porcentaje es: αQM=%.

  2.3 Preferencias de los profesores

La clave del algoritmo es que los profesores pueden expresar sus preferencias para dar pero también para no dar cada asignatura. Estas preferencias las expresan como un porcentaje de su poder de decisión. Cada vez que un profesor varía sus preferencias en función de lo que le vaya tocando, el algoritmo se ejecuta con la esperanza de converger a una solución. En nuestro caso, por ejemplo, las preferencias podrían ser:
Estas preferencias se calculan en el ejemplo al azar cada vez que recargáis la página.

En la última columna aparece una medida de la popularidad de las asignaturas, que luego se usa en una parte mínimamente importante del algoritmo. Se calcula como una votación entre los profesores ponderada por la cantidad de créditos que pueden llegar a dar.

3. Salida del algoritmo

La salida del algoritmo es un listado de profesores con los grupos de asignaturas que le han sido asignados y su porcentaje de ocupación αQ, que es igual al los céditos que el profesor da frente a los créditos que podría dar. Del mismo modo, se indica para cada profesor y asignatura asignada, qué porcentaje de puntos se gastó en la subasta frente a los que en principio se ofrecieron. En el ejemplo con el que se está trabajando, nos queda:
Comenzarían ahora una serie de iteraciones donde las personas moverían sus preferencias si no están conformes con la docencia que les toca.

4. Descripción del algoritmo

El algoritmo comienza transformando los porcentajes de preferencias en puntos del poder de decisión que cada profesor da a cada asignatura.

El algoritmo consta de dos fases.

  4.1 Primera fase

En la primera fase, los profesores van pujando por las asignaturas que, de cogerlas, no harían que su ocupación superara la ocupación media αQM. Primero pujan por las más prioritarias.

  4.2 Segunda fase

En la segunda fase, solamente pujan en cada ronda aquellos que tengan menor ocupación.

  4.3 Notas

Cuando un profesor tiene que elegir entre varias asignaturas por las que opta por igual, se atiende por prioridad según los criterios siguientes:
  1. La que más créditos tenga (para intentar dejar las pequeñas para el final y que las ocupaciones se acerquen a la ocupación media todo lo posible)
  2. La menos popular
  3. La de mayor cuatrimestre (pues serán las más difíciles de dar, al estar en cursos superiores)
  4. La primera de la lista
Si el caso es el de varios profesores que tienen igual derecho y hay que optar por uno, se hace también por prioridad, según:
  1. Quien tenga más puntos
  2. Quien poseyera más puntos iniciales. La condición de que no puede haber varios con los mismos puntos iniciales deshace siempre el empate
Al final de cada ronda, sea la fase 1 o la fase 2, tenemos un ganador de la subasta y una asignatura elegida. Hay que hacer los pagos correspondientes. Se usan las reglas siguientes: Cuando no quedan grupos de una asignatura porque ya se han repartido todos, los puntos que cada profesor aún tiene para optar a esa asignatura se reparten proporcionalmente a sus preferencias entre las que aún tienen grupos por dar. Este reparto se hace en centésimas de punto usando la ley D'Hondt para que no se desperdicie ningún resto.

  4.4 Estadísticas

Una vez concluido el reparto, se procede a calcular algunas estadísticas:

5. Mejoras

Pongo alguno de los defectos observados y modo de paliarlos, si es que se encuentra:
© 2010 Guillermo González Talaván