programación con restricciones 1

15
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS Planificación y Control de la Producción II Jairo Humberto Torres Acosta Ph.D. P.E. 1 PROGRAMACIÓN CON RESTRICCIONES DE TIEMPOS DE TERMINACIÓN Programación con restricciones es una técnica que se originó en la comunidad de Inteligencia Artificial . En los últimos años, a menudo han sido aplicadas estas técnicas en combinación con la investigación de operaciones para mejorar su eficacia. La Programación con restricciones, de acuerdo con su diseño original, sólo trata de encontrar una buena solución, tal que sea viable y que satisfaga todas las restricciones dadas en el sistema, por lo cual, estas soluciones rara vez son óptimas. Las restricciones, normalmente son las fechas de pedido y fechas de vencimiento. Es posible utilizar una técnica de programación con restricciones, con el propósito de reducir al mínimo las fechas de vencimiento relacionadas con la función objetivo. La programación con restricciones aplicada a problemas del tipo funciona de la siguiente for ma. Suponga que en un sistema “Job Shop de m maquinas; ” se ha encontrado un programa (secuenciación) con “makespan que es menor o igual a un plazo de entrega ̅ y con una fecha de lanzamiento o liberación . El algoritmo que satisface las restricciones para cada máquina debe arrojar como resultado una secuencia de operaciones de tal manera que el programa o secuencia general tenga un “makespan ” menor o igual a ̅ . Antes de iniciar el procedimiento de secuenciación y programación de operaciones se debe desarrollar un paso de inicialización. Para cada trabajo u operación, en cada máquina se realiza el cálculo para determinar el posible tiempo temprano de iniciación y el posible tiempo tardío de terminación. Seguidamente, se desarrolla el cálculo para todas las ventanas de tiempo de los trabajos en cada máquina, las cuales se comparan entre sí. Cuando las ventanas de tiempo de dos operaciones en cualquier máquina no se superpongan o traslapen, se puede definir una

Upload: jeison-diaz

Post on 22-Sep-2015

225 views

Category:

Documents


1 download

DESCRIPTION

Programación con Restricciones

