遗传编程目前是否能够将一种搜索算法发展为另一种?例如,有任何实验曾经从QuickSort培育/变异BubbleSort(参见http://en.wikipedia.org/wiki/Sorting_algorithm)
我想基于符号回归使用遗传编程创建算法.
我读了一些关于这方面的文章,一些用java或c ++编写的例子.
也许更难,因为它不是OOP,但是有可能在C中开发基因编程吗?
你有什么建议我开始编程?是否有任何书籍/文章/例子可供阅读?我试着用谷歌搜索,但我没有找到任何有趣的东西..
谢谢,干杯.
c programming-languages genetic-programming genetic-algorithm
我对进化算法感兴趣.我用R测试了遗传算法,但有人尝试过遗传编程吗?你知道吗,如果有代码用R写的代码
我正在使用单个仓库处理车辆路径问题.问题定义如下.有n个vechiles需要前往m个站点.每个站点都有其特定的限制,例如只有具有一定容量的车辆才能为站点提供服务,有些站点需要在一天中的特定时间提供服务.此外,车辆将具有不同的容量并且将具有不同的开始和结束时间.
我们的想法是尽量减少从车厂出发的车辆的行程时间.
我正在构建问题的成本矩阵.虽然不是图论的专家,但我知道如果它陷入经典的旅行商问题,我可以使用哈密顿循环来解决问题.但是,因为它涉及多个旅行推销员问题,我想知道如何使用哈密顿循环解决问题,或者是否有另一个专门针对问题设计的流程?
任何帮助将非常感激.
我正在寻找一个可以生成随机但有效的python程序的程序,类似于
我试图自己给python tokenize.untokenize()函数提供随机输入,但当然大多数生成的源代码都不是我能解释的有效程序eval().所以我想知道,如果你知道如何生成随机但有效的python程序(可能使用ast模块?)或者如果这样的生成器已经存在.
编辑:我想使用随机python源代码作为使用python进行遗传编程的起点.所以我希望有一个随机程序列表,然后将它们演变为让我们说一个返回"Hello World!"的程序.
是否可以使用适应度值评估种群中的每个个体而不用如下伪代码找到概率
For all members of population
sum += fitness ( member)
End for
Loop until new population is full
Do this twice
Number = Random between 0 and sum
Currentfitness = 0.0
For each member in population
Currentfitness += fitness (member)
if Number > Currentfitness then select member
End for
End
Create offspring
End loop
Run Code Online (Sandbox Code Playgroud)
代码的以下部分是做什么的?
Do this twice
Run Code Online (Sandbox Code Playgroud)
我真的很困惑轮盘赌是如何选择一对父母的。有什么帮助吗?提前致谢
我想在Python中做一些字节码操作(想想遗传编程).
我在Python源代码树的crashers测试部分遇到了一个测试用例:
破碎的字节码对象很容易使解释器崩溃.这不是固定的.
因此问题,如何验证给定的调整字节代码,它不会崩溃解释器?它甚至可能吗?
测试源,在http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html之后
cc = (lambda fc=(
lambda n: [
c for c in
().__class__.__bases__[0].__subclasses__()
if c.__name__ == n
][0]
):
fc("function")(
fc("code")(
0, 0, 0, 0, "KABOOM", (), (), (), "", "", 0, ""
), {}
)()
)
Run Code Online (Sandbox Code Playgroud)
这里,该模块定义cc了如果被调用则mymod.cc()崩溃解释器.虽然这是一个非常棘手的例子,"KABOOM"它使用自定义字节码创建新的代码对象,然后运行它.
我接受一些验证预定义字节码的东西,例如来自.pyc文件.
如何评估AST具有更好的性能?目前我们创建AST作为树,其中叶节点(终端)是一个参数的函数 - 关键字及其值的映射.终端用关键字表示,而功能(非终端)可以是用户(或clojure)定义的功能.完全增长方法从非终端和终端创建树:
(defn full-growth
"Creates individual by full growth method: root and intermediate nodes are
randomly selected from non-terminals Ns,
leaves at depth depth are randomly selected from terminals Ts"
[Ns Ts arity-fn depth]
(if (<= depth 0)
(rand-nth Ts)
(let [n (rand-nth Ns)]
(cons n (repeatedly (arity-fn n) #(full-growth Ns Ts arity-fn(dec depth)))))))
Run Code Online (Sandbox Code Playgroud)
生成AST的示例:
=> (def ast (full-growth [+ *] [:x] {+ 2, * 2} 3))
#'gpr.symb-reg/ast
=> ast
(#object[clojure.core$_STAR_ 0x6fc90beb "clojure.core$_STAR_@6fc90beb"]
(#object[clojure.core$_STAR_ 0x6fc90beb "clojure.core$_STAR_@6fc90beb"]
(#object[clojure.core$_STAR_ 0x6fc90beb "clojure.core$_STAR_@6fc90beb"] …Run Code Online (Sandbox Code Playgroud) 我在一篇关于遗传编程的论文中得到了对“受保护部门”操作的引用。当我谷歌这个时,我得到的主要是关于遗传编程和与密码学相关的各种结果的论文,但没有解释它究竟是什么。有人知道吗?
例如,有GenProg(http://hackage.haskell.org/package/genprog),但这仅涉及数值优化,在这种情况下,找到描述数据的等式.
但我需要循环,if语句,语句,布尔检查等.我需要能够生成命令式结构.有什么想法吗?到目前为止,我最好的选择似乎是husk-scheme,我可以在Haskell中将Scheme代码作为DSL运行.当然必须有更好的方法吗?