组合逻辑电路优化与电磁类增广拉格朗日算法
1. 组合逻辑电路优化方法
1.1 染色体表示
在组合逻辑电路优化中,程序功能(即树中的内部节点)采用二输入与非门,终端节点为布尔变量、真和假。通过树的前序遍历可生成表达式,例如 NAND (NAND (False, A), NAND (A, B)) 。
1.2 适应度函数
1.2.1 基于门数量的优化
采用两阶段适应度函数。第一阶段,计算染色体所代表的函数与给定布尔函数的相似度,染色体 C 的适应度定义为:
[
Fit_1(C) = \frac{N(F, C)}{2^n}
]
其中,n 是变量数量,F 是布尔函数,$N(F, C)$ 是染色体 C 所代表的函数与函数 F 之间相同最小项的数量。若 $Fit_1(C)$ 等于 1,则表明该染色体是可行解并实现了相应函数。此时,为优化门数量,适应度将替换为:
[
Fit_2(C) = \frac{1}{\alpha_1 Gates(C) + \beta_1}
]
其中,$Gates(C)$ 返回染色体 C 中内部节点(门)的数量,$\alpha_1$ 和 $\beta_1$ 是用户定义的参数,且大于等于 1。适应度大于 1 的染色体为可行解。
1.2.2 基于层级的优化
优化层级数量可优化电路中信号的传播延迟,使电路运行更快。但优化总门数量不一定能得到层级数量最优的实现电路。可将适应度函数替换为:
[
Fit_3(C) = \frac{1}{\alpha_2 Height(C) + \beta_2}