首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使剪辑程序工作?

如何使剪辑程序工作?
EN

Stack Overflow用户
提问于 2013-11-08 10:46:53
回答 1查看 791关注 0票数 0

我对剪辑很陌生,我想先看看已经解决的问题,然后试着向后看。在Giarratano-Riley中发现了以下问题:专家系统和编程第三版,并说明如下:

根据主要燃烧材料对火灾进行分类。将下列信息转换为确定火类的规则。

  • A类火灾涉及普通的可燃物,如纸、木头和布。

  • B型火灾包括易燃和易燃液体(如石油和天然气)、油脂和类似材料。

  • C型火灾涉及通电电气设备。

  • D型火灾涉及易燃金属,如镁、钠和钾。在火灾上应该使用的灭火器类型取决于火灾等级。将下列信息转换为规则。

  • A类火灾应用吸热或阻燃灭火器(如水或水基液体和干化学品)扑灭。

  • 乙类火灾应通过排除空气、抑制可燃蒸气的释放或中断燃烧链式反应而成为灭火器。灭火器包括干化学品、二氧化碳、泡沫和溴三氟甲烷。

  • C类火灾应用非导电剂扑灭,以防止短路。如果可能的话,应该切断电源。灭火器包括干化学品、二氧化碳和溴三氟甲烷。

  • D类火灾应用不与燃烧金属发生反应的窒息和吸热化学品灭火。这些化学物质包括三甲氧基硼氧磷和经过筛选的石墨化焦炭。

描述规则中使用的事实。程序的输入应该通过断言燃烧材料的类型作为一个事实。输出应表明哪些灭火器可以使用,以及应该采取的其他措施,例如切断电源。显示您的程序工作在一个材料形式,每个消防类。

然后用Berkely进行求解,代码如下。我的问题是,我如何称呼这些规则并使程序工作?我加载了缓冲区、重置、运行,它只将规则加载到命令行中.

代码语言:javascript
运行
复制
; Define templates used in rules

(deftemplate fire (slot burning-material))

(deftemplate extinguisher-system (multislot function) (multislot extinguisher))

(deftemplate response (multislot actions))

(deftemplate fire-class (slot class))


; Define rules for determining fire classes

(defrule class-A-fire
(fire (burning-material paper | wood | cloth | other-ordinary-combustibles)) =>
(assert (fire-class (class A))))

(defrule class-B-fire
(fire (burning-material oil | gas | greases | other-flammable-combustible-liquids)) =>
(assert (fire-class (class B))))

(defrule class-C-fire
(fire (burning-material energized-electrical-equipment)) =>
(assert (fire-class (class C))))

(defrule class-D-fire
(fire (burning-material magnesium | sodium | potassium | other-combustible-metals)) =>
(assert (fire-class (class D))))

; Define rules for determining the type of extinguisher that should be used on a fire

(defrule class-A-emergency
(fire-class (class A))
=>
(assert (response (actions activate-extinguisher-A))) 
(assert (extinguisher-system (function heat-absorbing combustion-retarding) (extinguisher water water-based-liquids dry-chemicals))))

(defrule class-B-emergency
(fire-class (class B))
=>
(assert (response (actions activate-extinguisher-B))) 
(assert (extinguisher-system (function excluding-air inhibiting-release-of-combustible-vapors interrupting-combustion-chain-reaction) (extinguisher dry-chemicals carbon-dioxide foam bromotrifluoromethane))))

(defrule class-C-emergency
(fire-class (class C))
=>
(assert (response (actions activate-extinguisher-C power-cut))) 
(assert (extinguisher-system (function nonconducting-agent) (extinguisher dry-chemicals carbon-dioxide bromotrifluoromethoane))))

(defrule class-D-emergency
(fire-class (class D))
=>
(assert (response (actions activate-extinguisher-D))) 
(assert (extinguisher-system (function smothering-heatabsorbing-chemicals) (extinguisher trimethoxyboroxine screened-graphitized-coke))))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-08 13:39:10

我想你在这里之前都成功了:

代码语言:javascript
运行
复制
CLIPS> Loading Selection...
Defining deftemplate: fire
Defining deftemplate: extinguisher-system
Defining deftemplate: response
Defining deftemplate: fire-class
Defining defrule: class-A-fire +j+j
Defining defrule: class-B-fire +j+j
Defining defrule: class-C-fire +j+j
Defining defrule: class-D-fire +j+j
Defining defrule: class-A-emergency +j+j
Defining defrule: class-B-emergency +j+j
Defining defrule: class-C-emergency +j+j
Defining defrule: class-D-emergency +j+j
CLIPS> (reset)

现在您需要加载问题数据。例如,对于木柴火灾:

代码语言:javascript
运行
复制
CLIPS> (assert (fire (burning-material wood)))
<Fact-1>
CLIPS> (facts)
f-0     (initial-fact)
f-1     (fire (burning-material wood))

然后,运行规则引擎

代码语言:javascript
运行
复制
CLIPS> (run)
CLIPS> (facts)
f-0     (initial-fact)
f-1     (fire (burning-material wood))
f-2     (fire-class (class A))
f-3     (response (actions activate-extinguisher-A))
f-4     (extinguisher-system (function heat-absorbing combustion-retarding) (extinguisher water water-based-liquids dry-chemicals))

并清理它以检查下一个问题。

代码语言:javascript
运行
复制
CLIPS> (reset)
CLIPS> (assert (fire (burning-material gas)))
<Fact-1>
CLIPS> (run)
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19857121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档