260 likes | 409 Views
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)
E N D
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ísticas III.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
j Máquina 1 i Máquina 2 Máquina m • 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:
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
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)