制約充足問題 2003/04/28 1G00P139-1 若槻聡一郎 2.5 記号を用いた制約充足問題 クロスワードパズル 性質に関する推論 ・時間的なもの ・空間的なもの 多面体の分析 などに用いることができる 例2.8 クロスワードパズル 1~8を変数とみなす 空欄に以下の単語が入る HOSES,LASER,SAILS, SHEET,STEER HEEL,HIKE,KEEL,KNOT, LINE AFT,ALE,EEL,LEE,TIE 制約充足問題としての解法 変数はそれぞれ文字数が決まっている(1, 2,3,8は5文字、4,5は4文字、6,7は3 文字) 2つの単語が交差するところは同じ文字で なくてはならない(1の3文字目と2の1文字 目は同じ文字、など) 制約充足問題としての解法(2) 以上のことを考えながら、制約を課していく。 例えば1と2の間には次のような制約ができる。 C1,2 := {(HOSES,SAILS),(HOSES,SHEET), (HOSES,STEER),(LASER,SAILS), (LASER,SHEET),(LASER,STEER)} 制約充足問題としての解法(3) これらの制約を考えていくと、以下のような 解が得られる。 性質に関する推論 ある出来事が起こった正確な時間、物体 の位置などに関する推論を行うとき、それ らを具体的に数値化してしまうと考えられ る選択肢が無限になってしまう →それらを抽象的な記号として考えることで 有限個の選択肢で考えることができる! 例2.9 時間に関する推論 ・あるミーティングに関する問題 ・おのおのの人物はある連続した期間ミーティングに 出席していた Jonesがいる間にミーティングが始まった Whiteがいる間にミーティングが終わった Whiteはミーティングが始まった後に到着した SmithはJonesがいなくなった後に到着した BrownとWhiteはSmithがいるときに会話をした →このときJonesとWhiteは話すことは可能だったか? 問題の解釈 ミーティングに参加している間の行動につ いてはいろいろ考えられる(誰かと話す、 昼休みを取る、電話を受ける、などなど) →これらの行動をイベント(event)と総称す る これらのイベントは切れ目のない有限の時 間とする 問題の解釈(一例) 問題の条件から、以下の解釈が考えられる (実線はその人が出席していた時間帯を表 す) 時間の記号表現について すべての人の出席時間帯は以下のDの形 で表される 以下では、Aがいた時間帯を(abegin , aend)、B がいた時間帯を( bbegin < bend )とおく 二つの時間の関係について 二人が出席していた時間の関係としては以 下にあげる13個の可能性が考えられる ・before, after ・meets, met-by ・overlaps, overlapped-by ・starts, started-by ・during, contains ・finishes, finished-by ・equals A before B, B after A ・aend < bbegin A meets B, B met-by A ・aend = bbegin A overlaps B, B overlapped-by A ・ abegin < bbegin ・ aend < bbegin ・ aend < bend A starts B, B started-by A ・ abegin = bbegin ・ aend < bend A during B, B contains A ・ bbegin < abegin ・ aend < bend A finishes B, B finished-by A ・ bbegin < abegin ・ aend = bend A equals B ・ abegin = bbegin ・ aend = bend TEMP, REAL-OVERLAP 前述の2つの時間の関係の全体集合を TEMPとする AとBが時間を「共有」していた、ということ のみを示す制約をREAL-OVERLAPとする。 (これは、before、after、meets、met-by以 外の9つの制約の結合として得られる) ・ abegin < bend ・ bbegin < aend 問題の解法(その1) 1個1個のイベントを変数(variable)とする イベントと変数名は以下のようになる イベント ミーティングをしていた期間 Jonesがいた期間 Brownがいた期間 Smithがいた期間 Whiteがいた期間 変数名 M J B S W この変数を用いて適当な制約を定義する 制約(ミーティング×人物) 問題文からミーティングと人物に関する3つの 制約がわかる ①(〔overlaps〕∪〔contains〕∪〔finished-by〕)(J, M) ②〔overlaps〕(M, W) ③〔REAL-OVERLAP〕(M, S) ※Brownについては問題文からミーティングに いたかどうかわからないので言及しない 制約からわかること ①Jbegin < Mbegin , Mbegin < Jend ②Wbegin < Mend , Mend < Wend , Mbegin < Wbegin ③ Mbegin < Send , Sbegin < Mend (MとSはある長さの時間を「共有」してい た) 制約(人物×人物) 同じく人物間の制約もわかる ①〔before〕(J, S) →Jend < Sbegin ②〔REAL-OVERLAP〕(B, S) → Bbegin < Send , Sbegin < Bend ③〔REAL-OVERLAP〕(B, W) → Bbegin < Wend , Wbegin < Bend ④〔REAL-OVERLAP〕(S, W) → Sbegin < Wend , Wbegin < Send 問題の解決 質問は、「 JonesとWhiteは話すことは可能 だったか? 」 →これは、〔REAL-OVERLAP〕(J,W)をみたす ような解が存在するか?ということと同じ この問題では、 Jbegin < Wend は常に成り立 ち、 Wbegin < Jend が成り立つ場合も考えられ るので、この質問に関する回答はYESであ る 回答例 M J B S W 問題の解法(その2) この解き方では、変数は、3つのイベントか ら導かれる(3つのイベントA,B,Cがあり、A とBの関係、BとCの関係は既知とする。ここ からAとCの関係が導かれるというもの) 例えば〔overlap〕(A,B)、〔before〕(B,C)の 場合は〔before〕(A,C)となる これを(overlap, before, before)のように 書く 問題の解法(その2) このような3つの時間関係の集合はすべて TEMP×TEMP×TEMP(以下T3と表記)の 部分集合(subset)として表される T3は409個の要素からなる 時間関係における選言命題 選言命題(before∨meetsなど)によって、 状況を部分的に知ることができる。 時間関係における選言命題では、AとBの 間の関係がわかっていれば、BとAの関係 も一意に決まる(例えばAとBの関係が before∨meetsならばBとAの関係は after∨met-byとなる) 制約充足問題の定義(1) n個(n>3)のイベントがあるとき、2個のイ ベントの選び方はnC2通り考えられる イベントi, j (i, j ∈[1…n], i<j)間に実際に 成り立つ時間関係をxi,j、成り立ち得る時間 関係の集合をDi,jとおく(このときxi,j∈Di,j,、 Di,j⊆TEMP) 制約充足問題の定義(2) 同様に、3つのイベントの選び方はnC3通り 考えられる イベントi, j, k(i, j, k ∈[1…n], i<j<k)間に できる制約をCi,j,kとおくと Ci,j,k := T3∩(Di,j× Dj,k×Di,k) 問題から読み取れる制約 この問題ではJ,M,B,S,Wの5つのイベント があるので、10種類のxが存在する 問題文から以下のことが読み取れる xJ,M∈{overlaps, contains, finished-by} xM,W∈{overlaps} xJ,M∈ REAL-OVERLAP 問題から読み取れる制約(2) xJ,S∈{before} xB,S∈ REAL-OVERLAP xB,W∈ REAL-OVERLAP xS,W∈ REAL-OVERLAP 残りのxはTEMP 問題の解決 問題で聞いているのはxJ,W∈ REAL-OVERLAP となるようなxJ,Wが存在するかということ →これは存在する( ∵xJ,W∈ TEMP) 具体例はCJ,M,W := (contains, overlaps,overlaps)など(∵overlaps∈REALOVERLAP) 例2.10 空間に関する推論 ・2軒の庭付きの家と道に関する 問題 ・2軒の家が道路によってつな がっている ・1つ目の家は庭に囲まれている か庭の境界に接している ・2つ目の家は庭に囲まれている ・このとき2つ目の家の庭と道路 の関係はどう推論できるか? 2つの物の関係について 以下の8つが考えられる disjoint, meet, equal, covers, coveredby, contains, inside, overlap RCC8(Region Connection Calculus with 8 relations) 2つの物の関係の全体集合 ここでは3つの物の関係を考える これはRCC8× RCC8× RCC8(以下S3と 表記)の部分集合(subset) RCC8の要素は193個 制約充足問題の定義 問題に出てくる「物体」をH1(1つ目の家)、 G1(1つ目の家の庭)、H2(2つ目の家)、 G2(2つ目の家の庭)、R(道路)とおく 物体A, B間に実際に成り立つ位置関係を xA,B、成り立ち得る位置関係の集合をDA,Bと おく(このときxA,B∈DA,B,、DA,B⊆RCC8) 制約充足問題の定義(2) 同様に、物体A, B, C間にできる制約をCA,B,C とおくと CA,B,C := S3∩(DA,B× DB,C×DA,C) 問題から読み取れる制約 xH1,G1∈{inside, coveredby} xH2,G2∈{inside} xH1,H2∈{disjoint} xH1,R∈{meet} xH2,R∈{meet} 問題から読み取れる制約(2) xG1,G2∈{disjoint, meet} xH1,G2∈{disjoint, meet} xG1,H2∈{disjoint, meet} xG1,R∈ RCC8 xG2,R∈ RCC8 問題の解法 この場合はG2とRの関係なので、G2とH2 とRについて考えれば十分である(H1とG1 はあまりG2とRの関係に影響してこない) CG2,H2,R := S3∩(contain×meet ×DG2,R) なので、G2とRの関係xG2,Rとして考えら れるのは、 xG2,R∈{contains, covers, overlap}である 例2.11 多面体の分析 以下の直線によって作られた2つの物体 がどんな形の立体に対応するか 接点(junction) 接点には4種類あり、各々の接点は2つか 3つの辺を持っている 左からL字型、fork型、T字型、arrow型 4つのラベル 辺の性質を明確にするため、+、-、→、← の4つのラベルを使う +(convex)は2つの見える面の間を移動する ときに270°かかるもの -(concave)は2つの見える面の間を移動す るときに90°かかるもの 矢印(boundary)は一方の面が隠れていると きに書く ラベルの使用例 矢印は隠れてな い方の面が矢印 の進行方向右側 に来るように書い ていく 解釈の仕方 解釈の仕方は1つに限定する必要はない (Fig2.13の場合辺ACとAEは、立体が「浮い ている」と考えれば→、「壁にかかってい る」と考えれば-と解釈できる) 解釈の仕方(2) 辺ABは+にも-にもなりうる (立方体と考えればABは明らかに+だが、 面ABCDを底面とする箱の一部(AEとDGに つながる面が欠落したもの)と考えれば- とみなせる) ただし、後者の考え方のときは適応する立 体がない(後者の解釈の仕方だとC,E,Gに つながるfork型の接点が欠落している) 接点とラベルの関係 Huffmanさんが発 見した、立体が存 在しうる状況にお いての接点とラベ ルの関係 →これらを使うと制約 充足問題の観点か ら議論できる! 問題の解法(1) 接点を変数、辺を制約とする 2つの接点に関する制約を変換テーブルを 用いて作っていく 例えば、接点AとBは辺ABを共有している ので、クロスワードのときと同じように、共 有する部分は同じ物にしなければならない だが、クロスワードとは少し勝手が異なる (+や-の場合はよいが、矢印を使うときは ABとBA(接点の場所)で逆になる) 変換テーブル(L字型) L :={(→,←), (←,→), (+,→), (←,+), (-,←), (→,-)} 変換テーブル(fork型) fork :={(+,+,+), (-,-,-), (→,←,-), (-,→,←), (←,-,→)} 変換テーブル(T字型) T :={(→, ←,←), (→,←,→), (→,←,+), (→,←,-)} 変換テーブル(arrow型) arrow :={(←,→,+), (+,+,-), (-,-,+)} 変換テーブルの使用例 Fig2.13に関してAとEに対する制約CA,Eを決 める 接点Aは第2要素がAE、接点Eは第2要素 がEAとなっているのでそれぞれの第2要素 が同じ物になるような制約がかかる CA,E :={((←,→,+), (→,←)), ((←,→,+), (-,←)), ((+,+,-), (←,+)), ((-,-,+), (→,-))} 問題の解法(1) 前述のように2つの接点に関する制約を定 めていく 2つの接点に関する制約=1つの辺の制 約なので、制約は辺の数分だけできる この方法でやっていけばうまく立体の形を 定めていける 問題の解法(2) 辺を変数とする(とりうる値は+、-、→、 ←) 今度は接点を制約とする 例えばFig.2.13なら以下の七つの制約が できる arrow(AC, AE, AB), fork(BA, BF, BD), L(CA, CD), arrow(DG, DC, DB), L(EF, EA), arrow(FE, FG, FB), L(GD, GF) 問題の解法(2) 1つ目の解き方と同様、この解き方も辺の 向きを気にしなくてはならない よって、辺にも向きを考えるための以下の ような制約をつける必要がある edge := {(+,+),(-,-),(→,←),(←,→)} 問題の解法(2) 辺の制約はFig2.13において具体的には 以下の9つ edge(AB, BA), edge(AC, CA), edge(CD, DC), edge(BD, DB), edge(AE, EA), edge(EF, FE), edge(BF, FB), edge(FG, GF), edge(DG, GD) 問題の解法(2) あとはこの2要素(edge、L)ないしは3要素 (fork、T、arrow)の制約を組み合わせて 解いていけばよい。 解答 2.6 制約最適化問題 関数objと制約から最適解を見つけ出す 一般性を保持するために我々は最適解を 最大解と意味付けする 制約最適化問題の扱う領域は広い!(こ の問題に関する本もたくさん書かれてい る) よってここでは3つの例に限定する 例2.12 ナップザック問題 n個の物があって、それぞれが重さと価値 をもっている ナップザックはある一定の容量が決まって いる 価値が一番高くなるような物の組み合わせ はどれかを求める 解法 n個の物の重さをそれぞれa1,…,an、価値を b1,… , bn、ナップザックの容量をvとする さらに、n個の値x1 ,…, xn∈{0,1}を定義す る 解法(2) ナップザックの容量から、以下の制約が設けられ る 最適解は、上記の制約の元で以下の式 が最大値をとるようなものである よってこの式が関数objである 例2.13 コイン問題 1,2,5,10,20,50ユーロセントのコインがあ るとき、1ユーロ未満の料金を払うのにど のように払えばコインの枚数が一番少なく なるか? 解法 99セントを払うときのコインの枚数をそれ ぞれx1, x2, x5, x10, x20, x50、とする( ただし x1 ∈[0…99], x2 ∈[0…49], x5 ∈[0…19], x10 ∈[0…9], x20 ∈[0…4], x50 ∈[0…1] ) 解法(2) 合計を表す文字i∈[1…99]、iユーロを払う ときに使ったコインの枚数を表す文字i1, i2, i5, i10, i20, i50、を次のような制約の元で定義 する ∃i1 ∈[0… x1 ], ∃i2 ∈[0… x2 ], ∃i5 ∈[0… x5 ], ∃i10 ∈[0… x10 ], ∃i20 ∈[0… x20 ], ∃i50 ∈[0… x50 ]に対して i1+ i2+ i5+ i10+ i20+ i50 = I 解法(3) このとき、全部で99個(iの種類分)の制約 ができる 解はx1+ x2+ x5+ x10+ x20+ x50の最小値と して得られる しかしここでは最大値問題にするため、関 数objとして以下の式を用いる -(x1+ x2+ x5+ x10+ x20+ x50) この解法の欠点 この解法には制約の中に変数が存在する という欠点がある このような問題は解くのが難しい →異なる表現を用いて制約を単純化! 新たな解法 今まで使っていたx1, x2, x5, x10, x20, x50, に加えて を用いる ( i∈[1…99] ) そうすると制約は次の式で書き換えられる ただし ( i∈[1…99] , j∈{1,2,5,10,20,50} ) 新たな解法(2) このようにすると最適解を求めやすい ちなみに関数objは前述の物と同じ物を用 いる 例2.14 ゴロム定規 要素数m個のゴロム定規とは、m個の中 のどの2つの間の距離を測ってもすべて異 なるような要素の列のことを言う 例えば0,1,4,9,11などは要素数5個のゴロ ム定規である ・1個とびの要素の差:1,3,5,2 ・2個とびの要素の差:4,8,7 ・3個とびの要素の差:9,10 ・4個とびの要素の差:11 m要素ゴロム定規の解法 1≦i<j≦mである自然数i,j different((i, j), (k, l))⇔((i≠j)∪(k≠l)) disjoint((i, j), (k, l))⇔((i≠j)∩(k≠l)) ゴロム定規の要素をそれぞれx1, x2,…, xm と定める m要素ゴロム定規の解法(2) このとき以下の制約が生じる ・xi,< xi+1 ( i∈[1,…,m-1]) ・xj- xi ≠xl – xk (different((i, j), (k, l))) このとき関数objは-xm m要素ゴロム定規の解法(3) xi ≠xk (i,k<j)のときxj- xi ≠xl – xk xj ≠xl (i<j,l)のときxj- xi ≠xl – xiより ・xj- xi ≠xl – xk (disjoint((i, j), (k, l))) と書き換えられる m要素ゴロム定規の解法(4) zi,j = xj- xi とおくと zi,j ≠zk,l (different((i, j), (k, l))) という正の整数のみの制約というふうにも 考えられる ゴロム定規について(豆知識) ゴロム定規は符号理論、X線結晶学、回路 設計、電波天文学などの分野に応用され ている 今まで発見された最長のゴロム定規は21 要素で長さは333
© Copyright 2024 ExpyDoc