Corso di programmazione, Simulazione, ROOT, code, ecc. ecc. Per il Servizio Elettronica e Rivelatori INFN Sezione di Napoli Luca Lista, UniNa & INFN
Con cenni di simulazioni Teoria delle code Con cenni di simulazioni
Code in sistemi di acquisizione
Modello di Coda popolazione servizi uscita coda arrivo Varianti: più code, "splitting" tra code, servizi e code in cascata, ecc.
Terminologia 𝑐: numero di servizi (identici) 𝜏: tempo tra due arrivi successivi 𝑛 = 𝑛 𝑞 + 𝑛 𝑠 : numero di clienti nel sistema 𝜏 = 1 𝜆 𝑠: tempo di servizio 𝑛 𝑞 : numero di clienti in coda 𝑠 = 1 𝜇 𝑛 𝑠 : numero di clienti serviti 𝑞: tempo di attesa in coda 𝐿= 𝑛 = 𝐿 𝑞 + 𝐿 𝑠 = 𝑛 𝑞 + 𝑛 𝑠 : numero medio di persone nel sistema 𝑤=𝑞+𝑠: tempo totale speso nel sistema 𝜆: frequenza media di arrivo di clienti 𝑊= 𝑤 = 𝑊 𝑞 + 𝑊 𝑠 = 𝑤 𝑞 + 𝑤 𝑠 : Tempo totale medio speso 𝜇: frequenza media di servizio 𝜌= 𝜆 𝑐𝜇 : frazione di uso dei servizi 𝐿=𝜆𝑊: legge di Little 𝑐𝜇>𝜆, altrimenti la coda cresce indefinitamente
Disciplina di servizio FIFO: First-in-first-out SIRO: Service in random order Prima chi ha il tempo di servizio più basso Priorità: es.: speedy boarding; prima anziani e disabili, ecc. È possibile che un servizio in corso venga interrotto
Distribuzione dei tempi M: distribuzione esponenziale [*] D: deterministico (= costante) U: uniforme (tra un tempo minimo ed uno massimo) G: generale (una distribuzione qualsiasi) …ecc. [*] caso naturale in molti processi casuali
Distribuzione esponenziale Un processo casuale uniforme in un intervallo di tempo 0, 𝑇 , con 𝑇 molto grande (𝑇→∞), ha interessanti proprietà statistiche: In un intervallo finito, il numero di eventi 𝑛 segue la distribuzione di Poisson: 𝑃(𝑛) = 𝜆 𝑛 𝑒 −𝜆 𝑛! L'intervallo 𝜏 tra due eventi successivi o tra un tempo di riferimento qualsiasi ed il primo eventi segue una distribuzione esponenziale: 𝑓 𝜏 = 1 𝜆 𝑒 −𝜆𝜏
Aspetti non intuitivi Il tempo medio di attesa non è banalmente collegato al tempo medio di arrivo: la distribuzione è molto importante Esempi: Distribuzione deterministica: tempo di attesa: anche zero se ci si presenta in orario (es.: treni puntuali) Distribuzione esponenziale: tempo di attesa uguale al tempo medio di arrivo (modello senza memoria) Arrivo casuale, ma a gruppi: il tempo medio di attesa è più lungo del tempo medio di arrivo! (es.: certi bus locali…)
Modello di coda Notazione di Kendall: M/M/1: arrivi esponenziali/servizi esponenziali/1 servizio M/G/1: arrivi esponenziali/servizi generici/1 servizio
Capacità massima Se una coda è piena, nuovi clienti non vengono accettati Esempio: call center con telefonate in coda. Oltre un certo numero si chiede di "riprovare più tardi" Un sistema di acquisizione perde eventi se i buffer di memoria sono pieni: si realizza del tempo morto M/M/1/K: al massimo K clienti sono ammessi in coda
Coda all'equilibrio Si assume che la frequenza media di arrivo sia costante Vero se la popolazione totale è approssimativamente infinita Nel caso di un esperimento: vero se le condizioni di run non cambiano (es.: intensità dei fasci, ecc.) Dopo una fase di avvio ("transiente"), la coda raggiunge uno stato di equilibrio dinamico in cui, in media, il numero di ingressi bilancia il numero di uscite. In genere è interessante studiare le proprietà all'equilibrio Es.: lunghezza medie delle code, tempi medi di servizio, ma anche probabilità di clienti rifiutati ( tempo morto di un sistema di acquisizione)
Simulazioni numeriche Esistono soluzioni matematiche nei casi più semplici con distribuzioni note In caso di distribuzioni generali o condizioni non contemplate nei modelli "standard" può essere necessaria una simulazione numerica Es.: tempo di latenza del trasferimento di un buffer ad una scheda di acquisizione che dipende dalla lunghezza del segmento dati. Il tempo morto può essere determinato solo se si conosce la distribuzione della lunghezza dei segmenti dati per i diversi processi fisici di interesse e per le condizioni di run dell'esperimento Code in cascata, come per un event builder di un esperimento realistico