2013-01-04 39 views
1

我正在開發一個基於傳感器值和其他細節分析用戶情況的android應用程序。該應用程序基本上是一個提醒功能,可以幫助用戶根據他的情況。哪種算法適合情況分析?

我們提供應用程序我們的日常事件作爲事件與位置和必要的細節。當事件到達時,它通過讀取他的位置,時間,天氣,加速器是否移動(即是否忙),電話是否在口袋中,距離事件目的地的距離,時間等來通知之前分析用戶的當前狀況將採取到達那裏等

然後,它選擇一系列的行動,可能會在到達目的地之前,如閱讀新聞,提供導航,打開媒體播放器,顯示股票細節,執行搜索等有用的一種操作。算法應該選擇這些行動來自一系列行動。

哪種算法和數據結構適合分析當前情況? 請提供您對該項目和想法的看法。由於

回答

1

2的方法浮現在腦海中:

  1. 插入到一個哈希表中所有可能採取的行動時,關鍵是集各種數據元素。即,h({data1, data2,...}) = a1; h({dataa, datab,...}) = a2。無論何時何時,將散列函數應用於數據集並提取動作。

  2. 1的問題是散列的可能大小,它必須包含所有可能的值組合 - 大小將爲num of sensor1 values * num of sensor2 values * ... * num of sensor n values。如果每個組合的行動都不同,那麼沒有什麼可以優化的。但事實可能並非如此,在大多數情況下,這些行動將是相同的。例如,您可以採取相反的方法,並將所有可能的操作集保存在地圖中。在非常高的層面上:無論何時何時到達,開始分析數據 - 在讀取第一個傳感器數據後,可能的行爲將縮小;分析第二傳感器數據並重復該動作子集的過程。繼續進行,直到只剩下單個動作或不再有傳感器數據可用(無論先出現哪種情況)(假設傳感器數據的所有組合均映射到有效動作)。

1

在閱讀您的項目邏輯和特別是號角條款時,我想起了這些。您描述了您的應用程序應該檢查一組條件以選擇要執行的特定操作。 Horn clausespropositionalfirst-order logic中的某種形式的邏輯表達式。霍恩條款最多隻有一個積極的文字,表達了事實,規則或目標。有了這些事實,就有可能描述你的知識,用規則來描述你的知識,如果某些條件適用,你可以選擇哪種行動來選擇。 Horn子句,一階邏輯,命題邏輯和解析是邏輯編程,規則引擎或約束滿足的理論基礎。

E.g. drools是一個規則引擎,它允許描述知識庫和一組規則。 Drools使用一階推理來從知識庫和規則的條件推理行爲。也許,你會發現一些你可以用在一階邏輯,命題邏輯,規則引擎,邏輯,編程,約束滿足,推理,問題解決和推理等領域的東西。您可能會在那裏找到例如用於流口水的rete algorithm

相關問題