私は、次のような問題文を経験しました: 外科医は 3 人の患者を手術しなければなりませんが、手袋は 2 組しか持っていません。交差汚染があってはなりません。外科医はどの患者の血液とも接触してはならず、患者は別の患者の血液と接触してはなりません。外科医が作業するには両手が必要です。彼女はどうやってそれをしますか?この問題を Alloy で表現し、アナライザーを使用して解決策を見つけます。
私はすでにいくつかの署名を宣言しましたが、require の事実と述語の宣言に固執しました。誰でも私を助けることができますか?私のコードは次のとおりです。
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
\ よろしくお願いします