En el problema de cubrir contenedores , los artículos de diferentes tamaños deben empaquetarse en un número finito de contenedores, cada uno de los cuales debe contener al menos un tamaño total determinado, de manera que se maximice el número de contenedores utilizados.
Este problema es dual al problema de empaquetamiento de contenedores : en el problema de cobertura de contenedores, los tamaños de los contenedores están limitados inferiormente y el objetivo es maximizar su número; en el problema de empaquetamiento de contenedores, los tamaños de los contenedores están limitados superiormente y el objetivo es minimizar su número. [ 1 ]
El problema es NP-difícil , pero existen varios algoritmos de aproximación eficientes :
- Algoritmos que cubren al menos 1/2, 2/3 o 3/4 del número óptimo de intervalos de forma asintótica, ejecutándose en tiemporespectivamente. [ 1 ] [ 2 ]
- Un PTAS asintótico , algoritmos con comportamiento en el peor caso acotado cuyo comportamiento esperado es asintóticamente óptimo para algunas distribuciones discretas, y un algoritmo de aprendizaje con comportamiento esperado asintóticamente óptimo para todas las distribuciones discretas. [ 3 ]
- Un FPTAS asintótico . [ 4 ]
El algoritmo de llenado de contenedores bidireccional
Csirik, Frenk, Lebbe y Zhang [ 2 ] : 16–19 presentan el siguiente algoritmo simple para la aproximación 2/3. Supongamos que el tamaño del contenedor es 1 y hay n elementos.
- Ordena los elementos del más grande (1) al más pequeño ( n ).
- Llena un contenedor con los artículos más grandes : 1, 2, ..., m , donde m es el entero más grande para el cual la suma de los artículos 1, ..., m es menor que 1.
- Agregue a este contenedor los elementos más pequeños : n , n -1, ..., hasta que su valor supere 1.
Para cualquier instancia I , denotemos porel número de contenedores en la solución óptima, y porel número de contenedores llenos en el algoritmo de llenado bidireccional. Entonces , o equivalentemente, .
Prueba
Para la demostración se utiliza la siguiente terminología.
- el número de contenedores llenados por el algoritmo.
- los contenedores t llenados por el algoritmo.
- Elementos iniciales : los t elementos que se insertan primero en cada uno de los t contenedores.
- Artículos finales : los t artículos que se insertan al final en cada uno de los t contenedores.
- Elementos intermedios : todos los elementos que no son ni iniciales ni finales.
- := the number of final items that are at most 1/2 (equivalently, is the number of final items larger than 1/2).
The sum of each bin is at least 1, but if the final item is removed from it, then the remaining sum is smaller than 1. Each of the first bins contains an initial item, possibly some middle items, and a final item. Each of the last bins contains only an initial item and a final item, since both of them are larger than 1/2 and their sum is already larger than 1.
The proof considers two cases.
The easy case is , that is, all final items are smaller than 1/2. Then, the sum of every filled is at most 3/2, and the sum of remaining items is at most 1, so the sum of all items is at most . On the other hand, in the optimal solution the sum of every bin is at least 1, so the sum of all items is at least . Therefore, as required.
The hard case is , that is, some final items are larger than 1/2. We now prove an upper bound on by presenting it as a sum where:
- the optimal bins with no initial/final items (only middle items).
- the optimal bins with exactly one initial/final item (and some middle items).
- the optimal bins with two or more initial/final items (and some middle items).
We focus first on the optimal bins in and . We present a bijection between the items in each such bin to some items in which are at least as valuable.
- The single initial/final item in the bins is mapped to the initial item in . Note that these are the largest initial items.
- The middle items in the and bins are mapped to the middle items in . Note that these bins contain all the middle items.
- Therefore, all items in and are mapped to all non-final items in , plus all middle items in .
- The sum of each bin without its final item is less than 1. Moreover, the initial item is more than 1/2, so the sum of only the middle items is less than 1/2. Therefore, the sum of all non-final items in , plus all middle items in , is at most .
- The sum of each optimal bin is at least 1. Hence: , which implies .
We now focus on the optimal bins in and .
- The total number of initial/final items in the and bins is at least , but their total number is also since there are exactly two initial/final items in each bin. Therefore, .
- Summing the latter two inequalities implies that , which implies .
Tightness
The 2/3 factor is tight for BDF. Consider the following instance (where is sufficiently small):BDF initializes the first bin with the largest item and fills it with the smallest items. Then, the remaining items can cover bins only in triplets, so all in all bins are filled. But in OPT one can fill bins, each of which contains two of the middle-sized items and two small items.
Three-classes bin-filling algorithm
Csirik, Frenk, Lebbe y Zhang [ 2 ] : 19–24 presentan otro algoritmo que alcanza una aproximación de 3/4. El algoritmo ordena los elementos de mayor a menor y los divide en tres clases:
- X: Los artículos con un tamaño mínimo de 1/2;
- Y: Los artículos con un tamaño menor a 1/2 y al menos 1/3;
- Z: Los artículos con un tamaño menor a 1/3.
El algoritmo funciona en dos fases. Fase 1:
- Inicialice un nuevo contenedor con el elemento más grande de X o con los dos elementos más grandes de Y, según cuál sea mayor. Tenga en cuenta que, en ambos casos, la suma inicial de los elementos del contenedor es menor que 1.
- Llena el nuevo contenedor con artículos de la letra Z en orden creciente de valor.
- Repita el proceso hasta que XUY o Z estén vacíos.
Fase 2:
- Si XUY está vacío, llene los contenedores con artículos de Z mediante la regla simple de ajuste siguiente.
- Si Z está vacío, empaque los elementos restantes en X de dos en dos, y los restantes en Y de tres en tres.
En el ejemplo anterior, que muestra la precisión de BDF, los conjuntos son:TCF alcanza el resultado óptimo, ya que inicializa todocoloca contenedores con pares de artículos de Y y los llena con pares de artículos de Z.
Para cualquier instancia I , denotemos porel número de contenedores en la solución óptima, y porel número de contenedores llenos en el algoritmo de llenado de tres clases. .
El factor 3/4 es ajustado para TCF. Considere el siguiente caso (dondees suficientemente pequeño):
TCF inicializa el primer contenedor con los dos elementos más grandes y lo llena con losartículos más pequeños. Luego, los restantesLos artículos solo pueden cubrir los contenedores en grupos de cuatro, por lo que en totalLos contenedores están llenos. Pero en OPT uno puede llenarlos.contenedores, cada uno de los cuales contiene 3 artículos de tamaño mediano y 3 artículos pequeños.
Esquemas de aproximación en tiempo polinomial
Csirik, Johnson y Kenyon [ 3 ] presentan un PTAS asintótico. Es un algoritmo que, para cada ε >0, llena al menoscontenedores si la suma de todos los artículos es mayor quey al menosDe lo contrario, funciona a tiempo.. El algoritmo resuelve una variante del programa lineal de configuración , convariables yrestricciones. Este algoritmo solo es interesante teóricamente, ya que para obtener una aproximación mejor que 3/4, debemos tomary entonces el número de variables es mayor que.
También presentan algoritmos para la versión en línea del problema. En el entorno en línea, no es posible obtener un factor de aproximación asintótica en el peor de los casos mejor que 1/2. Sin embargo, existen algoritmos que funcionan bien en el caso promedio.
Jansen y Solis-Oba [ 4 ] presentan un FPTAS asintótico. Es un algoritmo que, para cada ε >0, llena al menoscontenedores si la suma de todos los artículos es mayor que(si la suma de los elementos es menor que eso, entonces el óptimo es como máximoDe todos modos). Corre a tiempo, dóndees la complejidad temporal del mejor algoritmo disponible para la inversión de matrices (actualmente, alrededor de). Este algoritmo se vuelve mejor que la aproximación 3/4 ya cuandoy en este caso las constantes son razonables, aproximadamente.
Rendimiento con tamaños de artículos divisibles
Un caso especial importante de cobertura de contenedores es cuando los tamaños de los elementos forman una secuencia divisible (también llamada factorizada ). Un caso especial de tamaños de elementos divisibles se da en la asignación de memoria en sistemas informáticos, donde los tamaños de los elementos son todos potencias de 2. Si los tamaños de los elementos son divisibles, entonces algunos de los algoritmos heurísticos para la cobertura de contenedores encuentran una solución óptima. [ 5 ] : Sec.5
Problemas relacionados
En el problema de asignación equitativa de artículos , hay diferentes personas, cada una de las cuales atribuye un valor distinto a cada artículo. El objetivo es asignar a cada persona un contenedor lleno de artículos, de manera que el valor de cada contenedor sea al menos una constante determinada, y que la mayor cantidad de personas posible reciba un contenedor. Muchas técnicas de cobertura de contenedores también se utilizan en este problema.
Implementaciones
- Python: El paquete prtpy contiene una implementación de los algoritmos de Csirik-Frenk-Labbe-Zhang .
Referencias
- 1 2 Assmann, S. F ; Johnson, D. S ; Kleitman, D. J ; Leung, JY-T (1984-12-01). "Sobre una versión dual del problema de empaquetamiento de contenedores unidimensional". Journal of Algorithms . 5 (4): 502– 525. doi : 10.1016/0196-6774(84)90004-X . ISSN 0196-6774 .
- 1 2 3 Csirik, János; JBG Frenk y M. Labbé y S. Zhang (1999-01-01). "Dos algoritmos simples para la cobertura de contenedores" . Acta Cybernetica . 14 (1): 13– 25. ISSN 2676-993X .
- 1 2 Csirik, Janos; Johnson, David S.; Kenyon, Claire (2001-01-09). "Mejores algoritmos de aproximación para la cobertura de contenedores" . Actas del Duodécimo Simposio Anual ACM-SIAM sobre Algoritmos Discretos . SODA '01. Washington, DC, EE. UU.: Society for Industrial and Applied Mathematics: 557–566 . ISBN 978-0-89871-490-6.
- 1 2 Jansen, Klaus; Solis-Oba, Roberto (2003). "Un esquema de aproximación asintótica totalmente polinomial para la cobertura de contenedores". Theoretical Computer Science . 306 ( 1– 3): 543– 551. doi : 10.1016/S0304-3975(03)00363-3 . MR 2000192 .
- ↑ Coffman, E. G; Garey, M. R; Johnson, D. S (1987-12-01). "Empaquetado de contenedores con tamaños de artículos divisibles" . Journal of Complexity . 3 (4): 406– 428. doi : 10.1016/0885-064X(87)90009-4 . ISSN 0885-064X .
- Algoritmos y métodos de optimización
- Problemas de cobertura