next up previous
Up: ソフトウェア特論 講義資料 前向き推論,後ろ向き推論 Previous: 8 名前無し変数の導入

課題

  1. sublisを定義してみよ.
  2. matchを使って見よ.
  3. unifyを使ってみよ.
  4. プロダクションシステムの実行例(3)をprolog用表現に直し, いくつかの問い合わせを行なってみよ.
  5. たとえば以下のようなプログラムを書いて走らせ, どのようなことを行っているか考えてみよ.
    
    (defun archdemo nil
      (init-prolog)
      (<- (arch (a ?y ?x ?z))
          (on ?x ?y) (on ?x ?z)
          (block ?x) (tower ?y) (tower ?z))
      (<- (tower ?x) (block ?x))
      (<- (tower (t ?x ?y))
          (on ?x ?y) (block ?x) (tower ?y))
      (<- (on B (t A ?z)) (on B A))
      (<- (on D (t B ?z)) (on D B))
      (<- (on D (t C ?z)) (on D C))
      (<- (block A))
      (<- (block B))
      (<- (block C))
      (<- (block D))
      (<- (block E))
      (<- (on B A))
      (<- (on D B))
      (<- (on D C))
      )
    
    
    [11]> (archdemo)
    
    ON
    [12]> (?- (arch ?x))
    
    ?X = (A (T B A) D (T B A));
    
    ?X = (A (T B A) D B);
    
    ?X = (A (T B A) D C);
    
    ?X = (A A B A);
    
    ?X = (A B D (T B A));
    
    ?X = (A B D B);
    
    ?X = (A B D C);
    
    ?X = (A C D (T B A));
    
    ?X = (A C D B);
    
    ?X = (A C D C);
    
    No.
    

next up previous
Up: ソフトウェア特論 講義資料 前向き推論,後ろ向き推論 Previous: 8 名前無し変数の導入
generated through LaTeX2HTML. M.Inaba 平成18年5月21日