Markov Chains and Computer Science

Similar documents
Introduction to Machine Learning CMU-10701

Convex Optimization CMU-10725

8. Statistical Equilibrium and Classification of States: Discrete Time Markov Chains

Markov Chains CK eqns Classes Hitting times Rec./trans. Strong Markov Stat. distr. Reversibility * Markov Chains

Markov Chains and MCMC

STOCHASTIC PROCESSES Basic notions

Markov Chains, Stochastic Processes, and Matrix Decompositions

Markov Chains, Random Walks on Graphs, and the Laplacian

Stochastic process. X, a series of random variables indexed by t

Stochastic Processes

Stat 516, Homework 1

Markov Chain Model for ALOHA protocol

Markov Chains. X(t) is a Markov Process if, for arbitrary times t 1 < t 2 <... < t k < t k+1. If X(t) is discrete-valued. If X(t) is continuous-valued

Irreducibility. Irreducible. every state can be reached from every other state For any i,j, exist an m 0, such that. Absorbing state: p jj =1

Discrete time Markov chains. Discrete Time Markov Chains, Limiting. Limiting Distribution and Classification. Regular Transition Probability Matrices

Lect4: Exact Sampling Techniques and MCMC Convergence Analysis

Markov chain Monte Carlo

Reinforcement Learning

6 Markov Chain Monte Carlo (MCMC)

Lecture Notes 7 Random Processes. Markov Processes Markov Chains. Random Processes

Introduction to Machine Learning CMU-10701

Lecture 5. If we interpret the index n 0 as time, then a Markov chain simply requires that the future depends only on the present and not on the past.

Markov Chains on Countable State Space

Markov Chains and Stochastic Sampling

Stochastic optimization Markov Chain Monte Carlo

Lecture 7. µ(x)f(x). When µ is a probability measure, we say µ is a stationary distribution.


Markov Chains Handout for Stat 110

Outlines. Discrete Time Markov Chain (DTMC) Continuous Time Markov Chain (CTMC)

Convergence Rate of Markov Chains

The Theory behind PageRank

MATH 564/STAT 555 Applied Stochastic Processes Homework 2, September 18, 2015 Due September 30, 2015

Winter 2019 Math 106 Topics in Applied Mathematics. Lecture 9: Markov Chain Monte Carlo

Markov Chains. Arnoldo Frigessi Bernd Heidergott November 4, 2015

LIMITING PROBABILITY TRANSITION MATRIX OF A CONDENSED FIBONACCI TREE

LECTURE 15 Markov chain Monte Carlo

LECTURE 3. Last time:

An Introduction to Entropy and Subshifts of. Finite Type

Probability & Computing

MATH 56A: STOCHASTIC PROCESSES CHAPTER 1

Introduction to Search Engine Technology Introduction to Link Structure Analysis. Ronny Lempel Yahoo Labs, Haifa

Ergodic Theorems. Samy Tindel. Purdue University. Probability Theory 2 - MA 539. Taken from Probability: Theory and examples by R.

MAA704, Perron-Frobenius theory and Markov chains.

Example: physical systems. If the state space. Example: speech recognition. Context can be. Example: epidemics. Suppose each infected

Markov Chains (Part 3)

Chapter 7. Markov chain background. 7.1 Finite state space

Let (Ω, F) be a measureable space. A filtration in discrete time is a sequence of. F s F t

MARKOV PROCESSES. Valerio Di Valerio

Recap. Probability, stochastic processes, Markov chains. ELEC-C7210 Modeling and analysis of communication networks

Lecture 20: Reversible Processes and Queues

Markov Processes Hamid R. Rabiee

Stochastic Simulation

CS145: Probability & Computing Lecture 18: Discrete Markov Chains, Equilibrium Distributions

Lecture 12: Link Analysis for Web Retrieval

Homework set 3 - Solutions

ELEC633: Graphical Models

Numerical methods for lattice field theory

MARKOV CHAINS AND HIDDEN MARKOV MODELS

Lectures on Stochastic Stability. Sergey FOSS. Heriot-Watt University. Lecture 4. Coupling and Harris Processes

Note that in the example in Lecture 1, the state Home is recurrent (and even absorbing), but all other states are transient. f ii (n) f ii = n=1 < +

Treball final de grau GRAU DE MATEMÀTIQUES Facultat de Matemàtiques Universitat de Barcelona MARKOV CHAINS

Markov Chain Monte Carlo Inference. Siamak Ravanbakhsh Winter 2018

MARKOV CHAIN MONTE CARLO

P i [B k ] = lim. n=1 p(n) ii <. n=1. V i :=

Multi Stage Queuing Model in Level Dependent Quasi Birth Death Process

On Polynomial Cases of the Unichain Classification Problem for Markov Decision Processes

12 Markov chains The Markov property

ISE/OR 760 Applied Stochastic Modeling

CDA6530: Performance Models of Computers and Networks. Chapter 3: Review of Practical Stochastic Processes

Chapter 2: Markov Chains and Queues in Discrete Time

Course 495: Advanced Statistical Machine Learning/Pattern Recognition

Markov Chains. Sarah Filippi Department of Statistics TA: Luke Kelly

Population Games and Evolutionary Dynamics

Stochastic Processes. Theory for Applications. Robert G. Gallager CAMBRIDGE UNIVERSITY PRESS

Stochastic modelling of epidemic spread

Non-homogeneous random walks on a semi-infinite strip

CPSC 540: Machine Learning

Markov processes and queueing networks

1 Random walks: an introduction

1.2. Markov Chains. Before we define Markov process, we must define stochastic processes.

Math Homework 5 Solutions

Lecture 7. We can regard (p(i, j)) as defining a (maybe infinite) matrix P. Then a basic fact is

Convex Optimization of Graph Laplacian Eigenvalues

Social network analysis: social learning

TCOM 501: Networking Theory & Fundamentals. Lecture 6 February 19, 2003 Prof. Yannis A. Korilis

Language Acquisition and Parameters: Part II

CDA5530: Performance Models of Computers and Networks. Chapter 3: Review of Practical

DISCRETE STOCHASTIC PROCESSES Draft of 2nd Edition

Markov Chain Monte Carlo

The Transition Probability Function P ij (t)

INTRODUCTION TO MARKOV CHAINS AND MARKOV CHAIN MIXING

Monte Carlo Methods. Leon Gu CSD, CMU

