恋の連立方程式、「パートナー探し」の最適化アルゴリズムに関する一考察2005.06.18「自分にできるだけ相応(ふさわ)しいパートナー」を見つけることは、我々人間にとって、人生の最も重要なのテーマの一つでもある。そのプロセスである「恋愛」や「お見合い」に関して、なぜか今までシステマティックな考察がされて来なかったように思える。そこで、今回はその「パートナー探し」のプロセスをモデル化・数値化することにより、最適なアルゴリズムを見つけようと思う。「自分にできるだけ相応しいパートナーを探す」というあいまいな問題を、もう少し明確にモデル化された問題に単純化する。単純化するとはいえ、あまり現実とかけ離れていては役に立たないので、現実味を壊さない程度の単純化を行う。[モデル化された問題]結婚適齢期の女性が、これから10人の男性と順番にお見合いをして、その中から結婚相手を見つけることにしたとする。相手の意思は無視して良く、「この人と結婚したい」と宣言した時点で結婚できるものと仮定する。順番に一人づつしか合うことしかできず、今合っている人を「パス」しなければ次の人に合うことが出来ない(「ふたまた」禁止)。一度「パス」した人に戻ることも出来ない(「後戻り」禁止)。この条件でその10人のうちの誰かと必ず結婚しなければならないと想定した場合に、最適な戦術を求めよ。これでかなり、問題として扱いやすくなった。次に、数値化のために、以下の条件を加える。相性などの情報を基にして、相手に100点満点で点数を付けることが可能だと想定する。その際、0点から100点まで、どの点数の人も同じような確率で現れるように採点する(均等分布)。この条件で先の「モデル化された問題」を与えられた時に、選ぶ結婚相手の点数の『期待値』を最大にすることこそが、最適な戦術であると規定する。複雑な証明と計算式を後回しにして、この条件下での最適なアルゴリズム(手順)を書くとこうなる。[最適なアルゴリズム]・お見合い1回目→相手が85点以上なら結婚する、それ以下なら断る・お見合い2回目→相手が84点以上なら結婚する、それ以下なら断る・お見合い3回目→相手が82点以上なら結婚する、それ以下なら断る・お見合い4回目→相手が80点以上なら結婚する、それ以下なら断る・お見合い5回目→相手が78点以上なら結婚する、それ以下なら断る・お見合い6回目→相手が74点以上なら結婚する、それ以下なら断る・お見合い7回目→相手が70点以上なら結婚する、それ以下なら断る・お見合い8回目→相手が63点以上なら結婚する、それ以下なら断る・お見合い9回目→相手が51点以上なら結婚する、それ以下なら断る・お見合い10回目→目をつぶって結婚するこうすることにより、期待値を約86点までに引き上げることができるのだ。このアルゴリズムは「ふたまた」と「後戻り」は禁止、かつ必ず結婚しなければならない、という条件下であれば恋愛結婚にも応用できる。余裕がある→今付き合っている相手が85点以上なら結婚する、そうでなければ別れる。余裕がある→今付き合っている相手が63点以上なら結婚する、そうでなければ別れる。・今付き合っている人と別れたとすると、年齢的に考えても、その次の恋が『最後の恋』だと思う→今付き合っている相手が平均点以上と思えるのなら結婚する、そうでなければ別れる。・これが『最後の恋』→何がなんでもその人と結婚する。ちなみに、最適なアルゴリズムを使ったとしても、期待値を90点にするには15回の、期待値を95点にするには34回のお見合い(もしくは恋愛)をしなければならない。「あまり高望みはしない方が良い」と言う事が、初めて数学的に証明されたことになる。このアルゴリズムを思いついた時には、「これで何か商売が出来ないか」という邪悪な考えが一瞬心に浮かんだが、全人類の幸福を優先し、ここに公開することとした。結婚適齢期の人たちにはこのアルゴリズムを活用して『最適なパートナー探し』に活用していただきたい。それによって「婚期を失う」などの結果になったとしても、私は一切責任を負わないので、そこだけは了承して自分なりに判断して行動していただきたい。【付録:アルゴリズムの解説】これからk回のお見合いをする場合の最適なアルゴリズムが既に分かっていると場合、その期待値をF(k)とする(ただし満点を100ではなく1とする)。するとその一回前のお見合いにおいては、相手の点数がF(k)未満の場合には、「パス」することが(その場合の期待値はF(k))、そうでない場合は「その相手と結婚する」ことが最善の手である(その場合の期待値は(1+F(k))/2)。(1+F(k))/2)*(1-F(k))となり、これを整理するとF(k+1)=(1+F(k)*F(k))/2となる。それに、「最後のお見合いではどんな相手でも必ず結婚しなければいけない」ので、その期待値はおのずと平均点の0.5点となる。F(0)=0.5この二つ並べて書くと、F(0)=0.5F(k+1)=(1+F(k)*F(k))/2となる。これを「恋の連立方程式」と呼ぶ。後は電卓を使い、F(k)を順番に求めて行けば良い。F(0)=0.5F(1)=0.625F(2)=0.695F(3)=0.742F(4)=0.775F(5)=0.800F(6)=0.820F(7)=0.836F(8)=0.849F(9)=0.861...この0.5から始まる数字の列を、「恋愛数列」と呼ぶ。この数列は認知度も応用範囲はまだ「フィボナッチ数列」などにはまだまだかなわないが、今後研究が進むにつれ、そういったものもどんどん広がると期待されている。このブログを読んだ方で動物行動学を専攻されている人がいたら、ぜひともこの数列が動物の生殖に関わる行動に現れているか、などの実験をしていただきたい。|Commentsこれって、普通にゲームの理論の応用というかそのまんまのように思えますが。ギャングとヒットマンでこういう問題があったと思います。結婚では、自分ではどんなパートナーが最適かが分からないところが問題なんですよね。22:18>たしか安定した結婚っていうアルゴリズムあったよねありますね、確かに。余裕があるってのが分かれば越したことはないんだけどね...。ここも、あと1回は恋愛できる確率、2回はできる確率...とやって計算していくと、もっと適当なアルゴリズムが出来そうですね。21:36たしか秋山仁の本か何かで同じ問題をみました。14:38後になるほど理想が下がっていく、というのは現実的ではあるけれども、逆の気持ちもあるかもしれませんね。同種の問題の答えで《はじめのn人は無条件にパスして(採点はする)その後、「n人中最高だった人」を超える人が現われたらその人を選ぶ》というのがありました。=(人数/e)この問題では「絶対評価による採点」はできないという前提なので、ひとり目がどんなに気に入ってもその人を選ぶことはできず、こんなやり方が最適になるようです。現実では「絶対評価」は可能ですね。世間知らずでなければ。20:23たしか秋山仁の本か何かで同じ問題をみました。18:27参考文献に竹内久美子さんの本が2冊もあり、信者として驚きました。彼女の本は証明されていない仮設のようなものですが、将来立証されることは確実だと感じています。方程式を導く能力が自分にも欲しかった、それで金儲けしたかった。TypepadTop。