6、增量式半自动方法:从二元关系到最优继承图

YOLO26算法车道线检测+训练好的模型+360张数据集+pyqt可视化界面.zip 附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[未获取()] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 55 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9512** mAP50-95 | 0.6746 Precision | 0.8796 Recall | 0.8825 train/box_loss | 0.8608 train/cls_loss | 0.7232 val/box_loss | 0.9955 val/cls_loss | 0.5511 【训练过程分析】 这轮训练我经历了从初始到稳定的曲折过程。前 20 个epoch,loss 曲线呈现了陡峭的下降趋势,mAP50 指标从 0.8 开始逐步攀升,仿佛在寻找一个合适的平衡点。然而,从第 21 个epoch 开始,mAP50 的提升速率显著放缓,整体曲线显得有些曲折,有时甚至停滞不前,让我一度以为训练出现了问题。直到第 35 个epoch,loss 开始逐渐趋于平稳,这标志着模型已经找到了一个较好的收敛区间。到了最后的 20 个 epoch,尽管 mAP50 依旧在稳步上升,但提升幅度已经不大,这意味着模型已经接近其性能天花板。 在这个过程中,我重点关注了 box_loss 和 cls_loss 的变化。初期阶段,box_loss 快速下降,从 0.9 逐渐降至 0.86,而 cls_loss 则从 0.75 逐步下降至... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载

增量式半自动方法:从二元关系到最优继承图

在数据处理和图论领域,将二元关系转化为有效的继承图是一个重要的问题。本文将介绍一种增量式半自动方法,它能够逐步将二元关系转化为无环的继承图,并通过一系列优化步骤得到最优继承图。

1. 构建最优继承图的步骤

构建最优继承图主要分为以下三个步骤:
1. 生成初始继承图 :利用偏序关系,将二元关系逐步转化为一个无环的初始继承图(Brute Inheritance Graph,BIG)。
2. 简化初始继承图 :通过移除冗余的实体或属性,对初始继承图进行简化。
3. 验证和优化 :系统使用一些推理规则对简化后的图进行分析,并将其展示给设计者进行验证。设计者的反馈可以帮助我们得到一个最优继承图,避免出现名称冲突、冗余继承等问题。

2. 数学基础

在深入探讨构建方法之前,我们需要了解一些相关的数学基础。

2.1 二元关系

设集合 $E$ 上的二元关系 $R$ 是笛卡尔积 $E \times E$ 的一个子集。我们用 $eRe’$ 表示集合 $E$ 中的元素 $e$(输入)通过关系 $R$ 与元素 $e’$(输出)相连。在集合 $E$ 上的关系中,有恒等关系 $I$ 和空关系 $\varnothing$。如果 $S$ 是 $E$ 的子集,那么 $I(S) = {(e,e) | e \in S}$ 表示 $S$ 在恒等关系 $I$ 下的像集。

对于给定的二元关系 $R$,我们可以定义以下子集:
- 元素 $e$ 的像集 :$e.R = {e’ \in E | e R e’}$
- 元素 $e’$ 的前件集 :$R.e’ = {e \in E | e R e’}$
- 关系 $R$ 的定义域 :$Dom(R) = {e | \exists e’ \in E : e R e’}$
- 关系 $R$ 的值域 :$Range(R) = {e’ | \exists e \in E : e R e’}$

2.2 矩形

设 $R$ 是定义在集合 $E$ 和 $F$ 上的二元关系。$R$ 的一个矩形是一对集合 $(A,B)$,使得 $A \times B \subseteq R$。其中,$A$ 是矩形的定义域,$B$ 是矩形的值域。

需要注意的是,矩形 $(A_i,B_i)$ 与相关的矩形关系 $A_i \times B_i$ 之间的对应关系是双射的,除非 $A_i = \varnothing$ 或 $B_i = \varnothing$。例如,矩形 $(\varnothing, B_1)$ 和 $(A_1, \varnothing)$ 都与空矩形关系 $\varnothing$ 相关联。区分矩形和矩形关系的主要原因是,矩形的概念使我们能够获得格结构。

2.3 最大矩形

设 $(A,B)$ 是定义在集合 $S$ 上的给定关系 $R$ 的一个矩形。如果对于任意满足 $A \times B \subseteq A’ \times B’ \subseteq R$ 的矩形 $(A’,B’)$,都有 $A = A’$ 且 $B = B’$,则称矩形 $(A,B)$ 是最大矩形。

最大矩形的概念并不新鲜,它在不同的文献中有不同的名称,如“完全对”(Complete couple)或“概念”(Concept)。

2.4 增益

从概念经济的角度来看,给定矩形 $R_E = (A,B)$(或相关的矩形关系 $A \times B$)所获得的增益可以通过以下函数计算:
$g(R_E) = (||A|| * ||B||) - (||A|| + ||B||)$
其中,$||A||$ 表示集合 $A$ 的基数,$||B||$ 表示集合 $B$ 的基数。

矩形的主要优点是它们减少了概念的数量,这是一个重要的贡献。随着实体或属性数量的增加,这种方法在最大化概念经济方面表现得更好。

2.5 最优矩形

如果一个矩形 $R_E = (A,B)$ 包含二元关系 $R$ 中的一个元素 $(a, b)$,并且在所有包含 $(a, b)$ 的最大矩形中实现了最大增益 $g(R_E)$,则称该矩形为最优矩形。

例如,图 3.2-a 表示一个关系 $R$,图 3.2-b、3.2-c 和 3.2-d 表示包含对 $(y,3)$ 的三个最大矩形。这三个最大矩形在内存空间方面获得的增益分别为 1、0 和 -1。因此,包含关系 $R$ 中对 $(y,3)$ 的最优矩形是图 3.2-b 所示的矩形,因为它实现了最大增益。

2.6 两个矩形的下确界

