• 検索結果がありません。

<i>k</i>-IBDD充足可能性問題に対する厳密アルゴリズム

N/A
N/A
Protected

Academic year: 2022

シェア "<i>k</i>-IBDD充足可能性問題に対する厳密アルゴリズム"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

k-IBDD 充足可能性問題に対する厳密アルゴリズム

脊戸 和寿

1,a)

照山 順一

2,3,b)

長尾 篤樹

4,5,c)

概要:k-IBDDは,k段のレイヤーを持つ分岐プログラムであり,各レイヤーがOBDD(順序付き二分決定

図)となっている.本稿では,k-IBDD充足可能性問題(以下,k-IBDD SAT)を考える.k-IBDD SAT とは,入力としてk-IBDDが与えられ,シンク1に到達する変数への割当が存在するかどうかを判定する 問題である.本稿では,n変数,poly(n)ノードの2-IBDD SATを高々poly(n)·2n−n時間で解く多項 式領域アルゴリズムを与える.poly(n)nの多項式を表す.さらに,このアルゴリズムを拡張すること により,n変数,poly(n)ノードのk-IBDD SATを高々,poly(n)·2nn1/2k−1 時間で解く多項式領域ア ルゴリズムを与える.

1. はじめに

k-IBDD

充足可能性問題(以下,

k-IBDD SAT

)とは,与

えられた

k-IBDD

において,シンク

1

に到達する変数割り

当てが存在するかどうかを判定する問題である.

k-IBDD

とは

k

段のレイヤーから構成され,各レイヤーは

OBDD

(順序付き二分決定図)となっている.

k-IBDD SAT

は,

k 2

において,

NP

完全であることが知られている

[2].

n

変数

m

ノードの

k-IBDD SAT

は変数への全割り当てを

チェックすることで,

O(m2

n

)

時間で解くことができる.

k-IBDD SAT

において,全探索より超多項式的に高速な

O(m2

nω(logn)

)

時間のアルゴリズムの設計は目標の

1

である.既に

k-IBDD SAT

を含む,一般の分岐プログラ ムに対し,

m = O(n

2−ϵ

)

ϵ

0

より大きい任意に小さい 定数)であれば,

O(2

nω(logn)

)

時間の決定性アルゴリズ ムで解けることが知られている

[1]

.しかし,このアルゴ リズムは指数領域を必要とする上に,

m = ω(n

2

)

ノード

k-IBDD SAT

に対しては動作しない.本研究では,

n

数,

m = O(n

c

)

c

は任意の定数)ノードの

k-IBDD SAT

O(m2

n−ω(logn)

)

時間で解く決定性多項式領域アルゴリ

ズムの設計を目標とし,以下の結果を得た.

定理 1.

n

変数,

m = O(n

c

)

c

は任意の定数)ノードの

1 成蹊大学, Seikei University

2 国立情報学研究所, National Institute of Informatics

3 JST, ERATO,河原林巨大グラフプロジェクト,JST, ERATO, Kawarabayashi Large Graph Project

4 京都大学, Kyoto Uniersity

5 日本学術振興会特別研究員DC, Research Fellow of Japan So- ciety for the Promotion of Science

a) seto@st.seikei.ac.jp

b) teruyama@nii.ac.jp

c) a-nagao@kuis.kyoto-u.ac.jp

k-IBDD SAT

に対して,計算時間

poly(n) · 2

nnαで解く決 定性多項式領域アルゴリズムが存在する.ただし,

α =

2k−11

であり,

poly(n)

n

の多項式を表す.

1.1 関連研究

Chen

らは,

n

変数,

m = O(n

2−ϵ

)

ノードの分岐プログ ラムにおける充足可能性問題に対し,

O(2

nnδ

)

時間アル ゴリズムを設計した

[1]

.ここで,

ϵ

0

より大きい任意に 小さい定数であり,

δ

0 < δ < 1

を満たす

ϵ

に依存する 定数である.

Bollig

らは

k-IBDD SAT

の特別な場合でも

ある

k-OBDD SAT

について,多項式時間アルゴリズムを

考案した

[2]

k-IBDD SAT

に対しては,実験的に高速な

アルゴリズムが

Jain

らによって提案されている

[5]

2. 準備

X = { x

1

, . . . , x

n

}

を論理変数の集合とする.本稿では,

1

を論理値の真

(true)

0

を論理値の偽

(false)

に対応させ る.

x X

について,論理変数

x

の否定を

x

で表す.

非決定性分岐プログラム

B = (G, ϕ

V

, ϕ

E

)

は根付有向 多重グラフ

