亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cam.clp

?? CLIPS專家系統(tǒng)源碼
?? CLP
字號:

;;;======================================================
;;;   Cannibals and Missionaries Problem
;;;
;;;     Another classic AI problem. The point is
;;;     to get three cannibals and three missionaries 
;;;     across a stream with a boat that can only 
;;;     hold two people. If the cannibals outnumber 
;;;     the missionaries on either side of the stream, 
;;      then the cannibals will eat the missionaries. 
;;;
;;;     CLIPS Version 6.01 Example
;;;
;;;     To execute, merely load, reset and run.
;;;======================================================

(defmodule MAIN 
  (export deftemplate status)
  (export defglobal initial-missionaries initial-cannibals))

;;;*************
;;;* TEMPLATES *
;;;*************

;;; The status facts hold the state  
;;; information of the search tree.

(deftemplate MAIN::status 
   (slot search-depth (type INTEGER) (range 1 ?VARIABLE))
   (slot parent (type FACT-ADDRESS SYMBOL) (allowed-symbols no-parent))
   (slot shore-1-missionaries (type INTEGER) (range 0 ?VARIABLE))
   (slot shore-1-cannibals (type INTEGER) (range 0 ?VARIABLE))
   (slot shore-2-missionaries (type INTEGER) (range 0 ?VARIABLE))
   (slot shore-2-cannibals (type INTEGER) (range 0 ?VARIABLE))
   (slot boat-location (type SYMBOL) (allowed-values shore-1 shore-2))
   (slot last-move (type STRING)))

;;;*****************
;;;* INITIAL STATE *
;;;*****************

(defglobal MAIN ?*initial-missionaries* = 3
                ?*initial-cannibals* = 3)

(deffacts MAIN::initial-positions
  (status (search-depth 1) 
          (parent no-parent)
          (shore-1-missionaries ?*initial-missionaries*)
          (shore-2-missionaries 0)
          (shore-1-cannibals ?*initial-cannibals*)
          (shore-2-cannibals 0)
          (boat-location shore-1)
          (last-move "No move.")))

(deffacts MAIN::boat-information
  (boat-can-hold 2))

;;;****************************************
;;;* FUNCTION FOR MOVE DESCRIPTION STRING *
;;;****************************************

(deffunction MAIN::move-string (?missionaries ?cannibals ?shore)
  (switch ?missionaries
     (case 0 then
        (if (eq ?cannibals 1) 
            then (format nil "Move 1 cannibal to %s.%n" ?shore)
            else (format nil "Move %d cannibals to %s.%n" ?cannibals ?shore)))
     (case 1 then
        (switch ?cannibals
           (case 0 then
              (format nil "Move 1 missionary to %s.%n" ?shore))
           (case 1 then
              (format nil "Move 1 missionary and 1 cannibal to %s.%n" ?shore))
           (default then
              (format nil "Move 1 missionary and %d cannibals to %s.%n" 
                          ?cannibals ?shore))))
     (default
        (switch ?cannibals
           (case 0 then
              (format nil "Move %d missionaries to %s.%n" ?missionaries ?shore))
           (case 1 then
              (format nil "Move %d missionaries and 1 cannibal to %s.%n" 
                          ?missionaries ?shore))
           (default then
              (format nil "Move %d missionary and %d cannibals to %s.%n" 
                          ?missionaries ?cannibals ?shore))))))

;;;***********************
;;;* GENERATE PATH RULES *
;;;***********************

(defrule MAIN::shore-1-move 
  ?node <- (status (search-depth ?num) 
                   (boat-location shore-1)
                   (shore-1-missionaries ?s1m)
                   (shore-1-cannibals ?s1c)
                   (shore-2-missionaries ?s2m)
                   (shore-2-cannibals ?s2c))
  (boat-can-hold ?limit)
  =>
  (bind ?max-missionaries (min ?s1m ?limit))
  (loop-for-count (?missionaries 0 ?max-missionaries)
    (bind ?min-cannibals (max 0 (- 1 ?missionaries)))
    (bind ?max-cannibals (min ?s1c (- ?limit ?missionaries)))
    (loop-for-count (?cannibals ?min-cannibals ?max-cannibals)
      (duplicate ?node (search-depth =(+ 1 ?num))
                       (parent ?node)
                       (shore-1-missionaries (- ?s1m ?missionaries))
                       (shore-1-cannibals (- ?s1c ?cannibals))
                       (shore-2-missionaries (+ ?s2m ?missionaries))
                       (shore-2-cannibals (+ ?s2c ?cannibals))
                       (boat-location shore-2)
                       (last-move (move-string ?missionaries ?cannibals shore-2))))))