设 $(A,B)$、$(A’,B’)$ 和 $(A’‘,B’‘)$ 是给定关系 $R$ 的三个矩形。如果 $A \subseteq A’ \cap A’‘$ 且 $B \subseteq B’ \cup B’‘$,则称矩形 $(A,B)$ 是 $(A’,B’)$ 和 $(A’‘,B’‘)$ 的下确界。

例如,图 3.3 表示矩形 $R_1 = ({a, b},{1, 2})$,它是 $R_2 = ({a, b, c},{1})$ 和 $R_3 = ({a, b, d},{2})$ 的下确界矩形。

2.7 最小覆盖

设 $R$ 是一个二元关系。$R$ 的一个覆盖是一组矩形 $C = {R_{E1}, R_{E2}, \cdots, R_{En}}$,使得对于 $R$ 中的每个元素 $(x,y)$,都存在 $C$ 中的一个矩形 $R_{Ei}$ 包含 $(x, y)$。$R$ 的最小覆盖是 $C$ 中覆盖 $R$ 的最小子集。

2.8 偏序关系

命题 1:在二元关系 $R$ 的最优矩形集合上定义的以下关系是一个偏序关系:对于任意两个最优矩形 $(A_1, B_1)$ 和 $(A_2, B_2)$,$(A_1, B_1) \leq (A_2, B_2)$ 当且仅当 $A_1 \subseteq A_2$ 且 $B_2 \subseteq B_1$。

2.9 最优矩形图

设 $R$ 是定义在集合 $E$ 和 $F$ 上的二元关系。设 $G$ 是一组覆盖 $R$ 的最优矩形。$(G, \leq)$ 构成一个图,该图有一个上确界 $(E,\varnothing)$ 和一个下确界 $(\varnothing,F)$。

2.10 伽罗瓦格

对于定义在有限集合 $E$ 和 $F$ 上的二元关系 $R$,存在一个唯一的伽罗瓦格与之对应。格中的每个元素必须是如 2.3 节所定义的最大矩形,记为 $(X,Y)$,其中 $X \in P(E)$,$Y \in P(F)$。

设 $f$ 和 $g$ 定义如下:
$f = { (X,Y) / \forall x \in X, \forall y \in Y (x , y) \in R}$
$g = f^{-1} = { (Y ,X) / (X,Y) \in f }$

函数对 $(f, g)$ 被称为 $P(E)$ 和 $P(F)$ 之间的伽罗瓦连接,二元关系的伽罗瓦格 $(GL, \leq)$ 是所有最大矩形的集合,带有偏序关系。偏序用于生成伽罗瓦格的图,称为哈斯图(Hasse Diagram)。伽罗瓦格有一个上确界 $(E,\varnothing)$ 和一个下确界 $(\varnothing,F)$。

3. 二元关系的增量式矩形分解

接下来,我们将介绍如何将上述数学概念应用于二元关系的处理,以生成初始继承图。

3.1 增量式矩形分解的原理

对于一个有限的二元关系 $R$,增量式矩形分解是指选择一组最优矩形,这些矩形构成 $R$ 的最小覆盖。二元关系 $R$ 从集合 $E$ 到集合 $F$ 定义了一个二分图 $(E \cup F, R)$ 的边。因此,一个矩形是该二分图的一个完全二分子图。

选择包含二元关系 $R$ 中元素 $(a, b)$ 的最优矩形的问题,可以看作是选择一组最大矩形的子集。这个问题类似于在二分图中选择一个具有最大基数的完全二分子图。

虽然一些文献中提出的算法可以精确解决格构建问题,但它们是组合性的,当有限二元关系的基数较大(超过 16 对)时,这些算法并不适用。因此,我们采用最优矩形的概念来优化节点数量,同时不丢失信息。

3.2 增量式生成最优继承图

增量式生成最优继承图主要包括以下几个方面:
1. 生成初始继承图(BIG) :通过连续调用 INC - RDBR 算法,以增量方式生成与二元关系对应的继承图。
2. 简化初始继承图 :对生成的初始继承图进行简化,移除冗余信息。
3. 与设计者交互 :系统与设计者进行交互,根据设计者的反馈进一步优化图,定义出合适的继承图或最优继承图。

为了说明算法,我们将以一个具体的例子来展示如何生成类层次结构。

设 $E$ 是现实世界中的实体集合,$F$ 是与实体 $E$ 对应的属性集合,$R$ 是从 $E$ 到 $F$ 的二元关系。设 $f$ 是一个函数,$G$ 是与 $R$ 对应的图。设 $x^ $ 是要添加到图 $G$ 中的元素,$R^ $、$E^ $、$F^ $、$G^ $ 分别是添加 $x^ $ 后 $R$、$E$、$F$、$G$ 的版本。

图 $G^ $ 中的节点可以分为以下四种类型:
1.
新节点 :节点的 $X’$ 不在图 $G$ 中,且不能从其父节点推断出来。
2.
旧节点 :节点的 $X$ 和 $X’$ 都没有被修改。
3.
修改节点 :节点的 $X’$ 在图 $G$ 中,但在 $G^ $ 中 $X$ 被修改。
4. 删除节点 :节点 $(X, X’)$ 可以从其父节点推导出来。

修改节点的集合 $X$ 总是等于 $Y \cup {x^ }$,其中 $(Y, Y’)$ 在图 $G$ 中且 $X’ = Y’$。满足 $Y’ \subseteq f(x^ )$ 的节点 $(Y, Y’)$ 在 $G^*$ 中会产生一个修改节点。

创建新节点比修改节点更复杂。图 $G^ $ 中的每个新集合 $X’$ 是 $f(x^ )$ 与图 $G$ 中集合的交集,并遵循非下确界矩形的概念。这要求图 $G^ $ 中的节点 $(X, X’)$ 对应一个最优矩形,即该节点不能从其父节点推导出来。此外,如果 $f(x^ )$ 不包含在 $F$ 中,则将节点 $(x^ , f(x^ ))$ 添加到图 $G^*$ 中。

