stringtranslate.com

Problema con la cubierta del contenedor

En el problema de cubrimiento de 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 cierto tamaño total dado, de manera que se maximice el número de contenedores utilizados.

Este problema es una versión dual del problema de empaquetamiento de contenedores : en el cubrimiento de contenedores, los tamaños de los contenedores están limitados desde abajo y el objetivo es maximizar su número; en el empaquetamiento de contenedores, los tamaños de los contenedores están limitados desde arriba y el objetivo es minimizar su número. [1]

El problema es NP-hard , pero existen varios algoritmos de aproximación eficientes :

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.

Para cualquier instancia I , denotamos por el número de contenedores en la solución óptima y por el número de contenedores llenos en el algoritmo de llenado bidireccional. Entonces , o equivalentemente, .

Prueba

Para la prueba se utiliza la siguiente terminología:

La suma de cada contenedor es al menos 1, pero si se elimina el último elemento, la suma restante es menor que 1. Cada uno de los primeros contenedores contiene un elemento inicial, posiblemente algunos elementos intermedios y un elemento final. Cada uno de los últimos contenedores contiene solo un elemento inicial y un elemento final, ya que ambos son mayores que 1/2 y su suma ya es mayor que 1.

La prueba considera dos casos.

El caso fácil es , es decir, todos los elementos finales son menores que 1/2. Entonces, la suma de cada elemento lleno es como máximo 3/2, y la suma de los elementos restantes es como máximo 1, por lo que la suma de todos los elementos es como máximo . Por otro lado, en la solución óptima la suma de cada contenedor es al menos 1, por lo que la suma de todos los elementos es al menos . Por lo tanto, como se requiere.

El caso difícil es , es decir, algunos elementos finales son mayores que 1/2. Ahora demostramos un límite superior de presentándolo como una suma donde:

Nos centramos primero en los contenedores óptimos en y . Presentamos una biyección entre los artículos en cada uno de esos contenedores hasta algunos artículos en los que son al menos tan valiosos.

Ahora nos centraremos en los contenedores óptimos en y .

Opresión

El factor 2/3 es ajustado para BDF. Consideremos el siguiente ejemplo (donde es suficientemente pequeño): BDF inicializa el primer contenedor con el elemento más grande y lo llena con los elementos más pequeños. Luego, los elementos restantes pueden cubrir contenedores solo en tripletes, por lo que todos los contenedores están llenos. Pero en OPT se pueden llenar contenedores, cada uno de los cuales contiene dos de los elementos de tamaño mediano y dos elementos pequeños.

Algoritmo de llenado de contenedores de tres clases

Csirik, Frenk, Lebbe y Zhang [2] : 19–24  presentan otro algoritmo que logra una aproximación de 3/4. El algoritmo ordena los elementos de mayor a menor y los divide en tres clases:

El algoritmo funciona en dos fases. Fase 1:

Fase 2:

En el ejemplo anterior, que muestra la estrechez de BDF, los conjuntos son: TCF alcanza el resultado óptimo, ya que inicializa todos los contenedores con pares de elementos de Y y los llena con pares de elementos de Z.

Para cualquier instancia I , denotamos por el número de contenedores en la solución óptima y por el número de contenedores llenos en el algoritmo de llenado de tres clases. Entonces .

El factor 3/4 es ajustado para TCF. Consideremos el siguiente ejemplo (donde es suficientemente pequeño):

TCF inicializa el primer contenedor con los dos elementos más grandes y lo llena con los elementos más pequeños. Luego, los elementos restantes pueden cubrir contenedores solo en grupos de cuatro, por lo que todos los contenedores están llenos. Pero en OPT se pueden llenar contenedores, cada uno de los cuales contiene 3 elementos de tamaño mediano y 3 elementos 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 menos bins si la suma de todos los elementos es mayor que , y al menos en caso contrario. Se ejecuta en tiempo . El algoritmo resuelve una variante del programa lineal de configuración , con variables y restricciones. Este algoritmo solo es interesante teóricamente, ya que para obtener una aproximación mejor que 3/4, debemos tomar , y 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ótico para el peor de los casos mejor que 1/2. Sin embargo, hay 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 menos bins si la suma de todos los elementos es mayor que (si la suma de los elementos es menor que eso, entonces el óptimo es como máximo de todos modos). Se ejecuta en tiempo , donde es la complejidad en tiempo de ejecución del mejor algoritmo disponible para inversión de matrices (actualmente, alrededor de ). Este algoritmo se vuelve mejor que la aproximación 3/4 ya cuando , y en este caso las constantes son razonables - alrededor de .

Rendimiento con tamaños de elementos divisibles

Un caso especial importante de cubrimiento de bins es que los tamaños de los elementos forman una secuencia divisible (también llamada factorizada ). Un caso especial de tamaños de elementos divisibles ocurre 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 el cubrimiento de bins encuentran una solución óptima. [5] : Sec.5 

Problemas relacionados

En el problema de asignación justa de elementos , hay distintas personas que atribuyen un valor diferente a cada elemento. El objetivo es asignar a cada persona un "recipiente" lleno de elementos, de modo que el valor de cada uno de ellos sea al menos una constante determinada, y que el mayor número posible de personas reciba un recipiente. En este problema también se utilizan muchas técnicas de cobertura de recipientes.

Implementaciones

Referencias

  1. ^ ab 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 bins unidimensional". Journal of Algorithms . 5 (4): 502–525. doi :10.1016/0196-6774(84)90004-X. ISSN  0196-6774.
  2. ^ abc Csirik, János; JBG Frenk y M. Labbé y S. Zhang (1999-01-01). "Dos algoritmos simples para cubrir bins". Acta Cybernetica . 14 (1): 13–25. ISSN  2676-993X.
  3. ^ ab Csirik, Janos; Johnson, David S.; Kenyon, Claire (9 de enero de 2001). "Mejores algoritmos de aproximación para el cubrimiento de bins". 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.
  4. ^ ab Jansen, Klaus; Solis-Oba, Roberto (21 de noviembre de 2002). "Un esquema de aproximación temporal totalmente polinomial asintótico para el cubrimiento de bins". Actas del 13.º Simposio Internacional sobre Algoritmos y Computación . ISAAC '02. 2518. Berlín, Heidelberg: Springer-Verlag: 175–186. doi :10.1007/3-540-36136-7_16. ISBN 978-3-540-00142-3.
  5. ^ Coffman, E. G; Garey, M. R; Johnson, D. S (1987-12-01). "Empaquetado de contenedores con tamaños de elementos divisibles". Journal of Complexity . 3 (4): 406–428. doi :10.1016/0885-064X(87)90009-4. ISSN  0885-064X.