2009-01-26 59 views
18

多年來我一直對Blackboard pattern感興趣(特別是當我學習AI時),但是我仍然無法在學術界之外找到一個很好的實現,儘管它似乎是一個非常有用的模式目前的軟件開發趨勢,我想不出任何圍繞這種模式構建的大型框架。有誰知道黑板模式的成功實現嗎?

有沒有人在這裏知道與這種模式有關的成功或失敗故事?

注:其他鏈接

編輯:現在我想知道,如果方式可能用作圖案的混搭,能生態系統或類似的東西

編輯:經過調查後,我發現了一個有趣的paper,其中提出像維基百科這樣的東西是一個黑板,但它取決於人類作爲代理人。這讓我意識到StackOverflow幾乎是一個Blackboard系統,與我們一起作爲代理,分享我們關於板上未確定問題的專業知識......無論如何,它都是一些值得思考的東西。

回答

4

看一看元組空間及其實施。它從未產生過很大的影響,但仍然是構建分佈式應用程序的有趣方法。

9

黑板模式適合協作應用。除此之外,我傾向於認爲這不是一個好主意。

黑板傾向於成爲一大堆共享狀態,創建各種有趣的訪問模式。現代語言和技術都試圖儘可能地封裝和控制狀態管理,黑板恰恰相反。

我發現它被用在算法中的時代,它通常是一個沒有正確理解要解決的問題的跡象。所以「爲了安全起見」,你爲太多演員提供了太多的狀態。

我從兩個應用程序刪除了此模式,並與代表實際功能和數據的需求良好,穩固的接口取代了它,這是兩次成功;)

+1

所以你的評估是該模式畢竟不是那麼酷。我自己我沒有發現需要使用它的問題,但我多年來一直在使用它,但從未發現它有很好的用處。你的回答可能是爲什麼..反正現在我希望聽到更多的意見。謝謝 – 2009-01-26 08:02:47

+0

@羅伯特古爾德對不起,但是);我也喜歡它,當我與AI系統合作,但那是10年前:如果我今天與AI合作,我懷疑我仍然不喜歡它。或者,也許它在這個主宰中效果不錯。不能100%確定它是什麼;) – krosenvold 2009-01-26 08:12:09

3

是很常見在C4I系統中,很多更新狀態的角色都是人類,但有些是軟件代理。

我也看到了在SCADA系統中使用的元組空間,但通常不會像這樣調用,並且沒有太多的重點放在軟件代理方面。(雖然通常有一個簡單的規則系統連接到監視空間)

5

我的看法是,當你有一組受限制的數據時,黑板模式可以工作得很好,幾個角色可以並行工作,應該對數據集進行改進和重新提煉。它允許演員完全獨立編寫,具有非常簡單的界面,並且都是異步運行的。

作爲一個很好的候選人會是我們的系統。

我們的視覺系統有一些基礎數據(圖像),我們有很多算法可以從這些數據中產生新的數據。我們經常會看到一種算法可以很好地利用其他算法產生的信息,但是我們分享這些信息的方式很差,因爲通過oo系統中的消息的正常參數可能會很快導致大量列表處理。我們還有一個問題,即我們在過程中晚些時候發現的一些信息可能會改善早期猜測,但這樣做會需要更多的參數流水線。

不幸的是將這樣的重構需要更多的資源比我們目前有:(

-1

的黑板模式略加修改的一個例子是由Mojang提供在

的Minecraft。

像植物大戰殭屍的實體實施,羊代表黑板每個PathfinderGoal是修改實體的狀態的知識源

對於羊:。 如果高草是在實體的前// executeCheck - >實體消耗了草和incremen ts增長計數器的羊毛//執行動作

它稍微修改,因爲實體可以訪問所謂的PathfinderGoalSelector這是控制器。這個控制器有一個滴答方法(我的世界是基於20滴答/秒 - 等價於循環方法)。主線程循環遍歷每個實體並調用實體的tick方法。實體本身正在將其委託給PathfinderGoalSelector。

相關問題