ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Διαδικασίες Γεννήσεων - Θανάτων Εξισώσεις Ισορροπίας - Ουρές Μ/Μ/1, M/M/1/N Προσομοίωση Ουράς Μ/Μ/1/Ν Βασίλης Μάγκλαρης maglaris@netmode.ntua.gr 23/3/2016
Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς.
ΔΙΑΔΙΚΑΣΙΑ ΓΕΝΝΗΣΕΩΝ - ΘΑΝΑΤΩΝ (Επανάληψη: Birth-Death Process,1/2) Παραδοχές: Ανεξαρτησία γεννήσεων-θανάτων Εξέλιξη του πληθυσμού n(t) βασισμένη μόνο στο παρόν (Markov) Σύστημα Διαφορικών εξισώσεων Διαφορών Κατάσταση ισορροπίας (steady state) Την χρονική στιγμή t το σύστημα καταλήγει σε πληθυσμό n(t) = n Μπορεί να έχουν προηγηθεί οι ακόλουθες μεταβάσεις από την χρονική στιγμή t-δt, Δt 0: Μία άφιξη στο διάστημα Δt, με πιθανότητα λ n-1 Δt αν n>0 Μια αναχώρηση, με πιθανότητα μ n+1 Δt αν υπάρχει η n+1 (σε περίπτωση περιορισμού μέγιστου πληθυσμού K μπορούμε να θεωρήσουμε μ Κ+1 = 0) Τίποτα από τα δύο, με πιθανότητα 1 - (λ n +μ n )Δt αν n>0 ή 1 λ 0 Δt αν n=0 Η εξίσωση μετάβασης (Chapman - Kolmogorov) προκύπτει από τον τύπο συνολικής πιθανότητας: P n (t) = λ n-1 Δt P n-1 (t-δt) + μ n+1 Δt P n+1 (t-δt) + [1- (λ n +μ n )Δt] P n (t-δt) P 0 (t) = μ 1 Δt P 1 (t-δt) + (1- λ 0 Δt) P 0 (t-δt)
ΔΙΑΔΙΑΚΑΣΙΑ ΓΕΝΝΗΣΕΩΝ ΘΑΝΑΤΩΝ (Επανάληψη: Birth-Death Process, 2/2) Στο όριο, Δt dt και για n >1: ή [P n (t) - P n (t-dt)]/dt = λ n-1 P n-1 (t) + μ n+1 P n+1 (t) (λ n +μ n )P n (t) dp n (t)/dt = λ n-1 P n-1 (t) + μ n+1 P n+1 (t) (λ n +μ n )P n (t) Σε σταθερή κατάσταση t (αν υπάρχει) : dp n (t)/dt = 0, P n (t) P n > 0 : Εργοδικές Πιθανότητες που προκύπτουν από τις γραμμικά ανεξάρτητες Εξισώσεις Ισορροπίας (λ n +μ n )P n = λ n-1 P n-1 + μ n+1 P n+1, n>1 λ 0 P 0 = μ 1 P 1 P 0 + P 1 + + P n + = 1
ΕΞΙΣΩΣΕΙΣ ΙΣΟΡΡΟΠΙΑΣ (Balance Equations) Απείρως επισκέψιμες καταστάσεις n(t) - positive recurrent states: Με μη μηδενικές εργοδικές πιθανότητες P n (t) = P n > 0, n = 0,1, Ερμηνεία Εξισώσεων Ισορροπίας: #{μεταβάσεων προς την κατάσταση s} = #{μεταβάσεων εκτός της s} (σφαιρική ισορροπία global balance equations) #{μεταβάσεων s 1 s 2 } = #{μεταβάσεων s 2 s 1 } (τοπική ισορροπία local balance equations) Λόγω εργοδικότητας: σε μεγάλο χρονικό διάστημα παρατήρησης Τ, με Τ 1 και Τ 2 τους συνολικούς χρόνους παραμονής στις s 1, s 2 : (1) #{μεταβάσεων s 1 s 2 } = T 1 x r 1,2 (2) #{μεταβάσεων s 2 s 1 } = T 2 x r 2,1 Όπου r 1,2 και r 2,1 οι μέσοι ρυθμοί μετάβασης από 1 2 και 2 1 Λόγω ισορροπίας: (1) = (2), r 1,2 x {T 1 /Τ} = r 2,1 x {T 2 /Τ}, ή r 1,2 x P 1 = r 2,1 x P 2
ΟΥΡΑ Μ/Μ1/Ν Εξισώσεις Ισορροπίας Συστήματα Μ/Μ/1/Ν με ρυθμούς άφιξης και ρυθμούς εξυπηρέτησης εξαρτώμενους από τον αριθμό των πελατών στο σύστημα (από την παρούσα κατάσταση του συστήματος) (State Dependent M/M/1/Ν Queues) λ n μ n Local Balance Equation λ 0 P 0 = μ 1 P 1 λ i-1 P i-1 = μ i P i, i = 1, 2, N Global Balance Equation (λ i +μ i )P i = λ i-1 P i-1 + μ i+1 P i+1, i = 0, 1,, N Κανονικοποίηση Εργοδικών Πιθανοτήτων P 0 + + P Ν = 1
ΟΥΡΑ Μ/Μ/1 (Αφίξεις Poisson, Εκθετικές Εξυπηρετήσεις, Άπειρο Μέγεθος) Σταθεροί μέσοι ρυθμοί αφίξεων (γεννήσεων) λ n = λ, Poisson Σταθεροί μέσοι ρυθμοί εξυπηρέτησης (θανάτων) μ n = μ Εκθετικοί ανεξάρτητοι χρόνοι εξυπηρέτησης s, E(s) = 1/μ Εργοδικές πιθανότητες καταστάσεων P n = (1-ρ)ρ n, n = 0,1,2, όπου ρ = U = λ/μ < 1 Erlang για ευστάθεια, P 0 = (1-ρ) <1 Στάσιμος & Εργοδικός μέσος όρος πληθυσμού - κατάστασης n(t) E[n(t)] E(n) = ρ/(1-ρ) Νόμος του Little: E(T) = E(n)/γ = E(n)/λ (Εργοδικό σύστημα χωρίς απώλειες, λ = γ) E(T) = (1/μ) / (1-ρ)
ΟΥΡΑ Μ/Μ/1/N (Αφίξεις Poisson, Εκθετικές Εξυπηρετήσεις, Μέγεθος N) Σταθεροί μέσοι ρυθμοί αφίξεων (γεννήσεων) λ n = λ, Poisson, n = 1,2,, N Σταθεροί μέσοι ρυθμοί εξυπηρέτησης (θανάτων) μ n = μ, n = 1,2,, N Εκθετικοί ανεξάρτητοι χρόνοι εξυπηρέτησης s, E(s) = 1/μ Εργοδικές πιθανότητες καταστάσεων P n = ρ n P 0, n = 0,1,2,, N, P 0 + P 1 + P Ν-1 + P Ν = 1 όπου ρ = λ/μ Erlangs πάντα ευσταθές, P 0 = (1-ρ)/(1- ρ Ν+1), ρ 1 P 0 = 1/(N+1), ρ = 1 Στάσιμος & Εργοδικός μέσος όρος πληθυσμού - κατάστασης n(t) E[n(t)] E(n) (ΑΣΚΗΣΗ) Νόμος του Little: E(T) = E(n)/γ = E(n)/[λ(1- P N )], γ = λ(1- P N ) Πιθανότητα απώλειας P blocking = P N
ΠΡΟΣΟΜΟΙΩΣΗ ΟΥΡΑΣ Μ/Μ/1/10 P n = lim (T n /T) = lim { ([# αφίξεων στη n) / λ]) / ([συνολικού # αφίξεων / λ]) } = lim { [# αφίξεων στη n] / [συνολικού # αφίξεων] } RANDOM : Ομοιόμορφος τυχαίος αριθμός (0,1) ARRIVALS : Συνολικός αριθμός αφίξεων ARRIVAL[STATE] : Αριθμός αφίξεων στην κατάσταση STATE = 0, 1,,10 COUNT : Αριθμός μεταβάσεων STATE : Κατάσταση ουράς (πληθυσμός συστήματος Μ/Μ/1/10), STATE = 0, 1,, 10 P[STATE] : Εργοδική πιθανότητα κατάστασης STATE = 0, 1,, 10 AVERAGE: Μέσος πληθυσμός συστήματος Μ/Μ/1/10 INITIALIZE : COUNT = 0, STATE = 0, ARRIVALS = 0, ARRIVAL[0 10] = 0, P[0 10] =0 ARRIVAL : ARRIVALS = ARRIVALS + 1 ARRIVAL[STATE] = ARRIVAL[STATE] + 1 COUNT = COUNT +1 IF STATE = 10 : GO TO TO LOOP ELSE : STATE = STATE + 1 GO TO LOOP LOOP : IF STATE = 0 : GO TO ARRIVAL ELSE : IF RANDOM < λ / (λ+μ) : GO TO ARRIVAL ELSE : GO TO DEPARTURE DEPARTURE : COUNT = COUNT +1 ; STATE = STATE 1 IF COUNT < MAXIMUM : GO TO LOOP ELSE : P[STATE=1 10] = ARRIVAL[STATE= 1 10] / ARRIVALS AVERAGE = SUM { STATE ^ P[STATE] }, STATE = [1 10]
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα» του ΕΜΠ έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.