Upload
loz-marce
View
234
Download
0
Embed Size (px)
Citation preview
8/17/2019 Programcion de Operaciones
1/61
PROGRAMACIÓ N DE OPERACIONES
JAIME MIRANDA Departamento de Ingeniería Industrial
Universidad de Chile
SCHEDULING-SECUENCIAMIENTO DE TAREAS
8/17/2019 Programcion de Operaciones
2/61
DEFINICIONES: SCHEDULING
¿Qué es un Programa?
→Es un horario para ejecutar actividades, utilizando recursos o asignando
instalaciones.
¿Qué es programar operaciones?
→Programar implica determinar el orden en que se ejecutarán las tareas y,
también, la asignación de recursos a éstas (máquinas, personal, etc.).
8/17/2019 Programcion de Operaciones
3/61
DEFINICIONES: SCHEDULING (2)
¿Qué es un Centro de Trabajo?
→Es un área de una empresa en la cual los recursos productivos se organizan y el
trabajo se lleva a cabo.
→En el caso de Talleres de Trabajo, las tareas deben ser dirigidas entre Centro de
Trabajos organizados funcionalmente.
¿Qué es Secuenciemaiento de Tareas?
→ Corresponde al proceso de determinar qué tarea se inicia primero en alguna
máquina o centro de trabajo.
8/17/2019 Programcion de Operaciones
4/61
CASOS PRACTICOS
ASIGNACION DE TURNOS STAFF DE AEROLINEAS
→ PROBLEMA GENERAL
•Asignación de turnos a personal aéreo y rutas de aviones de una aerolínea.
CARACTERISICAS
→ Más de 1.000 empleados.
→ En variados países.
→ Distintos turnos y zonas horarias
→ Restricciones de vuelo.
PAPER: Optimized Crew Scheduling at Air New Zealand
Autor: David M. Ryan
8/17/2019 Programcion de Operaciones
5/61
CASOS PRACTICOS (2)
ESQUEMA DE HORARIOS Y CURSOS DE UNA UNIVERSIDAD
PROBLEMA GENERAL
•Asignación de salas, horarios y profesores a los ramos de los distintos semestres en una institución
académica
CARACTERÍSTICAS
→ Capacidad y número de salas.
→Número de cursos
→ Número de alumnos.
→ Número de profesores.
→ Disponibilidades de bloques.
→ Ajustes de semestres.
8/17/2019 Programcion de Operaciones
6/61
CASOS PRACTICOS (3)
ESQUEMA DE ORGANIZACIÓN DE FECHAS DE PARTIDOS
→ PROBLEMA GENERAL
•Asignación de las fechas para cada partido, asignando a cada equipo durante la duración de un
campeonato
CARACTERISICAS
→ Muchos equipos.
→ Distintas tarificaciones horarias
→ Días importantes - Aniversario de clubes.
→Días y hora para “clasicos”
→ Secuenciamiento de partidos – Local – Visitas.
→ Poder político. Televisión- jugadores.
PAPER: SCHEDULING A MAJOR COLLEGE BASKETBALLAutor: George l. Nemhauser
8/17/2019 Programcion de Operaciones
7/61
CASOS PRACTICOS (4)
SECUENCIAMIENTO DE TRABAJOS EN PRODUCCIÓN
PROBLEMA GENERAL
• Generación de secuenciamientos de tareas a los distintos centros de trabajo.
CARACTERISTICAS
→ Se poseen n tareas y m maquinas.
→ ¿Qué tarea realizo primero?
→ ¿En qué máquina?
→Prioridades sobre las tareas.
→ PAPER: Production Scheduling Theory: Just Where Is It Applicable?
• Autores: Víctor Portougal-David J. Robb
8/17/2019 Programcion de Operaciones
8/61
SISTEMAS DE PROGRAMACIÓN
Las principales maneras de programar operaciones se clasifican de la
siguiente forma:
→Programación de Carga Infinita:
•Las tareas son asignadas a un centro de trabajo en base a lo que se necesita en el
tiempo, sin considerar si existen los recursos suficientes (capacidad).
→ Programación de Carga Finita:
•Determina con exactitud que hará cada recurso en cada momento de la jornada de
trabajo.
8/17/2019 Programcion de Operaciones
9/61
SISTEMAS DE PROGRAMACIÓN (2)
→ Programación de Carga Futura:
• Se toman los pedidos y programan las operaciones que deben completarse más
adelante en el tiempo.
• Indica la fecha más temprana en que un pedido puede terminarse.
→ Programación de Carga Inversa:
• Se inicia en una fecha futura (por ejemplo, vencimiento) y se programan las operaciones
requeridas en una secuencia inversa.
•Indica cuando debe iniciarse un pedido o tarea para que se termine en una fecha
específica.
• Un Sistema MRP es un buen ejemplo.
8/17/2019 Programcion de Operaciones
10/61
SISTEMAS DE PROGRAMACIÓN (3)
ALGUNAS LIMITANTES:
→Limitado a las Máquinas:
• Los equipos corresponden a los recursos críticos en la programación de operaciones.
→ Limitado al Trabajo:
• El personal constituye el recurso clave de la programación de operaciones.
Nota: Actualmente la tecnología permite la generación de programas muy
detallados.
8/17/2019 Programcion de Operaciones
11/61
FUNCIONES
Para poder programar y controlar una operación, se deben ejecutar las
siguientes funciones:
→ Asignar pedidos, equipos y personal a los centros de trabajo.
→ Determinar la secuencia de ejecución de los pedidos o tareas.
→Control de piso del taller, es decir, revisar estados de los pedidos y tomar las
acciones correctivas pertinentes.
8/17/2019 Programcion de Operaciones
12/61
OBJETIVOS
Dentro de los muchos objetivos que se pueden definir para la
programación, destacan:
→Cumplir con las fechas de entrega de los pedidos.
→ Minimizar el plazo de entrega.
→ Minimizar el inventario de productos en proceso.
→Minimizar el tiempo o costo de preparación (setup).
→Maximizar la utilización de máquinas y personal (trade off).
8/17/2019 Programcion de Operaciones
13/61
REGLAS DE DESPACHO - HEURISTICAS
Definición:
→Las reglas de despacho o normas prioritarias corresponden a los criterios
utilizados para obtener el secuenciamiento de un conjunto de tareas.
Formas de evaluarlas:
→Ajuste a las fechas de vencimiento.
→Minimización de los tiempos de proceso.
→Minimización de los inventarios de productos en proceso.
→Minimización del tiempo de inactividad de máquinas o trabajadores.
8/17/2019 Programcion de Operaciones
14/61
EJEMPLO
→ La información asociada a los pedidos es la siguiente:
→Todos los pedidos requieren de la utilización de una única máquina a color disponible.
El supervisor quiere decidir sobre la secuencia de procesamiento para los 5 pedidos
utilizando como criterio de evaluación el tiempo de proceso mínimo.
Tarea Tiempo de Proceso Fecha de Vencimiento(en orden de llegada) (días) (días a partir de hoy)A 3 5B 4 6C 2 7D 6 9
E 1 2
8/17/2019 Programcion de Operaciones
15/61
REGLAS DE DESPACHO (2)
Las 10 principales:
→FCFS (First Come, First Served):
• La primera tarea o pedido en llegar es el primero en ser atendido.
• Los pedidos se ejecutan el orden en que llegan a la máquina o centro de trabajo.
Secuencia Duración Fecha de Vencimiento Tiempo ende tareas (días) (días a partir de hoy) Proceso
A 3 5 0 + 3 = 3B 4 6 3 + 4 = 7C 2 7 7 + 2 = 9D 6 9 9 + 6 = 15E 1 2 15 + 1 = 16
Tiempo Total en Proceso = 3 + 7 + 9 + 15 + 16 = 50 días.Tiempo Medio en Proceso = 50/5 = 10 días.
Tiempo Promedio de Atraso = (0 + 1 + 2 + 6 + 14)/5 = 4,6 días.
8/17/2019 Programcion de Operaciones
16/61
8/17/2019 Programcion de Operaciones
17/61
REGLAS DE DESPACHO (3)
→Fecha de vencimiento:
• Primero se ejecuta la tarea con fecha de vencimiento más cercana.
→ Fecha de iniciación:
•Se define como la fecha de vencimiento menos el tiempo normal que demora la tarea en
el centro de trabajo.
• Se ejecuta primero la tarea con fecha de iniciación más cercana.
Secuencia Duración Fecha de Vencimiento Tiempo ende tareas (días) (días a partir de hoy) Proceso
E 1 2 0 + 1 = 1
A 3 5 1 + 3 = 4B 4 6 4 + 4 = 8C 2 7 8 + 2 = 10D 6 9 10 + 6 = 16
Tiempo Total en Proceso = 1 + 4 + 8 + 10 + 16 = 39 días.
Tiempo Medio en Proceso = 39/5 = 7,8 días.
Tiempo Promedio de Atraso = (0 + 0 + 2 + 3 + 7)/5 = 2,4 días.
8/17/2019 Programcion de Operaciones
18/61
REGLAS DE DESPACHO (4)
→STR (Slack Time Remaining):
• Corresponde a la holgura de tiempo restante para el inicio de una tarea.
• Se calcula como la diferencia entre el tiempo que falta para la fecha de vencimiento y el
tiempo total de procesamiento restante.
•
Los pedidos que tienen el STR más corto se ejecutan primero.
→ STR/OP (Slack Time Remaining per Operation):
• Se calcula como la razón entre el STR y el número de operaciones restantes.
• El pedido con STR/OP más corto es ejecutado primero.
Secuencia Duración Fecha de Vencimiento Tiempo en
de tareas (días) (días a partir de hoy) Proceso
E 1 2 0 + 1 = 1
A 3 5 1 + 3 = 4
B 4 6 4 + 4 = 8
D 6 9 8 + 6 = 14
C 2 7 14 + 2 = 16
Tiempo Total en Proceso = 1 + 4 + 8 + 14 + 16 = 43 días.
Tiempo Medio en Proceso = 43/5 = 8,6 días.
Tiempo Promedio de Atraso = (0 + 0 + 2 + 5 + 9)/5 = 3,2 días.
8/17/2019 Programcion de Operaciones
19/61
REGLAS DE DESPACHO (6)
→LCFS (Last Come, First Served):
• El último pedido en llegar es el primero en ser ejecutado.
•
Esta norma se presenta con frecuencia por defecto. A medida que llegan los pedidos,
éstos se colocan encima de una pila, el operador recoge el pedido de encima y lo
ejecuta.
Secuencia Duración Fecha de Vencimiento Tiempo en
de tareas (días) (días a partir de hoy) ProcesoE 1 2 0 + 1 = 1D 6 9 1 + 6 = 7C 2 7 7 + 2 = 9B 4 6 9 + 4 = 13A 3 5 13 + 3 = 16
Tiempo Total en Proceso = 1 + 7 + 9 + 13 + 16 = 46 días.
Tiempo Medio en Proceso = 46/5 = 9,2 días.
Tiempo Promedio de Atraso = (0 + 0 +2 + 7 + 11)/5 = 4,0 días.
8/17/2019 Programcion de Operaciones
20/61
REGLAS DE DESPACHO (6)
→ RANDOM (Orden Aleatorio):
• Consiste en escoger cualquier tarea para ejecutarla primero.
Secuencia Duración Fecha de Vencimiento Tiempo ende tareas (días) (días a partir de hoy) Proceso
D 6 9 0 + 6 = 6
C 2 7 6 + 2 = 8A 3 5 8 + 3 = 11E 1 2 11 + 1 = 12B 4 6 12 + 4 = 16
Tiempo Total en Proceso = 6 + 8 + 11 + 12 + 16 = 53 días.
Tiempo Medio en Proceso = 53/5 = 10,6 días.Tiempo Promedio de Atraso = (0 + 1 + 6 + 10 + 10)/5 = 5,4 días.
8/17/2019 Programcion de Operaciones
21/61
REGLAS DE DESPACHO (5)
→CR (Critical Ratio):
• Se calcula como la diferencia entre la fecha de vencimiento y la fecha actual, dividida por
el número de días de trabajo restantes.
• El pedido que tiene CR más pequeño se ejecuta primero.
→ QR (Queue Ratio):
• Se calcula como el tiempo de holgura restante en el programa dividido por el tiempo en
cola restante planeado.
•
El pedido con QR más pequeño se ejecutan primero.
É Ó
8/17/2019 Programcion de Operaciones
22/61
TÉCNICAS DE PROGRAMACIÓN (9)
•Tabla Resumen:
• Se puede concluir que la regla SOT es la mejor de acuerdo al criterio considerado.
• Además, puede demostrarse matemáticamente que ésta genera una solución óptima
para el tiempo total de proceso y el tiempo medio de proceso.
Regla Tiempo Total Tiempo Medio Tiempo Promedioen Proceso en Proceso (días) de Atraso (días)
FCFS 50 10,0 4,6SOT 36 7,2 2,4DDATE 39 7,8 2,4LCFS 46 9,2 4,0RANDOM 53 10,6 5,4STR 43 8,6 3,2
É Ó
8/17/2019 Programcion de Operaciones
23/61
TÉCNICAS DE PROGRAMACIÓN
OBSERVACIÓN GENERAL:
→La dificultad teórica de los problemas de programación se incrementa a medida
que se consideran más máquinas, y no en la medida que se deben procesar más
tareas.
É Ó
8/17/2019 Programcion de Operaciones
24/61
TÉCNICAS DE PROGRAMACIÓN
Programación de n tareas en dos máquinas:
→ Dos o más tareas deben procesarse en dos máquinas en una secuencia en
común.
→El método que permite minimizar el tiempo de proceso (desde que comienza la
primera tarea hasta que termina la última) se llama Método de Johnson.
→ Otorga también el programa óptimo para el tiempo de inactividad mínimo.
M1 M2
É Ó
8/17/2019 Programcion de Operaciones
25/61
TÉCNICAS DE PROGRAMACIÓN (2)
→PROCEDIMIENTO:
• Paso 1: Determinar el tiempo de operación para cada tarea en ambas máquinas.
• Paso 2: Escoger el tiempo de operación más corto.
• Paso 3: Si está en la primera máquina, hacer la tarea primero. Si está en la segunda,
hacer la tarea al último.
• Paso 4: Repetir pasos (2) y (3) para las tareas restantes hasta completar el programa.
M1 M2
É Ó
8/17/2019 Programcion de Operaciones
26/61
TÉCNICAS DE PROGRAMACIÓN (3)
→Ejemplo:
• Al comienzo del día se han recibido 4 trabajos, los cuales se desea secuenciar en las
dos máquinas que posee la empresa:
• Probar FIFO-LIFO
Tarea Tiempo Operación Tiempo OperaciónMáquina 1 Máquina 2
A 3 2B 6 8
C 5 6D 7 4
É Ó
8/17/2019 Programcion de Operaciones
27/61
TÉCNICAS DE PROGRAMACIÓN (3)
FIFO
3 9 14 21
DCBTMATM
TMDCBA
3 5 9 17 23 27
29
ABCTMDTM
TM ABCD
LIFO
7 13 19 22
19 277 11 13
É Ó
8/17/2019 Programcion de Operaciones
28/61
TÉCNICAS DE PROGRAMACIÓN (4)
•MÉTODO DE JOHNSON
Tarea Tiempo Operación Tiempo OperaciónMáquina 1 Máquina 2
A 3 2B 6 8C 5 6D 7 4
Secuencia: ? - ? - ? - A
Tarea Tiempo Operación Tiempo OperaciónMáquina 1 Máquina 2
A 3 2B 6 8
C 5 6D 7 4
Secuencia: ? - ? - D - A
É Ó
8/17/2019 Programcion de Operaciones
29/61
TÉCNICAS DE PROGRAMACIÓN (14)
Tarea Tiempo Operación Tiempo OperaciónMáquina 1 Máquina 2
A 3 2
B 6 8C 5 6D 7 4
Secuencia: C - ? - D - A
Tarea Tiempo Operación Tiempo OperaciónMáquina 1 Máquina 2
A 3 2B 6 8C 5 6
D 7 4
Secuencia Final: C - B - D - A
É Ó
8/17/2019 Programcion de Operaciones
30/61
TÉCNICAS DE PROGRAMACIÓN (15)
•Tiempo de Proceso:
MÁQUINA 1
MÁQUINA 2
Tiempo Total del Programa: 25 unidades de tiempo.
D A19 23 25C B D A
5 11 18 21
5 11
C B
8/17/2019 Programcion de Operaciones
31/61
COMPRACIONES
Reglas de asignación
0
5
10
15
20
25
30
35
FIFO LIFO M.J.
u . t
TIEMPO PROCESO
TIEMPOS MUERTOS
8/17/2019 Programcion de Operaciones
32/61
TAREA OPTATIVA
Proceso de llegada
→Produce 3 tipos de trabajos: A, B y C.
→Tiempos entre llegadas : Exponencial media 1.5 días.
→ El 50% de los trabajos son de tipo A.
→El 30% de los trabajos son de tipo B
→El 20% de los trabajos son de tipo C
Número de servidores
→ La fabrica posee 2 maquinas: M1 y M2
Proceso de atención
→Las máquinas poseen distintos tiempos de atención
• M1: Exponencial media 25 min.
• M2: exponencial media 20 min.
→Las máquinas solo pueden atender un trabajo a la vez
TAREA OPTATIVA (2)
8/17/2019 Programcion de Operaciones
33/61
Capacidad del sistema
→Capacidad infinita
Horizonte de simulación
→Resultados a largo plazo.
Política de atención
→Los trabajos de tipo A y B deben ser procesados primero en M1 y luego M2
→Los trabajos de tipo C deben ser procesados primero en M2 y luego en M1
Requerimientos
→ Largos y tiempos promedios en cola, utilizaciones de las máquinas, medidas de
eficiencia.
TÉCNICAS DE PROGRAMACIÓN (16)
8/17/2019 Programcion de Operaciones
34/61
Programación de n tareas en n máquinas:
→ En algunos talleres se tienen suficientes máquinas como para empezar todas la
tareas al mismo tiempo.
→El problema en estos casos es la asignación tarea-máquina que dará mejores
resultados.
→ Uno de los métodos utilizados para encontrar la asignación óptima, de acuerdo a
algún criterio, se denomina Método de Asignación.
M1
M2
Mn
T1
T2
Tn
TÉCNICAS DE PROGRAMACIÓN (17)
8/17/2019 Programcion de Operaciones
35/61
→El Método de Asignación es aplicable a problemas que tienen las siguientes
características:
• Existen “n” cosas que deben distribuirse a “n” destinos.
• Cada cosa debe asignarse a un solo destino.
• Sólo se puede utilizar un criterio (costo mínimo, utilidad máxima, tiempo de proceso
mínimo, etc)
M1
M2
Mn
T1
T2
Tn
TÉCNICAS DE PROGRAMACIÓN (19)
8/17/2019 Programcion de Operaciones
36/61
→Procedimiento:
• Paso 1: Sustraer el número más pequeño de cada fila a sí mismo y a toda la fila (habrá
por lo menos un cero en cada fila).
• Paso 2: Sustraer el número más pequeño de cada columna a todos los números de la
columna (habrá por lo menos un cero en cada columna).
• Paso 3: Determinar si el número mínimo de líneas requeridas para cubrir cada cero es
igual a n. En caso de ser así, se tiene la solución óptima. Si no, ir al Paso 4.
• Paso 4: Dibujar el mínimo número posible de líneas a través de todos los ceros. Sustraer
el número más pequeño no cubierto por las líneas a sí mismo y a todos los no cubiertos.
Agregarlo a los números que se encuentran en la intersección de las líneas. Repetir
Paso 3.
TÉCNICAS DE PROGRAMACIÓN (18)
8/17/2019 Programcion de Operaciones
37/61
→Ejemplo:
• 5 tareas y 5 máquinas
• Los costos de proceso de cada combinación tarea-máquina son:
•
Hay que notar que existen 5 (120) asignaciones posibles.
• Probar por máquina.-FIFO-LIFO
1 2 3 4 5
A 5 6 4 8 3
B 6 4 9 8 5
C 4 3 2 5 4
D 7 2 4 5 3
E 3 6 4 5 5
Máquina
T a r e a
TÉCNICAS DE PROGRAMACIÓN (21)
8/17/2019 Programcion de Operaciones
38/61
→Desarrollo:
1 2 3 4 5A 2 3 1 5 0
B 2 0 5 4 1C 2 1 0 3 2D 5 0 2 3 1E 0 3 1 2 2
Máquina
T a r e a
Paso 1: Reducción de filas.
1 2 3 4 5A 2 3 1 3 0B 2 0 5 2 1
C 2 1 0 1 2D 5 0 2 1 1E 0 3 1 0 2
Máquina
T a r e
a
Paso 2: Reducción de columnas.
TÉCNICAS DE PROGRAMACIÓN (22)
8/17/2019 Programcion de Operaciones
39/61
1 2 3 4 5A 2 3 1 3 0
B 2 0 5 2 1C 2 1 0 1 2D 5 0 2 1 1E 0 3 1 0 2
Máquina
T a r e a
Paso 3: Nº de líneas requeridas menor que n.
1 2 3 4 5A 1 3 0 2 0B 1 0 4 1 1
C 2 2 0 1 3D 4 0 1 0 1E 0 4 1 0 3
Máquina
T a r e a
Paso 4: Intersección de líneas.
TÉCNICAS DE PROGRAMACIÓN (23)
8/17/2019 Programcion de Operaciones
40/61
1 2 3 4 5A 1 3 0 2 0
B 1 0 4 1 1C 2 2 0 1 3D 4 0 1 0 1E 0 4 1 0 3
Máquina
T a r e a
Solución: Nº líneas requeridas igual a n.
→ Solución Óptima:
Asignaciones óptimas y sus costos
Tarea A a la máquina 5. US$3Tarea B a la máquina 2. 4Tarea C a la máquina 3. 2Tarea D a la máquina 4. 5Tarea E a la máquina 1. 3Costo Total US$17
COMPARACIÓN
8/17/2019 Programcion de Operaciones
41/61
COSTO USO MAQUINAS
17
21
18
0
5
10
15
20
25
HEURISTICA FIFO LIFO
U . M .
TÉCNICAS DE PROGRAMACIÓN (24)
8/17/2019 Programcion de Operaciones
42/61
Programación de n tareas en m máquinas:
→Existen (n )
m
programas alternativos para las n tareas en m máquinas.
→ Se acostumbra utilizar simulación para determinar los méritos de las reglas de
despacho consideradas.
→ Otra alternativa es utilizar programación matemática, con algún objetivo definido
(por ejemplo, minimización de costos o tiempos de espera).
Nota: Debemos tener en cuenta que en un taller real los pedidos pueden llegar durante el día.
PROBLEMA DE ASIGNACIÓN
8/17/2019 Programcion de Operaciones
43/61
MINIMIZAR EL COSTO TOTAL
→Cada tarea se asigne a una y sólo una máquina.
→ Cada máquina realice una y solo una tarea
Variables
xij: 1 si la tarea i se hace con la máquina j
cij: coste de realizar la tarea i con máquina j
n tareas
m máquinas
PROBLEMA DE ASIGNACIÓN (2)
8/17/2019 Programcion de Operaciones
44/61
{ }10
11
11
, x
m..i , x
n.. j , x
.a. s
xc Min
ij
n
1 jij
m
1i
ij
m
1i
n
1 j
ijij
∈
==
==
∑
∑
∑∑
=
=
= =
Una tarea a una máquina
Una máquina a una tarea
EJEMPLO PRACTICO
8/17/2019 Programcion de Operaciones
45/61
1 2 3 4 5 6 7 8 9 10A 7 4 3 4 4 9 1 5 5 3B 5 5 6 5 5 6 4 7 2 10C 9 6 5 7 1 4 3 3 9 5D 1 1 2 3 4 5 2 4 9 10E 9 4 9 8 9 8 4 5 1 5F 9 4 1 3 6 9 10 3 3 9G 4 5 5 5 7 5 9 25 9 2H 4 6 5 5 5 2 9 1 8 3I 5 1 10 15 5 7 8 6 2 5J 2 6 4 2 2 5 5 3 2 9
MÁQUINAS (COSTOS X TAREA)
T A R E A S
1 2 3 4 5 6 7 8 9 10ABCDEF
GHIJ
MÁQUINAS (COSTOS X TAREA)
T
A R E A S
CASOS APLICADOS A LA GESTION DE OPERACIONES
8/17/2019 Programcion de Operaciones
46/61
CLASS SCHEDULING
8/17/2019 Programcion de Operaciones
47/61
OBJETIVOS
→Se busca asignar:
•
Salas de clases
• Horarios de cursos
• Profesores de cátedra
• Cursos de los distintos semestres
→Existen distintos tipos de restricciones
• Condiciones inviolables
• Condiciones deseables
→Para problemas de gran tamaño, la obtención de una buena solución no es
trivial.
CLASS SCHEDULING (2)
8/17/2019 Programcion de Operaciones
48/61
MODELAMIENTO
→Identificar restricciones inviolables.
→Identificar restricciones violables.
→Asignar penalizadores al incumplimiento de las restricciones violables.
FUNCION OBJETIVO
→ Minimizar las suma de las penalizaciones.
→Sujeta a las restricciones inviolables.
CLASS SCHEDULING (3)
8/17/2019 Programcion de Operaciones
49/61
COMPLEJIDAD DEL SISTEMA
→Problema NP- Completo – Naturaleza combinatorial.
→Tiempo y dificultad de resolución explotan cuando el problema crece.
→Intensivo en el uso de heurísticas.
ENFOQUES DE SOLUCION
→ Método de enumeración de soluciones.
→Programación entera.
→Coloreo de grafos.
→ Algoritmos genéticos.
→ Tabú Search.
CASO PARTICULAR: DII
8/17/2019 Programcion de Operaciones
50/61
CARACTERISTICAS DEL PROBLEMA
→ Ramos a ser dictados en el semestre.
→
Cantidad de secciones de cada ramo.
→Asignación de profesores a ramos y secciones.
→Módulos necesarios por ramo.
→ Módulos horarios en que se dictan clases.
→Bloques de horarios deseables.
→Malla académica.
→Salas disponibles y su capacidad.
→
Alumnos esperados por ramo.
8/17/2019 Programcion de Operaciones
51/61
CASO PARTICULAR: DII
8/17/2019 Programcion de Operaciones
52/61
Día Módulo del dia BloqueLunes 1 B1
Miercoles 1 B1
Viernes 1 B1
Martes 2 B2
Jueves 2 B2Lunes 3 B3
Miercoles 3 B3
Miercoles 6 B3
Martes 6 B4
Martes 7 B4
Lunes 5 B5
Miercoles 4 B5Viernes 5 B5
Lunes 6 B6
Jueves 4 B6
Miercoles 6 B7
Miercoles 7 B7
Lunes 5 B8
Miercoles 4 B8
Jueves 5 B8Lunes 4 B9
Lunes 5 B9
Martes 1 B10
Miercoles 5 B10
Jueves 1 B10
Sala Capacidad
31DII 60
Q0 100
QP 100F10 120
Q10 120
Hidráulica 120
204DII 45
21DII 3522DII 35
B108 60
B104 50
17S 60
15S 6019S 60
05S 40
MODELO MATEMATICO
8/17/2019 Programcion de Operaciones
53/61
INDICES Y CONJUNTOS:
sem: Semestre : 7,8,9,10,11,12
r: Ramos : 1,…,10
p: Profesores : 1,…,9
m: Módulos : 1,…,35
s: Salas : 1,…,15
b : Bloques : 1,…,10
{ }i bloqueal pertenecem/mbi
=
{ }r ramodicta p profesor/),(1 r p F =
{ }sem semestreendictadoesrramo/),(2
r sem F =
MODELO MATEMATICO (2)
8/17/2019 Programcion de Operaciones
54/61
PARÁMETROS
Apr : Nº esperado de alumnos que inscriben la sección
Nr : N° de módulos necesarios para ramo r
Caps: Capacidad de la sala s
Secr: Nº de secciones del ramo r
VARIABLES DE DECISION:
:ms
pr X 1 si el profesor p dicta el ramo r en el modulo m y en la sala s0 en otro caso.
1 si el profesor p ocupa al menos 1 módulo del bloque b para dictar el ramo r.
:b pr Y 0 en otro caso.
MODELO MATEMATICO (3)
8/17/2019 Programcion de Operaciones
55/61
RESTRICCIONES
Un profesor no puede dictar un ramo que no le corresponde.
01),(:
=∑∑ ∑∉ s m F pr r msrp X p∀
En una misma sala y modulo se puede dictar a lo más 1 curso.
11),(:
≤
∑ ∑∈ p F pr r ms
pr X sm,∀
Un profesor no puede dictar más de un ramo al mismo tiempo.
11),(:
≤∑ ∑∈ s F pr r ms
pr X m p,∀
Una clase no puede dictarse en una sala con capacidad insuficiente.
sm F r p ∀∀∈∀ ,,),( 1 s pr ms pr Cap A X ≤⋅
MODELO MATEMATICO (4)
8/17/2019 Programcion de Operaciones
56/61
RESTRICCIONES
Todos los Módulos de una sección deben ser programados (horario y salas)
r
s m
ms
rp N X =∑∑ 1),( F pr ∈∀
Todas las secciones de un curso se imparten en el mismo módulo
'
'
ms
rp
ms
rp X X = ';';, p p s smr
8/17/2019 Programcion de Operaciones
57/61
RESTRICCIONES
Desviaciones de asignación de módulos respecto a bloques (l)
11)( B
rp
r
s m Bm
ms
rp
Y N
X
≤∑ ∑
∈
1),( F pr ∈∀
22)( B
rp
r
s m Bm
msrp
Y N
X
≤∑ ∑∈
1),( F pr ∈∀
…
1010)( B
rp
r
s m Bm
ms
rp
Y N
X
≤∑ ∑
∈ 1),( F pr ∈∀
MODELO MATEMATICO (6)
8/17/2019 Programcion de Operaciones
58/61
RESTRICCIONES
Desviaciones de asignación de módulos respecto a bloques (ll)
∑ ∑∈
≤ s m Bm
ms
rp
B
rp X Y )(1
1
1),( F pr ∈∀
∑ ∑∈
≤ s m Bm
ms
rp
B
rp X Y )(2
2
1),( F pr ∈∀
…
∑ ∑∈
≤ s m Bm
ms
rp
B
rp X Y )(10
10
1),( F pr ∈∀
MODELO MATEMATICO (6)
8/17/2019 Programcion de Operaciones
59/61
MIN FUNCION OBJETIVO
∑ ∑ ∑∑ ∑∑ ∑∈ ∉∈∈
+
−++
−
1 10
10
1
1
,
21 ... F pr s Bm
msrp
s Bm
msrp
Brpr
s Bm
msrp
Brpr
i
i
X P X Y N X Y N P U
Penalización por desviación de calce perfecto en bloques:
Ej: si IN34A Sección 1 se dicta en Módulos pertenecientes a más deun bloque, hay penalización.
Penalización por total desajuste en la asignación de módulosrespecto a bloques
Ej: si IN34A Sección 1 se dicta en Módulos que no pertenecen aningún bloque
8/17/2019 Programcion de Operaciones
60/61
PROGRAMACIÓ N DE OPERACIONES
JAIME MIRANDA Departamento de Ingeniería Industrial
Universidad de Chile
SCHEDULING-SECUENCIAMIENTO DE TAREAS
8/17/2019 Programcion de Operaciones
61/61
PROGRAMACIÓ N DE OPERACIONES
JAIME MIRANDA Departamento de Ingeniería Industrial
Universidad de Chile
SCHEDULING-SECUENCIAMIENTO DE TAREAS