我经历了一个问题陈述,例如:外科医生必须对三名患者进行手术,但只有两副手套。不得有交叉污染:外科医生不得接触任何患者的血液,任何患者不得接触其他患者的血液。外科医生需要两只手才能工作。她是怎么做到的?在 Alloy 中表达这个问题,并使用分析器找到解决方案。
我已经声明了几个签名,但我坚持声明需要事实和谓词。谁能帮我吗?我的代码是:
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 提前