文献来源:
该文章由之前《Hyper-bent Boolean Functions and Evolutionary Algorithms》(文章HB)提到,是第一篇由计算机得到 bent 函数(非穷举)的文献。它成功找到了一个16元bent函数
In fact, the sheer amount of successful results obtained with evolutionary
algorithms makes the evolution of bent functions almost an easy problem [1–3].
[1] Hrbacek, R., Dvorak, V.: Bent function synthesis by means of cartesian genetic programming. In: Bartz-Beielstein, T., Branke, J., Filipiˇc, B., Smith, J. (eds.) PPSN 2014. LNCS, vol. 8672, pp. 414–423. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-10762-2 41
思路来源
-
该文章主要采用笛卡尔遗传规划(CGP,Cartesian Genetic Programming)来演化布尔函数、Bent函数。
-
文章思路受启发于《Towards highly optimized cartesian genetic programming: from sequential via SIMD and thread to massive parallel implementation》(文章TH)
这篇文章优化了CGP的实现,使其并行以提高效率,用基因代表不同的门(AND\XOR\NOT等等),将基因(有激活、不激活)组合起来表达出一个电路,设计了组合加法器与乘法器电路。
实验思路
与文章HB的4.3节类似,将遗传规划中的基因表示为电路,使用电路结构来表示一个布尔函数,例如函数
f
(
i
5
,
⋯
,
i
0
)
=
o
0
=
(
(
i
1
⊕
(
i
1
+
i
3
)
)
⊕
i
2
i
5
)
⊕
i
0
+
(
i
0
+
i
4
)
f(i_5,\cdots,i_0) = o_0 = ((i_1\oplus(i_1+i_3))\oplus i_2i_5) \oplus i_0 + (i_0 + i_4)
f(i5,⋯,i0)=o0=((i1⊕(i1+i3))⊕i2i5)⊕i0+(i0+i4):
不过这样的话计算
f
i
t
n
e
s
s
fitness
fitness 就需要遍历染色体的所有活性基因,并计算它们的输出值。或者说,按照代数式计算出真值表并求非线性度。
试验消耗
试验在一个有着112个节点的计算机集群上进行:
All the experiments were performed on a computer cluster of 112 nodes with the following hardware configuration: 2× 8-core Intel E5-2670, 128 GB RAM, 2× 600 GB 15 k scratch hard disks, connected by gigabit Ethernet and Infiniband links.
结果
虽然消耗极大,但得到了新的16元Bent函数: