<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://orsj-ml.org/orwiki/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fujimoto</id>
	<title>ORWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://orsj-ml.org/orwiki/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fujimoto"/>
	<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Fujimoto"/>
	<updated>2026-04-09T09:26:19Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=11227</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=11227"/>
		<updated>2012-09-14T11:37:30Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: 数式表示が機能するようになったのでお知らせ削除&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= '''OR事典Wiki''' =&lt;br /&gt;
&lt;br /&gt;
OR事典Wiki [[ORWiki:ORWikiについて|ORWiki]] にようこそ！&lt;br /&gt;
&lt;br /&gt;
このページは，&lt;br /&gt;
[https://orsj.org 公益社団法人 日本オペレーションズ・リサーチ学会]&lt;br /&gt;
[[OR事典編集委員会]]&lt;br /&gt;
によって作成されております．&lt;br /&gt;
&lt;br /&gt;
== 目次 ==&lt;br /&gt;
&lt;br /&gt;
[[基礎編：大項目一覧|基礎編]]&lt;br /&gt;
&lt;br /&gt;
[[用語編]]&lt;br /&gt;
&lt;br /&gt;
[[事例編]]&lt;br /&gt;
&lt;br /&gt;
[https://orsj.org/wp-content/wiki/shiryou 資料編]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[ORWiki:著作権|著作権]]について&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=11226</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=11226"/>
		<updated>2012-09-14T10:44:20Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: お知らせ追記&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= '''OR事典Wiki''' =&lt;br /&gt;
&lt;br /&gt;
OR事典Wiki [[ORWiki:ORWikiについて|ORWiki]] にようこそ！&lt;br /&gt;
&lt;br /&gt;
このページは，&lt;br /&gt;
[https://orsj.org 公益社団法人 日本オペレーションズ・リサーチ学会]&lt;br /&gt;
[[OR事典編集委員会]]&lt;br /&gt;
によって作成されております．&lt;br /&gt;
&lt;br /&gt;
== 目次 ==&lt;br /&gt;
&lt;br /&gt;
[[基礎編：大項目一覧|基礎編]]&lt;br /&gt;
&lt;br /&gt;
[[用語編]]&lt;br /&gt;
&lt;br /&gt;
[[事例編]]&lt;br /&gt;
&lt;br /&gt;
[https://orsj.org/wp-content/wiki/shiryou 資料編]&lt;br /&gt;
&lt;br /&gt;
== お知らせ ==&lt;br /&gt;
現在、ソフトウェアの更新作業に伴い、数式表示が適切に機能しない現象が発生しております。&lt;br /&gt;
お見苦しいところがありますが、あらかじめご了承ください。--2012年9月14日 (金) 19:44 (JST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[ORWiki:著作権|著作権]]について&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=11225</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=11225"/>
		<updated>2012-09-10T11:39:45Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= '''OR事典Wiki''' =&lt;br /&gt;
&lt;br /&gt;
OR事典Wiki [[ORWiki:ORWikiについて|ORWiki]] にようこそ！&lt;br /&gt;
&lt;br /&gt;
このページは，&lt;br /&gt;
[https://orsj.org 公益社団法人 日本オペレーションズ・リサーチ学会]&lt;br /&gt;
[[OR事典編集委員会]]&lt;br /&gt;
によって作成されております．&lt;br /&gt;
&lt;br /&gt;
== '''目　　次''' ==&lt;br /&gt;
&lt;br /&gt;
[[基礎編：大項目一覧|基礎編]]&lt;br /&gt;
&lt;br /&gt;
[[用語編]]&lt;br /&gt;
&lt;br /&gt;
[[事例編]]&lt;br /&gt;
&lt;br /&gt;
[https://orsj.org/wp-content/wiki/shiryou 資料編]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[ORWiki:著作権|著作権]]について&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%BE%85%E3%81%A1%E8%A1%8C%E5%88%97%E3%83%A2%E3%83%87%E3%83%AB_M/M/c&amp;diff=11224</id>
		<title>待ち行列モデル M/M/c</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%BE%85%E3%81%A1%E8%A1%8C%E5%88%97%E3%83%A2%E3%83%87%E3%83%AB_M/M/c&amp;diff=11224"/>
		<updated>2012-04-02T05:53:49Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: /* 詳説 */ typo mu_k -&amp;gt; mu_i&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''【まちぎょうれつもでるえむえむしー (queueing model M/M/&amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;)】'''&lt;br /&gt;
=== 概要 ===&lt;br /&gt;
&lt;br /&gt;
ポアソン到着, 指数サービス, 窓口が &amp;lt;math&amp;gt;c\,&amp;lt;/math&amp;gt; 個の待ち行列モデル. 最も基本的な待ち行列モデルの1つ. 待ち行列モデルを指して &amp;quot;マルコフモデル&amp;quot; というときは, このモデルを指していることが多い.&lt;br /&gt;
=== 詳説 ===&lt;br /&gt;
　[[待ち行列モデル M/M/c]] (queueing model M/M/&amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt;)は, 客の到着がパラメータ &amp;lt;math&amp;gt;\lambda\, &amp;lt;/math&amp;gt; のポアソン過程に従い, サービス時間が平均 &amp;lt;math&amp;gt;1/\mu\, &amp;lt;/math&amp;gt; の指数分布に従う, 窓口 &amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt; 個の最も基本的な待ち行列モデルである. 待ち行列理論が[[アーラン, アグナー・K|A. K. Erlang]]によって20世紀初頭に誕生したときに, 真っ先に研究の対象となったのがこのタイプのモデルであった. それ以来, モデルの簡潔さ, 公式のわかりやすさから, 代表的な待ち行列モデルとして, 常に待ち行列理論のよりどころとなり, また多方面で実際問題の解決に応用されてきている. 近年研究が進められている[[待ち行列ネットワーク]]でも, その中心となっているのはこの M/M/&amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt; モデルをネットワーク状につないだ[[ジャクソンネットワーク|ジャクソン型ネットワーク]]とそれを拡張した[[BCMPネットワーク|BCMP型ネットワーク]]であることからも, その重要性が理解できよう. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ポアソン到着と指数サービス'''　M/M/&amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt; モデルに関連して, いくつかの用語が慣用的に用いられている. 客の到着が[[ポアソン過程]]にしたがうとき, つまり客の到着間隔が独立で同一の指数分布に従うとき, その到着の仕方を[[ポアソン到着]] (Poisson arrival) という. この場合, 到着過程のパラメータを &amp;lt;math&amp;gt;\lambda\, &amp;lt;/math&amp;gt; とすると, 長さ &amp;lt;math&amp;gt;t\, &amp;lt;/math&amp;gt; の時間に到着する人数は平均 &amp;lt;math&amp;gt;\lambda t\, &amp;lt;/math&amp;gt; のポアソン分布に従う. この &amp;lt;math&amp;gt;\lambda\, &amp;lt;/math&amp;gt; のことを[[到着率]] (arrival rate) と呼ぶ. また, サービス時間の分布が指数分布に従うとき, サービスの仕方は[[指数サービス]] (exponential service) であるという. このとき平均サービス時間の逆数 &amp;lt;math&amp;gt;\mu\, &amp;lt;/math&amp;gt; のことを[[サービス率]] (service rate) と呼ぶ. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''マルコフ性'''　M/M/&amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt; モデルが容易に解析できるのは, 指数分布がつぎの&amp;quot;無記憶性&amp;quot;をもつことによる. 確率変数 &amp;lt;math&amp;gt;X\, &amp;lt;/math&amp;gt; がパラメータ &amp;lt;math&amp;gt;\lambda\, &amp;lt;/math&amp;gt; の指数分布に従っているものとしよう. すると, 任意の &amp;lt;math&amp;gt;s, t&amp;gt;0\, &amp;lt;/math&amp;gt; に対して&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mbox{P}\{ X&amp;gt;s+t\mid X&amp;gt;s \} = \mathrm{e}^{-\lambda t} = \mbox{P}\{ X&amp;gt;t \}\, &lt;br /&gt;
\, &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
が成り立つ. これは, 現在の状況 (&amp;lt;math&amp;gt;X&amp;gt;s\, &amp;lt;/math&amp;gt; ということ) がわかると, 今後の確率的挙動は過去の履歴とは無関係, ということであり, この性質を[[無記憶性 (指数分布の)|無記憶性]] (memoryless property) または[[マルコフ性]] (Markov property) と呼ぶ. M/M/&amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt; などの[[ケンドールの記号]]において, ポアソン到着と指数サービスを M で表現するのは, このマルコフ性に由来する. &lt;br /&gt;
&lt;br /&gt;
　M/M/&amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt; モデルでは, ポアソン到着と指数サービスの仮定から, 系内人数を状態とする[[マルコフ連鎖]]を導くことができる. このマルコフ連鎖は[[出生死滅過程]]と呼ばれる特殊な型をしており, その解析は容易である. マルコフ連鎖の一般論から, 適当な条件の下でこの出生死滅過程は時間の経過とともに[[平衡状態]]に近づく. そのため M/M/&amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt; モデルでは, 平衡状態における状態確率 (これを[[定常状態確率]] (stationary state probability) とか極限状態確率と呼ぶ) を解析的に求め, それらから[[待ち確率]], [[平均待ち時間]], [[待ち時間分布]]}, 平均[[系内人数]], 系内人数分布などの混雑の尺度を計算して, 実際のシステムの性能評価に役立てている. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''M/M/1 モデル'''　[[待ち行列モデル M/M/1]] (queueing model M/M/1) は, &amp;lt;math&amp;gt;c=1\, &amp;lt;/math&amp;gt; の場合で, ポアソン到着, 指数サービス, 単一窓口をもつ待ち行列として定義される. 定常状態確率が存在するための必要十分条件は, &amp;lt;math&amp;gt;\rho = \lambda/\mu&amp;lt;1\, &amp;lt;/math&amp;gt; を満たすことである. そのときシステム内に&amp;lt;math&amp;gt;k\, &amp;lt;/math&amp;gt;人の客がいる定常状態確率は&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
p_k=(1-\rho)\rho^k, \qquad k=0, 1, 2, \cdots \,&lt;br /&gt;
\, &amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;(1)\, &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
で与えられ, 幾何分布に従う. 窓口がサービス中である確率は &amp;lt;math&amp;gt;1-p_0=\rho\, &amp;lt;/math&amp;gt; であるので, &amp;lt;math&amp;gt;\rho\, &amp;lt;/math&amp;gt; を[[利用率]]と呼ぶ. これは到着した客が待たされる確率, すなわち[[待ち確率]], でもある ([[PASTA]]参照). (1) 式より, 平均系内人数は &amp;lt;math&amp;gt;L=\rho/(1-\rho)\, &amp;lt;/math&amp;gt; であり, 平均待ち行列長は  &amp;lt;math&amp;gt;L_q=\rho^2/(1-\rho)\, &amp;lt;/math&amp;gt; である. &lt;br /&gt;
&lt;br /&gt;
　待ち時間分布は &amp;lt;math&amp;gt;t=0\, &amp;lt;/math&amp;gt; に &amp;lt;math&amp;gt;1-\rho\, &amp;lt;/math&amp;gt; のマスをもち, &amp;lt;math&amp;gt;t&amp;gt;0\, &amp;lt;/math&amp;gt; では指数分布型の密度をもつ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
F(t)=\mbox{P}\{ \boldsymbol{W_q} \leq t \}&lt;br /&gt;
 =\left\{ \begin{array}{ll} 0, &amp;amp; t&amp;lt;0 \\&lt;br /&gt;
 1-\rho \mathrm{e}^{-(\mu-\lambda)t}, \qquad &amp;amp; t \geq 0&lt;br /&gt;
 \end{array} \right. &lt;br /&gt;
\, &amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;(2)\, &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
で与えられる. この分布関数から, または[[リトルの公式]]から, 平均待ち時間は &amp;lt;math&amp;gt;W_q=L_q/\lambda=\rho/\mu(1-\rho)\, &amp;lt;/math&amp;gt;, 平均系内滞在時間は &amp;lt;math&amp;gt;W=L/\lambda=1/\mu (1-\rho)\, &amp;lt;/math&amp;gt; であることがわかる. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''M/M/&amp;lt;math&amp;gt;\boldsymbol {c}\, &amp;lt;/math&amp;gt; モデル'''　[[待ち行列モデル M/M/c]] は, ポアソン到着で &amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt;個 (通常は複数) の指数サービス窓口をもつモデルである. これも[[出生死滅過程]]を用いて解析できる. 客の到着率を &amp;lt;math&amp;gt;\lambda\, &amp;lt;/math&amp;gt;, 平均サービス時間を &amp;lt;math&amp;gt;1/\mu\, &amp;lt;/math&amp;gt; とすると, 平衡状態が存在するための条件は &amp;lt;math&amp;gt;\rho=\lambda/c \mu &amp;lt; 1\, &amp;lt;/math&amp;gt; である. 系内に &amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt; 人以上の客がいるときはすべての窓口がサービス中なので, 短い時間 &amp;lt;math&amp;gt;dt\, &amp;lt;/math&amp;gt; の間にいずれかのサービスが終了する確率は &amp;lt;math&amp;gt;c \mu \, dt\, &amp;lt;/math&amp;gt; であり, 系内にいる客の数が &amp;lt;math&amp;gt;k\, &amp;lt;/math&amp;gt; 人 (&amp;lt;math&amp;gt;k&amp;lt;c\, &amp;lt;/math&amp;gt;) のときは, &amp;lt;math&amp;gt;k\, &amp;lt;/math&amp;gt; 個の窓口でサービスを行っているだけなので, この確率は &amp;lt;math&amp;gt;k\mu \, dt\, &amp;lt;/math&amp;gt; である. そこで&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mu_k=\left\{&lt;br /&gt;
\begin{array}{ll}&lt;br /&gt;
k\mu, &amp;amp; \qquad k=0, 1, \cdots, c-1 \\&lt;br /&gt;
c\mu, &amp;amp; \qquad k=c, c+1, \cdots&lt;br /&gt;
\end{array} \right. &lt;br /&gt;
\, &amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;(3)\, &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
とおけば, &amp;lt;math&amp;gt;dt\, &amp;lt;/math&amp;gt; の間に一人の客が到着する確率が &amp;lt;math&amp;gt;\lambda \, dt\, &amp;lt;/math&amp;gt; であることから, 平衡状態において &amp;lt;math&amp;gt;k\, &amp;lt;/math&amp;gt; 人の客がいる確率は&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
p_k=p_0 \prod_{i=1}^k \frac{\lambda}{\mu_i}, \qquad k=1, 2, \cdots&lt;br /&gt;
\, &amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;(4)\, &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
で与えられる. ここで &amp;lt;math&amp;gt;p_0\, &amp;lt;/math&amp;gt; は, (4) の &amp;lt;math&amp;gt;p_k\, &amp;lt;/math&amp;gt; の和が 1 となるよう&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
p_0 = \left[\sum_{k=0}^{c-1} \frac{c^k \rho^k}{k!}&lt;br /&gt;
        +\frac{c^c \rho^c}{c! \, (1-\rho)}\right]^{-1}&lt;br /&gt;
\, &amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;(5)\, &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
で与えられる. 安定性の条件 &amp;lt;math&amp;gt;\rho&amp;lt;1\, &amp;lt;/math&amp;gt; は, (4) の &amp;lt;math&amp;gt;p_k\, &amp;lt;/math&amp;gt; の和が有限の値に収束するための条件となっていることに注意しよう. この &amp;lt;math&amp;gt;\rho\, &amp;lt;/math&amp;gt; は各窓口がサービス中の時間の割合になっており, やはり利用率と呼ばれる. すべての窓口がふさがっている確率は, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\Pi=\sum_{k=c}^\infty p_k = \frac{c^c \rho^c}{c! \, (1-\rho)} p_0 &lt;br /&gt;
\, &amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;(6)\, &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
であり, PASTA よりこれが待ち確率でもある. 待ち時間分布は&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mbox{P}\{ \boldsymbol{W_q} \leq t\} = \left\{ \begin{array}{ll}&lt;br /&gt;
   0 , &amp;amp; t &amp;lt;0 \\&lt;br /&gt;
  1 - \Pi \, \mathrm{e}^{-c \mu(1-\rho)t}, \quad &amp;amp; t \geq 0&lt;br /&gt;
  \end{array} \right. &lt;br /&gt;
\, &amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;(7)\, &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
で与えられ, 平均待ち時間は &amp;lt;math&amp;gt;W_q= \Pi / c \mu (1 - \rho)\, &amp;lt;/math&amp;gt; である.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''M/M/&amp;lt;math&amp;gt;\boldsymbol {c/c}\, &amp;lt;/math&amp;gt;モデル'''　[[待ち行列モデル M/M/c/c]] (queueing model M/M/&amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt;/&amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt;) は, ポアソン到着で, &amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt;個の指数サービス窓口があるが, 待合室が無く, 客が待つことができない待ち行列である. 客が到着したときに, 空いた窓口がある場合には直ちにサービスを受けるが, すべての窓口が塞がっている場合にはサービスを受けることなく立ち去る. このようにサービスを受けずに立ち去る客がある待ち行列モデルは損失系と呼ばれ, 電話回線などのトラフィック理論でしばしば利用される. このときサービスを受けずに立ち去る客の割合を[[呼損率]] (loss probability) という. &lt;br /&gt;
&lt;br /&gt;
　到着率を &amp;lt;math&amp;gt;\lambda\, &amp;lt;/math&amp;gt;, 平均サービス時間を &amp;lt;math&amp;gt;1/\mu\, &amp;lt;/math&amp;gt; とすると, 定常状態確率は (3) を用いて (4) で与えられる. ただし, 今度の場合, とりうる状態は &amp;lt;math&amp;gt;k=0, 1, 2, \ldots , c\, &amp;lt;/math&amp;gt; だけであるので, &amp;lt;math&amp;gt;p_0\, &amp;lt;/math&amp;gt; は&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
p_0 = \left[\, \sum_{k=0}^{c}&lt;br /&gt;
\frac{1}{k!}\left(\frac{\lambda}{\mu}\right)^k \right]^{-1}&lt;br /&gt;
\, &amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;(8)\, &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
で与えられ, たとえ &amp;lt;math&amp;gt;\rho=\lambda/c \mu&amp;lt;1\, &amp;lt;/math&amp;gt; でなくてもシステムは安定的である. PASTA の性質により, 呼損率は系内にちょうど &amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt; 人の客がいる確率&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
p_c=\frac{1}{c!} \left(\frac{\lambda}{\mu}\right)^c p_0&lt;br /&gt;
\, &amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;(9)\, &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
と等しい. この式は[[アーランの損失式]] (Erlang's loss formula) と呼ばれ, 損失系の性能評価で最も重要な特性量のひとつである. なお, この式は M/G/&amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt;/&amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt; モデル, すなわち一般サービスのときでも成り立つことが知られている. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''参考文献'''&lt;br /&gt;
&lt;br /&gt;
[1] L. Kleinrock, ''Queueing Systems Vol. 1 Theory,'' Wiley, New York, 1975. &lt;br /&gt;
&lt;br /&gt;
[2] 森村英典, 大前義次, 『応用待ち行列理論』, 日科技連, 1975. &lt;br /&gt;
&lt;br /&gt;
[3] 尾崎俊治, 『確率モデル入門』, 朝倉書店, 1996. &lt;br /&gt;
&lt;br /&gt;
[4] S. M. Ross, ''Stocastic Processes,'' Wiley, New York, 1980.&lt;br /&gt;
&lt;br /&gt;
[[category:確率と確率過程|まちぎょうれつもでるえむえむしー]]&lt;br /&gt;
&lt;br /&gt;
[[category:待ち行列|まちぎょうれつもでるえむえむしー]]&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Fujimoto/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%95%8F%E9%A1%8C&amp;diff=11200</id>
		<title>利用者:Fujimoto/最短路問題</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Fujimoto/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%95%8F%E9%A1%8C&amp;diff=11200"/>
		<updated>2009-11-05T07:51:07Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: 数式修正（すべて画像に置換されるよう）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''【さいたんろもんだい (shortest path problem)】'''&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&amp;lt;!-- 原稿では概要、詳説という分け方になっていないのですが、どうしましょうかね。 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
最短路問題は経路探索などの多くの応用を持ち, また他の[[最適化問題]]の子問題として用いられることも多く, 適用範囲の広い組合せ最適化問題である. そのため, 最短路問題を高速に解くことは重要な意味を持つ. 最短路問題に対する解法には, 安定的かつ効率的な高速な[[アルゴリズム]]が存在するが, 実問題は大規模(全米の道路ネットワークでは, 2400万点, 5800万枝にも及ぶ)になるため高速化が不可欠である.本解説では最短路問題の定義・種類を述べた後, 著名なアルゴリズムである[[ダイクストラ法]]に対する高速実装と実験結果&amp;lt;ref&amp;gt;安井雄一郎, 藤澤克樹, 笹島啓史, 後藤和茂, 宮本裕一郎, &amp;quot;大規模最短路問題に対するダイクストラ法の高速化,&amp;quot; 2008 年度日本 OR 学会秋季研究発表会. 314-315, 2008.&amp;lt;/ref&amp;gt;等について説明を行う.&lt;br /&gt;
&lt;br /&gt;
== 詳説 ==&lt;br /&gt;
&lt;br /&gt;
=== 最短路問題の定義と種類 ===&lt;br /&gt;
最短路問題は次のような問題である.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 原稿では影付きボックスですが、それはさすがに難しいので単なるquotationにしています --&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
ある有向グラフ&amp;lt;math&amp;gt;G = (V, E)\, &amp;lt;/math&amp;gt; と各枝 &amp;lt;math&amp;gt;(v,w) \in E\, &amp;lt;/math&amp;gt; に重み &amp;lt;math&amp;gt;l(v,w)\, &amp;lt;/math&amp;gt; が付与されているネットワーク &amp;lt;math&amp;gt;N = (G,l)\, &amp;lt;/math&amp;gt; が与えられているとする. このとき有向グラフ &amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt; の任意の 2 点 &amp;lt;math&amp;gt;s, t \in V\, &amp;lt;/math&amp;gt; に対し, 点 &amp;lt;math&amp;gt;s\, &amp;lt;/math&amp;gt; を始点とし, 点 &amp;lt;math&amp;gt;t\, &amp;lt;/math&amp;gt; を終点とする有向パス &amp;lt;math&amp;gt;p\, &amp;lt;/math&amp;gt; の中で, その長さ(パスに含まれる枝の重みの合計)が最小のパスを点 &amp;lt;math&amp;gt;s\, &amp;lt;/math&amp;gt; から点 &amp;lt;math&amp;gt;t\, &amp;lt;/math&amp;gt; への最短路 (shortest path) といい, 最短路を求める問題を最短路問題 (shortest path problem) という.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
最短路問題は次のように 3 種類に分けることができる.&lt;br /&gt;
&lt;br /&gt;
;1対全(single-source)最短路問題: 1点から全点に対する最短路と最短距離(最短路の長さ)を求める問題. 非負の枝の重みを持つグラフ上ではダイクストラ(Dijkstra)法が, 負の重みを持つ枝がある場合にはベルマン・フォード(Bellman-Ford)法が有名である. &lt;br /&gt;
;全対全(all-pairs)最短路問題: 全点間の最短路と最短距離を求める問題. ワーシャル・フロイド(Warshall-Folyd)法が有名であるが, 1対全最短路問題アルゴリズムを各点に対して適用することでも求めることができる.&lt;br /&gt;
;1対1(point-to-point)最短路問題: 2点間の最短路と最短距離を求める問題. &lt;br /&gt;
&lt;br /&gt;
=== 探索アルゴリズムと実装方法 ===&lt;br /&gt;
&lt;br /&gt;
最短路問題に関する探索アルゴリズムの中でも, 最も頻繁に利用されるダイクストラ法を取り上げ, アルゴリズムの説明から, 高速化のための優先キューの適用方法・実装方法について示していく.&lt;br /&gt;
&lt;br /&gt;
==== ダイクストラ法 ====&lt;br /&gt;
&lt;br /&gt;
1959年, E. W. Dijkstra&amp;lt;ref name=&amp;quot;dijkstra&amp;quot;&amp;gt;E. W. Dijkstra, &amp;quot;A Note on Two Problems in Connexion with Graphs,&amp;quot; Numerische Mathematik, 1:269-271, 1959.&amp;lt;/ref&amp;gt;によって提案された1対全最短路問題に対するアルゴリズムである. 探索するグラフ上の全ての枝の重みが非負でなければならないが, ベルマン・フォード法&amp;lt;ref&amp;gt;R. E. Bellman, &amp;quot;On a Routing Problem,&amp;quot; Quarterly of Applied Mathematics, 16:87-90, 1958.&amp;lt;/ref&amp;gt;に比べ効率的かつ高速である.ダイクストラ法は, ベルマン・フォード法と同じように動的計画法の一種とみなすことができるが, 点の探索の順序に特徴をもつ. 探索の途中で得られた始点 &amp;lt;math&amp;gt;s\, &amp;lt;/math&amp;gt; からの距離の最小値をポテンシャルもしくは距離ラベルとよび, その値の小さい順に点の探索を行い,最短路および最短距離を確定していく. つまり, 各点に対し, &amp;lt;math&amp;gt;d(s) = 0, d(v) = +\infty (v \in V)\, &amp;lt;/math&amp;gt; とするポテンシャル &amp;lt;math&amp;gt;d\, &amp;lt;/math&amp;gt; を用意し, 探索点 &amp;lt;math&amp;gt;v\, &amp;lt;/math&amp;gt; に接続する枝 &amp;lt;math&amp;gt;(v,w)\, &amp;lt;/math&amp;gt; に対して, &amp;lt;math&amp;gt;d(v) + l(v,w) &amp;lt; d(w)\, &amp;lt;/math&amp;gt; ならば &amp;lt;math&amp;gt;d(w) := l(v,w) + d(v)\, &amp;lt;/math&amp;gt; とする操作を繰り返し行う. 終点 &amp;lt;math&amp;gt;t\, &amp;lt;/math&amp;gt; が探索点になった時点で終了させることで, 1対1最短路問題も効率的に求解可能である.&lt;br /&gt;
&lt;br /&gt;
===== ダイクストラ法のアルゴリズム =====&lt;br /&gt;
&lt;br /&gt;
  1: ポテンシャル &amp;lt;math&amp;gt;d\, &amp;lt;/math&amp;gt;の初期設定&lt;br /&gt;
  2: &amp;lt;math&amp;gt;S := V\, &amp;lt;/math&amp;gt;&lt;br /&gt;
  3: '''while''' &amp;lt;math&amp;gt;S \neq \emptyset&amp;lt;/math&amp;gt; '''do'''&lt;br /&gt;
  4:   &amp;lt;math&amp;gt;d(v)\, &amp;lt;/math&amp;gt; が最小の点 &amp;lt;math&amp;gt;v \in S\, &amp;lt;/math&amp;gt; を選択&lt;br /&gt;
  5:   &amp;lt;math&amp;gt;S := S \backslash \left\{ v \right\}\, &amp;lt;/math&amp;gt;&lt;br /&gt;
  6:   '''for all''' &amp;lt;math&amp;gt;(v, w)\, &amp;lt;/math&amp;gt; '''do'''&lt;br /&gt;
  7:     '''if''' &amp;lt;math&amp;gt;d(v) +l(v,w) &amp;lt; d(w)\, &amp;lt;/math&amp;gt; '''then'''&lt;br /&gt;
  8:       &amp;lt;math&amp;gt;d(w) := d(v) +l(v,w)\, &amp;lt;/math&amp;gt;&lt;br /&gt;
  9:     '''end if'''&lt;br /&gt;
 10:   '''end for'''&lt;br /&gt;
 11: '''end while'''&lt;br /&gt;
&lt;br /&gt;
==== 高速化のための優先キューの利用 ====&lt;br /&gt;
ダイクストラ法は, 効率的かつ高速なアルゴリズムだが, 探索点を決定する操作([[#ダイクストラ法のアルゴリズム|アルゴリズム]]中の4行目,5行目)が, ボトルネックであることが知られている&amp;lt;ref name=&amp;quot;dijkstra&amp;quot; /&amp;gt;. 探索候補点集合(アルゴリズム中の&amp;lt;math&amp;gt;S\, &amp;lt;/math&amp;gt;)に対して優先キューを適用することで, 改善できる.&lt;br /&gt;
&lt;br /&gt;
==== 優先キューの実装方法 ====&lt;br /&gt;
優先キューとは, データを優先度によって操作するデータ構造のことである. ダイクストラ法に適用する優先キューは,&amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt;と呼ばれる操作に対応している必要がある. &lt;br /&gt;
;&amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt;: ポテンシャル&amp;lt;math&amp;gt;d(v)\, &amp;lt;/math&amp;gt;を優先度として, 点&amp;lt;math&amp;gt;v \in V\, &amp;lt;/math&amp;gt;を優先キュー&amp;lt;math&amp;gt;Q\, &amp;lt;/math&amp;gt;へ挿入する.&lt;br /&gt;
;&amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt;: 優先キュー内に格納されている点 &amp;lt;math&amp;gt;v \in Q\, &amp;lt;/math&amp;gt;の優先度&amp;lt;math&amp;gt;d(v)\, &amp;lt;/math&amp;gt;を, &amp;lt;math&amp;gt;d'(v)\, &amp;lt;/math&amp;gt;に更新する.&lt;br /&gt;
;&amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt;: 優先度&amp;lt;math&amp;gt;d(v)\, &amp;lt;/math&amp;gt;が最小である点&amp;lt;math&amp;gt;v \in Q\, &amp;lt;/math&amp;gt;を取り出し, 点&amp;lt;math&amp;gt;v\, &amp;lt;/math&amp;gt;を次探索点とする.&lt;br /&gt;
ダイクストラ法では, 繰り返しこれらの操作を行うことになるため, より効率的なものを適用することで, 高速化が可能になる.&lt;br /&gt;
&lt;br /&gt;
==== データ構造の選択 ====&lt;br /&gt;
優先キューは, 木構造による安定した実行が可能なヒープ系データ構造と, データをルールに従いバケットに格納するバケット系データ構造とに分類が可能である. ここでは, それぞれの最も基本的なデータ構造であるバイナリ・ヒープと1レベル・バケットに加え, 実験的に最も高速であるといわれているマルチレベル・バケットを取り上げ, 比較を行う.&lt;br /&gt;
&lt;br /&gt;
===== 2-heap(バイナリ・ヒープ) =====&lt;br /&gt;
2-heap&amp;lt;ref name=&amp;quot;heap&amp;quot;&amp;gt;J. Williams, &amp;quot;Heapsort,&amp;quot; Communications of the ACM, 7:347-348, 1964.&amp;lt;/ref&amp;gt;は, 図1のように, 親は高々2つの子を持つ木構造で構成される. 常に親の優先度は子より高い. 点数 &amp;lt;math&amp;gt;n\, &amp;lt;/math&amp;gt;, 枝数 &amp;lt;math&amp;gt;m\, &amp;lt;/math&amp;gt;に対して, 1対全最短路問題の計算量は &amp;lt;math&amp;gt;O((m+n)\log{n})\, &amp;lt;/math&amp;gt; である.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center; margin:0 auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Index&lt;br /&gt;
| 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14&lt;br /&gt;
|-&lt;br /&gt;
! Data&lt;br /&gt;
| 1 || 2 || 4 || 3 || 2 || 5 || 6 || 6 || 4 || 3 || 5 || 8 || 6 || 7 || 9&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[画像:heap-2.png|thumb|center|300px|図1: バイナリ・ヒープの例]]&lt;br /&gt;
&lt;br /&gt;
2-heapは以下の特徴をもつ.&lt;br /&gt;
#木構造により実行性能が安定している.&lt;br /&gt;
#メモリ要求量が大変少なく, データの局所性を高めやすい.&lt;br /&gt;
#木構造のためデータの読み書きが多発するので,データ交換操作がボトルネックとなりやすい.&lt;br /&gt;
&lt;br /&gt;
===== Buckets(1 レベル・バケット)=====&lt;br /&gt;
Buckets&amp;lt;ref name=&amp;quot;dial&amp;quot;&amp;gt;R. B. Dial, &amp;quot;Algorithm 360: Shortest Path Forest with Topological Ordering, &amp;quot; Comm. ACM, 12:632-633, 1969.&amp;lt;/ref&amp;gt;は, 最大枝長 &amp;lt;math&amp;gt;U\, &amp;lt;/math&amp;gt;に対し, &amp;lt;math&amp;gt;U+1\, &amp;lt;/math&amp;gt;個のバケットの循環リストとして構成される (図2). 点 &amp;lt;math&amp;gt;v\, &amp;lt;/math&amp;gt;のポテンシャル&amp;lt;math&amp;gt;d(v)\, &amp;lt;/math&amp;gt;に対し, &amp;lt;math&amp;gt;d(v)\mod(U+1)\, &amp;lt;/math&amp;gt;により操作するバケットを決定する. 各バケット内のデータは双方向リストで結ばれており, 同一バケット内に格納されている点の優先度は常に等しい. 1対全最短路問題の計算量は, 点数&amp;lt;math&amp;gt;n\,&amp;lt;/math&amp;gt;, 枝数&amp;lt;math&amp;gt;m\, &amp;lt;/math&amp;gt;, 最大枝長&amp;lt;math&amp;gt;U\, &amp;lt;/math&amp;gt;に対し, &amp;lt;math&amp;gt;O(m+nU)\, &amp;lt;/math&amp;gt;である. &lt;br /&gt;
&lt;br /&gt;
#実行時間・メモリ要求量が, 最大枝長に依存する(重み小:高速, 重み大:低速).&lt;br /&gt;
#道路ネットワークグラフと相性が良い.&lt;br /&gt;
&lt;br /&gt;
[[画像:buckets-2.png|thumb|center|250px|図2: 1レベル・バケットの例]]&lt;br /&gt;
&lt;br /&gt;
===== MLB(マルチレベル・バケット) =====&lt;br /&gt;
MLB(Multi-Level Buckets)&amp;lt;ref name=&amp;quot;mlb&amp;quot;&amp;gt;A. V. Goldberg, &amp;quot;A Simple Shortest Path Algorithm with Linear Average Time,&amp;quot; Technical Report STAR-TR-01-03, STAR Lab., InterTrust Tech., Inc., Santa Clara, CA, USA. 2001.&amp;lt;/ref&amp;gt;は, ヒープ系優先キュー, バケット系優先キューの双方の有効な特性を融合させた優先キューである. グラフ特性の影響は小さく安定かつ高速であるが, 非常にメモリ要求量が大きい. 1レベル・バケットとは異なり,MLBではバケットは &amp;lt;math&amp;gt;\lceil \log{U} \rceil + 1\, &amp;lt;/math&amp;gt;だけ用意すればよい. 点数 &amp;lt;math&amp;gt;n\, &amp;lt;/math&amp;gt;, 枝数 &amp;lt;math&amp;gt;m\, &amp;lt;/math&amp;gt;, 最大枝長 &amp;lt;math&amp;gt;U\, &amp;lt;/math&amp;gt;に対し, 1対全最短路問題の計算量は&amp;lt;math&amp;gt;O(m + n\log{U})\, &amp;lt;/math&amp;gt;となる. &lt;br /&gt;
&lt;br /&gt;
#グラフ特性の影響は小さく, 安定かつ高速&lt;br /&gt;
#バケットを決定には高速なビット演算で行う&lt;br /&gt;
#メモリ要求量が非常に大きい&lt;br /&gt;
&lt;br /&gt;
=====優先キューの比較=====&lt;br /&gt;
点数 &amp;lt;math&amp;gt;n\, &amp;lt;/math&amp;gt;, 枝数&amp;lt;math&amp;gt;m\, &amp;lt;/math&amp;gt;, 最大枝数 &amp;lt;math&amp;gt;U\, &amp;lt;/math&amp;gt;であるグラフに対して, 計算量をまとめると表1のようになる.1対全最短路問題では, 枝数分の&amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt;と&amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt;, 点数分の&amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt;を行うことになる.また, その特性は図3となる. これは, 比較的小さいグラフに対し, 各枝長を&amp;lt;math&amp;gt;2^{t} (t=[-10,-9,..,9,10])\, &amp;lt;/math&amp;gt;倍し, 計算機実験を行った結果である. Buckets の特性がよく表れている.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+ 表1: 優先キューの計算量&lt;br /&gt;
! !! &amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt; !! &amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt; !! &amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt; !! 1対全最短路問題の計算量&lt;br /&gt;
|-&lt;br /&gt;
! 2-heap&lt;br /&gt;
| &amp;lt;math&amp;gt;O(\log{n})\, &amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(\log{n})\, &amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(\log{n}) \, &amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O((n+m)\log{n})\, &amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Buckets&lt;br /&gt;
| &amp;lt;math&amp;gt;O(1)\, &amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(1)\, &amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(U)\, &amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(m+nU)\, &amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! MLB&lt;br /&gt;
| &amp;lt;math&amp;gt;O(1)\, &amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(1)\, &amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(\log{U})\, &amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(m+n\log{U})\, &amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[画像:length-scaling2.png|thumb|center|500px|図3: 優先キューの特性]]&lt;br /&gt;
&lt;br /&gt;
====優先キューの性能====&lt;br /&gt;
2-heap, Buckets, MLB それぞれの全米道路ネットワークに対しての計算機実験を行い, 実行時間とメモリ要求量をまとめると,表2, 表3のようになる. 用いたグラフデータは, 約 2400 万点, 約 5800 万枝にも及ぶ道路ネットワークを変換させた大規模な実データである(TIGER/Line&amp;lt;ref&amp;gt;http://www.census.gov/geo/www/tiger/tigerua/ua_tgr2k.html&amp;lt;/ref&amp;gt;で公開されている). 実行時間は, ランダムに選択した1対1最短路問題を 256 回解いた際の平均である.&lt;br /&gt;
&lt;br /&gt;
最短路問題では計算量に対してデータ量が大規模であるため, データ型によるメモリ使用量や実行時間に対する影響が大きい. 各変数が 32ビット整数型と 64ビット変数型の 2 種類の計算機実験の結果を記載する. グラフデータは大規模であるが, 32ビット整数型の範囲で収まるため, どちらの場合でもアルゴリズムは正しく終了するが, 距離ラベルはいずれも 64ビット整数である. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+ 表2: 全米グラフの実行時間(単位は秒)&lt;br /&gt;
! !! 32ビット整数型 !! 64ビット整数型&lt;br /&gt;
|-&lt;br /&gt;
! 2-heap&lt;br /&gt;
| 2.47 || 3.14&lt;br /&gt;
|-&lt;br /&gt;
! Buckets&lt;br /&gt;
| 1.68 || 2.28&lt;br /&gt;
|-&lt;br /&gt;
! MLB&lt;br /&gt;
| 2.63 || 2.65&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+ 表3: 全米グラフのメモリ要求量(単位はGB)&lt;br /&gt;
! !! 32ビット整数型 !! 64ビット整数型&lt;br /&gt;
|-&lt;br /&gt;
! 2-heap&lt;br /&gt;
| 1.27 || 1.99&lt;br /&gt;
|-&lt;br /&gt;
! Buckets&lt;br /&gt;
| 1.09 || 1.62&lt;br /&gt;
|-&lt;br /&gt;
! MLB&lt;br /&gt;
| 2.17 || 2.17&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===大規模最短路問題に対する高速処理システム===&lt;br /&gt;
現在では Web 上で最短経路を求めるサービスが複数行われている(Google Maps&amp;lt;ref&amp;gt;http://maps.google.com/&amp;lt;/ref&amp;gt;や最短路問題オンラインソルバー&amp;lt;ref&amp;gt;http://opt.indsys.chuo-u.ac.jp/portal/&amp;lt;/ref&amp;gt;など).&lt;br /&gt;
&lt;br /&gt;
これらのシステムでは, 多くのユーザからの要求に対応する必要があるので, 単にダイクストラ法実行1回の処理を高速化するだけでなく, それらを並列に高速処理する技術が必要である.&lt;br /&gt;
&lt;br /&gt;
ユーザからの要求量は時間帯や突発的な事象によって大きく変動するため, 最大需要を見越した計算資源を保有しておくのは無駄が多くコストも増大してしまう. そこでクラウド・コンピューティング技術を用いて, 高負荷時には自動的に計算機資源の増大を行うシステムなどが必要になってくる. &lt;br /&gt;
&lt;br /&gt;
最近ではカーナビゲーション・システムの拡張として渋滞・事故情報をリアルタイムに把握しながら集約された大規模サーバで最短路を探索してユーザに結果を送信するシステムも構築されている. 動的な情報を考慮した最短路探索を行うことにより, これまでの経路探索に比べてより精度を向上させることができる. 特定の道路への集中を防ぐように交通量の分散を行うことで, 渋滞の緩和, 事故発生率の低下, 排出ガスの削減などを目指した交通管制を行うことも可能になると予想されている. &lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Fujimoto/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%95%8F%E9%A1%8C&amp;diff=11199</id>
		<title>利用者:Fujimoto/最短路問題</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Fujimoto/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%95%8F%E9%A1%8C&amp;diff=11199"/>
		<updated>2009-10-21T11:49:05Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: URL誤りを訂正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''【さいたんろもんだい (shortest path problem)】'''&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&amp;lt;!-- 原稿では概要、詳説という分け方になっていないのですが、どうしましょうかね。 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
最短路問題は経路探索などの多くの応用を持ち, また他の[[最適化問題]]の子問題として用いられることも多く, 適用範囲の広い組合せ最適化問題である. そのため, 最短路問題を高速に解くことは重要な意味を持つ. 最短路問題に対する解法には, 安定的かつ効率的な高速な[[アルゴリズム]]が存在するが, 実問題は大規模(全米の道路ネットワークでは, 2400万点, 5800万枝にも及ぶ)になるため高速化が不可欠である.本解説では最短路問題の定義・種類を述べた後, 著名なアルゴリズムである[[ダイクストラ法]]に対する高速実装と実験結果&amp;lt;ref&amp;gt;安井雄一郎, 藤澤克樹, 笹島啓史, 後藤和茂, 宮本裕一郎, &amp;quot;大規模最短路問題に対するダイクストラ法の高速化,&amp;quot; 2008 年度日本 OR 学会秋季研究発表会. 314-315, 2008.&amp;lt;/ref&amp;gt;等について説明を行う.&lt;br /&gt;
&lt;br /&gt;
== 詳説 ==&lt;br /&gt;
&lt;br /&gt;
=== 最短路問題の定義と種類 ===&lt;br /&gt;
最短路問題は次のような問題である.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 原稿では影付きボックスですが、それはさすがに難しいので単なるquotationにしています --&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
ある有向グラフ&amp;lt;math&amp;gt;G = (V, E)&amp;lt;/math&amp;gt; と各枝 &amp;lt;math&amp;gt;(v,w) \in E&amp;lt;/math&amp;gt; に重み &amp;lt;math&amp;gt;l(v,w)&amp;lt;/math&amp;gt; が付与されているネットワーク &amp;lt;math&amp;gt;N = (G,l)&amp;lt;/math&amp;gt; が与えられているとする. このとき有向グラフ &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; の任意の 2 点 &amp;lt;math&amp;gt;s, t \in V&amp;lt;/math&amp;gt; に対し, 点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; を始点とし, 点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; を終点とする有向パス &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; の中で, その長さ(パスに含まれる枝の重みの合計)が最小のパスを点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; から点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; への最短路 (shortest path) といい, 最短路を求める問題を最短路問題 (shortest path problem) という.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
最短路問題は次のように 3 種類に分けることができる.&lt;br /&gt;
&lt;br /&gt;
;1対全(single-source)最短路問題: 1点から全点に対する最短路と最短距離(最短路の長さ)を求める問題. 非負の枝の重みを持つグラフ上ではダイクストラ(Dijkstra)法が, 負の重みを持つ枝がある場合にはベルマン・フォード(Bellman-Ford)法が有名である. &lt;br /&gt;
;全対全(all-pairs)最短路問題: 全点間の最短路と最短距離を求める問題. ワーシャル・フロイド(Warshall-Folyd)法が有名であるが, 1対全最短路問題アルゴリズムを各点に対して適用することでも求めることができる.&lt;br /&gt;
;1対1(point-to-point)最短路問題: 2点間の最短路と最短距離を求める問題. &lt;br /&gt;
&lt;br /&gt;
=== 探索アルゴリズムと実装方法 ===&lt;br /&gt;
&lt;br /&gt;
最短路問題に関する探索アルゴリズムの中でも, 最も頻繁に利用されるダイクストラ法を取り上げ, アルゴリズムの説明から, 高速化のための優先キューの適用方法・実装方法について示していく.&lt;br /&gt;
&lt;br /&gt;
==== ダイクストラ法 ====&lt;br /&gt;
&lt;br /&gt;
1959年, E. W. Dijkstra&amp;lt;ref name=&amp;quot;dijkstra&amp;quot;&amp;gt;E. W. Dijkstra, &amp;quot;A Note on Two Problems in Connexion with Graphs,&amp;quot; Numerische Mathematik, 1:269-271, 1959.&amp;lt;/ref&amp;gt;によって提案された1対全最短路問題に対するアルゴリズムである. 探索するグラフ上の全ての枝の重みが非負でなければならないが, ベルマン・フォード法&amp;lt;ref&amp;gt;R. E. Bellman, &amp;quot;On a Routing Problem,&amp;quot; Quarterly of Applied Mathematics, 16:87-90, 1958.&amp;lt;/ref&amp;gt;に比べ効率的かつ高速である.ダイクストラ法は, ベルマン・フォード法と同じように動的計画法の一種とみなすことができるが, 点の探索の順序に特徴をもつ. 探索の途中で得られた始点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; からの距離の最小値をポテンシャルもしくは距離ラベルとよび, その値の小さい順に点の探索を行い,最短路および最短距離を確定していく. つまり, 各点に対し, &amp;lt;math&amp;gt;d(s) = 0, d(v) = +\infty (v \in V)&amp;lt;/math&amp;gt; とするポテンシャル &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; を用意し, 探索点 &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; に接続する枝 &amp;lt;math&amp;gt;(v,w)&amp;lt;/math&amp;gt; に対して, &amp;lt;math&amp;gt;d(v) + l(v,w) &amp;lt; d(w)&amp;lt;/math&amp;gt; ならば &amp;lt;math&amp;gt;d(w) := l(v,w) + d(v)&amp;lt;/math&amp;gt; とする操作を繰り返し行う. 終点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; が探索点になった時点で終了させることで, 1対1最短路問題も効率的に求解可能である.&lt;br /&gt;
&lt;br /&gt;
===== ダイクストラ法のアルゴリズム =====&lt;br /&gt;
&lt;br /&gt;
  1: ポテンシャル ''d'' の初期設定&lt;br /&gt;
  2: ''S'' := ''V''&lt;br /&gt;
  3: '''while''' &amp;lt;math&amp;gt;S \neq \emptyset&amp;lt;/math&amp;gt; '''do'''&lt;br /&gt;
  4:   &amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt; が最小の点 &amp;lt;math&amp;gt;v \in S&amp;lt;/math&amp;gt; を選択&lt;br /&gt;
  5:   ''S'' := &amp;lt;math&amp;gt;S \backslash \left\{ v \right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
  6:   '''for all''' (''v'', ''w'') '''do'''&lt;br /&gt;
  7:     '''if''' &amp;lt;math&amp;gt;d(v) +l(v,w) &amp;lt; d(w)&amp;lt;/math&amp;gt; '''then'''&lt;br /&gt;
  8:       &amp;lt;math&amp;gt;d(w) := d(v) +l(v,w)&amp;lt;/math&amp;gt;&lt;br /&gt;
  9:     '''end if'''&lt;br /&gt;
 10:   '''end for'''&lt;br /&gt;
 11: '''end while'''&lt;br /&gt;
&lt;br /&gt;
==== 高速化のための優先キューの利用 ====&lt;br /&gt;
ダイクストラ法は, 効率的かつ高速なアルゴリズムだが, 探索点を決定する操作([[#ダイクストラ法のアルゴリズム|アルゴリズム]]中の4行目,5行目)が, ボトルネックであることが知られている&amp;lt;ref name=&amp;quot;dijkstra&amp;quot; /&amp;gt;. 探索候補点集合(アルゴリズム中の''S'')に対して優先キューを適用することで, 改善できる.&lt;br /&gt;
&lt;br /&gt;
==== 優先キューの実装方法 ====&lt;br /&gt;
優先キューとは, データを優先度によって操作するデータ構造のことである. ダイクストラ法に適用する優先キューは,&amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt;と呼ばれる操作に対応している必要がある. &lt;br /&gt;
;&amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt;: ポテンシャル&amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt;を優先度として, 点&amp;lt;math&amp;gt;v \in V&amp;lt;/math&amp;gt;を優先キュー''Q''へ挿入する.&lt;br /&gt;
;&amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt;: 優先キュー内に格納されている点 &amp;lt;math&amp;gt;v \in Q&amp;lt;/math&amp;gt;の優先度&amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt;を, &amp;lt;math&amp;gt;d'(v)&amp;lt;/math&amp;gt;に更新する.&lt;br /&gt;
;&amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt;: 優先度&amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt;が最小である点&amp;lt;math&amp;gt;v \in Q&amp;lt;/math&amp;gt;を取り出し, 点''v''を次探索点とする.&lt;br /&gt;
ダイクストラ法では, 繰り返しこれらの操作を行うことになるため, より効率的なものを適用することで, 高速化が可能になる.&lt;br /&gt;
&lt;br /&gt;
==== データ構造の選択 ====&lt;br /&gt;
優先キューは, 木構造による安定した実行が可能なヒープ系データ構造と, データをルールに従いバケットに格納するバケット系データ構造とに分類が可能である. ここでは, それぞれの最も基本的なデータ構造であるバイナリ・ヒープと1レベル・バケットに加え, 実験的に最も高速であるといわれているマルチレベル・バケットを取り上げ, 比較を行う.&lt;br /&gt;
&lt;br /&gt;
===== 2-heap(バイナリ・ヒープ) =====&lt;br /&gt;
2-heap&amp;lt;ref name=&amp;quot;heap&amp;quot;&amp;gt;J. Williams, &amp;quot;Heapsort,&amp;quot; Communications of the ACM, 7:347-348, 1964.&amp;lt;/ref&amp;gt;は, 図1のように, 親は高々2つの子を持つ木構造で構成される. 常に親の優先度は子より高い. 点数 ''n'', 枝数 ''m'' に対して, 1対全最短路問題の計算量は &amp;lt;math&amp;gt;O((m+n)\log{n})&amp;lt;/math&amp;gt; である.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center; margin:0 auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Index&lt;br /&gt;
| 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14&lt;br /&gt;
|-&lt;br /&gt;
! Data&lt;br /&gt;
| 1 || 2 || 4 || 3 || 2 || 5 || 6 || 6 || 4 || 3 || 5 || 8 || 6 || 7 || 9&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[画像:heap-2.png|thumb|center|300px|図1: バイナリ・ヒープの例]]&lt;br /&gt;
&lt;br /&gt;
2-heapは以下の特徴をもつ.&lt;br /&gt;
#木構造により実行性能が安定している.&lt;br /&gt;
#メモリ要求量が大変少なく, データの局所性を高めやすい.&lt;br /&gt;
#木構造のためデータの読み書きが多発するので,データ交換操作がボトルネックとなりやすい.&lt;br /&gt;
&lt;br /&gt;
===== Buckets(1 レベル・バケット)=====&lt;br /&gt;
Buckets&amp;lt;ref name=&amp;quot;dial&amp;quot;&amp;gt;R. B. Dial, &amp;quot;Algorithm 360: Shortest Path Forest with Topological Ordering, &amp;quot; Comm. ACM, 12:632-633, 1969.&amp;lt;/ref&amp;gt;は, 最大枝長''U''に対し, &amp;lt;math&amp;gt;U+1&amp;lt;/math&amp;gt;個のバケットの循環リストとして構成される (図2). 点''v''のポテンシャル&amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt;に対し, &amp;lt;math&amp;gt;d(v)\mod(U+1)&amp;lt;/math&amp;gt;により操作するバケットを決定する. 各バケット内のデータは双方向リストで結ばれており, 同一バケット内に格納されている点の優先度は常に等しい. 1対全最短路問題の計算量は, 点数''n'', 枝数''m'', 最大枝長''U''に対し, &amp;lt;math&amp;gt;O(m+nU)&amp;lt;/math&amp;gt;である. &lt;br /&gt;
&lt;br /&gt;
#実行時間・メモリ要求量が, 最大枝長に依存する(重み小:高速, 重み大:低速).&lt;br /&gt;
#道路ネットワークグラフと相性が良い.&lt;br /&gt;
&lt;br /&gt;
[[画像:buckets-2.png|thumb|center|250px|図2: 1レベル・バケットの例]]&lt;br /&gt;
&lt;br /&gt;
===== MLB(マルチレベル・バケット) =====&lt;br /&gt;
MLB(Multi-Level Buckets)&amp;lt;ref name=&amp;quot;mlb&amp;quot;&amp;gt;A. V. Goldberg, &amp;quot;A Simple Shortest Path Algorithm with Linear Average Time,&amp;quot; Technical Report STAR-TR-01-03, STAR Lab., InterTrust Tech., Inc., Santa Clara, CA, USA. 2001.&amp;lt;/ref&amp;gt;は, ヒープ系優先キュー, バケット系優先キューの双方の有効な特性を融合させた優先キューである. グラフ特性の影響は小さく安定かつ高速であるが, 非常にメモリ要求量が大きい. 1レベル・バケットとは異なり,MLBではバケットは &amp;lt;math&amp;gt;\lceil \log{U} \rceil + 1&amp;lt;/math&amp;gt;だけ用意すればよい. 点数''n'', 枝数''m'', 最大枝長''U''に対し, 1対全最短路問題の計算量は&amp;lt;math&amp;gt;O(m + n\log{U})&amp;lt;/math&amp;gt;となる. &lt;br /&gt;
&lt;br /&gt;
#グラフ特性の影響は小さく, 安定かつ高速&lt;br /&gt;
#バケットを決定には高速なビット演算で行う&lt;br /&gt;
#メモリ要求量が非常に大きい&lt;br /&gt;
&lt;br /&gt;
=====優先キューの比較=====&lt;br /&gt;
点数''n'', 枝数''m'', 最大枝数''U''であるグラフに対して, 計算量をまとめると表1のようになる.1対全最短路問題では, 枝数分の&amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt;と&amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt;, 点数分の&amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt;を行うことになる.また, その特性は図3となる. これは, 比較的小さいグラフに対し, 各枝長を&amp;lt;math&amp;gt;2^{t} (t=[-10,-9,..,9,10])&amp;lt;/math&amp;gt;倍し, 計算機実験を行った結果である. Buckets の特性がよく表れている.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+ 表1: 優先キューの計算量&lt;br /&gt;
! !! &amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt; !! &amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt; !! &amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt; !! 1対全最短路問題の計算量&lt;br /&gt;
|-&lt;br /&gt;
! 2-heap&lt;br /&gt;
| &amp;lt;math&amp;gt;O(\log{n})&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(\log{n})&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(\log{n}) &amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O((n+m)\log{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Buckets&lt;br /&gt;
| &amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(U)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(m+nU)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! MLB&lt;br /&gt;
| &amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(\log{U})&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(m+n\log{U})&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[画像:length-scaling2.png|thumb|center|500px|図3: 優先キューの特性]]&lt;br /&gt;
&lt;br /&gt;
====優先キューの性能====&lt;br /&gt;
2-heap, Buckets, MLB それぞれの全米道路ネットワークに対しての計算機実験を行い, 実行時間とメモリ要求量をまとめると,表2, 表3のようになる. 用いたグラフデータは, 約 2400 万点, 約 5800 万枝にも及ぶ道路ネットワークを変換させた大規模な実データである(TIGER/Line&amp;lt;ref&amp;gt;http://www.census.gov/geo/www/tiger/tigerua/ua_tgr2k.html&amp;lt;/ref&amp;gt;で公開されている). 実行時間は, ランダムに選択した1対1最短路問題を 256 回解いた際の平均である.&lt;br /&gt;
&lt;br /&gt;
最短路問題では計算量に対してデータ量が大規模であるため, データ型によるメモリ使用量や実行時間に対する影響が大きい. 各変数が 32ビット整数型と 64ビット変数型の 2 種類の計算機実験の結果を記載する. グラフデータは大規模であるが, 32ビット整数型の範囲で収まるため, どちらの場合でもアルゴリズムは正しく終了するが, 距離ラベルはいずれも 64ビット整数である. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+ 表2: 全米グラフの実行時間(単位は秒)&lt;br /&gt;
! !! 32ビット整数型 !! 64ビット整数型&lt;br /&gt;
|-&lt;br /&gt;
! 2-heap&lt;br /&gt;
| 2.47 || 3.14&lt;br /&gt;
|-&lt;br /&gt;
! Buckets&lt;br /&gt;
| 1.68 || 2.28&lt;br /&gt;
|-&lt;br /&gt;
! MLB&lt;br /&gt;
| 2.63 || 2.65&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+ 表3: 全米グラフのメモリ要求量(単位はGB)&lt;br /&gt;
! !! 32ビット整数型 !! 64ビット整数型&lt;br /&gt;
|-&lt;br /&gt;
! 2-heap&lt;br /&gt;
| 1.27 || 1.99&lt;br /&gt;
|-&lt;br /&gt;
! Buckets&lt;br /&gt;
| 1.09 || 1.62&lt;br /&gt;
|-&lt;br /&gt;
! MLB&lt;br /&gt;
| 2.17 || 2.17&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===大規模最短路問題に対する高速処理システム===&lt;br /&gt;
現在では Web 上で最短経路を求めるサービスが複数行われている(Google Maps&amp;lt;ref&amp;gt;http://maps.google.com/&amp;lt;/ref&amp;gt;や最短路問題オンラインソルバー&amp;lt;ref&amp;gt;http://opt.indsys.chuo-u.ac.jp/portal/&amp;lt;/ref&amp;gt;など).&lt;br /&gt;
&lt;br /&gt;
これらのシステムでは, 多くのユーザからの要求に対応する必要があるので, 単にダイクストラ法実行1回の処理を高速化するだけでなく, それらを並列に高速処理する技術が必要である.&lt;br /&gt;
&lt;br /&gt;
ユーザからの要求量は時間帯や突発的な事象によって大きく変動するため, 最大需要を見越した計算資源を保有しておくのは無駄が多くコストも増大してしまう. そこでクラウド・コンピューティング技術を用いて, 高負荷時には自動的に計算機資源の増大を行うシステムなどが必要になってくる. &lt;br /&gt;
&lt;br /&gt;
最近ではカーナビゲーション・システムの拡張として渋滞・事故情報をリアルタイムに把握しながら集約された大規模サーバで最短路を探索してユーザに結果を送信するシステムも構築されている. 動的な情報を考慮した最短路探索を行うことにより, これまでの経路探索に比べてより精度を向上させることができる. 特定の道路への集中を防ぐように交通量の分散を行うことで, 渋滞の緩和, 事故発生率の低下, 排出ガスの削減などを目指した交通管制を行うことも可能になると予想されている. &lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Fujimoto/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%95%8F%E9%A1%8C&amp;diff=11198</id>
		<title>利用者:Fujimoto/最短路問題</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Fujimoto/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%95%8F%E9%A1%8C&amp;diff=11198"/>
		<updated>2009-10-16T12:05:43Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: 画像追加、ひとまず完成&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''【さいたんろもんだい (shortest path problem)】'''&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&amp;lt;!-- 原稿では概要、詳説という分け方になっていないのですが、どうしましょうかね。 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
最短路問題は経路探索などの多くの応用を持ち, また他の[[最適化問題]]の子問題として用いられることも多く, 適用範囲の広い組合せ最適化問題である. そのため, 最短路問題を高速に解くことは重要な意味を持つ. 最短路問題に対する解法には, 安定的かつ効率的な高速な[[アルゴリズム]]が存在するが, 実問題は大規模(全米の道路ネットワークでは, 2400万点, 5800万枝にも及ぶ)になるため高速化が不可欠である.本解説では最短路問題の定義・種類を述べた後, 著名なアルゴリズムである[[ダイクストラ法]]に対する高速実装と実験結果等について説明を行う.&lt;br /&gt;
&lt;br /&gt;
== 詳説 ==&lt;br /&gt;
&lt;br /&gt;
=== 最短路問題の定義と種類 ===&lt;br /&gt;
最短路問題は次のような問題である.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 原稿では影付きボックスですが、それはさすがに難しいので単なるquotationにしています --&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
ある有向グラフ&amp;lt;math&amp;gt;G = (V, E)&amp;lt;/math&amp;gt; と各枝 &amp;lt;math&amp;gt;(v,w) \in E&amp;lt;/math&amp;gt; に重み &amp;lt;math&amp;gt;l(v,w)&amp;lt;/math&amp;gt; が付与されているネットワーク &amp;lt;math&amp;gt;N = (G,l)&amp;lt;/math&amp;gt; が与えられているとする. このとき有向グラフ &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; の任意の 2 点 &amp;lt;math&amp;gt;s, t \in V&amp;lt;/math&amp;gt; に対し, 点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; を始点とし, 点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; を終点とする有向パス &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; の中で, その長さ(パスに含まれる枝の重みの合計)が最小のパスを点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; から点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; への最短路 (shortest path) といい, 最短路を求める問題を最短路問題 (shortest path problem) という.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
最短路問題は次のように 3 種類に分けることができる.&lt;br /&gt;
&lt;br /&gt;
;1対全(single-source)最短路問題: 1点から全点に対する最短路と最短距離(最短路の長さ)を求める問題. 非負の枝の重みを持つグラフ上ではダイクストラ(Dijkstra)法が, 負の重みを持つ枝がある場合にはベルマン・フォード(Bellman-Ford)法が有名である. &lt;br /&gt;
;全対全(all-pairs)最短路問題: 全点間の最短路と最短距離を求める問題. ワーシャル・フロイド(Warshall-Folyd)法が有名であるが, 1対全最短路問題アルゴリズムを各点に対して適用することでも求めることができる.&lt;br /&gt;
;1対1(point-to-point)最短路問題: 2点間の最短路と最短距離を求める問題. &lt;br /&gt;
&lt;br /&gt;
=== 探索アルゴリズムと実装方法 ===&lt;br /&gt;
&lt;br /&gt;
最短路問題に関する探索アルゴリズムの中でも, 最も頻繁に利用されるダイクストラ法を取り上げ, アルゴリズムの説明から, 高速化のための優先キューの適用方法・実装方法について示していく.&lt;br /&gt;
&lt;br /&gt;
==== ダイクストラ法 ====&lt;br /&gt;
&lt;br /&gt;
1959年, E. W. Dijkstra&amp;lt;ref name=&amp;quot;dijkstra&amp;quot;&amp;gt;E. W. Dijkstra, &amp;quot;A Note on Two Problems in Connexion with Graphs,&amp;quot; Numerische Mathematik, 1:269-271, 1959.&amp;lt;/ref&amp;gt;によって提案された1対全最短路問題に対するアルゴリズムである. 探索するグラフ上の全ての枝の重みが非負でなければならないが, ベルマン・フォード法&amp;lt;ref&amp;gt;R. E. Bellman, &amp;quot;On a Routing Problem,&amp;quot; Quarterly of Applied Mathematics, 16:87-90, 1958.&amp;lt;/ref&amp;gt;に比べ効率的かつ高速である.ダイクストラ法は, ベルマン・フォード法と同じように動的計画法の一種とみなすことができるが, 点の探索の順序に特徴をもつ. 探索の途中で得られた始点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; からの距離の最小値をポテンシャルもしくは距離ラベルとよび, その値の小さい順に点の探索を行い,最短路および最短距離を確定していく. つまり, 各点に対し, &amp;lt;math&amp;gt;d(s) = 0, d(v) = +\infty (v \in V)&amp;lt;/math&amp;gt; とするポテンシャル &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; を用意し, 探索点 &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; に接続する枝 &amp;lt;math&amp;gt;(v,w)&amp;lt;/math&amp;gt; に対して, &amp;lt;math&amp;gt;d(v) + l(v,w) &amp;lt; d(w)&amp;lt;/math&amp;gt; ならば &amp;lt;math&amp;gt;d(w) := l(v,w) + d(v)&amp;lt;/math&amp;gt; とする操作を繰り返し行う. 終点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; が探索点になった時点で終了させることで, 1対1最短路問題も効率的に求解可能である.&lt;br /&gt;
&lt;br /&gt;
===== ダイクストラ法のアルゴリズム =====&lt;br /&gt;
&lt;br /&gt;
  1: ポテンシャル ''d'' の初期設定&lt;br /&gt;
  2: ''S'' := ''V''&lt;br /&gt;
  3: '''while''' &amp;lt;math&amp;gt;S \neq \emptyset&amp;lt;/math&amp;gt; '''do'''&lt;br /&gt;
  4:   &amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt; が最小の点 &amp;lt;math&amp;gt;v \in S&amp;lt;/math&amp;gt; を選択&lt;br /&gt;
  5:   ''S'' := &amp;lt;math&amp;gt;S \backslash \left\{ v \right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
  6:   '''for all''' (''v'', ''w'') '''do'''&lt;br /&gt;
  7:     '''if''' &amp;lt;math&amp;gt;d(v) +l(v,w) &amp;lt; d(w)&amp;lt;/math&amp;gt; '''then'''&lt;br /&gt;
  8:       &amp;lt;math&amp;gt;d(w) := d(v) +l(v,w)&amp;lt;/math&amp;gt;&lt;br /&gt;
  9:     '''end if'''&lt;br /&gt;
 10:   '''end for'''&lt;br /&gt;
 11: '''end while'''&lt;br /&gt;
&lt;br /&gt;
==== 高速化のための優先キューの利用 ====&lt;br /&gt;
ダイクストラ法は, 効率的かつ高速なアルゴリズムだが, 探索点を決定する操作([[#ダイクストラ法のアルゴリズム|アルゴリズム]]中の4行目,5行目)が, ボトルネックであることが知られている&amp;lt;ref name=&amp;quot;dijkstra&amp;quot; /&amp;gt;. 探索候補点集合(アルゴリズム中の''S'')に対して優先キューを適用することで, 改善できる.&lt;br /&gt;
&lt;br /&gt;
==== 優先キューの実装方法 ====&lt;br /&gt;
優先キューとは, データを優先度によって操作するデータ構造のことである. ダイクストラ法に適用する優先キューは,&amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt;と呼ばれる操作に対応している必要がある. &lt;br /&gt;
;&amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt;: ポテンシャル&amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt;を優先度として, 点&amp;lt;math&amp;gt;v \in V&amp;lt;/math&amp;gt;を優先キュー''Q''へ挿入する.&lt;br /&gt;
;&amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt;: 優先キュー内に格納されている点 &amp;lt;math&amp;gt;v \in Q&amp;lt;/math&amp;gt;の優先度&amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt;を, &amp;lt;math&amp;gt;d'(v)&amp;lt;/math&amp;gt;に更新する.&lt;br /&gt;
;&amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt;: 優先度&amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt;が最小である点&amp;lt;math&amp;gt;v \in Q&amp;lt;/math&amp;gt;を取り出し, 点''v''を次探索点とする.&lt;br /&gt;
ダイクストラ法では, 繰り返しこれらの操作を行うことになるため, より効率的なものを適用することで, 高速化が可能になる.&lt;br /&gt;
&lt;br /&gt;
==== データ構造の選択 ====&lt;br /&gt;
優先キューは, 木構造による安定した実行が可能なヒープ系データ構造と, データをルールに従いバケットに格納するバケット系データ構造とに分類が可能である. ここでは, それぞれの最も基本的なデータ構造であるバイナリ・ヒープと1レベル・バケットに加え, 実験的に最も高速であるといわれているマルチレベル・バケットを取り上げ, 比較を行う.&lt;br /&gt;
&lt;br /&gt;
===== 2-heap(バイナリ・ヒープ) =====&lt;br /&gt;
2-heap&amp;lt;ref name=&amp;quot;heap&amp;quot;&amp;gt;J. Williams, &amp;quot;Heapsort,&amp;quot; Communications of the ACM, 7:347-348, 1964.&amp;lt;/ref&amp;gt;は, 図1のように, 親は高々2つの子を持つ木構造で構成される. 常に親の優先度は子より高い. 点数 ''n'', 枝数 ''m'' に対して, 1対全最短路問題の計算量は &amp;lt;math&amp;gt;O((m+n)\log{n})&amp;lt;/math&amp;gt; である.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center; margin:0 auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Index&lt;br /&gt;
| 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14&lt;br /&gt;
|-&lt;br /&gt;
! Data&lt;br /&gt;
| 1 || 2 || 4 || 3 || 2 || 5 || 6 || 6 || 4 || 3 || 5 || 8 || 6 || 7 || 9&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[画像:heap-2.png|thumb|center|300px|図1: バイナリ・ヒープの例]]&lt;br /&gt;
&lt;br /&gt;
2-heapは以下の特徴をもつ.&lt;br /&gt;
#木構造により実行性能が安定している.&lt;br /&gt;
#メモリ要求量が大変少なく, データの局所性を高めやすい.&lt;br /&gt;
#木構造のためデータの読み書きが多発するので,データ交換操作がボトルネックとなりやすい.&lt;br /&gt;
&lt;br /&gt;
===== Buckets(1 レベル・バケット)=====&lt;br /&gt;
Buckets&amp;lt;ref name=&amp;quot;dial&amp;quot;&amp;gt;R. B. Dial, &amp;quot;Algorithm 360: Shortest Path Forest with Topological Ordering, &amp;quot; Comm. ACM, 12:632-633, 1969.&amp;lt;/ref&amp;gt;は, 最大枝長''U''に対し, &amp;lt;math&amp;gt;U+1&amp;lt;/math&amp;gt;個のバケットの循環リストとして構成される (図2). 点''v''のポテンシャル&amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt;に対し, &amp;lt;math&amp;gt;d(v)\mod(U+1)&amp;lt;/math&amp;gt;により操作するバケットを決定する. 各バケット内のデータは双方向リストで結ばれており, 同一バケット内に格納されている点の優先度は常に等しい. 1対全最短路問題の計算量は, 点数''n'', 枝数''m'', 最大枝長''U''に対し, &amp;lt;math&amp;gt;O(m+nU)&amp;lt;/math&amp;gt;である. &lt;br /&gt;
&lt;br /&gt;
#実行時間・メモリ要求量が, 最大枝長に依存する(重み小:高速, 重み大:低速).&lt;br /&gt;
#道路ネットワークグラフと相性が良い.&lt;br /&gt;
&lt;br /&gt;
[[画像:buckets-2.png|thumb|center|250px|図2: 1レベル・バケットの例]]&lt;br /&gt;
&lt;br /&gt;
===== MLB(マルチレベル・バケット) =====&lt;br /&gt;
MLB(Multi-Level Buckets)&amp;lt;ref name=&amp;quot;mlb&amp;quot;&amp;gt;A. V. Goldberg, &amp;quot;A Simple Shortest Path Algorithm with Linear Average Time,&amp;quot; Technical Report STAR-TR-01-03, STAR Lab., InterTrust Tech., Inc., Santa Clara, CA, USA. 2001.&amp;lt;/ref&amp;gt;は, ヒープ系優先キュー, バケット系優先キューの双方の有効な特性を融合させた優先キューである. グラフ特性の影響は小さく安定かつ高速であるが, 非常にメモリ要求量が大きい. 1レベル・バケットとは異なり,MLBではバケットは &amp;lt;math&amp;gt;\lceil \log{U} \rceil + 1&amp;lt;/math&amp;gt;だけ用意すればよい. 点数''n'', 枝数''m'', 最大枝長''U''に対し, 1対全最短路問題の計算量は&amp;lt;math&amp;gt;O(m + n\log{U})&amp;lt;/math&amp;gt;となる. &lt;br /&gt;
&lt;br /&gt;
#グラフ特性の影響は小さく, 安定かつ高速&lt;br /&gt;
#バケットを決定には高速なビット演算で行う&lt;br /&gt;
#メモリ要求量が非常に大きい&lt;br /&gt;
&lt;br /&gt;
=====優先キューの比較=====&lt;br /&gt;
点数''n'', 枝数''m'', 最大枝数''U''であるグラフに対して, 計算量をまとめると表1のようになる.1対全最短路問題では, 枝数分の&amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt;と&amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt;, 点数分の&amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt;を行うことになる.また, その特性は図3となる. これは, 比較的小さいグラフに対し, 各枝長を&amp;lt;math&amp;gt;2^{t} (t=[-10,-9,..,9,10])&amp;lt;/math&amp;gt;倍し, 計算機実験を行った結果である. Buckets の特性がよく表れている.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+ 表1: 優先キューの計算量&lt;br /&gt;
! !! &amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt; !! &amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt; !! &amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt; !! 1対全最短路問題の計算量&lt;br /&gt;
|-&lt;br /&gt;
! 2-heap&lt;br /&gt;
| &amp;lt;math&amp;gt;O(\log{n})&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(\log{n})&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(\log{n}) &amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O((n+m)\log{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Buckets&lt;br /&gt;
| &amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(U)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(m+nU)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! MLB&lt;br /&gt;
| &amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(\log{U})&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(m+n\log{U})&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[画像:length-scaling2.png|thumb|center|500px|図3: 優先キューの特性]]&lt;br /&gt;
&lt;br /&gt;
====優先キューの性能====&lt;br /&gt;
2-heap, Buckets, MLB それぞれの全米道路ネットワークに対しての計算機実験を行い, 実行時間とメモリ要求量をまとめると,表2, 表3のようになる. 用いたグラフデータは, 約 2400 万点, 約 5800 万枝にも及ぶ道路ネットワークを変換させた大規模な実データである(TIGER/Line&amp;lt;ref&amp;gt;http://www.census.gov/geo/www/tiger/tigerua/ua\_tgr2k.html&amp;lt;/ref&amp;gt;で公開されている). 実行時間は, ランダムに選択した1対1最短路問題を 256 回解いた際の平均である.&lt;br /&gt;
&lt;br /&gt;
最短路問題では計算量に対してデータ量が大規模であるため, データ型によるメモリ使用量や実行時間に対する影響が大きい. 各変数が 32ビット整数型と 64ビット変数型の 2 種類の計算機実験の結果を記載する. グラフデータは大規模であるが, 32ビット整数型の範囲で収まるため, どちらの場合でもアルゴリズムは正しく終了するが, 距離ラベルはいずれも 64ビット整数である. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+ 表2: 全米グラフの実行時間(単位は秒)&lt;br /&gt;
! !! 32ビット整数型 !! 64ビット整数型&lt;br /&gt;
|-&lt;br /&gt;
! 2-heap&lt;br /&gt;
| 2.47 || 3.14&lt;br /&gt;
|-&lt;br /&gt;
! Buckets&lt;br /&gt;
| 1.68 || 2.28&lt;br /&gt;
|-&lt;br /&gt;
! MLB&lt;br /&gt;
| 2.63 || 2.65&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+ 表3: 全米グラフのメモリ要求量(単位はGB)&lt;br /&gt;
! !! 32ビット整数型 !! 64ビット整数型&lt;br /&gt;
|-&lt;br /&gt;
! 2-heap&lt;br /&gt;
| 1.27 || 1.99&lt;br /&gt;
|-&lt;br /&gt;
! Buckets&lt;br /&gt;
| 1.09 || 1.62&lt;br /&gt;
|-&lt;br /&gt;
! MLB&lt;br /&gt;
| 2.17 || 2.17&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===大規模最短路問題に対する高速処理システム===&lt;br /&gt;
現在では Web 上で最短経路を求めるサービスが複数行われている(Google Maps&amp;lt;ref&amp;gt;http://maps.google.com/&amp;lt;/ref&amp;gt;や最短路問題オンラインソルバー&amp;lt;ref&amp;gt;http://opt.indsys.chuo-u.ac.jp/portal/&amp;lt;/ref&amp;gt;など).&lt;br /&gt;
&lt;br /&gt;
これらのシステムでは, 多くのユーザからの要求に対応する必要があるので, 単にダイクストラ法実行1回の処理を高速化するだけでなく, それらを並列に高速処理する技術が必要である.&lt;br /&gt;
&lt;br /&gt;
ユーザからの要求量は時間帯や突発的な事象によって大きく変動するため, 最大需要を見越した計算資源を保有しておくのは無駄が多くコストも増大してしまう. そこでクラウド・コンピューティング技術を用いて, 高負荷時には自動的に計算機資源の増大を行うシステムなどが必要になってくる. &lt;br /&gt;
&lt;br /&gt;
最近ではカーナビゲーション・システムの拡張として渋滞・事故情報をリアルタイムに把握しながら集約された大規模サーバで最短路を探索してユーザに結果を送信するシステムも構築されている. 動的な情報を考慮した最短路探索を行うことにより, これまでの経路探索に比べてより精度を向上させることができる. 特定の道路への集中を防ぐように交通量の分散を行うことで, 渋滞の緩和, 事故発生率の低下, 排出ガスの削減などを目指した交通管制を行うことも可能になると予想されている. &lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
安井雄一郎, 藤澤克樹, 笹島啓史, 後藤和茂, 宮本裕一郎, &amp;quot;大規模最短路問題に対するダイクストラ法の高速化,&amp;quot; 2008 年度日本 OR 学会秋季研究発表会. 314-315, 2008.&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Length-scaling2.png&amp;diff=11197</id>
		<title>ファイル:Length-scaling2.png</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Length-scaling2.png&amp;diff=11197"/>
		<updated>2009-10-16T11:52:33Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: ダイクストラ法の優先キューを実装する方法として, バイナリ・ヒープ(2-heap), 1レベル・バケット(buckets), マルチレベル・バケット(MLB)を用いた場合の比較.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ダイクストラ法の優先キューを実装する方法として, バイナリ・ヒープ(2-heap), 1レベル・バケット(buckets), マルチレベル・バケット(MLB)を用いた場合の比較.&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Heap-2.png&amp;diff=11196</id>
		<title>ファイル:Heap-2.png</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Heap-2.png&amp;diff=11196"/>
		<updated>2009-10-16T11:50:07Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: ダイクストラ法の優先キューを表すデータ構造のひとつである、バイナリヒープの例。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ダイクストラ法の優先キューを表すデータ構造のひとつである、バイナリヒープの例。&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Buckets-2.png&amp;diff=11195</id>
		<title>ファイル:Buckets-2.png</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Buckets-2.png&amp;diff=11195"/>
		<updated>2009-10-16T11:48:41Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: ダイクストラ法で用いられるデータ構造の1つである、1レベル・バケットの例。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ダイクストラ法で用いられるデータ構造の1つである、1レベル・バケットの例。&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Fujimoto/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%95%8F%E9%A1%8C&amp;diff=11194</id>
		<title>利用者:Fujimoto/最短路問題</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Fujimoto/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%95%8F%E9%A1%8C&amp;diff=11194"/>
		<updated>2009-10-13T12:03:58Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: Cite拡張を使って参考文献を埋め込み（いまいち）。いちおう全文整形。画像はまだ。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''【さいたんろもんだい (shortest path problem)】'''&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&amp;lt;!-- 原稿では概要、詳説という分け方になっていないのですが、どうしましょうかね。 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
最短路問題は経路探索などの多くの応用を持ち, また他の[[最適化問題]]の子問題として用いられることも多く, 適用範囲の広い組合せ最適化問題である. そのため, 最短路問題を高速に解くことは重要な意味を持つ. 最短路問題に対する解法には, 安定的かつ効率的な高速な[[アルゴリズム]]が存在するが, 実問題は大規模(全米の道路ネットワークでは, 2400万点, 5800万枝にも及ぶ)になるため高速化が不可欠である.本解説では最短路問題の定義・種類を述べた後, 著名なアルゴリズムである[[ダイクストラ法]]に対する高速実装と実験結果等について説明を行う.&lt;br /&gt;
&lt;br /&gt;
== 詳説 ==&lt;br /&gt;
&lt;br /&gt;
=== 最短路問題の定義と種類 ===&lt;br /&gt;
最短路問題は次のような問題である.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 原稿では影付きボックスですが、それはさすがに難しいので単なるquotationにしています --&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
ある有向グラフ&amp;lt;math&amp;gt;G = (V, E)&amp;lt;/math&amp;gt; と各枝 &amp;lt;math&amp;gt;(v,w) \in E&amp;lt;/math&amp;gt; に重み &amp;lt;math&amp;gt;l(v,w)&amp;lt;/math&amp;gt; が付与されているネットワーク &amp;lt;math&amp;gt;N = (G,l)&amp;lt;/math&amp;gt; が与えられているとする. このとき有向グラフ &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; の任意の 2 点 &amp;lt;math&amp;gt;s, t \in V&amp;lt;/math&amp;gt; に対し, 点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; を始点とし, 点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; を終点とする有向パス &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; の中で, その長さ(パスに含まれる枝の重みの合計)が最小のパスを点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; から点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; への最短路 (shortest path) といい, 最短路を求める問題を最短路問題 (shortest path problem) という.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
最短路問題は次のように 3 種類に分けることができる.&lt;br /&gt;
&lt;br /&gt;
;1対全(single-source)最短路問題: 1点から全点に対する最短路と最短距離(最短路の長さ)を求める問題. 非負の枝の重みを持つグラフ上ではダイクストラ(Dijkstra)法が, 負の重みを持つ枝がある場合にはベルマン・フォード(Bellman-Ford)法が有名である. &lt;br /&gt;
;全対全(all-pairs)最短路問題: 全点間の最短路と最短距離を求める問題. ワーシャル・フロイド(Warshall-Folyd)法が有名であるが, 1対全最短路問題アルゴリズムを各点に対して適用することでも求めることができる.&lt;br /&gt;
;1対1(point-to-point)最短路問題: 2点間の最短路と最短距離を求める問題. &lt;br /&gt;
&lt;br /&gt;
=== 探索アルゴリズムと実装方法 ===&lt;br /&gt;
&lt;br /&gt;
最短路問題に関する探索アルゴリズムの中でも, 最も頻繁に利用されるダイクストラ法を取り上げ, アルゴリズムの説明から, 高速化のための優先キューの適用方法・実装方法について示していく.&lt;br /&gt;
&lt;br /&gt;
==== ダイクストラ法 ====&lt;br /&gt;
&lt;br /&gt;
1959年, E. W. Dijkstra&amp;lt;ref name=&amp;quot;dijkstra&amp;quot;&amp;gt;E. W. Dijkstra, &amp;quot;A Note on Two Problems in Connexion with Graphs,&amp;quot; Numerische Mathematik, 1:269-271, 1959.&amp;lt;/ref&amp;gt;によって提案された1対全最短路問題に対するアルゴリズムである. 探索するグラフ上の全ての枝の重みが非負でなければならないが, ベルマン・フォード法&amp;lt;ref&amp;gt;R. E. Bellman, &amp;quot;On a Routing Problem,&amp;quot; Quarterly of Applied Mathematics, 16:87-90, 1958.&amp;lt;/ref&amp;gt;に比べ効率的かつ高速である.ダイクストラ法は, ベルマン・フォード法と同じように動的計画法の一種とみなすことができるが, 点の探索の順序に特徴をもつ. 探索の途中で得られた始点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; からの距離の最小値をポテンシャルもしくは距離ラベルとよび, その値の小さい順に点の探索を行い,最短路および最短距離を確定していく. つまり, 各点に対し, &amp;lt;math&amp;gt;d(s) = 0, d(v) = +\infty (v \in V)&amp;lt;/math&amp;gt; とするポテンシャル &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; を用意し, 探索点 &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; に接続する枝 &amp;lt;math&amp;gt;(v,w)&amp;lt;/math&amp;gt; に対して, &amp;lt;math&amp;gt;d(v) + l(v,w) &amp;lt; d(w)&amp;lt;/math&amp;gt; ならば &amp;lt;math&amp;gt;d(w) := l(v,w) + d(v)&amp;lt;/math&amp;gt; とする操作を繰り返し行う. 終点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; が探索点になった時点で終了させることで, 1対1最短路問題も効率的に求解可能である.&lt;br /&gt;
&lt;br /&gt;
===== ダイクストラ法のアルゴリズム =====&lt;br /&gt;
&lt;br /&gt;
  1: ポテンシャル ''d'' の初期設定&lt;br /&gt;
  2: ''S'' := ''V''&lt;br /&gt;
  3: '''while''' &amp;lt;math&amp;gt;S \neq \emptyset&amp;lt;/math&amp;gt; '''do'''&lt;br /&gt;
  4:   &amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt; が最小の点 &amp;lt;math&amp;gt;v \in S&amp;lt;/math&amp;gt; を選択&lt;br /&gt;
  5:   ''S'' := &amp;lt;math&amp;gt;S \backslash \left\{ v \right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
  6:   '''for all''' (''v'', ''w'') '''do'''&lt;br /&gt;
  7:     '''if''' &amp;lt;math&amp;gt;d(v) +l(v,w) &amp;lt; d(w)&amp;lt;/math&amp;gt; '''then'''&lt;br /&gt;
  8:       &amp;lt;math&amp;gt;d(w) := d(v) +l(v,w)&amp;lt;/math&amp;gt;&lt;br /&gt;
  9:     '''end if'''&lt;br /&gt;
 10:   '''end for'''&lt;br /&gt;
 11: '''end while'''&lt;br /&gt;
&lt;br /&gt;
==== 高速化のための優先キューの利用 ====&lt;br /&gt;
ダイクストラ法は, 効率的かつ高速なアルゴリズムだが, 探索点を決定する操作([[#ダイクストラ法のアルゴリズム|アルゴリズム]]中の4行目,5行目)が, ボトルネックであることが知られている&amp;lt;ref name=&amp;quot;dijkstra&amp;quot; /&amp;gt;. 探索候補点集合(アルゴリズム中の''S'')に対して優先キューを適用することで, 改善できる.&lt;br /&gt;
&lt;br /&gt;
==== 優先キューの実装方法 ====&lt;br /&gt;
優先キューとは, データを優先度によって操作するデータ構造のことである. ダイクストラ法に適用する優先キューは,&amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt;と呼ばれる操作に対応している必要がある. &lt;br /&gt;
;&amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt;: ポテンシャル&amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt;を優先度として, 点&amp;lt;math&amp;gt;v \in V&amp;lt;/math&amp;gt;を優先キュー''Q''へ挿入する.&lt;br /&gt;
;&amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt;: 優先キュー内に格納されている点 &amp;lt;math&amp;gt;v \in Q&amp;lt;/math&amp;gt;の優先度&amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt;を, &amp;lt;math&amp;gt;d'(v)&amp;lt;/math&amp;gt;に更新する.&lt;br /&gt;
;&amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt;: 優先度&amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt;が最小である点&amp;lt;math&amp;gt;v \in Q&amp;lt;/math&amp;gt;を取り出し, 点''v''を次探索点とする.&lt;br /&gt;
ダイクストラ法では, 繰り返しこれらの操作を行うことになるため, より効率的なものを適用することで, 高速化が可能になる.&lt;br /&gt;
&lt;br /&gt;
==== データ構造の選択 ====&lt;br /&gt;
優先キューは, 木構造による安定した実行が可能なヒープ系データ構造と, データをルールに従いバケットに格納するバケット系データ構造とに分類が可能である. ここでは, それぞれの最も基本的なデータ構造であるバイナリ・ヒープと1レベル・バケットに加え, 実験的に最も高速であるといわれているマルチレベル・バケットを取り上げ, 比較を行う.&lt;br /&gt;
&lt;br /&gt;
===== 2-heap(バイナリ・ヒープ) =====&lt;br /&gt;
2-heap&amp;lt;ref name=&amp;quot;heap&amp;quot;&amp;gt;J. Williams, &amp;quot;Heapsort,&amp;quot; Communications of the ACM, 7:347-348, 1964.&amp;lt;/ref&amp;gt;は, 図1のように, 親は高々2つの子を持つ木構造で構成される. 常に親の優先度は子より高い. 点数 ''n'', 枝数 ''m'' に対して, 1対全最短路問題の計算量は &amp;lt;math&amp;gt;O((m+n)\log{n})&amp;lt;/math&amp;gt; である.&lt;br /&gt;
&lt;br /&gt;
2-heapは以下の特徴をもつ.&lt;br /&gt;
#木構造により実行性能が安定している.&lt;br /&gt;
#メモリ要求量が大変少なく, データの局所性を高めやすい.&lt;br /&gt;
#木構造のためデータの読み書きが多発するので,データ交換操作がボトルネックとなりやすい.&lt;br /&gt;
&lt;br /&gt;
===== Buckets(1 レベル・バケット)=====&lt;br /&gt;
Buckets&amp;lt;ref name=&amp;quot;dial&amp;quot;&amp;gt;R. B. Dial, &amp;quot;Algorithm 360: Shortest Path Forest with Topological Ordering, &amp;quot; Comm. ACM, 12:632-633, 1969.&amp;lt;/ref&amp;gt;は, 最大枝長''U''に対し, &amp;lt;math&amp;gt;U+1&amp;lt;/math&amp;gt;個のバケットの循環リストとして構成される (図2). 点''v''のポテンシャル&amp;lt;math&amp;gt;d(v)&amp;lt;/math&amp;gt;に対し, &amp;lt;math&amp;gt;d(v)\mod(U+1)&amp;lt;/math&amp;gt;により操作するバケットを決定する. 各バケット内のデータは双方向リストで結ばれており, 同一バケット内に格納されている点の優先度は常に等しい. 1対全最短路問題の計算量は, 点数''n'', 枝数''m'', 最大枝長''U''に対し, &amp;lt;math&amp;gt;O(m+nU)&amp;lt;/math&amp;gt;である. &lt;br /&gt;
&lt;br /&gt;
#実行時間・メモリ要求量が, 最大枝長に依存する(重み小:高速, 重み大:低速).&lt;br /&gt;
#道路ネットワークグラフと相性が良い.&lt;br /&gt;
&lt;br /&gt;
===== MLB(マルチレベル・バケット) =====&lt;br /&gt;
MLB(Multi-Level Buckets)&amp;lt;ref name=&amp;quot;mlb&amp;quot;&amp;gt;A. V. Goldberg, &amp;quot;A Simple Shortest Path Algorithm with Linear Average Time,&amp;quot; Technical Report STAR-TR-01-03, STAR Lab., InterTrust Tech., Inc., Santa Clara, CA, USA. 2001.&amp;lt;/ref&amp;gt;は, ヒープ系優先キュー, バケット系優先キューの双方の有効な特性を融合させた優先キューである. グラフ特性の影響は小さく安定かつ高速であるが, 非常にメモリ要求量が大きい. 1レベル・バケットとは異なり,MLBではバケットは &amp;lt;math&amp;gt;\lceil \log{U} \rceil + 1&amp;lt;/math&amp;gt;だけ用意すればよい. 点数''n'', 枝数''m'', 最大枝長''U''に対し, 1対全最短路問題の計算量は&amp;lt;math&amp;gt;O(m + n\log{U})&amp;lt;/math&amp;gt;となる. &lt;br /&gt;
&lt;br /&gt;
#グラフ特性の影響は小さく, 安定かつ高速&lt;br /&gt;
#バケットを決定には高速なビット演算で行う&lt;br /&gt;
#メモリ要求量が非常に大きい&lt;br /&gt;
&lt;br /&gt;
=====優先キューの比較=====&lt;br /&gt;
点数''n'', 枝数''m'', 最大枝数''U''であるグラフに対して, 計算量をまとめると表1のようになる.1対全最短路問題では, 枝数分の&amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt;と&amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt;, 点数分の&amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt;を行うことになる.また, その特性は図3となる. これは, 比較的小さいグラフに対し, 各枝長を&amp;lt;math&amp;gt;2^{t} (t=[-10,-9,..,9,10])&amp;lt;/math&amp;gt;倍し, 計算機実験を行った結果である. Buckets の特性がよく表れている.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+ 表1: 優先キューの計算量&lt;br /&gt;
! !! &amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt; !! &amp;lt;code&amp;gt;decrease-key&amp;lt;/code&amp;gt; !! &amp;lt;code&amp;gt;extract-min&amp;lt;/code&amp;gt; !! 1対全最短路問題の計算量&lt;br /&gt;
|-&lt;br /&gt;
! 2-heap&lt;br /&gt;
| &amp;lt;math&amp;gt;O(\log{n})&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(\log{n})&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(\log{n}) &amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O((n+m)\log{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Buckets&lt;br /&gt;
| &amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(U)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(m+nU)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! MLB&lt;br /&gt;
| &amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(\log{U})&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;O(m+n\log{U})&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====優先キューの性能====&lt;br /&gt;
2-heap, Buckets, MLB それぞれの全米道路ネットワークに対しての計算機実験を行い, 実行時間とメモリ要求量をまとめると,表2, 表3のようになる. 用いたグラフデータは, 約 2400 万点, 約 5800 万枝にも及ぶ道路ネットワークを変換させた大規模な実データである(TIGER/Line&amp;lt;ref&amp;gt;http://www.census.gov/geo/www/tiger/tigerua/ua\_tgr2k.html&amp;lt;/ref&amp;gt;で公開されている). 実行時間は, ランダムに選択した1対1最短路問題を 256 回解いた際の平均である.&lt;br /&gt;
&lt;br /&gt;
最短路問題では計算量に対してデータ量が大規模であるため, データ型によるメモリ使用量や実行時間に対する影響が大きい. 各変数が 32ビット整数型と 64ビット変数型の 2 種類の計算機実験の結果を記載する. グラフデータは大規模であるが, 32ビット整数型の範囲で収まるため, どちらの場合でもアルゴリズムは正しく終了するが, 距離ラベルはいずれも 64ビット整数である. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+ 表2: 全米グラフの実行時間(単位は秒)&lt;br /&gt;
! !! 32ビット整数型 !! 64ビット整数型&lt;br /&gt;
|-&lt;br /&gt;
! 2-heap&lt;br /&gt;
| 2.47 || 3.14&lt;br /&gt;
|-&lt;br /&gt;
! Buckets&lt;br /&gt;
| 1.68 || 2.28&lt;br /&gt;
|-&lt;br /&gt;
! MLB&lt;br /&gt;
| 2.63 || 2.65&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+ 表3: 全米グラフのメモリ要求量(単位はGB)&lt;br /&gt;
! !! 32ビット整数型 !! 64ビット整数型&lt;br /&gt;
|-&lt;br /&gt;
! 2-heap&lt;br /&gt;
| 1.27 || 1.99&lt;br /&gt;
|-&lt;br /&gt;
! Buckets&lt;br /&gt;
| 1.09 || 1.62&lt;br /&gt;
|-&lt;br /&gt;
! MLB&lt;br /&gt;
| 2.17 || 2.17&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===大規模最短路問題に対する高速処理システム===&lt;br /&gt;
現在では Web 上で最短経路を求めるサービスが複数行われている(Google Maps&amp;lt;ref&amp;gt;http://maps.google.com/&amp;lt;/ref&amp;gt;や最短路問題オンラインソルバー&amp;lt;ref&amp;gt;http://opt.indsys.chuo-u.ac.jp/portal/&amp;lt;/ref&amp;gt;など).&lt;br /&gt;
&lt;br /&gt;
これらのシステムでは, 多くのユーザからの要求に対応する必要があるので, 単にダイクストラ法実行1回の処理を高速化するだけでなく, それらを並列に高速処理する技術が必要である.&lt;br /&gt;
&lt;br /&gt;
ユーザからの要求量は時間帯や突発的な事象によって大きく変動するため, 最大需要を見越した計算資源を保有しておくのは無駄が多くコストも増大してしまう. そこでクラウド・コンピューティング技術を用いて, 高負荷時には自動的に計算機資源の増大を行うシステムなどが必要になってくる. &lt;br /&gt;
&lt;br /&gt;
最近ではカーナビゲーション・システムの拡張として渋滞・事故情報をリアルタイムに把握しながら集約された大規模サーバで最短路を探索してユーザに結果を送信するシステムも構築されている. 動的な情報を考慮した最短路探索を行うことにより, これまでの経路探索に比べてより精度を向上させることができる. 特定の道路への集中を防ぐように交通量の分散を行うことで, 渋滞の緩和, 事故発生率の低下, 排出ガスの削減などを目指した交通管制を行うことも可能になると予想されている. &lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
安井雄一郎, 藤澤克樹, 笹島啓史, 後藤和茂, 宮本裕一郎, &amp;quot;大規模最短路問題に対するダイクストラ法の高速化,&amp;quot; 2008 年度日本 OR 学会秋季研究発表会. 314-315, 2008.&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Fujimoto/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%95%8F%E9%A1%8C&amp;diff=11193</id>
		<title>利用者:Fujimoto/最短路問題</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Fujimoto/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%95%8F%E9%A1%8C&amp;diff=11193"/>
		<updated>2009-09-26T11:08:16Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: &amp;quot;利用者:Fujimoto/最短路問題&amp;quot; を保護しました。 [edit=sysop:move=sysop]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''【さいたんろもんだい (shortest path problem)】'''&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&amp;lt;!-- 原稿では概要、詳説という分け方になっていないのですが、どうしましょうかね。 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
最短路問題は経路探索などの多くの応用を持ち, また他の[[最適化問題]]の子問題として用いられることも多く, 適用範囲の広い組合せ最適化問題である. そのため, 最短路問題を高速に解くことは重要な意味を持つ. 最短路問題に対する解法には, 安定的かつ効率的な高速な[[アルゴリズム]]が存在するが, 実問題は大規模(全米の道路ネットワークでは, 2400万点, 5800万枝にも及ぶ)になるため高速化が不可欠である.本解説では最短路問題の定義・種類を述べた後, 著名なアルゴリズムである[[ダイクストラ法]]に対する高速実装と実験結果等について説明を行う.&lt;br /&gt;
&lt;br /&gt;
== 詳説 ==&lt;br /&gt;
&lt;br /&gt;
=== 最短路問題の定義と種類 ===&lt;br /&gt;
最短路問題は次のような問題である.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 原稿では影付きボックスですが、それはさすがに難しいので単なるquotationにしています --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
ある有向グラフ&amp;lt;math&amp;gt;G = (V, E)&amp;lt;/math&amp;gt; と各枝 &amp;lt;math&amp;gt;(v,w) \in E&amp;lt;/math&amp;gt; に重み &amp;lt;math&amp;gt;l(v,w)&amp;lt;/math&amp;gt; が付与されているネットワーク &amp;lt;math&amp;gt;N = (G,l)&amp;lt;/math&amp;gt; が与えられているとする. このとき有向グラフ &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; の任意の 2 点 &amp;lt;math&amp;gt;s, t \in V&amp;lt;/math&amp;gt; に対し, 点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; を始点とし, 点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; を終点とする有向パス &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; の中で, その長さ(パスに含まれる枝の重みの合計)が最小のパスを点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; から点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; への最短路 (shortest path) といい, 最短路を求める問題を最短路問題 (shortest path problem) という.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
最短路問題は次のように 3 種類に分けることができる.&lt;br /&gt;
&lt;br /&gt;
;1対全(single-source)最短路問題: 1点から全点に対する最短路と最短距離(最短路の長さ)を求める問題. 非負の枝の重みを持つグラフ上ではダイクストラ(Dijkstra)法が, 負の重みを持つ枝がある場合にはベルマン・フォード(Bellman-Ford)法が有名である. &lt;br /&gt;
;全対全(all-pairs)最短路問題: 全点間の最短路と最短距離を求める問題. ワーシャル・フロイド(Warshall-Folyd)法が有名であるが, 1対全最短路問題アルゴリズムを各点に対して適用することでも求めることができる.&lt;br /&gt;
;1対1(point-to-point)最短路問題: 2点間の最短路と最短距離を求める問題. &lt;br /&gt;
&lt;br /&gt;
=== 探索アルゴリズムと実装方法 ===&lt;br /&gt;
&lt;br /&gt;
最短路問題に関する探索アルゴリズムの中でも, 最も頻繁に利用されるダイクストラ法を取り上げ, アルゴリズムの説明から, 高速化のための優先キューの適用方法・実装方法について示していく.&lt;br /&gt;
&lt;br /&gt;
==== ダイクストラ法 ====&lt;br /&gt;
&lt;br /&gt;
1959年, E. W. Dijkstra&amp;lt;ref&amp;gt;E. W. Dijkstra, &amp;quot;A Note on Two Problems in Connexion with Graphs,&amp;quot; Numerische Mathematik, 1:269-271, 1959.&amp;lt;/ref&amp;gt;によって提案された1 対全最短路問題に対するアルゴリズムである. 探索するグラフ上の全ての枝の重みが非負でなければならないが, ベルマン・フォード法{{ref|bellman}} に比べ効率的かつ高速である.ダイクストラ法は, ベルマン・フォード法と同じように動的計画法の一種とみなすことができるが, 点の探索の順序に特徴をもつ. 探索の途中で得られた始点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; からの距離の最小値をポテンシャルもしくは距離ラベルとよび, その値の小さい順に点の探索を行い,最短路および最短距離を確定していく. つまり, 各点に対し, &amp;lt;math&amp;gt;d(s) = 0, d(v) = +\infty (v \in V)&amp;lt;/math&amp;gt; とするポテンシャル &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; を用意し, 探索点 &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; に接続する枝 &amp;lt;math&amp;gt;(v,w)&amp;lt;/math&amp;gt; に対して, &amp;lt;math&amp;gt;d(v) + l(v,w) &amp;lt; d(w)&amp;lt;/math&amp;gt; ならば &amp;lt;math&amp;gt;d(w) := l(v,w) + d(v)&amp;lt;/math&amp;gt; とする操作を繰り返し行う. 終点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; が探索点になった時点で終了させることで, 1対1最短路問題も効率的に求解可能である.&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Fujimoto/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%95%8F%E9%A1%8C&amp;diff=11192</id>
		<title>利用者:Fujimoto/最短路問題</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Fujimoto/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%95%8F%E9%A1%8C&amp;diff=11192"/>
		<updated>2009-09-26T11:07:41Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: 新規項目「最短路問題」の途中まで入力。リファレンスを生成する拡張ライブラリが入っていなかったので作業中断。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''【さいたんろもんだい (shortest path problem)】'''&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&amp;lt;!-- 原稿では概要、詳説という分け方になっていないのですが、どうしましょうかね。 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
最短路問題は経路探索などの多くの応用を持ち, また他の[[最適化問題]]の子問題として用いられることも多く, 適用範囲の広い組合せ最適化問題である. そのため, 最短路問題を高速に解くことは重要な意味を持つ. 最短路問題に対する解法には, 安定的かつ効率的な高速な[[アルゴリズム]]が存在するが, 実問題は大規模(全米の道路ネットワークでは, 2400万点, 5800万枝にも及ぶ)になるため高速化が不可欠である.本解説では最短路問題の定義・種類を述べた後, 著名なアルゴリズムである[[ダイクストラ法]]に対する高速実装と実験結果等について説明を行う.&lt;br /&gt;
&lt;br /&gt;
== 詳説 ==&lt;br /&gt;
&lt;br /&gt;
=== 最短路問題の定義と種類 ===&lt;br /&gt;
最短路問題は次のような問題である.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 原稿では影付きボックスですが、それはさすがに難しいので単なるquotationにしています --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
ある有向グラフ&amp;lt;math&amp;gt;G = (V, E)&amp;lt;/math&amp;gt; と各枝 &amp;lt;math&amp;gt;(v,w) \in E&amp;lt;/math&amp;gt; に重み &amp;lt;math&amp;gt;l(v,w)&amp;lt;/math&amp;gt; が付与されているネットワーク &amp;lt;math&amp;gt;N = (G,l)&amp;lt;/math&amp;gt; が与えられているとする. このとき有向グラフ &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; の任意の 2 点 &amp;lt;math&amp;gt;s, t \in V&amp;lt;/math&amp;gt; に対し, 点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; を始点とし, 点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; を終点とする有向パス &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; の中で, その長さ(パスに含まれる枝の重みの合計)が最小のパスを点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; から点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; への最短路 (shortest path) といい, 最短路を求める問題を最短路問題 (shortest path problem) という.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
最短路問題は次のように 3 種類に分けることができる.&lt;br /&gt;
&lt;br /&gt;
;1対全(single-source)最短路問題: 1点から全点に対する最短路と最短距離(最短路の長さ)を求める問題. 非負の枝の重みを持つグラフ上ではダイクストラ(Dijkstra)法が, 負の重みを持つ枝がある場合にはベルマン・フォード(Bellman-Ford)法が有名である. &lt;br /&gt;
;全対全(all-pairs)最短路問題: 全点間の最短路と最短距離を求める問題. ワーシャル・フロイド(Warshall-Folyd)法が有名であるが, 1対全最短路問題アルゴリズムを各点に対して適用することでも求めることができる.&lt;br /&gt;
;1対1(point-to-point)最短路問題: 2点間の最短路と最短距離を求める問題. &lt;br /&gt;
&lt;br /&gt;
=== 探索アルゴリズムと実装方法 ===&lt;br /&gt;
&lt;br /&gt;
最短路問題に関する探索アルゴリズムの中でも, 最も頻繁に利用されるダイクストラ法を取り上げ, アルゴリズムの説明から, 高速化のための優先キューの適用方法・実装方法について示していく.&lt;br /&gt;
&lt;br /&gt;
==== ダイクストラ法 ====&lt;br /&gt;
&lt;br /&gt;
1959年, E. W. Dijkstra&amp;lt;ref&amp;gt;E. W. Dijkstra, &amp;quot;A Note on Two Problems in Connexion with Graphs,&amp;quot; Numerische Mathematik, 1:269-271, 1959.&amp;lt;/ref&amp;gt;によって提案された1 対全最短路問題に対するアルゴリズムである. 探索するグラフ上の全ての枝の重みが非負でなければならないが, ベルマン・フォード法{{ref|bellman}} に比べ効率的かつ高速である.ダイクストラ法は, ベルマン・フォード法と同じように動的計画法の一種とみなすことができるが, 点の探索の順序に特徴をもつ. 探索の途中で得られた始点 &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; からの距離の最小値をポテンシャルもしくは距離ラベルとよび, その値の小さい順に点の探索を行い,最短路および最短距離を確定していく. つまり, 各点に対し, &amp;lt;math&amp;gt;d(s) = 0, d(v) = +\infty (v \in V)&amp;lt;/math&amp;gt; とするポテンシャル &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; を用意し, 探索点 &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; に接続する枝 &amp;lt;math&amp;gt;(v,w)&amp;lt;/math&amp;gt; に対して, &amp;lt;math&amp;gt;d(v) + l(v,w) &amp;lt; d(w)&amp;lt;/math&amp;gt; ならば &amp;lt;math&amp;gt;d(w) := l(v,w) + d(v)&amp;lt;/math&amp;gt; とする操作を繰り返し行う. 終点 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; が探索点になった時点で終了させることで, 1対1最短路問題も効率的に求解可能である.&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%BE%85%E3%81%A1%E8%A1%8C%E5%88%97%E3%83%A2%E3%83%87%E3%83%AB&amp;diff=11191</id>
		<title>待ち行列モデル</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%BE%85%E3%81%A1%E8%A1%8C%E5%88%97%E3%83%A2%E3%83%87%E3%83%AB&amp;diff=11191"/>
		<updated>2009-06-30T08:42:24Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: GIFアニメーションの例として待ち行列を作成、添付&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''【まちぎょうれつもでる (queueing model)】'''&lt;br /&gt;
&lt;br /&gt;
[[画像:queue.gif|thumb|421px|単一窓口待ち行列の挙動]]&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&lt;br /&gt;
混雑現象を解析するための代表的なモデル群の1つ．単一の待ち行列モデルは，客の到着，窓口における客のサービス，サービスを待つ客が成す待ち行列，などから構成され，平均待ち時間などによって混雑の程度が評価される．近年，待ち行列がネットワーク状につながった&amp;quot;[[待ち行列ネットワーク]]&amp;quot;が積極的に解析され，コンピュータシステムや通信システムなどの性能評価に利用されている．&lt;br /&gt;
&lt;br /&gt;
　応用分野については，次の各項目を参照のこと：待ち行列の[[待ち行列の通信への応用|通信への応用]]，待ち行列の[[待ち行列のコンピュータへの応用|コンピュータへの応用]]，待ち行列の[[待ち行列の生産システムへの応用|生産システムへの応用]]．&lt;br /&gt;
&lt;br /&gt;
== 詳説 ==&lt;br /&gt;
&lt;br /&gt;
=== 混雑現象 ===&lt;br /&gt;
　われわれの身の回りには，[[混雑現象]]が主因となっている問題がたくさん存在する[5]．たとえば，通勤電車，繁華街，行楽地，イベント会場などにおける混雑，高速道路や幹線道路の渋滞， スーパーのレジや銀行の ATM における行列，病院での待ち，携帯電話の不接続，などなど．また，人間が待たされるわけではないが，商品の在庫，仕事の滞貨，注文残，考えようによっては洪水などというのもある．コンピュータの中では複数のジョブが CPU や I/O (Disk など) で待ち行列を作って処理されているし，情報通信ネットワークでも，情報があちこちのノードで少しずつ待たされながら目的地に運ばれる．&lt;br /&gt;
&lt;br /&gt;
　このような混雑現象は，需要つまりサービス要求量が一時的にサービス能力を超えることから生じており，次のようにいろいろな方法で処理されている．&lt;br /&gt;
&lt;br /&gt;
a.　サービス処理能力を需要にあわせて変動させる (電力会社は，火力発電や水力発電で発電量を細かく調整している)．&lt;br /&gt;
&lt;br /&gt;
b.　サービス品質を落として処理能力を一時的に上げる (通勤電車では客が多くなると尻押しをしてでも詰め込む)．&lt;br /&gt;
&lt;br /&gt;
c.　バッファで一時的な超過分を吸収する (行列で待たせる)．&lt;br /&gt;
&lt;br /&gt;
d.　サービスを拒否する (携帯電話では当然のように行われる)．&lt;br /&gt;
&lt;br /&gt;
=== 混雑現象のためのモデル ===&lt;br /&gt;
　a．の追随型とb．の品質低下型は，混雑に対する対応がリアルタイムであるため，需要の変動パターンがわかれば，混雑の程度の解析は比較的容易である．これに対してc．のバッファ型とd．の拒絶型，とくにc.　は，システムの挙動がサービスの仕方とも関連して複雑であり，モデルによる検討が必要になることが多い．そのモデルも，需要の変動パターンによって使い分けが必要である．&lt;br /&gt;
&lt;br /&gt;
　i)　サービス要求量の増大が一定時間続くラッシュアワー型の場合&lt;br /&gt;
&lt;br /&gt;
　ii)　偶然変動による比較的短時間の増大が繰り返し生じる確率型の場合&lt;br /&gt;
&lt;br /&gt;
である．むろんそれらが複合していることもある．&lt;br /&gt;
&lt;br /&gt;
=== 流体近似モデル ===&lt;br /&gt;
　i) のラッシュアワー型の解析は，[[流体近似]] (fluid approximation) を使ってなされることが多い．これは水道の水のように，サービス要求がある率でバッファに入ってきて，ある率で流れ出ていく，と考えるものである (図1)．このとき，時刻 &amp;lt;math&amp;gt;t\, &amp;lt;/math&amp;gt; における入力率を &amp;lt;math&amp;gt;\lambda_t\, &amp;lt;/math&amp;gt;，出力率 (バッファに貯まっているときに出力する率) を &amp;lt;math&amp;gt;\mu_t\, &amp;lt;/math&amp;gt; とすると，時刻 &amp;lt;math&amp;gt;t\, &amp;lt;/math&amp;gt; におけるバッファの内容量 &amp;lt;math&amp;gt;Q_t\, &amp;lt;/math&amp;gt; は，微分方程式&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;table&amp;gt; &lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\mbox{d} Q_t}{\mbox{d} t} = \Biggl\{ \Biggr. \, \, &amp;lt;/math&amp;gt; &lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;table&amp;gt; &lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;math&amp;gt; \lambda_t - \mu_t \,\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;　　&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;math&amp;gt; \lambda_t &amp;gt; \mu_t \,\, &amp;lt;/math&amp;gt;または&amp;lt;math&amp;gt; Q_t&amp;gt;0 \,\, &amp;lt;/math&amp;gt;　のとき&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;math&amp;gt; 0 \, \, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td align=&amp;quot;left&amp;quot;&amp;gt;その他&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
で記述される．ただしこの微分方程式を使わなくても，時間区間 &amp;lt;math&amp;gt;(0, t]\, &amp;lt;/math&amp;gt; における累積入力量&amp;lt;math&amp;gt;\textstyle A_t = \int_0^\infty \lambda_t \, dt\, &amp;lt;/math&amp;gt; のグラフから累積出力量 &amp;lt;math&amp;gt;D_t\, &amp;lt;/math&amp;gt; のグラフを描くことができ，それらの差 &amp;lt;math&amp;gt;Q_t=A_t - D_t\, &amp;lt;/math&amp;gt; から時刻 &amp;lt;math&amp;gt;t\, &amp;lt;/math&amp;gt; におけるバッファーの内容量を求めることができる [2,5]．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td align=center&amp;gt;[[画像:sk-0112-b-a-01-2.png]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=center&amp;gt;図１：流体近似 : 水道のイメージ&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
\begin{figure} \setlength{\unitlength}{.6mm} \begin{center} \begin{picture}(60, 35)(0, 5) \thicklines \put(10, 39){\line(1, 0){16}} \put(26, 32){\oval(14, 14)[tr]} \put(33, 32){\line(0, -1){4}} \put(10, 34){\line(1, 0){14}} \put(24, 31){\oval(6, 6)[tr]} \put(27, 31){\line(0, -1){3}} \put(23, 39){\line(0, 1){3}} \put(21, 39){\line(0, 1){3}} \put(22, 43.5){\oval(8, 3)} &lt;br /&gt;
&lt;br /&gt;
\put(0, 15){\oval(8, 14)[tr]} \put(14, 15){\oval(20, 14)[bl]} \put(14, 5){\oval(24, 6)[tr]} \put(60, 15){\oval(8, 14)[tl]} \put(46, 15){\oval(20, 14)[br]} \put(46, 5){\oval(24, 6)[tl]} &lt;br /&gt;
&lt;br /&gt;
\thinlines \put(4, 18){\line(1, 0){52}} \multiput(27.5, 29)(1, 0){6}{\line(0, -1){5}} \multiput(26.5, 4)(1, 0){8}{\line(0, -1){4}} \end{picture} \end{center} \caption{流体近似 : 水道のイメージ} \label{B-A-01+suidou} \end{figure} &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 待ち行列モデル ===&lt;br /&gt;
　サービス要求量の変動が ii) の確率型の場合は，[[待ち行列モデル]] (queueing model) や [[在庫モデル]] (inventory model)，[[ダムモデル]] (dam model) などを使って解析される [1，2]．ここでは待ち行列モデルを主に説明しよう．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td align=center&amp;gt;[[画像:sk-0112-b-a-01-3.png]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=center&amp;gt;図２：待ち行列のイメージ図&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
\begin{figure} \setlength{\unitlength}{1mm} \begin{center} \thicklines \begin{picture}(65, 20)(0, 7) \put(10, 15){\vector(1, 0){7.5}} \put(45, 15){\vector(1, 0){7.5}} \put(20, 12.5){\line(1, 0){15}} \put(20, 17.5){\line(1, 0){15}} \put(25, 12.5){\line(0, 1){5}} \put(30, 12.5){\line(0, 1){5}} \put(35, 12.5){\line(0, 1){5}} \put(37.5, 10){\line(0, 1){10}} \put(42.5, 10){\line(0, 1){10}} \put(37.5, 10){\line(1, 0){5}} \put(37.5, 15){\line(1, 0){5}} \put(37.5, 20){\line(1, 0){5}} \put(32.5, 15){\circle{4}} \put(40, 12.5){\circle{4}} \put(40, 17.5){\circle{4}} &lt;br /&gt;
&lt;br /&gt;
\put(0, 15){\makebox(0, 0){客の到着}} \put(25.5, 7){\makebox(0, 0){待ち行列}} \put(40, 4){\makebox(0, 0){窓口}} \put(57.5, 15){\makebox(0, 0){退去}} %\put(27.5, 23){\makebox(0, 0){待ち時間}} %\put(40, 27.5){\makebox(0, 0){サービス時間}} \end{picture} \end{center} \caption{待ち行列のイメージ図} \label{B-A-01+queue1} \end{figure} &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
　待ち行列モデルは，図2のように，あるサービスステーションに[[客]](customer)が[[到着]]し， そこである種の[[サービス]] (service) をうけ，系外に立ち去る，という[[サービスシステム]] (servicing system) のモデルである．サービスステーションは，通常，サービスが行われる[[窓口]] (channel) と，到着した客がサービスを受けるために待つ[[待ち行列]] (queue) とから成る．この待ち行列が[[バッファ]] (buffer) の役割を果たす．待つことのできる客の数に制限がある場合，待合室という概念を導入することもある．このとき待合室の容量が，待つことのできる客の数の上限となる．&lt;br /&gt;
&lt;br /&gt;
　客，窓口，待合室などは，モデルによってさまざまなものに対応する．ある種の生産システムでは，客は製品や部品であり，窓口は加工機，検査機，組立台など，そして待合室は仮置き台などである．コンピュータの性能評価では，客はジョブであり，窓口は CPU や DISK，待合室は各所のメモリである．また情報通信ネットワークの性能評価では，セルやパケットといった情報の塊が客であり，各種のスイッチ類やチャネルが窓口，バッファメモリが待合室として扱われる．&lt;br /&gt;
&lt;br /&gt;
=== 性能評価指標，混雑指標 ===&lt;br /&gt;
　図2のような標準的なモデルでは，[[利用率]] (traffic intensity)，&amp;lt;math&amp;gt;\rho\, &amp;lt;/math&amp;gt; というのが重要なシステムパラメータである．これは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[画像:sk-0112-b-a-01-1.png]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
\[&lt;br /&gt;
\rho = \frac{サービス要求量}{サービス処理能力}&lt;br /&gt;
\]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
という形で定義される．たとえば客が平均 &amp;lt;math&amp;gt;\lambda^{-1}\, &amp;lt;/math&amp;gt; の間隔で到着し，&amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt; 個の窓口で平均 &amp;lt;math&amp;gt;\mu^{-1}\, &amp;lt;/math&amp;gt; のサービスが行われるようなシステムでは，&amp;lt;math&amp;gt;\rho=\lambda/c \mu\, &amp;lt;/math&amp;gt; である．多くの場合，&amp;lt;math&amp;gt;\rho&amp;lt;1\, &amp;lt;/math&amp;gt; であれば，システムは[[平衡状態]](stationary) とよばれる安定な状態へ向かい，確率論的な解析が可能となる．&lt;br /&gt;
&lt;br /&gt;
　一般に，&amp;lt;math&amp;gt;\rho\, &amp;lt;/math&amp;gt; が 0に近いときは混雑はほとんどなく，1に近づくにつれて混雑がひどくなる．このような混雑を評価する指標としては，[[待ち時間]] (waiting time) (客が待ち行列で待たされる時間)，[[滞在時間]] (sojourn time) (客が到着してからサービスが終了するまでの時間)，[[待ち行列長]] (queue length) (待ち行列で待っている客の数)，[[系内人数]] (number of customers in the system) (待ち行列と窓口にいる客の数) などの平均や分散，または分布などが用いられる．&lt;br /&gt;
&lt;br /&gt;
　[[待合室の容量]] (capacity of waiting room) が有限で，システムに入れる客の数に制限がある場合，[[呼損率]] (loss probability) も重要な指標である．これは到着した客のうち待合室が一杯でサービスを受けられずに退去する客の割合である．ここで &amp;quot;呼 (こ，よび)&amp;quot; という耳慣れない言葉が使われているが，これは電話をかけるときの接続要求のことで，待ち行列理論がデンマークの電話技術者[[アーラン, アグナー・K|アーラン]](A. K. Erlang) によって20世紀の初頭に始められ以来，電話の交換機の適正数を評価するのに[[有限待合室モデル|有限待合室のモデル]] (finite-buffer model) がずっと使われてきたという経緯からきている [4]．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 読書案内 ===&lt;br /&gt;
　近年，待ち行列理論の分野では，情報通信技術の発達などと歩調を合わせて，より複雑でより一般的な状況の下でのモデル解析が進められている．待ち行列理論関係の参考書は，日本オペレーションズリサーチ学会待ち行列研究部会のホームページに「待ち行列関係書籍（和書）」としてまとめられている．[7] 中でも [5] は混雑現象全般にわたって解説されているので，初学者には参考になるだろう．[6] は初学者から専門の研究者まで幅広い読者層を想定して，待ち行列理論の基本的な項目が解説されている．英語の書籍の紹介は [3,4] にある．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== 参考文献 ===&lt;br /&gt;
&lt;br /&gt;
[1] 森村英典，大前義次，『応用待ち行列理論』，日科技連出版社，1975．ISBN 481715313X&lt;br /&gt;
&lt;br /&gt;
[2] 高橋幸雄，「入門講座，やさしい待ち行列(1)～(4)」，『オペレーションズ・リサーチ』，'''40''' (1995)，649-654，716-721，'''41''' (1996)，35-40，100-105．https://orsj.org/wp-content/or-archives50/pdf/bul/Vol.41_01_035.pdf&lt;br /&gt;
&lt;br /&gt;
[3] 高橋敬隆，高橋幸雄，牧本直樹，「入門講座，やさしい待ち行列 (補遺) ― 待ち行列の本」，『オペレーションズ・リサーチ』，'''41''' (1996)，106-107．https://orsj.org/wp-content/or-archives50/pdf/bul/Vol.41_02_106.pdf&lt;br /&gt;
&lt;br /&gt;
[4] 高橋幸雄，「講座，待ち行列研究の新しい潮流 (1)― 待ち行列研究の変遷」，『オペレーションズ・リサーチ』，'''43''' (1998)，495-499.&lt;br /&gt;
&lt;br /&gt;
[5] 高橋幸雄，森村英典，『混雑と待ち』，朝倉書店，2001．ISBN: 425427517X&lt;br /&gt;
&lt;br /&gt;
[6] 宮沢 政清，『待ち行列の数理とその応用』，牧野書店，2006．ISBN-13: 978-4434076978&lt;br /&gt;
&lt;br /&gt;
[7] 日本オペレーションズリサーチ学会待ち行列研究部会&lt;br /&gt;
https://orsj.org/queue/&lt;br /&gt;
[[category:確率と確率過程|まちぎょうれつ]]&lt;br /&gt;
&lt;br /&gt;
[[category:待ち行列|まちぎょうれつ]]&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Queue.gif&amp;diff=11190</id>
		<title>ファイル:Queue.gif</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Queue.gif&amp;diff=11190"/>
		<updated>2009-06-30T08:38:47Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: 待ち行列の挙動（GIFアニメーション）。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;待ち行列の挙動（GIFアニメーション）。&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=Portal:%E5%BE%85%E3%81%A1%E8%A1%8C%E5%88%97&amp;diff=11184</id>
		<title>Portal:待ち行列</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=Portal:%E5%BE%85%E3%81%A1%E8%A1%8C%E5%88%97&amp;diff=11184"/>
		<updated>2009-05-27T11:10:05Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: 試験的にポータルを作成&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;このページは、[[待ち行列]]分野のポータルです。待ち行列に関連した項目を探しやすい形で列挙し、利用や発展をうながすことを目的としています。&lt;br /&gt;
&lt;br /&gt;
（'''注意：'''このページは[[OR事典編集委員会]]において試験的に作成されたものであり、情報の正確さは保証されません。）&lt;br /&gt;
&lt;br /&gt;
==主要項目==&lt;br /&gt;
{| &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;padding-right:0.5em;&amp;quot;|&lt;br /&gt;
===基礎===&lt;br /&gt;
待ち行列とはどのようなものかを理解する助けになるページ群です。&lt;br /&gt;
&lt;br /&gt;
*[[待ち行列モデル]]&lt;br /&gt;
*[[《待ち行列モデルの標準形》]]&lt;br /&gt;
*[[ケンドールの記号]]&lt;br /&gt;
*[[《待ち行列の各種モデル》]]&lt;br /&gt;
**[[待ち行列モデル M/M/1]]&lt;br /&gt;
**[[有限待合室モデル]]&lt;br /&gt;
***[[待ち行列モデル M/M/c/c]]&lt;br /&gt;
**[[待ち行列モデル M/M/c]]&lt;br /&gt;
**[[待ち行列モデル M/G/1]]&lt;br /&gt;
**[[待ち行列のバケーションサーバモデル]]&lt;br /&gt;
**[[ポーリングモデル]]&lt;br /&gt;
**[[集団待ち行列]]&lt;br /&gt;
**[[再呼モデル]]&lt;br /&gt;
**[[優先権待ち行列]]&lt;br /&gt;
*[[待ち行列ネットワーク]]&lt;br /&gt;
**[[積形式ネットワーク]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;padding-left:0.5em;&amp;quot;|&lt;br /&gt;
===理論===&lt;br /&gt;
待ち行列分野の研究から導かれた、各種の理論的成果です。&lt;br /&gt;
*[[アーランの損失式]]&lt;br /&gt;
*[[リトルの公式]]&lt;br /&gt;
*[[PASTA]]&lt;br /&gt;
*[[積形式解]]&lt;br /&gt;
&lt;br /&gt;
===応用===&lt;br /&gt;
待ち行列を工学的な諸分野に応用する参考になるページです。[[事例編：待ち行列]]もあわせて参照して下さい。&lt;br /&gt;
*[[待ち行列の通信への応用]]&lt;br /&gt;
*[[待ち行列のコンピュータへの応用]]&lt;br /&gt;
*[[待ち行列の生産システムへの応用]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==関連分野==&lt;br /&gt;
待ち行列解析で重要な役割を果たす関連分野です。&lt;br /&gt;
*[[《確率論》]]&lt;br /&gt;
*[[確率過程]]&lt;br /&gt;
**[[マルコフ連鎖]]&lt;br /&gt;
*[[シミュレーション]]&lt;br /&gt;
&lt;br /&gt;
==外部リンク==&lt;br /&gt;
*[https://orsj.org/queue/ 日本オペレーションズ・リサーチ学会待ち行列研究部会] - 待ち行列の理論および応用を専門とする研究者の集まりです。&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
[[Category:待ち行列|*]]&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Sakasegawa&amp;diff=9999</id>
		<title>利用者・トーク:Sakasegawa</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Sakasegawa&amp;diff=9999"/>
		<updated>2008-09-25T09:17:03Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: 業務連絡&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==資料の件==&lt;br /&gt;
[[利用者:Fujimoto|Fujimoto]]です。本日の資料をメールで送ってありますのでご確認ください。（これで伝わるかなあ）--[[利用者:Fujimoto|Fujimoto]] 2008年9月25日 (金) 18:17 (JST)&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%BE%85%E3%81%A1%E8%A1%8C%E5%88%97%E3%83%A2%E3%83%87%E3%83%AB&amp;diff=9997</id>
		<title>待ち行列モデル</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%BE%85%E3%81%A1%E8%A1%8C%E5%88%97%E3%83%A2%E3%83%87%E3%83%AB&amp;diff=9997"/>
		<updated>2008-09-25T07:30:19Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: ISBN&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''【まちぎょうれつもでる (queueing model)】'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&lt;br /&gt;
混雑現象を解析するための代表的なモデル群の1つ. 単一の待ち行列モデルは, 客の到着, 窓口における客のサービス, サービスを待つ客が成す待ち行列, などから構成され, 平均待ち時間などによって混雑の程度が評価される. 近年, 待ち行列がネットワーク状につながった&amp;quot;[[待ち行列ネットワーク]]&amp;quot;が積極的に解析され, コンピュータシステムや通信システムなどの性能評価に利用されている.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 詳説 ==&lt;br /&gt;
&lt;br /&gt;
=== 混雑現象 ===&lt;br /&gt;
　われわれの身の回りには, [[混雑現象]]が主因となっている問題がたくさん存在する[5]. たとえば, 通勤電車, 繁華街, 行楽地, イベント会場などにおける混雑, 高速道路や幹線道路の渋滞,  スーパーのレジや銀行の ATM における行列, 病院での待ち, 携帯電話の不接続, などなど. また, 人間が待たされるわけではないが, 商品の在庫, 仕事の滞貨, 注文残, 考えようによっては洪水などというのもある. コンピュータの中では複数のジョブが CPU や I/O (Disk など) で待ち行列を作って処理されているし, 情報通信ネットワークでも, 情報があちこちのノードで少しずつ待たされながら目的地に運ばれる. &lt;br /&gt;
&lt;br /&gt;
　このような混雑現象は, 需要つまりサービス要求量が一時的にサービス能力を超えることから生じており, 次のようにいろいろな方法で処理されている. &lt;br /&gt;
&lt;br /&gt;
a.　サービス処理能力を需要にあわせて変動させる (電力会社は, 火力発電や水力発電で発電量を細かく調整している). &lt;br /&gt;
&lt;br /&gt;
b.　サービス品質を落として処理能力を一時的に上げる (通勤電車では客が多くなると尻押しをしてでも詰め込む). &lt;br /&gt;
&lt;br /&gt;
c.　バッファで一時的な超過分を吸収する (行列で待たせる). &lt;br /&gt;
&lt;br /&gt;
d.　サービスを拒否する (携帯電話では当然のように行われる). &lt;br /&gt;
&lt;br /&gt;
=== 混雑現象のためのモデル ===&lt;br /&gt;
　a. の追随型とb. の品質低下型は, 混雑に対する対応がリアルタイムであるため, 需要の変動パターンがわかれば, 混雑の程度の解析は比較的容易である. これに対してc. のバッファ型とd. の拒絶型, とくにc.　は, システムの挙動がサービスの仕方とも関連して複雑であり, モデルによる検討が必要になることが多い. そのモデルも, 需要の変動パターンによって使い分けが必要である. &lt;br /&gt;
&lt;br /&gt;
　i)　サービス要求量の増大が一定時間続くラッシュアワー型の場合&lt;br /&gt;
&lt;br /&gt;
　ii)　偶然変動による比較的短時間の増大が繰り返し生じる確率型の場合&lt;br /&gt;
&lt;br /&gt;
である. むろんそれらが複合していることもある. &lt;br /&gt;
&lt;br /&gt;
=== 流体近似モデル ===&lt;br /&gt;
　i) のラッシュアワー型の解析は, [[流体近似]] (fluid approximation) を使ってなされることが多い. これは水道の水のように, サービス要求がある率でバッファに入ってきて, ある率で流れ出ていく, と考えるものである (図1). このとき, 時刻 &amp;lt;math&amp;gt;t\, &amp;lt;/math&amp;gt; における入力率を &amp;lt;math&amp;gt;\lambda_t\, &amp;lt;/math&amp;gt;, 出力率 (バッファに貯まっているときに出力する率) を &amp;lt;math&amp;gt;\mu_t\, &amp;lt;/math&amp;gt; とすると, 時刻 &amp;lt;math&amp;gt;t\, &amp;lt;/math&amp;gt; におけるバッファの内容量 &amp;lt;math&amp;gt;Q_t\, &amp;lt;/math&amp;gt; は, 微分方程式&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;table&amp;gt; &lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\mbox{d} Q_t}{\mbox{d} t} = \Biggl\{ \Biggr. \, \, &amp;lt;/math&amp;gt; &lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;table&amp;gt; &lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;math&amp;gt; \lambda_t - \mu_t \,\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;　　&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;math&amp;gt; \lambda_t &amp;gt; \mu_t \,\, &amp;lt;/math&amp;gt;または&amp;lt;math&amp;gt; Q_t&amp;gt;0 \,\, &amp;lt;/math&amp;gt;　のとき&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;math&amp;gt; 0 \, \, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td align=&amp;quot;left&amp;quot;&amp;gt;その他&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
で記述される. ただしこの微分方程式を使わなくても, 時間区間 &amp;lt;math&amp;gt;(0, t]\, &amp;lt;/math&amp;gt; における累積入力量&amp;lt;math&amp;gt;\textstyle A_t = \int_0^\infty \lambda_t \, dt\, &amp;lt;/math&amp;gt; のグラフから累積出力量 &amp;lt;math&amp;gt;D_t\, &amp;lt;/math&amp;gt; のグラフを描くことができ, それらの差 &amp;lt;math&amp;gt;Q_t=A_t - D_t\, &amp;lt;/math&amp;gt; から時刻 &amp;lt;math&amp;gt;t\, &amp;lt;/math&amp;gt; におけるバッファーの内容量を求めることができる [2,5]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td align=center&amp;gt;[[画像:sk-0112-b-a-01-2.png]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=center&amp;gt;図１：流体近似 : 水道のイメージ&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
\begin{figure} \setlength{\unitlength}{.6mm} \begin{center} \begin{picture}(60, 35)(0, 5) \thicklines \put(10, 39){\line(1, 0){16}} \put(26, 32){\oval(14, 14)[tr]} \put(33, 32){\line(0, -1){4}} \put(10, 34){\line(1, 0){14}} \put(24, 31){\oval(6, 6)[tr]} \put(27, 31){\line(0, -1){3}} \put(23, 39){\line(0, 1){3}} \put(21, 39){\line(0, 1){3}} \put(22, 43.5){\oval(8, 3)} &lt;br /&gt;
&lt;br /&gt;
\put(0, 15){\oval(8, 14)[tr]} \put(14, 15){\oval(20, 14)[bl]} \put(14, 5){\oval(24, 6)[tr]} \put(60, 15){\oval(8, 14)[tl]} \put(46, 15){\oval(20, 14)[br]} \put(46, 5){\oval(24, 6)[tl]} &lt;br /&gt;
&lt;br /&gt;
\thinlines \put(4, 18){\line(1, 0){52}} \multiput(27.5, 29)(1, 0){6}{\line(0, -1){5}} \multiput(26.5, 4)(1, 0){8}{\line(0, -1){4}} \end{picture} \end{center} \caption{流体近似 : 水道のイメージ} \label{B-A-01+suidou} \end{figure} &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 待ち行列モデル ===&lt;br /&gt;
　サービス要求量の変動が ii) の確率型の場合は, [[待ち行列モデル]] (queueing model) や [[在庫モデル]] (inventory model), [[ダムモデル]] (dam model) などを使って解析される [1, 2]. ここでは待ち行列モデルを主に説明しよう. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td align=center&amp;gt;[[画像:sk-0112-b-a-01-3.png]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=center&amp;gt;図２：待ち行列のイメージ図&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
\begin{figure} \setlength{\unitlength}{1mm} \begin{center} \thicklines \begin{picture}(65, 20)(0, 7) \put(10, 15){\vector(1, 0){7.5}} \put(45, 15){\vector(1, 0){7.5}} \put(20, 12.5){\line(1, 0){15}} \put(20, 17.5){\line(1, 0){15}} \put(25, 12.5){\line(0, 1){5}} \put(30, 12.5){\line(0, 1){5}} \put(35, 12.5){\line(0, 1){5}} \put(37.5, 10){\line(0, 1){10}} \put(42.5, 10){\line(0, 1){10}} \put(37.5, 10){\line(1, 0){5}} \put(37.5, 15){\line(1, 0){5}} \put(37.5, 20){\line(1, 0){5}} \put(32.5, 15){\circle{4}} \put(40, 12.5){\circle{4}} \put(40, 17.5){\circle{4}} &lt;br /&gt;
&lt;br /&gt;
\put(0, 15){\makebox(0, 0){客の到着}} \put(25.5, 7){\makebox(0, 0){待ち行列}} \put(40, 4){\makebox(0, 0){窓口}} \put(57.5, 15){\makebox(0, 0){退去}} %\put(27.5, 23){\makebox(0, 0){待ち時間}} %\put(40, 27.5){\makebox(0, 0){サービス時間}} \end{picture} \end{center} \caption{待ち行列のイメージ図} \label{B-A-01+queue1} \end{figure} &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
　待ち行列モデルは, 図2のように, あるサービスステーションに[[客]](customer)が[[到着]]し,  そこである種の[[サービス]] (service) をうけ, 系外に立ち去る, という[[サービスシステム]] (servicing system) のモデルである. サービスステーションは, 通常, サービスが行われる[[窓口]] (channel) と, 到着した客がサービスを受けるために待つ[[待ち行列]] (queue) とから成る. この待ち行列が[[バッファ]] (buffer) の役割を果たす. 待つことのできる客の数に制限がある場合, 待合室という概念を導入することもある. このとき待合室の容量が, 待つことのできる客の数の上限となる. &lt;br /&gt;
&lt;br /&gt;
　客, 窓口, 待合室などは, モデルによってさまざまなものに対応する. ある種の生産システムでは, 客は製品や部品であり, 窓口は加工機, 検査機, 組立台など, そして待合室は仮置き台などである. コンピュータの性能評価では, 客はジョブであり, 窓口は CPU や DISK, 待合室は各所のメモリである. また情報通信ネットワークの性能評価では, セルやパケットといった情報の塊が客であり, 各種のスイッチ類やチャネルが窓口, バッファメモリが待合室として扱われる. &lt;br /&gt;
&lt;br /&gt;
=== 性能評価指標, 混雑指標 ===&lt;br /&gt;
　図2のような標準的なモデルでは, [[利用率]] (traffic intensity), &amp;lt;math&amp;gt;\rho\, &amp;lt;/math&amp;gt; というのが重要なシステムパラメータである. これは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[画像:sk-0112-b-a-01-1.png]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
\[&lt;br /&gt;
\rho = \frac{サービス要求量}{サービス処理能力}&lt;br /&gt;
\]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
という形で定義される. たとえば客が平均 &amp;lt;math&amp;gt;\lambda^{-1}\, &amp;lt;/math&amp;gt; の間隔で到着し, &amp;lt;math&amp;gt;c\, &amp;lt;/math&amp;gt; 個の窓口で平均 &amp;lt;math&amp;gt;\mu^{-1}\, &amp;lt;/math&amp;gt; のサービスが行われるようなシステムでは, &amp;lt;math&amp;gt;\rho=\lambda/c \mu\, &amp;lt;/math&amp;gt; である. 多くの場合, &amp;lt;math&amp;gt;\rho&amp;lt;1\, &amp;lt;/math&amp;gt; であれば, システムは[[平衡状態]](stationary) とよばれる安定な状態へ向かい, 確率論的な解析が可能となる. &lt;br /&gt;
&lt;br /&gt;
　一般に, &amp;lt;math&amp;gt;\rho\, &amp;lt;/math&amp;gt; が 0に近いときは混雑はほとんどなく, 1に近づくにつれて混雑がひどくなる. このような混雑を評価する指標としては, [[待ち時間]] (waiting time) (客が待ち行列で待たされる時間), [[滞在時間]] (sojourn time) (客が到着してからサービスが終了するまでの時間), [[待ち行列長]] (queue length) (待ち行列で待っている客の数), [[系内人数]] (number of customers in the system) (待ち行列と窓口にいる客の数) などの平均や分散, または分布などが用いられる. &lt;br /&gt;
&lt;br /&gt;
　[[待合室の容量]] (capacity of waiting room) が有限で, システムに入れる客の数に制限がある場合, [[呼損率]] (loss probability) も重要な指標である. これは到着した客のうち待合室が一杯でサービスを受けられずに退去する客の割合である. ここで &amp;quot;呼 (こ, よび)&amp;quot; という耳慣れない言葉が使われているが, これは電話をかけるときの接続要求のことで, 待ち行列理論がデンマークの電話技術者アーランアグナー・K}{アーラン} (A. K. Erlang) によって20世紀の初頭に始められ以来, 電話の交換機の適正数を評価するのに[[有限待合室モデル|有限待合室のモデル]] (finite-buffer model) がずっと使われてきたという経緯からきている [4]. &lt;br /&gt;
&lt;br /&gt;
　近年, 待ち行列理論の分野では, 情報通信技術の発達などと歩調を合わせて, より複雑でより一般的な状況の下でのモデル解析が進められている. これらについては他の項目ならびに文献 [3,4,5] を参照されたい. また関連書籍は [3] にサーベイが載っている. 応用分野も多岐にわたっている. 次の各項目を参照してほしい. 待ち行列の[[待ち行列の通信への応用|通信への応用]], 待ち行列の[[待ち行列のコンピュータへの応用|コンピュータへの応用]], 待ち行列の[[待ち行列の生産システムへの応用|生産システムへの応用]]. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== 参考文献 ===&lt;br /&gt;
&lt;br /&gt;
[1] 森村英典, 大前義次, 『応用待ち行列理論』, 日科技連出版社, 1975. ISBN 481715313X&lt;br /&gt;
&lt;br /&gt;
[2] 高橋幸雄, 「入門講座, やさしい待ち行列(1)～(4)」, 『オペレーションズ・リサーチ』, '''40''' (1995), 649-654, 716-721, '''41''' (1996), 35-40, 100-105. &lt;br /&gt;
&lt;br /&gt;
[3] 高橋敬隆, 高橋幸雄, 牧本直樹, 「入門講座, やさしい待ち行列 (補遺) ― 待ち行列の本」, 『オペレーションズ・リサーチ』, '''41''' (1996), 106-107. &lt;br /&gt;
&lt;br /&gt;
[4] 高橋幸雄, 「講座, 待ち行列研究の新しい潮流 (1)― 待ち行列研究の変遷」, 『オペレーションズ・リサーチ』, '''43''' (1998), 495-499.&lt;br /&gt;
&lt;br /&gt;
[5] 高橋幸雄, 森村英典, 『混雑と待ち』, 朝倉書店, 2001. ISBN 425427517X&lt;br /&gt;
&lt;br /&gt;
[6] 日本オペレーションズリサーチ学会待ち行列研究部会　http://www.is.titech.ac.jp/~kkatou/queue/&lt;br /&gt;
&lt;br /&gt;
[[category:待ち行列|まちぎょうれつ]]&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=ORWiki:%E3%83%97%E3%83%A9%E3%82%A4%E3%83%90%E3%82%B7%E3%83%BC%E3%83%BB%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC&amp;diff=9984</id>
		<title>ORWiki:プライバシー・ポリシー</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=ORWiki:%E3%83%97%E3%83%A9%E3%82%A4%E3%83%90%E3%82%B7%E3%83%BC%E3%83%BB%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC&amp;diff=9984"/>
		<updated>2008-08-21T11:12:17Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: &amp;quot;ORWiki:プライバシー・ポリシー&amp;quot; を保護しました。 [edit=sysop:move=sysop]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://orsj.org 公益社団法人 日本オペレーションズ・リサーチ学会]&lt;br /&gt;
の&lt;br /&gt;
[https://orsj.org/aboutUs/privacy%20policy.htm プライバシーポリシー]&lt;br /&gt;
をご覧下さい．&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=ORWiki:ORWiki%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6&amp;diff=9983</id>
		<title>ORWiki:ORWikiについて</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=ORWiki:ORWiki%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6&amp;diff=9983"/>
		<updated>2008-08-21T11:12:03Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: &amp;quot;ORWiki:ORWikiについて&amp;quot; を保護しました。 [edit=sysop:move=sysop]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 刊行にあたって ==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:right;&amp;quot;&amp;gt;&lt;br /&gt;
OR事典編集委員長（前）&amp;lt;BR&amp;gt;&lt;br /&gt;
青木　利晴&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
　1957（昭和32) 年に創立された&lt;br /&gt;
[https://orsj.org/ 日本オペレーションズ・ リサーチ（OR）学会]&lt;br /&gt;
は、今年6月に創立50周年という大きな節目を迎えました。これを記念して今春より数々の事業を実施していますが、その一つとして「ＯＲ事典」の改訂を行っています。初版は１９７５年に刊行し、１９９７年の創立４０周年には改訂版をＣＤ－ＲＯＭで提供いたしましたが、今回は創立５０周年記念事業として、改訂とともに新たにインターネットでの公開を実現いたしました。&lt;br /&gt;
&lt;br /&gt;
　さて「知の世紀」といわれる21世紀に入った今、新たな時代環境の中で本学会も大きな変化を求められています。本学会は、これまでに築いてきた基盤の上に立って、今後とも発展し続けるように、新たなOR活用分野・研究手法の開拓、広報・研究普及活動の更なる拡充による社会への貢献、国際化の推進とアジア地域との連携などの課題について重点的に取り組み、真に役立つＯＲの研究・実践に努力を積み重ねてまいります。このような時期に「ＯＲ事典」を新たに編集し刊行することは、きわめて意義深いことだと思います。&lt;br /&gt;
&lt;br /&gt;
　今回のＯＲ事典編集作業の結果、[[基礎編：大項目一覧|基礎編]]、&lt;br /&gt;
[[用語編]]に関してはＰＤＦベースから、ＷＩＫＩを使った方式に変換し、&lt;br /&gt;
より柔軟な使い方ができるようになりました。基礎編の見出し項目としては２８項目を追加、４項目を削除、用語は３００語が追加されました。&lt;br /&gt;
[[事例編]]については、「[https://orsj.org/wp-content/or-archives50/ ＯＲアーカイブ集]」より，事例に関する論文等を分類整理しました。&lt;br /&gt;
[http://www.ozsons.com/ORstory/ 資料編]では最近までのデータをアップデートしてあります。&lt;br /&gt;
&lt;br /&gt;
　今回の改訂は，センテニアルに向けた新たな半世紀に大きな一歩を踏み出す契機になるものと自負しております。&lt;br /&gt;
&lt;br /&gt;
　おわりに困難な編集事業に取り組まれた[[ＯＲ事典編集委員会]]の皆様、&lt;br /&gt;
ご支援いただいたＯＲ学会５０周年記念事業関係者およびＯＲ学会事務局の方々に心から感謝の意を表します。（2007.9.1）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
　　　　&lt;br /&gt;
　　　　&lt;br /&gt;
== 執筆協力者一覧 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 基礎編、用語編執筆者 ===&lt;br /&gt;
:浅野孝夫, 朝野煕彦, 穴太克則, 飯島淳一, 飯田耕司, 石井博昭, 石渡徳彌, 一森哲男, 伊藤和憲, 伊藤健, 乾口雅弘, 茨木俊秀, 今井桂子, 今井浩, 今泉淳, 岩城秀樹, 岩田覚, 岩本誠一, 上田徹, 上野哲郎, 上原隆平, 宇野毅明, 梅沢豊, 大内東, 大隅昇, 太田敏澄, 大西匡光, 大野勝久, 大山達雄, 岡田章, 尾崎俊治, 小沢利久, 小澤正典, 海生直人, 嘉数侑昇, 片岡靖詞, 片桐英樹, 片山隆仁, 片山勁, 片山徹, 刈屋武昭, 川崎英文, 川島幸之助, 川島武, 河野浩之, 城川俊一, 菊田健作, 木瀬洋, 紀一誠, 木村武, 木村俊一, 久野誉人, 久保幹雄, 久保田光一, 栗田治, 倉橋（筑波）, 黒田充, 腰塚武志, 小島政和, 小林和朝, 古林隆, 今野浩, 齋藤雄志, 逆瀬川浩孝, 佐藤馨一, 佐藤大輔, 猿渡康文, 澤木勝茂, 三道弘明, 椎塚久雄, 塩浦昭義, 塩出省吾, 繁野麻衣子, 篠原正明, 下村雅彦, 白川浩, 杉原厚吉, 杉原左右一, 杉山学, 鈴木敦夫, 鈴木和幸, 鈴木賢一, 鈴木久敏, 関口恭毅, 関谷和之, 戴陽, 高井英造, 高木英明, 高橋勝, 高橋真吾, 高橋磐郎, 高橋幸雄, 高橋豊, 高橋敬隆, 滝根哲哉, 田口東, 田中環, 田中雅博, 田中雅康, 谷野哲三, 田畑吉雄, 田村明久, 田村隆善, 田村坦之, 佃純誠, 佃良彦, 土谷隆, 角田康夫, 寺野隆雄, 徳山博干, 刀根薫, 土肥正, 中井暉久, 中川覃夫, 中里宗敬, 中島恭一, 中島康之, 中塚利直, 中西昌武, 中野文平, 中丸麻由子, 永持仁, 長山いづみ, 中山幹夫, 生田目崇, 並木誠, 難波和明, 西岡靖之, 西村彰一, 根本俊男, 野々部宏司, 野村淳二, 橋田温, 蜂谷豊彦, 浜田和樹, 枇々木規雄, 平野雅章, 平林, 福川忠昭, 福島雅夫, 福本聡, 藤井進, 藤江, 藤重悟, 伏見正則, 藤本衡, 船木由喜彦, 古川浩一, 宝崎隆祐, 星野朝子, 堀内正博, 牧本直樹, 増山繁, 町原文明, 松井知己, 松井泰子, 真鍋龍太郎, 丸田利昌, 丸山明, 水谷昌義, 宮川（筑波）, 宮沢政清, 三好直人, 巳波弘佳, 六十里繁, 武藤滋夫, 棟近雅彦, 村松正和, 室田一雄, 毛利進太郎, 森清堯, 守口剛, 森平爽一郎, 森戸晋, 森村英典, 柳浦睦憲, 矢島安敏, 矢部博, 山川栄樹, 八巻直一, 山口俊和, 山口浩, 山下信雄, 山下英明, 山田茂, 山田善靖, 山地憲治, 大和毅彦, 由良憲二, 吉川武男, 吉瀬章子, 和光純, 渡辺隆裕&lt;br /&gt;
&lt;br /&gt;
=== 事例編分類作業担当者 ===&lt;br /&gt;
:飯田哲夫, 小澤正典, 後藤順哉, 鈴木秀男, 武田朗子, 田中健一, 中田和秀, 福田恵美子, 宮代隆平, 宮本裕一郎, 森雅夫, 矢島安敏&lt;br /&gt;
&lt;br /&gt;
=== 資料編執筆者 ===&lt;br /&gt;
:青木兼一, 朝尾正, 石井博昭, 石田甫, 梅根定, 亀澤善一郎, 児玉正憲, 後藤義雄, 権藤元, 田口東, 時永祥三, 中川覃夫, 永次廣, 西田俊夫, 日比野康文, 藤野義一, 三上操, 三根久, 本告光男, 柳井浩, 横山清, 若林信夫, 若山邦紘&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%98%E3%83%AB%E3%83%97:%E7%9B%AE%E6%AC%A1&amp;diff=9982</id>
		<title>ヘルプ:目次</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%98%E3%83%AB%E3%83%97:%E7%9B%AE%E6%AC%A1&amp;diff=9982"/>
		<updated>2008-08-21T11:11:39Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: &amp;quot;Help:目次&amp;quot; を保護しました。 [edit=sysop:move=sysop]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;フリー百科事典『ウィキペディア（Wikipedia）』の[http://ja.wikipedia.org/wiki/Help:目次 Help]をご参照ください。&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=ORWiki:%E5%95%8F%E3%81%84%E5%90%88%E3%82%8F%E3%81%9B%E7%AA%93%E5%8F%A3&amp;diff=9981</id>
		<title>ORWiki:問い合わせ窓口</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=ORWiki:%E5%95%8F%E3%81%84%E5%90%88%E3%82%8F%E3%81%9B%E7%AA%93%E5%8F%A3&amp;diff=9981"/>
		<updated>2008-08-21T11:11:30Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: &amp;quot;ORWiki:問い合わせ窓口&amp;quot; を保護しました。 [edit=sysop:move=sysop]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[OR事典編集委員会]]では、利用者の皆様からご意見、ご要望、ご感想などを受け付けております。&lt;br /&gt;
[mailto:wiki@orsj.or.jp こちらのリンクをクリックして]お送りください。&lt;br /&gt;
今後の内容改訂、運営の改善等に反映させていただきます。&lt;br /&gt;
&lt;br /&gt;
なお、お送りいただいたメールに対する返信は保証致しかねますので、あらかじめご了承ください。&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=9980</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=9980"/>
		<updated>2008-08-21T11:11:20Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: &amp;quot;メインページ&amp;quot; を保護しました。 [edit=sysop:move=sysop]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table width=&amp;quot;100%&amp;quot; border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr height=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td bgcolor=&amp;quot;#f39518&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr height=&amp;quot;17&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;  bgcolor=&amp;quot;#ef7f1a&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;17&amp;quot;&amp;gt;[[画像:ortop.jpg]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr height=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td bgcolor=&amp;quot;#ba7a28&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= '''OR事典Wiki''' =&lt;br /&gt;
&lt;br /&gt;
OR事典Wiki [[ORWiki:ORWikiについて|ORWiki]] にようこそ！&lt;br /&gt;
&lt;br /&gt;
このページは，&lt;br /&gt;
[https://orsj.org 公益社団法人 日本オペレーションズ・リサーチ学会]&lt;br /&gt;
[[OR事典編集委員会]]&lt;br /&gt;
によって作成されております．&lt;br /&gt;
&lt;br /&gt;
== '''目　　次''' ==&lt;br /&gt;
&lt;br /&gt;
[[基礎編：大項目一覧|基礎編]]&lt;br /&gt;
&lt;br /&gt;
[[用語編]]&lt;br /&gt;
&lt;br /&gt;
[[事例編]]&lt;br /&gt;
&lt;br /&gt;
[https://orsj.org/wp-content/wiki/shiryou 資料編]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[ORWiki:著作権|著作権]]について&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=AHP&amp;diff=9979</id>
		<title>AHP</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=AHP&amp;diff=9979"/>
		<updated>2008-08-21T09:28:41Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: &amp;quot;AHP&amp;quot; を保護しました。: 保護レベルのテスト中です。 [edit=autoconfirmed:move=autoconfirmed]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''【えいえいちぴー (AHP (analytic hierarchy process)】'''&lt;br /&gt;
=== 概要 ===&lt;br /&gt;
&lt;br /&gt;
階層化意思決定法とも訳されるが, 短くAHPと呼ばれることが多い. 複数の評価基準のもとで,多数の代替案の中からの選択, 複数の要素のすべてあるいはその一部へのリソースの配分, 複数の要素の評価や順位づけ, というタイプの決定問題のツール. 問題全体を, 究極の問題, 評価基準, 代替案という階層図に表現する. その上で, 2要素の一対比較という直感的な判断を基に, 問題全体の大局的な判断に合成する方法.&lt;br /&gt;
=== 詳説 ===&lt;br /&gt;
　階層化意思決定法とも訳されるが, 通常[[AHP]]と呼ばれる. トマス・サーティー(Thomas L. Saaty)が, アメリカの政府機関でダンツィックらと数理計画の開発や応用をしていた経験から, トップの意思決定者が抱える構造がはっきりしなかったり複雑な問題を扱えるモデルや方法はないかと考えた上で, 開発された方法. 問題の構造を把握し難いときでも, 問題全体を, 究極の狙い, 評価基準, 代替案という[[階層図 (AHPにおける)|階層図]]に表現することで明らかにした上で, 複数の評価基準のもとで, 多数の代替案の中からの選択, 複数の要素へのリソースの配分, あるいは複数の要素の評価や順位づけをする方法. 最終的には問題全体から見た代替案の重要度を求めるが, その基礎は, 2つの要素の一対比較という直感的で単純な判断の積み重ねで, これを基に問題全体の大局的な判断を支援する. 実際に組織の中だけではなく社会や公共の意思決定の場で広く実際に利用されている. [Saaty(1980, 1994), 刀根・真鍋(1990)]&lt;br /&gt;
&lt;br /&gt;
　[方法の概要]: AHPを用いて問題の解決を図るには, まず問題全体の構造を階層図(図1)に表す. もっとも簡単な構造は, 問題－評価基準－代替案の3層の図である. 評価基準の層の要素は互いに従属しないように選ぶ必要がある. その下に代替案を並べた層を設ける. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td align=center&amp;gt;[[画像:0224-a-h-01-kiso-zu1r.png|center|図１：階層図]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=center&amp;gt;&amp;lt;br&amp;gt;図１：階層図&amp;lt;/td&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
　この階層図の上で, 最上層の問題から見た各代替案の重要度を求めて意思決定の支援をしたいのである. そのためにはまず第1層の問題から見た第2層の評価基準 &amp;lt;math&amp;gt;c_k\, &amp;lt;/math&amp;gt; の重要度 &amp;lt;math&amp;gt;u_k\, &amp;lt;/math&amp;gt; を求める. さらに各評価基準 &amp;lt;math&amp;gt;c_k\, &amp;lt;/math&amp;gt; の下の代替案 &amp;lt;math&amp;gt;a_j\, &amp;lt;/math&amp;gt; の(局所)重要度 &amp;lt;math&amp;gt;v_{kj}\, &amp;lt;/math&amp;gt; を求める. そのうえで, 代替案 &amp;lt;math&amp;gt;a_j\, &amp;lt;/math&amp;gt; ごとに, 各評価基準 &amp;lt;math&amp;gt;c_k\, &amp;lt;/math&amp;gt; の下での重要度 &amp;lt;math&amp;gt;v_{kj}\, &amp;lt;/math&amp;gt; の, 評価基準の重要度 &amp;lt;math&amp;gt;u_k\, &amp;lt;/math&amp;gt; で重み付けをした和 &amp;lt;math&amp;gt;\textstyle \sum u_k v_{kj}\, &amp;lt;/math&amp;gt; を取って, 代替案 &amp;lt;math&amp;gt;a_j\, &amp;lt;/math&amp;gt; の(総合)重要度とする. この重要度を求める過程で一対比較評価をしている. &lt;br /&gt;
&lt;br /&gt;
　[一対比較から重要度の計算へ]: 例えば評価基準が4つあったらそれらを &amp;lt;math&amp;gt;c_1\, &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;c_2\, &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;c_3\, &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;c_4\, &amp;lt;/math&amp;gt;と表し, それぞれを要素と呼ぶ. 4要素あると &amp;lt;math&amp;gt;4(4-1)/2=6\, &amp;lt;/math&amp;gt; 組の対があるのでそれらの対の2要素の重要さを比較判断する(一対比較する). 要素 &amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt; を要素 &amp;lt;math&amp;gt;j\, &amp;lt;/math&amp;gt; と比べて値 &amp;lt;math&amp;gt;a_{ij}\, &amp;lt;/math&amp;gt; を表1に従って定め, 行列に表したもの &amp;lt;math&amp;gt;A=[a_{ij}]\, &amp;lt;/math&amp;gt; を[[一対比較行列]]と呼ぶ. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;表１：一対比較の基準尺度&amp;lt;br&amp;gt;&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;table width=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot;&amp;gt;要素 &amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt; が要素 &amp;lt;math&amp;gt;j\, &amp;lt;/math&amp;gt; に比べて&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;&amp;lt;math&amp;gt;a_{ij}\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;hr&amp;gt;&lt;br /&gt;
	&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;left&amp;quot;&amp;gt;同程度に重要なとき&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\rightarrow\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;left&amp;quot;&amp;gt;やや重要 &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\rightarrow\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;left&amp;quot;&amp;gt;かなり重要 &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\rightarrow\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;left&amp;quot;&amp;gt;非常に重要 &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\rightarrow\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;left&amp;quot;&amp;gt;圧倒的に重要&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\rightarrow\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;hr&amp;gt;&lt;br /&gt;
	&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;2, 4, 6, 8 という中間値も適宜使う. &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;math&amp;gt;a_{ji}=1/a_{ij}\; ,\; a_{ii}=1\, &amp;lt;/math&amp;gt; とする. &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
		&amp;lt;/table&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
　要素 &amp;lt;math&amp;gt;c_j\, &amp;lt;/math&amp;gt; の重要度(ウエイト (weight)あるいはプライオリティ (priority)とも呼ぶ)を &amp;lt;math&amp;gt;w_j\, &amp;lt;/math&amp;gt; とすると, &amp;lt;math&amp;gt;w_i / w_j\, &amp;lt;/math&amp;gt; を &amp;lt;math&amp;gt;a_{ij}\, &amp;lt;/math&amp;gt; で推定していると考えられる. 行列 &amp;lt;math&amp;gt;A\, &amp;lt;/math&amp;gt; の要素 &amp;lt;math&amp;gt;a_{ij}\, &amp;lt;/math&amp;gt; を &amp;lt;math&amp;gt;w_i / w_j\, &amp;lt;/math&amp;gt; で置き換えた上でベクトル &amp;lt;math&amp;gt;{\boldsymbol w}\, &amp;lt;/math&amp;gt; を右から掛けると,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;math&amp;gt;A {\boldsymbol w}\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;math&amp;gt;=\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt; &amp;lt;math&amp;gt;\left[ \begin{array}{cccc}&amp;lt;br&amp;gt;&lt;br /&gt;
		   1         &amp;amp; w_1 / w_2 &amp;amp; w_1 / w_3 &amp;amp; w_1 / w_4 \\&lt;br /&gt;
		   w_2 / w_1 &amp;amp; 1    &amp;amp; w_2 / w_3 &amp;amp; w_2 / w_4 \\&lt;br /&gt;
		   w_3 / w_1 &amp;amp; w_3 / w_2 &amp;amp; 1     &amp;amp; w_3 / w_4 \\&lt;br /&gt;
		  w_4 / w_1 &amp;amp; w_4 / w_2 &amp;amp; w_4 / w_3 &amp;amp; 1&lt;br /&gt;
		  \end{array} \right] {\boldsymbol w}\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
	&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;math&amp;gt;=\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;math&amp;gt;n [ w_1 \dots w_4 ] ^{\top}\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
		&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
で, これは固有方程式 &amp;lt;math&amp;gt;A {\boldsymbol w}=\lambda {\boldsymbol w}\, &amp;lt;/math&amp;gt; の形をしている. 行列 &amp;lt;math&amp;gt;A\, &amp;lt;/math&amp;gt; の階数は &amp;lt;math&amp;gt;1\, &amp;lt;/math&amp;gt; であり, &amp;lt;math&amp;gt;A\, &amp;lt;/math&amp;gt; の固有値は最大固有値が &amp;lt;math&amp;gt;n\, &amp;lt;/math&amp;gt; (要素数), その他のものは &amp;lt;math&amp;gt;0\, &amp;lt;/math&amp;gt; であることがいえるので, &amp;lt;math&amp;gt;A=[a_{ij}]\, &amp;lt;/math&amp;gt; の最大固有値 &amp;lt;math&amp;gt;\lambda_{\max}\, &amp;lt;/math&amp;gt;に対する固有ベクトルを &amp;lt;math&amp;gt;{\boldsymbol w}\, &amp;lt;/math&amp;gt; の値とする. この際に &amp;lt;math&amp;gt;{\boldsymbol w}\, &amp;lt;/math&amp;gt; のすべての成分の和が &amp;lt;math&amp;gt;1\, &amp;lt;/math&amp;gt; であるほうが便利なので, &amp;lt;math&amp;gt;{\boldsymbol w}\, &amp;lt;/math&amp;gt; の成分を正規化した(各成分を&amp;lt;math&amp;gt;\textstyle \sum w_j\, &amp;lt;/math&amp;gt;で割った)ものを重要度とする.&lt;br /&gt;
&lt;br /&gt;
　[整合性]: 人間は一対比較で次のように整合性に欠ける判断をすることがある. (a)要素 AとBを比べるとBが好ましく, BとCを比べるとCが好ましいのに, AとCを比べるとAが好ましいとする. (b)AはBに比べて4倍程度強い, Cに比べると5倍くらい強いと判断したのに, BはCの7倍強いとする. もし整合性が完全にあれば, 3つの要素 &amp;lt;math&amp;gt;i, j, k\, &amp;lt;/math&amp;gt; の間で&amp;lt;math&amp;gt;a_{ij} = a_{ik}a_{kj}\, &amp;lt;/math&amp;gt; が成り立つはずである. 実際に整合性が完全にあると一対比較行列の最大固有値が要素の数に一致する(&amp;lt;math&amp;gt;\lambda_{\max}=n\, &amp;lt;/math&amp;gt;)のでそのずれを&amp;lt;math&amp;gt;n\, &amp;lt;/math&amp;gt;の大きさによらぬようにした &amp;lt;math&amp;gt;(\lambda_{\max}-n)/(n-1)\, &amp;lt;/math&amp;gt; を[[整合度 (AHP一対比較の)|整合度]]とする.この値が&amp;lt;math&amp;gt;0.1\, &amp;lt;/math&amp;gt;を超えると整合性が欠けることが強いので, 判断を再検討するなりやり直す必要があるとされている.&lt;br /&gt;
&lt;br /&gt;
　また, 一対比較の結果に使われる数値をランダムに配置した同じサイズの多数の行列の整合度の平均値(ランダム整合度)に対するこの整合度の比(整合比)も&amp;lt;math&amp;gt;0.1\, &amp;lt;/math&amp;gt;以下が好ましいとされ, 整合性の判断に用いられている. &lt;br /&gt;
&lt;br /&gt;
　[ANPへ]: AHPでは階層図の各層の要素の間には従属性がないものとしている. しかし実際には, 層の中の要素の間どころか, 上下の層の要素の間にも従属性が強い場合もある. そこまで拡張すると問題のモデルは階層図ではなくネットワークになってくるので, その分野はANP(Analytic Network Process)と呼ばれている. 特に1990年前後からそのようなモデルの研究や応用が進んでいる[Saaty(1996), 高橋(1998)]. &lt;br /&gt;
&lt;br /&gt;
　[AHPのソフトウエア]: 実際の意思決定にAHPを使うには, そのためのソフトウエアを使うと便利である. 階層図を書くこと, 一対比較をすることの支援, 代替案の総合重要度の計算から, 評価基準の重要度の代替案の重要度に対する感度分析をすることまで助けてくれる.&lt;br /&gt;
&lt;br /&gt;
　海外ではWindows用の &amp;quot;Expert Choice&amp;quot;がMS-DOS時代から数えると10回以上の改良の版を重ねて国際的にも広く使われている(アメリカExpert Choice社, 国内代理店:ディエムエス(株)が日本語版も出している). フィンランドのRaimo Hamalainenはヨーロッパの複数の国語を扱えるソフトを出している. 日本では(株)日本科学技術研修所の「ねまわしくん」がかなり普及している.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''参考文献'''&lt;br /&gt;
&lt;br /&gt;
[1] T. L. Saaty, ''The Analytic Hierarchy Process'', McGraw Hill, 1980. Reprinted as Vol. 1 of the AHP Series by RWS Publications, 1992.&lt;br /&gt;
&lt;br /&gt;
[2] T. L. Saaty, ''Fundamentals of Decision Making and Priority Theory with the Analytic Hierarchy Process'', Vol. VI of the AHP Series, PWS Publications, 1994. &lt;br /&gt;
&lt;br /&gt;
[3] T. L. Saaty, ''Decision Making with Dependence and Feedback: Analytic Network Process'', RWS Publications, 1996. &lt;br /&gt;
&lt;br /&gt;
[4] 刀根 薫, 真鍋龍太郎編, 『ＡＨＰ事例集』, 日科技連出版社, 1990.&lt;br /&gt;
&lt;br /&gt;
[5] 高橋磐郎, 「講座:ＡＨＰからＡＮＰへの諸問題, I-V」, 『オペレーションズ・リサーチ』, 1998年1-5月号.&lt;br /&gt;
&lt;br /&gt;
[[category:AHP(階層的意思決定法)|えいえいちぴー]]&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=AHP&amp;diff=9978</id>
		<title>AHP</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=AHP&amp;diff=9978"/>
		<updated>2008-08-21T09:14:41Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: &amp;quot;AHP&amp;quot; の保護を解除しました。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''【えいえいちぴー (AHP (analytic hierarchy process)】'''&lt;br /&gt;
=== 概要 ===&lt;br /&gt;
&lt;br /&gt;
階層化意思決定法とも訳されるが, 短くAHPと呼ばれることが多い. 複数の評価基準のもとで,多数の代替案の中からの選択, 複数の要素のすべてあるいはその一部へのリソースの配分, 複数の要素の評価や順位づけ, というタイプの決定問題のツール. 問題全体を, 究極の問題, 評価基準, 代替案という階層図に表現する. その上で, 2要素の一対比較という直感的な判断を基に, 問題全体の大局的な判断に合成する方法.&lt;br /&gt;
=== 詳説 ===&lt;br /&gt;
　階層化意思決定法とも訳されるが, 通常[[AHP]]と呼ばれる. トマス・サーティー(Thomas L. Saaty)が, アメリカの政府機関でダンツィックらと数理計画の開発や応用をしていた経験から, トップの意思決定者が抱える構造がはっきりしなかったり複雑な問題を扱えるモデルや方法はないかと考えた上で, 開発された方法. 問題の構造を把握し難いときでも, 問題全体を, 究極の狙い, 評価基準, 代替案という[[階層図 (AHPにおける)|階層図]]に表現することで明らかにした上で, 複数の評価基準のもとで, 多数の代替案の中からの選択, 複数の要素へのリソースの配分, あるいは複数の要素の評価や順位づけをする方法. 最終的には問題全体から見た代替案の重要度を求めるが, その基礎は, 2つの要素の一対比較という直感的で単純な判断の積み重ねで, これを基に問題全体の大局的な判断を支援する. 実際に組織の中だけではなく社会や公共の意思決定の場で広く実際に利用されている. [Saaty(1980, 1994), 刀根・真鍋(1990)]&lt;br /&gt;
&lt;br /&gt;
　[方法の概要]: AHPを用いて問題の解決を図るには, まず問題全体の構造を階層図(図1)に表す. もっとも簡単な構造は, 問題－評価基準－代替案の3層の図である. 評価基準の層の要素は互いに従属しないように選ぶ必要がある. その下に代替案を並べた層を設ける. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td align=center&amp;gt;[[画像:0224-a-h-01-kiso-zu1r.png|center|図１：階層図]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=center&amp;gt;&amp;lt;br&amp;gt;図１：階層図&amp;lt;/td&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
　この階層図の上で, 最上層の問題から見た各代替案の重要度を求めて意思決定の支援をしたいのである. そのためにはまず第1層の問題から見た第2層の評価基準 &amp;lt;math&amp;gt;c_k\, &amp;lt;/math&amp;gt; の重要度 &amp;lt;math&amp;gt;u_k\, &amp;lt;/math&amp;gt; を求める. さらに各評価基準 &amp;lt;math&amp;gt;c_k\, &amp;lt;/math&amp;gt; の下の代替案 &amp;lt;math&amp;gt;a_j\, &amp;lt;/math&amp;gt; の(局所)重要度 &amp;lt;math&amp;gt;v_{kj}\, &amp;lt;/math&amp;gt; を求める. そのうえで, 代替案 &amp;lt;math&amp;gt;a_j\, &amp;lt;/math&amp;gt; ごとに, 各評価基準 &amp;lt;math&amp;gt;c_k\, &amp;lt;/math&amp;gt; の下での重要度 &amp;lt;math&amp;gt;v_{kj}\, &amp;lt;/math&amp;gt; の, 評価基準の重要度 &amp;lt;math&amp;gt;u_k\, &amp;lt;/math&amp;gt; で重み付けをした和 &amp;lt;math&amp;gt;\textstyle \sum u_k v_{kj}\, &amp;lt;/math&amp;gt; を取って, 代替案 &amp;lt;math&amp;gt;a_j\, &amp;lt;/math&amp;gt; の(総合)重要度とする. この重要度を求める過程で一対比較評価をしている. &lt;br /&gt;
&lt;br /&gt;
　[一対比較から重要度の計算へ]: 例えば評価基準が4つあったらそれらを &amp;lt;math&amp;gt;c_1\, &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;c_2\, &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;c_3\, &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;c_4\, &amp;lt;/math&amp;gt;と表し, それぞれを要素と呼ぶ. 4要素あると &amp;lt;math&amp;gt;4(4-1)/2=6\, &amp;lt;/math&amp;gt; 組の対があるのでそれらの対の2要素の重要さを比較判断する(一対比較する). 要素 &amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt; を要素 &amp;lt;math&amp;gt;j\, &amp;lt;/math&amp;gt; と比べて値 &amp;lt;math&amp;gt;a_{ij}\, &amp;lt;/math&amp;gt; を表1に従って定め, 行列に表したもの &amp;lt;math&amp;gt;A=[a_{ij}]\, &amp;lt;/math&amp;gt; を[[一対比較行列]]と呼ぶ. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;表１：一対比較の基準尺度&amp;lt;br&amp;gt;&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;table width=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot;&amp;gt;要素 &amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt; が要素 &amp;lt;math&amp;gt;j\, &amp;lt;/math&amp;gt; に比べて&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;&amp;lt;math&amp;gt;a_{ij}\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;hr&amp;gt;&lt;br /&gt;
	&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;left&amp;quot;&amp;gt;同程度に重要なとき&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\rightarrow\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;left&amp;quot;&amp;gt;やや重要 &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\rightarrow\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;left&amp;quot;&amp;gt;かなり重要 &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\rightarrow\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;left&amp;quot;&amp;gt;非常に重要 &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\rightarrow\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;left&amp;quot;&amp;gt;圧倒的に重要&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\rightarrow\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot;&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;hr&amp;gt;&lt;br /&gt;
	&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;2, 4, 6, 8 という中間値も適宜使う. &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;math&amp;gt;a_{ji}=1/a_{ij}\; ,\; a_{ii}=1\, &amp;lt;/math&amp;gt; とする. &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
		&amp;lt;/table&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
　要素 &amp;lt;math&amp;gt;c_j\, &amp;lt;/math&amp;gt; の重要度(ウエイト (weight)あるいはプライオリティ (priority)とも呼ぶ)を &amp;lt;math&amp;gt;w_j\, &amp;lt;/math&amp;gt; とすると, &amp;lt;math&amp;gt;w_i / w_j\, &amp;lt;/math&amp;gt; を &amp;lt;math&amp;gt;a_{ij}\, &amp;lt;/math&amp;gt; で推定していると考えられる. 行列 &amp;lt;math&amp;gt;A\, &amp;lt;/math&amp;gt; の要素 &amp;lt;math&amp;gt;a_{ij}\, &amp;lt;/math&amp;gt; を &amp;lt;math&amp;gt;w_i / w_j\, &amp;lt;/math&amp;gt; で置き換えた上でベクトル &amp;lt;math&amp;gt;{\boldsymbol w}\, &amp;lt;/math&amp;gt; を右から掛けると,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;math&amp;gt;A {\boldsymbol w}\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;math&amp;gt;=\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt; &amp;lt;math&amp;gt;\left[ \begin{array}{cccc}&amp;lt;br&amp;gt;&lt;br /&gt;
		   1         &amp;amp; w_1 / w_2 &amp;amp; w_1 / w_3 &amp;amp; w_1 / w_4 \\&lt;br /&gt;
		   w_2 / w_1 &amp;amp; 1    &amp;amp; w_2 / w_3 &amp;amp; w_2 / w_4 \\&lt;br /&gt;
		   w_3 / w_1 &amp;amp; w_3 / w_2 &amp;amp; 1     &amp;amp; w_3 / w_4 \\&lt;br /&gt;
		  w_4 / w_1 &amp;amp; w_4 / w_2 &amp;amp; w_4 / w_3 &amp;amp; 1&lt;br /&gt;
		  \end{array} \right] {\boldsymbol w}\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
	&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;math&amp;gt;=\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;math&amp;gt;n [ w_1 \dots w_4 ] ^{\top}\, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
		&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
で, これは固有方程式 &amp;lt;math&amp;gt;A {\boldsymbol w}=\lambda {\boldsymbol w}\, &amp;lt;/math&amp;gt; の形をしている. 行列 &amp;lt;math&amp;gt;A\, &amp;lt;/math&amp;gt; の階数は &amp;lt;math&amp;gt;1\, &amp;lt;/math&amp;gt; であり, &amp;lt;math&amp;gt;A\, &amp;lt;/math&amp;gt; の固有値は最大固有値が &amp;lt;math&amp;gt;n\, &amp;lt;/math&amp;gt; (要素数), その他のものは &amp;lt;math&amp;gt;0\, &amp;lt;/math&amp;gt; であることがいえるので, &amp;lt;math&amp;gt;A=[a_{ij}]\, &amp;lt;/math&amp;gt; の最大固有値 &amp;lt;math&amp;gt;\lambda_{\max}\, &amp;lt;/math&amp;gt;に対する固有ベクトルを &amp;lt;math&amp;gt;{\boldsymbol w}\, &amp;lt;/math&amp;gt; の値とする. この際に &amp;lt;math&amp;gt;{\boldsymbol w}\, &amp;lt;/math&amp;gt; のすべての成分の和が &amp;lt;math&amp;gt;1\, &amp;lt;/math&amp;gt; であるほうが便利なので, &amp;lt;math&amp;gt;{\boldsymbol w}\, &amp;lt;/math&amp;gt; の成分を正規化した(各成分を&amp;lt;math&amp;gt;\textstyle \sum w_j\, &amp;lt;/math&amp;gt;で割った)ものを重要度とする.&lt;br /&gt;
&lt;br /&gt;
　[整合性]: 人間は一対比較で次のように整合性に欠ける判断をすることがある. (a)要素 AとBを比べるとBが好ましく, BとCを比べるとCが好ましいのに, AとCを比べるとAが好ましいとする. (b)AはBに比べて4倍程度強い, Cに比べると5倍くらい強いと判断したのに, BはCの7倍強いとする. もし整合性が完全にあれば, 3つの要素 &amp;lt;math&amp;gt;i, j, k\, &amp;lt;/math&amp;gt; の間で&amp;lt;math&amp;gt;a_{ij} = a_{ik}a_{kj}\, &amp;lt;/math&amp;gt; が成り立つはずである. 実際に整合性が完全にあると一対比較行列の最大固有値が要素の数に一致する(&amp;lt;math&amp;gt;\lambda_{\max}=n\, &amp;lt;/math&amp;gt;)のでそのずれを&amp;lt;math&amp;gt;n\, &amp;lt;/math&amp;gt;の大きさによらぬようにした &amp;lt;math&amp;gt;(\lambda_{\max}-n)/(n-1)\, &amp;lt;/math&amp;gt; を[[整合度 (AHP一対比較の)|整合度]]とする.この値が&amp;lt;math&amp;gt;0.1\, &amp;lt;/math&amp;gt;を超えると整合性が欠けることが強いので, 判断を再検討するなりやり直す必要があるとされている.&lt;br /&gt;
&lt;br /&gt;
　また, 一対比較の結果に使われる数値をランダムに配置した同じサイズの多数の行列の整合度の平均値(ランダム整合度)に対するこの整合度の比(整合比)も&amp;lt;math&amp;gt;0.1\, &amp;lt;/math&amp;gt;以下が好ましいとされ, 整合性の判断に用いられている. &lt;br /&gt;
&lt;br /&gt;
　[ANPへ]: AHPでは階層図の各層の要素の間には従属性がないものとしている. しかし実際には, 層の中の要素の間どころか, 上下の層の要素の間にも従属性が強い場合もある. そこまで拡張すると問題のモデルは階層図ではなくネットワークになってくるので, その分野はANP(Analytic Network Process)と呼ばれている. 特に1990年前後からそのようなモデルの研究や応用が進んでいる[Saaty(1996), 高橋(1998)]. &lt;br /&gt;
&lt;br /&gt;
　[AHPのソフトウエア]: 実際の意思決定にAHPを使うには, そのためのソフトウエアを使うと便利である. 階層図を書くこと, 一対比較をすることの支援, 代替案の総合重要度の計算から, 評価基準の重要度の代替案の重要度に対する感度分析をすることまで助けてくれる.&lt;br /&gt;
&lt;br /&gt;
　海外ではWindows用の &amp;quot;Expert Choice&amp;quot;がMS-DOS時代から数えると10回以上の改良の版を重ねて国際的にも広く使われている(アメリカExpert Choice社, 国内代理店:ディエムエス(株)が日本語版も出している). フィンランドのRaimo Hamalainenはヨーロッパの複数の国語を扱えるソフトを出している. 日本では(株)日本科学技術研修所の「ねまわしくん」がかなり普及している.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''参考文献'''&lt;br /&gt;
&lt;br /&gt;
[1] T. L. Saaty, ''The Analytic Hierarchy Process'', McGraw Hill, 1980. Reprinted as Vol. 1 of the AHP Series by RWS Publications, 1992.&lt;br /&gt;
&lt;br /&gt;
[2] T. L. Saaty, ''Fundamentals of Decision Making and Priority Theory with the Analytic Hierarchy Process'', Vol. VI of the AHP Series, PWS Publications, 1994. &lt;br /&gt;
&lt;br /&gt;
[3] T. L. Saaty, ''Decision Making with Dependence and Feedback: Analytic Network Process'', RWS Publications, 1996. &lt;br /&gt;
&lt;br /&gt;
[4] 刀根 薫, 真鍋龍太郎編, 『ＡＨＰ事例集』, 日科技連出版社, 1990.&lt;br /&gt;
&lt;br /&gt;
[5] 高橋磐郎, 「講座:ＡＨＰからＡＮＰへの諸問題, I-V」, 『オペレーションズ・リサーチ』, 1998年1-5月号.&lt;br /&gt;
&lt;br /&gt;
[[category:AHP(階層的意思決定法)|えいえいちぴー]]&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=MVA&amp;diff=9972</id>
		<title>MVA</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=MVA&amp;diff=9972"/>
		<updated>2008-08-06T08:12:52Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: リダイレクトに変更&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[平均値解析法]]&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=MVA&amp;diff=9971</id>
		<title>MVA</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=MVA&amp;diff=9971"/>
		<updated>2008-08-06T08:11:10Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: &amp;quot;MVA&amp;quot; の保護を解除しました。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''【えむぶいえい (MVA (mean value analysis))】'''&lt;br /&gt;
&lt;br /&gt;
:参照：[[平均値解析法]]&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=ORWiki:%E5%95%8F%E3%81%84%E5%90%88%E3%82%8F%E3%81%9B%E7%AA%93%E5%8F%A3&amp;diff=9965</id>
		<title>ORWiki:問い合わせ窓口</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=ORWiki:%E5%95%8F%E3%81%84%E5%90%88%E3%82%8F%E3%81%9B%E7%AA%93%E5%8F%A3&amp;diff=9965"/>
		<updated>2008-08-06T05:32:55Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: 問い合わせページの作成&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[OR事典編集委員会]]では、利用者の皆様からご意見、ご要望、ご感想などを受け付けております。&lt;br /&gt;
[mailto:wiki@orsj.or.jp こちらのリンクをクリックして]お送りください。&lt;br /&gt;
今後の内容改訂、運営の改善等に反映させていただきます。&lt;br /&gt;
&lt;br /&gt;
なお、お送りいただいたメールに対する返信は保証致しかねますので、あらかじめご了承ください。&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=MediaWiki:Sidebar&amp;diff=9961</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=MediaWiki:Sidebar&amp;diff=9961"/>
		<updated>2008-08-06T05:20:44Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: ページ名を変更&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
&amp;lt;!-- ** sitesupport-url|sitesupport --&amp;gt;&lt;br /&gt;
** ORWiki:問い合わせ窓口|ORWikiへのお問い合わせ&lt;br /&gt;
** https://orsj.org/|OR学会HP&lt;br /&gt;
** https://orsj.org/wp-content/or-archives50/|OR学会アーカイブ集&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=MediaWiki:Sidebar&amp;diff=9960</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=MediaWiki:Sidebar&amp;diff=9960"/>
		<updated>2008-08-06T05:19:19Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: 問い合わせリンクの作成テスト&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
&amp;lt;!-- ** sitesupport-url|sitesupport --&amp;gt;&lt;br /&gt;
** ORWiki:問い合わせ|ORWikiへのお問い合わせ&lt;br /&gt;
** https://orsj.org/|OR学会HP&lt;br /&gt;
** https://orsj.org/wp-content/or-archives50/|OR学会アーカイブ集&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%82%B8%E3%83%A3%E3%82%AF%E3%82%BD%E3%83%B3%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF&amp;diff=9957</id>
		<title>ジャクソンネットワーク</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%82%B8%E3%83%A3%E3%82%AF%E3%82%BD%E3%83%B3%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF&amp;diff=9957"/>
		<updated>2008-08-06T04:45:27Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: &amp;quot;ジャクソンネットワーク&amp;quot; の保護を解除しました。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''【 じゃくそんねっとわーく (Jackson network) 】'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&lt;br /&gt;
各ノードはひとつまたは複数の[[窓口]]からなり，&lt;br /&gt;
[[指数分布]]にしたがうサービス時間でサービスを行い，&lt;br /&gt;
ノードでのサービスを終えた[[客]]は次のノードまたは外部を[[確率的経路選択]]に&lt;br /&gt;
したがって選ぶ[[待ち行列ネットワーク]]．&lt;br /&gt;
客をクラスにより区別しない．&lt;br /&gt;
外部から[[ポアソン過程]]にしたがって客が到着する開放型と，&lt;br /&gt;
常に一定数の客が網内を循環している閉鎖型に分けられる．&lt;br /&gt;
ネットワーク状態の定常確率分布は積形式をもつ．&lt;br /&gt;
基本的なモデルとして重要なものであり，広く応用されている．&lt;br /&gt;
&lt;br /&gt;
== 詳説 ==&lt;br /&gt;
&lt;br /&gt;
　ジャクソンネットワークの名は J.R.Jackson[5]に因る．1970年代後半から, 計算機システムの評価に応用されはじめた．待ち行列網の状態変化がマルコフ過程として記述され, 平衡方程式の解である定常確率分布が[[積形式解|積形式]]として陽に表される基本的なモデルとして重要なものとなっている．&lt;br /&gt;
&lt;br /&gt;
　この待ち行列網の各ノードは指数分布に従うサービス時間をもつ窓口からなり, １つのノードのサービスを終えた客が，その客の履歴によらず，[[経路選択確率]]と呼ぶ一定の確率で次のノードを選ぶモデルである．すなわち，&amp;lt;math&amp;gt;M\, &amp;lt;/math&amp;gt;個のノード&amp;lt;math&amp;gt;1, 2, \ldots, M\, &amp;lt;/math&amp;gt;からなり，ノード&amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt;のサービス率はそのノードにいる客数&amp;lt;math&amp;gt;n\, &amp;lt;/math&amp;gt;の関数で，&amp;lt;math&amp;gt;C_{i}\,(n) &amp;lt;/math&amp;gt;と表すことができる．例えば，ノード&amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt;のサーバー数が&amp;lt;math&amp;gt;c_{i}\, &amp;lt;/math&amp;gt;，サービス時間分布がサービス率&amp;lt;math&amp;gt;\mu_{i}\, &amp;lt;/math&amp;gt;の[[指数分布]]ならば，&amp;lt;math&amp;gt;C_i(n)=\min(n, c_{i})\mu_{i}\, &amp;lt;/math&amp;gt;である．ノード&amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt;のサービスを終えた客は経路選択確率&amp;lt;math&amp;gt;r_{ij}\, &amp;lt;/math&amp;gt;でノード&amp;lt;math&amp;gt;j\, &amp;lt;/math&amp;gt;に移動する．&lt;br /&gt;
&lt;br /&gt;
　この網は，外部からの客の到着を仮定する[[開放型ネットワーク|開放型]]と，外部からの到着はなく，常に一定数&amp;lt;math&amp;gt;N\, &amp;lt;/math&amp;gt;の客が網内を移動する[[閉鎖型ネットワーク|閉鎖型]]に大別される．開放型の場合，外部からの到着過程は到着率&amp;lt;math&amp;gt;\lambda\, &amp;lt;/math&amp;gt;の[[ポアソン到着|ポアソン過程]]とする．外部から到着した客は確率&amp;lt;math&amp;gt;r_{0i}\, &amp;lt;/math&amp;gt;でノード&amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt;に進み，ノード&amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt;のサービスが終了した客は確率&amp;lt;math&amp;gt;r_{i0}\, &amp;lt;/math&amp;gt;で網から退去する．少なくとも一つの&amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt;について，&amp;lt;math&amp;gt;r_{i0}\,&amp;gt;0 &amp;lt;/math&amp;gt;とならなければならない．閉鎖型の場合はすべての&amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt;について，&amp;lt;math&amp;gt;\textstyle \sum_{j=1}^Mp_{ij} =1\, &amp;lt;/math&amp;gt; とする．&lt;br /&gt;
経路選択確率&amp;lt;math&amp;gt;r_{ij}\, &amp;lt;/math&amp;gt; からなる正方行列を&amp;lt;math&amp;gt;P\, &amp;lt;/math&amp;gt;とする．開放型の場合，状態&amp;lt;math&amp;gt;0\, &amp;lt;/math&amp;gt;があるため，&amp;lt;math&amp;gt;P\, &amp;lt;/math&amp;gt;は&amp;lt;math&amp;gt;M+1\, &amp;lt;/math&amp;gt;次となり，閉鎖型の場合&amp;lt;math&amp;gt;M\, &amp;lt;/math&amp;gt;次となる．&lt;br /&gt;
&amp;lt;math&amp;gt;P\, &amp;lt;/math&amp;gt;をマルコフ連鎖の推移確率行列とみたとき，既約であると仮定する．客のクラスが複数の場合の[[混合型待ち行列ネットワーク|混合型]]&lt;br /&gt;
については，発展した型である[[BCMPネットワーク|BCMP型]]や[[ケリーネットワーク|ケリー型]]などのネットワークに分類される．また，外部からの到着があるが，系内に入ることができる客数に制限がある[[有限呼源待ち行列|有限呼源]](もしくは損失型)の場合，外部を一つのノードとみなすことにより，閉鎖型に帰着できる（[5]参照）．&lt;br /&gt;
&lt;br /&gt;
=== 積形式解 ===&lt;br /&gt;
　この待ち行列網の状態を &amp;lt;math&amp;gt;(n_1, n_2, \ldots, n_M)\, &amp;lt;/math&amp;gt; で表す. ここで &amp;lt;math&amp;gt;n_i\, &amp;lt;/math&amp;gt; はノード &amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt; にいる客の数である. 定常状態確率を &amp;lt;math&amp;gt;p_{(n_1, n_2, \ldots, n_M)}\, &amp;lt;/math&amp;gt; とすれば, これは次のような積形式になる. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
p_{(n_1, n_2, \ldots, n_M)}=G^{-1}  \prod_{i=1}^M&lt;br /&gt;
\, \frac{\alpha_i^{n_i}}{\prod_{n=1}^{n_i} C_i(n)} &lt;br /&gt;
      &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
上記の積で &amp;lt;math&amp;gt;n_i=0\, &amp;lt;/math&amp;gt; となる項は1とする. &amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt; は[[ネットワーク状態分布の正規化定数|正規化定数]]であり, &amp;lt;math&amp;gt;\alpha_i\, &amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;(i=1, 2, \ldots, M)\, &amp;lt;/math&amp;gt; は[[トラフィック方程式]]と呼ばれるつぎの方程式の解である.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\alpha_i = p_{0i}\lambda + \sum_{i=1}^M \alpha_j p_{ji}, &lt;br /&gt;
          \quad i=1, 2, \ldots, M,  \qquad &lt;br /&gt;
\, &amp;lt;/math&amp;gt;　開放型&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
\alpha_i = \sum_{i=1}^M \alpha_j p_{ji}, &lt;br /&gt;
       \quad i=1, 2, \ldots, M, \qquad&lt;br /&gt;
\, &amp;lt;/math&amp;gt;　開放型&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
この方程式は，各ノード毎に到着率が退去率に等しいとして得られる1次の連立方程式である．開放型の場合，解&amp;lt;math&amp;gt;\alpha_i\, &amp;lt;/math&amp;gt;は一人の客が網に到着してから退去するまでにノード&amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt;を訪問する平均回数にネットワークへの総到着率&amp;lt;math&amp;gt;\lambda\, &amp;lt;/math&amp;gt;を乗じたものである．閉鎖型の場合は，トラヒック方程式は&amp;lt;math&amp;gt;P\, &amp;lt;/math&amp;gt;の定常確率を求める方程式と同一であり，さらに，例えば&amp;lt;math&amp;gt;\alpha_1=1\, &amp;lt;/math&amp;gt;とすれば，&amp;lt;math&amp;gt;\alpha_{i}\, &amp;lt;/math&amp;gt;はノード1に到着してからまた次にそこに到着するまでの間にノード&amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt;を訪問する期待回数という意味をもつ．&lt;br /&gt;
&lt;br /&gt;
定常分布が積形式となることから，開放型の場合，任意時点での，各ノードの列の長さは互いに独立になり，各ノードからの退去過程がポアソン過程になる．また，閉鎖型も含め，どんな部分ネットワークに対しても，部分ネットワーク全体を１つのノードで置き換えて，他の部分の定常分布が変えないようにすることができる．&lt;br /&gt;
長さは互いに独立になる．また，閉鎖型も含め，各ノードからの退去過程がポアソン過程になる．したがって，どんな部分ネットワークに対しても，部分ネットワー%ク全体を１つのノードで置き換えて，他の部分の定常分布が変えないようにすることができ, すなわち，[[ノートンの定理|ノートンの定理]]が任意の部分ネットワークに対して成り立つ[11]．さらに，１つのノードへの各到着時点で，到着した客が見るネットワークの状態の分布は任意時点の状態分布と一致する．これを[[到着定理|到着定理]]という．ただし，網が閉鎖型の場合には，任意時点の分布として，到着した客を除いた網を使う．さらにその客の退去時点での分布も同様であり[6]，この分布でのもとで，ノード&amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt;に到着してから，次にそこに戻るまでの平均周期時間はノードごとの平均訪問回数と平均待ち時間の積の総和となること等が求まる．&lt;br /&gt;
&lt;br /&gt;
=== 正規化定数と性能評価量の計算 ===&lt;br /&gt;
　積形式解から定常分布を求めるためには正規化定数の計算が必要である．開放型の場合は容易であるが，閉鎖型の場合には，可能な状態が&amp;lt;math&amp;gt;\textstyle \sum_{i=1}^M n_i =N\, &amp;lt;/math&amp;gt;を満たすもに限られるので，工夫が必要である．例えば，閉鎖型正規化定数を計算する方法として，[[たたみ込み法]]や[[平均値解析法]]が知られている．[2]．たたみこみ法では, ノード &amp;lt;math&amp;gt;i\, &amp;lt;/math&amp;gt; に対し, &amp;lt;math&amp;gt;N+1\, &amp;lt;/math&amp;gt; 次元のベクトルを&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
X_i=(X_i(0), X_i(1), \ldots, X_i(N)), &lt;br /&gt;
  \quad X_i(0)=1, X_i(n)= \frac {\alpha_i^{n}} {\Pi_{j=1}^n C_{i}(j)} \quad (n&amp;gt;0), &lt;br /&gt;
  \  n&amp;gt;0&lt;br /&gt;
\, &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
とし，&amp;lt;math&amp;gt;G=(X_1*X_2*...*X_M){\mathbf 1}\, &amp;lt;/math&amp;gt;で与える．&amp;lt;math&amp;gt;*\, &amp;lt;/math&amp;gt;はベクトルのたたみ込み演算である．定常分布が求まれば，スループットや平均待ち行列長の計算は比較的簡単である．しかし，正規化定数を計算することなく直接平均待ち行列長を計算する方法もある．例えば，平均値解析法は到着定理と[[リトルの公式|Littleの公式]]を応用し，平均列長などを系内客数&amp;lt;math&amp;gt;N\, &amp;lt;/math&amp;gt;について0から繰り返し計算する方法である．各ノードでの平均待ち時間は到着時点での平均列長と平均サービス時間から求まる規律，例えば先着順であることが本質的である．&lt;br /&gt;
&lt;br /&gt;
=== 待ち時間 ===&lt;br /&gt;
　待ち時間の分布については，特殊な網について考察されている．開放型で，サーバー数が1のノード(規律は先着順)が直列に並んでいる網もJackson型の一つであるが，この網で一人の客の各ノードでの滞在時間は互いに独立であることが[[バークの定理|バークの定理]]として知られている[1],[9]．これを閉鎖型にした場合，すなわち，最後のノードを退去した客は必ず最初のノードに戻る周期的な網でも，一周する間の一人の客の各ノードでの滞在時間の同時分布も一種の積の形となる[10]．一人の客が他の客に追い越されることがない(overtake free)という性質が本質的であり，バークの定理は，この影響がない最初と最後のノードでのサーバー数が複数の場合でも成り立つ．特に最後のノードのサービス時間分布は任意でよい．その他，[[セントラルサーバモデル]]で規律が[[プロセッサシェアリング]]である場合の研究もある．(例えば[8])．&lt;br /&gt;
&lt;br /&gt;
=== 負の客とシグナル ===&lt;br /&gt;
　ジャクソンネットワークの特徴は，ネットワーク内の各ノードに滞在する客数を要素とするベクトルを状態に取ると連続時間マルコフ連鎖により表されることにある．1990年代に[4]は，到着すると客数を減らす[[負の客]]という概念を導入し，同様なマルコフ連鎖によるモデル化を行い，ジャクソンネットワークと同様な積形式の定常分布をもつことを証明した．到着客が待ち行列に並んだ後にサービスを受けずに退去することがあるので，各ノードへの通常の客の総到着率は減少し，客の強制退去を考慮した非線形なトラヒック方程式の解として求められる．定常分布はこの変更された総到着率を使って表すことができる．その後，このモデルは，負の客が複数のノードを瞬間的に動き回る[[シグナル到着ネットワーク]]へ拡張され，積形式の定常分布をもつことが証明されている（[3]参照）．例えば，各ノードで集団サービスが行われるジャクソン型と同様なネットワークで，予定された大きさの集団がサービスされた集団のみ1つの客となり経路を選択するモデルは，シグナル到着ジャクソンネットワークの例である．&lt;br /&gt;
&lt;br /&gt;
=== 集団移動型 ===&lt;br /&gt;
　ジャクソンネットワークと同様にポアソン到着やサービス時間が指数分布に従うモデルで，集団到着や集団退去があるモデルもあり，[[集団移動型ネットワーク|集団移動型]]と呼ばれる．このモデルは上記で述べた特別な場合を除いて，積形式の定常分布をもたないが，サービス集団の大きさがノードごとに独立であり経路の選択が集団ごとにまとめて行われる場合には，定常分布の補分布の上限を与える積形式分布が知られている（\[7],[12]参照）．また，このモデルは，サービス完了時刻でネットワークの変化を追うと離散時間型のモデルと見なすこともできる．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 参考文献 ===&lt;br /&gt;
&lt;br /&gt;
[1] P. J. Burke, &amp;quot;The Output Process of a Stationary M/M/s Queuing System, ''The Annals of Mathematical Statistics'', '''39''' (1968), 1144-1152. &lt;br /&gt;
  &lt;br /&gt;
[2] K. M. Chandy and C. H. Sauer, &amp;quot;Computational Algorithms for Product Form Queueing Networks,&amp;quot; ''Communications of the Association for Computing Machinery'', '''23''' (1980), 573-583. &lt;br /&gt;
&lt;br /&gt;
[3]X. Chao, M. Miyazawa and M. Pinedo, ''Queueing Networks; customers, signals and product form solutions,''   Wiley, 1999.&lt;br /&gt;
&lt;br /&gt;
[4]E. Gelenbe, ``Product-form queueing networks with negative and positive customers,'' Journal of Applied Probability}, (1991), 656--663.&lt;br /&gt;
&lt;br /&gt;
[5] J. R. Jackson, &amp;quot;Jobshop-like Queueing Systems,&amp;quot; ''Management Science'', '''10''' (1963), 131-142. &lt;br /&gt;
&lt;br /&gt;
[6]T. Kawashima,&lt;br /&gt;
``A Property of two Palm measures in queueing networks and its applications,''Journal of the Operations Research Society of Japan, (1982), 16--28.&lt;br /&gt;
&lt;br /&gt;
[7]M. Miyazawa, P. Taylor,&lt;br /&gt;
``A geometric product-form distribution for a queueing network with nonstandard batch arrivals and batch transfers,'' Advances in Applied Probability 29, (1997), 523--544.&lt;br /&gt;
&lt;br /&gt;
[8] J. A. Morrison and D. Mittra, &amp;quot;Heavy-usage Asymptotic Expansions for the Waiting Time in Closed Processor-sharing Systems with Multiple Casese,&amp;quot; ''Advances in Applied Probability'', '''17''' (1985), 163-185. &lt;br /&gt;
&lt;br /&gt;
[9] E. Reich &amp;quot;Note on Queues in Tandem,&amp;quot; ''The Annals of Mathematical Statistics'', '''34''' (1963), 338-341. &lt;br /&gt;
&lt;br /&gt;
[10] R. Schassberger and H. Daduna. &amp;quot;Sojourn Times in Queueing Networks with Multiserver Nodes,&amp;quot; ''Journal of Applied Probability'', '''24''' (1987), 511-521. &lt;br /&gt;
&lt;br /&gt;
[11] J. Walrand, ''An Introduction to Queueing Networks'', Prentice Hall, 1988.&lt;br /&gt;
&lt;br /&gt;
[12]H. Yamashita, M. Miyazawa,``Product form queueing networks with concurrent movements,''&lt;br /&gt;
. ''Advances in Applied Probability, '' '''30''' (1998), 1111--1129.&lt;br /&gt;
&lt;br /&gt;
[[category:待ち行列ネットワーク|まちぎょうれつねっとわーく（じゃくそんがたとそのおうよう）]]&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Fujimoto&amp;diff=9809</id>
		<title>利用者:Fujimoto</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Fujimoto&amp;diff=9809"/>
		<updated>2008-04-03T11:15:29Z</updated>

		<summary type="html">&lt;p&gt;Fujimoto: とりあえず作成&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;藤本です。&lt;br /&gt;
&lt;br /&gt;
== 専門分野 ==&lt;br /&gt;
*[[待ち行列]]&lt;br /&gt;
*[[確率過程]]&lt;/div&gt;</summary>
		<author><name>Fujimoto</name></author>
	</entry>
</feed>