问题标签 [fitness]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
119 浏览

class - *将方法传递给类

我正在编写一个最大化给定函数 F 并返回坐标的小类。例如,在最大化下面的一维适应度函数时,我目前有:

Metaheutistic 类中的“最大化”方法包含完成所有工作的算法。我的问题是这个算法属于一个不知道适应度函数是什么样子的类。

我是 C# 的新手,如果我在这里遇到了麻烦,我愿意重新做一遍以使其正确。但是,我确实需要将 Solver 类与适应度函数分开。

非常感谢。*我不确定“通过”是我正在寻找的正确术语

0 投票
1 回答
367 浏览

c# - 健身功能瓶颈解决,C#

0 投票
0 回答
2185 浏览

puzzle - Java:使用健身功能解决 15 个难题

我目前正在研究一个使用适应度函数解决 15 个难题的项目。有3种健身功能可以使用,

  1. 适应度函数1= 1 - (错位棋子数/棋子总数);
  2. 适应度函数2 = 1-(所有错位瓷砖距离目标位置的距离之和/64)
  3. 适应度函数3=(适应度2+适应度1)/2

求解器旨在搜索提高适应度函数 VALUE 的可能移动,直到解决整个拼图板(其中适应度函数 = 1)。我在尝试生成动作时备货,因为求解器会打印不成功的搜索路线以及实际路线,例如 W,S,W,N,S,N,S,N,S,N,S,N,S,N,S ,N,S,N (顺序相反),表示 NWSW。然而,求解器来回搜索多次,并打印出不需要的路线。我想在递归中排除以前访问过的位置,并且只打印有效的移动而不是不成功的移动。代码如下:

0 投票
4 回答
2732 浏览

java - Java 健身功能

我无法让健身功能在我的代码上工作。我最终得到的只是二进制字符串“10101”。

如果有人可以帮助我,我将不胜感激,因为我在这方面花了很长时间,却没有得到任何帮助。

这是代码:

适应度函数如下:

当我运行程序时,输出如下:

仅此而已,无论我为 ArrayList 的值输入什么...

我已经绞尽脑汁好几个小时了,但我仍然不知道——任何帮助将不胜感激!

太感谢了。

米克。

编辑:代码现已更新,并列出了完整的类 - 如有任何混淆,我们深表歉意。

0 投票
3 回答
857 浏览

java - Java 健身功能不起作用

作为实验室的一部分,我有一个健身功能,并希望将其应用于一组“权重”(ArrayList 权重)。我已经创建了数组并在其中存储了一些值。我创建了随机二进制字符串(末尾有一个“x”以生成随机值),我希望也将适应度函数应用于;但是,我遇到的问题是适应度函数总是返回值 0。我在这里遗漏了什么吗?

适应度函数如下:

随机二进制字符串方法:

主要方法(在​​单独的类中):

运行后,随机二进制字符串运行良好,但适应度函数无法从 0 开始变化。以下是示例输出:

如果您想为整个班级编写代码,请告诉我。

非常感谢大家的时间。

米克。

0 投票
2 回答
1938 浏览

genetic-algorithm - 用遗传算法、适应度、变异解决填字游戏

我正在努力为学校做一个实验室。我正在尝试使用遗传算法解决填字游戏。问题是这不是很好(它仍然太随机)我将尝试简要说明我的程序现在是如何实现的:

