30
人人人人 GPS 人 人人人人人 ,Logic Theorist ecture 11 人人人人人人人人人 人人人人人人人人人人人人 人人人人人

人工知能 計画 Lecture 11

  • Upload
    viola

  • View
    38

  • Download
    0

Embed Size (px)

DESCRIPTION

人工知能 計画 Lecture 11. 場所を指定した 積み木. ロボットアームが箱を積み替えるオペレータ 机 α の 上から箱を持ち上げる: PICKUP ( x,α ) 机 α の 上に箱を置く:上の逆= PICKUP -1 ( x,α ) 別 に名前をつけても良い ( 例 ) PUTDOWN( x,α ) 箱 y の上に箱 x を置く: PUTON( x,y ) 箱の y 上から箱 x を持ち上げる: PUTON -1 ( x,y ) 別に名前をつけても良い ( 例 )TAKEOFF( x,y ) 順序が大事:前提条件が満たされていなくては適用できないオペレータ. - PowerPoint PPT Presentation

Citation preview

Page 1: 人工知能 計画 Lecture  11

人工知能GPS と ハノイの塔 ,Logic

Theorist

L ecture 11

鳥取大学工学研究科情報エレクトロニクス専攻

田中美栄子

Page 2: 人工知能 計画 Lecture  11

GPS(general problem solver)

および

計画

Newell, Shaw, Simon(1957) による LT の続き

Page 3: 人工知能 計画 Lecture  11

ハノイの塔:箱を積む場所を変える

• ロボットアームが箱を積み替えるオペレータ

• 机の上から箱を持ち上げる: PICKUP( x)

• 机の上の場所 α に箱を置く:         PUTDOWN(x,α)

• 箱 y の上に箱 x を置く: PUTON(x,y)• 箱 y の上の箱 x を持ち上げる:

TAKEOFF(x,y)

Page 4: 人工知能 計画 Lecture  11

ハノイの塔問題• 3つの柱 A , B , C と中心に穴の空いた 2 枚

の円板とがあり,円板 1 は円板 2 より小さい.• 上から円板 1 ,円板 2 の順に柱 A に置かれたの

を柱 B に移す

条件:大きな円板を小さな円板の上に置くことは出来ず,また,一回の動作で一枚の円板しか動かすことが出来ない

A AB B

Page 5: 人工知能 計画 Lecture  11

<状態>の記述

• ON(x,y) : 円板 x が円板 y の上にある状態

• AT(x,Y) : 円板 x が柱 Y の最下部にある状態

• CLEAR(x) :円板 x の上に何もない状態• VAC (X) : 柱 X に円板が無い状態

Page 6: 人工知能 計画 Lecture  11

動作オペレータMV1(x,y,Z) :円板 x を円板 y の上から柱 Z に移すP : ON(x,y),CLEAR(x),VAC(Z);D : VAC(Z);A : AT(x,Z),CLR(y)

MV2(x,Y,z) :円板 x を柱 Y から外し,円板 z の上に載せる  P : AT(x,Y),CLEAR(x),CLEAR(z);  D : AT(x,Y),CLEAR(z);  A : ON(x,z),VAC(Y)

MV3(x,Y,Z) :円板 x を柱 Y から外し,空いている柱 Z に移す  P:AT(x,Y),VAC(Z),CLEAR(x);  D:AT(x,Y),VAC(Z);  A::VAC(Y),AT(y,Z)

MV4(x,y,z) :円板 x を円板 y の上から外し,円板 z の上に載せる  P:ON(x,y),CLEAR(x),CLEAR(z);  D:ON(x,y),CLEAR(z);  A::ON(x,z),CLEAR(y)

Page 7: 人工知能 計画 Lecture  11

動作オペレータMV1(x,y,Z) :円板 x を円板 y の上から柱 Z に移すP :  ON(x,y),    CLEAR(x),   VAC(Z);D :  VAC(Z);A :  AT(x,Z),CLR(y)

MV2(x,Y,z) :円板 x を柱 Y から外し,円板 z の上に載せる  P : AT(x,Y),CLEAR(x),        CLEAR(z);  D : AT(x,Y),CLEAR(z);  A : ON(x,z),VAC(Y)

MV3(x,Y,Z) :円板 x を柱 Y から外し,空いている柱 Z に移す  P:AT(x,Y),VAC(Z),CLEAR(x);  D:AT(x,Y),VAC(Z);  A::VAC(Y),AT(y,Z)

MV4(x,y,z) :円板 x を円板 y の上から外し,円板 z の上に載せるP:ON(x,y),CLEAR(x),CLEAR(z);  D:ON(x,y),CLEAR(z);  A::ON(x,z),CLEAR(y )

