probabilistic programming in birch
play

Probabilistic Programming in Birch www.birch-lang.org Lawrence - PowerPoint PPT Presentation

Probabilistic Programming in Birch www.birch-lang.org Lawrence Murray Department of Information Technology, Uppsala University Outline 1. Graphical models probabilistic programs. 2. Birch: motivation and design. 3. Birch: language


  1. Methods in Birch Inference methods are also written in the Birch language. ▶ Currently available are: ▶ Analytical solutions ▶ Importance sampling ▶ Bootstrap particle filter ▶ Alive particle filter ▶ Auxiliary particle filter (automated) ▶ Rao–Blackwellized particle filter (automated) ▶ Not far off are: ▶ Particle MCMC methods ▶ Other MCMC methods. Lawrence Murray 19 / 30

  2. 3 Birch: language features Lawrence Murray 20 / 30

  3. Optionals Optionals allow variables to have a value of a particular type, or no value at all. ▶ They are used in other programming languages (e.g. Swift) to eliminate boilerplate that checks for null values, e.g. a function checking its arguments. ▶ In Birch, they are used for the same purpose, but also a second role: to represent missing values . Lawrence Murray 21 / 30

  4. Randoms Randoms are optionals to which a probability distribution can be attached. ▶ When they don’t have a value , the probability distribution can be used to automatically simulate a value . ▶ Once a random has a value, that value is final, it cannot be overwritten. Lawrence Murray 22 / 30

  5. Delayed sampling ▶ Randoms are essential for the delayed sampling mechanism within Birch. ▶ This is a heuristic algorithm for performing analytical optimizations at runtime. ▶ It automatically yields optimizations such as variable elimination/collapsing, Rao–Blackwellization and locally-optimal proposals. See: L. M. Murray, D. Lundén, J. Kudlicka, D. Broman, and T. B. Schön. Delayed sam- pling and automatic Rao–Blackwellization of probabilistic programs. Proceedings of the 21st International Conference on Artificial Intelligence and Statistics (AISTATS), 2018. URL https://arxiv.org/abs/1708.07787 Lawrence Murray 23 / 30

  6. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { y[n] ~ Gaussian(x, 1.0); } stdout.print(x); Lawrence Murray 24 / 30

  7. Delayed sampling example Code Checkpoint assume x x ~ Gaussian(0.0, 1.0); for (n in 1..N) { y[n] ~ Gaussian(x, 1.0); } stdout.print(x); x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  8. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { y[n] ~ Gaussian(x, 1.0); } stdout.print(x); x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  9. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  10. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  11. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  12. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); 1 x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  13. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); 1 x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  14. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); 1 x 1 y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  15. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); 2 x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  16. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); 2 x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  17. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); 2 x 2 y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  18. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); 3 x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  19. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); 3 x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  20. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); 3 x 3 y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  21. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); 4 x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  22. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); 4 x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  23. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); 4 x 4 y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  24. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { observe y[n] y[n] ~ Gaussian(x, 1.0); } stdout.print(x); 5 x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  25. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { y[n] ~ Gaussian(x, 1.0); } value x stdout.print(x); 5 x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  26. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { y[n] ~ Gaussian(x, 1.0); } stdout.print(x); x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  27. Delayed sampling example Code Checkpoint x ~ Gaussian(0.0, 1.0); for (n in 1..N) { y[n] ~ Gaussian(x, 1.0); } stdout.print(x); x y[1] y[2] y[3] y[4] y[5] Lawrence Murray 24 / 30

  28. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); Lawrence Murray 25 / 30

  29. Delayed sampling Code Checkpoint assume x[1] x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  30. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); observe y[1] y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  31. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); observe y[1] y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  32. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); observe y[1] y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  33. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); observe y[1] y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  34. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { assume x[t] x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  35. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  36. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 1 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  37. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 1 x[1] x[2] x[3] x[4] x[5] 1 y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  38. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  39. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { assume x[t] x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  40. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  41. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 2 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  42. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 2 x[1] x[2] x[3] x[4] x[5] 2 y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  43. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 3 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  44. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { assume x[t] x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 3 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  45. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 3 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  46. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 3 3 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  47. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 3 3 x[1] x[2] x[3] x[4] x[5] 3 y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  48. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 3 4 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  49. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { assume x[t] x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 3 4 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  50. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 3 4 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  51. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 3 4 4 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  52. Delayed sampling Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 3 4 4 x[1] x[2] x[3] x[4] x[5] 4 y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  53. Delayed sampling: Kalman Filter Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); observe y[t] y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); 1 2 3 4 5 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  54. Delayed sampling: Kalman Filter Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } value x[1] stdout.print(x[1]); 1 2 3 5 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  55. Delayed sampling: Kalman Filter Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } value x[1] stdout.print(x[1]); 1 2 5 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  56. Delayed sampling: Kalman Filter Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } value x[1] stdout.print(x[1]); 1 5 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  57. Delayed sampling: Kalman Filter Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } value x[1] stdout.print(x[1]); 5 x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  58. Delayed sampling: Kalman Filter Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } value x[1] stdout.print(x[1]); x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  59. Delayed sampling: Kalman Filter Code Checkpoint x[1] ~ Gaussian(0.0, 1.0); y[1] ~ Gaussian(x[1], 1.0); for (t in 2..T) { x[t] ~ Gaussian(a*x[t - 1], 1.0); y[t] ~ Gaussian(x[t], 1.0); } stdout.print(x[1]); x[1] x[2] x[3] x[4] x[5] y[1] y[2] y[3] y[4] y[5] Lawrence Murray 25 / 30

  60. Delayed sampling Lawrence Murray 26 / 30

  61. Delayed sampling x_n[1] x_n[2] x_n[3] x_n[4] x_n[5] x_l[1] x_l[2] x_l[3] x_l[4] x_l[5] y_l[1] y_l[2] y_l[3] y_l[4] y_l[5] y_n[1] y_n[2] y_n[3] y_n[4] y_n[5] Lawrence Murray 26 / 30

  62. Delayed sampling x_n[1] x_n[2] x_n[3] x_n[4] x_n[5] x_l[1] x_l[2] x_l[3] x_l[4] x_l[5] y_l[1] y_l[2] y_l[3] y_l[4] y_l[5] y_n[1] y_n[2] y_n[3] y_n[4] y_n[5] Lawrence Murray 26 / 30

  63. Delayed sampling x_n[1] x_n[2] x_n[3] x_n[4] x_n[5] x_l[1] x_l[2] x_l[3] x_l[4] x_l[5] y_l[1] y_l[2] y_l[3] y_l[4] y_l[5] y_n[1] y_n[2] y_n[3] y_n[4] y_n[5] Lawrence Murray 26 / 30

  64. Delayed sampling x_n[1] x_n[2] x_n[3] x_n[4] x_n[5] x_l[1] x_l[2] x_l[3] x_l[4] x_l[5] y_l[1] y_l[2] y_l[3] y_l[4] y_l[5] y_n[1] y_n[2] y_n[3] y_n[4] y_n[5] Lawrence Murray 26 / 30

  65. Delayed sampling x_n[1] x_n[2] x_n[3] x_n[4] x_n[5] x_l[1] x_l[2] x_l[3] x_l[4] x_l[5] y_l[1] y_l[2] y_l[3] y_l[4] y_l[5] y_n[1] y_n[2] y_n[3] y_n[4] y_n[5] Lawrence Murray 26 / 30

  66. Delayed sampling x_n[1] x_n[2] x_n[3] x_n[4] x_n[5] x_l[1] x_l[2] x_l[3] x_l[4] x_l[5] y_l[1] y_l[2] y_l[3] y_l[4] y_l[5] y_n[1] y_n[2] y_n[3] y_n[4] y_n[5] Lawrence Murray 26 / 30

  67. Delayed sampling x_n[1] x_n[2] x_n[3] x_n[4] x_n[5] x_l[1] x_l[2] x_l[3] x_l[4] x_l[5] y_l[1] y_l[2] y_l[3] y_l[4] y_l[5] y_n[1] y_n[2] y_n[3] y_n[4] y_n[5] Lawrence Murray 26 / 30

  68. Delayed sampling x_n[1] x_n[2] x_n[3] x_n[4] x_n[5] x_l[1] x_l[2] x_l[3] x_l[4] x_l[5] y_l[1] y_l[2] y_l[3] y_l[4] y_l[5] y_n[1] y_n[2] y_n[3] y_n[4] y_n[5] Lawrence Murray 26 / 30

  69. Delayed sampling x_n[1] x_n[2] x_n[3] x_n[4] x_n[5] x_l[1] x_l[2] x_l[3] x_l[4] x_l[5] y_l[1] y_l[2] y_l[3] y_l[4] y_l[5] y_n[1] y_n[2] y_n[3] y_n[4] y_n[5] Lawrence Murray 26 / 30

  70. Delayed sampling x_n[1] x_n[2] x_n[3] x_n[4] x_n[5] x_l[1] x_l[2] x_l[3] x_l[4] x_l[5] y_l[1] y_l[2] y_l[3] y_l[4] y_l[5] y_n[1] y_n[2] y_n[3] y_n[4] y_n[5] Lawrence Murray 26 / 30

  71. Delayed sampling x_n[1] x_n[2] x_n[3] x_n[4] x_n[5] 1 x_l[1] x_l[2] x_l[3] x_l[4] x_l[5] y_l[1] y_l[2] y_l[3] y_l[4] y_l[5] y_n[1] y_n[2] y_n[3] y_n[4] y_n[5] Lawrence Murray 26 / 30

  72. Delayed sampling x_n[1] x_n[2] x_n[3] x_n[4] x_n[5] 1 x_l[1] x_l[2] x_l[3] x_l[4] x_l[5] y_l[1] y_l[2] y_l[3] y_l[4] y_l[5] y_n[1] y_n[2] y_n[3] y_n[4] y_n[5] Lawrence Murray 26 / 30

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend