2012-07-25 62 views
1

我創建了一個基於一組標準匹配人們的Facebook應用程序,我想這很容易讓查詢搜索符合標準的人的數據庫。確切地說,但想知道網站如何正常生成不符合標準的結果。根據一組標準匹配人

我正在考慮類似於理貨系統的東西,我在看第一個參數,找到所有匹配的人,併爲他們的id增加一個計數器,然後查看第二個參數,併爲所有那些增加一個計數器匹配等。然後只顯示具有最高計數器的案例的結果。問題在於某些標準可能比其他標準更重要,我想這可以通過給予它們更高的權重來解決,即通過更高的價值增加計數器。

所以我的問題是:

  1. 如何網站通常這樣做,並對此有任何標準的PHP食譜?
  2. 我建議的算法是否可行?
  3. 這個普通區域叫什麼? (我不知道我應該......被谷歌搜索)
+0

嘗試[模糊邏輯](http://en.wikipedia.org/wiki/Fuzzy_logic)。 – ghoti 2012-07-25 10:51:21

+0

看看[n維匹配算法](http://stackoverflow.com/questions/677987/n-dimensional-matching-algorithm?rq=1)和[Divide and Conquer](http:// en。 wikipedia.org/wiki/Divide_and_conquer_algorithm)這是一個非常強大的基於標準匹配對象的算法 – Romain 2012-07-25 10:54:28

回答

1

我認爲搜索詞是你的問題:-) 我會推薦這種方法:

其視爲圖中每個'N'人都與其他人相連。
根據你的應用程序是什麼來分配權重。

然後嘗試在bipartite graph中查找最大匹配。
這是一個衆所周知的問題。嘗試搜索網絡流量+二分圖。