数学中的哈斯图如何构造?附实例

首先写出偏序集合;

其次找出COV,即找出盖住,盖住就是一个集合的两个元素之间不能有传递关系,比如<1,2>,在这之间不可以出现类似于<1,4>、<4,2>这样的关系存在以及在这里不能出现x=y的集合即不可能出现<x,x>这样的;

最后构造哈斯图,值域一般在最上方,定义域在下方。

例子:设A为54的因子构成的集合R A×A, x,y∈A, xRy x整除y.画出偏序集的哈斯图,
并求最大元最小元极大元极小元.

在这里先写出R = {1,2,3,6,9,18,27,54};

其满足x整除y关系的集合为
C = {
<1,1>
<1,2>,< 2,2>
<1,3>,< 3,3>
<1,6>,< 2,6>,< 3,6>,<6,6>
<1,9>,< 3,9>,<9,9>
<1,18>,<2,18>,< 3,18>,<6,18>,<9,18>,<18,18>
<1,27>,< 3,27>,<9,27>,<27,27>
<1,54>,<2,54>,< 3,54>,<6,54>,<9,54>,<18,54>,<27,54>,<54,54>
}

COV C = {<1,2>,<1,3>,<2,6>,< 3,6>,< 3,9>,<6,18>,<9,18>,<9,27>,<18,54>,<27,54>}

现在就可以画哈斯图了,值域中出现的值放在上面,定义域的在下方。

在这里插入图片描述

其中极大元为54,极小元为1

### 绘制离散数学中的哈斯图 #### 定义与基本概念 哈斯图用于直观展示有限偏序集的结构。这种图表仅显示覆盖关系,即如果存在一条路径从节点 \( x \) 到另一个节点 \( y \),并且在这两点之间不存在其他任何中间点,则认为 \( x \) 覆盖 \( y \)[^3]。 #### 构建过程详解 为了构建给定偏序集中元素之间的哈斯图: - **确定集合成员**:首先识别出所有参与比较的对象组成的集合\( A \)。 - **建立二元关系矩阵**:对于任意一对不同的元素\( (x, y) ∈ A × A \),判断是否存在这样的条件使得\( x ≤ y \)成立;这里使用的符号取决于具体的应用场景,在整除的例子中就是指\( x | y \)(读作"x 整除 y")。 - **提取直接前驱/后继对**:遍历上述得到的关系表,寻找那些满足严格小于等于但又没有其它更小值介于其间的情况——这些便是所谓的“覆盖”。 - **布局绘图**: - 将较小者放在较低位置; - 较大者置于上方; - 使用直线连接每一对具有直接前后顺序关联性的顶点; - 如果某个元素既不是最大也不是最小,则它应该位于上下层之间适当的高度上以保持层次分明。 下面给出一个具体的Python实现来帮助理解这一流程: ```python import networkx as nx from matplotlib import pyplot as plt def draw_hasse_diagram(divisors): G = nx.DiGraph() # Add nodes and edges based on divisibility relation. for i in divisors: for j in divisors: if i != j and not any(i % k == 0 and k % j == 0 for k in set(divisors)-{i,j}): if i % j == 0 or j % i == 0: G.add_edge(min(i, j), max(i, j)) pos = {node:(divisors.index(node)%len(divisors)//2,-divisors[::-1].index(node))for node in G.nodes()} fig, ax = plt.subplots(figsize=(8,6)) nx.draw(G,pos=ax.get_position(),with_labels=True,node_size=500,node_color='lightblue',font_weight="bold",arrows=False) plt.show() # Example usage with factors of number 54. draw_hasse_diagram([d for d in range(1,55)if 54%d==0]) ``` 此代码片段利用`networkx`库创建了一个有向无环图(DAG),并通过matplotlib进行了可视化呈现。注意这里的边方向是从下往上指向更大的数,这符合传统意义上的哈斯图画法。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值