2011-12-25 39 views
3

我想構建一個應用程序,它使用遺傳編程來找出用戶正在問什麼。這是一個非程序員的編程應用程序。用戶基本上爲應用程序提供了大量示例,並且通過示例,應用程序將派生出爲用戶自己的使用/分發構建新程序所需的規則。高性能且易於使用的非GPLed遺傳編程庫

我已經使用線性迴歸構建了原型,但它只能解決簡單的問題。這個星期我用pyevolve試驗了遺傳編程,它比我預期的更加出色!但是,我懷疑它是用純Python編寫的,因此需要幾十秒來解決一個示例,而在我的應用程序中,我最多隻需要幾秒鐘的時間。

我一直在試圖找到一個與pyevolve一樣易於使用的更高性能的庫,但找不到合適的庫。我嘗試了openBeagle,但是在得到一個示例運行後,以及幾個小時後通過文檔,我仍然找不到一個方法來真正從「Vivarium」中挑選出一個人。我見過有人推薦GAUL,但這是一個GPL庫,並且會限制我如何授權我的未來應用程序。我試圖下載lil-gp,但ftp下載鏈接被大學的登錄屏幕鎖定。

由於應用程序將是Mac OS X可可應用程序,因此我沒有考慮Java,C#或Matlab GP庫。

+0

沒有理由你不應該能夠在OS X上使用Java或C#(通過Mono,http://www.mono-project.com)。 – Jay 2012-01-13 08:33:39

+0

我必須設置一個objective-c <-> java或目標-c <-> c#橋,它會是一個額外的複雜層...所以我寧願先用盡我的其他選項... – Eric 2012-01-14 02:42:07

+0

正確 - 如果UI *需要*是可可然後C/C++/Obj-C聽起來像最簡單的路線.. – Jay 2012-01-15 14:57:18

回答

4

作爲Open BEAGLE的開發人員,如果您尋求一個快速的GP庫,我仍然建議您使用該庫。實際上,通過運行第二個程序來解析在演化結束時記錄的XML文件,可以獲得最好的個體。否則,您可以通過Vivarium.getHallOfFame()方法訪問它,然後對其進行排序並使用HallOfFame.operator []訪問第一個元素。你會得到的會員是個人的一個結構,它記錄了它的世代,以及它是什麼。

通過這種方式,您可以訪問在您的進化過程中生活過的最好的人。

如果您對Open BEAGLE有特定問題,我建議您直接向開發人員列表提問,我們通常會很快回答。

雖然如果你想在Python中嘗試一個非常不同的庫,我建議你DEAP,它比Pyevolve有更多的靈活性。在PyPy下,一些GP例子運行速度比Python快得多。

+0

哇,謝謝你的回覆!我已經解決了如何從評論中使用HallOfFame。我嘗試訪問http://beagle.gel.ulaval.ca/#documentation上的手冊,但鏈接到sourceforge wiki上的手冊已損壞。 :(有沒有其他的鏈接?謝謝! – Eric 2011-12-27 15:43:09

+0

鏈接到文檔http://beagle.sourceforge.net/refmanual/beagle/html/index.html – mitch 2011-12-27 17:32:49

+0

謝謝!我已經有參考,但...我指的是這樣的:「詳細的手冊,教程,體系結構手冊和用戶手冊(http://beagle.sourceforge.net/wiki/index.php/Documentation:Manual)」。 – Eric 2011-12-28 05:24:52

1

如果您詢問GAUL項目的關鍵開發人員是否有權使用替代許可協議,那麼他很有可能會同意*

*「他」是我。