0
我已经经历了一个问题陈述,如: 外科医生必须对三名患者进行手术,但只有两副手套。交叉污染必须不存在:外科医生不得接触任何患者的血液,并且患者不得接触另一位患者的血液。外科医生需要两只手才能工作。她是如何做到的?在Alloy中表达这个问题,并使用分析器找到解决方案。合金事实宣言
我已经decalared几个签名,但我坚持需要事实和谓词的声明。谁能帮我吗?我的代码是:
module Question1
sig Doc_Patient {
doc : one Surgeon,
patient: set Patient,
relation1: doc one->one Hand,
//relation2: hand one->set Gloves
//relation3:
}
sig Surgeon{
//hands: one Hand,
blood1: one Blood
}
sig Blood { }
one sig Hand {
material: set Gloves
}
sig Gloves { }
sig Patient {
blood2: one Blood
}
fact {
}
pred show(){ }
run show for 1 Doc_Patient,1 Surgeon,1 Hand,4 Blood,3 Patient,2 Gloves
\ thanx提前