Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

114
Estudio de Modelos de Apoyo al Proceso de Asignaci´ on de Cupos Escolares en el Sistema de Educaci´ on P´ ublica del Distrito. Trabajo de Tesis presentado al Departamento de Ingenier´ ıa Industrial por Pablo Andr´ es Maya Duque Asesor: Dr. Fernando Palacios G´ omez Para optar al t´ ıtulo de Master en Ingenieria Industrial Ingenier´ ıa Industrial Universidad de Los Andes Enero 2006

Transcript of Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Page 1: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Estudio de Modelos de Apoyo al Proceso de

Asignacion de Cupos Escolares en el Sistema de

Educacion Publica del Distrito.

Trabajo de Tesispresentado al

Departamento de Ingenierıa Industrial

por

Pablo Andres Maya Duque

Asesor: Dr. Fernando Palacios Gomez

Para optar al tıtulo deMaster en Ingenieria Industrial

Ingenierıa IndustrialUniversidad de Los Andes

Enero 2006

Page 2: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Estudio de Modelos de Apoyo al Proceso de

Asignacion de Cupos Escolares en el Sistema de

Educacion Publica del Distrito.

Aprobado por:

Dr. Fernando Palacios Gomez, Asesor

Fecha de Aprobacion

Page 3: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Dedico este trabajo a mi familia por su constate apoyo; a mis companeros,

verdaderos amigos, por haber sido mi soporte, aliento y companıa en esta nueva

etapa y a mis profesores por brindarme su orientacion.

iii

Page 4: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Tabla de Contenido

Dedicatoria III

Lista de Tablas VII

Lista de Figuras VIII

Resumen IX

I. Introduccion 1

II. Descripcion de la Situacion Problematica 4

2.1. Descripcion del Proceso de Asignacion . . . . . . . . . . . . . . . . . 4

2.2. Identificacion de la Situacion Problematica . . . . . . . . . . . . . . 7

2.3. Planteamiento del Problema . . . . . . . . . . . . . . . . . . . . . . 10

2.3.1. Requerimientos de Informacion . . . . . . . . . . . . . . . . . 10

2.3.2. Formulacion del Problema . . . . . . . . . . . . . . . . . . . 11

III. Estrategia de Solucion: Algoritmo de Subasta 14

3.1. Descripcion del Algoritmo de Subastas . . . . . . . . . . . . . . . . . 14

3.1.1. El Algoritmo de Subastas Raso . . . . . . . . . . . . . . . . . 16

3.1.2. El algoritmo de Subasta, ε -condiciones de Holgura Comple-mentaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.2. El Algoritmo de Subasta para el Problema de Estudio . . . . . . . . 19

3.3. Implementacion del Algoritmo . . . . . . . . . . . . . . . . . . . . . 21

IV. Estrategia de Solucion: Generacion de Columnas 25

4.1. Descomposicion de Dantzing-Wolfe . . . . . . . . . . . . . . . . . . . 25

4.2. Algoritmo de Generacion de Columnas . . . . . . . . . . . . . . . . . 27

iv

Page 5: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

4.2.1. Definicion del Problema Maestro Restringido Inicial . . . . . 29

4.2.2. Definicion del Problema Auxiliar (Pricing Problem) . . . . . 29

4.3. Consideraciones Respecto a la Implementacion del Algoritmo . . . . 31

4.3.1. Adicion y Borrado de Columnas . . . . . . . . . . . . . . . . 32

4.3.2. Convergencia del Algoritmo . . . . . . . . . . . . . . . . . . . 33

4.3.3. Estrategias de Estabilizacion . . . . . . . . . . . . . . . . . . 34

4.3.4. Uso de Cotas para la Terminacion Anticipada del Algoritmo 40

4.4. Solucion del Problema Entero (no relajado) P2. . . . . . . . . . . . 42

V. Consideracion de extra restricciones 43

5.1. Extra-Restricciones en el Algoritmo de Subasta . . . . . . . . . . . . 43

5.2. Extra-Restricciones en el Algoritmo de Generacion de Columnas . . 45

5.2.1. Algoritmo de Branch-and-Price . . . . . . . . . . . . . . . . . 45

5.2.2. Consideracion de Extra Restricciones . . . . . . . . . . . . . 51

VI. Consideraciones para la Aplicacion de las Estrategias de Solucional Problema de Asignacion de Estudiantes. 53

6.1. Definicion de la Funcion de Beneficios . . . . . . . . . . . . . . . . . 53

6.2. Proceso de Asignacion de Cupos . . . . . . . . . . . . . . . . . . . . 59

6.2.1. Alternativa de Aplicacion 1 . . . . . . . . . . . . . . . . . . . 60

6.2.2. Alternativa de Aplicacion 2 . . . . . . . . . . . . . . . . . . . 62

VII.Conclusiones 65

7.1. Conclusiones Respecto a la Contextualizacion del Proceso de Asig-nacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

7.2. Conclusiones Respecto a las Estrategias de Solucion . . . . . . . . . 66

7.3. Conclusiones Respecto a la Aplicabilidad en el Proceso de Asignacion 68

Apendice A. — Implementacion del Algoritmo de Subasta 70

v

Page 6: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Apendice B. — Implementacion del Algoritmo de Generacion deColumnas 79

Apendice C. — Demostraciones 98

Referencias 103

vi

Page 7: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Lista de Tablas

1. Composicion de la matrıcula (Abril de 2005) . . . . . . . . . . . . . . 8

2. Inscripcion, asignacion y matrıcula de alumnos nuevos . . . . . . . . 9

3. Resultados Corridas Instancia 1000 Estudiantes 10 Colegios . . . . . 22

4. Ejemplo del calculo de las distancias . . . . . . . . . . . . . . . . . . 55

5. Ejemplo del calculo de las distancias afectadas poor la prioridad . . . 56

6. Resultados de Ejecucion de Instancias de Prueba . . . . . . . . . . . 58

vii

Page 8: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Lista de Figuras

1. Elementos Importantes del Proceso de Asignacion de Cupos Escolares 6

2. Estrategias de Asignacion de Cupos . . . . . . . . . . . . . . . . . . . 8

3. Demanda de alumnos nuevos por grado . . . . . . . . . . . . . . . . . 9

4. Algoritmo de Subasta para problemas de Asignacion . . . . . . . . . 18

5. Valor de Epsilon y Numero de Iteraciones por Ronda . . . . . . . . . 23

6. Valor de la Funcion Objetivo en cada Ronda (subasta) . . . . . . . . 24

7. Generacion de Columnas. Resultados de ejecucion . . . . . . . . . . . 34

8. Generacion de Columnas. Comparacion de Formulaciones . . . . . . . 36

9. Generacion de Columnas. Estabilizacion del algoritmo . . . . . . . . . 39

10. Generacion de Columnas. Estabilizacion del algoritmo y restriccionesde desigualdad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

11. Algoritmo Branch and Price . . . . . . . . . . . . . . . . . . . . . . . 48

12. Alternativa de Aplicacion 1 . . . . . . . . . . . . . . . . . . . . . . . 61

13. Alternativa de Aplicacion 2 . . . . . . . . . . . . . . . . . . . . . . . 63

viii

Page 9: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Resumen

Este trabajo presenta la descripcion del proceso de asignacion de cupos escolares

en los colegios publicos del distrito, identificando en dicho proceso la problematica

asociada a la asignacion de cupos a nuevos estudiantes que ingresan al sistema edu-

cativo. El problema de asignar cupos a los estudiantes, en un entorno en el que la

oferta educativa aun no es suficiente para cubrir toda la demanda, incrementa su

complejidad ante la existencia de factores de priorizacion en la asignacion ası como

el gran numero de estudiantes que se encuentran involucrados en este proceso para

cada grado, lo cual convierte este en un problema de optimizacion de gran escala

cuya solucion no es posible a traves de la sola implementacion en algun paquete de

optimizacion. En el desarrollo de este trabajo, se plantean modelos que permitirıan

enfrentar este problema de asignacion desde la perspectiva de la programacion ma-

tematica, contrario a la forma como actualmente se da solucion a este problema,

la cual es similar a las heurısticas greedy usadas en problemas de Binpacking o de

Asignacion, que no siempre proveen soluciones cercanas al optimo. Los modelos pre-

sentados son, principalmente, el Algoritmo de Subastas y el algoritmo de Generacion

de Columnas o en su forma mas general el algoritmo Branch-and-Price.

ix

Page 10: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Para los modelos considerados, se describe la forma como podrıan usarse para abor-

dar el problema de asignacion de cupos, identificando ası mismo las limitaciones y

algunas alternativas para superarlas. La implementacion de los algoritmos permite

observar como podrıan desempenarse las alternativas presentadas, en la solucion de

instancias reales del problema de asignacion de estudiantes nuevos a los colegios

distritales. Se plantea ademas, la forma como estos modelos pueden ser modificados

o ampliados para considerar posibles restricciones adicionales al problema de asig-

nacion lo que permitirıa modelar de mejor forma el problema real.

El desarrollo de este trabajo permitio observar en la practica, consideraciones que

comunmente se senalan en la literatura en relacion con los algoritmos estudiados.

Es ası como fue posible interactuar y visualizar conceptos como ε − scaling en el

algoritmo de Subastas o los problemas de convergencia en el algoritmo de Genera-

cion de Columnas. Fue posible ademas identificar, en el proceso que actualmente se

desarrolla para asignar los cupos escolares en el distrito, una oportunidad de mejo-

ra, la cual solo podra ser realmente evaluada disponiendo de la informacion que el

Distrito recopila durante el desarrollo de dicho proceso.

x

Page 11: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Capıtulo I

Introduccion

La Educacion es considerada un servicio publico con una clara funcion social, siendo

por esto consagrado como un derecho fundamental, por el cual deben velar el Es-

tado, la Sociedad y la familia. El reconocimiento de la funcion social desempenada

por la educacion como elemento basico en el esfuerzo de sobrepasar las desigualda-

des sociales, otorga gran importancia a la manera como se permite acceder a este

servicio de manera equitativa a los distintos grupos de la poblacion, en particular

aquellos mas vulnerables. La cobertura alcanzada por la oferta de cupos escolares

en instituciones publicas se ha incrementado, considerando el ideal de una cobertu-

ra total, sin embargo la disponibilidad de cupos no es suficiente para satisfacer la

demanda existente, la cual se ve aumentada por fenomenos como la violencia y el

desplazamiento entre otros. En este contexto toma importancia la manera como se

definen y trazan los procedimientos, criterios y lineamientos que determinan el pro-

ceso de asignacion de cupos escolares, en particular para las instituciones publicas, en

las cuales estos procesos deben estar regidos por criterios de justicia y equidad social.

Con el objeto de garantizar el cumplimiento del plan de Desarrollo 2002-2006, en

particular en materia educativa, el Ministerio de Educacion Nacional reconoce la

necesidad de establecer procesos claros y estandarizados para la asignacion de cupos

escolares y matrıcula de los estudiantes, que permitan optimizar el acceso al servicio

educativo en condiciones de eficiencia y equidad.

1

Page 12: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

La Resolucion 1515 de julio 3 de 2003 establece las directrices, criterios, procedi-

mientos y cronograma para la organizacion del proceso de asignacion de cupos y

matrıcula para los niveles de Preescolar, Basica y Media de las instituciones de edu-

cacion formal de caracter oficial en las entidades territoriales.1

En cumplimiento, entre otras disposiciones, del Plan de Desarrollo Economico, social

y de Obras Publicas para Bogota 2004-2008 “Bogota sin Indiferencia”, corres-

ponde a la Secretaria de Educacion Distrital la organizacion del servicio publico

educativo, en particular aquel que es prestado a traves del sistema oficial de educa-

cion formal.2 Bajo esta consideracion, el Distrito Capital mediante la Resolucion

4040 del 28 de Septiembre de 2004, establece las polıticas, directrices, criterios, pro-

cedimientos y el cronograma para el proceso de atencion de la demanda educativa

para el ano 2005.

El proceso de atencion de la demanda educativa establecido tiene entre otros ob-

jetivos: “Implantar la Renovacion Automatica y el Registro Unico de Matrıcula.

Garantizar el acceso al servicio educativo oficial de la poblacion en edad escolar y

adultos que se encuentran fuera del sistema educativo. Priorizar la asignacion de

cupos escolares hacia los grupos poblacionales vulnerables y los grados de mayor

demanda. Mantener la transparencia en la asignacion de cupos escolares. ”Median-

te la misma resolucion la Secretaria de Educacion Distrital define los criterios y

prioridades considerados para las asignacion de cupos escolares disponibles en las

Instituciones y Centros Educativos Distritales, con el objeto de atender la demanda

educativa, garantizando que la asignacion de cupos escolares se realizara atendiendo

a principios de transparencia, equidad y objetividad y priorizando las poblaciones

pertenecientes a los niveles 1 y 2 del SISBEN y de l estrato socioeconomico 1 y 2.

Este trabajo corresponde a una mirada crıtica del proceso de asignacion de cupos

escolares que se desarrolla en el distrito, pretendiendo identificar aspectos en los

1Resolucion 1515 de julio 3 de 2003 del Ministerio de Educacion.2Resolucion 4040 del 28 de Septiembre de 2004

2

Page 13: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

cuales el uso de modelos matematicos, particularmente del area de investigacion

de operaciones, podrıan contribuir a su desarrollo. Sin bien no se trata de estudio

mancomunado con la Secretaria de Educacion, puesto que no fue posible obtener

la informacion real de la que disponen en el sistema de informacion, los resultados

obtenidos en su desarrollo pueden contribuir y ser de utilidad para resaltar aspecto

claves dentro del proceso de asignacion de cupos.

Este documento esta organizado de la siguiente manera. El Capıtulo 2 Describe el

proceso de asignacion de cupos en el distrito e identifica la situacion problematica

y el problema de estudio. El Capıtulo 3 presenta una aplicacion particular de algo-

ritmo de subastas (disenado por el profesor Dimitri Bertsekas) para la solucion del

problema basico de asignacion presente en el proceso de asignacion de cupos escola-

res. El Capıtulo 4 aborda el mismo problema de asignacion mediante una estrategia

de solucion basada en el algoritmo de generacion de columnas, explorando las limita-

ciones y dificultades en su solucion ası como planteando posibles soluciones a estas.

El Capıtulo 5 presenta la forma como podrıan usarse las estrategias de solucion

del problema de asignacion basico planteado, descritas en los dos capıtulos anterio-

res, para hacer frente a restricciones adicionales que permitan aproximar mejor el

problema real. Una vez descritas las estrategias de solucion y la forma de abordar

problemas mas complejos, pero mas ajustados a la realidad, el Capıtulo 6 plantea la

metodologıa que podrıa seguirse para emplear las estrategias propuestas dentro del

proceso de asignacion de cupos escolares del distrito. Finalmente el Capıtulo 7 pre-

senta las conclusiones mas relevantes del trabajo desarrollado, planteando ademas

recomendaciones y consideraciones para futuros trabajos relacionados.

3

Page 14: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Capıtulo II

Descripcion de la Situacion Problematica

2.1. Descripcion del Proceso de Asignacion

La Secretaria de Educacion define claramente el proceso de matrıculas para los

establecimientos educativos distritales. Con base en la definicion de este proceso, el

conjunto de estudiantes cubiertos por el sector oficial es caracterizado de la siguiente

forma1 :

A. Estudiantes Antiguos: Estudiantes que se hayan matriculado para el ano

2004 en las IED, CED, los colegios distritales en consecion y los colegios pri-

vados en convenio.

B. Estudiantes Nuevos: Se consideran estudiantes nuevos aquellos que deseen

acceder al servicio, que no se encuentran registrados como matriculados en la

base de datos del sistema de la SED. Dentro de este conjunto de estudiantes

podrıan distinguirse

i.) Estudiantes Nuevos transicion y primero: Conjunto de estudian-

tes que aspiran a ingresar al sistema educativo publico del distrito en el

grado cero (0◦ o Transicion) y primer grado (1◦). El distrito garantizara el

cupo escolar para los estudiantes de este grupo. Se consideran como es-

tudiantes nuevos, los ninos y ninas que han estado vinculados al DABS

y el ICBF durante el ano lectivo anterior y que desean ingresar al grado

de transicion en el sector oficial.

1Basado en la Resolucion 4040 y 5578 de 2004

4

Page 15: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

iii.) Estudiantes Inscritos Contra Oferta Educativa : Estudiantes in-

teresados en ingresar al sistema educativo oficial para cualquiera de los

grados o niveles ofrecidos. Esta poblacion se denomina inscritos contra

oferta educativa disponible.

Dentro de cada uno de estos conjuntos de estudiantes es importante distin-

guir aquellos pertenecientes a Grupos Vulnerables (desvinculados del conflicto

armado, desplazados, hijos de desmovilizados, hijos de vıctimas del secuestro

y desaparicion forzada entre otros.) a los cuales se otorgara prioridad en la

asignacion de cupos.

Las etapas para desarrollar la asignacion de cupos estan definidas para cada uno

de estos grupos de estudiantes. Para los estudiantes antiguos el proceso esta regido

principalmente por la estrategia de continuidad mediante la Renovacion Automati-

ca. Sin embargo, para los estudiantes que son transferidos del DABS y del ICBF

es necesario emplear un modelo que permita asignarlos de la mejor forma posible.

Para Los estudiantes Nuevos la situacion es similar, deben asignarse de acuerdo

con las capacidades disponibles para atender la demanda y bajo la consideracion

de criterios de priorizacion y demas restricciones definidas. La Figura 1 presenta de

manera esquematica los elementos mas importantes del proceso de asignacion de

cupos escolares.

El proceso de asignacion fluye de la manera indicada por la flecha inferior en la

grafica. Para una gran parte del conjunto de estudiantes antiguos la asignacion de

cupos se hace automaticamente mediante la estrategia de Renovacion Automatica y

los procedimientos definidos para el traslado de estudiantes ya vinculados al sistema

de educacion publico. Por otra parte, la asignacion de los estudiantes provenientes

del DABS y el ICBF ası como los estudiantes Nuevos, son instancias particulares

del problema de asignacion que se desea abordar y estudiar, para las cuales debe

desarrollarse dicho proceso bajo la consideracion de limitaciones de capacidad y res-

tricciones adicionales.

5

Page 16: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Figura 1: Elementos Importantes del Proceso de Asignacion de Cupos Escolares

El proceso de asignacion para el conjunto de estudiantes que no es posible abarcar

mediante Renovacion Automatica, define las estrategias y lineamientos a seguir para

su desarrollo. De manera general el proceso se desarrolla de acuerdo con el siguiente

lineamiento:

“La SED asignara los cupos escolares preferiblemente en las opciones seleccionadas

por el padre, madre o acudiente. De no existir cupo en las opciones solicitadas, se

asignara en las instituciones cercanas a su lugar de residencia (de acuerdo con la

direccion suministrada en el formulario). Si una vez surtido este proceso, no es posi-

ble asignar un cupo, la SED recurrira a otras estrategias de cobertura”(Resolucion

4040 de 2004)

La Asignacion de cupos se lleva a cabo en concordancia con el orden estipulado, de

acuerdo cronograma del proceso de matrıculas se asignan primero los estudiantes

del DABS y el ICBF, luego los estudiantes vulnerables y de Transicion y 1◦ y por

ultimo los estudiantes inscritos contra la oferta educativa.

6

Page 17: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

En cada una de estas etapas se desarrollan las estrategias definidas para la asigna-

cion de cupos a los estudiantes, las cuales se presentan en la parte derecha de la

Figura 2. En primer lugar, se desarrolla la asignacion por Opciones, la cual asig-

na a los estudiantes con respecto a las opciones presentadas en el Formulario y

considerando para ello las prioridades en la asignacion2 ; para ello ordena los es-

tudiantes con respecto a su prioridad para en este orden desarrollar el proceso de

asignacion. Postriormente, aquellos estudiantes que no fueron asignados en alguna

de las opciones seleccionadas en el formulario, son asignados por georeferenciacion,

es decir nuevamente se recorre en orden de acuerdo a las prioridades, el conjunto de

estudiantes asignando cada uno de ellos tan cerca como sea posible a su residencia.

Por ultimo, la asignacion por Bloques, pretende generar estrategias de asignacion

para aquellos estudiantes a los que no fue posible asignarles un cupo mediante las

dos estrategias anteriores, haciendo uso para ello de las distintas herramientas para

ampliar la cobertura que disene la secretaria.

La Figura 2 presenta la secuencia en la cual se desarrollan las estrategias de asig-

nacion, ası como el orden en el cual se cubren los conjuntos de estudiantes que

deben asignarse, presenta tambien el orden y las prioridades que se siguen para la

asignacion de los estudiantes.

2.2. Identificacion de la Situacion Problematica

El proceso de asignacion de matrıcula involucra un gran numero de estudiantes, la

gran mayorıa de estos son estudiantes antiguos, para los cuales la asignacion de cupos

esta determinada por la polıtica de continuidad a traves de la renovacion automatica;

un problema mas complejo esta representado por la asignacion de estudiantes nuevos,

(conjunto que se definio anteriormente), la Tabla 1 presenta la composicion de la

matrıcula que se presentaba en Abril de 2005, en donde puede observarse el numero

2Estas prioridades son el resultado de la evaluacion que hace la Secretaria de Educacion delas diferentes caracterısticas del estudiante; por ejemplo, el estrato socio economico y el tipo depoblacion al cual pertenecen. Como resultado de la evaluacion se asigna al menor un cierto nivelde prioridad para su asignacion.

7

Page 18: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Figura 2: Estrategias de Asignacion de Cupos

de estudiantes en cada uno de los dos grupos (Antiguos y Nuevos).

INSTITUCIONES ANTIGUOS NUEVOS TOTALOFICIALES 623.250 150.402 773.652

81 % 19 % 100%

CONCESION 27.107 8.303 35.41077 % 23 % 100%

SUBSIDIOS 105.629 20.105 125.73484 % 16 % 100%

TOTAL 755.986 178.810 934.796

Tabla 1: Composicion de la matrıcula (Abril de 2005)

Dentro del proceso de asignacion de estudiantes descrito anteriormente, genera in-

teres particular el proceso desarrollado para la asignacion de cupos a los estudiantes

nuevos. De acuerdo con la informacion suministrada por la Secretaria de educa-

cion Distrital el total de estudiantes nuevos inscritos hasta marzo de 2005 ascendıa

223,537 de los cuales cerca de 170,753 se encontraban matriculados (para abril de

2005 este numero era cercano a 178,810). La Tabla 2 presenta la distribucion de estos

estudiantes dentro de las distintas categorıas de estudiantes nuevos; Adicionalmente

la Figura 3 presenta la distribucion de la demanda generada por los alumnos nuevos

8

Page 19: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

CONCEPTO INSCRITOS ASIGNADOS MATRICULADOSDABS-ICBF 35.578 35.578 31.428Vulnerables 55.869 55.869 42.741

Contra oferta 64.069 64.069 38.958Sub Total 155.516 155.516 113.127

No inscritos 68.021 68.021 57.626Total Demanda 223.537 223.537 170.753

Tabla 2: Inscripcion, asignacion y matrıcula de alumnos nuevos

en cada uno de los grados.3

Figura 3: Demanda de alumnos nuevos por grado

Puede observarse como para los primeros grados, particularmente 0◦ y 1◦ esta de-

manda es mayor, haciendo que el problema de asignacion involucrado en este proceso

deba considerar en algunos casos mas de 30,000 estudiantes simultaneamente. Este

hecho genera una complejidad importante dentro del proceso de asignacion y otorga

mayor importancia a su estudio y analisis.

Dentro de este proceso de asignacion de cupos en el distrito, la asignacion como tal

se constituye en una de los aspectos que ameritan ser estudiados; la forma como

3Construidas a partir de l informacion suministrada por la Secretaria de Educacion

9

Page 20: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

actualmente se desarrolla podrıa compararse con los algoritmos “greedy” disenados

para problemas similares. Si bien, permite encontrar una solucion factible al proble-

ma, podrıa perjudicar en el objetivo de encontrar una asignacion que favorezca a un

mayor numero de estudiantes, respecto a la asignacion de colegios mas cercanos y

convenientes a sus necesidades y sus expectativas.

2.3. Planteamiento del Problema

Una vez descrita brevemente la situacion problematica y la manera particular en

la que actualmente se desarrolla el proceso de asignacion, es de interes describir el

problema especıfico dentro de este proceso que sera el objeto de investigacion en el

desarrollo de este proyecto.

Se pretende abarcar el problema de la asignacion de cupos escolares para el conjunto

de estudiantes nuevos (DABS-ICBF, Transicion y 1◦ e inscritos contra la oferta edu-

cativa) para el sistema de educacion oficial del distrito. De manera bastante general,

el problema puede enunciarse de la siguiente forma:

Dado un conjunto de estudiantes que aspiran a un cupo, en determinado grado, en

alguno de los colegios distritales, y dado un conjunto de colegios, con una capacidad

(oferta) determinada (por grado); deben asignarse los estudiantes a los colegios, de

modo que se maximice una funcion del beneficio (en terminos de la distancia y

prioridades, entre otras) para dicha asignacion.

2.3.1. Requerimientos de Informacion

El desarrollo del proceso de asignacion hace uso de la informacion que la Secretaria

de Educacion recopila respecto a los estudiantes y las instituciones que ofrecen cupos

para que estos sean asignados. Alguna de la informacion empleada es:

A. Respecto a los Estudiantes: Para cada estudiante, diferenciando segun

pertenezcan a cada instancia (DABS-ICBF, Transicion y 1◦ o inscritos contra

la oferta educativa) es importante disponer de la siguiente informacion.

10

Page 21: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

i.) Ubicacion del estudiante (georeferenciacion, coordenadas de la direccio-

nan reportada en el formulario)

ii.) Informacion del nivel de SIBEN y estrato socio-economico.

ii.) Opciones de instituciones de preferencia reportadas en el formulario.

iv.) Grado para en el cual el estudiante espera le sea asignado cupo.

