我有一项家庭作业,要证明餐饮哲学家问题的某种变化是否会因僵局或饥饿而受到影响。我怀疑这种情况根本不会受到影响,但我发现这很难解释,我真的不知道从哪里开始。是否存在攻击此类问题的一般策略?
答案 0 :(得分:2)
您可以阅读有关DAG(定向非循环图)的Wait-for graphs(更多详情here)并用于检测死锁。
欢呼声
答案 1 :(得分:0)
首先,我会非常惊讶地听到有一个解决这个问题的一般策略,这个策略并不是那么抽象而无用。
现在,显示变体是安全的,比证明要容易得多:你的任务是证明变体是否安全?如果是这样,你可以减少部分的数量(将哲学家的数量减少到两个或三个)并尝试应用一个或多个formal verification方法。
在实践中,形式验证非常罕见,我可以通过一个例子来说明这一点:我与从事核设施使用的软件的人谈过(没有详细说明),当我问他们是否使用正式验证,我得到了“嗯,是的,我们应该[使用它] ......”