Il problema delle SCATOLE
Ciao Ragazzi,
premesso che sono un programmatore software alle prese con un problema che mi pare IRRISOLVIBILE!!!! qui siamo in 3, io solo l'ignorante e passo ma gli altri 2 sono INGEGNERI!!!! è normale che non sappiano risolvere un problema simile???
Vabbè, il problema è il seguente:
Ho del materiale da spedire, devo capire se ho lo SCATOLONE CONTENITORE giusto per spedirlo. Semplice.
1)
Per le spedizioni posso scagliere uno dei 5 SCATOLONI CONTENITORI (parallelepipedi regolari) di differenti misure che ho a disposizione. Ne conosco le esatte dimensioni.
2)
Spedisco materiale di varie dimensioni (dimensioni che anche qui conosco), sempre inscatolato in parallelepipedi regolari.
Quindi, esempio:
Ho 5 SCATOLINE di materiale, spesso differenti ma sempre parallelepipedi regolari.
Come faccio a trovare una regola matematica che:
a) in prima istanza: risponda alla domanda, ho lo SCATOLONE CONTENITORE adatto per spedire il materiale?
qualora non complicassi troppo, gradirei sapere:
b) qual'è lo SCATOLONE CONTENITORE meno ingombrante per contenere il materiale? ....perchè le spedizioni costano anche in volume!!!
GRAZIE!!!
Paolo
P.S. Qui, se non risolvo, mi licenziano.
premesso che sono un programmatore software alle prese con un problema che mi pare IRRISOLVIBILE!!!! qui siamo in 3, io solo l'ignorante e passo ma gli altri 2 sono INGEGNERI!!!! è normale che non sappiano risolvere un problema simile???
Vabbè, il problema è il seguente:
Ho del materiale da spedire, devo capire se ho lo SCATOLONE CONTENITORE giusto per spedirlo. Semplice.
1)
Per le spedizioni posso scagliere uno dei 5 SCATOLONI CONTENITORI (parallelepipedi regolari) di differenti misure che ho a disposizione. Ne conosco le esatte dimensioni.
2)
Spedisco materiale di varie dimensioni (dimensioni che anche qui conosco), sempre inscatolato in parallelepipedi regolari.
Quindi, esempio:
Ho 5 SCATOLINE di materiale, spesso differenti ma sempre parallelepipedi regolari.
Come faccio a trovare una regola matematica che:
a) in prima istanza: risponda alla domanda, ho lo SCATOLONE CONTENITORE adatto per spedire il materiale?
qualora non complicassi troppo, gradirei sapere:
b) qual'è lo SCATOLONE CONTENITORE meno ingombrante per contenere il materiale? ....perchè le spedizioni costano anche in volume!!!
GRAZIE!!!
Paolo
P.S. Qui, se non risolvo, mi licenziano.
Risposte
Per prima cosa calcoli il volume complessivo delle scatoline, quindi fai un conclave e vedi quale degli scatoloni puo' essere' papapible
una divisione con rapporto maggiore uguale ad 1 dovebbe poter bastare, poi passi alle dimensioni per vedere se ci possono stare tutte, e quindi decidi se sia il caso divederle e metterle in due scatoloni piu' piccoli oppure attendere per riempere il secondo scatolone piu' grande, allora il problema si complica se hai anche dei tempi precisi da rispettare per la consegna, se quindi puoi attendere oppure no, insomma direi che il problema dovrebbe essere meglio definito piu' in dettaglio, ad esempio se c'e' un ingombro massimo etc etc, poi c'e' il costo e qui devi fare delle somme e stabilire un compromesso costo/tempo.