v.) Si es del caso, indicador del colegio en el cual estan asignados el o los

hermanos del estudiante.

vi.) Institucion a la cual fue asignado el estudiante al finalizar el proceso

actual de matrıculas

B. Respecto a las Instituciones: Para cada institucion es importante disponer

de la siguiente informacion.

i.) Oferta de cupos escolares por cada grado, despues de los procesos de

renovacion automatica y traslado de estudiantes.

ii.) Ubicacion geografica de las instituciones educativas del distrito que tie-

nen oferta de cupos para el proceso de asignacion. (georeferenciacion,

coordenadas de la direccion reportada en el directorio de instituciones)

2.3.2. Formulacion del Problema

El problema basico de Asignacion que se encuentra involucrado en el proceso de

asignacion de cupos del distrito puede formularse como se presenta en el problema

P1, que en adelante se denominara formulacion estandar

Sea:

I: Conjunto de Estudiantes que deben asignarse. Indexado con i, |I| = n

J : Conjunto de Instituciones. Indexado con j, |J | = m

cij: Beneficio de Asignar el estudiante i a la institucion j

bj: Oferta de cupos (para el grado especıfico) de la institucion j

11

Page 22: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

xij =

1, si el estudiante i es asignado a la institucion j

0, de lo contrario

(P1)

Maximizar∑i∈I

∑j∈J

cijxij∑j∈J

xij = 1 ∀i ∈ I (1)∑i∈I

xij = bj ∀j ∈ J (2)

xij ∈ {0, 1} ∀i ∈ I, ∀j ∈ J (3)

El conjunto de restricciones (1) y (2) garantizan, respectivamente, que cada estu-

diante sera asignado a algun colegio y que el numero de estudiantes asignados a un

colegio particular no sobrepasara la capacidad de cupos de este. Note que se asume

que el problema es balanceado, es decir, que el numero de estudiantes que deben

asignarse es igual al numero de cupos en los colegios; de hecho, en este problema

particular esta condicion no se satisface, Sin embargo puede modificarse ligeramente

el problema para satisfacerla. En los casos en los cuales la demanda de cupos es

mayor que la oferta puede definirse un colegio ficticio con una capacidad de cupos

igual al exceso de demanda y cuyo costo de asignacion para cada estudiante es un

valor negativo −M suficientemente pequeno. Para aquellos casos en los cuales la

oferta es mayor a la demanda pueden generarse un numero de estudiantes ficticios,

igual a la diferencia entre estas dos cantidades, cada uno de ellos con un beneficio

de asignacion a cada colegio suficientemente pequeno −M .

Es importante resaltar algunos aspectos respecto al problema basico presente en el

proceso de asignacion de cupos escolares (P1)

1. La estructura particular de este problema puede asemejarse a algunos proble-

mas tıpicos y bien estudiados.[1] y [3] Este hecho determinara los distintos

12

Page 23: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

algoritmos que se estudien para su solucion. Especıficamente el problema en

(P1) se asemeja a un Problema de Asignacion Generalizada (GAP), en este

caso el costo o consumo de la asignacion de cada estudiante i (item) al cole-

gio j (recurso)es de una unidad. De igual forma, el problema en (P1) puede

ser visto como un caso particular de un problema de transporte en el cual la

demanda de cada uno de los nodos de demanda es unitaria, o como el caso

particular de un problema de asignacion, asumiendo que existen para cada

colegio un numero, igual a su capacidad, de cupos (objetos) iguales.

2. El problema en (P1) es bastante general, en el se asume que cualquier estudian-

te puede ser asignado a cualquier colegio y que las restricciones de asignacion

para todos los colegios son iguales. Sin embargo, podrıa ser necesario conside-

rar restricciones adicionales respecto a los colegios a los cuales un estudiante

dado puede ser asignado, por ejemplo la asignacion considerando el genero del

estudiante y el tipo de genero que atiende cada institucion. De igual forma,

podrıa ser necesario considerar restricciones adicionales para las asignaciones

factibles de cada colegio; por ejemplo, en terminos de balancear el genero o es-

trato socio economico de los ninos asignados en cada colegio. Incluso, podrıan

existir restricciones particulares para distintos conjuntos de instituciones.

3. El valor cij que representa el beneficio de asignar el estudiante i a la institucion

j, es en realidad el resultado de una funcion que involucra aspectos como la

prioridad de asignacion (este valor se considerarıa de acuerdo a como se estima

por la Secretaria de Educacion, en funcion del estrato socio economico, el

SISBEN y el tipo de poblacion al cual pertenece el estudiante), las preferencias

expresadas por los padres y la ubicacion (distancia) del estudiante respecto a

la institucion.

Estos aspectos, entre otros, se desarrollan en los siguientes capıtulos, en los cuales

se pretende abordar el problema desde su forma mas simple e ir adicionando los

elementos que permiten aproximarse mas al problema real.

13

Page 24: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Capıtulo III

Estrategia de Solucion: Algoritmo de Subasta

Este capıtulo describe la generalizacion del algoritmo de subasta (Auction algo-

rithm) para problemas de asignacion, de modo que permita la solucion del problema

particular en (P1). El algoritmo de Subastas fue creado por el profesor Dimitri Bert-

sekas [4] y su generalizacion para problemas de transporte fue una modificacion del

algoritmo original realizada por el profesor Bertsekas y el profesor Castanon [6]. Es

un algoritmo sencillo de comprender y puede ser explicado en terminos de conceptos

de competencia economica.[5]

3.1. Descripcion del Algoritmo de Subastas

En el problema clasico de asignacion hay n personas (estudiantes) y n objetos (cu-

pos) que deben serles asignados. la asignacion del cupo j al estudiante i genera un

beneficio cij, se pretende asignar los cupos a los estudiantes de modo que se maxi-

mice el beneficio total obtenido.

Sea S una asignacion, es decir el conjunto de pares estudiante-cupo (i, j), de modo

que cada estudiante i y cada cupo j esta presente en maximo un par en S. si el

numero de pares en S es n entonces se dice que S es factible, en caso contrario se

dice que no es factible. Se pretende entonces encontrar una asignacion S factible, la

cual sea optima, es decir que maximice∑n

i=1 ciji∀(i, j) ∈ S

Definiendo este como el problema de asignacion primal, puede observarse la equiva-

lencia con un problema de flujo en redes de Programacion Lineal.

14

Page 25: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Maximizar∑i∈I

∑j∈J

cijxij∑j∈J

xij = 1 ∀i ∈ I (4)∑i∈I

xij = 1 ∀j ∈ J (5)

xij ∈ {0, 1} ∀i ∈ I, ∀j ∈ J (6)

Para comprender intuitivamente el algoritmo es importante destacar un problema de

equilibrio economico equivalente al problema de asignacion. Considere la asignacion

de n objetos a n personas a traves de un mecanismo de mercado, donde cada per-

sona corresponde a un agente economico que busca su maximo beneficio personal.

Suponiendo que cada objeto j tiene un precio pj y que la persona a la cual le sea

asignado el objeto pagarıa este precio por el, el valor del objeto j para la persona i

es cij − pj y cada persona i pretendera que le sea asignado el objeto ji con maximo

valor, es decir:

cij − pj = maxj∈J

{cij − pj} ∀(i, j) ∈ S (7)

El sistema estarıa entonces en equilibrio, debido a que ninguna persona deberıa te-

ner algun incentivo para actuar unilateralmente, para buscar otro objeto diferente

al que le ha sido asignado.[5]

Si bien la interpretacion economıa del algoritmo da cierta comprension intuitiva,

una relacion fundamental existe entre el equilibrio economico senalado y el pro-

grama lineal correspondiente: una asignacion S que genera dicho equilibrio, ofrece

el maximo beneficio total, resolviendo el problema de asignacion, mientras que el

correspondiente conjunto de precios pj resuelve el problema dual asociado. Es decir,

una asignacion factible S y un vector de precios pj son primal y dual optimos si-

multaneamente si y solo si cada persona logra su maximo beneficio (utilidad) siendo

asignada al objeto que le ofrece mayor valor, puede mostrarse que este hecho corres-

ponde a las condiciones de holgura complementaria. En [5] y [6] se demuestra esta

15

Page 26: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

relacion.

3.1.1. El Algoritmo de Subastas Raso

Corresponde a un primer algoritmo para encontrar una asignacion S que genere el

equilibrio y el vector de precios asociado. El algoritmo se desarrolla en iteraciones

y genera una secuencia de vectores de precios y asignaciones. Al comenzar cada

iteracion las condiciones de holgura complementaria (7) son satisfechas por todos

los pares (i, j) ∈ S; si todas las personas han sido asignadas el algoritmo termina,

en caso contrario una de las personas que no ha sido asignada es seleccionada y se

desarrolla una nueva iteracion. Cada una de las iteraciones esta compuesta de dos

fases:

1. Fase de Oferta Para una persona i en el conjunto de personas no asignadas,

se determina el objeto que genera el mayor valor j∗i

j∗i ∈ arg maxj∈J

{cij − pj} = vij∗i(8)

Se calcula ademas la oferta de la persona i por el objeto j∗i , dada por,

bij∗i= pj∗i

+ vij∗i− wi (9)

En donde wi es el mejor valor (cij − pj) para cualquier otro objeto diferente

de j∗i

2. Fase de Asignacion Se asigna el objeto j∗i a la persona i, dado el caso en

el cual este objeto ya estaba asignado a otra persona, entonces esta entra a

formar parte del conjunto de personas no asignadas. Por ultimo se incrementa

el precio del objeto de modo que este se haga igual a la oferta hecha por i, es

decir, el nuevo precio del objeto sera, bij∗i

El algoritmo continua hasta que el conjunto de personas a las cuales no se ha asig-

nado algun objeto esta vacio. Es importante notar que dado que para todos los

casos vij∗i− wi ≥ 0, el precio de los objetos tiende a crecer. La version del algorit-

mo descrita corresponde a la denominada Gauss-Seidel, en la cual una sola persona

16

Page 27: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

ofrece por un objeto en cada iteracion, una version alternativa, denominada Jacobi

corresponde al caso en el cual en cada iteracion cada persona no asignada, ofrece

por un objeto, esta version podrıa ser mas apropiada en el caso en el cual se trabaje

en procesadores en paralelo.[6]

3.1.2. El algoritmo de Subasta, ε -condiciones de Holgura Complemen-taria

El algoritmo descrito tiene una dificultad importante, podrıa generarse un ciclo in-

finito, lo cual no garantiza la terminacion del algoritmo; esta situacion se presenta

cuando mas de un objeto ofrece la maxima valoracion, lo cual genera que el precio de

los objetos no cambie y el algoritmo se atasque.[15] Para salir de el ciclo generado,

se introduce un mecanismo de perturbacion1

Sea ε un valor escalar fijo positivo, se dice que una asignacion S y un vector de precios

p satisface las ε-condiciones de holgura complementaria (ε− CS), si se satisface:

cij − pj ≥ maxj∈J

{cij − pj} − ε ∀(i, j) ∈ S (10)

Es decir, se satisfacen (ε−CS), si todas las personas pueden ser asignadas a objetos

que estan a una cantidad ε de ser las mas valoradas.

Puede entonces reformularse el algoritmo modificando unicamente la fase de oferta,

de modo que esta siempre incremente el precio de los objetos, para ello, la oferta de

la persona i por el objeto j∗i que genera mayor valoracion sera:

bij∗i= pj∗i

+ vij∗i− wi + ε (11)

Dos aspectos adicionales son de interes para definir completamente el algoritmo:2

1. El algoritmo, reformulado segun se senalo anteriormente, termina en un nume-

ro finito de iteraciones, generando como resultado una asignacion S factible y

1Motivado en las Subastas reales, en las cuales cada oferta por un objeto debe incrementar elprecio actual del objeto [5]

2En [4] y [5] se presentan las demostraciones de estos dos aspectos

17

Page 28: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

un vector de precios p que satisfacen ε − CS. Adicionalmente, el tiempo de

ejecucion del algoritmo es O(n2 maxi,j |cij|/ε)

2. Para un problema de asignacion con beneficios cij enteros, si ε < 1n, el algoritmo

de subastas termina en un numero finito de iteraciones con una asignacion

optima S.

bajo estas consideraciones, el algoritmo de subasta para el problema de asignacion

opera bajo la consideracion de un concepto denominado ε− scaling, el cual consiste

en aplicar el algoritmo en repetidas ocasiones, comenzando con un valor de ε sufi-

cientemente grande y reducir iterativamente este valor hasta que se logre el valor

crıtico que garantice la optimalidad de la solucion encontrada. La Figura 4 presenta

la forma como se desarrolla el algoritmo.

Figura 4: Algoritmo de Subasta para problemas de Asignacion

18

Page 29: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

3.2. El Algoritmo de Subasta para el Problema de Estudio

El algoritmo de Subastas que se describio funciona apropiadamente para problemas

de asignacion, sin embargo, debe notarse que el problema basico descrito en el ca-

pitulo anterior (P1), no corresponde exactamente a un problema de asignacion.

El problema que se pretende estudiar puede asimilarse a un problema de asigna-

cion en el cual para cada uno de los colegios puede definirse un numero igual a su

capacidad de cupos (objetos) identicos, es decir, dado un colegio con capacidad bj

existiran bj cupos que generan el mismo beneficio de asignacion cij para el estu-

diante i. Podrıa entonces aplicarse el mismo algoritmo descrito anteriormente a este

problema, sin embargo, la dimension del problema crecerıa considerablemente y la

estructura del problema modificado seria tal que la guerra de precios seria inevita-

ble, generando atascamientos en el algoritmo.[5] Dadas estas circunstancias, toma

importancia la modificacion realizada por los profesores Bertsekas y Castanon al al-

goritmo original, de modo que permita considerar la existencia de objetos similares.3

El algoritmo de Subasta para problemas de asignacion con objetos similares, tiene

en cuenta las siguientes consideraciones.

1. Se entiende que dos objetos j y j′ son similares, pertenecen a la misma clase

M(j), si para todas las personas i ∈ I se tiene que aij = aij′

2. Dado un vector de precios p se define el precio de la clase M(j) de un objeto

j como pj = mınk∈M(j){pk}

Puede ahora describirse el algoritmo empleado para la solucion del problema de asig-

nacion de estudiantes a los colegios, problema basico (P1), descrito anteriormente,

considerando para ello n estudiantes y n cupos en donde los n cupos son el resultado

de definir para cada colegio una clase de objetos similares con tantos elementos como

cupos disponga el colegio.

3Esta modificacion del algoritmo, junto con las consideraciones para permitir personas similares,son la base del algoritmo de subasta para problemas de transporte presentado en [6]

19

Page 30: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Algoritmo de Asignacion de Estudiantes

Para la mejor comprension del algoritmo es necesario definir los siguientes conceptos:

Iteracion. Corresponde a el procedimiento en el cual para un estudiante al que

no le ha sido asignado cupo se realizan las dos fases basicas del algoritmo:

Oferta y Asignacion.

Subasta. Tambien podrıa denominarse Ronda, corresponde al conjunto de ite-

raciones necesarias hasta lograr un asignacion que satisfaga las ε − CS para

un valor de epsilon dado. Una subasta recoge todas las iteraciones, ofertas y

asignaciones, hasta que se ha logrado la asignacion optima para el valor de

epsilon dado.

El algoritmo se desarrolla entonces mediante rondas, de modo que cada ronda tiene

un valor de epsilon menor que la ronda inmediatamente anterior y en cada ronda se

recogen cuantas iteraciones, ofertas y asignaciones, sean necesarias hasta satisfacer

las condiciones ε − CS. El algoritmo termina cuando de epsilon alcanza el valor

que permite determinar la optimalidad de la asignacion encontrada. El algoritmo

desarrolla los siguientes pasos:

1. Inicializar. Inicialice ε en un valor suficientemente grande. considere una asig-

nacion inicial S y un vector de precios p que satisfagan las condiciones ε−CS.

El conjunto S = ∅ y el vector de precios p = 0 satisfacen estas condiciones.

2. Subasta. Encuentre la asignacion optima que maximiza el beneficio y satisface

las condiciones ε− CS, para ello desarrolle iterativamente, hasta que a todos

los estudiantes les haya sido asignado un cupo

i.) Fase de Oferta . Para una persona i en el conjunto de personas no

asignadas, se determina el objeto que genera el mayor valor j∗i

j∗i ∈ arg maxj∈J

{cij − pj} = vij∗i(12)

Se calcula ademas la oferta de la persona i por el objeto j∗i , dada por,

bij∗i= pj∗i

+ vij∗i− wi + ε (13)

20

Page 31: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

En donde wi es el mejor valor (cij−pj) para cualquier otro objeto pertene-

ciente a una clase diferente de la de j∗i , es decir wi = maxj /∈M(j∗i ) {cij − pj}

ii.) Fase de Asignacion . Se asigna el objeto j∗i a la persona i, dado el caso

en el cual este objeto ya estaba asignado a otra persona, entonces esta

entra a formar parte del conjunto de personas no asignadas. Por ultimo

se incrementa el precio del objeto de modo que este se haga igual a la

oferta hecha por i, es decir, el nuevo precio del objeto sera, bij∗i

3. Prueba de optimalidad. Verifique si se satisface la condicion de optimalidad

ε < 1Numero de clases

.4 De no ser ası, reduzca el valor de ε y vuelva al paso 2.5

3.3. Implementacion del Algoritmo

La implementacion del algoritmo descrito, que permite resolver el problema basico

de asignacion de estudiantes a los colegios distritales (P1), se desarrollo en el len-

guaje JAVA, en el Anexo A se presentan las clases y el codigo desarrollado para

ello. Haciendo uso de esta implementacion, se pretende evidenciar la incidencia de

los distintos parametros de ejecucion del modelo en la eficiencia de su desempeno;

para ello se empleo el algoritmo para resolver una instancia del problema con 1000

estudiantes y 10 colegios, con beneficios de asignacion generados mediante una dis-

tribucion uniforme entre 0 y 200. Se efectuaron distintas corridas en cada una de

las cuales se utilizaron distintas combinaciones de parametros, particularmente del

valor de epsilon inicial y el factor de reduccion de epsilon para cada iteracion. Los

experimentos generados presentaron las siguientes caracterısticas.

1. Se consideraron tres valores iniciales para epsilon.

i.) El valor de ε inicial en el mismo orden de magnitud del mayor de los

beneficios, es decir 200 en este caso.

ii.) El valor de ε inicial en un orden de magnitud menor que el mayor de los

beneficios, en este caso se empleo ε = 20.

4Para el caso de Objetos similares, esta condicion de optimalidad es equivalente a la expuestapara el algoritmo de subasta para problemas de asignacion.[6]

5Factores de reduccion tıpicos de ε son del orden de 4 a 10. [5]

21

Page 32: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

ii.) El valor de ε inicial considerablemente mas grande que el mayor de los

beneficios, en este caso se empleo ε = 500.

2. Se consideraron tres valores para el factor de reduccion de ε. En cada ronda o

subasta, el valor de epsilon se divide por dicho factor. Los valores considerados

fueron 4, 6 y 10

Es importante senalar que la aplicacion de este algoritmo de manera mas precisa

para alguna instancia particular, deberıa estar acompanada de un diseno de experi-

mentos apropiado, que permita determinar de manera mas rigurosa los parametros

que permitirıan mayor eficiencia en la solucion; Los resultados de las distintas corri-

das realizadas, se presentan en la Tabla 3.

epsilon Factor Max. Iterc Prom Iterac Total Iterac.200 4 6.233.227 1.940.713,3 13.584.993

6 9.122.522 2.645.464,5 15.872.78710 10.786.088 3.186.277,2 15.931.386

20 4 10.967.917 3.559.022,7 21.354.1366 12.949.869 4.188.911,0 20.944.555

10 10.781.926 3.878.714,8 15.514.859500 4 8.193.556 2.154.001,8 17.232.014

6 17.056.954 3.868.593,6 27.080.15510 32.011.981,0 6.952.164 41.712.985

Tabla 3: Resultados Corridas Instancia 1000 Estudiantes 10 Colegios

La Tabla 3 presenta el valor de los parametros empleados, el numero maximo de

iteraciones que fue necesario realizar hasta hallar el equilibrio en alguna de las

subastas, el numero promedio de las iteraciones por subasta y el numero total de

iteraciones, suma de las iteraciones de cada una de las subastas, hasta satisfacer la

condicion de optimalidad. Con base en esta informacion puede observarse que:

i.) Para esta instancia particular el algoritmo parece desempenarse mas eficien-

temente cuando el valor inicial de epsilon es del mismo orden de magnitud

que el mayor de los beneficios de asignacion estudiante-colegio considerados,

22

Page 33: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

puesto que se requieren un menor numero total de iteraciones hasta encontrar

la solucion optima.

ii.) Al incrementarse el factor de reduccion de epsilon, el numero maximo de ite-

raciones en una ronda tiene a hacerse mayor en la mayorıa de los casos, sin

embargo es importante notar que el el incremento de dicho factor implica un

menor numero de rondas o subastas.

iii.) Iniciar el algoritmo con valores de epsilon considerablemente grandes, aumenta

el rondas o subastas necesarias, aun mas si se considera un factor de reduccion

menor, sin embargo esta combinacion parece generar mejores resultados que

valores de epsilon y factores de reduccion grandes.

Con propositos ilustrativos se empleo el algoritmo para resolver una instancia del

problema de asignacion con 50,000 estudiantes, en 200 colegios, con beneficios de

asignacion de cada estudiante a cada colegio generados como una distribucion uni-

forme entre 0 y 200; para ello se utilizo un valor inicial de epsilon de 200 y un factor

de reduccion de 4. La Figura 5 presenta la forma como decrece el valor de epsilon a

medida que se efectua cada ronda, ası como se incrementa el numero de iteraciones

que es necesario para encontrar el equilibrio en cada una de las rondas (subastas) a

medida que avanza el numero de rondas (decrece el valor de epsilon).

Figura 5: Valor de Epsilon y Numero de Iteraciones por Ronda

La Figura 6 presenta la forma como evoluciona el valor de la funcion objetivo,

beneficio total de la asignacion, a medida que se desarrollan las rondas o subastas.

Puede observarse como para esta instancia particular se obtienen buenas soluciones,

23

Page 34: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

proximas al valor optimo, a partir de la 5 ronda; este hecho sugiere que el algoritmo

puede ser utilizado incluso como una heurıstica para generar buenas soluciones,

deteniendo su ejecucion despues de un numero dado de iteraciones o mediante la

comparacion con alguna cota superior de la solucion optima.

Figura 6: Valor de la Funcion Objetivo en cada Ronda (subasta)

24

Page 35: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Capıtulo IV

Estrategia de Solucion: Generacion de Columnas

En este capıtulo se describe una forma alternativa de abordar la solucion del proble-

ma basico de optimizacion inmerso en el proceso de asignacion de cupos escolares

(P1), formulado de manera particular en capıtulos anteriores. La estrategia de solu-

cion que se expone se fundamenta en el principio de descomposicion y en el uso del

esquema de generacion de columnas, ideas que fueron desarrolladas por Dantzing

and Wolfe y Gilmore y Gomory respectivamente. [10], [16]

4.1. Descomposicion de Dantzing-Wolfe

El problema de Asignacion presente en el proceso de asignacion denominado ante-

riormente formulacion estandar P1, puede reformularse de modo que pueda hacerse

uso del esquema de generacion de columnas para su solucion. Para ello y con el fin

de hacer mas comprensible la presentacion, considere nuevamente la formulacion del

problema.

Sea:

I: Conjunto de Estudiantes que deben asignarse. Indexado con i, |I| = n

J : Conjunto de Instituciones. Indexado con j, |J | = m

cij: Beneficio de Asignar el estudiante i a la institucion j

bj: Oferta de cupos (para el grado especıfico) de la institucion j

25

Page 36: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

xij =

1, si el estudiante i es asignado a la institucion j

0, de lo contrario

Maximizar∑i∈I

∑j∈J

cijxij∑j∈J

xij = 1 ∀i ∈ I (14)∑i∈I

xij = bj ∀j ∈ J (15)

xij ∈ {0, 1} ∀i ∈ I, ∀j ∈ J (16)

El Problema puede ser entendido como la particion del conjunto de estudiantes en

subconjuntos que pueden ser asignados a cada institucion maximizando en dicha

particion el beneficio de la asignacion.[13] Bajo esta optica el problema puede refor-

mularse de una forma alterna considerando:

i.) Kj = {xj1, x

j2, ..., x

jkj}: Conjunto de las asignaciones factibles para la institucion

j.

ii.) xjk = {xj

1k, xj1k, ..., x

jnk}, corresponde a la k-esima asignacion factible para la

institucion j si:

∑i∈I

xjik = bj xj

ik ∈ {0, 1} (17)

Note que las asignaciones factibles para la institucion j, definidas en (17),

han sido limitadas en este caso solo a aquellas que asignan a la institucion

un numero de estudiantes igual a su capacidad. Dado que se ha ajustado la

capacidad, adicionando una institucion ficticia, haciendola igual a la demanda,

solo este tipo de asignaciones podrıan considerarse en la solucion del problema.

26

Page 37: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

iii.) Se define yjk para todo j ∈ J y k ∈ Kj como:

yjk =

1, Si la asignacion factible xjk es seleccionada para la institucion j

0, en caso contrario

Ası el problema se puede formular como:

(P2)

Maximizar∑j∈J

∑k∈Kj

(∑i∈I

cijxjik

)yj

k (18)

∑j∈J

∑k∈Kj

xjiky

jk = 1 ∀i ∈ I (19)

∑k∈Kj

yjk = 1 ∀j ∈ J (20)

yjk ∈ {0, 1} ∀j ∈ J , ∀k ∈ Kj (21)

La formulacion en (P2) se denominara en adelante formulacion desagregada. En

esta formulacion, la restriccion (19) garantiza que cada estudiante es asignado a una

institucion. La restriccion (20) asegura que para cada institucion es seleccionada

