CONTENEDOR Y CONTENIDO



Con este ejemplo tratamos de llenar el espacio de un conte-
nedor (contenido homogéneo) del modo  más eficiente posible
(en el cálculo consideramos que; tanto el  contenedor como
los bultos, tienen forma de caja (poliedro con 6 caras per-
pendiculares).

En el ejemplo descargable, el contenedor tiene por defecto:
322 cm. de ancho, 210 cm. de fondo y 182 cm. de alto.

Si pretendemos aprovechar su espacio con bultos de: 68 cm.
de ancho, 54 cm. de fondo y 36 cm. de alto, la solución se-
ría (imagen a la derecha): Colocar 75 bultos con el ancho
en dirección hacia el fondo y el alto en dirección hacia
arriba, apilándolos con 5 bultos de ancho por 3 de fondo y
5 de alto, más 9 bultos a la derecha, colocando el ancho
hacia el fondo y el fondo hacia arriba, apilándolos con 1 de ancho, 3 de fondo y 3 de alto.

Con esta colocación; tenemos una holgura de 16 cm. por la derecha, 6 cm. al frente y 2 cm. por
arriba, espacio este insuficiente para alojar un bulto más.


                                    * * * * * * *  0  * * * * * * *

Explicación del ejemplo descargable:

N2:P2 contiene las dimensiones del contenedor. Sus nombres definidos son: N2 anchoC (ancho del
contenedor), O2 fondoC y P2 altoC.

N3:P3 contiene las dimensiones de contenido. Sus nombres definidos son: N3 ancho (ancho del bul-
to), O3 fondo y P3 alto.

Primera “pasada” del cálculo:

El rango C2:H2, contiene la cantidad de bultos que cabe en el contenedor, colocando los bultos
según cada imagen que se muestra en C25:H25 (6 resultados).

Las fórmulas, al estar construidas mediante los nombres definidos, considero que no precisan de
explicación, salvo el criterio del condicional (noCabe).

Por ejemplo en F2 tenemos: 
=SI(noCabe;0;ENTERO(anchoC/alto)*ENTERO(fondoC/ancho)*ENTERO(altoC/fondo))
Si miras en la lista de nombres definidos y editas noCabe, puedes comprobar que la fórmula que
le da valor es: =O(ancho<ancho;fondoC<fondo;altoC<alto), la cual comprueba si un sólo bulto
cabe (o no) dentro del contenedor, por lo que si no cabe, la cantidad devuelta es 0 y en caso
de caber, calcula cuantos bultos caben en el contenedor, colocando los bultos según se muestra
en la imagen de F25.

Para los usuarios “menos sueltos”:
ENTERO(anchoC/alto), es porque la figura de F25, tiene la dimensión alto, en la dirección del
ancho del contenedor (ENTERO ignora la parte decimal del resultado), ENTERO(fondoC/ancho), 
porque tiene la dimensión ancho, en dirección al fondo del contenedor y ENTERO(altoC/fondo),
porque tiene la dimensión fondo, en dirección hacia arriba del contenedor.

Segunda “pasada” del cálculo:

En el rango C3:H20, calculamos la cantidad de bultos que caben en los espacios que quedaron
vacios en el contenedor después de la primera pasada, basándonos en las dimensiones mostradas
en el rango I3:K20, en cuyas dimensiones ya está considerado restar a la segunda dimensión la
esquina común con el otro espacio vacío (para evitar intentar llenar el mismo espacio 2 veces).

Las zonas sombreadas en gris, son celdas que no se calculan porque ya no caben bultos en ese
espacio. Por ejemplo C5:H5 es el espacio libre en la parte de arriba (A en azul), después de
calcular la "primera pasada" para la figura de B25 (Resto libre A o Pos A), que como el apila-
miento fue con la dimensión más pequeña (alto), ya no cabe ningún bulto cualquiera que sea la
posición.

Examinando la fórmula de (por ejemplo) G3, tenemos:
=SI(O(I3<alto;J3<fondo;K3<ancho);0;ENTERO(I3/alto)*ENTERO(J3/fondo)*ENTERO(K3/ancho))
O(I3<alto;J3<fondo;K3<ancho), tiene la misma función que noCabe de la “primera pasada”, pero
considerando de modo individual; la posición de cada bulto (figuras de C25:H25) respecto al
hueco que estamos evaluando (Derecha, Frente o Arriba).

Resultados:

El rango C21:H21 refleja la suma: primera pasada + segunda pasada.

El rango C23:H23 muestra las columnas, filas y capas en que se apilan los bultos calculados en
la “primera pasada”, en el orden: Hacia la derecha » hacia el fondo » hacia arriba.

El rango C24:H24 refleja el mejor resultado calculado en la “segunda pasada”, en el orden:
hueco a la derecha » hueco al frente » hueco arriba. La orientación en que se deben
colocar los bultos, debes definirla, comprobando en que columna se encuentra el valor sumado
y la figura que le corresponde.

Ejemplo: El 15 de G24, dado que es el tercer sumando, debemos buscarlo en la fila 3 del rango
Pos E (ver fila 1 arriba), que corresponde al rango C15:H17 (Resto libre E). Buscando el 15 en
la tercera fila de dicho rango, lo encontramos en E17, lo cual indica que esos 15 bultos debe-
mos colocarlos en el hueco de arriba (sumando 3º), con el ancho en dirección hacia el fondo y
el alto en dirección hacia arriba (imagen de E25).

NOTA: Independientemente del orden en que escribas las dimensiones, se calculará como:
ancho= mayor de las 3 dimensiones, alto= menor de las 3 dimensiones y fondo el valor no asigna-
do a las otras 2. Podría darse el caso de que escribas (por ejemplo) en P2 (o P3) el mayor va-
lor, con lo que “visualmente”, tendrás dicho valor como alto, pero en los cálculos ese valor
se empleará como ancho.

¡Atención! Si asignamos al contenedor valores correspondientes al contenido y/o viceversa, el
cálculo no devolverá un resultado correcto.


                                    * * * * * * *  0  * * * * * * *
     




Volver arriba