亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于CLIPS語(yǔ)言的智能規(guī)劃表示方法研究

        2020-12-22 12:21:16王大勇
        關(guān)鍵詞:定義規(guī)則狀態(tài)

        李 麗,王大勇,張 楊,索 菲

        (遼寧大學(xué) 創(chuàng)新創(chuàng)業(yè)學(xué)院 遼寧 沈陽(yáng) 110036)

        0 引言

        智能規(guī)劃是人工智能的一個(gè)重要分支,其主要思想是在一定的初始條件下,依據(jù)備選動(dòng)作以及動(dòng)作或狀態(tài)的約束進(jìn)行推理,綜合制定出能夠?qū)崿F(xiàn)既定目標(biāo)的動(dòng)作序列的過(guò)程[1-2].智能規(guī)劃廣泛應(yīng)用在車(chē)間調(diào)度、物流管理、智能機(jī)器人、航空航天等領(lǐng)域[3-4].美國(guó)航空航天局(NASA)的EUROPA系統(tǒng)等多項(xiàng)重大項(xiàng)目中均有應(yīng)用.

        CLIPS語(yǔ)言是人工智能領(lǐng)域的一個(gè)經(jīng)典語(yǔ)言,普遍應(yīng)用于專(zhuān)家系統(tǒng)[5].CLIPS(C Language Integrated Production System)語(yǔ)言語(yǔ)法簡(jiǎn)潔、易于操作、性能優(yōu)異,是廣大人工智能研究者青睞的一款語(yǔ)言,分為基于規(guī)則的CLIPS、面向?qū)ο蟮腃LIPS和面向過(guò)程的CLIPS.CLIPS包括事實(shí)列表、知識(shí)庫(kù)和推理機(jī)三個(gè)部分.該語(yǔ)言能夠與C、C++等很好的結(jié)合,適合編寫(xiě)基于規(guī)則框架的軟件.規(guī)劃問(wèn)題一般利用了前提、效果的規(guī)則推導(dǎo),因此CLIPS語(yǔ)言同樣適用在智能規(guī)劃表示中.

        Python語(yǔ)言是目前比較熱門(mén)的一種編程語(yǔ)言,該語(yǔ)言簡(jiǎn)單、易于操作,包含眾多第三方庫(kù),功能強(qiáng)大、應(yīng)用廣泛.目前很多人工智能領(lǐng)域都基于該語(yǔ)言及其第三方庫(kù)開(kāi)展科學(xué)研究.PyCLIPS庫(kù)是Python中嵌入的一個(gè)功能齊全的CLIPS模塊,可以輕松地實(shí)現(xiàn)CLIPS與編程語(yǔ)言之間的交互[6-7].PyCLIPS支持面向?qū)ο蟮木幊?,支持事件觸發(fā)、事實(shí)動(dòng)態(tài)撤銷(xiāo).由于Python和CLIPS都是由C語(yǔ)言編寫(xiě)的,所以能夠?qū)崿F(xiàn)Python與CLIPS的良好交互.

        1 智能規(guī)劃的定義

        智能規(guī)劃分為經(jīng)典規(guī)劃和非經(jīng)典規(guī)劃.經(jīng)典規(guī)劃問(wèn)題是一個(gè)三元組P(S,A,γ),其中S是狀態(tài)的集合,A是動(dòng)作的集合,γ是狀態(tài)轉(zhuǎn)換函數(shù).

        規(guī)劃問(wèn)題常用的定義語(yǔ)言包括STRIPS、ADL、PDDL,其中STRIPS是一種經(jīng)典的規(guī)劃語(yǔ)言,很長(zhǎng)時(shí)間規(guī)劃系統(tǒng)都是采用STRIPS語(yǔ)言進(jìn)行描述的,但其也有很多限制條件,比如要求文字是無(wú)函數(shù)的、時(shí)間是離散的、動(dòng)作的前提和效果必須是合取的.ADL語(yǔ)言對(duì)STRIPS語(yǔ)言進(jìn)行了擴(kuò)展,取消了一些限制,使得其可以對(duì)更多實(shí)際問(wèn)題進(jìn)行編碼.ADL語(yǔ)言包括STRIPS的所有功能,并且還能表達(dá)動(dòng)作的條件效果和量化效果.PDDL語(yǔ)言到目前為止經(jīng)歷了PDDL1.2、PDDL2.1、PDDL+、PPDDL1.0、PDDL3.0、PDDL4J[8]等多個(gè)版本.PDDL4J是一個(gè)面向Java跨平臺(tái)開(kāi)發(fā)的開(kāi)源工具包.很多的規(guī)劃器都是基于Linux系統(tǒng)開(kāi)發(fā)的.

        2 CLIPS語(yǔ)言

        基于規(guī)則的CLIPS語(yǔ)言是一種多范例編程語(yǔ)言,支持正向鏈規(guī)則,不支持反向鏈規(guī)則,不同環(huán)境下格式也會(huì)有所不同.CLIPS包含三種基本元素,分別為簡(jiǎn)單數(shù)據(jù)類(lèi)型、控制數(shù)據(jù)的函數(shù)和添加知識(shí)的結(jié)構(gòu).CLIPS中提供了8種簡(jiǎn)單數(shù)據(jù)類(lèi)型,能夠完成不同任務(wù)的需求.

        CLIPS提供三種知識(shí)表示方式,分別為規(guī)則、函數(shù)和對(duì)象.規(guī)則是基于啟發(fā)式經(jīng)驗(yàn)知識(shí)庫(kù)的首要選擇.函數(shù)包括自定義函數(shù)和通用函數(shù).函數(shù)與面向?qū)ο笤O(shè)計(jì)都是程序式知識(shí)表示的首選.

        啟發(fā)式規(guī)則為特定場(chǎng)景定義了一系列出發(fā)動(dòng)作.設(shè)計(jì)者定義一系列規(guī)則,這些規(guī)則將協(xié)同解決一個(gè)實(shí)際問(wèn)題.規(guī)則由前件和后件組成.前件由一系列條件組成,這些條件必須全部滿(mǎn)足,該條規(guī)則才能被觸發(fā).這種由前件推導(dǎo)出后件的模式恰好與智能規(guī)劃的推導(dǎo)方式一致,如圖1、圖2所示.

        3 用CLIPS語(yǔ)言描述規(guī)劃問(wèn)題

        3.1 事實(shí)表示

        assert命令會(huì)將一個(gè)或多個(gè)事實(shí)添加到事實(shí)列表中,因此用其定義智能規(guī)劃中的添加效果,其語(yǔ)法規(guī)則如下:

        (assert(<事實(shí)名1>)(<事實(shí)名2>)…(<事實(shí)名n>)).

        與assert對(duì)應(yīng)的命令為retract,retract命令會(huì)將一個(gè)或多個(gè)事實(shí)從事實(shí)列表中刪除,因此用其定義智能規(guī)劃中的刪除效果,retract的語(yǔ)法規(guī)則如下:

        (retract <事實(shí)索引1><事實(shí)索引2>…<事實(shí)索引n>).

        這類(lèi)事實(shí)的定義可以借助CLIPS語(yǔ)言中的deftemplate和deffacts來(lái)描述.deftemplate用來(lái)定義狀態(tài)結(jié)構(gòu),deffacts用來(lái)定義智能規(guī)劃中的初始狀態(tài)和目標(biāo)狀態(tài).它們的一般格式為

        (deftemplate<狀態(tài)結(jié)構(gòu)名> [<可選注釋>]

        <槽定義>*),

        (deffacts<狀態(tài)名>[<可選注釋>]

        <事實(shí)>*).

        3.2 規(guī)則表示

        CLIPS語(yǔ)言用defrule定義規(guī)則,智能規(guī)劃中可以用defrule定義動(dòng)作,defrule的一般格式為

        (defrule<動(dòng)作名>[<注釋>]

        <前提>*;前件

        =>

        <添加效果/刪除效果>*;后件.

        3.3 應(yīng)用實(shí)例

        利用上述命令,以經(jīng)典規(guī)劃中的圖規(guī)劃為例,對(duì)于積木世界問(wèn)題進(jìn)行表示,選取初始狀態(tài)和目標(biāo)狀態(tài)如圖3所示.

        圖規(guī)劃的是智能規(guī)劃的一個(gè)重要分支,圖規(guī)劃問(wèn)題是一個(gè)四元組φ(A,O,I,G),其中A是操作的集合,O是對(duì)象的集合,I是初始狀態(tài)的集合,G是目標(biāo)狀態(tài)的集合[9-10].

        利用圖規(guī)劃對(duì)這一問(wèn)題進(jìn)行擴(kuò)張與解搜索,如圖4所示.

        圖中時(shí)間步1的命題列為初始狀態(tài),經(jīng)過(guò)時(shí)間步1的動(dòng)作列、時(shí)間步2的命題列和動(dòng)作列,到達(dá)時(shí)間步3的命題列,即目標(biāo)狀態(tài).經(jīng)過(guò)解搜索得到規(guī)劃解的動(dòng)作集為{(put B C)(put A B)}.

        這一過(guò)程采用CLIPS語(yǔ)言描述,可以利用assert、retract、deftemplate、deffacts、defrule等命令完成.

        用事實(shí)描述正在被處理的積木的目標(biāo),這些目標(biāo)可以用自定義模板來(lái)描述.deffacts自定義事實(shí)結(jié)構(gòu)特別適合程序運(yùn)行前已知知識(shí)的定義,因此用其定義規(guī)劃的初始條件.同理,也可以用deffacts定義規(guī)劃的目標(biāo).具體實(shí)例如下:

        (deftemplate goal

        (slot on(type STRING))

        (slot noting(type STRING)))

        (deftemplate initial-state

        (slot block(type STRING))

        (slot on(type STRING))

        (slot noting(type STRING)))

        目標(biāo)和初始狀態(tài)的實(shí)例如下:

        (deffacts goal

        (on A B)

        (on B C)

        (on C T)

        (nothing A))

        (deffacts initial-state

        (block A)

        (block B)

        (block C)

        (on A T)

        (on B T)

        (on C T)

        (noting A)

        (noting B)

        (noting C))

        利用defrule命令定義規(guī)則put-on,該規(guī)則能夠?qū)⒁粋€(gè)積木搭建在另一塊積木上,規(guī)則定義如下所示.

        (defrule put-on

        ?goal<-(goal(on ?block1 ?block2))

        (block ?block1)

        (block ?block2)

        (nothing ?block1)

        (nothing ?block2)

        ?t<-(nothing ?block2)

        =>

        (assert(on ?block1 ?block2)

        (retract ?t))

        實(shí)例推導(dǎo)過(guò)程:

        (defrule put-on

        ?goal<-(goal(on B C))

        (block B)

        (block C)

        (nothing B)

        (nothing C)

        ?t<-(nothing C)

        =>

        (assert(on B C)

        (retract ?t))

        (defrule put-on

        ?goal<-(goal(on A B))

        (block A)

        (block B)

        (nothing A)

        (nothing B)

        ?t<-(nothing B)

        =>

        (assert(on A B)

        (retract ?t))

        3.4 PyCLIPS庫(kù)應(yīng)用

        CLIPS語(yǔ)言有自帶的開(kāi)發(fā)工具,目前最新版本為CLIPS 6.4.系統(tǒng)開(kāi)發(fā)時(shí)需要將CLIPS嵌入到高級(jí)語(yǔ)言中,主要方法為直接嵌入方式和動(dòng)態(tài)鏈接庫(kù)嵌入方式,兩種方式都存在不同程度的實(shí)現(xiàn)繁瑣、通用性差等缺點(diǎn).PyCLIPS可以實(shí)現(xiàn)CLIPS的所有功能,是Python語(yǔ)言的第三方庫(kù).在使用時(shí)只需要遵循Python常規(guī)方式先行導(dǎo)入clips庫(kù),在Python語(yǔ)言中就可以輕松調(diào)用CLIPS的功能.CLIPS與PyCLIPS常用功能對(duì)照如表1所示.

        表1 CLIPS與PyCLIPS功能對(duì)照表

        程序中部分PyCLIPS語(yǔ)句如下:

        >>> import clips

        >>>clips.Reset()

        >>> t0=clips.BuildTemplate(“goal”,″″″

        (slot on (type STRING))

        (slotnoting (type STRING))

        ″″″)

        >>>f1=clips.Fact(t0)

        ……

        >>>r1=clips.BuildRule(“put-on”,″″″

        ?goal<-(goal (on ?block1 ?block2))

        (block ?block1)

        (block ?block2)

        (nothing ?block1)

        (nothing ?block2)

        ?t<-(nothing ?block2)

        =>

        (assert (on ?block1 ?block2)

        (retract ?t))″″″)

        4 結(jié)束語(yǔ)

        本文研究了基于CLIPS語(yǔ)言的智能規(guī)劃表示方法.利用CLIPS語(yǔ)言的事實(shí)和規(guī)則等概念,描述智能規(guī)劃中的對(duì)象、事實(shí)、狀態(tài)和操作.CLIPS方法是經(jīng)典的人工智能表示語(yǔ)言,結(jié)合Python語(yǔ)言及其第三方庫(kù)更易于應(yīng)用在不同情況的處理.當(dāng)然,相比STRIPS、ADL和PDDL語(yǔ)言,CLIPS語(yǔ)言不是專(zhuān)門(mén)的規(guī)劃語(yǔ)言,描述規(guī)劃問(wèn)題時(shí)會(huì)有所局限.

        猜你喜歡
        定義規(guī)則狀態(tài)
        撐竿跳規(guī)則的制定
        數(shù)獨(dú)的規(guī)則和演變
        狀態(tài)聯(lián)想
        生命的另一種狀態(tài)
        讓規(guī)則不規(guī)則
        Coco薇(2017年11期)2018-01-03 20:59:57
        TPP反腐敗規(guī)則對(duì)我國(guó)的啟示
        熱圖
        家庭百事通(2016年3期)2016-03-14 08:07:17
        堅(jiān)持是成功前的狀態(tài)
        山東青年(2016年3期)2016-02-28 14:25:52
        成功的定義
        山東青年(2016年1期)2016-02-28 14:25:25
        修辭學(xué)的重大定義
        欧美牲交videossexeso欧美| 97中文字幕一区二区| 亚洲一区中文字幕一区| 久久精品成人一区二区三区| 欧美日韩不卡合集视频| 日本高清中文字幕一区二区三区| 日本熟妇视频在线中出| 精品国产午夜肉伦伦影院| 香蕉视频在线精品视频| 久久精品无码专区东京热| 免费高清日本一区二区| 欧美成人家庭影院| 天堂8中文在线最新版在线| 亚洲欧美日韩国产精品网| 日韩有码在线免费视频| 午夜精品久久久久久久无码| 人妻熟妇乱又伦精品视频app| 中文字幕一区韩国三级| 中文字幕乱码亚洲三区| 亚洲av综合a色av中文| 亚洲男人天堂2017| 成人在线视频亚洲国产| 人妻少妇看a偷人无码| 久久精品中文字幕一区| 国产不卡视频一区二区在线观看 | 亚洲av男人的天堂在线| 亚洲日韩精品无码专区网址| 欧美大香线蕉线伊人久久| 人妻精品一区二区免费| 国产精品高潮呻吟av久久黄| 中文字幕免费不卡二区| 中文字幕久热精品视频免费| 亚洲国产精品成人一区二区在线| 国产三级在线观看完整版| а中文在线天堂| 91大神蜜桃视频在线观看| 99视频在线精品免费观看6| а√天堂资源8在线官网在线| 91尤物在线看| 中文字幕隔壁人妻欲求不满| 在线精品国产一区二区三区|