<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=89.110.26.0%2F24</id>
	<title>formulasearchengine - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=89.110.26.0%2F24"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/wiki/Special:Contributions/89.110.26.0/24"/>
	<updated>2026-07-09T11:35:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.47.0-wmf.7</generator>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Spaghettification&amp;diff=23991</id>
		<title>Spaghettification</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Spaghettification&amp;diff=23991"/>
		<updated>2013-12-07T02:07:25Z</updated>

		<summary type="html">&lt;p&gt;89.110.26.70: /* A simple example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In [[queueing theory]], a discipline within the mathematical [[theory of probability]], &#039;&#039;&#039;mean value analysis (MVA)&#039;&#039;&#039; is a recursive technique for computing [[expected value|expected]] queue lengths, waiting time at queueing nodes and throughput in equilibrium for a closed separable system of queues. The first approximate techniques were published indepdenently by Schweitzer&amp;lt;ref name=&amp;quot;Schweitzer&amp;quot; /&amp;gt; and Bard,&amp;lt;ref&amp;gt;{{cite journal | title = Some Extensions to Multiclass Queueing Network Analysis | first = Yonathan | last = Bard | year = 1979 | journal = Proceedings of the Third International Symposium on Modelling and Performance Evaluation of Computer Systems: Performance of Computer Systems | pages = 51–62 | isbn = 0-444-85332-4 | publisher = North-Holland Publishing Co.}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite doi|10.1007/978-1-4419-6472-4_13}}&amp;lt;/ref&amp;gt; followed later by an exact version by Lavenberg and Reiser published in 1980.&amp;lt;ref&amp;gt;{{cite doi|10.1145/322186.322195}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite doi|10.1007/3-540-46506-5_22}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is based on the [[arrival theorem]], which states that when one customer in an &#039;&#039;M&#039;&#039;-customer closed system arrives at a service facility he/she observes the rest of the system to be in the equilibrium state for a system with &#039;&#039;M&#039;&#039;&amp;amp;nbsp;&amp;amp;minus;&amp;amp;nbsp;1 customers.&lt;br /&gt;
&lt;br /&gt;
==Problem setup==&lt;br /&gt;
Consider a closed queueing network of &#039;&#039;K&#039;&#039; [[M/M/1 queue]]s, with &#039;&#039;M&#039;&#039; customers circulating in the system. To compute the mean queue length and waiting time at each of the nodes and throughput of the system we use an iterative algorithm starting with a network with 0 customers.&lt;br /&gt;
&lt;br /&gt;
Write &#039;&#039;μ&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;i&#039;&#039;&amp;lt;/sub&amp;gt; for the service rate at node &#039;&#039;i&#039;&#039; and &#039;&#039;P&#039;&#039; for the customer routing matrix where element &#039;&#039;p&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;ij&#039;&#039;&amp;lt;/sub&amp;gt; denotes the probability that a customer finishing service at node &#039;&#039;i&#039;&#039; moves to node &#039;&#039;j&#039;&#039; for service. To use the algorithm we first compute the visit ratio row vector &#039;&#039;&#039;v&#039;&#039;&#039;, a vector such that &#039;&#039;&#039;v&#039;&#039;&#039;&amp;amp;nbsp;=&amp;amp;nbsp;&#039;&#039;&#039;v&#039;&#039;&#039;&amp;amp;nbsp;P.&lt;br /&gt;
&lt;br /&gt;
Now write &#039;&#039;L&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;i&#039;&#039;&amp;lt;/sub&amp;gt;(&#039;&#039;n&#039;&#039;) for the mean number of customer at queue &#039;&#039;i&#039;&#039; when there are a total of &#039;&#039;n&#039;&#039; customers in the system (this includes the job currently being served at queue &#039;&#039;i&#039;&#039;) and &#039;&#039;W&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;j&#039;&#039;&amp;lt;/sub&amp;gt;(&#039;&#039;n&#039;&#039;) for the mean time spent by a customer in queue &#039;&#039;i&#039;&#039; when there are a total of &#039;&#039;n&#039;&#039; customers in the system. Denote the throughput of a system with &#039;&#039;m&#039;&#039; customers by &#039;&#039;λ&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;m&#039;&#039;&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Algorithm==&lt;br /&gt;
The algorithm&amp;lt;ref&amp;gt;{{cite book |first=Sanjay K.|last=Bose|title=An introduction to queueing systems|publisher=Springer|year=2001|isbn=0-306-46734-8|url=http://books.google.com/books?id=39-jISti_zkC|page=174}}&amp;lt;/ref&amp;gt; starts with an empty network (zero customers), then increases the number of customers by 1 at each iteration until there are the required number (&#039;&#039;M&#039;&#039;) of customers in the system.&lt;br /&gt;
&lt;br /&gt;
To initialise, set &#039;&#039;L&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;k&#039;&#039;&amp;lt;/sub&amp;gt;(0)&amp;amp;nbsp;=&amp;amp;nbsp;0 for &#039;&#039;k&#039;&#039;&amp;amp;nbsp;=&amp;amp;nbsp;1,...,&#039;&#039;K&#039;&#039;. (This sets the average queue length in a system with no customers to zero at all nodes.)&lt;br /&gt;
&lt;br /&gt;
Repeat for &#039;&#039;m&#039;&#039;&amp;amp;nbsp;=&amp;amp;nbsp;1,...,&#039;&#039;M&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:1. For &#039;&#039;k&#039;&#039;&amp;amp;nbsp;=&amp;amp;nbsp;1, ..., &#039;&#039;K&#039;&#039; compute the waiting time at each node using the arrival theorem&lt;br /&gt;
:::&amp;lt;math&amp;gt;W_k(m) = \frac{L_k\left(m-1\right)+1}{\mu_k}.&amp;lt;/math&amp;gt;&lt;br /&gt;
:2. Then compute the system throughput using Little&#039;s law&lt;br /&gt;
:::&amp;lt;math&amp;gt;\lambda_m=\frac{m}{\sum_{k=1}^K W_k(m) v_k}.&amp;lt;/math&amp;gt;&lt;br /&gt;
:3. Finally, use little&#039;s law applied to each queue to compute the mean queue lengths for &#039;&#039;k&#039;&#039;&amp;amp;nbsp;=&amp;amp;nbsp;1, ..., &#039;&#039;K&#039;&#039;&lt;br /&gt;
:::&amp;lt;math&amp;gt;L_k(m)=v_k \lambda_m W_k(m).&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
End repeat.&lt;br /&gt;
&lt;br /&gt;
==Schweitzer&#039;s approximation==&lt;br /&gt;
&lt;br /&gt;
Schweitzer&#039;s approximation estimates the average number of jobs at node &#039;&#039;k&#039;&#039; to be&amp;lt;ref name=&amp;quot;Schweitzer&amp;quot;&amp;gt;{{cite doi|10.1007/BFb0013865}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal | last = Schweitzer | first = Paul | title = Approximate analysis of multiclass closed networks of queues | journal = Proceedings of International Conference on Stochastic Control and Optimization | year = 1979}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_k(m-1) \approx \frac{m-1}{m} L_k(m)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which from the above formulas yields [[fixed-point iteration|fixed-point relationships]] which can be solved numerically. This iterative approach is typically faster than the recursive approach of MVA.&amp;lt;ref&amp;gt;{{cite doi|10.2200/S00282ED1V01Y201005CSL002}}&amp;lt;/ref&amp;gt;{{rp|38}}&lt;br /&gt;
&lt;br /&gt;
===Pseudo-code===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
set &#039;&#039;L&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;k&#039;&#039;&amp;lt;/sub&amp;gt;(&#039;&#039;m&#039;&#039;) = &#039;&#039;M&#039;&#039;/&#039;&#039;K&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
repeat until convergence:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;math&amp;gt;\lambda_m = \frac{m}{\sum_{k=1}^K \frac{\frac{m-1}{m}L_k(m) + 1}{\mu_k} v_k}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&amp;lt;math&amp;gt;L_k(m) = v_k \lambda_m \frac{\frac{m-1}{m}L_k(m) + 1}{\mu_k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Multiclass networks==&lt;br /&gt;
&lt;br /&gt;
For networks with a single customer class the MVA algorithm is very fast and time taken grows linearly with the number of customers and number of queues. However, the number of multiplications and additions required for MVA grows exponentially with the number of customer classes. Practically, the algorithm works for 3-4 customer classes.&amp;lt;ref name=&amp;quot;casale&amp;quot;&amp;gt;{{cite doi|10.1016/j.peva.2010.12.009}}&amp;lt;/ref&amp;gt; The &#039;&#039;method of moments&#039;&#039; is an exact method which required log-quadratic time and can solve models with up to 10 classes of customers.&amp;lt;ref name=&amp;quot;casale&amp;quot; /&amp;gt; Approximate algorithms have also been proposed with lower complexity.&amp;lt;ref&amp;gt;{{cite doi|10.1145/79147.214074}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
&lt;br /&gt;
The mean value analysis algorithm has been applied to a class of [[PEPA]] models describing [[queueing network]]s and the performance of a [[key distribution center]].&amp;lt;ref&amp;gt;{{cite doi|10.1093/comjnl/bxq064}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
*[http://jmt.sourceforge.net/JMVA.html JMVA], a tool written in [[Java (programming language)|Java]] which implements MVA.&amp;lt;ref&amp;gt;{{cite doi|10.1145/1530873.1530877}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://www.netlab.tkk.fi/opetus/s383143/kalvot/E_qnets.pdf J. Virtamo: Queuing networks]. Handout from Helsinki Tech gives good overview of Jackson&#039;s Theorem and MVA.&lt;br /&gt;
*[http://www.cs.utexas.edu/users/lam/Vita/Jpapers/Lam83.pdf Simon Lam: A simple derivation of the MVA algorithm]. Shows relationship between [[Buzen&#039;s algorithm]] and MVA.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
{{Queueing theory}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Stochastic processes]]&lt;br /&gt;
[[Category:Queueing theory]]&lt;/div&gt;</summary>
		<author><name>89.110.26.70</name></author>
	</entry>
</feed>