Minicourse on: Markov Chain Monte Carlo: Simulation Techniques in Statistics

CPSC 540: Machine Learning

Zdzis law Brzeźniak and Tomasz Zastawniak

On asymptotic behavior of a finite Markov chain

MATH 56A: STOCHASTIC PROCESSES CHAPTER 2

Lecture 11: Introduction to Markov Chains. Copyright G. Caire (Sample Lectures) 321

STA 294: Stochastic Processes & Bayesian Nonparametrics

CONTENTS. Preface List of Symbols and Notation

Transcription:

A not so Short Introduction Jean-Marc Vincent Laboratoire LIG, projet Inria-Mescal UniversitéJoseph Fourier Jean-Marc.Vincent@imag.fr Spring 2015 1 / 44

Outline 1 Markov Chain History Approaches 2 Formalisation 3 Long run behavior 4 Cache modeling 5 Synthesis 2 / 44

History (Andreï Markov) An example of statistical investigation in the text of "Eugene Onegin" illustrating coupling of "tests" in chains. (1913) In Proceedings of Academic Scientific St. Petersburg, VI, pages 153-162. 1856-1922 3 / 44

Graphs and Paths c 1 b a d g 3 h i Random Walks Path in a graph: X n n-th visited node path : i 0, i 1,, i n normalized weight : arc (i, j) p i,j 2 e 4 5 f concatenation :. P(i 0, i 1,, i n) = p i0,i 1 p i1,i 2 p in 1,i n disjoint union : + P(i 0 i n) = i 1,,i n 1 p i0,i 1 p i1,i 2 p in 1,i n automaton : state/transitions randomized (language) 4 / 44

Dynamical Systems Evolution Operator Initial value : X 0 Recurrence equation : X n+1 = Φ(X n, ξ n+1 ) Innovation at step n + 1 : ξ n+1 Finite set of innovations : {φ 1, φ 2,, φ K } Random function (chosen with a given probability) Diaconis-Freedman 99 Randomized Iterated Systems 5 / 44

Measure Approach Distribution of K particles Ehrenfest s Urn (1907) Initial State X 0 = 0 State = nb of particles in 0 Dynamic : uniform choice of a particle and jump to the other side π n(i) = P(X n = i X 0 = 0) = π n 1 (i 1). K i + 1 K +π n 1 (i + 1). i + 1 K Paul Ehrenfest (1880-1933) π n = π n 1.P Iterated product of matrices 6 / 44