G = (V, E)

,ノードラベル関数

ϕ

V

: V X ∪ {

0,1

}

,枝ラベル関数

ϕ

E

: E → { 0, 1 }

で構成される.

G

はルートノード

r

とシンクノード

t

0

t

1を持ち,

ϕ(t

0

) =

0 かつ

ϕ(t

1

) =

1を満たす.

t

0(または

t

1)を

0-sink

(また

1-sink

)と呼ぶ.シンク以外の全てのノード

v V

に対 して,

ψ

V

(v) X

である.

ϕ

E により

G

のすべての枝は

0

または,

1

をラベルとして持つ.

1

は非決定性分岐プログラムの例である.各ノード は丸で表し,丸の中の記号はノードラベルを表している.

ノードをつなぐ矢印は有向枝を表し,枝の近くにある

0

(2)

たは

1

は枝ラベルを表す.

入力

a = (a

1

, . . . , a

n

) ∈ { 0, 1 }

nに対して,分岐プログラ ム

B

はルートノードから出発して以下のように枝をたど る.ノードラベルが

x

iの時,

a

iと等しいラベルを持つ枝 を選択し次のノードに進む.最終的に

t

1に到達するパス が少なくともひとつある時,分岐プログラム

B

は入力

a

に 対し

1

を出力し,それ以外の場合

0

を出力する.

2

値 関 数

f : { 0, 1 }

n

→ { 0, 1 }

に 対 し て ,す べ て の

a ∈ { 0, 1 }

nに対して

f (a)

B

の出力が等しいならば,

B

は関数

f

を表現するという.

B

のサイズは,

G

の枝数と し,

| B |

で表す.

非決定性分岐プログラムのうち,シンクノードでないす べてのノードからちょうど

2

本の枝が出て,それぞれにラ ベル

0, 1

1

つずつ貼られているものを決定性分岐プログ ラムという.以下では,特に記述しない限り分岐プログラ ムは決定性分岐プログラムであるとする.

順列

π = (π(1), π(2), . . . , π(n))

1

から

n

の数字を

1

つ ずつ含む任意の並びをもつ列である.また,

i ∈ { 1, . . . , n }

に対して,

π

1

(i)

π(j) = i

を満たす

j

とする.

定義1. OBDDとは,固定された順列

π

に従う分岐プロ グラムである.つまり,ラベル

x

iのノードからラベル

x

j

のノードに向かう枝があるならば,

π

1

(i) < π

1

(j)

を満 たす.

定義2.

k-IBDD

とは,以下のような分岐プログラムであ

る.

k

個のレイヤーに分割でき,

i

番目のレイヤーは順列

π

iに従うOBDDである.また,

i

番目のレイヤーから出

る枝は

j > i

番目のレイヤーのノードまたはシンクノード

に到達する.特に,すべての

π

iが等しいものを

k-OBDD

と呼ぶ.

1

の 分 岐 プ ロ グ ラ ム は

π = (1, 2, 3)

に 従 う 非 決 定 性

OBDD

で あ る .図

2

の 分 岐 プ ロ グ ラ ム は

π

1

= (1, 2, 3), π

2

= (2, 3, 1)

に従う

2-IBDD

である.

1 非決定性OBDD

2 2-IBDD

与えられた

k-IBDD B

に対して,

B

1

を出力する入力

a ∈ { 0, 1 }

nがあるかどうかを判定する問題を,

k-IBDD

に 対する充足可能性問題,または

k-IBDD SAT

と呼ぶ.本問 題は,

k = 1

の場合つまり

OBDD

が入力の場合ルートノー

ドから

1-sink

へのパスがあるかどうかは到達可能性判定を

行えばよく,

B

のサイズの線形時間で解くことができる.

k = 2

の場合,

NP

完全であることが知られている.

[2]

順 列

π = (π(1), π(2), . . . , π(n))

逆 順

π

R

= (π

R

(1), π

R

(2), . . . , π

R

(n)) = (π(n), π(n 1), . . . , π(1))

と す る .順 列

π

に お け る 長 さ

m

の 部 分 列

π

と は ,任 意 の

1 i

1

< i

2

< · · · < i

m

n

に 対 し ,

π

= (π

(1), π

(2), . . . , π

(m)) = (π(i

1

), π(i

2

), . . . , π(i

m

))

で あ る.

順列

π

の最長増加部分列

σ

incとは,

π

における部分列

π

のうち,すべての

1 i < j m

に対して

π

(i) < π

(j)

を満たすもので,

m

が最大のものである.

順列

π

の最長減少部分列