Page 8: 人工知能 計画 Lecture  11

初期状態→(オペレータ)→目標状態

初期状態  S :         目標状態  G:

ONTABLE(A)           ON(A,C)ONTABLE(C)ON(B,C)

A

B

C C

A

B

Page 9: 人工知能 計画 Lecture  11

一般的な問題解決法• 目標状態の状態記述のうちで、初期状態によって達成さ

れていない命題を探し• それを一つ達成する

という操作を繰り返す。

  命題 C を達成するには、

C を追加リストとする動作関数(オペレータ: O )を求める。

そのオペレータ: O の前提条件が初期条件によって満たされているかを調べ、

満たされていれば O を適用満たされていなければそれを満たすのに必要な命題を達成

すること新たな目標にする

Page 10: 人工知能 計画 Lecture  11

Local planningfunction LocalPlanning(S,G)

1. LOOP1: if satisfy G exit (S);2 . S によって満たされない G の命題を goal-list に入3 . LOOP2: if empty(goal-list) return(fail);4 . C=first(goal-list); remove(C,goal-list); C を達成するオペレータを全て求め oplist に入5 . LOOP3 : if empty (oplist) goto LOOP26 . operator=first(oplist); remove(operator,oplist); if not applicable(operator), goto LOOP37 . G から operator の追加リストを除き、前提条件を加え

た状態を G1 とする8 . G2= LocalPlanning(S,G1)9 . if G2=fail, goto LOOP310. S=operator(S)11. Goto LOOP1

Page 11: 人工知能 計画 Lecture  11

各 LOOP の役割

LOOP1 : function local-planning(S,G)

LOOP2: goallist に含まれる「状態」を実現する

    動作オペレータを捜し、 oplist に入れる

LOOP3 :  oplist に含まれる動作オペレータが適用できる前提条件が満たされているかをチェック

Page 12: 人工知能 計画 Lecture  11

必要な operators を定義する

• PUTON(x,y) : x を y の上に置く• TAKEOFF ( x,y) : y の上にある x を掴

む• PUTDOWN(x):x をテーブルの上に置く• PICKUP(x) :テーブルの上にある x を掴

Page 13: 人工知能 計画 Lecture  11

各 operator に対する P,D,A で定義

• P:   Prerequisite condition  (前提条件)

    その operator を適用できる状態

• D:   Delete condition  (削除状態リスト)

    その operator を適用後に削除される状態

• A :  Add condition  (追加状態リスト)

    その operator を適用後に追加される状態

Page 14: 人工知能 計画 Lecture  11

各動作関数( operator )の P,D,A• PUTON(x,y)      : x を y の上に載せる動作P :  HOLD(x),CLEAR(y)       y の上が空き

x を保持D:   HOLD(x),CLEAR(y)A :  ON(x,y),CLEAR(x),EMPTY               y の上にxが載り ,

上は空、手は空

• TAKEOFF ( x,y)     :y の上から x を除去する動作

P :   ON(x,y),CLEAR(x),EMPTY         xがyに載り , その上は

空き , 手は空D:   ON(x,y),CLEAR(x),EMPTYA :  HOLD(x),CLEAR(y)     xを持ち , yの

上は空

Page 15: 人工知能 計画 Lecture  11

各 operator の前提条件 , 削除 / 追加リスト

• PUTDOWN(x):  xをテーブルに置く動作P :   HOLD(x)D:    HOLD(x)A :   ONTABLE(x),CLEAR(x),EMPTY

• PICKUP(x) : x をテーブルから持ち上げる動作

P : ONTABLE(x),CLEAR(x),EMPTYD:   ONTABLE(x),CLEAR(x),EMPTYA :  HOLD(x)

Page 16: 人工知能 計画 Lecture  11

最初のタスク:1.【 LOOP1 】  S は G を満たさないので次に行く

2. ON(A,C) を goal-list に入れる

3. 【 LOOP2 】  goal-list は empty でないので次に行く4.T=ON(A,C)  として goal-list から外す  T を達成するオペレータを全て求め、 oplist に入れる                           

>>PUTON(A,C) を oplist へ

5. 【 LOOP3 】  oplist は empty ではないので次に行く6. operator= PUTON(A,C) 、これを適用するには

HOLD(A),CLEAR(C)  が前提条件として必要だが、満たされないので 5 へ

5  ここで oplist が空なら LOOP 3を抜けて 3 に戻る3. ここで goallist が空なら LOOP 2を抜けて 7 に行く

7. G から PUTON(A,C )の追加リストを除き、前提条件HOLD(A);CLEAR(C) を加えた状態を G1 として、 LocalPlanning(S,G1 )を解く

G*

