ReDiT – Magazzino ottimizzato: fase di assegnazione degli slot

3.1 Fase di assegnazione

Un presupposto iniziale è che il magazzino inizi vuoto. Per ciascun tipo di prodotto, nel dizionario prodotti_da_allocare, viene attivato un ciclo. Diverse variabili vengono inizializzate all'inizio del ciclo, come il numero totale di unità da allocare per il tipo di prodotto corrente.

Successivamente il ciclo entra in un ciclo while, che continuerà finché verranno allocate unità di questo tipo di prodotto. All'interno di questo ciclo while, un altro ciclo for scorre i vassoi disponibili (da 1 a num_trays). L'algoritmo calcola il numero di unità da allocare nel vassoio corrente, considerando sia la capacità del vassoio sia il numero di unità rimanenti da allocare.

Se ci sono prodotti non allocati e il vassoio ha ancora spazio, le unità vengono allocate. La quantità allocata viene quindi sottratta dalle unità rimanenti. Una volta terminato il ciclo for, il ciclo while verifica se ci sono ancora unità rimanenti. Se il vassoio è pieno o non ci sono più prodotti da allocare, il ciclo termina.

L'algoritmo poi passa al prodotto successivo nel dizionario. Questo processo continua finché tutti i prodotti sono stati allocati o il magazzino è pieno.