.import(
)
: string
exportメソッドでシリアライズ出力されたZDDファイル(fileNameで指定)をインポートしZDDオブジェクト
を復元する。 exportする時のsymbolによるアイテムの宣言順序とimportする時の宣言順序は同じでなければならない。
> 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.export("dat.zdd")
# エキスポートされたファイルdat.zddの内容は以下の通り。
# _i 3
# _o 3
# _n 7
# 4 1 F T
# 248 2 F 5
# 276 3 4 248
# 232 2 F 4
# 2 2 F T
# 272 3 232 2
# 268 3 232 248
# 276
# 272
# 268
> require 'zdd'
# 以下のようにsymbolを順番に宣言した後にimportすれば正しく復元される。
> ZDD::symbol("a")
> ZDD::symbol("b")
> ZDD::symbol("c")
> g1=ZDD::import("dat.zdd")
> g1.show
5 a b c + 3 a b + 2 b c + c
> require 'zdd'
# もしアイテムb,cの宣言順序を入れ替えると結果においてもbとcが入れ替わってしまう。
> ZDD::symbol("a")
> ZDD::symbol("c")
> ZDD::symbol("b")
> g2=ZDD::import("dat.zdd")
> g2.show
5 a c b + 3 a c + 2 c b + b
> require 'zdd'
# 宣言せずにインポートすると、x1,x2,x3のようなアイテム名が使われる。
# この時、各アイテムの後ろに付いた数字は、アイテムの宣言の逆順による連番となる。
# 以下の例では、x1=c, x2=b, x3=cである。
> g3=ZDD::import("dat.zdd")
> g3.show
5 x3 x2 x1 + 3 x3 x2 + 2 x2 x1 + x1
export : ZDDのシリアライズ出力