【发布时间】:2020-01-10 16:17:46
【问题描述】:
我正在开发 GA。我的问题如下。我有一个需要几个值的适应度函数:
A - 一个巨大但不太重要的值,例如 999999。 (重要性权重占最终结果的 30%)
B - 值小几倍但更重要,例如 50。 (重要性权重占最终结果的 70%)
我假设这两个值都力求无穷大。如何在我有类似的地方建立一个健身功能:
long calculateFitness(A, weightOfA, B, weightOfB);
结果将是任何长数字,这将使 B 变量更加重要。
【问题讨论】:
-
我认为这取决于 A 和 B 如何增长。例如。如果 A 呈指数增长,您可能希望在适应度函数中使用 log(A)。
-
这可行。你的意思是让 log(A) 和 log(B) 乘以它们的权重?如何选择正确的日志库?这两个值的增长速度不同。更重要的价值 B,增长速度比 A 慢几倍。
-
不清楚你想要什么。在什么条件下 (a1,b1) 会比 (a2,b2) 好?您说的是“重要性的重要性”之类的东西,但实际上是什么意思?
-
我可以举一个例子,说明我的 AI 的行为方式以及它如何获得健康。对于正确方向的每一步,它都会获得+1分。变量表示正确方向的步数。如果您到达某个地方,您将获得 50 分,即变量 B。要解决的主要问题是在变量 B 处获得最高分。变量 A 显着缩短了找到正确路径的时间。
标签: algorithm neural-network artificial-intelligence genetic-algorithm fitness