制約充足問題
This presentation is the property of its rightful owner.
Sponsored Links
1 / 78

制約充足問題 PowerPoint PPT Presentation


  • 48 Views
  • Uploaded on
  • Presentation posted in: General

制約充足問題. 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. 制約充足問題としての解法.

Download Presentation

制約充足問題

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


5151038

制約充足問題

2003/04/28

1G00P139-1 若槻聡一郎


5151038

2.5 記号を用いた制約充足問題

  • クロスワードパズル

  • 性質に関する推論

      ・時間的なもの

      ・空間的なもの

  • 多面体の分析

    などに用いることができる


5151038

例2.8 クロスワードパズル

1~8を変数とみなす

空欄に以下の単語が入る

  • HOSES,LASER,SAILS,

    SHEET,STEER

  • HEEL,HIKE,KEEL,KNOT,

    LINE

  • AFT,ALE,EEL,LEE,TIE


5151038

制約充足問題としての解法

  • 変数はそれぞれ文字数が決まっている(1,2,3,8は5文字、4,5は4文字、6,7は3文字)

  • 2つの単語が交差するところは同じ文字でなくてはならない(1の3文字目と2の1文字目は同じ文字、など)


5151038

制約充足問題としての解法(2)

以上のことを考えながら、制約を課していく。

例えば1と2の間には次のような制約ができる。

C1,2 := {(HOSES,SAILS),(HOSES,SHEET),

(HOSES,STEER),(LASER,SAILS),

(LASER,SHEET),(LASER,STEER)}


5151038

制約充足問題としての解法(3)

  これらの制約を考えていくと、以下のような解が得られる。


5151038

性質に関する推論

  • ある出来事が起こった正確な時間、物体の位置などに関する推論を行うとき、それらを具体的に数値化してしまうと考えられる選択肢が無限になってしまう

    →それらを抽象的な記号として考えることで有限個の選択肢で考えることができる!


5151038

例2.9 時間に関する推論

・あるミーティングに関する問題

・おのおのの人物はある連続した期間ミーティングに出席していた

  • Jonesがいる間にミーティングが始まった

  • Whiteがいる間にミーティングが終わった

  • Whiteはミーティングが始まった後に到着した

  • SmithはJonesがいなくなった後に到着した

  • BrownとWhiteはSmithがいるときに会話をした

    →このときJonesとWhiteは話すことは可能だったか?


5151038

問題の解釈

  • ミーティングに参加している間の行動についてはいろいろ考えられる(誰かと話す、昼休みを取る、電話を受ける、などなど)

    →これらの行動をイベント(event)と総称する

  • これらのイベントは切れ目のない有限の時間とする


5151038

問題の解釈(一例)

  • 問題の条件から、以下の解釈が考えられる(実線はその人が出席していた時間帯を表す)


5151038

時間の記号表現について

  • すべての人の出席時間帯は以下のDの形で表される

    以下では、Aがいた時間帯を(abegin , aend)、Bがいた時間帯を( bbegin < bend )とおく


5151038

二つの時間の関係について

  • 二人が出席していた時間の関係としては以下にあげる13個の可能性が考えられる

    ・before, after

    ・meets, met-by

    ・overlaps, overlapped-by

    ・starts, started-by

    ・during, contains

    ・finishes, finished-by

    ・equals


A before b b after a

A before B, B after A

・aend < bbegin


A meets b b met by a

A meets B, B met-by A

・aend = bbegin


A overlaps b b overlapped by a

A overlaps B, B overlapped-by A

・ abegin < bbegin

・ aend < bbegin

・ aend < bend


A starts b b started by a

A starts B, B started-by A

・ abegin = bbegin

・ aend < bend


A during b b contains a

A during B, B contains A

・ bbegin < abegin

・ aend < bend


A finishes b b finished by a

A finishes B, B finished-by A

・ bbegin < abegin

・ aend = bend


A equals b

A equals B

・ abegin = bbegin

・ aend = bend


Temp real overlap