(defrule MAIN::shore-2-move 
  ?node <- (status (search-depth ?num) 
                   (boat-location shore-2)
                   (shore-1-missionaries ?s1m)
                   (shore-1-cannibals ?s1c)
                   (shore-2-missionaries ?s2m)
                   (shore-2-cannibals ?s2c))
  (boat-can-hold ?limit)
  =>
  (bind ?max-missionaries (min ?s2m ?limit))
  (loop-for-count (?missionaries 0 ?max-missionaries)
    (bind ?min-cannibals (max 0 (- 1 ?missionaries)))
    (bind ?max-cannibals (min ?s2c (- ?limit ?missionaries)))
    (loop-for-count (?cannibals ?min-cannibals ?max-cannibals)
      (duplicate ?node (search-depth =(+ 1 ?num))
                       (parent ?node)
                       (shore-1-missionaries (+ ?s1m ?missionaries))
                       (shore-1-cannibals (+ ?s1c ?cannibals))
                       (shore-2-missionaries (- ?s2m ?missionaries))
                       (shore-2-cannibals (- ?s2c ?cannibals))
                       (boat-location shore-1)
                       (last-move (move-string ?missionaries ?cannibals shore-1))))))

;;;******************************
;;;* CONSTRAINT VIOLATION RULES *
;;;******************************

(defmodule CONSTRAINTS 
  (import MAIN deftemplate status))

(defrule CONSTRAINTS::cannibals-eat-missionaries 
  (declare (auto-focus TRUE))
  ?node <- (status (shore-1-missionaries ?s1m)
                   (shore-1-cannibals ?s1c)
                   (shore-2-missionaries ?s2m)
                   (shore-2-cannibals ?s2c))
  (test (or (and (> ?s2c ?s2m) (<> ?s2m 0))
            (and (> ?s1c ?s1m) (<> ?s1m 0))))
  =>
  (retract ?node))

(defrule CONSTRAINTS::circular-path 
  (declare (auto-focus TRUE))
  (status (search-depth ?sd1)
          (boat-location ?bl) 
          (shore-1-missionaries ?s1m)
          (shore-1-cannibals ?s1c)
          (shore-2-missionaries ?s2m)
          (shore-2-cannibals ?s2c))
  ?node <- (status (search-depth ?sd2&:(< ?sd1 ?sd2))
                   (boat-location ?bl) 
                   (shore-1-missionaries ?s1m)
                   (shore-1-cannibals ?s1c)
                   (shore-2-missionaries ?s2m)
                   (shore-2-cannibals ?s2c))
  =>
  (retract ?node))

;;;*********************************
;;;* FIND AND PRINT SOLUTION RULES *
;;;*********************************

(defmodule SOLUTION 
  (import MAIN deftemplate status)
  (import MAIN defglobal initial-missionaries initial-cannibals))
       
(deftemplate SOLUTION::moves 
   (slot id (type FACT-ADDRESS SYMBOL) (allowed-symbols no-parent)) 
   (multislot moves-list  
      (type STRING)))

(defrule SOLUTION::recognize-solution 
  (declare (auto-focus TRUE))
  ?node <- (status (parent ?parent)
                   (shore-2-missionaries ?m&:(= ?m ?*initial-missionaries*))
                   (shore-2-cannibals ?c&:(= ?c ?*initial-cannibals*))
                   (last-move ?move))
  =>
  (retract ?node)
  (assert (moves (id ?parent) (moves-list ?move))))

(defrule SOLUTION::further-solution 
  ?node <- (status (parent ?parent)
                   (last-move ?move))
  ?mv <- (moves (id ?node) (moves-list $?rest))
  =>
  (modify ?mv (id ?parent) (moves-list ?move ?rest)))

