CAPITOLO 7 TEORIA DEL TRAFFICO . 1 7. TEORIA DEL TRAFFICO In questo capitolo concentreremo le nostre attenzioni sul • • dimensionamento e sull’analisi delle reti di telecomunicazione. 7.1 Dimensionamento ed Analisi delle Reti di Telecomunicazioni Una rete di telecomunicazioni può essere schematizzata come in Fig. 7.1-1, dove sono presenti delle stazioni sorgenti che generano dei dati, i quali vengono immessi nella rete, per essere ricevuti dalle stazioni destinatarie. Sorgenti Destinazioni Rete Fig. 7.1-1: Rete di Telecomunicazioni Le reti di telecomunicazioni possono essere caratterizzate fondamentalmente in due differenti tipi: 1. BEST-EFFORT 2. GUARANTEED. LE RETI BEST-EFFORT sono reti che non garantiscono qualità di servizio: un esempio è Internet. Chi vuole trasmettere su una rete di questo genere lo può fare senza alcun permesso: questo non può garantire nessuna qualità di servizio (QOS). Oggi anche Internet sta cercando di implementare delle modalità di servizio che possano garantire all’utenza certi requisiti. NELLE RETI GUARANTEED si ha una fase di ammissione di chiamata. L’utente che vuole trasmettere interroga la rete se può trasmettere: se la rete riconosce che ci sono le condizioni per garantire una certa qualità di servizio, gli da il permesso di trasmettere. Un esempio di rete guaranteed è la ”ATM“. Tralasciando le reti BEST-EFFORT, concentreremo la nostra attenzione sul controllo dell’ammissione della chiamata nell’ATM, o più in generale nelle reti GUARANTEED. Supponiamo di avere N-1 utenti che stanno trasmettendo sulla rete e che l’N-esimo utente vuole trasmettere, chiedendo l’ammissione della chiamata. Per poter decidere di accettare l’N-esimo utente, la rete valuta le caratteristiche statistiche del traffico che l’utente intende trasmettere (velocità, bit rate, etc.).Quindi l’utente si presenta alla rete comunicando le proprie caratteristiche statistiche e i propri parametri di qualità di servizio (QOS - quality of service): 2 ¾ massima probabilità di perdita per bit, ¾ massimo ritardo. Se la rete accetta l’utente, si impegna a garantire la qualità di servizio richiesta e a continuare a mantenere la qualità di servizio promessa agli altri N-1 utenti sotto servizio. Al fine di valutare se la rete può ammettere la chiamata, occorre effettuare una caratterizzazione statistica del traffico dell'utente N-esimo: ovvero la rete calcola la qualità di servizio che può offrire all’N-esimo utente (garantendo la pattuita QOS agli N-1 utenti sotto servizio), la confronta con quella richiesta e se è sufficiente decide di accettare l’utente. Il problema della caratterizzazione del traffico è molto vasto, a causa della nascita di nuovi tipi di sorgenti con caratteristiche diverse. • I PASSI DA EFFETTUARE PER REALIZZARE E GESTIRE UNA RETE SONO: 1. Dimensionare gli apparati all’interno della rete. 2. Gestire la rete di telecomunicazione, cioè decidere se accettare o meno le chiamate di richiesta di trasmissione. Si ammette la chiamata cercando, come detto, di garantire una certa qualità di servizio (QOS), note le caratteristiche delle sorgenti di traffico. La QOS si caratterizza con dei parametri, quali: ⇒ ⇒ ⇒ ⇒ Loss Probability (probabilità di perdita). Delay (ritardo). Delay Jitter (variazione del ritardo intorno la media). Skew (definito come il valor medio della differenza dei ritardi fra le unità informative appartenenti a due media diversi e sincronizzati fra loro). La trattazione che segue farà riferimento a reti a pacchetto di tipo ATM. • LE FASI DELLA PROGETTAZIONE DI UNA RETE POSSONO ESSERE COSÌ CLASSIFICATI: A. B. C. D. Caratterizzazione delle Sorgenti di traffico. Modellazione analitica delle Sorgenti di traffico. Modellazione della rete. Valutazione delle prestazioni intesa come calcolo della QOS. I metodi che useremo per calcolare la QOS sono fondamentalmente 2: 1. ANALISI 2. SIMULAZIONE 7.2 Problematica dell’Ammissione di Chiamata In letteratura il PROBLEMA DELL’AMMISSIONE DI CHIAMATA è indicato con la notazione CCAC, ovvero Control Call admission control. Come già detto un utente paga sia in base al tipo di traffico offerto dalla rete, sia in base ad una certa QOS pattuita in fase contrattuale. Quindi la rete, attraverso delle tecniche di UPC (User parameter control), deve monitorare l’utente, controllando che questi rispetti i parametri statistici che aveva preventivamente dichiarato. Se l’utente non dovesse rispettare quanto dichiarato, la rete reagisce o tagliando la connessione o facendo pagare il plus di bit trasmessi. La caratterizzazione della sorgente ha, dunque, lo scopo di consentire il calcolo di una serie di parametri con i quali si possono valutare le prestazioni della rete: cioè si realizza un modello al quale dare determinati parametri come input, per ottenere in uscita le prestazioni della rete. 3 Consideriamo un generico nodo di accesso ad una rete (Fig. 7.2-1) a cui afferiscono un certo numero di sorgenti: analizzando il funzionamento del singolo nodo e iterando i risultati sarà possibile caratterizzare l’intera rete di telecomunicazione. NODO DI ACCESSO N LINK … SORGENTI 1 2 3 C [ kbit/s] Fig. 7.2-1: Nodo di accesso ad una rete Avendo in ingresso N sorgenti, il nodo dovrà necessariamente operare da multiplexer per poter convogliare tutto il traffico sull’unico link di uscita. Ad esempio l’ATM fa uso della multiplexing statistica. Supponendo di avere 10 sorgenti in ingresso, di tipo ON-OFF, con picco pari a 64 kbit/s, quale deve essere la capacità del link in uscita per supportare tutto il traffico? Con un link di 640 kbit/s si è certi che, in qualsiasi istante, tutte le 10 sorgenti possono accedere alla risorsa messa a disposizione dalla rete. Ma essendo le sorgenti ON-OFF, probabilmente non tutte saranno nello stato di ON: anzi più sorgenti abbiamo in ingresso e più sarà probabile che non serva una capacità di 640 kbit/s del link di uscita. Il buffer, interno al nodo, serve ad immagazzinare tutte le celle ATM trasmesse dalle 10 sorgenti. Con un link di 640 kbit/s, siamo certi che la coda sarà sempre vuota, dato che ogni cella che arriva, avrà sempre a disposizione la sua parte di risorsa e quindi potrà essere subito trasmessa. Se abbassiamo la capacità del link a 60 kbit/s, la presenza della coda consente di ammortizzare quei periodi in cui tutte le sorgenti sono in ON e quindi gli arrivi sono più delle partenze. Viceversa nei periodi in cui si verificano arrivi con frequenza minore delle partenze, si ha uno svuotamento della coda. Supponiamo che la Fig. 7.2-2 rappresenti il comportamento delle 10 sorgenti. TON λ(t) TOFF 1° Sorgente t 2° Sorgente t 3° Sorgente … t 10° Sorgente Fig. 7.2-2: Comportamento delle 10 sorgrnti ON-OFF t 4 Se TON (medio)=TOFF allora la sorgente trasmette mediamente a 32 kbit/s (per mezzo periodo trasmette a 64 kbit/s e per mezzo periodo non trasmette, quindi la media è 32 kbit/s). La capacità C del link in uscita, deve essere scelta tra la bit-rate media d’ingresso (per evitare un accoramento infinito) ed il picco d’ingresso (con l’uguaglianza si ha lo smaltimento di tutto ciò che arriva in ingresso), cioè: (Bit-rate media)IN ≤ C ≤ (Picco)IN Quindi prevedere un buffer all’interno di un multiplexer serve ad ammortizzare picchi di traffico che superano (come mostrato in figura 7.2-3) la capacità C del link d’uscita. λIN(t) 640 Kbit/s C λIN(t) C MUX t Fig. 7.2-3: bit rate totale in ingresso al multiplexer In Fig. 7.2-3 λIN(t) = λ1(t)+ …+λ2(t), cioè è pari alla somma di tutte le bit-rate in ingresso. Come si può vedere dal grafico solo per periodi molto piccoli può accadere che λIN(t) risulta essere maggiore della capacità del link. Mettendo la coda non facciamo altro che immagazzinare dei pacchetti in quei piccoli periodi per cui si verifica che λIN(t) > C. Se invece λIN(t) < C, si ha lo svuotamento della coda. RIEPILOGANDO possiamo affermare che un multiplexer statistico consente di convogliare il traffico proveniente da N sorgenti su un unico canale di trasmissione. La capacità di questo canale, grazie all’utilizzo di una coda, che funge da buffer, può essere scelta inferiore a N volte il Picco della singola sorgente e maggiore del valore medio totale della bit rate in ingresso. Tutto questo deve accadere nel rispetto della condizione che: ρ= λIN <1 C dove con ρ si sta indicando il coefficiente di utilizzazione del buffer, definito come rapporto tra la banda media in ingresso e quella in uscita. Avere ρ<1 significa che i periodi in cui λIN(t) è maggiore di C sono inferiori rispetto ai periodi in cui λIN(t) è minore di C: cioè la coda prima o poi si vuoterà. Se la coda è vuota gli slot temporali della cella ATM in uscita rimangono vuoti, per cui si ha uno spreco di banda: quindi si cerca la condizione di avere sempre qualche pacchetto all’interno della coda. Tutti questi elementi, il cui fine è la determinazione dell’ammissione della chiamata, possono essere utilizzati per la progettazione della rete. Una volta definito il multiplexer statistico dobbiamo vedere quali sono i parametri di QOS, ovvero di qualità di servizio che possono essere garantiti. • Se la lunghezza della coda è finita (caso reale di buffer fisico), sicuramente si ha una LOSS PROBABILITY (Probabilità di Perdita) che, una volta fissate la dimensione del buffer e la capacità del link, dipende dal numero di sorgenti che trasmettono. 5 • Un altro parametro importante è il RITARDO (delay): più capiente è il buffer, maggiore è il ritardo in trasmissione. • Ulteriore parametro di QOS è il DELAY-JITTER, ovvero la variazione del ritardo rispetto al valore medio. In certe applicazioni dà più fastidio la variazione del ritardo rispetto al valore medio il ritardo, piuttosto che il ritardo stesso, visto che quest’ultimo può essere compensato facendo partire i processi in ritardo. • L’ultimo parametro di QOS che si può considerare è lo SKEW. Se, per esempio, per una video conferenza si trasmettono audio e video separatamente, quello che si vuole è che arrivino sincronizzati: lo Skew è la differenza dei ritardi fra due media sincronizzati. Per le sorgenti real-time (voce e video), parametri di QOS fondamentali sono il Delay ed il Delay Jitter. Mentre per sorgenti che trasmettono dati, il parametro fondamentale è la Loss Probability. Invece, come prima accennato, lo Skew è un parametro particolare del traffico multimediale . I requisiti di QOS dipendono quindi dal tipo di sorgente che si considera: è ovvio che migliore è il servizio, maggiori sono i costi. 7.3 Caratterizzazione delle Sorgenti di Traffico Caratterizzare una sorgente significa capire statisticamente il comportamento della sorgente di traffico. Una sorgente di traffico (DTE) può essere modellata tramite una sorgente e un codificatore (Fig. 7.3-1). DTE Sorgente Codificatore Rete Fig. 7.3-1: Sorgente di Traffico (DTE) Esistono 4 grosse famiglie di sorgenti di traffico: SORGENTI AUDIO → TRAFFICO VOCALE SORGENTI VIDEO → TRAFFICO VIDEO SORGENTI DATI → TRAFFICO DATI SORGENTI MULTIMEDIALI → TRAFFICO MULTIMEDIALE. Le sorgenti Multimediali sono un aggregato delle sorgenti precedentemente elencate, le quali risultano correlate fra loro. Ad esempio il movimento delle labbra di un parlatore è fortemente correlato con i dati audio, relativi alla voce dello speaker. In base alla modalità con cui i dati vengono emessi dal codificatore, la sorgente di traffico (DTE) può trasmettere a 9Constant Bit Rate (CBR), ovvero a bit-rate costante: ad esempio il PCM è di tipo CBR perché codifica la voce con bit/rate costante (64 kbit/sec.). Esso però è poco efficiente in quanto trasmette anche quando si ha silenzio. Trasmettere con bit rate costante è spesso poco conveniente, per cui si preferisce usare usualmente la tecnica VBR. Variable Bit Rate (VBR), ovvero a bit-rate variabile. 9 6 7.3.1 Traffico vocale Il traffico vocale è prodotto campionando, ad intervalli regolari, e comprimendo il segnale proveniente da una sorgente vocale. I metodi di compressione sono tali che il messaggio vocale ricostruito al ricevitore non risenta dei problemi di qualità. Inoltre, a seconda del tipo di codifica usata, le perdite di celle possono essere compensate oppure no. La perdita di un alto numero di celle può causare, a destinazione, periodi di silenzio o troncamento del segnale ricostruito. Come già detto, a seconda del tipo di codifica usata dalle sorgenti vocali, il traffico generato può essere CBR o VBR. Se è stato usato un codificatore PCM (Pulse Code Modulation) a 64 kbit/sec, il traffico generato è CBR. Se invece la codifica si basa sull’uso delle tecniche Speech ActivityDetector (SAD) e Digital Speech Interpolation (DSI), il traffico risultante è di tipo VBR. Queste tecniche sfruttano la ridondanza intrinseca in un segnale vocale, eliminano la non necessaria trasmissione degli intervalli di silenzio durante una chiamata. Se pensiamo al traffico generato da un parlatore con un microfono collegato ad un VAD (Voice Activity Detector) (Fig. 7.3-2), il quale consente di riconoscere i periodi di attività della voce e quelli di silenzio, allora una sorgente vocale si può modellare come un processo ON-OFF, cioè un processo di rinnovamento (renewal process) che può assumere due stati: uno stato di attività (talkspurt o ON) e uno stato di inattività (silenzio o OFF). Ogni volta che il processo cambia stato, si ha un rinnovamento, cioè viene dimenticata la storia passata. VAD Fig. 7.3-2: VAD collegato ad un microfano Chiameremo pacchetti le unità informative di trasmissione. Le sorgenti vocali che emettono questo tipo di traffico sono dette bursty ed il periodo in cui la sorgente emette è detto burst. Generalmente il burst ha una durata relativamente limitata nel tempo, ma è caratterizzato da un bit-rate molto elevato. A tal proposito, si definisce una quantità, detta burstiness, data dal rapporto tra la banda di picco P e la banda media B della sorgente. Essa è un indice della sua attività; infatti, maggiore è questa quantità, più la sorgente si discosta dall’essere di tipo CBR (per le sorgenti CBR la burstiness è unitaria). Talkspurt TON Silenzio TOFF t T T Fig. 7.3-3: Comportamento di una sorgente vocale Il tipico comportamento di una sorgente vocale bursty è illustrato in Fig. 7.3-3: una sorgente vocale è attiva quando il talker parla, mentre è inattiva e non genera pacchetti durante i periodi in cui il talker è in silenzio. Come conseguenza, il numero di celle in trasmissione nella rete si riduce del 357 40% e il tempo di interarrivo dei pacchetti, nei periodi di attività, coincide con il periodo di pacchettizzazione. Assumiamo che i periodi di talkspurt e i periodi di silenzio costituiscano un processo di rinnovamento alternato (alternating renewal process) e che questi intervalli temporali siano indipendenti tra di loro. Sia TOFF la durata di ciascun periodo di silenzio ed R il numero di celle nel periodo di talkspurt. Se T rappresenta il periodo di pacchettizzazione di ciascuna cella, la durata temporale del talkspurt è TON = RT. Si è osservato che il numero R di pacchetti in un talkspurt è una variabile aleatoria distribuita geometricamente sugli interi positivi, cioè la durata temporale dei periodi di talkspurt TON è una variabile aleatoria distribuita esponenzialmente. In una normale conversazione la distribuzione esponenziale si adatta bene alla durata dei periodi di attività, mentre la durata dei periodi di inattività è approssimata meno bene da questa distribuzione. Per facilitare l’analisi si assume comunque che entrambi i periodi siano distribuiti esponenzialmente con medie pari a T ON per il periodo di talkspurt e T OFF per il periodo di silenzio. Valori tipici di questi parametri sono T ON ≈ 352 ms e T OFF ≈ 650 ms. Il processo vocale è dunque un processo ON-OFF caratterizzato dai parametri T ON e T OFF e dalla banda di picco P pari a P= 1 1 = T T ON che rappresenta la frequenza di arrivo delle celle nei periodi di ON, ovvero la velocità di trasmissione delle unità informative, detta cell-rate. In funzione di questi parametri la burstiness b può essere calcolata come segue: b= P T OFF + T ON = ≥1 B T ON Eq. 7.3-1 dove B rappresenta la banda media di trasmissione pari a B= 1 T OFF + T ON Quindi l’Eq. 7.3-1 mostra come la burstiness rappresenti la variabilità del traffico, cioè di quanto il traffico si allontana dalla condizione costante. Il traffico CBR (constant bit rate) ha una burstness pari a 1. Maggiore è la burstness peggiore è la qualità del servizio in termini di probabilità di perdita, ritardo medio e spreco di banda in uscita. Generalmente tutte le sorgenti di tipo ON-OFF hanno una banda media di 32 kbit/s. Come già detto (vedi problematica dell’ammissione di chiamata), se consideriamo 10 sorgenti ONOFF, quando il traffico presenta dei picchi di 1 Mbit/s, anche se la media totale del traffico in ingresso è sempre 320 kbit/s, nasce l’esigenza di utilizzare una coda (buffer). La distribuzione di probabilità del tempo di interarrivo delle celle è data da: −1 T T −T OFF ( t −T ) = − F (t ) 1 + 1 − e U (t − T ) T T ON ON Eq. 7.3-2 dove U(t-T) rappresenta la funzione gradino unitario definita come 8 1 t ≥ T U (t − T ) = 0 t < T La funzione densità di probabilità è la derivata di F(t) , quindi si ha che: f (t ) = 1 T ON T 1 T OFF e −1 −T OFF ( t −T ) Eq. 7.3-3 Se indichiamo con F(s) la trasformata di Laplace della distribuzione di probabilità F(t) del tempo di interarrivo delle celle, da essa possiamo ricavare il valore medio del tempo di interarrivo: µ=− dF ( s ) ds s =0 T OFF = 1 + T ON T Eq. 7.3-4 Il coefficiente di variazione del tempo di interarrivo, ovvero il rapporto tra la varianza e il quadrato del valor medio, è dato da: −1 c= −2 2T ON T − T ON T −1 −1 (T ON + T OFF )T Eq. 7.3-5 Nell’ATM il pacchetto si chiama cella ATM. Il traffico nella rete ATM non viene trasmesso come singoli bit, ma è organizzato in pacchetti di dimensione costante pari a 53 byte, di cui 5 di intestazione e 48 di payload (informazione vera e propria). La voce codificata è quella che viene messa nel payload, mentre l’intestazione serve ad indicare la qualità del servizio, la destinazione, etc. L’output della sorgente vocale è 64 Kbit/s , questo viene suddiviso in pacchetti di 48 byte che, insieme a 5 byte di intestazione, vanno a costituire la cella ATM. In Internet la dimensione del pacchetto, a differenza dell’ATM, non è costante. La durata del periodo di attività non è costante, ma dipende dal parlatore. All’uscita del VAD di Fig. 7.3-2, il segnale vocale viene codificato con impulsi PCM (Fig. 7.3-4) con una bit rate pari a 64 Kbit/s, per poter ottenere una buona qualità del segnale vocale. VAD PCM Fig. 7.3-4: Codifica PCM all’uscita del VAD La trasmissione a 64 Kbit/s non è costante ma è relativa solo ai periodi di ON, in quanto le pause non vengono codificate. Dividendo i 64 Kbit per 48 byte (ATM) otteniamo il numero di celle emesse al secondo. La distanza fra le varie celle è costante ed essendo la dimensione di ognuna abbastanza grande è necessario introdurre dei ritardi per il riempimento. Questi ritardi rappresentano un problema per la trasmissione vocale che deve essere effettuata in real-time: a tal proposito si stanno facendo degli studi sulla convenienza di aspettare il riempimento della cella. 9 7.3.2 Traffico Video La codifica del segnale video può richiedere parecchi megabit al secondo ed è quindi di gran lunga superiore ai 64 kbit/sec dell’ATM richiesti dal segnale vocale; inoltre la variabilità del bit-rate di un segnale video è molto più alta di quella di un segnale vocale e pertanto un semplice modello, come quello ON-OFF usato per i segnali vocali, non è adatto a caratterizzare segnali video. Dal punto di vista informativo le immagini del traffico video sono di dimensione notevolmente elevate, quindi ciò causerebbe una trasmissione molto “pesante”. Per ovviare a tale problematica si è notata (in base al tipo di video) una notevole ridondanza di dati, che deriva da un’alta correlazione intraframe e interframe. Pixel1 1 A Pixel2 2 Giornalista Fig. 7.3-5: Giornalista con sfondo blu CORRELAZIONE INTRAFRAME Consideriamo l’immagine di un giornalista che parla con uno sfondo blu (Fig. 7.3-5). Se il pixel 1 è blu con molta probabilità lo sarà anche il pixel 2. Se la giacca del giornalista ha un pixel nero con molta probabilità sarà nero anche il pixel adiacente. Esistono delle tecniche di codifica che tengono conto di queste proprietà (ad esempio la tecnica di codifica J-PBG). Dunque, piuttosto che codificare tutta l’immagine, se ne codificano solo alcune parti (ad esempio nel blocco A di Fig. 7.3-5 si codifica un solo pixel per intero) e là dove esistono forti variazioni si opera codificando solo le differenze fra le sezioni adiacenti dell’intera immagine. LA CORRELAZIONE INTERFRAME descrive, invece, le relazioni che esistono tra immagini consecutive. Tra 2 immagini consecutive ci saranno delle parti che non variano: quindi sfruttando la correlazione intraframe, si opera codificando sia un’immagine per intero che le differenze che esistono fra le 2 immagini. Così facendo si abbassa notevolmente la bit-rate. Traffico Video λ(t)=bit-rate λ(t)=bit-rate La correlazione di tipo intraframe è una correlazione di tipo spaziale mentre quella interframe è di tipo temporale. Con questo genere di codifica, all’uscita del codificatore video, si avrà una bitrate variabile nel tempo (Fig. 7.3-6) e quindi un traffico VBR (variable bit rate), al contrario del codificatore PCM con bite-rate costante . Traffico vocale (tipo ON-OFF) t t Fig. 7.3-6: λ(t) per il traffico video e per il traffico vocale di tipo ON-OFF. 10 Si è visto che, codificando una sequenza relativa a video-conferenza il traffico emesso ha una -aτ funzione di autocorrelazione di tipo esponenziale (Fig.7.3-7), pari a Rλλ(τ) = N e . Rλλ(τ) Traffico video N τ Fig. 7.3-7: Funzione di autocorrelazione nel traffico video Si è inoltre dimostrato che il traffico video è caratterizzato in maniera esaustiva dalla funzione di -aτ autocorrelazione Rλλ(τ) = N e , dal valore medio E(λ) e dalla varianza σ 2 λ. Sono dunque necessarie delle codifiche particolari. LA CODIFICA JPEG è molto diffusa per le immagini fisse, perché riesce a caratterizzare molto bene la correlazione intraframe. Viceversa, LO STANDARD MPEG è molto usato per codificare le sorgenti video in quanto tiene contro anche della correlazione interframe (tra frame diverse). Con l’MPEG si suddivide il filmato in GOP (Group of Picture), che è costituito da un insieme di frame consecutive. Secondo lo standard PAL si trasmettono 25 immagini al secondo e il GOP presenta questa struttura: IBBPBBPBBPBBI La prima frame I viene codificata per intero con tecnica JPEG, senza tener conto di ciò che abbiamo prima e dopo. Le frame P vengono codificate secondo una codifica differenziale rispetto alla frame I e alle frame P dello stesso GOP. Infine le frame intermedie B vengono codificate sfruttando le differenze con la frame I precedente e successiva, e anche con le frame P precedente e successiva appartenenti allo stesso GOP. Le frame I contengono la maggiore informazione e sono le più pesanti da trasmettere. Viceversa le frame B sono le più leggere e le più povere di contenuto informativo. Questa struttura non può essere continuata all’infinito, ma periodicamente è necessario ricodificare un’immagine per intero per evitare la propagazione dell’errore. Ad esempio l’MPEG opera, dopo 12 frame, la codifica di un’immagine per intero. Queste 12 frame, che mi costituiscono il GOP (group of picture), non hanno dimensione ben precisa. Più lungo è il GOP, più bassa è la bit-rate e peggiore è la qualità dell’immagine. Il traffico che viene fuori da un codificatore M-PEG è abbastanza strano perché presenta una pseudoperiodicità: infatti se decidiamo di fissare la lunghezza del GOP pari a 12, avremo un picco di traffico ogni 12 frame, dovuto proprio alla codifica dell’immagine per intero. Il traffico è pseudoperiodico in quanto presenta una periodicità temporale (es. 12 frame) del GOP, ma non presenta periodicità per quanto riguarda la bit-rate. Infatti i vari blocchi all’interno di un GOP hanno dimensioni diverse in termini di bit e l'unica cosa certa è che ogni 12 frame si ha un picco di traffico. Dato che all’interno del GOP si hanno variabilità molto forti, spesso, oltre a caratterizzare il comportamento del traffico a livello di GOP, si usa caratterizzare la sorgente all’interno, cioè a livello della singola frame. 11 Caratterizzare le sorgenti MPEG non è affatto semplice, in quanto bisogna caratterizzare statisticamente le frame I, B e P. Sono in corso delle ricerche per capire qual’è il numero minore di parametri per caratterizzare tali sorgenti. Inoltre modellare male una sorgente porta ad una qualità di servizio scadente rispetto a quella promessa, o ad un dimensionamento del sistema in eccesso, andando incontro a sprechi di risorse (sovradimensionamento del sistema). 7.3.3 Traffico Dati Sebbene ci si aspetti che il traffico dati sia il tipo di traffico più semplice da modellare, ciò, in realtà, non è vero. Questo è dovuto alla varietà dei tipi di traffico dati esistenti. I processi di arrivo dei pacchetti sono stati analizzati, ma non è ancora stato identificato un modello adatto in ambiente ATM. La natura del traffico dati è spesso considerata di tipo Poissoniana o Geometrica: se così fosse, il traffico dati lo si può incorporare nei modelli esistenti di traffico bursty. Quindi, se per esempio il traffico dati di frequenza γ è sovrapposto ad un flusso di traffico vocale, che è modellato attraverso sorgenti MMPP (che presenteremo in seguito, in cui γ0 e γ1 sono le frequenze in ciascuno stato), allora il traffico totale può essere caratterizzato da una sorgente MMPP con frequenze γ +γ0 e γ+ γ1 per ciascuno stato. Dunque, se la sovrapposizione dei flussi di dati può essere approssimata attraverso un processo di Poisson, allora una MMPP, leggermente modificata può modellare i flussi aggregati di voce e dati. Se il traffico dati non è Poissoniano, allora la metodologia vista per costruire il modello MMPP per il traffico vocale può essere applicata direttamente al flusso aggregato. 7.3.4 Traffico Multimediale Una sorgente multimediale è la composizione di più sorgenti monomediali correlate tra di loro. Allora, per la definizione di un modello di sorgente multimediale, non solo si devono caratterizzare le singole sorgenti monomediali, ma devono essere anche definite, in maniera analitica, le relazioni intermediali. 7.4 Modellazione delle Sorgenti di traffico In teoria si potrebbero realizzare dei modelli per ogni particolare tipo di traffico ON-OFF, M-PEG, MULTIMEDIALE, WEB, ecc., ma è più conveniente modellare il tipo di traffico in modo generico. Nella nostra analisi la variabile tempo sarà continua o discreta, cioè divisa in intervalli temporali detti slot. 7.4.1 Modello tempo-continuo IPP per il traffico vocale Il processo degli arrivi da una singola sorgente vocale ON-OFF può essere caratterizzato, nel continuo, da un modello IPP (Interrupted Poisson Process), illustrato in Fig. 7.4-1. p=1/TON Q=0 P 0 1 q=1/TOFF Fig. 7.4-1: Modello IPP 12 Quindi tale processo può essere descritto da una catena di Markov tempo-continua (phase process o catena sottostante) a due stati {0,1} in cui: • • • • • • • lo stato 0 corrisponde allo stato di OFF della sorgente; lo stato 1 corrisponde allo stato di ON della sorgente; Q = 0 è la bit rate di emissione della sorgente nello stato di OFF; P = Banda di Picco è la bit rate di emissione della sorgente nello stato di ON; p = 1/TON è la frequenza di transizione OFF-ON q = 1/TOFF è la frequenza di transizione ON-OFF La permanenza nello stato di OFF, o di ON, è distribuita esponenzialmente (proprietà delle catene di Markov). Quindi nel periodo di ON la sorgente trasmette pacchetti con tempi di emissione distribuiti in modo esponenziale avente valore medio pari a P. Quindi la matrice Q dei rate di transizione di stato della catena di Markov, è una matrice 2×2 , in cui il generico elemento Q[i,j] rappresenta il rate di transizione dallo stato i allo stato j. Indicato con p il rate di transizione dallo stato 0 allo stato 1 e con q il rate di transizione dallo stato 1 allo stato 0, la matrice di transizione di stato è così definita: − p p Q= q − q dove 1 ∑Q [i, j ] =0 j =0 p, q ≥ 0 Eq. 7.4-1 (siamo nel continuo) (essendo frequenze di transizioni e non probabilità) L’IPP è dunque un processo di Poisson interrotto: l’interruzione si ha nel momento in cui la catena di Markov passa dalla fase 1 alla fase 0. Quando la catena si trova nello stato di OFF la sorgente non emette, mentre quando si trova nello stato ON emette con una bit-rate P non costante. Quindi questo modello approssima nel dominio tempo-continuo il comportamento di una sorgente vocale ON-OFF precedentemente descritta, con l’unica differenza che nella sorgente reale i tempi di interrarrivo delle celle sono costanti. La scelta del modello IPP con tempi di interarrivo esponenziali, e non costanti, mi semplifica i calcoli attraverso cui posso ricavare i parametri di qualità di servizio. Attenzione a non confondere i processi di Markov tempo-continui con quelli tempo-discreti: 9nel tempo-continuo, i valori reali sugli archi indicano le frequenze di transizione, 9mentre nel tempo-discreto, sono indicate le probabilità di transizione di stato (probabilità di trovarsi in un altro stato o rimanere nello stesso stato alla fine dello slot temporale), che sono quantità minori di 1. Definito il vettore 0 P= P in cui sono contenuti il rate medio di emissione della sorgente nello stato 0 e 1, determiniamo il vettore delle probabilità di stato stazionario Π = [π 0 , π 1 ] dove, indicando con S(t) lo stato della catena di Markov nell’istante t, 13 π i = lim Pr ob{S (t ) = i}= alla probabilità che il sistema si trovi nell’istante t nello stato i-esimo t →∞ (con i ∈{0,1}). Le probabilità asintotiche di stato πi si possono ricavare risolvendo il seguente sistema: ΠQ = 0 π =0 ∑i i Eq. 7.4-2 Operando la trasposta di entrambi i membri della 1° equazione del sistema 7.4-2 (ricordiamo che (AB)t = Bt At), segue che: − pπ 0 + qπ 1 = 0 − p q π 0 0 = ⇒ p − q π 0 1 pπ 0 − qπ 1 = 0 La seconda equazione essendo linearmente dipendente dalla prima, và sostituita con la seconda equazione del sistema 7.4-2; per cui segue che: − pπ 0 + qπ 1 = 0 π 0 + π1 = 1 Risolvendo si ottiene che: π0 = q p+q π1 = p p+q da cui è immediato ricavare la bit rate media del processo di traffico: E {λ (t )} = P Π = Pπ 1 7.4.2 Modello tempo-discreto IBP Poiché nelle reti ATM le celle hanno lunghezza costante, il tempo può essere visto come slottato, dove ciascuno slot ha una durata pari al tempo di trasmissione di una cella. Quindi, la modellizzazione delle reti ATM è preferibile che avvenga nel dominio tempo-discreto. I modelli tempo-discreto sono particolarmente adatti per la valutazione delle prestazioni dei nodi di rete, dal momento che le operazioni all’interno di un nodo sono sincronizzate sugli slot. Per cogliere la natura bursty del traffico vocale, sono stati proposti diversi modelli, come L’IBP (Interrupted Bernoulli Process). L’IBP è il corrispondente modello tempo-discreto dell’IPP. Una sorgente IBP è descritta da una catena di Markov a due stati {0,1}, mostrata in Fig. 7.4-2. α 0 1-α B 0 1 1-β β Fig. 7.4-2: Modello IBP 14 ¾Se il processo in uno slot è nello stato 0, durante lo slot successivo esso o rimane nello stato 0 con probabilità 1− α, oppure transita nello stato 1 con probabilità α. Analogamente, quando il processo è nello stato 1, esso o vi rimane con probabilità 1− β, o transita nello stato 0 con probabilità β. ¾Quindi, i tempi di soggiorno in ciascuno stato sono distribuiti geometricamente con parametri 1− α e 1− β, rispettivamente. ¾Non si hanno arrivi quando il processo è nello stato 0. ¾Invece nello stato 1 si hanno gli arrivi secondo un processo di Bernoulli: cioè per ogni slot temporale in cui il processo è nello stato 1, si ha un arrivo con probabilità B, oppure lo slot rimane vuoto con probabilità 1− B. Questo processo di emissione viene interrotto quando la catena di Markov passa nello stato 0. ¾Il processo IBP viene quindi caratterizzato dalla matrice delle probabilità di transizione di stato della catena di Markov α 1 − α Q= 1 − β β Eq. 7.4-3 e dal vettore 0 B= B dove B deve essere intesa come la quantità media di pacchetti emessi in uno slot temporale (mentre nel tempo continuo si parla di pacchetti al secondo). Analogamente a quanto visto nel processo IPP tempo continuo, le probabilità di stato si possono ricavare risolvendo il seguente sistema: ΠQ = Π π = ∑ i i 0 dove Eq. 7.4-5 π i = lim Pr ob{S (n) = i} con i∈{0,1} e S(n)= stato corrente in cui si trova la catena di t →∞ Markov (Fig. 7.4-3). S(n) Time Slot 1 0 ∆ 2∆ 3∆ 4∆ 5∆ 6∆ Fig.7.4-3: Stati S(n) della catena di Markov tempo discreta Le soluzioni del sistema 7.4-5 sono: π1 = α α+β E{λ (n )} = B Π = Bπ 1 = B α α+β π0 = β α+β Quindi la media del processo di emissione sarà pari: 15 7.4.3 Modello tempo-discreto MMBP L’MMBP (Markov Modulated Bernulli Process) può considerarsi come l’estensione del modello tempo-discreto IBP. Esso è infatti descritto da una catena di Markov ad M+1 stati, in cui nello stato 0 si ha un arrivo con probabilità B0, nello stato 1 un arrivo con probabilità B1, …, nello stato M un arrivo con probabilità BM. In Fig. 7.4-4 è mostrato un processo MMBP a 3 stati. p01 B0 B1 0 p00 1 p11 p10 p02 p20 p21 p12 2 B2 p22 Fig. 7.4-4: processo MMBP a 3 stati Analogamente a quanto visto per l’IBP, l’MMBP si caratterizza attraverso una matrice di T transizione di stato Q e un vettore colonna B = [B0 , B1 , ..., B M ] delle probabilità di emissione in ogni singolo stato. Ad esempio la matrice Q e il vettore B relativi all’MMBP di figura 7.4-4 risultano essere: p00 Q = p10 p 20 p01 p11 p 21 p02 p12 p 22 B0 B = B1 B 2 Ricordiamo che in una catena di Markov tempo-discreta gli autovalori della matrice di stato Q sono: uno pari all’unità e tutti gli altri sono all’interno del cerchio di raggio unitario. Risolvendo il sistema: ΠQ = Π π = ∑ i i 0 si determina il vettore Π delle probabilità di stato. Quindi la media del processo di emissioni è: E{λ (n)} = Π B = ∑iπ i Bi 16 7.4.4 Modello tempo-continuo MMPP L’MMPP (Markov Modulated Poisson Process) rappresenta, invece, l’estensione del modello tempo-continuo IPP. L’MMPP è infatti un processo di Poisson doppiamente stocastico descritto da una catena di Markov tempo-continua a M+1 fasi (stati), detta phase process (chiamata anche catena sottostante o modulante). Durante la permanenza nello stato i (con 0 ≤ i ≤ M), gli arrivi hanno una distribuzione Poissoniana con frequenza pari a γi. Quindi, analogamente al modello tempo-continuo IPP a due stati, anche il processo MMPP è caratterizzato • dalla matrice Q dei rate di transizione di stato, di dimensione (M+1)×(M+1), dove il generico elemento Q[i,j] = qij rappresenta il rate di transizione dallo stato i allo stato j: q00 ... q0 M Q = q10 ... q1M q M 0 ... q MM dove M ∑Q [i , j ] j =0 =0 (siamo nel continuo) Q[ ii ] < 0, Q[ij ] ≥ 0 • per i ≠ j (essendo frequenze di transizioni e non probabilità) dal vettore delle frequenze di arrivo P = [γ 0 , γ 1 , γ 2 , ..., γ M ] , i cui elementi rappresentano la frequenza di arrivo in ciascuna fase: quindi 1/γi è il tempo di interarrivo quando il processo si trova nello stato i-esimo. T Per determinare il vettore delle probabilità asintotiche di stato Π = [π 0 ,π 1 , ..., π M ] dove, indicando con S(t) lo stato della catena di Markov nell’istante t, π i = lim Pr ob{S (t ) = i}= alla probabilità che il sistema si trovi nell’istante t nello stato i-esimo t →∞ (con i ∈{0,1,2, …,M}), occorre, al solito, risolvere il seguente sistema: ΠQ = 0 π =0 ∑i i Anche per l’MMPP la bit rate media del processo è pari a E{λ (t )} = Π P = ∑iπ i γ i Ci resta da esaminare l’ultimo modello tempo-discreto SBBP. 7.4.5 Modello tempo-discreto SBBP Se nel tempo-continuo non ha senso lo slot temporale e quindi l’emissione di più pacchetti per slot, nel tempo-discreto si può considerare, come estensione del processo MMBP, un modello di traffico in cui ci sia la possibilità di emettere più di un pacchetto per slot temporale. 17 Il modello di traffico in questione è l’SBBP (Switched Batch Bernoulli Process) che, ammettendo più di un arrivo per slot temporale, riesce a descrivere la sovrapposizione di sorgenti bursty in tempo reale (Fig.7.4-5). Emissioni per slot n Stato 1 Stato 2 Stato3 Fig. 7.4-5: Andamento temporale di un modello SBBP Il processo tempo-discreto SBBP è modellabile attraverso una catena di Markov con un numero di stati > 2, in cui, come detto, si ha la possibilità di emettere più di un pacchetto per slot temporale. Quindi un SBBP, ad esempio con 3 stati, è così rappresentabile: p22 p12 2 p21 p23 1 p11 p32 p13 3 p33 p31 Fig. 7.4-6: SBBP a tre stati in pratica in ogni stato (1,2, o 3) il processo emette un certo numero di pacchetti secondo una certa funzione densità di probabilità (f.d.p.) di tipo impulsiva; per rendere più chiaro il concetto consideriamo per lo stato 1 la seguente f.d.p.: probabilità in questo esempio nello stato 1 la SBBP emette 0 pacchetti con una probabilità del 30% 1 pacchetti con una probabilità del 20% 2 pacchetti con una probabilità del 40% 3 pacchetti con una probabilità del 10% 4/10 3/10 2/10 1/10 0 1 2 3 n° di pacchetti emessi Fig. 7.4-7: Funzione densità di probabilità caratteristica dello stato 1 dell’SBBP di Fig. 7.4-5 Quindi per una SBBP è necessario definire: 18 a) una matrice di transizione di stato Q, che sarà sempre una matrice quadrata (di dimensione = (n° di stati)×(n° di stati)) i cui elementi mi rappresentano le varie probabilità di passare da uno stato ad un altro, compreso lo stesso; guardando la Fig. 7.4-6, la matrice di transizione di stato, di questa particolare SBBP, sarà così fatta: q11 Q = q21 q31 q12 q 22 q32 q13 q 23 q33 dove, ovviamente, la somma degli elementi di ogni riga della matrice Q deve essere uguale ad 1. b) Una matrice di emissione B, (di dimensione = (n° di stati)×(n° di pacchetti emessi +1)) in cui l’elemento ij mi rappresenta la probabilità di emissione di j = 0,1,2,.. pacchetti quando la SBBP si trova con una certa probabilità nello stato i-esimo. Se il n° di stati =3 (i=1,2,3) e il n° di pacchetti emessi = 3 (j=0,1,2,3), la matrice B sarà così fatta: b11 b21 b31 b12 b22 b32 b13 f 0 b23 = f1 b33 f 2 stato i-esimo in cui Ad esempio, riferendoci alla figura 7.4-7, f o = [0.3 Quindi il generico elemento della matrice B è pari a j-esimo pacchetto b10 B = b20 b30 0.2 0.4 0.1] . bij = lim Pr ob{λ ( n) = j / S ( n) = i} n→∞ cioè uguale alla probabilità di emettere j pacchetti, dato per certo di essere nello stato i. Anche in questo caso la somma degli elementi di ogni riga della matrice B (essendo probabilità) deve essere pari ad 1. Un processo SBBP si può caratterizzare, oltre che con la coppia di matrici (Q,B), con la matrice C ( r ) = QD r dove Dr è la matrice diagonale che contiene (sulla propria diagonale principale) la colonna r-esima della matrice di emissione B. Se consideriamo una catena di Markov a 3 stati (i=1,2,3), dove la matrice di emissione B tiene conto, per ogni stato, dell’emissione di 0 pacchetti, di 1 pacchetto, di 2 pacchetti e di 3 pacchetti (cioè j=0,1,2,3), si ha che: q11 C (0) = q21 q31 q12 q22 q32 q13 b10 q23 0 q33 0 0 b20 0 0 q11b10 0 = q21b10 b30 q31b10 q12 b20 q22 b20 q32b20 q13b30 q23b30 q33b30 19 0 q11b11 q11 q12 q13 b11 0 C (1) = q 21 q 22 q 23 0 b21 0 = q 21b11 q 31 q32 q 33 0 0 b31 q 31b11 0 q11b12 q11 q12 q13 b12 0 C (2) = q21 q22 q23 0 b22 0 = q21b12 q31 q32 q33 0 0 b32 q31b12 0 q11b13 q11 q12 q13 b13 0 C (3) = q21 q22 q23 0 b23 0 = q21b13 q31 q32 q33 0 0 b33 q31b13 q12 b21 q 22 b21 q32 b21 q13 b31 q 23b31 q 33b31 q12b22 q13b32 q23b32 q33b32 q13b33 q23b33 q33b33 q22b22 q32b22 q12b23 q22b23 q32b23 Quindi l’elemento generico C(r)[i,j] rappresenta la probabilità di transizione dallo stato i allo stato j moltiplicata per la probabilità di emettere, nello stato j, r pacchetti. Notiamo che ∑C [i , j ] ( r ) = Q[ i , j ] r ovvero abbiamo applicato il teorema della probabilità totale. La media di un processo SBBP è pari a: E{λ (n)} = n ° _ stati n ° _ max di pacchetti emessi ∑ i =1 ∑ j B[i, j ] π i j =0 Calcolo della Funzione di Autocorrelazione del Processo degli Arrivi di una SBBP La funzione di autocorrelazione è pari a R λλ (m ) = E {λ ( n)λ (n + m)} dove λ rappresenta il processo degli arrivi. Supponiamo che, all’interno di uno slot temporale, possono essere emessi un numero di pacchetti che varia da 0 a rmax. Quindi Rλλ(m) mi quantifica la correlazione che esiste tra il processo degli arrivi in un certo slot e lo slot a distanza m: rmax rmax Rλλ (m) = ∑∑ r1r2 ∑ ∑ lim Pr ob{λ (n) = r1 , λ ( n + m) = r2, S ( n) = s1 , S ( n + m) = s 2 } r1 =0 r2 =0 dove s1∈I s2 ∈I n →∞ r1 =numero di arrivi nello slot n -esimo r2 = numero degli arrivi nelloslot n+m -esimo mentre il valor medio è pari a µ = ∑ iΠ i nello slot n, λ può assumere valori da 0 a r1; nello slot n+m, λ può assumere valori da 0 a r2; Dal teorema della probabilità totale, dato un certo evento B, la probabilità dell’evento A 20 P( A) = ∑ P( A, B) B Posto rmax rmax A = ∑ ∑ r1r2 ∑ ∑ lim r1 = 0 r2 = 0 s1∈I s2 ∈I n→∞ utilizzando la relazione P(x,y)=P(x/y)P(y) segue che: Rλλ (m) = A Pr ob{λ ( n + m) = r2 / S (n + m) = s 2 , λ (n) = r1, S ( n) = s1 }⋅ ⋅ Pr ob{S (n + m) = s 2 , λ (n) = r1, S (n) = s1 }= = A Pr ob{λ ( n + m) = r2 / S (n + m) = s 2 , λ (n) = r1, S ( n) = s1 }⋅ ⋅ Pr ob{S (n + m) = s 2 / λ (n) = r1, S ( n) = s1 }⋅ Pr ob{λ (n) = r1, S (n) = s1 }= = A Pr ob{λ ( n + m) = r2 / S (n + m) = s 2 , λ (n) = r1, S ( n) = s1 } ⋅ Pr ob{S (n + m) = s 2 / λ (n) = r1, S ( n) = s1 }⋅ ⋅ Pr ob{λ (n) = r1, / S (n) = s1 }Pr ob{S ( n) = s1 } Poiché il processo è memory less, l’emissione di r2 e r1 celle, rispettivamente, nello slot n+m e nello slot n, dipende solo dallo stato nello stesso slot. Quindi si ha che: Rλλ (m) = A Pr ob{λ (n + m) = r2 / S (n + m) = s 2 }⋅ Pr ob{S (n + m) = s 2 / S (n) = s1 }⋅ ⋅ Pr ob{λ (n) = r1 / S (n) = s1 }Pr ob{S (n) = s1 } Inoltre per il teorema di Chapman Kolmogorof Pr ob{S ( n + m) = s 2 / S ( n) = s1 } = Q m da cui, essendo Pr ob{S ( n) = s1 } = Π 1 , si ottiene che Rλλ ( m) = AB[s 2 , r2 ]Q m B[s1 , r1 ]Π 1 Normalmente Rλλ(m) ha il seguente andamento: Rλλ(m) E2{λ} m L’unico termine che complica il calcolo di Rλλ(m) è proprio Q m, specialmente per elevati valori di m. Per ovviare a questo problema si effettua la scomposizione spettrale di Q, in funzione dei suoi autovalori e autovettori: Q = TΛT −1 dove 21 λ 0 Λ = ... ... ... ... ... ... è la matrice degli autovalori di Q e T è la matrice degli autovettori di Q. ... λ n −1 In questo modo si ottiene che: Q m = TΛm T −1 λ 0 = T ... ... ... ... ... T −1 ... λ n −1 ... Quindi in Qm, e conseguentemente in Rλλ(m), l’unica dipendenza da m è data dalla matrice Λm. Sviluppando per esteso Rλλ(m), si otterrà un’espressione di questo tipo: R λλ ( m ) = R 0 λ m0 + R1 λ1m + R 2 λ m2 + ... + R n −1 λ mn−1 Visto che la matrice Q ha un autovalore pari ad 1 e tutti gli altri, in modulo, minore di uno, Rλλ ( m ) ≅ R0 Questo significa che la funzione di autocorrelazione del processo di emissione di una SBBP è la combinazione di n-1 esponenziali (se n è il numero degli stati) più un termine costante pari al valor medio al quadrato. Operando in modo analogo nel continuo, si avrà al posto della matrice Qm la matrice e Qτ = Te λτ T −1 e quindi Rλλ ( m) = R0 e λ0τ + R1e λ1τ + R2 e λ2τ + ... + Rn −1e λn −1τ Poiché nel continuo gli autovalori sono uno nullo e tutti gli altri a parte reale negativa, si ha che Rλλ ( m) ≅ R0 = E 2 {λ } 7.4.6 Considerazioni sui vari modelli di traffico Si è visto come caratterizzare il traffico e come modellarlo analiticamente: abbiamo analizzato • nel continuo i processi IPP e MMPP; • nel discreto i processi IBP, MMBP e SBBP. Abbiamo anche visto come l’IPP, nel tempo continuo , e l’IBP, nel tempo discreto, costituiscono un modello per sorgenti ON-OFF (sorgente vocale con VAD) che, nei periodi di ON, trasmettono con una packet-rate P costante. TOFF TOFF Sorgente ON-OFF P TON TON Fig. 7.4-8: Sorgente ON-OFF 22 L’IPP è un processo tempo continuo a due stati (stato di ON e stato di OFF), caratterizzato dalle frequenze di transizione 1/ T OFF e 1/ T ON , dove T OFF e T ON sono rispettivamente il tempo medio di OFF e di ON distribuiti esponenzialmente. Quindi se si utilizza l’IPP per modellare una sorgente ON-OFF, viene fatta l’approssimazione di considerare non costante P, visto che i tempi di interarrivo sono distribuiti esponenzialmente (il processo non è deterministico, bensì di Poisson). L’IBP è invece un processo tempo discreto a due stati (stato 0 e stato 1), caratterizzato dalle probabilità di transizione di stato α e β e dalla probabilità B che sia avvenuto con successo un arrivo. Fissata uguale a ∆ la durata dello slot, possiamo legare i parametri caratteristici del modello IPP con quelli del modello IBP: α= ∆ T OFF β= ∆ T ON B = ∆⋅P da cui segue che α 1 = ∆ T OFF β 1 = ∆ T ON cioè Transizioni per slot = Transizioni al secondo Durata dello slot in secondi Osserviamo che a parità di T OFF e T ON , con un ∆ grande, avremo un α grande e quindi più probabilità di passare dallo stato 0 allo stato 1 dopo la fine dello slot ∆. Con ∆ piccolo avremo, viceversa, una probabilità più bassa di cambiare stato. Nell’IBP, essendo B una probabilità, necessariamente B deve essere ≤1: quando B vale proprio 1, si avrà l’emissione di un pacchetto per slot. Se invece devo modellare una sorgente che emetta più pacchetti in ogni slot temprale, devo necessariamente usare il processo SBBP. Se consideriamo una sorgente di tipo video, sicuramente essa avrà una bit rate λ(t) fortemente variabile, come mostrato in Fig. 7.4-9: λ(t) t Fig. 7.4-9: variabilità della bit rate di una sorgente video La λ(t) graficata si riferisce ad una sorgente video senza cambi di scena con codifica differenziale, cioè in cui ogni frame viene codificata come differenza con la frame precedente. Infatti se abbiamo cambi di scena, la frame dovrà essere interamente codificata causando delle forti discontinuità della λ(t) di Fig. 7.4-9. 23 Se A = (0, A, 2A, 3A, 4A) è il passo di quantizzazione scelto, una sorgente video, così fatta, può essere modellata nel discreto attraverso un processo SBBP e nel continuo attraverso un processo MMPP descritto dalla seguente catena di Markov di nascita e morte: λ 0 2λ A µ 3λ 2A 2µ 4λ 3A 3µ 4A 4µ Fig. 7.4-10: Catena di Markov di nascita e morte di un processo MMPP Dove 0, A, 2A, 3A, e 4A sono i parametri di emissione del processo di Poisson. Il modello avrà, quindi, un andamento temporale di questo tipo: 4A 3A 2A A Fig. 7.4-11: andamento temporale del modello considerato Come gia visto, il modello MMPP è caratterizzato dalla matrice Q dei rate di transizione di stato e dal vettore P delle frequenze di arrivo, che nel nostro caso è P = [0, A, 2 A, 3 A, 4 A] . Si è dimostrato che, calcolando i parametri λ e µ, di un processo di Markov di nascita e morte (Fig.7.4-10), in modo che il processo risultante abbia la stessa funzione di autocorrelazione del processo reale, si ottiene che il modello utilizzato è accurato. L’accuratezza è importante per la valutazione delle prestazioni del multiplexer: in quanto è come se al multiplexer fosse applicato il processo reale. Se la sorgente presenta dei cambi di scena, dobbiamo necessariamente considerare ulteriori transazioni fra stati non adiacenti: quindi il processo, nella sua globalità, non è più descrivibile (come mostra la Fig. 7.4-12) attraverso una catena di nascita e morte. 0 A 2A 3A 4A Fig. 7.4-12: stati di una sorgente video con cambi di scena. Per le catene di nascita e morte la matrice Q dei rate di transizione di stato è una matrice tridiagonale, cioè con la diagonale principale e la pseudodiagonale inferiore e superiore non nulla: 24 q11 q 21 0 Q= 0 ... 0 q12 q 22 q32 ... 0 ... 0 q 23 q33 ... q34 ... 0 ... 0 ... ... ... 0 ... q M −1 M − 2 0 q M −1 M −1 q M M −1 q M −1 M q MM 0 0 0 0 questo perché le transizioni avvengono solamente fra stati adiacenti. Ovviamente se la sorgente video presenta dei cambi di scena, la corrispondente matrice Q sarà una matrice piena. Analogamente a quanto fatto nel tempo-continuo con l’MMPP, questo stesso tipo di sorgente video può essere modellata, anche nel tempo-discreto, utilizzando il processo SBBP. 7.4.7 Sovrapposizione Markoviana FLUSSI DI TRAFFICO … Dato un nodo di una rete di telecomunicazioni, per valutarne le prestazioni, noto il carico complessivo in ingresso, è necessario modellare l’aggregato delle sorgenti che afferiscono al multiplexer (Fig. 7.4-13): Nodo di Rete Traffico Aggregato SINGOLI LINK d’uscita Fig. 7.4-13: Traffico aggregato in ingresso ad un nodo di rete Dal processo che descrive il singolo flusso di traffico, è possibile modellare il traffico aggregato inteso come insieme di sorgenti omogenee ed eterogenee. Supponiamo di avere due sorgenti ON-OFF modellate attraverso un processo IBP (Fig. 7.4-14). Nodo di Rete Sorgente ON-OFF IBP1 Traffico Aggregato LINK d’uscita Sorgente ON-OFF IBP2 α1 0 B1 0 1-α1 α2 0 0 1 β1 B2 1-β1 1-α2 1 β2 1-β2 Fig. 7.4-14: due sorgenti ON-OFF modellate attraverso un processo IBP 25 Ricordiamo che le due sorgenti IBP sono caratterizzate dalle matrici di transizione di stato α1 1 − α1 Q1 = 1 − β1 β1 α2 1 − α 2 Q2 = 1 − β 2 β2 e dai vettori delle probabilità di emissione negli stati 0 e 1 0 B1 = B1 0 B2 = B2 Calcoliamo il modello dell’aggregato di queste due sorgenti. Detto S1(n) lo stato della catena di Markov 1 nello slot n, e S2(n) lo stato della catena di Markov 2 nello slot n, con S 1 (n )∈ {0,1} S 2 (n )∈ {0,1}, definiamo lo stato del processo complessivo come: S (n ) = (S1 (n ), S 2 (n ))∈ {(0,0), (0,1), (1,0), (1,1)}≡ I dove I è lo spazio degli stati del processo aggregato, dato dal prodotto cartesiano degli spazi degli stati dei processi componenti. La matrice di transazione dell’aggregato sarà quindi pari a: (1-α1)Q2=Q1[0,0] Q2 (1 − α 1 )(1 − α 2 ) (1 − α 1 )β 2 Q= β 1 (1 − α 2 ) β1 β 2 (1 − α 1 )α 2 (1 − α1 )(1 − β 2 ) β1α 2 β 1 (1 − β 2 ) β1 Q2 =Q1[1,0] Q2 α1 Q2=Q1[0,1] Q2 α 1 (1 − α 2 ) α 1α 2 α1 β 2 α 1 (1 − β 2 ) (1 − β 1 )(1 − α 2 ) (1 − β 1 )α 2 (1 − β 1 ) β 2 (1 − β1 )(1 − β 2 ) (1-β1) Q2=Q1[1,1] Q2 L’elemento 11 è uguale alla probabilità che il primo processo vada da 0 a 0 per la probabilità che il secondo processo vada da 0 a 0; l’elemento 12 è uguale alla probabilità che il primo processo vada da 0 a 0 per la probabilità che il secondo processo vada da 0 a 1 e così via per gli altri elementi di Q. E’ possibile scrivere la matrice Q in una forma più compatta suddividendola in quattro quadranti: dove Q1[0, 0 ]Q 2 Q= Q1[1, 0 ]Q 2 Q 1[0,1] Q 2 Q1[1,1]Q 2 Q1[0,0] indica la probabilità che la sorgente 1 rimanga nello stato 0; Q1[0,1] indica la probabilità che la sorgente 1 vada dallo stato 0 allo stato 1; Q1[1,0] indica la probabilità che la sorgente 1 vada dallo stato 1 allo stato 0; Q1[1,1] indica la probabilità che la sorgente 1 rimanga nello stato 1. 26 Ma quest’ultima espressione di Q rappresenta il prodotto di Kronecker tra Q1 e Q2, ovvero Q = Q1 ⊗ Q 2 Quindi abbiamo dimostrato che la matrice di trasmissione del processo aggregato è data dal prodotto di Kronecker delle matrici di transizione dei processi componenti. Questo risultato, ottenuto nel caso particolare di due sorgenti IBP, ha validità generale, cioè vale qualsiasi sia numero e il tipo di processi (anche con Q di dimensioni diverse) considerati, purché tali processi siano tutti tempo-discreti. Calcoliamo la matrice B dell’aggregato. Il processo aggregato, da noi analizzato, può quindi essere così schematizzato (Fig. 7.4-15): 00 10 10 11 Fig. 7.4-15: stati dell’aggregato dei due processi IBP. Dobbiamo capire se il processo aggregato è un MMBP o un SBBP. Nello stato (0,0) il processo emette 0 celle in (1,0) e in (0,1) emette al più una cella per slot, in (1,1) potrà emettere anche due celle per slot, quindi l’aggregato è certamente un SBBP. In pratica, l’aggregato sarà rappresentato da un modello SBBP a 4 stati in cui la sorgente emetterà con una certa probabilità (fissata nella matrice B) 0,1 o 2, pacchetti. Ricordiamo che nella matrice di emissione B di una SBBP gli indici delle righe sono gli stati e gli indici delle colonne sono il numero dei pacchetti-1 (visto che il sistema può anche non emettere pacchetti) che possono essere emessi (quindi B può anche non essere quadrata), l’aggregato sarà caratterizzato dalla seguente matrice di emissione: n° di packets emessi Stato Stato B= Stato Stato 00 01 10 11 0 1 2 1 0 0 (1 − B ) 0 B2 2 (1 − B1 ) 0 B1 (1 − B1 )(1 − B2 ) B1 (1 − B2 ) + B 2 (1 − B1 ) B1 B2 dove l’elemento Bij rappresenta la probabilità che nello stato i vengano emessi j pacchetti. Infatti la prima riga indica che il processo, trovandosi nello stato (0,0), emetterà 0 pacchetti con probabilità unitaria e 1 o 2 pacchetti con probabilità nulla. Come Q, anche B può essere scritta in una forma più generale, per mezzo di sommatorie e produttorie. Per un SBBP, la funzione densità di probabilità (p.d.f) f (r ) = lim prob{λ (n ) = r} n → +∞ si può ottenere come: 27 f (r ) = ΠB che rappresenta la probabilità, condizionata dallo stato, di emettere un certo numero di celle, dove Π è l’array della probabilità di stato (pari a Π = [Π 00 Π 01 Π 10 Π 11 ] se si considera l’aggregato di due sorgenti IBP). L’approccio, fin qui utilizzato, per ricavare la matrice di transizione di stato Q e la matrice di emissione B, che caratterizzano il processo aggregato, è noto con il nome di SOVRAPPOSIZIONE MARKOVIANA. La Sovrapposizione Markoviana è un metodo talmente preciso che avrà il problema dell’esplosione del numero degli stati, per un numero N elevato di processi considerati. 7.4.8 Sovrapposizione Statistica L’approccio duale alla Sovrapposizione Markoviana è la SOVRAPPOSIZIONE STATISTICA. La sovrapposizione statistica consiste nel determinare un modello analitico che presenti le stesse caratteristiche statistiche che risultano dominanti nel calcolo delle prestazioni del multiplexer. Osserviamo che le caratteristiche statistiche dominanti sono diverse a secondo delle prestazioni considerate. Seguendo un iter differente da quello percorso per la Sovrapposizione Markoviana (ad es. secondo un approccio simulativo), si è, infatti, dimostrato che per calcolare le prestazioni del multiplexer basta considerare particolari caratteristiche statistiche dei processi: cioè il multiplexer avrà le stesse prestazioni per processi diversi, se tali processi sono caratterizzati dagli stessi parametri statistici dominanti. Per spiegare meglio quanto detto, consideriamo un multiplexer (Fig. 7.4-16) di dimensione K e capacità di svuotamento C: K C Fig. 7.4-16: multiplexer di dimensione K e capacità di svuotamento C: Esaminiamo due differenti casi • traffico in ingresso a bit-rate costante e • traffico in ingresso a bit-rate variabile, bit rate variabile bit rate costante con la stessa media e calcoliamo rispettivamente il ritardo o la probabilità di perdita. Se le prestazioni in termini di ritardo e di probabilità di perdita sono uguali per i due tipi di traffico, implica che la media è il fattore statistico dominante: cioè qualsiasi tipo di traffico avente la stessa media, darà prestazioni identiche a quelle trovate. Il problema è allora valutare quali siano le caratteristiche statistiche dominanti del traffico, per poter calcolare le prestazioni del multiplexer. Inoltre poiché le prestazioni del multiplexer restano uguali per processi aventi stesse caratteristiche statistiche dominanti, sarà conveniente scegliere il processo avente il minor numero di stati. Quindi, con la Sovrapposizione Statistica, si risolve il problema dell’esplosione degli stati della Sovrapposizione Markoviana. 28 San qi Li ha dimostrato che le caratteristiche statistiche dominanti, relative al calcolo della probabilità di perdita e del ritardo, sono le statistiche del primo ordine (p.d.f.) e del secondo ordine (funzione di autocorrelazione), calcolate per il processo aggregato ottenuto con Sovrapposizione Markoviana. Esiste inoltre un’affermazione di San qi Li che è stata subito negata dal gruppo di ricerca dell’ingegnere Schembra dell’Università di Ingegneria Elettronica di Catania: secondo San qi Li, se due processi SBBP presentano la stessa p.d.f. e la stessa funzione di autocorrelazione, allora avranno la stessa probabilità di perdita e lo stesso ritardo. 7.5 Valutazione delle prestazioni intesa come calcolo della QOS APPROCCIO ANALITICO Vediamo come operare per calcolare analiticamente le prestazioni di un multiplexer (Fig. 7.5-1) di una rete di telecomunicazioni considerando in ingresso l’aggregato, per Sovrapposizione Markoviana o Statistica, di N flussi di traffico. K<∞ Processo aggregato C [bit/sec] Fig. 7.5-1: multiplexer di una rete di telecomunicazioni Il multiplexer è quel sistema che permette di mettere assieme più flussi di traffico per trasferirli su un’unica linea di trasmissione, avente una capacità compresa tra la bit-rate media e la banda di picco del flusso d’ingresso. Inoltre la coda interna al multiplexer ammortizza i picchi di trasmissione limitando la perdita dei processi che trovano la risorsa trasmissiva impegnata: ovviamente se il buffer è infinito (caso non reale), i processi verranno prima o poi serviti, senza che si verifichi alcuna perdita. Consideriamo, per comodità di calcolo, la dimensione dello slot temporale ∆ = al tempo di trasmissione di un pacchetto sul link di uscita, cioè in ogni slot temporale viene servito un pacchetto. Nell’ipotesi di LATE ARRIVAL SYSTEM WITH IMMEDIATE ACCESS, il processo degli arrivi e delle partenze si può così rappresentare: Osservazione Partenza Osservazione Arrivi Partenza Slot n - esimo Arrivi Slot n+1 - esimo Fig. 7.5-2: diagramma della successione temporale per un Late Arrival System with Immediate Access Avremo prima l’osservazione, poi, quasi alla fine dello slot, gli arrivi e quindi l’unica partenza all’inizio dello slot successivo. Con questo schema non potremo mai vedere il sistema pieno, visto che gli arrivi e la partenza sono vicini e l’osservazione avviene dopo la partenza. 29 Se C è la capacità in bit/s di un link ATM, essendo la cella ATM costituita da 53 bytes, la dimensione ∆ dello slot temporale, per l’assunzione fatta, sarà pari ad un tempo di trasmissione, 53⋅ 8 della cella ATM, di . C Indichiamo con Mmax il numero massimo di arrivi per slot. Lo stato dell’intero sistema (Σ ) (Q ) S (n ) = (S (n ), S (n )) è dato dallo stato dell’aggregato delle sorgenti e dallo stato della coda. Se la coda è di dimensione K < ∞, allora S(Q)(n) potrà assumere i valori 0, 1, 2, …, K (anche se, in effetti, ci potremmo fermare a K-1, in quanto la coda non si troverà mai nello stato K, cioè non osserveremo mai K pacchetti in coda, data l’assunzione fatta che l’osservazione avviene sempre dopo una partenza). Invece, se la matrice Q dell’aggregato è M×M, S(n) potrà assumere i valori 0,1, …, M-1 (nell’aggregato di due processi IBP è M = 4, come visto in Fig. 7.4-15, in cui sono presenti gli stati 00, 01, 10 e 11). Calcoliamo la matrice delle probabilità di transizione Q Σ per l’intero sistema, nell’ipotesi che il processo che carica il multiplexer è composto da due IBP, ovvero dal processo aggregato SBBP. Ricordando che un processo SBBP si può caratterizzare, oltre che con la coppia di matrici (Q,B), anche con la matrice C ( r ) = QD r , ( ) dove Dr è la matrice diagonale che contiene (sulla propria diagonale principale) la colonna r-esima Σ della matrice di emissione B, la Q( ) sarà così strutturata: 1 C (0 ) + C (1) C (2 ) C (0 ) C (1) 0 C (0 ) Q= 0 0 0 0 ... ... 0 ... 2 3 C (3) ... ... C (2 ) ... ... C (1) ... ... C (0) ... ... 0 ... ... ... ... ... ... ... 0 K-1 K Stati dell’aggregato C (r ) 0 ∑ r =k M max C (r ) 0 ∑ r = k −1 M max C (r ) 0 ∑ r = k −1 M max ∑ C (r ) 0 r =k −2 M max ( ) 0 C r ∑ r = k −3 ... ... 0 C (0) M max 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 … … 0 00 01 10 11 QUADRANTE 00: la coda passa dallo da 0 allo stato 0, mentre gli stati dell’aggregato possono variare fra di loro nelle varie combinazioni; in pratica o si sarà un arrivo oppure zero arrivi, ovvero troveremo in questo primo quadrante la matrice C(1)+ C(0). QUADRANTE 01: la coda passa dallo stato 0 allo stato 1, mentre gli stati dell’aggregato possono variare fra di loro nelle varie combinazioni. Ma affinché il buffer passa da 0 a un 30 processo in coda, ci dovranno essere necessariamente due arrivi, essendo la sequenza degli eventi osservazione-arrivi-partenza-osservazione. Quindi occorre considerare la matrice di transizione Q dell’aggregato con la probabilità che ci siano due arrivi: cioè, considerando la definizione di C(r), la matrice del quadrante 12 sarà C(2); Gli altri elementi di Q(Σ) sono facilmente deducibili facendo analoghe considerazioni. Infatti nel QUADRANTE 10: avremo da 1 a 0 arrivi, quindi troviamo la matrice C(0); QUADRANTE 11: avremo un arrivo, quindi troviamo al matrice C(1) QUADRANTE 20: il buffer passa dallo stato di 2 processi in coda allo stato di coda vuota: questa situazione non si potrà mai verificare vista l’assunzione fatta di LATE ARRIVAL SYSTEM WITH IMMEDIATE ACCESS, quindi troviamo la matrice nulla. Gli elementi della K-esima colonna della matrice Q(Σ) sono tutti nulli, in quanto non possiamo mai osservare un sistema totalmente pieno sotto l’ipotesi di LATE ARRIVAL SYSTEM WITH IMMEDIATE ACCESS. QUADRANTE 0 K-1: ci potranno essere sia K arrivi, sia molti di più, visto che i restanti pacchetti vengono persi. Troveremo quindi la M max ∑ C (r ); r =k QUADRANTE 1 K-1: analogamente a quanto detto per il quadrante 0 K-1, nell’elemento 1 K-1 della matrice Q(Σ) troveremo la M max ∑ C (r ) r = k −1 e così via per gli altri elementi del K-1 – esima colonna di Q(Σ). Osserviamo che se Mmax < K la sommatoria dell’elemento 0 K-1 è nulla. Nota Q(Σ), per determinare le probabilità Π(Σ) di stato dell’intero sistema basta risolvere il seguente sistema: Π (Σ )Q (Σ ) = Π (Σ ) (Σ ) ∑ Π [ q , s ] = 1 ∀q ∈ [0,1,..., K ] ∀s ∈ [0,1,..., M − 1] Eq. 7.5-1 dove [q,s] rappresenta lo stato dell’intero sistema (sorgenti + multiplexer), costituito dallo stato q della coda e dallo stato s del flusso di traffico aggregato. Esistono delle tecniche di calcolo numerico che permettono di risolvere in maniera semplice ed efficiente questo sistema, che, a causa del grande numero di stati, sarebbe complicato e pesante trovarne la soluzione. In generale si può affermare che dato un certo numero di sorgenti tempo-discrete (SBBP, IBP o MMBP), in ingresso ad un multiplexer con capacità d’uscita C e dimensione K, il traffico aggregato trasmesso è modellabile, con Sovrapposizione Markoviana o Sovrapposizone Statistica, attraverso un processo SBBP cumulativo. 31 Una volta risolto il sistema 7.5-1, noto Π(Σ) (i cui elementi sono gli stati dell’intero sistema), si può determinare la lunghezza media E{Q} della coda k −1 E{Q} = ∑ qf Q (q ) Eq. 7.5-2 q =0 dove fQ(q) è la funzione densità di probabilità della coda pari a: { } f Q (q ) = lim prob S (Q ) (n ) = q n→∞ fQ(q) … q Fig. 7.5-3: funzione distribuzione di probabilità della coda Per determinare, ad esempio, la probabilità che la coda sia vuota (q=0), basta sommare la probabilità che la coda sia vuota e la sorgente d’ingresso sia nello stato 0, più la probabilità che la coda sia vuota e la sorgente d’ingresso sia nello stato 1, … più la probabilità che la coda sia vuota e la sorgente sia nello stato M-1. • La lunghezza media E{Q} della coda k −1 E{Q} = ∑ qf Q (q ) q =0 ovvero il ritardo medio, espresso in slot, che si subisce quando si entra in coda, è il primo parametro di QOS (qualità di servizio) trovato per valutare le prestazioni dell’intero sistema. • Altro parametro importante di QOS è la probabilità di perdita ploss relativa alle celle che vengono perse nel buffer, pari a ploss = n° celle ( pacchetti) perse n° celle ( pacchetti) emesse Il parametro ploss dipende fortemente da fQ(0), fQ(1), fQ(2), …, ovvero dalla funzione densità di probabilità della coda, che rappresenta la distribuzione degli stati del sistema coda: infatti più la coda si avvicina alla condizione di saturazione, maggiore sarà la probabilità che si verifichino perdite. • Se le sorgenti in ingresso al multiplexer evolvono in maniera differente l’una dall’altra, queste perderanno in maniera diversa, quindi è opportuno considerare la probabilità di perdita ploss(i) relativa ad ogni singola sorgente (e non la probabilità di perdita media complessiva dell’intero sistema), pari a: 32 ploss (i) = n° celle ( pacchetti) perse dalla sorgente i − esima n° celle ( pacchetti) emesseperse dalla sorgente i − esima • Altro parametro di QOS che si può considerare è il jitter dei tempi di ritardo, ovvero la varianza della variabile q, cioè la varianza dalla p.d.f. fQ(q). • Come ultimo parametro di QOS consideriamo lo skew che rappresenta la differenza dei ritardi subiti da due sorgenti correlate fra di loro. Se si vuole sincronizzare delle sorgenti multimediali, ognuna con un flusso audio e video distinti, è necessario correlare il traffico audio con il traffico video. Così facendo, se le unità informative partono allineate, audio e video arriveranno ancora allineate, senza skew, cioè non si perderà la sincronia fra la voce (formato audio) e il movimento delle labbra (formato video). RICAPITOLANDO ⇒ abbiamo, opportunamente, modellato il traffico offerto al sistema con processi tempo-discreti (IBP, MMBP, o SBBP) o con processi tempo-continui (IPP o MMPP); ⇒ abbiamo considerato l’aggregato dei singoli flussi di traffico, con Sovrapposizione Markoviana o Statistica; se la variabile tempo è discreta, l’aggregato sarà una SBBP caratterizzata dalla matrice Q di transizione di stato e dalla matrice B di emissione. ⇒ Una volta note Q e B, si costruisce il matricione Q(Σ) dell’intero sistema (sorgenti+coda di attesa) e si calcola Π(Σ). ⇒ Noto Π(Σ), si determinano i parametri prestazionali di QOS dell’intero sistema (ritardo medio E{Q}, loss probabilità ploss, jitter, skew, etc.). E’ opportuno graficare l’andamento dei parametri prestazionali trovati, al fine di valutare visivamente la resa del sistema. Ad esempio, fissata la capacità C del canale d’uscita (come nell’ATM, in cui i multiplexer hanno dei link d’uscita di capacità costante, pari a 155 Mbit/sec) nel grafico di Fig. 7.5-4, ogni curva mostra l’andamento della loss-probability ploss, al variare della dimensione K del buffer, di un sistema con, rispettivamente, N=20, N=30 e N=50 sorgenti. ploss N=50 Sorgenti N=30 Sorgenti N=20 Sorgenti 1000 K [bit/sec] Fig. 7.5-4: loss-probability al variare di K (dimensione del buffer) Quindi si comprende come l’uso di tali grafici può essere utile ¾sia in FASE DI PROGETTO - se, ad esempio, è richiesta una probabilità di perdita di 10-5, prevedendo di avere 50 sorgenti in ingresso al multiplexer, dovrò, come si vede dal grafico di figura 7.5-4, necessariamente utilizzare un buffer di capacità K=1000 [bit/s]. 33 ¾Sia per il CONTROLLO DI AMMISSIONE DI CHIAMATA (CAC) Se un dato sistema presenta determinati parametri prestazionali con 20 sorgenti, non appena la 21-esima sorgente vuole trasmettere, sicuramente, aumentando il traffico in ingresso ed essendo il buffer di dimensione costante, le prestazioni deteriorano (Fig 7.5-5). ploss N=30 Sorgenti N=21 Sorgenti N=20 Sorgenti 1000 K [bit/sec] Fig. 7.5-5: loss-probability al variare di K (dimensione del buffer) Infatti, nel grafico di Fig. 7.5-5, per K=1000 [bit/s], la probabilità di perdita della curva tratteggiata, relativa a 21 sorgenti, è maggiore della probabilità di perdita della curva relativa a 20 sorgenti. Quindi prima di accettare la 21-esima richiesta, devo verificare che la QOS, pattuita con le 20 sorgenti previste, sia garantita. Per effettuare questa verifica non è necessario ricalcolare, in tempo reale, i grafici ad ogni nuova richiesta di chiamata: si usano, infatti, delle tabelle e dei grafici interpolati, ricavati interpolando le curve calcolate per N=20, N=30, N=40, … Nel nostro esempio, per ottenere la curva relativa a N=21 sorgenti, basta interpolare le curve relative a N=20 e N=30 sorgenti. Si possono usare anche tecniche fuzzj e di intelligenza artificiale per effettuare queste interpolazioni. E’, inoltre, estremamente importante, effettuare il MONITORAGGIO DEI PARAMETRI: infatti, se le sorgenti non rispettano i parametri di trasmissione pattuiti con il gestore della rete, chiaramente i grafici estrapolati, sotto determinate assunzioni, non saranno più validi, e l’intera rete entrerà in crisi. Quindi è necessario predisporre un meccanismo che monitorizzi le sorgenti, per controllare che rispettino quanto promesso. Il METODO ANALITICO, finora visto, lo abbiamo applicato al problema del dimensionamento e della gestione di un multiplexer. Anche se con maggiori complicazioni, stesse procedure si possono estendere ad un’intera rete (Modellazione della rete), vista come un insieme di multiplexer che si caricano l’un l’altro (Fig.7.5-6). C’è comunque da precisare che le complicazioni nascono specialmente nei nodi di ingresso, dove il traffico è molto variabile (bursty); mentre, con le successive miltiplazioni delle varie sorgenti, l’andamento del traffico all’interno della rete tende ad essere CBR (constant bit rate), con piccole variazioni di bit rate rispetto alla bit rate media. 34 Fig.7.5-6: insieme di multiplexer che si caricano l’un l’altro. APPROCCIO SIMULATIVO L’approccio simulativo ha validità generale per la risoluzione di una vastissima gamma di problematiche. Infatti, qualsiasi prototipo, prima di essere commercializzato, viene sottoposto a diversi test simulativi. Simulare vuol dire RIPRODURRE al calcolatore un modello del sistema da analizzare, tenendo conto di tutti quei parametri che possono influenzare le prestazioni del processo stesso. In pratica con la simulazione riusciamo a modellare in maniera indipendente anche i più piccoli dettagli del sistema globale, rendendolo estremamente realistico. Quindi l’approccio simulativo è sicuramente molto più preciso e realistico del processo analitico. Di contro, col simulatore, l’estrapolazione dei risultati richiede tempi di calcolo elevati, in quanto è necessario che il numero di eventi che contiamo, per fare la stima, siano statisticamente rilevanti. Cioè la durata della simulazione dipende dalla precisione dei risultati cercati: infatti, maggiore è il numero di eventi che si conteggiano, più affidabile sarà la stima, ma più lunga sarà la durata della simulazione. Occorre, dunque, trovare un compromesso tra il tempo di calcolo che si vuole attendere, il numero di parametri che influenzano le prestazioni del sistema e la precisione del risultato (cioè il numero di eventi da osservare): ovviamente non ha senso considerare dettagli che poco (o niente) influenzano i parametri da stimare. Dunque, in definitiva, ¾con l’analisi è necessario considerare delle ipotesi restrittive (che portano ad approssimazioni) per rendere trattabile il problema, ¾mentre la simulazione ha l’enorme vantaggio di essere precisa nel riprodurre qualunque sistema, con tutti i dati voluti e sotto qualsiasi ipotesi. D’altra parte, l’analisi, rispetto al processo simulativo, è molto più rapida nel calcolo, visto che si tratta, solamente, di risolvere una formula. PIANIFICAZIONE E REALIZZAZIONE DI UNA SIMULAZIONE I passi da seguire per effettuare una corretta simulazione sono, a grandi linee, i seguenti: 1. 2. 3. 4. 5. 6. 7. 8. Formulazione del Problema; Raccolta ed Analisi dei Dati Reali; Formulazione di un Modello Matematico; Valutazione dei Modelli; Impostazione e Scrittura del Programma di Simulazione; Verifica del Modello; Pianificazione degli Esperimenti; Analisi dei Risultati. 35 1. Formulazione del Problema: bisogna cercare di capire gli aspetti fondamentali del processo che stiamo studiando, cioè le variabili che dobbiamo stimare. In pratica, in questa prima fase, non intervengono problematiche di carattere statistico, ma il target principale è quello di descrivere l’obiettivo della simulazione stessa. Esso può essere, ad esempio, l’analisi delle prestazioni del sistema, oppure la determinazione delle relazioni funzionali fra ingresso e uscita, o ancora l’ottimizzazione dei parametri di controllo. 2. Raccolta e Analisi dei Dati: bisogna capire quali sono i dati in ingresso e quali sono le loro caratteristiche, per poter costruire in maniera oculata il simulatore. Si devono, quindi, raccogliere dati sperimentali sulle distribuzioni delle grandezze aleatorie (come la distribuzione dei tempi di interarrivo) di interesse per la simulazione. Tali grandezze possono essere usate, ad esempio, per ricavare una distribuzione teorica oppure per effettuare delle verifiche sul modello. 3. Modello Matematico: Potrebbe sembrare strano, nell’approccio simulativo, formulare un modello matematico, ma è comunque necessario, a partire da dati reali, costruirne uno. La formulazione del modello matematico è sicuramente il passo più delicato da compiere. Bisogna scegliere un modello matematico, da dare in pasto al calcolatore, che meglio rappresenti il sistema reale. Quindi tale modello non deve essere un modello matematico analitico molto approssimato, ma, al contrario, gli si deve assegnare un alto grado di approssimazione reale (cioè di vicinanza alla realtà). REALTÀ Modello Matematico molto meno approssimato, utilizzato nella simulazione MODELLO ANALITICO Modello Matematico approssimato Fig. 7.5-7: Differenza tra Modello Matematico Analitico e Simulativo Ad esempio modellare delle sorgenti vocali, in ingresso ad un multiplexer, con dei processi IBP, per simulare il funzionamento dell’intero sistema, sarebbe un grosso errore, visto che sto applicando, il processo simulativo ad un modello matematico analitico, risolvibile con un approccio analitico in maniera molto più efficiente e veloce. Se invece nella modellazione del traffico vocale considero che durante i periodi di parlato (ON), i pacchetti sono egualmente spaziati nel tempo e che la durata dei tempi di ON non è esponenziale, ma ha una distribuzione gaussiana, allora sto certamente creando un modello matematico più reale. 4. Valutazione dei Modelli: bisogna verificare che i dati reali sono in accordo con i modelli formulati. 5. Impostazione e Scrittura del Programma di Simulazione: è opportuno, prima della stesura del codice, decidere lo stato di partenza del sistema, la presenza o meno di condizioni iniziali, la precisione dei risultati e l’eventuale utilizzo di conoscenze acquisite 36 sul processo per velocizzare la simulazione stessa. Solo a questo punto si può scrivere il programma. 6. Verifica del Modello: questa fase impone di verificare l’adeguatezza del modello al sistema reale. Scritto il programma di simulazione, si assegnano degli input opportuni e si verifica che il codice funzioni bene: cioè se, ad esempio, il modello prevede un tempo di interarrivo di 5 secondi, dobbiamo verificare che il simulatore, in accordo con le previsioni, emetta nuovi processi ogni 5 secondi. 7. Pianificazione degli Esperimenti: questa è una fase di grande importanza che viene spesso trascurata. La pianificazione degli esperimenti varia in base agli obiettivi focalizzati nella prima fase. Se l’obiettivo della simulazione riguarda l’analisi delle prestazioni del sistema al variare dei dati d’ingresso o dei parametri di controllo, è importante garantire una precisione statistica dei risultati adeguata (accuratezza del risultato) senza esasperare i tempi di calcolo. E’, infatti, inutile occupare il computer con elaborazioni che durano settimane intere, per poi accorgerci che il blocco di esperimenti bastava simularlo, ad esempio, per una capacità del link di uscita di 10 bit/sec, anziché di 100 bit/sec. Bisogna in pratica pianificare gli esperimenti, eseguendo oculate CAMPAGNE DI SIMULAZIONE. Se invece la simulazione è mirata a determinare le relazioni funzionali tra i parametri di ingresso e le prestazioni di uscita, è importante, per prima cosa, ipotizzare la forma di tali relazioni e successivamente stimare i parametri che li caratterizzano. Se, ancora, l’obiettivo della simulazione riguarda l’ottimizzazione dei parametri di controllo, bisognerà ricercare il massimo o il minimo della funzione qualità che lega le variabili di ingresso a quelle di uscita. 8. Analisi dei Risultati: consiste nella raccolta e nell’interpretazione dei risultati ottenuti. Dall’analisi dei risultati si comprende se è necessario effettuare ulteriori simulazioni per ottenere altri risultati significativi. Per automatizzare il processo simulativo, il programma non deve avere input da tastiera: questo mi consente alla simulazione di procedere autonomamente, anche per lunghi giorni, senza intervento umano. Quindi l’input deve essere da file e l’output deve essere su file. Se la durata della simulazione è lunga, conviene, ad intervalli di tempo regolari, salvare in un file “risultati_temporanei” i dati (non definitivi) che via via si ottengono. Per non perdere la corrispondenza tra i parametri di ingresso ed i relativi risultati di fine simulazione, è conveniente allegare alla fine (o all’inizio) del file di output, l’input che lo ha generato. PROBLEMI DELLA SIMULAZIONE Fondamentalmente, i due più grossi problemi che si incontrano nelle simulazioni sono: A. Analisi del Transitorio. B. Accuratezza (Precisione) dei Risultati. Analisi del Transitorio Simulare il sistema nel transitorio vuol dire capire come il sistema evolve a partire da certe condizioni iniziali. Per condizioni iniziali si deve intendere una fotografia del sistema in un istante qualsiasi della sua vita, a partire dal quale si iniziano a raccogliere i dati e ad osservare le variabili. Se riusciamo a graficare l’andamento di una variabile del sistema da simulare, una 37 volta scelto arbitrariamente lo stato iniziale (origine), da esso dipenderà l’evoluzione del processo simulativo negli istanti immediatamente successivi. Stato iniziale scelto da cui far evolvere il sistema Fig. 7.5-8: evoluzione temporale di una variabile del sistama Quindi è necessario, in ogni simulazione, partire da assegnate condizioni iniziali, da cui dipenderanno i risultati finali. Le simulazioni possono essere STAZIONARIE o DINAMICHE. Le simulazioni DINAMICHE, sono condotte a EVENTI - per simulare sistemi con approccio tempo-continuo, o a INTERVALLI COSTANTI - per simulare sistemi tempo-discreti. Invece le simulazioni STAZIONARIE sono indipendenti dalla variabile temporale. Sono infatti simulazioni asincrone in cui si tiene conto solo dei cambiamenti di stato del sistema e non degli istanti in cui i cambiamenti di stato avvengono. Un esempio è il Metodo di Montecarlo per misurare aree di superfici irregolari (Fig.7.5-9): si lanciano punti all’interno del rettangolo che contiene la figura, in maniera casuale; si contano quanti punti cadono all’interno e quanti all’esterno della figura; quindi il rapporto fra il numero di punti caduti dentro la figura e il numero di punti nel rettangolo ci fornisce il rapporto fra l’area della figura e quella del rettangolo. Ovviamente, più punti lancio, più è accurata la misura. Fig. 7.5-9: Metodo di Montecarlo Le SIMULAZIONI STAZIONARIE, che interessano in questa trattazione, hanno lo scopo di indagare il comportamento del sistema in regime di equilibrio statistico. Il sistema raggiunge la condizione di equilibrio statistico se il suo comportamento non dipende più dalle condizioni iniziali con cui è partita la simulazione; le probabilità di stato sono indipendenti dal tempo. Quindi nelle simulazioni stazionarie, per effettuare una corretta valutazione del sistema, è necessario scartare i risultati relativi alla fase transitoria, perché essi sono influenzati dalle condizioni iniziali della simulazione stessa. 38 Esistono diverse tecniche che permettono l’individuazione della durata del transitorio: alcune sono puramente empiriche, altre si basano su un approccio scientifico. L’APPROCCIO SCIENTIFICO si basa, invece, sulla stima della funzione di autocorrelazione del processo e si considera terminato il transitorio quando la correlazione è praticamente nulla. Dato un sistema composto da una sorgente SBBP in ingresso ad un multiplexer, partendo da condizioni iniziali nulle, lo stato della coda S (Q ) (n ) ∈ {0,1,2,..., K }=Lunghezza della Coda evolverà, ad esempio, seguendo un andamento di questo tipo: S (Q ) (n ) condizioni iniziali nulle n TRANSITORIO REGIME Fig. 7.5-10: evoluzione transitoria e a regime dello stato di una coda Quando la variabile lunghezza della coda sarà scorrelata dalle condizioni iniziali, il sistema è a regime ed i risultati ottenuti, con il processo simulativo stazionario, saranno veritieri. Ricordiamo che la funzione di autocorrelazione RQQ (m ) di una SBBP è una funzione discreta, definita per m ≥1, che per m = 0 coincide col valore quadratico medio [E{Q}] 2. [E{Q}] 2 RQQ(m) ε E2{Q} 0 1 2 3 4 5 m =6 m Fig. 7.5-11: Funzione di autocorrelazione RQQ(m) Si potrà considerare finito il transitorio quando la funzione di autocorrelazione coincide col valore medio al quadrato E2{Q}. Questa condizione si può matematicamente esprimere con la disuguaglianza: RQQ (m ) − E 2 {Q} < ε o con la disuguaglianza normalizzata: 39 RQQ (m ) − E 2 {Q} E 2 {Q} <ε scegliendo ε (fattore adimensionato) pari a 10-2, 10-3 (errore sulla seconda o terza cifra decimale). Nel grafico di Fig. 7.5-12 la disuguaglianza di fine transitorio avviene a distanza m =6 dall’origine: cioè dopo m slot temporali, il processo è indipendente dalle condizioni iniziali. Utilizzando il PROCESSO EMPIRICO, nel caso di un multiplexer caricato da una sola sorgente ON–OFF, si fanno evolvere in contemporanea due simulazioni, imponendo rispettivamente le condizioni iniziali opposte di buffer completamente pieno e sorgente ON buffer completamente vuoto e sorgente OFF e si attende che il numero di elementi in coda, nei due casi, tendano al valor medio; da questo momento si può considerare esaurito il transitorio. Infatti le variabili di stato del sistema cumulativo, multiplexer più sorgente ON–OFF in ingresso, sono: S (Q ) (n ) ∈ {0,1,2,..., K } Lunghezza della Coda S (n ) ∈ {OFF , ON } Stato della Sorgente Le due condizioni iniziali (da cui solitamente si fa evolvere la simulazione) sono come detto: S (Q ) (0 ) = 0 Condizione I S (0 ) = OFF S (Q ) (0 ) = K Condizione II S (0 ) = ON Partendo dalla condizione iniziale II, essendo la coda totalmente piena, la probabilità di perdita sarà maggiore della probabilità di perdita ottenuta partendo dalla condizione iniziale I. Quindi, il ritardo medio, cioè la lunghezza media della coda E{Q}, avrà nei due casi un andamento differente. Esattamente, (Fig. 7.5-12) facendo partire la simulazione dalle condizioni migliori (caso I), q1=E{Q1}, da 0 aumenterà tendendo al valor medio reale E{Q}. Viceversa facendo partire la simulazione dalle condizioni peggiori (caso II), l’andamento di q2=E{Q2} sarà decrescente tendendo al viceversa valor medio reale E{Q}. q2 q medio q1 t Fig. 7.5-12: andamento di q1=E{Q1} e q2=E{Q2} Affinché il transitorio termini, è necessario staccarsi da queste condizioni iniziali, cioè facendo evolvere il processo, si uscirà dal transitorio quando: 40 q1 − q2 q1 <t dove q1 =E{Q1} è il numero dei pacchetti in coda partendo dalla condizione iniziale di coda vuota, q2 =E{Q2} è numero dei pacchetti in coda partendo dalla condizione iniziale di coda piena e t è un valore da fissare che determina la fine del transitorio. Più piccolo è t, minore sarà l’errore che si compie nella Simulazione Stazionaria. In una simulazione tempo discreta, per dichiarare terminato il transitorio, si può utilizzare sia il metodo scientifico, sia il metodo empirico, mentre nel tempo continuo il calcolo della funzione di autocorrelazione è complicato a causa della presenza dell’integrale. Quindi si preferisce l’approccio empirico se il sistema da simulare è tempo contino. Sia se utilizziamo un approccio empirico che scientifico, si fa evolvere il simulatore, da certe condizioni iniziali, senza effettuare misure, e solo quando il transitorio sarà terminato, comincerà la simulazione a regime, a prescindere dal fatto che essa sia a eventi o ad intervalli costanti. Nel caso in cui, per vari motivi, la simulazione non riesce a staccarsi dalle condizioni iniziali, dopo un numero considerevole di slot temporali, posso decidere, ugualmente, di iniziare la simulazione a regime. Accuratezza dei Risultati. Il problema dell’accuratezza del risultato è un problema di statistica. Si deve, infatti, decidere quanto tempo deve durare la simulazione, visto che più lungo è il processo simulativo, più accurati saranno i risultati. Con una simulazione infinitamente lunga si otterrebbe il risultato reale. Inoltre, oltre alla durata della simulazione, l’attendibilità dei risultati di fine simulazione dipende da numerosi fattori: dati di ingresso, generatore di numeri pseudo-casuali, le condizioni iniziali, etc. Supponiamo di voler calcolare la probabilità di perdita di un sistema tempo-discreto. Sia l1 la probabilità di perdita Ploss ottenuta dopo una simulazione di 10.000 slot temporali: l1 = n° celle perse n° celle emesse Per verificare se il valore l1 trovato è accurato, lanciamo nuovamente la simulazione a regime (considerando sempre 10.000 slot): troveremo un altro valore di probabilità di perdita che indicheremo con l2. Iterando il procedimento N volte avremo, in definitiva, l’insieme dei valori di probabilità di perdita l1 , l 2 , ..., l N Per capire quanto grande deve essere questo numero N e quale degli N valori scegliere come risultato accurato, consideriamo la media l= l1 + l2 + ... + l N N Questa media è tanto più accurata, quanto più è alto il numero di volte che lancio la simulazione a regime: cioè aumentando il numero dei campioni, la media ottenuta si avvicina 41 sempre di più al valore esatto. Quindi con la simulazione, non si può dire con precisione qual’è la probabilità di perdita di un certo multiplexer, ma si può sicuramente affermare che la probabilità di perdita reale l (cioè quella ottenuta analiticamente) appartiene al seguente intervallo di confidenza: [ ] l∈ l −δ, l +δ ≡ ∆ E’ importante precisare che la scelta dei campioni va fatta in modo tale da essere statisticamente indipendenti tra loro, cioè devono essere uniformemente distribuiti su tutto lo spazio campione. Più piccolo è l’intervallo di confidenza, minore è la certezza che il valore l di probabilità di perdita reale stia all’interno dell’intervallo ∆. Infatti se desideriamo che l cada all’interno dell’interballo di confidenza con una probabilità del 99%, dobbiamo necessariamente considerare un grande ∆. Quindi il problema dell’accuratezza del risultato si risolve assegnando l’intervallo di confidenza con una certa probabilità P=95%÷99 %, all’interno del quale è possibile trovare il valore reale l. l P=95% P=99% Fig.7.5-13: Intervallo di confidenza Lanciare simulazioni più brevi porta allo svantaggio di doverne fare un numero maggiore per ottenere lo stesso intervallo di confidenza. In pratica, scelta la durata della simulazione e assegnato, come input, un certo intervallo δmax con una P=99%, si lanciano diverse simulazioni da cui si ottengono vari valori di l e δ; quando l’errore δ verifica la relazione che δ ≤ δ max dove δ = t p S N −1 con N = numero di campioni (in questo caso di regimi effettuati; occorre che N sia almeno pari a 2, in quanto non ha senso fare la media su un solo campione ); tp = valore percentuale scelto (ad esempio t99% corrisponde ad una probabilità P del 99%) che si ricava dalla tabella del t-students (tabella di Fig.7.5-14) al variare del numero di regimi effettuati; S = scarto quadratico medio, definito come ∑ (l N S= in cui i − lN i =1 ) 2 N li = probabilità di perdita all’i-esimo regime; 42 N lN = ∑l i =1 N i = media calcolata su N regimi; Fig. 7.5-14: VALORI DEI PERCENTILI (tp) PER LA DISTRIBUZIONE DELLA VARIABILE CASUALE t DI STUDENT CON ν GRADI DI LIBERTÀ ν 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 40 60 120 ∞ t0,995 63.66 9.92 5.84 4.60 4.03 3.71 3.50 3.36 3.25 3.17 3.11 3.06 3.01 2.98 2.95 2.92 2.90 2.88 2.86 2.84 2.83 2.82 2.81 2.80 2.79 2.78 2.77 2.76 2.76 2.75 2.70 2.66 2.62 2.58 t0,99 31.82 6.96 4.54 3.75 3.36 3.14 3.00 2.90 2.82 2.76 2.72 2.68 2.65 2.62 2.60 2.58 2.57 2.55 2.54 2.53 2.52 2.51 2.50 2.49 2.48 2.48 2.47 2.47 2.46 2.46 2.42 2.39 2.36 2.33 t0,975 12.71 4.30 3.18 2.78 2.57 2.45 2.36 2.31 2.26 2.23 2.20 2.18 2.16 2.14 2.13 2.12 2.11 2.10 2.09 2.09 2.08 2.07 2.07 2.06 2.06 2.06 2.05 2.05 2.04 2.04 2.02 2.00 1.98 1.96 t0,95 6.31 2.92 2.35 2.13 2.02 1.94 1.90 1.86 1.83 1.81 1.80 1.78 1.77 1.76 1.75 1.75 1.74 1.73 1.73 1.72 1.72 1.72 1.71 1.71 1.71 1.71 1.70 1.70 1.70 1.70 1.68 1.67 1.66 1.645 t0,90 3.08 1.89 1.64 1.53 1.48 1.44 1.42 1.40 1.38 1.37 1.36 1.36 1.35 1.34 1.34 1.34 1.33 1.33 1.33 1.32 1.32 1.32 1.32 1.32 1.32 1.32 1.31 1.31 1.31 1.31 1.30 1.30 1.29 1.28 t0,80 1.376 1.061 0.978 0.941 0.920 0.906 0.896 0.889 0.883 0.879 0.876 0.873 0.870 0.868 0.866 0.865 0.863 0.862 0.861 0.860 0.859 0.858 0.858 0.857 0.856 0.856 0.855 0.855 0.854 0.854 0.851 0.848 0.845 0.842 t0,75 1.000 0.816 0.765 0.741 0.727 0.718 0.711 0.706 0.703 0.700 0.697 0.695 0.694 0.692 0.691 0.690 0.689 0.688 0.688 0.687 0.686 0.686 0.685 0.685 0.684 0.684 0.684 0.683 0.683 0.683 0.681 0.679 0.677 0.674 t0,70 0.727 0.617 0.584 0.569 0.559 0.553 0.549 0.546 0.543 0.542 0.540 0.539 0.538 0.537 0.536 0.535 0.534 0.534 0.533 0.533 0.532 0.532 0.532 0.531 0.531 0.531 0.531 0.530 0.530 0.530 0.529 0.527 0.526 0.524 t0,60 0.325 0.289 0.277 0.271 0.267 0.265 0.263 0.262 0.261 0.260 0.260 0.259 0.259 0.258 0.258 0.258 0.257 0.257 0.257 0.257 0.257 0.256 0.256 0.256 0.256 0.256 0.256 0.256 0.256 0.256 0.255 0.254 0.254 0.253 t0,55 0.158 0.142 0.137 0.134 0.132 0.131 0.130 0.130 0.129 0.129 0.129 0.128 0.128 0.128 0.128 0.128 0.128 0.127 0.127 0.127 0.127 0.127 0.127 0.127 0.127 0.127 0.127 0.127 0.127 0.127 0.126 0.126 0.126 0.126 Fonte: R.A. Fisher e F. Yates, Statistical Table for Biological, Agricultural and Medical Research (quinta edizione), Tavola III, Oliver and Boyd Ltd., Edinburgh, per gentile concessione degli autori e dell’editore. 43 Si può notare come in questa tabella i valori di tp, per la distribuzione della variabile casuale t di Student, variano per un numero di unità ν (gradi di libertà) ∈[1,30[ per poi rimanere costante da 30 a 39, da 40 a 59, e così via. Questo significa che, dopo la 30-esima simulazione a regime, devo attendere fino al 40-esimo regime per poter verificare se l’intervallo di confidenza è quello richiesto. Nella realtà è consigliabile non andare oltre la 60-esima simulazione a regime. Se, infatti, si supera la 60-esima simulazione e δ non è ancora ≤ di δmax, allora le simulazioni fatte sono troppo brevi e quindi conviene ripartire con simulazioni più lunghe. In questo diagramma di flusso sono riassunti i passi da compiere che bisogna seguire in un processo simulativo: INIZIO INPUT INIZIALIZZAZIONE DELLE VARIABILI GLOBALI INIZIALIZZAZIONE DELLE VARIABILI DI CICLO TRANSITORIO REGIME CALCOLO DELLE GRANDEZZE DI INTERESSE INTERVALLO DI CONFIDENZA N=N+1 NO FINE SIMULAZIONE δ ≤ δmax SI OUTPUT RISULTATI END Fig. 7.5-15: Steps di una simulazione 44