Upload
renato-amaya
View
229
Download
0
Embed Size (px)
Citation preview
APLICACIONES
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
• 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
• 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
• 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.
• 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
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
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
• 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
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
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
• 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
– 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.
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)
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
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)
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
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
• 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
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:
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
IV- Métodos exactos para problemas NP difíciles:
• Programación dinámica• Métodos arborescentes
RESUMEN
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.
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)