我的书(人工智能一种现代的方法)说遗传算法以一组随机产生的状态开始,称为总体。每个状态在有限字母表中表示为一个字符串 - 最常见的是一串0和1。例如,8皇后状态必须指定8个皇后的位置,每个皇后位于8个方格的列中,因此需要8 * log(2)8 = 24位。可替换地,状态可以表示为8位数字,每一个在范围从1到8关于遗传算法的困惑
[http://en.wikipedia.org/wiki/Eight_queens_puzzle]
我不理解的表达8 *日志(2)8 = 24个比特,为什么LOG2^8?这24位应该是为了什么?
8皇后不能共享一行或一列。所以你知道他们的行(或列)是0-7:女王#0的行= 0等,所以你不必存储行。你必须存储0-7列,这需要3位/皇后。 [事实上,枚举更加紧密,因为你可以使用混合基数编码,这可以让你省掉几个位(我猜)。通过对称压缩也可以节省几位。但使用3位/皇后更简单算术。] – wildplasser