Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby中的复合蛮力/进化引擎搜索_Ruby_Computer Science - Fatal编程技术网

Ruby中的复合蛮力/进化引擎搜索

Ruby中的复合蛮力/进化引擎搜索,ruby,computer-science,Ruby,Computer Science,一个关于我一直在思考的主题的问题。在蛮力搜索或进化编程中是否可能使用复合过程?目前我自己也在做这件事,尽管事实证明这很困难 前提是,应该可以利用一种复合过程,这种复合过程与普通储蓄账户中确定复利的方式有些类似 我一直在尝试以以下方式实现一个进化算法 A有能力生成新系统,并且“生成”适应度为5.0(即它生成的系统的有效性是A本身的5倍)-如果A生成B,然后B生成C,则系统(组织)的适应度应如此复合 A=5.0 B=5.0*A=25.0 C=25.0*B=625.0 有人能在代码中帮助实现这个启发式

一个关于我一直在思考的主题的问题。在蛮力搜索或进化编程中是否可能使用复合过程?目前我自己也在做这件事,尽管事实证明这很困难

前提是,应该可以利用一种复合过程,这种复合过程与普通储蓄账户中确定复利的方式有些类似

我一直在尝试以以下方式实现一个进化算法

A有能力生成新系统,并且“生成”适应度为5.0(即它生成的系统的有效性是A本身的5倍)-如果A生成B,然后B生成C,则系统(组织)的适应度应如此复合

A=5.0

B=5.0*A=25.0

C=25.0*B=625.0

有人能在代码中帮助实现这个启发式吗?(Ruby或Psudocode)

我现在拥有的是这样的东西

我有一个叫做system的类,它有一个生成随机数的方法,我想发展新的系统,更好地生成与第二个生成的随机数匹配的随机数。成功地将第二个生成的随机数与其“预测”(第一个随机数)匹配的系统的分数将增加,不成功的系统的分数将降低

然后,系统生成“子”系统,这些子系统也会以刚才提到的方式进行测试,尽管在这里我们将子系统的适合度用作生成系统的“生成”适合度。这让我知道哪些“系统”产生了成功的系统

虽然我可以很容易地确定哪些系统最擅长生成能够预测随机生成的数量的系统,但我不确定如何评估生成系统生成系统(即生成系统)的能力,并且由于这一链条继续,我相信适合度的确定可能是递归的

最后,由于系统“适合度”的最终确定将取决于生成的系统的预测能力,“繁殖”适合度因子的组合如何进入方程

此外,如果我进化出一个与ruby使用的PRNG相匹配的PRNG,PRNG将逐渐进化,以与ruby的底层算法中的PRNG相匹配。请不要这样,在时间1,我们有一条来自PRNG的信息,我们正在尝试预测,这为我们提供了一个1/1或100%的模型。如果我们在时间步2检索第二条信息,我们在时间步2的信息比在时间步2之前多100%,因此预测能力应为200%(在时间步2为100%,额外信息为0,在时间步2为100%,留下原始系统两倍的预测能力

感谢您抽出时间阅读我的问题,如果您能提供任何帮助,我将不胜感激

如果你有任何问题,请告诉我

提前谢谢

问候


Martin

我不认为你能用搜索算法做到这一点,因为你无法知道你与随机数生成算法的匹配程度。一个接近随机数的值更可能是巧合,而不是事实证明你正在接近基础算法


如果您将此作为一个玩具项目,请使用一个可以为其创建适应度函数的数据集(如果是进化编程)。常见的数据集包括垃圾邮件检测、图像识别、用户偏好等。

请准确解释您在算法输入/输出方面的具体操作。您使用的数据集是什么?成功搜索意味着什么?数据集目前只是ruby中内置的随机数生成器,我希望清空一个随机数生成器,该生成器与我试图预测的数字生成器“同步”,即它生成的数字与随机数生成器相同(这是一个玩具POC问题,类似于旅行推销员问题)。一个成功的搜索将产生一个随机数生成器,它将产生与我试图预测的数字生成器相同的值。干杯,Martin谢谢你的回答Garrett,但我希望你能澄清我将如何复合我的进化搜索-特别是我将如何正确实现“繁殖”函数我唯一能衡量进化系统预测能力的标准是它的“预测”适用性。概括来说,我怎么能在进化搜索中包含一个复合过程。有什么想法吗?欢迎进一步查看我的编辑问题,它对于评论来说太大了。每一代人都应该从po中删除最不适合的部分填充,组合(“配对”)最合适的,并添加一些随机化(“变异”)再次强调,我认为你将很难在随机数生成器上收敛。简单地利用重组、突变和性会促进健康的复合吗?我不是说在PRNG上收敛不会很困难,但我有分数百分比的浮点数,所以我可以看到系统在预测PR方面有多好进化算法不一定收敛,因为你可以在策略(A>B>C>A)中拥有循环优势。你可以把模拟退火作为一种替代方法。