TEMP, REAL-OVERLAP

  • 前述の2つの時間の関係の全体集合をTEMPとする

  • AとBが時間を「共有」していた、ということのみを示す制約をREAL-OVERLAPとする。(これは、before、after、meets、met-by以外の9つの制約の結合として得られる)

    ・ abegin < bend

    ・ bbegin<aend


5151038

問題の解法(その1)

  • 1個1個のイベントを変数(variable)とする

  • イベントと変数名は以下のようになる

  • この変数を用いて適当な制約を定義する


5151038

制約(ミーティング×人物)

  • 問題文からミーティングと人物に関する3つの制約がわかる

    ①(〔overlaps〕∪〔contains〕∪〔finished-by〕)(J, M)

    ②〔overlaps〕(M, W)

    ③〔REAL-OVERLAP〕(M, S)

    ※Brownについては問題文からミーティングにいたかどうかわからないので言及しない


5151038

制約からわかること

①Jbegin < Mbegin ,Mbegin < Jend

②Wbegin < Mend ,Mend < Wend ,Mbegin < Wbegin

③ Mbegin < Send ,Sbegin < Mend

 (MとSはある長さの時間を「共有」していた)


5151038

制約(人物×人物)

  • 同じく人物間の制約もわかる

    ①〔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


5151038

問題の解決

  • 質問は、「 JonesとWhiteは話すことは可能だったか? 」

    →これは、〔REAL-OVERLAP〕(J,W)をみたすような解が存在するか?ということと同じ

  • この問題では、 Jbegin < Wend は常に成り立ち、 Wbegin < Jend が成り立つ場合も考えられるので、この質問に関する回答はYESである


5151038

回答例


5151038

問題の解法(その2)

  • この解き方では、変数は、3つのイベントから導かれる(3つのイベントA,B,Cがあり、AとBの関係、BとCの関係は既知とする。ここからAとCの関係が導かれるというもの)

  • 例えば〔overlap〕(A,B)、〔before〕(B,C)の場合は〔before〕(A,C)となる

  • これを(overlap, before, before)のように書く


5151038

問題の解法(その2)

  • このような3つの時間関係の集合はすべてTEMP×TEMP×TEMP(以下T3と表記)の部分集合(subset)として表される

  • T3は409個の要素からなる


5151038

時間関係における選言命題

  • 選言命題(before∨meetsなど)によって、状況を部分的に知ることができる。

  • 時間関係における選言命題では、AとBの間の関係がわかっていれば、BとAの関係も一意に決まる(例えばAとBの関係がbefore∨meetsならばBとAの関係はafter∨met-byとなる)


5151038

制約充足問題の定義(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)


5151038

制約充足問題の定義(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)


5151038

問題から読み取れる制約

  • この問題ではJ,M,B,S,Wの5つのイベントがあるので、10種類のxが存在する

    問題文から以下のことが読み取れる

  • xJ,M∈{overlaps, contains, finished-by}

  • xM,W∈{overlaps}

  • xJ,M∈ REAL-OVERLAP


5151038

問題から読み取れる制約(2)

  • xJ,S∈{before}

  • xB,S∈ REAL-OVERLAP

  • xB,W∈ REAL-OVERLAP

  • xS,W∈ REAL-OVERLAP

  • 残りのxはTEMP


5151038

問題の解決

  • 問題で聞いているのはxJ,W∈ REAL-OVERLAPとなるようなxJ,Wが存在するかということ

  • →これは存在する( ∵xJ,W∈ TEMP)

  • 具体例はCJ,M,W := (contains, overlaps,overlaps)など(∵overlaps∈REAL-OVERLAP)


5151038

例2.10 空間に関する推論

・2軒の庭付きの家と道に関する問題

・2軒の家が道路によってつながっている

・1つ目の家は庭に囲まれているか庭の境界に接している

・2つ目の家は庭に囲まれている

・このとき2つ目の家の庭と道路の関係はどう推論できるか?


5151038

2つの物の関係について

  • 以下の8つが考えられる

    disjoint, meet, equal, covers, coveredby, contains, inside, overlap


Rcc8 region connection calculus with 8 relations