σ

decとは,

π

における部分列

π

のうち,すべての

1 i < j m

に対して

π

(i) > π

(j)

を満たすもので,

m

が最大のものである.

最長増加部分列と最長減少部分列について,以下の定理 が知られている.

定理 2

(The Erd˝ os-Szekeres theorem [4]).

長さ

n

の実数 列には,長さ

m

n

の最長増加部分列,または最長減少 部分列が存在する.

また,最長増加部分列と最長減少部分列は

O(n

2

)

時間で 求めることができる.

部分割り当てとは

a = (a

1

, . . . , a

n

) ∈ { 0, 1, ∗}

nで表し,

a

i

0

または

1

であることは,変数

x

iの値が

a

iに固定さ れることを意味する.部分割り当て

a ∈ { 0, 1, ∗}

nに対し て,

S(a) := { x

i

| α

i

̸ = ∗}

a

の台と呼ぶ.

B |

aを部分割 り当て

a

に対する分岐プログラム

B

の部分分岐プログラ ムとし,以下の操作により構成されるものとする.

(1)

ラベル

x

i

S(a)

を持つノードから出る枝でラベル

a

iを持つものをすべて削除する.

(2)

入次数が

0

でありルートノードでないノード

v

が存 在する限り以下の操作を行う.

・ノード

v

v

から出る枝をすべて削除する.

(3)

ラベル

x

i

S(a)

を持つルートノードでないノード

v

がある限り以下の操作を行う.

・集合

U

{ u | (u, v) E }

とする.また,ラベル

a

iを 持つ枝

(v, w)

が存在する.

・すべての

u U

について

(u, v)

と同じラベルを持つ枝

(u, w)

を追加し,

(u, v)

を削除する.

・枝

(v, w)

を削除する.

(4)

ルートノード

r

のラベル

x

i

x

i

S(a)

を満たすな らば,枝

(r, v)

を削除し,ノード

v

をルートノードとする.

3

は図

2

2-IBDD

B

とした時,部分割り当て

a = (1, , )

に対する

B |

aを表す.

3. OBDD の変換アルゴリズム

補題 3. 共通の順列

π

に従う

2

つの非決定性OBDD

B

1

B

2

2

値関数

f

1

f

2を表現する時,関数

f

1

f

2を表現

(3)

3 部分割り当てに対する2-IBDD

Algorithm 1

Conjunction(B

1

, B

2

)

Require:

f1を表現するπに従うOBDDB1= (G1(V1, E1), ϕV1, ϕE1), f2を表現するπに従うOBDDB2= (G2(V2, E2), ϕV2, ϕE2) Ensure:

f1∧f2を表現するπに従うOBDDB= (G(V, E), ϕV, ϕE) 1: V :=V1×V2

2: E:=

3: for allv:= (v1, v2)∈V do

4: ifϕV1(v1) =0 orϕV2(v2) =0 then 5: ϕV(v) =0

6: else ifϕV1(v1) =1 andϕV2(v2) =1 then 7: ϕV(v) =1

8: else

9: ϕV(v) =x,ただしϕV1(v1) =xi, ϕV2(v2) =xj に対し π−1(ℓ) = min−1(i), π−1(j)}を満たす.

10: end if 11: end for

12: for allv:= (v1, v2)∈V do

13: Ei:={(vi, ui)|(vi, ui)∈Ei},i∈ {1,2} 14: ifϕV1(v1) =ϕV2(v2)then

15: for alle1= (v1, u1)∈E1 do 16: for alle2= (v2, u2)∈E2 do 17: ifϕE1(e1) =ϕE2(e2)then 18: e:= ((v1, v2),(u1, u2))

19: E:=E∪ {e}

20: ϕE(e) =ϕE1(e1)

21: end if

22: end for

23: end for

24: else ifϕV(v) =ϕV2(v2)then 25: for alle= (v2, u2)∈E2 do 26: e:= ((v1, v2),(v1, u2)) 27: E:=E∪ {e} 28: ϕE(e) =ϕE2(e2) 29: end for

30: else

31: for alle= (v1, u1)∈E1 do 32: e:= ((v1, v2),(u1, v2)) 33: E:=E∪ {e} 34: ϕE(e) =ϕE1(e1) 35: end for

36: end if 37: end for

38: return B= (G(V, E), ϕV, ϕE)

する順列

π

に従うOBDD

B

を計算時間

O( | B | )

で構成す ることができる.また,

| B | ≤ 2 | B

1

| · | B

2

|

である.

Proof.

Brayant [3]

の手法を非決定性

