《Java遗传算法编程》笔记

之前读完了《Java遗传算法编程》。感觉上这本书并不是很注重程序的设计及效率问题,但确实将遗传算法讲解清晰了。这里就记录一些不是很熟悉的概念。

 

一、选择

1.1 竞标赛

从种群中随机选取一定量的个体,选择其中适应度较高的个体。锦标赛作用在于,个体适应度越高,被选中进行杂交的几率越大。

锦标赛规模过大影响效率,且更容易抽中适应度较高的个体,导致多样性下降。而过小的规模会减小选择压力,减慢算法进展。

 

二、交叉

2.1 均匀交叉

每个基因都均有50%的概率来自双亲的其中一方。

 

2.2 单点交叉

在基因组中随机选取一个位[……]

继续阅读

Java方法泛型返回数组的问题

问题

用Java写一个类似Python中random.choice 功能的方法时碰到了一个令我费解的情况。

源代码如下:

RandomUtil.java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;

public class RandomUtil {

    public static final Random random = new Random();

    public static <T> T[] choice(T[] arr[......]

继续阅读