3.28 import : ZDDのインポート

書式

$obj$.import($fileName$) $\rightarrow zdd$

  $fileName$ : string

説明

exportメソッドでシリアライズ出力されたZDDファイル(fileNameで指定)をインポートしZDDオブジェクト$zdd$を復元する。 exportする時のsymbolによるアイテムの宣言順序とimportする時の宣言順序は同じでなければならない。

例1: 基本例

> 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

例2: 正しい復元例

> 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

例3: 正しくない復元例

> 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

例4: symbol宣言なしでの復元例

> 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のシリアライズ出力