- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在理解如何在我的遗传算法中实现 Langermann 函数和锦标赛选择时遇到了一些困难。我有 this作为 Langermann 函数的引用,但我不明白 C 值从何而来,因为我只有 X 和 Y。C 值总是一组常数吗?
至于锦标赛选择,我想随机选择我的人群中的任意 3 个人并比较他们的健康状况。一旦能够使用 Langermann 函数生成适应度值,我会将每个适应度值存储在一个 vector 中。然后我想从 vector 中选择 3 个独特的随机元素并将它们相互比较。如何在不使用相同数字的情况下从 vector 中选择 3 个唯一的随机元素?
感谢任何帮助!
最佳答案
is the C value always a constant set of numbers?
m
、c
和A
的建议值由 Molga & Smutnicki (2005) 给出。 .
c
是一个常数 vector (其他值是可能的/正在使用)。
该函数通常在 (x, y) ∈ [0, 10] x [0, 10]
上求值。它提供了 m
最小值,其重要性由 c
决定。它们由余弦乘积调制,从而赋予它们振荡特性。
对于每个复杂的表达式,翻译 Langermann 函数的最佳方法是从更简单的子表达式开始。
有两个相同的“内部”求和:
const double A[5][2] = {{3.0, 5.0},{5.0, 2.0},{2.0, 1.0},{1.0, 4.0},{7.0, 9.0}};
const double c[5] = {1.0, 2.0, 5.0, 2.0, 3.0};
const unsigned d = 2;
double s = 0.0;
for (unsigned j = 0; j < d; ++j)
s += std::pow(x[j] - A[i][j], 2.0);
现在进行主要总结:
const double pi = 3.1415926535897932;
const unsigned m = 5;
double ret = 0.0;
for (unsigned i(0); i < m; ++i)
{
// calculate `s`
ret += c[i] * std::exp(-s / pi) * std::cos(pi * s);
}
和ret
包含函数的值。
How do you select 3 unique random elements from a vector without using the same numbers?
天真的做法是:生成一个随机数,然后检查它是否已经被使用,如果已经被使用,就生成另一个数字,直到找到一个未使用的数字。
这是一个简单的 do ... while ()
循环序列。
如果种群规模较小或人为限制选择范围(10/15 个体),这可能会非常昂贵。
Unique random numbers in an integer array in the C programming language 中描述了许多替代方案
关于c++ - 遗传算法 : Langermann's function and Tournament selection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36347221/
在http://llvm.org/svn/llvm-project/libcxx/trunk/test/re/re.alg/re.alg.match/ecma.pass.cpp ,存在以下测试:
这个问题在这里已经有了答案: Finding sum of Absolute Difference of Every pair of integer from an array (8 个答案) 关闭
我知道我们可以在 N+log(N)-2 中找到大小为 N 的数组中的 2 最大元素,使用一场“锦标赛”algorithm .现在我想知道我们是否可以使用类似的“锦标赛”找到第 k 个 最大的元素。 我
为了测试不真实锦标赛(1999或2004版)ctf游戏类型的行为规则,我想用java制作一个完全可控的机器人。 没有人工智能,只有一系列的命令,比如跳跃,跑向这一点,等等。一种实时进化算法,进化出一系
我有一个锦标赛分支预测器模拟作为作业。该程序模拟微处理器中的锦标赛分支预测器。我想我做的一切都是对的。我无法追踪问题。我陷入了段错误。 /* Shreyas Kale Computer Archite
我在理解如何在我的遗传算法中实现 Langermann 函数和锦标赛选择时遇到了一些困难。我有 this作为 Langermann 函数的引用,但我不明白 C 值从何而来,因为我只有 X 和 Y。C
我有一个数组,例如长度为 10: Population = {1,3,4,2,7,-2,0,8,9,5}. 我生成两个 0-9 之间的随机数(例如 4 和 6)。然后我检查第四个和第六个元素 (7,
哪种方法最适合尝试在 Switch double 循环赛中平均分配对手,即每轮更换伙伴。 例如,在 8 人锦标赛中,您将进行 7 轮比赛,与每位玩家对战 3 或 4 次,并与每位玩家对战一次。当使用“
我想将 Unreal Tournament 环境用作使用 C# 开发 AI 机器人的 Playground 。我在这里找到了一个很好的起点 Creating NET bots for UT , 但是这
我是一名优秀的程序员,十分优秀!