遗传算法及其可能的应用 - 页 3

 
Igor Makanu:

这是合适的,在遗传优化模式下,通过 "用户标准的最大值",测试者的GA将最大化从双OnTester()获得的结果--一切都在工作,但在自动化中存在一个问题,"让GA振作起来",当它开始在找到的局部最大值周围收敛,不想通过输入参数搜索其他变体时,一般在微调GA必须通过向OnTester()添加条件或通过将优化参数分成几个区间 来帮助。

顺便说一下,如何实施?也开始考虑这样做了。

标签 Konow:
你是说 "智能"--优化并适应某种环境?

嗯,是的,选择总是由一些标准进行的。顺便说一下,如果有必要,标准本身可以随代际变化。

 
Реter Konow:
你是说 "智能"--优化并适应特定环境?

好的。创造一个封闭的环境,从一个相互作用的系统的复合体。例如:三基因个体 "吞噬"(附着在自己身上并生长)两基因个体,如果它们不能 "逃离 "它们(让我们说基因X和Y是平面上的坐标)。三个基因的个体增加了一个基因Z--第三个维度。它有一个优势。双基因个体的任务是生存而不被抓住,而三基因个体的任务是尽快抓住双基因,节省时间和资源。

目标:遗传上较弱的个体必须计算遗传上较强的个体才能生存。
我们知道--一个三基因个体在飞机上 "看到 "一个二基因个体,就像鸟儿看到田野里的老鼠一样,而一个二基因个体在二维空间感知一切,因此直到最后一刻才意识到敌人的接近。然而,在一个大群体中,有许多双基因个体,每个人都捕捉到了吞噬其部落成员的事件--他们在哪里和什么时候被捕获。因此,dvigens可能会形成普遍的 "感知"--从所有世代获得的经验和知识,了解他们的敌人在三维空间中有哪些自然障碍,以及如何最好地适应以生存。
 
Aleksey Mavrin:

顺便问一下,你是如何实现的?我也开始考虑这样做。

这是测试器的通常工作--首先你设置所有的优化参数,然后你测试,直到测试器开始在每个通道上画水平线的时刻--这是GA在一个局部最大值周围收敛的标志,然后你在优化标签中看到GA已经停止改变的参数,然后下一个优化运行,在其他间隔上打破这些参数(GA不改变),尽管它经常足以通过删除(保存)优化缓存重新启动测试器--GA是意外初始化的。

 
Igor Makanu:

这是测试器的常规工作--首先你设置了所有的优化参数,然后你进行了测试,直到测试器开始在每个通道上画出水平线的时刻--这是GA在一个局部最大值周围收敛的标志,然后你在优化标签中看到GA停止改变的参数,然后接下来的优化运行 你在其他时间段打破这些参数(GA不改变),尽管它经常足以重新启动测试器,删除(保存)优化缓存--GA初始化。

我认为,如果参数变化的步长足够低,GA应该收敛到一个一般的最大值(而不是局部)。如果步长太高,间隔的变化也无济于事,最大值会在相邻的数值之间滑动。

那么,更简单的做法是用最低的步骤进行全面列举,然后用GA,剔除最差的范围。

 
Aleksey Mavrin:

那么就更容易用最低的俯仰角进行完全的过冲,然后是GA,剔除最差的范围。

不容易,这是我优化的EA。


这个EA在1.5年内的一次测试需要1.5-2秒,在优化器中大约是同样的速度,你可以估计多少将需要一个完整的搜索,而GA在20-50分钟内已经找到让我满意的结果。

 
Igor Makanu:

不容易,这里是我的EA被优化的情况。


这个EA在1.5年内的一次测试通过需要1.5-2秒,优化器的速度大致相同,你可以估计一下做一次完整的运行需要多长时间,GA在20-50分钟内已经找到让我满意的结果了。

当科学地显示通过数时,是遗传数字溢出,根本不起作用(如果有的话)。我不得不这样做。

