第379話 ■安定な結婚

 コンピュータのアルゴリズムを紹介した本に、「安定な結婚」というものが掲載されていた。結婚の意志のある同数の男女が必ずカップリングできるという理論で、そのカップリングをコンピュータ処理するためのプログラムが掲載されている。必ず相手が見つかるとは夢のような話であるが、果たしてそれが夢か幻か、そのアルゴリズムをまず紹介しよう。

 前提として、結婚の意志のある男女がそれぞれ同数N人ずついるとする。まず、男性の一番が好みの女性の所に移動する。仮にこの女性を女性Aとしよう。この時点で女性Aには相手がいなかったので、女性Aの相手は男性一番となる。但しこの組み合わせはまだ仮の組み合わせでしかない。続いて男性の二番が同じように好みの女性の所に移動する。もしこれが女性Aでなければ、その女性と仮のカップル成立である。もし選んだ相手が女性Aであれば、女性Aが男性の1番と2番とで好きな方を選ぶ。ここで選ばれなかった男性は次の候補の女性の元に移動する。これをN回繰り返す。

 途中で、仮の相手がいる女性の所に新たな男性が現れる度に女性はそのどちらかを選んで、選ばれなかった男性は次の女性の所へと移動する。たまたま相手がいない女性であればそこで仮のカップルとなるが、相手がいる女性であれば、また男性があぶれることになり、玉突きとなってカップルの組み直しが発生する。そして、最終的には最後の男性の相手(残った女性とは限らない)が決まったところで、それぞれのカップルが決定する。

 一見、男性の方が自分の意志で行動できる分、得なように思えるかもしれないが、女性の方から告白しても同じ結果になる。また、早く告白した方が得ということもない。ここでは、「ちょっと待ったコール」も「ごめんなさい」も存在しない。イメージとしては紹介したような方法で相手を決めていくが、実際にはコンピュータのプログラムで処理されるため、「ちょっと待ったコール」は都度処理を繰り返すことで盛り込まれていることになる。「ごめんなさい」がないのは必ずカップルになるためのことである。実際には人が動くのではなく、参加者の異性を好きな順に番号付けして、それを紙に書いて提出。コンピュータにそのデータをインプットして、カップル決めを行うことになる。