ruby – 有程序迭代地编写新程序吗?

前端之家收集整理的这篇文章主要介绍了ruby – 有程序迭代地编写新程序吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
大约一年的时间里,我一直在考虑编写一个写程序的程序.这主要是一个可以教我一些新概念的俏皮练习.我的灵感来自 negentropy,秩序的无限次序出现在混乱和新的混乱之中.

更具体地说,程序将首先写一个短的随机字符串.如果字符串编译,程序将会记录下来进行比较.如果字符串不编译,程序将尝试重写它,直到它编译为止.随着更多的字符串(迷你“无用”程序)被记录,它们可以被解析为相似性,并用于生成语法.然后可以绘制这种语法来编写比纯随机字符串更多的编译概率的字符串.

这显然有点愚蠢,但我认为尝试和种植这样的程序会很有趣.作为一个副产品,我得到了一堆独特的程序,我可以可视化和调用艺术.

我可能会在Ruby中写这个,因为它的简单语法和动态编译,然后我将使用ruby处理进行可视化处理.

我想知道的是:

>这种类型的编程有名字吗?
>该领域目前存在什么?
谁是主要贡献者?
>奖金! – 以什么方式可以程序性地将价值分配给输出程序超出编译(y / n)?我可能想扩展这个程序的功能,以生成一个基于参数的程序,但我希望程序通过运行编译和分配程序输出的程序来定义这些参数.这个问题可能比合理的奖金更多,但如果你能想到一个简单的方法来获得这样的东西,在不到23行或一个超链接中,请把它放在你的回应中.

我知道这不是元编程,从我知道的AI和生成算法的小知识来看,他们通常比我想象的更加以目标为导向.什么是最佳的是一个程序,不断重写和改进自己,所以我不必^ _ ^

解决方法

查找“遗传编程”.

编辑回覆评论

@chris,@Kasturi:true. OP中描述的是一种通过强力尝试来推断语法来制作一些具体的语法编译,然后从语法返回生成新的具体语法的系统.如果你必须有一些与这个描述非常吻合的东西,那么我最好的建议就是用语法极少的语言用具体的语法建立一个隐藏的马尔可夫模型.我会考虑使用最小的组合逻辑(类似于Unlambda语言的精神).

另一方面,遗传规划是一种具有一些发达的实践和文学的技术,而不是“确定性”,而是一个随机过程.这也是一个很广泛的术语—可以说,OP的系统是GP的0%交叉和100%突变的极限情况.

原文链接:https://www.f2er.com/ruby/266547.html

猜你在找的Ruby相关文章