(defrule SOLUTION::print-solution 
  ?mv <- (moves (id no-parent) (moves-list "No move." $?m))
  =>
  (retract ?mv)
  (printout t t  "Solution found: " t t)
  (progn$ (?move ?m) (printout t ?move)))

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲影院在线观看| 波多野结衣在线一区| 欧美国产日产图区| 久久久一区二区| 欧美午夜一区二区三区| 粉嫩13p一区二区三区| 国产精品久久久久久久久搜平片| 大尺度一区二区| av午夜一区麻豆| 91视频一区二区三区| 国产精品资源站在线| 亚洲欧美日韩一区| 日韩欧美国产综合一区| 欧美熟乱第一页| 色综合网色综合| 国产精品中文有码| 国产成人精品一区二区三区四区| 久久精品国产亚洲5555| 免费观看成人av| 成人免费观看视频| av亚洲产国偷v产偷v自拍| 欧洲色大大久久| 欧美高清激情brazzers| 国产寡妇亲子伦一区二区| 国产精品资源在线观看| 国产成人三级在线观看| kk眼镜猥琐国模调教系列一区二区| 成人高清视频在线| 欧美区在线观看| 中文一区二区完整视频在线观看| 日韩久久一区二区| 蜜臀av一区二区在线免费观看| 国产91精品在线观看| 在线观看日韩高清av| 久久久久久久久久久黄色| 亚洲激情自拍偷拍| 国产一区二区三区久久久| 精品成人佐山爱一区二区| 日韩亚洲国产中文字幕欧美| 色播五月激情综合网| 在线观看欧美黄色| 欧美精品一区二区三区高清aⅴ| 国产精品护士白丝一区av| 久久成人麻豆午夜电影| 欧美三级电影一区| 一区二区三区四区不卡视频| 国产精品一线二线三线| 日韩精品一区国产麻豆| 亚洲成精国产精品女| 成人免费va视频| 精品美女在线观看| 日日夜夜精品视频免费 | 亚洲影院久久精品| 美女视频黄 久久| 欧美性极品少妇| 亚洲一区二区在线视频| 欧美图区在线视频| 国产精品国产三级国产普通话三级 | 亚洲三级在线免费观看| 97se亚洲国产综合自在线 | 国产一区视频导航| 精品国产三级电影在线观看| 91视频国产观看| 午夜日韩在线电影| 欧美大片一区二区| 国产99久久久国产精品潘金网站| 欧美性做爰猛烈叫床潮| 亚洲精品视频在线| 91视频免费播放| 亚洲bt欧美bt精品| 欧美激情综合五月色丁香小说| 懂色av中文字幕一区二区三区| 亚洲欧美日韩国产综合在线| 色香蕉久久蜜桃| 亚洲精品福利视频网站| 欧美成人a∨高清免费观看| 一本到不卡精品视频在线观看| 久久se这里有精品| 亚洲成人手机在线| 亚洲女性喷水在线观看一区| 欧洲亚洲精品在线| 精品一区二区精品| 日韩精品一二三| 亚洲国产欧美另类丝袜| 亚洲老妇xxxxxx| 欧美高清在线视频| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 精品国产乱码久久久久久久久| 欧美中文一区二区三区| 欧美亚洲综合另类| 欧美久久一区二区| 欧美日韩国产小视频| 在线成人免费观看| 日韩欧美国产午夜精品| 日韩欧美激情在线| 欧美zozozo| 日韩一级在线观看| 26uuu欧美| 国产日产精品一区| 国产精品看片你懂得| 亚洲精品免费一二三区| 婷婷综合在线观看| 国产大陆精品国产| 欧美久久免费观看| 国产精品国产a级| 男人的j进女人的j一区| aaa国产一区| 精品国产乱子伦一区| 日本一区二区成人在线| 亚洲aaa精品| 国产成人精品亚洲777人妖| 精品视频1区2区| 国产亚洲成aⅴ人片在线观看| 亚洲在线视频一区| 成人av免费网站| 国产午夜精品在线观看| 亚洲成av人片| 精彩视频一区二区| 欧美亚洲国产一区二区三区| 日韩免费观看2025年上映的电影| 亚洲女人****多毛耸耸8| 麻豆一区二区三| 欧美三级午夜理伦三级中视频| 国产精品欧美久久久久一区二区 | 成人理论电影网| 日韩欧美国产一区二区在线播放| 亚洲视频中文字幕| 成人高清av在线| 国产精品美女一区二区在线观看| 国产一区中文字幕| 日韩精品中文字幕在线不卡尤物| 亚洲二区在线观看| 日本道免费精品一区二区三区| 久久久亚洲欧洲日产国码αv| 捆绑调教一区二区三区| 欧美一区二区三区视频在线观看| 一区二区在线看| 在线免费观看一区| 一区二区三区在线观看动漫| 国产suv精品一区二区883| 久久久久久影视| 国产精品一区二区三区乱码| 欧美成人综合网站| 成人动漫视频在线| 国产精品二三区| 欧美日韩电影一区| 久久精品噜噜噜成人88aⅴ| 69p69国产精品| 国产高清亚洲一区| 一区二区不卡在线视频 午夜欧美不卡在 | 中文字幕av资源一区| 欧美日韩dvd在线观看| 亚洲国产成人高清精品| 日韩亚洲欧美综合| 波多野结衣在线一区| 一二三区精品视频| 久久新电视剧免费观看| 在线看不卡av| 日本中文字幕不卡| 成人免费在线视频| 日韩欧美一区在线观看| 99久久精品免费看国产| 免费欧美在线视频| 一个色在线综合| 亚洲国产日韩在线一区模特| 日本一区二区成人| 精品久久一区二区三区| 91福利在线免费观看| 成人黄色小视频| 国产风韵犹存在线视精品| 日韩精品欧美成人高清一区二区| 国产精品网站在线播放| 久久综合中文字幕| 国产亚洲精品超碰| 精品国产伦一区二区三区免费| 日韩一级片在线观看| 欧美在线不卡视频| 欧美三级午夜理伦三级中视频| 波多野结衣精品在线| www.成人网.com| 欧美熟乱第一页| 日韩美一区二区三区| 久久欧美一区二区| 久久一区二区三区四区| 精品国产亚洲一区二区三区在线观看| 久久理论电影网| 国产精品成人一区二区三区夜夜夜 | 在线精品视频一区二区| 色婷婷激情久久| 日韩免费电影网站| 国产女人aaa级久久久级| 亚洲视频一区在线| 蜜臀91精品一区二区三区| 久88久久88久久久| 狠狠久久亚洲欧美| 91亚洲国产成人精品一区二三| 99久久国产综合精品色伊| 色先锋资源久久综合| 欧美精品一区二区久久久| 亚洲视频在线一区二区|