S

Page 17: 人工知能 計画 Lecture  11

次のタスク:2 . HOLD(A);CLEAR(C) を goal-list へ4.   goal-list を達成するのに必要なオペレータを oplist へ;  これらは HOLD(A);CLEAR(C) を追加条件とする TAKEOFF(A,C)  または PICKUP(A) である( pickup ( A) を選んだ場合)6.   operator= PICKUP(A); (oplist から外しておく );   これを適用するには  ONTABLE(A) と CLEAR(A) が必要

( CLEAR(C)  も必要)、満たされないので5へ

5.   oplist は empty なので LOOP3 を抜けて 3 に行く3.   goallist は empty なので LOOP 2を抜けて 7 に行く

7. HOLD(A) は G1 から除かれ、代わりに G1 にONTABLE(A),CLEAR(A),EMPTY を入れて

LocalPlanning(S,G1) を解くこれを繰り返す

1G*

S

Page 18: 人工知能 計画 Lecture  11

初期状態→(オペレータ)→目標状態

初期状態 S        目標状態 G       

ONTABLE(C,α) を消して ONTABLE(C,β) を作る    

EMPTY^CLEAR(A)^ON(B,C) )^ON(A,B)の4条件は S と G で共通に存在する   

AB

C C

AB

α ββα

Page 19: 人工知能 計画 Lecture  11

Local-planning(S,G) の動作Local-planning(S,G) の手順:

S から G へは直接行けない       ( step1)

ON(A,C) を生成する operator として  PUTON(A,C) が必要         (step2,3,4)

PUTON(A,C) の前提条件として    (step5,6,7)    HOLD(A)&CLEAR ( C) が必要

これらを subgoal=G1 として      (step8)

   local-planning(S,G1) を使う

Page 20: 人工知能 計画 Lecture  11

Local-planning(S,G1) の動作Local-planning(S,G1) の手順: S から G1 へは直接行けない。HOLD(A) の生成には    PICKUP(A)     または   TAKEOFF(A,x)   等の operator が必要

CLEAR(C) の生成には  TAKEOFF(B,C) が必要

PICKUP(A) を動作させる前提条件としてONTABLE(A)&CLEAR(A)&EMPTY

が必要

TAKEOFF(B,C) を動作させる前提条件として   ON(B,C ) &EMPTY&CLEAR(B) が必要

これらは初期条件 S により満たされているので実行可能

Page 21: 人工知能 計画 Lecture  11

S  →  ON(A,C)  goallist に

S  →  HOLD(A) &CLEAR ( C )

S  →  CLEAR(A) &     ONTABLE(A) &EMPTY&CLEAR(C )

CLEAR(C )が実現されないので

C の上に載っている物を下ろす

S  →  HOLD(B) &CLEAR ( A)   &ONTABLE(A) &CLEAR(C )

S  →  EMPTY & CLEAR(A)  

&ONTABLE(A)&ON(B,C)

ON(A,C)

HOLD(A) &CLEAR ( C )

PUTON(A,C)

CLEAR(A)ONTABLE(A)EMPTYCLEAR ( C)

PICKUP(A) TAKEOFF(A,x)

PUTDOWN(y) : y=B PUTON(y,z)

TAKEOFF(B,C)

CLEAR(A)ON (A,x)EMPTYCLEAR( C)

HOLD(B)CLEAR(A)ONTABLE(A)CLEAR(C )

HOLD(y)CLEAR(A)ONTABLE(A)CLEAR ( C)CLEAR(A)

EMPTY, CLEAR(A),   ONTABLE(A),  ON(B,C)

ONTABLE ( C )は最初からあるので、そのままいじらない

Page 22: 人工知能 計画 Lecture  11

演習:ハノイの塔• 大きさが順に大きくなる3つの円盤、 A,B,C と

3つの柱 1,2,3.  最初円盤は全て柱1の上に、一番小さい A を一番上に、 C を一番下にして積み重ねられている。これを柱3に A が一番上になるように移す、但し一度に1個だけ円盤を動かせる、どの円盤もそれより小さい円盤の上に置けない

• 最初に出来るのは A を柱 2 か柱 3 に移すことだが、そのあと A の上には B も C も置けないので、つまりは A を移さなかった柱に B を移して置いて、その上に A を移し、空いた柱 3 に C を移すことができれば成功である.次にその C の上に B を載せ、その上に A を載せる

Page 23: 人工知能 計画 Lecture  11

S は G ではない、ならサブタスク G1• LOOP1 では

