26
APLICACIONES

APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

Embed Size (px)

Citation preview

Page 1: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

APLICACIONES

Page 2: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

I- Problemas de ordenamiento

• Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución.

• Tareas:– Conjunto de tareas a ejecutar, I, dado a priori (problemas

estáticos)

– Parámetros de las tareas determinísticos (por ejemplo la duración)

– Relaciones entre tareas (restricciones potenciales de sucesión)

– Modos de ejecución: interrumpible, no interrumpible

Page 3: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

• Ejemplo: Problemas de talleres: las tareas son operaciones elementales que se agrupan en entidades llamadas jobs . El taller contiene m máquinas distintas y cada job es un conjunto de m operaciones elementales, cada una debiéndose ejecutar en máquinas diferentes. Tres tipos de problemas de taller: open-job, job-shop y flow-shop:– open-job: operaciones elementales independientes

– job-shop: operaciones elementales de un job ligadas por un orden total, no necesariamente igual para todos los jobs

– flow-shop: operaciones elementales de un job ligadas por el mismo orden total, igual para todos los jobs

– no hay restricciones de precedencia entre operaciones elementales de diferentes jobs

– Problemas difíciles: el flow-shop hay (n!)m soluciones posibles, si se impone el mismo orden sobre todas las máquinas hay n! soluciones posibles

Page 4: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

• Recursos: tipo renovable y consumible. Disponibilidad

• Notación:– pik= tiempo de ejecución de la tarea i en la máquina k

– ti = fecha de comienzo de ejecución de la tarea i

– Ci=fecha de fin de ejecución de la tarea i

– di =fecha límite de fin de ejecución de la tarea i

– ri = fecha de disponibilidad de la tarea i

– Ti=max(0,Ci-di) retardo de la tarea i

– Cmax=max {Ci } duración total del ordenamiento

iI

i I, ri ti Ci di

Page 5: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

• Criterio o función objetivo: para evaluar un problema de ordenamiento, se pueden utilizar varios criterios: uso eficaz de los recursos, demora total, respeto de la mayor cantidad posible de restricciones– Minimización de la duración total: Min Cmax

(ejemplo:CPM/Pert)– Respeto de las fechas mas tardías: Min Ti o Min (max

Ti ), etc.– Minimización de un costo: wiCi , minimización de

número de interrupciones, etc.

• Def: un criterio a minimizar, f(C1,C2..Cn), se dice regular si:

C1’ C1,... Cn’ Cn entonces: f(C1’,C2’..Cn’) f(C1,C2..Cn)

• Def: un subconjunto de ordenamientos conteniendo la solución óptima se llama subconjunto dominante.

Page 6: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

• Representación de soluciones: diagramas de Gantt con recursos

• Def: Problema central de ordenamiento: consiste en ordenar, de forma de ejecutar en tiempo mínimo, un conjunto de tareas I, sujetas a restricciones temporales de tipo potencial:

tj-ti aij.

• Modelado del problema central de ordenamiento: grafo de potencial-tareas

• Métodos de camino crítico para resolver el problema central de ordenamiento

Page 7: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

I- Métodos polinomiales

• Métodos de camino crítico: para problemas sin restricción de recursos

• Métodos seriales o de lista: para problemas con recursos renovables: – una heurística permite clasificar las tareas según un

orden de prioridad

– Orden de prioridad estático o dinámico

– Reglas de prioridad, ejemplo: ordenadas según las fechas más tardías fi o según fi+pi

Page 8: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

Algoritmo:

U=0, t=0

While UI do

If U’(U’I, subconjunto de tareas disponibles en t) , then:

determinar la tarea i de U’ más prioritaria,

U=U {i}, actualizar U’

else actualizar t de forma que U’

end

Ventajas: sencillez, para algún tipo de problema dan directamente la solución óptima o una evaluación por exceso de la distancia al óptimo

Problemas: no dan evaluación por defecto y muchas veces la solución óptima no pertenece al conjunto de soluciones dadas por estos métodos.

Ejemplos

Page 9: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

• Métodos basados en algoritmos de camino crítico para

recursos no renovables:– I=conjunto de tareas, cada tarea necesita en la fecha de

ejecución ti una cantidad ai de un recurso consumible y en las fechas u1,u2...uq llegan b1,b2..bq cantidades de estos recursos.

