Torna alla pagina di Ricerca Operativa
:: Ricerca Operativa - PNL - Palle inscatolate - 12.01.09 ::
Un’azienda produttrice di addobbi natalizi produce palle colorate per gli alberi di Natale.
L’ufficio vendite ha studiato un kit di palle colorate di vari colori e dimensioni da vendere in un’unica scatola. Si tratta di progettare in modo ottimale la scatola, in modo che possa contenere tutto il kit e che occupi il minor volume possibile. Per motivi di facilità di trasporto, la scatola deve essere a forma di parallelepipedo.
Formulare il problema, classificarlo e risolverlo con i dati del file PALLE.TXT.
Il kit è così composto: Tipo Colore Raggio Numero Ciliegina Rosso 2 3 Classica Rosso 4 2 Candida Bianco 3 3 Palla di neve Bianco 4 4 Stellina Azzurro 2 3 Luminosa Trasparente 3 2 Il raggio è espresso in centimetri.
Bisogna minimizzare il volume della scatola:
min x1 * x2 * x3 [cm^3]
Abbiamo bisogno poi di due vincoli che impongano che ogni pallina sia interamente contenuta nella scatola, quindi che la sua distanza dalle pareti sia maggiore uguale al raggio:
! esercizio - Palle inscatolate; model: sets: pallina /1..14/: rag; dimensione /1..3/: x; coordinata (pallina,dimensione): y; endsets data: enddata ! funzione obiettivo; min = x(1) * x(2) * x(3); ! vincoli di non-sovrapposizione tra palline; @for(pallina(i): @for(pallina(k) | k #GT# i: @sum(dimensione(j): (y(i,j) - y(k,j))^2) >= (rag(i) + rag(k))^2 ) ); ! vincoli di contenimento nella scatola; @for (pallina(i): @for(dimensione(j): y(i,j) >= rag(i)) ); @for (pallina(i): @for(dimensione(j): y(i,j) <= x(j) - rag(i))); end