una asignacion factible.1 Esta formulacion corresponde a la Descomposicion de

Dantzing-Wolfe para la formulacion estandar (P1), donde las restricciones de capa-

cidad han sido definidas para el subproblema,(Pricing Problem), en el algoritmo de

generacion de columnas. [17]

4.2. Algoritmo de Generacion de Columnas

El algoritmo que se describe brevemente a continuacion permite resolver la relajacion

lineal del problema presentado en la formulacion desagregada(P2) que para efectos

del algoritmo se denomina Problema Maestro Lineal. Es decir permite resolver el

problema resultante de no considerar las restricciones de integralidad para los yjk. Si

bien el interes recae en la solucion del problema entero, posteriormente, al final de

1En este caso particular en el que se ajusta la oferta para ser exactamente igual a la demanda,adicionando un colegio ficticio con capacidad igual al exceso de demanda existente, tiene mayorsentido la restriccion de igualdad.

27

Page 38: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

este capıtulo, se evidenciara la utilidad que el algoritmo de solucion de la relajacion

lineal tiene para este fin, ademas de algunas consideraciones respecto a la solucion

de este problema particular a traves de dicho algoritmo.

La idea del algoritmo es resolver el problema lineal por medio de la aplicacion del

Metodo Simplex; sin embargo, dada la enorme cantidad de columnas (asignaciones

factibles) para cada colegio, el paso correspondiente a la determinacion de la colum-

na, variable, que debe adicionarse a la base debe ser modificado. En lugar de evaluar

todas las columnas, una por una respecto a su costo reducido, el problema de en-

contrar la columna con el mayor costo reducido es en si mismo un conjunto de m

problemas de optimizacion. Para ello el procedimiento desarrollado en el algoritmo

puede describirse de la siguiente forma.2

1. Inicializacion. Debe disponerse de un subconjunto de columnas que provean

el Problema Lineal Maestro Restringido (PLMR) para el cual sea posible de-

terminar una solucion basica factible, de modo que cualquier solucion basica

factible del problema restringido lo es tambien para el problema no restringido.

2. Prueba de Optimalidad para el Problema no Restringido. Debe de-

terminarse si la solucion factible encontrada es optima para el problema no

restringido, para ello se determina con base en los precios duales asociados a

la solucion del problema restringido, si es posible hallar una columna con cos-

to reducido positivo para adicionar a la base. De no existir dicha columna la

solucion actual de problema restringido es optima, y tambien lo es para el pro-

blema no restringido. La determinacion de la existencia de dicha columna no

se efectua mediante la evaluacion una por una de todas las posibles columnas

que se encuentran fuera de la base, sino mediante la consideracion implıcita

de todas ellas en la solucion de uno o varios subproblemas de optimizacion.

3. Generacion de una Nueva Columna. En caso de no satisfacerse las con-

diciones de optimalidad, la columna que genera el costo reducido positivo

2Basado en [14]. Una mejor descripcion, con mayor nivel de detalle, del algoritmo de generacionde columnas se presenta en [7]

28

Page 39: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

debe ser adicionada al conjunto de columnas actual generandose ası un nuevo

Problema Maestro Restringido, el cual puede ser reoptimizado para volver al

segundo paso del algoritmo.

A continuacion se describen algunos de los elementos mas importantes del algoritmo

de generacion de columnas para la instancia del problema de asignacion que se

pretende abordar.

4.2.1. Definicion del Problema Maestro Restringido Inicial

El algoritmo debe comenzar con un conjunto de columnas que provean una solucion

basica factible para la relajacion lineal problema original, este conjunto de columnas

c0onstituyen el Problema Maestro Restringido Inicial. Un alternativa valida, que de

hecho corresponde a la empleada en la implementacion del algoritmo, consiste en

construir una asignacion factible para cada colegio y adicionar a este conjunto de m

columnas una columna artificial adicional con beneficio de asignacion suficientemente

negativo. La columna para cada institucion podrıa corresponder a la solucion del

problema knapsack asociado, es decir a asignar los bj estudiantes con mayor beneficio

de asignacion a dicho colegio. La columna artificial es de tal forma que sus primeros

n elementos son 1 y los m restantes son 0 de esta forma esta columna junto con

las columnas asociadas a cada colegio permite siempre construir una solucion basica

factible. El beneficio de la columna artificial debera ser−M donde M es una constate

suficientemente grande (por ejemplo, la suma de todos los beneficios)

4.2.2. Definicion del Problema Auxiliar (Pricing Problem)

A partir del Problema Maestro Restringido se generan las columnas que vayan siendo

necesarias hasta resolver optimamente el problema. La generacion de las columnas

se hace por medio de un problema auxiliar denominado Pricing Problem, el cual

pretende determinar, si existe, la o las columnas que deben ser consideradas en la

base para hallar la solucion optima del problema Maestro.

La columna asociada a yjk, es decir

{xj

1k, xj2k, ..., x

jn,k, ej

}que se adiciona a la base

29

Page 40: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

debe satisfacer:3

i.) Debe tener costo reducido positivo, es decir cjk > 0

ii.) Debe corresponder a una asignacion factible para alguna institucion, es decir∑i∈I xj

ik = bj

Bajo estas consideraciones la columna que debe adicionarse se determina como,4

maxj∈J

{z(KPj)− νj} (22)

En donde, νj representa el precio dual asociado con la restriccion de convexidad para

la institucion j, restriccion(20), en la solucion optima del Problema Maestro Res-

tringido. Z(KPj) corresponde al valor de la solucion optima del problema Knapsack

asociado a la institucion j, (P3).

(P3)

Maximizar∑i∈I

(cij − µi)xji∑

i∈I

xji = bj

xji ∈ {0, 1} ∀i ∈ I

(23)

En este Problema µi corresponde al valor optimo de la variable dual asociada con la

restriccion de particion para el estudiante i, restriccion (19), en la solucion optima

del Problema Maestro Restringido.

Es necesario observar que la solucion del problema auxiliar que determina la colum-

na a adicionar, Pricing Problem, implica resolver m Problemas Knapsack con un

maximo de n estudiantes cada uno de ellos; bajo esta consideracion parecerıa que la

3Los primeros n elementos de esta columna indican si el estudiante i es o no asignado a laInstitucion j; el vector ej es un vector de ceros con una unica componente igual a uno en la filacorrespondiente a la restriccion de convexidad asociada a la institucion j

4La obtencion de esta expresion se presenta en el Anexo C.1

30

Page 41: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

solucion del Problema Maestro a traves del esquema de generacion de columnas re-

sultarıa ineficiente, puesto que ademas deberıa repetirse este procedimiento cuantas

veces fuese necesario para hallar una solucion optima. Sin embargo, es importante

observar que para la estructura particular de esta instancia, la solucion de cada

uno de estos problemas Knapsack tiene una complejidad menor; cada uno de los m

problemas Knapsack se resuelve asignando en orden decreciente respecto al valor

(cij − µi), los estudiantes que son factibles de ser asignados a la institucion, hasta

completar la capacidad de cupos de esta.

Adicionalmente, es importante senalar que no es indispensable que la columna adi-

cionada sea aquella con el mayor costo reducido, bastarıa con identificar una columna

cuyo costo reducido sea positivo. Podrıa tambien modificarse el algoritmo de modo

que puedan adicionarse simultaneamente varias columnas a la base. Estos y otros

aspectos han sido objeto de estudios por distintos autores con el fin de determinar

de que manera inciden en al eficiencia del algoritmo, sin embargo aun no parece

haber un consenso al respecto.

4.3. Consideraciones Respecto a la Implementacion del Al-goritmo

El algoritmo de generacion de columnas fue implementado para dar solucion a instan-

cias del problema objeto de estudio. Su implementacion se desarrollo en Xpress-MP,

el codigo generado puede consultarse en el Anexo B. 5 Algunos aspectos relevantes

abordados durante la implementacion ası como consideraciones y conclusiones obte-

nidas por medio de la ejecucion del modelo, que ameritan ser detallados se presentan

a continuacion.

5Alguna de la documentacion que fue empleada como soporte para dicha implementacion puedeser consultada en [9], [22], [24], [23], [26] y [25]

31

Page 42: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

4.3.1. Adicion y Borrado de Columnas

Varias estrategias a seguir en el algoritmo de generacion de columnas pueden ser im-

plementadas, con el fin de determinar la o las columnas para adicionar. Asumiendo

que en cada iteracion una unica columna es adicionada, pueden plantearse al menos

dos estrategias distintas: Adicionar la columna que genere el mayor costo reducido

o adicionar la primera columna con costo reducido positivo encontrada.

La primera estrategia requiere resolver m = |J | problemas Knapsack en cada itera-

cion, lo cual puede hacer que el tiempo para realizar cada una de estas se incremente,

sin embargo, esta estrategia genera la disminucion mas grande posible en el valor

de la funcion objetivo, para cada iteracion. La segunda estrategia resuelve cuando

mas m = |J | problemas Knapsack por iteracion, en la practica el numero de pro-

blemas resueltos en cada iteracion es considerablemente menor que m, este hecho

puede contribuir a reducir el tiempo de solucion, aunque posiblemente el numero

de iteraciones requeridas sea mayor. El algoritmo implementado para este problema

particular, hace uso de la primera estrategia, esto debido principalmente a que como

se menciono anteriormente la solucion de cada uno de los problemas Knapsack es

de menor complejidad, puesto que para resolverlos deben seleccionarse, en orden

decreciente respecto al beneficio generado, los estudiantes que son asignados a un

colegio determinado.

Otro aspecto importante considerado en la implementacion del algoritmo es el gran

numero de columnas que posiblemente deben adicionarse hasta encontrar la solu-

cion optima de la relajacion lineal del problema en (P2), pues esto puede afectar la

eficiencia del algoritmo e incluso aumentar los requerimientos computacionales para

su solucion. Con el fin de atenuar el efecto de este aspecto, se implemento un pro-

cedimiento para eliminar, cada cierto numero de iteraciones, aquellas columnas con

costo reducido negativo, lo cual puede implicar que en algunos casos que columnas

que ya habıan sido generadas vuelvan a ser consideradas en iteraciones posteriores,

pero alivia en parte el rapido incremento del numero de columnas consideradas y

32

Page 43: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

por ende del tiempo de solucion de cada iteracion.

4.3.2. Convergencia del Algoritmo

Para el algoritmo de generacion de columnas en programacion Lineal es reconoci-

do el problema de su convergencia lenta. Generalmente, pueden hallarse soluciones

cercanas a la solucion optima rapidamente, sin embargo el progreso obtenido en la

funcion objetivo cuando se esta cerca del valor optimo no es significativo [8]; este

hecho puede generar que el algoritmo requiera de un tiempo considerable hasta ob-

tener la optimalidad de la solucion e incluso tarde en decretar la optimalidad de

soluciones optimas degeneradas. Este hecho se conoce como el efecto Tailing-off, de-

nominado ası desde el trabajo realizado por Gilmore y Gomory (1963), en alusion a

que el proceso de solucion presenta una cola respecto al tiempo.[16]

Dos aspectos se destacan en la literatura respecto a el problema de convergencia

del algoritmo de generacion de columnas y su aplicacion particular al problema de

asignacion o transporte. En primer lugar el problema presenta una notoria degene-

racion, lo cual puede afectar la eficiencia del algoritmo, dado que un gran numero

de los pivotes realizados dan como resultado la adicion de columnas con costo redu-

cido positivo, pero que no mejoran el valor de la funcion objetivo, es decir pivotes

degenerados [3]. El segundo aspecto que reviste gran importancia en la literatura

relacionada es el comportamiento del valor de las variables duales durante el proce-

so de solucion; estas variables presentan grandes oscilaciones durante el proceso y

su convergencia no es suave, este comportamiento es considerado como uno de los

aspectos principales en relacion con la convergencia y la ausencia de dicho compor-

tamiento es vista como una propiedad deseable [16].

La Figura 7, presenta la forma como evoluciona la solucion primal y la solucion

dual6 para una instancia de prueba pequena del problema.

Es importante resaltar algunos aspectos que pueden observarse en esta figura.

6En realidad el valor presentado constituye a la cota de la relajacion lagrangiana que hace usode los valores duales y la cual sera discutida posteriormente en este capıtulo

33

Page 44: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Figura 7: Generacion de Columnas. Resultados de ejecucion

La solucion primal del problema se aproxima rapidamente al valor optimo,

sin embargo es necesario un numero considerablemente grande de iteraciones

hasta lograr la optimalidad de dicha solucion.

Puede observarse como existe una gran variabilidad en el valor de la solucion

dual, esta variacion se hace particularmente notoria en las primeras iteraciones

del algoritmo.

Puede observarse como se genera un salto notorio en el valor de la solucion dual

cada cierto numero de iteraciones (200 en este caso). Este salto se presenta

cada vez que el algoritmo aplica el procedimiento para eliminar columnas (para

el ejemplo particular que se corrio, este procedimiento se ejecuta cada 200

iteraciones)

4.3.3. Estrategias de Estabilizacion

Con el fin de atenuar el problema de convergencia lenta y degeneracion en la apli-

cacion del algoritmo de generacion de columnas, distintos autores han propuesto

diferentes procedimientos, principalmente enfocados a la estabilizacion de los va-

lores duales, los cuales podrıan clasificarse en cuatro grandes grupos respecto al

mecanismo que ellos usan.7

7El lector interesado en profundizar en estos procedimientos puede consultar en [11] y las refe-rencias que al respecto allı se citan.

34

Page 45: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

i.) Definir limites para los precios duales

ii.) Suavizar los valores duales que retorna el subproblema (pricing problem), ge-

neralmente mediante combinaciones lineales de los valores retornados y algun

otro valor definido.

ii.) Penalizar la desviacion de las variables duales respecto a un centro de estabi-

lizacion, el cual generalmente corresponde al conjunto de precios duales que

genera la mejor cota lagrangiana.

iv.) Trabajar con soluciones duales interiores en lugar de soluciones duales extre-

mas.

Una estrategia de simple aplicacion, que podrıa clasificarse dentro del primer grupo,

sugiere formular el problema de modo que contribuya a una mejor convergencia. De

manera particular una formulacion en la cual las restricciones de igualdad puedan

ser sustituidas por desigualdades, sin alterar el valor de la solucion optima, puede

contribuir con este fin. El hecho de sustituir las restricciones de igualdad por des-

igualdades restringe el valor de las variables duales a ser bien sea no negativas o no

positivas en lugar de ser variables libres en signo, este hecho reduce la oscilacion de

dichas variables. En el problema particular la formulacion desagregada (P2) puede

modificarse sin alterar el valor de la solucion optima, cambiando para ello el conjun-

to de restricciones de asignacion de los estudiantes, (19), empleando desigualdades

en lugar de igualdades, de la siguiente forma:

∑j∈J

xij ≤ 1 ∀i ∈ I (24)

Observe como por tratarse de un problema balanceado, en el cual la oferta de cupos

es igual a la demanda de los mismos, los cambios sugeridos en las restricciones no al-

teran el valor de la solucion optima. En la solucion optima cada estudiante podra ser

asignado cuando mas a un colegio, pues de lo contrario se violarıa la restriccion de

capacidad, mientras que para cada colegio debera ser seleccionada exactamente una

asignacion de estudiantes pues de lo contrario los cupos faltantes de los colegios para

35

Page 46: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

los que no se selecciono ninguna asignacion no permitirıan que cada estudiante haya

sido asignado a un colegio. La Figura 8 presenta el resultado de correr con cada

una de las dos formulaciones, con restricciones de igualdad y con restricciones de

desigualdad, la misma instancia de prueba empleada anteriormente, la parte derecha

de la figura corresponde a una vista en detalle de las primeras 400 iteraciones.

Figura 8: Generacion de Columnas. Comparacion de Formulaciones

De esta figura puede observarse como el cambio en las restricciones de asignacion de

los estudiantes, contribuye a disminuir ostensiblemente la variabilidad de los valores

duales, principalmente en las primeras iteraciones; la lınea naranja corresponde a

la solucion dual en el problema con restricciones de igualdad, mientras que la lınea

verde corresponde a esta misma solucion en el problema con restricciones de des-

igualdad. Sin embargo, la solucion de ambas formulaciones aun presenta una fuerte

evidencia del efecto de ”tailing-off ”, el cual ocasiona un gran numero de iteraciones

hasta alcanzar la solucion optima, lo cual sugiere la necesidad del uso de otras es-

trategias de estabilizacion para mejorara la convergencia del algoritmo.

Para este problema en particular se decidio hacer uso de un metodo de estabilizacion

y aceleracion del algoritmo de generacion de columnas cuya principal caracterıstica

es permitir su implementacion en el marco de la programacion lineal, es decir permi-

te hacer uso del algoritmo de generacion de columnas implementado anteriormente.

36

Page 47: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

La estrategia empleada se describe detalladamente en [20].8 De manera general

este procedimiento pretende atenuar la degeneracion mediante la perturbacion del

poliedro, al mismo tiempo que intenta reducir la variabilidad de las variables duales

mediante el uso de penalizaciones cuando estas se alejan de cierto valor determinado,

el cual se actualiza en el desarrollo del algoritmo. A continuacion se presentan los

aspectos mas relevantes del procedimiento implementado:

Considere el siguiente programa lineal (P), factible y acotado, y su correspondiente

dual (D), en donde (P) tiene un numero considerable de variables y se hace uso del

algoritmo de generacion de columnas para su solucion.

Problema Primal

(P)

Maximizar cTx

Ax = b

x ≥ 0

Problema Dual

(D)

Minimizar bT π

AT π ≥ c

Una forma de atenuar la degeneracion en la solucion es mediante la perturbacion de

(P), adicionando variables de holgura y de exceso acotadas, originando el siguiente

problema:

(Pε) : max(x,y−,y+)>0

{cTx : Ax− y− + y+ = b,y− ≤ ε,y+ ≤ ε

}(25)

Alternativamente, podrıa usarse penalizaciones explıcitas para las variables duales;

ası resolver (P) es equivalente a resolver el siguiente problema, con un valor de δ ≥ 0

determinado.

(Pδ) : max(x,y−,y+)>0

{cTx + δy− + δy+ : Ax− y− + y+ = b

}(26)

8Una implementacion particular de esta estrategia para la solucion del problema GAP puedeconsultarse en [27]

37

Page 48: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

La estrategia propuesta en [20] combina el metodo de perturbacion y de penaliza-

ciones explıcitas, de la siguiente forma:

Se define el programa lineal (P) y su correspondiente dual (D)

Problema Primal

(P )

Max cT x− δTy− + δTy+

Ax− y− + y+ = b

y− ≤ ε−

y+ ≤ ε+

x,y−,y+ ≥ 0

Problema Dual

(D)

Min bT π + ε−v + ε+w

AT π ≥ c

−π + v ≥ −δ

π + w ≥ δ

En el problema primal (P), y− y y+ son vectores de variables de exceso y holgura,

con cotas superiores ε− y ε+, respectivamente. En el problema Dual (D), las dos

ultimas restricciones pueden reescribirse como δ−w ≤ π ≤ δ +v, la cual cuantifica

la penalizacion de las variables duales π.[20]. Observe que la solucion de los dos

problemas,P y P, son iguales cuando se satisface que ε− = ε+ = 0, lo cual motiva

el algoritmo de solucion.

El algoritmo empleado es esencialmente el mismo planteado anteriormente en este

capıtulo, el cual se usa para dar solucion al problema en (P), sin embargo es ne-

cesario adicionar a dicho algoritmo dos aspectos diferenciadores relacionados con la

actualizacion de los nuevos parametros considerados (δ, ε− y ε+).

i.) Actualizacion de δ. El valor de δ se ajusta a lo largo del algoritmo haciendose

igual al vector de valores duales π que genere la mejor cota dual haste ese

momento encontrada.

ii.) Actualizacion de ε− y ε+. Cada cierto numero de iteraciones el valor de

ε− y ε+ debe disminuirse de modo que llegue a cero en un numero finito de

38

Page 49: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

iteraciones, lo cual situarıa el problema en su equivalente P, garantizando que

el algoritmo tiene terminacion en un numero finito de iteraciones.

En la segunda parte del Anexo B se presenta el codigo en Mosel que implementa esta

estrategia de estabilizacion para el algoritmo de generacion de columnas. Haciendo

uso de dicha implementacion se corrio la misma instancia de prueba solucionada

anteriormente, los resultados se presentan en las Figuras 9 y 10

Figura 9: Generacion de Columnas. Estabilizacion del algoritmo

Figura 10: Generacion de Columnas. Estabilizacion del algoritmo y restricciones dedesigualdad

La Figura 9 presenta el resultado de aplicar la estrategia de estabilizacion en la for-

mulacion en la cual la restriccion de asignacion de cada estudiante es de igualdad,

mientras que la Figura 10 presenta este mismo resultado para la formulacion en la

cual dicha restriccion se cambio por desigualdad. En ambas figuras, la imagen de la

39

Page 50: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

derecha representa un detalle de las primeras iteraciones, hasta alcanzar optimalidad

en el algoritmo estabilizado.

Es posible observar como el numero de iteraciones requerido hasta encontrar la so-

lucion optima se reduce considerablemente, pasando en este caso de mas de 1200

iteraciones a cerca de 250 iteraciones. Adicionalmente, puede verse como la variabi-

lidad de la solucion dual se reduce ostensiblemente, de manera particular a partir de

cierto numero de iteraciones iniciales. La generacion de columnas irrelevantes, que

aportan poca informacion para ajustar los valores duales, en las primeras iteraciones

del algoritmo es conocida como el efecto “heading-in”[11]; si bien el algoritmo puede

iniciarse con valores arbitrarios para δ, como de hecho se efectuo en la implementa-

cion presentada, deberıan preferirse “buenas”estimaciones de los valores optimos de

las variables duales, los cuales podrıan provenir de la aplicacion de heurısticas.

4.3.4. Uso de Cotas para la Terminacion Anticipada del Algoritmo

Ante los problemas de convergencia senalados para el algoritmo de generacion de

columnas, parcialmente atenuados con las estrategias presentadas en el apartado

anterior, una alternativa existente es terminar anticipadamente la ejecucion del al-

goritmo, particularmente al haber alcanzado cierto nivel de proximidad a la solucion

optima. Para ello en lugar de resolver el programa lineal hasta optimalidad, es decir

generar columnas hasta cuando sea posible encontrar una columna promisoria para

entrar a la base, es posible terminar anticipadamente el proceso de generacion de

columnas cuando el Gap existente entre la cota inferior, dada por la solucion actual

del problema maestro, y la cota superior, construida por ejemplo, por relajacion

lagrangiana, alcanza un nivel determinado.[2]

Detener anticipadamente el algoritmo de generacion de columnas, haciendo uso de

cotas respecto al valor de la solucion optima, puede ser de gran utilidad para dos

estrategias de solucion diferentes. En primer lugar, detener el algoritmo de genera-

cion de columnas y obtener los valores duales, puede permitir construir soluciones a

40

Page 51: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

partir de los resultados hasta allı obtenidos. si bien no existe un criterio claro res-

pecto a como construir buenas soluciones enteras a partir de una solucion no entera,

pueden generarse heurısticas que construyan soluciones al problema a partir de los

valores duales observados al momento de detener el algoritmo. Para esta instancia

particular dichas heurısticas pueden basarse en algunos de los aspectos resaltados

por el algoritmo de subastas que se presento en el capıtulo 3. En dicha descripcion

se evidencio el hecho de que la solucion optima de la instancia basica del problema

(P1)debe satisfacer que: Una asignacion factible S y un vector de precios pj son

primal y dual optimos simultaneamente si y solo si cada persona logra su maximo

beneficio (utilidad) siendo asignada al objeto que le ofrece mayor valor. Este hecho

puede ser empleado para construir soluciones aproximadas.

La segunda estrategia de solucion para la cual es relevante usar cotas para detener

anticipadamente el algoritmo de generacion de columnas, es el caso en el cual se

hace uso del algoritmo de Branch and Price para la solucion del problema. Este

algoritmo sera presentado posteriormente, sin embargo es importante senalar que

el uso de dichas cotas, puede contribuir a explorar de manera eficiente el arbol de

busqueda que esta tras el algoritmo Branch-and-Price.

Una cota superior para el valor optimo de la funcion objetivo del problema en (P2),

puede construirse resolviendo la Relajacion Lagrangiana resultante de dualizar las

restricciones de asignacion, la cual esta dada por:[19]

Maximizar∑j∈J

∑k∈Kj

(∑i∈I

cijxjik

)yj

k +∑i∈I

µi

1−∑j∈J

∑k∈Kj

xjiky

jk

∑k∈Kj

yjk = 1 ∀j ∈ J (27)

Mediante operaciones matematicas simples, puede mostrarse que el problema en

41

Page 52: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

(27) es equivalente a:9 ∑j∈J

(Z(KPj)) +∑i∈I

µi (28)

Puede notarse como una vez solucionados el problema auxiliar, Pricing Problem, en

una iteracion tıpica del algoritmo de generacion de columnas, se dispone de toda

la informacion necesaria para construir una cota superior respecto al valor de la

solucion optima

4.4. Solucion del Problema Entero (no relajado) P2.

Al comienzo de este capıtulo se senalo que el algoritmo de generacion de columnas

permitirıa solucionar la relajacion lineal del problema en la formulacion desagregada

(P2), sin embargo un aspecto de importancia respecto a la solucion del problema

entero, es decir el problema no relajado, esta relacionado con el hecho de que la

solucion de ambos problemas, la relajacion lineal y el problema entero, coinciden.

En el Anexo C.3 se demuestra esta afirmacion.

Dada esta consideracion, el algoritmo de generacion de columnas puede usarse para

determinar la solucion del problema basico de optimizacion inmerso en el proceso de

asignacion de cupos escolares, sin hacerse necesario la consideracion del algoritmo

Branch-and-Bound; es decir, que la solucion del problema corresponde a explorar