– Tareas ligadas por restricciones potenciales, G=(X,U)

– Condición de admisibilidad: t, D(t)=ai bi=S(t)

– Algoritmo de desplazamiento: calcula el ordenamiento más tardío y luego lo desplaza lo mínimo necesario para que existan recursos disponibles

– EJEMPLO– Teo: el algoritmo de desplazamiento construye un

ordenamiento optimal si se respeta la condición de admisibilidad

Page 10: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

II- Métodos de programación lineal

• Problemas con tareas interrumpibles: ordenar n tareas interrumpibles sobre m máquinas idénticas,

– Si cada tarea i debe ejecutarse en el intervalo [ri,di => modelado con problema de transporte: el problema tiene asociado una red de transporte G=(X,U). Un ordenamiento realisable corresponde a un flujo sobre esa red de valor pi.

– Si no hay intervalos: algoritmo de Mac Naughton: basado en la siguiente consideración: B=max (max pi, (pi) /m ) es una cota inferior de la duración óptima

Page 11: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

Algoritmo de Mc. Naughton

1- Calcular B=max (max pi, (pi) /m ) , t=0, k=1

2- for i=1 a n

Si t+ pi B,

afectar la máquina k a la tarea i en [t, t+ pi, t= t+ pi

si no,

afectar la máquina k a la tarea i en [t, B y

la máquina k+1 en [0, t+ pi-B, t= t+ pi-B, k=k+1

3- fin for

– NOTA: alg Mac. Naughton construye un ordenamiento optimal

Page 12: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

• Problemas con tareas no interrumpibles: en estos casos los problemas son más difíciles y la programación lineal sirve normalmente para calcular cotas. No obstante hay casos particulares bien resueltos por PL:

– problema central con duración total de la tarea función lineal de su costo:

Min ijU(ij-ijxij) /

lij xij uij (i,j) U

xij tj-ti (i,j) U

tn+1=Cmax

ti 0

Page 13: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

– el problema de ordenamiento de n tareas independientes sobre m máquinas distintas con una duración media mínima.

F. Obj: Ci= np1+(n-1)p2+....+pn

– para 1 máquina: alcanza con ejecutarlas en el orden de duraciones crecientes

– para m máquinas : flujo máximo a costo mínimo sobre grafo

• NOTA: cuando la función objetivo es la duración media ponderada, el problema es NP-difícil para dos máquinas idénticas. Para una máquina sigue siendo polinomial.

Page 14: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

III- Métodos clásicos-HeurísticasIII.1 Métodos de intercambio• Se usan fundamentalmente para problemas con

una y dos máquinas.• Se basan en intercambios sucesivos de tareas. • Problemas resueltos por algoritmos polinomiales:

a)- Problemas con una máquina, con minimización de la suma ponderada de las fechas de fin de ejecución

a.1) caso de tareas independientes: orden con wi/pi decreciente es optimal

(wi= peso de la tarea i)

a.2) caso de tareas dependientes, mediante una anti-arborescencia

b)- Problemas de taller, flowshop, con dos máquinas (algoritmo de Johnson)

Page 15: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

a) Una máquina y minimización de suma ponderada de fechas de fin de ejecución.

a.1) Tareas independientes:

Criterio de evaluación del ordenamiento: wiCi / wi0

Teo: ordenando las tareas con wi/pi decrecientes, se obtiene un orden óptimo.

a.2) Tareas dependientes: caso de dependencia tipo antiarborescencias, hay algoritmo polinomial

Page 16: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

b)- Problemas de taller, flowshop, con dos máquinas (algoritmo de Johnson)

Generalidades de flowshop:

Sea k= orden de pasaje de las tareas en la máquina k.

Prop 1: Para todo criterio regular, el conjunto de soluciones tales que 1= 2 es dominante

Prop 2: Para todo criterio de minimización de la demora total, el conjunto de soluciones tales que n= n-1 es dominante