以下是 INC - RDBR 算法的详细步骤:

Algorithm INC - RDBR (G, (x*, f(x*)), R, G*, R*)
Begin
    /* R is defined on E  F */
    1. E* := E ∪ {x*};
    /* State Initialization of graph’s nodes */
    2. For All node N of G do
        3. N.Flag := False;
        4. Next node;
    5. End For;
    6. If (f(x*) ⊄ F) Then
        /* Add a new node with N’ as is its name, {x*} its domain, f(x*) its range, its flag is equal true. This insertion is done at the level which has cardinality equal ||f(x*)|| */
        7. Add_node (||f(x*)||, N’, {x*}, f(x*), true);
        8. F* := F ∪ f(x*);
    9. End If;
    10. For all Level_N of graph G do
        11. For all node N of Level_N do
            12. If (N.Flag = False) then
                13. If f(x*) = N.Range Then /* Modified node */
                    14. N.domain = N.domain ∪ {x*};
                    15. N.Flag := true;
                    /* This modification is propaged on list of fathers of node N of the level Level_N */
                    16. Propagation_modification (Level_N, list_father(N));
                    16. Exit;
                17. Else /* Int is the variable contained the intersection between f(x*) and N.range */
                    18. Int := f(x*) ∩ N.range;
                    19. If Int = f(x*) Then Exit End If;
                    20. If (Int = N.range) Then /*modified node*/
                        21. N.domain := N.domain ∪ {x*};
                        22. N.flag := true; /* This modification is propagated on list of fathers (parents) of node N of the level Level_N */
                        23. Propagation_modification( Level_N, list_father(N));
                    24. Else
                        /* level_Int is the level correspond to ||Int|| */
                        25. If (Int ⊄ [∪((list_father(N)).range)] or (level_Int > HL and (N.domain ∪ {x*}) = E*) Then /* Add a new node with N’ is its name, its domain is N.domain ∪ {x*}, its range is Int, flag is equal true at level which has ||Int|| as cardinality */
                            26. Add_node (||Int||, N’, N.domain ∪ {x*}, Int, true);
                            27. Update_list_father(N’, N); /* add N’ to list of fathers of N at queue */
                            28. Update_list_children(N, N’); /* add N to list of children of N’ at queue */
                            /* simplification of infimum rectangles in the graph G */
                            infimum_rectangle_Simplification();
                        29. End If
                    30. End If
                31. End If
            32. End If
            33. Next Node;
        34. End For
        35. Next level;
    36. End For
    37. HL := High_Level(G); /* this procedure returns the high level of G */
    38. End

以下是相关的辅助过程:

Procedure infimum_rectangle_Simplification()
Begin
    For all level_N of graph G do
        For all node N of level_N Do
            If (N.range ⊆ [∪([list_father(N)].range)] or (N.domain ≠ E and level_N = Hight_level) Then
                Delete N;
                /* To reorganize links between fathers of N and its children */
                For all node N’ of list_father(N) do
                    For all node N’’ of list_children(N) do
                        Delete N from N’’.list_father(N’’);
                        Delete N from N’.list_father(N’);
                        If (N’’.list_father(N’’) = NULL) then
                            Link (N’, N’’); /* add an edge between N’ and N’’ in the graph */
                            Update_list_father(N’, N’’); /* add N’ to list_father of N’’ at queue */
                            Update_list_children(N’’, N’); /* add N’’ to list_children of N’ at queue */
                        End If;
                    End For
                End For
            End If
            Next node;
        End For
        Next level;
    End For
End.

Procedure propagation_modification(first_level, list_father(N))
Begin
    /*first_level: The level from where the propagation is done on the nodes of father of N*/
    For each father N’ of N do
        If N’.flag = false then
            For level_N’ := (first_level + 1) to Hight_level do
                N.domain := N.domain ∪ {x*};
                N.flag = true;
                /* This modification is propaged on list of father of N’ */
                Propagation_modification(level_N’, N’);
            End For;
        End If;
        Next father node of N;
    End for;
End;

INC - RDBR 算法的输入是图 $G$、关系 $R$ 和要处理的 $R$ 中的一行。输出是图 $G^ $ 和关系 $R^ $。我们从给定的关系和空图开始,沿着二元关系的行逐步处理,相应地修改 $R$ 和 $G$。

下面是一个具体的例子,展示了如何使用该算法生成继承图。

假设我们有一个二元关系,用以下矩阵表示:
| | Credits ($b_1$) | Salary ($b_2$) | Vacations ($b_3$) | Type_of_Training ($b_4$) | Penalty ($b_5$) | Type_of_Viol ($b_6$) |
| — | — | — | — | — | — | — |
| Staff ($a_1$) | 1 | 0 | 1 | 0 | 0 | 0 |
| Student ($a_2$) | 1 | 1 | 0 | 0 | 0 | 0 |
| Vacations_Student ($a_3$) | 1 | 1 | 1 | 1 | 0 | 0 |
| Training_Staff ($a_4$) | 1 | 1 | 1 | 0 | 1 | 0 |
| Bad_Staff ($a_5$) | 1 | 0 | 1 | 0 | 0 | 1 |
| Bad_Student ($a_6$) | 1 | 1 | 0 | 0 | 0 | 1 |

初始时,$R = G = \varnothing$。处理第一行 $L_1 = {{a_1},{b_1,b_3}}$ 时,$f(x^*) = {b_1,b_3}$,由于它不是空集 $F$ 的子集,执行语句 7,创建一个新节点 $N’ = ({a_1},{b_1,b_3})$,并更新 $F$。

处理后续行时,算法会根据节点的类型(新节点、旧节点、修改节点、删除节点)进行相应的操作,逐步生成继承图。例如,处理第二行 $L_2 = {{a_2}, {b_1, b_2}}$ 时,由于 $f(x^ )$ 不是 $F$ 的子集,创建一个新节点 $N’ = ({a_2}, {b_1, b_2})$。然后遍历图中上级为 1 的节点,找到节点 $({a_1},{b_1,b_3})$,计算 $f(x^ )$ 与该节点范围的交集为 ${b_1}$,满足条件后创建一个新节点 $({a_1,a_2},{b_1})$。

通过不断处理每一行,最终可以得到一个完整的初始继承图。然后对这个图进行简化和优化,结合设计者的反馈,得到最优继承图。

这种增量式半自动方法在处理二元关系和构建继承图方面具有很大的优势,它能够有效地处理大规模数据,避免了传统方法在处理大数据时的局限性,同时通过与设计者的交互,能够更好地满足实际需求。

增量式半自动方法:从二元关系到最优继承图

4. 算法处理示例详解

为了更清晰地展示 INC - RDBR 算法的工作过程,我们继续对前面的二元关系矩阵进行详细处理。

4.1 处理第三行 $L_3 = { {a_3}, {b_1, b_2, b_3, b_4 } }$
  • 添加新节点 :首先检查 $f(x^*) = {b_1, b_2, b_3, b_4 }$ 是否包含在 $F$ 中,由于此时不满足包含关系,所以添加一个新节点 $N’ = ( {a_3}, {b_1, b_2, b_3, b_4 } )$,并更新 $F$。
  • 遍历节点并处理 :从图中上级为 2 的节点开始遍历。
    • 遇到节点 $({a_2},{b_1,b_2})$,计算 $f(x^*)$ 与该节点范围的交集 $Int = {b_1,b_2}$,满足修改节点的条件,将该节点修改为 $({a_2,a_3},{b_1,b_2})$,标记该节点,并调用 Propagation_modification 过程对其父节点进行修改。
    • 遇到节点 $({a_1},{b_1,b_3})$,计算交集为 ${b_1,b_3}$,等于该节点的范围,同样将其修改为 $({a_1,a_3},{b_1,b_3})$,并对其父节点进行相应处理。

处理完第三行后,得到的图如下:

a1 a2 a3 b1
a1 a3
b1 b3
a2 a3
b1 b2
a3 b1 b2 b3 b4
4.2 处理第四行 $L_4 = { {a_4}, {b_1, b_2, b_3, b_5 } }$
  • 添加新节点 :添加新节点 $N’ = ( {a_4}, {b_1, b_2, b_3, b_5 } )$。
  • 遍历节点并处理 :
    • 计算 $f(x^*)$ 与某些节点范围的交集,如与节点 $({a_1,a_3},{b_1,b_3})$ 和 $({a_2,a_3},{b_1,b_2})$ 的交集为 ${b_1,b_2,b_3}$,该值可以从父节点推导出来,所以不做处理。
    • 遇到节点 $({a_2,a_3},{b_1,b_2})$,交集等于其范围,将该节点修改为 $({a_2,a_3,a_4},{b_1,b_2})$,并对其父节点进行修改。
    • 遇到节点 $({a_1,a_3},{b_1,b_3})$,同样进行修改操作。

处理完第四行后,得到的图如下:

a1 a2 a3 a4
b1
a1 a3 a4
b1 b3
a2 a3 a4
b1 b2
a3 b1 b2 b3 b4
a4 b1 b2 b3 b5
4.3 处理第五行 $L_5 = { {a_5}, {b_1, b_3, b_7 } }$

按照同样的步骤,添加新节点 $N’ = ( {a_5}, {b_1, b_3, b_7 } )$,并对图中的节点进行遍历和处理,最终得到的图如下:

a1 a2 a3 a4 a5
b1
a1 a3 a 4 a5
b1 b3
a2 a3 a4
b1 b2
a3 b1 b2 b3 b4
a5 b1 b3 b7
a4 b1 b2 b3 b5
4.4 处理第六行 $L_6 = { {a_6}, {b_1, b_2, b_6, b_7 } }$

完成最后一行的处理后,得到完整的初始继承图,即 Brute 继承图:

a1 a2 a3 a4 a5 a6
b1
a1 a3 a 4 a5 a6
b1 b3
a2 a3 a4 a6
b1 b2
a3 b1 b2 b3 b4
a5 b1 b3 b7
a4 b1 b2 b3 b5
a6 b1 b2 b6 b7
5. 简化初始继承图

在得到 Brute 继承图后,需要对其进行简化,移除冗余的实体或属性,避免出现名称冲突、冗余继承等问题。简化过程主要通过 infimum_rectangle_Simplification 过程实现,具体步骤如下:
1. 遍历图中的每个节点 :对于图中每个层级的每个节点,检查其范围是否包含在其父节点范围的并集中,或者该节点的定义域不等于全集且处于最高层级。
2. 删除冗余节点 :如果满足上述条件,则删除该节点,并重新组织其父节点和子节点之间的链接。
- 对于删除节点的每个父节点和子节点,从它们的父节点列表和子节点列表中删除该节点。
- 如果某个子节点的父节点列表为空,则在其父节点和该子节点之间添加一条边,并更新相应的父节点列表和子节点列表。

6. 与设计者交互并优化

简化后的图需要展示给设计者进行验证。设计者可以根据实际需求对图进行反馈,系统根据设计者的反馈进一步优化图,得到最优继承图。具体交互流程如下:
1. 系统展示图 :将简化后的 Brute 继承图展示给设计者。
2. 设计者反馈 :设计者检查图中是否存在名称冲突、冗余继承等问题,并提出修改建议。
3. 系统优化图 :系统根据设计者的反馈,对图进行相应的修改,如添加、删除或修改节点,调整节点之间的关系等。
4. 重复验证和优化 :重复上述步骤,直到设计者认为图满足实际需求,得到最终的最优继承图。

7. 总结

这种增量式半自动方法在处理二元关系和构建继承图方面具有显著的优势:
- 处理大规模数据 :通过增量式的方式,避免了传统组合算法在处理大规模数据时的局限性,能够更高效地处理基数较大的二元关系。
- 优化节点数量 :采用最优矩形的概念,在不丢失信息的前提下,优化了图中的节点数量,提高了系统的性能。
- 满足实际需求 :通过与设计者的交互,能够根据实际情况对图进行调整和优化,更好地满足实际应用的需求。

在实际应用中,可以根据具体的场景和需求,灵活运用该方法,构建出高效、准确的继承图,为数据处理和分析提供有力的支持。

以下是整个过程的 mermaid 流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([开始]):::startend --> B(定义二元关系 R):::process
    B --> C(初始化图 G 和关系 R 为空):::process
    C --> D(选择二元关系 R 的一行进行处理):::process
    D --> E{是否还有未处理的行?}:::decision
    E -- 是 --> F(执行 INC - RDBR 算法):::process
    F --> G(更新图 G 和关系 R):::process
    G --> D
    E -- 否 --> H(生成 Brute 继承图):::process
    H --> I(执行 infimum_rectangle_Simplification 过程):::process
    I --> J(简化 Brute 继承图):::process
    J --> K(展示简化后的图给设计者):::process
    K --> L{设计者是否满意?}:::decision
    L -- 否 --> M(根据设计者反馈修改图):::process
    M --> K
    L -- 是 --> N([得到最优继承图]):::startend

通过这个流程图,可以清晰地看到整个增量式半自动方法的处理流程,从二元关系的定义到最终最优继承图的生成,每个步骤都紧密相连,相互配合,确保了系统的高效运行和结果的准确性。

IEC 61851-23:2023 电动汽车导电充电系统 - 第23部分:直流电动汽车供电设备 - 完整英文电子版(388页) IEC 61851-23:2023适用于用于在供电网络与电动汽车(EV)之间实现能量传输的电动车供电设备,A侧额定最大电压可达1000伏交流电或最高1500伏直流电,B侧额定最大电压最高可达1500伏直流电。 本文件规定了系统A、系统B和系统C的电动车供应设备,定义见附件AA、附件BB和附件CC。 立即下载

相关推荐

phone-harness/mcp 把手机接进AI(源码附安装部署教程)

phone-harness/mcp 做的不是模拟器玩具,而是把真实手机操作能力接成一个标准 MCP 服务:给 Claude、Cursor、ChatGPT、Codex、VS Code 等客户端填一个 URL,完成 OAuth 登录后,AI 就能直接看屏幕、点按、输入、滑动、启动 App,甚至连真机 iPhone 和云端 Android 模拟器都能统一调度。 它的价值在于把过去依赖 Mac、adb、配对线缆和本地环境的移动端自动化,压缩成“一个地址+一次登录”的接入成本,特别适合需要让智能体真正落到手机场景里的测试、演示和流程执行。 项目把能力拆成一组很实用的工具:列设备、启停设备、截图、识别屏幕文字、坐标点击、长按、滑动、输入、按键、查前台应用、启动应用,基本覆盖了手机远程操控的主路径。 收费方式也写得很直白:云端 Android 按分钟计费,iPhone 是包月订阅,临时会话和保存状态的设备也区分清楚,减少了“能不能跑、怎么计费、数据会不会丢”这类实际使用时最常见的疑问。 更重要的是,它没有试图重新发明一套生态,而是紧贴 MCP,把“让 AI 真正碰到手机”这件事做成可插拔基础设施。

PUMA:DOA估计模式的改进实现(Matlab代码实现)

内容概要:本文围绕PUMA(Propagator Method-based DOA Estimation)算法在波达方向(DOA)估计中的改进实现展开,重点在于通过Matlab编程对算法进行仿真与性能验证。作为阵列信号处理领域的高分辨率DOA估计算法,PUMA在传统方法基础上提升了估计精度与鲁棒性,尤其在低信噪比、小样本等恶劣条件下仍能保持优异性能。文中系统阐述了PUMA算法的理论基础、数学模型及其相较于MUSIC、ESPRIT等经典算法的优势,并通过仿真实验进行对比分析,展示其在分辨力、稳定性和计算效率方面的综合优势,适用于实际雷达、无线通信与电子侦察等应用场景。; 适合人群:具备信号处理、通信工程、电子信息或雷达系统等相关专业背景的研究生、科研人员及工程技术人员,熟悉阵列信号处理理论与Matlab编程环境者尤佳; 使用场景及目标:①用于学术研究中DOA估计算法的性能优化与新方法对比验证;②应用于雷达系统、5G/6G通信、智能天线、电子对抗等领域的高精度空间谱估计任务;③作为Matlab仿真实践资源,支持课程设计、学位论文复现与科研项目开发; 阅读建议:建议结合阵列信号处理基础知识体系学习本资源,重点关注PUMA算法的改进机制与核心代码实现逻辑,建议动手运行并调整仿真参数以深入理解不同因素(如阵元数、信噪比、快拍数)对估计性能的影响。

基于 Paxos 协议以及分布式架构,实现了高可用和线性扩展 OceanBase 数据库运行在常见的服务器集群上,不依赖特殊的硬件架构 一个分布式关系型数据库

基于 Paxos 协议以及分布式架构,实现了高可用和线性扩展。OceanBase 数据库运行在常见的服务器集群上,不依赖特殊的硬件架构。一个分布式关系型数据库

优快云首页 发布文章 优快云同步助手 阻尼器磁流变阻尼器MR Damper非线性(阻尼、滞回)特性研究(Matlab代码实现) 46 100 摘要:会在推荐、列表等场景外露,帮助读者

内容概要:本文系统整理了一套面向科研仿真的Matlab/Simulink资源合集,涵盖电力电子、控制理论、信号处理、电力系统、智能优化算法、机器学习、图像处理、路径规划、通信技术、雷达追踪、车间调度等多个前沿科研领域。重点资源包括三相PWM整流器双闭环控制、磁流变阻尼器非线性特性建模、双有源桥(DAB)DC-DC变换器优化控制、电网不平衡下的功率平衡策略、卡尔曼滤波状态估计、多类型路径规划与调度算法等,多数为顶级EI期刊成果复现,配套仿真模型、原理说明、参考文献及代码,具备较强的学术参考价值与工程实践意义。; 适合人群:适用于从事电气工程、自动化、控制科学与工程、信号与信息处理、计算机、机械电子等方向的硕士/博士研究生及科研人员,要求具备Matlab/Simulink基础操作能力及相关专业背景;也适合高校教师指导课程设计、毕业设计或科研项目开发。; 使用场景及目标:①辅助高水平论文研究与期刊成果复现;②支撑课程设计、毕业设计与科研项目开发;③深入理解先进控制策略(如VOC、SVPWM、模糊PID、滑模控制)与系统建模方法;④结合YALMIP等优化工具开展算法设计与验证;⑤拓展智能优化、机器学习、路径规划等跨学科研究能力。; 阅读建议:建议按照资源目录顺序系统浏览,优先关注标注“顶级EI复现”的高价值模型,结合公众号“荔枝科研社”提供的网盘资料与技术文档进行仿真实践,通过动手调试加深对算法逻辑与系统动态特性的理解,提升科研建模与创新能力。

IEC 60393-5:2015 用于电子设备的电位器 - 第5部分:分段规范 - 单匝旋转低功耗线绕和非绕线电位器 - 完整英文电子版(70页)

IEC 60393-5:2015适用于单匝旋转低功耗线绕组和非绕线电位器,额定耗散小于10瓦。这些电位器主要用于电子设备。IEC 60393的这一部分规定了首选评级和特性,并从IEC 60393-1中选择合适的质量评估程序、测试和测量方法。它为此类电位器提供了通用的性能要求。该标准规定了最低性能要求和测试难度。

关于AI开发方法论-以文档为索引的高质量协作开发:让一次现象描述精准命中几个代码块

对AI的编码规范进行约束

计算轴向磁铁和环状磁铁的磁场(Matlab代码实现)

内容概要:本文提供了用于计算轴向磁化圆柱形磁铁与环状磁铁磁场分布的Matlab代码实现方案,基于经典电磁学理论,特别是毕奥-萨伐尔定律或等效磁荷模型,采用数值积分方法对磁体在三维空间中产生的磁场强度进行建模与仿真。程序能够精确计算任意空间点的磁场矢量分量,支持不同几何参数(如内外径、高度、磁化方向)和材料属性的设定,适用于永磁体在电机、传感器、磁悬浮系统等工程电磁装置中的前期分析与优化设计。文档虽简洁,但聚焦核心算法实现,突出物理建模与编程计算的紧密结合。; 适合人群:具备电磁场与电磁波基础知识及Matlab编程能力的高校本科生、研究生、科研人员和电气工程、自动化、应用物理等领域的工程技术人员; 使用场景及目标:①用于教学实践中帮助学生理解轴向磁化永磁体的磁场分布规律;②支撑科研项目中对磁路结构的设计与验证;③为工业应用中磁性元件的布局优化与性能预测提供快速仿真工具; 阅读建议:建议结合电磁场理论教材同步学习,运行代码时应关注变量单位的一致性与网格划分的精度,鼓励通过修改磁体尺寸、磁化强度等参数开展拓展性仿真实验,以深化对磁场空间分布特性的理解。

数字雕刻基于CatmulI-Clark细分与笔刷位移场的ZBrush流程建模:月哨兵角色精细度上限分析

内容概要:本文以“月哨兵”科幻角色数字雕刻工程为实例,系统构建了从程序化粗模到高精度雕刻的完整数学模型。研究涵盖重拓扑、Catmul-Clark细分、笔刷位移场建模、多部件组装及精细度上限分析等核心环节。通过ZRemesher将304,050顶点粗模重拓扑为28,600顶点的全四边形网格,并逐级细分至732万面,实测面数递推F(k)=F₀·4ᵏ完全符合理论。利用ZBrush Python接口注入Standard笔刷操作,首次通过同拓扑OBJ逐顶点差分获得真实位移场数据,实测最大位移0.454873,8.756%顶点发生显著位移。提出“理论-内存-拓扑-视觉”四层精细度上限模型,指出在24GB内存条件下工程合理上限为10⁷~10⁸面,视觉收益受渲染分辨率制约趋于饱和。最终完成755万面的组装网格并经工程文件回读验证一致性。; 适合人群:具备三维建模与数字雕刻基础,熟悉ZBrush工作流,从事角色资产开发或程序化内容生成的技术美术、图形学研究人员及高阶数字艺术家。; 使用场景及目标:①理解Catmul-Clark细分曲面在工业级雕刻流程中的数学机制;②掌握基于脚本驱动的可复核雕刻工程构建方法;③评估高面数模型的内存代价与视觉收益平衡;④学习重拓扑、位移场量化、多部件合并等关键技术的工程实现。; 阅读建议:本文强调数学建模与实证闭环,建议结合附录中的脚本与数据文件进行复现实践,重点关注逐顶点差分、细分递推验证与四层上限模型的构建逻辑,以深入掌握高精度数字雕刻的系统性工程方法。

改进-基于新扩展移相角下的双有源桥DAB变换器仿真(EPS调制、软开关、最小应力优化)(Simulink仿真实现)

内容概要:本文详细介绍了一种基于新扩展移相角控制的双有源桥(DAB)变换器仿真模型,采用EPS调制策略,聚焦于实现软开关技术与最小应力优化目标。通过Matlab/Simulink平台构建系统模型,完整呈现了DAB变换器的控制逻辑、电路拓扑结构及关键参数设计过程。研究重点在于提升变换器的转换效率与功率密度,有效降低开关损耗与器件电压/电流应力,尤其适用于高频隔离型直流变换应用场景。文中系统分析了移相角调控机制对功率流动的影响,并通过仿真验证了控制策略在不同工况下的动态响应性能与优化效果,展示了从理论建模到仿真实现的全流程技术路径。; 适合人群:电力电子、电气工程及其自动化等相关领域的科研人员、研究生以及具备一定仿真基础的高年级本科生;适用于从事新能源汽车、可再生能源并网、微电网与储能系统方向研究的专业技术人员。; 使用场景及目标:①研究DAB变换器在高效能量双向传输中的应用方案;②掌握EPS调制下实现零电压开通(ZVS)与最小电流应力的控制方法;③学习基于Simulink的电力电子系统建模、控制器设计与仿真分析技巧; 阅读建议:建议结合Matlab/Simulink环境动手复现仿真模型,重点关注移相角调节策略、软开关实现条件与系统效率优化之间的关系,配合相关文献深入理解控制机理与工程应用背景。

公司内网软件下载站,公司内网软件下载站

公司内网软件下载站,公司内网软件下载站

通信行业基于Tuned与Systemd的CentOS 7性能调优:自动化资源治理与软中断优化实践

内容概要:本文围绕CentOS 7在通信行业大规模服务器集群中的系统性能优化,提出基于Tuned与Systemd的自动化、可复制、可回滚的性能治理方案。重点涵盖Tuned自定义Profile实现CPU、内存、网络和磁盘的综合调优,结合RPS/RFS与中断亲和优化软中断处理,利用Systemd资源控制对关键服务进行CPU、内存、IO的硬性限额,并通过sar、ethtool等工具构建可观测闭环验证调优效果。案例展示了短信网关在高并发场景下通过资源隔离显著降低延迟、提升稳定性的实践路径。最后展望了向eBPF自适应调优、Kubernetes声明式编排与全面可观测性演进的趋势。; 适合人群:具备Linux系统管理与运维基础,从事通信、云计算或高性能服务端开发的工程师,尤其是负责大规模服务器集群性能调优的技术人员。; 使用场景及目标:①解决通信类业务中软中断瓶颈、单核打满、延迟波动等问题;②实现系统级性能调优策略的标准化、自动化部署与快速回滚;③为时延敏感型服务(如短信网关、VoIP)提供资源隔离与QoS保障; 阅读建议:本文强调“按业务特征定制”与“可复制治理”的工程方法论,建议结合实际生产环境,先在测试集群验证参数有效性,重点关注Tuned的继承机制、RPS掩码设置与Systemd资源配额的协同作用,并持续通过监控数据反馈调优成效。

无刷直流电机BLDCM控制仿真(Simulink仿真实现)

内容概要:本文详细介绍了一种基于Simulink的无刷直流电机(BLDCM)控制仿真方法,重点实现了模糊PID与传统PID等多种控制策略在无刷直流电机调速系统中的对比分析。通过构建转速电流双闭环控制系统,结合无位置传感器控制、滑模观测器等先进技术,系统地展示了不同控制算法在动态响应、稳态精度以及抗干扰能力等方面的性能差异。文章提供了多个典型仿真模型,如三相桥式星型全控电路、双闭环调速系统、模糊神经网络PID控制等,涵盖传统PID、模糊PID及模糊神经网络PID三种控制方式的对比研究,旨在为电机控制领域的科研与教学提供一套完整、详实的技术参考与仿真案例支持。; 适合人群:具备一定自动控制理论基础和Simulink仿真经验的高校学生、科研人员及从事电机驱动系统开发的工程技术人员。; 使用场景及目标:①开展无刷直流电机控制算法的研究与比较,特别是模糊PID与传统PID在调速性能上的差异分析;②用于高校课程设计、毕业设计或科研项目中电机控制系统的仿真验证与优化;③为工业界提供先进控制策略在电机调速系统中应用的参考方案,推动高性能电机控制技术的发展与落地。; 阅读建议:建议读者结合文中提供的多种仿真模型,如模糊神经网络PID、无感控制、滑模观测器等,进行对比实验与参数调试,深入理解各控制策略的设计原理与适用场景。同时,可参考附带的说明文档和参考文献,掌握建模细节与控制器参数整定方法,进一步提升仿真的准确性与工程实用性。

syslog_test.py

syslog_test.py

PowerShell自动化运维实战:进程、服务、端口与计划任务管理 - 配套实验资源

PowerShell Windows 运维诊断实验室 本资源是《Windows 进程、服务、监听端口与计划任务排查》技术文章的配套实验源码,面向 Windows 系统运维、PowerShell 脚本开发及故障诊断学习者。 一、资源内容 资源包含两个核心 PowerShell 脚本: Start-LocalTcpLab.ps1:创建本地 TCP 监听实验环境,支持自定义监听端口及运行时长,便于验证端口与进程的关联关系。 Get-WindowsOpsSnapshot.ps1:只读采集 Windows 进程、TCP 监听端口、系统服务及计划任务信息,支持按名称或端口筛选,并返回结构化诊断结果。 二、主要功能 进程诊断:查询指定进程及相关运行信息。 端口排查:检查 TCP 监听端口及对应进程。 服务检查:查询 Windows 服务状态。 计划任务检查:按名称筛选 Windows Scheduled Tasks。 错误记录:收集诊断过程中产生的错误信息。 报告导出:支持将诊断结果转换为 JSON 格式,便于归档和后续分析。 三、运行环境 Windows 10 / Windows 11 Windows PowerShell 5.1 或 PowerShell 7.x(Windows) 相关检查依赖 NetTCPIP、ScheduledTasks 模块 四、安全设计 诊断脚本采用只读设计,不修改系统配置,不启动或停止服务及计划任务,也不主动写入文件。 TCP 实验仅监听本机 127.0.0.1,具有运行时间限制,不提供 HTTP 服务。 如需采集进程命令行参数,应注意敏感信息脱敏。 五、适用场景 适用于 Windows 运维故障排查、PowerShell 自动化学习、端口占用分析、服务状态检查、计划任务诊断,以及 优快云 技术文章配套实践。

Simulink “双碳”背景下汽车减少碳排放建模与仿真

内容概要:本文围绕“双碳”战略背景,系统阐述了基于Simulink的汽车碳排放建模与仿真技术,重点引入模糊PID控制优化动力系统性能,以实现节能减排目标。文档整合了多个Matlab/Simulink科研仿真案例,涵盖无刷直流电机(BLDC)控制、三相PWM整流器、电池管理系统、路径规划、信号处理、智能优化算法及图像处理等领域,全面展示Matlab在智能控制与绿色能源系统中的应用价值。同时强调科研应兼具严谨逻辑、创新思维与工具赋能,并提供完整的仿真资源链接与学习路径支持实践落地。; 适合人群:具备Matlab/Simulink基础,从事自动化、电气工程、车辆工程、控制科学、电力电子及智能制造等相关领域的科研人员或高年级本科生、研究生;适用于开展节能减排、新能源系统优化、智能控制算法研究等课题的研究者。; 使用场景及目标:①学习在Simulink中构建汽车能耗与排放仿真模型并应用模糊PID进行动态优化;②掌握BLDC、PWM整流器等关键部件的建模与控制策略设计;③借鉴丰富案例提升科研效率,拓展在智能控制、路径规划、信号处理等方向的应用能力;④通过提供的网盘资源获取完整代码与资料,支撑论文写作与项目开发。; 阅读建议:建议按照资源目录顺序系统学习,结合百度网盘提供的Matlab/Simulink代码动手实践,重点关注控制策略的设计、仿真结果的分析与优化过程,同时注重培养科研思维与工程实际问题的结合能力。

西部牛仔_1794033330851.apk

西部牛仔_1794033330851.apk

无刷直流电机BLDC转速电流双闭环+无位置传感器控制仿真【仿真+详解说明报告+参考文献】

内容概要:本文详细介绍了一套针对无刷直流电机(BLDC)的Simulink仿真资源包,核心内容包括转速电流双闭环控制与无位置传感器控制技术,采用滑模观测器(SMO)实现无感控制,并提供了模糊PID与传统PID控制策略的对比仿真模型。资源包包含三个完整的Simulink仿真模型、详尽的说明报告及参考文献,系统展示了BLDC电机在不同控制算法下的动态响应特性与控制精度。重点涵盖控制器设计、观测器构建、参数整定方法以及高性能调速系统的实现路径,有助于深入理解现代电机控制中的关键理论与工程实践问题。; 适合人群:适用于电气工程、自动化、控制科学与工程等领域的高校本科生、研究生及从事电机驱动系统研发的工程技术人员;要求具备一定的MATLAB/Simulink操作能力和自动控制理论基础。; 使用场景及目标:① 掌握无刷直流电机双闭环控制系统建模与仿真方法;② 深入研究无位置传感器控制中滑模观测器的设计原理与实现过程;③ 对比分析模糊PID与传统PID在电机调速系统中的鲁棒性、响应速度与抗干扰能力;④ 支持课程设计、毕业设计、科研项目验证或高水平论文复现工作。; 阅读建议:建议结合提供的详解说明报告逐步运行并调试各仿真模型,重点关注控制器参数调节、滑模观测器抖振抑制策略及不同控制方式下的转速响应曲线对比,深入理解控制机理;同时推荐查阅配套参考文献以夯实理论基础,提升科研分析与实践创新能力。

状态估计变分贝叶斯近似的递归噪声自适应卡尔曼滤波(Matlab代码实现)

内容概要:本文详细介绍了一种基于变分贝叶斯近似的递归噪声自适应卡尔曼滤波方法,并配套提供了完整的Matlab代码实现。该方法旨在解决传统卡尔曼滤波在面对过程噪声和观测噪声统计特性未知或时变情况下性能退化的问题,通过引入变分贝叶斯推断技术,实现对噪声协方差的在线联合估计与动态更新,从而提升滤波器在非平稳环境中的状态估计精度与鲁棒性。文中系统阐述了算法的理论基础、数学推导流程、递归计算结构及关键实现步骤,涵盖了概率图模型构建、似然函数近似、变分迭代优化等核心技术环节,适用于复杂动态系统中的自适应信号处理与状态估计任务。; 适合人群:具备良好线性系统理论、概率统计与贝叶斯估计基础,并熟悉Matlab编程的研究生、科研人员及从事导航、控制、传感融合等相关领域的工程技术人员; 使用场景及目标:①应对实际工程中因噪声先验信息缺失或环境变化导致的标准卡尔曼滤波失效问题;②应用于无人机导航、智能驾驶、工业状态监测、传感器融合等高精度自适应估计场景,提升系统在不确定环境下的稳定性和准确性; 阅读建议:建议读者结合所提供的Matlab代码逐模块研读,重点理解变分贝叶斯迭代过程中噪声协方差矩阵的后验更新机制,并通过仿真实验对比所提方法与标准KF/EKF/UKF的估计性能差异,深入掌握噪声自适应滤波的设计思想与实现技巧。

上一篇: 5、思考小,更小,最小:为手持设备设计网站的挑战与策略
下一篇: 8、图像块与纹理基元的局部位移估计
juice
博客等级 码龄26年 336粉丝 1450原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值