是否可以使用适应值来评估群体中的每个个体,而不需要像下面的伪代码那样找到概率
For all members of population
sum += fitness ( member)
End for
Loop until new population is full
Do this twice
Number = Random between 0 and sum
Currentfitness = 0.0
For each member in population
C
编程珍珠第一版的第120页介绍了从N个整数的群体中选择M个等概率随机元素的算法。
InitToEmpty
Size := 0
While Size < M do
T := RandInt(1,N)
if not Member(T)
Insert(T)
Size := Size + 1
它指出,只要M< N/2,成员测试的期望数量就不会超过2M。
我想知道如何证明这一点,但我的算法分析背景让我失败了。
我知道M越接近N,程序花费的时间就越长,因为结果集将包含更多元素,RandInt选择现有元素的可能性将按比例增加。
你能帮我弄清楚这个证据吗?
我目前正在使用Netlogo3d对一些简单的球体进行建模,我对圆锥体内函数和半径内函数有问题。
(我正在重新实现Couzin,Krause,James,Ruxton和Franks的文章“动物群体中的集体记忆和空间排序”)
我在我的身体周围使用三个不同的区域来定义它的行为:一个用于排斥,一个用于吸引,一个用于定向。这三个是围绕方块的球体,我在这些区域检测到海龟,就像这样:
to find-flockmates-repulsion ;; turtle procedure
set flockmatesRepulsion other turtles in-cone (visionRepulsio
我正在实现一个非常类似于遗传算法的东西。因此,你经历了一个群体的几代人--在一代人的最后,你以三种不同的方式--“随机”、“突变”和“交叉”--创造了一个新的种群。
目前的概率是静态的,但我需要做,这样突变的概率就会逐渐增加。我很感激任何方向,因为我有点卡住了..。
这就是我所拥有的:
int random = generator.nextInt(10);
if (random < 1)
randomlyCreate()
else if (random > 1 && random < 9 )
crossover();
else
我是Jason (代理语言)的初学者,在Jason中使用多智能体模拟进行社会模拟项目。我刚开始学习Jason,所以我是这个声明式类型语言的初学者。我想模拟随时间变化的人的行为。
// the code statement might be
Like an agent have characteristics
Age=30 years
Marital status = unmarried
education= college
employment= unemployed
etc etc
现在我想虚拟模拟多个智能体,模拟20年。因此,基于已经定义的标准,我想知道代理人生活中发生了哪些转变(未婚向结
让我从我正在实现的遗传算法的版本开始。对于我在这里犯的任何术语错误,我事先表示歉意。请随时纠正我。
我问题的染色体是二维的。三排三十二列。从本质上讲,等位基因(值)是这个染色体所包含的指标。
索引是如何制定的
染色体的每一行和每一列(合在一起)都是指一个基因。每个基因包含一个整数值(0-30)。因此,单个列(我认为称为gnome)指的是一个包含用户数据的四维数组的索引,适应度函数就是在该索引上运行的。
This is how a chromosome would look like
11 22 33 14 27 15 16 ...
3 29 1 7 18 24 22 ...
29 9
遗传算法中交叉概率的意义是什么?
遗传算法的一般步骤是:()
首先,产生一个初始种群。然后使用一种选择方法(在本例中为锦标赛选择)来选择一对将创建一对子的个体。
这些儿童被添加到儿童人口中,直到其大小达到预期值为止。
下一步是将大小为N的亲本群体和M大小的儿童群体结合起来,要么用另一个代替,要么保持两个种群中最好的N个个体。
N = population size
P = create parent population by randomly creating N individuals
while not done
C = create empty child population
规定,重组通过组合两条(或更多)父染色体的一部分来创建新的染色体。在此基础上,该库还提供了各种交叉技术的具体实现。有没有一种开箱即用的功能,我可以用来在群体中重组两种(或更多)基因型(即交换染色体),而不改变每条染色体的基因?
考虑一个例子,其中初始群体由2个基因型组成,每个基因型由2个染色体组成。我需要两个个体之间的交叉,这样只有染色体交换,而基因保持不变。
代码中的相同示例如下所示:
// Create the initial population
final List<Genotype<CharacterGene>> initialPop