solamente el primer nodo del arbol de busqueda en un algoritmo Branch-and-Price.

Sin embargo, es importante senalar, que la solucion de instancias con restricciones

adicionales, es decir que no correspondan a la forma basica del problema presentado,

no necesariamente satisfacen que la solucion del problema relajado sea entera, en

cuyos casos sera necesario recurrir a algoritmos como el de Branch-and-Price, el cual

se describe posteriormente.

9En el Anexo C.2 se presenta la forma como se obtiene esta ecuacion

42

Page 53: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Capıtulo V

Consideracion de extra restricciones

En los capıtulos anteriores se ha planteado la forma de abordar el problema basico

de asignacion, (P1), que se presenta en el proceso de asignacion de cupos escola-

res. De modo general, dicho problema corresponde a las asignacion de un conjunto

de estudiantes, de modo que se maximice el beneficio de dicha asignacion mientras

se cumplen restricciones respecto a la asignacion de cada estudiante a un colegio

y la capacidad de los mismos. Sin embargo, como se senalo anteriormente, el pro-

blema real podrıa considerar algunas otras restricciones para la asignacion, estas

restricciones podrıan clasificarse en dos grupos:

i.) Restricciones propias de los estudiantes, en particular respecto a los colegios

a los cuales puede ser asignado un estudiante particular

ii.) Restricciones propias de los colegios, en relacion con condiciones particulares

respecto a los estudiantes que pueden serle asignados o la seleccion de las

asignaciones factibles a dichos colegios.

Este capıtulo presenta propuestas respecto a la forma de abordar este nuevo proble-

ma, incluyendo algunas restricciones adicionales, haciendo uso de las estrategias de

solucion presentadas en capıtulos anteriores.

5.1. Extra-Restricciones en el Algoritmo de Subasta

El Algoritmo de Subastas descrito en el Capıtulo 3, particularmente la aplicacion

al caso de estudio (Algoritmo de subastas con objetos similares), pretende dar solu-

cion a la version densa del problema, es decir a aquella en la cual se asume que cada

43

Page 54: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

estudiante puede ser asignado a cualquiera de los colegios disponibles. La implemen-

tacion de la version densa del algoritmo implica la consideracion de un arreglo de

n×m donde se almacenan los beneficios de la asignacion de cada estudiante a cada

colegio. Sin embargo, el algoritmo puede modificarse facilmente para dar solucion a

la version dispersa del problema;1 para ello considere:

A(i) = {j ∈ J |∃(i, j)}, es decir el conjunto de Asignaciones posibles, o colegios

a los cuales puede ser asignado, el estudiante i

Dada esta consideracion el algoritmo descrito en el capıtulo 3, puede ser modificado

en la Fase de Oferta para que cada estudiante ofrezca solo por aquellos colegios en

los cuales puede ser asignado. Esta modificacion del algoritmo permitirıa considerar,

entre otras, las siguientes restricciones adicionales:

Restringir la asignacion de cada estudiante a colegios que esten en su localidad

o a cierta distancia maxima de su residencia.

Permitir la asignacion de estudiantes que ingresan al sistema y que tienen her-

manos dentro del mismo, a los colegios en los cuales actualmente se encuentra

asignado el hermano.

Permitir la asignacion de los estudiantes considerando su genero y limitaciones

ası como la clasificacion de las instituciones en femeninas, masculinas, mixtas

o de educacion especial

Observe que la consideracion de cualquiera de estas extra restricciones involucra un

preprocesamiento de la informacion, este preprocesamiento debe permitir identifi-

car los colegios a los cuales puede ser asignado cada estudiante ası como el valor

de la funcion de beneficio de la asignacion, considerando para ello los parametros

determinados por la Secretaria de Educacion Distrital.

1Observe que la implementacion de la version densa del problema puede usarse directamentepara dar solucion a la version dispersa, considerando para ello los beneficios de las asignaciones noposibles para un estudiante dado como un valor suficientemente pequeno; sin embargo, desde elpunto de vista de eficiencia resulta mas apropiado considerar la estructura particular de la versiondispersa al momento de almacenar la informacion y de ejecutar el algoritmo

44

Page 55: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

5.2. Extra-Restricciones en el Algoritmo de Generacion deColumnas

En el Capıtulo 4 se presento el algoritmo de Generacion de Columnas como estrategia

de solucion al problema basico (P1), sin embargo como allı mismo se senalo, este

algoritmo por si solo no basta para la obtencion de soluciones enteras en casos mas

generales en los que la relajacion lineal de la formulacion desagregada no corresponda

a la solucion entera. Se presenta entonces en este apartado el Algoritmo de Branch-

and-Price, el cual hace uso del algoritmo de generacion de columnas y del algoritmo

de Branch-and-Bound para programacion entera, indicando ademas la forma como

podrıa abordarse la existencia de restricciones adicionales.

5.2.1. Algoritmo de Branch-and-Price

Branch-and-Price (B-P) corresponde a una extension del algoritmo de Branch and

Bound, la idea fundamental es la integracion de este algoritmo con el algoritmo de

generacion de columnas.

Debido a que la formulacion desagregada, (P2), tiene un gran numero de colum-

nas y para la mayorıa de estas la variable asociada en la solucion optima toma el

valor de cero, el algoritmo B-P considera una relajacion del problema con solo un

subconjunto de estas. Mediante la implementacion de el problema auxiliar (Pricing

Problem) se generan las columnas que deben adicionarse a la base hasta dar solucion

a la relajacion del problema. La ramificacion (Branching) ocurre cuando no pueden

hallarse columnas para adicionar a la base y la solucion del problema relajado no

satisface las condiciones de integralidad.

5.2.1.1. Descripcion del Algoritmo

El algoritmo inicia considerando la relajacion lineal del problema planteado en la

formulacion desagregada (P2), esta relajacion se denomina Problema Maestro. Sin

embargo, dada la gran cantidad de variables que involucra esta formulacion, (lo

que implica un gran numero de columnas en la matriz A), se considera solo un

45

Page 56: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

subconjunto de estas, definiendose ası el Problema Maestro Restringido Inicial. Es-

te problema considera un conjunto de columnas iniciales que conforman una base

factible para la relajacion lineal de la formulacion desagregada, es decir una S.B.F

para el Problema Maestro. El Problema Maestro se resuelve mediante el esquema de

generacion de columnas, haciendo uso del problema auxiliar (Pricing Problem) para

generar dichas columnas.

En el caso en el cual la solucion optima del Problema Maestro Inicial es entera,

esta corresponde tambien a la solucion optima del problema no relajado, es decir

para el problema de la formulacion desagregada. Esta solucion tambien correspon-

de a la solucion optima de la formulacion estandar (P1) del problema de asignacion.

En el caso en el cual la solucion de la relajacion del Problema Maestro Inicial no

satisface las restricciones de integralidad, el problema debe ramificarse en dos o mas

subproblemas (de acuerdo con algun esquema de ramificacion especıfico), que entran

a formar parte del conjunto de subproblemas activos, los cuales deben evaluarse con

el objeto de construir cotas para el valor de la funcion objetivo del problema no

relajado que puede obtenerse a partir del subproblema explorado.

El algoritmo avanza iterativamente seleccionando, con algun criterio definido, al-

guno de los subproblemas del conjunto de subproblemas activos, ramificando este

subproblema y hallando el valor optimo de la relajacion lineal de los problemas

obtenidos al ramificar (o una cota de estos). Para la evaluacion de los distintos sub-

problemas se hace uso del esquema de generacion de columnas. Es necesario definir

en cada nodo (subproblema) explorado el Problema Maestro Restringido (PMRt)

con el cual comienza el algoritmo de generacion de columnas ademas del problema

auxiliar (Pricing Problem) que permitira generar las columnas necesarias para en-

contrar la solucion al Problema Maestro en ese nodo particular.

Cada vez que se explora un nodo del arbol de busqueda, (raimificar y evaluar) alguno

de los subproblemas activos, es posible encontrarse en uno de dos casos.

46

Page 57: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

i.) Se encuentra una solucion entera, lo cual implica que en adelante este nodo no

debe considerarse. En caso de que la solucion encontrada sea mejor que la me-

jor solucion disponible hasta ese momento (incumbente), se actualiza el valor

de mejor solucion conocida y se depura el conjunto de subproblemas activos

eliminando aquellos que tienen peores cotas con respecto al incumbente.

ii.) No se encuentra una solucion entera. En este caso los subproblemas generados

se adicionan al conjunto de subproblemas activos si las cotas para la funcion

objetivo encontradas no son peores que la mejor solucion conocida. En caso

contrario el subproblema seria descartado, podando ası el arbol de busqueda.

La Figura 11 presenta de modo esquematico la forma como se desarrolla el algoritmo

de Branch-and-Price. 2

5.2.1.2. Estrategias de Ramificacion y Acotamiento

Aun cuando la solucion del Problema Maestro Restringido sea tal que todas las yik

sean enteras, esto no garantiza que corresponda a la solucion optima del Problema

Original (P1), el nodo correspondiente a dicha solucion estara resuelto y solo se

podra verificar su optimalidad una vez se haya explorado y acotado apropiadamen-

te el arbol de busqueda. Esto hace necesario ramificar el problema y explorar los

distintos subproblemas activos, empleando para ello el esquema de generacion de

columnas, con el fin de acotar la solucion del Problema Entero original.

Debe seleccionarse una regla de ramificacion que sea compatible con el Problema que

debe resolverse para la generacion de columnas, es decir una regla de ramificacion

que permita modificar el Pricing Problem de modo que las columnas que no son

factibles debido a las restricciones impuestas por las distintas ramificaciones no sean

generadas y que la solucion de dicho problema siga siendo eficiente.

2Esta figura es basada en la presentada en [12]

47

Page 58: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Figura 11: Algoritmo Branch and Price

48

Page 59: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

La idea basica es desarrollar la ramificacion usando la formulacion estandar (P1)

mientras se procede en la solucion del problema con la formulacion desagregada(P2).

Deben resaltarse dos aspectos importantes para el desarrollo de esta idea.[18]

i.) Es posible mostrar que cualquier solucion factible para la formulacion desagre-

gada (P2) corresponde a una solucion factible para la formulacion estandar

(P1). Adicionalmente si la solucion para la formulacion desagregada es fraccio-

nal, entonces la correspondiente solucion para la formulacion estandar tambien

es fraccional.

ii.) Las estrategias de ramificacion en programas lıneales binarios se basa en fijar

el valor de una o varias variables. Fijar una o varias variables en la formulacion

estandar (P1) tiene un equivalente en la formulacion desagregada (P2) y el

esquema de ramificacion resultante es compatible con el problema auxiliar

(Pricing Problem).

En la formulacion estandar fijar la variable xij en cero (xij = 0) impide que el

estudiante i sea asignado a la institucion j, mientras que fijar la variable xij en

uno (xij = 1) implica que el estudiante i sea asignado a la institucion j. En la

formulacion desagregada (P2) esto puede ser implementado de la siguiente forma:

Para impedir la asignacion del estudiante i a la institucion j, todas las varia-

bles yjk asociadas a columnas, asignaciones factibles, para la institucion j que

contengan un uno en la fila correspondiente al estudiante i son fijadas en cero.

Es decir, si xjik = 1 entonces yj

k = 0 para todo k ∈ Kj

Asignar el estudiante i a la institucion j, correponde a hacer todas las variables

yjk asociadas a columnas , soluciones factibles, para la institucion j que no

contengan un uno en la posicion correspondiente al estudiante i iguales a cero

y todas las columnas que no esten asociadas con la institucion j que contengan

un uno en la posicion i son fijadas en cero. Es decir, si xjik = 0 entonces yj

k = 0

para todo k ∈ Kj y si xjik = 1 entonces yj

k = 0 para l ∈ I, l 6= j y k ∈ Kj

49

Page 60: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

El esquema de ramificacion tambien es compatible con el problema auxiliar (Pricing

Problem), este involucra la solucion de un Problema Knapsack para cada institucion.

Para impedir la asignacion del estudiante i a la institucion j el estudiante i no es

considerado en el Knapsack para dicha institucion. Para Asignar el estudiante i a la

institucion j, el estudiante i no es considerado en el Knapsack para ninguna de las

instituciones y se reduce la capacidad la institucion j en un cupo.

5.2.1.3. Estrategia de Exploracion

La estrategia de exploracion se refiere a la forma como se determina cual de los

subproblemas, en el conjunto de subproblemas activos, se selecciona para ser explo-

rado. Dos de las estrategias de exploracion frecuentemente usadas en el algoritmo

de Branch and Bound son la estrategia de busqueda profunda y la estrategia de me-

jor cota, las cuales tambien son implementables en el algoritmo de Branch and Price.

La estrategia de busqueda profunda selecciona para explorar el subproblema mas

recientemente creado, en caso de empates generalmente se considera la cota respec-

to al valor de la funcion objetivo para decidirlo. Esta estrategia esperarıa encontrar

buenas soluciones rapidamente, asumiendo que es mas probable encontrar buenas

soluciones en lo profundo del arbol que en los nodos proximos a la raız. Disponer de

buenas soluciones permitirıa podar eficientemente el arbol y ası hacer mas eficiente

la solucion del problema.

La estrategia de mejor cota, selecciona para ser explorado aquel subproblema que

posee una mejor cota respecto al valor de la funcion objetivo. Esta estrategia esta

motivada por el hecho de que el subproblema que provee la mejor cota deberıa ser

considerado para probar la optimalidad, por lo tanto deberıa ser explorado primero.

5.2.1.4. Consideraciones Respecto a la Implementacion del Algoritmo B-P

Los aspectos senalados anteriormente, en relacion con la convergencia del algoritmo

de generacion de columnas, cobran importancia en la implementacion del algoritmo

50

Page 61: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

de Branch-and-Price, puesto que este requiere de la solucion de multiples problemas

lineales por medio de generacion de columnas. Es asi como las estrategias descritas

para mejorar la convergencia del algoritmo y el uso de cotas para su terminacion

anticipada, deben ser tenidas en consideracion.

5.2.2. Consideracion de Extra Restricciones

Una de las caracterısticas mas importantes de la formulacion desagregada, (P2),

es que en el problema auxiliar se incorporan las restricciones relacionadas con las

asignaciones factibles de cada colegio; por este motivo, las restricciones adicionales,

que afectan directamente el conjunto de posibles asignaciones de cada institucion,

solo afectan el problema auxiliar por lo que pueden ser mas facilmente incorporadas

que en la formulacion estandar del problema.[13] De esta forma, pueden considerarse

para la solucion del problema mediante el algoritmo de Branch-and-Price, entre

otros, los siguientes tipos de restricciones.

Considerar restricciones de equilibrio de genero, de estrato socioeconomico, o

de otros factores, en la asignacion de estudiantes para cada institucion.

Considerar restricciones que determinen las asignaciones factibles para distin-

tos conjuntos de colegios, es decir, definir las asignaciones factibles de formas

diferentes para distintos grupos de colegios segun sea necesario.

Adicionalmente, es importante notar que tambien es posible considerar restricciones

adicionales respecto a las instituciones a las cuales puede ser asignado cada estudian-

te; para ello, debe determinarse una definicion apropiada de la funcion de beneficio

de la asignacion de cada estudiante a cada colegio, que recoja las particularidades

de la instancia que desea resolverse.

El algoritmo de Branch-and-Price puede ser implementado en alguno de los paquetes

existentes para la solucion de programas mixtos y enteros. Uno de estos programas,

usualmente referido en la literatura es MINTO (Mixed INTeger Optimizer), el cual

es un software para la solucion de programas mixtos y enteros por medio de el

algoritmo de Branch-and-Bound con relajacion lineal; este software tambien provee

51

Page 62: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

herramientas para la clasificacion automatica de restricciones, preprocesamiento y

heurısticas primales entre otras.[18], [21]

52

Page 63: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Capıtulo VI

Consideraciones para la Aplicacion de las

Estrategias de Solucion al Problema de

Asignacion de Estudiantes.

Han sido descritas en el desarrollo de este documento, las estrategias para abordar

el problema de asignacion presente en el proceso que para este fin desarrolla la Se-

cretaria de Educacion del Distrito, ası mismo se han senalado formas de considerar

restricciones adicionales al modelo de modo que pueda ajustarse mas a la situacion

real. Por ultimo, en este capıtulo se analiza la definicion de la funcion de beneficios,

la cual define los beneficios de asignacion de cada estudiante a cada colegio y que

se considero dada para el estudio de las distintas estrategias de solucion. Adicional-

mente se plantea como las estrategia de solucion descritas en los capıtulos anteriores

podrıan ser usadas dentro del proceso definido por el distrito.

6.1. Definicion de la Funcion de Beneficios

La forma como se calculan los beneficios de la asignacion de cada estudiante a cada

colegio, toma importancia en la aplicacion de las dos estrategias de solucion presen-

tadas a lo largo de este documento. La funcion definida para calcular estos beneficios

puede variar dependiendo de las condiciones particulares y los interes del decisor en

la instancia a solucionar, sin embargo, se pretende definir una funcion que este acor-

de con las especificaciones del problema descrito en el Capıtulo 2 y satisfaga las

condiciones del proceso de asignacion allı planteado.

53

Page 64: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

La funcion de beneficio para el problema que se pretende solucionar debera satisfacer

por lo menos las siguientes condiciones.

i.) El proceso de asignacion debera favorecer a aquellos estudiantes con mayor

prioridad,1 intentando que para ellos se logre la asignacion en alguno de los

colegios presentados como opciones o lo mas cerca posible de su residencia. De

esta forma, la funcion debe considerar el ındice de prioridad asignado a cada

estudiante.

ii.) En la definicion de los beneficios deben considerarse las opciones de colegios

presentadas por cada padre para la asignacion de sus hijos, de modo que para

estas instituciones el hecho de ser de predileccion de los padres se vea reflejado

en el beneficio.

iii.) La definicion de beneficios debera considerar la posible existencia de un colegio

o nodo ficticio, de modo que el beneficio de la asignacion de cada estudiante a

este tipo de institucion se vea desfavorecido.

Dadas estas consideraciones, la funcion de beneficio que se propone para esta ins-

tancia particular, se define mediante el siguiente procedimiento.

1. Se calcula la distancia de cada estudiante a cada colegio

i.) La distancia de asignacion de los estudiantes a los colegios seleccionados

por los padres como opciones se realiza de la siguiente forma:

• Sera 0 si el estudiante presenta maxima prioridad (prioridad 1)

• Sera igual a la menor distancia del estudiante a cualquiera de los

colegios si la prioridad del estudiante no es la maxima. Ası, si el

padre selecciono una institucion ubicada a 2 km de su casa, pero la

institucion mas cercana esta a un kilometro, entonces la distancia a

los colegios seleccionados como opcion sera 1 km

1El ındice de prioridad se encuentra ordenado de menor a mayor en donde 1 corresponde a losestudiantes con mayor prioridad en la asignacion.

54

Page 65: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

ii.) La distancia de un estudiante a cualquier colegio que no corresponda a

los colegios seleccionados, sera igual a la distancia real medida en las

unidades que se considere convenientes (Km o Mts)

Por ejemplo, la Tabla 2 presenta las distancias calculadas para una instancia

con n estudiantes y seis colegios. Observe que para el segundo estudiante, el

cual tiene prioridad cero, las distancias a los colegios seleccionados (colegios 1

y 6) como opciones son cero. Para el primer estudiante, cuya prioridad es 2,

la distancia a los colegios seleccionados como opciones (colegios 2 y 3) es igual

a la menor distancia del estudiante a cualquier colegio; en este caso la menor

distancia corresponde a la distancia hasta el colegio 6 la cual es de 2 unidades,

por este motivo la distancia a los colegios 2 y 3 tambien es 2 unidades.

Estudiante 1 2 3 · · · nPrioridad 2 1 1 3Opcion 1 2 1 1 2Opcion 2 3 6 4 3

Colegio DISTANCIAS1 4 0 0 22 1 1 4 23 1 3 2 24 10 5 0 45 5 5 1 66 1 0 1 1

Tabla 4: Ejemplo del calculo de las distancias

2. La distancia calculada se afecta por la prioridad del estudiante. Para cada es-

tudiante, todas las distancias a cada uno de los colegios, excepto las correspon-

dientes a aquellos seleccionados como opciones por los padres, se multiplican

por el ındice de prioridad del estudiante. Recuerde que los indices estan orde-

nados de menor a mayor, representando 1 los estudiantes con mayor prioridad.

Por ejemplo, considerando los datos de la Tabla , las distancias afectadas por

la prioridad del estudiante serıan:

55

Page 66: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Estudiante 1 2 3 · · · nPrioridad 2 1 1 3Opcion 1 2 1 1 2Opcion 2 3 6 4 3

Colegio COSTOS1 8 0 0 62 1 1 4 23 1 3 2 24 20 5 0 125 10 5 1 186 2 0 1 3

Tabla 5: Ejemplo del calculo de las distancias afectadas poor la prioridad

3. Se calcula la distancia de cada estudiante al colegio ficticio (nodo con capacidad

igual a la demanda en exceso). Para ello, se selecciona la mayor de todas las

distancias afectadas, Llamese D, calculadas en el paso 2, y se multiplica por un

factor determinado previamente, con el fin de hacerla suficientemente grande

para desmotivar su seleccion. Para cada estudiante la distancia al nodo ficticio

sera igual D multiplicado por un factor relacionado con la prioridad. Ası, el

costo de asignacion al colegio ficticio sera:

D × (k + 1− prioridadi) (29)

En donde,

k: Numero de niveles de prioridad

prioridadi: ındice de prioridad asignada al estudiante i.

Note que esta definicion pretende que el valor de la distancia de los estudiantes

de mas prioridad al colegio ficticio sea mas alto pues estos no deberıan quedarse

sin asignar (es decir, ser asignados al colegio ficticio), mientras que para los

estudiantes con menos prioridad este valor va a ser mas bajo y probablemente

sea quienes queden sin asignar. Por ejemplo, para el primer estudiante en la

Tabla 2 el costo de asignacion al colegio ficticio sera igual a D × (k + 1− 2).

Asumiendo que el factor por el cual se multiplica el mayor costo calculado en el

56

Page 67: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

paso 2 es 5 y que el nivel de prioridad de los estudiantes esta entre 1 y 5; el costo

de asignacion del estudiante 1 al colegio ficticio es c = 5×20×(5+1−2) = 400

4. Calcular el beneficio. hasta el momento se ha estimado un costo de asigna-

cion, sin embargo como se pretende maximizar el beneficio, estos se calculan

sustrayendo a cada uno de los costos el maximo de todos ellos. De modo que

aquellas asignaciones (estudiante-colegio) con menor costo, se convertiran en

las de mayor beneficio, mientras que las de mayor costo generaran un menor

beneficio.

Con el fin de observar como podrıa comportarse una definicion similar de los be-

neficios para ser empleada en alguna de las estrategias de solucion, se efectuaron

9 corridas en instancias de asignacion de 10,000 estudiantes a 100 colegios. Estas

instancias fueron generadas bajo las siguientes condiciones.

i.) Las capacidades de los colegios se generaron como una distribucion uniforme

entre 50 y 150, siendo la capacidad del colegio ficticio igual a la diferencia

entre el numero de estudiantes y la suma de las capacidades de los 99 colegios

restantes (la capacidad del colegio ficticio es 0 si la diferencia es negativa)

ii.) Las distancias de cada estudiante a cada colegio se generan como una distribu-

cion uniforme entre 0 y 20. Ası mismo, las prioridad asignada a cada estudiante

se genera como una distribucion uniforme entre 1 y 5.

iii.) Las opciones de preferencia de cada estudiante (2 opciones) se generan de la

siguiente forma:

• Existe una probabilidad dada de que el estudiante desee ser asignado a

un conjunto especıfico de colegios (25 colegios), y la probabilidad restante

de que seleccione como opcion un colegio de los 75 restantes.

• Aleatoriamente se identifica a cual de los dos conjuntos de colegios desea

ser asignado el estudiante y se genera mediante una distribucion uniforme

la institucion particular, dentro del conjunto, en la que desea obtener un

cupo. De igual manera se efectua para la segunda opcion.

57

Page 68: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

• Se emplearon tres valores diferentes para la probabilidad de que el estu-

diante desee un cupo en el conjunto de 25 colegios (colegios mas deman-

dados), estos valores fueron 0,6, 0,5 y 0,4, efectuandose tres corridas para

cada uno de ellos.

El procedimiento descrito para determinar las opciones de colegio seleccionadas

por el estudiante busca reflejar la situacion en la cual existen colegios con

mayor demanda que otros, lo cual puede dificultar el proceso de asignacion.

Algunos de los resultados mas importantes de la ejecucion de estas instancias se

presentan en la Tabla 6:

Probabilidad 0,6 0,5 0,4Instancia 1 2 3 1 2 3 1 2 3

A (%) 99,5 99,8 99,3 99,1 98,8 99,6 100,0 98,3 98,2B (%) 30,1 30,0 30,1 30,7 29,3 30,3 30,2 30,6 31,2

C (%) 100,0 100,0 100,0 100,0 100,0 100,0 100,0 100,0 100,0DISTANCIA

entre 0 y 1 (%) 19,5 19,9 19,3 20,2 19,3 19,4 19,5 20,2 20,5entre 0 y 2 (%) 86,0 83,0 84,3 81,5 86,5 85,0 86,0 84,6 83,3entre 0 y 3 (%) 93,0 90,1 91,4 88,4 92,9 91,8 93,3 91,7 90,2entre 0 y 4 (%) 95,6 92,8 93,9 90,7 95,5 94,5 96,0 94,2 92,7entre 0 y 5 (%) 97,2 94,3 95,4 92,3 97,0 96,2 97,7 95,9 94,6entre 0 y 6 (%) 97,7 94,7 95,9 92,9 97,5 96,8 98,2 96,6 95,1entre 0 y 7 (%) 97,9 94,8 96,0 93,1 97,7 96,9 98,3 96,7 95,2entre 0 y 8 (%) 97,9 95,0 96,1 93,2 97,8 97,0 98,4 96,7 95,3entre 0 y 9 (%) 0,0 0,0 0,0 0,0 0,0 97,1 98,4 96,8 95,3A:Procentaje de Estudiantes de prioridad 1 asignados a una OpcionB:Procentaje Total de Estudiantes asignados a una OpcionC:Procentaje de estud. no asignados pertenecientes a prioridad 5

