効率的なa-pointとa-line(3)

2か月ほど前に私は、「連載になっているものは今月中に完結させる」とか何とか息巻いていたようなのですが、それから今まで、完結したものは一つもありませんでした。
それは少しまずいかもしれないので、こんどこそ完結させていきたいと思います。
というわけで、「前回はいつ何を書いたのか」すら忘れていそうな内容のものから。

□ 連結方法についての考察
(1)まず最も原始的な方法が、単純にa-pointどうしを一般a-lineで直接連結するというもの。

これのメリットは、全てのa-pointからa-pointへの連絡が最短で結ばれるということである。
いくつa-pointが存在しても、どのような連絡についても、必要となるa-lineの本数は1本で済む。
いっぽう、この方法のデメリットは、多数の一般a-lineが必要となる点である。また、全てのa-pointに向けてa-lineを接続しなければならないので、a-pointの負荷が高い。そして、新たにa-pointを設定する場合には、全てのa-pointにおいてa-lineの接続を要するというのも、非常に手間である。
整理すれば、n個のa-pointが存在すれば、全体で必要となるa-lineの本数は{n*(n-1)/2}本であり、1個のa-pointから接続されているa-lineの本数は、(n-1)本である。たとえば、100個のa-pointが存在すれば、全体で必要となるa-lineの本数は4950本であり、1個のa-pointから接続されているa-lineの本数は、99本である。これでは、多数のa-pointが設定されているような場面では、現実的ではない。
また、任意のa-point間の連絡に必要なa-lineの本数は1であり、任意のa-point間の連絡に必要な経由a-pointの数は0である。これは、考えられるすべての方法のなかで、理論的に最小である。

(2)つぎに、この次に原始的な方法が、ターミナル的なa-pointを1つだけ用意して、すべてのa-pointをそこに接続させる、というものである。ここでは便宜上、ターミナル的なa-pointをTと呼ぶ。

これのメリットは、さきの単純な方法よりも、一般a-lineの本数が少なく済むということである。また、T以外のa-pointからはTにだけ接続すればいいので、a-pointの負荷も低い。新たにa-pointを設定する場合にも、Tへの連結だけで済むので、手間なく設定させることができる。
デメリットは、すべての(T以外の)a-pointからの連結がTに集中するので、Tの負荷が高いことである。
整理すれば、n個のa-pointが存在すれば、全体で必要となるa-lineの本数は(n-1)本であり、1個のa-pointから接続されているa-lineの本数は、Tにおいては(n-1)本、T以外においては1本である。たとえば、100個のa-pointが存在すれば、全体で必要となるa-lineの本数は99本であり、1個のa-pointから接続されているa-lineの本数は、Tにおいては99本、T以外においては1本である。
また、100個のa-pointが存在する場面では、任意のa-point間の連絡に必要なa-lineの本数はほぼ2であり、任意のa-point間の連絡に必要な経由a-pointの数はほぼ1である*1

(3)さらに、やや原始的な方法として、Tを2つ(ないしそれ以上)用意するというものがある。このときにまず考えられる方法が、あるTとそれに連結しているa-pointとをまとめてグループ化するというものである。この結果、グループ内では(2)のようにすべてのa-pointがTと接続され、グループ間では(1)のようにすべてのTが一般a-lineで直接連結される。

これのメリットは、Tを一つだけ用意する方法よりも、一般a-lineの本数が少なく済むということである。また、T以外のa-pointからの連結が一つのTに集中することがないので、Tの負荷を低く抑えることができる。
デメリットは、Tどうしを連結する一般a-lineに連絡の負荷が高くなること、および他の方法と比較して経由すべきa-pointの数が多くなることである。
Tを4つ用意する場合について整理すれば、n個のa-pointが存在すれば、全体で必要となるa-lineの本数は(n+2)本であり、1個のa-pointから接続されているa-lineの本数は、Tにおいては(n/4+2)本、T以外においては1本である。たとえば、100個のa-pointが存在すれば、全体で必要となるa-lineの本数は102本であり、1個のa-pointから接続されている一般a-lineの本数は、Tにおいては27本、T以外においては1本である。
また、任意のa-point間の連絡に必要なa-lineの本数はおよそ2.75であり、任意のa-point間の連絡に必要な経由a-pointの数はおよそ1.75である。

(4)また、(3)を発展させて、グループ内のみにおいては(1)のようにすべてのa-pointが一般a-lineで直接連結する、という方法も考えられる。あたかも航空機路線のように、国内線は空港どうしを直接つなぎ、国際線は国際ハブ空港(これがTに相当する)を経由してすべての空港どうしがつながっている、というものである。方針としては、(2)や(3)の方法ではT以外のa-pointで不必要に連結負荷が低かったのを利用して、経由数を減少させようというものである。

これのメリットは、(3)の方法よりも、連絡に必要な経由a-pointやa-lineの数を減少することができるというものであり、(3)の方法に(1)のメリットを一部加味させたものであるといえる。
デメリットは、(3)の方法よりも、一般a-lineの本数が多くなり、a-pointの連結負荷が高くなり、そして新規にa-pointを設定する手間がかかる、というものである。結局、(3)の方法に(1)のデメリットが一部入ってしまったものであるといえる。
Tを4つ用意する場合について整理すれば、n個のa-pointが存在すれば、全体で必要となるa-lineの本数は{n/8*(n-4)+6}本であり、1個のa-pointから接続されているa-lineの本数は、Tにおいては(n/4+2)本、T以外においては(n/4-1)本である。たとえば、100個のa-pointが存在すれば、全体で必要となるa-lineの本数は1206本であり、1個のa-pointから接続されているa-lineの本数は、Tにおいては27本、T以外においては24本である。
また、任意のa-point間の連絡に必要なa-lineの本数はおよそ2.5であり、任意のa-point間の連絡に必要な経由a-pointの数はおよそ1.5である。

(5)次の問題は、現実の場面において、連結方法についての最適解を発見することである。その際に重要となるのは、重点的なa-pointと、特殊a-lineである。
現実に連絡が進行すれば、a-point間の連絡の量が等価ではなくなる。連絡の量が多いa-pointや、連絡の量が多いa-line(特殊a-line)が存在するのである。効率的な連結方法を考えるためには、このような連絡量の差を考慮することが必要である。

*1:正確にいえば次のようになる。「a-point間の連絡」のなかで、「Tとの連絡」と「T以外どうしの連絡」との比率は、99対4851である。よって、たとえば任意のa-point間の連絡に必要なa-lineの本数は、1*99/4950+2*4851/4950となる。