プリズム

数理的アプローチ


優先法と除数法の関係

投稿日時:

最終更新日時:

$A$個の資源を要求量$d_1,\ldots,d_n$になるべく正比例して分けたいが、資源は分割できないので、整数の範囲で分けなければならない。この正比例に近い整数による配分問題$\left(A; \left( d_1, \ldots, d_n \right) \right)$、ただし、$A, n, d_1, \ldots, d_n$は正の整数である、に関して、Adams法、Dean法、Hill法、Webster法、Jefferson法による解の求め方である優先法と除数法の関係を述べる。

結論は次の通りである。優先法では(多数の優先度を計算しなければならないことを無視すれば)一意の解をもつ場合は非常に簡単に、複数の解をもつ場合は(優先度が同じプレイヤーの中からその一部を選ぶ場合の数を求める手間が増えるが)比較的容易に解を求めることができる。その際に、除数法で解を与える除数$x$が、前者の場合は(複数のうちの)1つが、後者の場合は一意の値が(ただし、Adams法とJefferson法の場合はその時の解釈が要る)、分かる。

除数法では(解を与える除数の候補が分かれば)比較的容易に解を求めることができる。また、優先法により解を求める際にどれくらいの値の優先度まで選ぶのか?の大体の(複数個の配分解がある場合は正確な)値が分かる。

優先度と除数法における境界
配分方法優先度$r(d,a)$境界$t_a$
Adams法$\frac{d}{a}$$a$(切上)
Dean法$\frac{d}{\frac{2a(a+1)}{2a+1}}$$\frac{2a(a+1)}{2a+1}$
Hill法$\frac{d}{\sqrt{a(a+1)}}$$\sqrt{a(a+1)}$
Webster法$\frac{d}{a+\frac{1}{2}}$a+$\frac{1}{2}$
Jafferson法$\frac{d}{a+1}$$a+1$(切捨て)

優先法とは?除数法とは?

上記の表において、要求量が$d$であるプレイヤーが、$a$個($a=0,1,\ldots$)配分されている時の優先度が$r(d,a)$である。この優先度は、$d$が増えれば大きくなり、$a$が増えれば小さくなる。すなわち、配分されている個数が同じならば、要求量が大きいプレイヤーの優先度の方が要求量の小さいプレイヤーの優先度よりも高い。また、配分される個数が増えれば優先度が下がる。式で書くと、$r(d_1,a) < r(d_2,a) \left( d_1 < d_2 \right), r(d,a_1) > r(d,a_2) \left( a_1 < a_2 \right)$。優先法による解の求め方は、$r(d_j,a) \left(j=1,\ldots,n, a=0,\ldots,A-1 \right)$を計算し、それらの中から優先度が大きいものから順に(優先度を選び)その優先度を持つプレイヤーに資源を$1$個ずつ、合計で$A$個になるまで、配分する。

他方、除数法による解の求め方は、少し手間がかかる。まず、除数と呼ばれる正の数$x$を適当に選ぶ。プレイヤーの要求量$d$を除数$x$で割り、$d/x$を求める。$a \le d/x < a+1$となる整数$a$を求める。すなわち、$d/x$の整数部分が$a$である。もし、$d/x=a$ならば($d/x$が整数ならば)、このプレイヤーに仮に$a$個配分する。次に、$a < d/x < t_a$ならば、このプレイヤーに仮に$a$個配分する。また、$t_a < d/x < a+1$ならば、仮に$a+1$個配分する。$d/x=t_a$ならば、$a$個でも$a+1$個でもどちらでもよい。(Adams法においては$t_a$が整数であり、$d/x$が整数ならば、その値を仮に配分することにより、また、Jefferson法においては、$d/x=t_a$となることがないので、このどちらを配分してもよい状況は起こらない。)この仮に配分したものの合計がちょうど$A$個になれば、仮の配分が解の配分となる。もし、仮の配分の合計が$A$よりも多ければ、$x$を大きくし、仮の配分の合計が$A$よりも小さければ、$x$を小さくし、同じことを繰り返し、仮の配分の合計が$A$となるまで除数$x$を調整する。

以下で、優先法で解いても除数法で解いても同じ解が得られることを示す。$f$をAdams法からJefferson法までのどれかとする。

優先法で得た解を除数法で求める

