理解随机算法的性能
1. 实验观察
电子设计自动化(EDA)工具在用户看来必须是确定性的。在实际应用中,设计过程需要具有可重复性,即给定相同的输入和约束条件,同一 EDA 工具多次运行时输出应保持一致,并且输入的微小变化应只会引起输出的微小变化。
当使用如模拟退火等随机算法时,通常会使用固定种子的伪随机数生成器来掩盖随机性。然而,近期有研究发现,几乎所有工具的求解质量都依赖于输入描述中语义无关的变化,例如变量声明的顺序,这种情况可视为(不期望的)偏差。由于用户并不知道这种依赖关系的存在,所以这种偏差应被视为随机的,从这个意义上说,算法在不知不觉中变成了随机算法。
对 EDA 算法进行公平比较变得很有挑战性,因为单一的质量值不足以评估,需要测量质量的概率密度分布。因此,算法不仅要通过质量(如分布的均值)来表征,还要考虑其鲁棒性(如分布的偏差)。为了更全面地了解工具的性能,我们使用概率密度分布来评估所提出的算法。
以下是几个实验示例:
- ABC 工具在 cordic 电路的实验 :对学术 EDA 工具 ABC 在 IWLS’93 基准集的 cordic 基准电路上进行了 1000 次运行,每次运行时随机置换输入和输出。使用了“strash; dch; if; mfs”的 ABC 命令序列进行查找表(LUT)映射,并以 LUT 的数量作为衡量标准。已知的最小尺寸用垂直线表示。当该过程迭代 40 次时,结果有了显著改善。
- SAT - Compress 算法在测试压缩的实验 :SAT - Compress 算法在 ITC’99 b04 基准电路上重复运行 1000 次,
超级会员免费看
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



