当前位置: 首页 > news >正文

逻辑优化基础-disjoint support decomposition

先遣兵

在了解 disjoint support decomposition 之前,先学习两个基本的概念。

  • disjoint

数学含义上的两个集合交集,所谓非相交,即交集为空集。

A∩B=C=⊘A \cap B = C = \oslash AB=C=
在这里插入图片描述

  • support

逻辑综合中的 supportsupportsupport 概念是指: 一个门 gggsupportsupportsupport 是指该门 ggg 的所有原始输入PIPIPI

例如有一个函数:
Fout=h(x)+g(x)Fout = h(x) + g(x) Fout=h(x)+g(x)
其中 h(x)=A+Bh(x) = A + Bh(x)=A+Bg(x)=D+Eg(x) = D + Eg(x)=D+E,则 nodenodenode hhhgggsupportsupportsupport 分别为 { A, B }、{ D, E },FoutFoutFoutsupportsupportsupport 为 { A, B, D, E }。

其他概念有兴趣可参考 逻辑综合知识点总结 持续更新中…

1. 简介

disjoint support decomposition ,它是用于优化布尔函数的一种技术,将其分解成具有不交 supportsupportsupport 的较小子函数。

一个布尔函数可以表示为 (sum of products,SOP)表达式或积和式(product of sums,POS)表达式。

disjoint support decomposition 的目的是将给定表达式转换为具有较小且更易于处理的子表达式的形式。它的基本思想是识别原始表达式中没有共同变量的变量子集,并将表达式分解为只取决于这些子集的较小表达式的和。这使得函数更容易进行优化,因为较小的表达式通常更容易处理。

即:

非相交分解 == 一个函数 FFF可以被子函数 KKKJJJ 表示,且 KKKJJJsupportsupportsupport 不相交,且 4J$ 只有一个输出,
F=K(x1,x2,...,xj−1,J(xj,...,xn))F = K (x_1, x_2, ..., x_{j-1}, J(x_j, ..., x_n)) F=K(x1,x2,...,xj1,J(xj,...,xn))
例如有一个函数:
F=(x1+x2)(x3⊕x4)F = (x_1 + x_2)(x_3 \oplus x_4) F=(x1+x2)(x3x4)
最简单的 dsddsddsd 为图 (a) 所示:
K=(x3⊕x4)J1,J1=(x1+x2)K = (x_3 \oplus x_4)J_1, J_1 = (x_1 + x_2) K=(x3x4)J1,J1=(x1+x2)
或者图 (b):
K=(x1+x2)J2,J2=(x3⊕x4)K = (x_1 + x_2)J_2, J_2 = (x_3 \oplus x_4) K=(x1+x2)J2,J2=(x3x4)
再进一步表示为图 © F=K(J1,J2)=(x1+x2)(x3⊕x4)F = K(J_1, J_2) = (x_1 + x_2)(x_3 \oplus x_4)F=K(J1,J2)=(x1+x2)(x3x4)

在这里插入图片描述
如果一个 outputoutputoutput 被全部用 dsddsddsd 表示,这意味着拿掉某一个 supportsupportsupport 不会对其他的 supportsupportsupport 支持的逻辑造成影响,个人理解是否可以通过 dsddsddsd 分解由局部最优达到全局最优。

如果 FFF被一个 DAG(G)DAG(G)DAG(G) 表示的话,也可以表示为,应该比较容易理解:
Edge(G)=Edge(K)+Edge(J)Edge(G) = Edge(K) + Edge(J) Edge(G)=Edge(K)+Edge(J)

2. 算法

TODO

3. 优点

TODO

http://www.lryc.cn/news/38107.html

相关文章:

  • 保姆级使用PyTorch训练与评估自己的DaViT网络教程
  • Java8新特性:Stream流处理使用总结
  • Java基准测试工具JMH高级使用
  • 问心 | 再看token、session和cookie
  • Ubuntu 安装 CUDA and Cudnn
  • 【漏洞复现】Grafana任意文件读取(CVE-2021-43798)
  • 磨金石教育摄影技能干货分享|春之旅拍
  • 中断以及 PIC可编程中断控制器
  • SecureCRT 安装并绑定ENSP设备终端
  • ESP32设备驱动-TCS3200颜色传感器驱动
  • < JavaScript小技巧:Array构造函数妙用 >
  • 【17】组合逻辑 - VL17/VL19/VL20 用3-8译码器 或 4选1多路选择器 实现逻辑函数
  • 2023年全国最新二级建造师精选真题及答案19
  • Java中的 this 和 super
  • ESP32设备驱动-红外寻迹传感器驱动
  • 初识BFC
  • 随想录二刷Day17——二叉树
  • Weblogic管理控制台未授权远程命令执行漏洞复现(cve-2020-14882/cve-2020-14883)
  • STM32F103CubeMX定时器
  • 多态且原理
  • 动态库(二) 创建动态库
  • opencv加水印
  • Flume基操
  • 图文详解红黑树,还有谁不会?
  • 多目标遗传算法NSGA-II原理详解及算法实现
  • Spark 键值对RDD的操作
  • 【SpringCloud】SpringCloud详解之Feign远程调用
  • 文档团队怎样使用GIT做版本管理
  • 【java】Java中-> 是什么意思?
  • 网络类型部分实验