1、每个进程从0级开始,当它收到其他所有进程的消息后,就进入等级1,当它知道所有其他的进程都已经到了1,就进入2。
2、使用同步模型,允许任意数量的消息在运行过程中丢失。让进程通过把特定决定状态组件设置为0或1,最终输出一个在{0,1}中的决定。进程所做的决定必须满足三个条件:1)一致性:没有两个进程决定出不同的值
2)有效性:
如果所有进程都以0开始,那么0就是惟一可能的决定值。
如果所有进程都以1开始,而且所有消息都被传递,那么1就是惟一可能的决定值。
3)终止性:所有进程最后都会做出决定。
3、随机攻击算法
每个进程i根据在运行中产生的通信模式,都明确地把它的级别保存在变量level中。进程1从[1,r]的整数中选择一个随机的key值,这个值附于所有消息中。另外,所有进程的初值也附于所有消息中。
在r轮之后,如果每个进程计算出来的level值不少于key,且它知道所有进程的初值都是1,那么它决定出1。