【问题标题】:what would be the most efficient algorithm for logic circuit synthesis if the only known knowledge about the problem is the fitness function?如果关于问题的唯一已知知识是适应度函数,那么逻辑电路综合最有效的算法是什么?
【发布时间】:2022-08-20 05:43:59
【问题描述】:

我正在开发一个程序,该程序试图在给定一些适应度函数(逻辑电路 => 适应度值)的情况下从 NOR 门构建逻辑电路。

目前我正在使用某种模拟退火(对逻辑电路图进行 N 个随机突变并计算新解决方案的适应度,如果适应度足够高而不是接受当前解决方案)

这类问题有更有效的算法吗?

Here is an example of generated AND gate with 4 inputs(0-1 on edge 表示,边缘从 0 输出到另一个门的第 1(右)输入)

    标签: machine-learning optimization logic circuit


    【解决方案1】:

    几十年来,多级逻辑综合一直是一个研究课题。应用一系列局部变换来改进电路是Berkeley ABC system 所追求的策略。

    相关论文是SAT-Based Logic Optimization and Resynthesis。 最近的出版物是Reinforcement Learning for Scalable Logic Optimization with Graph Neural Networks

    通常,局部变换从正确的电路开始,并尝试在不影响其正确性的情况下对其进行改进。将一些任意电路转换为正确的电路对我来说似乎没有希望。

    具有n 输入的电路的真值表有2^n 行。为了检查正确性,优化器必须检查所有2^n 值。匹配数(= 适应度度量)在02^n 之间。通常有许多可能的方法来转换电路。因此,对于少数几个输入,替代树会迅速爆炸。

    一种可能的搜索方法是将要实现的函数 F 分解为两个更简单的函数 F1F2,这样

    F(a, b, ....) = NOR(F1(a, b, ....), F2(a, b, ....))
    

    可以优化此拆分以最小化子功能F1F2 的复杂性。

    该方法是递归的。 F1F2 被分解为子函数。如果函数只表示一个常量或单个输入变量,则递归结束。

    得到的电路是两输入NOR 门的树。可能可以重用已经合成的子功能或允许NOR 门具有不同数量的输入(INVNOR2NOR3,...)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      • 1970-01-01
      • 1970-01-01
      • 2018-04-28
      • 1970-01-01
      • 2011-12-19
      • 2019-03-18
      相关资源
      最近更新 更多