algorithm - Lamport同步算法讨论中的“部分排序”和“全排序”是什么意思?
问题描述
我的理解是,部分排序和全排序是两组规则。
偏序有三个规则:
(1)如果a和b是同一进程中的两个事件并且a在b之前,那么a->b。
(2) ...
(3) ...
那么什么是全排序呢?
为什么会这样命名?
解决方案
这些名称源于这样一个事实,即在部分顺序中并非所有元素都是可比较的,而在总顺序中所有元素都是可比较的:
集合元素的偏序由所有元素必须持有的三个属性a
定义,b
并且c
:
这个定义抓住了对事物进行排序意味着什么的共同直觉的本质:每个事物都与自身具有相同的“大小”,它可以比另一个事物“小”,但另一个事物并不比自身“小”。最后,如果一个东西比另一个“小”,它比三分之一“小”,那么它也比第三个“小”。
全序是具有附加属性的偏序:
- 连接性:
a ≤ b
或b ≤ a
这个定义说,在总的顺序上,任何两件事都是可比的。而在部分顺序中,事物既不需要比另一个“小”,也不需要相反,在总顺序中,每个事物要么比另一个“小”,要么相反。
推荐阅读
- java - 在Java中提取正则表达式内部值
- postgresql - 删除函数将删除的记录存储为 json
- tensorflow - ValueError: 层 cu_dnnlstm 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。收到的完整形状:[无,175]
- django - 这是使用 django rest 框架将帖子添加到收藏夹的正确方法吗?
- r - 在 R 中,如何将列名打印成向量形式?
- c - Visual Studio 2019 调试嵌入式目标。如何强制 VS 不将其视为 Windows 可执行文件
- c# - 当我使用依赖注入读取 Azure Function 的应用程序设置时,配置为空
- apache-spark - 从 Spark Dataframe 中的数组中提取单个元素
- macos - OS X Leopard Aqua 主题是否仍然存在于现代 macOS Catalina 中?
- angular - Angular 与 Chart.js,不显示数据