我是合金新手,目前正在閱讀教程。我對事物的邏輯有點困惑。下面是我想要做的一件非常基本的事情。合金初學者的概念
- 一個人只能做至多任務
- 一個任務可以最多由1個人做
- 一個人只能做他/她能夠
當我運行以下,每個人都有相同的技能(所有技能),每項任務都需要相同的技能(所有技能)。每個人至少分配1個任務,但他們有時會得到相同的任務。
在此先感謝
some sig Skills{ }
some sig Person {
has: some Skills,
assigned: lone Task
}
some sig Task
{
requires: some Skills
}
{
// everyone must have the required task skills for assignment
all p:Person | p.has= requires
}
pred Valid()
{
//everyone must be assigned to single task
all p:Person | lone t:Task| p.assigned in t
// no one can have the same task
no p1:Person , p2:Person | p1.assigned not in p2.assigned
}
run Valid
改變困境,只\t'不P1:人|所有p2:Person | p2.assigned中的p1.assigned似乎比以前更好,但在某些情況下仍然存在相同的問題。此外,爲什麼即使有超過1種技能,每次人際關係和任務關係都會變成同樣的技能? – mechanicum