如果我有拼图(# 是块,0 是空白)

以及作为该谜题解决方案候选词的集合。我的 DNA 只是作为一维阵列的矩阵。

我的第一组人从我的话包含的字母池中随机生成了 DNA。

我使用轮盘赌选择进行选择。有一些关于组合和突变机会的参数,但如果发生突变,那么我总是会改变 25% 的 DNA。我用我的字母池中的随机字母对其进行更改。(这可能会产生负面影响,因为突变会破坏已经形成的单词)

现在是适应度函数:我横向和纵向遍历矩阵:如果我找到一个单词然后 FITNESS += word.lengh +1

如果我发现一个字符串是某个单词的一部分,那么 FITNESS += word.length / (puzzle_size*4) 。无论如何,它应该给出一个介于 0 和 1 之间的值。因此它可以从“工具”中找到“到”并将 X 广告到 FITNESS,然后在它从“工具”中找到“太”并将另一个 Y 添加到 FITNESS 之后。

我的几代人实际上并没有随着时间的推移而改善。它们看起来是随机的。因此,即使在 400 代之后,池中的 1000-2000(这些数字并不重要),当解决方案应该有 6 个单词时,我也会得到一个包含 1-2 个单词(2 或 3 个字母)的解决方案。

0 投票
1 回答
74 浏览

optimization - 最小化最大移动距离

我正在尝试查找是否有任何解决方案可以解决我遇到的问题。我有 X 个人和 Y 个职位来放置他们。有时人可能比职位多,但在默认情况下 X==Y。我想分配人员,使任何人必须移动的距离最小化。因此,如果我有 1-5 个人和 AE 职位:

我已经有的简单实现是分配 {A2, B3, C4, D5, E1},这导致 E 比其他任何人都走得更远,而我更喜欢匹配是 {A1, B2, C3, D4, E5} ,这意味着其他人都走得更远,但最坏的情况要小得多。

我目前正在为每个人创建一个数组,包含每个位置,按距离(升序)排序。然后我对所有人的数组进行反向排序,使得距离最佳位置最远的玩家排在第一位。我将他分配到一个位置,然后从其他玩家的列表中删除该位置,然后反向排序并重复,直到所有位置都被填满。

这给了我合理的结果,但似乎效率很低(从每个数组中删除元素并每次都使用)

显然这个问题不必处理人员和位置距离,而是可以说是分配资源,其中每个资源都可以执行具有一定适应性的任务,并且我想避免使用非常不适合的工具一个给定的任务,即使这意味着每个工具都在做一个稍微不合适的任务,如果这有意义的话。

我怀疑我在这里反映了一些经典的优化问题,但我不知道是哪一个。

0 投票
2 回答
17144 浏览

artificial-intelligence - 如何定义适应度函数?

我正在开发一个项目,该项目将具有一组选定的数据,并且每个数据将具有不同的属性。我将需要使用适应度函数来使用属性选择与我选择的场景最匹配的数据。

但是,我真的没有找到任何解释如何定义我自己的适应度函数的网站。我所拥有的只是它是遗传算法的一部分,这就是我所拥有的。那么,我可以在这里得到一些指示吗?

0 投票
2 回答
309 浏览

evolutionary-algorithm - 粒子群优化:处理候选解适应度的不确定性/不精确性

我希望使用粒子群优化 (PSO) 优化复杂的参数化模型对噪声数据的拟合。数据是时间序列的化学浓度值。

在我的优化目标函数中,我使用浓度时间序列分布和模型预测之间的 Bray Curtis 距离 [1] 来测量适应度(模型预测是使用与优化问题的候选解相对应的参数产生的)。

目前,我不考虑我的浓度数据的不精确性。实际上,浓度已四舍五入为整数值。我怀疑如果 PSO 例程和/或目标函数“意识到”输入数据的不精确性,我可以获得更好的 PSO 模型拟合。

我能够找到预测时间序列和数据时间序列的最小和最大 Bray Curtis 距离,但不确定如何最好地在 PSO 代码中利用这些值。

在进化优化的背景下评估候选解决方案的适用性时,是否有人对如何处理数据不精确有任何建议?

第二个问题是时间序列数据受仪器和时间误差的影响。我很高兴假设这两种类型的误差都是正态分布的并且具有不变的标准偏差,但我不再确定在量化 PSO 优化的适合度时如何最好地处理这种不确定性。

[1] http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.braycurtis.html

0 投票
1 回答
793 浏览

function - 适应度函数中的违规权重

我正在从事我的最后一年项目,我正在开发一种用于时间表优化的遗传算法。目前进展相当顺利,因为我正在生成代表我的课程时间表的随机染色体。我设计了我的函数适应度函数以及潜在的约束,此时我被困在约束的实际权重上。

我使用以下函数作为我的适应度函数:

1/1 + (Ci*Wci)

如 Ci 是约束 i 的违规量,Wci 是约束 i 的权重。

显然,我需要将硬约束的权重高于软约束。

我想知道 any1 以前使用过这种技术吗?这些重量值有推荐的范围吗?