優先法により問題$\left( A ; \left( d_1, \ldots, d_n \right) \right)$の$f$の解$\left( a_1, \ldots, a_n \right)$が得られたとする。$\sum_{j=1,\ldots,n}{a_j}=A$である。$m$を選ばれた優先度の最小値、$M$を選ばれていない優先度の最大値とおく。すなわち、$J(a)=\{j=1,\ldots,n \left| a_j>0 \right. \}$

\[ m = \min \{r(d_j, a_j – 1) \left| j \in J(a) \right. \} \\ M = \max \{r(d_j, a_j) \left| j = 1, \ldots, n \right. \}\]

$m>M$の時

$A$個の優先度の他の選び方がないので、$\left( a_1, \ldots, a_n \right)$以外の解はない。$m>x>M$となる$x$を任意に選ぶ(複数個ある)。以下で見るように、この$x$が除数法により解を与える除数となる。$r(d,a)=\frac{d}{t_a}$より、

$a_j =0$の時、

\[ r(d_j, 0) < x \\ \frac{d_j}{t_{0}} < x \\ 0 < \frac{d_j}{x} < t_{0} \]

最後の式より、除数$x$でプレイヤー$j$に、仮に、$a_j=0$個を配分する。

$a_j >0$の時、

\[ r(d_j, a_j) < x < r(d_j, a_j - 1) \\ \frac{d_j}{t_{a_j}} < x < \frac{d_j}{t_{a_j - 1}} \\ t_{a_j - 1} < \frac{d_j}{x} < t_{a_j} \]

最後の式より、除数$x$でプレイヤー$j$に、仮に、$a_j$個を配分する。

$\sum_{j=1,\ldots,n}{a_j}=A$であったので、除数法による解法でもこの除数$x$で解である配分$\left( a_1,\ldots,a_n \right)$が得られた。

$m=M$の時

この時、$A$個の優先度の選び方が他にもある。$m=M$の値を持つ優先度の個数を$k$個、そのうちの$s$個が資源を配分するために選ばれたとすれば、$s$個の選び方が$\left( \begin{array}{c} k \\ s \end{array} \right)$通りあるので、$\left( A ; \left( d_1, \ldots, d_n \right) \right)$には複数の($\left( \begin{array}{c} k \\ s \end{array} \right)$個の)解がある。$x=m=M$となる$x$を選ぶ。以下で見るように、この一意の$x$が除数法により解を与える除数となる。まず、値が$m=M$である優先度を持ち、配分のために選ばれたプレイヤーの集合を$J_m$、選ばれなかったプレイヤーの集合を$J_M$、残りを$J_R$とおく。すなわち、

\[ J_m = \{ \left. j \in J(a) \right| r(d_j, a_j – 1) = m \} \\ J_M = \{ \left. j = 1,\ldots, n \right| r(d_j, a_j) = M \} \\ J_R = \{ 1,\ldots, n \} – J_m – J_M \]

$J_M \not= \emptyset$である。$m$が最小値であること、$M$が最大値であること、$r(d,a)=\frac{d}{t_a}$を利用すると、結局、

\[ t_{a_j – 1} = \frac{d_j}{x} < t_{a_j} \left( j \in J_m \right) \\ t_{a_j - 1} < \frac{d_j}{x} = t_{a_j} \left( j \in J_M \right) \\ t_{a_j - 1} < \frac{d_j}{x} < t_{a_j} \left( j \in J_R \right) \]

$a_j=0$である可能性があるのは、$j \in J_M$と$j \in J_R$の時であるが、その時は、$t_{a_j – 1}=0$とおけばよい。

$\left( j \in J_R \right)$の式より、このプレイヤー$j$にはこの除数$x$で仮に$a_j$個配分する。

Dean法、Hill法、Webster法の場合

$\left( j \in J_m \right)$と$\left( j \in J_M \right)$の式より、これらのプレイヤー$j$における$d_j/x$は境界上にある。$\left( j \in J_m \right)$のプレイヤーには大きい方の$a_j$個を、$\left( j \in J_M \right)$のプレイヤーには小さい方の$a_j$個を、仮に配分する。

$\sum_{j=1,\ldots,n}{a_j}=A$であったので、除数法による解法でもこの除数$x$で解である配分$\left( a_1,\ldots,a_n \right)$が得られた。

