一些遗传算法框架,例如http://www.aforgenet.com/需要许多参数,例如突变率,种群大小等
这些参数有通用的最佳数字吗?我认为这取决于问题(适应度函数延迟,突变延迟,重组延迟,进化速率等).我的第一个想法是使用GA来配置另一个GA.
有更好的想法吗?
我正在制作一个遗传程序,但是我在C#中遇到了限制,我希望在算法中提供新的函数,但是如果不重新编译程序我就无法做到.本质上,我希望程序的用户提供允许的功能,GP将自动使用它们.如果要求用户尽可能少地了解编程,那将是很好的.
我想插入新功能而不将它们编译到程序中.在Python中这很容易,因为它都被解释了,但我不知道如何使用C#来做到这一点.有谁知道如何在C#中实现这一目标?有没有图书馆,技术等?
我阅读了几篇关于如何使用遗传算法和蚁群优化等解决TSP的文章和示例代码.但我发现的所有内容都不包括时间(窗口)约束,例如."我必须在上午12点之前到达客户x"并且假设是对称的.
有人可以指出我的一些示例代码或文章的方向,解释如何向TSP添加约束以及如何在代码中表示这些约束.
谢谢!
我一直在研究一种算法,我需要从大小为k的群体中选择n个个体,其中k比n大得多.所有个体都具有适应值,因此选择应该有利于更高的适应值.但是,我不想简单地选择最好的n个人,更糟糕的也应该有机会.(自然选择)
所以,我决定在人口中找到最小和最大适应度值.所以,任何个人都会
p =(当前 - 最小)/(最大 - 最小)
选择的概率,但我不能只迭代所有这些,掷骰子并在概率成立时选择一个,因为那时我最终得到的不止是n个人.我可以随机播放列表并从前面迭代,直到我获得最多n个人,但这可能会错过列表末尾的好人.
我也可以执行多次传球,直到剩余的人口规模达到n.但是这可能会有利于更好的那些,并且收敛于我提到的天真的选择方法.
有任何建议,或参考这样的选择过程?如果您可以参考,我可以阅读相关的统计方法.
谢谢.
我正在做一个项目,我将使用遗传算法优化一组过滤器和参数,用于锐化图像.我现在正在阅读Gonzalez的"数字图像处理"一书,并且正在研究任何关于图像处理的内容,因为我对这个领域有点新意.
我正在寻找一个锐化方法列表...即非锐化掩模,高通滤波器,拉普拉斯锐化等.如果您熟悉图像处理,是否有任何滤镜,您建议用于锐化图像(包含参数"调整")?
谢谢!
我正在研究遗传算法.
有两个目标,每个目标都有自己的适应值(fv1,fv2).
我知道世代(SGE)和稳态(SS)遗传算法是如何工作的.
我试图了解NSGA-2和SPEA-2(我正在使用Java库JCLEC的实现)如何工作,特别是:
如果有人正在使用JCLEC库,这些是我设置的参数:
我想知道人口规模是否有一般的经验法则.我读过一本书,认为2倍的染色体长度是一个很好的起点.我是否正确地假设如果我有一个包含5个变量的等式,我应该有10个人口?
我也想知道以下是否正确:
人口规模较大.
优点: 更大的多样性,因此更有可能获得恢复健康的特性.
缺点: 需要更长时间来处理.
VS
较小的人口规模.
优点: 每单位时间经历的代数较多.
缺点: 为了弥补较小的人口,突变必须更加突出?
编辑
一点额外的信息,说我有一个方程,其中有5个未知参数.对于每个参数,我有10-50个值之间的任何值,我想尝试分配给这些变量中的每一个.所以举个例子
variable1 = 20个不同的值variable2 = 15个不同的值......
我认为GA对于这样的问题是一个很好的方法,因为搜索空间非常大,即上面的最坏情况将是312,500,000个排列(除非我搞砸了?)n!/(nk)!其中n = 50且k = 1 => 50*50*50*50*50
不幸的是,要检查的参数/值范围的数量可能会有很大不同,所以我正在寻找一些关于我应该设置人口数量的经验法则.
感谢您的帮助+如果您需要/更喜欢在其中一个聊天室中讨论更多信息,请给我一个大喊.
我的任务:
创建一个程序来复制图片(仅作为输入)使用基元(如三角形或其他东西).程序应使用进化算法来创建输出图像.
我的问题:
我需要发明一种算法来创建种群并检查它们(多少 - 以%为单位 - 它们与输入图像匹配).我有个主意; 你可以在下面找到它.
所以我想要你:建议(如果你发现我的想法不那么糟糕)或灵感(也许你有更好的主意?)
我的想法:
假设我将仅使用三角形来构建输出图片.
我的第一个人口是P图片(通过使用T随机生成的三角形生成 - 称为元素).
我通过我的健身功能检查每个人口中的图片,并选择他们的E作为精英,其余的人口只是删除:
To compare 2 pictures we check every pixel in picture A and compare his R,G,B with
the same pixel (the same coordinates) in picture B.
I use this:
SingleDif = sqrt[ (Ar - Br)^2 + (Ag - Bg)^2 + (Ab - Bb)^2]
then i sum all differences (from all pixels) - lets call it SumDif
and use:
PictureDif = …Run Code Online (Sandbox Code Playgroud) 我面临以下问题.我有一个系统能够根据他们的异常分数产生一些操作的排名.为了提高性能,我实现了遗传算法来执行特征选择,使得最异常的操作出现在第一个位置.我正在做的不是特征选择,因为我没有使用二进制变量,而是在0-1之间浮动变量,其中sum等于1.
目前,我有50代人口200人.我使用系统本身作为评估函数,我使用真正的正率评估解决方案的质量,计算前N个位置出现的异常操作数量(其中N是异常操作的数量).然后作为操作员的均匀交叉,我改变个体细胞的值以进行突变.当然,每次我做一个检查以确定个人的总和是1.最后,我使用精英主义来保存当时最好的解决方案.
我观察到一个特征具有非常高的值,这通常很重要,但并非总是如此,这导致其他特征的值非常低.我怀疑我的GA过度拟合.你能帮我找到一个好的停止标准吗?
有没有人从.Net 遗传算法框架中看到令人信服的结果?
我发现随遗传算法框架提供的旅行商问题演示中的随机化很差.以下调用在x 100种子染色体群体中生成相同的基因shuffle顺序:
chromosome.Genes.ShuffleFast();
Run Code Online (Sandbox Code Playgroud)
如果我单步执行代码,基因顺序看起来是随机的,因此我怀疑在ShuffleFast()中有一个时间/ Rdn()错误,否则我忽略了一个设置步骤.
我试图通过预先填充染色体基因序列来解决这个问题,这在TSP结果中产生了微小的变化.然而,该运行的控制台日志仍然显示GAF在400个人口世代中仅发现了4个潜在的解决方案.这与GA YouTube视频不一致,这些视频显示遗传算法的实现正在寻找具有大量抖动的建议解决方案.我引用这一点作为进一步表明GAF存在随机数生成的系统性内部问题.
遗传算法框架通过作者博客得到很好的记录,所以我试图保持开放的心态作为原因.
重现步骤=从nuget下载GAF,在创建染色体for循环后使用断点编译和调试默认项目,检查population.Solutions.Windows 7,VS2015,.Net 4.5和4.61.调试或发布.