290 likes | 497 Views
Módulo 2 :. Programación entera y optimización combinatoria. Mayo 2007. Bibliografía. Nemhauser: Integer and combinatorial optimization Papadimitrou: Combinatorial Optimization Minoux: Graphes et algorithmes Chrétienne: Problèmes d'ordonnancement Minoux: Programmation mathématique
E N D
Módulo 2: Programación entera y optimización combinatoria Mayo 2007
Bibliografía • Nemhauser: Integer and combinatorial optimization • Papadimitrou: Combinatorial Optimization • Minoux: Graphes et algorithmes • Chrétienne: Problèmes d'ordonnancement • Minoux: Programmation mathématique • Murty: Linear programming. • Luenberger: Linear and nonlinear programming.
Programación entera • Introducción • Programación entera y grafos • Métodos de corte • Métodos generales • Complejidad de los problemas de optimización • Algoritmos aproximados • Aplicaciones • Herramientas de cálculo
Introducción • Problemas de optimización combinatoria y entera : maximizan o minimizan funciones de varias variables sujeto a restricciones de integridad sobre todas o algunas variables. • Ejemplos de aplicación: distribución de productos o mercaderías, secuenciamiento de tareas en problemas de producción, diseñode redes de comunicación, etc. • Programación lineal entera mixta (MIP): Max cx + hy / Ax + Gy b, con x Zn+, y Rn+
Def: región factible S: S={(x,y) / x Zn+, y Rn+, Ax+ Gy b} • Def: solución óptima: una solución factible (x0,y0) es óptima si (x,y) S , cx0+hy0 cx +hy • Def: valor óptimo = cx0+hy0 • Un MIP puede ser no factible o no acotado o factible • Def: problema lineal entero: (IP) Max cx / Ax b, x Zn+ • Pbs contínuos e IP son casos particulares de MIP
Variables enteras: muchas veces se usan para representar relaciones lógicas (variables binarias 0-1), o sea x Bn+, B={0,1} • No hay definición unánimede optimización combinatoria, pero en geneal son problemas 0-1 IP, trabajando con conjuntos finitos. • Def Sea N={1..n} finito y c=(c1,...cn), para F N, definimos c(F)=cj, y = 2 N, un problema de optimización combinatoria (cp) es : (cp) Max c(F) / F • En optimización combinatoria se busca la solución en un conjunto finito o en un contable infinito
Pbs no lineales Pbs convexos LP Matching, Flujos Pbs enteros
Def: Instancia de un problema de optimización es un par (F, c) / c: F R y el problema consiste en encontrar f F /c(f) c(y) y F EJEMPLOS • Traveling Salesman Problem (TSP): Instancia: • dado un entero n>0 una matriz de distancias [dij]nxn entre cualquier par de n ciudades / dij Z+. • tour: es un camino cerrado /visita cada ciudad exactamente una vez • Pb: encontrar un tour con largo total mínimo, o sea: F= {permutaciones de n objetos} y c: F R asigna a cada F, un costo d ij
0-1 Knapsack Instancia: • Sean n alimentos/ costo aj y una capacidad nutritiva cj j=1..n . Cada alimento puede ser elegido para ser llevado o no y no se puede fraccionar. • Existe un presupuesto b o capacidad de la mochila que no puede ser superado. • Pb: elegir un subconjunto de alimentos que maximice el valor nutritivo no excediendo el presupuesto (capacidad de la mochila) Max cjxj / ajxjb , x=(x1,..xn) Bn
Asignación Instancia: • Sean n personas y m trabajos con nm. • Cada trabajo debe ser hecho por una persona y cada persona puede hacer a lo sumo un trabajo • cij=costo de una persona j haciendo un trabajo i • Pb: encontrar una asignación de personas a trabajos /minimice el costo total de completar todos los trabajos: xij B={0,1}, xij =1 si persona j asignada a trabajo i, si no xij =0 xij =1 , xij 1 j i • Función objetivo: Min cijxij • Existen m+n elementos y se particionan en 2 conjuntos disjuntos de trabajos y personas.
Matching • A diferencia con el problema anterior, no podemos asumir esta partición • Sean 2n estudiantes /se quieren asignar a n cuartos dobles: c/estudiante debe ser asignado exactamente a 1 compañero. • (i,j) /i<j, asigna al estudiante i y al estudiante j a igual pieza. Sea cij el costo asociado : Min cijxij/ xki =1 , xij = 1, i=1...2n, x Bn(2n-1) k<ij>i • matching perfecto: con = en restricción
Scheduling • Varios trabajos a ser procesados en una máquina y el órden en que se procesan no se especifica. • Restricciones del tipo: tarea k precede a la j en la máquina i o viceverza. • Sean n trabajos y m máquinas. • Cada trabajo debe ser procesado en todas las máquinas • Para cada trabajo el orden de máquinas es fijo: para el trabajo j, primero se procesa en j(1), luego en j(2), etc. • Una máquina procesa un trabajo por vez. • Las tareas no son interrumpibles en una máquina. • Datos:m,n, pij= tiempo de proceso del trabajo i en máquina j, orden de pasada: j(1)..j(m) • Sea tij la fecha de comienzo del trabajo j en la máquina i
La operación (r+1) no puede comenzar hasta completada la r: tj(r+1),jtj(r),j + pj(r),j • xijk=1 si el trabajo j precede al trabajo k en la máquina i (jk), 0 si no. • tik tij +pij si xijk=1 y • tij tik +pik si xijk=0 • Sea w una cota superior en tij-tik+pij i,j,k • Pb: Min tj(m) / tij 0 , xki =1 , xijk {0,1} (1) tj(r+1),jtj(r),j + pj(r),j r=1..m-1 (2) tij - tik - pij +w (1- xijk) (3) tik- tij - pik +w xijk • (2) y (3) restricciones disyuntivas
Poliedros enteros • Def.: Una matriz entera Amxn es una matriz totalmente unimodular (TUM) si submatriz cuadrada de A su determinante es 0, 1 o -1. • Observación: aij=0,1 o -1 • Teo: son equivalentes: • A es TUM • AT , [A I son TUM • Eliminando una fila (columna) de A nueva matriz TUM • Multiplicando una fila (columna) de A nueva matriz TUM • Permutando filas o columnas de A nueva matriz TUM • Duplicando filas o columnas de A nueva matriz TUM • Pivoteando en A nueva matriz es TUM
Def: Un poliedro no vacío P Rn se dice entero si cada cara no vacía (incluye aristas y vértices) contiene un punto entero • Teo: Un poliedro P= {x Rn / Axb} con rango(A)=n es entero sii todos sus puntos extremos son enteros. • Sea LP : zLP = max{cTx / x P} Teo: Las siguientes afirmaciones son equivalentes: • P es entero • LP tiene una solución entera óptima c Rn, para las cuales tiene solución óptima • LP tiene una solución entera óptima c Zn, para las cuales tiene solución óptima • zLP es entera c Zn para el cual LP tiene solución óptima.
Teo: Si A es TUM P(b)={x Rn+ / Axb, x 0} es entero b entero /P(b) no vacío. Considerar el conjunto Ax+Iy=b, xR+n , yR+m, con A TUM y b entero, sea (A,I)=(AB,AN), donde AB es una matriz básica para el prog. Lineal AB-1 es una matriz entera (por construcción y por ser por ser A TUM, |AB|=1), AB-1.bes entero y como a cada solución básica factible le corresponde un punto extremo P es entero. • Teo: (recíproco): Si P(b)={x Rn+ / Axb, x 0} es entero b entero /P(b) no vacío A es TUM XB= B-1.b = Adj(B).b/|B|= Adj(B). b.|B-1| (ya que |B|. |B-1| =1) Por hipótesis, XB entero y b entero cualesquiera / existe solución B-1 entera, cada elemento zij de esta matriz es entero |B-1| entero y como |B|. |B-1| =1, debe ser |B|= |B-1| =1. B es una base cualquiera es una matriz cuadrada no singular y su determinante es 1 o –1. Si es singular su determinante es nulo. Para submatrices de rango menor a m, eliminar una o mas filas y repetir el mismo razonamiento.
Teo: Sea A TUM, con b,b’,d,d’ enteros y P(b,b’,d,d’)={x Rn/ b’ Ax b, d’ x d} es no vacío, entonces P(b,b’,d,d’) es un poliedro entero. • Teo: Sea A TUM con c entero y Q(c)={u Rm+ / uTAc} es no vacío, entonces Q(c) es un poliedro entero. Condiciones suficientes para TUM • Teorema anterior: Si P(b) es entero bZn / P(b) es no vacío => A es TUM • Teo: A es TUM J N={1..n} existe una partición J1, J2 de J/ aij - aij1 i=1..m jJ1 jJ2
Teo: Sea A una matriz con elementos aij{0,-1,1}, con no más de dos elementos no nulos en cada columna. A es TUM las filas de A pueden ser particionadas en dos subconjuntos I1 e I2/ si una columna tiene dos elementos no nulos se cumple: a) Si ambos elementos tienen el mismo signo entonces una fila pertenece a I1 y la otra a I2, b) Si ambos elementos tienen diferente signo entonces ambas filas pertenecen al mismo subconjunto • Teo: Sea A una matriz (0,-1,1) con no más de dos entradas no nulas en cada columna, si cuando hay dos entradas no nulas iaij =0, A es TUM
NOTAS: • Una matriz de incidencia nodo-arcos de un grafo bipartito es TUM . • Si la matriz es (0,1) y es TUM ==> el grafo asociado es bipartito • Las matrices de intervalo son TUM • Las matrices de incidencia nodos-arcos en un grafo dirigido son TUM
Matrices balanceadas y totalmente balanceadas • Def: A(0,1) es una matriz totalmente balanceada (TB) si no contiene una submatriz en MK k3 MK: es una familia de matrices (0,1) k*k cuyas filas y columnas suman 2 y no contienen la submatriz : 1 1 1 1 • Def: A(0,1) es balanceada si no contiene una submatriz en MK k3 e impar
Nota: matrices en MK : • Las matrices en MK con k3 que no contienen una Ml con l<k, es una matriz de incidencia de un ciclo. Sea A MK / no contiene una Ml con l<k , si k impar => det A =2 , de lo contrario det A =0 • Teo: Si A es TB =>las siguientes matrices son TB: • (A,I) • AT • permutaciones de filas de A • submatrices de A • Teo: Si A es TUM => A es balanceada (demos x abs)
Matricesbalanceadas TUM TUM TB
EJEMPLO: 1 1 1 1 1 1 0 0 A= 1 0 1 0 1 0 0 1 a) A no es TUM ya que det(A)=-2 b) A es TB c) P(1)= {x Rn+ / Ax1, x 0} es entero d) P(b), con b=(2,1,1,1) T contiene un punto extremo (1/2,1/2,1/2,1/2)T e) La matriz 0 A con A’M4 A’ 0 es balanceada y no es TUM ni TB
Def: problema FC (fractional packing): (FP) max cTx / x P = {x Rn+ /Ax1}, Amxn(0,1) Dual: (DFP) min y / yTAc, x Rm+ • Def: problema FP (fractional covering): (FC) min cTx / x Q = {x Rn+ /Ax 1}, Amxn(0,1) Dual: (DFC) max y / yTA c, x Rm+ • Asumimos cj>0 j=1..n • Teo: Sea Amxn(0,1), sin filas ni columnas nulas: P(b) ={x Rn+ /Axb}, es entero bi {1,}, i=1..m Q(b) = {x Rn+ /Ax b}, es entero b Bm
Teo: Si A es TB=> Q(b)= {x Rn+ /Ax b}, es entero y DFC tiene soluciones óptimas enteras b Bm . • Teo: Si A es TB=> P(b) = {x Rn+ /Axb}, es entero y DFP tiene soluciones óptimas enteras b {1,}. • Teo: ( )Sea Amxn(0,1), sin filas ni columnas nulas, es equivalente: • A balanceada (sin ciclos impares) • P(b) = {x Rn+ /Axb}, es entero b {1,}. • Q(b)= {x Rn+ /Ax b}, es enterob Bm • Nota: el reconocimiento de matrices TB (por matrices de inclusión) se hace en tiempo polinomial
Ejercicio: Demostrar que un grafo G (no dirigido) es bipartito sii no contiene ciclos impares
Solución de un sistema con ciclos impares • Restricción a agregar para eliminar soluciones no enteras
Problemas en grafos y LP asociados • Problema de flujo con costo mínimo • Problema de matching • Problema de covering