annotate main/queueing/doc/queueing.html @ 9692:dee7b9b17fae octave-forge

updated documentation
author mmarzolla
date Wed, 14 Mar 2012 09:00:49 +0000
parents 210968b14f63
children 394c375af7a9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1 <html lang="en">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2 <head>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3 <title>queueing</title>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4 <meta http-equiv="Content-Type" content="text/html">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5 <meta name="description" content="User manual for the queueing toolbox, a GNU Octave package for queueing networks and Markov chains analysis. This package supports single-station queueing systems, queueing networks and Markov chains. The queueing toolbox implements, among others, the Mean Value Analysis (MVA) and convolution algorithms for product-form queueing networks. Transient and steady-state analysis of Markov chains is also implemented.">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
6 <meta name="generator" content="makeinfo 4.13">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
7 <link title="Top" rel="top" href="#Top">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
8 <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
9 <meta http-equiv="Content-Style-Type" content="text/css">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
10 <style type="text/css"><!--
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
11 pre.display { font-family:inherit }
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
12 pre.format { font-family:inherit }
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
13 pre.smalldisplay { font-family:inherit; font-size:smaller }
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
14 pre.smallformat { font-family:inherit; font-size:smaller }
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
15 pre.smallexample { font-size:smaller }
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
16 pre.smalllisp { font-size:smaller }
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
17 span.sc { font-variant:small-caps }
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
18 span.roman { font-family:serif; font-weight:normal; }
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
19 span.sansserif { font-family:sans-serif; font-weight:normal; }
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
20 --></style>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
21 </head>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
22 <body>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
23 Copyright &copy; 2008, 2009, 2010, 2011, 2012 Moreno Marzolla.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
24
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
25 <p>Permission is granted to make and distribute verbatim copies of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
26 this manual provided the copyright notice and this permission notice
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
27 are preserved on all copies.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
28
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
29 <p>Permission is granted to copy and distribute modified versions of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
30 this manual under the conditions for verbatim copying, provided that
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
31 the entire resulting derived work is distributed under the terms of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
32 a permission notice identical to this one.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
33
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
34 <p>Permission is granted to copy and distribute translations of this
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
35 manual into another language, under the above conditions for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
36 modified versions.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
37
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
38 <div class="contents">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
39 <h2>Table of Contents</h2>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
40 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
41 <li><a name="toc_Top" href="#Top">queueing</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
42 <li><a name="toc_Summary" href="#Summary">1 Summary</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
43 <li><a name="toc_Installation" href="#Installation">2 Installing the queueing toolbox</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
44 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
45 <li><a href="#Installation-through-Octave-package-management-system">2.1 Installation through Octave package management system</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
46 <li><a href="#Manual-installation">2.2 Manual installation</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
47 <li><a href="#Content-of-the-source-distribution">2.3 Content of the source distribution</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
48 <li><a href="#Using-the-queueing-toolbox">2.4 Using the queueing toolbox</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
49 </li></ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
50 <li><a name="toc_Getting-Started" href="#Getting-Started">3 Introduction and Getting Started</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
51 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
52 <li><a href="#Analysis-of-Closed-Networks">3.1 Analysis of Closed Networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
53 <li><a href="#Analysis-of-Open-Networks">3.2 Analysis of Open Networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
54 </li></ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
55 <li><a name="toc_Markov-Chains" href="#Markov-Chains">4 Markov Chains</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
56 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
57 <li><a href="#Discrete_002dTime-Markov-Chains">4.1 Discrete-Time Markov Chains</a>
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
58 <ul>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
59 <li><a href="#Discrete_002dTime-Markov-Chains">4.1.1 State occupancy probabilities</a>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
60 <li><a href="#Discrete_002dTime-Markov-Chains">4.1.2 Birth-Death process</a>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
61 <li><a href="#Discrete_002dTime-Markov-Chains">4.1.3 First passage times</a>
9632
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
62 <li><a href="#Discrete_002dTime-Markov-Chains">4.1.4 Mean Time to Absorption</a>
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
63 </li></ul>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
64 <li><a href="#Continuous_002dTime-Markov-Chains">4.2 Continuous-Time Markov Chains</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
65 <ul>
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
66 <li><a href="#State-occupancy-probabilities">4.2.1 State occupancy probabilities</a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
67 <li><a href="#Birth_002dDeath-process">4.2.2 Birth-Death process</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
68 <li><a href="#Expected-Sojourn-Time">4.2.3 Expected Sojourn Time</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
69 <li><a href="#Time_002dAveraged-Expected-Sojourn-Time">4.2.4 Time-Averaged Expected Sojourn Time</a>
9632
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
70 <li><a href="#Mean-Time-to-Absorption">4.2.5 Mean Time to Absorption</a>
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
71 <li><a href="#First-Passage-Times">4.2.6 First Passage Times</a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
72 </li></ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
73 </li></ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
74 <li><a name="toc_Single-Station-Queueing-Systems" href="#Single-Station-Queueing-Systems">5 Single Station Queueing Systems</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
75 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
76 <li><a href="#The-M_002fM_002f1-System">5.1 The M/M/1 System</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
77 <li><a href="#The-M_002fM_002fm-System">5.2 The M/M/m System</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
78 <li><a href="#The-M_002fM_002finf-System">5.3 The M/M/inf System</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
79 <li><a href="#The-M_002fM_002f1_002fK-System">5.4 The M/M/1/K System</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
80 <li><a href="#The-M_002fM_002fm_002fK-System">5.5 The M/M/m/K System</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
81 <li><a href="#The-Asymmetric-M_002fM_002fm-System">5.6 The Asymmetric M/M/m System</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
82 <li><a href="#The-M_002fG_002f1-System">5.7 The M/G/1 System</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
83 <li><a href="#The-M_002fHm_002f1-System">5.8 The M/H_m/1 System</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
84 </li></ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
85 <li><a name="toc_Queueing-Networks" href="#Queueing-Networks">6 Queueing Networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
86 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
87 <li><a href="#Introduction-to-QNs">6.1 Introduction to QNs</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
88 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
89 <li><a href="#Introduction-to-QNs">6.1.1 Single class models</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
90 <li><a href="#Introduction-to-QNs">6.1.2 Multiple class models</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
91 </li></ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
92 <li><a href="#Generic-Algorithms">6.2 Generic Algorithms</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
93 <li><a href="#Algorithms-for-Product_002dForm-QNs">6.3 Algorithms for Product-Form QNs</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
94 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
95 <li><a href="#Algorithms-for-Product_002dForm-QNs">6.3.1 Jackson Networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
96 <li><a href="#Algorithms-for-Product_002dForm-QNs">6.3.2 The Convolution Algorithm</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
97 <li><a href="#Algorithms-for-Product_002dForm-QNs">6.3.3 Open networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
98 <li><a href="#Algorithms-for-Product_002dForm-QNs">6.3.4 Closed Networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
99 <li><a href="#Algorithms-for-Product_002dForm-QNs">6.3.5 Mixed Networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
100 </li></ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
101 <li><a href="#Algorithms-for-non-Product_002dform-QNs">6.4 Algorithms for non Product-Form QNs</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
102 <li><a href="#Bounds-on-performance">6.5 Bounds on performance</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
103 <li><a href="#Utility-functions">6.6 Utility functions</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
104 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
105 <li><a href="#Utility-functions">6.6.1 Open or closed networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
106 <li><a href="#Utility-functions">6.6.2 Computation of the visit counts</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
107 <li><a href="#Utility-functions">6.6.3 Other utility functions</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
108 </li></ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
109 </li></ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
110 <li><a name="toc_Contributing-Guidelines" href="#Contributing-Guidelines">Appendix A Contributing Guidelines</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
111 <li><a name="toc_Acknowledgements" href="#Acknowledgements">Appendix B Acknowledgements</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
112 <li><a name="toc_Copying" href="#Copying">Appendix C GNU GENERAL PUBLIC LICENSE</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
113 <li><a name="toc_Concept-Index" href="#Concept-Index">Concept Index</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
114 <li><a name="toc_Function-Index" href="#Function-Index">Function Index</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
115 <li><a name="toc_Author-Index" href="#Author-Index">Author Index</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
116 </li></ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
117 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
118
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
119 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
120 <a name="Top"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
121 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
122 Next:&nbsp;<a rel="next" accesskey="n" href="#Summary">Summary</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
123 Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
124
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
125 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
126
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
127 <h2 class="unnumbered">queueing</h2>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
128
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
129 <p>This manual documents how to install and run the Queueing Toolbox.
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
130 It corresponds to version 1.X.0 of the package.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
131
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
132 <!-- -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
133 <ul class="menu">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
134 <li><a accesskey="1" href="#Summary">Summary</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
135 <li><a accesskey="2" href="#Installation">Installation</a>: Installation of the queueing toolbox.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
136 <li><a accesskey="3" href="#Getting-Started">Getting Started</a>: Getting started with the queueing toolbox.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
137 <li><a accesskey="4" href="#Markov-Chains">Markov Chains</a>: Functions for Markov Chains.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
138 <li><a accesskey="5" href="#Single-Station-Queueing-Systems">Single Station Queueing Systems</a>: Functions for single-station queueing systems.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
139 <li><a accesskey="6" href="#Queueing-Networks">Queueing Networks</a>: Functions for queueing networks.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
140 <li><a accesskey="7" href="#Contributing-Guidelines">Contributing Guidelines</a>: How to contribute.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
141 <li><a accesskey="8" href="#Acknowledgements">Acknowledgements</a>: People who contributed to the queueing toolbox.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
142 <li><a accesskey="9" href="#Copying">Copying</a>: The GNU General Public License.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
143 <li><a href="#Concept-Index">Concept Index</a>: An item for each concept.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
144 <li><a href="#Function-Index">Function Index</a>: An item for each function.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
145 <li><a href="#Author-Index">Author Index</a>: An item for each author.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
146 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
147
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
148 <!-- -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
149 <!-- DO NOT EDIT! Generated automatically by munge-texi. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
150 <!-- *- texinfo -*- -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
151 <!-- Copyright (C) 2008, 2009, 2010, 2011, 2012 Moreno Marzolla -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
152 <!-- This file is part of the queueing toolbox, a Queueing Networks -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
153 <!-- analysis package for GNU Octave. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
154 <!-- The queueing toolbox is free software; you can redistribute it -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
155 <!-- and/or modify it under the terms of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
156 <!-- as published by the Free Software Foundation; either version 3 of -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
157 <!-- the License, or (at your option) any later version. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
158 <!-- The queueing toolbox is distributed in the hope that it will be -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
159 <!-- useful, but WITHOUT ANY WARRANTY; without even the implied warranty -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
160 <!-- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
161 <!-- GNU General Public License for more details. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
162 <!-- You should have received a copy of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
163 <!-- along with the queueing toolbox; see the file COPYING. If not, see -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
164 <!-- <http://www.gnu.org/licenses/>. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
165 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
166 <a name="Summary"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
167 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
168 Next:&nbsp;<a rel="next" accesskey="n" href="#Installation">Installation</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
169 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Top">Top</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
170 Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
171
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
172 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
173
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
174 <h2 class="chapter">1 Summary</h2>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
175
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
176 <p>This document describes the <code>queueing</code> toolbox for GNU Octave
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
177 (<code>queueing</code> in short). The <code>queueing</code> toolbox, previously
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
178 known as <code>qnetworks</code>, is a collection of functions written in GNU
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
179 Octave for analyzing queueing networks and Markov
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
180 chains. Specifically, <code>queueing</code> contains functions for analyzing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
181 Jackson networks, open, closed or mixed product-form BCMP networks,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
182 and computation of performance bounds. The following algorithms have
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
183 been implemented
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
184
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
185 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
186 <li>Convolution for closed, single-class product-form networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
187 with load-dependent service centers;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
188
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
189 <li>Exact and approximate Mean Value Analysis (MVA) for single and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
190 multiple class product-form closed networks;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
191
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
192 <li>MVA for mixed, multiple class product-form networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
193 with load-independent service centers;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
194
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
195 <li>Approximate MVA for closed, single-class networks with blocking
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
196 (MVABLO algorithm by F. Akyildiz);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
197
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
198 <li>Asymptotic Bounds, Balanced System Bounds and Geometric Bounds;
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
199
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
200 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
201
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
202 <p class="noindent"><code>queueing</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
203 provides functions for analyzing the following kind of single-station
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
204 queueing systems:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
205
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
206 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
207 <li>M/M/1
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
208 <li>M/M/m
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
209 <li>M/M/\infty
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
210 <li>M/M/1/k single-server, finite capacity system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
211 <li>M/M/m/k multiple-server, finite capacity system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
212 <li>Asymmetric M/M/m
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
213 <li>M/G/1 (general service time distribution)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
214 <li>M/H_m/1 (Hyperexponential service time distribution)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
215 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
216
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
217 <p>Functions for Markov chain analysis are also provided, for discrete-time
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
218 chains (DTMC) or continuous-time chains (CTMC):
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
219
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
220 <ul>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
221 <li>Birth-death process;
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
222 <li>Transient and steady-state occupancy probabilities;
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
223 <li>Mean times to absorption;
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
224 <li>Expected sojourn times and time-averaged sojourn times (CTMC only);
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
225 <li>Mean first passage times;
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
226
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
227 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
228
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
229 <p>The <code>queueing</code> toolbox is distributed under the terms of the GNU
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
230 General Public License (GPL), version 3 or later
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
231 (see <a href="#Copying">Copying</a>). You are encouraged to share this software with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
232 others, and make this package more useful by contributing additional
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
233 functions and reporting problems. See <a href="#Contributing-Guidelines">Contributing Guidelines</a>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
234
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
235 <p>If you use the <code>queueing</code> toolbox in a technical paper, please
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
236 cite it as:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
237
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
238 <blockquote>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
239 Moreno Marzolla, <em>The qnetworks Toolbox: A Software Package for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
240 Queueing Networks Analysis</em>. Khalid Al-Begain, Dieter Fiems and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
241 William J. Knottenbelt, Editors, Proceedings 17th International
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
242 Conference on Analytical and Stochastic Modeling Techniques and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
243 Applications (ASMTA 2010) Cardiff, UK, June 14&ndash;16, 2010, volume 6148
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
244 of Lecture Notes in Computer Science, Springer, pp. 102&ndash;116, ISBN
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
245 978-3-642-13567-5
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
246 </blockquote>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
247
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
248 <p>If you use BibTeX, this is the citation block:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
249
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
250 <pre class="verbatim">@inproceedings{queueing,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
251 author = {Moreno Marzolla},
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
252 title = {The qnetworks Toolbox: A Software Package for Queueing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
253 Networks Analysis},
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
254 booktitle = {Analytical and Stochastic Modeling Techniques and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
255 Applications, 17th International Conference,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
256 ASMTA 2010, Cardiff, UK, June 14-16, 2010. Proceedings},
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
257 editor = {Khalid Al-Begain and Dieter Fiems and William J. Knottenbelt},
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
258 year = {2010},
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
259 publisher = {Springer},
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
260 series = {Lecture Notes in Computer Science},
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
261 volume = {6148},
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
262 pages = {102--116},
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
263 ee = {http://dx.doi.org/10.1007/978-3-642-13568-2_8},
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
264 isbn = {978-3-642-13567-5}
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
265 }
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
266 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
267
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
268 <p>An early draft of the paper above is available as Technical Report
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
269 <a href="http://www.informatica.unibo.it/ricerca/ublcs/2010/UBLCS-2010-04">UBLCS-2010-04</a>, February 2010, Department of Computer Science,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
270 University of Bologna, Italy.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
271
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
272 <!-- DO NOT EDIT! Generated automatically by munge-texi. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
273 <!-- *- texinfo -*- -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
274 <!-- Copyright (C) 2008, 2009, 2010, 2011, 2012 Moreno Marzolla -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
275 <!-- This file is part of the queueing toolbox, a Queueing Networks -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
276 <!-- analysis package for GNU Octave. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
277 <!-- The queueing toolbox is free software; you can redistribute it -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
278 <!-- and/or modify it under the terms of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
279 <!-- as published by the Free Software Foundation; either version 3 of -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
280 <!-- the License, or (at your option) any later version. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
281 <!-- The queueing toolbox is distributed in the hope that it will be -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
282 <!-- useful, but WITHOUT ANY WARRANTY; without even the implied warranty -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
283 <!-- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
284 <!-- GNU General Public License for more details. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
285 <!-- You should have received a copy of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
286 <!-- along with the queueing toolbox; see the file COPYING. If not, see -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
287 <!-- <http://www.gnu.org/licenses/>. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
288 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
289 <a name="Installation"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
290 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
291 Next:&nbsp;<a rel="next" accesskey="n" href="#Getting-Started">Getting Started</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
292 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Summary">Summary</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
293 Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
294
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
295 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
296
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
297 <h2 class="chapter">2 Installing the queueing toolbox</h2>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
298
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
299 <ul class="menu">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
300 <li><a accesskey="1" href="#Installation-through-Octave-package-management-system">Installation through Octave package management system</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
301 <li><a accesskey="2" href="#Manual-installation">Manual installation</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
302 <li><a accesskey="3" href="#Content-of-the-source-distribution">Content of the source distribution</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
303 <li><a accesskey="4" href="#Using-the-queueing-toolbox">Using the queueing toolbox</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
304 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
305
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
306 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
307 <a name="Installation-through-Octave-package-management-system"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
308 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
309 Next:&nbsp;<a rel="next" accesskey="n" href="#Manual-installation">Manual installation</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
310 Up:&nbsp;<a rel="up" accesskey="u" href="#Installation">Installation</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
311
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
312 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
313
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
314 <h3 class="section">2.1 Installation through Octave package management system</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
315
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
316 <p>The most recent version of <code>queueing</code> is 1.X.0 and can
9408
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
317 be downloaded from Octave-Forge
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
318
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
319 <p><a href="http://octave.sourceforge.net/queueing/">http://octave.sourceforge.net/queueing/</a>
9395
dc6942faefe4 Package restructuring
mmarzolla
parents: 9394
diff changeset
320
dc6942faefe4 Package restructuring
mmarzolla
parents: 9394
diff changeset
321 <p>The package Web page is
dc6942faefe4 Package restructuring
mmarzolla
parents: 9394
diff changeset
322
dc6942faefe4 Package restructuring
mmarzolla
parents: 9394
diff changeset
323 <p><a href="http://www.moreno.marzolla.name/software/queueing/">http://www.moreno.marzolla.name/software/queueing/</a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
324
9408
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
325 <p>If you have a recent version of GNU Octave and a network connection,
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
326 you can install <code>queueing</code> directly from the prompt using this
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
327 command:
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
328
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
329 <pre class="example"> octave:1&gt; <kbd>pkg install -forge queueing</kbd>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
330 </pre>
9408
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
331 <p>The command above will automaticall download and install the latest
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
332 version of the queueing toolbox from Octave Forge, and install it on
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
333 your machine. You can verify that the package is indeed installed:
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
334
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
335 <pre class="example"> octave:1&gt;<kbd>pkg list queueing</kbd>
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
336 Package Name | Version | Installation directory
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
337 --------------+---------+-----------------------
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
338 queueing *| 1.X.0 | /home/moreno/octave/queueing-1.X.0
9408
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
339 </pre>
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
340 <p>Alternatively, you can first download <code>queueing</code> from
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
341 Octave-Forge; then, to install the package in the system-wide
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
342 location issue this command at the Octave prompt:
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
343
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
344 <pre class="example"> octave:1&gt; <kbd>pkg install </kbd><em>queueing-1.X.0.tar.gz</em>
9408
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
345 </pre>
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
346 <p class="noindent">(you may need to start Octave as root in order to allow the
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
347 installation to copy the files to the target locations). After this,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
348 all functions will be readily available each time Octave starts,
9408
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
349 without the need to tweak the search path.
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
350
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
351 <p>If you do not have root access, you can do a local install using:
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
352
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
353 <pre class="example"> octave:1&gt; <kbd>pkg install -local queueing-1.X.0.tar.gz</kbd>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
354 </pre>
9408
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
355 <p>This will install <code>queueing</code> within your home directory, and the
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
356 package will be available to your user only. <strong>Note:</strong> Octave
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
357 version 3.2.3 as shipped with Ubuntu 10.04 seems to ignore
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
358 <code>-local</code> and always tries to install the package on the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
359 directory.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
360
9408
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
361 <p>To remove <code>queueing</code> you can use
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
362
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
363 <pre class="example"> octave:1&gt; <kbd>pkg uninstall queueing</kbd>
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
364 </pre>
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
365 <div class="node">
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
366 <a name="Manual-installation"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
367 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
368 Next:&nbsp;<a rel="next" accesskey="n" href="#Content-of-the-source-distribution">Content of the source distribution</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
369 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Installation-through-Octave-package-management-system">Installation through Octave package management system</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
370 Up:&nbsp;<a rel="up" accesskey="u" href="#Installation">Installation</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
371
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
372 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
373
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
374 <h3 class="section">2.2 Manual installation</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
375
9408
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
376 <p>If you want to manually install <code>queueing</code> in a custom location,
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
377 you can download the tarball and unpack it somewhere:
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
378
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
379 <pre class="example"> <kbd>tar xvfz queueing-1.X.0.tar.gz</kbd>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
380 <kbd>cd queueing-1.X.0/queueing/</kbd>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
381 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
382 <p>Copy all <code>.m</code> files from the <samp><span class="file">inst/</span></samp> directory to some
9408
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
383 target location. Then, start Octave with the <samp><span class="option">-p</span></samp> option to add
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
384 the target location to the search path, so that Octave will find all
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
385 <code>queueing</code> functions automatically:
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
386
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
387 <pre class="example"> <kbd>octave -p </kbd><em>/path/to/queueing</em>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
388 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
389 <p>For example, if all <code>queueing</code> m-files are in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
390 <samp><span class="file">/usr/local/queueing</span></samp>, you can start Octave as follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
391
9408
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
392 <pre class="example"> <kbd>octave -p </kbd><em>/usr/local/queueing</em>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
393 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
394 <p>If you want, you can add the following line to <samp><span class="file">~/.octaverc</span></samp>:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
395
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
396 <pre class="example"> <kbd>addpath("</kbd><em>/path/to/queueing</em><kbd>");</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
397 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
398 <p class="noindent">so that the path <samp><span class="file">/usr/local/queueing</span></samp> is automatically
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
399 added to the search path each time Octave is started, and you no
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
400 longer need to specify the <samp><span class="option">-p</span></samp> option on the command line.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
401
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
402 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
403 <a name="Content-of-the-source-distribution"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
404 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
405 Next:&nbsp;<a rel="next" accesskey="n" href="#Using-the-queueing-toolbox">Using the queueing toolbox</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
406 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Manual-installation">Manual installation</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
407 Up:&nbsp;<a rel="up" accesskey="u" href="#Installation">Installation</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
408
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
409 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
410
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
411 <h3 class="section">2.3 Content of the source distribution</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
412
9408
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
413 <p>The source code of the latest version of the <code>queueing</code>
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
414 package can be found in the Subversion repository at the URL:
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
415
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
416 <p><a href="http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/main/queueing/">http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/main/queueing/</a>
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
417
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
418 <p>The source distribution contains the following directories (some of
68659b5308ea Updated installation instructions
mmarzolla
parents: 9395
diff changeset
419 which are not included in the installation tarball):
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
420
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
421 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
422 <dt><samp><span class="file">doc/</span></samp><dd>Documentation source. Most of the documentation is extracted from the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
423 comment blocks of individual function files from the <samp><span class="file">inst/</span></samp>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
424 directory.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
425
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
426 <br><dt><samp><span class="file">inst/</span></samp><dd>This directory contains the <tt>m</tt>-files which implement the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
427 various Queueing Network algorithms provided by <code>queueing</code>. As a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
428 notational convention, the names of source files containing functions
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
429 for Queueing Networks start with the &lsquo;<samp><span class="samp">qn</span></samp>&rsquo; prefix; the name of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
430 source files containing functions for Continuous-Time Markov Chains
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
431 (CTMSs) start with the &lsquo;<samp><span class="samp">ctmc</span></samp>&rsquo; prefix, and the names of files
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
432 containing functions for Discrete-Time Markov Chains (DTMCs) start
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
433 with the &lsquo;<samp><span class="samp">dtmc</span></samp>&rsquo; prefix.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
434
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
435 <br><dt><samp><span class="file">test/</span></samp><dd>This directory contains the test functions used to invoke all tests on
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
436 all function files.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
437
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
438 <br><dt><samp><span class="file">scripts/</span></samp><dd>This directory contains some utility scripts mostly from GNU Octave,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
439 which extract the documentation from the specially-formatted comments
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
440 in the <tt>m</tt>-files.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
441
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
442 <br><dt><samp><span class="file">examples/</span></samp><dd>This directory contains examples which are automatically extracted
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
443 from the &lsquo;<samp><span class="samp">demo</span></samp>&rsquo; blocks of the function files.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
444
9394
99c84b77abf3 Package restructuring
mmarzolla
parents: 9391
diff changeset
445 <br><dt><samp><span class="file">devel/</span></samp><dd>This directory contains function files which are either not working
9395
dc6942faefe4 Package restructuring
mmarzolla
parents: 9394
diff changeset
446 properly, or need additional testing before they are moved to the
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
447 <samp><span class="file">inst/</span></samp> directory.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
448
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
449 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
450
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
451 <p>The <code>queueing</code> package ships with a Makefile which can be used
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
452 to produce the documentation (in PDF and HTML format), and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
453 automatically execute all function tests. Specifically, the following
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
454 targets are defined:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
455
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
456 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
457 <dt><code>all</code><dd>Running &lsquo;<samp><span class="samp">make</span></samp>&rsquo; (or &lsquo;<samp><span class="samp">make all</span></samp>&rsquo;) on the top-level directory
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
458 builds the programs used to extract the documentation from the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
459 comments embedded in the <tt>m</tt>-files, and then produce the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
460 documentation in PDF and HTML format (<samp><span class="file">doc/queueing.pdf</span></samp> and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
461 <samp><span class="file">doc/queueing.html</span></samp>, respectively).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
462
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
463 <br><dt><code>check</code><dd>Running &lsquo;<samp><span class="samp">make check</span></samp>&rsquo; will execute all tests contained in the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
464 <tt>m</tt>-files. If you modify the code of any function in the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
465 <samp><span class="file">inst/</span></samp> directory, you should run the tests to ensure that no
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
466 errors have been introduced. You are also encouraged to contribute new
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
467 tests, especially for functions which are not adequately validated.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
468
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
469 <br><dt><code>clean</code><dt><code>distclean</code><dt><code>dist</code><dd>The &lsquo;<samp><span class="samp">make clean</span></samp>&rsquo;, &lsquo;<samp><span class="samp">make distclean</span></samp>&rsquo; and &lsquo;<samp><span class="samp">make dist</span></samp>&rsquo;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
470 commands are used to clean up the source directory and prepare the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
471 distribution archive in compressed tar format.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
472
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
473 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
474
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
475 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
476 <a name="Using-the-queueing-toolbox"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
477 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
478 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Content-of-the-source-distribution">Content of the source distribution</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
479 Up:&nbsp;<a rel="up" accesskey="u" href="#Installation">Installation</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
480
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
481 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
482
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
483 <h3 class="section">2.4 Using the queueing toolbox</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
484
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
485 <p>You can use all functions by simply invoking their name with the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
486 appropriate parameters; the <code>queueing</code> package should display an
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
487 error message in case of missing/wrong parameters. You can display the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
488 help text for any function using the <samp><span class="command">help</span></samp> command. For
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
489 example:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
490
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
491 <pre class="example"> octave:2&gt; <kbd>help qnmvablo</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
492 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
493 <p>prints the documentation for the <samp><span class="command">qnmvablo</span></samp> function.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
494 Additional information can be found in the <code>queueing</code> manual,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
495 which is available in PDF format in <samp><span class="file">doc/queueing.pdf</span></samp> and in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
496 HTML format in <samp><span class="file">doc/queueing.html</span></samp>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
497
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
498 <p>Within GNU Octave, you can also run the test and demo blocks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
499 associated to the functions, using the <samp><span class="command">test</span></samp> and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
500 <samp><span class="command">demo</span></samp> commands respectively. To run all the tests of, say,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
501 the <samp><span class="command">qnmvablo</span></samp> function:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
502
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
503 <pre class="example"> octave:3&gt; <kbd>test qnmvablo</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
504 -| PASSES 4 out of 4 tests
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
505 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
506 <p>To execute the demos of the <samp><span class="command">qnclosed</span></samp> function, use the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
507 following:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
508
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
509 <pre class="example"> octave:4&gt; <kbd>demo qnclosed</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
510 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
511 <!-- DO NOT EDIT! Generated automatically by munge-texi. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
512 <!-- *- texinfo -*- -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
513 <!-- Copyright (C) 2008, 2009, 2010, 2011, 2012 Moreno Marzolla -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
514 <!-- This file is part of the queueing toolbox, a Queueing Networks -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
515 <!-- analysis package for GNU Octave. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
516 <!-- The queueing toolbox is free software; you can redistribute it -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
517 <!-- and/or modify it under the terms of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
518 <!-- as published by the Free Software Foundation; either version 3 of -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
519 <!-- the License, or (at your option) any later version. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
520 <!-- The queueing toolbox is distributed in the hope that it will be -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
521 <!-- useful, but WITHOUT ANY WARRANTY; without even the implied warranty -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
522 <!-- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
523 <!-- GNU General Public License for more details. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
524 <!-- You should have received a copy of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
525 <!-- along with the queueing toolbox; see the file COPYING. If not, see -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
526 <!-- <http://www.gnu.org/licenses/>. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
527 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
528 <a name="Getting-Started"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
529 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
530 Next:&nbsp;<a rel="next" accesskey="n" href="#Markov-Chains">Markov Chains</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
531 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Installation">Installation</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
532 Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
533
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
534 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
535
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
536 <h2 class="chapter">3 Introduction and Getting Started</h2>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
537
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
538 <ul class="menu">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
539 <li><a accesskey="1" href="#Analysis-of-Closed-Networks">Analysis of Closed Networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
540 <li><a accesskey="2" href="#Analysis-of-Open-Networks">Analysis of Open Networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
541 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
542
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
543 <p>In this chapter we give some usage examples of the <code>queueing</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
544 package. The reader is assumed to be familiar with Queueing Networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
545 (although some basic terminology and notation will be given
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
546 here). Additional usage examples are embedded in most of the function
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
547 files; to display and execute the demos associated with function
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
548 <em>fname</em> you can type <samp><span class="command">demo </span><em>fname</em></samp> at the Octave
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
549 prompt. For example
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
550
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
551 <pre class="example"> <kbd>demo qnclosed</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
552 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
553 <p class="noindent">executes all demos (if any) for the <samp><span class="command">qnclosed</span></samp> function.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
554
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
555 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
556 <a name="Analysis-of-Closed-Networks"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
557 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
558 Next:&nbsp;<a rel="next" accesskey="n" href="#Analysis-of-Open-Networks">Analysis of Open Networks</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
559 Up:&nbsp;<a rel="up" accesskey="u" href="#Getting-Started">Getting Started</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
560
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
561 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
562
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
563 <h3 class="section">3.1 Analysis of Closed Networks</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
564
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
565 <p>Let us consider a simple closed network with K=3 service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
566 centers. Each center is of type M/M/1&ndash;FCFS. We denote with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
567 S_i the average service time at center i, i=1, 2,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
568 3. Let S_1 = 1.0, S_2 = 2.0 and S_3 = 0.8. The
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
569 routing of jobs within the network is described with a <em>routing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
570 probability matrix</em> P. Specifically, a request completing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
571 service at center i is enqueued at center j with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
572 probability P_ij. Let us assume the following routing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
573 probability matrix:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
574
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
575 <pre class="example"> [ 0 0.3 0.7 ]
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
576 P = [ 1 0 0 ]
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
577 [ 1 0 0 ]
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
578 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
579 <p>For example, according to matric P a job completing service at
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
580 center 1 is routed to center 2 with probability 0.3, and is routed to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
581 center 3 with probability 0.7.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
582
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
583 <p>The network above can be analyzed with the <samp><span class="command">qnclosed</span></samp>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
584 function; if there is just a single class of requests, as in the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
585 example above, <samp><span class="command">qnclosed</span></samp> calls <samp><span class="command">qnclosedsinglemva</span></samp>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
586 which implements the Mean Value Analysys (MVA) algorithm for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
587 single-class, product-form network.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
588
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
589 <p><samp><span class="command">qnclosed</span></samp> requires the following parameters:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
590
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
591 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
592 <dt><var>N</var><dd>Number of requests in the network (since we are considering a closed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
593 network, the number of requests is fixed)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
594
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
595 <br><dt><var>S</var><dd>Array of average service times at the centers: <var>S</var><code>(k)</code> is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
596 the average service time at center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
597
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
598 <br><dt><var>V</var><dd>Array of visit ratios: <var>V</var><code>(k)</code> is the average number of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
599 visits to center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
600
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
601 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
602
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
603 <p>As can be seen, we must compute the <em>visit ratios</em> (or visit
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
604 counts) V_k for each center k. The visit counts satisfy
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
605 the following equations:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
606
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
607 <pre class="example"> V_j = sum_i V_i P_ij
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
608 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
609 <p>We can compute V_k from the routing probability matrix
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
610 P_ij using the <samp><span class="command">qnvisits</span></samp> function:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
611
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
612 <pre class="example"> <kbd>P = [0 0.3 0.7; 1 0 0; 1 0 0];</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
613 <kbd>V = qnvisits(P)</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
614 &rArr; V = 1.00000 0.30000 0.70000
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
615 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
616 <p>We can check that the computed values satisfy the above equation by
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
617 evaluating the following expression:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
618
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
619 <pre class="example"> <kbd>V*P</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
620 &rArr; ans = 1.00000 0.30000 0.70000
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
621 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
622 <p class="noindent">which is equal to V.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
623 Hence, we can analyze the network for a given population size N
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
624 (for example, N=10) as follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
625
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
626 <pre class="example"> <kbd>N = 10;</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
627 <kbd>S = [1 2 0.8];</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
628 <kbd>P = [0 0.3 0.7; 1 0 0; 1 0 0];</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
629 <kbd>V = qnvisits(P);</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
630 <kbd>[U R Q X] = qnclosed( N, S, V )</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
631 &rArr; U = 0.99139 0.59483 0.55518
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
632 &rArr; R = 7.4360 4.7531 1.7500
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
633 &rArr; Q = 7.3719 1.4136 1.2144
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
634 &rArr; X = 0.99139 0.29742 0.69397
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
635 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
636 <p>The output of <samp><span class="command">qnclosed</span></samp> includes the vector of utilizations
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
637 U_k at center k, response time R_k, average
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
638 number of customers Q_k and throughput X_k. In our
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
639 example, the throughput of center 1 is X_1 = 0.99139, and the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
640 average number of requests in center 3 is Q_3 = 1.2144. The
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
641 utilization of center 1 is U_1 = 0.99139, which is the higher
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
642 value among the service centers. Tus, center 1 is the <em>bottleneck
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
643 device</em>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
644
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
645 <p>This network can also be analyzed with the <samp><span class="command">qnsolve</span></samp>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
646 function. <samp><span class="command">qnsolve</span></samp> can handle open, closed or mixed networks,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
647 and allows the network to be described in a very flexible way. First,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
648 let <var>Q1</var>, <var>Q2</var> and <var>Q3</var> be the variables describing the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
649 service centers. Each variable is instantiated with the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
650 <samp><span class="command">qnmknode</span></samp> function.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
651
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
652 <pre class="example"> <kbd>Q1 = qnmknode( "m/m/m-fcfs", 1 );</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
653 <kbd>Q2 = qnmknode( "m/m/m-fcfs", 2 );</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
654 <kbd>Q3 = qnmknode( "m/m/m-fcfs", 0.8 );</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
655 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
656 <p>The first parameter of <samp><span class="command">qnmknode</span></samp> is a string describing the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
657 type of the node. Here we use <code>"m/m/m-fcfs"</code> to denote a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
658 M/M/m&ndash;FCFS center. The second parameter gives the average
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
659 service time. An optional third parameter can be used to specify the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
660 number m of service centers. If omitted, it is assumed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
661 m=1 (single-server node).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
662
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
663 <p>Now, the network can be analyzed as follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
664
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
665 <pre class="example"> <kbd>N = 10;</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
666 <kbd>V = [1 0.3 0.7];</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
667 <kbd>[U R Q X] = qnsolve( "closed", N, { Q1, Q2, Q3 }, V )</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
668 &rArr; U = 0.99139 0.59483 0.55518
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
669 &rArr; R = 7.4360 4.7531 1.7500
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
670 &rArr; Q = 7.3719 1.4136 1.2144
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
671 &rArr; X = 0.99139 0.29742 0.69397
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
672 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
673 <p>Of course, we get exactly the same results. Other functions can be used
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
674 for closed networks, see <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
675
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
676 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
677 <a name="Analysis-of-Open-Networks"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
678 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
679 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Analysis-of-Closed-Networks">Analysis of Closed Networks</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
680 Up:&nbsp;<a rel="up" accesskey="u" href="#Getting-Started">Getting Started</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
681
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
682 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
683
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
684 <h3 class="section">3.2 Analysis of Open Networks</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
685
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
686 <p>Open networks can be analyzed in a similar way. Let us consider
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
687 an open network with K=3 service centers, and routing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
688 probability matrix as follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
689
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
690 <pre class="example"> [ 0 0.3 0.5 ]
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
691 P = [ 1 0 0 ]
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
692 [ 1 0 0 ]
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
693 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
694 <p>In this network, requests can leave the system from center 1 with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
695 probability (1-(0.3+0.5) = 0.2. We suppose that external jobs
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
696 arrive at center 1 with rate \lambda_1 = 0.15; there are no
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
697 arrivals at centers 2 and 3.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
698
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
699 <p>Similarly to closed networks, we first need to compute the visit
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
700 counts V_k to center k. Again, we use the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
701 <samp><span class="command">qnvisits</span></samp> function as follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
702
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
703 <pre class="example"> <kbd>P = [0 0.3 0.5; 1 0 0; 1 0 0];</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
704 <kbd>lambda = [0.15 0 0];</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
705 <kbd>V = qnvisits(P, lambda)</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
706 &rArr; V = 5.00000 1.50000 2.50000
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
707 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
708 <p class="noindent">where <var>lambda</var><code>(k)</code> is the arrival rate at center k,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
709 and <var>P</var> is the routing matrix. The visit counts V_k for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
710 open networks satisfy the following equation:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
711
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
712 <pre class="example"> V_j = sum_i V_i P_ij
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
713 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
714 <p>where P_0j is the probability of an external arrival to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
715 center j. This can be computed as:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
716
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
717 <p>Assuming the same service times as in the previous example, the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
718 network can be analyzed with the <samp><span class="command">qnopen</span></samp> function, as
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
719 follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
720
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
721 <pre class="example"> <kbd>S = [1 2 0.8];</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
722 <kbd>[U R Q X] = qnopen( sum(lambda), S, V )</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
723 &rArr; U = 0.75000 0.45000 0.30000
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
724 &rArr; R = 4.0000 3.6364 1.1429
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
725 &rArr; Q = 3.00000 0.81818 0.42857
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
726 &rArr; X = 0.75000 0.22500 0.37500
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
727 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
728 <p>The first parameter of the <samp><span class="command">qnopen</span></samp> function is the (scalar)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
729 aggregate arrival rate.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
730
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
731 <p>Again, it is possible to use the <samp><span class="command">qnsolve</span></samp> high-level function:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
732
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
733 <pre class="example"> <kbd>Q1 = qnmknode( "m/m/m-fcfs", 1 );</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
734 <kbd>Q2 = qnmknode( "m/m/m-fcfs", 2 );</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
735 <kbd>Q3 = qnmknode( "m/m/m-fcfs", 0.8 );</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
736 <kbd>lambda = [0.15 0 0];</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
737 <kbd>[U R Q X] = qnsolve( "open", sum(lambda), { Q1, Q2, Q3 }, V )</kbd>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
738 &rArr; U = 0.75000 0.45000 0.30000
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
739 &rArr; R = 4.0000 3.6364 1.1429
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
740 &rArr; Q = 3.00000 0.81818 0.42857
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
741 &rArr; X = 0.75000 0.22500 0.37500
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
742 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
743 <!-- @node Markov Chains Analysis -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
744 <!-- @section Markov Chains Analysis -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
745 <!-- @subsection Discrete-Time Markov Chains -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
746 <!-- (TODO) -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
747 <!-- @subsection Continuous-Time Markov Chains -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
748 <!-- (TODO) -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
749 <!-- DO NOT EDIT! Generated automatically by munge-texi. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
750 <!-- *- texinfo -*- -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
751 <!-- Copyright (C) 2008, 2009, 2010, 2011, 2012 Moreno Marzolla -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
752 <!-- This file is part of the queueing toolbox, a Queueing Networks -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
753 <!-- analysis package for GNU Octave. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
754 <!-- The queueing toolbox is free software; you can redistribute it -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
755 <!-- and/or modify it under the terms of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
756 <!-- as published by the Free Software Foundation; either version 3 of -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
757 <!-- the License, or (at your option) any later version. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
758 <!-- The queueing toolbox is distributed in the hope that it will be -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
759 <!-- useful, but WITHOUT ANY WARRANTY; without even the implied warranty -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
760 <!-- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
761 <!-- GNU General Public License for more details. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
762 <!-- You should have received a copy of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
763 <!-- along with the queueing toolbox; see the file COPYING. If not, see -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
764 <!-- <http://www.gnu.org/licenses/>. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
765 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
766 <a name="Markov-Chains"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
767 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
768 Next:&nbsp;<a rel="next" accesskey="n" href="#Single-Station-Queueing-Systems">Single Station Queueing Systems</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
769 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Getting-Started">Getting Started</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
770 Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
771
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
772 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
773
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
774 <h2 class="chapter">4 Markov Chains</h2>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
775
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
776 <ul class="menu">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
777 <li><a accesskey="1" href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
778 <li><a accesskey="2" href="#Continuous_002dTime-Markov-Chains">Continuous-Time Markov Chains</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
779 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
780
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
781 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
782 <a name="Discrete-Time-Markov-Chains"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
783 <a name="Discrete_002dTime-Markov-Chains"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
784 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
785 Next:&nbsp;<a rel="next" accesskey="n" href="#Continuous_002dTime-Markov-Chains">Continuous-Time Markov Chains</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
786 Up:&nbsp;<a rel="up" accesskey="u" href="#Markov-Chains">Markov Chains</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
787
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
788 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
789
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
790 <h3 class="section">4.1 Discrete-Time Markov Chains</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
791
9412
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
792 <p>Let X_0, X_1, <small class="dots">...</small>, X_n, <small class="dots">...</small> be a sequence of random
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
793 variables, each one defined over a discete state space 0, 1, 2,
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
794 <small class="dots">...</small>. The sequence X_0, X_1, <small class="dots">...</small>, X_n, <small class="dots">...</small> is a
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
795 <em>stochastic process</em> with discrete time 0, 1, 2,
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
796 <small class="dots">...</small>. A <em>Markov chain</em> is a stochastic process {X_n,
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
797 n=0, 1, 2, <small class="dots">...</small>} which satisfies the following Marrkov property:
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
798
9439
f9ab20ba5834 fixed typo in the documentation
mmarzolla
parents: 9412
diff changeset
799 <p>P(X_n+1 = x_n+1 | X_n = x_n, X_n-1 = x_n-1, ..., X_0 = x_0) = P(X_n+1 = x_n+1 | X_n = x_n)
f9ab20ba5834 fixed typo in the documentation
mmarzolla
parents: 9412
diff changeset
800
f9ab20ba5834 fixed typo in the documentation
mmarzolla
parents: 9412
diff changeset
801 <p class="noindent">which means that the probability that the system is in
9412
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
802 a particular state at time n+1 only depends on the state the
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
803 system was at time n.
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
804
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
805 <p>The evolution of a Markov chain with finite state space {1, 2,
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
806 <small class="dots">...</small>, N} can be fully described by a stochastic matrix \bf
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
807 P(n) = P_i,j(n) such that P_i, j(n) = P( X_n+1 = j\ |\
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
808 X_n = j ). If the Markov chain is homogeneous (that is, the
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
809 transition probability matrix \bf P(n) is time-independent),
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
810 we can simply write \bf P = P_i, j, where P_i, j =
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
811 P( X_n+1 = j\ |\ X_n = j ) for all n=0, 1, 2, <small class="dots">...</small>.
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
812
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
813 <p>The transition probability matrix \bf P must satisfy the
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
814 following two properties: (1) P_i, j &ge; 0 for all
9629
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
815 i, j, and (2) \sum_j=1^N P_i,j = 1.
9412
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
816
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
817 <p><a name="doc_002ddtmc_005fcheck_005fP"></a>
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
818
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
819 <div class="defun">
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
820 &mdash; Function File: [<var>result</var> <var>err</var>] = <b>dtmc_check_P</b> (<var>P</var>)<var><a name="index-dtmc_005fcheck_005fP-1"></a></var><br>
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
821 <blockquote>
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
822 <p><a name="index-Markov-chain_002c-discrete-time-2"></a>
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
823 If <var>P</var> is a valid transition probability matrix, return
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
824 the size (number of rows or columns) of <var>P</var>. If <var>P</var> is not
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
825 a transition probability matrix, set <var>result</var> to zero, and
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
826 <var>err</var> to an appropriate error string.
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
827
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
828 </blockquote></div>
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
829
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
830 <h4 class="subsection">4.1.1 State occupancy probabilities</h4>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
831
9629
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
832 <p>We denote with \bf \pi(n) = (\pi_1(n), \pi_2(n), <small class="dots">...</small>,
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
833 \pi_N(n) ) the <em>state occupancy probability vector</em> at step
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
834 n. \pi_i(n) denotes the probability that the system is
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
835 in state i at step n.
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
836
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
837 <p>Given the transition probability matrix \bf P and the initial
9412
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
838 state occupancy probability vector \bf \pi(0) = (\pi_1(0),
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
839 \pi_2(0), <small class="dots">...</small>, \pi_N(0)) at step 0, the state occupancy
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
840 probability vector \bf \pi(n) at step n can be
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
841 computed as:
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
842
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
843 <pre class="example"> \pi(n) = \pi(0) P^n
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
844 </pre>
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
845 <p>Under certain conditions, there exists a <em>stationary state
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
846 occupancy probability</em> \bf \pi = \lim_n \rightarrow +\infty
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
847 \bf \pi(n), which is independent from the initial state occupancy
9439
f9ab20ba5834 fixed typo in the documentation
mmarzolla
parents: 9412
diff changeset
848 \bf \pi(0). The stationary state occupancy probability vector
9629
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
849 \bf \pi satisfies \bf \pi = \bf \pi \bf P
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
850 and \sum_i=1^N \pi_i = 1
9412
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
851
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
852 <p><a name="doc_002ddtmc"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
853
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
854 <div class="defun">
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
855 &mdash; Function File: <var>p</var> = <b>dtmc</b> (<var>P</var>)<var><a name="index-dtmc-3"></a></var><br>
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
856 &mdash; Function File: <var>p</var> = <b>dtmc</b> (<var>P, n, p0</var>)<var><a name="index-dtmc-4"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
857 <blockquote>
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
858 <p><a name="index-Markov-chain_002c-discrete-time-5"></a><a name="index-Discrete-time-Markov-chain-6"></a><a name="index-Markov-chain_002c-stationary-probabilities-7"></a><a name="index-Stationary-probabilities-8"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
859 With a single argument, compute the steady-state probability vector
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
860 <var>p</var><code>(1), ..., </code><var>p</var><code>(N)</code> for a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
861 Discrete-Time Markov Chain given the N \times N transition
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
862 probability matrix <var>P</var>. With three arguments, compute the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
863 probability vector <var>p</var><code>(1), ..., </code><var>p</var><code>(N)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
864 after <var>n</var> steps, given initial probability vector <var>p0</var> at
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
865 time 0.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
866
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
867 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
868
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
869 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
870 <dt><var>P</var><dd><var>P</var><code>(i,j)</code> is the transition probability from state i
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
871 to state j. <var>P</var> must be an irreducible stochastic matrix,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
872 which means that the sum of each row must be 1 (\sum_j=1^N P_i j = 1), and the rank of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
873 <var>P</var> must be equal to its dimension.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
874
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
875 <br><dt><var>n</var><dd>Step at which to compute the transient probability
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
876
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
877 <br><dt><var>p0</var><dd><var>p0</var><code>(i)</code> is the probability that at step 0 the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
878 is in state i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
879
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
880 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
881
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
882 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
883
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
884 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
885 <dt><var>p</var><dd>If this function is invoked with a single argument,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
886 <var>p</var><code>(i)</code> is the steady-state probability that the system is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
887 in state i. <var>p</var> satisfies the equations p = p\bf P and \sum_i=1^N p_i = 1. If this function is invoked
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
888 with three arguments, <var>p</var><code>(i)</code> is the marginal probability
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
889 that the system is in state i at step <var>n</var>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
890 given the initial probabilities <var>p0</var><code>(i)</code> that the initial state is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
891 i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
892
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
893 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
894
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
895 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
896
9412
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
897 <p class="noindent"><strong>EXAMPLE</strong>
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
898
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
899 <pre class="example"><pre class="verbatim"> a = 0.2;
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
900 b = 0.15;
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
901 P = [ 1-a a; b 1-b];
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
902 T = 0:14;
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
903 pp = zeros(2,length(T));
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
904 for i=1:length(T)
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
905 pp(:,i) = dtmc(P,T(i),[1 0]);
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
906 endfor
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
907 ss = dtmc(P); # compute steady state probabilities
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
908 plot( T, pp(1,:), "b+;p_0(t);", "linewidth", 2, \
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
909 T, ss(1)*ones(size(T)), "b;Steady State;", \
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
910 T, pp(2,:), "r+;p_1(t);", "linewidth", 2, \
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
911 T, ss(2)*ones(size(T)), "r;Steady State;" );
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
912 xlabel("Time Step");</pre>
0bd7d96cb6e3 Documentation update
mmarzolla
parents: 9408
diff changeset
913 </pre>
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
914 <h4 class="subsection">4.1.2 Birth-Death process</h4>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
915
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
916 <p><a name="doc_002ddtmc_005fbd"></a>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
917
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
918 <div class="defun">
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
919 &mdash; Function File: <var>P</var> = <b>dtmc_bd</b> (<var>birth, death</var>)<var><a name="index-dtmc_005fbd-9"></a></var><br>
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
920 <blockquote>
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
921 <p><a name="index-Markov-chain_002c-discrete-time-10"></a><a name="index-Birth_002ddeath-process-11"></a>
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
922 Returns the N \times N transition probability matrix P
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
923 for a birth-death process with given rates.
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
924
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
925 <p><strong>INPUTS</strong>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
926
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
927 <dl>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
928 <dt><var>birth</var><dd>Vector with N-1 elements, where <var>birth</var><code>(i)</code> is the
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
929 transition probability from state i to state i+1.
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
930
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
931 <br><dt><var>death</var><dd>Vector with N-1 elements, where <var>death</var><code>(i)</code> is the
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
932 transition probability from state i+1 to state i.
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
933
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
934 </dl>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
935
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
936 <p><strong>OUTPUTS</strong>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
937
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
938 <dl>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
939 <dt><var>P</var><dd>Transition probability matrix for the birth-death process.
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
940
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
941 </dl>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
942
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
943 </blockquote></div>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
944
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
945 <h4 class="subsection">4.1.3 First passage times</h4>
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
946
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
947 <p>The First Passage Time M_i j is defined as the average
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
948 number of transitions needed to visit state j for the first
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
949 time, starting from state i. Matrix \bf M satisfies the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
950 property that
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
951
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
952 <pre class="example"> ___
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
953 \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
954 M_ij = 1 + &gt; P_ij * M_kj
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
955 /___
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
956 k!=j
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
957 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
958 <p><a name="doc_002ddtmc_005ffpt"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
959
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
960 <div class="defun">
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
961 &mdash; Function File: <var>M</var> = <b>dtmc_fpt</b> (<var>P</var>)<var><a name="index-dtmc_005ffpt-12"></a></var><br>
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
962 &mdash; Function File: <var>m</var> = <b>dtmc_fpt</b> (<var>P, i, j</var>)<var><a name="index-dtmc_005ffpt-13"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
963 <blockquote>
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
964 <p><a name="index-Markov-chain_002c-discrete-time-14"></a><a name="index-First-passage-times-15"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
965 If called with a single argument, computes the mean first passage
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
966 times <var>M</var><code>(i,j)</code>, that are the average number of transitions before
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
967 state <var>j</var> is reached, starting from state <var>i</var>, for all
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
968 1 \leq i, j \leq N. If called with three arguments, returns
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
969 the single value <var>m</var><code> = </code><var>M</var><code>(i,j)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
970
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
971 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
972
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
973 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
974 <dt><var>P</var><dd><var>P</var><code>(i,j)</code> is the transition probability from state i
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
975 to state j. <var>P</var> must be an irreducible stochastic matrix,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
976 which means that the sum of each row must be 1 (\sum_j=1^N
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
977 P_i j = 1), and the rank of <var>P</var> must be equal to its
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
978 dimension.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
979
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
980 <br><dt><var>i</var><dd>Initial state.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
981
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
982 <br><dt><var>j</var><dd>Destination state. If <var>j</var> is a vector, returns the mean first passage
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
983 time to any state in <var>j</var>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
984
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
985 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
986
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
987 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
988
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
989 <dl>
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
990 <dt><var>M</var><dd>If this function is called with a single argument,
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
991 <var>M</var><code>(i,j)</code> is the average number of transitions before state
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
992 <var>j</var> is reached for the first time, starting from state <var>i</var>.
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
993 <var>M</var><code>(i,i)</code> is the <em>mean recurrence time</em>, and
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
994 represents the average time needed to return to state <var>i</var>.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
995
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
996 <br><dt><var>m</var><dd>If this function is called with three arguments, the result <var>m</var>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
997 is the average number of transitions before state <var>j</var> is visited
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
998 for the first time, starting from state <var>i</var>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
999
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1000 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1001
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1002 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1003
9632
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1004 <h4 class="subsection">4.1.4 Mean Time to Absorption</h4>
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1005
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1006 <p><a name="doc_002ddtmc_005fmtta"></a>
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1007
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1008 <div class="defun">
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1009 &mdash; Function File: [<var>t</var> <var>B</var>] = <b>dtmc_mtta</b> (<var>P</var>)<var><a name="index-dtmc_005fmtta-16"></a></var><br>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1010 &mdash; Function File: [<var>t</var> <var>B</var>] = <b>dtmc_mtta</b> (<var>P, p0</var>)<var><a name="index-dtmc_005fmtta-17"></a></var><br>
9632
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1011 <blockquote>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1012 <p><a name="index-Markov-chain_002c-disctete-time-18"></a><a name="index-Mean-time-to-absorption-19"></a>
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1013 Compute the expected number of steps before absorption for the
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1014 DTMC with N \times N transition probability matrix <var>P</var>.
9632
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1015
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1016 <p><strong>INPUTS</strong>
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1017
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1018 <dl>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1019 <dt><var>P</var><dd>Transition probability matrix.
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1020
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1021 <br><dt><var>p0</var><dd>Initial state occupancy probabilities.
9632
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1022
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1023 </dl>
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1024
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1025 <p><strong>OUTPUTS</strong>
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1026
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1027 <dl>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1028 <dt><var>t</var><dd>When called with a single argument, <var>t</var> is a vector such that
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1029 <var>t</var><code>(i)</code> is the expected number of steps before being
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1030 absorbed, starting from state i. When called with two
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1031 arguments, <var>t</var> is a scalar and represents the average number of
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1032 steps before absorption, given initial state occupancy probabilities
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1033 <var>p0</var>.
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1034
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1035 <br><dt><var>B</var><dd>When called with a single argument, <var>B</var> is a N \times N
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1036 matrix where <var>B</var><code>(i,j)</code> is the probability of being absorbed
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1037 in state j, starting from state i; if j is not
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1038 absorbing, <var>B</var><code>(i,j) = 0</code>; if i is absorbing, then
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1039 <var>B</var><code>(i,i) = 1</code>. When called with two arguments, <var>B</var> is a
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1040 vector with N elements where <var>B</var><code>(j)</code> is the
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1041 probability of being absorbed in state <var>j</var>, given initial state
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1042 occupancy probabilities <var>p0</var>.
9632
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1043
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1044 </dl>
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1045
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1046 </blockquote></div>
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1047
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1048 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1049 <a name="Continuous-Time-Markov-Chains"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1050 <a name="Continuous_002dTime-Markov-Chains"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1051 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1052 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1053 Up:&nbsp;<a rel="up" accesskey="u" href="#Markov-Chains">Markov Chains</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1054
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1055 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1056
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1057 <h3 class="section">4.2 Continuous-Time Markov Chains</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1058
9629
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1059 <p>A stochastic process {X(t), t &ge; 0} is a continuous-time
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1060 Markov chain if, for all integers n, and for any sequence
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1061 t_0, t_1 , \ldots , t_n, t_n+1 such that t_0 &lt; t_1 &lt;
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1062 \ldots &lt; t_n &lt; t_n+1, we have
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1063
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1064 <p>P(X_n+1 = x_n+1 | X_n = x_n, X_n-1 = x_n-1, ..., X_0 = x_0) = P(X_n+1 = x_n+1 | X_n = x_n)
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1065
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1066 <p>A continuous-time Markov chain is defined according to an
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1067 <em>infinitesimal generator matrix</em> \bf Q = [Q_i,j] such
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1068 that for each i \neq j, Q_i, j is the transition rate
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1069 from state i to state j. The elements Q_i, i
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1070 must be defined in such a way that the infinitesimal generator matrix
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1071 \bf Q satisfies the property \sum_j=1^N Q_i,j = 0.
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1072
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1073 <p><a name="doc_002dctmc_005fcheck_005fQ"></a>
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
1074
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
1075 <div class="defun">
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1076 &mdash; Function File: [<var>result</var> <var>err</var>] = <b>ctmc_check_Q</b> (<var>Q</var>)<var><a name="index-ctmc_005fcheck_005fQ-20"></a></var><br>
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
1077 <blockquote>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1078 <p><a name="index-Markov-chain_002c-continuous-time-21"></a>
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
1079 If <var>Q</var> is a valid infinitesimal generator matrix, return
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
1080 the size (number of rows or columns) of <var>Q</var>. If <var>Q</var> is not
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
1081 an infinitesimal generator matrix, set <var>result</var> to zero, and
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
1082 <var>err</var> to an appropriate error string.
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
1083
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
1084 </blockquote></div>
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
1085
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1086 <ul class="menu">
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
1087 <li><a accesskey="1" href="#State-occupancy-probabilities">State occupancy probabilities</a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1088 <li><a accesskey="2" href="#Birth_002dDeath-process">Birth-Death process</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1089 <li><a accesskey="3" href="#Expected-Sojourn-Time">Expected Sojourn Time</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1090 <li><a accesskey="4" href="#Time_002dAveraged-Expected-Sojourn-Time">Time-Averaged Expected Sojourn Time</a>
9632
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1091 <li><a accesskey="5" href="#Mean-Time-to-Absorption">Mean Time to Absorption</a>
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
1092 <li><a accesskey="6" href="#First-Passage-Times">First Passage Times</a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1093 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1094
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1095 <div class="node">
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
1096 <a name="State-occupancy-probabilities"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1097 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1098 Next:&nbsp;<a rel="next" accesskey="n" href="#Birth_002dDeath-process">Birth-Death process</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1099 Up:&nbsp;<a rel="up" accesskey="u" href="#Continuous_002dTime-Markov-Chains">Continuous-Time Markov Chains</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1100
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1101 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1102
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
1103 <h4 class="subsection">4.2.1 State occupancy probabilities</h4>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1104
9629
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1105 <p>Similarly to the discrete case, we denote with \bf \pi(t) =
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1106 (\pi_1(t), \pi_2(t), <small class="dots">...</small>, \pi_N(t) ) the <em>state occupancy
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1107 probability vector</em> at time t. \pi_i(t) denotes the
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1108 probability that the system is in state i at time t &ge; 0.
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1109
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1110 <p>Given the infinitesimal generator matrix \bf Q and the initial
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1111 state occupancy probability vector \bf \pi(0) = (\pi_1(0),
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1112 \pi_2(0), <small class="dots">...</small>, \pi_N(0)), the state occupancy probability vector
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1113 \bf \pi(t) at time t can be computed as:
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1114
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1115 <pre class="example"> \pi(t) = \pi(0) exp(Qt)
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1116 </pre>
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1117 <p class="noindent">where \exp( \bf Q t ) is the matrix exponential
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1118 of \bf Q t. Under certain conditions, there exists a
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1119 <em>stationary state occupancy probability</em> \bf \pi =
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1120 \lim_t \rightarrow +\infty \bf \pi(t), which is independent from
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1121 the initial state occupancy \bf \pi(0). The stationary state
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1122 occupancy probability vector \bf \pi satisfies
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1123 \bf \pi \bf Q = \bf 0 and \sum_i=1^N \pi_i = 1.
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1124
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1125 <p><a name="doc_002dctmc"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1126
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1127 <div class="defun">
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1128 &mdash; Function File: <var>p</var> = <b>ctmc</b> (<var>Q</var>)<var><a name="index-ctmc-22"></a></var><br>
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1129 &mdash; Function File: <var>p</var> = <b>ctmc</b> (<var>Q, t. p0</var>)<var><a name="index-ctmc-23"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1130 <blockquote>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1131 <p><a name="index-Markov-chain_002c-continuous-time-24"></a><a name="index-Continuous-time-Markov-chain-25"></a><a name="index-Markov-chain_002c-state-occupancy-probabilities-26"></a><a name="index-Stationary-probabilities-27"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1132 With a single argument, compute the stationary state occupancy
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1133 probability vector <var>p</var>(1), <small class="dots">...</small>, <var>p</var>(N) for a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1134 Continuous-Time Markov Chain with infinitesimal generator matrix
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1135 <var>Q</var> of size N \times N. With three arguments, compute the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1136 state occupancy probabilities <var>p</var>(1), <small class="dots">...</small>, <var>p</var>(N) at time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1137 <var>t</var>, given initial state occupancy probabilities <var>p0</var> at time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1138 0.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1139
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1140 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1141
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1142 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1143 <dt><var>Q</var><dd>Infinitesimal generator matrix. <var>Q</var> is a N \times N square
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1144 matrix where <var>Q</var><code>(i,j)</code> is the transition rate from state
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1145 i to state j, for 1 &le; i \neq j &le; N.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1146 Transition rates must be nonnegative, and \sum_j=1^N Q_i j = 0
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1147
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1148 <br><dt><var>t</var><dd>Time at which to compute the transient probability
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1149
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1150 <br><dt><var>p0</var><dd><var>p0</var><code>(i)</code> is the probability that the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1151 is in state i at time 0 .
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1152
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1153 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1154
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1155 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1156
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1157 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1158 <dt><var>p</var><dd>If this function is invoked with a single argument,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1159 <var>p</var><code>(i)</code> is the steady-state probability that the system is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1160 in state i, i = 1, <small class="dots">...</small>, N. The vector <var>p</var>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1161 satisfies the equation p\bf Q = 0 and \sum_i=1^N p_i = 1.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1162 If this function is invoked with three arguments, <var>p</var><code>(i)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1163 is the probability that the system is in state i at time <var>t</var>,
9629
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1164 given the initial occupancy probabilities <var>p0</var>.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1165
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1166 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1167
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1168 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1169
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1170 <p class="noindent"><strong>EXAMPLE</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1171
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1172 <p>Consider a two-state CTMC such that transition rates between states
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1173 are equal to 1. This can be solved as follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1174
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1175 <pre class="example"><pre class="verbatim"> Q = [ -1 1; \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1176 1 -1 ];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1177 q = ctmc(Q)</pre> &rArr; q = 0.50000 0.50000
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1178 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1179 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1180 <a name="Birth-Death-process"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1181 <a name="Birth_002dDeath-process"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1182 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1183 Next:&nbsp;<a rel="next" accesskey="n" href="#Expected-Sojourn-Time">Expected Sojourn Time</a>,
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
1184 Previous:&nbsp;<a rel="previous" accesskey="p" href="#State-occupancy-probabilities">State occupancy probabilities</a>,
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1185 Up:&nbsp;<a rel="up" accesskey="u" href="#Continuous_002dTime-Markov-Chains">Continuous-Time Markov Chains</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1186
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1187 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1188
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1189 <h4 class="subsection">4.2.2 Birth-Death process</h4>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1190
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1191 <p><a name="doc_002dctmc_005fbd"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1192
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1193 <div class="defun">
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1194 &mdash; Function File: <var>Q</var> = <b>ctmc_bd</b> (<var>birth, death</var>)<var><a name="index-ctmc_005fbd-28"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1195 <blockquote>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1196 <p><a name="index-Markov-chain_002c-continuous-time-29"></a><a name="index-Birth_002ddeath-process-30"></a>
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
1197 Returns the N \times N infinitesimal generator matrix Q
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
1198 for a birth-death process with given rates.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1199
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1200 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1201
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1202 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1203 <dt><var>birth</var><dd>Vector with N-1 elements, where <var>birth</var><code>(i)</code> is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1204 transition rate from state i to state i+1.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1205
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1206 <br><dt><var>death</var><dd>Vector with N-1 elements, where <var>death</var><code>(i)</code> is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1207 transition rate from state i+1 to state i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1208
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1209 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1210
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1211 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1212
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1213 <dl>
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
1214 <dt><var>Q</var><dd>Infinitesimal generator matrix for the birth-death process.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1215
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1216 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1217
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1218 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1219
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1220 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1221 <a name="Expected-Sojourn-Time"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1222 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1223 Next:&nbsp;<a rel="next" accesskey="n" href="#Time_002dAveraged-Expected-Sojourn-Time">Time-Averaged Expected Sojourn Time</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1224 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Birth_002dDeath-process">Birth-Death process</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1225 Up:&nbsp;<a rel="up" accesskey="u" href="#Continuous_002dTime-Markov-Chains">Continuous-Time Markov Chains</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1226
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1227 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1228
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1229 <h4 class="subsection">4.2.3 Expected Sojourn Time</h4>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1230
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1231 <p>Given a N state continuous-time Markov Chain with infinitesimal
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1232 generator matrix \bf Q, we define the vector \bf L(t) =
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1233 (L_1(t), L_2(t), \ldots L_N(t)) such that L_i(t) is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1234 expected sojourn time in state i during the interval
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1235 [0,t), assuming that the initial occupancy probability at time
9629
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1236 0 was \bf \pi(0). \bf L(t) is the solution of
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1237 the following differential equation:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1238
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1239 <pre class="example"> dL
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1240 --(t) = L(t) Q + pi(0), L(0) = 0
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1241 dt
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1242 </pre>
9629
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1243 <p>Alternatively, \bf L(t) can also be expressed in integral
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1244 form as:
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1245
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1246 <pre class="example"> / t
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1247 L(t) = | pi(u) du
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1248 / u=0
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1249 </pre>
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1250 <p class="noindent">where \bf \pi(t) = \bf \pi(0) \exp(\bf Qt) is
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1251 the state occupancy probability at time t.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1252
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1253 <p><a name="doc_002dctmc_005fexps"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1254
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1255 <div class="defun">
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1256 &mdash; Function File: <var>L</var> = <b>ctmc_exps</b> (<var>Q, t, p </var>)<var><a name="index-ctmc_005fexps-31"></a></var><br>
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1257 &mdash; Function File: <var>L</var> = <b>ctmc_exps</b> (<var>Q, p</var>)<var><a name="index-ctmc_005fexps-32"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1258 <blockquote>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1259 <p><a name="index-Markov-chain_002c-continuous-time-33"></a><a name="index-Expected-sojourn-time-34"></a>
9625
c2e1990614a2 New signature for ctmc_exps() and ctmc_taexps()
mmarzolla
parents: 9622
diff changeset
1260 With three arguments, compute the expected times <var>L</var><code>(i)</code>
c2e1990614a2 New signature for ctmc_exps() and ctmc_taexps()
mmarzolla
parents: 9622
diff changeset
1261 spent in each state i during the time interval
c2e1990614a2 New signature for ctmc_exps() and ctmc_taexps()
mmarzolla
parents: 9622
diff changeset
1262 [0,t], assuming that the state occupancy probabilities
c2e1990614a2 New signature for ctmc_exps() and ctmc_taexps()
mmarzolla
parents: 9622
diff changeset
1263 at time 0 are <var>p</var>. With two arguments, compute the expected time
c2e1990614a2 New signature for ctmc_exps() and ctmc_taexps()
mmarzolla
parents: 9622
diff changeset
1264 <var>L</var><code>(i)</code> spent in each state i until absorption.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1265
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1266 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1267
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1268 <dl>
9622
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
1269 <dt><var>Q</var><dd>N \times N infinitesimal generator matrix. <var>Q</var><code>(i,j)</code>
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
1270 is the transition rate from state i to state j, 1
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
1271 &le; i \neq j &le; N. The matrix <var>Q</var> must also satisfy the
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
1272 condition \sum_j=1^N Q_ij = 0.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1273
9625
c2e1990614a2 New signature for ctmc_exps() and ctmc_taexps()
mmarzolla
parents: 9622
diff changeset
1274 <br><dt><var>t</var><dd>Time
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1275
9622
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
1276 <br><dt><var>p</var><dd>Initial occupancy probability vector; <var>p</var><code>(i)</code> is the
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
1277 probability the system is in state i at time 0, i = 1,
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
1278 <small class="dots">...</small>, N
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1279
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1280 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1281
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1282 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1283
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1284 <dl>
9625
c2e1990614a2 New signature for ctmc_exps() and ctmc_taexps()
mmarzolla
parents: 9622
diff changeset
1285 <dt><var>L</var><dd>If this function is called with three arguments, <var>L</var><code>(i)</code> is
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
1286 the expected time spent in state i during the interval
9625
c2e1990614a2 New signature for ctmc_exps() and ctmc_taexps()
mmarzolla
parents: 9622
diff changeset
1287 [0,t]. If this function is called with two arguments
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
1288 <var>L</var><code>(i)</code> is either the expected time spent in state i until
9625
c2e1990614a2 New signature for ctmc_exps() and ctmc_taexps()
mmarzolla
parents: 9622
diff changeset
1289 absorption (if i is a transient state), or zero
c2e1990614a2 New signature for ctmc_exps() and ctmc_taexps()
mmarzolla
parents: 9622
diff changeset
1290 (if <var>i</var> is an absorbing state).
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1291
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1292 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1293
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1294 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1295
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1296 <p class="noindent"><strong>EXAMPLE</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1297
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1298 <p>Let us consider a pure-birth, 4-states CTMC such that the transition
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1299 rate from state i to state i+1 is \lambda_i = i
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1300 \lambda (i=1, 2, 3), with \lambda = 0.5. The following
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1301 code computes the expected sojourn time in state i,
9629
387026da0f94 improvements to the documentation
mmarzolla
parents: 9628
diff changeset
1302 given the initial occupancy probability \bf \pi_0=(1,0,0,0).
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1303
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1304 <pre class="example"><pre class="verbatim"> lambda = 0.5;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1305 N = 4;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1306 birth = lambda*linspace(1,N-1,N-1);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1307 death = zeros(1,N-1);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1308 Q = diag(birth,1)+diag(death,-1);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1309 Q -= diag(sum(Q,2));
9626
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1310 t = linspace(0,10,100);
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1311 p0 = zeros(1,N); p0(1)=1;
9626
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1312 L = zeros(length(t),N);
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1313 for i=1:length(t)
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1314 L(i,:) = ctmc_exps(Q,t(i),p0);
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1315 endfor
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1316 plot( t, L(:,1), ";State 1;", "linewidth", 2, \
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1317 t, L(:,2), ";State 2;", "linewidth", 2, \
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1318 t, L(:,3), ";State 3;", "linewidth", 2, \
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1319 t, L(:,4), ";State 4;", "linewidth", 2 );
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1320 legend("location","northwest");
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1321 xlabel("Time");
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1322 ylabel("Expected sojourn time");</pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1323 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1324 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1325 <a name="Time-Averaged-Expected-Sojourn-Time"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1326 <a name="Time_002dAveraged-Expected-Sojourn-Time"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1327 <p><hr>
9632
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1328 Next:&nbsp;<a rel="next" accesskey="n" href="#Mean-Time-to-Absorption">Mean Time to Absorption</a>,
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1329 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Expected-Sojourn-Time">Expected Sojourn Time</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1330 Up:&nbsp;<a rel="up" accesskey="u" href="#Continuous_002dTime-Markov-Chains">Continuous-Time Markov Chains</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1331
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1332 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1333
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1334 <h4 class="subsection">4.2.4 Time-Averaged Expected Sojourn Time</h4>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1335
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1336 <p><a name="doc_002dctmc_005ftaexps"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1337
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1338 <div class="defun">
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
1339 &mdash; Function File: <var>M</var> = <b>ctmc_taexps</b> (<var>Q, t, p</var>)<var><a name="index-ctmc_005ftaexps-35"></a></var><br>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1340 &mdash; Function File: <var>M</var> = <b>ctmc_taexps</b> (<var>Q, p</var>)<var><a name="index-ctmc_005ftaexps-36"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1341 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1342 <p><a name="index-Markov-chain_002c-continuous-time-37"></a><a name="index-Time_002dalveraged-sojourn-time-38"></a>
9625
c2e1990614a2 New signature for ctmc_exps() and ctmc_taexps()
mmarzolla
parents: 9622
diff changeset
1343 Compute the <em>time-averaged sojourn time</em> <var>M</var><code>(i)</code>,
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1344 defined as the fraction of the time interval [0,t] (or until
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1345 absorption) spent in state i, assuming that the state
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1346 occupancy probabilities at time 0 are <var>p</var>.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1347
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1348 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1349
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1350 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1351 <dt><var>Q</var><dd>Infinitesimal generator matrix. <var>Q</var><code>(i,j)</code> is the transition
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1352 rate from state i to state j,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1353 1 &le; i \neq j &le; N. The
9625
c2e1990614a2 New signature for ctmc_exps() and ctmc_taexps()
mmarzolla
parents: 9622
diff changeset
1354 matrix <var>Q</var> must also satisfy the condition \sum_j=1^N Q_ij = 0
c2e1990614a2 New signature for ctmc_exps() and ctmc_taexps()
mmarzolla
parents: 9622
diff changeset
1355
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1356 <br><dt><var>t</var><dd>Time. If omitted, the results are computed until absorption.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1357
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1358 <br><dt><var>p</var><dd><var>p</var><code>(i)</code> is the probability that, at time 0, the system was in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1359 state i, for all i = 1, <small class="dots">...</small>, N
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1360
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1361 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1362
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1363 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1364
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1365 <dl>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1366 <dt><var>M</var><dd>If this function is called with three parameters, <var>M</var><code>(i)</code>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1367 is the expected fraction of the interval 0,t] spent in state
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1368 i assuming that the state occupancy probability at time zero
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1369 is <var>p</var>. If this function is called with two parameters,
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1370 <var>M</var><code>(i)</code> is the expected fraction of time until absorption
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1371 spent in state i.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1372
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1373 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1374
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1375 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1376
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1377 <p class="noindent"><strong>EXAMPLE</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1378
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1379 <pre class="example"><pre class="verbatim"> lambda = 0.5;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1380 N = 4;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1381 birth = lambda*linspace(1,N-1,N-1);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1382 death = zeros(1,N-1);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1383 Q = diag(birth,1)+diag(death,-1);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1384 Q -= diag(sum(Q,2));
9626
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1385 t = linspace(1e-5,30,100);
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1386 p = zeros(1,N); p(1)=1;
9626
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1387 M = zeros(length(t),N);
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1388 for i=1:length(t)
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1389 M(i,:) = ctmc_taexps(Q,t(i),p);
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1390 endfor
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1391 plot(t, M(:,1), ";State 1;", "linewidth", 2, \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1392 t, M(:,2), ";State 2;", "linewidth", 2, \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1393 t, M(:,3), ";State 3;", "linewidth", 2, \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1394 t, M(:,4), ";State 4 (absorbing);", "linewidth", 2 );
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1395 legend("location","east");
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1396 xlabel("Time");
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1397 ylabel("Time-averaged Expected sojourn time");</pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1398 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1399 <div class="node">
9632
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1400 <a name="Mean-Time-to-Absorption"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1401 <p><hr>
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
1402 Next:&nbsp;<a rel="next" accesskey="n" href="#First-Passage-Times">First Passage Times</a>,
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1403 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Time_002dAveraged-Expected-Sojourn-Time">Time-Averaged Expected Sojourn Time</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1404 Up:&nbsp;<a rel="up" accesskey="u" href="#Continuous_002dTime-Markov-Chains">Continuous-Time Markov Chains</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1405
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1406 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1407
9632
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1408 <h4 class="subsection">4.2.5 Mean Time to Absorption</h4>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1409
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1410 <p>If we consider a Markov Chain with absorbing states, it is possible to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1411 define the <em>expected time to absorption</em> as the expected time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1412 until the system goes into an absorbing state. More specifically, let
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1413 us suppose that A is the set of transient (i.e., non-absorbing)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1414 states of a CTMC with N states and infinitesimal generator
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1415 matrix \bf Q. The expected time to absorption \bf
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1416 L_A(\infty) is defined as the solution of the following equation:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1417
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1418 <pre class="example"> L_A( inf ) Q_A = -pi_A(0)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1419 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1420 <p class="noindent">where \bf Q_A is the restriction of matrix \bf Q to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1421 only states in A, and \bf \pi_A(0) is the initial
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1422 state occupancy probability at time 0, restricted to states in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1423 A.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1424
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1425 <p><a name="doc_002dctmc_005fmtta"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1426
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1427 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1428 &mdash; Function File: <var>t</var> = <b>ctmc_mtta</b> (<var>Q, p</var>)<var><a name="index-ctmc_005fmtta-39"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1429 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1430 <p><a name="index-Markov-chain_002c-continuous-time-40"></a><a name="index-Mean-time-to-absorption-41"></a>
9622
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
1431 Compute the Mean-Time to Absorption (MTTA) of the CTMC described by
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
1432 the infinitesimal generator matrix <var>Q</var>, starting from initial
9625
c2e1990614a2 New signature for ctmc_exps() and ctmc_taexps()
mmarzolla
parents: 9622
diff changeset
1433 occupancy probabilities <var>p</var>. If there are no absorbing states, this
9622
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
1434 function fails with an error.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1435
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1436 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1437
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1438 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1439 <dt><var>Q</var><dd>N \times N infinitesimal generator matrix. <var>Q</var><code>(i,j)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1440 is the transition rate from state i to state j, i
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1441 \neq j. The matrix <var>Q</var> must satisfy the condition
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1442 \sum_j=1^N Q_i j = 0
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1443
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1444 <br><dt><var>p</var><dd><var>p</var><code>(i)</code> is the probability that the system is in state i
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1445 at time 0, for each i=1, <small class="dots">...</small>, N
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1446
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1447 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1448
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1449 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1450
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1451 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1452 <dt><var>t</var><dd>Mean time to absorption of the process represented by matrix <var>Q</var>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1453 If there are no absorbing states, this function fails.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1454
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1455 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1456
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1457 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1458
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1459 <p class="noindent"><strong>EXAMPLE</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1460
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1461 <p>Let us consider a simple model of a redundant disk array. We assume
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1462 that the array is made of 5 independent disks, such that the array can
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1463 tolerate up to 2 disk failures without losing data. If three or more
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1464 disks break, the array is dead and unrecoverable. We want to estimate
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1465 the Mean-Time-To-Failure (MTTF) of the disk array.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1466
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1467 <p>We model this system as a 4 states Markov chain with state space
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1468 \ 2, 3, 4, 5 \. State i denotes the fact that exactly
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1469 i disks are active; state 2 is absorbing. Let \mu
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1470 be the failure rate of a single disk. The system starts in state
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1471 5 (all disks are operational). We use a pure death process,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1472 with death rate from state i to state i-1 is \mu
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1473 i, for i = 3, 4, 5).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1474
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1475 <p>The MTTF of the disk array is the MTTA of the Markov Chain, and can be
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1476 computed with the following expression:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1477
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1478 <pre class="example"><pre class="verbatim"> mu = 0.01;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1479 death = [ 3 4 5 ] * mu;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1480 Q = diag(death,-1);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1481 Q -= diag(sum(Q,2));
9626
c4728d463424 updated documentation
mmarzolla
parents: 9625
diff changeset
1482 [t L] = ctmc_mtta(Q,[0 0 0 1])</pre> &rArr; t = 78.333
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1483 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1484 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1485
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1486 <p>G. Bolch, S. Greiner, H. de Meer and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1487 K. Trivedi, <cite>Queueing Networks and Markov Chains: Modeling and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1488 Performance Evaluation with Computer Science Applications</cite>, Wiley,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1489 1998.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1490
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1491 <p><a name="index-Bolch_002c-G_002e-42"></a><a name="index-Greiner_002c-S_002e-43"></a><a name="index-de-Meer_002c-H_002e-44"></a><a name="index-Trivedi_002c-K_002e-45"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1492 <div class="node">
9627
8e744625e429 New function dtmc_bd() added; misc fixes and improvements
mmarzolla
parents: 9626
diff changeset
1493 <a name="First-Passage-Times"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1494 <p><hr>
9632
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
1495 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Mean-Time-to-Absorption">Mean Time to Absorption</a>,
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1496 Up:&nbsp;<a rel="up" accesskey="u" href="#Continuous_002dTime-Markov-Chains">Continuous-Time Markov Chains</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1497
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1498 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1499
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1500 <h4 class="subsection">4.2.6 First Passage Times</h4>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1501
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1502 <p><a name="doc_002dctmc_005ffpt"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1503
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1504 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1505 &mdash; Function File: <var>M</var> = <b>ctmc_fpt</b> (<var>Q</var>)<var><a name="index-ctmc_005ffpt-46"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1506 &mdash; Function File: <var>m</var> = <b>ctmc_fpt</b> (<var>Q, i, j</var>)<var><a name="index-ctmc_005ffpt-47"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1507 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1508 <p><a name="index-Markov-chain_002c-continuous-time-48"></a><a name="index-First-passage-times-49"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1509 If called with a single argument, computes the mean first passage
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1510 times <var>M</var><code>(i,j)</code>, the average times before state <var>j</var> is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1511 reached, starting from state <var>i</var>, for all 1 \leq i, j \leq
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1512 N. If called with three arguments, returns the single value
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1513 <var>m</var><code> = </code><var>M</var><code>(i,j)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1514
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1515 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1516
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1517 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1518 <dt><var>Q</var><dd>Infinitesimal generator matrix. <var>Q</var> is a N \times N square
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1519 matrix where <var>Q</var><code>(i,j)</code> is the transition rate from state
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1520 i to state j, for 1 &le; i \neq j &le; N.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1521 Transition rates must be nonnegative, and \sum_j=1^N Q_i j = 0
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1522
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1523 <br><dt><var>i</var><dd>Initial state.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1524
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1525 <br><dt><var>j</var><dd>Destination state. If <var>j</var> is a vector, returns the mean first passage
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1526 time to any state in <var>j</var>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1527
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1528 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1529
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1530 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1531
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1532 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1533 <dt><var>M</var><dd>If this function is called with a single argument, the result
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1534 <var>M</var><code>(i,j)</code> is the average time before state
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1535 <var>j</var> is visited for the first time, starting from state <var>i</var>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1536
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1537 <br><dt><var>m</var><dd>If this function is called with three arguments, the result
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1538 <var>m</var> is the average time before state <var>j</var> is visited for the first
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1539 time, starting from state <var>i</var>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1540
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1541 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1542
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1543 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1544
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1545 <!-- DO NOT EDIT! Generated automatically by munge-texi. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1546 <!-- *- texinfo -*- -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1547 <!-- Copyright (C) 2008, 2009, 2010, 2011, 2012 Moreno Marzolla -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1548 <!-- This file is part of the queueing toolbox, a Queueing Networks -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1549 <!-- analysis package for GNU Octave. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1550 <!-- The queueing toolbox is free software; you can redistribute it -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1551 <!-- and/or modify it under the terms of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1552 <!-- as published by the Free Software Foundation; either version 3 of -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1553 <!-- the License, or (at your option) any later version. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1554 <!-- The queueing toolbox is distributed in the hope that it will be -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1555 <!-- useful, but WITHOUT ANY WARRANTY; without even the implied warranty -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1556 <!-- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1557 <!-- GNU General Public License for more details. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1558 <!-- You should have received a copy of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1559 <!-- along with the queueing toolbox; see the file COPYING. If not, see -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1560 <!-- <http://www.gnu.org/licenses/>. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1561 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1562 <a name="Single-Station-Queueing-Systems"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1563 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1564 Next:&nbsp;<a rel="next" accesskey="n" href="#Queueing-Networks">Queueing Networks</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1565 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Markov-Chains">Markov Chains</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1566 Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1567
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1568 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1569
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1570 <h2 class="chapter">5 Single Station Queueing Systems</h2>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1571
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1572 <p>Single Station Queueing Systems contain a single station, and are thus
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1573 quite easy to analyze. The <code>queueing</code> package contains functions
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1574 for handling the following types of queues:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1575
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1576 <ul class="menu">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1577 <li><a accesskey="1" href="#The-M_002fM_002f1-System">The M/M/1 System</a>: Single-server queueing station.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1578 <li><a accesskey="2" href="#The-M_002fM_002fm-System">The M/M/m System</a>: Multiple-server queueing station.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1579 <li><a accesskey="3" href="#The-M_002fM_002finf-System">The M/M/inf System</a>: Infinite-server (delay center) station.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1580 <li><a accesskey="4" href="#The-M_002fM_002f1_002fK-System">The M/M/1/K System</a>: Single-server, finite-capacity queueing station.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1581 <li><a accesskey="5" href="#The-M_002fM_002fm_002fK-System">The M/M/m/K System</a>: Multiple-server, finite-capacity queueing station.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1582 <li><a accesskey="6" href="#The-Asymmetric-M_002fM_002fm-System">The Asymmetric M/M/m System</a>: Asymmetric multiple-server queueing station.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1583 <li><a accesskey="7" href="#The-M_002fG_002f1-System">The M/G/1 System</a>: Single-server with general service time distribution.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1584 <li><a accesskey="8" href="#The-M_002fHm_002f1-System">The M/Hm/1 System</a>: Single-server with hyperexponential service time distribution.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1585 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1586
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1587 <p>The functions which analyze the queues above can be used as building
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1588 blocks for analyzing Queueing Networks. For example, Jackson networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1589 can be solved by computing the aggregate arrival rates to each node,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1590 and then solving each node in isolation as if it were a single station
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1591 queueing system.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1592
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1593 <!-- M/M/1 -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1594 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1595 <a name="The-M%2fM%2f1-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1596 <a name="The-M_002fM_002f1-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1597 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1598 Next:&nbsp;<a rel="next" accesskey="n" href="#The-M_002fM_002fm-System">The M/M/m System</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1599 Up:&nbsp;<a rel="up" accesskey="u" href="#Single-Station-Queueing-Systems">Single Station Queueing Systems</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1600
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1601 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1602
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1603 <h3 class="section">5.1 The M/M/1 System</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1604
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1605 <p>The M/M/1 system is made of a single server connected to an
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1606 unlimited FCFS queue. The mean arrival rate is Poisson with arrival
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1607 rate \lambda; the service time is exponentially distributed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1608 with average service rate \mu. The system is stable if
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1609 \lambda &lt; \mu.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1610
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1611 <p><a name="doc_002dqnmm1"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1612
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1613 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1614 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>, <var>p0</var>] = <b>qnmm1</b> (<var>lambda, mu</var>)<var><a name="index-qnmm1-50"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1615 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1616 <p><a name="index-g_t_0040math_007bM_002fM_002f1_007d-system-51"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1617 Compute utilization, response time, average number of requests
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1618 and throughput for a M/M/1 queue.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1619
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1620 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1621
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1622 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1623 <dt><var>lambda</var><dd>Arrival rate (<var>lambda</var><code> &gt; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1624
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1625 <br><dt><var>mu</var><dd>Service rate (<var>mu</var><code> &gt; </code><var>lambda</var>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1626
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1627 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1628
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1629 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1630
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1631 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1632 <dt><var>U</var><dd>Server utilization
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1633
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1634 <br><dt><var>R</var><dd>Service center response time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1635
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1636 <br><dt><var>Q</var><dd>Average number of requests in the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1637
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1638 <br><dt><var>X</var><dd>Service center throughput. If the system is ergodic,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1639 we will always have <var>X</var><code> = </code><var>lambda</var>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1640
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1641 <br><dt><var>p0</var><dd>Steady-state probability that there are no requests in the system.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1642
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1643 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1644
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1645 <p><var>lambda</var> and <var>mu</var> can be vectors of the same size. In this
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1646 case, the results will be vectors as well.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1647
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1648 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1649
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1650 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1651 <strong>See also:</strong> qnmmm, qnmminf, qnmmmk.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1652
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1653 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1654
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1655 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1656
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1657 <p class="noindent">G. Bolch, S. Greiner, H. de Meer and K. Trivedi, <cite>Queueing Networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1658 and Markov Chains: Modeling and Performance Evaluation with Computer
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1659 Science Applications</cite>, Wiley, 1998, Section 6.3.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1660
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1661 <p><a name="index-Bolch_002c-G_002e-52"></a><a name="index-Greiner_002c-S_002e-53"></a><a name="index-de-Meer_002c-H_002e-54"></a><a name="index-Trivedi_002c-K_002e-55"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1662 <!-- M/M/m -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1663 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1664 <a name="The-M%2fM%2fm-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1665 <a name="The-M_002fM_002fm-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1666 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1667 Next:&nbsp;<a rel="next" accesskey="n" href="#The-M_002fM_002finf-System">The M/M/inf System</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1668 Previous:&nbsp;<a rel="previous" accesskey="p" href="#The-M_002fM_002f1-System">The M/M/1 System</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1669 Up:&nbsp;<a rel="up" accesskey="u" href="#Single-Station-Queueing-Systems">Single Station Queueing Systems</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1670
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1671 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1672
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1673 <h3 class="section">5.2 The M/M/m System</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1674
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1675 <p>The M/M/m system is similar to the M/M/1 system, except
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1676 that there are m \geq 1 identical servers connected to a single
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1677 queue. Thus, at most m requests can be served at the same
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1678 time. The M/M/m system can be seen as a single server with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1679 load-dependent service rate \mu(n), which is a function of the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1680 number n of nodes in the center:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1681
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1682 <pre class="example"> <code>mu(n) = min(m,n)*mu</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1683 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1684 <p><a name="doc_002dqnmmm"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1685
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1686 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1687 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>, <var>p0</var>, <var>pm</var>] = <b>qnmmm</b> (<var>lambda, mu</var>)<var><a name="index-qnmmm-56"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1688 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>, <var>p0</var>, <var>pm</var>] = <b>qnmmm</b> (<var>lambda, mu, m</var>)<var><a name="index-qnmmm-57"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1689 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1690 <p><a name="index-g_t_0040math_007bM_002fM_002fm_007d-system-58"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1691 Compute utilization, response time, average number of requests in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1692 service and throughput for a M/M/m queue, a queueing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1693 system with m identical service centers connected to a single queue.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1694
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1695 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1696
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1697 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1698 <dt><var>lambda</var><dd>Arrival rate (<var>lambda</var><code>&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1699
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1700 <br><dt><var>mu</var><dd>Service rate (<var>mu</var><code>&gt;</code><var>lambda</var>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1701
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1702 <br><dt><var>m</var><dd>Number of servers (<var>m</var><code> &ge; 1</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1703 If omitted, it is assumed <var>m</var><code>=1</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1704
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1705 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1706
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1707 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1708
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1709 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1710 <dt><var>U</var><dd>Service center utilization, U = \lambda / (m \mu).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1711
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1712 <br><dt><var>R</var><dd>Service center response time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1713
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1714 <br><dt><var>Q</var><dd>Average number of requests in the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1715
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1716 <br><dt><var>X</var><dd>Service center throughput. If the system is ergodic,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1717 we will always have <var>X</var><code> = </code><var>lambda</var>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1718
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1719 <br><dt><var>p0</var><dd>Steady-state probability that there are 0 requests in the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1720
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1721 <br><dt><var>pm</var><dd>Steady-state probability that an arriving request has to wait in the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1722 queue
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1723
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1724 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1725
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1726 <p><var>lambda</var>, <var>mu</var> and <var>m</var> can be vectors of the same size. In this
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1727 case, the results will be vectors as well.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1728
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1729 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1730
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1731 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1732 <strong>See also:</strong> qnmm1,qnmminf,qnmmmk.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1733
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1734 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1735
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1736 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1737
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1738 <p class="noindent">G. Bolch, S. Greiner, H. de Meer and K. Trivedi, <cite>Queueing Networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1739 and Markov Chains: Modeling and Performance Evaluation with Computer
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1740 Science Applications</cite>, Wiley, 1998, Section 6.5.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1741
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1742 <p><a name="index-Bolch_002c-G_002e-59"></a><a name="index-Greiner_002c-S_002e-60"></a><a name="index-de-Meer_002c-H_002e-61"></a><a name="index-Trivedi_002c-K_002e-62"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1743 <!-- M/M/inf -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1744 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1745 <a name="The-M%2fM%2finf-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1746 <a name="The-M_002fM_002finf-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1747 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1748 Next:&nbsp;<a rel="next" accesskey="n" href="#The-M_002fM_002f1_002fK-System">The M/M/1/K System</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1749 Previous:&nbsp;<a rel="previous" accesskey="p" href="#The-M_002fM_002fm-System">The M/M/m System</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1750 Up:&nbsp;<a rel="up" accesskey="u" href="#Single-Station-Queueing-Systems">Single Station Queueing Systems</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1751
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1752 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1753
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1754 <h3 class="section">5.3 The M/M/inf System</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1755
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1756 <p>The M/M/\infty system is similar to the M/M/m system,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1757 except that there are infinitely many identical servers (that is,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1758 m = \infty). Each new request is assigned to a new server, so
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1759 that queueing never occurs. The M/M/\infty system is always
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1760 stable.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1761
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1762 <p><a name="doc_002dqnmminf"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1763
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1764 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1765 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>, <var>p0</var>] = <b>qnmminf</b> (<var>lambda, mu</var>)<var><a name="index-qnmminf-63"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1766 <blockquote>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1767 <p>Compute utilization, response time, average number of requests and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1768 throughput for a M/M/\infty queue. This is a system with an
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1769 infinite number of identical servers. Note that a M/M/\infty
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1770 system is always stable, regardless the values of the arrival and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1771 service rates.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1772
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1773 <p><a name="index-g_t_0040math_007bM_002fM_002f_007dinf-system-64"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1774
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1775 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1776
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1777 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1778 <dt><var>lambda</var><dd>Arrival rate (<var>lambda</var><code>&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1779
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1780 <br><dt><var>mu</var><dd>Service rate (<var>mu</var><code>&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1781
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1782 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1783
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1784 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1785
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1786 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1787 <dt><var>U</var><dd>Traffic intensity (defined as \lambda/\mu). Note that this is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1788 different from the utilization, which in the case of M/M/\infty
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1789 centers is always zero.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1790
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1791 <p><a name="index-traffic-intensity-65"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1792 <br><dt><var>R</var><dd>Service center response time.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1793
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1794 <br><dt><var>Q</var><dd>Average number of requests in the system (which is equal to the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1795 traffic intensity \lambda/\mu).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1796
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1797 <br><dt><var>X</var><dd>Throughput (which is always equal to <var>X</var><code> = </code><var>lambda</var>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1798
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1799 <br><dt><var>p0</var><dd>Steady-state probability that there are no requests in the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1800
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1801 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1802
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1803 <p><var>lambda</var> and <var>mu</var> can be vectors of the same size. In this
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1804 case, the results will be vectors as well.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1805
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1806 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1807
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1808 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1809 <strong>See also:</strong> qnmm1,qnmmm,qnmmmk.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1810
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1811 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1812
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1813 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1814
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1815 <p class="noindent">G. Bolch, S. Greiner, H. de Meer and K. Trivedi, <cite>Queueing Networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1816 and Markov Chains: Modeling and Performance Evaluation with Computer
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1817 Science Applications</cite>, Wiley, 1998, Section 6.4.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1818
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1819 <p><a name="index-Bolch_002c-G_002e-66"></a><a name="index-Greiner_002c-S_002e-67"></a><a name="index-de-Meer_002c-H_002e-68"></a><a name="index-Trivedi_002c-K_002e-69"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1820 <!-- M/M/1/k -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1821 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1822 <a name="The-M%2fM%2f1%2fK-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1823 <a name="The-M_002fM_002f1_002fK-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1824 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1825 Next:&nbsp;<a rel="next" accesskey="n" href="#The-M_002fM_002fm_002fK-System">The M/M/m/K System</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1826 Previous:&nbsp;<a rel="previous" accesskey="p" href="#The-M_002fM_002finf-System">The M/M/inf System</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1827 Up:&nbsp;<a rel="up" accesskey="u" href="#Single-Station-Queueing-Systems">Single Station Queueing Systems</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1828
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1829 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1830
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1831 <h3 class="section">5.4 The M/M/1/K System</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1832
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1833 <p>In a M/M/1/K finite capacity system there can be at most
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1834 k jobs at any time. If a new request tries to join the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1835 when there are already K other requests, the arriving request
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1836 is lost. The queue has K-1 slots. The M/M/1/K system is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1837 always stable, regardless of the arrival and service rates
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1838 \lambda and \mu.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1839
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1840 <p><a name="doc_002dqnmm1k"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1841
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1842 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1843 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>, <var>p0</var>, <var>pK</var>] = <b>qnmm1k</b> (<var>lambda, mu, K</var>)<var><a name="index-qnmm1k-70"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1844 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1845 <p><a name="index-g_t_0040math_007bM_002fM_002f1_002fK_007d-system-71"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1846 Compute utilization, response time, average number of requests and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1847 throughput for a M/M/1/K finite capacity system. In a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1848 M/M/1/K queue there is a single server; the maximum number of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1849 requests in the system is K, and the maximum queue length is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1850 K-1.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1851
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1852 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1853
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1854 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1855 <dt><var>lambda</var><dd>Arrival rate (<var>lambda</var><code>&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1856
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1857 <br><dt><var>mu</var><dd>Service rate (<var>mu</var><code>&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1858
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1859 <br><dt><var>K</var><dd>Maximum number of requests allowed in the system (<var>K</var><code> &ge; 1</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1860
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1861 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1862
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1863 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1864
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1865 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1866 <dt><var>U</var><dd>Service center utilization, which is defined as <var>U</var><code> = 1-</code><var>p0</var>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1867
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1868 <br><dt><var>R</var><dd>Service center response time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1869
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1870 <br><dt><var>Q</var><dd>Average number of requests in the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1871
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1872 <br><dt><var>X</var><dd>Service center throughput
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1873
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1874 <br><dt><var>p0</var><dd>Steady-state probability that there are no requests in the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1875
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1876 <br><dt><var>pK</var><dd>Steady-state probability that there are K requests in the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1877 (i.e., that the system is full)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1878
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1879 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1880
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1881 <p><var>lambda</var>, <var>mu</var> and <var>K</var> can be vectors of the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1882 same size. In this case, the results will be vectors as well.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1883
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1884 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1885
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1886 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1887 <strong>See also:</strong> qnmm1,qnmminf,qnmmm.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1888
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1889 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1890
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1891 <!-- M/M/m/k -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1892 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1893 <a name="The-M%2fM%2fm%2fK-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1894 <a name="The-M_002fM_002fm_002fK-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1895 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1896 Next:&nbsp;<a rel="next" accesskey="n" href="#The-Asymmetric-M_002fM_002fm-System">The Asymmetric M/M/m System</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1897 Previous:&nbsp;<a rel="previous" accesskey="p" href="#The-M_002fM_002f1_002fK-System">The M/M/1/K System</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1898 Up:&nbsp;<a rel="up" accesskey="u" href="#Single-Station-Queueing-Systems">Single Station Queueing Systems</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1899
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1900 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1901
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1902 <h3 class="section">5.5 The M/M/m/K System</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1903
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1904 <p>The M/M/m/K finite capacity system is similar to the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1905 M/M/1/k system except that the number of servers is m,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1906 where 1 \leq m \leq K. The queue is made of K-m
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1907 slots. The M/M/m/K system is always stable.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1908
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1909 <p><a name="doc_002dqnmmmk"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1910
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1911 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1912 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>, <var>p0</var>, <var>pK</var>] = <b>qnmmmk</b> (<var>lambda, mu, m, K</var>)<var><a name="index-qnmmmk-72"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1913 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1914 <p><a name="index-g_t_0040math_007bM_002fM_002fm_002fK_007d-system-73"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1915 Compute utilization, response time, average number of requests and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1916 throughput for a M/M/m/K finite capacity system. In a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1917 M/M/m/K system there are m \geq 1 identical service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1918 centers sharing a fixed-capacity queue. At any time, at most K &ge; m requests can be in the system. The maximum queue length
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1919 is K-m. This function generates and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1920 solves the underlying CTMC.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1921
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1922 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1923
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1924 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1925 <dt><var>lambda</var><dd>Arrival rate (<var>lambda</var><code>&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1926
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1927 <br><dt><var>mu</var><dd>Service rate (<var>mu</var><code>&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1928
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1929 <br><dt><var>m</var><dd>Number of servers (<var>m</var><code> &ge; 1</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1930
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1931 <br><dt><var>K</var><dd>Maximum number of requests allowed in the system,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1932 including those inside the service centers
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1933 (<var>K</var><code> &ge; </code><var>m</var>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1934
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1935 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1936
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1937 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1938
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1939 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1940 <dt><var>U</var><dd>Service center utilization
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1941
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1942 <br><dt><var>R</var><dd>Service center response time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1943
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1944 <br><dt><var>Q</var><dd>Average number of requests in the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1945
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1946 <br><dt><var>X</var><dd>Service center throughput
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1947
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1948 <br><dt><var>p0</var><dd>Steady-state probability that there are no requests in the system.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1949
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1950 <br><dt><var>pK</var><dd>Steady-state probability that there are <var>K</var> requests in the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1951 (i.e., probability that the system is full).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1952
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1953 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1954
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1955 <p><var>lambda</var>, <var>mu</var>, <var>m</var> and <var>K</var> can be either scalars, or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1956 vectors of the same size. In this case, the results will be vectors
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1957 as well.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1958
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1959 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1960
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1961 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1962 <strong>See also:</strong> qnmm1,qnmminf,qnmmm.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1963
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1964 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1965
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1966 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1967
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1968 <p class="noindent">G. Bolch, S. Greiner, H. de Meer and K. Trivedi, <cite>Queueing Networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1969 and Markov Chains: Modeling and Performance Evaluation with Computer
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1970 Science Applications</cite>, Wiley, 1998, Section 6.6.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1971
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1972 <p><a name="index-Bolch_002c-G_002e-74"></a><a name="index-Greiner_002c-S_002e-75"></a><a name="index-de-Meer_002c-H_002e-76"></a><a name="index-Trivedi_002c-K_002e-77"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1973
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1974 <!-- Approximate M/M/m -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1975 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1976 <a name="The-Asymmetric-M%2fM%2fm-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1977 <a name="The-Asymmetric-M_002fM_002fm-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1978 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1979 Next:&nbsp;<a rel="next" accesskey="n" href="#The-M_002fG_002f1-System">The M/G/1 System</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1980 Previous:&nbsp;<a rel="previous" accesskey="p" href="#The-M_002fM_002fm_002fK-System">The M/M/m/K System</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1981 Up:&nbsp;<a rel="up" accesskey="u" href="#Single-Station-Queueing-Systems">Single Station Queueing Systems</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1982
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1983 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1984
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1985 <h3 class="section">5.6 The Asymmetric M/M/m System</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1986
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1987 <p>The Asymmetric M/M/m system contains m servers connected
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1988 to a single queue. Differently from the M/M/m system, in the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1989 asymmetric M/M/m each server may have a different service time.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1990
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1991 <p><a name="doc_002dqnammm"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1992
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1993 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1994 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnammm</b> (<var>lambda, mu</var>)<var><a name="index-qnammm-78"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1995 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
1996 <p><a name="index-Asymmetric-_0040math_007bM_002fM_002fm_007d-system-79"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1997 Compute <em>approximate</em> utilization, response time, average number
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1998 of requests in service and throughput for an asymmetric M/M/m
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
1999 queue. In this system there are m different service centers
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2000 connected to a single queue. Each server has its own (possibly different)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2001 service rate. If there is more than one server available, requests
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2002 are routed to a randomly-chosen one.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2003
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2004 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2005
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2006 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2007 <dt><var>lambda</var><dd>Arrival rate (<var>lambda</var><code>&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2008
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2009 <br><dt><var>mu</var><dd><var>mu</var><code>(i)</code> is the service rate of server
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2010 i, 1 &le; i &le; m.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2011 The system must be ergodic (<var>lambda</var><code> &lt; sum(</code><var>mu</var><code>)</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2012
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2013 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2014
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2015 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2016
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2017 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2018 <dt><var>U</var><dd>Approximate service center utilization,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2019 U = \lambda / ( \sum_i \mu_i ).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2020
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2021 <br><dt><var>R</var><dd>Approximate service center response time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2022
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2023 <br><dt><var>Q</var><dd>Approximate number of requests in the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2024
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2025 <br><dt><var>X</var><dd>Approximate service center throughput. If the system is ergodic,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2026 we will always have <var>X</var><code> = </code><var>lambda</var>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2027
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2028 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2029
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2030 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2031
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2032 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2033 <strong>See also:</strong> qnmmm.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2034
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2035 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2036
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2037 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2038
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2039 <p class="noindent">G. Bolch, S. Greiner, H. de Meer and K. Trivedi, <cite>Queueing Networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2040 and Markov Chains: Modeling and Performance Evaluation with Computer
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2041 Science Applications</cite>, Wiley, 1998
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2042
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2043 <p><a name="index-Bolch_002c-G_002e-80"></a><a name="index-Greiner_002c-S_002e-81"></a><a name="index-de-Meer_002c-H_002e-82"></a><a name="index-Trivedi_002c-K_002e-83"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2044 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2045 <a name="The-M%2fG%2f1-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2046 <a name="The-M_002fG_002f1-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2047 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2048 Next:&nbsp;<a rel="next" accesskey="n" href="#The-M_002fHm_002f1-System">The M/Hm/1 System</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2049 Previous:&nbsp;<a rel="previous" accesskey="p" href="#The-Asymmetric-M_002fM_002fm-System">The Asymmetric M/M/m System</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2050 Up:&nbsp;<a rel="up" accesskey="u" href="#Single-Station-Queueing-Systems">Single Station Queueing Systems</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2051
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2052 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2053
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2054 <h3 class="section">5.7 The M/G/1 System</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2055
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2056 <p><a name="doc_002dqnmg1"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2057
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2058 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2059 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>, <var>p0</var>] = <b>qnmg1</b> (<var>lambda, xavg, x2nd</var>)<var><a name="index-qnmg1-84"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2060 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2061 <p><a name="index-g_t_0040math_007bM_002fG_002f1_007d-system-85"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2062 Compute utilization, response time, average number of requests and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2063 throughput for a M/G/1 system. The service time distribution
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2064 is described by its mean <var>xavg</var>, and by its second moment
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2065 <var>x2nd</var>. The computations are based on results from L. Kleinrock,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2066 <cite>Queuing Systems</cite>, Wiley, Vol 2, and Pollaczek-Khinchine formula.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2067
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2068 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2069
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2070 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2071 <dt><var>lambda</var><dd>Arrival rate.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2072
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2073 <br><dt><var>xavg</var><dd>Average service time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2074
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2075 <br><dt><var>x2nd</var><dd>Second moment of service time distribution
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2076
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2077 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2078
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2079 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2080
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2081 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2082 <dt><var>U</var><dd>Service center utilization
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2083
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2084 <br><dt><var>R</var><dd>Service center response time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2085
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2086 <br><dt><var>Q</var><dd>Average number of requests in the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2087
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2088 <br><dt><var>X</var><dd>Service center throughput
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2089
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2090 <br><dt><var>p0</var><dd>probability that there is not any request at system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2091
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2092 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2093
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2094 <p><var>lambda</var>, <var>xavg</var>, <var>t2nd</var> can be vectors of the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2095 same size. In this case, the results will be vectors as well.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2096
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2097 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2098
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2099 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2100 <strong>See also:</strong> qnmh1.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2101
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2102 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2103
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2104 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2105 <a name="The-M%2fHm%2f1-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2106 <a name="The-M_002fHm_002f1-System"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2107 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2108 Previous:&nbsp;<a rel="previous" accesskey="p" href="#The-M_002fG_002f1-System">The M/G/1 System</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2109 Up:&nbsp;<a rel="up" accesskey="u" href="#Single-Station-Queueing-Systems">Single Station Queueing Systems</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2110
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2111 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2112
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2113 <h3 class="section">5.8 The M/H_m/1 System</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2114
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2115 <p><a name="doc_002dqnmh1"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2116
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2117 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2118 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>, <var>p0</var>] = <b>qnmh1</b> (<var>lambda, mu, alpha</var>)<var><a name="index-qnmh1-86"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2119 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2120 <p><a name="index-g_t_0040math_007bM_002fH_005fm_002f1_007d-system-87"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2121 Compute utilization, response time, average number of requests and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2122 throughput for a M/H_m/1 system. In this system, the customer
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2123 service times have hyper-exponential distribution:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2124
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2125 <pre class="example"> ___ m
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2126 \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2127 B(x) = &gt; alpha(j) * (1-exp(-mu(j)*x)) x&gt;0
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2128 /__
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2129 j=1
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2130 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2131 <p>where \alpha_j is the probability that the request is served
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2132 at phase j, in which case the average service rate is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2133 \mu_j. After completing service at phase j, for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2134 some j, the request exits the system.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2135
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2136 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2137
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2138 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2139 <dt><var>lambda</var><dd>Arrival rate.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2140
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2141 <br><dt><var>mu</var><dd><var>mu</var><code>(j)</code> is the phase j service rate. The total
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2142 number of phases m is <code>length(</code><var>mu</var><code>)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2143
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2144 <br><dt><var>alpha</var><dd><var>alpha</var><code>(j)</code> is the probability that a request
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2145 is served at phase j. <var>alpha</var> must have the same size
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2146 as <var>mu</var>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2147
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2148 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2149
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2150 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2151
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2152 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2153 <dt><var>U</var><dd>Service center utilization
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2154
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2155 <br><dt><var>R</var><dd>Service center response time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2156
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2157 <br><dt><var>Q</var><dd>Average number of requests in the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2158
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2159 <br><dt><var>X</var><dd>Service center throughput
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2160
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2161 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2162
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2163 <!-- @seealso{qnmhr1} -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2164 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2165
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2166 <!-- DO NOT EDIT! Generated automatically by munge-texi. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2167 <!-- *- texinfo -*- -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2168 <!-- Copyright (C) 2008, 2009, 2010, 2011, 2012 Moreno Marzolla -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2169 <!-- This file is part of the queueing toolbox, a Queueing Networks -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2170 <!-- analysis package for GNU Octave. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2171 <!-- The queueing toolbox is free software; you can redistribute it -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2172 <!-- and/or modify it under the terms of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2173 <!-- as published by the Free Software Foundation; either version 3 of -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2174 <!-- the License, or (at your option) any later version. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2175 <!-- The queueing toolbox is distributed in the hope that it will be -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2176 <!-- useful, but WITHOUT ANY WARRANTY; without even the implied warranty -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2177 <!-- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2178 <!-- GNU General Public License for more details. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2179 <!-- You should have received a copy of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2180 <!-- along with the queueing toolbox; see the file COPYING. If not, see -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2181 <!-- <http://www.gnu.org/licenses/>. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2182 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2183 <a name="Queueing-Networks"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2184 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2185 Next:&nbsp;<a rel="next" accesskey="n" href="#Contributing-Guidelines">Contributing Guidelines</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2186 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Single-Station-Queueing-Systems">Single Station Queueing Systems</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2187 Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2188
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2189 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2190
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2191 <h2 class="chapter">6 Queueing Networks</h2>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2192
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2193 <ul class="menu">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2194 <li><a accesskey="1" href="#Introduction-to-QNs">Introduction to QNs</a>: A brief introduction to Queueing Networks.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2195 <li><a accesskey="2" href="#Generic-Algorithms">Generic Algorithms</a>: High-level functions for QN analysis
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2196 <li><a accesskey="3" href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a>: Functions to analyze product-form QNs
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2197 <li><a accesskey="4" href="#Algorithms-for-non-Product_002dform-QNs">Algorithms for non Product-form QNs</a>: Functions to analyze non product-form QNs
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2198 <li><a accesskey="5" href="#Bounds-on-performance">Bounds on performance</a>: Functions to compute performance bounds
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2199 <li><a accesskey="6" href="#Utility-functions">Utility functions</a>: Utility functions to compute miscellaneous quantities
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2200 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2201
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2202 <p><a name="index-queueing-networks-88"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2203 <!-- INTRODUCTION -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2204 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2205 <a name="Introduction-to-QNs"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2206 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2207 Next:&nbsp;<a rel="next" accesskey="n" href="#Generic-Algorithms">Generic Algorithms</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2208 Up:&nbsp;<a rel="up" accesskey="u" href="#Queueing-Networks">Queueing Networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2209
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2210 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2211
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2212 <h3 class="section">6.1 Introduction to QNs</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2213
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2214 <p>Queueing Networks (QN) are a very simple yet powerful modeling tool
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2215 which is used to analyze many kind of systems. In its simplest form, a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2216 QN is made of K service centers. Each service center i
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2217 has a queue, which is connected to m_i (generally identical)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2218 <em>servers</em>. Customers (or requests) arrive at the service center,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2219 and join the queue if there is a slot available. Then, requests are
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2220 served according to a (de)queueing policy. After service completes,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2221 the requests leave the service center.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2222
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2223 <p>The service centers for which m_i = \infty are called
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2224 <em>delay centers</em> or <em>infinite servers</em>. If a service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2225 has infinite servers, of course each new request will find one server
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2226 available, so there will never be queueing.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2227
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2228 <p>Requests join the queue according to a <em>queueing policy</em>, such as:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2229
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2230 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2231 <dt><strong>FCFS</strong><dd>First-Come-First-Served
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2232
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2233 <br><dt><strong>LCFS-PR</strong><dd>Last-Come-First-Served, Preemptive Resume
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2234
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2235 <br><dt><strong>PS</strong><dd>Processor Sharing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2236
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2237 <br><dt><strong>IS</strong><dd>Infinite Server, there is an infinite number of identical servers so
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2238 that each request always finds a server available, and there is no
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2239 queueing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2240
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2241 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2242
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2243 <p>A population of <em>requests</em> or <em>customers</em> arrives to the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2244 system system, requesting service to the service centers. The request
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2245 population may be <em>open</em> or <em>closed</em>. In open systems there
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2246 is an infinite population of requests. New customers arrive from
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2247 outside the system, and eventually leave the system. In closed systems
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2248 there is a fixed population of request which continuously interacts
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2249 with the system.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2250
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2251 <p>There might be a single class of requests, meaning that all requests
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2252 behave in the same way (e.g., they spend the same average time on each
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2253 particular server), or there might be multiple classes of requests.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2254
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2255 <h4 class="subsection">6.1.1 Single class models</h4>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2256
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2257 <p>In single class models, all requests are indistinguishable and belong to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2258 the same class. This means that every request has the same average
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2259 service time, and all requests move through the system with the same
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2260 routing probabilities.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2261
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2262 <p class="noindent"><strong>Model Inputs</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2263
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2264 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2265 <dt>\lambda_i<dd>External arrival rate to service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2266
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2267 <br><dt>\lambda<dd>Overall external arrival rate to the whole system: \lambda =
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2268 \sum_i \lambda_i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2269
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2270 <br><dt>S_i<dd>Average service time. S_i is the average service time on service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2271 center i. In other words, S_i is the average time from the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2272 instant in which a request is extracted from the queue and starts being
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2273 service, and the instant at which service finishes and the request moves
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2274 to another queue (or exits the system).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2275
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2276 <br><dt>P_ij<dd>Routing probability matrix. \bf P = P_ij is a K \times
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2277 K matrix such that P_ij is the probability that a request
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2278 completing service at server i will move directly to server
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2279 j, The probability that a request leaves the system after service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2280 at service center i is 1-\sum_j=1^K P_ij.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2281
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2282 <br><dt>V_i<dd>Average number of visits. V_i is the average number of visits to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2283 the service center i. This quantity will be described shortly.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2284
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2285 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2286
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2287 <p class="noindent"><strong>Model Outputs</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2288
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2289 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2290 <dt>U_i<dd>Service center utilization. U_i is the utilization of service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2291 center i. The utilization is defined as the fraction of time in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2292 which the resource is busy (i.e., the server is processing requests).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2293
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2294 <br><dt>R_i<dd>Average response time. R_i is the average response time of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2295 service center i. The average response time is defined as the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2296 average time between the arrival of a customer in the queue, and the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2297 completion of service.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2298
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2299 <br><dt>Q_i<dd>Average number of customers. Q_i is the average number of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2300 requests in service center i. This includes both the requests in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2301 the queue, and the request being served.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2302
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2303 <br><dt>X_i<dd>Throughput. X_i is the throughput of service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2304 The throughput is defined as the ratio of job completions (i.e., average
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2305 number of jobs completed over a fixed interval of time).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2306
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2307 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2308
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2309 <p class="noindent">Given these output parameters, additional performance measures can
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2310 be computed as follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2311
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2312 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2313 <dt>X<dd>System throughput, X = X_1 / V_1
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2314
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2315 <br><dt>R<dd>System response time, R = \sum_k=1^K R_k V_k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2316
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2317 <br><dt>Q<dd>Average number of requests in the system, Q = N-XZ
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2318
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2319 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2320
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2321 <p>For open, single-class models, the scalar \lambda denotes the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2322 external arrival rate of requests to the system. The average number of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2323 visits satisfy the following equation:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2324
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2325 <pre class="example"> V == P0 + V*P;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2326 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2327 <p class="noindent">where P_0 j is the probability that an external
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2328 arrival goes to service center j. If \lambda_j is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2329 external arrival rate to service center j, and \lambda =
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2330 \sum_j \lambda_j is the overall external arrival rate, then
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2331 P_0 j = \lambda_j / \lambda.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2332
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2333 <p>For closed models, the visit ratios satisfy the following equation:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2334
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2335 <pre class="example"> V(1) == 1 &amp;&amp; V == V*P;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2336 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2337 <h4 class="subsection">6.1.2 Multiple class models</h4>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2338
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2339 <p>In multiple class QN models, we assume that there exist C
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2340 different classes of requests. Each request from class c spends
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2341 on average time S_ck in service at service center k. For
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2342 open models, we denote with \bf \lambda = \lambda_ck the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2343 arrival rates, where \lambda_ck is the external arrival rate of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2344 class c customers at service center k. For closed models,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2345 we denote with \bf N = (N_1, N_2, \ldots N_C) the population
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2346 vector, where N_c is the number of class c requests in the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2347 system.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2348
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2349 <p>The transition probability matrix for these kind of networks will be a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2350 C \times K \times C \times K matrix \bf P =
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2351 P_risj such that P_risj is the probability that a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2352 class r request which completes service at center i will
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2353 join server j as a class s request.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2354
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2355 <p>Model input and outputs can be adjusted by adding additional
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2356 indexes for the customer classes.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2357
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2358 <p class="noindent"><strong>Model Inputs</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2359
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2360 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2361 <dt>\lambda_ci<dd>External arrival rate of class-c requests to service center i
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2362
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2363 <br><dt>\lambda<dd>Overall external arrival rate to the whole system: \lambda = \sum_c \sum_i \lambda_ci
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2364
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2365 <br><dt>S_ci<dd>Average service time. S_ci is the average service time on service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2366 center i for class c requests.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2367
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2368 <br><dt>P_risj<dd>Routing probability matrix. \bf P = P_risj is a C
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2369 \times K \times C \times K matrix such that P_risj is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2370 probability that a class r request which completes service at
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2371 server i will move to server j as a class s
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2372 request.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2373
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2374 <br><dt>V_ci<dd>Average number of visits. V_ci is the average number of visits
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2375 of class c requests to the service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2376
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2377 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2378
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2379 <p class="noindent"><strong>Model Outputs</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2380
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2381 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2382 <dt>U_ci<dd>Utilization of service center i by class c requests. The
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2383 utilization is defined as the fraction of time in which the resource is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2384 busy (i.e., the server is processing requests).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2385
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2386 <br><dt>R_ci<dd>Average response time experienced by class c requests on service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2387 center i. The average response time is defined as the average
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2388 time between the arrival of a customer in the queue, and the completion
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2389 of service.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2390
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2391 <br><dt>Q_ci<dd>Average number of class c requests on service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2392 i. This includes both the requests in the queue, and the request
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2393 being served.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2394
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2395 <br><dt>X_ci<dd>Throughput of service center i for class c requests. The
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2396 throughput is defined as the rate of completion of class c
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2397 requests.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2398
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2399 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2400
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2401 <p class="noindent">It is possible to define aggregate performance measures as follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2402
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2403 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2404 <dt>U_i<dd>Utilization of service center i:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2405 <code>Ui = sum(U,1);</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2406
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2407 <br><dt>R_c<dd>System response time for class c requests:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2408 <code>Rc = sum( V.*R, 1 );</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2409
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2410 <br><dt>Q_c<dd>Average number of class c requests in the system:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2411 <code>Qc = sum( Q, 2 );</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2412
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2413 <br><dt>X_c<dd>Class c throughput:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2414 <code>Xc = X(:,1) ./ V(:,1);</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2415
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2416 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2417
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2418 <p>We can define the visit ratios V_sj for class s
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2419 customers at service center j as follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2420
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2421 <p>V_sj = sum_r sum_i V_ri P_risj, for all s,j
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2422
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2423 <p class="noindent">while for open networks:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2424
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2425 <p>V_sj = P_0sj + sum_r sum_i V_ri P_risj, for all s,j
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2426
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2427 <p class="noindent">where P_0sj is the probability that an external
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2428 arrival goes to service center j as a class-s request.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2429 If \lambda_sj is the external arrival rate of class s
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2430 requests to service center j, and \lambda = \sum_s \sum_j
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2431 \lambda_sj is the overall external arrival rate to the whole system,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2432 then P_0sj = \lambda_sj / \lambda.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2433
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2434 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2435 <a name="Generic-Algorithms"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2436 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2437 Next:&nbsp;<a rel="next" accesskey="n" href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2438 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Introduction-to-QNs">Introduction to QNs</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2439 Up:&nbsp;<a rel="up" accesskey="u" href="#Queueing-Networks">Queueing Networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2440
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2441 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2442
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2443 <h3 class="section">6.2 Generic Algorithms</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2444
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2445 <p>The <code>queueing</code> package provides a couple of high-level functions
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2446 for defining and solving QN models. These functions can be used to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2447 define a open or closed QN model (with single or multiple job
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2448 classes), with arbitrary configuration and queueing disciplines. At
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2449 the moment only product-form networks can be solved, See <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2450
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2451 <p>The network is defined by two parameters. The first one is the list of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2452 nodes, encoded as an Octave <em>cell array</em>. The second parameter is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2453 the visit ration <var>V</var>, which can be either a vector (for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2454 single-class models) or a two-dimensional matrix (for multiple-class
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2455 models).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2456
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2457 <p>Individual nodes in the network are structures build using the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2458 <code>qnmknode</code> function.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2459
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2460 <p><a name="doc_002dqnmknode"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2461
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2462 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2463 &mdash; Function File: <var>Q</var> = <b>qnmknode</b> (<var>"m/m/m-fcfs", S</var>)<var><a name="index-qnmknode-89"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2464 &mdash; Function File: <var>Q</var> = <b>qnmknode</b> (<var>"m/m/m-fcfs", S, m</var>)<var><a name="index-qnmknode-90"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2465 &mdash; Function File: <var>Q</var> = <b>qnmknode</b> (<var>"m/m/1-lcfs-pr", S</var>)<var><a name="index-qnmknode-91"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2466 &mdash; Function File: <var>Q</var> = <b>qnmknode</b> (<var>"-/g/1-ps", S</var>)<var><a name="index-qnmknode-92"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2467 &mdash; Function File: <var>Q</var> = <b>qnmknode</b> (<var>"-/g/1-ps", S, s2</var>)<var><a name="index-qnmknode-93"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2468 &mdash; Function File: <var>Q</var> = <b>qnmknode</b> (<var>"-/g/inf", S</var>)<var><a name="index-qnmknode-94"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2469 &mdash; Function File: <var>Q</var> = <b>qnmknode</b> (<var>"-/g/inf", S, s2</var>)<var><a name="index-qnmknode-95"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2470 <blockquote>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2471 <p>Creates a node; this function can be used together with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2472 <code>qnsolve</code>. It is possible to create either single-class nodes
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2473 (where there is only one customer class), or multiple-class nodes
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2474 (where the service time is given per-class). Furthermore, it is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2475 possible to specify load-dependent service times.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2476
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2477 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2478
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2479 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2480 <dt><var>S</var><dd>Average service time. S can be either a scalar, a row vector,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2481 a column vector or a two-dimensional matrix.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2482
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2483 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2484 <li>If S is a scalar,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2485 it is assumed to be a load-independent, class-independent service time.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2486
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2487 <li>If S is a column vector, then <var>S</var><code>(c)</code> is assumed to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2488 the the load-independent service time for class c customers.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2489
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2490 <li>If S is a row vector, then <var>S</var><code>(n)</code> is assumed to be
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2491 the class-independent service time at the node, when there are n
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2492 requests.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2493
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2494 <li>Finally, if <var>S</var> is a two-dimensional matrix, then
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2495 <var>S</var><code>(c,n)</code> is assumed to be the class c service time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2496 when there are n requests at the node.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2497
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2498 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2499
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2500 <br><dt><var>m</var><dd>Number of identical servers at the node. Default is <var>m</var><code>=1</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2501
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2502 <br><dt><var>s2</var><dd>Squared coefficient of variation for the service time. Default is 1.0.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2503
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2504 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2505
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2506 <p>The returned struct <var>Q</var> should be considered opaque to the client.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2507
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2508 <!-- The returned struct @var{Q} has the following fields: -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2509 <!-- @table @var -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2510 <!-- @item Q.node -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2511 <!-- (String) type of the node; valid values are @code{"m/m/m-fcfs"}, -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2512 <!-- @code{"-/g/1-lcfs-pr"}, @code{"-/g/1-ps"} (Processor-Sharing) -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2513 <!-- and @code{"-/g/inf"} (Infinite Server, or delay center). -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2514 <!-- @item Q.S -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2515 <!-- Average service time. If @code{@var{Q}.S} is a vector, then -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2516 <!-- @code{@var{Q}.S(i)} is the average service time at that node -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2517 <!-- if there are @math{i} requests. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2518 <!-- @item Q.m -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2519 <!-- Number of identical servers at a @code{"m/m/m-fcfs"}. Default is 1. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2520 <!-- @item Q.c -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2521 <!-- Number of customer classes. Default is 1. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2522 <!-- @end table -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2523 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2524
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2525 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2526 <strong>See also:</strong> qnsolve.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2527
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2528 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2529
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2530 <p>After the network has been defined, it is possible to solve it using
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2531 the <code>qnsolve</code> function. Note that this function is somewhat less
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2532 efficient than those described in later sections, but
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2533 generally easier to use.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2534
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2535 <p><a name="doc_002dqnsolve"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2536
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2537 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2538 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnsolve</b> (<var>"closed", N, QQ, V</var>)<var><a name="index-qnsolve-96"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2539 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnsolve</b> (<var>"closed", N, QQ, V, Z</var>)<var><a name="index-qnsolve-97"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2540 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnsolve</b> (<var>"open", lambda, QQ, V</var>)<var><a name="index-qnsolve-98"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2541 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnsolve</b> (<var>"mixed", lambda, N, QQ, V</var>)<var><a name="index-qnsolve-99"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2542 <blockquote>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2543 <p>General evaluator of QN models. Networks can be open,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2544 closed or mixed; single as well as multiclass networks are supported.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2545
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2546 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2547 <li>For <strong>closed</strong> networks, the following server types are
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2548 supported: M/M/m&ndash;FCFS, -/G/\infty, -/G/1&ndash;LCFS-PR,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2549 -/G/1&ndash;PS and load-dependent variants.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2550
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2551 <li>For <strong>open</strong> networks, the following server types are supported:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2552 M/M/m&ndash;FCFS, -/G/\infty and -/G/1&ndash;PS. General
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2553 load-dependent nodes are <em>not</em> supported. Multiclass open networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2554 do not support multiple server M/M/m nodes, but only
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2555 single server M/M/1&ndash;FCFS.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2556
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2557 <li>For <strong>mixed</strong> networks, the following server types are supported:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2558 M/M/1&ndash;FCFS, -/G/\infty and -/G/1&ndash;PS. General
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2559 load-dependent nodes are <em>not</em> supported.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2560
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2561 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2562
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2563 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2564
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2565 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2566 <dt><var>N</var><dd>Number of requests in the system for closed networks. For
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2567 single-class networks, <var>N</var> must be a scalar. For multiclass
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2568 networks, <var>N</var><code>(c)</code> is the population size of closed class
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2569 c.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2570
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2571 <br><dt><var>lambda</var><dd>External arrival rate (scalar) for open networks. For single-class
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2572 networks, <var>lambda</var> must be a scalar. For multiclass networks,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2573 <var>lambda</var><code>(c)</code> is the class c overall arrival rate.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2574
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2575 <br><dt><var>QQ</var><dd>List of queues in the network. This must be a cell array
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2576 with N elements, such that <var>QQ</var><code>{i}</code> is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2577 a struct produced by the <code>qnmknode</code> function.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2578
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2579 <br><dt><var>Z</var><dd>External delay ("think time") for closed networks. Default 0.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2580
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2581 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2582
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2583 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2584
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2585 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2586 <dt><var>U</var><dd>If i is a FCFS node, then <var>U</var><code>(i)</code> is the utilization
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2587 of service center i. If i is an IS node, then
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2588 <var>U</var><code>(i)</code> is the <em>traffic intensity</em> defined as
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2589 <var>X</var><code>(i)*</code><var>S</var><code>(i)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2590
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2591 <br><dt><var>R</var><dd><var>R</var><code>(i)</code> is the average response time of service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2592
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2593 <br><dt><var>Q</var><dd><var>Q</var><code>(i)</code> is the average number of customers in service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2594 i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2595
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2596 <br><dt><var>X</var><dd><var>X</var><code>(i)</code> is the throughput of service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2597
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2598 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2599
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2600 <p>Note that for multiclass networks, the computed results are per-class
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2601 utilization, response time, number of customers and throughput:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2602 <var>U</var><code>(c,k)</code>, <var>R</var><code>(c,k)</code>, <var>Q</var><code>(c,k)</code>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2603 <var>X</var><code>(c,k)</code>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2604
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2605 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2606
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2607 <p class="noindent"><strong>EXAMPLE</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2608
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2609 <p>Let us consider a closed, multiclass network with C=2 classes
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2610 and K=3 service center. Let the population be M=(2, 1)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2611 (class 1 has 2 requests, and class 2 has 1 request). The nodes are as
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2612 follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2613
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2614 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2615 <li>Node 1 is a M/M/1&ndash;FCFS node, with load-dependent service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2616 times. Service times are class-independent, and are defined by the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2617 matrix <code>[0.2 0.1 0.1; 0.2 0.1 0.1]</code>. Thus, <var>S</var><code>(1,2) =
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2618 0.2</code> means that service time for class 1 customers where there are 2
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2619 requests in 0.2. Note that service times are class-independent;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2620
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2621 <li>Node 2 is a -/G/1&ndash;PS node, with service times
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2622 S_12 = 0.4 for class 1, and S_22 = 0.6 for class 2
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2623 requests;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2624
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2625 <li>Node 3 is a -/G/\infty node (delay center), with service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2626 times S_13=1 and S_23=2 for class 1 and 2
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2627 respectively.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2628
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2629 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2630
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2631 <p>After defining the per-class visit count <var>V</var> such that
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2632 <var>V</var><code>(c,k)</code> is the visit count of class c requests to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2633 service center k. We can define and solve the model as
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2634 follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2635
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2636 <pre class="example"><pre class="verbatim"> QQ = { qnmknode( "m/m/m-fcfs", [0.2 0.1 0.1; 0.2 0.1 0.1] ), \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2637 qnmknode( "-/g/1-ps", [0.4; 0.6] ), \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2638 qnmknode( "-/g/inf", [1; 2] ) };
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2639 V = [ 1 0.6 0.4; \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2640 1 0.3 0.7 ];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2641 N = [ 2 1 ];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2642 [U R Q X] = qnsolve( "closed", N, QQ, V );</pre></pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2643 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2644 <a name="Algorithms-for-Product-Form-QNs"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2645 <a name="Algorithms-for-Product_002dForm-QNs"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2646 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2647 Next:&nbsp;<a rel="next" accesskey="n" href="#Algorithms-for-non-Product_002dform-QNs">Algorithms for non Product-form QNs</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2648 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Generic-Algorithms">Generic Algorithms</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2649 Up:&nbsp;<a rel="up" accesskey="u" href="#Queueing-Networks">Queueing Networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2650
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2651 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2652
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2653 <h3 class="section">6.3 Algorithms for Product-Form QNs</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2654
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2655 <p>Product-form queueing networks fulfill the following assumptions:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2656
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2657 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2658 <li>The network can consist of open and closed job classes.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2659
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2660 <li>The following queueing disciplines are allowed: FCFS, PS, LCFS-PR and IS.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2661
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2662 <li>Service times for FCFS nodes must be exponentially distributed and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2663 class-independent. Service centers at PS, LCFS-PR and IS nodes can
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2664 have any kind of service time distribution with a rational Laplace
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2665 transform. Furthermore, for PS, LCFS-PR and IS nodes, different
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2666 classes of customers can have different service times.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2667
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2668 <li>The service rate of an FCFS node is only allowed to depend on the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2669 number of jobs at this node; in a PS, LCFS-PR and IS node the service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2670 rate for a particular job class can also depend on the number of jobs
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2671 of that class at the node.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2672
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2673 <li>In open networks two kinds of arrival processes are allowed: i) the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2674 arrival process is Poisson, with arrival rate \lambda which can
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2675 depend on the number of jobs in the network. ii) the arrival process
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2676 consists of U independent Poisson arrival streams where the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2677 U job sources are assigned to the U chains; the arrival
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2678 rate can be load dependent.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2679
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2680 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2681
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2682 <!-- Jackson Networks -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2683 <h4 class="subsection">6.3.1 Jackson Networks</h4>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2684
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2685 <p>Jackson networks satisfy the following conditions:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2686
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2687 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2688 <li>There is only one job class in the network; the overall number of jobs
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2689 in the system is unlimited.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2690
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2691 <li>There are N service centers in the network. Each service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2692 may have Poisson arrivals from outside the system. A job can leave
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2693 the system from any node.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2694
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2695 <li>Arrival rates as well as routing probabilities are independent from
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2696 the number of nodes in the network.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2697
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2698 <li>External arrivals and service times at the service centers are
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2699 exponentially distributed, and in general can be load-dependent.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2700
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2701 <li>Service discipline at each node is FCFS
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2702
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2703 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2704
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2705 <p>We define the <em>joint probability vector</em> \pi(k_1, k_2,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2706 \ldots k_N) as the steady-state probability that there are k_i
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2707 requests at service center i, for all i=1,2, \ldots N.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2708 Jackson networks have the property that the joint probability is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2709 product of the marginal probabilities \pi_i:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2710
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2711 <pre class="example"> <var>joint_prob</var> = prod( <var>pi</var> )
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2712 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2713 <p class="noindent">where \pi_i(k_i) is the steady-state probability
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2714 that there are k_i requests at service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2715
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2716 <p><a name="doc_002dqnjackson"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2717
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2718 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2719 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnjackson</b> (<var>lambda, S, P </var>)<var><a name="index-qnjackson-100"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2720 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnjackson</b> (<var>lambda, S, P, m </var>)<var><a name="index-qnjackson-101"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2721 &mdash; Function File: <var>pr</var> = <b>qnjackson</b> (<var>lambda, S, P, m, k</var>)<var><a name="index-qnjackson-102"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2722 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2723 <p><a name="index-open-network_002c-single-class-103"></a><a name="index-Jackson-network-104"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2724 With three or four input parameters, this function computes the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2725 steady-state occupancy probabilities for a Jackson network. With five
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2726 input parameters, this function computes the steady-state probability
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2727 <var>pi</var><code>(j)</code> that there are <var>k</var><code>(j)</code> requests at
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2728 service center j.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2729
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2730 <p>This function solves a subset of Jackson networks, with the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2731 following constraints:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2732
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2733 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2734 <li>External arrival rates are load-independent.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2735
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2736 <li>Service center i consists either of <var>m</var><code>(i) &ge;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2737 1</code> identical servers with individual average service time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2738 <var>S</var><code>(i)</code>, or of an Infinite Server (IS) node.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2739
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2740 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2741
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2742 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2743
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2744 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2745 <dt><var>lambda</var><dd><var>lambda</var><code>(i)</code> is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2746 the external arrival rate to service center i. <var>lambda</var>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2747 must be a vector of length N, <var>lambda</var><code>(i) &ge; 0</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2748
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2749 <br><dt><var>S</var><dd><var>S</var><code>(i)</code> is the average service time on service center i
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2750 <var>S</var> must be a vector of length N, <var>S</var><code>(i)&gt;0</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2751
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2752 <br><dt><var>P</var><dd><var>P</var><code>(i,j)</code> is the probability
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2753 that a job which completes service at service center i proceeds
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2754 to service center j. <var>P</var> must be a matrix of size
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2755 N \times N.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2756
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2757 <br><dt><var>m</var><dd><var>m</var><code>(i)</code> is the number of servers at service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2758 i. If <var>m</var><code>(i) &lt; 1</code>, service center i is an
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2759 infinite-server node. Otherwise, it is a regular FCFS queueing center with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2760 <var>m</var><code>(i)</code> servers. If this parameter is omitted, default is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2761 <var>m</var><code>(i) = 1</code> for all i. If this parameter is a scalar,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2762 it will be promoted to a vector with the same size as <var>lambda</var>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2763 Otherwise, <var>m</var> must be a vector of length N.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2764
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2765 <br><dt><var>k</var><dd>Compute the steady-state probability that there are <var>k</var><code>(i)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2766 requests at service center i. <var>k</var> must have the same length
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2767 as <var>lambda</var>, with <var>k</var><code>(i) &ge; 0</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2768
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2769 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2770
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2771 <p><strong>OUTPUT</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2772
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2773 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2774 <dt><var>U</var><dd>If i is a FCFS node, then
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2775 <var>U</var><code>(i)</code> is the utilization of service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2776 If i is an IS node, then <var>U</var><code>(i)</code> is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2777 <em>traffic intensity</em> defined as <var>X</var><code>(i)*</code><var>S</var><code>(i)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2778
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2779 <br><dt><var>R</var><dd><var>R</var><code>(i)</code> is the average response time of service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2780
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2781 <br><dt><var>Q</var><dd><var>Q</var><code>(i)</code> is the average number of customers in service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2782 i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2783
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2784 <br><dt><var>X</var><dd><var>X</var><code>(i)</code> is the throughput of service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2785
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2786 <br><dt><var>pr</var><dd><var>pr</var><code>(i)</code> is the steady state probability
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2787 that there are <var>k</var><code>(i)</code> requests at service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2788
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2789 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2790
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2791 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2792
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2793 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2794 <strong>See also:</strong> qnopen.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2795
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2796 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2797
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2798 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2799
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2800 <p>This implementation is based on G. Bolch, S. Greiner, H. de Meer and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2801 K. Trivedi, <cite>Queueing Networks and Markov Chains: Modeling and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2802 Performance Evaluation with Computer Science Applications</cite>, Wiley,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2803 1998, pp. 284&ndash;287.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2804
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2805 <p><a name="index-Bolch_002c-G_002e-105"></a><a name="index-Greiner_002c-S_002e-106"></a><a name="index-de-Meer_002c-H_002e-107"></a><a name="index-Trivedi_002c-K_002e-108"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2806
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2807 <h4 class="subsection">6.3.2 The Convolution Algorithm</h4>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2808
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2809 <p>According to the BCMP theorem, the state probability of a closed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2810 single class queueing network with K nodes and N requests
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2811 can be expressed as:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2812
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2813 <pre class="example"> k = [k1, k2, ... kn]; <span class="roman">population vector</span>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2814 p = 1/G(N+1) \prod F(i,k);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2815 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2816 <p>Here \pi(k_1, k_2, \ldots k_K) is the joint probability of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2817 having k_i requests at node i, for all i=1,2,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2818 \ldots K.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2819
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2820 <p>The <em>convolution algorithms</em> computes the normalization constants
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2821 G = (G(0), G(1), \ldots G(N)) for single-class, closed networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2822 with N requests. The normalization constants are returned as
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2823 vector <var>G</var><code>=[</code><var>G</var><code>(1), </code><var>G</var><code>(2), ... </code><var>G</var><code>(N+1)]</code> where
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2824 <var>G</var><code>(i+1)</code> is the value of G(i) (remember that Octave
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2825 uses 1-base vectors). The normalization constant can be used to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2826 compute all performance measures of interest (utilization, average
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2827 response time and so on).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2828
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2829 <p><code>queueing</code> implements the convolution algorithm, in the function
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2830 <code>qnconvolution</code> and <code>qnconvolutionld</code>. The first one
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2831 supports single-station nodes, multiple-station nodes and IS nodes.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2832 The second one supports networks with general load-dependent service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2833 centers.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2834
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2835 <!-- The Convolution Algorithm -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2836 <p><a name="doc_002dqnconvolution"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2837
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2838 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2839 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>, <var>G</var>] = <b>qnconvolution</b> (<var>N, S, V</var>)<var><a name="index-qnconvolution-109"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2840 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>, <var>G</var>] = <b>qnconvolution</b> (<var>N, S, V, m</var>)<var><a name="index-qnconvolution-110"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2841 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2842 <p><a name="index-closed-network-111"></a><a name="index-normalization-constant-112"></a><a name="index-convolution-algorithm-113"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2843 This function implements the <em>convolution algorithm</em> for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2844 computing steady-state performance measures of product-form,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2845 single-class closed queueing networks. Load-independent service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2846 centers, multiple servers (M/M/m queues) and IS nodes are
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2847 supported. For general load-dependent service centers, use the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2848 <code>qnconvolutionld</code> function instead.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2849
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2850 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2851
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2852 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2853 <dt><var>N</var><dd>Number of requests in the system (<var>N</var><code>&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2854
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2855 <br><dt><var>S</var><dd><var>S</var><code>(k)</code> is the average service time on center k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2856 (<var>S</var><code>(k) &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2857
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2858 <br><dt><var>V</var><dd><var>V</var><code>(k)</code> is the visit count of service center k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2859 (<var>V</var><code>(k) &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2860
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2861 <br><dt><var>m</var><dd><var>m</var><code>(k)</code> is the number of servers at center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2862 k. If <var>m</var><code>(k) &lt; 1</code>, center k is a delay center (IS);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2863 if <var>m</var><code>(k) &ge; 1</code>, center k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2864 it is a regular M/M/m queueing center with <var>m</var><code>(k)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2865 identical servers. Default is <var>m</var><code>(k) = 1</code> for all k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2866
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2867 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2868
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2869 <p><strong>OUTPUT</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2870
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2871 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2872 <dt><var>U</var><dd><var>U</var><code>(k)</code> is the utilization of center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2873 For IS nodes, <var>U</var><code>(k)</code> is the <em>traffic intensity</em>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2874
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2875 <br><dt><var>R</var><dd><var>R</var><code>(k)</code> is the average response time of center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2876
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2877 <br><dt><var>Q</var><dd><var>Q</var><code>(k)</code> is the average number of customers at center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2878 k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2879
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2880 <br><dt><var>X</var><dd><var>X</var><code>(k)</code> is the throughput of center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2881
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2882 <br><dt><var>G</var><dd>Vector of normalization constants. <var>G</var><code>(n+1)</code> contains the value of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2883 the normalization constant with n requests
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2884 G(n), n=0, <small class="dots">...</small>, N.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2885
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2886 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2887
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2888 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2889
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2890 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2891 <strong>See also:</strong> qnconvolutionld.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2892
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2893 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2894
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2895 <p class="noindent"><strong>EXAMPLE</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2896
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2897 <p>The normalization constant G can be used to compute the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2898 steady-state probabilities for a closed single class product-form
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2899 Queueing Network with K nodes. Let <var>k</var><code>=[k_1,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2900 k_2, ... k_K]</code> be a valid population vector. Then, the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2901 steady-state probability <var>p</var><code>(i)</code> to have <var>k</var><code>(i)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2902 requests at service center i can be computed as:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2903
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2904 <pre class="example"><pre class="verbatim"> k = [1 2 0];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2905 K = sum(k); # Total population size
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2906 S = [ 1/0.8 1/0.6 1/0.4 ];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2907 m = [ 2 3 1 ];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2908 V = [ 1 .667 .2 ];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2909 [U R Q X G] = qnconvolution( K, S, V, m );
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2910 p = [0 0 0]; # initialize p
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2911 # Compute the probability to have k(i) jobs at service center i
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2912 for i=1:3
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2913 p(i) = (V(i)*S(i))^k(i) / G(K+1) * \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2914 (G(K-k(i)+1) - V(i)*S(i)*G(K-k(i)) );
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2915 printf("k(%d)=%d prob=%f\n", i, k(i), p(i) );
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2916 endfor</pre>-| k(1)=1 prob=0.17975
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2917 -| k(2)=2 prob=0.48404
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2918 -| k(3)=0 prob=0.52779
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2919 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2920 <p class="noindent"><strong>NOTE</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2921
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2922 <p>For a network with K service centers and N requests,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2923 this implementation of the convolution algorithm has time and space
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2924 complexity O(NK).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2925
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2926 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2927
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2928 <p>Jeffrey P. Buzen, <cite>Computational Algorithms for Closed Queueing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2929 Networks with Exponential Servers</cite>, Communications of the ACM, volume
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2930 16, number 9, september 1973,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2931 pp. 527&ndash;531. <a href="http://doi.acm.org/10.1145/362342.362345">http://doi.acm.org/10.1145/362342.362345</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2932
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2933 <p><a name="index-Buzen_002c-J_002e-P_002e-114"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2934 This implementation is based on G. Bolch, S. Greiner, H. de Meer and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2935 K. Trivedi, <cite>Queueing Networks and Markov Chains: Modeling and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2936 Performance Evaluation with Computer Science Applications</cite>, Wiley,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2937 1998, pp. 313&ndash;317.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2938
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2939 <p><a name="index-Bolch_002c-G_002e-115"></a><a name="index-Greiner_002c-S_002e-116"></a><a name="index-de-Meer_002c-H_002e-117"></a><a name="index-Trivedi_002c-K_002e-118"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2940 <!-- Convolution for load-dependent service centers -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2941 <a name="doc_002dqnconvolutionld"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2942
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2943 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2944 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>, <var>G</var>] = <b>qnconvolutionld</b> (<var>N, S, V</var>)<var><a name="index-qnconvolutionld-119"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2945 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
2946 <p><a name="index-closed-network-120"></a><a name="index-normalization-constant-121"></a><a name="index-convolution-algorithm-122"></a><a name="index-load_002ddependent-service-center-123"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2947 This function implements the <em>convolution algorithm</em> for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2948 product-form, single-class closed queueing networks with general
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2949 load-dependent service centers.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2950
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2951 <p>This function computes steady-state performance measures for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2952 single-class, closed networks with load-dependent service centers
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2953 using the convolution algorithm; the normalization constants are also
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2954 computed. The normalization constants are returned as vector
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2955 <var>G</var><code>=[</code><var>G</var><code>(1), ..., </code><var>G</var><code>(N+1)]</code> where
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2956 <var>G</var><code>(i+1)</code> is the value of G(i).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2957
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2958 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2959
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2960 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2961 <dt><var>N</var><dd>Number of requests in the system (<var>N</var><code>&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2962
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2963 <br><dt><var>S</var><dd><var>S</var><code>(k,n)</code> is the mean service time at center k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2964 where there are n requests, 1 &le; n
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2965 &le; N. <var>S</var><code>(k,n)</code> = 1 / \mu_k,n,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2966 where \mu_k,n is the service rate of center k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2967 when there are n requests.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2968
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2969 <br><dt><var>V</var><dd><var>V</var><code>(k)</code> is the visit count of service center k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2970 (<var>V</var><code>(k) &ge; 0</code>). The length of <var>V</var> is the number of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2971 servers K in the network.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2972
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2973 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2974
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2975 <p><strong>OUTPUT</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2976
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2977 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2978 <dt><var>U</var><dd><var>U</var><code>(k)</code> is the utilization of center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2979
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2980 <br><dt><var>R</var><dd><var>R</var><code>(k)</code> is the average response time at center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2981
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2982 <br><dt><var>Q</var><dd><var>Q</var><code>(k)</code> is the average number of customers in center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2983
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2984 <br><dt><var>X</var><dd><var>X</var><code>(k)</code> is the throughput of center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2985
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2986 <br><dt><var>G</var><dd>Normalization constants (vector). <var>G</var><code>(n+1)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2987 corresponds to G(n), as array indexes in Octave start
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2988 from 1.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2989
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2990 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2991
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2992 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2993
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2994 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2995 <strong>See also:</strong> qnconvolution.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2996
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2997 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2998
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
2999 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3000
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3001 <p>Herb Schwetman, <cite>Some Computational Aspects of Queueing Network
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3002 Models</cite>, Technical Report CSD-TR-354, Department of Computer Sciences,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3003 Purdue University, feb, 1981 (revised).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3004 <a href="http://www.cs.purdue.edu/research/technical_reports/1980/TR%2080-354.pdf">http://www.cs.purdue.edu/research/technical_reports/1980/TR%2080-354.pdf</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3005
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3006 <p><a name="index-Schwetman_002c-H_002e-124"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3007 M. Reiser, H. Kobayashi, <cite>On The Convolution Algorithm for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3008 Separable Queueing Networks</cite>, In Proceedings of the 1976 ACM
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3009 SIGMETRICS Conference on Computer Performance Modeling Measurement and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3010 Evaluation (Cambridge, Massachusetts, United States, March 29&ndash;31,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3011 1976). SIGMETRICS '76. ACM, New York, NY,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3012 pp. 109&ndash;117. <a href="http://doi.acm.org/10.1145/800200.806187">http://doi.acm.org/10.1145/800200.806187</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3013
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3014 <p><a name="index-Reiser_002c-M_002e-125"></a><a name="index-Kobayashi_002c-H_002e-126"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3015 This implementation is based on G. Bolch, S. Greiner, H. de Meer and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3016 K. Trivedi, <cite>Queueing Networks and Markov Chains: Modeling and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3017 Performance Evaluation with Computer Science Applications</cite>, Wiley,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3018 1998, pp. 313&ndash;317. Function <code>qnconvolutionld</code> is slightly
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3019 different from the version described in Bolch et al. because it
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3020 supports general load-dependent centers (while the version in the book
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3021 does not). The modification is in the definition of function
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3022 <code>F()</code> in <code>qnconvolutionld</code> which has been made similar to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3023 function f_i defined in Schwetman, <code>Some Computational
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3024 Aspects of Queueing Network Models</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3025
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3026 <p><a name="index-Bolch_002c-G_002e-127"></a><a name="index-Greiner_002c-S_002e-128"></a><a name="index-de-Meer_002c-H_002e-129"></a><a name="index-Trivedi_002c-K_002e-130"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3027
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3028 <h4 class="subsection">6.3.3 Open networks</h4>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3029
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3030 <!-- Open networks with single class -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3031 <p><a name="doc_002dqnopensingle"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3032
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3033 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3034 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnopensingle</b> (<var>lambda, S, V</var>)<var><a name="index-qnopensingle-131"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3035 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnopensingle</b> (<var>lambda, S, V, m</var>)<var><a name="index-qnopensingle-132"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3036 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3037 <p><a name="index-open-network_002c-single-class-133"></a><a name="index-BCMP-network-134"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3038 Analyze open, single class BCMP queueing networks.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3039
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3040 <p>This function works for a subset of BCMP single-class open networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3041 satisfying the following properties:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3042
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3043 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3044 <li>The allowed service disciplines at network nodes are: FCFS,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3045 PS, LCFS-PR, IS (infinite server);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3046
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3047 <li>Service times are exponentially distributed and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3048 load-independent;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3049
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3050 <li>Service center i can consist of <var>m</var><code>(i) &ge; 1</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3051 identical servers.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3052
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3053 <li>Routing is load-independent
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3054
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3055 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3056
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3057 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3058
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3059 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3060 <dt><var>lambda</var><dd>Overall external arrival rate (<var>lambda</var><code>&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3061
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3062 <br><dt><var>S</var><dd><var>S</var><code>(k)</code> is the average service time at center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3063 i (<var>S</var><code>(k)&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3064
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3065 <br><dt><var>V</var><dd><var>V</var><code>(k)</code> is the average number of visits to center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3066 k (<var>V</var><code>(k) &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3067
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3068 <br><dt><var>m</var><dd><var>m</var><code>(k)</code> is the number of servers at center i. If
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3069 <var>m</var><code>(k) &lt; 1</code>, then service center k is a delay center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3070 (IS); otherwise it is a regular queueing center with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3071 <var>m</var><code>(k)</code> servers. Default is <var>m</var><code>(k) = 1</code> for each
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3072 k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3073
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3074 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3075
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3076 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3077
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3078 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3079 <dt><var>U</var><dd>If k is a queueing center,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3080 <var>U</var><code>(k)</code> is the utilization of center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3081 If k is an IS node, then <var>U</var><code>(k)</code> is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3082 <em>traffic intensity</em> defined as <var>X</var><code>(k)*</code><var>S</var><code>(k)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3083
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3084 <br><dt><var>R</var><dd><var>R</var><code>(k)</code> is the average response time of center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3085
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3086 <br><dt><var>Q</var><dd><var>Q</var><code>(k)</code> is the average number of requests at center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3087 k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3088
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3089 <br><dt><var>X</var><dd><var>X</var><code>(k)</code> is the throughput of center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3090
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3091 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3092
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3093 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3094
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3095 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3096 <strong>See also:</strong> qnopen,qnclosed,qnvisits.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3097
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3098 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3099
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3100 <p>From the results computed by this function, it is possible to derive
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3101 other quantities of interest as follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3102
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3103 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3104 <li><strong>System Response Time</strong>: The overall system response time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3105 can be computed as
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3106 <code>R_s = dot(V,R);</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3107
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3108 <li><strong>Average number of requests</strong>: The average number of requests
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3109 in the system can be computed as:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3110 <code>Q_s = sum(Q)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3111
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3112 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3113
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3114 <p class="noindent"><strong>EXAMPLE</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3115
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3116 <pre class="example"><pre class="verbatim"> lambda = 3;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3117 V = [16 7 8];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3118 S = [0.01 0.02 0.03];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3119 [U R Q X] = qnopensingle( lambda, S, V );
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3120 R_s = dot(R,V) # System response time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3121 N = sum(Q) # Average number in system</pre>-| R_s = 1.4062
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3122 -| N = 4.2186
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3123 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3124 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3125
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3126 <p>G. Bolch, S. Greiner, H. de Meer and K. Trivedi, <cite>Queueing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3127 Networks and Markov Chains: Modeling and Performance Evaluation with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3128 Computer Science Applications</cite>, Wiley, 1998.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3129
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3130 <p><a name="index-Bolch_002c-G_002e-135"></a><a name="index-Greiner_002c-S_002e-136"></a><a name="index-de-Meer_002c-H_002e-137"></a><a name="index-Trivedi_002c-K_002e-138"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3131
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3132 <!-- Open network with multiple classes -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3133 <p><a name="doc_002dqnopenmulti"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3134
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3135 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3136 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnopenmulti</b> (<var>lambda, S, V</var>)<var><a name="index-qnopenmulti-139"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3137 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnopenmulti</b> (<var>lambda, S, V, m</var>)<var><a name="index-qnopenmulti-140"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3138 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3139 <p><a name="index-open-network_002c-multiple-classes-141"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3140 Exact analysis of open, multiple-class BCMP networks. The network can
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3141 be made of <em>single-server</em> queueing centers (FCFS, LCFS-PR or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3142 PS) or delay centers (IS). This function assumes a network with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3143 K service centers and C customer classes.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3144
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3145 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3146
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3147 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3148 <dt><var>lambda</var><dd><var>lambda</var><code>(c)</code> is the external
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3149 arrival rate of class c customers (<var>lambda</var><code>(c)&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3150
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3151 <br><dt><var>S</var><dd><var>S</var><code>(c,k)</code> is the mean service time of class c
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3152 customers on the service center k (<var>S</var><code>(c,k)&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3153 For FCFS nodes, average service times must be class-independent.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3154
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3155 <br><dt><var>V</var><dd><var>V</var><code>(c,k)</code> is the average number of visits of class c
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3156 customers to service center k (<var>V</var><code>(c,k) &ge; 0 </code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3157
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3158 <br><dt><var>m</var><dd><var>m</var><code>(k)</code> is the number of servers at service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3159 k. Valid values are <var>m</var><code>(k) &lt; 1</code> to denote a delay
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3160 center (-/G/\infty), and <var>m</var><code>(k)==1</code> to denote
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3161 a single server queueing center (M/M/1&ndash;FCFS,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3162 -/G/1&ndash;LCFS-PR or -/G/1&ndash;PS).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3163
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3164 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3165
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3166 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3167
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3168 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3169 <dt><var>U</var><dd>If k is a queueing center, then <var>U</var><code>(c,k)</code> is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3170 class c utilization of center k. If k is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3171 an IS node, then <var>U</var><code>(c,k)</code> is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3172 class c <em>traffic intensity</em>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3173 defined as <var>X</var><code>(c,k)*</code><var>S</var><code>(c,k)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3174
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3175 <br><dt><var>R</var><dd><var>R</var><code>(c,k)</code> is the class c response time at
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3176 center k. The system response time for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3177 class c requests can be computed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3178 as <code>dot(</code><var>R</var><code>, </code><var>V</var><code>, 2)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3179
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3180 <br><dt><var>Q</var><dd><var>Q</var><code>(c,k)</code> is the average number of class c requests
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3181 at center k. The average number of class c requests
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3182 in the system <var>Qc</var> can be computed as <code>Qc = sum(</code><var>Q</var><code>, 2)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3183
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3184 <br><dt><var>X</var><dd><var>X</var><code>(c,k)</code> is the class c throughput
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3185 at center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3186
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3187 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3188
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3189 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3190
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3191 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3192 <strong>See also:</strong> qnopen,qnopensingle,qnvisits.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3193
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3194 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3195
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3196 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3197
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3198 <p>Edward D. Lazowska, John Zahorjan, G. Scott Graham, and Kenneth C.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3199 Sevcik, <cite>Quantitative System Performance: Computer System
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3200 Analysis Using Queueing Network Models</cite>, Prentice Hall,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3201 1984. <a href="http://www.cs.washington.edu/homes/lazowska/qsp/">http://www.cs.washington.edu/homes/lazowska/qsp/</a>. In
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3202 particular, see section 7.4.1 ("Open Model Solution Techniques").
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3203
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3204 <p><a name="index-Lazowska_002c-E_002e-D_002e-142"></a><a name="index-Zahorjan_002c-J_002e-143"></a><a name="index-Graham_002c-G_002e-S_002e-144"></a><a name="index-Sevcik_002c-K_002e-C_002e-145"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3205
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3206 <h4 class="subsection">6.3.4 Closed Networks</h4>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3207
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3208 <!-- MVA for single class, closed networks -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3209 <p><a name="doc_002dqnclosedsinglemva"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3210
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3211 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3212 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>, <var>G</var>] = <b>qnclosedsinglemva</b> (<var>N, S, V</var>)<var><a name="index-qnclosedsinglemva-146"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3213 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>, <var>G</var>] = <b>qnclosedsinglemva</b> (<var>N, S, V, m</var>)<var><a name="index-qnclosedsinglemva-147"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3214 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>, <var>G</var>] = <b>qnclosedsinglemva</b> (<var>N, S, V, m, Z</var>)<var><a name="index-qnclosedsinglemva-148"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3215 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3216 <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-149"></a><a name="index-closed-network_002c-single-class-150"></a><a name="index-normalization-constant-151"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3217 Analyze closed, single class queueing networks using the exact Mean
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3218 Value Analysis (MVA) algorithm. The following queueing disciplines
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3219 are supported: FCFS, LCFS-PR, PS and IS (Infinite Server). This
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3220 function supports fixed-rate service centers or multiple server
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3221 nodes. For general load-dependent service centers, use the function
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3222 <code>qnclosedsinglemvald</code> instead.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3223
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3224 <p>Additionally, the normalization constant G(n), n=0,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3225 <small class="dots">...</small>, N is computed; G(n) can be used in conjunction with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3226 the BCMP theorem to compute steady-state probabilities.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3227
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3228 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3229
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3230 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3231 <dt><var>N</var><dd>Population size (number of requests in the system, <var>N</var><code> &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3232 If <var>N</var><code> == 0</code>, this function returns
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3233 <var>U</var><code> = </code><var>R</var><code> = </code><var>Q</var><code> = </code><var>X</var><code> = 0</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3234
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3235 <br><dt><var>S</var><dd><var>S</var><code>(k)</code> is the mean service time on server k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3236 (<var>S</var><code>(k)&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3237
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3238 <br><dt><var>V</var><dd><var>V</var><code>(k)</code> is the average number of visits to service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3239 k (<var>V</var><code>(k) &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3240
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3241 <br><dt><var>Z</var><dd>External delay for customers (<var>Z</var><code> &ge; 0</code>). Default is 0.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3242
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3243 <br><dt><var>m</var><dd><var>m</var><code>(k)</code> is the number of servers at center k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3244 (if <var>m</var> is a scalar, all centers have that number of servers). If
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3245 <var>m</var><code>(k) &lt; 1</code>, center k is a delay center (IS);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3246 otherwise it is a regular queueing center (FCFS, LCFS-PR or PS) with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3247 <var>m</var><code>(k)</code> servers. Default is <var>m</var><code>(k) = 1</code> for all
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3248 k (each service center has a single server).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3249
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3250 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3251
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3252 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3253
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3254 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3255 <dt><var>U</var><dd>If k is a FCFS, LCFS-PR or PS node (<var>m</var><code>(k) == 1</code>),
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3256 then <var>U</var><code>(k)</code> is the utilization of center k. If
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3257 k is an IS node (<var>m</var><code>(k) &lt; 1</code>), then
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3258 <var>U</var><code>(k)</code> is the <em>traffic intensity</em> defined as
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3259 <var>X</var><code>(k)*</code><var>S</var><code>(k)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3260
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3261 <br><dt><var>R</var><dd><var>R</var><code>(k)</code> is the response time at center k.
9622
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
3262 The <em>Residence Time</em> at center k is
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
3263 <var>R</var><code>(k) * </code><var>V</var><code>(k)</code>.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3264 The system response time <var>Rsys</var>
9622
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
3265 can be computed either as <var>Rsys</var><code> = </code><var>N</var><code>/</code><var>Xsys</var><code> - Z</code>
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
3266 or as <var>Rsys</var><code> = dot(</code><var>R</var><code>,</code><var>V</var><code>)</code>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3267
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3268 <br><dt><var>Q</var><dd><var>Q</var><code>(k)</code> is the average number of requests at center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3269 k. The number of requests in the system can be computed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3270 either as <code>sum(</code><var>Q</var><code>)</code>, or using the formula
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3271 <var>N</var><code>-</code><var>Xsys</var><code>*</code><var>Z</var>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3272
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3273 <br><dt><var>X</var><dd><var>X</var><code>(k)</code> is the throughput of center k. The
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3274 system throughput <var>Xsys</var> can be computed as
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3275 <var>Xsys</var><code> = </code><var>X</var><code>(1) / </code><var>V</var><code>(1)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3276
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3277 <br><dt><var>G</var><dd>Normalization constants. <var>G</var><code>(n+1)</code> corresponds to the value
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3278 of the normalization constant G(n), n=0, <small class="dots">...</small>, N as
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3279 array indexes in Octave start from 1. G(n) can be used in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3280 conjunction with the BCMP theorem to compute steady-state
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3281 probabilities.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3282
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3283 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3284
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3285 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3286
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3287 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3288 <strong>See also:</strong> qnclosedsinglemvald.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3289
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3290 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3291
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3292 <p>From the results provided by this function, it is possible to derive
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3293 other quantities of interest as follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3294
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3295 <p class="noindent"><strong>EXAMPLE</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3296
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3297 <pre class="example"><pre class="verbatim"> S = [ 0.125 0.3 0.2 ];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3298 V = [ 16 10 5 ];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3299 N = 20;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3300 m = ones(1,3);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3301 Z = 4;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3302 [U R Q X] = qnclosedsinglemva(N,S,V,m,Z);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3303 X_s = X(1)/V(1); # System throughput
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3304 R_s = dot(R,V); # System response time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3305 printf("\t Util Qlen RespT Tput\n");
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3306 printf("\t-------- -------- -------- --------\n");
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3307 for k=1:length(S)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3308 printf("Dev%d\t%8.4f %8.4f %8.4f %8.4f\n", k, U(k), Q(k), R(k), X(k) );
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3309 endfor
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3310 printf("\nSystem\t %8.4f %8.4f %8.4f\n\n", N-X_s*Z, R_s, X_s );</pre></pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3311 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3312
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3313 <p>M. Reiser and S. S. Lavenberg, <cite>Mean-Value Analysis of Closed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3314 Multichain Queuing Networks</cite>, Journal of the ACM, vol. 27, n. 2, April
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3315 1980, pp. 313&ndash;322. <a href="http://doi.acm.org/10.1145/322186.322195">http://doi.acm.org/10.1145/322186.322195</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3316
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3317 <p><a name="index-Reiser_002c-M_002e-152"></a><a name="index-Lavenberg_002c-S_002e-S_002e-153"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3318 This implementation is described in R. Jain , <cite>The Art of Computer
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3319 Systems Performance Analysis</cite>, Wiley, 1991, p. 577. Multi-server nodes
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3320 <!-- and the computation of @math{G(N)}, -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3321 are treated according to G. Bolch, S. Greiner, H. de Meer and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3322 K. Trivedi, <cite>Queueing Networks and Markov Chains: Modeling and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3323 Performance Evaluation with Computer Science Applications</cite>, Wiley,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3324 1998, Section 8.2.1, "Single Class Queueing Networks".
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3325
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3326 <p><a name="index-Jain_002c-R_002e-154"></a><a name="index-Bolch_002c-G_002e-155"></a><a name="index-Greiner_002c-S_002e-156"></a><a name="index-de-Meer_002c-H_002e-157"></a><a name="index-Trivedi_002c-K_002e-158"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3327 <!-- MVA for single class, closed networks with load dependent servers -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3328 <a name="doc_002dqnclosedsinglemvald"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3329
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3330 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3331 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedsinglemvald</b> (<var>N, S, V</var>)<var><a name="index-qnclosedsinglemvald-159"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3332 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedsinglemvald</b> (<var>N, S, V, Z</var>)<var><a name="index-qnclosedsinglemvald-160"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3333 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3334 <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-161"></a><a name="index-closed-network_002c-single-class-162"></a><a name="index-load_002ddependent-service-center-163"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3335 Exact MVA algorithm for closed, single class queueing networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3336 with load-dependent service centers. This function supports
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3337 FCFS, LCFS-PR, PS and IS nodes. For networks with only fixed-rate
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3338 service centers and multiple-server nodes, the function
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3339 <code>qnclosedsinglemva</code> is more efficient.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3340
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3341 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3342
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3343 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3344 <dt><var>N</var><dd>Population size (number of requests in the system, <var>N</var><code> &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3345 If <var>N</var><code> == 0</code>, this function returns <var>U</var><code> = </code><var>R</var><code> = </code><var>Q</var><code> = </code><var>X</var><code> = 0</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3346
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3347 <br><dt><var>S</var><dd><var>S</var><code>(k,n)</code> is the mean service time at center k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3348 where there are n requests, 1 &le; n
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3349 &le; N. <var>S</var><code>(k,n)</code> = 1 / \mu_k,n,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3350 where \mu_k,n is the service rate of center k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3351 when there are n requests.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3352
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3353 <br><dt><var>V</var><dd><var>V</var><code>(k)</code> is the average number
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3354 of visits to service center k (<var>V</var><code>(k) &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3355
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3356 <br><dt><var>Z</var><dd>external delay ("think time", <var>Z</var><code> &ge; 0</code>); default 0.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3357
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3358 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3359
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3360 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3361
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3362 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3363 <dt><var>U</var><dd><var>U</var><code>(k)</code> is the utilization of service center k. The
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3364 utilization is defined as the probability that service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3365 k is not empty, that is, U_k = 1-\pi_k(0) where
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3366 \pi_k(0) is the steady-state probability that there are 0
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3367 jobs at service center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3368
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3369 <br><dt><var>R</var><dd><var>R</var><code>(k)</code> is the response time on service center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3370
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3371 <br><dt><var>Q</var><dd><var>Q</var><code>(k)</code> is the average number of requests in service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3372 k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3373
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3374 <br><dt><var>X</var><dd><var>X</var><code>(k)</code> is the throughput of service center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3375
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3376 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3377
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3378 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3379
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3380 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3381
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3382 <p>M. Reiser and S. S. Lavenberg, <cite>Mean-Value Analysis of Closed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3383 Multichain Queuing Networks</cite>, Journal of the ACM, vol. 27, n. 2,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3384 April 1980, pp. 313&ndash;322. <a href="http://doi.acm.org/10.1145/322186.322195">http://doi.acm.org/10.1145/322186.322195</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3385
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3386 <p>This implementation is described in G. Bolch, S. Greiner, H. de Meer
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3387 and K. Trivedi, <cite>Queueing Networks and Markov Chains: Modeling
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3388 and Performance Evaluation with Computer Science Applications</cite>, Wiley,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3389 1998, Section 8.2.4.1, &ldquo;Networks with Load-Deèpendent Service: Closed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3390 Networks&rdquo;.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3391
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3392 <p><a name="index-Bolch_002c-G_002e-164"></a><a name="index-Greiner_002c-S_002e-165"></a><a name="index-de-Meer_002c-H_002e-166"></a><a name="index-Trivedi_002c-K_002e-167"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3393 <!-- CMVA for single class, closed networks with a single load dependent servers -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3394 <a name="doc_002dqncmva"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3395
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3396 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3397 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qncmva</b> (<var>N, S, Sld, V</var>)<var><a name="index-qncmva-168"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3398 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qncmva</b> (<var>N, S, Sld, V, Z</var>)<var><a name="index-qncmva-169"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3399 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3400 <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-170"></a><a name="index-CMVA-171"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3401 Implementation of the Conditional MVA (CMVA) algorithm, a numerically
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3402 stable variant of MVA for load-dependent servers. CMVA is described
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3403 in G. Casale, <cite>A Note on Stable Flow-Equivalent Aggregation in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3404 Closed Networks</cite>. The network is made of M service centers and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3405 a delay center. Servers 1, \ldots, M-1 are load-independent;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3406 server M is load-dependent.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3407
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3408 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3409
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3410 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3411 <dt><var>N</var><dd>Population size (number of requests in the system, <var>N</var><code> &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3412 If <var>N</var><code> == 0</code>, this function returns
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3413 <var>U</var><code> = </code><var>R</var><code> = </code><var>Q</var><code> = </code><var>X</var><code> = 0</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3414
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3415 <br><dt><var>S</var><dd><var>S</var><code>(k)</code> is the mean service time on server k = 1, <small class="dots">...</small>, M-1
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3416 (<var>S</var><code>(k) &gt; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3417
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3418 <br><dt><var>Sld</var><dd><var>Sld</var><code>(n)</code> is the mean service time on server M
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3419 when there are n requests, n=1, <small class="dots">...</small>, N.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3420 <var>Sld</var><code>(n) = </code> 1 / \mu(n), where \mu(n) is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3421 service rate at center N when there are n requests.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3422
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3423 <br><dt><var>V</var><dd><var>V</var><code>(k)</code> is the average number of visits to service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3424 k= 1, <small class="dots">...</small>, M (<var>V</var><code>(k) &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3425
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3426 <br><dt><var>Z</var><dd>External delay for customers (<var>Z</var><code> &ge; 0</code>). Default is 0.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3427
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3428 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3429
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3430 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3431
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3432 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3433 <dt><var>U</var><dd><var>U</var><code>(k)</code> is the utilization of center k=1, <small class="dots">...</small>, M
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3434
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3435 <br><dt><var>R</var><dd><var>R</var><code>(k)</code> is the response time at center k=1, <small class="dots">...</small>, M.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3436 The system response time <var>Rsys</var>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3437 can be computed as <var>Rsys</var><code> = </code><var>N</var><code>/</code><var>Xsys</var><code> - Z</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3438
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3439 <br><dt><var>Q</var><dd><var>Q</var><code>(k)</code> is the average number of requests at center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3440 k=1, <small class="dots">...</small>, M.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3441
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3442 <br><dt><var>X</var><dd><var>X</var><code>(k)</code> is the throughput of center k=1, <small class="dots">...</small>, M.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3443
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3444 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3445
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3446 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3447
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3448 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3449
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3450 <p>G. Casale. <cite>A note on stable flow-equivalent aggregation in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3451 closed networks</cite>. Queueing Syst. Theory Appl., 60:193–202, December
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3452 2008.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3453
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3454 <p><a name="index-Casale_002c-G_002e-172"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3455 <!-- Approximate MVA for single class, closed networks -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3456
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3457 <p><a name="doc_002dqnclosedsinglemvaapprox"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3458
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3459 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3460 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedsinglemvaapprox</b> (<var>N, S, V</var>)<var><a name="index-qnclosedsinglemvaapprox-173"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3461 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedsinglemvaapprox</b> (<var>N, S, V, m</var>)<var><a name="index-qnclosedsinglemvaapprox-174"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3462 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedsinglemvaapprox</b> (<var>N, S, V, m, Z</var>)<var><a name="index-qnclosedsinglemvaapprox-175"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3463 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedsinglemvaapprox</b> (<var>N, S, V, m, Z, tol</var>)<var><a name="index-qnclosedsinglemvaapprox-176"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3464 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedsinglemvaapprox</b> (<var>N, S, V, m, Z, tol, iter_max</var>)<var><a name="index-qnclosedsinglemvaapprox-177"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3465 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3466 <p><a name="index-Mean-Value-Analysys-_0028MVA_0029_002c-approximate-178"></a><a name="index-Approximate-MVA-179"></a><a name="index-Closed-network_002c-single-class-180"></a><a name="index-Closed-network_002c-approximate-analysis-181"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3467 Analyze closed, single class queueing networks using the Approximate
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3468 Mean Value Analysis (MVA) algorithm. This function is based on
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3469 approximating the number of customers seen at center k when a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3470 new request arrives as Q_k(N) \times (N-1)/N. This function
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3471 only handles single-server and delay centers; if your network
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3472 contains general load-dependent service centers, use the function
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3473 <code>qnclosedsinglemvald</code> instead.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3474
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3475 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3476
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3477 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3478 <dt><var>N</var><dd>Population size (number of requests in the system, <var>N</var><code> &gt; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3479
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3480 <br><dt><var>S</var><dd><var>S</var><code>(k)</code> is the mean service time on server k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3481 (<var>S</var><code>(k)&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3482
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3483 <br><dt><var>V</var><dd><var>V</var><code>(k)</code> is the average number of visits to service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3484 k (<var>V</var><code>(k) &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3485
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3486 <br><dt><var>m</var><dd><var>m</var><code>(k)</code> is the number of servers at center k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3487 (if <var>m</var> is a scalar, all centers have that number of servers). If
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3488 <var>m</var><code>(k) &lt; 1</code>, center k is a delay center (IS); if
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3489 <var>m</var><code>(k) == 1</code>, center k is a regular queueing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3490 center (FCFS, LCFS-PR or PS) with one server (default). This function
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3491 does not support multiple server nodes (<var>m</var><code>(k) &gt; 1</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3492
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3493 <br><dt><var>Z</var><dd>External delay for customers (<var>Z</var><code> &ge; 0</code>). Default is 0.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3494
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3495 <br><dt><var>tol</var><dd>Stopping tolerance. The algorithm stops when the maximum relative difference
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3496 between the new and old value of the queue lengths <var>Q</var> becomes
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3497 less than the tolerance. Default is 10^-5.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3498
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3499 <br><dt><var>iter_max</var><dd>Maximum number of iterations (<var>iter_max</var><code>&gt;0</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3500 The function aborts if convergenge is not reached within the maximum
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3501 number of iterations. Default is 100.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3502
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3503 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3504
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3505 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3506
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3507 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3508 <dt><var>U</var><dd>If k is a FCFS, LCFS-PR or PS node (<var>m</var><code>(k) == 1</code>),
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3509 then <var>U</var><code>(k)</code> is the utilization of center k. If
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3510 k is an IS node (<var>m</var><code>(k) &lt; 1</code>), then
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3511 <var>U</var><code>(k)</code> is the <em>traffic intensity</em> defined as
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3512 <var>X</var><code>(k)*</code><var>S</var><code>(k)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3513
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3514 <br><dt><var>R</var><dd><var>R</var><code>(k)</code> is the response time at center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3515 The system response time <var>Rsys</var>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3516 can be computed as <var>Rsys</var><code> = </code><var>N</var><code>/</code><var>Xsys</var><code> - Z</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3517
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3518 <br><dt><var>Q</var><dd><var>Q</var><code>(k)</code> is the average number of requests at center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3519 k. The number of requests in the system can be computed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3520 either as <code>sum(</code><var>Q</var><code>)</code>, or using the formula
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3521 <var>N</var><code>-</code><var>Xsys</var><code>*</code><var>Z</var>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3522
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3523 <br><dt><var>X</var><dd><var>X</var><code>(k)</code> is the throughput of center k. The
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3524 system throughput <var>Xsys</var> can be computed as
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3525 <var>Xsys</var><code> = </code><var>X</var><code>(1) / </code><var>V</var><code>(1)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3526
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3527 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3528
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3529 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3530
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3531 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3532 <strong>See also:</strong> qnclosedsinglemva,qnclosedsinglemvald.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3533
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3534 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3535
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3536 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3537
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3538 <p>This implementation is based on Edward D. Lazowska, John Zahorjan,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3539 G. Scott Graham, and Kenneth C. Sevcik, <cite>Quantitative System
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3540 Performance: Computer System Analysis Using Queueing Network Models</cite>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3541 Prentice Hall,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3542 1984. <a href="http://www.cs.washington.edu/homes/lazowska/qsp/">http://www.cs.washington.edu/homes/lazowska/qsp/</a>. In
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3543 particular, see section 6.4.2.2 ("Approximate Solution Techniques").
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3544
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3545 <p><a name="index-Lazowska_002c-E_002e-D_002e-182"></a><a name="index-Zahorjan_002c-J_002e-183"></a><a name="index-Graham_002c-G_002e-S_002e-184"></a><a name="index-Sevcik_002c-K_002e-C_002e-185"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3546
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3547 <!-- MVA for multiple class, closed networks -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3548 <p><a name="doc_002dqnclosedmultimva"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3549
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3550 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3551 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedmultimva</b> (<var>N, S </var>)<var><a name="index-qnclosedmultimva-186"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3552 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedmultimva</b> (<var>N, S, V</var>)<var><a name="index-qnclosedmultimva-187"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3553 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedmultimva</b> (<var>N, S, V, m</var>)<var><a name="index-qnclosedmultimva-188"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3554 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedmultimva</b> (<var>N, S, V, m, Z</var>)<var><a name="index-qnclosedmultimva-189"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3555 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedmultimva</b> (<var>N, S, P</var>)<var><a name="index-qnclosedmultimva-190"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3556 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedmultimva</b> (<var>N, S, P, m</var>)<var><a name="index-qnclosedmultimva-191"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3557 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3558 <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-192"></a><a name="index-closed-network_002c-multiple-classes-193"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3559 Analyze closed, multiclass queueing networks with K service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3560 centers and C independent customer classes (chains) using the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3561 Mean Value Analysys (MVA) algorithm.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3562
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3563 <p>Queueing policies at service centers can be any of the following:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3564
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3565 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3566 <dt><strong>FCFS</strong><dd>(First-Come-First-Served) customers are served in order of arrival;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3567 multiple servers are allowed. For this kind of queueing discipline,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3568 average service times must be class-independent.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3569
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3570 <br><dt><strong>PS</strong><dd>(Processor Sharing) customers are served in parallel by a single
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3571 server, each customer receiving an equal share of the service rate.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3572
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3573 <br><dt><strong>LCFS-PR</strong><dd>(Last-Come-First-Served, Preemptive Resume) customers are served in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3574 reverse order of arrival by a single server and the last arrival
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3575 preempts the customer in service who will later resume service at the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3576 point of interruption.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3577
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3578 <br><dt><strong>IS</strong><dd>(Infinite Server) customers are delayed independently of other
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3579 customers at the service center (there is effectively an infinite
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3580 number of servers).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3581
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3582 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3583
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3584 <blockquote>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3585 <b>Note:</b> If this function is called specifying the visit ratios
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3586 <var>V</var>, class switching is <strong>not</strong> allowed.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3587
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3588 <p>If this function is called specifying the routing probability matrix
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3589 <var>P</var>, then class switching <strong>is</strong> allowed; however, in this
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3590 case all nodes are restricted to be fixed rate service centers or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3591 delay centers: multiple-server and general load-dependent
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3592 centers are not supported.</blockquote>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3593
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3594 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3595
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3596 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3597 <dt><var>N</var><dd><var>N</var><code>(c)</code> is the number of class c requests in the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3598 system; <var>N</var><code>(c) &ge; 0</code>. If class c has
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3599 no requests (<var>N</var><code>(c) = 0</code>), then
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3600 <var>U</var><code>(c,k) = </code><var>R</var><code>(c,k) = </code><var>Q</var><code>(c,k) = </code><var>X</var><code>(c,k) = 0</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3601 for all <var>k</var>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3602
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3603 <br><dt><var>S</var><dd><var>S</var><code>(c,k)</code> is the mean service time for class c
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3604 customers at center k (<var>S</var><code>(c,k) &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3605 If service time at center k is class-dependent,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3606 then center #mathk is assumed to be of type -/G/1&ndash;PS
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3607 (Processor Sharing).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3608 If center k is a FCFS node (<var>m</var><code>(k)&gt;1</code>), then the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3609 service times <strong>must</strong> be class-independent.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3610
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3611 <br><dt><var>V</var><dd><var>V</var><code>(c,k)</code> is the average number of visits of class c
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3612 customers to service center k; <var>V</var><code>(c,k) &ge; 0</code>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3613 default is 1.
9439
f9ab20ba5834 fixed typo in the documentation
mmarzolla
parents: 9412
diff changeset
3614 <strong>If you pass this parameter, class switching is not
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3615 allowed</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3616
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3617 <br><dt><var>P</var><dd><var>P</var><code>(r,i,s,j)</code> is the probability that a class r
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3618 job completing service at center i is routed to center j
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3619 as a class s job. <strong>If you pass this parameter,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3620 class switching is allowed</strong>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3621
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3622 <br><dt><var>m</var><dd>If <var>m</var><code>(k)&lt;1</code>, then center k is assumed to be a delay
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3623 center (IS node -/G/\infty). If <var>m</var><code>(k)==1</code>, then
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3624 service center k is a regular queueing center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3625 (M/M/1&ndash;FCFS, -/G/1&ndash;LCFS-PR or -/G/1&ndash;PS).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3626 Finally, if <var>m</var><code>(k)&gt;1</code>, center k is a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3627 M/M/m&ndash;FCFS center with <var>m</var><code>(k)</code> identical servers.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3628 Default is <var>m</var><code>(k)=1</code> for each k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3629
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3630 <br><dt><var>Z</var><dd><var>Z</var><code>(c)</code> is the class c external delay (think time);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3631 <var>Z</var><code>(c) &ge; 0</code>. Default is 0.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3632
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3633 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3634
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3635 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3636
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3637 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3638 <dt><var>U</var><dd>If k is a FCFS, LCFS-PR or PS node, then <var>U</var><code>(c,k)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3639 is the class c utilization at center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3640 k. If k is an IS node, then <var>U</var><code>(c,k)</code> is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3641 class c <em>traffic intensity</em> at center k,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3642 defined as <var>U</var><code>(c,k) = </code><var>X</var><code>(c,k)*</code><var>S</var><code>(c,k)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3643
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3644 <br><dt><var>R</var><dd><var>R</var><code>(c,k)</code> is the class c response time at
9622
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
3645 center k. The class c <em>residence time</em>
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
3646 at center k is <var>R</var><code>(c,k) * </code><var>C</var><code>(c,k)</code>.
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
3647 The total class c system response time
cdf1dbf20cd4 fixed bug in texinfo documentation
mmarzolla
parents: 9480
diff changeset
3648 is <code>dot(</code><var>R</var><code>, </code><var>V</var><code>, 2)</code>.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3649
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3650 <br><dt><var>Q</var><dd><var>Q</var><code>(c,k)</code> is the average number of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3651 class c requests at center k. The total number of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3652 requests at center k is <code>sum(</code><var>Q</var><code>(:,k))</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3653 The total number of class c requests in the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3654 is <code>sum(</code><var>Q</var><code>(c,:))</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3655
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3656 <br><dt><var>X</var><dd><var>X</var><code>(c,k)</code> is the class c throughput at
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3657 center k. The class c system throughput can be computed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3658 as <var>X</var><code>(c,1) / </code><var>V</var><code>(c,1)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3659
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3660 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3661
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3662 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3663
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3664 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3665 <strong>See also:</strong> qnclosed, qnclosedmultimvaapprox.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3666
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3667 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3668
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3669 <p class="noindent"><strong>NOTE</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3670
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3671 <p>Given a network with K service centers, C job classes and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3672 population vector \bf N=(N_1, N_2, \ldots N_C), the MVA
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3673 algorithm requires space O(C \prod_i (N_i + 1)). The time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3674 complexity is O(CK\prod_i (N_i + 1)). This implementation is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3675 slightly more space-efficient (see details in the code). While the space
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3676 requirement can be mitigated by using some optimizations, the time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3677 complexity can not. If you need to analyze large closed networks you
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3678 should consider the <samp><span class="command">qnclosedmultimvaapprox</span></samp> function, which
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3679 implements the approximate MVA algorithm. Note however that
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3680 <samp><span class="command">qnclosedmultimvaapprox</span></samp> will only provide approximate results.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3681
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3682 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3683
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3684 <p>M. Reiser and S. S. Lavenberg, <cite>Mean-Value Analysis of Closed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3685 Multichain Queuing Networks</cite>, Journal of the ACM, vol. 27, n. 2, April
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3686 1980, pp. 313&ndash;322. <a href="http://doi.acm.org/10.1145/322186.322195">http://doi.acm.org/10.1145/322186.322195</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3687
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3688 <p><a name="index-Reiser_002c-M_002e-194"></a><a name="index-Lavenberg_002c-S_002e-S_002e-195"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3689 This implementation is based on G. Bolch, S. Greiner, H. de Meer and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3690 K. Trivedi, <cite>Queueing Networks and Markov Chains: Modeling and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3691 Performance Evaluation with Computer Science Applications</cite>, Wiley,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3692 1998 and Edward D. Lazowska, John Zahorjan, G. Scott Graham, and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3693 Kenneth C. Sevcik, <cite>Quantitative System Performance: Computer
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3694 System Analysis Using Queueing Network Models</cite>, Prentice Hall,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3695 1984. <a href="http://www.cs.washington.edu/homes/lazowska/qsp/">http://www.cs.washington.edu/homes/lazowska/qsp/</a>. In
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3696 particular, see section 7.4.2.1 ("Exact Solution Techniques").
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3697
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3698 <p><a name="index-Bolch_002c-G_002e-196"></a><a name="index-Greiner_002c-S_002e-197"></a><a name="index-de-Meer_002c-H_002e-198"></a><a name="index-Trivedi_002c-K_002e-199"></a><a name="index-Lazowska_002c-E_002e-D_002e-200"></a><a name="index-Zahorjan_002c-J_002e-201"></a><a name="index-Graham_002c-G_002e-S_002e-202"></a><a name="index-Sevcik_002c-K_002e-C_002e-203"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3699 <!-- Approximate MVA, with Bard-Schweitzer approximation -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3700 <a name="doc_002dqnclosedmultimvaapprox"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3701
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3702 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3703 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedmultimvaapprox</b> (<var>N, S, V</var>)<var><a name="index-qnclosedmultimvaapprox-204"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3704 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedmultimvaapprox</b> (<var>N, S, V, m</var>)<var><a name="index-qnclosedmultimvaapprox-205"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3705 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedmultimvaapprox</b> (<var>N, S, V, m, Z</var>)<var><a name="index-qnclosedmultimvaapprox-206"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3706 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedmultimvaapprox</b> (<var>N, S, V, m, Z, tol</var>)<var><a name="index-qnclosedmultimvaapprox-207"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3707 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosedmultimvaapprox</b> (<var>N, S, V, m, Z, tol, iter_max</var>)<var><a name="index-qnclosedmultimvaapprox-208"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3708 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3709 <p><a name="index-Mean-Value-Analysys-_0028MVA_0029_002c-approximate-209"></a><a name="index-Approximate-MVA-210"></a><a name="index-Closed-network_002c-multiple-classes-211"></a><a name="index-Closed-network_002c-approximate-analysis-212"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3710 Analyze closed, multiclass queueing networks with K service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3711 centers and C customer classes using the approximate Mean
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3712 Value Analysys (MVA) algorithm.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3713
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3714 <p>This implementation uses Bard and Schweitzer approximation. It is based
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3715 on the assumption that
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3716 the queue length at service center k with population
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3717 set \bf N-\bf 1_c is approximately equal to the queue length
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3718 with population set \bf N, times (n-1)/n:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3719
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3720 <pre class="example"> Q_i(N-1c) ~ (n-1)/n Q_i(N)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3721 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3722 <p>where \bf N is a valid population mix, \bf N-\bf 1_c
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3723 is the population mix \bf N with one class c customer
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3724 removed, and n = \sum_c N_c is the total number of requests.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3725
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3726 <p>This implementation works for networks made of infinite server (IS)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3727 nodes and single-server nodes only.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3728
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3729 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3730
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3731 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3732 <dt><var>N</var><dd><var>N</var><code>(c)</code> is the number of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3733 class c requests in the system (<var>N</var><code>(c)&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3734
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3735 <br><dt><var>S</var><dd><var>S</var><code>(c,k)</code> is the mean service time for class c
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3736 customers at center k (<var>S</var><code>(c,k) &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3737
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3738 <br><dt><var>V</var><dd><var>V</var><code>(c,k)</code> is the average number of visits of class c
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3739 requests to center k (<var>V</var><code>(c,k) &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3740
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3741 <br><dt><var>m</var><dd><var>m</var><code>(k)</code> is the number of servers at service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3742 k. If <var>m</var><code>(k) &lt; 1</code>, then the service center k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3743 is assumed to be a delay center (IS). If <var>m</var><code>(k) == 1</code>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3744 service center k is a regular queueing center (FCFS, LCFS-PR
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3745 or PS) with a single server node. If omitted, each service center has
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3746 a single server. Note that multiple server nodes are not supported.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3747
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3748 <br><dt><var>Z</var><dd><var>Z</var><code>(c)</code> is the class c external delay. Default
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3749 is 0.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3750
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3751 <br><dt><var>tol</var><dd>Stopping tolerance (<var>tol</var><code>&gt;0</code>). The algorithm stops if
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3752 the queue length computed on two subsequent iterations are less than
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3753 <var>tol</var>. Default is 10^-5.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3754
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3755 <br><dt><var>iter_max</var><dd>Maximum number of iterations (<var>iter_max</var><code>&gt;0</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3756 The function aborts if convergenge is not reached within the maximum
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3757 number of iterations. Default is 100.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3758
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3759 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3760
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3761 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3762
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3763 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3764 <dt><var>U</var><dd>If k is a FCFS, LCFS-PR or PS node, then <var>U</var><code>(c,k)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3765 is the utilization of class c requests on service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3766 k. If k is an IS node, then <var>U</var><code>(c,k)</code> is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3767 class c <em>traffic intensity</em> at device k,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3768 defined as <var>U</var><code>(c,k) = </code><var>X</var><code>(c)*</code><var>S</var><code>(c,k)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3769
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3770 <br><dt><var>R</var><dd><var>R</var><code>(c,k)</code> is the response
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3771 time of class c requests at service center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3772
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3773 <br><dt><var>Q</var><dd><var>Q</var><code>(c,k)</code> is the average number of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3774 class c requests at service center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3775
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3776 <br><dt><var>X</var><dd><var>X</var><code>(c,k)</code> is the class c
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3777 throughput at service center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3778
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3779 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3780
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3781 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3782
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3783 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3784 <strong>See also:</strong> qnclosed.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3785
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3786 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3787
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3788 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3789
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3790 <p>Y. Bard, <cite>Some Extensions to Multiclass Queueing Network Analysis</cite>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3791 proc. 4th Int. Symp. on Modelling and Performance Evaluation of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3792 Computer Systems, feb. 1979, pp. 51&ndash;62.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3793
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3794 <p><a name="index-Bard_002c-Y_002e-213"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3795 P. Schweitzer, <cite>Approximate Analysis of Multiclass Closed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3796 Networks of Queues</cite>, Proc. Int. Conf. on Stochastic Control and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3797 Optimization, jun 1979, pp. 25&ndash;29.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3798
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3799 <p><a name="index-Schweitzer_002c-P_002e-214"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3800 This implementation is based on Edward D. Lazowska, John Zahorjan, G.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3801 Scott Graham, and Kenneth C. Sevcik, <cite>Quantitative System
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3802 Performance: Computer System Analysis Using Queueing Network Models</cite>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3803 Prentice Hall,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3804 1984. <a href="http://www.cs.washington.edu/homes/lazowska/qsp/">http://www.cs.washington.edu/homes/lazowska/qsp/</a>. In
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3805 particular, see section 7.4.2.2 ("Approximate Solution
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3806 Techniques"). This implementation is slightly different from the one
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3807 described above, as it computes the average response times R
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3808 instead of the residence times.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3809
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3810 <p><a name="index-Lazowska_002c-E_002e-D_002e-215"></a><a name="index-Zahorjan_002c-J_002e-216"></a><a name="index-Graham_002c-G_002e-S_002e-217"></a><a name="index-Sevcik_002c-K_002e-C_002e-218"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3811
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3812 <h4 class="subsection">6.3.5 Mixed Networks</h4>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3813
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3814 <!-- MVA for mixed networks -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3815 <p><a name="doc_002dqnmix"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3816
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3817 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3818 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnmix</b> (<var>lambda, N, S, V, m</var>)<var><a name="index-qnmix-219"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3819 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3820 <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-220"></a><a name="index-mixed-network-221"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3821 Solution of mixed queueing networks through MVA. The network consists
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3822 of K service centers (single-server or delay centers) and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3823 C independent customer chains. Both open and closed chains
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3824 are possible. <var>lambda</var> is the vector of per-chain
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3825 arrival rates (open classes); <var>N</var> is the vector of populations
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3826 for closed chains.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3827
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3828 <blockquote>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3829 <b>Note:</b> In this implementation class switching is <strong>not</strong> allowed. Each
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3830 customer class <em>must</em> correspond to an independent chain.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3831 </blockquote>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3832
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3833 <p>If the network is made of open or closed classes only, then this
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3834 function calls <code>qnopenmulti</code> or <code>qnclosedmultimva</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3835 respectively, and prints a warning message.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3836
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3837 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3838
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3839 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3840 <dt><var>lambda</var><dt><var>N</var><dd>For each customer chain c:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3841
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3842 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3843 <li>if c is a closed chain, then <var>N</var><code>(c)&gt;0</code> is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3844 number of class c requests and <var>lambda</var><code>(c)</code> must be
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3845 zero;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3846
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3847 <li>If c is an open chain,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3848 <var>lambda</var><code>(c)&gt;0</code> is the arrival rate of class c
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3849 requests and <var>N</var><code>(c)</code> must be zero;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3850
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3851 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3852
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3853 <p class="noindent">For each c, the following must hold:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3854
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3855 <pre class="example"> (<var>lambda</var>(c)&gt;0 &amp;&amp; <var>N</var>(c)==0) || (<var>lambda</var>(c)==0 &amp;&amp; <var>N</var>(c)&gt;0)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3856 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3857 <p>which means that either <var>lambda</var><code>(c)</code> is nonzero and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3858 <var>N</var><code>(n)</code> is zero, or the other way around. If for some
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3859 c, <var>lambda</var>(c) \neq 0 and <var>N</var>(c) \neq 0, an
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3860 error is reported and this function aborts.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3861
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3862 <br><dt><var>S</var><dd><var>S</var><code>(c,k)</code> is the mean service time for class c
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3863 customers on service center k, <var>S</var><code>(c,k) &ge; 0</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3864 For FCFS nodes, service times must be class-independent.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3865
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3866 <br><dt><var>V</var><dd><var>V</var><code>(c,k)</code> is the average number of visits of class c
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3867 customers to service center k (<var>V</var><code>(c,k) &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3868
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3869 <br><dt><var>m</var><dd><var>m</var><code>(k)</code> is the number of servers at service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3870 k. Only single-server (<var>m</var><code>(k)==1</code>) or IS (Infinite
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3871 Server) nodes (<var>m</var><code>(k)&lt;1</code>) are supported. If omitted, each
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3872 service center is assumed to have a single server. Queueing discipline
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3873 for single-server nodes can be FCFS, PS or LCFS-PR.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3874
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3875 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3876
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3877 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3878
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3879 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3880 <dt><var>U</var><dd><var>U</var><code>(c,k)</code> is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3881 utilization of class c requests on service center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3882
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3883 <br><dt><var>R</var><dd><var>R</var><code>(c,k)</code> is the response
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3884 time of class c requests on service center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3885
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3886 <br><dt><var>Q</var><dd><var>Q</var><code>(c,k)</code> is the average number of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3887 class c requests on service center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3888
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3889 <br><dt><var>X</var><dd><var>X</var><code>(c,k)</code> is the class c
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3890 throughput on service center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3891
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3892 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3893
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3894 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3895
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3896 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3897 <strong>See also:</strong> qnclosedmultimva, qnopenmulti.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3898
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3899 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3900
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3901 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3902
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3903 <p>Edward D. Lazowska, John Zahorjan, G. Scott Graham, and Kenneth C.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3904 Sevcik, <cite>Quantitative System Performance: Computer System
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3905 Analysis Using Queueing Network Models</cite>, Prentice Hall,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3906 1984. <a href="http://www.cs.washington.edu/homes/lazowska/qsp/">http://www.cs.washington.edu/homes/lazowska/qsp/</a>. In
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3907 particular, see section 7.4.3 ("Mixed Model Solution Techniques").
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3908 Note that in this function we compute the mean response time R
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3909 instead of the mean residence time as in the reference.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3910
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3911 <p><a name="index-Lazowska_002c-E_002e-D_002e-222"></a><a name="index-Zahorjan_002c-J_002e-223"></a><a name="index-Graham_002c-G_002e-S_002e-224"></a><a name="index-Sevcik_002c-K_002e-C_002e-225"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3912 Herb Schwetman, <cite>Implementing the Mean Value Algorithm for the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3913 Solution of Queueing Network Models</cite>, Technical Report CSD-TR-355,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3914 Department of Computer Sciences, Purdue University, feb 15, 1982,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3915 available at
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3916 <a href="http://www.cs.purdue.edu/research/technical_reports/1980/TR%2080-355.pdf">http://www.cs.purdue.edu/research/technical_reports/1980/TR%2080-355.pdf</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3917
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3918 <p><a name="index-Schwetman_002c-H_002e-226"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3919
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3920 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3921 <a name="Algorithms-for-non-Product-form-QNs"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3922 <a name="Algorithms-for-non-Product_002dform-QNs"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3923 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3924 Next:&nbsp;<a rel="next" accesskey="n" href="#Bounds-on-performance">Bounds on performance</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3925 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3926 Up:&nbsp;<a rel="up" accesskey="u" href="#Queueing-Networks">Queueing Networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3927
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3928 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3929
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3930 <h3 class="section">6.4 Algorithms for non Product-Form QNs</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3931
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3932 <!-- MVABLO algorithm for approximate analysis of closed, single class -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3933 <!-- QN with blocking -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3934 <p><a name="doc_002dqnmvablo"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3935
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3936 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3937 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnmvablo</b> (<var>N, S, M, P</var>)<var><a name="index-qnmvablo-227"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3938 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3939 <p><a name="index-queueing-network-with-blocking-228"></a><a name="index-blocking-queueing-network-229"></a><a name="index-closed-network_002c-finite-capacity-230"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3940 MVA algorithm for closed queueing networks with blocking. <samp><span class="command">qnmvablo</span></samp>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3941 computes approximate utilization, response time and mean queue length
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3942 for closed, single class queueing networks with blocking.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3943
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3944 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3945
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3946 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3947 <dt><var>N</var><dd>population size, i.e., number of requests in the system. <var>N</var> must
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3948 be strictly greater than zero, and less than the overall network capacity:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3949 <code>0 &lt; </code><var>N</var><code> &lt; sum(</code><var>M</var><code>)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3950
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3951 <br><dt><var>S</var><dd>Average service time. <var>S</var><code>(i)</code> is the average service time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3952 requested on server i (<var>S</var><code>(i) &gt; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3953
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3954 <br><dt><var>M</var><dd>Server capacity. <var>M</var><code>(i)</code> is the capacity of service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3955 i. The capacity is the maximum number of requests in a service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3956 center, including the request currently in service (<var>M</var><code>(i) &ge; 1</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3957
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3958 <br><dt><var>P</var><dd><var>P</var><code>(i,j)</code> is the probability that a request which completes
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3959 service at server i will be transferred to server j.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3960
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3961 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3962
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3963 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3964
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3965 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3966 <dt><var>U</var><dd><var>U</var><code>(i)</code> is the utilization of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3967 service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3968
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3969 <br><dt><var>R</var><dd><var>R</var><code>(i)</code> is the average response time
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3970 of service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3971
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3972 <br><dt><var>Q</var><dd><var>Q</var><code>(i)</code> is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3973 the average number of requests in service center i (including
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3974 the request in service).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3975
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3976 <br><dt><var>X</var><dd><var>X</var><code>(i)</code> is the throughput of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3977 service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3978
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3979 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3980
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3981 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3982
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3983 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3984 <strong>See also:</strong> qnopen, qnclosed.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3985
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3986 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3987
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3988 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3989
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3990 <p>Ian F. Akyildiz, <cite>Mean Value Analysis for Blocking Queueing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3991 Networks</cite>, IEEE Transactions on Software Engineering, vol. 14, n. 2,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3992 april 1988, pp. 418&ndash;428. <a href="http://dx.doi.org/10.1109/32.4663">http://dx.doi.org/10.1109/32.4663</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3993
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3994 <p><a name="index-Akyildiz_002c-I_002e-F_002e-231"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3995 <a name="doc_002dqnmarkov"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3996
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
3997 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3998 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnmarkov</b> (<var>lambda, S, C, P</var>)<var><a name="index-qnmarkov-232"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
3999 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnmarkov</b> (<var>lambda, S, C, P, m</var>)<var><a name="index-qnmarkov-233"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4000 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnmarkov</b> (<var>N, S, C, P</var>)<var><a name="index-qnmarkov-234"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4001 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnmarkov</b> (<var>N, S, C, P, m</var>)<var><a name="index-qnmarkov-235"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4002 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4003 <p><a name="index-closed-network_002c-multiple-classes-236"></a><a name="index-closed-network_002c-finite-capacity-237"></a><a name="index-blocking-queueing-network-238"></a><a name="index-RS-blocking-239"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4004 Compute utilization, response time, average queue length and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4005 throughput for open or closed queueing networks with finite capacity.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4006 Blocking type is Repetitive-Service (RS). This function explicitly
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4007 generates and solve the underlying Markov chain, and thus might
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4008 require a large amount of memory.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4009
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4010 <p>More specifically, networks which can me analyzed by this
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4011 function have the following properties:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4012
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4013 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4014 <li>There exists only a single class of customers.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4015
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4016 <li>The network has K service centers. Center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4017 i has m_i &gt; 0 servers, and has a total (finite) capacity of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4018 C_i \geq m_i which includes both buffer space and servers.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4019 The buffer space at service center i is therefore
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4020 C_i - m_i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4021
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4022 <li>The network can be open, with external arrival rate to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4023 center i equal to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4024 \lambda_i, or closed with fixed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4025 population size N. For closed networks, the population size
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4026 N must be strictly less than the network capacity: N &lt; \sum_i C_i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4027
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4028 <li>Average service times are load-independent.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4029
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4030 <li>P_ij is the probability that requests completing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4031 execution at center i are transferred to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4032 center j, i \neq j. For open networks, a request may leave the system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4033 from any node i with probability 1-\sum_j P_ij.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4034
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4035 <li>Blocking type is Repetitive-Service (RS). Service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4036 center j is <em>saturated</em> if the number of requests is equal
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4037 to its capacity <code>C_j</code>. Under the RS blocking discipline,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4038 a request completing service at center i which is being
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4039 transferred to a saturated server j is put back at the end of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4040 the queue of i and will receive service again. Center i
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4041 then processes the next request in queue. External arrivals to a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4042 saturated servers are dropped.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4043
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4044 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4045
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4046 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4047
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4048 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4049 <dt><var>lambda</var><dt><var>N</var><dd>If the first argument is a vector <var>lambda</var>, it is considered to be
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4050 the external arrival rate <var>lambda</var><code>(i) &ge; 0</code> to service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4051 i of an open network. If the first argument is a scalar, it is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4052 considered as the population size <var>N</var> of a closed network; in this case
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4053 <var>N</var> must be strictly
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4054 less than the network capacity: <var>N</var><code> &lt; sum(</code><var>C</var><code>)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4055
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4056 <br><dt><var>S</var><dd><var>S</var><code>(i)</code> is the average service time at service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4057 i
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4058
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4059 <br><dt><var>C</var><dd><var>C</var><code>(i)</code> is the Capacity of service center i. The capacity includes both
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4060 the buffer and server space <var>m</var><code>(i)</code>. Thus the buffer space is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4061 <var>C</var><code>(i)-</code><var>m</var><code>(i)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4062
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4063 <br><dt><var>P</var><dd><var>P</var><code>(i,j)</code> is the transition probability from service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4064 i to service center j.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4065
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4066 <br><dt><var>m</var><dd><var>m</var><code>(i)</code> is the number of servers at service center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4067 i. Note that <var>m</var><code>(i) &ge; </code><var>C</var><code>(i)</code> for each <var>i</var>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4068 If <var>m</var> is omitted, all service centers are assumed to have a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4069 single server (<var>m</var><code>(i) = 1</code> for all i).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4070
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4071 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4072
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4073 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4074
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4075 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4076 <dt><var>U</var><dd><var>U</var><code>(i)</code> is the utilization of service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4077
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4078 <br><dt><var>R</var><dd><var>R</var><code>(i)</code> is the response time on service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4079
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4080 <br><dt><var>Q</var><dd><var>Q</var><code>(i)</code> is the average number of customers in the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4081 service center i, <em>including</em> the request in service.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4082
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4083 <br><dt><var>X</var><dd><var>X</var><code>(i)</code> is the throughput of service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4084
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4085 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4086
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4087 <blockquote>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4088 <b>Note:</b>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4089 The space complexity of this implementation is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4090 O( \prod_i=1^K (C_i + 1)^2). The time complexity is dominated
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4091 by the time needed to solve a linear system with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4092 \prod_i=1^K (C_i + 1)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4093 unknowns.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4094
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4095 </blockquote>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4096
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4097 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4098
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4099 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4100 <a name="Bounds-on-performance"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4101 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4102 Next:&nbsp;<a rel="next" accesskey="n" href="#Utility-functions">Utility functions</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4103 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Algorithms-for-non-Product_002dform-QNs">Algorithms for non Product-form QNs</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4104 Up:&nbsp;<a rel="up" accesskey="u" href="#Queueing-Networks">Queueing Networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4105
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4106 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4107
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4108 <h3 class="section">6.5 Bounds on performance</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4109
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4110 <p><a name="doc_002dqnopenab"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4111
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4112 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4113 &mdash; Function File: [<var>Xu</var>, <var>Rl</var>] = <b>qnopenab</b> (<var>lambda, D</var>)<var><a name="index-qnopenab-240"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4114 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4115 <p><a name="index-bounds_002c-asymptotic-241"></a><a name="index-open-network-242"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4116 Compute Asymptotic Bounds for single-class, open Queueing Networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4117 with K service centers.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4118
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4119 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4120
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4121 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4122 <dt><var>lambda</var><dd>overall arrival rate to the system (scalar). Abort if
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4123 <var>lambda</var><code> &le; 0</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4124
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4125 <br><dt><var>D</var><dd><var>D</var><code>(k)</code> is the service demand at center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4126 The service demand vector <var>D</var> must be nonempty, and all demands
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4127 must be nonnegative (<var>D</var><code>(k) &ge; 0</code> for all k).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4128
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4129 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4130
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4131 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4132
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4133 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4134 <dt><var>Xu</var><dd>Upper bound on the system throughput.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4135
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4136 <br><dt><var>Rl</var><dd>Lower bound on the system response time.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4137
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4138 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4139
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4140 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4141
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4142 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4143 <strong>See also:</strong> qnopenbsb.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4144
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4145 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4146
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4147 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4148
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4149 <p>Edward D. Lazowska, John Zahorjan, G. Scott Graham, and Kenneth
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4150 C. Sevcik, <cite>Quantitative System Performance: Computer System
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4151 Analysis Using Queueing Network Models</cite>, Prentice Hall,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4152 1984. <a href="http://www.cs.washington.edu/homes/lazowska/qsp/">http://www.cs.washington.edu/homes/lazowska/qsp/</a>. In
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4153 particular, see section 5.2 ("Asymptotic Bounds").
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4154
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4155 <p><a name="index-Lazowska_002c-E_002e-D_002e-243"></a><a name="index-Zahorjan_002c-J_002e-244"></a><a name="index-Graham_002c-G_002e-S_002e-245"></a><a name="index-Sevcik_002c-K_002e-C_002e-246"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4156 <a name="doc_002dqnclosedab"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4157
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4158 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4159 &mdash; Function File: [<var>Xl</var>, <var>Xu</var>, <var>Rl</var>, <var>Ru</var>] = <b>qnclosedab</b> (<var>N, D</var>)<var><a name="index-qnclosedab-247"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4160 &mdash; Function File: [<var>Xl</var>, <var>Xu</var>, <var>Rl</var>, <var>Ru</var>] = <b>qnclosedab</b> (<var>N, D, Z</var>)<var><a name="index-qnclosedab-248"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4161 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4162 <p><a name="index-bounds_002c-asymptotic-249"></a><a name="index-closed-network-250"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4163 Compute Asymptotic Bounds for single-class, closed Queueing Networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4164 with K service centers.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4165
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4166 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4167
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4168 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4169 <dt><var>N</var><dd>number of requests in the system (scalar, <var>N</var><code>&gt;0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4170
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4171 <br><dt><var>D</var><dd><var>D</var><code>(k)</code> is the service demand of service center k,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4172 <var>D</var><code>(k) &ge; 0</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4173
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4174 <br><dt><var>Z</var><dd>external delay (think time, scalar, <var>Z</var><code> &ge; 0</code>). If
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4175 omitted, it is assumed to be zero.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4176
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4177 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4178
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4179 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4180
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4181 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4182 <dt><var>Xl</var><dt><var>Xu</var><dd>Lower and upper bound on the system throughput.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4183
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4184 <br><dt><var>Rl</var><dt><var>Ru</var><dd>Lower and upper bound on the system response time.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4185
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4186 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4187
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4188 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4189
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4190 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4191 <strong>See also:</strong> qnclosedbsb, qnclosedgb, qnclosedpb.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4192
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4193 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4194
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4195 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4196
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4197 <p class="noindent">Edward D. Lazowska, John Zahorjan, G. Scott Graham, and Kenneth
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4198 C. Sevcik, <cite>Quantitative System Performance: Computer System
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4199 Analysis Using Queueing Network Models</cite>, Prentice Hall,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4200 1984. <a href="http://www.cs.washington.edu/homes/lazowska/qsp/">http://www.cs.washington.edu/homes/lazowska/qsp/</a>. In
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4201 particular, see section 5.2 ("Asymptotic Bounds").
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4202
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4203 <p><a name="index-Lazowska_002c-E_002e-D_002e-251"></a><a name="index-Zahorjan_002c-J_002e-252"></a><a name="index-Graham_002c-G_002e-S_002e-253"></a><a name="index-Sevcik_002c-K_002e-C_002e-254"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4204
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4205 <p><a name="doc_002dqnopenbsb"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4206
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4207 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4208 &mdash; Function File: [<var>Xu</var>, <var>Rl</var>, <var>Ru</var>] = <b>qnopenbsb</b> (<var>lambda, D</var>)<var><a name="index-qnopenbsb-255"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4209 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4210 <p><a name="index-bounds_002c-balanced-system-256"></a><a name="index-open-network-257"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4211 Compute Balanced System Bounds for single-class, open Queueing Networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4212 with K service centers.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4213
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4214 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4215
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4216 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4217 <dt><var>lambda</var><dd>overall arrival rate to the system (scalar). Abort if
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4218 <var>lambda</var><code> &lt; 0 </code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4219
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4220 <br><dt><var>D</var><dd><var>D</var><code>(k)</code> is the service demand at center k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4221 The service demand vector <var>D</var> must be nonempty, and all demands
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4222 must be nonnegative (<var>D</var><code>(k) &ge; 0</code> for all k).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4223
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4224 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4225
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4226 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4227
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4228 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4229 <dt><var>Xl</var><dd>Lower bound on the system throughput.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4230
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4231 <br><dt><var>Rl</var><dt><var>Ru</var><dd>Lower and upper bound on the system response time.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4232
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4233 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4234
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4235 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4236
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4237 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4238 <strong>See also:</strong> qnopenab.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4239
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4240 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4241
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4242 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4243
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4244 <p>Edward D. Lazowska, John Zahorjan, G. Scott Graham, and Kenneth
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4245 C. Sevcik, <cite>Quantitative System Performance: Computer System
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4246 Analysis Using Queueing Network Models</cite>, Prentice Hall,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4247 1984. <a href="http://www.cs.washington.edu/homes/lazowska/qsp/">http://www.cs.washington.edu/homes/lazowska/qsp/</a>. In
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4248 particular, see section 5.4 ("Balanced Systems Bounds").
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4249
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4250 <p><a name="index-Lazowska_002c-E_002e-D_002e-258"></a><a name="index-Zahorjan_002c-J_002e-259"></a><a name="index-Graham_002c-G_002e-S_002e-260"></a><a name="index-Sevcik_002c-K_002e-C_002e-261"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4251 <a name="doc_002dqnclosedbsb"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4252
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4253 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4254 &mdash; Function File: [<var>Xl</var>, <var>Xu</var>, <var>Rl</var>, <var>Ru</var>] = <b>qnclosedbsb</b> (<var>N, D</var>)<var><a name="index-qnclosedbsb-262"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4255 &mdash; Function File: [<var>Xl</var>, <var>Xu</var>, <var>Rl</var>, <var>Ru</var>] = <b>qnclosedbsb</b> (<var>N, D, Z</var>)<var><a name="index-qnclosedbsb-263"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4256 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4257 <p><a name="index-bounds_002c-balanced-system-264"></a><a name="index-closed-network-265"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4258 Compute Balanced System Bounds for single-class, closed Queueing Networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4259 with K service centers.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4260
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4261 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4262
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4263 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4264 <dt><var>N</var><dd>number of requests in the system (scalar).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4265
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4266 <br><dt><var>D</var><dd><var>D</var><code>(k)</code> is the service demand at center k;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4267 <var>K</var><code>(k) &ge; 0</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4268
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4269 <br><dt><var>Z</var><dd>external delay (think time, scalar, <var>Z</var><code> &ge; 0</code>). If
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4270 omitted, it is assumed to be zero.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4271
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4272 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4273
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4274 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4275
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4276 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4277 <dt><var>Xl</var><dt><var>Xu</var><dd>Lower and upper bound on the system throughput.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4278
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4279 <br><dt><var>Rl</var><dt><var>Ru</var><dd>Lower and upper bound on the system response time.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4280
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4281 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4282
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4283 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4284
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4285 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4286 <strong>See also:</strong> qnclosedab, qnclosedgb, qnclosedpb.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4287
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4288 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4289
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4290 <p><a name="doc_002dqnclosedpb"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4291
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4292 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4293 &mdash; Function File: [<var>Xl</var>, <var>Xu</var>] = <b>qnclosedpb</b> (<var>N, D </var>)<var><a name="index-qnclosedpb-266"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4294 <blockquote>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4295 <p>Compute PB Bounds (C. H. Hsieh and S. Lam, 1987)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4296 for single-class, closed Queueing Networks
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4297 with K service centers.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4298
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4299 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4300
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4301 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4302 <dt><var>N</var><dd>number of requests in the system (scalar). Must be <var>N</var><code> &gt; 0</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4303
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4304 <br><dt><var>D</var><dd><var>D</var><code>(k)</code> is the service demand of service center k. Must be
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4305 <var>D</var><code>(k) &ge; 0</code> for all k.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4306
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4307 <br><dt><var>Z</var><dd>external delay (think time, scalar). If omitted, it is assumed to be zero.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4308 Must be <var>Z</var><code> &ge; 0</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4309
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4310 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4311
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4312 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4313
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4314 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4315 <dt><var>Xl</var><dt><var>Xu</var><dd>Lower and upper bounds on the system throughput.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4316
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4317 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4318
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4319 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4320
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4321 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4322 <strong>See also:</strong> qnclosedab, qbclosedbsb, qnclosedgb.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4323
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4324 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4325
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4326 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4327
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4328 <p>The original paper describing PB Bounds is C. H. Hsieh and S. Lam,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4329 <cite>Two classes of performance bounds for closed queueing networks</cite>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4330 PEVA, vol. 7, n. 1, pp. 3&ndash;30, 1987
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4331
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4332 <p>This function implements the non-iterative variant described in G.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4333 Casale, R. R. Muntz, G. Serazzi, <cite>Geometric Bounds: a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4334 Non-Iterative Analysis Technique for Closed Queueing Networks</cite>, IEEE
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4335 Transactions on Computers, 57(6):780-794, June 2008.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4336
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4337 <p><a name="index-Hsieh_002c-C_002e-H-267"></a><a name="index-Lam_002c-S_002e-268"></a><a name="index-Casale_002c-G_002e-269"></a><a name="index-Muntz_002c-R_002e-R_002e-270"></a><a name="index-Serazzi_002c-G_002e-271"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4338 <a name="doc_002dqnclosedgb"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4339
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4340 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4341 &mdash; Function File: [<var>Xl</var>, <var>Xu</var>, <var>Ql</var>, <var>Qu</var>] = <b>qnclosedgb</b> (<var>N, D, Z</var>)<var><a name="index-qnclosedgb-272"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4342 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4343 <p><a name="index-bounds_002c-geometric-273"></a><a name="index-closed-network-274"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4344 Compute Geometric Bounds (GB) for single-class, closed Queueing Networks.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4345
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4346 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4347
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4348 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4349 <dt><var>N</var><dd>number of requests in the system (scalar, <var>N</var><code> &gt; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4350
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4351 <br><dt><var>D</var><dd><var>D</var><code>(k)</code> is the service demand of service center k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4352 (<var>D</var><code>(k) &ge; 0</code>).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4353
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4354 <br><dt><var>Z</var><dd>external delay (think time, scalar). If omitted, it is assumed to be zero.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4355
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4356 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4357
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4358 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4359
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4360 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4361 <dt><var>Xl</var><dt><var>Xu</var><dd>Lower and upper bound on the system throughput. If <var>Z</var><code>&gt;0</code>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4362 these bounds are computed using <em>Geometric Square-root Bounds</em>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4363 (GSB). If <var>Z</var><code>==0</code>, these bounds are computed using <em>Geometric Bounds</em> (GB)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4364
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4365 <br><dt><var>Ql</var><dt><var>Qu</var><dd><var>Ql</var><code>(i)</code> and <var>Qu</var><code>(i)</code> are the lower and upper
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4366 bounds respectively of the queue length for service center i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4367
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4368 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4369
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4370 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4371
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4372 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4373 <strong>See also:</strong> qnclosedab.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4374
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4375 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4376
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4377 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4378
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4379 <p>G. Casale, R. R. Muntz, G. Serazzi,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4380 <cite>Geometric Bounds: a Non-Iterative Analysis Technique for Closed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4381 Queueing Networks</cite>, IEEE Transactions on Computers, 57(6):780-794,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4382 June 2008. <a href="http://doi.ieeecomputersociety.org/10.1109/TC.2008.37">http://doi.ieeecomputersociety.org/10.1109/TC.2008.37</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4383
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4384 <p><a name="index-Casale_002c-G_002e-275"></a><a name="index-Muntz_002c-R_002e-R_002e-276"></a><a name="index-Serazzi_002c-G_002e-277"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4385 In this implementation we set X^+ and X^- as the upper
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4386 and lower Asymptotic Bounds as computed by the <code>qnclosedab</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4387 function, respectively.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4388
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4389 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4390 <a name="Utility-functions"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4391 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4392 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Bounds-on-performance">Bounds on performance</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4393 Up:&nbsp;<a rel="up" accesskey="u" href="#Queueing-Networks">Queueing Networks</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4394
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4395 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4396
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4397 <h3 class="section">6.6 Utility functions</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4398
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4399 <h4 class="subsection">6.6.1 Open or closed networks</h4>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4400
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4401 <p><a name="doc_002dqnclosed"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4402
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4403 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4404 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnclosed</b> (<var>N, S, V, <small class="dots">...</small></var>)<var><a name="index-qnclosed-278"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4405 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4406 <p><a name="index-closed-network-279"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4407 This function computes steady-state performance measures of closed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4408 queueing networks using the Mean Value Analysis (MVA) algorithm. The
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4409 qneneing network is allowed to contain fixed-capacity centers, delay
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4410 centers or general load-dependent centers. Multiple request
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4411 classes are supported.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4412
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4413 <p>This function dispatches the computation to one of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4414 <code>qnclosedsinglemva</code>, <code>qnclosedsinglemvald</code> or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4415 <code>qnclosedmultimva</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4416
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4417 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4418 <li>If <var>N</var> is a scalar, the network is assumed to have a single
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4419 class of requests; in this case, the exact MVA algorithm is used to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4420 analyze the network. If <var>S</var> is a vector, then <var>S</var><code>(k)</code>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4421 is the average service time of center k, and this function
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4422 calls <code>qnclosedsinglemva</code> which supports load-independent
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4423 service centers. If <var>S</var> is a matrix, <var>S</var><code>(k,i)</code> is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4424 average service time at service center k when i &ge;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4425 1 jobs are present; in this case, the network is analyzed with the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4426 <code>qnclosedsinglemvald</code> function.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4427
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4428 <li>If <var>N</var> is a vector, the network is assumed to have multiple
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4429 classes of requests, and is analyzed using the exact multiclass
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4430 MVA algorithm as implemented in the <code>qnclosedmultimva</code> function.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4431
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4432 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4433
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4434 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4435
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4436 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4437 <strong>See also:</strong> qnclosedsinglemva, qnclosedsinglemvald, qnclosedmultimva.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4438
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4439 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4440
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4441 <p class="noindent"><strong>EXAMPLE</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4442
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4443 <pre class="example"><pre class="verbatim"> P = [0 0.3 0.7; 1 0 0; 1 0 0]; # Transition probability matrix
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4444 S = [1 0.6 0.2]; # Average service times
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4445 m = ones(1,3); # All centers are single-server
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4446 Z = 2; # External delay
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4447 N = 15; # Maximum population to consider
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4448
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4449 V = qnvisits(P); # Compute number of visits from P
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4450 D = V .* S; # Compute service demand from S and V
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4451 X_bsb_lower = X_bsb_upper = zeros(1,N);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4452 X_ab_lower = X_ab_upper = zeros(1,N);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4453 X_mva = zeros(1,N);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4454 for n=1:N
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4455 [X_bsb_lower(n) X_bsb_upper(n)] = qnclosedbsb(n, D, Z);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4456 [X_ab_lower(n) X_ab_upper(n)] = qnclosedab(n, D, Z);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4457 [U R Q X] = qnclosed( n, S, V, m, Z );
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4458 X_mva(n) = X(1)/V(1);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4459 endfor
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4460 close all;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4461 plot(1:N, X_ab_lower,"g;Asymptotic Bounds;", \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4462 1:N, X_bsb_lower,"k;Balanced System Bounds;", \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4463 1:N, X_mva,"b;MVA;", "linewidth", 2, \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4464 1:N, X_bsb_upper,"k", \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4465 1:N, X_ab_upper,"g" );
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4466 axis([1,N,0,1]);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4467 xlabel("Number of Requests n");
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4468 ylabel("System Throughput X(n)");
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4469 legend("location","southeast");</pre></pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4470 <p><a name="doc_002dqnopen"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4471
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4472 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4473 &mdash; Function File: [<var>U</var>, <var>R</var>, <var>Q</var>, <var>X</var>] = <b>qnopen</b> (<var>lambda, S, V, <small class="dots">...</small></var>)<var><a name="index-qnopen-280"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4474 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4475 <p><a name="index-open-network-281"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4476 Compute utilization, response time, average number of requests in the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4477 system, and throughput for open queueing networks. If <var>lambda</var> is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4478 a scalar, the network is considered a single-class QN and is solved
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4479 using <code>qnopensingle</code>. If <var>lambda</var> is a vector, the network
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4480 is considered as a multiclass QN and solved using <code>qnopenmulti</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4481
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4482 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4483
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4484 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4485 <strong>See also:</strong> qnopensingle, qnopenmulti.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4486
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4487 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4488
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4489 <!-- Compute the visit counts -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4490 <h4 class="subsection">6.6.2 Computation of the visit counts</h4>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4491
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4492 <p>For single-class networks the average number of visits satisfy the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4493 following equation:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4494
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4495 <pre class="example"> V == P0 + V*P;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4496 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4497 <p class="noindent">where P_0 j is the probability that an external
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4498 arrival goes to service center j. If \lambda_j is the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4499 external arrival rate to service center j, and \lambda =
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4500 \sum_j \lambda_j is the overall external arrival rate, then
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4501 P_0 j = \lambda_j / \lambda.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4502
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4503 <p>For closed networks, the visit ratios satisfy the following equation:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4504
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4505 <pre class="example"> V(1) == 1 &amp;&amp; V == V*P;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4506 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4507 <p>The definitions above can be extended to multiple class networks as
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4508 follows. We define the visit ratios V_sj for class s
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4509 customers at service center j as follows:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4510
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4511 <p>V_sj = sum_r sum_i V_ri P_risj, for all s,j
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4512 V_s1 = 1, for all s
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4513
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4514 <p class="noindent">while for open networks:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4515
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4516 <p>V_sj = P_0sj + sum_r sum_i V_ri P_risj, for all s,j
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4517
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4518 <p class="noindent">where P_0sj is the probability that an external
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4519 arrival goes to service center j as a class-s request.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4520 If \lambda_sj is the external arrival rate of class s
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4521 requests to service center j, and \lambda = \sum_s \sum_j
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4522 \lambda_sj is the overall external arrival rate to the whole system,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4523 then P_0sj = \lambda_sj / \lambda.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4524
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4525 <p><a name="doc_002dqnvisits"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4526
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4527 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4528 &mdash; Function File: [<var>V</var> <var>ch</var>] = <b>qnvisits</b> (<var>P</var>)<var><a name="index-qnvisits-282"></a></var><br>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4529 &mdash; Function File: <var>V</var> = <b>qnvisits</b> (<var>P, lambda</var>)<var><a name="index-qnvisits-283"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4530 <blockquote>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4531 <p>Compute the average number of visits to the service centers of a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4532 single class, open or closed Queueing Network with N service
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4533 centers.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4534
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4535 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4536
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4537 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4538 <dt><var>P</var><dd>Routing probability matrix. For single class networks,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4539 <var>P</var><code>(i,j)</code> is the probability that a request which completed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4540 service at center i is routed to center j. For closed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4541 networks it must hold that <code>sum(</code><var>P</var><code>,2)==1</code>. The routing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4542 graph myst be strongly connected, meaning that it must be possible to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4543 eventually reach each node starting from each node. For multiple
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4544 class networks, <var>P</var><code>(r,i,s,j)</code> is the probability that a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4545 class r request which completed service at center i is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4546 routed to center j as a class s request. Class switching
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4547 is supported.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4548
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4549 <br><dt><var>lambda</var><dd>(open networks only) vector of external arrivals. For single class
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4550 networks, <var>lambda</var><code>(i)</code> is the external arrival rate to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4551 center i. For multiple class networks,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4552 <var>lambda</var><code>(r,i)</code> is the arrival rate of class r
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4553 requests to center i. If this parameter is omitted, the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4554 network is assumed to be closed.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4555
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4556 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4557
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4558 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4559
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4560 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4561 <dt><var>V</var><dd>For single class networks, <var>V</var><code>(i)</code> is the average number of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4562 visits to server i. For multiple class networks,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4563 <var>V</var><code>(r,i)</code> is the class r visit ratio at center
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4564 i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4565
9480
954f2f00d782 Fixed documentation of qnvisits
mmarzolla
parents: 9439
diff changeset
4566 <br><dt><var>ch</var><dd>(For closed networks only). <var>ch</var><code>(c)</code> is the chain number
954f2f00d782 Fixed documentation of qnvisits
mmarzolla
parents: 9439
diff changeset
4567 that class c belongs to. Different classes can belong to the
954f2f00d782 Fixed documentation of qnvisits
mmarzolla
parents: 9439
diff changeset
4568 same chain. Chains are numbered 1, 2, <small class="dots">...</small>.
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4569 The total number of chains is <code>max(</code><var>ch</var><code>)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4570
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4571 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4572
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4573 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4574
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4575 <p class="noindent"><strong>EXAMPLE</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4576
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4577 <pre class="example"><pre class="verbatim"> P = [ 0 0.4 0.6 0; \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4578 0.2 0 0.2 0.6; \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4579 0 0 0 1; \
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4580 0 0 0 0 ];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4581 lambda = [0.1 0 0 0.3];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4582 V = qnvisits(P,lambda);
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4583 S = [2 1 2 1.8];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4584 m = [3 1 1 2];
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4585 [U R Q X] = qnopensingle( sum(lambda), S, V, m );</pre></pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4586 <h4 class="subsection">6.6.3 Other utility functions</h4>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4587
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4588 <p><a name="doc_002dpopulation_005fmix"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4589
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4590 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4591 &mdash; Function File: pop_mix = <b>population_mix</b> (<var>k, N</var>)<var><a name="index-population_005fmix-284"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4592 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4593 <p><a name="index-population-mix-285"></a><a name="index-closed-network_002c-multiple-classes-286"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4594 Return the set of valid population mixes with exactly <var>k</var>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4595 customers, for a closed multiclass Queueing Network with population
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4596 vector <var>N</var>. More specifically, given a multiclass Queueing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4597 Network with C customer classes, such that there are
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4598 <var>N</var><code>(i)</code> requests of class i, a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4599 k-mix <var>mix</var> is a C-dimensional vector with the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4600 following properties:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4601
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4602 <pre class="example"> all( mix &gt;= 0 );
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4603 all( mix &lt;= N );
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4604 sum( mix ) == k;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4605 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4606 <p class="noindent">This function enumerates all valid k-mixes, such that
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4607 <var>pop_mix</var><code>(i)</code> is a C dimensional row vector representing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4608 a valid population mix, for all i.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4609
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4610 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4611
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4612 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4613 <dt><var>k</var><dd>Total population size of the requested mix. <var>k</var> must be a nonnegative integer
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4614
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4615 <br><dt><var>N</var><dd><var>N</var><code>(i)</code> is the number of class i requests.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4616 The condition <var>k</var><code> &le; sum(</code><var>N</var><code>)</code> must hold.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4617
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4618 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4619
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4620 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4621
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4622 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4623 <dt><var>pop_mix</var><dd><var>pop_mix</var><code>(i,j)</code> is the number of class j requests
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4624 in the i-th population mix. The number of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4625 population mixes is <code>rows( </code><var>pop_mix</var><code> ) </code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4626
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4627 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4628
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4629 <p>Note that if you are interested in the number of k-mixes
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4630 and you don't care to enumerate them, you can use the funcion
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4631 <code>qnmvapop</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4632
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4633 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4634
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4635 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4636 <strong>See also:</strong> qnmvapop.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4637
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4638 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4639
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4640 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4641
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4642 <p>Herb Schwetman, <cite>Implementing the Mean Value Algorithm for the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4643 Solution of Queueing Network Models</cite>, Technical Report CSD-TR-355,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4644 Department of Computer Sciences, Purdue University, feb 15, 1982,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4645 available at
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4646 <a href="http://www.cs.purdue.edu/research/technical_reports/1980/TR 80-355.pdf">http://www.cs.purdue.edu/research/technical_reports/1980/TR 80-355.pdf</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4647
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4648 <p>Note that the slightly different problem of generating all tuples
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4649 k_1, k_2, \ldots k_N such that \sum_i k_i = k and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4650 k_i are nonnegative integers, for some fixed integer k
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4651 &ge; 0 has been described in S. Santini, <cite>Computing the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4652 Indices for a Complex Summation</cite>, unpublished report, available at
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4653 <a href="http://arantxa.ii.uam.es/~ssantini/writing/notes/s668_summation.pdf">http://arantxa.ii.uam.es/~ssantini/writing/notes/s668_summation.pdf</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4654
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4655 <p><a name="index-Schwetman_002c-H_002e-287"></a><a name="index-Santini_002c-S_002e-288"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4656 <a name="doc_002dqnmvapop"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4657
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4658 <div class="defun">
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4659 &mdash; Function File: <var>H</var> = <b>qnmvapop</b> (<var>N</var>)<var><a name="index-qnmvapop-289"></a></var><br>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4660 <blockquote>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4661 <p><a name="index-population-mix-290"></a><a name="index-closed-network_002c-multiple-classes-291"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4662 Given a network with C customer classes, this function
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4663 computes the number of valid population mixes <var>H</var><code>(r,n)</code> that can
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4664 be constructed by the multiclass MVA algorithm by allocating n
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4665 customers to the first r classes.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4666
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4667 <p><strong>INPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4668
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4669 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4670 <dt><var>N</var><dd>Population vector. <var>N</var><code>(c)</code> is the number of class-c
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4671 requests in the system. The total number of requests in the network
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4672 is <code>sum(</code><var>N</var><code>)</code>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4673
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4674 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4675
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4676 <p><strong>OUTPUTS</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4677
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4678 <dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4679 <dt><var>H</var><dd><var>H</var><code>(r,n)</code> is the number of valid populations that can be
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4680 constructed allocating n customers to the first r classes.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4681
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4682 </dl>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4683
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4684 <pre class="sp">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4685
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4686 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4687 <strong>See also:</strong> qnclosedmultimva,population_mix.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4688
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4689 </blockquote></div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4690
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4691 <p class="noindent"><strong>REFERENCES</strong>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4692
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4693 <p>Zahorjan, J. and Wong, E. <cite>The solution of separable queueing
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4694 network models using mean value analysis</cite>. SIGMETRICS
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4695 Perform. Eval. Rev. 10, 3 (Sep. 1981), 80-85. DOI
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4696 <a href="http://doi.acm.org/10.1145/1010629.805477">http://doi.acm.org/10.1145/1010629.805477</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4697
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4698 <p><a name="index-Zahorjan_002c-J_002e-292"></a><a name="index-Wong_002c-E_002e-293"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4699
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4700 <!-- Appendix starts here -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4701 <!-- DO NOT EDIT! Generated automatically by munge-texi. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4702 <!-- *- texinfo -*- -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4703 <!-- Copyright (C) 2008, 2009, 2010, 2011, 2012 Moreno Marzolla -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4704 <!-- This file is part of the queueing toolbox, a Queueing Networks -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4705 <!-- analysis package for GNU Octave. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4706 <!-- The queueing toolbox is free software; you can redistribute it -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4707 <!-- and/or modify it under the terms of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4708 <!-- as published by the Free Software Foundation; either version 3 of -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4709 <!-- the License, or (at your option) any later version. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4710 <!-- The queueing toolbox is distributed in the hope that it will be -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4711 <!-- useful, but WITHOUT ANY WARRANTY; without even the implied warranty -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4712 <!-- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4713 <!-- GNU General Public License for more details. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4714 <!-- You should have received a copy of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4715 <!-- along with the queueing toolbox; see the file COPYING. If not, see -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4716 <!-- <http://www.gnu.org/licenses/>. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4717 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4718 <a name="Contributing-Guidelines"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4719 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4720 Next:&nbsp;<a rel="next" accesskey="n" href="#Acknowledgements">Acknowledgements</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4721 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Queueing-Networks">Queueing Networks</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4722 Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4723
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4724 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4725
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4726 <h2 class="appendix">Appendix A Contributing Guidelines</h2>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4727
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4728 <p>Contributions and bug reports are <em>always</em> welcome. If you want
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4729 to contribute to the <code>queueing</code> package, here are some
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4730 guidelines:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4731
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4732 <ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4733 <li>If you are contributing a new function, please embed proper
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4734 documentation within the function itself. The documentation must be in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4735 <code>texinfo</code> format, so that it will be extracted and formatted into
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4736 the printable manual. See the existing functions of the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4737 <code>queueing</code> package for the documentation style.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4738
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4739 <li>The documentation should be as precise as possible. In particular,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4740 always state what the valid ranges of the parameters are.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4741
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4742 <li>If you are contributing a new function, ensure that the function
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4743 properly checks the validity of its input parameters. For example,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4744 each function accepting vectors should check whether the dimensions
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4745 match.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4746
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4747 <li>Always provide bibliographic references for each algorithm you
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4748 contribute. If your implementation differs in some way from the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4749 reference you give, please describe how and why your implementation
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4750 differs.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4751
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4752 <li>Include Octave test and demo blocks with your code.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4753 Test blocks are particularly important, because Queueing Network
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4754 algorithms tend to be quite complex to implement correctly, and we
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4755 must ensure that the implementations provided with the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4756 <code>queueing</code> package are (mostly) correct.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4757
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4758 </ul>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4759
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4760 <p>Send your contribution to Moreno Marzolla
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4761 (<a href="mailto:marzolla@cs.unibo.it">marzolla@cs.unibo.it</a>). Even if you are just a user of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4762 <code>queueing</code>, and find this package useful, let me know by
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4763 dropping me a line. Thanks.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4764
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4765 <!-- DO NOT EDIT! Generated automatically by munge-texi. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4766 <!-- *- texinfo -*- -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4767 <!-- Copyright (C) 2008, 2009, 2010, 2011, 2012 Moreno Marzolla -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4768 <!-- This file is part of the queueing toolbox, a Queueing Networks -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4769 <!-- analysis package for GNU Octave. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4770 <!-- The queueing toolbox is free software; you can redistribute it -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4771 <!-- and/or modify it under the terms of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4772 <!-- as published by the Free Software Foundation; either version 3 of -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4773 <!-- the License, or (at your option) any later version. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4774 <!-- The queueing toolbox is distributed in the hope that it will be -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4775 <!-- useful, but WITHOUT ANY WARRANTY; without even the implied warranty -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4776 <!-- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4777 <!-- GNU General Public License for more details. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4778 <!-- You should have received a copy of the GNU General Public License -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4779 <!-- along with the queueing toolbox; see the file COPYING. If not, see -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4780 <!-- <http://www.gnu.org/licenses/>. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4781 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4782 <a name="Acknowledgements"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4783 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4784 Next:&nbsp;<a rel="next" accesskey="n" href="#Copying">Copying</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4785 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Contributing-Guidelines">Contributing Guidelines</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4786 Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4787
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4788 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4789
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4790 <h2 class="appendix">Appendix B Acknowledgements</h2>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4791
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4792 <p>The following people (listed in alphabetical order) contributed to the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4793 <code>queueing</code> package, either by providing feedback, reporting bugs
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4794 or contributing code: Philip Carinhas, Phil Colbourn, Yves Durand,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4795 Marco Guazzone, Dmitry Kolesnikov.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4796
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4797 <!-- DO NOT EDIT! Generated automatically by munge-texi. -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4798 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4799 <a name="Copying"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4800 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4801 Next:&nbsp;<a rel="next" accesskey="n" href="#Concept-Index">Concept Index</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4802 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Acknowledgements">Acknowledgements</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4803 Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4804
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4805 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4806
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4807 <h2 class="appendix">Appendix C GNU GENERAL PUBLIC LICENSE</h2>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4808
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
4809 <p><a name="index-warranty-294"></a><a name="index-copyright-295"></a>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4810 <div align="center">Version 3, 29 June 2007</div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4811
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4812 <pre class="display"> Copyright &copy; 2007 Free Software Foundation, Inc. <a href="http://fsf.org/">http://fsf.org/</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4813
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4814 Everyone is permitted to copy and distribute verbatim copies of this
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4815 license document, but changing it is not allowed.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4816 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4817 <h3 class="heading">Preamble</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4818
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4819 <p>The GNU General Public License is a free, copyleft license for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4820 software and other kinds of works.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4821
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4822 <p>The licenses for most software and other practical works are designed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4823 to take away your freedom to share and change the works. By contrast,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4824 the GNU General Public License is intended to guarantee your freedom
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4825 to share and change all versions of a program&mdash;to make sure it remains
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4826 free software for all its users. We, the Free Software Foundation,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4827 use the GNU General Public License for most of our software; it
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4828 applies also to any other work released this way by its authors. You
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4829 can apply it to your programs, too.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4830
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4831 <p>When we speak of free software, we are referring to freedom, not
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4832 price. Our General Public Licenses are designed to make sure that you
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4833 have the freedom to distribute copies of free software (and charge for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4834 them if you wish), that you receive source code or can get it if you
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4835 want it, that you can change the software or use pieces of it in new
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4836 free programs, and that you know you can do these things.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4837
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4838 <p>To protect your rights, we need to prevent others from denying you
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4839 these rights or asking you to surrender the rights. Therefore, you
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4840 have certain responsibilities if you distribute copies of the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4841 software, or if you modify it: responsibilities to respect the freedom
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4842 of others.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4843
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4844 <p>For example, if you distribute copies of such a program, whether
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4845 gratis or for a fee, you must pass on to the recipients the same
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4846 freedoms that you received. You must make sure that they, too,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4847 receive or can get the source code. And you must show them these
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4848 terms so they know their rights.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4849
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4850 <p>Developers that use the GNU GPL protect your rights with two steps:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4851 (1) assert copyright on the software, and (2) offer you this License
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4852 giving you legal permission to copy, distribute and/or modify it.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4853
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4854 <p>For the developers' and authors' protection, the GPL clearly explains
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4855 that there is no warranty for this free software. For both users' and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4856 authors' sake, the GPL requires that modified versions be marked as
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4857 changed, so that their problems will not be attributed erroneously to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4858 authors of previous versions.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4859
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4860 <p>Some devices are designed to deny users access to install or run
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4861 modified versions of the software inside them, although the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4862 manufacturer can do so. This is fundamentally incompatible with the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4863 aim of protecting users' freedom to change the software. The
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4864 systematic pattern of such abuse occurs in the area of products for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4865 individuals to use, which is precisely where it is most unacceptable.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4866 Therefore, we have designed this version of the GPL to prohibit the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4867 practice for those products. If such problems arise substantially in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4868 other domains, we stand ready to extend this provision to those
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4869 domains in future versions of the GPL, as needed to protect the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4870 freedom of users.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4871
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4872 <p>Finally, every program is threatened constantly by software patents.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4873 States should not allow patents to restrict development and use of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4874 software on general-purpose computers, but in those that do, we wish
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4875 to avoid the special danger that patents applied to a free program
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4876 could make it effectively proprietary. To prevent this, the GPL
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4877 assures that patents cannot be used to render the program non-free.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4878
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4879 <p>The precise terms and conditions for copying, distribution and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4880 modification follow.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4881
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4882 <h3 class="heading">TERMS AND CONDITIONS</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4883
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4884 <ol type=1 start=0>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4885 <li>Definitions.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4886
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4887 <p>&ldquo;This License&rdquo; refers to version 3 of the GNU General Public License.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4888
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4889 <p>&ldquo;Copyright&rdquo; also means copyright-like laws that apply to other kinds
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4890 of works, such as semiconductor masks.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4891
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4892 <p>&ldquo;The Program&rdquo; refers to any copyrightable work licensed under this
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4893 License. Each licensee is addressed as &ldquo;you&rdquo;. &ldquo;Licensees&rdquo; and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4894 &ldquo;recipients&rdquo; may be individuals or organizations.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4895
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4896 <p>To &ldquo;modify&rdquo; a work means to copy from or adapt all or part of the work
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4897 in a fashion requiring copyright permission, other than the making of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4898 an exact copy. The resulting work is called a &ldquo;modified version&rdquo; of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4899 the earlier work or a work &ldquo;based on&rdquo; the earlier work.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4900
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4901 <p>A &ldquo;covered work&rdquo; means either the unmodified Program or a work based
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4902 on the Program.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4903
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4904 <p>To &ldquo;propagate&rdquo; a work means to do anything with it that, without
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4905 permission, would make you directly or secondarily liable for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4906 infringement under applicable copyright law, except executing it on a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4907 computer or modifying a private copy. Propagation includes copying,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4908 distribution (with or without modification), making available to the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4909 public, and in some countries other activities as well.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4910
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4911 <p>To &ldquo;convey&rdquo; a work means any kind of propagation that enables other
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4912 parties to make or receive copies. Mere interaction with a user
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4913 through a computer network, with no transfer of a copy, is not
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4914 conveying.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4915
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4916 <p>An interactive user interface displays &ldquo;Appropriate Legal Notices&rdquo; to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4917 the extent that it includes a convenient and prominently visible
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4918 feature that (1) displays an appropriate copyright notice, and (2)
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4919 tells the user that there is no warranty for the work (except to the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4920 extent that warranties are provided), that licensees may convey the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4921 work under this License, and how to view a copy of this License. If
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4922 the interface presents a list of user commands or options, such as a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4923 menu, a prominent item in the list meets this criterion.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4924
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4925 <li>Source Code.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4926
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4927 <p>The &ldquo;source code&rdquo; for a work means the preferred form of the work for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4928 making modifications to it. &ldquo;Object code&rdquo; means any non-source form
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4929 of a work.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4930
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4931 <p>A &ldquo;Standard Interface&rdquo; means an interface that either is an official
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4932 standard defined by a recognized standards body, or, in the case of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4933 interfaces specified for a particular programming language, one that
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4934 is widely used among developers working in that language.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4935
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4936 <p>The &ldquo;System Libraries&rdquo; of an executable work include anything, other
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4937 than the work as a whole, that (a) is included in the normal form of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4938 packaging a Major Component, but which is not part of that Major
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4939 Component, and (b) serves only to enable use of the work with that
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4940 Major Component, or to implement a Standard Interface for which an
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4941 implementation is available to the public in source code form. A
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4942 &ldquo;Major Component&rdquo;, in this context, means a major essential component
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4943 (kernel, window system, and so on) of the specific operating system
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4944 (if any) on which the executable work runs, or a compiler used to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4945 produce the work, or an object code interpreter used to run it.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4946
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4947 <p>The &ldquo;Corresponding Source&rdquo; for a work in object code form means all
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4948 the source code needed to generate, install, and (for an executable
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4949 work) run the object code and to modify the work, including scripts to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4950 control those activities. However, it does not include the work's
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4951 System Libraries, or general-purpose tools or generally available free
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4952 programs which are used unmodified in performing those activities but
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4953 which are not part of the work. For example, Corresponding Source
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4954 includes interface definition files associated with source files for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4955 the work, and the source code for shared libraries and dynamically
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4956 linked subprograms that the work is specifically designed to require,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4957 such as by intimate data communication or control flow between those
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4958 subprograms and other parts of the work.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4959
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4960 <p>The Corresponding Source need not include anything that users can
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4961 regenerate automatically from other parts of the Corresponding Source.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4962
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4963 <p>The Corresponding Source for a work in source code form is that same
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4964 work.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4965
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4966 <li>Basic Permissions.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4967
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4968 <p>All rights granted under this License are granted for the term of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4969 copyright on the Program, and are irrevocable provided the stated
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4970 conditions are met. This License explicitly affirms your unlimited
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4971 permission to run the unmodified Program. The output from running a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4972 covered work is covered by this License only if the output, given its
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4973 content, constitutes a covered work. This License acknowledges your
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4974 rights of fair use or other equivalent, as provided by copyright law.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4975
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4976 <p>You may make, run and propagate covered works that you do not convey,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4977 without conditions so long as your license otherwise remains in force.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4978 You may convey covered works to others for the sole purpose of having
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4979 them make modifications exclusively for you, or provide you with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4980 facilities for running those works, provided that you comply with the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4981 terms of this License in conveying all material for which you do not
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4982 control copyright. Those thus making or running the covered works for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4983 you must do so exclusively on your behalf, under your direction and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4984 control, on terms that prohibit them from making any copies of your
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4985 copyrighted material outside their relationship with you.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4986
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4987 <p>Conveying under any other circumstances is permitted solely under the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4988 conditions stated below. Sublicensing is not allowed; section 10
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4989 makes it unnecessary.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4990
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4991 <li>Protecting Users' Legal Rights From Anti-Circumvention Law.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4992
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4993 <p>No covered work shall be deemed part of an effective technological
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4994 measure under any applicable law fulfilling obligations under article
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4995 11 of the WIPO copyright treaty adopted on 20 December 1996, or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4996 similar laws prohibiting or restricting circumvention of such
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4997 measures.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4998
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
4999 <p>When you convey a covered work, you waive any legal power to forbid
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5000 circumvention of technological measures to the extent such
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5001 circumvention is effected by exercising rights under this License with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5002 respect to the covered work, and you disclaim any intention to limit
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5003 operation or modification of the work as a means of enforcing, against
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5004 the work's users, your or third parties' legal rights to forbid
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5005 circumvention of technological measures.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5006
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5007 <li>Conveying Verbatim Copies.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5008
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5009 <p>You may convey verbatim copies of the Program's source code as you
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5010 receive it, in any medium, provided that you conspicuously and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5011 appropriately publish on each copy an appropriate copyright notice;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5012 keep intact all notices stating that this License and any
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5013 non-permissive terms added in accord with section 7 apply to the code;
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5014 keep intact all notices of the absence of any warranty; and give all
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5015 recipients a copy of this License along with the Program.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5016
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5017 <p>You may charge any price or no price for each copy that you convey,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5018 and you may offer support or warranty protection for a fee.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5019
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5020 <li>Conveying Modified Source Versions.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5021
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5022 <p>You may convey a work based on the Program, or the modifications to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5023 produce it from the Program, in the form of source code under the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5024 terms of section 4, provided that you also meet all of these
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5025 conditions:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5026
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5027 <ol type=a start=1>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5028 <li>The work must carry prominent notices stating that you modified it,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5029 and giving a relevant date.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5030
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5031 <li>The work must carry prominent notices stating that it is released
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5032 under this License and any conditions added under section 7. This
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5033 requirement modifies the requirement in section 4 to &ldquo;keep intact all
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5034 notices&rdquo;.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5035
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5036 <li>You must license the entire work, as a whole, under this License to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5037 anyone who comes into possession of a copy. This License will
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5038 therefore apply, along with any applicable section 7 additional terms,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5039 to the whole of the work, and all its parts, regardless of how they
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5040 are packaged. This License gives no permission to license the work in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5041 any other way, but it does not invalidate such permission if you have
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5042 separately received it.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5043
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5044 <li>If the work has interactive user interfaces, each must display
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5045 Appropriate Legal Notices; however, if the Program has interactive
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5046 interfaces that do not display Appropriate Legal Notices, your work
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5047 need not make them do so.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5048 </ol>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5049
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5050 <p>A compilation of a covered work with other separate and independent
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5051 works, which are not by their nature extensions of the covered work,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5052 and which are not combined with it such as to form a larger program,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5053 in or on a volume of a storage or distribution medium, is called an
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5054 &ldquo;aggregate&rdquo; if the compilation and its resulting copyright are not
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5055 used to limit the access or legal rights of the compilation's users
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5056 beyond what the individual works permit. Inclusion of a covered work
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5057 in an aggregate does not cause this License to apply to the other
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5058 parts of the aggregate.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5059
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5060 <li>Conveying Non-Source Forms.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5061
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5062 <p>You may convey a covered work in object code form under the terms of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5063 sections 4 and 5, provided that you also convey the machine-readable
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5064 Corresponding Source under the terms of this License, in one of these
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5065 ways:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5066
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5067 <ol type=a start=1>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5068 <li>Convey the object code in, or embodied in, a physical product
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5069 (including a physical distribution medium), accompanied by the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5070 Corresponding Source fixed on a durable physical medium customarily
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5071 used for software interchange.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5072
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5073 <li>Convey the object code in, or embodied in, a physical product
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5074 (including a physical distribution medium), accompanied by a written
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5075 offer, valid for at least three years and valid for as long as you
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5076 offer spare parts or customer support for that product model, to give
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5077 anyone who possesses the object code either (1) a copy of the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5078 Corresponding Source for all the software in the product that is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5079 covered by this License, on a durable physical medium customarily used
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5080 for software interchange, for a price no more than your reasonable
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5081 cost of physically performing this conveying of source, or (2) access
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5082 to copy the Corresponding Source from a network server at no charge.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5083
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5084 <li>Convey individual copies of the object code with a copy of the written
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5085 offer to provide the Corresponding Source. This alternative is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5086 allowed only occasionally and noncommercially, and only if you
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5087 received the object code with such an offer, in accord with subsection
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5088 6b.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5089
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5090 <li>Convey the object code by offering access from a designated place
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5091 (gratis or for a charge), and offer equivalent access to the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5092 Corresponding Source in the same way through the same place at no
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5093 further charge. You need not require recipients to copy the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5094 Corresponding Source along with the object code. If the place to copy
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5095 the object code is a network server, the Corresponding Source may be
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5096 on a different server (operated by you or a third party) that supports
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5097 equivalent copying facilities, provided you maintain clear directions
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5098 next to the object code saying where to find the Corresponding Source.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5099 Regardless of what server hosts the Corresponding Source, you remain
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5100 obligated to ensure that it is available for as long as needed to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5101 satisfy these requirements.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5102
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5103 <li>Convey the object code using peer-to-peer transmission, provided you
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5104 inform other peers where the object code and Corresponding Source of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5105 the work are being offered to the general public at no charge under
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5106 subsection 6d.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5107
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5108 </ol>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5109
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5110 <p>A separable portion of the object code, whose source code is excluded
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5111 from the Corresponding Source as a System Library, need not be
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5112 included in conveying the object code work.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5113
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5114 <p>A &ldquo;User Product&rdquo; is either (1) a &ldquo;consumer product&rdquo;, which means any
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5115 tangible personal property which is normally used for personal,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5116 family, or household purposes, or (2) anything designed or sold for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5117 incorporation into a dwelling. In determining whether a product is a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5118 consumer product, doubtful cases shall be resolved in favor of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5119 coverage. For a particular product received by a particular user,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5120 &ldquo;normally used&rdquo; refers to a typical or common use of that class of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5121 product, regardless of the status of the particular user or of the way
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5122 in which the particular user actually uses, or expects or is expected
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5123 to use, the product. A product is a consumer product regardless of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5124 whether the product has substantial commercial, industrial or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5125 non-consumer uses, unless such uses represent the only significant
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5126 mode of use of the product.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5127
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5128 <p>&ldquo;Installation Information&rdquo; for a User Product means any methods,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5129 procedures, authorization keys, or other information required to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5130 install and execute modified versions of a covered work in that User
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5131 Product from a modified version of its Corresponding Source. The
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5132 information must suffice to ensure that the continued functioning of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5133 the modified object code is in no case prevented or interfered with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5134 solely because modification has been made.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5135
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5136 <p>If you convey an object code work under this section in, or with, or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5137 specifically for use in, a User Product, and the conveying occurs as
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5138 part of a transaction in which the right of possession and use of the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5139 User Product is transferred to the recipient in perpetuity or for a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5140 fixed term (regardless of how the transaction is characterized), the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5141 Corresponding Source conveyed under this section must be accompanied
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5142 by the Installation Information. But this requirement does not apply
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5143 if neither you nor any third party retains the ability to install
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5144 modified object code on the User Product (for example, the work has
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5145 been installed in ROM).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5146
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5147 <p>The requirement to provide Installation Information does not include a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5148 requirement to continue to provide support service, warranty, or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5149 updates for a work that has been modified or installed by the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5150 recipient, or for the User Product in which it has been modified or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5151 installed. Access to a network may be denied when the modification
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5152 itself materially and adversely affects the operation of the network
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5153 or violates the rules and protocols for communication across the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5154 network.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5155
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5156 <p>Corresponding Source conveyed, and Installation Information provided,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5157 in accord with this section must be in a format that is publicly
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5158 documented (and with an implementation available to the public in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5159 source code form), and must require no special password or key for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5160 unpacking, reading or copying.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5161
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5162 <li>Additional Terms.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5163
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5164 <p>&ldquo;Additional permissions&rdquo; are terms that supplement the terms of this
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5165 License by making exceptions from one or more of its conditions.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5166 Additional permissions that are applicable to the entire Program shall
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5167 be treated as though they were included in this License, to the extent
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5168 that they are valid under applicable law. If additional permissions
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5169 apply only to part of the Program, that part may be used separately
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5170 under those permissions, but the entire Program remains governed by
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5171 this License without regard to the additional permissions.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5172
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5173 <p>When you convey a copy of a covered work, you may at your option
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5174 remove any additional permissions from that copy, or from any part of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5175 it. (Additional permissions may be written to require their own
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5176 removal in certain cases when you modify the work.) You may place
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5177 additional permissions on material, added by you to a covered work,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5178 for which you have or can give appropriate copyright permission.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5179
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5180 <p>Notwithstanding any other provision of this License, for material you
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5181 add to a covered work, you may (if authorized by the copyright holders
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5182 of that material) supplement the terms of this License with terms:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5183
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5184 <ol type=a start=1>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5185 <li>Disclaiming warranty or limiting liability differently from the terms
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5186 of sections 15 and 16 of this License; or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5187
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5188 <li>Requiring preservation of specified reasonable legal notices or author
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5189 attributions in that material or in the Appropriate Legal Notices
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5190 displayed by works containing it; or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5191
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5192 <li>Prohibiting misrepresentation of the origin of that material, or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5193 requiring that modified versions of such material be marked in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5194 reasonable ways as different from the original version; or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5195
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5196 <li>Limiting the use for publicity purposes of names of licensors or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5197 authors of the material; or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5198
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5199 <li>Declining to grant rights under trademark law for use of some trade
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5200 names, trademarks, or service marks; or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5201
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5202 <li>Requiring indemnification of licensors and authors of that material by
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5203 anyone who conveys the material (or modified versions of it) with
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5204 contractual assumptions of liability to the recipient, for any
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5205 liability that these contractual assumptions directly impose on those
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5206 licensors and authors.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5207 </ol>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5208
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5209 <p>All other non-permissive additional terms are considered &ldquo;further
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5210 restrictions&rdquo; within the meaning of section 10. If the Program as you
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5211 received it, or any part of it, contains a notice stating that it is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5212 governed by this License along with a term that is a further
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5213 restriction, you may remove that term. If a license document contains
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5214 a further restriction but permits relicensing or conveying under this
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5215 License, you may add to a covered work material governed by the terms
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5216 of that license document, provided that the further restriction does
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5217 not survive such relicensing or conveying.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5218
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5219 <p>If you add terms to a covered work in accord with this section, you
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5220 must place, in the relevant source files, a statement of the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5221 additional terms that apply to those files, or a notice indicating
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5222 where to find the applicable terms.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5223
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5224 <p>Additional terms, permissive or non-permissive, may be stated in the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5225 form of a separately written license, or stated as exceptions; the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5226 above requirements apply either way.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5227
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5228 <li>Termination.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5229
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5230 <p>You may not propagate or modify a covered work except as expressly
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5231 provided under this License. Any attempt otherwise to propagate or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5232 modify it is void, and will automatically terminate your rights under
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5233 this License (including any patent licenses granted under the third
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5234 paragraph of section 11).
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5235
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5236 <p>However, if you cease all violation of this License, then your license
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5237 from a particular copyright holder is reinstated (a) provisionally,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5238 unless and until the copyright holder explicitly and finally
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5239 terminates your license, and (b) permanently, if the copyright holder
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5240 fails to notify you of the violation by some reasonable means prior to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5241 60 days after the cessation.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5242
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5243 <p>Moreover, your license from a particular copyright holder is
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5244 reinstated permanently if the copyright holder notifies you of the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5245 violation by some reasonable means, this is the first time you have
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5246 received notice of violation of this License (for any work) from that
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5247 copyright holder, and you cure the violation prior to 30 days after
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5248 your receipt of the notice.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5249
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5250 <p>Termination of your rights under this section does not terminate the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5251 licenses of parties who have received copies or rights from you under
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5252 this License. If your rights have been terminated and not permanently
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5253 reinstated, you do not qualify to receive new licenses for the same
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5254 material under section 10.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5255
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5256 <li>Acceptance Not Required for Having Copies.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5257
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5258 <p>You are not required to accept this License in order to receive or run
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5259 a copy of the Program. Ancillary propagation of a covered work
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5260 occurring solely as a consequence of using peer-to-peer transmission
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5261 to receive a copy likewise does not require acceptance. However,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5262 nothing other than this License grants you permission to propagate or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5263 modify any covered work. These actions infringe copyright if you do
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5264 not accept this License. Therefore, by modifying or propagating a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5265 covered work, you indicate your acceptance of this License to do so.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5266
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5267 <li>Automatic Licensing of Downstream Recipients.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5268
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5269 <p>Each time you convey a covered work, the recipient automatically
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5270 receives a license from the original licensors, to run, modify and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5271 propagate that work, subject to this License. You are not responsible
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5272 for enforcing compliance by third parties with this License.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5273
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5274 <p>An &ldquo;entity transaction&rdquo; is a transaction transferring control of an
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5275 organization, or substantially all assets of one, or subdividing an
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5276 organization, or merging organizations. If propagation of a covered
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5277 work results from an entity transaction, each party to that
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5278 transaction who receives a copy of the work also receives whatever
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5279 licenses to the work the party's predecessor in interest had or could
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5280 give under the previous paragraph, plus a right to possession of the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5281 Corresponding Source of the work from the predecessor in interest, if
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5282 the predecessor has it or can get it with reasonable efforts.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5283
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5284 <p>You may not impose any further restrictions on the exercise of the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5285 rights granted or affirmed under this License. For example, you may
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5286 not impose a license fee, royalty, or other charge for exercise of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5287 rights granted under this License, and you may not initiate litigation
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5288 (including a cross-claim or counterclaim in a lawsuit) alleging that
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5289 any patent claim is infringed by making, using, selling, offering for
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5290 sale, or importing the Program or any portion of it.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5291
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5292 <li>Patents.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5293
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5294 <p>A &ldquo;contributor&rdquo; is a copyright holder who authorizes use under this
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5295 License of the Program or a work on which the Program is based. The
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5296 work thus licensed is called the contributor's &ldquo;contributor version&rdquo;.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5297
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5298 <p>A contributor's &ldquo;essential patent claims&rdquo; are all patent claims owned
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5299 or controlled by the contributor, whether already acquired or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5300 hereafter acquired, that would be infringed by some manner, permitted
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5301 by this License, of making, using, or selling its contributor version,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5302 but do not include claims that would be infringed only as a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5303 consequence of further modification of the contributor version. For
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5304 purposes of this definition, &ldquo;control&rdquo; includes the right to grant
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5305 patent sublicenses in a manner consistent with the requirements of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5306 this License.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5307
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5308 <p>Each contributor grants you a non-exclusive, worldwide, royalty-free
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5309 patent license under the contributor's essential patent claims, to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5310 make, use, sell, offer for sale, import and otherwise run, modify and
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5311 propagate the contents of its contributor version.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5312
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5313 <p>In the following three paragraphs, a &ldquo;patent license&rdquo; is any express
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5314 agreement or commitment, however denominated, not to enforce a patent
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5315 (such as an express permission to practice a patent or covenant not to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5316 sue for patent infringement). To &ldquo;grant&rdquo; such a patent license to a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5317 party means to make such an agreement or commitment not to enforce a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5318 patent against the party.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5319
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5320 <p>If you convey a covered work, knowingly relying on a patent license,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5321 and the Corresponding Source of the work is not available for anyone
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5322 to copy, free of charge and under the terms of this License, through a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5323 publicly available network server or other readily accessible means,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5324 then you must either (1) cause the Corresponding Source to be so
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5325 available, or (2) arrange to deprive yourself of the benefit of the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5326 patent license for this particular work, or (3) arrange, in a manner
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5327 consistent with the requirements of this License, to extend the patent
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5328 license to downstream recipients. &ldquo;Knowingly relying&rdquo; means you have
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5329 actual knowledge that, but for the patent license, your conveying the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5330 covered work in a country, or your recipient's use of the covered work
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5331 in a country, would infringe one or more identifiable patents in that
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5332 country that you have reason to believe are valid.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5333
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5334 <p>If, pursuant to or in connection with a single transaction or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5335 arrangement, you convey, or propagate by procuring conveyance of, a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5336 covered work, and grant a patent license to some of the parties
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5337 receiving the covered work authorizing them to use, propagate, modify
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5338 or convey a specific copy of the covered work, then the patent license
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5339 you grant is automatically extended to all recipients of the covered
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5340 work and works based on it.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5341
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5342 <p>A patent license is &ldquo;discriminatory&rdquo; if it does not include within the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5343 scope of its coverage, prohibits the exercise of, or is conditioned on
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5344 the non-exercise of one or more of the rights that are specifically
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5345 granted under this License. You may not convey a covered work if you
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5346 are a party to an arrangement with a third party that is in the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5347 business of distributing software, under which you make payment to the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5348 third party based on the extent of your activity of conveying the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5349 work, and under which the third party grants, to any of the parties
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5350 who would receive the covered work from you, a discriminatory patent
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5351 license (a) in connection with copies of the covered work conveyed by
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5352 you (or copies made from those copies), or (b) primarily for and in
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5353 connection with specific products or compilations that contain the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5354 covered work, unless you entered into that arrangement, or that patent
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5355 license was granted, prior to 28 March 2007.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5356
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5357 <p>Nothing in this License shall be construed as excluding or limiting
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5358 any implied license or other defenses to infringement that may
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5359 otherwise be available to you under applicable patent law.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5360
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5361 <li>No Surrender of Others' Freedom.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5362
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5363 <p>If conditions are imposed on you (whether by court order, agreement or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5364 otherwise) that contradict the conditions of this License, they do not
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5365 excuse you from the conditions of this License. If you cannot convey
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5366 a covered work so as to satisfy simultaneously your obligations under
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5367 this License and any other pertinent obligations, then as a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5368 consequence you may not convey it at all. For example, if you agree
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5369 to terms that obligate you to collect a royalty for further conveying
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5370 from those to whom you convey the Program, the only way you could
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5371 satisfy both those terms and this License would be to refrain entirely
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5372 from conveying the Program.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5373
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5374 <li>Use with the GNU Affero General Public License.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5375
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5376 <p>Notwithstanding any other provision of this License, you have
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5377 permission to link or combine any covered work with a work licensed
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5378 under version 3 of the GNU Affero General Public License into a single
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5379 combined work, and to convey the resulting work. The terms of this
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5380 License will continue to apply to the part which is the covered work,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5381 but the special requirements of the GNU Affero General Public License,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5382 section 13, concerning interaction through a network will apply to the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5383 combination as such.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5384
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5385 <li>Revised Versions of this License.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5386
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5387 <p>The Free Software Foundation may publish revised and/or new versions
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5388 of the GNU General Public License from time to time. Such new
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5389 versions will be similar in spirit to the present version, but may
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5390 differ in detail to address new problems or concerns.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5392 <p>Each version is given a distinguishing version number. If the Program
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5393 specifies that a certain numbered version of the GNU General Public
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5394 License &ldquo;or any later version&rdquo; applies to it, you have the option of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5395 following the terms and conditions either of that numbered version or
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5396 of any later version published by the Free Software Foundation. If
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5397 the Program does not specify a version number of the GNU General
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5398 Public License, you may choose any version ever published by the Free
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5399 Software Foundation.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5400
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5401 <p>If the Program specifies that a proxy can decide which future versions
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5402 of the GNU General Public License can be used, that proxy's public
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5403 statement of acceptance of a version permanently authorizes you to
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5404 choose that version for the Program.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5405
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5406 <p>Later license versions may give you additional or different
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5407 permissions. However, no additional obligations are imposed on any
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5408 author or copyright holder as a result of your choosing to follow a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5409 later version.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5410
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5411 <li>Disclaimer of Warranty.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5412
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5413 <p>THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5414 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5415 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM &ldquo;AS IS&rdquo; WITHOUT
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5416 WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5417 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5418 A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5419 PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5420 DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5421 CORRECTION.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5422
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5423 <li>Limitation of Liability.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5424
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5425 <p>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5426 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5427 CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5428 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5429 ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5430 NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5431 LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5432 TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5433 PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5434
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5435 <li>Interpretation of Sections 15 and 16.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5436
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5437 <p>If the disclaimer of warranty and limitation of liability provided
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5438 above cannot be given local legal effect according to their terms,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5439 reviewing courts shall apply local law that most closely approximates
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5440 an absolute waiver of all civil liability in connection with the
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5441 Program, unless a warranty or assumption of liability accompanies a
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5442 copy of the Program in return for a fee.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5443
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5444 </ol>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5445
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5446 <h3 class="heading">END OF TERMS AND CONDITIONS</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5447
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5448 <h3 class="heading">How to Apply These Terms to Your New Programs</h3>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5449
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5450 <p>If you develop a new program, and you want it to be of the greatest
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5451 possible use to the public, the best way to achieve this is to make it
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5452 free software which everyone can redistribute and change under these
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5453 terms.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5454
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5455 <p>To do so, attach the following notices to the program. It is safest
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5456 to attach them to the start of each source file to most effectively
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5457 state the exclusion of warranty; and each file should have at least
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5458 the &ldquo;copyright&rdquo; line and a pointer to where the full notice is found.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5459
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5460 <pre class="smallexample"> <var>one line to give the program's name and a brief idea of what it does.</var>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5461 Copyright (C) <var>year</var> <var>name of author</var>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5462
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5463 This program is free software: you can redistribute it and/or modify
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5464 it under the terms of the GNU General Public License as published by
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5465 the Free Software Foundation, either version 3 of the License, or (at
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5466 your option) any later version.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5467
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5468 This program is distributed in the hope that it will be useful, but
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5469 WITHOUT ANY WARRANTY; without even the implied warranty of
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5470 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5471 General Public License for more details.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5472
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5473 You should have received a copy of the GNU General Public License
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5474 along with this program. If not, see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5475 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5476 <p>Also add information on how to contact you by electronic and paper mail.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5477
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5478 <p>If the program does terminal interaction, make it output a short
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5479 notice like this when it starts in an interactive mode:
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5480
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5481 <pre class="smallexample"> <var>program</var> Copyright (C) <var>year</var> <var>name of author</var>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5482 This program comes with ABSOLUTELY NO WARRANTY; for details type &lsquo;<samp><span class="samp">show w</span></samp>&rsquo;.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5483 This is free software, and you are welcome to redistribute it
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5484 under certain conditions; type &lsquo;<samp><span class="samp">show c</span></samp>&rsquo; for details.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5485 </pre>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5486 <p>The hypothetical commands &lsquo;<samp><span class="samp">show w</span></samp>&rsquo; and &lsquo;<samp><span class="samp">show c</span></samp>&rsquo; should show
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5487 the appropriate parts of the General Public License. Of course, your
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5488 program's commands might be different; for a GUI interface, you would
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5489 use an &ldquo;about box&rdquo;.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5490
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5491 <p>You should also get your employer (if you work as a programmer) or school,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5492 if any, to sign a &ldquo;copyright disclaimer&rdquo; for the program, if necessary.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5493 For more information on this, and how to apply and follow the GNU GPL, see
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5494 <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5495
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5496 <p>The GNU General Public License does not permit incorporating your
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5497 program into proprietary programs. If your program is a subroutine
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5498 library, you may consider it more useful to permit linking proprietary
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5499 applications with the library. If this is what you want to do, use
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5500 the GNU Lesser General Public License instead of this License. But
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5501 first, please read <a href="http://www.gnu.org/philosophy/why-not-lgpl.html">http://www.gnu.org/philosophy/why-not-lgpl.html</a>.
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5502
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5503 <!-- INDEX -->
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5504 <div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5505 <a name="Concept-Index"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5506 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5507 Next:&nbsp;<a rel="next" accesskey="n" href="#Function-Index">Function Index</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5508 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Copying">Copying</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5509 Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5510
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5511 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5512
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5513 <h2 class="unnumbered">Concept Index</h2>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5514
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5515 <ul class="index-cp" compact>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5516 <li><a href="#index-Approximate-MVA-179">Approximate MVA</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5517 <li><a href="#index-Asymmetric-_0040math_007bM_002fM_002fm_007d-system-79">Asymmetric M/M/m system</a>: <a href="#The-Asymmetric-M_002fM_002fm-System">The Asymmetric M/M/m System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5518 <li><a href="#index-BCMP-network-134">BCMP network</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5519 <li><a href="#index-Birth_002ddeath-process-30">Birth-death process</a>: <a href="#Birth_002dDeath-process">Birth-Death process</a></li>
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
5520 <li><a href="#index-Birth_002ddeath-process-11">Birth-death process</a>: <a href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a></li>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5521 <li><a href="#index-blocking-queueing-network-229">blocking queueing network</a>: <a href="#Algorithms-for-non-Product_002dform-QNs">Algorithms for non Product-form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5522 <li><a href="#index-bounds_002c-asymptotic-241">bounds, asymptotic</a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5523 <li><a href="#index-bounds_002c-balanced-system-256">bounds, balanced system</a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5524 <li><a href="#index-bounds_002c-geometric-273">bounds, geometric</a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5525 <li><a href="#index-closed-network-279">closed network</a>: <a href="#Utility-functions">Utility functions</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5526 <li><a href="#index-closed-network-250">closed network</a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5527 <li><a href="#index-closed-network-111">closed network</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5528 <li><a href="#index-Closed-network_002c-approximate-analysis-181">Closed network, approximate analysis</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5529 <li><a href="#index-closed-network_002c-finite-capacity-230">closed network, finite capacity</a>: <a href="#Algorithms-for-non-Product_002dform-QNs">Algorithms for non Product-form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5530 <li><a href="#index-closed-network_002c-multiple-classes-286">closed network, multiple classes</a>: <a href="#Utility-functions">Utility functions</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5531 <li><a href="#index-closed-network_002c-multiple-classes-236">closed network, multiple classes</a>: <a href="#Algorithms-for-non-Product_002dform-QNs">Algorithms for non Product-form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5532 <li><a href="#index-Closed-network_002c-multiple-classes-211">Closed network, multiple classes</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5533 <li><a href="#index-closed-network_002c-multiple-classes-193">closed network, multiple classes</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5534 <li><a href="#index-Closed-network_002c-single-class-180">Closed network, single class</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5535 <li><a href="#index-closed-network_002c-single-class-150">closed network, single class</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5536 <li><a href="#index-CMVA-171">CMVA</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5537 <li><a href="#index-Continuous-time-Markov-chain-25">Continuous time Markov chain</a>: <a href="#State-occupancy-probabilities">State occupancy probabilities</a></li>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5538 <li><a href="#index-convolution-algorithm-113">convolution algorithm</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5539 <li><a href="#index-copyright-295">copyright</a>: <a href="#Copying">Copying</a></li>
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
5540 <li><a href="#index-Discrete-time-Markov-chain-6">Discrete time Markov chain</a>: <a href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a></li>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5541 <li><a href="#index-Expected-sojourn-time-34">Expected sojourn time</a>: <a href="#Expected-Sojourn-Time">Expected Sojourn Time</a></li>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5542 <li><a href="#index-First-passage-times-49">First passage times</a>: <a href="#First-Passage-Times">First Passage Times</a></li>
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
5543 <li><a href="#index-First-passage-times-15">First passage times</a>: <a href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a></li>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5544 <li><a href="#index-Jackson-network-104">Jackson network</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5545 <li><a href="#index-load_002ddependent-service-center-123">load-dependent service center</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5546 <li><a href="#index-g_t_0040math_007bM_002fG_002f1_007d-system-85">M/G/1 system</a>: <a href="#The-M_002fG_002f1-System">The M/G/1 System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5547 <li><a href="#index-g_t_0040math_007bM_002fH_005fm_002f1_007d-system-87">M/H_m/1 system</a>: <a href="#The-M_002fHm_002f1-System">The M/Hm/1 System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5548 <li><a href="#index-g_t_0040math_007bM_002fM_002f1_007d-system-51">M/M/1 system</a>: <a href="#The-M_002fM_002f1-System">The M/M/1 System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5549 <li><a href="#index-g_t_0040math_007bM_002fM_002f1_002fK_007d-system-71">M/M/1/K system</a>: <a href="#The-M_002fM_002f1_002fK-System">The M/M/1/K System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5550 <li><a href="#index-g_t_0040math_007bM_002fM_002f_007dinf-system-64">M/M/inf system</a>: <a href="#The-M_002fM_002finf-System">The M/M/inf System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5551 <li><a href="#index-g_t_0040math_007bM_002fM_002fm_007d-system-58">M/M/m system</a>: <a href="#The-M_002fM_002fm-System">The M/M/m System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5552 <li><a href="#index-g_t_0040math_007bM_002fM_002fm_002fK_007d-system-73">M/M/m/K system</a>: <a href="#The-M_002fM_002fm_002fK-System">The M/M/m/K System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5553 <li><a href="#index-Markov-chain_002c-continuous-time-48">Markov chain, continuous time</a>: <a href="#First-Passage-Times">First Passage Times</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5554 <li><a href="#index-Markov-chain_002c-continuous-time-40">Markov chain, continuous time</a>: <a href="#Mean-Time-to-Absorption">Mean Time to Absorption</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5555 <li><a href="#index-Markov-chain_002c-continuous-time-37">Markov chain, continuous time</a>: <a href="#Time_002dAveraged-Expected-Sojourn-Time">Time-Averaged Expected Sojourn Time</a></li>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5556 <li><a href="#index-Markov-chain_002c-continuous-time-33">Markov chain, continuous time</a>: <a href="#Expected-Sojourn-Time">Expected Sojourn Time</a></li>
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5557 <li><a href="#index-Markov-chain_002c-continuous-time-29">Markov chain, continuous time</a>: <a href="#Birth_002dDeath-process">Birth-Death process</a></li>
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5558 <li><a href="#index-Markov-chain_002c-continuous-time-24">Markov chain, continuous time</a>: <a href="#State-occupancy-probabilities">State occupancy probabilities</a></li>
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5559 <li><a href="#index-Markov-chain_002c-continuous-time-21">Markov chain, continuous time</a>: <a href="#Continuous_002dTime-Markov-Chains">Continuous-Time Markov Chains</a></li>
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
5560 <li><a href="#index-Markov-chain_002c-discrete-time-2">Markov chain, discrete time</a>: <a href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a></li>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5561 <li><a href="#index-Markov-chain_002c-disctete-time-18">Markov chain, disctete time</a>: <a href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a></li>
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5562 <li><a href="#index-Markov-chain_002c-state-occupancy-probabilities-26">Markov chain, state occupancy probabilities</a>: <a href="#State-occupancy-probabilities">State occupancy probabilities</a></li>
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
5563 <li><a href="#index-Markov-chain_002c-stationary-probabilities-7">Markov chain, stationary probabilities</a>: <a href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a></li>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5564 <li><a href="#index-Mean-time-to-absorption-41">Mean time to absorption</a>: <a href="#Mean-Time-to-Absorption">Mean Time to Absorption</a></li>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5565 <li><a href="#index-Mean-time-to-absorption-19">Mean time to absorption</a>: <a href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a></li>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5566 <li><a href="#index-Mean-Value-Analysys-_0028MVA_0029-149">Mean Value Analysys (MVA)</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5567 <li><a href="#index-Mean-Value-Analysys-_0028MVA_0029_002c-approximate-178">Mean Value Analysys (MVA), approximate</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5568 <li><a href="#index-mixed-network-221">mixed network</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5569 <li><a href="#index-normalization-constant-112">normalization constant</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5570 <li><a href="#index-open-network-281">open network</a>: <a href="#Utility-functions">Utility functions</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5571 <li><a href="#index-open-network-242">open network</a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5572 <li><a href="#index-open-network_002c-multiple-classes-141">open network, multiple classes</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5573 <li><a href="#index-open-network_002c-single-class-103">open network, single class</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5574 <li><a href="#index-population-mix-285">population mix</a>: <a href="#Utility-functions">Utility functions</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5575 <li><a href="#index-queueing-network-with-blocking-228">queueing network with blocking</a>: <a href="#Algorithms-for-non-Product_002dform-QNs">Algorithms for non Product-form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5576 <li><a href="#index-queueing-networks-88">queueing networks</a>: <a href="#Queueing-Networks">Queueing Networks</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5577 <li><a href="#index-RS-blocking-239">RS blocking</a>: <a href="#Algorithms-for-non-Product_002dform-QNs">Algorithms for non Product-form QNs</a></li>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5578 <li><a href="#index-Stationary-probabilities-27">Stationary probabilities</a>: <a href="#State-occupancy-probabilities">State occupancy probabilities</a></li>
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
5579 <li><a href="#index-Stationary-probabilities-8">Stationary probabilities</a>: <a href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a></li>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5580 <li><a href="#index-Time_002dalveraged-sojourn-time-38">Time-alveraged sojourn time</a>: <a href="#Time_002dAveraged-Expected-Sojourn-Time">Time-Averaged Expected Sojourn Time</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5581 <li><a href="#index-traffic-intensity-65">traffic intensity</a>: <a href="#The-M_002fM_002finf-System">The M/M/inf System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5582 <li><a href="#index-warranty-294">warranty</a>: <a href="#Copying">Copying</a></li>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5583 </ul><div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5584 <a name="Function-Index"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5585 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5586 Next:&nbsp;<a rel="next" accesskey="n" href="#Author-Index">Author Index</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5587 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Concept-Index">Concept Index</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5588 Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5589
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5590 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5591
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5592 <h2 class="unnumbered">Function Index</h2>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5593
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5594
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5595
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5596 <ul class="index-fn" compact>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5597 <li><a href="#index-ctmc-22"><code>ctmc</code></a>: <a href="#State-occupancy-probabilities">State occupancy probabilities</a></li>
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5598 <li><a href="#index-ctmc_005fbd-28"><code>ctmc_bd</code></a>: <a href="#Birth_002dDeath-process">Birth-Death process</a></li>
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5599 <li><a href="#index-ctmc_005fcheck_005fQ-20"><code>ctmc_check_Q</code></a>: <a href="#Continuous_002dTime-Markov-Chains">Continuous-Time Markov Chains</a></li>
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5600 <li><a href="#index-ctmc_005fexps-31"><code>ctmc_exps</code></a>: <a href="#Expected-Sojourn-Time">Expected Sojourn Time</a></li>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5601 <li><a href="#index-ctmc_005ffpt-46"><code>ctmc_fpt</code></a>: <a href="#First-Passage-Times">First Passage Times</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5602 <li><a href="#index-ctmc_005fmtta-39"><code>ctmc_mtta</code></a>: <a href="#Mean-Time-to-Absorption">Mean Time to Absorption</a></li>
9634
210968b14f63 Enhancements to dtmc_mtta()
mmarzolla
parents: 9632
diff changeset
5603 <li><a href="#index-ctmc_005ftaexps-35"><code>ctmc_taexps</code></a>: <a href="#Time_002dAveraged-Expected-Sojourn-Time">Time-Averaged Expected Sojourn Time</a></li>
9628
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
5604 <li><a href="#index-dtmc-3"><code>dtmc</code></a>: <a href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a></li>
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
5605 <li><a href="#index-dtmc_005fbd-9"><code>dtmc_bd</code></a>: <a href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a></li>
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
5606 <li><a href="#index-dtmc_005fcheck_005fP-1"><code>dtmc_check_P</code></a>: <a href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a></li>
d91fd1efc9bf added function ctmc_check_Q()
mmarzolla
parents: 9627
diff changeset
5607 <li><a href="#index-dtmc_005ffpt-12"><code>dtmc_fpt</code></a>: <a href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a></li>
9632
499daeccb4e8 New function dtmc_mtta() added; removed deprecated functions
mmarzolla
parents: 9629
diff changeset
5608 <li><a href="#index-dtmc_005fmtta-16"><code>dtmc_mtta</code></a>: <a href="#Discrete_002dTime-Markov-Chains">Discrete-Time Markov Chains</a></li>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5609 <li><a href="#index-population_005fmix-284"><code>population_mix</code></a>: <a href="#Utility-functions">Utility functions</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5610 <li><a href="#index-qnammm-78"><code>qnammm</code></a>: <a href="#The-Asymmetric-M_002fM_002fm-System">The Asymmetric M/M/m System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5611 <li><a href="#index-qnclosed-278"><code>qnclosed</code></a>: <a href="#Utility-functions">Utility functions</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5612 <li><a href="#index-qnclosedab-247"><code>qnclosedab</code></a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5613 <li><a href="#index-qnclosedbsb-262"><code>qnclosedbsb</code></a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5614 <li><a href="#index-qnclosedgb-272"><code>qnclosedgb</code></a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5615 <li><a href="#index-qnclosedmultimva-186"><code>qnclosedmultimva</code></a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5616 <li><a href="#index-qnclosedmultimvaapprox-204"><code>qnclosedmultimvaapprox</code></a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5617 <li><a href="#index-qnclosedpb-266"><code>qnclosedpb</code></a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5618 <li><a href="#index-qnclosedsinglemva-146"><code>qnclosedsinglemva</code></a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5619 <li><a href="#index-qnclosedsinglemvaapprox-173"><code>qnclosedsinglemvaapprox</code></a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5620 <li><a href="#index-qnclosedsinglemvald-159"><code>qnclosedsinglemvald</code></a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5621 <li><a href="#index-qncmva-168"><code>qncmva</code></a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5622 <li><a href="#index-qnconvolution-109"><code>qnconvolution</code></a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5623 <li><a href="#index-qnconvolutionld-119"><code>qnconvolutionld</code></a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5624 <li><a href="#index-qnjackson-100"><code>qnjackson</code></a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5625 <li><a href="#index-qnmarkov-232"><code>qnmarkov</code></a>: <a href="#Algorithms-for-non-Product_002dform-QNs">Algorithms for non Product-form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5626 <li><a href="#index-qnmg1-84"><code>qnmg1</code></a>: <a href="#The-M_002fG_002f1-System">The M/G/1 System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5627 <li><a href="#index-qnmh1-86"><code>qnmh1</code></a>: <a href="#The-M_002fHm_002f1-System">The M/Hm/1 System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5628 <li><a href="#index-qnmix-219"><code>qnmix</code></a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5629 <li><a href="#index-qnmknode-89"><code>qnmknode</code></a>: <a href="#Generic-Algorithms">Generic Algorithms</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5630 <li><a href="#index-qnmm1-50"><code>qnmm1</code></a>: <a href="#The-M_002fM_002f1-System">The M/M/1 System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5631 <li><a href="#index-qnmm1k-70"><code>qnmm1k</code></a>: <a href="#The-M_002fM_002f1_002fK-System">The M/M/1/K System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5632 <li><a href="#index-qnmminf-63"><code>qnmminf</code></a>: <a href="#The-M_002fM_002finf-System">The M/M/inf System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5633 <li><a href="#index-qnmmm-56"><code>qnmmm</code></a>: <a href="#The-M_002fM_002fm-System">The M/M/m System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5634 <li><a href="#index-qnmmmk-72"><code>qnmmmk</code></a>: <a href="#The-M_002fM_002fm_002fK-System">The M/M/m/K System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5635 <li><a href="#index-qnmvablo-227"><code>qnmvablo</code></a>: <a href="#Algorithms-for-non-Product_002dform-QNs">Algorithms for non Product-form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5636 <li><a href="#index-qnmvapop-289"><code>qnmvapop</code></a>: <a href="#Utility-functions">Utility functions</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5637 <li><a href="#index-qnopen-280"><code>qnopen</code></a>: <a href="#Utility-functions">Utility functions</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5638 <li><a href="#index-qnopenab-240"><code>qnopenab</code></a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5639 <li><a href="#index-qnopenbsb-255"><code>qnopenbsb</code></a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5640 <li><a href="#index-qnopenmulti-139"><code>qnopenmulti</code></a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5641 <li><a href="#index-qnopensingle-131"><code>qnopensingle</code></a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5642 <li><a href="#index-qnsolve-96"><code>qnsolve</code></a>: <a href="#Generic-Algorithms">Generic Algorithms</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5643 <li><a href="#index-qnvisits-282"><code>qnvisits</code></a>: <a href="#Utility-functions">Utility functions</a></li>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5644 </ul><div class="node">
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5645 <a name="Author-Index"></a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5646 <p><hr>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5647 Previous:&nbsp;<a rel="previous" accesskey="p" href="#Function-Index">Function Index</a>,
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5648 Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5649
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5650 </div>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5651
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5652 <h2 class="unnumbered">Author Index</h2>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5653
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5654
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5655
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5656 <ul class="index-au" compact>
9692
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5657 <li><a href="#index-Akyildiz_002c-I_002e-F_002e-231">Akyildiz, I. F.</a>: <a href="#Algorithms-for-non-Product_002dform-QNs">Algorithms for non Product-form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5658 <li><a href="#index-Bard_002c-Y_002e-213">Bard, Y.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5659 <li><a href="#index-Bolch_002c-G_002e-105">Bolch, G.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5660 <li><a href="#index-Bolch_002c-G_002e-80">Bolch, G.</a>: <a href="#The-Asymmetric-M_002fM_002fm-System">The Asymmetric M/M/m System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5661 <li><a href="#index-Bolch_002c-G_002e-74">Bolch, G.</a>: <a href="#The-M_002fM_002fm_002fK-System">The M/M/m/K System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5662 <li><a href="#index-Bolch_002c-G_002e-66">Bolch, G.</a>: <a href="#The-M_002fM_002finf-System">The M/M/inf System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5663 <li><a href="#index-Bolch_002c-G_002e-59">Bolch, G.</a>: <a href="#The-M_002fM_002fm-System">The M/M/m System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5664 <li><a href="#index-Bolch_002c-G_002e-52">Bolch, G.</a>: <a href="#The-M_002fM_002f1-System">The M/M/1 System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5665 <li><a href="#index-Bolch_002c-G_002e-42">Bolch, G.</a>: <a href="#Mean-Time-to-Absorption">Mean Time to Absorption</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5666 <li><a href="#index-Buzen_002c-J_002e-P_002e-114">Buzen, J. P.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5667 <li><a href="#index-Casale_002c-G_002e-269">Casale, G.</a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5668 <li><a href="#index-Casale_002c-G_002e-172">Casale, G.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5669 <li><a href="#index-de-Meer_002c-H_002e-107">de Meer, H.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5670 <li><a href="#index-de-Meer_002c-H_002e-82">de Meer, H.</a>: <a href="#The-Asymmetric-M_002fM_002fm-System">The Asymmetric M/M/m System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5671 <li><a href="#index-de-Meer_002c-H_002e-76">de Meer, H.</a>: <a href="#The-M_002fM_002fm_002fK-System">The M/M/m/K System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5672 <li><a href="#index-de-Meer_002c-H_002e-68">de Meer, H.</a>: <a href="#The-M_002fM_002finf-System">The M/M/inf System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5673 <li><a href="#index-de-Meer_002c-H_002e-61">de Meer, H.</a>: <a href="#The-M_002fM_002fm-System">The M/M/m System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5674 <li><a href="#index-de-Meer_002c-H_002e-54">de Meer, H.</a>: <a href="#The-M_002fM_002f1-System">The M/M/1 System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5675 <li><a href="#index-de-Meer_002c-H_002e-44">de Meer, H.</a>: <a href="#Mean-Time-to-Absorption">Mean Time to Absorption</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5676 <li><a href="#index-Graham_002c-G_002e-S_002e-245">Graham, G. S.</a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5677 <li><a href="#index-Graham_002c-G_002e-S_002e-144">Graham, G. S.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5678 <li><a href="#index-Greiner_002c-S_002e-106">Greiner, S.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5679 <li><a href="#index-Greiner_002c-S_002e-81">Greiner, S.</a>: <a href="#The-Asymmetric-M_002fM_002fm-System">The Asymmetric M/M/m System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5680 <li><a href="#index-Greiner_002c-S_002e-75">Greiner, S.</a>: <a href="#The-M_002fM_002fm_002fK-System">The M/M/m/K System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5681 <li><a href="#index-Greiner_002c-S_002e-67">Greiner, S.</a>: <a href="#The-M_002fM_002finf-System">The M/M/inf System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5682 <li><a href="#index-Greiner_002c-S_002e-60">Greiner, S.</a>: <a href="#The-M_002fM_002fm-System">The M/M/m System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5683 <li><a href="#index-Greiner_002c-S_002e-53">Greiner, S.</a>: <a href="#The-M_002fM_002f1-System">The M/M/1 System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5684 <li><a href="#index-Greiner_002c-S_002e-43">Greiner, S.</a>: <a href="#Mean-Time-to-Absorption">Mean Time to Absorption</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5685 <li><a href="#index-Hsieh_002c-C_002e-H-267">Hsieh, C. H</a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5686 <li><a href="#index-Jain_002c-R_002e-154">Jain, R.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5687 <li><a href="#index-Kobayashi_002c-H_002e-126">Kobayashi, H.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5688 <li><a href="#index-Lam_002c-S_002e-268">Lam, S.</a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5689 <li><a href="#index-Lavenberg_002c-S_002e-S_002e-153">Lavenberg, S. S.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5690 <li><a href="#index-Lazowska_002c-E_002e-D_002e-243">Lazowska, E. D.</a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5691 <li><a href="#index-Lazowska_002c-E_002e-D_002e-142">Lazowska, E. D.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5692 <li><a href="#index-Muntz_002c-R_002e-R_002e-270">Muntz, R. R.</a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5693 <li><a href="#index-Reiser_002c-M_002e-125">Reiser, M.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5694 <li><a href="#index-Santini_002c-S_002e-288">Santini, S.</a>: <a href="#Utility-functions">Utility functions</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5695 <li><a href="#index-Schweitzer_002c-P_002e-214">Schweitzer, P.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5696 <li><a href="#index-Schwetman_002c-H_002e-287">Schwetman, H.</a>: <a href="#Utility-functions">Utility functions</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5697 <li><a href="#index-Schwetman_002c-H_002e-124">Schwetman, H.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5698 <li><a href="#index-Serazzi_002c-G_002e-271">Serazzi, G.</a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5699 <li><a href="#index-Sevcik_002c-K_002e-C_002e-246">Sevcik, K. C.</a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5700 <li><a href="#index-Sevcik_002c-K_002e-C_002e-145">Sevcik, K. C.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5701 <li><a href="#index-Trivedi_002c-K_002e-108">Trivedi, K.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5702 <li><a href="#index-Trivedi_002c-K_002e-83">Trivedi, K.</a>: <a href="#The-Asymmetric-M_002fM_002fm-System">The Asymmetric M/M/m System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5703 <li><a href="#index-Trivedi_002c-K_002e-77">Trivedi, K.</a>: <a href="#The-M_002fM_002fm_002fK-System">The M/M/m/K System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5704 <li><a href="#index-Trivedi_002c-K_002e-69">Trivedi, K.</a>: <a href="#The-M_002fM_002finf-System">The M/M/inf System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5705 <li><a href="#index-Trivedi_002c-K_002e-62">Trivedi, K.</a>: <a href="#The-M_002fM_002fm-System">The M/M/m System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5706 <li><a href="#index-Trivedi_002c-K_002e-55">Trivedi, K.</a>: <a href="#The-M_002fM_002f1-System">The M/M/1 System</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5707 <li><a href="#index-Trivedi_002c-K_002e-45">Trivedi, K.</a>: <a href="#Mean-Time-to-Absorption">Mean Time to Absorption</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5708 <li><a href="#index-Wong_002c-E_002e-293">Wong, E.</a>: <a href="#Utility-functions">Utility functions</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5709 <li><a href="#index-Zahorjan_002c-J_002e-292">Zahorjan, J.</a>: <a href="#Utility-functions">Utility functions</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5710 <li><a href="#index-Zahorjan_002c-J_002e-244">Zahorjan, J.</a>: <a href="#Bounds-on-performance">Bounds on performance</a></li>
dee7b9b17fae updated documentation
mmarzolla
parents: 9634
diff changeset
5711 <li><a href="#index-Zahorjan_002c-J_002e-143">Zahorjan, J.</a>: <a href="#Algorithms-for-Product_002dForm-QNs">Algorithms for Product-Form QNs</a></li>
9391
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5712 </ul></body></html>
ea88fce5f7ff queueing: add new package for Moreno Marzolla
paramaniac
parents:
diff changeset
5713