OBDD

に対して拡 張した

Algorithm 1

により補題を満たす

OBDD

が構成さ れることを示す.

構成される

OBDD B

2

つの

OBDD B

1

B

2を同時に 模倣する.

r

1

, r

2

B

1

, B

2のルートノードとする.

B

は ノード

(r

1

, r

2

)

から計算を始める.

B

のノード

(v

1

, v

2

)

に いる時,

B

1のノード

v

1

B

2のノード

v

2にいることを意 味する.入力

a ∈ { 0, 1 }

nに対する

B

の計算は以下の通り である.

v

1のラベルを

x

i

v

2のラベルを

x

j とする.ま た,

v

1からラベル

a

iを持つ枝で遷移した先のノードを

u

1 とし,

v

2からラベル

a

jを持つ枝で遷移した先のノードを

u

2とする.

v

1

v

2のラベルが共に

x

iであれば,行

14–23

により

B

はラベル

a

iを持つ枝により

(v

1

, v

2

)

から

(u

1

, u

2

)

に遷移 する.

B

1

B

2において変数

x

iに対する計算を同時に行 うことに対応する.

v

1

v

2のラベルが異なる時,順列

π

において

π

−1

(i) < π

−1

(j)

であるとすると,行

24–36

によ りラベル

a

iを持つ枝により

(v

1

, v

2

)

から

(u

1

, v

2

)

に遷移す る.

B

1において変数

x

iに対する遷移を行い,

B

2

v

2に 留まることに対応する.また,

π

1

(i) > π

1

(j)

である場 合は,ラベル

a

jを持つ枝により

(v

1

, v

2

)

から

(v

1

, u

2

)

に遷 移する.

B

2において変数

x

jに対する遷移を行い,

B

1

v

1に留まることに対応する.以上から,

B

は順列

π

に従 うことがわかる.

4–5

により一方の

OBDD

0-sink

に到達する入力に 対して,

B

では

0-sink

に到達する.行

6–7

により両方の

OBDD

1-sink

に到達する入力に対して,

B

1-sink

に 到達する.よって,構成された

OBDD

f

1

f

2を表現 する.

B

において

B

1での遷移を表現する枝は高々

| B

1

| · | B

2

|

であり,同様に

B

2での遷移を表現する枝は高々

| B

1

| · | B

2

|

である.よって,

B

の枝数は高々

2 | B

1

| · | B

2

|

となる.

補題4.

B

を順列

π

に従うOBDDとする.この時,

O( | B | )

時間で順列

π

Rに従う非決定性OBDD

B

R を構成するこ とができる.また,

| B

R

| = O( | B | )

である.

Proof.

Algorithm 2

により補題の

B

Rが構成されること を示す.

まず,行

1–5

により

0-sink

に入る枝をすべて削除する.

6–19

ではどのノードに関しても,入る枝の始点のラベ ルが同じになるように与えられた

B

を変更している.ノー ド

v

に関して,ノード集合

U = { u | (u, v) E }

のラベル が異なる場合,

U

のノードのラベル

x

iのうち

π

−1

(i)

が最 大となるものを

x

とする.

r(u) ̸ = x

なるノード

u U

に 対して,以下の操作を行う.

(1) x

をラベルに持つノード

w

を追加する.

(2)

(u, v)

と同じラベルを持つ枝

(u, w)

を追加する.

(3)

ラベル

0, 1

を持つ枝

(w, v)

1

つずつ追加する.

(4)

Algorithm 2

Reverse(B)

Require: 順列πに従うOBDDB= (G(V, E), ϕV, ϕE) Ensure: B と 等 価 で 順 列 πR に 従 う 非 決 定 性 OBDD BR =

(GR(VR, ER), ϕVR, ϕER) {前処理}

1: for alle= (u, v)∈E do 2: ifϕV(v) =0 then 3: E:=E\{e}

4: end if 5: end for 6: for allv∈V do

7: L(∗,v):={i|xi=ϕV(u)and(u, v)∈E}

8: if|L(∗,v)|>1then

9: すべてのi ∈L(∗,v)についてπ−1(ℓ)≥π−1(i)を満たす L(∗,v)の要素を選択

10: for alle= (u, v)∈E do 11: ifϕ(u)̸=xthen

12: V :=V∪ {w}andϕV(w) =x

13: E:=E∪ {e1:= (w, v), e2:= (w, v), e:= (u, w)} 14: ϕE(e1) := 0, ϕE(e2) := 1, ϕE(e) :=ϕE(e) 15: E:=E\{e}

16: end if 17: end for 18: end if 19: end for