Tabla 6: Resultados de Ejecucion de Instancias de Prueba

De los resultados presentados es importante observar como:

En todas las corridas realizadas, mas del 98 % de los estudiantes con prioridad

1, fueron asignados a alguno de los colegios considerados por los padres como

la opcion de su preferencia.

58

Page 69: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

En la mayorıa de los casos mas del 30 % de los estudiantes fue asignado a una

de las instituciones consideradas por los padres como de su preferencia.

En todas las corridas realizadas, todos los estudiantes que no pudieron ser

asignados pertenecıan al menor nivel de prioridad, 5 en este caso.

En la mayorıa de las corridas realizadas mas del 90 % de los estudiantes fue

asignado a instituciones ubicadas a una distancia de tres o menos unidades de

medida de su hogar, esto es aun mas importante si se recuerda que el parametro

empleado para la distribucion de la distancia genero distancia maximas de 20

unidades.

Puede observarse como dependiendo de las caracterısticas particulares de la instancia

del problema de asignacion que se pretende resolver, puede formularse una funcion

para calcular los beneficio que han de ser usados en alguna de las estrategias de

solucion al problema y que permitan satisfacer muchas de las condiciones deseables

en la asignacion obtenida.

6.2. Proceso de Asignacion de Cupos

En el capıtulo 2 fue descrito el proceso desarrollado por la Secretaria de Educa-

cion para la asignacion de cupos en el sistema de educacion del distrito, dandose

particular interes a la asignacion de estudiantes nuevos. Se senalo tambien como la

situacion problematica de estudio, precisamente la asignacion de este conjunto de

estudiantes, formulandose matematicamente el problema allı inmerso. Las estrate-

gias de solucion planteadas en los capıtulos anteriores se enmarcan en una etapa, la

asignacion misma, dentro del proceso completo de matrıcula Se presentan a conti-

nuacion al menos de dos formas diferentes, de como pueden ser usados los modelos

descritos en el desarrollo de este trabajo dentro de dicho proceso, particularmente

para contribuir a la asignacion de los estudiantes.

59

Page 70: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

6.2.1. Alternativa de Aplicacion 1

Como se planteo en el capıtulo 2, la asignacion de los estudiantes nuevos se fun-

damenta en dos procesos: la asignacion por opciones y la asignacion por georefe-

renciacion. Brevemente, puede describirse este proceso como, la asignacion de los

estudiantes ordenados por sus prioridades,2 de manera que los estudiantes van

siendo asignados a las opciones para las cuales presentaron solicitud en orden de su

prioridad, aquellos para los que no es posible satisfacer la asignacion por opciones,

son ubicados mediante un sistema de georrefernciacion al colegio mas cercano, con-

servando nuevamente para esta asignacion el orden determinado por las prioridades

definidas.

La primera alternativa de aplicacion o forma como pueden usarse las estrategias de

solucion del problema de asignacion, es mas cercena al proceso actualmente seguido.

El procedimiento de asignacion podrıa desarrollarse siguiendo los siguientes pasos.

PASO 1. Se asigna a cada estudiante, de igual manera a como actualmente

se desarrolla, la prioridad que le corresponde dentro del proceso de asignacion

PASO 2. Se identifica el conjunto de estudiantes con mayor prioridad, que aun

no haya sido asignado, se determina la mejor asignacion, respecto al beneficio

total de la asignacion , para todo el conjunto de estudiantes simultaneamente,

para ello se emplea alguna de las estrategias de solucion presentadas anterior-

mente.

PASO 3. Se determina si existen aun estudiantes sin asignar, pertenecientes

a otros niveles de prioridad, y si existen cupos disponibles en algunas institu-

ciones, de ser ası se regresa al paso 2. En caso contrario, si existen estudiantes

sin asignar, pero no hay cupos disponibles, el proceso debe continuar con la

exploracion de estrategias de ampliacion de cobertura que disponga el distrito

2Es importante recordar que la prioridad asignada a cada estudiante es determinada por lasecretaria de educacion en funcion del estrato socio-economico del estudiante, su nivel del SISBEN,el tipo de poblacion al que pertenece (Vulnerables, desplazados, etc)

60

Page 71: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

para intentar asignar cupos a los estudiantes para los cuales que no fue posible

asignar en los cups existentes.

NOTA: Este procedimiento se repite para cada uno de los grados para los

cuales es necesario desarrollar el proceso de asignacion, de igual forma a como

se efectua actualmente en el proceso.

La Figura 12 presenta el procedimiento que corresponde a la alternativa de aplicacion

descrita.

Figura 12: Alternativa de Aplicacion 1

Esta alternativa de aplicacion preserva la naturaleza “greedy ” con la cual se desarro-

lla actualmente el proceso, sin embargo, en vez de buscar la mejor asignacion posible

del estudiante de acuerdo con la prioridad de este, se ocupa de todo un el conjunto

simultaneamente, de esta forma podrıan darse situaciones en las que algunos estu-

diantes, dentro de un mismo grupo de prioridad, no sean asignados a algunas de las

opciones presentadas para poder permitir que un grupo mas amplio de estudiantes

61

Page 72: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

sea asignado a colegios cercanos incrementando ası el beneficio total de la asignacion.

Es importante notar tambien, que la solucion del problema de asignacion de estu-

diantes debera irse tornando mas compleja a medida que se van asignando conjuntos

de estudiantes con igual prioridad. Ası, para el conjunto de estudiantes con mayor

prioridad, la disponibilidad de cupos debera sobrepasar ampliamente la demanda,

por lo que muchos de los estudiantes podran ser asignados a las opciones de colegios

senaladas pos sus padres o a colegios cercanos. Para los estudiantes pertenecientes

a conjuntos con las menores prioridades, la solucion del problema requerira la con-

sideracion de cupos ficticios para igualar la oferta a la demanda, implicando que

algunos de estos estudiantes no podran ser asignados (seran asignados al colegio o

nodo ficticio generado) y que en general pocos de ellos encontraran un cupo dentro

de las opciones de colegios indicadas por sus padres.

Note tambien, que en esta alternativa de aplicacion las prioridades y los beneficios

(que bien podrıan ser el inverso aditivo de las distancias o la deferencia entre una

constante M suficientemente grande y las distancias) son considerados separada-

mente. Ası la definicion de la funcion de beneficio es mas sencilla que la presentada

en la Seccion 6.1. Adicionalmente, no puede perderse de vista que la solucion del

problema puede corresponder a instancias en las cuales se consideran restricciones

adicionales, las cuales pueden ser tenidas en cuenta de la forma como se describe

en el Capitulo 5 usando la estrategia de solucion que mas se ajuste al problema

particular (Algoritmo de Subasta o Branch-and-Price)

6.2.2. Alternativa de Aplicacion 2

La segunda alternativa de aplicacion de las estrategias de solucion presentadas, den-

tro del proceso de asignacion de cupos escolares, difiere de la forma como actualmente

se desarrolla dicho proceso. En esta alternativa podrıan considerarse simultanea-

mente todos los estudiantes que aspiran a un cupo en un determinado grado y se

efectuarıa para ellos el proceso de asignacion mediante alguna de las dos estrategias

de solucion descritas en capıtulos anteriores.

62

Page 73: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

La Figura 13 permite observar la forma como se desarrollarıa el proceso de asignacion

al implementar la alternativa de aplicacion 2.

Figura 13: Alternativa de Aplicacion 2

En esta alternativa toma mayor relevancia la definicion de la funcion de beneficios,

pues debera representarse en este valor tanto la prioridad como la distancia y demas

consideraciones para la asignacion en la instancia particular, de modo similar a como

se presento en la Seccion 6.1. Esta alternativa abandona el la naturaleza “greedy”

del proceso que actualmente se desarrolla, sin embargo al igual que en la alternativa

anterior sera necesario hacer uso de las estrategias de ampliacion de cobertura de la

Secretaria, para poder asignar a aquellos estudiantes a los que no les fue asignado

un cupo dentro del proceso de asignacion (Es decir, aquellos que fueron asignados

al colegio o nodo ficticio).

63

Page 74: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Esta alternativa corresponde fundamentalmente a resolver un problema de asigna-

cion como el formulado en (P1), quizas con la consideracion de extra-restricciones,

para cada uno de los grados en los que se requiera asignar estudiantes. Para ello

y dependiendo de la instancia particular el algoritmo de subastas puede resultar

apropiado, aun mas si se considera que presenta mayor eficiencia en al solucion que

el algoritmo de Branch-and-Price, particularmente para instancias grandes como las

que podrıan presentarse.

64

Page 75: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Capıtulo VII

Conclusiones

Con el fin de hacer mas claras las conclusiones que es posible obtener a partir

del trabajo desarrollado, estas se agruparon segun tengan relacion con los temas

desarrollados dentro del proyecto.

7.1. Conclusiones Respecto a la Contextualizacion del Pro-ceso de Asignacion

La Secretaria de educacion del Distrito tiene completamente definido el proceso de

matrıcula, dentro del cual se destaca la etapa de asignacion de cupos a los estudian-

tes. Dependiendo de los lineamientos fijados por la Secretaria los estudiantes pueden

clasificarse en antiguos y nuevos; para cada uno de estos grupos estan claramente

definidos los procedimientos de asignacion de cupos. La estrategia de renovacion

automatica y traslados rige la asignacion de estudiantes antiguos, mientras que las

estrategias de opciones y georeferenciacion estan asociadas a la asignacion de cupos

para estudiantes nuevos. El procedimiento seguido para la asignacion del conjun-

to de estudiantes nuevos, mediante opciones o gereferenciacion, se identifica como

el punto en el cual el uso de modelo matematicos, particularmente del area de in-

vestigacion de operaciones, puede contribuir en el mejoramiento del resultado del

proceso, puesto que la forma en la que se desarrolla actualmente dista de pretender

optimizar el beneficio obtenido en la asignacion y por el contrario corresponde a una

heurıstica para obtener una solucion factible del problema, no necesariamente una

buena solucion.

65

Page 76: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

En la asignacion de cupos a los estudiantes nuevos, se puede identificar una ins-

tancia particular de un problema similar al problema de asignacion o al problema

de transporte. La solucion de este problema adquiere complejidad debido al gran

numero de variables que deben considerarse en su solucion, esto debido en gran

parte al numero de estudiantes involucrados en el proceso de asignacion de cupos.

El problema que se enfrenta corresponde a un problema binario, sin embargo, su

solucion a traves de metodos tradicionales como Branch-and-Bound no resulta efi-

ciente y se requiere explorar alternativas diferentes para la solucion del mismo. Las

dos estrategias de solucion que se exploran corresponden a algoritmos de Subasta,

comunmente empleados en propuestas de solucion a problemas de asignacion, y el

algoritmo de Branch-and-Price, el cual se fundamenta en el esquema de generacion

de columnas dentro del algoritmo Branch-and-Bound.

La forma como actualmente se desarrolla esta actividad, se asemeja a los algoritmos

greedy empleados para diversos problemas enteros (Knapsack, Binpacking, Asig-

nacion), los cuales no proveen soluciones optimas e incluso, dependiendo de cuan

elaborados sean o no, pueden generar soluciones bastante distantes de dicho optimo.

Las estrategias propuestas para ser empleadas en el proceso, pretende desarrollar

mas rigurosamente el proceso de asignacion, empleando como objetivo la maximi-

zacion del beneficio generado por la asignacion de los estudiantes a los distintos

colegios.

7.2. Conclusiones Respecto a las Estrategias de Solucion

El algoritmo de Subastas, inicialmente presentado por el profesor Bertsekas, para

problemas de asignacion, puede ser modificado de modo que permita la considera-

cion de instancias de problemas como el que se estudia en este proyecto. La oferta de

un numero determinado de cupos por cada institucion, requieren que el algoritmo

considere la presencia de objetos (cupos) similares, con el fin de mejorar su eficiencia.

Esta modificacion del algoritmo es solo una de las consideraciones realizadas sobre

el y han permitido que sea utilizado en la solucion de problemas mas generales como

el denominado GAP (Problema de Asignacion Generalizada)

66

Page 77: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

El Algoritmo de Subastas brevemente descrito en el desarrollo de este proyecto, es

un algoritmo eficiente, de facil comprension e implementacion y cuyo tiempo de

ejecucion esta en relacion con algunos de los parametros que caracterizan la ins-

tancia. Si bien no es un algoritmo de tiempo polinomial, su tiempo de ejecucion es

seudopolinomial y esta determinado por los valores particulares de los beneficios de

asignacion, el numero de estudiantes y el numero de colegios. Las corridas realizadas

de este algoritmo en instancias generadas aleatoriamente, a lo largo del desarrollo del

proyecto, evidencian que es una estrategia atractiva para ser usada en el proceso de

asignacion de cupos pues incluso permite la consideracion de restricciones respecto

a los colegios a los cuales puede ser asignado cada estudiante.

En el desarrollo de este trabajo pudo evidenciarse la convergencia lenta del algorit-

mo de generacion de columnas, comunmente referida en la literatura, ası mismo fue

posible evidenciar mediante corridas del algoritmo implementado, el comportamien-

to oscilatorio y poco estable de las variables en el problema dual, que junto con la

degeneracion son senaladas de ser una de las causas del problema de convergencia

de dicho algoritmo.

Si bien se observo que la convergencia del algoritmo de generacion de columnas es

lenta, lo cual afecta seriamente la viabilidad de su uso en estrategias de solucion

como el algoritmo Branch-and-Price, tambien fue posible observar alternativas para

atenuar esta problematica. De manera particular se recurrio al uso de estrategias

de estabilizaron del algoritmo de generacion de columnas enmarcadas dentro de la

Programacion Lineal, lo cual hace posible el uso de las herramientas comunmente

utilizadas para este tipo de problema. Fue posible comprender la manera de imple-

mentar este tipo de estrategias de estabilizarıan, ası como observar como la forma

en que su uso reduce considerablemente el numero de iteraciones requeridas para

la solucion del problema. Adicionalmente se planteo el uso de cotas respecto al va-

lor de la funcion objetivo, que permitan terminar anticipadamente el algoritmo de

generacion de columnas. Esto con el fin de intentar construir buenas soluciones a

67

Page 78: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

partir de la solucion encontrada o emplear dichas cotas para la exploracion del arbol

de busqueda en el algoritmo Branch-and-Price.

Si bien el uso de las estrategias senaladas anteriormente para el algoritmo de genera-

cion de columnas, son de utilidad para mejorar su convergencia, aun son necesarias

consideraciones adicionales o el uso de estrategias diferentes, con el fin de acelerar

y mejorar su desempeno, de modo que pueda pensarse en su uso en problemas de

mayor escala. Ası por ejemplo, es necesario considerar la forma de inicializar los

metodos de estabilizacion con mejores estimaciones de los valores duales, de modo

que las primeras iteraciones sean mas productivas. De igual manera es importante

considerar que la eficiencia del algoritmo Branch-and-Price estara influenciada por

los problemas senalados para el algoritmo de generacion de columnas, puesto que

este debe ser repetido intensivamente durante el proceso de solucion.

Dadas todas las consideraciones senaladas anteriormente para las dos estrategias

de solucion propuestas en este proyecto, el Algoritmo de Subasta, la modificacion

de este presentada en el Capıtulo 3, se presenta como la alternativa de solucion

para la instancia basica del problema (P1). Adicionalmente este algoritmo puede

ser modificado de modo que permita dar solucion a instancias que consideren cierto

tipo de restricciones adicionales, como se presento en el Capitulo 5

7.3. Conclusiones Respecto a la Aplicabilidad en el Procesode Asignacion

Las estrategias de solucion presentadas en el desarrollo de este proyecto, son aplica-

bles dentro del proceso de asignacion de cupos que desarrolla actualmente la Secre-

taria de Educacion. La implementacion de estas estrategias estarıa soportada sobre

el mismo sistema de informacion y el mismo procedimiento definido para el proceso

de matrıcula, simplemente reemplazarıa el proceso de asignacion como tal, que da-

das las condiciones de ejecucion actual no esta orientado a generar la asignacion de

los estudiantes que maximice u optimice algun criterio particular.

68

Page 79: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Los modelos de soporte al proceso de asignacion, que se proponen como estrategias

de solucion al problema particular de asignacion, corresponden a un cambio en el

enfoque “greedy ” que actualmente inspira la asignacion de cupos escolares, por en-

foques mas fundamentados y rigurosos matematicamente.

La comparacion de las diferentes formas de desarrollar la asignacion de cupos escola-

res y la estimacion de la mejora alcanzada a traves de la aplicacion de las estrategias

propuestas en este proyecto, solo es posible con el compromiso de la Secretaria de

Educacion. Para este fin es necesario poder acceder a la informacion real y los resul-

tados obtenidos con tanto en el proceso actual como con la aplicacion de los modelos

propuesto.

Es relevante desarrollar un analisis crıtico de los procesos desarrollados en la Se-

cretaria de Educacion ası como la identificacion de puntos en los cuales sea posible

contribuir a traves del estudio de modelos de apoyo a estas labores. De manera parti-

cular quedan abiertos temas relacionados al desarrollado en este proyecto, dentro de

los cuales se desataca el estudio de la localizacion de futuros colegios, de modo que

se logre una mejor cobertura de la demanda futura por cupos escolares en el Distrito.

69

Page 80: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Apendice A

Implementacion del Algoritmo de Subasta

A.1. Descripcion de la Implementacion

el algoritmo de subastas fue implementado en JAVA, a continuacion se describen

las clases creadas ası como la forma en la cual estas interactuar, posteriormente se

anexa el codigo fuente de dichas clases.

i.) Clase Auction. Esta es la clase principal del algoritmo, a partir de ella se

van generando los objetos necesarios para la ejecucion del mismo. Esta clase

tiene los siguientes metodos:

• Metodo Auction . Este corresponde al metodo constructor y define va-

lores validos para los principales parametros del algoritmo.

• Metodo leer . Este metodo captura los datos desde un archivo txt. como

el que se presenta como ejemplo al final de este anexo.

• Metodo inicio. Este metodo genera las condiciones apropiadas para el

inicio del algoritmo a partir de los datos capturados, para ello crea los

arreglos de estudiantes, colegios y cupos.

• Metodo iteracion . Metodo que controla las iteraciones o rondas de

la subasta, ejecuta la mayor parte del algoritmo en rondas o iteraciones

sucesivas hasta satisfacer las condiciones de optimalidad

• Metodo imprimir . Metodo que las asignaciones definitivas de cada

colegio.

70

Page 81: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

ii.) Clase Subasta. Esta clase corresponde a los objetos que desarrollan cada

subasta o ronda, entre actualizaciones sucesivas del valor de epsilon. Esta clase

tiene los siguientes metodos:

• Metodo reinicar . Reestablece las condiciones iniciales necesarias para

el comienzo de cada ronda de la subasta

• Metodo corrida . Este metodo desarrolla la subasta, es decir controla

el flujo de las ofertas y contra ofertas por los distintos objetos.

iii.) Clase Estudiante. Esta clase corresponde a los objetos que cumplen las

funciones de oferentes dentro de la subasta. Tiene un unico metodo.

• Metodo oferta . Determina la el objeto, cupo, por el cual el estudiante

ofrecera en la iteracion de la subasta, ası como el valor de dicha oferta.

iv.) Clase Colegio. Esta clase corresponde a los objetos que cumplen las funciones

de los colegios, es decir la oferta en la subasta. El unico metodo que posee es

el que permite imprimir los estudiantes que le han sido asignados.

v.) Clase Cupo. Esta clase corresponde a los objetos que cumplen las funciones

de objetos dentro de la subasta, en realidad cada colegio genera un nume-

ro determinado de cupos por los cuales los estudiantes ofrecen dentro de la

subasta.

vi.) Clase Pendiente. Es una clase auxiliar de objetos que permiten emplear las

listas ordenadas para determinar los estudiantes pendientes de ser asignados.

A.2. Codigo Fuente

Archivo Auction.javaimport java . u t i l . ∗ ;

import java . lang .Math ;

import javax . swing . ∗ ;

/∗∗ Creado e l 18−sep−2005

∗ Imp l emtac i n de l Algoritmo AUCTION SO Creado Por Dimitr i Bertsekas

∗∗/

71

Page 82: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

/∗∗∗ @author Pablo Andr s Maya Duque

∗/

/∗∗ Clase Pr i n c i pa l de l Algoritmo ∗/