1.减少步骤的数量。为了使步数不至于粗糙,并覆盖所需的范围,我使步数成为非线性的。改变参数0.001-0.099,0.01-0.99,0.1-9.9,...。即准确度约为1%的步骤。

2.减少需要优化的变量数量,这是最主要的。

2а.将变量分成几乎独立的(组)组,分别进行优化。

2б.找到依赖另一个变量的变量,并将它们联系起来。我已经用这种方式去掉了几个变量,经过了很长时间的折腾。

2в.找到可以使之成为常量的变量,而代价是利润率的微弱下降。还发现。

3.经过多次评估,缩小变量的范围。

在我做出这种牺牲之前,我的优化是没有效果的。这都是关于优化的问题,有太多的变量。这本身就是错误的,但一些专家演变为简化而不是复杂化。

 
Igor Makanu:

不容易,这里是我的EA被优化的情况。


在1.5年中,这个EA的一次测试需要1.5-2秒,在优化器中大约是同样的速度,你可以估计一下完整的列举需要多长时间,而GA在20-50分钟内已经找到了令我满意的结果。

这是一个系统复杂性的问题。我在GU主题中讨论过这个问题。我花了3-5个步骤来完成列举。你的截图上有18个参数,这将是(3-5)^18=400M到3.8万亿,已经很可怜了,虽然是很多,最重要的是对它是很多,我做全面的搜索不是对所有的,有固定的一些,并在组,然后已经一起对GA确定 - 缩小GM。

并完全同意更详细的声明

埃德加-阿赫马德耶夫

当科学地显示通过数时,是遗传学的数字化被压倒了,它根本不起作用(如果有的话)。我不得不这样做。

1.减少步骤的数量。为了使步数不至于粗糙,并覆盖所需的范围,我使步数成为非线性的。改变参数0.001-0.099,0.01-0.99,0.1-9.9,...。即准确度约为1%的步骤。

2.减少需要优化的变量数量,这是最主要的。

2а.将变量分成几乎独立的(组)组,分别进行优化。

2б.找到依赖另一个变量的变量,并将它们联系起来。我通过这种方式删除了几个变量,经过很长时间的折腾。

2в.找到可以使之成为常量的变量,而代价是利润率的微弱下降。 还发现。

3.经过多次评估,缩小变量的范围。

在我做出这种牺牲之前,我的优化是没有效果的。这都是关于优化的问题,有太多的变量。这本身就是错误的,但一些专家演变为简化而不是复杂化。

每个人都有自己的方法,在本质上每个人都可能理解。
 
Edgar Akhmadeev:

当科学地显示通过数时,是遗传学的数字化溢出,它的工作原理完全错误(如果它真的能工作的话)。


你说的'工作完全错误'是什么意思?

作品的不正确性如何能被复制?

 
Edgar Akhmadeev:

当通过数以科学形式显示时,是遗传数字溢出,根本不起作用(如果有的话)。

对我来说,GA的工作是明确的,我在EA设置文件中写下了成功的通过,我从输入优化参数本身的MD5哈希值中创建了文件名,即在优化过程中我看到文件出现在Common文件夹中。

到目前为止,我只有一个问题--在一段时间内,GA可能开始围绕一小组优化参数收敛--我认为这是正常的,所有的GA都是这样工作的,这是它们的使用问题。

但明确的是,GA可以工作,没有挂起 - 我在添加的文件和唯一的名称中看到它

 
Slava:

你说 "完全不能正常工作 "是什么意思?

我怎样才能重现该故障?

很久以前我就写过这个问题,当时我在EA中使用框架。我已经不记得确切的时间了,我想我开始有不是所有的帧来(有更好的结果)。我将寻找旧的帖子并尝试澄清。

但我清楚地记得,这在我的专家顾问中是可以清楚重现的--只要超调的数量超过了一定的数量,并且以科学的形式显示出来,我的遗传学就会崩溃。重要的是,不仅要有大量的变量步骤,而且要有大量的变量。