{GR(VR, ER)の構成} 20: VR:=V,ER:=E 21: for alle= (u, v)∈E do 22: ϕVR(v) :=ϕV(u) 23: end for

24: ϕVR(r) :=1,ただしrGのルートノード 25: for alle= (u, v)∈E do

26: eR:= (v, u) 27: ϕER(eR) =ϕE(e) 28: ER=ER∪ {eR}\{e} 29: end for

30: for allv∈VRdo

31: ifラベルb∈ {0,1}を持つ枝(v, w)を持たないthen 32: eR:= (v, t0)

33: ER=ER∪ {eR} 34: ϕER(eR) =b 35: end if 36: end for

37: return B= (GR(VR, ER), ϕVR, ϕER)

(4)

(u, v)

を削除する.

以上の操作により,元の

OBDD

と等価で,どのノードも 入る枝の始点のラベルがすべて同じである

OBDD

を構成 することができる.上の操作で新たに追加されるノードは 入次数が

1

であるから操作の対象になることはない.よっ て上の操作は高々

| E |

回行われ,サイズは高々

3

倍になる.

4

は図

1

OBDD

に対して以上の操作を行った後の状 態を表している.

20–36

では,以下の操作で

B

Rを構成する.

(1)

各ノードのラベルを,入る枝の始点のラベルに置き 換える.ルートノードは

1-sink

に書き換える.

(2)

枝を逆向きにする.

(3)

各 ノ ー ド

v

に 対 し て ラ ベ ル

b ∈ { 0, 1 }

を 持 つ 枝

(v, w), w V

が存在しない場合,ラベル

b

を持つ枝

(v, t

0

)

を追加する.

この操作により得られる

B

Rの各計算経路は,もとの

OBDD

の計算経路を逆順に辿ったものと対応する.ただ し,元の

OBDD

で同じラベルを持った枝が合流した場合,

B

Rでは非決定的遷移をすることに注意する.図

5

は図

1

OBDD

に対して出力される非決定性

OBDD

を表して いる.

以上から

B

と等価で

π

R に従う非決定

OBDD B

R が構 成され,

| B

R

| = O( | B | )

である.

4 前処理 5 BR

4. 充足可能性判定アルゴリズム

定数

k

に対して,

k-OBDD SAT

は多項式時間で解ける ことが知られている

[2]

,つまり,入力の

k-IBDD

におい て

π

1

= π

2

= · · · = π

kならば多項式時間で解くことがで きる.

まず,

k-OBDD

を含む特別な

k-IBDD SAT

が多項式時

間で解くことができることを示す.アルゴリズムを

Algo- rithm 3

に示す.

補題5.

k

を定数とする.順列

π

1

, π

2

, . . . , π

kが,すべての

i (2 i k)

について

π

i

= π

1,または

π

i

= π

R1 を満た すとする.順列

π

1

, π

2

, . . . , π

kに従う

n

変数,

m = O(n

c

)

c

は任意の定数)ノードの

k-IBDD G

に対して,

k-IBDD

SAT

n

の多項式時間で解くことができる.

Proof.

[2]

の定理

2

の証明を非決定性

k-OBDD

に拡張す る.

B

を補題の条件を満たす非決定性

k-OBDD

とし,各 レイヤーを

B

1

, B

2

, . . . , B

k,各レイヤーのノード集合を

V

1

, . . . , V

kとする.

1–16

ではすべての枝

(u, v)

に対して,ある

i

が存在し て,

u, v V

iまたは

u V

iかつ

v V

i+1を満たすように

B

を変更している.ノード

u V

iとノード

v V

jに対し て,

(u, v) E

かつ

j i > 1

である場合に以下の操作を 行う.

(1)

すべての

(i < ℓ < j)

に対して,ラベル

x

π(1)を持 つノード

w

B

に追加する.

(2)

(u, v)

と同じラベルを持つ枝

(u, w

i+1

)

を追加する.

(3)

すべての

(i < ℓ < j 1)

に対して,ラベル

0, 1

(5)

Algorithm 3

(π, π

R

)-k-IBDD SAT(B)

Require: 順列π1, . . . , πkに従うk-OBDDB= (G, ϕV, ϕE) ただしπi=π1またはπi=πR1 (2≤i≤k)

Ensure: Bが充足可能であれば“Yes”,そうでなければ“No” 1: for alle= (u, v)∈E do

2: ifj−i >1,ただしu∈Vi, v∈Vjthen 3: for=i+ 1, . . . , j1do

4: V:=V∪ {wi}andϕV(wi) :=xπ(1) 5: end for

