据我了解,您在术语上有问题:染色体是您用来探索解决方案空间的个体,种群是这些染色体(个体)的集合。
在 GA 中,您可以将解决方案表示为字符串。在您的情况下,解决方案将是一个可能由像素组成的图像。
您可以将这些像素视为图像的 DNA。因此,那个 DNA 就是你的图像“染色体”。换句话说,染色体是图像中的像素序列。
现在,如您所知,在 GA 中,您将选择、交叉和变异结合起来(希望)为您的问题获得更好的解决方案(例如更好的图像)。
要应用这 3 个运算符,您需要一个总体,即一组染色体,您将对其进行随机采样、组合和变异。完成这 3 个操作后,您将获得一个新的种群,通常会替换旧的种群。
我希望这可以澄清。
编辑
如果您想演化多个图像(或者更好:这取决于),则为每一行使用一个“染色体”并不完全正确。您必须将您的个体(图像)视为单染色体(人类有许多染色体,但在 GA 和 GP 中通常每个个体只有一个)。
层次结构是:
- 一个种群由多个个体组成
-
个体只有一条染色体 (DNA)
- 每个染色体由多个基因组成
基因是你认为最小的可变单元。因此,例如,如果您的突变操作可以一次更改单个像素,则您的基因将是像素(对于 256x256 图像,您将获得 65536 个基因)。
您也可以将整行用作基因,这样,一条染色体将由 256 个基因组成,每个基因将是一个 256 像素的数组。通常这意味着你不能使用交叉来打破单行,但交叉会混合两个图像的行。
您选择的基因取决于您的应用。您还可以将 256x256 RGB(24 位)图像表示为 256*256*3 字节的染色体,其中每个基因是一个字节或 256*256*24 位,其中每个基因是一个位。
决定你可以将什么用作基因是你如何定义一个变化可以有多小,以及当你进行交叉时你可以在哪里切割染色体。
遗憾的是,术语并没有一个独特的愿景。许多科学家对什么是“基因”、什么是“基因组”或如何定义“适应度”函数有不同的看法。无论如何,你只需要学习基本概念:以后将它们映射到名称会更容易,不用担心:)
你可能想看看这个:http://www.boente.eti.br/fuzzy/ebook-fuzzy-mitchell.pdf