Algorithmic Interpretation int minimum (T,K) min= + cpt=0; for (k=0; k < K; k++) do if (T[k]< min) then min = T[k]; process(min); cpt++; end if end for return(cpt) Worst case K ; Best case 1; on average? Number of processing min State : X n = rank of the n th processing P(X n+1 = j X n = i, X n 1 = i k 1,, X 0 = i 0 ) = P(X n+1 = j X n = i) { 1 si j < i; i 1 P(X n+1 = j X n = i) = 0 sinon. All the information of for the step n + 1 is contained in the state at step n τ = min{n; X n = 1} Correlation of length 1 7 / 44

Outline 1 Markov Chain 2 Formalisation States and transitions Applications 3 Long run behavior 4 Cache modeling 5 Synthesis 8 / 44

Formal definition Let {X n} n N a random sequence of variables in a discrete state-space X {X n} n N is a Markov chain with initial law π(0) iff X 0 π(0) and for all n N and for all (j, i, i n 1,, i 0 ) X n+2 P(X n+1 = j X n = i, X n 1 = i n 1,, X 0 = i 0 ) = P(X n+1 = j X n = i). {X n} n N is a homogeneous Markov chain iff for all n N and for all (j, i) X 2 P(X n+1 = j X n = i) = P(X 1 = j X 0 = i) def = p i,j. (invariance during time of probability transition) 9 / 44

Formal definition Let {X n} n N a random sequence of variables in a discrete state-space X {X n} n N is a Markov chain with initial law π(0) iff X 0 π(0) and for all n N and for all (j, i, i n 1,, i 0 ) X n+2 P(X n+1 = j X n = i, X n 1 = i n 1,, X 0 = i 0 ) = P(X n+1 = j X n = i). {X n} n N is a homogeneous Markov chain iff for all n N and for all (j, i) X 2 P(X n+1 = j X n = i) = P(X 1 = j X 0 = i) def = p i,j. (invariance during time of probability transition) 9 / 44

Algebraic representation P = ((p i,j )) is the transition matrix of the chain P is a stochastic matrix p i,j 0; p i,j = 1. j Linear recurrence equation π n(i) = P(X n = i) π n = π n 1 P. Equation of Chapman-Kolmogorov (homogeneous): P n = ((p (n) i,j )) p (n) i,j = P(X n = j X 0 = i); P n+m = P n.p m ; P(X n+m = j X 0 = i) = k = k P(X n+m = j X m = k)p(x m = k X 0 = i); P(X n = j X 0 = k)p(x m = k X 0 = i). Interpretation: decomposition of the set of paths with length n + m from i to j. 10 / 44

Problems Finite horizon - Estimation of π(n) - Estimation of stopping times - τ A = inf{n 0; X n A} Infinite horizon - Convergence properties - Estimation of the asymptotics - Estimation speed of convergence - 11 / 44

Problems Finite horizon - Estimation of π(n) - Estimation of stopping times - τ A = inf{n 0; X n A} Infinite horizon - Convergence properties - Estimation of the asymptotics - Estimation speed of convergence - 11 / 44

Applications in computer science Applications in most of scientific domains... In computer science : Markov chain : an algorithmic tool - Numerical methods (Monte-Carlo methods) - Randomized algorithms (ex: TCP, searching, pagerank...) - Learning machines (hidden Markov chains) - Markov chains : a modeling tool - Performance evaluation (quantification and dimensionning) - Stochastic control - Program verification - 12 / 44

Applications in computer science Applications in most of scientific domains... In computer science : Markov chain : an algorithmic tool - Numerical methods (Monte-Carlo methods) - Randomized algorithms (ex: TCP, searching, pagerank...) - Learning machines (hidden Markov chains) - Markov chains : a modeling tool - Performance evaluation (quantification and dimensionning) - Stochastic control - Program verification - 12 / 44

Nicholas Metropolis (1915-1999) Metropolis contributed several original ideas to mathematics and physics. Perhaps the most widely known is the Monte Carlo method. Also, in 1953 Metropolis co-authored the first paper on a technique that was central to the method known now as simulated annealing. He also developed an algorithm (the Metropolis algorithm or Metropolis-Hastings algorithm) for generating samples from the Boltzmann distribution, later generalized by W.K. Hastings. Simulated annealing Convergence to a global minimum by a stochastic gradient scheme. X n+1 = X n gradφ(x n) n(random). n(random) n 0. 13 / 44

Nicholas Metropolis (1915-1999) Simulated annealing Convergence to a global minimum by a stochastic gradient scheme. X n+1 = X n gradφ(x n) n(random). Metropolis contributed several original ideas to mathematics and physics. Perhaps the most widely known is the Monte Carlo method. Also, in 1953 Metropolis co-authored the first paper on a technique that was central to the method known now as simulated annealing. He also developed an algorithm (the Metropolis algorithm or Metropolis-Hastings algorithm) for generating samples from the Boltzmann distribution, later generalized by W.K. Hastings. n(random) n 0. 13 / 44

Nicholas Metropolis (1915-1999) Simulated annealing Convergence to a global minimum by a stochastic gradient scheme. X n+1 = X n gradφ(x n) n(random). Metropolis contributed several original ideas to mathematics and physics. Perhaps the most widely known is the Monte Carlo method. Also, in 1953 Metropolis co-authored the first paper on a technique that was central to the method known now as simulated annealing. He also developed an algorithm (the Metropolis algorithm or Metropolis-Hastings algorithm) for generating samples from the Boltzmann distribution, later generalized by W.K. Hastings. n(random) n 0. 13 / 44

Nicholas Metropolis (1915-1999) Simulated annealing Convergence to a global minimum by a stochastic gradient scheme. X n+1 = X n gradφ(x n) n(random). Metropolis contributed several original ideas to mathematics and physics. Perhaps the most widely known is the Monte Carlo method. Also, in 1953 Metropolis co-authored the first paper on a technique that was central to the method known now as simulated annealing. He also developed an algorithm (the Metropolis algorithm or Metropolis-Hastings algorithm) for generating samples from the Boltzmann distribution, later generalized by W.K. Hastings. n(random) n 0. 13 / 44

Nicholas Metropolis (1915-1999) Simulated annealing Convergence to a global minimum by a stochastic gradient scheme. X n+1 = X n gradφ(x n) n(random). Metropolis contributed several original ideas to mathematics and physics. Perhaps the most widely known is the Monte Carlo method. Also, in 1953 Metropolis co-authored the first paper on a technique that was central to the method known now as simulated annealing. He also developed an algorithm (the Metropolis algorithm or Metropolis-Hastings algorithm) for generating samples from the Boltzmann distribution, later generalized by W.K. Hastings. n(random) n 0. 13 / 44

Nicholas Metropolis (1915-1999) Simulated annealing Convergence to a global minimum by a stochastic gradient scheme. X n+1 = X n gradφ(x n) n(random). Metropolis contributed several original ideas to mathematics and physics. Perhaps the most widely known is the Monte Carlo method. Also, in 1953 Metropolis co-authored the first paper on a technique that was central to the method known now as simulated annealing. He also developed an algorithm (the Metropolis algorithm or Metropolis-Hastings algorithm) for generating samples from the Boltzmann distribution, later generalized by W.K. Hastings. n(random) n 0. 13 / 44

Nicholas Metropolis (1915-1999) Simulated annealing Convergence to a global minimum by a stochastic gradient scheme. X n+1 = X n gradφ(x n) n(random). Metropolis contributed several original ideas to mathematics and physics. Perhaps the most widely known is the Monte Carlo method. Also, in 1953 Metropolis co-authored the first paper on a technique that was central to the method known now as simulated annealing. He also developed an algorithm (the Metropolis algorithm or Metropolis-Hastings algorithm) for generating samples from the Boltzmann distribution, later generalized by W.K. Hastings. n(random) n 0. 13 / 44

Nicholas Metropolis (1915-1999) Simulated annealing Convergence to a global minimum by a stochastic gradient scheme. X n+1 = X n gradφ(x n) n(random). Metropolis contributed several original ideas to mathematics and physics. Perhaps the most widely known is the Monte Carlo method. Also, in 1953 Metropolis co-authored the first paper on a technique that was central to the method known now as simulated annealing. He also developed an algorithm (the Metropolis algorithm or Metropolis-Hastings algorithm) for generating samples from the Boltzmann distribution, later generalized by W.K. Hastings. n(random) n 0. 13 / 44

Nicholas Metropolis (1915-1999) Simulated annealing Convergence to a global minimum by a stochastic gradient scheme. X n+1 = X n gradφ(x n) n(random). Metropolis contributed several original ideas to mathematics and physics. Perhaps the most widely known is the Monte Carlo method. Also, in 1953 Metropolis co-authored the first paper on a technique that was central to the method known now as simulated annealing. He also developed an algorithm (the Metropolis algorithm or Metropolis-Hastings algorithm) for generating samples from the Boltzmann distribution, later generalized by W.K. Hastings. n(random) n 0. 13 / 44

Nicholas Metropolis (1915-1999) Simulated annealing Convergence to a global minimum by a stochastic gradient scheme. X n+1 = X n gradφ(x n) n(random). Metropolis contributed several original ideas to mathematics and physics. Perhaps the most widely known is the Monte Carlo method. Also, in 1953 Metropolis co-authored the first paper on a technique that was central to the method known now as simulated annealing. He also developed an algorithm (the Metropolis algorithm or Metropolis-Hastings algorithm) for generating samples from the Boltzmann distribution, later generalized by W.K. Hastings. n(random) n 0. 13 / 44

Nicholas Metropolis (1915-1999) Simulated annealing Convergence to a global minimum by a stochastic gradient scheme. X n+1 = X n gradφ(x n) n(random). Metropolis contributed several original ideas to mathematics and physics. Perhaps the most widely known is the Monte Carlo method. Also, in 1953 Metropolis co-authored the first paper on a technique that was central to the method known now as simulated annealing. He also developed an algorithm (the Metropolis algorithm or Metropolis-Hastings algorithm) for generating samples from the Boltzmann distribution, later generalized by W.K. Hastings. n(random) n 0. 13 / 44

Modeling and Analysis of Computer Systems Complex system Basic model assumptions System : - automaton (discrete state space) - discrete or continuous time Environment : non deterministic - time homogeneous - stochastically regular System Problem Understand typical states - steady-state estimation - ergodic simulation - state space exploring techniques 14 / 44

Modeling and Analysis of Computer Systems Complex system Input of the system Basic model assumptions System : - automaton (discrete state space) - discrete or continuous time Environment : non deterministic - time homogeneous - stochastically regular System Environment System output Problem Understand typical states - steady-state estimation - ergodic simulation - state space exploring techniques 14 / 44

Modeling and Analysis of Computer Systems Complex system Input of the system Basic model assumptions System : - automaton (discrete state space) - discrete or continuous time Environment : non deterministic - time homogeneous - stochastically regular System Environment System output Problem Understand typical states - steady-state estimation - ergodic simulation - state space exploring techniques 14 / 44

Modeling and Analysis of Computer Systems Complex system Input of the system Basic model assumptions System : - automaton (discrete state space) - discrete or continuous time Environment : non deterministic - time homogeneous - stochastically regular System Environment System output Problem Understand typical states - steady-state estimation - ergodic simulation - state space exploring techniques 14 / 44

Outline 1 Markov Chain 2 Formalisation 3 Long run behavior Convergence Solving Simulation 4 Cache modeling 5 Synthesis 15 / 44

States classification Graph analysis Irreducible class Strongly connected components i and j are in the same component if there exist a path from i to j and a path from j to i with a positive probability Leaves of the tree of strongly connected components are irreducible classes States in irreducible classes are called recurrent Other states are called transient Periodicity An irreducible class is aperiodic if the gcd of length of all cycles is 1 A Markov chain is irreducible if there is only one class. Each state is reachable from any other state with a positive probability path. 16 / 44

States classification Graph analysis Irreducible class Strongly connected components i and j are in the same component if there exist a path from i to j and a path from j to i with a positive probability Leaves of the tree of strongly connected components are irreducible classes States in irreducible classes are called recurrent Other states are called transient Periodicity An irreducible class is aperiodic if the gcd of length of all cycles is 1 A Markov chain is irreducible if there is only one class. Each state is reachable from any other state with a positive probability path. 16 / 44

States classification Graph analysis Transient classes Absorbing state Irreducible class Strongly connected components i and j are in the same component if there exist a path from i to j and a path from j to i with a positive probability Leaves of the tree of strongly connected components are irreducible classes States in irreducible classes are called recurrent Other states are called transient Irreducible class Periodic class Irreducible class Periodicity An irreducible class is aperiodic if the gcd of length of all cycles is 1 A Markov chain is irreducible if there is only one class. Each state is reachable from any other state with a positive probability path. 16 / 44

States classification : matrix form 1 2 3 4 5 6 7 8 9 10 11 12 Transient classes 4 6 7 Irreducible class Periodic class 2 5 1 3 Absorbing state 12 8 9 10 11 Irreducible class 1 2 3 4 5 6 7 8 9 10 11 12 * * * * * * * * * * * * * * * * * * * * 1 17 / 44

Automaton Flip-flop ON-OFF system Two states model : - communication line - processor activity -... 1-p p 1 2 1-q Trajectory X n state of the automaton at time n. Transient distribution π n(1) = P(X n = 1); π n(2) = P(X n = 2) q Parameters : - proportion of transitions : p, q - mean sojourn time in state 1 : 1 p - mean sojourn time in state 2 : 1 q Problem Estimation of π n : state prevision, resource utilization 18 / 44

Automaton Flip-flop ON-OFF system Two states model : - communication line - processor activity -... 1-p p 1 2 1-q Trajectory X n state of the automaton at time n. Transient distribution π n(1) = P(X n = 1); π n(2) = P(X n = 2) q Parameters : - proportion of transitions : p, q - mean sojourn time in state 1 : 1 p - mean sojourn time in state 2 : 1 q Problem Estimation of π n : state prevision, resource utilization 18 / 44

Automaton Flip-flop ON-OFF system Two states model : - communication line - processor activity -... Trajectory X n state of the automaton at time n. 2 X 1-p p 1-q 1 1 2 Parameters : - proportion of transitions : p, q - mean sojourn time in state 1 : 1 p - mean sojourn time in state 2 : 1 q q 0 1 2 3 4 5 6... n Transient distribution π n(1) = P(X n = 1); π n(2) = P(X n = 2) Problem Estimation of π n : state prevision, resource utilization 18 / 44

Automaton Flip-flop ON-OFF system Two states model : - communication line - processor activity -... Trajectory X n state of the automaton at time n. 2 X 1-p p 1-q 1 1 2 Parameters : - proportion of transitions : p, q - mean sojourn time in state 1 : 1 p - mean sojourn time in state 2 : 1 q q 0 1 2 3 4 5 6... n Transient distribution π n(1) = P(X n = 1); π n(2) = P(X n = 2) Problem Estimation of π n : state prevision, resource utilization 18 / 44

Mathematical model Transition probabilities [ ] 1 p p P = q 1 q P(X n+1 = 1 X n = 1) = 1 p; P(X n+1 = 2 X n = 1) = p; P(X n+1 = 1 X n = 2) = q; P(X n+1 = 2 X n = 2) = 1 q. { πn+1 (1) = π n(1)(1 p) + π n(2)q; π n+1 (2) = π n(1)p + π n(2)(1 q); π n+1 = π n P Linear iterations Spectrum of P (eigenvalues) Sp = {1, 1 p q} System resolution 1 p q < 1 Non pathologic case πn(1) = q ( p+q + π 0 (1) q ) (1 p q) p+q n ; πn(2) = p ( p+q + π 0 (2) p ) (1 p q) p+q n ; 1 p q = 1 p = q = 0 Reducible behavior 1 p q = 1 p = q = 1 Periodic behavior 19 / 44

Mathematical model Transition probabilities [ ] 1 p p P = q 1 q P(X n+1 = 1 X n = 1) = 1 p; P(X n+1 = 2 X n = 1) = p; P(X n+1 = 1 X n = 2) = q; P(X n+1 = 2 X n = 2) = 1 q. { πn+1 (1) = π n(1)(1 p) + π n(2)q; π n+1 (2) = π n(1)p + π n(2)(1 q); π n+1 = π n P Linear iterations Spectrum of P (eigenvalues) Sp = {1, 1 p q} System resolution 1 p q < 1 Non pathologic case πn(1) = q ( p+q + π 0 (1) q ) (1 p q) p+q n ; πn(2) = p ( p+q + π 0 (2) p ) (1 p q) p+q n ; 1 p q = 1 p = q = 0 Reducible behavior 1 p q = 1 p = q = 1 Periodic behavior 19 / 44

Mathematical model Transition probabilities [ ] 1 p p P = q 1 q P(X n+1 = 1 X n = 1) = 1 p; P(X n+1 = 2 X n = 1) = p; P(X n+1 = 1 X n = 2) = q; P(X n+1 = 2 X n = 2) = 1 q. { πn+1 (1) = π n(1)(1 p) + π n(2)q; π n+1 (2) = π n(1)p + π n(2)(1 q); π n+1 = π n P Linear iterations Spectrum of P (eigenvalues) Sp = {1, 1 p q} System resolution 1 p q < 1 Non pathologic case πn(1) = q ( p+q + π 0 (1) q ) (1 p q) p+q n ; πn(2) = p ( p+q + π 0 (2) p ) (1 p q) p+q n ; 1 p q = 1 p = q = 0 Reducible behavior 1 p q = 1 p = q = 1 Periodic behavior 19 / 44

Mathematical model Transition probabilities [ ] 1 p p P = q 1 q P(X n+1 = 1 X n = 1) = 1 p; P(X n+1 = 2 X n = 1) = p; P(X n+1 = 1 X n = 2) = q; P(X n+1 = 2 X n = 2) = 1 q. { πn+1 (1) = π n(1)(1 p) + π n(2)q; π n+1 (2) = π n(1)p + π n(2)(1 q); π n+1 = π n P Linear iterations Spectrum of P (eigenvalues) Sp = {1, 1 p q} System resolution 1 p q < 1 Non pathologic case πn(1) = q ( p+q + π 0 (1) q ) (1 p q) p+q n ; πn(2) = p ( p+q + π 0 (2) p ) (1 p q) p+q n ; 1 p q = 1 p = q = 0 Reducible behavior 1 1 2 1 p q = 1 p = q = 1 Periodic behavior 1 19 / 44

Mathematical model Transition probabilities [ ] 1 p p P = q 1 q P(X n+1 = 1 X n = 1) = 1 p; P(X n+1 = 2 X n = 1) = p; P(X n+1 = 1 X n = 2) = q; P(X n+1 = 2 X n = 2) = 1 q. { πn+1 (1) = π n(1)(1 p) + π n(2)q; π n+1 (2) = π n(1)p + π n(2)(1 q); π n+1 = π n P Linear iterations Spectrum of P (eigenvalues) Sp = {1, 1 p q} System resolution 1 p q < 1 Non pathologic case πn(1) = q ( p+q + π 0 (1) q ) (1 p q) p+q n ; πn(2) = p ( p+q + π 0 (2) p ) (1 p q) p+q n ; 1 p q = 1 p = q = 0 Reducible behavior 1 1 2 1 p q = 1 p = q = 1 Periodic behavior 1 1 2 1 1 19 / 44

Recurrent behavior Numerical example p = 1, q = 1 4 3 1 0.8 0.6 0.4 0.2 Steady state behavior { π (1) = q π (2) = ; p+q p. p+q π unique probability vector solution π = π P. If π 0 = π then π n = π for all n stationary behavior 0 0 2 4 6 8 Rapid convergence (exponential rate) 10 20 / 44

Recurrent behavior Numerical example p = 1, q = 1 4 3 1 0.8 0.6 0.4 0.2 Steady state behavior { π (1) = q π (2) = ; p+q p. p+q π unique probability vector solution π = π P. If π 0 = π then π n = π for all n stationary behavior 0 0 2 4 6 8 Rapid convergence (exponential rate) 10 20 / 44

Convergence In Law Let {X n} n N a homogeneous, irreducible and aperiodic Markov chain taking values in a discrete state X then Denote The following limits exist (and do not depend on i) lim n + P(Xn = j X 0 = i) = π j ; π is the unique probability vector invariant by P πp = π; The convergence is rapid (geometric); there is C > 0 and 0 < α < 1 such that X n P(X n = j X 0 = i) π j C.α n. L X ; with X with law π π is the steady-state probability associated to the chain 21 / 44

Equilibrium equation Interpretation i1 p i1,j p j,k1 k1 p j,j i2 p i2,j p j,k2 j k2 i3 p i3,j p j,k3 p i4,j k3 i4 Probability to enter j =probability to exit j balance equation π i p i,j = π j p j,k = π j p j,k = π j (1 p j,j ) i j k j k j π def = steady-state. If π 0 = π the process is stationary (π n = π) 22 / 44

Equilibrium equation Interpretation i1 p i1,j p j,k1 k1 p j,j i2 p i2,j p j,k2 j k2 i3 p i3,j p j,k3 p i4,j k3 i4 Probability to enter j =probability to exit j balance equation π i p i,j = π j p j,k = π j p j,k = π j (1 p j,j ) i j k j k j π def = steady-state. If π 0 = π the process is stationary (π n = π) 22 / 44

Equilibrium equation Interpretation i1 p i1,j p j,k1 k1 p j,j i2 p i2,j p j,k2 j k2 i3 p i3,j p j,k3 p i4,j k3 i4 Probability to enter j =probability to exit j balance equation π i p i,j = π j p j,k = π j p j,k = π j (1 p j,j ) i j k j k j π def = steady-state. If π 0 = π the process is stationary (π n = π) 22 / 44

Proof 1 : Finite state space algebraic approach Positive matrix P > 0 contraction max i p (n) i,j min i p (n) i,j Perron-Froebenius P > 0 P is positive and stochastic then the spectral radius ρ = 1 is an eigenvalue with multiplicity 1, the corresponding eigenvector is positive and the other eigenvalues have module < 1. Case P 0 Aperiodique and irreducible there is k such that P k > 0 and apply the above result. 23 / 44

Proof 1 : details P > 0 Soit x et y = Px, ω = min i,j p i,j x = max x i, x = min x i. i i y i = j p i,j x j Property of centroid : (1 ω)x + ωx y i (1 ω)x + ωx 0 y y (1 2ω)(x x) P n x s(x)(1, 1,, 1) t Then P n converges to a matrix where all lines are identical. 24 / 44

Proof 2 : Return time τ + i = inf{n 1; X n = i X 0 = i}. then 1 is an invariant probability (Kac s lemma) Eτ + i Proof : 1 Eτ + i < 2 Study on a regeneration interval (Strong Markov property) 3 Uniqueness by harmonic functions 1914-1984 25 / 44

Proof 3 : Coupling Let {X n} n N a homogeneous aperiodic and irreducible Markov chain with initial { law } π(0) and steady-state probability π. Let Xn another Markov chain π(0) with the same transition matrix as {X n} {X n} et n N { Xn } independent - Z n = (X n, X n) is a homogeneous Markov chain - if {X n} is aperiodic and irreducible, so it is for Z n Let τ be the hitting time of the diagonal, τ < P-a.s. then P(X n = i) P( X n = i) < 2P(τ > n) P(X n = i) π(i) < 2P(τ > n) 0. 26 / 44

Ergodic Theorem Let {X n} n N a homogeneous aperiodic and irreducible Markov chain on X with steady-state probability π then - for all function f satisfying E π f < + 1 N N n=1 f (X n) P p.s. E πf. generalization of the strong law of large numbers - If E πf = 0 then there exist σ such that 1 σ N N L f (X n) N (0, 1). n=1 generalization of the central limit theorem 27 / 44

Fundamental question Given a function f (cost, reward, performance,...) estimate E π f and give the quality of this estimation. 28 / 44

Solving methods Solving π = πp Analytical/approximation methods Formal methods N 50 Maple, Sage,... Direct numerical methods N 1000 Mathematica, Scilab,... Iterative methods with preconditioning N 100, 000 Marca,... Adapted methods (structured Markov chains) N 1, 000, 000 PEPS,... Monte-Carlo simulation N 10 7 Postprocessing of the stationary distribution Computation of rewards (expected stationary functions) Utilization, response time,... 29 / 44

Ergodic Sampling(1) Ergodic sampling algorithm Representation : transition fonction X n+1 = Φ(X n, e n+1 ). x x 0 {choice of the initial state at time =0} n = 0; repeat n n + 1; e Random_event(); x Φ(x, e); Store x {computation of the next state X n+1 } until some empirical criteria return the trajectory Problem : Stopping criteria 30 / 44

Ergodic Sampling(2) Start-up Convergence to stationary behavior lim P(Xn = x) = πx. n + Warm-up period : Avoid initial state dependence Estimation error : P(X n = x) π x Cλ n 2. λ 2 second greatest eigenvalue of the transition matrix - bounds on C and λ 2 (spectral gap) - cut-off phenomena λ 2 and C non reachable in practice (complexity equivalent to the computation of π) some known results (Birth and Death processes) 31 / 44

Ergodic Sampling(3) Estimation quality Ergodic theorem : 1 lim n + n n f (X i ) = E πf. i=1 Length of the sampling : Error control (CLT theorem) Complexity Complexity of the transition function evaluation (computation of Φ(x,.)) Related to the stabilization period + Estimation time 32 / 44

Ergodic sampling(4) Typical trajectory States 0 time Warm up period Estimation period 33 / 44

Replication Method Typical trajectory States 0 time replication periods Sample of independent states Drawback : length of the replication period (dependence from initial state) 34 / 44

Regeneration Method Typical trajectory States start up period R1 R2 R3... 0 regeneration period time Sample of independent trajectories Drawback : length of the regeneration period (choice of the regenerative state) 35 / 44

Outline 1 Markov Chain 2 Formalisation 3 Long run behavior 4 Cache modeling 5 Synthesis 36 / 44

Cache modelling Virtual memory Paging in OS Carte CPU CPU DISQUE DE PAGINATION Move-to-front strategy Least recently used (LRU) Virtual memory Memory Disque Adress 1 2 3 4 5 6 7 8 State Pages P 3 P 7 P 2 P 6 P 5 P 1 P 8 P 4 E Pages P 5 P 3 P 7 P 2 P 6 P 1 P 8 P 4 E 1 MMU MEMOIRE BUS - cache hierarchy (processor) - data caches (databases) - proxy-web (internet) - routing tables (networking) -... State of the system : Page position CONTROLEUR DISQUE Huge number of pages, small memory capacity Move-ahead strategy Ranking algorithm Virtual memory Memory Disk Adress 1 2 3 4 5 6 7 8 State Pages P 3 P 7 P 2 P 6 P 5 P 1 P 8 P 4 E Pages P 3 P 7 P 2 P 5 P 6 P 1 P 8 P 4 E 2 Problem Performance : mean response time (memory access << disk access) Choose the strategy that achieves the best long-term performance 37 / 44

Cache modelling Virtual memory Paging in OS Carte CPU CPU DISQUE DE PAGINATION Move-to-front strategy Least recently used (LRU) Virtual memory Memory Disque Adress 1 2 3 4 5 6 7 8 State Pages P 3 P 7 P 2 P 6 P 5 P 1 P 8 P 4 E Pages P 5 P 3 P 7 P 2 P 6 P 1 P 8 P 4 E 1 MMU MEMOIRE BUS - cache hierarchy (processor) - data caches (databases) - proxy-web (internet) - routing tables (networking) -... State of the system : Page position CONTROLEUR DISQUE Huge number of pages, small memory capacity Move-ahead strategy Ranking algorithm Virtual memory Memory Disk Adress 1 2 3 4 5 6 7 8 State Pages P 3 P 7 P 2 P 6 P 5 P 1 P 8 P 4 E Pages P 3 P 7 P 2 P 5 P 6 P 1 P 8 P 4 E 2 Problem Performance : mean response time (memory access << disk access) Choose the strategy that achieves the best long-term performance 37 / 44

Cache modelling Virtual memory Paging in OS Carte CPU CPU DISQUE DE PAGINATION Move-to-front strategy Least recently used (LRU) Virtual memory Memory Disque Adress 1 2 3 4 5 6 7 8 State Pages P 3 P 7 P 2 P 6 P 5 P 1 P 8 P 4 E Pages P 5 P 3 P 7 P 2 P 6 P 1 P 8 P 4 E 1 MMU MEMOIRE BUS - cache hierarchy (processor) - data caches (databases) - proxy-web (internet) - routing tables (networking) -... State of the system : Page position CONTROLEUR DISQUE Huge number of pages, small memory capacity Move-ahead strategy Ranking algorithm Virtual memory Memory Disk Adress 1 2 3 4 5 6 7 8 State Pages P 3 P 7 P 2 P 6 P 5 P 1 P 8 P 4 E Pages P 3 P 7 P 2 P 5 P 6 P 1 P 8 P 4 E 2 Problem Performance : mean response time (memory access << disk access) Choose the strategy that achieves the best long-term performance 37 / 44

Cache modelling Virtual memory Paging in OS Carte CPU CPU DISQUE DE PAGINATION Move-to-front strategy Least recently used (LRU) Virtual memory Memory Disque Adress 1 2 3 4 5 6 7 8 State Pages P 3 P 7 P 2 P 6 P 5 P 1 P 8 P 4 E Pages P 5 P 3 P 7 P 2 P 6 P 1 P 8 P 4 E 1 MMU MEMOIRE BUS - cache hierarchy (processor) - data caches (databases) - proxy-web (internet) - routing tables (networking) -... State of the system : Page position CONTROLEUR DISQUE Huge number of pages, small memory capacity Move-ahead strategy Ranking algorithm Virtual memory Memory Disk Adress 1 2 3 4 5 6 7 8 State Pages P 3 P 7 P 2 P 6 P 5 P 1 P 8 P 4 E Pages P 3 P 7 P 2 P 5 P 6 P 1 P 8 P 4 E 2 Problem Performance : mean response time (memory access << disk access) Choose the strategy that achieves the best long-term performance 37 / 44

Modelling State of the system N = number of pages State = permutation of {1,, N} Size of the state space = N! = numerically untractable Example : Linux system - Size of page = 4kb - Memory size = 1Gb - Swap disk size = 1Gb Size of the state space = 500000! exercise : compute the order of magnitude Flow modelling Requests are random Request have the same probability distributions Requests are stochastically independent {R n} n N random sequence of i.i.d. requests State space reduction P A = More frequent page All other pages have the same frequency. a = P(R n = P A ), b = P(R n = P i ), a > b, a + (N 1)b = 1. {X n} n N position of page P A at time n. State space = {1,, N} (size reduction) Markov chain (state dependent policy) 38 / 44

Modelling State of the system N = number of pages State = permutation of {1,, N} Size of the state space = N! = numerically untractable Example : Linux system - Size of page = 4kb - Memory size = 1Gb - Swap disk size = 1Gb Size of the state space = 500000! exercise : compute the order of magnitude Flow modelling Requests are random Request have the same probability distributions Requests are stochastically independent {R n} n N random sequence of i.i.d. requests State space reduction P A = More frequent page All other pages have the same frequency. a = P(R n = P A ), b = P(R n = P i ), a > b, a + (N 1)b = 1. {X n} n N position of page P A at time n. State space = {1,, N} (size reduction) Markov chain (state dependent policy) 38 / 44

Modelling State of the system N = number of pages State = permutation of {1,, N} Size of the state space = N! = numerically untractable Example : Linux system - Size of page = 4kb - Memory size = 1Gb - Swap disk size = 1Gb Size of the state space = 500000! exercise : compute the order of magnitude Flow modelling Requests are random Request have the same probability distributions Requests are stochastically independent {R n} n N random sequence of i.i.d. requests State space reduction P A = More frequent page All other pages have the same frequency. a = P(R n = P A ), b = P(R n = P i ), a > b, a + (N 1)b = 1. {X n} n N position of page P A at time n. State space = {1,, N} (size reduction) Markov chain (state dependent policy) 38 / 44

Modelling State of the system N = number of pages State = permutation of {1,, N} Size of the state space = N! = numerically untractable Example : Linux system - Size of page = 4kb - Memory size = 1Gb - Swap disk size = 1Gb Size of the state space = 500000! exercise : compute the order of magnitude Flow modelling Requests are random Request have the same probability distributions Requests are stochastically independent {R n} n N random sequence of i.i.d. requests State space reduction P A = More frequent page All other pages have the same frequency. a = P(R n = P A ), b = P(R n = P i ), a > b, a + (N 1)b = 1. {X n} n N position of page P A at time n. State space = {1,, N} (size reduction) Markov chain (state dependent policy) 38 / 44

Move to front analysis Markov chain graph a b 2b (N 2)b (N 1)b 1 (N 1)b (N 2)b (N 3)b 2b b 2 3 N 1 N a a a a Transition matrix a (N 1)b 0 0..... a b (N 2)b....... 0 2b (N 3)b............ 0..... (N 2)b b a 0 0 (N 1)b. Example N = 8, a = 0.3 and b = 0.1 π = 0.30 0.23 0.18 0.12 0.08 0.05 0.03 0.01. 39 / 44

Move to front analysis Markov chain graph a b 2b (N 2)b (N 1)b 1 (N 1)b (N 2)b (N 3)b 2b b 2 3 N 1 N a a a a Transition matrix a (N 1)b 0 0..... a b (N 2)b....... 0 2b (N 3)b............ 0..... (N 2)b b a 0 0 (N 1)b. Example N = 8, a = 0.3 and b = 0.1 π = 0.30 0.23 0.18 0.12 0.08 0.05 0.03 0.01. 39 / 44

Move to front analysis Markov chain graph a b 2b (N 2)b (N 1)b 1 (N 1)b (N 2)b (N 3)b 2b b 2 3 N 1 N a a a a Transition matrix a (N 1)b 0 0..... a b (N 2)b....... 0 2b (N 3)b............ 0..... (N 2)b b a 0 0 (N 1)b. Example N = 8, a = 0.3 and b = 0.1 π = 0.30 0.23 0.18 0.12 0.08 0.05 0.03 0.01. 39 / 44

Move ahead analysis Markov chain graph (N 2)b+a (N 2)b (N 2)b (N 2)b (N 1)b 1 b a b b b b 2 3 N 1 N a a a a Transition matrix a + (N 2)b b 0 0..... a (N 2)b b...... 0 a (N 2)b b.............. 0........ (N 2)b b 0 0 0 a (N 1)b. Example N = 8, a = 0.3 and b = 0.1 π = 0.67 0.22 0.07 0.02 0.01 0.01 0.00 0.00. 40 / 44

Move ahead analysis Markov chain graph (N 2)b+a (N 2)b (N 2)b (N 2)b (N 1)b 1 b a b b b b 2 3 N 1 N a a a a Transition matrix a + (N 2)b b 0 0..... a (N 2)b b...... 0 a (N 2)b b.............. 0........ (N 2)b b 0 0 0 a (N 1)b. Example N = 8, a = 0.3 and b = 0.1 π = 0.67 0.22 0.07 0.02 0.01 0.01 0.00 0.00. 40 / 44

Move ahead analysis Markov chain graph (N 2)b+a (N 2)b (N 2)b (N 2)b (N 1)b 1 b a b b b b 2 3 N 1 N a a a a Transition matrix a + (N 2)b b 0 0..... a (N 2)b b...... 0 a (N 2)b b.............. 0........ (N 2)b b 0 0 0 a (N 1)b. Example N = 8, a = 0.3 and b = 0.1 π = 0.67 0.22 0.07 0.02 0.01 0.01 0.00 0.00. 40 / 44

Performances Steady state MF = Move to front Move ahead 0.30 0.23 0.18 0.12 0.08 0.05 0.03 0.01 MA = 0.67 0.22 0.07 0.02 0.01 0.01 0.00 0.00. (N 1 i) (N 2)(N 1)b i 1 π(i) = π 1. (a + (N i)b) (a + (N 2)b)(a + (N 1)b) Cache miss Memory size Move to front Move Ahead 0 1.00 1.00 1 0.70 0.33 2 0.47 0.11 3 0.28 0.04 4 0.17 0.02 5 0.09 0.01 6 0.04 0.00 7 0.01 0.00 8 0.00 0.00 Best strategy : Move ahead π i = ( b ) i 1 1 b a a 1 ( b. a )N Comments Self-ordering protocol : decreasing probability Convergence speed to steady state : Move to front : 0.7 n Move ahead : 0.92 n Tradeoff between stabilization and long term performance Depends on the input flow of requests 41 / 44

Performances Steady state MF = Move to front Move ahead 0.30 0.23 0.18 0.12 0.08 0.05 0.03 0.01 MA = 0.67 0.22 0.07 0.02 0.01 0.01 0.00 0.00. (N 1 i) (N 2)(N 1)b i 1 π(i) = π 1. (a + (N i)b) (a + (N 2)b)(a + (N 1)b) Cache miss Memory size Move to front Move Ahead 0 1.00 1.00 1 0.70 0.33 2 0.47 0.11 3 0.28 0.04 4 0.17 0.02 5 0.09 0.01 6 0.04 0.00 7 0.01 0.00 8 0.00 0.00 Best strategy : Move ahead π i = ( b ) i 1 1 b a a 1 ( b. a )N Comments Self-ordering protocol : decreasing probability Convergence speed to steady state : Move to front : 0.7 n Move ahead : 0.92 n Tradeoff between stabilization and long term performance Depends on the input flow of requests 41 / 44

Performances Steady state MF = Move to front Move ahead 0.30 0.23 0.18 0.12 0.08 0.05 0.03 0.01 MA = 0.67 0.22 0.07 0.02 0.01 0.01 0.00 0.00. (N 1 i) (N 2)(N 1)b i 1 π(i) = π 1. (a + (N i)b) (a + (N 2)b)(a + (N 1)b) Cache miss Memory size Move to front Move Ahead 0 1.00 1.00 1 0.70 0.33 2 0.47 0.11 3 0.28 0.04 4 0.17 0.02 5 0.09 0.01 6 0.04 0.00 7 0.01 0.00 8 0.00 0.00 Best strategy : Move ahead π i = ( b ) i 1 1 b a a 1 ( b. a )N Comments Self-ordering protocol : decreasing probability Convergence speed to steady state : Move to front : 0.7 n Move ahead : 0.92 n Tradeoff between stabilization and long term performance Depends on the input flow of requests 41 / 44

Performances Steady state MF = Move to front Move ahead 0.30 0.23 0.18 0.12 0.08 0.05 0.03 0.01 MA = 0.67 0.22 0.07 0.02 0.01 0.01 0.00 0.00. (N 1 i) (N 2)(N 1)b i 1 π(i) = π 1. (a + (N i)b) (a + (N 2)b)(a + (N 1)b) Cache miss Memory size Move to front Move Ahead 0 1.00 1.00 1 0.70 0.33 2 0.47 0.11 3 0.28 0.04 4 0.17 0.02 5 0.09 0.01 6 0.04 0.00 7 0.01 0.00 8 0.00 0.00 Best strategy : Move ahead π i = ( b ) i 1 1 b a a 1 ( b. a )N Comments Self-ordering protocol : decreasing probability Convergence speed to steady state : Move to front : 0.7 n Move ahead : 0.92 n Tradeoff between stabilization and long term performance Depends on the input flow of requests 41 / 44

Outline 1 Markov Chain 2 Formalisation 3 Long run behavior 4 Cache modeling 5 Synthesis 42 / 44

Synthesis : Modelling and Performance Methodology 1 Identify states of the system 2 Estimate transition parameters, build the Markov chain (verify properties) 3 Specify performances as a function of steady-state 4 Compute steady-state distribution and steady-state performance 5 Analyse performances as a function of input parameters Classical methods to compute the steady state 1 Analytical formulae : structure of the Markov chain (closed form) 2 Formal computation (N < 50) 3 Direct numerical computation (classical linear algebra kernels) (N < 1000) 4 Iterative numerical computation (classical linear algebra kernels) (N < 100.000) 5 Model adapted numerical computation (N < 10.000.000) 6 Simulation of random trajectories (sampling) 43 / 44

Synthesis : Modelling and Performance Methodology 1 Identify states of the system 2 Estimate transition parameters, build the Markov chain (verify properties) 3 Specify performances as a function of steady-state 4 Compute steady-state distribution and steady-state performance 5 Analyse performances as a function of input parameters Classical methods to compute the steady state 1 Analytical formulae : structure of the Markov chain (closed form) 2 Formal computation (N < 50) 3 Direct numerical computation (classical linear algebra kernels) (N < 1000) 4 Iterative numerical computation (classical linear algebra kernels) (N < 100.000) 5 Model adapted numerical computation (N < 10.000.000) 6 Simulation of random trajectories (sampling) 43 / 44

Bibliography Books O. Haggstrom. Finite Markov Chains and algorithmic applications. Cambridge University Press. 2001. P. Brémaud Markov chains: Gibbs fields, Monte Carlo Simulation and Queues. Springer-Verlag, 1999 D. A. Levin, Y. Peres, et E. L. Wilmer Markov Chains and Mixing Times, American Mathematical Society,2009. Websites Virtual Laboratories in Probability and Statistics http://www.math.uah.edu/stat/index.xhtml The MacTutor History of Mathematics archive (photos) http://www-history.mcs.st-and.ac.uk/ 44 / 44