6: E:=E∪ {e:= (u, wi+1)} 7: ϕE(wi) :=xπ(1)

8: for=i+ 1, . . . , j2do

9: E:=E∪ {e0:= (w, wℓ+1), e1:= (w, wℓ+1)} 10: ϕE(e0) := 0, ϕE(e0) := 1

11: end for

12: E:=E∪ {e0:= (wj−1, v), e1:= (wj−1, v)} 13: ϕE(e0) := 0, ϕE(e0) := 1

14: E:=E\{e} 15: end if 16: end for

17: for all(r2, . . . , rk)∈V2× · · · ×Vkdo 18: fori= 1, . . . , kdo

19: Vi:={v|v∈Viかつriから到達可能} ∪ {ti0, ti1} 20: ϕV

i(ti0) :=0, ϕV i(ti1) :=1 21: Ei:=

22: for alle= (u, v)∈E,ただしu∈Vido 23: ifv∈Vithen

24: Ei:=Ei∪ {e:= (u, v)} 25: else ifv=ri+1then 26: Ei:=Ei∪ {e:= (u, ti1)}

27: else

28: Ei:=Ei∪ {e:= (u, ti0)} 29: end if

30: ϕE

i(e) :=ϕE(e) 31: end for

32: Bi:= (Gi(Vi, Ei), ϕV i, ϕE

i) 33: end for

34: fori= 2, . . . , kdo 35: if πi=π1Rthen 36: Bi:=Reverse(Bi) 37: end if

38: B1 :=Conjunction(B1, Bi) 39: end for

40: if B1 がルートノードから1-sinkまでのパスを持つthen 41: return “Yes”

42: end if 43: end for 44: return “No”

持つ枝

(w

, w

ℓ+1

)

1

つずつ追加する.

(4)

ラベル

0, 1

を持つ枝

(w

j−1

, v)

1

つずつ追加する.

(5)

(u, v)

を削除する.

上の操作で新たに追加される枝は第

レイヤーのノード と第

+ 1

レイヤーのノード

(i ℓ < j)

を結ぶため操作の 対象とならない.よって上の操作は高々

| E |

回行われ,サ イズは高々

2k

倍になる.

B

に対して充足する入力の計算経路は,

V

2

, V

3

, . . . , V

kの あるノード

r

2

, . . . , r

kを経由して

1-sink

へ到達する.経由 ノードの可能性は高々

(2k | B | )

k1通りである.各可能性

に対して,そのノードを経由して

1-sink

に到達する入力が あるかを判定する.

k 1

個 の ノ ー ド

r

2

, . . . , r

k

(r

i

V

i

)

を 選 択 し ,

B

1

, B

2

, . . . , B

kをもとにして

k

個の

OBDD B

1

, B

2

, . . . , B

k を構成する.また,各

OBDD B

iは順列

π

iに従う.簡単 のため,

r

1

B

のルートノード,

r

k+1

1-sink

とする.

i (1 i k)

について

B

iから

r

iをソースノードとする

OBDD B

iを以下のように構成する.まず,

r

iから到達可 能である

V

iのノード集合およびシンクノード

t

i,0

t

i,1

B

iのノード集合

V

iとする.

B

iの枝集合は,すべての枝

e ∈ { (u, v) | (u, v) E

かつ

u V

i

}

に対して,以下の条 件を満たしラベル

ϕ

E

(u, v)

を持つ枝

e

で構成される.

v V

iならば,

e

:= (u, v)

v = r

i+1ならば,

e

:= (u, t

i,1

)

v ̸ = r

i+1ならば,

e

:= (u, t

i,0

)

k-IBDD B

r

2

, . . . , r

kを経由する充足入力を持つなら ばそのときに限り,

B

1

, B

2

, . . . , B

k は共通の充足入力を持 つ.補題

4

より,

π

i

= π

1Rに従う決定性

OBDD B

iと等価 な

π

Ri

= π

1に従う非決定性

OBDD B

iR が構成でき,こ れを

B

iと置き換える.以上から順列

π

1に従う

k

個の非 決定性

OBDD B

1

, B

2

, . . . , B

k を同時に充足する入力を持 つかどうかを判定すればよい.補題

3

k 1

回適用す ることにより,

k

個の

OBDD

が共通の充足入力を持つ時 に,またその時に限り

1

を出力する

OBDD B

O( | B |

k

)

時間で構成することができる.また,

| B

| = O( | B |

k

)

であ る.

OBDD B

の充足可能性判定は到達可能性判定により

O( | B

| ) = O( | B |

k

)

