枚举的力量——基于BDD/ zdd的离散结构操作技术

S. Minato
{"title":"枚举的力量——基于BDD/ zdd的离散结构操作技术","authors":"S. Minato","doi":"10.1109/ISMVL.2016.49","DOIUrl":null,"url":null,"abstract":"Summary form only given. Discrete structures are foundational materials for computer science and mathematics, which are related to set theory, symbolic logic, inductive proof, graph theory, combinatorics, probability theory, etc. Many problems are decomposed into discrete structures using simple primitive algebraic operations. A Binary Decision Diagram (BDD) is a representation of a Boolean function, one of the most basic models of discrete structures. After the epoch-making paper [1] by Bryant in 1986, BDD-based methods have attracted a great deal of attention. The BDD was originally developed for the efficient Boolean function manipulation required in VLSI logic design, however, later they are also used for sets of combinations which represent many kinds of combinatorial patterns. A Zero-suppressed BDD (ZDD) [2] is a variant of the BDD, customized for representing a set of combinations. ZDDs have been successfully applied not only to VLSI design, but also for solving various combinatorial problems, such as constraint satisfaction, frequent pattern mining, and graph enumeration. Recently, ZDDs have become more widely known, since D. E. Knuth intensively discussed ZDD-based algorithms in the latest volume of his famous series of books [3]. Although a quarter of a century has passed since Bryant first put forth his idea, there are still many interesting and exciting research topics related to BDDs and ZDDs [4]. One of the most important topics would be that, Knuth presented an extremely fast algorithm \"Simpath\" [3] to construct a ZDD which enumerates all the paths connecting two points in a given graph structure. This work is important because many kinds of practical problems are efficiently solved by some variations of this algorithm. We generically call such ZDD construction methods \"frontier-based methods.\" The above techniques of data structures and algorithms have been implemented and published as an open software library, named \"Graphillion\"[5], [6]. Graphillion is a library for manipulating very large sets of graphs, based on ZDDs and frontier-based method. Graphillion is implemented as a Python extension in C++, to encourage easy development of its applications without introducing significant performance overhead. In order to organize an integrated method of algebraic operations for manipulating various types of discrete structures, and to construct standard techniques for efficiently solving large-scale and practical problems in various fields, A governmental agency in Japan started a nation-wide project: ERATO MINATO Discrete Structure Manipulation System Project in 2009. The project was successfully finished in this year, and a successor project, JSPS KAKENHI(S), is now running until 2020. Many interesting research results were produced in the last ERATO project, and some of topics are still attractive to be explored more. In this talk, we first show an overview of our research project, and then explain the basic techniques of BDDs and ZDDs used for various discrete structure manipulation. We also present a brief history of the research activity related to BDDs and ZDDs. We then show an overview of the frontier-based method for efficiently enumerating and indexing the solutions of combinatorial problems. We also present several topics on various applications of those stateof- the-art techniques.","PeriodicalId":246194,"journal":{"name":"2016 IEEE 46th International Symposium on Multiple-Valued Logic (ISMVL)","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2016-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Power of Enumeration -- BDD/ZDD-Based Techniques for Discrete Structure Manipulation\",\"authors\":\"S. Minato\",\"doi\":\"10.1109/ISMVL.2016.49\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Summary form only given. Discrete structures are foundational materials for computer science and mathematics, which are related to set theory, symbolic logic, inductive proof, graph theory, combinatorics, probability theory, etc. Many problems are decomposed into discrete structures using simple primitive algebraic operations. A Binary Decision Diagram (BDD) is a representation of a Boolean function, one of the most basic models of discrete structures. After the epoch-making paper [1] by Bryant in 1986, BDD-based methods have attracted a great deal of attention. The BDD was originally developed for the efficient Boolean function manipulation required in VLSI logic design, however, later they are also used for sets of combinations which represent many kinds of combinatorial patterns. A Zero-suppressed BDD (ZDD) [2] is a variant of the BDD, customized for representing a set of combinations. ZDDs have been successfully applied not only to VLSI design, but also for solving various combinatorial problems, such as constraint satisfaction, frequent pattern mining, and graph enumeration. Recently, ZDDs have become more widely known, since D. E. Knuth intensively discussed ZDD-based algorithms in the latest volume of his famous series of books [3]. Although a quarter of a century has passed since Bryant first put forth his idea, there are still many interesting and exciting research topics related to BDDs and ZDDs [4]. One of the most important topics would be that, Knuth presented an extremely fast algorithm \\\"Simpath\\\" [3] to construct a ZDD which enumerates all the paths connecting two points in a given graph structure. This work is important because many kinds of practical problems are efficiently solved by some variations of this algorithm. We generically call such ZDD construction methods \\\"frontier-based methods.\\\" The above techniques of data structures and algorithms have been implemented and published as an open software library, named \\\"Graphillion\\\"[5], [6]. Graphillion is a library for manipulating very large sets of graphs, based on ZDDs and frontier-based method. Graphillion is implemented as a Python extension in C++, to encourage easy development of its applications without introducing significant performance overhead. In order to organize an integrated method of algebraic operations for manipulating various types of discrete structures, and to construct standard techniques for efficiently solving large-scale and practical problems in various fields, A governmental agency in Japan started a nation-wide project: ERATO MINATO Discrete Structure Manipulation System Project in 2009. The project was successfully finished in this year, and a successor project, JSPS KAKENHI(S), is now running until 2020. Many interesting research results were produced in the last ERATO project, and some of topics are still attractive to be explored more. In this talk, we first show an overview of our research project, and then explain the basic techniques of BDDs and ZDDs used for various discrete structure manipulation. We also present a brief history of the research activity related to BDDs and ZDDs. We then show an overview of the frontier-based method for efficiently enumerating and indexing the solutions of combinatorial problems. We also present several topics on various applications of those stateof- the-art techniques.\",\"PeriodicalId\":246194,\"journal\":{\"name\":\"2016 IEEE 46th International Symposium on Multiple-Valued Logic (ISMVL)\",\"volume\":null,\"pages\":null},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2016-05-18\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2016 IEEE 46th International Symposium on Multiple-Valued Logic (ISMVL)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ISMVL.2016.49\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2016 IEEE 46th International Symposium on Multiple-Valued Logic (ISMVL)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ISMVL.2016.49","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

只提供摘要形式。离散结构是计算机科学和数学的基础材料,涉及集合论、符号逻辑、归纳证明、图论、组合学、概率论等。许多问题用简单的原始代数运算分解成离散结构。二进制决策图(BDD)是布尔函数的一种表示形式,是离散结构的最基本模型之一。自1986年Bryant发表划时代的论文[1]后,基于bdd的方法引起了广泛关注。BDD最初是为VLSI逻辑设计中所需的高效布尔函数操作而开发的,然而,后来它们也用于表示多种组合模式的组合集。零抑制的BDD (ZDD)[2]是BDD的一种变体,是为表示一组组合而定制的。zdd不仅成功地应用于VLSI设计,而且还用于解决各种组合问题,如约束满足、频繁模式挖掘和图枚举。最近,由于d.e.k nuth在其著名系列书籍的最新一卷[3]中深入讨论了基于zdd的算法,zdd已经变得更加广为人知。虽然距Bryant首次提出这一观点已经过去了四分之一个世纪,但与bdd和zdd相关的研究课题仍有许多有趣且令人兴奋的[4]。其中最重要的一个主题是,Knuth提出了一个非常快的算法“Simpath”[3]来构建一个ZDD,它枚举了给定图结构中连接两点的所有路径。这一工作具有重要意义,因为该算法的一些变体有效地解决了许多实际问题。我们通常将这样的ZDD构造方法称为“基于边界的方法”。上述数据结构和算法技术已经作为一个开放的软件库实现并发布,命名为“Graphillion”[5],[6]。Graphillion是一个用于操作非常大的图集的库,基于zdd和基于边界的方法。Graphillion是作为c++中的Python扩展实现的,以鼓励在不引入显著性能开销的情况下轻松开发其应用程序。为了组织一种集成的代数运算方法来处理各种类型的离散结构,并构建有效解决各领域大规模和实际问题的标准技术,日本政府机构于2009年启动了一个全国性的项目:ERATO MINATO离散结构处理系统项目。该项目于今年成功完成,后继项目JSPS KAKENHI(S)现在将运行到2020年。在上一个ERATO项目中产生了许多有趣的研究成果,并且一些主题仍然具有进一步探索的吸引力。在这次演讲中,我们首先展示了我们的研究项目的概述,然后解释了用于各种离散结构操作的bdd和zdd的基本技术。我们还简要介绍了与bdd和zdd相关的研究活动的历史。然后,我们展示了有效枚举和索引组合问题的解决方案的基于边界的方法的概述。我们还提出了几个关于这些最先进技术的各种应用的主题。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Power of Enumeration -- BDD/ZDD-Based Techniques for Discrete Structure Manipulation
Summary form only given. Discrete structures are foundational materials for computer science and mathematics, which are related to set theory, symbolic logic, inductive proof, graph theory, combinatorics, probability theory, etc. Many problems are decomposed into discrete structures using simple primitive algebraic operations. A Binary Decision Diagram (BDD) is a representation of a Boolean function, one of the most basic models of discrete structures. After the epoch-making paper [1] by Bryant in 1986, BDD-based methods have attracted a great deal of attention. The BDD was originally developed for the efficient Boolean function manipulation required in VLSI logic design, however, later they are also used for sets of combinations which represent many kinds of combinatorial patterns. A Zero-suppressed BDD (ZDD) [2] is a variant of the BDD, customized for representing a set of combinations. ZDDs have been successfully applied not only to VLSI design, but also for solving various combinatorial problems, such as constraint satisfaction, frequent pattern mining, and graph enumeration. Recently, ZDDs have become more widely known, since D. E. Knuth intensively discussed ZDD-based algorithms in the latest volume of his famous series of books [3]. Although a quarter of a century has passed since Bryant first put forth his idea, there are still many interesting and exciting research topics related to BDDs and ZDDs [4]. One of the most important topics would be that, Knuth presented an extremely fast algorithm "Simpath" [3] to construct a ZDD which enumerates all the paths connecting two points in a given graph structure. This work is important because many kinds of practical problems are efficiently solved by some variations of this algorithm. We generically call such ZDD construction methods "frontier-based methods." The above techniques of data structures and algorithms have been implemented and published as an open software library, named "Graphillion"[5], [6]. Graphillion is a library for manipulating very large sets of graphs, based on ZDDs and frontier-based method. Graphillion is implemented as a Python extension in C++, to encourage easy development of its applications without introducing significant performance overhead. In order to organize an integrated method of algebraic operations for manipulating various types of discrete structures, and to construct standard techniques for efficiently solving large-scale and practical problems in various fields, A governmental agency in Japan started a nation-wide project: ERATO MINATO Discrete Structure Manipulation System Project in 2009. The project was successfully finished in this year, and a successor project, JSPS KAKENHI(S), is now running until 2020. Many interesting research results were produced in the last ERATO project, and some of topics are still attractive to be explored more. In this talk, we first show an overview of our research project, and then explain the basic techniques of BDDs and ZDDs used for various discrete structure manipulation. We also present a brief history of the research activity related to BDDs and ZDDs. We then show an overview of the frontier-based method for efficiently enumerating and indexing the solutions of combinatorial problems. We also present several topics on various applications of those stateof- the-art techniques.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信