动态语言与智能程序

动态语言与智能程序

ruby语言是解释性的动态语言,并且具备元编程的能力.因此很适合编写智能程序.
下面是我的一点探索性的想法:
设想我们构造一个web应用,这个web应用是服务于大众的,将会有很多人参与.他们每个人都有某种喜好或者价值取向等等
程序员不能预先断定这些大众到底会喜欢什么,但程序员可以把一些ruby代码保存在数据库里,并且每段代码给他们随机分配一个适应值(fitness)
然后这个web应用开始运作(我们假设这个web应用是php?name=rails" onclick="tagshow(event)" class="t_tag">rails做的),然后用户会有他们自己的喜好,用户的新网会改变数据库里面ruby代码的fitness.然后
rails程序会优先选择fitness大的那些代码片段执行.
为了更富于变化,还能够让数据库里面的ruby代码随机组合,产生新的程序,这些新的程序也分配一个fitness,用户可以决定是否喜欢它们.
呵呵,最后产生的结果就是:这组程序在和用户的交换下获得了"进化",形成了所谓的"智能程序".


[Copy to clipboard] [ - ]
除了数据库里面保存ruby代码外,也可以部分使用文件保存代码.
假如随机组合产生的ruby程序文件不被用户所喜欢,或者不再需要这个程序文件,那么这个文件能够"自爆":
File.delete __FILE__
即自我删除.
当然如果用户很喜欢这个ruby程序,那么就让这个程序继续'繁殖',复制自己组合生成新的ruby代码.
这样就实现了智能化?人类灭亡的时候快到了。

不过这些最早的Ruby语句从哪里来?
最早的Ruby语句被称为"原子"
参考了一些遗传算法的思想.
这里有一个"General Genetic Algorithms for Ruby"(通用遗传算法for ruby)
http://gga4r.rubyforge.org/
非常有创意的想法。
ruby的确可以有lisp的类似功能,适合于开发人工智能方面的程序。

补充一下axgle提到的eigenclass的概念。
所谓的eigenclass就是指用下面的方法“特殊化一个对象”

[Copy to clipboard] [ - ]