• S は  ON ( A,B) & ON(B,C ) & ONPOLE1 ( C)• G は  ON ( A,B) & ON(B,C ) & ONPOLE2 ( C)• S で満たされていない G の条件は ONPOLE2 ( C)• ONPOLE2 ( C) を goallist にいれる( LOOP2

へ)• goallist の先頭要素を取出し( goallist から消す)• これを実現するオペレータを oplist に入れる

(LOOP3 へ )• これは適用可能か?できなければ LOOP3 へ• 可能ならこのオペレータを適用、 goallist からこの

オペレータの追加リストを除き(用済み) PC を加えた状態を G1 とする( G1 を goal とした問題を解く)

Page 24: 人工知能 計画 Lecture  11

8段階を右の3段階と見る

1 .ABC   2. _   3. _1 .   BC   2. _   3.   A1 .    C   2.   B    3.   A1 .   C   2.   AB   3. __

1 . __  2.   AB   3.   C1 . A    2.   B    3.   C1 . A    2.  _  3.   BC1 . __  2. __  3. ABC

高さ2の山を 1. から 2. へ移す

高さ1を 1. から 3.へ

高さ2の山を2. から 3. へ移す

Page 25: 人工知能 計画 Lecture  11

目標:高さ3の山を柱1から柱3へ移す

小目標:高さ 2 の山を柱 2 から柱 3 へ移す

小目標:高さ 2 の山を柱 1 から柱 2 へ避難させる

高さ 1の山を柱 1 から柱 3へ移動

高さ 1の山を柱 1 から柱 2へ移動

高さ 1の山を柱 3 から柱 2へ移動 高さ 1 の

山を柱 2から柱 1へ移動

高さ 1 の山を柱 2 から柱 3 へ移動

高さ 1の山を柱 1 から柱 3へ移動

原始問題:高さ 1 の山を柱 1 から柱 3 へ移動

Page 26: 人工知能 計画 Lecture  11

人工知能は要素技術では足りない

• 問題を要素に分解して緻密な仕事を行う、という状況よりは、人間の行うグローバルな意思決定が実用上は重要

• 人が近づきにくい災害現場、宇宙空間等へ行って救助活動を行うロボット:複雑なタスク

• ロボットは、①移動する(直進する、回転する)②荷物を運ぶ③障害物をどける(戸を開ける)④通信する⑤サブ・タスクを変更する

等様々な意思決定と行動を組み合わせる

Page 27: 人工知能 計画 Lecture  11

別の例: Logic theorist• 数学者の代わりをする人工知能プログラ

ム• Russel-Whitehead の「数学原理」:公理

から構成する数学→コンピュータ向き• 公理( AXIOM) :証明無しで使える命

題:仮定や定義に近い(例えばユークリッドの公理)

• 命題 (proposition) : statement 、{ Yes,No}の値をとる変数

• 定理 (theorem ):証明の必要な命題

Page 28: 人工知能 計画 Lecture  11

Logic Theorist (Newell,Shaw,Simon) の例• 公理をいくつか仮定して  例えば S から G を導く。• S と G の距離を縮める為、公理 1 を適用して S を S1

  とする。これで最後の部分が G と同じ形になった

• S1 と G の距離を縮めるには()の中の演算子を同じにしたい。公理 6 を用いてS1 を S2 にし、公理3でS3 にする

• 更に()の中身を G に近づける為、公理 1 を用いてS4 に変換。これで G との差が消失

1.            積は可換

2.            和は可換

3.            2重否定

4.            5.6.

ABBA

)BA(BA

)BA(BA

)B∨A(B∧A

A∨B→B∨A

R)PQ(:G R)QP(:1S

R)QP(:3S

)QP(R:S

AA

!!!GR)PQ(:4S

R)QP(:2S

Page 29: 人工知能 計画 Lecture  11

論理演算• 最初の目標:公理を用いて S→G を導出:

• S→S1 で大まかな形の差異を縮めた• 次の目標: S 1→ G を導出:• S1 → S2 ではS1に公理 6 を適用して    結合子の差異を縮める(→が和演算に)• S 2 に公理 3 を適用して2重否定を消しS 3 を得る• 次の目標: S3→G を導出:• S 3 とGの距離を縮めるため、S 3 に公理1を適用してS 4 を作る

• 次の目標:S 4→Gを導出:• S 4 とGの間に差異無し(解決して問題終了)

)QP(R:S R)PQ(:G

)BA(BA

R)QP(:3S R)PQ(:4S

R)QP(:1S

R)QP(:2S

Page 30: 人工知能 計画 Lecture  11

GPSの問題

• General Problem Solver という名前ほどには一般的な問題解決はできない

• 単純な問題しか解けない→改良の工夫• いくつかの距離を重要性の程度の順に並

べて重要なものから順に距離を減らす• 前提条件の重要度を最初から決めておく