Adams法の場合

$d_j/x = t_{a_j – 1} = a_j – 1 \left( j \in J_m \right)$、$d_j/x = t_{a_j} = a_j \left( j \in J_M \right)$となるので、除数法により除数$x$では、$\left( j \in J_m \right)$のプレイヤーには$a_j – 1$個を、$\left( j \in J_M \right)$のプレイヤーには$a_j$個を、仮に配分することになり、合計で$A$個に足らない。除数を$x$より少し小さくすると、小数部分が現れ切上されるので、$\left( j \in J_m \right)$のプレイヤーには$a_j$個を、$\left( j \in J_M \right)$のプレイヤーには$a_j + 1$個を、仮に配分することになる。これらプレイヤーに1個ずつ追加配分すれば、合計が$A$個を超える。すなわち、除数法で解を与える除数$x$は存在しない。従って、優先度$m=M$を持つ$\left| J_m \right| + \left| J_M \right|$人のうち$\left| J_m \right|$人だけに1個ずつ与えることになる。プレイヤーを同等に扱って、$\left( \begin{array}{c} \left| J_m \right| + \left| J_M \right| \\ \left| J_m \right| \end{array} \right) = \left( \begin{array}{c} k \\ s \end{array} \right)$個の解があり、当然、$\left( a_1,\ldots,a_n \right)$も解の1つである。

Jefferson法の場合

$d_j/x = t_{a_j – 1} = a_j \left( j \in J_m \right)$、$d_j/x = t_{a_j} = a_j + 1 \left( j \in J_M \right)$となるので、除数法により除数$x$では、$\left( j \in J_m \right)$のプレイヤーには$a_j$個を、$\left( j \in J_M \right)$のプレイヤーには$a_j + 1$個を、仮に配分することになり、合計で$A$個を超える。除数を$x$より少し大きくすると、小数部分が現れ切捨てされるので、$\left( j \in J_m \right)$のプレイヤーには$a_j – 1$個を、$\left( j \in J_M \right)$のプレイヤーには$a_j$個を、仮に配分することになる。これらのプレイヤーから1個ずつ減らせば、合計が$A$個に足らない。すなわち、除数法で解を与える除数$x$は存在しない。従って、優先度$m=M$を持つ$\left| J_m \right| + \left| J_M \right|$人のうち$\left| J_M \right|$人だけから1個ずつ減らすことになる。プレイヤーを同等に扱って、$\left( \begin{array}{c} \left| J_m \right| + \left| J_M \right| \\ \left| J_m \right| \end{array} \right) = \left( \begin{array}{c} k \\ s \end{array} \right)$個の解があり、当然、$\left( a_1,\ldots,a_n \right)$も解の1つである。

以上、優先法ではどの問題に対しても解を求めることができることが分かった。Dean法、Hill法、Webster法では、同じ解を除数法で求める際の除数を選ぶことができた。しかし、Adams法とJefferson法では同じ解を除数法で求める際の除数が存在しない場合(複数の解がある場合)があることが分かった。

除数法で得た解を優先法で求める

まず、基本的な性質を確認する。除数$x$の時に、各プレイヤーに仮に配分される資源の個数の合計を${\rm TentativeSum}(x)$とおく。この関数は整数値をとる非増加な階段関数でジャンプしない時は水平(一定)である。ジャンプ幅は、通常、資源1個分である。2個以上ジャンプするか否かを調べる。

要求量が$d$であるプレイヤーの除数$x$による仮の配分個数は、Adams法では「切上」なので$d/x$が整数値から少し増える($x$が減る)ときに1個増える。Jefferson法では「切捨て」なので$d/x$が整数値から少し減る($x$が増える)ときに1個減る。Dean法からWebster法では(整数値ではない)境界$t_a$(ただし、$a \le d/x < a+1$)の前後で$a$から$a+1$へ1個増えるが、境界上では$a$個、または、$a+1$個のどちらをとっても良い。このように各プレイヤー毎に、除数$x$がある値を通過する時、前後で1個減る。その値においては、Adams法では既に減っており、Jefferson法では減る前である。Dean法からWebster法においては、その値においては減らしても減らさなくてもよい自由度がある。

