.show([
])
: string
ZDDオブジェクトを多様な形式で標準出力に出力する。 出力形式は、Table 3.1に示された値(文字列)を与えることによって切り替える。
を省略すればアイテムの積和形式で表示する。
|
機能 |
(スイッチ無し) |
アイテムの積和形での表示 |
bit |
重みの(-2)進数の各桁別アイテム集合の表示 |
hex |
整数値を 16 進数で表現する積和形表示 |
map |
カルノー図で表示。アイテム変数6個まで表示できる |
rmap |
カルノー図で表示。冗長なアイテム変数は省いて表示 |
case |
整数値ごとに場合分けして積和形表示 |
/size |
計算結果のBDD節点数(および処理系全体の節点数)を表示 |
/count |
式に現れる(0 以外の値を持つ)組合せの個数を表示 |
/density |
集合の濃度(0 以外の値を持つ組合せの比率)を表示 |
/value |
シンボル変数にすべて数値を代入したときの式の値を表示 |
/maxcover |
式に含まれる(0 以外の値を持つ)コスト最大の組合せを1つ表示 |
/maxcost |
コスト最大組合せのコスト値を表示 |
/mincover |
式に含まれる(0 以外の値を持つ)コスト最小の組合せを1つ表示 |
/mincost |
コスト最小組合せのコスト値を表示 |
/plot |
BDDの形を図示する。(使用不可) |
decomp |
単純直交分解形式での出力 |
/export |
BDDの形を図示する(否定枝不使用)。 |
|
指定されたファイルに出力 |
> require 'zdd' > a=ZDD::itemset("a") > b=ZDD::itemset("b") > c=ZDD::itemset("c") > f=5*a*b*c - 3*a*b + 2*b*c + c > f.show 5 a b c - 3 a b + 2 b c + c > ZDD::constant(0).show 0
> require 'zdd' > a=ZDD::itemset("a") > b=ZDD::itemset("b") > c=ZDD::itemset("c") > f=5*a*b*c - 3*a*b + 2*b*c + c > f.show 5 a b c - 3 a b + 2 b c + c > f.bit NoMethodError: undefined method `bit' for 5 a b c + - 3 a b + 2 b c + c:Module from (irb):8 from /Users/hamuro/.rvm/rubies/ruby-1.9.3-p362/bin/irb:16:in `<main>' # "a b c"の重み5の(-2)進数は101となる。 # 1*(-2)^2+0*(-2)^1+1*(-2)^0 = 5 # よって0桁目と2桁目にアイテム集合"a b c"が表示されている。 # "a b"の重み-3の(-2)進数は1101となる。 # 1*(-2)^3+1*(-2)^2+0*(-2)^1+1*(-2)^0 = -3 # よって0,2,3桁目にアイテム集合"a b"が表示されている。
> require 'zdd' > a=ZDD::itemset("a") > b=ZDD::itemset("b") > c=ZDD::itemset("c") > d=ZDD::itemset("d") > f=a*b+11*b*c+30*d+4 > f.show a b + 11 b c + 30 d + 4 > f.hex NoMethodError: undefined method `hex' for a b + 11 b c + 30 d + 4 :Module from (irb):9 from /Users/hamuro/.rvm/rubies/ruby-1.9.3-p362/bin/irb:16:in `<main>'
> require 'zdd' > a=ZDD::itemset("a") > b=ZDD::itemset("b") > c=ZDD::itemset("c") > d=ZDD::itemset("d") > f=2*a*b+3*b+4 > f.show 2 a b + 3 b + 4 > f.map NoMethodError: undefined method `map' for 2 a b + 3 b + 4 :Module from (irb):8 from /Users/hamuro/.rvm/rubies/ruby-1.9.3-p362/bin/irb:16:in `<main>' # アイテムaが1列目のビット列に、アイテムbが1行目のビット列に対応してアイテム集合が表現されている。 # セルの値は重みを表す。左上のセルはaが0、bが0、すなわち定数項が4であることが示されている。 # 4アイテムでは以下の通り。 > g=a*b + 2*b*c + 3*d + 4 > g.show a b + 2 b c + 3 d + 4 > g.map NoMethodError: undefined method `map' for a b + 2 b c + 3 d + 4 :Module from (irb):15 from /Users/hamuro/.rvm/rubies/ruby-1.9.3-p362/bin/irb:16:in `<main>'
> require 'zdd' # 4つのアイテムa,b,c,dを宣言 > ZDD::symbol("a") > ZDD::symbol("b") > ZDD::symbol("c") > ZDD::symbol("d") > f=ZDD::itemset("a b") + 2*ZDD::itemset("b c") + 4 > f.show a b + 2 b c + 4 # mapで表示させると以下の通り。 > f.map NoMethodError: undefined method `map' for a b + 2 b c + 4 :Module from (irb):12 from /Users/hamuro/.rvm/rubies/ruby-1.9.3-p362/bin/irb:16:in `<main>' # rmapで表示させるとdが省かれて表示される。 > f.rmap NoMethodError: undefined method `rmap' for a b + 2 b c + 4 :Module from (irb):15 from /Users/hamuro/.rvm/rubies/ruby-1.9.3-p362/bin/irb:16:in `<main>'
> require 'zdd' > a=ZDD::itemset("a") > b=ZDD::itemset("b") > c=ZDD::itemset("c") > f=5*a*b*c - 3*a*b + 2*b*c + 5*c > f.show 5 a b c - 3 a b + 2 b c + 5 c > f.case NoMethodError: undefined method `case' for 5 a b c + - 3 a b + 2 b c + 5 c:Module from (irb):8 from /Users/hamuro/.rvm/rubies/ruby-1.9.3-p362/bin/irb:16:in `<main>'
> require 'zdd' > a=ZDD::itemset("a") > b=ZDD::itemset("b") > c=ZDD::itemset("c") > f1=(a*b*c) > f1.show a b c > f1.decomp NoMethodError: undefined method `decomp' for a b c:Module from (irb):8 from /Users/hamuro/.rvm/rubies/ruby-1.9.3-p362/bin/irb:16:in `<main>' # a,b,cのANDということでa*b*c=a b c > f2=((a*b*c)+(a*b)) > f2.show a b c + a b > f2.decomp NoMethodError: undefined method `decomp' for a b c + a b:Module from (irb):13 from /Users/hamuro/.rvm/rubies/ruby-1.9.3-p362/bin/irb:16:in `<main>' # c,1のORにて(c+1)、それとa bとのANDで(a b)*(c+1)=a b c + a b > f3=((a*b*c)+(a*b)+(b*c)) > f3.show a b c + a b + b c > f3.decomp NoMethodError: undefined method `decomp' for a b c + a b + b c:Module from (irb):18 from /Users/hamuro/.rvm/rubies/ruby-1.9.3-p362/bin/irb:16:in `<main>' # [ a c ]はaとcによる全組合せ集合、すなわち(a c + a + c)。 # それとbとのANDで b*(a c + a + c) = a b c + a b + b c > f4=((a*b*c)+(a*b)+(b*c)+(c*a)) > f4.show a b c + a b + a c + b c > f4.decomp NoMethodError: undefined method `decomp' for a b c + a b + a c + b c:Module from (irb):24 from /Users/hamuro/.rvm/rubies/ruby-1.9.3-p362/bin/irb:16:in `<main>' # [ a b c ]はa,b,cによる全組合せ集合、すなわち(a b c + a b + b c + c a)
export : ZDDの構造をそのままフィアイルに出力する。