時間で解くことができる.

以上から,

B

に対する充足可能性問題は

O( | B |

2k−1

)

時 間で解くことができる.

定理

1

の前に,

2-IBDD SAT

2

n時間より超多項式的 に高速に解くことができることを示す.

2-IBDD SAT

を解 く決定性多項式領域アルゴリズムは

Algorithm 4

である.

Algorithm 4

2-IBDD SAT

Require: 順列π1, π2に従う2-IBDDB= (G, ϕV, ϕE) ただし,π1= (1, . . . , n)

Ensure: Bが充足可能であれば“Yes”,そうでなければ“No” 1: π2の最長増加部分列σinc,最長減少部分列σdecを計算 2: if inc| ≥ |σdec|then

3: σ=σinc

4: else 5: σ=σdec

6: end if

7: Y :={σ(i)|1≤i≤ |σ|}

8: for alla∈ {0,1,∗}n,ただしS(a) =X\Y do 9: if(σ, σR)-k-IBDD SAT(B|a) = “Yes”then 10: return “Yes”

11: end if 12: end for 13: return “No”

(6)

定理 6.

n

変数,

m = O(n

c

)

c

は任意の定数)ノードの

2-IBDD SAT

に対して,計算時間

poly(n) · 2

n−nで解く決 定性多項式領域アルゴリズムが存在する.ただし,

poly(n)

n

の多項式を表す.

Proof. 入力の

2-IBDD

B

とし,順列

π

1

, π

2に従うとす る.まず,一般性を失うことなく

π

1

= (1, 2, . . . , n)

として よい.以下ではアルゴリズムの概要を述べる.

π

2の最長増加列を

σ

inc,最長減少列を

σ

decとする.

こ の う ち 長 い ほ う を

σ

と し ,そ の 長 さ を

| σ |

と す る .

Y := { σ(i) | 1 i ≤ | σ |}

とする.変数集合

X \ Y

を台 としたすべての部分割り当てを行う.各部分割り当て

a

に ついて,

B |

aが充足可能かどうかを判定する.

B |

aが充足 可能となる部分割り当て

a

が存在すれば,

B

も充足可能で ある.また,すべての部分割り当てにおいて

B |

aが充足不 可能であれば

B

も充足不可能である.

σ = σ

inc とすると

B |

aは順列

σ

に従う

2-OBDD

とな り,一方,

σ = σ

decとすると順列

σ

R

, σ

に従う

2-IBDD

と なる.補題

5

および

[2]

によりいかなる場合でも,

B |

aに 対する充足可能性問題は多項式時間で解ける.定理

2

より

| Y | ≥

n

,つまり

| X \ Y | ≤ n

n

となり,全体の計算時 間は高々

poly(n) · 2

n−nとなる.

最後に,主定理の

k-IBDD SAT

を決定性多項式領域で 解くアルゴリズムを

Algorithm 5

に示す.

Algorithm 5

k-IBDD SAT

Require: 順列π1, . . . , πkに従うk-IBDDB= (G, ϕV, ϕE) ただし,π1= (1, . . . , n)

Ensure: Bが充足可能であれば“Yes”,そうでなければ“No” 1: σ1:=π1

2: fori= 2, . . . , kdo

3: πi:= (πi(j1), πi(j2), . . . , πi(ji1|))

ただしj1< j2<· · ·< ji1|かつ∀p,∃q, πi(p) =σi−1(q) 4: πiの最長増加部分列σinc,最長減少部分列σdecを計算 5: ifinc| ≥ |σdec|then

6: σi:=σinc

7: else 8: σi:=σdec 9: end if 10: end for

11: Y :=k(i)|1≤i≤ |σk|}

12: for alla∈ {0,1,∗}n,ただしS(a) =X\Y do 13: ifk, σkR)-k-IBDD SAT(B|a) = “Yes”then 14: return “Yes”

15: end if 16: end for 17: return “No”

定理7

(

定理

1

の再掲

). n

変数,

m = O(n

c

) c

は任意の定数)

ノードの

k-IBDD SAT

に対して,計算時間

poly(n) · 2

nnα で解く決定性多項式領域アルゴリズムが存在する.ただ し,

α =

2k11 であり,

poly(n)

n

の多項式を表す.

Proof. 入力の

k-IBDD

B

とし,順列

π

1

, π

2

, . . . , π

k

従うとする.一般性を失うことなく

π

1

= (1, 2, . . . , n)

とし てよい.以下ではアルゴリズムの概要を述べる.

まず,

π

2の最長増加部分列と最長減少部分列を求め,

