我试图比普通的英语句子更正式地表达规则,并且希望在使用命题方法和某种二元决策树方面有一些方向来说明规则。
假设指定区域之外的对象需要处于特定状态(例如redState
)才能被视为safe
。用简单的英语句子表示;
如果对象在ZoneA之外并且处于RedState状态,那么它是安全的,
但是,在某些情况下,对象可以免除此限制:
如果对象在ZoneA之外,不在RedState中并且是免除,那么它是安全的。
如果对象在ZoneA之外,不在RedState中且不是免除,则它不安全。
区域A中的对象是否处于红色状态并不重要。剩下的规则是:
如果对象包含在区域A中,那么它是安全的。
使用命题公式,我认为这些规则可以表示为
¬
InZoneA
∧RedState
⇒Safe
¬
InZoneA
∧¬RedState
∧Exempt
⇒Safe
¬
InZoneA
∧¬RedState
∧¬Exempt
⇒¬Safe
InZoneA⇒
Safe
我已经咨询了系统规范方法(例如Z),但更感兴趣的是传达规则的简明概念,而不是确保它们在更大的系统中运行。因此,我认为将它们表示为一种二元决策树(图)。我已经阅读了关于这个主题的一些注释,但我不确定它们的使用是最好的方法,还是我正在屠宰它们。我在这些规则中得出的表示如图所示,实线表示True
,虚线表示False
。
我非常感谢您对此表示是否正确或我的方法/思维是否有缺陷的意见。非常感谢!
答案 0 :(得分:1)
据我所知,你所展示的内容很好。
但是,您可能还需要考虑其他一些事项。
例如,如果Exempt在任何级别都可用,它可能希望在其他任何级别之前进行评估,它不依赖于任何级别,并且不依赖于它。通过不必评估任何不会影响结果的其他属性,这将节省您的时间。