RCC8(Region Connection Calculus with 8 relations)

  • 2つの物の関係の全体集合

  • ここでは3つの物の関係を考える

  • これはRCC8× RCC8× RCC8(以下S3と表記)の部分集合(subset)

  • RCC8の要素は193個


5151038

制約充足問題の定義

  • 問題に出てくる「物体」をH1(1つ目の家)、G1(1つ目の家の庭)、H2(2つ目の家)、G2(2つ目の家の庭)、R(道路)とおく

  • 物体A, B間に実際に成り立つ位置関係をxA,B、成り立ち得る位置関係の集合をDA,Bとおく(このときxA,B∈DA,B,、DA,B⊆RCC8)


5151038

制約充足問題の定義(2)

  • 同様に、物体A, B, C間にできる制約をCA,B,Cとおくと

    CA,B,C:= S3∩(DA,B× DB,C×DA,C)


5151038

問題から読み取れる制約

  • xH1,G1∈{inside, coveredby}

  • xH2,G2∈{inside}

  • xH1,H2∈{disjoint}

  • xH1,R∈{meet}

  • xH2,R∈{meet}


5151038

問題から読み取れる制約(2)

  • xG1,G2∈{disjoint, meet}

  • xH1,G2∈{disjoint, meet}

  • xG1,H2∈{disjoint, meet}

  • xG1,R∈ RCC8

  • xG2,R∈ RCC8


5151038

問題の解法

  • この場合は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}である


5151038

例2.11 多面体の分析

  • 以下の直線によって作られた2つの物体がどんな形の立体に対応するか


Junction

接点(junction)

  • 接点には4種類あり、各々の接点は2つか3つの辺を持っている

  • 左からL字型、fork型、T字型、arrow型


5151038

4つのラベル

  • 辺の性質を明確にするため、+、-、→、←の4つのラベルを使う

  • +(convex)は2つの見える面の間を移動するときに270°かかるもの

  • -(concave)は2つの見える面の間を移動するときに90°かかるもの

  • 矢印(boundary)は一方の面が隠れているときに書く


5151038

ラベルの使用例

  • 矢印は隠れてない方の面が矢印の進行方向右側に来るように書いていく


5151038

解釈の仕方

  • 解釈の仕方は1つに限定する必要はない

    (Fig2.13の場合辺ACとAEは、立体が「浮いている」と考えれば→、「壁にかかっている」と考えれば-と解釈できる)


5151038

解釈の仕方(2)

  • 辺ABは+にも-にもなりうる

     (立方体と考えればABは明らかに+だが、面ABCDを底面とする箱の一部(AEとDGにつながる面が欠落したもの)と考えれば-とみなせる)

  • ただし、後者の考え方のときは適応する立体がない(後者の解釈の仕方だとC,E,Gにつながるfork型の接点が欠落している)


5151038

接点とラベルの関係

  • Huffmanさんが発見した、立体が存在しうる状況においての接点とラベルの関係

    →これらを使うと制約充足問題の観点から議論できる!


5151038

問題の解法(1)

  • 接点を変数、辺を制約とする

  • 2つの接点に関する制約を変換テーブルを用いて作っていく

  • 例えば、接点AとBは辺ABを共有しているので、クロスワードのときと同じように、共有する部分は同じ物にしなければならない

  • だが、クロスワードとは少し勝手が異なる

    (+や-の場合はよいが、矢印を使うときはABとBA(接点の場所)で逆になる)


5151038

変換テーブル(L字型)

L :={(→,←),

(←,→),

(+,→),

(←,+),

(-,←),

(→,-)}


5151038

変換テーブル(fork型)

fork :={(+,+,+),

(-,-,-),

(→,←,-),

(-,→,←),

(←,-,→)}


5151038

変換テーブル(T字型)

T :={(→, ←,←),

(→,←,→),

(→,←,+),

(→,←,-)}


Arrow

変換テーブル(arrow型)

arrow :={(←,→,+),

(+,+,-),

(-,-,+)}


5151038