pub l i c c l a s s Auction {i n t Ncoleg , Nestud , cerrados , capmin , Tota l I t e rac , f a c t o r ;

double eps i l on , bigM ;

i n t capac [ ] ;

i n t b en e f i c [ ] [ ] ;

ArrayList Estpend = new ArrayList ( ) ;

Cupo cupos [ ] ;

Estudiante Estudiantes [ ] ;

Co leg io c o l e g i o s [ ] ;

pub l i c s t a t i c void main ( St r ing [ ] a rgs ) {Auction a=new Auction ( ) ;

a . l e e r (”C:// Documents and Se t t i ng s //OTRO// E s c r i t o r i o //” +

”AUCTION algorithm Sept 24// datos10 . txt ” ) ;

a . i n i c i o ( ) ;

a . i t e r a c i o n ( ) ;

a . imprimir ( ) ;

}

/∗∗ Crea una nueva i n s t an c i a de Auction ∗/

pub l i c Auction ( ) {ce r rados =0;Ncoleg=4;Nestud=10; capmin=1000000; To ta l I t e r a c =0;

}

/∗∗ M todo para l e e r datos de ar ch ivo s de entrada ∗/

pub l i c void l e e r ( S t r ing nombre ){i n t i =0, j =0;

t ry {java . i o . Fi leReader arch ivo = new java . i o . Fi leReader ( nombre ) ;

java . i o . BufferedReader entrada = new java . i o . BufferedReader ( arch ivo ) ;

S t r ing s ;

java . u t i l . S t r ingToken ize r s t r ;

System . out . p r i n t l n (” Archivo encontrado ” ) ;

whi le ( entrada . ready ( ) ){//Leer bigM

s=entrada . readLine ( ) ;

s t r=new java . u t i l . S t r ingToken ize r ( s ) ;

bigM = Int ege r . pa r s e In t ( s t r . nextToken ( ) ) ;

System . out . p r i n t l n (” Valor de big M= ”+bigM ) ;

// Leer e l n mero de i n s t i t u c i o n e s

s=entrada . readLine ( ) ;

s t r=new java . u t i l . S t r ingToken ize r ( s ) ;

Ncoleg = In t ege r . pa r s e In t ( s t r . nextToken ( ) ) ;

System . out . p r i n t l n (” N mero de i n s t i t u c i o n e s= ”+Ncoleg ) ;

capac = new in t [ Ncoleg ] ;

// Leer e l n mero de Estudiantes

s=entrada . readLine ( ) ;

s t r=new java . u t i l . S t r ingToken ize r ( s ) ;

Nestud= Int ege r . pa r s e In t ( s t r . nextToken ( ) ) ;

System . out . p r i n t l n (” N mero de Estudiantes= ”+Nestud ) ;

b en e f i c = new in t [ Nestud ] [ Ncoleg ] ;

// Leer capacidad de I n s t i t u c i o n e s

s=entrada . readLine ( ) ;

s t r=new java . u t i l . S t r ingToken ize r ( s ) ;

i f ( s t r . countTokens ( ) != Ncoleg ) throw new Exception ( ) ;

f o r ( i =0; i<Ncoleg ; i++){

72

Page 83: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

capac [ i ] = In t eg e r . pa r s e In t ( s t r . nextToken ( ) ) ;

}//Leer b en e f i c Estudiante i n s t i t u c i n

f o r ( j =0; j<Nestud ; j++){s=entrada . readLine ( ) ;

s t r = new java . u t i l . S t r ingToken ize r ( s ) ;

i f ( s t r . countTokens ( ) != Ncoleg ) throw new Exception ( ) ;

f o r ( i =0; i<Ncoleg ; i++){bene f i c [ j ] [ i ] = In t eg e r . pa r s e In t ( s t r . nextToken ( ) ) ;

}}

System . out . p r i n t l n (” Archivo l e i d o con ex i t o ” ) ;

}entrada . c l o s e ( ) ;

} catch ( Exception e ){System . out . p r i n t l n (”No se pudo l e e r e l a rch ivo ” ) ;

}}

/∗∗ M todo de In i c i o , para c r ea r e s tud iante s , cupos y l i s t a de pend ientes ∗/

pub l i c void i n i c i o ( ){//Genera e l a r r e g l o de e s tud i an t e s

Estudiantes=new Estudiante [ Nestud ] ;

f o r ( i n t k = 0 ; k < Nestud ; k ++){Estudiantes [ k]=new Estudiante (k , Ncoleg ) ;

}//Genera a r r e g l o de Cupos

cupos =new Cupo [ Nestud ] ;

i n t sumacap=0;

f o r ( i n t k = 0 ; k < capac . l ength ; k ++) {f o r ( i n t i = 0 ; i < capac [ k ] ; i++ ) {

cupos [ sumacap+i ]=new Cupo(k , Nestud ) ;

}sumacap=sumacap+capac [ k ] ;

}//Genera e l a r r e g l o de c o l e g i o s

c o l e g i o s=new Coleg io [ Ncoleg ] ;

f o r ( i n t i = 0 ; i < Ncoleg ; i ++){c o l e g i o s [ i ]=new Coleg io ( i , capac [ i ] ) ;

}}

/∗∗ Metodo que cont ro l a l a s i t e r a c i o n e s o rondas de l a subasta ∗/

pub l i c void i t e r a c i o n (){St r ing a=JOptionPane . showInputDialog (” Valor de Eps i lon ” ) ;

S t r ing b=JOptionPane . showInputDialog (” Factor de reducc ion de ep s i l o n ” ) ;

e p s i l o n=Double . parseDouble ( a ) ;

f a c t o r=In t ege r . pa r s e In t (b ) ;

e p s i l o n=ep s i l o n ∗ f a c t o r ;

i n t opt=0;

//Genera un subasta ( Objeto ) que r e a l i z a l a subasta

Subasta ronda=new Subasta ( Estpend . s i z e ( ) ) ;

double aux=Math . pow( Ncoleg , −1);

System . out . p r i n t l n (” aux ”+aux ) ;

whi le ( eps i l on>=aux ){opt+=1;

ep s i l o n=ep s i l o n / f a c t o r ;

ronda . r e i n i c i a r (Nestud , Ncoleg , bene f i c , Estudiantes , cupos , Estpend , c o l e g i o s ) ;

ronda . c o r r i da (bigM , eps i l on , Nestud , Ncoleg , Estudiantes , bene f i c , cupos ,

Estpend , c o l e g i o s ) ;

To ta l I t e r a c+=ronda . NoOfertas ;

73

Page 84: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

System . out . p r i n t l n (”RONDA: ”+opt+” ; Eps i lon : ”+ep s i l o n+” ; NoIter Ronda :

+ ronda . NoOfertas+” ; Total I t e r : ”+Tota l I t e r a c+” ; Costo Asig : ”+ronda . cos to ) ;

}}

pub l i c void imprimir ( ){System . out . p r i n t l n (” Esudiantes Asignados por c o l e g i o ” ) ;

f o r ( i n t i =0; i<c o l e g i o s . l ength ; i++){c o l e g i o s [ i ] . imprimir ( i ) ;

}}

}

Archivo Colegio.java/∗∗ Created on 25−sep−2005

∗∗ TODO To change the template f o r t h i s generated f i l e go to

∗ Window − Pre f e r ence s − Java − Code Sty l e − Code Templates

∗/

/∗∗∗ @author Pablo Andr s Maya

∗/

/∗∗ Clase que enera cada i n s t i t u c i o n para l a que debe encont ra r s e una a s i g n a c i n .∗/

pub l i c c l a s s Coleg io {//Genera i d e n t i f i c a d o r de l c o l e g i o y vector con e s tud i an t e s as ignados

i n t id ;

i n t c o s t o c o l e g ;

i n t capacidad ;

i n t as ignados [ ] ;

pub l i c Coleg io ( i n t i , i n t capac i ) {id=i ;

c o s t o c o l e g =0;

capacidad=capac i ;

as ignados=new in t [ capacidad ] ;

}

pub l i c void imprimir ( i n t i ) {System . out . p r in t (” Coleg io ”+( i +1)) ;

f o r ( i n t j =0; j<capacidad ; j++){System . out . p r in t (” ”+( as ignados [ j ]+1 ) ) ;

}System . out . p r i n t l n (” ” ) ;

}/∗∗ pub l i c void Costo ( i n t b en e f i c ){

c o s t o c o l e g =0;

f o r ( i n t i =0; i<as ignados . l ength ; i++ ){c o s t o c o l e g+=bene f i c [ t h i s as ignados [ i ] ] [ 2 ] ;

}}∗/

}

Archivo Estudiante.java/∗∗ Creado e l 19−sep−2005

∗/

74

Page 85: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

/∗∗∗ @author Pablo Andr s Maya Duque

∗/

/∗∗ Clase que genera Estudiantes ( personas ) para s e r as ignadas ∗/

pub l i c c l a s s Estudiante {// i d e n t i f i c a d o r de l e s tud iant e

i n t id ;

// c o l e g i o a l cua l es as ignado e l e s tud iant e

i n t co l eg ;

// i n d i c e s y va l o r e s para l o s dos ob j e to s mas va lorados por e l e s tud iant e

i n t cupoofrec1 , cupoof rec2 ;

double mayor1 , mayor2 ;

// o f e r t a que r e a l i z a e l e s tud iant e por e l cupo de mayor v a l o r a c i n

double o f e r t a ;

/∗∗ M todo cons t ruc to r ∗/

pub l i c Estudiante ( i n t k , i n t Ncoleg ) {id=k ;

co l eg=Ncoleg+1;

}

/∗∗ M todo que genera l a o f e r t a de l e s tud iant e por e l cupo de mayor va l o ra c i on ∗/

pub l i c void Oferta ( i n t b ene f i c [ ] [ ] , Cupo cupos [ ] , i n t Nestud , double bigM , double ep s i l o n ) {mayor1=−100∗bigM ;

mayor2=−100∗bigM ;

cupoof rec1=cupos . l ength +1;

cupoof rec2=cupos . l ength +1;

//Busca cupo de mayor va l o ra c i on

f o r ( i n t j= 0 ; j < cupos . l ength ; j ++){i f ( b en e f i c [ id ] [ cupos [ j ] . c l a s e ]−cupos [ j ] . prec io>=mayor1 ) {

cupoof rec1=j ;

mayor1=bene f i c [ id ] [ cupos [ j ] . c l a s e ]−cupos [ j ] . p r e c i o ;

}}

//Busca cupo de segunda mayor v a l o r a c i n y de d i s t i n t a c l a s e s im i l a r

f o r ( i n t j= 0 ; j < cupos . l ength ; j ++){i f ( cupos [ j ] . c l a s e !=cupos [ cupoof rec1 ] . c l a s e ){

i f ( b en e f i c [ id ] [ cupos [ j ] . c l a s e ]−cupos [ j ] . prec io>=mayor2 ) {cupoof rec2=j ;

mayor2=bene f i c [ id ] [ cupos [ j ] . c l a s e ]−cupos [ j ] . p r e c i o ;

}}

}o f e r t a=cupos [ cupoof rec1 ] . p r e c i o+mayor1−mayor2+ep s i l o n ;

}

}

Archivo Subasta.javaimport java . u t i l . ∗ ;

/∗∗ Clase que genera una subasta , Objeto que d e s a r r o l l a cada una de

∗ l a s i t e r a c i o n e s o rondas de subastas . ∗/

pub l i c c l a s s Subasta {i n t aux1 ;

i n t o f r e c e ;

i n t cos to ;

i n t NoOfertas ;

pub l i c Subasta ( i n t k ) {aux1=k ;

75

Page 86: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

}/∗∗ M todo que r e i n i c i a l a Subasta :

∗ 1 . I n i c i a con un conjunto de a s i gnac i one s vac io (Ningun e s tud iante t i e n e c o l e g i o as ignado )

∗ 2 . Actua l i za e l p r e c i o de cada cupo , hac i endo lo i gua l a l p r e c i o de l a s o l u c i on optima

∗ de l a i t e r a c i n an t e r i o r

∗ 3 . I n i c i a cada Cupo s i n e s tud iante as ignado

∗ 4 . Genera Listado I n i c i a l de e s tud i an t e s pend ientes

∗ (Todos l o s e s tud i an t e s i n i c i a n como pendientes , s i n cupo )

∗/

pub l i c void r e i n i c i a r ( i n t Nestud , i n t Ncoleg , i n t b en e f i c [ ] [ ] , Estudiante Estudiantes [ ] , Cupo cupos [ ] ,

L i s t Estpend , Coleg io c o l e g i o s [ ] ) {

f o r ( i n t j =0; j<Nestud ; j++){Estudiantes [ j ] . c o l e g=Ncoleg+1;

t ry {cupos [ j ] . p r e c i o=bene f i c [ cupos [ j ] . e s t a s i g ] [ cupos [ j ] . c l a s e ] ;

} catch ( java . lang . ArrayIndexOutOfBoundsException e2 ){}cupos [ j ] . e s t a s i g=Nestud+1;

}f o r ( i n t k = 0 ; k < Nestud ; k ++){

Estpend . add (new Pendiente (k ) ) ;

}f o r ( i n t k=0; k<c o l e g i o s . l ength ; k++ ){

c o l e g i o s [ k ] . c o s t o c o l e g =0;

}}

pub l i c void co r r i da ( double bigM , double eps i l on , i n t Nestud , i n t Ncoleg , Estudiante Estudiantes [ ] ,

i n t b en e f i c [ ] [ ] , Cupo cupos [ ] , L i s t Estpend , Coleg io c o l e g i o s [ ] ) {//System . out . p r i n t l n (” tama o de l i s t a ”+Estpend . s i z e ( ) ) ;

i n t e s t s a c a r ;

i n t e s t e n t r a r ;

i n t sumacapa ;

NoOfertas=0;

whi le ( Estpend . s i z e ()>0 ){// I n i c i o de l a L i s ta de Pendientes

aux1=0;

cos to =0;

//Guarda e l id de l e s tud iant e que va a s e r as ignado

e s t e n t r a r =((Pendiente ) Estpend . get ( aux1 ) ) . r e f e s t ;

t ry {//Llama a l metodo Oferta de ese es tud iante , para determinar cupo y o f e r t a

Estudiantes [ e s t e n t r a r ] . Oferta ( bene f i c , cupos , Nestud , bigM , ep s i l o n ) ;

//AActualiza e l conjunto de As ignac iones ( ad i c i ona / r e t i r a e s tud i an t e s )

i f ( cupos [ Estudiantes [ e s t e n t r a r ] . cupoo f rec1 ] . e s t a s i g <Nestud+1){// Def ine e s tud iante a sacar de as ignados .

e s t s a c a r=cupos [ Estudiantes [ e s t e n t r a r ] . cupoo f rec1 ] . e s t a s i g ;

//Asigna e l cupo a l nuevo e s t y a c t u a l i z a cos to de l cupo

cupos [ Estudiantes [ e s t e n t r a r ] . cupoo f rec1 ] . e s t a s i g=e s t e n t r a r ;

cupos [ Estudiantes [ e s t e n t r a r ] . cupoo f rec1 ] . p r e c i o=Estudiantes [ e s t e n t r a r ] . o f e r t a ;

//Asigna a l e s tud iant e e l cupo

Estudiantes [ e s t e n t r a r ] . c o l e g=cupos [ Estudiantes [ e s t e n t r a r ] . cupoo f rec1 ] . c l a s e ;

//Saca a l e s tud iant e as ignado de pend ientes y ad i c i ona a l e s tud iant e q s a l i o

Estudiantes [ e s t s a c a r ] . c o l e g=Ncoleg+1;

//System . out . p r i n t l n (” Intercambia . Tama o L i s ta ”+Estpend . s i z e ()+”. Adiciona e s t : ”

+e s t e n t r a r +” (”+Estudiantes [ e s t e n t r a r ] . id+”)”+” a l co l eg : ”

+cupos [ Estudiantes [ e s t e n t r a r ] . cupoo f rec1 ] . c l a s e+” o f e r t a : ”

+Estudiantes [ e s t e n t r a r ] . o f e r t a ) ;

Estpend . remove ( aux1 ) ;

Estpend . add (new Pendiente ( e s t s a c a r ) ) ;

} e l s e {//Asigna e l cupo a l nuevo e s t y a c t u a l i z a cos to de l cupo

cupos [ Estudiantes [ e s t e n t r a r ] . cupoo f rec1 ] . e s t a s i g=e s t e n t r a r ;

76

Page 87: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

cupos [ Estudiantes [ e s t e n t r a r ] . cupoo f rec1 ] . p r e c i o=Estudiantes [ e s t e n t r a r ] . o f e r t a ;

//Asigna a l e s tud iant e e l cupo

Estudiantes [ e s t e n t r a r ] . c o l e g=cupos [ Estudiantes [ e s t e n t r a r ] . cupoo f rec1 ] . c l a s e ;

//Saca a l e s tud iant e as ignado de pend ientes

//System . out . p r i n t l n (” Adiciona . e p s i l o n ”+ep s i l o n+” Tamao L i s ta ”+Estpend . s i z e ( )

+”. Adiciona e s t :”+ e s t e n t r a r+” (”+Estudiantes [ e s t e n t r a r ] . id+”)”

+” a l co l eg : ”+cupos [ Estudiantes [ e s t e n t r a r ] . cupoo f rec1 ] . c l a s e

+” o f e r t a : ”+Estudiantes [ e s t e n t r a r ] . o f e r t a ) ;

Estpend . remove ( aux1 ) ;

}} catch ( java . lang . ArrayIndexOutOfBoundsException e3 ){}//System . out . p r i n t l n (” Est Pendientes : ”+Estpend . s i z e ( ) ) ;

NoOfertas+=1;

}

//Guarda l a a s i g n a c i n

sumacapa=0;

f o r ( i n t k=0;k< c o l e g i o s . l ength ; k++){f o r ( i n t j =0; j<c o l e g i o s [ k ] . as ignados . l ength ; j++){

c o l e g i o s [ k ] . as ignados [ j ]=cupos [ sumacapa+j ] . e s t a s i g ;

c o l e g i o s [ k ] . c o s t o c o l e g+=bene f i c [ c o l e g i o s [ k ] . as ignados [ j ] ] [ k ] ;

}sumacapa+=co l e g i o s [ k ] . as ignados . l ength ;

}f o r ( i n t i =0; i<c o l e g i o s . l ength ; i++){

cos to+=co l e g i o s [ i ] . c o s t o c o l e g ;

}

// Calcula cos to de l a a s i g n a c i n

/∗∗ f o r ( i n t i =0; i <Estudiantes . l ength ; i ++){t ry {

cos to+=bene f i c [ Estudiantes [ i ] . id ] [ Estudiantes [ i ] . c o l e g ] ;

} catch ( java . lang . ArrayIndexOutOfBoundsException e4 ){}}∗/

// Imprime e l cos to de l a a s i g n a c i n

//System . out . p r i n t l n (” Costo Asig ”+costo ) ;

}}

Archivo Cupo.java/∗∗ Created on 20−sep−2005

∗∗ TODO To change the template f o r t h i s generated f i l e go to

∗ Window − Pre f e r enc e s − Java − Code Sty l e − Code Templates

∗/

/∗∗∗ @author Pablo Andr s Maya Duque

∗∗/

pub l i c c l a s s Cupo {//Crea v a r i a b l e s para c la s e , e s tud iant e as ignado y pr e c i o de l cupo

in t c l a s e ;

i n t e s t a s i g ;

double p r e c i o ;

// Constructor de cupo

pub l i c Cupo( i n t k , i n t Nestud ) {c l a s e=k ;

p r e c i o =0;

e s t a s i g=Nestud+1;

77

Page 88: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

}}

Archivo Pendiente.java/∗∗ Created on 21−sep−2005

∗∗ TODO To change the template f o r t h i s generated f i l e go to

∗ Window − Pre f e r enc e s − Java − Code Sty l e − Code Templates

∗/

/∗∗∗ @author Pablo Andr s Maya D.

∗/

/∗∗ Crea ob j e t o s para i d e n t i f i c a r e s tud i an t e s en l a l i s t a de pend ientes . ∗/

pub l i c c l a s s Pendiente {i n t r e f e s t ;

pub l i c Pendiente ( i n t k ) {r e f e s t=k ;

}}

A.3. Ejemplo Archivo de datos

En el siguiente archivo la primera lınea corresponde al valor de M (constante sufi-

cientemente grande), la segunda lınea indica el numero de instituciones, la tercera

lınea corresponde al numero de estudiantes para asignar, la cuarta lınea corresponde

a las capacidades de cada colegio y las lıneas restante son los beneficios de asignacion

de cada estudiante en cada colegio, correspondiendo cada lınea a un estudiante.

Archivo datos10.txt1000

3

10

3 3 4

11 18 12

6 2 1

5 15 15

10 14 19

17 4 5

3 10 20

18 13 3

12 13 12

14 10 3

5 7 8

78

Page 89: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Apendice B

Implementacion del Algoritmo de Generacion de

Columnas

B.1. Algoritmo de Generacion de Columnas

Archivo AsignacionSinEstab.mos( !∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ASIGNACIN

Implementacion de esquema de Generacion de Columnas para r e s o l v e r

e l problema de as i gnac i on de e s tud i an t e s

− Genera e l Problema Maestro Rest ing ido como la s o l u c i on de l

problema Knapsack de cada c o l e g i o y una columna a r t i f i c i a l de

unos con b e n e f i c i o s −M

− Genera l a columna con Bene f i c i o reduc ido mas pos i t i vo ,

Reso lv iendo l o s m problemas Knapsack

− Para r e s o l v e r e l problema au x i l i a r usa un a lgor i tmo que

exp lota l a e s t ruc tu ra p a r t i c u l a r de l a i n s t an c i a

− Borra columnas con Bene f i c i o reduc ido negat ivo cada c i e r t o

n mero

de i t e r a c i o n e s ( parametro l e i d o de l arch ivo de datos )

− Calcula l a cota de l problema dual que se deduce en e l a r t i c u l o

de Save l sbergh

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ! )

model GAP

uses ”mmxprs” , ”mmsystem” ! Uses the Xpress−MP Optimizer

parameters

i npu tF i l e =”./Datos60 . dat”

end−parameters

i n i c i o := gett ime

forward func t i on getProblemStatus ( s t a tu s : i n t e g e r ) : s t r i n g

forward procedure a s i g In i c i a lKP

forward procedure column gen

forward procedure e l im i n a r c o l

forward func t i on knapsackI (k : i n t e g e r ) : r e a l

forward func t i on knapsack (k : in t ege r , mejor : r ea l ,

FoKp : array ( range ) o f r e a l ) : r e a l

forward procedure Show co l ac tua l

forward procedure Show so l ac tua l ( ob jva l : r e a l )

79

Page 90: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

de c l a r a t i o n s

Nestud : i n t e g e r ! N mero de e s tud i an t e s

Ncoleg : i n t e g e r ! N mero de c o l e g i o s

paramcolum : i n t e g e r

end−de c l a r a t i o n s

i n i t i a l i z a t i o n s from inputF i l e

Nestud Ncoleg paramcolum

end− i n i t i a l i z a t i o n s

d e c l a r a t i o n s

! Conjuntos de Estudiantes y Co leg io s

ESTUDIANTES = 1 . . Nestud ! Conjunto de e s tud i an t e s

COLEGIOS = 1 . . Ncoleg ! Conjunto de c o l e g i o s

! As ignac iones Po s ib l e s

APosib : range ! As ignac iones p o s i b l e s

! To l e racncc ia

EPS = 1e−6

! Datos para l a a s i gnac i on ( Dis tanc ias , B en e f i c i o s y capac idades )

! Zero t o l e r an c e

Di s tanc ia : array (ESTUDIANTES,COLEGIOS) o f r e a l

! Capacidad de cada c o l e g i o

Capacidad : array (COLEGIOS) o f i n t e g e r

! Bene f i c i o de cada as i gnac i on po s i b l e

Bene f i c i o : array (APosib ) o f r e a l

! Matr ices de l problema

! As ignac iones ba s i c a s

Asignac : array (ESTUDIANTES, APosib ) o f r e a l

! Matriz de r e s t r i c c i o n e s de convexidad

Convex : array (COLEGIOS, APosib ) o f i n t e g e r

! Var iab le de Dec i s ion ( a s i gnac i one s )

a s i g : array (APosib ) o f mpvar

s o l u c i on : array (APosib ) o f r e a l

Bene f i c i o r ed : array (APosib ) o f r e a l

! R e s t r i c c i o n e s de l problema

! Re s t r i c c i on de a s i gnac i on de e s tud i an t e s

Rest : array (ESTUDIANTES) o f l i n c t r

! R e s t r i c c i n e s de convexidad

Rcoleg : array (COLEGIOS) o f l i n c t r

! Funcion ob j e t i v o de l problema gene ra l

Benef ic iomax : l i n c t r

! Funcion ob je t ivo , r e s t r i c c i o n e s y v a r i a b l e s de l o s KP

Rknaps : array (COLEGIOS) o f l i n c t r

Objknaps : array (COLEGIOS) o f l i n c t r

x : array (ESTUDIANTES) o f mpvar

y : array (ESTUDIANTES) o f i n t e g e r

BeneficioKP : array (ESTUDIANTES, COLEGIOS) o f r e a l

! Elementos para con t r o l

mejor : r e a l

i t e r a c i o n : i n t e g e r

conteo : i n t e g e r

ind i cador : r e a l

M: r e a l

numcolumnas : i n t e g e r

borradoco l : array ( 1 . . paramcolum ) o f i n t e g e r

end−de c l a r a t i o n s

i n i t i a l i z a t i o n s from inputF i l e

80

Page 91: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Capacidad Dis tanc ia

end− i n i t i a l i z a t i o n s

Nasig :=0

! Procedimiento que genera l a base i n i c i a l

f o r a l l ( j in ESTUDIANTES) x ( j ) <=1

as i g In i c i a lKP

!DEFINICION DEL PROBLEMA DE ASIGNACION

! Re s t r i c c i on de a s i gnac i on de e s tud i an t e s

f o r a l l ( j in ESTUDIANTES)

Rest ( j ):=sum( i in 1 . . Nasig ) Asignac ( j , i )∗ a s i g ( i )<=1

! Re s t r i c c i on de convexidad

f o r a l l ( i in COLEGIOS)

Rcoleg ( i ):=sum(k in 1 . . Nasig )Convex ( i , k )∗ a s i g (k)<=1

! Funcion Objet ivo

Benef ic iomax :=sum( i in 1 . . Nasig ) ( Bene f i c i o ( i )∗ a s i g ( i ) )

!PROCEDIMIENTO para generac ion de columnas

column gen

! Resuelve e l problema con r e s t r i c c i o n e s de i n t e g r a l i d ad

! Resuelva l a Re la jac i on L inea l

maximize (XPRS LIN , Benef ic iomax )

! Imprime l a s o l u c i on Actual

Show so l ac tua l ( g e t ob jva l )

wr i t e l n (” Status : ” , getProblemStatus ( ge tprobs ta t ) ) ;

! Show co l ac tua l

f i n a l := gett ime

wr i t e l n (”Tiempo e j e c u c i n ”+( f i n a l−i n i c i o )+” seg ”)

!−−−−−−−−−−−DEFINICIN DE PROCEDIMIENTOS Y FUNCIONES−−−−−−−−−−−−

!∗∗∗∗∗∗∗∗∗∗∗∗∗ a s i g In i c i a lKP ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗! Procedimiento para generar l a base i n i c i a l SOLUCIONA PROBLEMAS

!KNAPSACK

! 1 . Genera l a s o l u c i on de l problema Knapsack de cada co l eg i o ,

! ad i c i ona columna y e l Bene f i c i o

! 2 . Adiciona una columna a u x i l i a r con Bene f i c i o muy grande M por

! cada e s tud iante ( Deberia generar una so l a columna )

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗procedure a s i g In i c i a lKP

! Genera columna Dummy y su Bene f i c i o

Nasig+=1

c r ea t e ( a s i g ( Nasig ) )

a s i g ( Nasig ) i s b i n a r y

f o r a l l ( j in ESTUDIANTES)do

M+=−max( i in COLEGIOS) Di s tanc ia ( j , i )

Bene f i c i o ( Nasig ):=M

Asignac ( j , Nasig ):=1

end−do

! Genera Columnas asoc i adas a l o s m Coleg io s

f o r a l l ( i in COLEGIOS)do

! Crea l a s v a r i a b l e s de d e c i s i n para l a s columnas i n i c i a l e s

Nasig+=1

c r ea t e ( a s i g ( Nasig ) )

a s i g ( Nasig ) i s b i n a r y

81

Page 92: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

! Resuelve e l problema Knapsack para cada c o l e g i o

Bene f i c i o ( Nasig ):= knapsackI ( i )

!Arma la primera so l u c i on f a c t i b l e

f o r a l l ( j in ESTUDIANTES) Asignac ( j , Nasig ):= g e t s o l ( x ( j ) )

Rknaps ( i ):=0

Objknaps ( i ):=0

! Genera Primera matriz de l a s r e s t r i c c i o n e s de Convexidad

Convex ( i , Nasig ):=1

end−do

numcolumnas:=Nasig

end−procedure

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗! GENERACION DE COLUMNAS:

! Resuelve e l PL y guarda l a base

! Obtiene l o s va l o r e s de l a s o l u c i on

! Genera una nueva columna ( a s i gnac i on po s i b l e )

! carga e l problema modi f icado y l a base guardada

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗procedure column gen

d e c l a r a t i o n s

dualestud : array (ESTUDIANTES) o f r e a l

dua l co l eg : array (COLEGIOS) o f r e a l

Mdualestud : array (ESTUDIANTES) o f r e a l

Mdualcoleg : array (COLEGIOS) o f r e a l

FoKp : array (COLEGIOS) o f r e a l

zbes t : array (COLEGIOS) o f r e a l

xbest : array (ESTUDIANTES) o f i n t e g e r

ob jva l : r e a l

FOlag : r e a l

MFOlag : r e a l

ind i cador : i n t e g e r

indco l eg : i n t e g e r

end−de c l a r a t i o n s

! Def ine parametros de l opt imizador

de f cut :=getparam (”XPRS CUTSTRATEGY”)

setparam (”XPRS CUTSTRATEGY” , 0)

setparam (”XPRS PRESOLVE” , 0)

setparam (” z e r o t o l ” , EPS)

i t e r a c i o n :=1

conteo :=1

MFOlag:=M∗M! Numero de columnas antes de i n i c i a r

numcolumnas:=Nasig

!CICLO DE GENERACIN DE COLUMNAS

whi le ( t rue ) do

maximize (XPRS LIN , Benef ic iomax ) ! Resuelve l a RL

saveba s i s (1 ) ! Guarda l a base ac tua l

ob jva l := ge tob jva l ! obt i ene e l va l o r de l a s o l u c i on

! Obtiene va l o r e s de l a s o l u c i on ac tua l

f o r a l l ( k in 1 . . numcolumnas ) s o l u c i on (k):= g e t s o l ( a s i g (k ) )

f o r a l l ( k in 1 . . numcolumnas ) Bene f i c i o r ed (k):= g e t r c o s t ( a s i g ( k ) )

