问题标签 [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 回答
466 浏览

mathematical-optimization - 多目标优化中的健身共享

我正在编写一个在锦标赛选择中使用健身共享的遗传算法。在我发现的所有相关文献中(例如 Sareni),都提到解决方案自身的适应度 (Fi) 应除以其利基距离 (Mi) 的总和。

我不明白的是,因为我们正在优化多个目标,所以每个解决方案都有不止一个适合度。那么它的“健身”Fi 是什么?我应该将其视为所有适应度的乘积吗?

例如,在我正在编写(处理)的代码中:

谢谢

n

0 投票
0 回答
224 浏览

algorithm - 使用遗传算法寻找路径测试的完美适应度函数

我最近开始使用遗传算法,为了更好地理解它,我决定用它来解决一个问题。我正在使用遗传算法为路径测试问题生成测试用例。除了如何选择最佳的适应度函数,我什么都想通了。所以,我可以使用一些帮助:)

这是我的问题的概述:在每一代中,都会生成100 个测试用例。CFG 中的每条路径都被分配了一个权重,具体取决于该路径的测试用例的稀有程度。例如,采用以下 CFG:

在此处输入图像描述

有 4 条独立路径。假设路径的权重如下 -

路径 1:10

路径 2:5

路径 3:4

路径 4:5

现在,对于这一代中的每个测试用例,我正在考虑整个一代可以拥有的平均适应度。

(10*100 - 4*100)/2 = 300 [因为有 100 个测试用例]

所以,我将那个测试用例的权重(它所覆盖的路径的权重)减少了 300。虽然结果令人满意,但这样做的逻辑非常有缺陷。我认为更好的适应度函数,以便测试用例的适应度与其覆盖的路径的权重成正比,将是权重除以所有路径的权重之和。所以对于这个问题,

w/(10+5+5+4) = w/24

您认为计算每个测试用例的适应度的更好方法是什么?

  1. 带 300

  2. 带 24

或者你会建议一种完全不同的方法吗?能否为这个问题生成更好的适应度函数?

我会很感激你的帮助:)

0 投票
1 回答
64 浏览

neural-network - 球和梁的健身功能

我有问题要解决,任何建设性的帮助都会很好。

