Programcion de Operaciones

download Programcion de Operaciones

of 61

Transcript of Programcion de Operaciones

  • 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)

     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

     s m Bm

    ms

    rp

    Y  N 

     X 

    ≤∑ ∑

    1),(   F  pr    ∈∀

    22)(   B

    rp

     s m Bm

    msrp

    Y  N 

     X 

    ≤∑ ∑∈

    1),(   F  pr    ∈∀

    1010)(   B

    rp

     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