You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

174 lines
6.3 KiB

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
  2. <!--Converted with LaTeX2HTML 2008 (1.71)
  3. original version by: Nikos Drakos, CBLU, University of Leeds
  4. * revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
  5. * with significant contributions from:
  6. Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
  7. <HTML>
  8. <HEAD>
  9. <TITLE>Introduction</TITLE>
  10. <META NAME="description" CONTENT="Introduction">
  11. <META NAME="keywords" CONTENT="cuddIntro">
  12. <META NAME="resource-type" CONTENT="document">
  13. <META NAME="distribution" CONTENT="global">
  14. <META NAME="Generator" CONTENT="LaTeX2HTML v2008">
  15. <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
  16. <LINK REL="STYLESHEET" HREF="cuddIntro.css">
  17. <LINK REL="next" HREF="node2.html">
  18. <LINK REL="previous" HREF="cuddIntro.html">
  19. <LINK REL="up" HREF="cuddIntro.html">
  20. <LINK REL="next" HREF="node2.html">
  21. </HEAD>
  22. <BODY >
  23. <!--Navigation Panel-->
  24. <A NAME="tex2html86"
  25. HREF="node2.html">
  26. <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
  27. SRC="icons/next.png"></A>
  28. <A NAME="tex2html82"
  29. HREF="cuddIntro.html">
  30. <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
  31. SRC="icons/up.png"></A>
  32. <A NAME="tex2html76"
  33. HREF="cuddIntro.html">
  34. <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
  35. SRC="icons/prev.png"></A>
  36. <A NAME="tex2html84"
  37. HREF="node8.html">
  38. <IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
  39. SRC="icons/index.png"></A>
  40. <BR>
  41. <B> Next:</B> <A NAME="tex2html87"
  42. HREF="node2.html">How to Get CUDD</A>
  43. <B> Up:</B> <A NAME="tex2html83"
  44. HREF="cuddIntro.html">CUDD: CU Decision Diagram</A>
  45. <B> Previous:</B> <A NAME="tex2html77"
  46. HREF="cuddIntro.html">CUDD: CU Decision Diagram</A>
  47. &nbsp; <B> <A NAME="tex2html85"
  48. HREF="node8.html">Index</A></B>
  49. <BR>
  50. <BR>
  51. <!--End of Navigation Panel-->
  52. <H1><A NAME="SECTION00010000000000000000"></A>
  53. <A NAME="sec:intro"></A>
  54. <BR>
  55. Introduction
  56. </H1>
  57. <P>
  58. The CUDD package provides functions to manipulate Binary Decision
  59. Diagrams<A NAME="14"></A> (BDDs) [<A
  60. HREF="node7.html#BDD">5</A>,<A
  61. HREF="node7.html#BBR">3</A>],
  62. Algebraic Decision Diagrams<A NAME="16"></A> (ADDs)
  63. [<A
  64. HREF="node7.html#Bahar93">1</A>], and Zero-suppressed Binary Decision
  65. Diagrams<A NAME="18"></A> (ZDDs)
  66. [<A
  67. HREF="node7.html#Minato93">12</A>]. BDDs are used to represent
  68. switching<A NAME="20"></A> functions; ADDs are used to
  69. represent function from <IMG
  70. WIDTH="56" HEIGHT="35" ALIGN="MIDDLE" BORDER="0"
  71. SRC="img3.png"
  72. ALT="$\{0,1\}^n$"> to an arbitrary set. ZDDs
  73. represent switching<A NAME="21"></A> functions like BDDs;
  74. however, they are much more efficient than BDDs when the functions to
  75. be represented are characteristic<A NAME="22"></A>
  76. functions of cube<A NAME="23"></A> sets, or in general, when the
  77. ON-set<A NAME="24"></A> of the function to be represented is
  78. very sparse. They are inferior to BDDs in other cases.
  79. <P>
  80. The package provides a large set of operations on BDDs, ADDs, and
  81. ZDDs, functions to convert BDDs into ADDs or ZDDs and vice versa, and
  82. a large assortment of variable reordering<A NAME="25"></A> methods.
  83. <P>
  84. The CUDD package can be used in three ways:
  85. <UL>
  86. <LI>As a black box<A NAME="27"></A>. In this case, the application
  87. program that needs to manipulate decision diagrams only uses the
  88. exported functions of the package. The rich set of functions
  89. included in the CUDD package allows many applications to be written
  90. in this way. Section&nbsp;<A HREF="node3.html#sec:user">3</A> describes how to use the
  91. exported functions of the package. An application written in terms
  92. of the exported functions of the package needs not concern itself
  93. with the details of variable reordering<A NAME="29"></A>, which may
  94. take place behind the scenes.
  95. Click <A NAME="tex2html1"
  96. HREF="cuddExtAbs.html">here</A>
  97. for a list of the
  98. exported functions.
  99. </LI>
  100. <LI>As a clear box<A NAME="32"></A>. When writing a sophisticated
  101. application based on decision diagrams, efficiency often dictates
  102. that some functions be implemented as direct recursive manipulation
  103. of the diagrams, instead of being written in terms of existing
  104. primitive functions. Section&nbsp;<A HREF="node4.html#sec:prog">4</A> explains how to add new
  105. functions to the CUDD package. It also details how to write a
  106. recursive function that can be interrupted by
  107. dynamic<A NAME="34"></A> variable reordering.
  108. Click <A NAME="tex2html2"
  109. HREF="cuddAllAbs.html">here</A>
  110. for a list of the
  111. exported and internal functions.
  112. </LI>
  113. <LI>Through an interface. Object-oriented languages like C++ and
  114. Perl5 can free the programmer from the burden of memory management.
  115. A C++ interface is included in the distribution of CUDD. It
  116. automatically frees decision diagrams that are no longer used by the
  117. application and overloads operators. Almost all the functionality
  118. provided by the CUDD exported functions is available through the C++
  119. interface, which is especially recommended for fast prototyping.
  120. Section&nbsp;<A HREF="node5.html#sec:cpp">5</A> explains how to use the interface. A Perl5
  121. interface also exists and is ditributed separately. (See
  122. Section&nbsp;<A HREF="node2.html#sec:getFriends">2.2</A>.) Some applications define their own
  123. interfaces. See for example Section&nbsp;<A HREF="node3.html#sec:sis-vis">3.18</A>.
  124. </LI>
  125. </UL>
  126. In the following, the reader is supposed to be familiar with the basic
  127. ideas about decision diagrams, as found, for instance, in [<A
  128. HREF="node7.html#BBR">3</A>].
  129. <P>
  130. <HR>
  131. <!--Navigation Panel-->
  132. <A NAME="tex2html86"
  133. HREF="node2.html">
  134. <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
  135. SRC="icons/next.png"></A>
  136. <A NAME="tex2html82"
  137. HREF="cuddIntro.html">
  138. <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
  139. SRC="icons/up.png"></A>
  140. <A NAME="tex2html76"
  141. HREF="cuddIntro.html">
  142. <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
  143. SRC="icons/prev.png"></A>
  144. <A NAME="tex2html84"
  145. HREF="node8.html">
  146. <IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
  147. SRC="icons/index.png"></A>
  148. <BR>
  149. <B> Next:</B> <A NAME="tex2html87"
  150. HREF="node2.html">How to Get CUDD</A>
  151. <B> Up:</B> <A NAME="tex2html83"
  152. HREF="cuddIntro.html">CUDD: CU Decision Diagram</A>
  153. <B> Previous:</B> <A NAME="tex2html77"
  154. HREF="cuddIntro.html">CUDD: CU Decision Diagram</A>
  155. &nbsp; <B> <A NAME="tex2html85"
  156. HREF="node8.html">Index</A></B>
  157. <!--End of Navigation Panel-->
  158. <ADDRESS>
  159. Fabio Somenzi
  160. 2012-02-04
  161. </ADDRESS>
  162. </BODY>
  163. </HTML>