From: <mma...@us...> - 2012-03-12 10:58:53
|
Revision: 9818 http://octave.svn.sourceforge.net/octave/?rev=9818&view=rev Author: mmarzolla Date: 2012-03-12 10:58:39 +0000 (Mon, 12 Mar 2012) Log Message: ----------- New function dtmc_mtta() added; removed deprecated functions Modified Paths: -------------- trunk/octave-forge/main/queueing/ChangeLog trunk/octave-forge/main/queueing/NEWS trunk/octave-forge/main/queueing/doc/markovchains.txi trunk/octave-forge/main/queueing/doc/queueing.html trunk/octave-forge/main/queueing/doc/queueing.pdf Added Paths: ----------- trunk/octave-forge/main/queueing/inst/dtmc_mtta.m Removed Paths: ------------- trunk/octave-forge/main/queueing/inst/ctmc_solve.m trunk/octave-forge/main/queueing/inst/dtmc_solve.m Modified: trunk/octave-forge/main/queueing/ChangeLog =================================================================== --- trunk/octave-forge/main/queueing/ChangeLog 2012-03-11 20:53:31 UTC (rev 9817) +++ trunk/octave-forge/main/queueing/ChangeLog 2012-03-12 10:58:39 UTC (rev 9818) @@ -11,9 +11,12 @@ in future releases. * ctmc_bd() now returns the infinitesimal generator matrix of the birth-death process, not the steady-state solution. - * ctmc_bd_solve() has been removed - * dtmc_bd() has been added - * ctmc_check_Q() has been added + * ctmc_bd_solve() (which was deprecated) has been removed + * ctmc_solve() (which was deprecated) has been removed + * dtmc_solve() (which was deprecated) has been removed + * dtmc_bd() added + * ctmc_check_Q() added + * dtmc_mtta() added * Miscellaneous fixes/improvements to the documentation 2012-02-04 Moreno Marzolla <mar...@cs...> Modified: trunk/octave-forge/main/queueing/NEWS =================================================================== --- trunk/octave-forge/main/queueing/NEWS 2012-03-11 20:53:31 UTC (rev 9817) +++ trunk/octave-forge/main/queueing/NEWS 2012-03-12 10:58:39 UTC (rev 9818) @@ -11,11 +11,12 @@ of the birth-death process with given rates, not the steady-state solution. -** New function dtmc_bd() added +** The following new functions have been added: dtmc_bd(), dtmc_mtta(), + ctmc_check_Q() -** Function ctmc_bd_solve() has been removed +** The following deprecated functions have been removed: ctmc_bd_solve(), + ctmc_solve(), dtmc_solve() -** New function ctmc_check_Q() added Summary of important user-visible changes for queueing-1.0.0 ------------------------------------------------------------------------------ Modified: trunk/octave-forge/main/queueing/doc/markovchains.txi =================================================================== --- trunk/octave-forge/main/queueing/doc/markovchains.txi 2012-03-11 20:53:31 UTC (rev 9817) +++ trunk/octave-forge/main/queueing/doc/markovchains.txi 2012-03-12 10:58:39 UTC (rev 9818) @@ -145,8 +145,13 @@ @DOCSTRING(dtmc_fpt) @c +@subsection Mean Time to Absorption + +@DOCSTRING(dtmc_mtta) + @c @c +@c @node Continuous-Time Markov Chains @section Continuous-Time Markov Chains @@ -178,7 +183,7 @@ * Birth-Death process:: * Expected Sojourn Time:: * Time-Averaged Expected Sojourn Time:: -* Expected Time to Absorption:: +* Mean Time to Absorption:: * First Passage Times:: @end menu @@ -323,8 +328,8 @@ @c @c @c -@node Expected Time to Absorption -@subsection Expected Time to Absorption +@node Mean Time to Absorption +@subsection Mean Time to Absorption If we consider a Markov Chain with absorbing states, it is possible to define the @emph{expected time to absorption} as the expected time Modified: trunk/octave-forge/main/queueing/doc/queueing.html =================================================================== --- trunk/octave-forge/main/queueing/doc/queueing.html 2012-03-11 20:53:31 UTC (rev 9817) +++ trunk/octave-forge/main/queueing/doc/queueing.html 2012-03-12 10:58:39 UTC (rev 9818) @@ -59,6 +59,7 @@ <li><a href="#Discrete_002dTime-Markov-Chains">4.1.1 State occupancy probabilities</a> <li><a href="#Discrete_002dTime-Markov-Chains">4.1.2 Birth-Death process</a> <li><a href="#Discrete_002dTime-Markov-Chains">4.1.3 First passage times</a> +<li><a href="#Discrete_002dTime-Markov-Chains">4.1.4 Mean Time to Absorption</a> </li></ul> <li><a href="#Continuous_002dTime-Markov-Chains">4.2 Continuous-Time Markov Chains</a> <ul> @@ -66,7 +67,7 @@ <li><a href="#Birth_002dDeath-process">4.2.2 Birth-Death process</a> <li><a href="#Expected-Sojourn-Time">4.2.3 Expected Sojourn Time</a> <li><a href="#Time_002dAveraged-Expected-Sojourn-Time">4.2.4 Time-Averaged Expected Sojourn Time</a> -<li><a href="#Expected-Time-to-Absorption">4.2.5 Expected Time to Absorption</a> +<li><a href="#Mean-Time-to-Absorption">4.2.5 Mean Time to Absorption</a> <li><a href="#First-Passage-Times">4.2.6 First Passage Times</a> </li></ul> </li></ul> @@ -1000,6 +1001,39 @@ </blockquote></div> +<h4 class="subsection">4.1.4 Mean Time to Absorption</h4> + +<p><a name="doc_002ddtmc_005fmtta"></a> + +<div class="defun"> +— 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> +<blockquote> + <p><a name="index-Markov-chain_002c-disctete-time-17"></a><a name="index-Mean-time-to-absorption-18"></a> +Compute the expected number of steps before absorption for the DTMC +described by the transition probability matrix <var>P</var>, + + <p><strong>INPUTS</strong> + + <dl> +<dt><var>P</var><dd>Transition probability matrix . + + </dl> + + <p><strong>OUTPUTS</strong> + + <dl> +<dt><var>t</var><dd><var>t</var><code>(i)</code> is the expected number of steps before being absorbed, +starting from state i. + + <br><dt><var>B</var><dd><var>B</var><code>(i,j)</code> is the probability of being absorbed in state +j, starting from state i. If j is not absorbing, +<var>B</var><code>(i,j) = 0</code>; if i is absorbing, then +<var>B</var><code>(i,i) = 1</code>.. + + </dl> + + </blockquote></div> + <div class="node"> <a name="Continuous-Time-Markov-Chains"></a> <a name="Continuous_002dTime-Markov-Chains"></a> @@ -1028,9 +1062,9 @@ <p><a name="doc_002dctmc_005fcheck_005fQ"></a> <div class="defun"> -— Function File: [<var>result</var> <var>err</var>] = <b>ctmc_check_Q</b> (<var>Q</var>)<var><a name="index-ctmc_005fcheck_005fQ-16"></a></var><br> +— Function File: [<var>result</var> <var>err</var>] = <b>ctmc_check_Q</b> (<var>Q</var>)<var><a name="index-ctmc_005fcheck_005fQ-19"></a></var><br> <blockquote> - <p><a name="index-Markov-chain_002c-continuous-time-17"></a> + <p><a name="index-Markov-chain_002c-continuous-time-20"></a> If <var>Q</var> is a valid infinitesimal generator matrix, return the size (number of rows or columns) of <var>Q</var>. If <var>Q</var> is not an infinitesimal generator matrix, set <var>result</var> to zero, and @@ -1043,7 +1077,7 @@ <li><a accesskey="2" href="#Birth_002dDeath-process">Birth-Death process</a> <li><a accesskey="3" href="#Expected-Sojourn-Time">Expected Sojourn Time</a> <li><a accesskey="4" href="#Time_002dAveraged-Expected-Sojourn-Time">Time-Averaged Expected Sojourn Time</a> -<li><a accesskey="5" href="#Expected-Time-to-Absorption">Expected Time to Absorption</a> +<li><a accesskey="5" href="#Mean-Time-to-Absorption">Mean Time to Absorption</a> <li><a accesskey="6" href="#First-Passage-Times">First Passage Times</a> </ul> @@ -1080,10 +1114,10 @@ <p><a name="doc_002dctmc"></a> <div class="defun"> -— Function File: <var>p</var> = <b>ctmc</b> (<var>Q</var>)<var><a name="index-ctmc-18"></a></var><br> -— Function File: <var>p</var> = <b>ctmc</b> (<var>Q, t. p0</var>)<var><a name="index-ctmc-19"></a></var><br> +— Function File: <var>p</var> = <b>ctmc</b> (<var>Q</var>)<var><a name="index-ctmc-21"></a></var><br> +— Function File: <var>p</var> = <b>ctmc</b> (<var>Q, t. p0</var>)<var><a name="index-ctmc-22"></a></var><br> <blockquote> - <p><a name="index-Markov-chain_002c-continuous-time-20"></a><a name="index-Continuous-time-Markov-chain-21"></a><a name="index-Markov-chain_002c-state-occupancy-probabilities-22"></a><a name="index-Stationary-probabilities-23"></a> + <p><a name="index-Markov-chain_002c-continuous-time-23"></a><a name="index-Continuous-time-Markov-chain-24"></a><a name="index-Markov-chain_002c-state-occupancy-probabilities-25"></a><a name="index-Stationary-probabilities-26"></a> With a single argument, compute the stationary state occupancy probability vector <var>p</var>(1), <small class="dots">...</small>, <var>p</var>(N) for a Continuous-Time Markov Chain with infinitesimal generator matrix @@ -1146,9 +1180,9 @@ <p><a name="doc_002dctmc_005fbd"></a> <div class="defun"> -— Function File: <var>Q</var> = <b>ctmc_bd</b> (<var>birth, death</var>)<var><a name="index-ctmc_005fbd-24"></a></var><br> +— Function File: <var>Q</var> = <b>ctmc_bd</b> (<var>birth, death</var>)<var><a name="index-ctmc_005fbd-27"></a></var><br> <blockquote> - <p><a name="index-Markov-chain_002c-continuous-time-25"></a><a name="index-Birth_002ddeath-process-26"></a> + <p><a name="index-Markov-chain_002c-continuous-time-28"></a><a name="index-Birth_002ddeath-process-29"></a> Returns the N \times N infinitesimal generator matrix Q for a birth-death process with given rates. @@ -1208,10 +1242,10 @@ <p><a name="doc_002dctmc_005fexps"></a> <div class="defun"> -— Function File: <var>L</var> = <b>ctmc_exps</b> (<var>Q, t, p </var>)<var><a name="index-ctmc_005fexps-27"></a></var><br> -— Function File: <var>L</var> = <b>ctmc_exps</b> (<var>Q, p</var>)<var><a name="index-ctmc_005fexps-28"></a></var><br> +— Function File: <var>L</var> = <b>ctmc_exps</b> (<var>Q, t, p </var>)<var><a name="index-ctmc_005fexps-30"></a></var><br> +— Function File: <var>L</var> = <b>ctmc_exps</b> (<var>Q, p</var>)<var><a name="index-ctmc_005fexps-31"></a></var><br> <blockquote> - <p><a name="index-Markov-chain_002c-continuous-time-29"></a><a name="index-Expected-sojourn-time-30"></a> + <p><a name="index-Markov-chain_002c-continuous-time-32"></a><a name="index-Expected-sojourn-time-33"></a> With three arguments, compute the expected times <var>L</var><code>(i)</code> spent in each state i during the time interval [0,t], assuming that the state occupancy probabilities @@ -1280,7 +1314,7 @@ <a name="Time-Averaged-Expected-Sojourn-Time"></a> <a name="Time_002dAveraged-Expected-Sojourn-Time"></a> <p><hr> -Next: <a rel="next" accesskey="n" href="#Expected-Time-to-Absorption">Expected Time to Absorption</a>, +Next: <a rel="next" accesskey="n" href="#Mean-Time-to-Absorption">Mean Time to Absorption</a>, Previous: <a rel="previous" accesskey="p" href="#Expected-Sojourn-Time">Expected Sojourn Time</a>, Up: <a rel="up" accesskey="u" href="#Continuous_002dTime-Markov-Chains">Continuous-Time Markov Chains</a> @@ -1291,9 +1325,9 @@ <p><a name="doc_002dctmc_005ftaexps"></a> <div class="defun"> -— Function File: <var>M</var> = <b>ctmc_taexps</b> (<var>Q, t, p</var>)<var><a name="index-ctmc_005ftaexps-31"></a></var><br> +— Function File: <var>M</var> = <b>ctmc_taexps</b> (<var>Q, t, p</var>)<var><a name="index-ctmc_005ftaexps-34"></a></var><br> <blockquote> - <p><a name="index-Markov-chain_002c-continuous-time-32"></a><a name="index-Time_002dalveraged-sojourn-time-33"></a> + <p><a name="index-Markov-chain_002c-continuous-time-35"></a><a name="index-Time_002dalveraged-sojourn-time-36"></a> Compute the <em>time-averaged sojourn time</em> <var>M</var><code>(i)</code>, defined as the fraction of the time interval [0,t] spent in state i, assuming that the state occupancy probabilities at @@ -1348,7 +1382,7 @@ ylabel("Time-averaged Expected sojourn time");</pre> </pre> <div class="node"> -<a name="Expected-Time-to-Absorption"></a> +<a name="Mean-Time-to-Absorption"></a> <p><hr> Next: <a rel="next" accesskey="n" href="#First-Passage-Times">First Passage Times</a>, Previous: <a rel="previous" accesskey="p" href="#Time_002dAveraged-Expected-Sojourn-Time">Time-Averaged Expected Sojourn Time</a>, @@ -1356,7 +1390,7 @@ </div> -<h4 class="subsection">4.2.5 Expected Time to Absorption</h4> +<h4 class="subsection">4.2.5 Mean Time to Absorption</h4> <p>If we consider a Markov Chain with absorbing states, it is possible to define the <em>expected time to absorption</em> as the expected time @@ -1376,9 +1410,9 @@ <p><a name="doc_002dctmc_005fmtta"></a> <div class="defun"> -— Function File: <var>t</var> = <b>ctmc_mtta</b> (<var>Q, p</var>)<var><a name="index-ctmc_005fmtta-34"></a></var><br> +— Function File: <var>t</var> = <b>ctmc_mtta</b> (<var>Q, p</var>)<var><a name="index-ctmc_005fmtta-37"></a></var><br> <blockquote> - <p><a name="index-Markov-chain_002c-continuous-time-35"></a><a name="index-Mean-time-to-absorption-36"></a> + <p><a name="index-Markov-chain_002c-continuous-time-38"></a><a name="index-Mean-time-to-absorption-39"></a> Compute the Mean-Time to Absorption (MTTA) of the CTMC described by the infinitesimal generator matrix <var>Q</var>, starting from initial occupancy probabilities <var>p</var>. If there are no absorbing states, this @@ -1439,11 +1473,11 @@ Performance Evaluation with Computer Science Applications</cite>, Wiley, 1998. - <p><a name="index-Bolch_002c-G_002e-37"></a><a name="index-Greiner_002c-S_002e-38"></a><a name="index-de-Meer_002c-H_002e-39"></a><a name="index-Trivedi_002c-K_002e-40"></a> + <p><a name="index-Bolch_002c-G_002e-40"></a><a name="index-Greiner_002c-S_002e-41"></a><a name="index-de-Meer_002c-H_002e-42"></a><a name="index-Trivedi_002c-K_002e-43"></a> <div class="node"> <a name="First-Passage-Times"></a> <p><hr> -Previous: <a rel="previous" accesskey="p" href="#Expected-Time-to-Absorption">Expected Time to Absorption</a>, +Previous: <a rel="previous" accesskey="p" href="#Mean-Time-to-Absorption">Mean Time to Absorption</a>, Up: <a rel="up" accesskey="u" href="#Continuous_002dTime-Markov-Chains">Continuous-Time Markov Chains</a> </div> @@ -1453,10 +1487,10 @@ <p><a name="doc_002dctmc_005ffpt"></a> <div class="defun"> -— Function File: <var>M</var> = <b>ctmc_fpt</b> (<var>Q</var>)<var><a name="index-ctmc_005ffpt-41"></a></var><br> -— Function File: <var>m</var> = <b>ctmc_fpt</b> (<var>Q, i, j</var>)<var><a name="index-ctmc_005ffpt-42"></a></var><br> +— Function File: <var>M</var> = <b>ctmc_fpt</b> (<var>Q</var>)<var><a name="index-ctmc_005ffpt-44"></a></var><br> +— Function File: <var>m</var> = <b>ctmc_fpt</b> (<var>Q, i, j</var>)<var><a name="index-ctmc_005ffpt-45"></a></var><br> <blockquote> - <p><a name="index-Markov-chain_002c-continuous-time-43"></a><a name="index-First-passage-times-44"></a> + <p><a name="index-Markov-chain_002c-continuous-time-46"></a><a name="index-First-passage-times-47"></a> If called with a single argument, computes the mean first passage times <var>M</var><code>(i,j)</code>, the average times before state <var>j</var> is reached, starting from state <var>i</var>, for all 1 \leq i, j \leq @@ -1562,9 +1596,9 @@ <p><a name="doc_002dqnmm1"></a> <div class="defun"> -— 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-45"></a></var><br> +— 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-48"></a></var><br> <blockquote> - <p><a name="index-g_t_0040math_007bM_002fM_002f1_007d-system-46"></a> + <p><a name="index-g_t_0040math_007bM_002fM_002f1_007d-system-49"></a> Compute utilization, response time, average number of requests and throughput for a M/M/1 queue. @@ -1609,7 +1643,7 @@ and Markov Chains: Modeling and Performance Evaluation with Computer Science Applications</cite>, Wiley, 1998, Section 6.3. - <p><a name="index-Bolch_002c-G_002e-47"></a><a name="index-Greiner_002c-S_002e-48"></a><a name="index-de-Meer_002c-H_002e-49"></a><a name="index-Trivedi_002c-K_002e-50"></a> + <p><a name="index-Bolch_002c-G_002e-50"></a><a name="index-Greiner_002c-S_002e-51"></a><a name="index-de-Meer_002c-H_002e-52"></a><a name="index-Trivedi_002c-K_002e-53"></a> <!-- M/M/m --> <div class="node"> <a name="The-M%2fM%2fm-System"></a> @@ -1635,10 +1669,10 @@ <p><a name="doc_002dqnmmm"></a> <div class="defun"> -— 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-51"></a></var><br> -— 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-52"></a></var><br> +— 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-54"></a></var><br> +— 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-55"></a></var><br> <blockquote> - <p><a name="index-g_t_0040math_007bM_002fM_002fm_007d-system-53"></a> + <p><a name="index-g_t_0040math_007bM_002fM_002fm_007d-system-56"></a> Compute utilization, response time, average number of requests in service and throughput for a M/M/m queue, a queueing system with m identical service centers connected to a single queue. @@ -1690,7 +1724,7 @@ and Markov Chains: Modeling and Performance Evaluation with Computer Science Applications</cite>, Wiley, 1998, Section 6.5. - <p><a name="index-Bolch_002c-G_002e-54"></a><a name="index-Greiner_002c-S_002e-55"></a><a name="index-de-Meer_002c-H_002e-56"></a><a name="index-Trivedi_002c-K_002e-57"></a> + <p><a name="index-Bolch_002c-G_002e-57"></a><a name="index-Greiner_002c-S_002e-58"></a><a name="index-de-Meer_002c-H_002e-59"></a><a name="index-Trivedi_002c-K_002e-60"></a> <!-- M/M/inf --> <div class="node"> <a name="The-M%2fM%2finf-System"></a> @@ -1713,7 +1747,7 @@ <p><a name="doc_002dqnmminf"></a> <div class="defun"> -— 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-58"></a></var><br> +— 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-61"></a></var><br> <blockquote> <p>Compute utilization, response time, average number of requests and throughput for a M/M/\infty queue. This is a system with an @@ -1721,7 +1755,7 @@ system is always stable, regardless the values of the arrival and service rates. - <p><a name="index-g_t_0040math_007bM_002fM_002f_007dinf-system-59"></a> + <p><a name="index-g_t_0040math_007bM_002fM_002f_007dinf-system-62"></a> <p><strong>INPUTS</strong> @@ -1739,7 +1773,7 @@ different from the utilization, which in the case of M/M/\infty centers is always zero. - <p><a name="index-traffic-intensity-60"></a> + <p><a name="index-traffic-intensity-63"></a> <br><dt><var>R</var><dd>Service center response time. <br><dt><var>Q</var><dd>Average number of requests in the system (which is equal to the @@ -1767,7 +1801,7 @@ and Markov Chains: Modeling and Performance Evaluation with Computer Science Applications</cite>, Wiley, 1998, Section 6.4. - <p><a name="index-Bolch_002c-G_002e-61"></a><a name="index-Greiner_002c-S_002e-62"></a><a name="index-de-Meer_002c-H_002e-63"></a><a name="index-Trivedi_002c-K_002e-64"></a> + <p><a name="index-Bolch_002c-G_002e-64"></a><a name="index-Greiner_002c-S_002e-65"></a><a name="index-de-Meer_002c-H_002e-66"></a><a name="index-Trivedi_002c-K_002e-67"></a> <!-- M/M/1/k --> <div class="node"> <a name="The-M%2fM%2f1%2fK-System"></a> @@ -1791,9 +1825,9 @@ <p><a name="doc_002dqnmm1k"></a> <div class="defun"> -— 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-65"></a></var><br> +— 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-68"></a></var><br> <blockquote> - <p><a name="index-g_t_0040math_007bM_002fM_002f1_002fK_007d-system-66"></a> + <p><a name="index-g_t_0040math_007bM_002fM_002f1_002fK_007d-system-69"></a> Compute utilization, response time, average number of requests and throughput for a M/M/1/K finite capacity system. In a M/M/1/K queue there is a single server; the maximum number of @@ -1860,9 +1894,9 @@ <p><a name="doc_002dqnmmmk"></a> <div class="defun"> -— 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-67"></a></var><br> +— 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-70"></a></var><br> <blockquote> - <p><a name="index-g_t_0040math_007bM_002fM_002fm_002fK_007d-system-68"></a> + <p><a name="index-g_t_0040math_007bM_002fM_002fm_002fK_007d-system-71"></a> Compute utilization, response time, average number of requests and throughput for a M/M/m/K finite capacity system. In a M/M/m/K system there are m \geq 1 identical service @@ -1920,7 +1954,7 @@ and Markov Chains: Modeling and Performance Evaluation with Computer Science Applications</cite>, Wiley, 1998, Section 6.6. - <p><a name="index-Bolch_002c-G_002e-69"></a><a name="index-Greiner_002c-S_002e-70"></a><a name="index-de-Meer_002c-H_002e-71"></a><a name="index-Trivedi_002c-K_002e-72"></a> + <p><a name="index-Bolch_002c-G_002e-72"></a><a name="index-Greiner_002c-S_002e-73"></a><a name="index-de-Meer_002c-H_002e-74"></a><a name="index-Trivedi_002c-K_002e-75"></a> <!-- Approximate M/M/m --> <div class="node"> @@ -1942,9 +1976,9 @@ <p><a name="doc_002dqnammm"></a> <div class="defun"> -— 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-73"></a></var><br> +— 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-76"></a></var><br> <blockquote> - <p><a name="index-Asymmetric-_0040math_007bM_002fM_002fm_007d-system-74"></a> + <p><a name="index-Asymmetric-_0040math_007bM_002fM_002fm_007d-system-77"></a> Compute <em>approximate</em> utilization, response time, average number of requests in service and throughput for an asymmetric M/M/m queue. In this system there are m different service centers @@ -1991,7 +2025,7 @@ and Markov Chains: Modeling and Performance Evaluation with Computer Science Applications</cite>, Wiley, 1998 - <p><a name="index-Bolch_002c-G_002e-75"></a><a name="index-Greiner_002c-S_002e-76"></a><a name="index-de-Meer_002c-H_002e-77"></a><a name="index-Trivedi_002c-K_002e-78"></a> + <p><a name="index-Bolch_002c-G_002e-78"></a><a name="index-Greiner_002c-S_002e-79"></a><a name="index-de-Meer_002c-H_002e-80"></a><a name="index-Trivedi_002c-K_002e-81"></a> <div class="node"> <a name="The-M%2fG%2f1-System"></a> <a name="The-M_002fG_002f1-System"></a> @@ -2007,9 +2041,9 @@ <p><a name="doc_002dqnmg1"></a> <div class="defun"> -— 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-79"></a></var><br> +— 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-82"></a></var><br> <blockquote> - <p><a name="index-g_t_0040math_007bM_002fG_002f1_007d-system-80"></a> + <p><a name="index-g_t_0040math_007bM_002fG_002f1_007d-system-83"></a> Compute utilization, response time, average number of requests and throughput for a M/G/1 system. The service time distribution is described by its mean <var>xavg</var>, and by its second moment @@ -2066,9 +2100,9 @@ <p><a name="doc_002dqnmh1"></a> <div class="defun"> -— 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-81"></a></var><br> +— 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-84"></a></var><br> <blockquote> - <p><a name="index-g_t_0040math_007bM_002fH_005fm_002f1_007d-system-82"></a> + <p><a name="index-g_t_0040math_007bM_002fH_005fm_002f1_007d-system-85"></a> Compute utilization, response time, average number of requests and throughput for a M/H_m/1 system. In this system, the customer service times have hyper-exponential distribution: @@ -2150,7 +2184,7 @@ <li><a accesskey="6" href="#Utility-functions">Utility functions</a>: Utility functions to compute miscellaneous quantities </ul> -<p><a name="index-queueing-networks-83"></a> +<p><a name="index-queueing-networks-86"></a> <!-- INTRODUCTION --> <div class="node"> <a name="Introduction-to-QNs"></a> @@ -2411,13 +2445,13 @@ <p><a name="doc_002dqnmknode"></a> <div class="defun"> -— Function File: <var>Q</var> = <b>qnmknode</b> (<var>"m/m/m-fcfs", S</var>)<var><a name="index-qnmknode-84"></a></var><br> -— Function File: <var>Q</var> = <b>qnmknode</b> (<var>"m/m/m-fcfs", S, m</var>)<var><a name="index-qnmknode-85"></a></var><br> -— Function File: <var>Q</var> = <b>qnmknode</b> (<var>"m/m/1-lcfs-pr", S</var>)<var><a name="index-qnmknode-86"></a></var><br> -— Function File: <var>Q</var> = <b>qnmknode</b> (<var>"-/g/1-ps", S</var>)<var><a name="index-qnmknode-87"></a></var><br> -— Function File: <var>Q</var> = <b>qnmknode</b> (<var>"-/g/1-ps", S, s2</var>)<var><a name="index-qnmknode-88"></a></var><br> -— Function File: <var>Q</var> = <b>qnmknode</b> (<var>"-/g/inf", S</var>)<var><a name="index-qnmknode-89"></a></var><br> -— Function File: <var>Q</var> = <b>qnmknode</b> (<var>"-/g/inf", S, s2</var>)<var><a name="index-qnmknode-90"></a></var><br> +— Function File: <var>Q</var> = <b>qnmknode</b> (<var>"m/m/m-fcfs", S</var>)<var><a name="index-qnmknode-87"></a></var><br> +— Function File: <var>Q</var> = <b>qnmknode</b> (<var>"m/m/m-fcfs", S, m</var>)<var><a name="index-qnmknode-88"></a></var><br> +— Function File: <var>Q</var> = <b>qnmknode</b> (<var>"m/m/1-lcfs-pr", S</var>)<var><a name="index-qnmknode-89"></a></var><br> +— Function File: <var>Q</var> = <b>qnmknode</b> (<var>"-/g/1-ps", S</var>)<var><a name="index-qnmknode-90"></a></var><br> +— Function File: <var>Q</var> = <b>qnmknode</b> (<var>"-/g/1-ps", S, s2</var>)<var><a name="index-qnmknode-91"></a></var><br> +— Function File: <var>Q</var> = <b>qnmknode</b> (<var>"-/g/inf", S</var>)<var><a name="index-qnmknode-92"></a></var><br> +— Function File: <var>Q</var> = <b>qnmknode</b> (<var>"-/g/inf", S, s2</var>)<var><a name="index-qnmknode-93"></a></var><br> <blockquote> <p>Creates a node; this function can be used together with <code>qnsolve</code>. It is possible to create either single-class nodes @@ -2486,10 +2520,10 @@ <p><a name="doc_002dqnsolve"></a> <div class="defun"> -— 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-91"></a></var><br> -— 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-92"></a></var><br> -— 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-93"></a></var><br> -— 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-94"></a></var><br> +— 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-94"></a></var><br> +— 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-95"></a></var><br> +— 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-96"></a></var><br> +— 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-97"></a></var><br> <blockquote> <p>General evaluator of QN models. Networks can be open, closed or mixed; single as well as multiclass networks are supported. @@ -2667,11 +2701,11 @@ <p><a name="doc_002dqnjackson"></a> <div class="defun"> -— 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-95"></a></var><br> -— 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-96"></a></var><br> -— Function File: <var>pr</var> = <b>qnjackson</b> (<var>lambda, S, P, m, k</var>)<var><a name="index-qnjackson-97"></a></var><br> +— 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-98"></a></var><br> +— 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-99"></a></var><br> +— Function File: <var>pr</var> = <b>qnjackson</b> (<var>lambda, S, P, m, k</var>)<var><a name="index-qnjackson-100"></a></var><br> <blockquote> - <p><a name="index-open-network_002c-single-class-98"></a><a name="index-Jackson-network-99"></a> + <p><a name="index-open-network_002c-single-class-101"></a><a name="index-Jackson-network-102"></a> With three or four input parameters, this function computes the steady-state occupancy probabilities for a Jackson network. With five input parameters, this function computes the steady-state probability @@ -2753,7 +2787,7 @@ Performance Evaluation with Computer Science Applications</cite>, Wiley, 1998, pp. 284–287. - <p><a name="index-Bolch_002c-G_002e-100"></a><a name="index-Greiner_002c-S_002e-101"></a><a name="index-de-Meer_002c-H_002e-102"></a><a name="index-Trivedi_002c-K_002e-103"></a> + <p><a name="index-Bolch_002c-G_002e-103"></a><a name="index-Greiner_002c-S_002e-104"></a><a name="index-de-Meer_002c-H_002e-105"></a><a name="index-Trivedi_002c-K_002e-106"></a> <h4 class="subsection">6.3.2 The Convolution Algorithm</h4> @@ -2787,10 +2821,10 @@ <p><a name="doc_002dqnconvolution"></a> <div class="defun"> -— 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-104"></a></var><br> -— 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-105"></a></var><br> +— 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-107"></a></var><br> +— 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-108"></a></var><br> <blockquote> - <p><a name="index-closed-network-106"></a><a name="index-normalization-constant-107"></a><a name="index-convolution-algorithm-108"></a> + <p><a name="index-closed-network-109"></a><a name="index-normalization-constant-110"></a><a name="index-convolution-algorithm-111"></a> This function implements the <em>convolution algorithm</em> for computing steady-state performance measures of product-form, single-class closed queueing networks. Load-independent service @@ -2881,20 +2915,20 @@ 16, number 9, september 1973, pp. 527–531. <a href="http://doi.acm.org/10.1145/362342.362345">http://doi.acm.org/10.1145/362342.362345</a> - <p><a name="index-Buzen_002c-J_002e-P_002e-109"></a> + <p><a name="index-Buzen_002c-J_002e-P_002e-112"></a> This implementation is based on G. Bolch, S. Greiner, H. de Meer and K. Trivedi, <cite>Queueing Networks and Markov Chains: Modeling and Performance Evaluation with Computer Science Applications</cite>, Wiley, 1998, pp. 313–317. - <p><a name="index-Bolch_002c-G_002e-110"></a><a name="index-Greiner_002c-S_002e-111"></a><a name="index-de-Meer_002c-H_002e-112"></a><a name="index-Trivedi_002c-K_002e-113"></a> + <p><a name="index-Bolch_002c-G_002e-113"></a><a name="index-Greiner_002c-S_002e-114"></a><a name="index-de-Meer_002c-H_002e-115"></a><a name="index-Trivedi_002c-K_002e-116"></a> <!-- Convolution for load-dependent service centers --> <a name="doc_002dqnconvolutionld"></a> <div class="defun"> -— 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-114"></a></var><br> +— 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-117"></a></var><br> <blockquote> - <p><a name="index-closed-network-115"></a><a name="index-normalization-constant-116"></a><a name="index-convolution-algorithm-117"></a><a name="index-load_002ddependent-service-center-118"></a> + <p><a name="index-closed-network-118"></a><a name="index-normalization-constant-119"></a><a name="index-convolution-algorithm-120"></a><a name="index-load_002ddependent-service-center-121"></a> This function implements the <em>convolution algorithm</em> for product-form, single-class closed queueing networks with general load-dependent service centers. @@ -2954,7 +2988,7 @@ Purdue University, feb, 1981 (revised). <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> - <p><a name="index-Schwetman_002c-H_002e-119"></a> + <p><a name="index-Schwetman_002c-H_002e-122"></a> M. Reiser, H. Kobayashi, <cite>On The Convolution Algorithm for Separable Queueing Networks</cite>, In Proceedings of the 1976 ACM SIGMETRICS Conference on Computer Performance Modeling Measurement and @@ -2962,7 +2996,7 @@ 1976). SIGMETRICS '76. ACM, New York, NY, pp. 109–117. <a href="http://doi.acm.org/10.1145/800200.806187">http://doi.acm.org/10.1145/800200.806187</a> - <p><a name="index-Reiser_002c-M_002e-120"></a><a name="index-Kobayashi_002c-H_002e-121"></a> + <p><a name="index-Reiser_002c-M_002e-123"></a><a name="index-Kobayashi_002c-H_002e-124"></a> This implementation is based on G. Bolch, S. Greiner, H. de Meer and K. Trivedi, <cite>Queueing Networks and Markov Chains: Modeling and Performance Evaluation with Computer Science Applications</cite>, Wiley, @@ -2974,7 +3008,7 @@ function f_i defined in Schwetman, <code>Some Computational Aspects of Queueing Network Models</code>. - <p><a name="index-Bolch_002c-G_002e-122"></a><a name="index-Greiner_002c-S_002e-123"></a><a name="index-de-Meer_002c-H_002e-124"></a><a name="index-Trivedi_002c-K_002e-125"></a> + <p><a name="index-Bolch_002c-G_002e-125"></a><a name="index-Greiner_002c-S_002e-126"></a><a name="index-de-Meer_002c-H_002e-127"></a><a name="index-Trivedi_002c-K_002e-128"></a> <h4 class="subsection">6.3.3 Open networks</h4> @@ -2982,10 +3016,10 @@ <p><a name="doc_002dqnopensingle"></a> <div class="defun"> -— 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-126"></a></var><br> -— 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-127"></a></var><br> +— 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-129"></a></var><br> +— 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-130"></a></var><br> <blockquote> - <p><a name="index-open-network_002c-single-class-128"></a><a name="index-BCMP-network-129"></a> + <p><a name="index-open-network_002c-single-class-131"></a><a name="index-BCMP-network-132"></a> Analyze open, single class BCMP queueing networks. <p>This function works for a subset of BCMP single-class open networks @@ -3078,16 +3112,16 @@ Networks and Markov Chains: Modeling and Performance Evaluation with Computer Science Applications</cite>, Wiley, 1998. - <p><a name="index-Bolch_002c-G_002e-130"></a><a name="index-Greiner_002c-S_002e-131"></a><a name="index-de-Meer_002c-H_002e-132"></a><a name="index-Trivedi_002c-K_002e-133"></a> + <p><a name="index-Bolch_002c-G_002e-133"></a><a name="index-Greiner_002c-S_002e-134"></a><a name="index-de-Meer_002c-H_002e-135"></a><a name="index-Trivedi_002c-K_002e-136"></a> <!-- Open network with multiple classes --> <p><a name="doc_002dqnopenmulti"></a> <div class="defun"> -— 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-134"></a></var><br> -— 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-135"></a></var><br> +— 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-137"></a></var><br> +— 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-138"></a></var><br> <blockquote> - <p><a name="index-open-network_002c-multiple-classes-136"></a> + <p><a name="index-open-network_002c-multiple-classes-139"></a> Exact analysis of open, multiple-class BCMP networks. The network can be made of <em>single-server</em> queueing centers (FCFS, LCFS-PR or PS) or delay centers (IS). This function assumes a network with @@ -3152,7 +3186,7 @@ 1984. <a href="http://www.cs.washington.edu/homes/lazowska/qsp/">http://www.cs.washington.edu/homes/lazowska/qsp/</a>. In particular, see section 7.4.1 ("Open Model Solution Techniques"). - <p><a name="index-Lazowska_002c-E_002e-D_002e-137"></a><a name="index-Zahorjan_002c-J_002e-138"></a><a name="index-Graham_002c-G_002e-S_002e-139"></a><a name="index-Sevcik_002c-K_002e-C_002e-140"></a> + <p><a name="index-Lazowska_002c-E_002e-D_002e-140"></a><a name="index-Zahorjan_002c-J_002e-141"></a><a name="index-Graham_002c-G_002e-S_002e-142"></a><a name="index-Sevcik_002c-K_002e-C_002e-143"></a> <h4 class="subsection">6.3.4 Closed Networks</h4> @@ -3160,11 +3194,11 @@ <p><a name="doc_002dqnclosedsinglemva"></a> <div class="defun"> -— 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-141"></a></var><br> -— 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-142"></a></var><br> -— 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-143"></a></var><br> +— 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-144"></a></var><br> +— 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-145"></a></var><br> +— 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-146"></a></var><br> <blockquote> - <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-144"></a><a name="index-closed-network_002c-single-class-145"></a><a name="index-normalization-constant-146"></a> + <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-147"></a><a name="index-closed-network_002c-single-class-148"></a><a name="index-normalization-constant-149"></a> Analyze closed, single class queueing networks using the exact Mean Value Analysis (MVA) algorithm. The following queueing disciplines are supported: FCFS, LCFS-PR, PS and IS (Infinite Server). This @@ -3265,7 +3299,7 @@ Multichain Queuing Networks</cite>, Journal of the ACM, vol. 27, n. 2, April 1980, pp. 313–322. <a href="http://doi.acm.org/10.1145/322186.322195">http://doi.acm.org/10.1145/322186.322195</a> - <p><a name="index-Reiser_002c-M_002e-147"></a><a name="index-Lavenberg_002c-S_002e-S_002e-148"></a> + <p><a name="index-Reiser_002c-M_002e-150"></a><a name="index-Lavenberg_002c-S_002e-S_002e-151"></a> This implementation is described in R. Jain , <cite>The Art of Computer Systems Performance Analysis</cite>, Wiley, 1991, p. 577. Multi-server nodes <!-- and the computation of @math{G(N)}, --> @@ -3274,15 +3308,15 @@ Performance Evaluation with Computer Science Applications</cite>, Wiley, 1998, Section 8.2.1, "Single Class Queueing Networks". - <p><a name="index-Jain_002c-R_002e-149"></a><a name="index-Bolch_002c-G_002e-150"></a><a name="index-Greiner_002c-S_002e-151"></a><a name="index-de-Meer_002c-H_002e-152"></a><a name="index-Trivedi_002c-K_002e-153"></a> + <p><a name="index-Jain_002c-R_002e-152"></a><a name="index-Bolch_002c-G_002e-153"></a><a name="index-Greiner_002c-S_002e-154"></a><a name="index-de-Meer_002c-H_002e-155"></a><a name="index-Trivedi_002c-K_002e-156"></a> <!-- MVA for single class, closed networks with load dependent servers --> <a name="doc_002dqnclosedsinglemvald"></a> <div class="defun"> -— 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-154"></a></var><br> -— 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-155"></a></var><br> +— 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-157"></a></var><br> +— 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-158"></a></var><br> <blockquote> - <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-156"></a><a name="index-closed-network_002c-single-class-157"></a><a name="index-load_002ddependent-service-center-158"></a> + <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-159"></a><a name="index-closed-network_002c-single-class-160"></a><a name="index-load_002ddependent-service-center-161"></a> Exact MVA algorithm for closed, single class queueing networks with load-dependent service centers. This function supports FCFS, LCFS-PR, PS and IS nodes. For networks with only fixed-rate @@ -3340,15 +3374,15 @@ 1998, Section 8.2.4.1, “Networks with Load-Deèpendent Service: Closed Networks”. - <p><a name="index-Bolch_002c-G_002e-159"></a><a name="index-Greiner_002c-S_002e-160"></a><a name="index-de-Meer_002c-H_002e-161"></a><a name="index-Trivedi_002c-K_002e-162"></a> + <p><a name="index-Bolch_002c-G_002e-162"></a><a name="index-Greiner_002c-S_002e-163"></a><a name="index-de-Meer_002c-H_002e-164"></a><a name="index-Trivedi_002c-K_002e-165"></a> <!-- CMVA for single class, closed networks with a single load dependent servers --> <a name="doc_002dqncmva"></a> <div class="defun"> -— 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-163"></a></var><br> -— 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-164"></a></var><br> +— 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-166"></a></var><br> +— 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-167"></a></var><br> <blockquote> - <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-165"></a><a name="index-CMVA-166"></a> + <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-168"></a><a name="index-CMVA-169"></a> Implementation of the Conditional MVA (CMVA) algorithm, a numerically stable variant of MVA for load-dependent servers. CMVA is described in G. Casale, <cite>A Note on Stable Flow-Equivalent Aggregation in @@ -3402,19 +3436,19 @@ closed networks</cite>. Queueing Syst. Theory Appl., 60:193–202, December 2008. - <p><a name="index-Casale_002c-G_002e-167"></a> + <p><a name="index-Casale_002c-G_002e-170"></a> <!-- Approximate MVA for single class, closed networks --> <p><a name="doc_002dqnclosedsinglemvaapprox"></a> <div class="defun"> -— 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-168"></a></var><br> -— 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-169"></a></var><br> -— 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-170"></a></var><br> -— 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-171"></a></var><br> -— 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-172"></a></var><br> +— 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-171"></a></var><br> +— 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-172"></a></var><br> +— 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-173"></a></var><br> +— 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-174"></a></var><br> +— 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-175"></a></var><br> <blockquote> - <p><a name="index-Mean-Value-Analysys-_0028MVA_0029_002c-approximate-173"></a><a name="index-Approximate-MVA-174"></a><a name="index-Closed-network_002c-single-class-175"></a><a name="index-Closed-network_002c-approximate-analysis-176"></a> + <p><a name="index-Mean-Value-Analysys-_0028MVA_0029_002c-approximate-176"></a><a name="index-Approximate-MVA-177"></a><a name="index-Closed-network_002c-single-class-178"></a><a name="index-Closed-network_002c-approximate-analysis-179"></a> Analyze closed, single class queueing networks using the Approximate Mean Value Analysis (MVA) algorithm. This function is based on approximating the number of customers seen at center k when a @@ -3493,20 +3527,20 @@ 1984. <a href="http://www.cs.washington.edu/homes/lazowska/qsp/">http://www.cs.washington.edu/homes/lazowska/qsp/</a>. In particular, see section 6.4.2.2 ("Approximate Solution Techniques"). - <p><a name="index-Lazowska_002c-E_002e-D_002e-177"></a><a name="index-Zahorjan_002c-J_002e-178"></a><a name="index-Graham_002c-G_002e-S_002e-179"></a><a name="index-Sevcik_002c-K_002e-C_002e-180"></a> + <p><a name="index-Lazowska_002c-E_002e-D_002e-180"></a><a name="index-Zahorjan_002c-J_002e-181"></a><a name="index-Graham_002c-G_002e-S_002e-182"></a><a name="index-Sevcik_002c-K_002e-C_002e-183"></a> <!-- MVA for multiple class, closed networks --> <p><a name="doc_002dqnclosedmultimva"></a> <div class="defun"> -— 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-181"></a></var><br> -— 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-182"></a></var><br> -— 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-183"></a></var><br> -— 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-184"></a></var><br> -— 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-185"></a></var><br> -— 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-186"></a></var><br> +— 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-184"></a></var><br> +— 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-185"></a></var><br> +— 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-186"></a></var><br> +— 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-187"></a></var><br> +— 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-188"></a></var><br> +— 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-189"></a></var><br> <blockquote> - <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-187"></a><a name="index-closed-network_002c-multiple-classes-188"></a> + <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-190"></a><a name="index-closed-network_002c-multiple-classes-191"></a> Analyze closed, multiclass queueing networks with K service centers and C independent customer classes (chains) using the Mean Value Analysys (MVA) algorithm. @@ -3636,7 +3670,7 @@ Multichain Queuing Networks</cite>, Journal of the ACM, vol. 27, n. 2, April 1980, pp. 313–322. <a href="http://doi.acm.org/10.1145/322186.322195">http://doi.acm.org/10.1145/322186.322195</a> - <p><a name="index-Reiser_002c-M_002e-189"></a><a name="index-Lavenberg_002c-S_002e-S_002e-190"></a> + <p><a name="index-Reiser_002c-M_002e-192"></a><a name="index-Lavenberg_002c-S_002e-S_002e-193"></a> This implementation is based on G. Bolch, S. Greiner, H. de Meer and K. Trivedi, <cite>Queueing Networks and Markov Chains: Modeling and Performance Evaluation with Computer Science Applications</cite>, Wiley, @@ -3646,18 +3680,18 @@ 1984. <a href="http://www.cs.washington.edu/homes/lazowska/qsp/">http://www.cs.washington.edu/homes/lazowska/qsp/</a>. In particular, see section 7.4.2.1 ("Exact Solution Techniques"). - <p><a name="index-Bolch_002c-G_002e-191"></a><a name="index-Greiner_002c-S_002e-192"></a><a name="index-de-Meer_002c-H_002e-193"></a><a name="index-Trivedi_002c-K_002e-194"></a><a name="index-Lazowska_002c-E_002e-D_002e-195"></a><a name="index-Zahorjan_002c-J_002e-196"></a><a name="index-Graham_002c-G_002e-S_002e-197"></a><a name="index-Sevcik_002c-K_002e-C_002e-198"></a> + <p><a name="index-Bolch_002c-G_002e-194"></a><a name="index-Greiner_002c-S_002e-195"></a><a name="index-de-Meer_002c-H_002e-196"></a><a name="index-Trivedi_002c-K_002e-197"></a><a name="index-Lazowska_002c-E_002e-D_002e-198"></a><a name="index-Zahorjan_002c-J_002e-199"></a><a name="index-Graham_002c-G_002e-S_002e-200"></a><a name="index-Sevcik_002c-K_002e-C_002e-201"></a> <!-- Approximate MVA, with Bard-Schweitzer approximation --> <a name="doc_002dqnclosedmultimvaapprox"></a> <div class="defun"> -— 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-199"></a></var><br> -— 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-200"></a></var><br> -— 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-201"></a></var><br> -— 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-202"></a></var><br> -— 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-203"></a></var><br> +— 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-202"></a></var><br> +— 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-203"></a></var><br> +— 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-204"></a></var><br> +— 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-205"></a></var><br> +— 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-206"></a></var><br> <blockquote> - <p><a name="index-Mean-Value-Analysys-_0028MVA_0029_002c-approximate-204"></a><a name="index-Approximate-MVA-205"></a><a name="index-Closed-network_002c-multiple-classes-206"></a><a name="index-Closed-network_002c-approximate-analysis-207"></a> + <p><a name="index-Mean-Value-Analysys-_0028MVA_0029_002c-approximate-207"></a><a name="index-Approximate-MVA-208"></a><a name="index-Closed-network_002c-multiple-classes-209"></a><a name="index-Closed-network_002c-approximate-analysis-210"></a> Analyze closed, multiclass queueing networks with K service centers and C customer classes using the approximate Mean Value Analysys (MVA) algorithm. @@ -3742,12 +3776,12 @@ proc. 4th Int. Symp. on Modelling and Performance Evaluation of Computer Systems, feb. 1979, pp. 51–62. - <p><a name="index-Bard_002c-Y_002e-208"></a> + <p><a name="index-Bard_002c-Y_002e-211"></a> P. Schweitzer, <cite>Approximate Analysis of Multiclass Closed Networks of Queues</cite>, Proc. Int. Conf. on Stochastic Control and Optimization, jun 1979, pp. 25–29. - <p><a name="index-Schweitzer_002c-P_002e-209"></a> + <p><a name="index-Schweitzer_002c-P_002e-212"></a> This implementation is based on Edward D. Lazowska, John Zahorjan, G. Scott Graham, and Kenneth C. Sevcik, <cite>Quantitative System Performance: Computer System Analysis Using Queueing Network Models</cite>, @@ -3758,7 +3792,7 @@ described above, as it computes the average response times R instead of the residence times. - <p><a name="index-Lazowska_002c-E_002e-D_002e-210"></a><a name="index-Zahorjan_002c-J_002e-211"></a><a name="index-Graham_002c-G_002e-S_002e-212"></a><a name="index-Sevcik_002c-K_002e-C_002e-213"></a> + <p><a name="index-Lazowska_002c-E_002e-D_002e-213"></a><a name="index-Zahorjan_002c-J_002e-214"></a><a name="index-Graham_002c-G_002e-S_002e-215"></a><a name="index-Sevcik_002c-K_002e-C_002e-216"></a> <h4 class="subsection">6.3.5 Mixed Networks</h4> @@ -3766,9 +3800,9 @@ <p><a name="doc_002dqnmix"></a> <div class="defun"> -— 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-214"></a></var><br> +— 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-217"></a></var><br> <blockquote> - <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-215"></a><a name="index-mixed-network-216"></a> + <p><a name="index-Mean-Value-Analysys-_0028MVA_0029-218"></a><a name="index-mixed-network-219"></a> Solution of mixed queueing networks through MVA. The network consists of K service centers (single-server or delay centers) and C independent customer chains. Both open and closed chains @@ -3859,14 +3893,14 @@ Note that in this function we compute the mean response time R instead of the mean residence time as in the reference. - <p><a name="index-Lazowska_002c-E_002e-D_002e-217"></a><a name="index-Zahorjan_002c-J_002e-218"></a><a name="index-Graham_002c-G_002e-S_002e-219"></a><a name="index-Sevcik_002c-K_002e-C_002e-220"></a> + <p><a name="index-Lazowska_002c-E_002e-D_002e-220"></a><a name="index-Zahorjan_002c-J_002e-221"></a><a name="index-Graham_002c-G_002e-S_002e-222"></a><a name="index-Sevcik_002c-K_002e-C_002e-223"></a> Herb Schwetman, <cite>Implementing the Mean Value Algorithm for the Solution of Queueing Network Models</cite>, Technical Report CSD-TR-355, Department of Computer Sciences, Purdue University, feb 15, 1982, available at <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%... [truncated message content] |