PDA

View Full Version : Simulazione Supermercato


castronu
28-05-2007, 16:54
ecco il mio problema.. dovrei simulare il grado di soddisfazione degli utenti di un supermercato, che dipende dalla disponibilita’ dei prodotti
(percentuale di oggetti nella loro lista della spesa che trovano sugli scaffali),
grado di freschezza dei prodotti (distanza dalla data di scadenza se esiste), e
tempo di attesa alle casse, che e’ inversamente proporzionale al numero di
addetti alle casse.
gli impiegati del supermercato possano
essere addetti alle casse, agli scaffali (spostano i prodotti dal magazzino agli
scaffali e si accorgono quando i prodotti sugli scaffali sono esauriti o quasi
scaduti) o al magazzino (spedisce ordini al fornitore quando il livello del
magazzino scende sotto una certa soglia e sistema la merce nel magazzino).
In pratica dovrei simulare i giorni che passano, e cambiando variabili come il numero
di cassieri, di magazinieri, o aumentando la grandezza degli scaffali o del magazzino
deve cambiare il grado di soddifazione di clienti (se adesempio un giorno c'è solo
un cassiere, chiaramente i clienti saaranno scontenti perchè attendono molot alle casse;
per lo stesso discorso se lavorano pochi addetti agli scaffali i clienti saranno scontenti perchè
troveranno meno prodotti.
Ho provato a diniziare a modellare il problema, ma non capisco come potrei simulare il fatto
che clienti, addeti agli scaffali, addetti al magazzino compiano i propri doveri "simultaneamente";
Ho creato la classe ad esempio supermercato, cliente e scaffale, come prova ho fatto generare una
seriedi rpodotti sugli scaffali e 100 clienti con liste diverse, questi oggetti controllano gli scaffali e la lista e se hanno qualcosa in comune decrementano la variabile del relativo prodotto.. adesso dovrei creare anche gli scaffalisti e i magazinieri, ma non so veramente come poter far "girare" tutti questi oggetti insieme per simulare una giornata al supermercato... grazie in anticipo...

PGI-Bis
28-05-2007, 21:15
In estrema sintesi, puoi rendere ogni componente del programma un agente, buttarli tutti in un calderone, chiamiamolo Supermercato, ed attivare l'esecuzione della simulazione inviando, tramite il Supermercato, un impulso temporizzato che mi pare si chiami "tick".

Può sembrare una str... ma funziona :D. E' anche molto facile da realizzare.

Quando cattura un impulso, l'agente interroga l'ambiente (il supermercato nel nostro caso) per stabilire quale sarà la sua prossima azione. Ad esempio se il tuo cliente deve comprare 50 bottiglie di grappa prima di andare alla cassa, ad ogni tick preleverà una bottiglia dal Supermercato. Quando arriva a 50, va alla casse. Quando arriva alle casse ne sceglie una. Essendo la simulazione di un supermercato ce ne sarà solo una aperta con 40.000 disgraziati in coda. A quel punto il cliente attenderà il suo turno.

La cassiera è un agente che ad ogni impulso o consuma un cliente alla cassa o preleva un prodotto dal nastro e lo passa sullo scanner... dipende dal livello di dettaglio che vuoi dare al tuo sistema.

Il magazziniere ad ogni tick immetterà un prodotto nel magazzino, lo scaffalista...be', non so, farà il suo mestiere.

Tutto qui.

mapomapo
28-05-2007, 23:18
io userei il "fuzzy logic toolbox" del matlab dando come variabili di input quelle dette da te e come unico output la soddisfazione globale...
definirei le "matrici di gradimento" (chiamiamole così) dando le varie combinazioni e la simulazione è fatta....

puoi giochicchiarci un po' scrivendo "fuzzy" come comando..

Vito