文章 "遗传算法 - 很简单!" - 页 11 1...456789101112131415161718...20 新评论 Serj 2011.11.11 22:53 #101 ivandurak: 应根据什么标准杀死多少后代 .有多少父母和后代应该取决于优化参数的数量 .从什么时代可以允许乱伦 .一般来说,还不太清楚杀死父母的原则是什么。只是不幸的是,你的劳动不太适合我的目的,但还是非常感谢你的画笔。你不必杀死任何人。即使只有一条染色体也可以工作(与自身杂交)。因此,平均 50 条染色体足以满足所有目的。你只是不了解算法。算法是通用的,适用于任何用途,这就是它叫 UGA 的原因。只是有些任务可以用其他方法更快地解决。 Andrey Dik 2011.11.12 01:08 #102 ivandurak:1.给我一个提示.... 2. 用什么标准杀死多少后代 .3.应根据需要优化的参数数量选择多少父代和子代 .4.从哪个纪元开始允许乱伦 .5.一般来说,杀死父母的原则并不明确 .6.只是遗憾的是,您的劳动不太适合我的目的,但还是非常感谢您的刷子 .1.我不太清楚您发帖的目的。如果您需要关于实现算法的建议,您需要的是细节,可以说是一个总体概念,这样才有讨论的余地。如果问题是关于文章中描述的算法,请参阅 2、3、4、5、5。2, 3, 4, 5, 6.2.子代不会被杀死。父代及其子代的重复序列会被删除。3.大部分人口中的 50 个个体是最常用的含义。4.不允许 "与自己 "杂交。但如果非常有必要(种群正在 "消亡"),则可以这样做。要多次尝试寻找合适的 "伙伴"。5.父母不会被随机或在某些条件下 "杀死",而是被后代取代(如果种群数量已满,则正好有一半的种群被后代取代)。6.如果问题非常 "特殊"--也许(如果可能的话)可以先尝试找到一种分析方法。 Alexey 2011.11.12 09:11 #103 感谢您的及时回复。我需要遗传学来进行各种实验。在我看来,您的参考书目使用起来不是很方便,因此我正在编写自己的参考书目。 不幸的是,在网络中对整个算法的描述很差,主要只有 GA 决定子,如果您能提供描述链接(俄语),我将非常感激。下面我将描述我是如何看待这一切的,如果不难纠正的话。1 随机创建亲本个体,不少于 50 个。2 通过杂交和突变产生后代数量不少于 ..... 的群落。3 寻找重复个体,去除亲本。5 必要时,完成子代和父代的繁殖。亲本是随机产生的,后代是自然产生的。 4 通过 FF 运行所有子代。FF 位于 GA 之外。5 对它们进行排序。排名越高,越有可能成为爸爸。6 将所有个体分为强者和弱者,强者将在下一步成为父母。7 从群体中挑选出一部分后代(最不适合的)。小概率情况下,我们会从父母群中剔除一部分人,就像意外死亡一样。8 这就是时代的终结。9 如果在 .... 期间(请注明),同一个个体持有 Rambo 标志 - 计算结束 GA 收敛,否则转到第 3 点。 Andrey Dik 2011.11.12 11:55 #104 ivandurak:.... 对不起,但我觉得你需要再重新读一遍这篇文章。 Alexey 2011.11.16 09:13 #105 我花了很大力气编写了我的 GA。但它会陷入局部极端。您对如何避免这种情况有什么一般性建议吗? Andrey Dik 2011.11.16 11:05 #106 ivandurak: 我花了很大力气编写了我的 GA。但它会陷入局部极端。你能给我一些关于如何避免它的一般性建议吗?这不是传染病,而是一种特殊的 "遗传 "魔法。:)您使用什么函数作为 FF?我建议使用专门设计的函数来 测试、校准和调试优化算法。 Тестовая многопеременная многоэкстремальная функция. - MQL4 форум www.mql5.com Тестовая многопеременная многоэкстремальная функция. - MQL4 форум Alexey 2011.11.16 12:50 #107 请原谅我的冒昧,但这是一个原则问题。我从您的文章中选取了一个例子,并编写了一个脚本 进行检查。答案与示例不符,要么是滑雪板没有移动,要么是椅子和键盘之间的衬垫出了问题。如果像小猫一样戳一下不难的话,第二天我就找不到错误了。致敬void OnStart() { double y,x1,x2 ; x1=-3.315699; x2=-3.072485; y=pow((cos(2-pow(x1,2))-1.1),2)+pow((sin(0.5-x1)-1.2),2)-pow((cos(2-pow(x2,2))-1.1),2)+pow((sin(0.5-x2)-1.2),2); Print("解决方案 1 可能是正确的 = ",y) ; //------------------------------------------------------------------- x1=2.252170; x2=-4.5171187; y=pow((cos(2-pow(x1,2))-1.1),2)+pow((sin(0.5-x1)-1.2),2)-pow((cos(2-pow(x2,2))-1.1),2)+pow((sin(0.5-x2)-1.2),2); Print("解决方案 2 是我的 = ",y) ; } Serj 2011.11.16 15:15 #108 ivandurak: 请原谅我的冒昧,但这是一个原则问题。我从您的文章中选取了一个例子,并编写了一个脚本进行检查。答案与示例不符,要么是滑雪板没有移动,要么是椅子和键盘之间的衬垫出了问题。如果像小猫一样戳一下不难的话,第二天我就找不到错误了。衷心感谢 没错,必须更换垫圈。对不起。 Mykola Demko 2011.11.16 17:28 #109 ivandurak: 请原谅我的冒昧,但这是一个原则问题。我从您的文章中选取了一个例子,并编写了一个脚本进行检查。答案与示例不符,要么是滑雪板没有移动,要么是椅子和键盘之间的衬垫出了问题。如果像小猫一样戳一下不难的话,第二天我就找不到错误了。衷心感谢如果对 FF 本身没有信心,即不确定极值是否如此,可以在测试器中运行该函数,测试器 GA 在这个意义上相当不错,可以找到相当精确的解决方案,但仅限于少量参数(1,2)。一般来说,应该理解的是,GA 找到的不是精确解,而是稳健解。也就是说,与所有可能的解决方案相比,它是一个相当不错的解决方案。 Andrey Dik 2011.11.16 17:43 #110 ivandurak: 请原谅我的冒昧,但这是一个原则问题。我从您的文章中选取了一个例子,并编写了一个脚本进行检查。答案与示例不符,要么是滑雪板没有移动,要么是椅子和键盘之间的衬垫出了问题。如果像小猫一样戳一下不难的话,第二天我就找不到错误了。请注意。void OnStart() { double y,x1,x2 ; x1=-3.315699; x2=-3.072485; //y=pow((cos(2.0-pow(x1,2.0))-1.1),2.0)+pow((sin(0.5-x1)-1.2),2.0)- // pow((cos(2.0-pow(x2,2.0))-1.1),2.0)+pow((sin(0.5-x2)-1.2),2.0); y= pow(cos((double)(2*x1*x1))-0.11 e1, 0.2 e1)+pow(sin(0.5 e0*(double)x1)-0.12 e1,0.2 e1) - pow(cos((double)(2*x2*x2))-0.11 e1, 0.2 e1)+pow(sin(0.5 e0*(double)x2)-0.12 e1,0.2 e1); Print("解决方案 1 正确 = ",y) ; //------------------------------------------------------------------- x1=2.252170; x2=-4.5171187; //y=pow((cos(2.0-pow(x1,2.0))-1.1),2.0)+pow((sin(0.5-x1)-1.2),2.0)- // pow((cos(2.0-pow(x2,2.0))-1.1),2.0)+pow((sin(0.5-x2)-1.2),2.0); y= pow(cos((double)(2*x1*x1))-0.11 e1, 0.2 e1)+pow(sin(0.5 e0*(double)x1)-0.12 e1,0.2 e1) - pow(cos((double)(2*x2*x2))-0.11 e1, 0.2 e1)+pow(sin(0.5 e0*(double)x2)-0.12 e1,0.2 e1); Print("决定 2. 错误 = ",y) ; } 我有一个匹配的原因。可能是因为我使用了文章中的功能。 1...456789101112131415161718...20 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
应根据什么标准杀死多少后代 .有多少父母和后代应该取决于优化参数的数量 .从什么时代可以允许乱伦 .一般来说,还不太清楚杀死父母的原则是什么。只是不幸的是,你的劳动不太适合我的目的,但还是非常感谢你的画笔。
你不必杀死任何人。即使只有一条染色体也可以工作(与自身杂交)。因此,平均 50 条染色体足以满足所有目的。
你只是不了解算法。
算法是通用的,适用于任何用途,这就是它叫 UGA 的原因。只是有些任务可以用其他方法更快地解决。
1.给我一个提示....
2. 用什么标准杀死多少后代 .
3.应根据需要优化的参数数量选择多少父代和子代 .
4.从哪个纪元开始允许乱伦 .
5.一般来说,杀死父母的原则并不明确 .
6.只是遗憾的是,您的劳动不太适合我的目的,但还是非常感谢您的刷子 .
1.我不太清楚您发帖的目的。如果您需要关于实现算法的建议,您需要的是细节,可以说是一个总体概念,这样才有讨论的余地。
如果问题是关于文章中描述的算法,请参阅 2、3、4、5、5。2, 3, 4, 5, 6.
2.子代不会被杀死。父代及其子代的重复序列会被删除。
3.大部分人口中的 50 个个体是最常用的含义。
4.不允许 "与自己 "杂交。但如果非常有必要(种群正在 "消亡"),则可以这样做。要多次尝试寻找合适的 "伙伴"。
5.父母不会被随机或在某些条件下 "杀死",而是被后代取代(如果种群数量已满,则正好有一半的种群被后代取代)。
6.如果问题非常 "特殊"--也许(如果可能的话)可以先尝试找到一种分析方法。
感谢您的及时回复。我需要遗传学来进行各种实验。在我看来,您的参考书目使用起来不是很方便,因此我正在编写自己的参考书目。 不幸的是,在网络中对整个算法的描述很差,主要只有 GA 决定子,如果您能提供描述链接(俄语),我将非常感激。下面我将描述我是如何看待这一切的,如果不难纠正的话。
1 随机创建亲本个体,不少于 50 个。
2 通过杂交和突变产生后代数量不少于 ..... 的群落。
3 寻找重复个体,去除亲本。
5 必要时,完成子代和父代的繁殖。亲本是随机产生的,后代是自然产生的。
4 通过 FF 运行所有子代。FF 位于 GA 之外。
5 对它们进行排序。排名越高,越有可能成为爸爸。
6 将所有个体分为强者和弱者,强者将在下一步成为父母。
7 从群体中挑选出一部分后代(最不适合的)。小概率情况下,我们会从父母群中剔除一部分人,就像意外死亡一样。
8 这就是时代的终结。
9 如果在 .... 期间(请注明),同一个个体持有 Rambo 标志 - 计算结束 GA 收敛,否则转到第 3 点。
....
我花了很大力气编写了我的 GA。但它会陷入局部极端。你能给我一些关于如何避免它的一般性建议吗?
这不是传染病,而是一种特殊的 "遗传 "魔法。:)
您使用什么函数作为 FF?
我建议使用专门设计的函数来 测试、校准和调试优化算法。
请原谅我的冒昧,但这是一个原则问题。我从您的文章中选取了一个例子,并编写了一个脚本进行检查。答案与示例不符,要么是滑雪板没有移动,要么是椅子和键盘之间的衬垫出了问题。如果像小猫一样戳一下不难的话,第二天我就找不到错误了。衷心感谢
请原谅我的冒昧,但这是一个原则问题。我从您的文章中选取了一个例子,并编写了一个脚本进行检查。答案与示例不符,要么是滑雪板没有移动,要么是椅子和键盘之间的衬垫出了问题。如果像小猫一样戳一下不难的话,第二天我就找不到错误了。衷心感谢
如果对 FF 本身没有信心,即不确定极值是否如此,可以在测试器中运行该函数,测试器 GA 在这个意义上相当不错,可以找到相当精确的解决方案,但仅限于少量参数(1,2)。
一般来说,应该理解的是,GA 找到的不是精确解,而是稳健解。也就是说,与所有可能的解决方案相比,它是一个相当不错的解决方案。
请原谅我的冒昧,但这是一个原则问题。我从您的文章中选取了一个例子,并编写了一个脚本进行检查。答案与示例不符,要么是滑雪板没有移动,要么是椅子和键盘之间的衬垫出了问题。如果像小猫一样戳一下不难的话,第二天我就找不到错误了。请注意。