従って、これらの合計である${\rm TentativeSum}(x)$は複数のプレイヤーで上記のことが同時に起これば、その値の前後で、その人数分の個数の減少するジャンプがある。しかし、Dean法からWebster法では、どのプレイヤーを減らすかを決定できる自由度があるので、この値において、ジャンプ間のどの値でも取るように選べる。Adams法ではこの値の直前に、Jefferson法ではこの値の直後に、この人数分の個数の減少するジャンプは避けられない。

さて、除数法で解を得るためには${\rm TentativeSum}(x)=A$となる、除数$x$を求める必要がある。(1)${\rm TentativeSum}(x)$が2個以上ジャンプしなければ、または、2個以上ジャンプしてもそのジャンプ間に$A$が入っていなければ、${\rm TentativeSum}(x)=A$となる除数$x$は複数個(区間で)あるが、それらのどれを選んでも解である資源の配分$\left( a_1, \ldots, a_n \right) \left( a_1 + \cdots + a_n = A \right)$は一意に決まる。(2)${\rm TentativeSum}(x)$が2個以上ジャンプし、そのジャンプ間に$A$が入っている場合は、複数の解である資源の配分がある。

(1)の場合

${\rm TentativeSum}(x)=A$となる除数$x$は区間をなすので、境界($t_a$)とならないものを選ぶと、解である$\left( a_1, \ldots, a_n \right) \left( a_1 + \cdots + a_n = A \right)$が存在して、

\[ t_{a_j – 1} < d_j/x < t_{a_j} \left( j=1,\ldots,n \right) \]

となる。$t_a=\frac{d}{r(d,a)}$より、

\[ r(d,a_j) < x < r(d,a_j-1) \left( j=1,\ldots,n \right) \]

これは$x$よりも大きい優先度を選ぶとちょうど$A$個になることを示している。

(2)の場合

ある除数$x$が存在し、${\rm TentativeSum}(y)>A \left( y < x \right)$であり、${\rm TentativeSum}(y) \lt A \left( x \lt y \right)$である。$x$の前後のジャンプ幅を$k$とおく。Adams法では${\rm TentativeSum}(x) \lt A$であり($s=A-{\rm TentativeSum}(x)$とおく)、Jefferson法では${\rm TentativeSum}(x)>A$である。Dean法からWebster法では配分個数を調整することにより${\rm TentativeSum}(x)=A$とできる。いずれにしても$\left( \begin{array}{c} k \\ s \end{array} \right)$通りの解がある。Adams法の場合は$x$の時の配分よりも1個増やす$s$人のプレイヤーを選ぶ。Jefferson法の場合は$x$の時の配分よりも1個減らす$k-s$人のプレイヤーを選ぶ。Dean法からWebster法では、境界上にあるプレイヤー間の配分個数を調整する方法が$\left( \begin{array}{c} k \\ s \end{array} \right)$通りある。除数$x$により資源の配分$\left( a_1, \ldots, a_n \right)$が得られたとする。Adams法、Jefferson法、それ以外に従って、$\sum_{j=1,\ldots,n}{a_j} \left\{ \begin{array}{c} < \\ > \\ = \end{array} \right\} A$である。また、次式が成り立っている。

\[ t_{a_j – 1} \le d_j/x \le t_{a_j} \left( j=1,\ldots,n \right) \]

$t_a=\frac{d}{r(d,a)}$より、

\[ r(d,a_j) \le x \le r(d,a_j-1) \left( j=1,\ldots,n \right) \]

$x$において、ジャンプに関係のないプレイヤー$j$に関しては、両側で不等号が成り立つ。ジャンプに関係のあるプレイヤー$j$に関しては次のことが成り立つ。Adams法に関しては、左側が等号で右側が不等号で成り立つ。Jefferson法に関しては、右側が等号で左側が不等号で成り立つ。Dean法からWebster法に関しては、小さい方に丸めた場合左側が等号で大きい方に丸めた場合右側が等号で、他方は不等号で成り立つ。

いずれにしても、$x$よりも大きい優先度を選ぶと$A$個に足らない。$x$と等しいかそれよりも大きい優先度を選ぶと$A$個を超える。$A$個になるためにどの優先度を選ぶかが$\left( \begin{array}{c} k \\ s \end{array} \right)$通りあり、これが複数個の解の個数である。