无论如何,我必须制作遗传算法来创建神经网络来解决问题 Ball-and-Beam。我想象的唯一健身功能是设置一些时间(如 3 - 10 秒)并测试人口中的每个单位是否能在船上存活(健身 = t/T ; t - 它存活的时间,T - 总时间),即需要很长时间:(。

模拟看起来像这样

该遗传算法应该为每个隐藏层生成权重、训练系数和神经元数量。大多数情况下我已经完成了其余的事情,但健身是我最大的问题。

感谢帮助 !

0 投票
0 回答
424 浏览

artificial-intelligence - 玩游戏AI,如何找到好的棋盘评价功能?

我正在开发一个人工智能来玩一个相当简单的游戏,使用极小极大和遗传算法来找到权重来对棋盘状态进行评分。

游戏类似于 4x4 tictactoe,但可以花一个回合将棋子移动到相邻的空间,棋子有不同的大小,更大的棋子可以覆盖更小的棋子。

我想通过查看各种因素来为棋盘打分,例如他们距离连续完成 4 个有多接近,以及有多少相邻的敌人可能被移动到,但我不知道这些因素应该具体是什么是。

我的想法:对于每一行,根据友方棋子数、空格数和敌方棋子数做一个评分表达式,但我想不出一个简单的表达式来用权重评分,因为值可能赢了不是线性函数。

对于每一行,根据行中敌人的数量制作分段评分表达式,并根据盟友的数量制作表达式。因此,在空行中放置 1 块可能比在充满敌人的行中放置 1 块更有价值,从而阻止它们,而对于已经被阻止的连续 3 块,反之亦然。

我注意到的一些复杂情况:连续拥有 3 个棋子,但其中一个敌人的大棋子也在这一行中,除了阻止他们的棋子移动之外,几乎没有任何价值。

连续拥有 3 个棋子,如果你可以将一个大棋子放在他们的小棋子旁边以移动到该棋子上,那么在那一排有一个小的敌人棋子几乎是一场胜利。这似乎特别难以察觉。如果将其考虑在内,也可能不需要上述“可以移动到的相邻敌人的数量”。

谢谢你的帮助。我不知道如何进行。

0 投票
1 回答
359 浏览

java - 用遗传算法实现子集和

我的适应度函数是f(x ) = s · (C − P(x )) + (1 − s) · P(x )C要达到的目标值和P(*x ) = (Sigma) wixiwi元素的集合在哪里并且xi是 0 或 1(选择或不选择元素)。也是s0 或 1,取决于 p(x) 值。请帮我写这个健身。我刚刚尝试过,但程序运行时出错。

0 投票
1 回答
92 浏览

python - 我可以在 Python 中使用 scipy.stats 之类的东西来创建适应度函数吗?

我需要为正值 0→∞ 创建一个归一化的适应度函数。我想进行实验,从(输入→输出)开始,例如 0→0、1→1、∞→0。我的数学有点弱,如果你不知道的话,这真的不难。

因此,函数的输出应该严重偏向 0,我需要能够更改产生最大输出 1 的输入值。

我可以制作一个线性函数,类似于三角分布,但是我需要设置一个最大值,在该最大值处输入可以被区分(在该值之上,一切看起来都一样。)我还可以将两个简单的表达式与类似的东西合并在一起:

弗兰肯函数输出

这没关系,应该可以工作,特别是因为它返回的实际值并不重要,因为它们将用于二元锦标赛。仍然很难看,如果可能的话,我希望灵活地使用 scipy 或类似的统计分布。

0 投票
1 回答
249 浏览

fitness - Fitnesse not able to find fixture code

I am trying to run a simple test to check if i get the correct answer to the question "whether the number is even or odd"

the FitNesse test case is like this-

!define TEST_SYSTEM {slim}

!path C:\Users\sseth103\Desktop\FT

!|Fixture|

|number|result?|

|2 |EVEN |

|1 |ODD |

|3 |EVEN |

The class file of fixture code is inside the FT folder and it calls another class which is also located at that same folder.

It is displying the error- Could not invoke constructor for number[1], The instance decisionTable_1.set2. does not exist etc.

Can anyone please help me in solving this problem?

0 投票
1 回答
725 浏览

python - 需要帮助为基于 NEAT 算法的神经网络设计适应度评估

我正在研究一个基于NEAT 算法的神经网络,该算法学习在 Python 2.7 中播放Atari Breakout克隆,并且我已经完成了所有工作,但我认为使用更好的算法来计算物种适应度可以大大改善进化.

神经网络的输入是:

  • 桨中心的X坐标
  • 球心的X坐标
  • 球心的Y坐标
  • 球的 dx(X 方向的速度)
  • 球的 dy(Y 方向的速度)

输出是:

  • 向左移动桨
  • 向右移动桨
  • 不要移动桨

我可用于物种适应度计算的参数是:

  • breakout_model.score- int:该物种所玩游戏的最终得分
  • breakout_model.num_times_hit_paddle- int:球拍击球的次数
  • breakout_model.hits_per_life- : 桨在生命int中击球的次数,以列表的形式;例如,第一个元素是第一个生命的值,第二个元素是第二个生命的值,依此类推,直到 4
  • breakout_model.avg_paddle_offset_from_ball- decimal:球与桨中心在 X 方向上的平均直线距离
  • breakout_model.avg_paddle_offset_from_center- decimal:框架中心和桨中心之间 X 方向的平均直线距离
  • breakout_model.time- int:游戏的总时长,以帧为单位
  • breakout_model.stale- boolean:游戏是否因陈旧而人为终止(例如,球被卡住直接垂直弹跳并且桨不动)

如果您认为我需要更多关于游戏最终状态的数据而不仅仅是这些数据,我可能会实施一种方法来非常容易地获得它。

这是我目前的健身计算,我认为这不是很好:


这是我认为适应度计算应该做的,语义上:

  • 显然,分数应该对整体适应度产生最显着的影响。也许0分应该会对健康产生轻微的负面影响?
  • 桨每生命击球的次数应该有一些影响,但对贡献/重量没有那么重要。例如,如果该数字为 0,则它甚至没有真正尝试击球,因此它应该有负面影响
  • 桨击球的次数也应该有一定的影响,其贡献应该基于得分。例如,如果它没有多次击球,也没有得分很多,那应该会产生显着的负面影响;如果它没有多次击球但得分很高,那应该会产生显着的积极影响。总的来说,(我认为)这个值越接近游戏得分,这个值对适应度的贡献/权重就越小
  • 框架中心和桨中心之间的 X 方向平均距离应该基本上鼓励桨的中心“休息”位置
  • 如果游戏因陈旧而人为结束,要么这应该有显着的负面影响,要么应该自动强制适应度为 0.0;我不确定哪种情况会更好

我不确定如何对所有这些值进行操作以使它们适当地影响整体适应度。

提前感谢您提供的任何帮助。

0 投票
1 回答
209 浏览

matlab - 遗传算法的目标函数

这是我对 AI/ML 的第一次尝试。

我的老师给了我以下问题,

在 MATLAB 中使用二进制编码的染色体设计一个简单的遗传算法,以解决 16 位字符串中的模式查找问题。

目标函数由以下公式给出:

F(x) = NoS("010") + 2NoS("0110") + 3NoS("01110") + 4NoS("011110") + 5NoS("0111110") + 6NoS("01111110") + 7NoS("011111110") + 6NoS("0111111110") + 5NoS("01111111110") + 4NoS("011111111110") + 3NoS("0111111111110") + 2NoS("01111111111110") + NoS("011111111111110")

我无法理解公式。

诺斯是什么意思?

他们对这些二进制字符串执行什么操作?

是什么F(x)

0 投票
3 回答
2196 浏览

algorithm - 求解二次方程的遗传算法

我在理解遗传算法的过程时遇到了问题。我找到了在一个区间内最大化函数的例子,我想我理解它们,但是如何使用遗传算法来求解例如二次方程?

假设我们想找到一个最多 4 位的解决方案,那么对数字进行编码的正确表示是什么?什么可以用作评估每个数字的适应度函数?

任何帮助表示赞赏