Tutte le dimensioni sono note; il tutto deve essere fatto da un programma quindi dobbiamo trovare necessariamente delle linee guida su cui lavorare.
Una soluzione che tenga conto dei volumi, degli spazi residui, dei costi, della tempistica, del carico, dell'ingombro, dei tempi di consegna, non so, non mi viene in mente una soluzione ottimale, io procederei prima col vedere quale scatola puo' contenerne il più possibile, e qui devi fare una rapporto tra i volumi, e poi vedi se ci entrano con le dimensioni, guarda poi quanto volume rimane disponibile e se magari non sia più conveniente usarne una più piccola, che ne contiene meno ma che viene riempita meglio, insomma una soluzione di buon senso, vedi poi i costi e ti regoli di conseguenza, ma il programma a che serve scusa? L'inscatolamento è automatizzato? il programma per un PLC? o cosa?
A naso,ammesso e non concesso che il materiale sia tutto infrangibile(*),
basterebbe realizzare tutte le $3"!"=6$ permutazioni possibili delle dimensioni(note in input,se ho ben capito)
d'ognuno degli scatolini,per poi creare tutte le $6^5$ cinquine costituite da ognuna di tali terne
(ovviamente scegliendo,vola per volta,una sola terna per scatolino),
sommarne ordinatamente gli elementi
(per intenderci,dato ad esempio in pasto a questo step dell'algoritmo $(1,2,3),(4,1,5),(3,3,7),(2,1,1),(3,2,5)$,
esso dovrà restituirti $(1+4+3+2+1,2+1+3+1+2,3+5+7+1+5)=(11,9,21)$..)
e confrontarli con le 6 possibili permutazioni delle dimensioni dello scatolone;
a questo punto "butti" tutte le altre e conservi le cinquine "papabili"(non sono originale,ma m'è proprio piaciuta
),
ossia quelle in cui tutte e tre le coordinate della somma corrispondente non superano nessuna delle corrispondenti dimensioni d'una delle permutazioni relative allo scatolone:
di ciascuna di esse calcolerai in modo ovvio il volume della sua terna "somma",
ed infine sceglierai la(o le..)cinquina cui corrisponde il volume minimo.
Il "peso"($6^7$)di quest'algoritmo(**)è notevolmente migliorabile(non foss'altro perchè la somma è commutativa..),
con accorgimenti pure semplici,ma per ora t'accontenterai della "forza bruta" e,se vorrai,
potrai ragionare su come farlo a mente più fredda
(cosa che ti consiglio vivamente,
poichè testa fredda e cuore caldo sono armi ottime contro la pressione,spesso dannosa quanto comprensibile,dei titolari,
e tu devi evidentemente fare ancora un pò d'esperienza in tal senso
):
saluti dal web.
(*)Se non lo è bisogna intervenire con un messaggio per "l'inscatolatore",
nel quale si specificherà il "verso di sistemazione" del materiale.
(**)Mi pare che in Excel siano presenti di default le macro per permutare insiemi e stabilire minimi di colonne o righe:
in pratica puoi risolvere il problema,senza far troppi morti e feriti,
con un pacchetto che di certo hai installato nel Pc in ufficio.
basterebbe realizzare tutte le $3"!"=6$ permutazioni possibili delle dimensioni(note in input,se ho ben capito)
d'ognuno degli scatolini,per poi creare tutte le $6^5$ cinquine costituite da ognuna di tali terne
(ovviamente scegliendo,vola per volta,una sola terna per scatolino),
sommarne ordinatamente gli elementi
(per intenderci,dato ad esempio in pasto a questo step dell'algoritmo $(1,2,3),(4,1,5),(3,3,7),(2,1,1),(3,2,5)$,
esso dovrà restituirti $(1+4+3+2+1,2+1+3+1+2,3+5+7+1+5)=(11,9,21)$..)
e confrontarli con le 6 possibili permutazioni delle dimensioni dello scatolone;
a questo punto "butti" tutte le altre e conservi le cinquine "papabili"(non sono originale,ma m'è proprio piaciuta

ossia quelle in cui tutte e tre le coordinate della somma corrispondente non superano nessuna delle corrispondenti dimensioni d'una delle permutazioni relative allo scatolone:
di ciascuna di esse calcolerai in modo ovvio il volume della sua terna "somma",
ed infine sceglierai la(o le..)cinquina cui corrisponde il volume minimo.
Il "peso"($6^7$)di quest'algoritmo(**)è notevolmente migliorabile(non foss'altro perchè la somma è commutativa..),
con accorgimenti pure semplici,ma per ora t'accontenterai della "forza bruta" e,se vorrai,
potrai ragionare su come farlo a mente più fredda
(cosa che ti consiglio vivamente,
poichè testa fredda e cuore caldo sono armi ottime contro la pressione,spesso dannosa quanto comprensibile,dei titolari,
e tu devi evidentemente fare ancora un pò d'esperienza in tal senso

saluti dal web.
(*)Se non lo è bisogna intervenire con un messaggio per "l'inscatolatore",
nel quale si specificherà il "verso di sistemazione" del materiale.
(**)Mi pare che in Excel siano presenti di default le macro per permutare insiemi e stabilire minimi di colonne o righe:
in pratica puoi risolvere il problema,senza far troppi morti e feriti,
con un pacchetto che di certo hai installato nel Pc in ufficio.