Python中遗传算法的哪些数据类型?

Ing*_*ngo 3 python genetic-algorithm data-structures

我正在用Python实现一个GA,需要存储一个1和0的序列,所以我将我的数据表示为二进制文件.那个最好的数据结构是什么?简单的字符串?

Fre*_*Foo 5

如果您的染色体是固定长度的位串,请考虑使用Numpy数组和矢量化操作而不是列表.这些可能比Python列表快得多.例如,可以使用一点交叉

def crossover(a, b):
    """Return new individual by combining parents a and b
       with random crossover point"""
    c = np.empty(a.shape, dtype=bool)
    k = np.random.randint(a.shape[0])
    c[:k] = a[:k]
    c[k:] = b[k:]
    return c
Run Code Online (Sandbox Code Playgroud)

如果你不想使用Numpy,那么字符串似乎非常合适; 它们比列表更紧凑,列表存储指向元素而不是实际元素的指针.

最后,一定要看看Pyevolve如何代表染色体; 它似乎是使用Numpy这样做的.

  • 还有[DEAP](http://deap.googlecode.com)和[ecspy](http://ecspy.googlecode.com),它们具有仍在积极开发的优势. (2认同)