ID非公開さん
2022/5/20 17:50
3回答
マッチングアプリを作るためのアルゴリズムは何でしょうか?
マッチングアプリを作るためのアルゴリズムは何でしょうか? 所謂文系の人間ですが、マッチングアプリを作るとするならどういう風に作るのでしょうか? 外観はまだ何となくわかるのですが内部のアルゴリズムがどのようにやるのかが不明瞭なのです。 bit全探索を用いて2人女性と2人男性のマッチングや、その他のアルゴリズムとして全探索で女Aと男Bを合わせて女Bを男Cに合わせて…というような割と思いつくアルゴリズムはなんとかなるのですが、実際には登録者数が千人以上ってこともあるし、最低でも100人程度はいるだろうし…という風に登録者数が多くなれば多くなるほどパターンも増加します。結果、計算量が増大し、使い物にならないはずです。 かと言って「マッチングアプリ 作り方」や「マッチングアプリ アルゴリズム」等で検索しても外観についてや「プログラミングとは」ぐらいの記事しか見つかりません。 ガワの方はどうにでもできるのですが、「どのように男女を組み合わせるか」や「結婚条件を提示している両サイドの満足度を満たす方法」が思いつかないのです。bit全探索はO(2^N)なのでNが1増加しただけで使い物にならなくなる可能性があるので困っています。 できればそのアルゴリズムの説明や実装方法、それが無理ならアルゴリズム名だけでもいいのでどなたかご存知の方お願いします。 ちなみに今のところそれを運用するつもりはありませんが、知的好奇心からの質問になります。
ベストアンサー
男女のマッチングではありませんが、組合わせを作成するアプリを作っています。その経験からは、制約条件が単純な場合はアルゴリズムの理論が役立つのですが、実用的には多くの制約条件と希望度合いがあり、しかも人によって制約条件が異なる必要があったりして複雑すぎて、理論的にロジックを構築するのは難しいですね。 スマホの計算能力もかなり高性能になってるので以下程度のロジックで実用レベルのアプリは作れると思います。 1.制約条件を必須となるべくに分類する 制約条件とは例えば、性別、年齢層、身長、職種、居住地、年収などなど 2.必須の制約条件で選択範囲をなるべく絞ったデータ群を作成する 3.乱数を用いて、その制約条件のなかで多数のデータを生成する、全組合わせは膨大になるので何個生成するかは10万通りだけとか適当に許容範囲の制限をつける。 例えば、女120人 男250人のそれぞれから乱数でランダムにN番目の人を選び組合わを120組生成する 4.生成したデータのマッチング度合いを評価する 例えば、身長はなるべく170cm以上必須だけど165以上なら許容範囲でできれば175以上だ、というような幅がある条件にはば実際の身長別に得点を付ける評価関数を作成する。データ生成で絞り切れてない必須条件は大きな減点で評価する。 5.生成した全組の評価値の総計がベストに近いと考えて答えとする。
ID非公開さん
質問者2022/5/23 16:36