f o r a l l ( j in ESTUDIANTES) dualestud ( j ):= getdua l ( Rest ( j ) )

f o r a l l ( i in COLEGIOS) dua l co l eg ( i ):= getdua l ( Rcoleg ( i ) )

! Genera matriz de Bene f i c i o para l a generac ion de columnas

f o r a l l ( j in ESTUDIANTES, i in COLEGIOS)

82

Page 93: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

BeneficioKP ( j , i ):= Dis tanc ia ( j , i )−dualestud ( j )

! Chequea cond ic ion para e l imnar columnas

i f conteo>paramcolum then

conteo :=1

e l im i n a r c o l

end− i f

!GENERA COLUMNA con mayor cos to reduc ido ( s i e x i s t e )

mejor :=0

FOlag:=0

! Busca e l c o l e g i o con so l u c i on Knapsack Mejor

f o r a l l ( k in COLEGIOS) do

zbes t ( k):= knapsack (k , mejor ,FoKp)−getdua l ( Rcoleg (k ) )

FOlag+=(zbes t ( k)+getdua l ( Rcoleg (k ) ) )

i f zbes t ( k)>mejor then

mejor := zbes t ( k )

indco l eg :=k

f o r a l l ( j in ESTUDIANTES)

xbest ( j ):=y ( j )

end− i f

end−do

! Calcula va lo r de l a r e l a j a c i o n lagrang iana

f o r a l l ( j in ESTUDIANTES)FOlag+=getdua l ( Rest ( j ) )

i f FOlag<MFOlag then

MFOlag:=FOlag

f o r a l l ( j in ESTUDIANTES) Mdualestud ( j ):= dualestud ( j )

f o r a l l ( i in COLEGIOS) Mdualcoleg ( i ):= dua l co l eg ( i )

end− i f

w r i t e l n (” ITERACION: ”+i t e r a c i o n+” ; So luc ion RLineal ; ”+

ge tob jva l+” ; S o l u c i n RLagrang ; ”+FOlag+

” ; Mejor Re la j Legran ; ”+MFOlag )

i f mejor<=0 then

wr i t e l n (”No se encontro una columna para ad i c i ona r ”)

break

e l s e

! Crea l a nueva va r i ab l e para l a a s i gnac i on que se ad i c i ona

i f ( conteo>g e t s i z e ( borradoco l ) or borradoco l ( conteo )=0) then

numcolumnas+=1

Nasig :=numcolumnas

c r ea t e ( a s i g ( Nasig ) )

a s i g ( Nasig ) i s b i n a r y

e l s e

Nasig := borradoco l ( conteo )

end− i f

!ACTUALIZA EL PROBLEMA ADICIONANDO COLUMNA

! Crea l a nueva columna y ad i c i ona a r e s t r i c c i o n e s

f o r a l l ( j in ESTUDIANTES)do

Asignac ( j , Nasig ):= xbest ( j )

i f xbest ( j )>0 then

Rest ( j)+=Asignac ( j , Nasig )∗ a s i g ( Nasig )

end− i f

end−do

Convex ( indco leg , Nasig ):=1

Rcoleg ( indco l eg)+=Convex ( indco leg , Nasig )∗ a s i g ( Nasig )

Bene f i c i o ( Nasig ):=sum( j in ESTUDIANTES)

Asignac ( j , Nasig )∗ Distanc ia ( j , i ndco l eg )

Benef ic iomax+=Bene f i c i o ( Nasig )∗ a s i g ( Nasig )

83

Page 94: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

! carga nuevamente e l problema y l a base ac tua l

loadprob ( Benef ic iomax )

l o adba s i s (1 )

end− i f

i t e r a c i o n+=1

conteo+=1

end−do ! Cier ra e l c i c l o de generar columnas

end−procedure

( !∗∗∗∗∗∗∗∗∗ ELIMINA COLUMNAS ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Este procedimiento Elimina cada c i e r t o numero de i t e r a c i o n e s

una cant idad de columnas con cos to reduc ido negat ivo . Para

e l l o i n i c i a l a busqueda de l a s columnas q se e l iminan desde

una po s i c i on a l e a t o r i a en e l a r r e g l o de columnas

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−!)

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗procedure e l im i n a r c o l

borradas :=0

! Ubica punto de i n i c i o de l a busqueda

a l e a t o r i o 2 := in t e g e r ( g e t s i z e (COLEGIOS)+1+

round ( ( numcolumnas∗random)+ 0 . 5 ) )

! Borra l a s columnas con cos to reduc ido negat ivo que se encuentran

! en una po s i c i on supe r i o r a l punto de i n i c i o .

f o r a l l ( k in g e t s i z e (COLEGIOS ) . . numcolumnas | k>a l e a t o r i o 2 ) do

i f Bene f i c i o r ed (k)<0 then

borradas+=1

i f borradas<=paramcolum then

borradoco l ( borradas ):=k

! Elimina de l a FO y Re s t r i c c i o n e s

Beneficiomax−=as i g (k )∗ Bene f i c i o (k )

Bene f i c i o (k):=0

f o r a l l ( j in ESTUDIANTES | Asignac ( j , k)>0)do

Rest ( j )−=Asignac ( j , k )∗ a s i g (k )

Asignac ( j , k ):=0

end−do

f o r a l l ( i in COLEGIOS |Convex ( i , k)>0) do

Rcoleg ( i )−=Convex ( i , k )∗ a s i g (k )

Convex ( i , k ):=0

end−do

e l s e

break

end− i f

end− i f

end−do

! Borra l a s columnas con cos to reduc ido negat ivo que se encuentran

! en una po s i c i on i n f e r i o r a l punto de i n i c i o .

i f borradas<=paramcolum then

k:= g e t s i z e (COLEGIOS)+1

whi le (k<a l e a t o r i o 2 ) do

k+=1

i f Bene f i c i o r ed (k)<0 then

borradas+=1

i f borradas<=paramcolum then

borradoco l ( borradas ):=k

! Elimina de l a FO y Re s t r i c c i o n e s

Beneficiomax−=as i g (k )∗ Bene f i c i o (k )

Bene f i c i o (k):=0

f o r a l l ( j in ESTUDIANTES | Asignac ( j , k)>0)do

Rest ( j )−=Asignac ( j , k )∗ a s i g (k )

Asignac ( j , k ):=0

end−do

f o r a l l ( i in COLEGIOS |Convex ( i , k)>0) do

84

Page 95: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Rcoleg ( i )−=Convex ( i , k )∗ a s i g (k )

Convex ( i , k ):=0

end−do

e l s e

break

end− i f

end− i f

end−do

end− i f

f o r a l l ( r in borradas +1. . paramcolum ) borradoco l ( r ):=0

end−procedure

( !∗∗∗∗∗∗∗∗∗ RESUELVE KNAPSACK INICIALES ∗∗∗∗∗∗∗Func i n que r e su e l v e l o s knapsack i n i c i a l e s para c r ea r

e l problema maestro r e s t r i n g i d o i n i c i a l

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−!)

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗f unc t i on knapsackI ( k : i n t e g e r ) : r e a l

Rknaps (k):=sum( j in ESTUDIANTES)x ( j )=Capacidad (k )

Objknaps (k):=sum( j in ESTUDIANTES) Dis tanc ia ( j , k )∗x ( j )

! f o r a l l ( j in ESTUDIANTES)x ( j )<=1

maximize ( Objknaps (k ) )

returned := ge tob jva l

end−f unc t i on

( !∗∗∗∗∗∗∗∗∗ RESUELVE KNAPSACK en GEN COL ∗∗∗∗∗∗∗Func i n que r e su e l v e l o s knapsack en cada i t e r a c i o n de

l a g e n e r a c i n de columnas , que permiten determinar l a

columna a ad i c i ona r

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−!)

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗f unc t i on knapsack (k : in t ege r , mejor : r ea l ,

FoKp : array ( range ) o f r e a l ) : r e a l

f o r a l l ( j in ESTUDIANTES)y ( j ):=0

FoKp(k):=0

f o r a l l ( i in 1 . . Capacidad (k ) ) do

mayor:=M

asignado :=0

f o r a l l ( j in ESTUDIANTES)do

i f BeneficioKP ( j , k)>mayor then

mayor:=BeneficioKP ( j , k )

as ignado := j

end− i f

end−do

y ( as ignado ):=1

FoKp(k)+=BeneficioKP ( asignado , k )

BeneficioKP ( asignado , k):=M

end−do

returned :=FoKp(k )

end−f unc t i on

( !∗∗∗∗∗∗∗∗∗ INDICA estado de l problema ∗∗∗∗∗∗∗func ion que ind i c a s i e l estado en e l que f i n a l i z l a

o p t im i z a c i n

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−!)

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗f unc t i on getProblemStatus ( s t a tu s : i n t e g e r ) : s t r i n g

case s t a tu s o f

85

Page 96: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

XPRS OPT: returned := ”Solved to opt ima l i ty . ”

XPRS UNF: returned := ”Unf in i shed . ”

XPRS INF : returned := ” I n f e a s i b l e . ”

XPRS UNB: returned := ”Unbounded . ”

e l s e returned := ”Unknown s ta tu s . ”

end−case

end−f unc t i on

( !∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ IMPRIME COLUMNAS ACTUALES ∗∗∗∗∗∗∗∗∗∗∗Procedimiento para imprimir columnas Actuales

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−!)

procedure Show co l ac tua l

wr i t e ( s t r fmt (” Bene f i c i o ” , 4 ) )

f o r a l l ( i in 1 . . numcolumnas ) wr i t e ( s t r fmt ( i , 6 ) )

wr i t e l n

wr i t e ( s t r fmt (” Bene f i c i o ” , 4 ) )

f o r a l l ( i in 1 . . numcolumnas ) wr i t e ( s t r fmt ( Bene f i c i o ( i ) , 6 ) )

wr i t e l n

f o r a l l ( j in ESTUDIANTES) do

wr i t e ( s t r fmt (” ” ,4 ) )

f o r a l l ( i in 1 . . numcolumnas ) wr i t e ( s t r fmt ( Asignac ( j , i ) , 6 ) )

wr i t e l n

end−do

wr i t e l n ( s t r fmt (” Convexidad ” ,4 ) )

f o r a l l ( j in COLEGIOS) do

wr i t e ( s t r fmt (” ” ,4 ) )

f o r a l l ( i in 1 . . numcolumnas ) wr i t e ( s t r fmt (Convex ( j , i ) , 6 ) )

wr i t e l n

end−do

end−procedure

( !∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ IMPRIME Soluc ion Actual ∗∗∗∗∗∗∗∗∗∗∗Procedimiento para imprimir l a s o l u c i on ac tua l

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−!)

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗!

procedure Show so l ac tua l ( ob jva l : r e a l )

wr i t e l n

! Imprime va lo r de l a s o l u c i on Actual

wr i t e l n (” ITERACIN ”+i t e r a c i o n+” So luc ion Actual ”+ob jva l )

wr i t e ( s t r fmt (” Asig ” , 4 ) )

! Imprime l a s a i s gnac i one s s e l e c c i onada s y dual por e s tud iante

f o r a l l ( k in 1 . . numcolumnas ) do

i f s o l u c i on (k)>0 then

wr i t e ( s t r fmt (k , 4 ) )

end− i f

end−do

wr i t e l n

wr i t e ( s t r fmt (” Valor ” , 4 ) )

! Imprime l a s a i sgnacones s e l e c c i onada s y dual por e s tud iante

f o r a l l ( k in 1 . . numcolumnas ) do

i f s o l u c i on (k)>0 then

wr i t e ( s t r fmt ( s o l u c i on (k ) , 4 ) )

end− i f

end−do

! imprime c o l e g i o de l a Asignacion

wr i t e l n

wr i t e ( s t r fmt (” Coleg ” ,4 ) )

! Imprime l a s a i sgnacones s e l e c c i onada s y dual por e s tud iante

86

Page 97: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

f o r a l l ( k in 1 . . numcolumnas ) do

i f s o l u c i on (k)>0 then

f o r a l l ( i in COLEGIOS)do

i f Convex ( i , k)>0 then

wr i t e ( s t r fmt ( i , 4 ) )

end− i f

end−do

end− i f

end−do

wr i t e ( s t r fmt (” Dual ” , 4 ) )

wr i t e l n

! Imprime Bene f i c i o de l a a s i gnac i on

wr i t e ( s t r fmt (” ” ,4 ) )

f o r a l l ( k in 1 . . numcolumnas ) do

i f s o l u c i on (k)>0 then

wr i t e ( s t r fmt ( Bene f i c i o ( k ) , 4 ) )

end− i f

end−do

wr i t e l n

f o r a l l ( j in ESTUDIANTES)do

wr i t e ( s t r fmt (” ” ,4 ) )

f o r a l l ( k in 1 . . numcolumnas ) do

i f s o l u c i on (k)>0 then

wr i t e ( s t r fmt ( Asignac ( j , k ) , 4 ) )

end− i f

end−do

wr i t e (” ”+st r fmt ( getdua l ( Rest ( j ) ) , 4 ) )

wr i t e l n

end−do

! Imprime Dual de l a r e s t r i c c i o n de c o l e g i o

wr i t e ( s t r fmt (” Coleg ” ,4 ) )

f o r a l l ( i in COLEGIOS)do

wr i t e ( s t r fmt ( i , 4 ) )

end−do

wr i t e l n

wr i t e ( s t r fmt (” ” ,4 ) )

f o r a l l ( i in COLEGIOS)do

wr i t e ( s t r fmt ( getdua l ( Rcoleg ( i ) ) , 4 ) )

end−do

wr i t e l n

end−procedure

end−model

B.2. Algoritmo de Generacion de Columnas con Estabiliza-cion

Archivo AsignacionConEstab.mos( !∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ASIGNACIN

Implementacion de esquema de Generacion de Columnas para r e s o l v e r

e l problema de as i gnac i on de e s tud i an t e s

− Genera e l Problema Maestro Rest ing ido como la s o l u c i on de l

problema Knapsack de cada c o l e g i o y una columna a r t i f i c i a l de

unos con b e n e f i c i o s −M

− Genera l a columna con Bene f i c i o reduc ido mas pos i t i vo ,

87

Page 98: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Resolv iendo l o s m problemas Knapsack

− Para r e s o l v e r e l problema au x i l i a r usa un a lgor i tmo que

exp lota l a e s t ruc tu ra p a r t i c u l a r de l a i n s t an c i a

− Borra columnas con Bene f i c i o reduc ido negat ivo cada c i e r t o

n mero

de i t e r a c i o n e s ( parametro l e i d o de l arch ivo de datos )

− Calcula l a cota de l problema dual que se deduce en e l a r t i c u l o

de Save l sbergh

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ! )

model GAP

uses ”mmxprs” , ”mmsystem” ! Uses the Xpress−MP Optimizer

parameters

i npu tF i l e =”./Datos60 . dat”

end−parameters

i n i c i o := gett ime

forward func t i on getProblemStatus ( s t a tu s : i n t e g e r ) : s t r i n g

forward procedure a s i g In i c i a lKP

forward procedure column gen

forward procedure e l im i n a r c o l

forward func t i on knapsackI (k : i n t e g e r ) : r e a l

forward func t i on knapsack (k : in t ege r , mejor : r ea l ,

FoKp : array ( range ) o f r e a l ) : r e a l

forward procedure Show co l ac tua l

forward procedure Show so l ac tua l ( ob jva l : r e a l )

d e c l a r a t i o n s

Nestud : i n t e g e r ! N mero de e s tud i an t e s

Ncoleg : i n t e g e r ! N mero de c o l e g i o s

paramcolum : i n t e g e r ! N mero de i t e r a c i o n e s ent re borrados

end−de c l a r a t i o n s

i n i t i a l i z a t i o n s from inputF i l e

Nestud Ncoleg paramcolum

end− i n i t i a l i z a t i o n s

d e c l a r a t i o n s

! Conjuntos de Estudiantes y Co leg io s

ESTUDIANTES = 1 . . Nestud ! Conjunto de e s tud i an t e s

COLEGIOS = 1 . . Ncoleg ! Conjunto de c o l e g i o s

APosib : range ! As ignac iones p o s i b l e s

! To l e racncc ia

EPS = 1e−6

! Datos para l a a s i gnac i on ( Dis tanc ias , Benefs y capac idades )

! D i s tanc ia de e s tud iante a c o l e g i o

Di s tanc ia : array (ESTUDIANTES,COLEGIOS) o f r e a l

! Capacidad de cada c o l e g i o

Capacidad : array (COLEGIOS) o f i n t e g e r

! Benef de cada as i gnac i on po s i b l e

Benef : array (APosib ) o f r e a l

! P e n a l i z a c i n para r e s t e s tud i an t e s

pena l i zEs t : array (ESTUDIANTES) o f r e a l

! P e n a l i z a c i n para r e s t c o l e g i o s

pena l i zCo l : array (COLEGIOS) o f r e a l

88

Page 99: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

! Matr ices de l problema

! As ignac iones ba s i c a s

Asignac : array (ESTUDIANTES, APosib ) o f r e a l

! Matriz de r e s t r i c c i o n e s de convexidad

Convex : array (COLEGIOS, APosib ) o f i n t e g e r

! Var iab l e s de Dec i s ion

a s i g : array (APosib ) o f mpvar

! Var iab l e s para l a e s t a b i l i z a c i n

! Var iab l e s de holgura para r e s t e s tud i an t e s

ho lge : array (ESTUDIANTES) o f mpvar

! Var iab l e s de holgura para r e s t c o l e g i o s

ho lgc : array (COLEGIOS) o f mpvar

! Var iab l e s de exceso para r e s t exceso

excese : array (ESTUDIANTES) o f mpvar

! Var iab l e s de exceso para r e s t exceso

excesc : array (COLEGIOS) o f mpvar

s o l u c i on : array (APosib ) o f r e a l

Benefred : array (APosib ) o f r e a l

! R e s t r i c c i o n e s de l problema

! Re s t r i c c i on de a s i gnac i on de e s tud i an t e s

Rest : array (ESTUDIANTES) o f l i n c t r

! R e s t r i c c i n e s de convexidad

Rcoleg : array (COLEGIOS) o f l i n c t r

! R e s t r i c c i o n e s v a r i a b l e s de holgura y exceso

! Re s t r i c c i on sobre vb l e s de holgura para r e s t e s tud i an t e s

Rholge : array (ESTUDIANTES) o f l i n c t r

! Re s t r i c c i on sobre vb l e s de holgura para r e s t c o l e g i o s

Rholgc : array (COLEGIOS) o f l i n c t r

! Re s t r i c c i on sobre vb l e s de exceso para r e s t e s tud i an t e s

Rexcese : array (ESTUDIANTES) o f l i n c t r

! Re s t r i c c i on sobre vb l e s de exceso para r e s t exceso

Rexcesc : array (COLEGIOS) o f l i n c t r

! Funcion ob j e t i v o de l problema gene ra l

Benefmax : l i n c t r

! Funcion ob je t ivo , r e s t r i c c i o n e s y v a r i a b l e s de l o s KP

Rknaps : array (COLEGIOS) o f l i n c t r

Objknaps : array (COLEGIOS) o f l i n c t r

x : array (ESTUDIANTES) o f mpvar

y : array (ESTUDIANTES) o f i n t e g e r

BenefKP : array (ESTUDIANTES, COLEGIOS) o f r e a l

! Elementos para con t r o l

ep s i l onp : r e a l

ep s i l onn : r e a l

mejor : r e a l

i t e r a c i o n : i n t e g e r

conteo : i n t e g e r

ind i cador : r e a l

M: r e a l

numcolumnas : i n t e g e r

borradoco l : array ( 1 . . paramcolum ) o f i n t e g e r

end−de c l a r a t i o n s

i n i t i a l i z a t i o n s from inputF i l e

Capacidad Dis tanc ia

end− i n i t i a l i z a t i o n s

Nasig :=0

89

Page 100: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

ep s i l onp :=0.1

eps i l onn :=0.1

!PROCEDIMIENTO PARA GENERAR BASE INICIAL

f o r a l l ( j in ESTUDIANTES) x ( j ) <=1

as i g In i c i a lKP

!DEFINICION DEL PROBLEMA DE ASIGNACION

! Re s t r i c c i on de a s i gnac i on de e s tud i an t e s

f o r a l l ( j in ESTUDIANTES)

Rest ( j ):=sum( i in 1 . . Nasig ) Asignac ( j , i )∗ a s i g ( i )<=1

! Re s t r i c c i on de convexidad

f o r a l l ( i in COLEGIOS)

Rcoleg ( i ):=sum(k in 1 . . Nasig )Convex ( i , k )∗ a s i g (k)<=1

! Funcion Objet ivo

Benefmax:=sum( i in 1 . . Nasig ) ( Benef ( i )∗ a s i g ( i ) )

!PROCEDIMIENTO para generac ion de columnas

column gen

! Resuelve e l problema con r e s t r i c c i o n e s de i n t e g r a l i d ad

maximize (Benefmax )

! Imprime l a s o l u c i on Actual

Show so l ac tua l ( g e t ob jva l )

wr i t e l n (” Status : ” , getProblemStatus ( ge tprobs ta t ) ) ;

f i n a l := gett ime

wr i t e l n (”Tiempo e j e c u c i n ”+( f i n a l−i n i c i o )+” seg ”)

!−−−−−−−−−−−DEFINICIN DE PROCEDIMIENTOS Y FUNCIONES−−−−−−−−−−−−

!∗∗∗∗∗∗∗∗∗∗∗∗∗ a s i g In i c i a lKP ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗! Procedimiento para generar l a base i n i c i a l SOLUCIONA PROBLEMAS

!KNAPSACK

! 1 . Genera l a s o l u c i on de l problema Knapsack de cada co l eg i o ,

! ad i c i ona columna y e l Bene f i c i o

! 2 . Adiciona una columna a u x i l i a r con Bene f i c i o muy grande M por

! cada e s tud iante ( Deberia generar una so l a columna )

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗procedure a s i g In i c i a lKP

! Genera columnas Dummy y su Benef

Nasig+=1

c r ea t e ( a s i g ( Nasig ) )

a s i g ( Nasig ) i s b i n a r y

f o r a l l ( j in ESTUDIANTES)do

M+=−max( i in COLEGIOS) Di s tanc ia ( j , i )

Benef ( Nasig ):=M

Asignac ( j , Nasig ):=1

end−do

f o r a l l ( i in COLEGIOS)do

! Crea l a s v a r i a b l e s de d e c i s i n para l a s columnas i n i c i a l e s

Nasig+=1

c r ea t e ( a s i g ( Nasig ) )

a s i g ( Nasig ) i s b i n a r y

! Resuelve e l problema Knapsack para cada c o l e g i o

Benef ( Nasig ):= knapsackI ( i )

!Arma la primera so l u c i on f a c t i b l e

f o r a l l ( j in ESTUDIANTES) Asignac ( j , Nasig ):= g e t s o l ( x ( j ) )

Rknaps ( i ):=0

Objknaps ( i ):=0

! Genera Primera matriz de l a s r e s t r i c c i o n e s de Convexidad

90

Page 101: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Convex ( i , Nasig ):=1

end−do

numcolumnas:=Nasig

end−procedure

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗! GENERACION DE COLUMNAS:

! Resuelve e l PL y guarda l a base

! Obtiene l o s va l o r e s de l a s o l u c i on

! Genera una nueva columna ( a s i gnac i on po s i b l e )

! carga e l problema modi f icado y l a base guardada

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗procedure column gen

d e c l a r a t i o n s

dualestud : array (ESTUDIANTES) o f r e a l

dua l co l eg : array (COLEGIOS) o f r e a l

! Mdualestud : array (ESTUDIANTES) o f r e a l

! Mdualcoleg : array (COLEGIOS) o f r e a l

FoKp : array (COLEGIOS) o f r e a l

zbes t : array (COLEGIOS) o f r e a l

xbest : array (ESTUDIANTES) o f i n t e g e r

ob jva l : r e a l

FOP: r e a l

FOlag : r e a l

MFOlag : r e a l

ind i cador : i n t e g e r

indco l eg : i n t e g e r

f a c t o r : r e a l

end−de c l a r a t i o n s

! Def ine parametros de l opt imizador

de f cut :=getparam (”XPRS CUTSTRATEGY”)

setparam (”XPRS CUTSTRATEGY” , 0)

setparam (”XPRS PRESOLVE” , 0)

setparam (” z e r o t o l ” , EPS)

! I n i c i a l i z a c i o n e s

i t e r a c i o n :=1

conteo :=1

MFOlag:=M∗Mfac t o r :=0.01

! Numero de columnas antes de i n i c i a r

numcolumnas:=Nasig

! Rea l i za l a primera co r r i da para a j u s t a r va l o r e s

maximize (XPRS LIN , Benefmax )

! Obtiene va l o r e s de l a s o l u c i on ac tua l

f o r a l l ( j in ESTUDIANTES)do

pena l i zEs t ( j ):= getdua l ( Rest ( j ) )

Benefmax+=(−pena l i zEs t ( j )∗ holge ( j )−pena l i zEs t ( j )∗ excese ( j ) )

end−do

! Re s t r i c c i o n e s de e s t a b i l i z a c i n

f o r a l l ( j in ESTUDIANTES)do

Rest ( j )+=(holge ( j )−excese ( j ) )

Rholge ( j ):= holge ( j )−eps i lonp <=0

Rexcese ( j ):= excese ( j )−eps i lonn <=0

end−do

91

Page 102: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

! C i c lo de generac ion de columnas

whi le ( t rue ) do

maximize (XPRS LIN , Benefmax ) ! Resuelva l a RL

saveba s i s (1 ) ! Guarda l a base ac tua l

ob jva l := ge tob jva l ! Obtiene e l va lo r de l a s o l u c i on

! Obtiene va l o r e s de l a s o l u c i on ac tua l

f o r a l l ( k in 1 . . numcolumnas ) s o l u c i on (k):= g e t s o l ( a s i g (k ) )

