我有我使用遗传算法运行的实验数据,并试图在论文中展示它。什么是表示遗传算法结果的好/经典方法。我正在考虑做一个散点图,代表他们几代人的最大拟合个体。这是结果的一个很好的表示吗?
我有一个父类型
public class IObject{}
Run Code Online (Sandbox Code Playgroud)
并且可以有很多子类(甚至是未来的新子类)
public class Object1 extends IObject{}
public class Object2 extends IObject{}
public class Object3 extends IObject{}
...
public class ObjectN extends IObject{}
Run Code Online (Sandbox Code Playgroud)
然后根据这些对象的类型我必须做不同的操作。
public class StrategyForObject1(){void do{}}
public class StrategyForObject2(){void do{}}
public class StrategyForObject3(){void do{}}
...
public class StrategyForObjectN(){void do{}}
Run Code Online (Sandbox Code Playgroud)
所以我想从我的 Context 类:
public Conext {
IObject o;
public void setObject(IObject o) {
this.o = o;
}
void logic() {
if (o instanceOf Object1) {
new StrategyForObject1().do();
}
if (o instanceOf Object2) {
new StrategyForObject2().do();
} …Run Code Online (Sandbox Code Playgroud) java design-patterns strategy-pattern visitor-pattern genetic-algorithm
在阅读 David E. Goldberg 所著的“遗传算法”一书时,他提到了遗传算法中的适应度缩放。
我对这个函数的理解是限制最强的候选者,这样它们就不会淹没池子进行繁殖。
为什么要限制最佳候选人?在我看来,尽早拥有尽可能多的最佳候选人将有助于尽快找到最佳解决方案。
我想用遗传算法求解包含n个变量的n个线性方程组.
我很难定义交叉操作,因为解决方案可能包含浮点值.我该怎么办?这似乎是可能的,但这是我第一次遇到遗传算法.
假设我们必须解决
x + 2y = 1
2x + 8y = 3
Run Code Online (Sandbox Code Playgroud)
答案是x = 1/2和y = 1/4.
我们如何对问题进行建模?
更新:看看你是否可以从论文http://www.masaumnet.com/archives/mjbas/volume1/issue2/mjbas010205.pdf中解读任何内容.
我目前正在使用Q-Learning尝试教一个机器人如何在一个充满墙壁/障碍物的房间里移动.它必须从房间的任何地方开始并进入目标状态(例如,这可能是带有门的瓷砖).目前,当它想要移动到另一个磁贴时,它将转到该磁贴,但我想在将来我可能会添加一个随机的机会去另一个磁贴,而不是那个.它只能向上,向下,向左和向右移动.达到目标状态会产生+100,其余的操作将产生0.
我正在使用此处找到的算法,可以在下面的图像中看到.

现在,关于这一点,我有一些问题:
我也听说过TD(时间差异),它似乎用下面的表达式表示:
Q(a, s) = Q(a, s) * alpha * [R(a, s) + gamma * Max { Q(a', s' } - Q(a, s)]
Run Code Online (Sandbox Code Playgroud)
对于alpha = 1,只是看起来在图片中首先显示的那个.这个伽玛有什么不同呢?
language-agnostic artificial-intelligence reinforcement-learning genetic-algorithm
我正在寻找有效的添加或省略代码的方法,以帮助我的遗传算法程序返回更快的结果.该程序的目标是接受一个字符串并创建尽可能匹配的其他字符串.无论哪个新制作的字符串与最接近的(前5个)配对匹配并产生后代(其中一些具有将新的随机数放入字符串而不影响长度的突变).这一切都很好,但需要不可思议的几代才能获得一些更长的字符串(4和更高)才能完美匹配.抱歉tl; dr长度,但这是我当前的代码.批评走了!
#include "stdio.h"
#include "fstream"
#include "ctime"
#include "iostream"
#include "string"
#include "windows.h"
#define CHARACTERS 16
#define STRINGS 100
/*
Enter String(max 16 chars)
Generate 100 words of the same length
Check for Fitness(how close each word is to the string)
Every generation: display top 5
Clone the top 5
Top 20 reproduce(mix each other's chars)
1/1000 chance the children might mutate(each newly mixed string or char might have a completely random number)
*/
typedef struct _stringHolder
{
char …Run Code Online (Sandbox Code Playgroud) 我目前正在使用Pyevolve包解决一些遗传算法问题.我想知道是否有任何在Pyevolve包中使用Pareto排名的例子,因为我有多个评估函数.
如果不存在,你能不能提供一些Pareto排名算法的伪代码.我想自己实现它.
谢谢!!
我有一个遗传算法,个人由2000位组成,我尝试优化4个变量.是否有任何(相对直接的优先)经验法则来设置人口规模,世代数和变异概率等参数?
我正在学习用于自动分组用户的优化算法.但是,我对这些算法完全陌生,我在回顾相关文献时听说过它们.而且,不同的是,在其中一篇文章中,作者使用整数编程实现了他们自己的算法(基于他们自己的逻辑)(这就是我所知道的IP).
我想知道是否需要使用混合整数线性编程实现遗传/粒子群(或任何其他优化)算法,或者这只是其中一个选项.最后,我需要构建一个基于Web的系统,自动对用户进行分组.我感谢任何帮助.
optimization linear-programming genetic-algorithm particle-swarm integer-programming