matlab中分段函数代码数字电路优化
作者:macasal和sgalella
用于设计和优化数字电路的进化算法的实现。
给定许多输入和目标输出,该算法将找到满足这些条件的逻辑电路。
遗传算法
我们的人口由不同的个体组成,分别对应于不同的回路。
这些电路是根据定义的适用性进行评估的。
在此问题的范围内,个人的适应度越高,将产生的解决方案越好。
为此,我们将考虑输出(电路是否产生正确的输出)以及组件的数量(逻辑门和连接的数量)。
适应度对应于分段定义的函数。
等于1
/(1
+
hamming_distance
),当hamming_distance
=
0时,最大适应度为1。
在创建了随机个体的初始种群之后,该算法具有三个不同的独特部分:
选择:根据适合情况选择最佳个人。
其余的将被丢弃。
重组:我们从最优秀的人那里产生后代。
人口规模保持不变。
变异:以一定的速率,我们对某些个体进行变异,以帮助系统逃脱局部极大值。
执行
该算法输出一个连通性矩阵,例如本段之后描述的矩阵。
连接矩阵对应于逻辑电路的编码。
该矩阵的大小为nInputs
+
nGates
x
nInputs
+
nGat
2021-08-26 15:21:28
240KB
系统开源
1