長いほうを

σ

2とし,その長さを

| σ

2

|

とする.定理

2

より

| σ

2

| ≥

n

である.行

3

により

π

3から

σ

2の要素だけを抽 出した部分列

π

3 を得る.次に,

π

3の最長増加部分列と最 長減少部分列を求め,長いほうを

σ

3とし,その長さを

| σ

3

|

とする.

σ

3

σ

2の要素からなる増加列または減少列であ る.

σ

2自身も増加列または減少列であることから,

σ

3

σ

2または

σ

R2 の部分列である.よって,

π

1

, π

2

, π

3

σ

3ま たは

σ

3Rを部分列として持つ.また,

| π

3

| = | σ

2

|

であるこ とに注意すると,定理

2

より

| σ

3

| ≥ n

1/4である.以下同 様に,

2 i k

に対して,

π

iから

σ

i−1の要素だけを抽出 した部分列を

π

iとする.

π

iの最長増加部分列,最長減少 部分列のうち長いほうを

σ

iとし,その長さを

| σ

i

|

とする.

π

1

, π

2

, . . . , π

i

σ

iまたは

σ

iRを部分列として持ち,帰納的 に

| σ

i

| ≥ n

1/2i−1となる.また,各

σ

iは多項式時間で求め ることができる.

Y := { σ

k

(i) | 1 i ≤ | σ

k

|}

とする.定理

6

の証明と同 様に,変数集合

X \ Y

を台としたすべての部分割り当てを 行う.各部分割り当て

a

について,

B |

aが充足可能かどう かを判定する.

π

1

, π

2

, . . . , π

k

σ

kまたは

σ

Rk を部分列と して持つことから,各割り当てに対して

k-IBDD B |

aは,

各レイヤーが順列

σ

kまたは

σ

Rk に従う

k-IBDD

となる.

補題

5

より

B |

aの充足可能性判定は多項式時間でできる.

α =

2k−11 とすると,

| X \ Y | = n − | σ

k

| ≤ n n

αとな る.以上から,全体の計算時間は高々

poly(n) · 2

n−nαとな る.

謝辞 本研究は

MEXT

科研費

24106003

JSPS

科研費

26730007

および

JST ERATO

河原林巨大グラフプロジェ クトの助成を受けたものです。

参考文献

[1] R. Chen, V. Kabanets, A. Kolokolova, R. Shaltiel and D. Zuckerman. Mining Circuit Lower Bound Proofs for Meta-Algorithms. In Proceedings of the 29th Annual IEEE Conference on Computational Complexity (CCC), 2014.

[2] B. Bollig, M. Sauerhoff, D Sieling, I Wegener. On The Power Of Different Types Of Restricted Branching Pro- grams. Electronic Colloquium on Computational Com- plexity (ECCC), vol.1, no.26, 1994.

[3] R. E. Bryant. Graph-based algorithm for Boolean func- tion manipulation. IEEE Trans. on Computers 35, pp.677–691, 1986.

[4] P. Erdos, G. Szekeres. A combinatorial problem in ge- ometry. Compositio Mathematica, 2, pp.463–470, 1935.

[5] J. Jain, J. Bitner, M. S. Abadir, J. A. Abraham and D. S. Fussell. Indexed BDDs : Algorithmic Advances in Techniques to Represent and Verify Boolean Functions.

IEEE Transaction on Computers, vol. 46(11), pp.1230–

1245, 1997.

参照

関連したドキュメント

of IEEE 51st Annual Symposium on Foundations of Computer Science (FOCS 2010), pp..

Chaudhuri, “An EOQ model with ramp type demand rate, time dependent deterioration rate, unit production cost and shortages,” European Journal of Operational Research, vol..

By virtue of Theorems 4.10 and 5.1, we see under the conditions of Theorem 6.1 that the initial value problem (1.4) and the Volterra integral equation (1.2) are equivalent in the

Analogous results are also obtained for the class of functions f ∈ T and k-uniformly convex and starlike with respect to conjugate points.. The class is

The configurations of points according to the lattice points method has more symmetry than that of the polar coordinates method, however, the latter generally yields lower values for

iv Relation 2.13 shows that to lowest order in the perturbation, the group of energy basis matrix elements of any observable A corresponding to a fixed energy difference E m − E n

The principal theorem of Brink and Howlett, and in my opinion one of the most remarkable facts about general Coxeter groups, is that the number of minimal roots is finite.. That

Keywords Colimit, formality, Davis-Januszkiewicz space, homotopy co- limit, model category, rationalisation, Stanley-Reisner algebra..