f o r a l l ( k in 1 . . numcolumnas ) Benefred (k):= g e t r c o s t ( a s i g (k ) )

f o r a l l ( j in ESTUDIANTES) dualestud ( j ):= getdua l ( Rest ( j ) )

f o r a l l ( i in COLEGIOS) dua l co l eg ( i ):= getdua l ( Rcoleg ( i ) )

! Genera matriz de Benef para l a generac ion de columnas

f o r a l l ( j in ESTUDIANTES, i in COLEGIOS)

BenefKP( j , i ):= Dis tanc ia ( j , i )−dualestud ( j )

! c on t r o l de l numero de i t e r a c i o n e s ent re borrados

i f conteo>paramcolum then

conteo :=1

! Actua l i za Valores de ep s i l o n

f o r a l l ( j in ESTUDIANTES)do

Rholge ( j)+=eps i l onp

Rexcese ( j)+=eps i l onn

end−do

i f eps i lonp−f a c to r <0 then

eps i l onp :=0

e l s e

ep s i l onp+=−f a c t o r

end− i f

i f eps i lonn−f a c to r <0 then

eps i l onn :=0

e l s e

ep s i l onn+=−f a c t o r

end− i f

f o r a l l ( j in ESTUDIANTES)do

Rholge ( j)+=−ep s i l onp

Rexcese ( j)+=−ep s i l onn

end−do

! Ejecuta e l procedimiento para e l im ina r columnas

e l im i n a r c o l

end− i f

!GENERA COLUMNA con mayor cos to reducido , po s i t i vo , s i e x i s t e

mejor :=0

FOlag:=0

f o r a l l ( k in COLEGIOS) do

zbes t ( k):= knapsack (k , mejor ,FoKp)−getdua l ( Rcoleg (k ) )

FOlag+=(zbes t ( k)+getdua l ( Rcoleg (k ) ) )

i f zbes t ( k)>mejor then

mejor := zbes t ( k )

indco l eg :=k

f o r a l l ( j in ESTUDIANTES)

xbest ( j ):=y ( j )

end− i f

end−do

! Calcula va lo r de l a r e l a j a c i o n lagrang iana

f o r a l l ( j in ESTUDIANTES)FOlag+=getdua l ( Rest ( j ) )

i f FOlag<MFOlag then

MFOlag:=FOlag

f o r a l l ( j in ESTUDIANTES)do

Benefmax+=−(−pena l i zEs t ( j )∗ holge ( j )−pena l i zEs t ( j )∗ excese ( j ) )

pena l i zEs t ( j ):= dualestud ( j )

pena l i zEs t ( j ):= dualestud ( j )

92

Page 103: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Benefmax+=(−pena l i zEs t ( j )∗ holge ( j )−pena l i zEs t ( j )∗ excese ( j ) )

end−do

end− i f

! Calcula s o l u c i on Primal

FOP:=0

f o r a l l ( k in 1 . . numcolumnas ) do

i f s o l u c i on (k)>0 then

FOP+=Benef ( k )∗ s o l u c i on (k )

end− i f

end−do

wr i t e l n (” ITERACION: ”+i t e r a c i o n+” ; So luc ion RLineal ; ”+

FOP+” ; So luc ion RLestab ; ”+ge tob jva l+” ; S o l u c i n RLagrang ; ”+

FOlag+ ” ; Mejor Re la j Legran ; ”+MFOlag )

! Temina s i e l Gap es menor a una unidad

i f (FOP−MFOlag>0 and FOP−MFOlag<1)then

break

end− i f

i f mejor<=0 then

i f ( ep s i l onp=0 and eps i l onn=0) then

break

e l s e

f o r a l l ( j in ESTUDIANTES)do

Rholge ( j)+=eps i l onp

Rexcese ( j)+=eps i l onn

end−do

! wr i t e l n (”No se encontro una columna para ad i c i ona r ”)

i f eps i lonp−f a c to r <0 then

eps i l onp :=0

e l s e

ep s i l onp+=−f a c t o r

end− i f

i f eps i lonn−f a c to r <0 then

eps i l onn :=0

e l s e

ep s i l onn+=−f a c t o r

end− i f

f o r a l l ( j in ESTUDIANTES)do

Rholge ( j)+=−ep s i l onp

Rexcese ( j)+=−ep s i l onn

end−do

end− i f

e l s e

! c rea l a nueva va r i ab l e

i f ( conteo>g e t s i z e ( borradoco l ) or borradoco l ( conteo )=0) then

numcolumnas+=1

Nasig :=numcolumnas

c r ea t e ( a s i g ( Nasig ) )

a s i g ( Nasig ) i s b i n a r y

e l s e

Nasig := borradoco l ( conteo )

end− i f

! Crea l a nueva columna y ad i c i ona a r e s t r i c c i o n e s

f o r a l l ( j in ESTUDIANTES)do

Asignac ( j , Nasig ):= xbest ( j )

i f xbest ( j )>0 then

Rest ( j)+=Asignac ( j , Nasig )∗ a s i g ( Nasig )

93

Page 104: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

end− i f

end−do

Convex ( indco leg , Nasig ):=1

Rcoleg ( indco l eg)+=Convex ( indco leg , Nasig )∗ a s i g ( Nasig )

Benef ( Nasig ):=

sum( j in ESTUDIANTES) Asignac ( j , Nasig )∗ Distanc ia ( j , i ndco l eg )

Benefmax+=Benef ( Nasig )∗ a s i g ( Nasig )

! carga nuevamente e l problema y l a base ac tua l

loadprob (Benefmax )

l o adba s i s (1 )

end− i f

i t e r a c i o n+=1

conteo+=1

end−do

end−procedure

( !∗∗∗∗∗∗∗∗∗ ELIMINA COLUMNAS ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Este procedimiento Elimina cada c i e r t o numero de i t e r a c i o n e s

una cant idad de columnas con cos to reduc ido negat ivo . Para

e l l o i n i c i a l a busqueda de l a s columnas q se e l iminan desde

una po s i c i on a l e a t o r i a en e l a r r e g l o de columnas

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−!)

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

procedure e l im i n a r c o l

borradas :=0

! Ubica punto de i n i c i o de l a busqueda

a l e a t o r i o 2 :=

in t e g e r ( g e t s i z e (COLEGIOS)+1+round ( ( numcolumnas∗random )+0.5))

! Borra l a s columnas con cos to reduc ido negat ivo que se encuentran

! en una po s i c i on supe r i o r a l punto de i n i c i o .

f o r a l l ( k in g e t s i z e (COLEGIOS ) . . numcolumnas | k>a l e a t o r i o 2 ) do

i f Benefred (k)<0 then

borradas+=1

i f borradas<=paramcolum then

borradoco l ( borradas ):=k

! Elimina de l a FO y Re s t r i c c i o n e s

Benefmax−=as i g (k )∗ Benef ( k )

Benef ( k):=0

f o r a l l ( j in ESTUDIANTES | Asignac ( j , k)>0)do

Rest ( j )−=Asignac ( j , k )∗ a s i g (k )

Asignac ( j , k ):=0

end−do

f o r a l l ( i in COLEGIOS |Convex ( i , k)>0) do

Rcoleg ( i )−=Convex ( i , k )∗ a s i g (k )

Convex ( i , k ):=0

end−do

e l s e

break

end− i f

end− i f

end−do

! Borra l a s columnas con cos to reduc ido negat ivo que se encuentran

! en una po s i c i on i n f e r i o r a l punto de i n i c i o .

i f borradas<=paramcolum then

k:= g e t s i z e (COLEGIOS)+1

whi le (k<a l e a t o r i o 2 ) do

k+=1

94

Page 105: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

i f Benefred (k)<0 then

borradas+=1

i f borradas<=paramcolum then

borradoco l ( borradas ):=k

! Elimina de l a FO y Re s t r i c c i o n e s

Benefmax−=as i g (k )∗ Benef ( k )

Benef ( k):=0

f o r a l l ( j in ESTUDIANTES | Asignac ( j , k)>0)do

Rest ( j )−=Asignac ( j , k )∗ a s i g (k )

Asignac ( j , k ):=0

end−do

f o r a l l ( i in COLEGIOS |Convex ( i , k)>0) do

Rcoleg ( i )−=Convex ( i , k )∗ a s i g (k )

Convex ( i , k ):=0

end−do

e l s e

break

end− i f

end− i f

end−do

end− i f

f o r a l l ( r in borradas +1. . paramcolum ) borradoco l ( r ):=0

end−procedure

( !∗∗∗∗∗∗∗∗∗ RESUELVE KNAPSACK INICIALES ∗∗∗∗∗∗∗Func i n que r e su e l v e l o s knapsack i n i c i a l e s para c r ea r

e l problema maestro r e s t r i n g i d o i n i c i a l

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−!)

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗f unc t i on knapsackI ( k : i n t e g e r ) : r e a l

Rknaps (k):=sum( j in ESTUDIANTES)x ( j )=Capacidad (k )

Objknaps (k):=sum( j in ESTUDIANTES) Dis tanc ia ( j , k )∗x ( j )

! f o r a l l ( j in ESTUDIANTES)x ( j )<=1

maximize ( Objknaps (k ) )

returned := ge tob jva l

end−f unc t i on

( !∗∗∗∗∗∗∗∗∗ RESUELVE KNAPSACK en GEN COL ∗∗∗∗∗∗∗Func i n que r e su e l v e l o s knapsack en cada i t e r a c i o n de

l a g e n e r a c i n de columnas , que permiten determinar l a

columna a ad i c i ona r

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−!)

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗f unc t i on knapsack (k : in t ege r , mejor : r ea l ,

FoKp : array ( range ) o f r e a l ) : r e a l

f o r a l l ( j in ESTUDIANTES)y ( j ):=0

FoKp(k):=0

f o r a l l ( i in 1 . . Capacidad (k ) ) do

mayor:=M

asignado :=0

f o r a l l ( j in ESTUDIANTES)do

i f BenefKP( j , k)>mayor then

mayor:=BenefKP( j , k )

as ignado := j

end− i f

end−do

y ( as ignado ):=1

FoKp(k)+=BenefKP( asignado , k )

BenefKP( asignado , k):=M

95

Page 106: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

end−do

returned :=FoKp(k )

end−f unc t i on

( !∗∗∗∗∗∗∗∗∗ INDICA estado de l problema ∗∗∗∗∗∗∗func ion que ind i c a s i e l estado en e l que f i n a l i z l a

o p t im i z a c i n

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−!)

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗f unc t i on getProblemStatus ( s t a tu s : i n t e g e r ) : s t r i n g

case s t a tu s o f

XPRS OPT: returned := ”Solved to opt ima l i ty . ”

XPRS UNF: returned := ”Unf in i shed . ”

XPRS INF : returned := ” I n f e a s i b l e . ”

XPRS UNB: returned := ”Unbounded . ”

e l s e returned := ”Unknown s ta tu s . ”

end−case

end−f unc t i on

( !∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ IMPRIME COLUMNAS ACTUALES ∗∗∗∗∗∗∗∗∗∗∗Procedimiento para imprimir columnas Actuales

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−!)

procedure Show co l ac tua l

wr i t e ( s t r fmt (” Benef ” , 4 ) )

f o r a l l ( i in 1 . . numcolumnas ) wr i t e ( s t r fmt ( i , 6 ) )

wr i t e l n

wr i t e ( s t r fmt (” Benef ” , 4 ) )

f o r a l l ( i in 1 . . numcolumnas ) wr i t e ( s t r fmt ( Benef ( i ) , 6 ) )

wr i t e l n

f o r a l l ( j in ESTUDIANTES) do

wr i t e ( s t r fmt (” ” ,4 ) )

f o r a l l ( i in 1 . . numcolumnas ) wr i t e ( s t r fmt ( Asignac ( j , i ) , 6 ) )

wr i t e l n

end−do

wr i t e l n ( s t r fmt (” Convexidad ” ,4 ) )

f o r a l l ( j in COLEGIOS) do

wr i t e ( s t r fmt (” ” ,4 ) )

f o r a l l ( i in 1 . . numcolumnas ) wr i t e ( s t r fmt (Convex ( j , i ) , 6 ) )

wr i t e l n

end−do

end−procedure

( !∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ IMPRIME Soluc ion Actual ∗∗∗∗∗∗∗∗∗∗∗Procedimiento para imprimir l a s o l u c i on ac tua l

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−!)

!∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗!

procedure Show so l ac tua l ( ob jva l : r e a l )

wr i t e l n

! Imprime va lo r de l a s o l u c i on Actual

wr i t e l n (” ITERACIN ”+i t e r a c i o n+” So luc ion Actual ”+ob jva l )

wr i t e ( s t r fmt (” Asig ” , 4 ) )

! Imprime l a s a i s gnac i one s s e l e c c i onada s y dual por e s tud iante

f o r a l l ( k in 1 . . numcolumnas ) do

i f s o l u c i on (k)>0 then

wr i t e ( s t r fmt (k , 4 ) )

end− i f

end−do

96

Page 107: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

wr i t e l n

wr i t e ( s t r fmt (” Valor ” , 4 ) )

! Imprime l a s a i sgnacones s e l e c c i onada s y dual por e s tud iante

f o r a l l ( k in 1 . . numcolumnas ) do

i f s o l u c i on (k)>0 then

wr i t e ( s t r fmt ( s o l u c i on (k ) , 4 ) )

end− i f

end−do

! imprime c o l e g i o de l a Asignacion

wr i t e l n

wr i t e ( s t r fmt (” Coleg ” ,4 ) )

! Imprime l a s a i sgnacones s e l e c c i onada s y dual por e s tud iante

f o r a l l ( k in 1 . . numcolumnas ) do

i f s o l u c i on (k)>0 then

f o r a l l ( i in COLEGIOS)do

i f Convex ( i , k)>0 then

wr i t e ( s t r fmt ( i , 4 ) )

end− i f

end−do

end− i f

end−do

wr i t e ( s t r fmt (” Dual ” , 4 ) )

wr i t e l n

! Imprime Benef de l a a s i gnac i on

wr i t e ( s t r fmt (” ” ,4 ) )

f o r a l l ( k in 1 . . numcolumnas ) do

i f s o l u c i on (k)>0 then

wr i t e ( s t r fmt ( Benef ( k ) , 4 ) )

end− i f

end−do

wr i t e l n

f o r a l l ( j in ESTUDIANTES)do

wr i t e ( s t r fmt (” ” ,4 ) )

f o r a l l ( k in 1 . . numcolumnas ) do

i f s o l u c i on (k)>0 then

wr i t e ( s t r fmt ( Asignac ( j , k ) , 4 ) )

end− i f

end−do

wr i t e (” ”+st r fmt ( getdua l ( Rest ( j ) ) , 4 ) )

wr i t e l n

end−do

! Imprime Dual de l a r e s t r i c c i o n de c o l e g i o

wr i t e ( s t r fmt (” Coleg ” ,4 ) )

f o r a l l ( i in COLEGIOS)do

wr i t e ( s t r fmt ( i , 4 ) )

end−do

wr i t e l n

wr i t e ( s t r fmt (” ” ,4 ) )

f o r a l l ( i in COLEGIOS)do

wr i t e ( s t r fmt ( getdua l ( Rcoleg ( i ) ) , 4 ) )

end−do

wr i t e l n

end−procedure

end−model

97

Page 108: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Apendice C

Demostraciones

C.1. Obtencion del Problema Auxiliar en el algoritmo deGeneracion de Columnas

Debe tenerse presente que la k-esima solucion factible para el colegio i, es decir la

k-esima columna que es posible formar, orresponde a, xik = {xi

1k, xi2k, ..., x

ink, } y

satisface que∑

j∈J xijk = bi

Pricing Problem

Puede entonces construirse el Problema auxiliar, el cual busca la columna (asigna-

cion) con el mayor costo reducido, considerando para ello.

i.) Costo Reducido

el costo reducido para cualquier variable no basica esta dado por:

cjk =

∑i∈I

cijxjik −

[µ ν

] [xjk

ej

]

cjk =

∑i∈I

cijxjik −

∑i∈I

µixjik − νj (30)

cjk =

∑i∈I

(cij − µi) xjik − νj (31)

ii.) Seleccion de la columna con el mayor costo reducido

maxj∈J

{∑i∈I

(cij − µi) xjik − νj

}=∑j∈J

(Z(KPj)) +∑i∈I

µi (32)

98

Page 109: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

En donde, Z(KPj) corresponde a la solucion del siguiente problema Knapsack

Maximizar∑i∈I

(cij − µi) xik (33)

s.a.∑i∈I

xjik = bj (34)

xjik ∈ {0, 1} ∀i ∈ I (35)

C.2. Obtencion de la cota superior para la solucion optimaen el algoritmo de Generacion de columnas

Considere el problema en su formulacion desagregada, (P2)

Maximizar∑j∈J

∑k∈Kj

(∑i∈I

cijxjik

)yj

k (36)

∑j∈J

∑k∈Kj

xjiky

jk = 1 ∀i ∈ I (37)

∑k∈Kj

yjk = 1 ∀j ∈ J (38)

yjk ∈ {0, 1} ∀j ∈ J , ∀k ∈ Kj (39)

la relajacion lagrangiana resultante de dualizar las restricciones de asignacion (37),

esta dada por:

Maximizar∑j∈J

∑k∈Kj

(∑i∈I

cijxjik

)yj

k +∑i∈I

µi

1−∑j∈J

∑k∈Kj

xjiky

jk

∑k∈Kj

yjk = 1 ∀j ∈ J (40)

99

Page 110: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

La cual puede reescribirse agrupando algunos terminos, de la siguiente forma:

Maximizar∑j∈J

∑k∈Kj

∑i∈I

(cij − µi)xjiky

jk

+∑i∈I

µi∑k∈Kj

yjk = 1 ∀j ∈ J (41)

Observe que esta nueva formulacion permite separar el problema en m problemas

Kanpasack, correspondientes a los problemas definidos para el problema auxiliar del

algoritmo de generacion de columnas, con lo cual el valor optimo de esta relajacion,

que constituye una cota superior al problema de estudio, estara dado por:∑j∈J

(Z(KPj)) +∑i∈I

µi (42)

C.3. Integralidad de la Solucion de la Relajacion Lineal de(P2)

Se pretende demostrar que la solucion de la formulacion desagregada del problema de

asignacion, denominada (P2), corresponde con la solucion entera de la formulacion

estandar, es decir del problema original (P1). Para ello, se mostrara que la relajacion

lineal de la formulacion desagregada genera una cota superior menor o igual a la

generada por la relajacion de la formulacion estandar. Se mostrara tambien que la

solucion de la relajacion lineal de la formulacion estandar es entera, es decir coincide

con la solucion optima del problema entero original. De esta forma, la cota generada

por la relajacion lineal de la formulacion desagregada tambien debera ser igual a la

solucion optima del problema entero.

100

Page 111: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Considere la relajacion lineal del problema entero (P1),

Maximizar∑i∈I

∑j∈J

cijxij∑j∈J

xij = 1 ∀i ∈ I (43)∑i∈I

xij = bj ∀j ∈ J (44)

0 ≤ xij ≤ 1 ∀i ∈ I, ∀j ∈ J (45)

Observe que la solucion del problema entero exigirıa que las asignaciones seleccio-

nadas para los colegio fuesen enteras, es decir, que en una asignacion factible exac-

tamente bj variables xij, asociadas a los estudiantes, deben tomar el valor de 1; este

hecho esta relacionado con la restriccion de integralidad de los xij, y la solucion del

problema knapsack de cada institucion 44. En la relajacion lineal las asignaciones

factibles para cada colegio podrıan ser no enteras, lo cual implica que la relaja-

cion lineal contiene el casco convexo de las soluciones enteras para la solucion del

problema Knapsack de cada institucion.[18]

Considere ahora la relajacion lineal de la formulacion desagregada del problema

entero original.

Maximizar∑j∈J

∑k∈Kj

(∑i∈I

cijxjik

)yj

k (46)

∑j∈J

∑k∈Kj

xjiky

jk = 1 ∀i ∈ I (47)

∑k∈Kj

yjk = 1 ∀j ∈ J (48)

0 ≤ yjk ≤ 1 ∀j ∈ J , ∀k ∈ Kj (49)

Puede observarse como en esta formulacion, nuevamente, las asignaciones factibles

para los colegio son enteras. Para ello recuerde que la k-esima asignacion factible

101

Page 112: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

para la institucion j, xjk = {xj

1k, xj1k, ..., x

jnk}, satisface que∑

i∈I

xjik = bj xj

ik ∈ {0, 1}

Dada esta consideracion, la cota superior al valor de la solucion entera generada

por la relajacion lineal de la formulacion desagregaba debera ser igual o mas ajus-

tada (menor o igual), que la cota generada por la relajacion lineal del problema

original.[18]

Es posible mostrar ademas, que la relajacion lineal del problema entero original ge-

nera la solucion entera optima. Para ello observe que la formulacion estandar del

problema (P1) presenta la estructura caracterıstica de un problema de Transporte,

[1] , en donde cada nodo de Demanda (estudiante) tiene una demanda igual a una

unidad, mientras que para cada proveedor (Colegio) existe una capacidad u oferta

(de cupos escolares) particular, siendo el total de la demanda igual al total de la

oferta o siendo posible reformular el problema para satisfacer esta condicion. Con-

siderando esta estructura particular y asumiendo, sin perdida de generalidad, que

todos los costos de asignacion de los estudiantes ası como las capacidades (ofertas

de cupos) son enteras, es posible mostrar que el conjunto de soluciones basicas facti-

bles de dicho problema esta compuesto solo por soluciones enteras, lo cual es debido

a la unimodularidad de la matriz A [1]. Este hecho implica que la solucion de la

relajacion lineal corresponda con la solucion del problema entero.

Por ultimo, considerando que la cota generada por la relajacion lineal de la for-

mulacion desagregada, debe ser menor o igual a la cota generada por la relajacion

lineal de problema original, es posible concluir que la solucion de la formulacion

desagregada debe ser igual a la solucion entera optima del problema.

102

Page 113: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

Referencias

[1] MAGNANTI T y ORLINJ AHUJA R. Network Flows. Theory, Algorithms andApplications. Prentice Hall, 1993.

[2] NEMHAUSER George SAVELSBERGH Martin y VANCE Pamela BARN-HART Cynthia, JOHNSON Ellis. Branch-and-price column generation for sol-ving huge integer programs. No Publicado, Enero 1996.

[3] JARVISJ y SHERALIH. BAZAARA M. Programacion Lineal y Flujo en Redes.Limusa, 2 edition, 1999.

[4] BERTSEKAS D. The auction algorithm: A distributed relaxation method forthe assignment. Annals of Operations Research, 14:105–123, 1988.

[5] BERTSEKAS D. Auction algorithms for network flow problems: A tutorialintroduction. Mayo 1992.

[6] BERTSEKAS D. and CASTANON D. The auction algorithm for transportationproblems. Annals of Operations Research, 20:67–96, Febrero 1989.

[7] DESROSIERS J. y SOLOMON M. DESAULNIERS G. Column Generation,.Springer, 1 edition, 2005.

[8] LUBBECKE Marco e. y DESROSIERS Jaques. Selected topics in columngeneration. Para aparecer en Operations Research, Diciembre 202.

[9] Xpress-MP Essentials. Dash Optimizations. Dash Associates, 2 edition, Febrero2002.

[10] VANDEERBECK Francois. Descoposition and Column Generation for IntegerPrograms. PhD thesis, Universidad Catolica de Louvain, Septiembre 1994.

[11] VANDERBECK Francois. Implementing mixed integer column generation. Do-cumento de Trabajo, Septiembre 2004.

103

Page 114: Estudio de Modelos de Apoyo al Proceso de Asignaci´on de ...

[12] PARK Sungsoo y PARK Kyungchul JEONG Gue-woog, LEE Kyungsik. Abranch-and-price algorithm for the steiner tree packing. Computers and Ope-rations Research, (29):221–241, 2002.

[13] W JOHNSON eellis l., NEMHAUSER George L. y SAVELSBERGH Martin.Progress in linear programming-based algorithms for integer programming: Anexposition. INFORMS Journal on Computing, 12(1), 2000.

[14] WOLSEY Laurence. Integer Programming. Jhon Wiley and sons, 1998.

[15] HENON M. Algorithmic aspects of mak. Noviembre 2004.

[16] LUBBECKE Marco. Engine Scheduling by Column Generation. PhD thesis,Universidad de Braunschweig, julio 2001.

[17] SAVELSBERGH Martin. A branch-and-price algorithm for the generalizedassignment problem. Operations Research, 45(6):831–841, Diciembre 1997.

[18] SAVELSBERGH Martin. A branch-and-price algorithm for the generalizedassignment problem. Operations Research, 45(6):831–842, Noviembre 1997.

[19] SAVELSBERGH Martin. Branch-and-price: Integer programming with columngeneration. No Publicado, Febrero 2002.

[20] DESROSIERS Jacques y HANSEN Pierre MERLE Olivier, VILLENUEVE Da-niel. Stabilized column generation. Discrete Mathematics, (194):229–237, 1999.

[21] SAVELSBERGH Martin y SIGISMONDI Gabriele NEMHAUSER George.Minto: Mixen integer optimizer. Georgia Institute of Technology.

[22] Dash Optimization. Xpress Mosel. User Guide. Dash Optimization.

[23] Dash Optimization. Xpress-Optimizer. Reference Manual. Dash Optimization.

[24] Dash Optimization. Xpress Mosel Languaje. Reference Manual. Dash Optimi-zation, Junio 2003.

[25] Dash Optimization. Embeddeding optimization algorithms. Documento deTrabajo, Sepetiembre 2005.

[26] COLOMBANI Y. y HEIPCKE S. Mosel: An overview. Octubre 2004.

[27] PIGGATI Alexander y POGGI Marcus. Satbilized branch-andcut-and-price forthe generalized assignment problem. No Publicado, Octubre 2004.

104