Sea aj=p1j (duración de la tarea j en la máquina 1 y

bj=p2j (duración de la tarea j enla máquina 2)

Page 17: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

Teo 1: La relación definida sobre un conjunto de trabajos / i j min(ai,bj) < min(aj,bi) esun orden parcial estricto

Teo 2: A todo orden totalcompatible con le corresponde un secuenciamiento óptimo

Algoritmo de Johnson (complejidad O(nlogn)) :

U=, V =,

Para i=1:n

si ai<bi U=U +{i}, si no V=V +{i},

fin para

LU= lista ordenada de U, por ai crecientes

LV= lista ordenada de V, por bi decrecientes

L= LU LV

fin

Page 18: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

III.2 Métodos de lista:

• Se basan en construir una lista de tareas ordenada por prioridades decrecientes y luego ordenar las tareas aplicando la regla: cuando hay tareas prontas para ejecutarse, ejecutar la más prioritaria de la lista.

• Problemas resueltos en tiempo polinomial:a) Problema de minimización de la duración total de n

tareas no interrumpibles, sobre m procesadores idénticos y las tareas ligadas por una relación de precedencia G(I,<) que es una anti-arborescencia (sin arcos de transitividad)

b) Problema con un grafo cualquiera (sin arcos de transitividad) y dos máquinas

Page 19: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

• El problema de ordenar n tareas no independientes de duraciones p1..pn sobre m máquinas, en una duración total mínima es NP-difícil, pero se puede demostrar que todo algoritmo de lista construye una solución cuya distancia en valor relativo al óptimo es inferior a 1-1/m:

En efecto, sea un ordenamiento de lista arbitrario sobre m máquinas / la tarea i debe preceder a la j:

ijMáquina 1

Máquina 2

Máquina m

Page 20: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

Calculemos ahora una cota superior para la duración acumulada de períodos de ocio en las máquinas, (T):

Considerando la máquina sobre la que se ejecuta la tarea i y que la tarea j siguiente a la i no puede ejecutarse hasta que termine i, durante la ejecución de i, a lo sumo esperan m-1 máquinas un tiempo pi (duración de i). Luego, entre el fin de i y el comienzo de j todas las máquinas están ocupadas (por ser algoritmo de lista), por lo tanto repitiendo el razonamiento para todas las tareas que se ejecutan en la misma máquina que la tarea i:

T (m-1) (pi+pk+.....pr), siendo i,k ..r el conjunto de tareas ejecutadas sobre una máquina determinada (sin esperas)

Sean ahora f’ la duración del ordenamiento proporcionada por el algoritmo delista y f* la duración óptima:

Page 21: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

f’ = solución del algoritmo de lista = (1:n pi +T)/m

f*=solución óptima (1:n pi )/m,

T (m-1) (pi+pk+.....pr) (m-1) f* (f* es mayor o igual que el tiempo que trabaja una máquina)

o sea,

f’ = (1:n pi +T)/m 1/m 1:n pi + (m-1)/m f*

f’ f* + (m-1)f*/m

(f’-f*)/f* 1-1/m

Page 22: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

IV- Métodos exactos para problemas NP difíciles:

• Programación dinámica• Métodos arborescentes

Page 23: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

RESUMEN

Page 24: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

I- Métodos polinomiales:– Camino crítico: para problemas sin restricción de

recursos y restricciones potenciales

– Métodos seriales o de lista para problemas con recursos renovables: algoritmo de desplazamiento (construye el óptimo si se cumple admisibilidad)

II- Métodos de programación lineal– Problemas con tareas interrumpibles: ordenar n tareas

interrumpibles sobre m máquinas idénticas

– Problemas con tareas no interrumpibles:• problema central con duración total de la tarea función lineal

de su costo

• el problema de ordenamiento de n tareas independientes sobre m máquinas distintas con una duración media mínima.

Page 25: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas:

III- Métodos clásicos-Heurísticas– Métodos de intercambio

• Problemas con una máquina, con minimización de la suma ponderada de las fechas de fin de ejecución.

• Problemas de taller, flowshop, con dos máquinas (algoritmo de Johnson)

– Métodos de lista • Minimización de duración total de n tareas no interrumpibles,

m máquinas, tareas ligadas por una relación de precedencia de anti-arborescencia (sin arcos de transitividad)

• Problema con un grafo cualquiera (sin arcos de transitividad) y dos máquinas

IV- Métodos exactos para problemas NP difíciles– Programación dinámica

– Métodos arborescentes (branch and bound)

Page 26: APLICACIONES. I- Problemas de ordenamiento Ordenar: programar la ejecución de tareas atribuyéndoles recursos y fijando sus fechas de ejecución. Tareas: