作業優先度はどこまで巨大化できるの
雑記です。いろんな作業が立て込んだ場合に思うことなのですけど、作業の優先度を表現するのにどうするのがいいんでしょうか。
色々作業が立て込んでいる場合、作業に優先度をつけて順番にやっていくということになると思います。
例えば、優先度を高, 中, 低と振ったとします。作業A, B, Cの優先度が順に高, 中, 低だとしたら、作業を行う順番は、A→B→Cですよね。もっとも優先度の高いAからやっていくと思います。
ここで、もともと優先度が最高だった作業Aをやっている途中で、もっと優先度の高い作業Dが入ってきたとします。しかし、優先度は高, 中, 低でしたから、Dの優先度を高とすると、Aと区別がつかなくなるのですよね。AもDも優先度が高となります。そうなった場合にはおそらく単純には、優先度高の範囲でさらに順番を付けてやるか、Aの優先度を高→中に落とすか、というのを考えるのだと思います。
でも、そんなの作業が何十個もあったら対応しきれないですよね。そんな状況でも順番を決めてやっていかないといけないとなると、もはや優先度を高, 中, 低の3段階でしか表せないことが障害になります。
それならいっそ、優先度は数値にして、数値が高いほど優先するものとすればいいかもしれません。ただそれでは結局どれが優先なのかがパッと見てよくわからなくなってしまう気もするので、どうしても高, 中, 低の3段階で表さないとダメだというなら、裏では数値で表した細かい優先度を持っておき、表に表現するときに、それらを3分割して高, 中, 低と振るのがいいかもしれません。それなら目的は達成できそうですね。
・作業Aの優先度が1
・作業Bの優先度が3
・作業Cの優先度が5
・作業Dの優先度が7
・作業Eの優先度が9
・作業Fの優先度が2
・作業Gの優先度が4
・作業Hの優先度が6
・作業Iの優先度が8この場合は優先度の高い順に、D,E,Iが高、C,G,Hが中、A,B,Fが低と振る
冒頭で出てきた作業A, B, Cの途中に作業Dが入ってくることも、作業A, B, Cの優先度を3, 2, 1と振っておいて、作業Dの優先度を4とすれば、ちゃんとD→A→B→Cの順に作業することができそうです。
しかしここで、Dよりは優先しないけどAよりは優先したい作業Eが入ってきた場合は、ちょっと表現しにくいですね。気持ちとしてはEの優先度は3.5です。小数ではなんだか急いでいるときは扱いにくそうです。
優先度は別に順番通り1,2,3,…と振らなくてもいいので、そういうのに対応するために、なんとなく優先度が高い作業が入ってきたら、間に作業が入れられることを考慮して、大きな優先度100等を使うのがいいかもしれませんね。
作業Aは100、Bは50、Cは10、とかにしておいて、最優先の作業Dが来たら1000にしておき、そこそこ優先の作業Eが来たら500にしておく、など。これならちゃんと、D→E→A→B→Cの順に作業できそうです。
そんなわけのわからないことを考えていると、ああ、作業優先度ってどこまでも巨大化できそうだなあ、果てしないなとか思うようになってきて。
作業Fは優先度10000
作業Gは優先度10000000000
作業Hは優先度100000000000000000000
……
だんだん普通に表せなくなってくるので、例えば累乗におきかえて
作業Fは優先度
作業Gは優先度
作業Hは優先度
10が何回掛けられているか(0が何個並ぶか)を累乗で表す。
作業Iは優先度
↑これは無量大数。
作業Jは優先度
↑これは1グーゴル。1の後に0が100個並んだ数です。Googleの名前の由来になっためっちゃでかい数です。さらに、
作業Kは優先度
↑これはグーゴルプレックス。1の後に0が1グーゴル個つく数です。
こんなふうに累乗が連なってくるかもしれません。そうなってくるともはや、どっちが大きいのかわかんなくなってきますね……
作業Mは優先度
作業Nは優先度
どっちが大きい????
数学には巨大数論といって、あまりに巨大すぎて普通に表現できないような数を、どっちが大きいのか比べる分野があります。巨大すぎる数の巨大数論って実際どういう活用のされ方をするのかよくわかんなかったですけど、こういうのに活用できるのかもしれませんね。(??????)
何をしたいのやら!