変換テーブルの使用例

  • Fig2.13に関してAとEに対する制約CA,Eを決める

  • 接点Aは第2要素がAE、接点Eは第2要素がEAとなっているのでそれぞれの第2要素が同じ物になるような制約がかかる

    CA,E :={((←,→,+), (→,←)),

    ((←,→,+), (-,←)),

    ((+,+,-), (←,+)),

    ((-,-,+), (→,-))}


5151038

問題の解法(1)

  • 前述のように2つの接点に関する制約を定めていく

  • 2つの接点に関する制約=1つの辺の制約なので、制約は辺の数分だけできる

  • この方法でやっていけばうまく立体の形を定めていける


5151038

問題の解法(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)


5151038

問題の解法(2)

  • 1つ目の解き方と同様、この解き方も辺の向きを気にしなくてはならない

  • よって、辺にも向きを考えるための以下のような制約をつける必要がある

    edge := {(+,+),(-,-),(→,←),(←,→)}


5151038

問題の解法(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)


5151038

問題の解法(2)

  • あとはこの2要素(edge、L)ないしは3要素(fork、T、arrow)の制約を組み合わせて解いていけばよい。


5151038

解答


5151038

2.6 制約最適化問題

  • 関数objと制約から最適解を見つけ出す

  • 一般性を保持するために我々は最適解を最大解と意味付けする

  • 制約最適化問題の扱う領域は広い!(この問題に関する本もたくさん書かれている)

  • よってここでは3つの例に限定する


5151038

例2.12 ナップザック問題

  • n個の物があって、それぞれが重さと価値をもっている

  • ナップザックはある一定の容量が決まっている

  • 価値が一番高くなるような物の組み合わせはどれかを求める


5151038

解法

  • n個の物の重さをそれぞれa1,…,an、価値をb1,… , bn、ナップザックの容量をvとする

  • さらに、n個の値x1 ,…, xn∈{0,1}を定義する


5151038

解法(2)

  • ナップザックの容量から、以下の制約が設けられる

  • 最適解は、上記の制約の元で以下の式

     が最大値をとるようなものである

  • よってこの式が関数objである


5151038

例2.13 コイン問題

  • 1,2,5,10,20,50ユーロセントのコインがあるとき、1ユーロ未満の料金を払うのにどのように払えばコインの枚数が一番少なくなるか?


5151038

解法

  • 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] )


5151038

解法(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


5151038

解法(3)

  • このとき、全部で99個(iの種類分)の制約ができる

  • 解はx1+ x2+ x5+ x10+ x20+ x50の最小値として得られる

  • しかしここでは最大値問題にするため、関数objとして以下の式を用いる

    -(x1+ x2+ x5+ x10+ x20+ x50)


5151038

この解法の欠点

  • この解法には制約の中に変数が存在するという欠点がある

  • このような問題は解くのが難しい

    →異なる表現を用いて制約を単純化!


5151038

新たな解法

  • 今まで使っていたx1, x2, x5, x10, x20, x50,

    に加えて           を用いる

    ( i∈[1…99] )

  • そうすると制約は次の式で書き換えられる

    ただし      

    ( i∈[1…99] , j∈{1,2,5,10,20,50} )


5151038

新たな解法(2)

  • このようにすると最適解を求めやすい

  • ちなみに関数objは前述の物と同じ物を用いる


5151038

例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


5151038

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

    と定める


5151038

m要素ゴロム定規の解法(2)

  • このとき以下の制約が生じる

    ・xi,< xi+1 ( i∈[1,…,m-1])

    ・xj- xi ≠xl – xk (different((i, j), (k, l)))

  • このとき関数objは-xm


5151038

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)))

    と書き換えられる


5151038

m要素ゴロム定規の解法(4)

  • zi,j = xj- xi とおくと

  • zi,j≠zk,l (different((i, j), (k, l)))

      という正の整数のみの制約というふうにも考えられる


5151038

ゴロム定規について(豆知識)

  • ゴロム定規は符号理論、X線結晶学、回路設計、電波天文学などの分野に応用されている

  • 今まで発見された最長のゴロム定規は21要素で長さは333


  • Login