TRANSCRIPT

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    1

    PROGRAMACIN CON RESTRICCIONES DE TIEMPOS DE TERMINACIN

    Programacin con restricciones es una tcnica que se origin en la comunidad de

    Inteligencia Artificial . En los ltimos aos, a menudo han sido aplicadas estas

    tcnicas en combinacin con la investigacin de operaciones para mejorar su

    eficacia.

    La Programacin con restricciones, de acuerdo con su diseo original, slo trata de

    encontrar una buena solucin, tal que sea viable y que satisfaga todas las restricciones

    dadas en el sistema, por lo cual, estas soluciones rara vez son ptimas. Las restricciones,

    normalmente son las fechas de pedido y fechas de vencimiento. Es posible utilizar una

    tcnica de programacin con restricciones, con el propsito de reducir al mnimo las

    fechas de vencimiento relacionadas con la funcin objetivo.

    La programacin con restricciones aplicada a problemas del tipo

    funciona de la siguiente forma. Suponga que en un sistema Job Shop de m maquinas;

    se ha encontrado un programa (secuenciacin) con makespan que es

    menor o igual a un plazo de entrega y con una fecha de lanzamiento o liberacin .

    El algoritmo que satisface las restricciones para cada mquina debe arrojar como

    resultado una secuencia de operaciones de tal manera que el programa o secuencia

    general tenga un makespan menor o igual a .

    Antes de iniciar el procedimiento de secuenciacin y programacin de operaciones se

    debe desarrollar un paso de inicializacin.

    Para cada trabajo u operacin, en cada mquina se realiza el clculo para

    determinar el posible tiempo temprano de iniciacin y el posible tiempo tardo

    de terminacin.

    Seguidamente, se desarrolla el clculo para todas las ventanas de tiempo de los trabajos

    en cada mquina, las cuales se comparan entre s. Cuando las ventanas de tiempo de dos

    operaciones en cualquier mquina no se superpongan o traslapen, se puede definir una

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    2

    relacin de precedencia entre las dos operaciones, es decir que dicha relacin de

    precedencia puede ser impuesta:

    En cualquier secuencia o programa factible, la operacin con la ventana de

    tiempo temprana debe preceder a la operacin con la ventana de tiempo tardo.

    En realidad, una relacin de precedencia se puede inferir incluso cuando las

    ventanas de tiempo se superponen.

    Sea (

    ) las variables que denotan en cada paso del procedimiento, el posible

    tiempo de inicio temprano (tardo) del trabajo u operacin y (

    ) las

    variables que denotan, el posible tiempo de terminacin temprana (tarda) del trabajo u

    operacin , en el marco del actual conjunto de restricciones de precedencia.

    Tenga en cuenta que el posible tiempo temprano de iniciacin de la operacin , por

    ejemplo , puede ser puede ser considerado como una fecha de lanzamiento local de la

    operacin y puede ser denotado por , mientras que el posible tiempo tardo de

    terminacin , puede ser considerado como una fecha de vencimiento local (due

    date), denotado como .

    Con base en los criterios anteriores, se puede definir la holgura entre el procesamiento

    de las operaciones e en la mquina como:

    Si

    Entonces, en el marco del actual conjunto de restricciones de precedencia todava no

    existe, una secuencia factible en la que la operacin preceda a la operacin

    en la mquina ; por lo que la relacin de precedencia que se debe definir o imponer,

    requiere que la operacin aparezca antes de la operacin .

    En el paso de la inicializacin del procedimiento, todos los pares de ventanas de tiempo

    se comparan entre s y todas las relaciones de precedencia implcita se insertan en un

    grafo disyunto. Debido a estas restricciones de precedencia adicionales de las ventanas

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    3

    de tiempo de cada una de las operaciones, se puede ajustar de nuevo (o reducidas), es

    decir, se trata de un nuevo clculo de la fecha de lanzamiento y la fecha de vencimiento

    de cada operacin.

    Las tcnicas de satisfaccin de las restricciones se basan en general en la propagacin

    de las restricciones. Una tcnica de satisfaccin de restricciones se basa tpicamente en

    pruebas o intentos y en cada paso, se intenta insertar nuevas limitaciones de precedencia

    mediante arcos disyuntos, las cuales estn implicadas por las otras restricciones de

    precedencia insertadas anteriormente y por las restricciones originales del problema.

    Con las nuevas restricciones de precedencia ubicadas en su lugar, la tcnica recalcula

    las ventanas de tiempo de todas las operaciones. Para cada par de operaciones que

    tienen que ser procesados en la misma mquina, se tiene que verificar que uno de los

    siguientes cuatro casos se aplique.

    Caso 1

    Caso 2

    Caso 3

    Caso 4

    En uno de los pasos del algoritmo que ms adelante se describe, un par de operaciones

    se han seleccionado de forma tal que satisfagan el caso 4, es decir, que cualquiera que

    sea el orden entre las operaciones, la secuencia sigue siendo factible. En este paso del

    algoritmo, muchos pares de operaciones pueden satisfacer la condicin del caso 4. Si

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    4

    hay ms de un par de operaciones que cumplen con el caso 4, entonces, el control de

    bsqueda heurstica tiene que ser aplicado.

    En este contexto, la seleccin de una pareja de operaciones se basa en la flexibilidad de

    la secuencia que esta pareja este ofreciendo. La pareja o par de operaciones con la

    menor flexibilidad es seleccionada. El razonamiento de este enfoque es sencillo. S una

    pareja con poca flexibilidad no es secuenciada desde el principio en este proceso,

    entonces puede suceder que ms adelante este par de operaciones no puedan ser

    programadas. Por esta razn, tiene sentido dar prioridad a las parejas con una baja

    flexibilidad y posponer la programacin o secuenciacin de los pares de operaciones

    con una alta flexibilidad.

    Es evidente que la flexibilidad de los pares de operaciones depende de la cantidad de

    holgura que exista en los dos posibles ordenamientos. Un clculo simple de la

    flexibilidad ( ) al secuenciar un par de operaciones, corresponde al mnimo

    valor de las dos holguras calculadas. Es decir:

    ( )

    Sin embargo, basarse nicamente en este clculo del lmite mnimo puede traer

    problemas. Por ejemplo, al suponer que un par de operaciones tiene valores de holgura 3

    y 100, mientras que otro par tiene los valores de holgura 4 y 4. En este caso, puede

    haber posibilidades limitadas para la programacin de la segunda pareja del primer par

    (la de 100) y posponer una decisin en relacin con el segundo par (4 y 4), lo cual bien

    puede eliminarlas. Un ordenamiento factible en relacin con la primera pareja en

    realidad no puede estar en peligro.

    Sin embargo, en lugar de utilizar ( ), la siguiente medida heurstica de

    flexibilidad de la secuenciacin, ha demostrado ser ms eficaz:

    ( )

    As que, s la relacin tiene un valor grande, entonces la flexibilidad del par de

    operaciones se incrementa y la urgencia por ordenarlas disminuye. Despus de que el

    par de operaciones con la flexibilidad de secuenciacin ms baja ( ) ha sido

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    5

    seleccionada, la restriccin de precedencia que conserva la mayor flexibilidad se

    selecciona (es impuesta), es decir si:

    La operacin debe preceder a la operacin .

    En uno de los pasos del algoritmo tambin puede suceder que un par de operaciones

    satisfaga el caso 3. Cuando este es el caso, el programa parcial que est en

    construccin, no se puede completar y el algoritmo tiene que dar marcha atrs.

    Devolverse, suele implicar que una o ms de las decisiones tomadas en iteraciones

    anteriores tengan que ser anuladas, (es decir, que las relaciones de precedencia que se

    haban definido anteriormente con base en las restricciones tienen que ser eliminadas).

    En otro caso, puede implicar que no existe una solucin factible para el problema en la

    forma en que se ha presentado y formulado y algunas de las restricciones originales del

    problema tienen que ser relajadas.

    El procedimiento de bsqueda heurstica guiada con restricciones se presenta en el

    siguiente numeral.

    1. ALGORITMO 1: BSQUEDA HEURSTICA GUIADA CON RESTRICCIONES

    El algoritmo se describe a continuacin:

    Paso 1

    Calcule para cada par no ordenado de operaciones los valores:

    Paso 2

    Comprobar las condiciones de dominancia y clasificar las decisiones de ordenamiento

    restantes de acuerdo con:

    Si alguna decisin de ordenamiento corresponde a los casos 1 o 2 vaya al paso

    3.

    Si alguna decisin de ordenamiento corresponde al caso 3 entonces dar marcha

    atrs.

    En caso contrario vaya al paso 4.

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    6

    Paso 3

    Inserte una nueva restriccin de precedencia y vaya al paso 1.

    Paso 4

    S no se da una decisin de ordenamiento cuando corresponde al caso 4,

    entonces se ha encontrado la solucin. PARE.

    En caso contrario vaya al paso 5.

    Paso 5

    Calcular ( ) para cada par de operaciones que no se hayan ordenado.

    Si , entonces la operacin debe seguir a la

    operacin .

    En caso contrario, entonces la operacin debe seguir a la operacin .

    Vaya al paso 3.

    Con el fin de aplicar el algoritmo de bsqueda heurstica guiada con restricciones a los

    problemas tiene que ser incorporado al siguiente marco de trabajo.

    Primero, se debe encontrar un lmite superior y un lmite inferior al makespan.

    2. ALGORITMO 2: MARCO DE TRABAJO DE LA BSQUEDA HEURSTICA

    GUIADA CON RESTRICCIONES

    Paso 1

    Conjunto d

    Aplique el algoritmo 1

    Paso 2

    Paso 3

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    7

    El desarrollo del siguiente ejemplo ilustra la utilizacin de la tcnica de la heurstica

    guiada con restricciones.

    3. EJEMPLO DE APLICACIN DE PROGRAMACIN CON RESTRICCIONES

    EN UN AMBIENTE JOB SHOP

    Considere el siguiente ejemplo para resolver el problema de programacin con

    restricciones en un ambiente Job Shop, tomado de Scheduling, Michael Pinedo, pg.

    207.-11

    .

    Tabla 1. Informacin sobre trabajos, secuencia de operaciones en las mquinas y

    tiempos de procesamiento.

    Considere un Due Date d=32, tiempo para el cual todos los trabajos deben estar

    terminados. Considrese de nuevo un grafo disyuntivo pero ignorando todos los arcos

    disyuntos tal como se muestra en la figura 1.

    Figura 1. Grafo disyunto con arcos disyuntos que representa la ejecucin de los

    trabajos en las diferentes mquinas de acuerdo con la secuencia establecida para cada

    uno de ellos.

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    8

    Seguidamente, se desarrollan todos los clculos con la trayectoria o camino ms largo,

    determinando las fechas de liberacin y los tiempos de terminacin (due date)

    locales tal como se muestra en la tabla 2.

    Tabla 2. Calculo de los tiempos locales de liberacin y due date .

    A manera de ilustracin se tomar el trabajo cuya secuencia de operaciones est

    determinada por el conjunto de mquinas , para lo cual se tiene (observar

    el grafo disyunto de la figura 1): El clculo de los es:

    Mientras que el clculo de los es:

    Una vez desarrollada esta tabla de tiempos para todas las operaciones, se tienen que

    desplegar una comprobacin para verificar si estas condiciones implican unas

    restricciones de precedencia adicionales. Consideremos por ejemplo los pares de

    operaciones (2, 2) y (2, 3) como un par que tiene que ser procesadas por la mquina

    . Los clculos de los resultados de rendimientos de las holguras son:

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    9

    Este resultado implica que el orden no es factible. De esta forma, el

    arco disyunto tiene que ser insertado en el grafo disyunto. De la

    misma manera, se puede demostrar que los arcos disyuntos y

    debern ser insertados tambin.

    Figura 2. Grafo disyunto con arcos disyuntos insertados

    La adicin de este arco (en color rojo) hace que la red sea distinta y que para llegar al

    nodo 2,3 ahora halla dos rutas, es decir y .

    Evidentemente, el nuevo o tiempo de liberacin para debe el

    tiempo mayor entre .

    De la misma manera se tiene:

    Estas restricciones de precedencia adicionales requieren la actualizacin de los tiempos

    de liberacin y las fechas de vencimiento de todas las operaciones, los cuales se

    presentan en la tabla 3.

    En los recuadros rojos se marcan las operaciones que sufrieron cambios al actualizarse

    los tiempos y . Estas actualizaciones de los tiempos locales de liberacin y de

    vencimiento no implican ninguna restriccin de precedencia adicional.

    8

    8

    10

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    10

    Tabla 3. Actualizacin de los tiempos locales de liberacin y tiempos de

    vencimiento .

    En el paso 5 del algoritmo 1, requiere los clculos del factor ( ) para todos

    los pares de operaciones no ordenados en cada una de las mquinas, resultados que se

    pueden observar en la tabla 4.

    Tabla 4. Clculos para ( )

    De acuerdo con estos resultados, el par con menor flexibilidad es . Dado que

    las holguras son tales que:

    Cualquiera de las dos restricciones puede ser insertada. Suponga que la restriccin de

    precedencia (3, 2) (3, 1) es insertada tal como se muestra en la figura 3. Esta

    restriccin de precedencia causa mayores cambios en la ventana de tiempo durante la

    cual las operaciones tienen que ser procesadas. Esto se puede observar en la tabla 5 en

    donde se comparan los datos actualizados de la tabla 3 con los nuevos datos calculados.

    Tabla actualizada

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    11

    Figura 3. Grafo disyunto con arco disyunto insertado

    Al insertar se puede observar entonces que el comportamiento de

    permanece igual, pero el

    Tabla 5. Comparacin de los datos actualizados de la tabla 3 con los nuevos datos

    calculados.

    Sin embargo, este nuevo conjunto de ventanas de tiempo impone una restriccin de

    precedencia adicional (4, 2) (4, 3). Esta nueva restriccin de precedencia genera

    cambios en los tiempos locales de liberacin y de vencimiento de las operaciones (tabla

    6 b), actualizacin que no genera restricciones de precedencia adicionales. Ahora,

    mediante el paso 5 del algoritmo 1, se calculan los nuevos valores ( ). Toda

    esta informacin se observa en la siguiente tabla.

    Datos actualizados de

    la tabla 3

    Nuevos datos

    8

    8

    10

    6

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    12

    Tabla 6. (a) Actualizacin de la informacin al insertar (3, 2) (3, 1); (b)

    Actualizacin al introducir (4, 2) (4, 3); (c) Clculo de ( ).

    De acuerdo con los resultados 6(c), se observa que el par de operaciones con menor

    flexibilidad es , por lo cual la restriccin de precedencia

    debe ser insertada. La insercin efectuada anteriormente, impone una restriccin

    ms . De esta manera falta insertar nicamente el par . Estas

    dos operaciones se pueden ordenar de cualquier manera, sin violar ninguna fecha de

    vencimiento y un ordenamiento factible es . El resultado del programa

    con un makespan igual a 32 se muestra en la figura 2. Este programa cumple con la

    fecha de vencimiento originalmente establecida, pero no es ptimo.

    Figura 4. Programa final no ptimo

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    13

    Cuando el par fue ordenado la primera vez, podra haber sido ordenado en

    cualquier direccin, puesto que los valores de holgura eran iguales. Supongamos que en

    ese momento el orden opuesto fue seleccionado en lugar de

    . Al reiniciar el proceso en ese punto, los rendimientos sobre las fechas de

    liberacin y vencimiento se muestran en la tabla 7(a).

    Estas fechas de liberacin y vencimiento hacen cumplir una nueva restriccin de

    precedencia que corresponde al par de las operaciones (2, 1) (2, 3) con la restriccin (2,

    1) (2, 3). Esta restriccin adicional cambia las fechas de liberacin y vencimiento

    que se pueden observar en la 7(b). Estos cambios afectan el par (4, 2) (4, 3) y su

    arco (4, 2) (4, 3). Este arco adicional no genera cambios en las fechas. En este punto

    dos pares de operaciones faltaran por ordenar; los pares (1, 1) (1, 3) y (1, 2) (1, 3),

    lo cual se puede observar en 7(c).

    Tabla 7. (a) Actualizacin de la informacin al insertar ; (b)

    Actualizacin al introducir ; (c) Clculo de ( ).

    De esta forma el par (1, 1) (1, 3) es ms crtico, por lo cual se ordena el arco (1, 1)

    (1, 3). De esta manera resulta que la ltima pareja por ordenar ser (1, 2) (1, 3), la cual

    se puede ordenar en cualquier forma.

    El programa final resulta ser ptimo con un makespan igual a 28. Estos resultados se

    muestran a continuacin.

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    14

    Figura 5. Grafo disjunto que representa la solucin ptima con makespan 28

    El grafo disjunto de la figura 5 muestra las rutas crticas para la utilizacin de las

    mquinas conectadas con arcos disjuntos de color rojo y con arcos de color azul que

    evidentemente son los no crticos. Por ejemplo para la maquina 1, la ruta es:

    La tabla que muestra los cambios que se presentaron tanto en los tiempos de liberacin

    y los tiempos de due date locales es la siguiente:

    Tabla 8 Actualizacin de la informacin sobre los

    Con base en todos estos resultados, se presenta el diagrama Gantt para el conjunto de

    mquinas

    Figura 6. Diagrama de Gantt que representa la solucin ptima con makespan 28

    44

    6

    5

    8

    3

    7

    5

    4

    8 3

    88

    10

    3

    4

    100

    2,2 1,2U 4,2 3,2 V

    1,1

    1,3

    2,1

    2,3

    3,1

    4,3

    0

    operations r ij d ij

    (1,1) 0 10

    (2,1) 10 18

    (3,1) 18 22

    (2,2) 0 8

    (1,2) 14 17

    (4,2) 17 22

    (3,2) 22 28

    (1,3) 10 18

    (2,3) 18 25

    (4,3) 25 28

    M1

    M2

    M3

    M4

    22 28

    2,3

    3,1 3,2

    4,2 4,3

    32t

    10 20 30

    1,1 1,3 1,2

    2,2 2,1

  • UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS Planificacin y Control de la Produccin II Jairo Humberto Torres Acosta Ph.D. P.E.

    15

    Como se dijo anteriormente, la satisfaccin de restricciones no slo es aplicado para

    reducir el makespan al mnimo, sino que tambin se puede aplicar a problemas con

    objetivos relacionados con fechas de vencimiento y cada trabajo relacionado con sus

    propias fechas de liberacin.