CN101576980A - 业务项目顺序的设置方法和装置 - Google Patents
业务项目顺序的设置方法和装置 Download PDFInfo
- Publication number
- CN101576980A CN101576980A CNA2009100872610A CN200910087261A CN101576980A CN 101576980 A CN101576980 A CN 101576980A CN A2009100872610 A CNA2009100872610 A CN A2009100872610A CN 200910087261 A CN200910087261 A CN 200910087261A CN 101576980 A CN101576980 A CN 101576980A
- Authority
- CN
- China
- Prior art keywords
- digraph
- oriented
- operational
- loop
- project
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出了一种业务项目顺序的设置方法,包括:确定项目中的多个业务项目之间的相互依赖关系,并根据所述依赖关系得到有向图;确定所述有向图是否为有向无回路图;如果所述有向图为有向无回路图,则使用拓扑排序方法对所述有向无回路图进行拓扑排序;以及将所述拓扑排序后的所述多个业务项目之间的顺序设置为所述项目中的所述多个业务项目之间的顺序。本发明还提供了一种业务项目顺序的设置装置。根据本发明的业务项目顺序的设置方法和装置,可以有效地避免在系统设置过程中,多个业务项目存在闭环的逻辑关系,进而导致计算错误的问题,并且通过本发明的方法,可以正确地得到业务项目顺序。
Description
技术领域
本发明涉及排序方法,更具体地,本发明涉及业务系统中各业务项目顺序的设置方法和装置。
背景技术
在企业管理中存在着多种业务系统,例如人事薪资系统、人事绩效考核系统、以及供应链配料系统等等。在一个业务系统中,通常都存在多个业务项目,并且每个业务项目之间还存在着依赖关系。业务系统正是通过这些业务项目及其之间的关系来进行运算和管理的。那么各个业务项目之间的处理顺序将可能影响到系统的处理结果。在现有技术中多数的系统都是由人来手工确定和判断可能存在着依赖关系的多个业务项目的处理顺序。如果处理顺序设置的不正确,并且如果业务项目间存在着闭环的依赖关系时也发现不了,就会造成处理结果不正确。
例如,在人事薪资系统中,假设存在6个基本业务项目,包括:A,应发合计;B,扣款合计;C,日扣款;D,基本工资;E,缺勤天数;F,月平均工作日。假设将它们之间的业务关系设计为:
应发合计(A)=基本工资(D)-扣款合计(B);
扣款合计(B)=日扣款(C)×缺勤天数(E);
日扣款(C)=应发合计(A)/月平均工作日(F)。
由上述的业务关系可以看出,应发合计(A)是由基本工资(D)和扣款合计(B)计算得来。我们把这种关系叫做应发合计(A)依赖于基本工资(D)和扣款合计(B),即A依赖于D和B。同理可以看出B依赖于C和E,C依赖于A和F。它们间存在着A依赖于B,B依赖于C,C依赖于A。这样,它们之间的这种A->B->C->A的业务关系刚好组成一个闭环,造成无法确定它们之间的计算顺序。对于这种逻辑关系在系统设置过程中应该避免。当一个业务系统有大量业务项目时,它们之间的依赖关系可能更加地复杂,因此造成人无法直接地判断是否存在这样的闭环。
因此,需要一种能够根据业务系统中各个业务项目间的依赖关系,检测各个业务项目之间是否存在闭环并确定系统的各个业务项目顺序的设置方法。
发明内容
为了解决上述问题,本发明提出了一种业务项目顺序的设置方法,包括:确定项目中的多个业务项目之间的相互依赖关系,并根据所述依赖关系得到有向图;确定所述有向图是否为有向无回路图;如果所述有向图为有向无回路图,则使用拓扑排序方法对所述有向无回路图进行拓扑排序;以及将所述拓扑排序后的所述多个业务项目之间的顺序设置为所述项目中的所述多个业务项目之间的顺序。
在上述方法中,可以根据所述有向图中是否存在闭环回路来确定所述有向图是否为有向无回路图,如果所述有向图中不存在所述闭环回路则确定所述有向图是有向无回路图。
另外,上述方法还可以包括:如果所述有向图不是有向无回路图,则提示存在闭环并停止所述业务项目顺序的设置方法。
在上述方法中所述采用的拓扑排序方法包括:调用深度优先搜索算法来计算所述有向无回路图的每个顶点的完成时间;完成每个所述顶点的完成时间的计算之后,将每个所述顶点按照所述完成时间排序。
根据本发明的另一方面,还提供了一种业务项目顺序的设置装置,其特征在于,包括:有向图形成单元,用于确定项目中的多个业务项目之间的相互依赖关系,并根据所述依赖关系得到有向图;判断单元,用于确定由所述有向图形成单元形成的所述有向图是否为有向无回路图;拓扑排序单元,用于在所述判断单元确定所述有向图为有向无回路图的情况下,使用拓扑排序方法对所述有向无回路图进行拓扑排序;以及顺序设置单元,用于将经过所述拓扑排序单元排序后的所述多个业务项目之间的顺序设置为所述项目中的所述多个业务项目之间的顺序。
其中,所述判断单元可以根据所述有向图中是否存在闭环回路来确定所述有向图是否为有向无回路图,如果所述有向图中不存在所述闭环回路则确定所述有向图是有向无回路图。
其中,所述拓扑排序单元包括:调用单元,用于调用深度优先搜索算法来计算所述有向无回路图的每个顶点的完成时间;以及排序单元,用于在所述调用单元完成每个所述顶点的完成时间的计算之后,将每个所述顶点按照所述完成时间排序。
上述装置还可以包括:提示单元,在所述有向图不是有向无回路图的情况下,提示存在闭环并停止所述业务项目顺序的设置方法。
根据本发明的业务项目顺序的设置方法和装置能够检测业务项目之间是否存在闭环,并且能够确定系统业务项目的正确顺序,从而保证业务系统的处理结果。
附图说明
图1是示出了不存在闭环依赖关系的有向图的示意图;
图2是示出了存在闭环依赖关系的有向图的示意图;
图3是示出了根据本发明的业务项目顺序的设置方法的流程图;
图4是示出了根据本发明的实施例的业务项目顺序的设置方法的流程图;以及
图5是示出了根据本发明的业务项目顺序的设置装置的框图。
具体实施方式
以下,将参考附图详细说明本发明的实施例。
下面参考图1至图3来描述根据本发明的业务项目顺序的设置方法的原理。
图1和图2分别示出了不存在闭环依赖关系和存在闭环依赖关系的有向图的示意图。
如本领域技术人员所知的,在一个业务系统中,各个业务项目一般不是独立存在的。它们通常都依赖于一个或多个其他业务项目。根据这种依赖关系,可以建立一个有连续的有向图结构。
假设一个系统中有4个项目A,B,C,D。如果之间存在着下列关系:
A依赖于B,D;
B依赖于D;
C依赖于B,
则可以得到如图1所示的有向图。如图1所示,以上4个项目A,B,C和D之间不存在闭环依赖关系。
假设业务系统中存在4个业务项目A,B,C和D,并且之间存在着下列关系:
A依赖于B,D;
B依赖于C;
C依赖于A,
则可以得到如图2所示的有向图。如图2所示,这4个项目之间存在闭环A->B->C->A,它们之间相互依赖,这样的有向图就导致计算结果时出错或者流程无法进行。
下面将参考图2和图3的有向图来简单说明有向图排序的技术原理。
在这种有向图中,各结点代表任务或活动,而边表示任务之间的优先关系,即边<a,b>表示a的任务处理完后才能处理b的任务,如果图是有回路(闭环)的就不可能存在这样的线性序列,也就是在业务系统设置过程中应该避免这种情况。没有回路的有向图被称作“有向无环图”。这种有向无环图称为“顶点活动网络”或AOV(Activity On Vertices)网络。
使用深度优先搜索拓,对这种有向无回路图进行拓扑排序,拓扑排序的结果为该图所有顶点的一个线性序列。一个图的拓扑排序可以看成是图的所有顶点沿水平线排成的一个序列,使得所有的有向边均从左指向右。因此,拓扑排序不同于通常意义上对于线性表的排序。
用有向无回路图说明业务项目处理的先后次序。
下列简单算法可以对一个有向无回路图进行拓扑排序。
procedure Topological_Sort(G);
begin
1.调用深度优先搜索DFS(G)计算每个顶点的完成时间f[v];
2.当每个顶点完成后,把它插入链表前端;
3.返回由顶点组成的链表;
end.
为了证明算法的正确性,运用了下面有关有向无回路图的重要引理。
引理1
有向图G无回路当且仅当对G进行深度优先搜索没有得到反向边。
证明:
→:假设有一条反向边(u,v),那么在深度优先森林中结点v必为结点u的祖先,因此G中从v到u必存在一通路,这一通路和边(u,v)构成一个回路。
←:假设G中包含一回路C,我们证明对G的深度优先搜索将产生一条反向边。设v是回路C中第一个被发现的结点且边(u,v)是C中的优先边,在时刻d[v]从v到u存在一条由白色结点组成的通路,根据白色路径定理可知在深度优先森林中结点u必是结点v的后裔,因而(u,v)是一条反向边。
定理1
Topological_Sort(G)算法可产生有向无回路图G的拓扑排序。
证明:
假设对一已知有向无回路图G=(V,E)运行过程DFS以确定其结点的完成时刻。那么只要证明对任一对不同结点u,v∈V,若G中存在一条从u到v的有向边,则f[v]<f[u]即可。考虑过程DFS(G)所探寻的任何边(u,v),当探寻到该边时,结点v不可能为灰色,否则v将成为u的祖先,(u,v)将是一条反向边,和引理1矛盾。因此,v必定是白色或黑色结点。若v是白色,它就成为u的后裔,因此f[v]<f[u]。若v是黑色,同样f[v]<f[u]。这样一来对于图中任意边(u,v),都有f[v]<f[u],从而定理得证。
另一种拓扑排序的算法基于以下思想:首先选择一个无前驱的顶点(即入度为0的顶点,图中至少应有一个这样的顶点,否则肯定存在回路),然后从图中移去该顶点以及由他发出的所有有向边,如果图中还存在无前驱的顶点,则重复上述操作,直到操作无法进行。如果图不为空,说明图中存在回路,无法进行拓扑排序;否则移出的顶点的顺序就是对该图的一个拓扑排序。这个算法虽然简单,但是没有前面一个算法的效率高。
鉴于上面已经证明了深度优先搜索方法可以用于进行拓扑排序,下面将参考附图3和图4来描述本发明的业务项目顺序的设置方法的流程图。图3是示出了根据本发明的业务项目顺序的设置方法的流程图。如图3所示,根据本发明的业务项目顺序的设置方法包括:步骤S302,确定项目中的多个业务项目之间的相互依赖关系,并根据所述依赖关系得到有向图;步骤S304,确定所述有向图是否为有向无回路图;步骤S306,如果所述有向图为有向无回路图,则使用拓扑排序方法对所述有向无回路图进行拓扑排序;以及步骤S308,将所述拓扑排序后的所述多个业务项目之间的顺序设置为所述项目中的所述多个业务项目之间的顺序。
图4是示出了根据本发明的实施例的业务顺序的设置方法的流程图。在该实施例中,业务系统为人事薪资系统,存在6个基本业务项目,包括:
A,应发合计;
B,扣款合计;
C,日扣款;
D,基本工资;
E,缺勤天数;以及
F,月平均工作日。
根据图4所示的流程图,步骤S402,先确定各项目之间的相互依赖关系。假设它们之间的依赖关系设计成如下简单的业务关系:
应发合计(A)=基本工资(D)-扣款合计(B),
扣款合计(B)=日扣款(C)×缺勤天数(E),
日扣款(C)=基本工资(D)/月平均工作日(F)。
在步骤S404,形成有向图,并确认有向图中是否为有向无回路图,在此是通过检测有向图中是否存在闭环依赖关系来确定的。在该实施例中,因为不存在闭环依赖关系,所以进行到步骤S406,采用拓扑排序方法对项目进行排序,并返回排序结果。其中,在步骤S404中,拓扑排序方法包括:调用深度优先搜索算法来计算有向无回路图的每个顶点的完成时间;完成每个顶点的完成时间的计算之后,将每个顶点按照所述完成时间排序。然后,在步骤S406,将排序结果设置为该人事薪资系统中的多个业务项目之间的顺序。对于这个系统,通过上述处理可以得到项目的一种排列顺序F->D->E->C->B->A。在此,本领域的技术人员应该明白,此结果不是唯一的正确顺序。
如果在S404中确定存在闭环依赖关系,则可以提示提示存在闭环并停止业务项目顺序的设置过程。
图5示出了根据本发明的业务项目顺序的设置装置的框图。如图5所示,根据本发明的业务项目顺序的设置装置500包括:有向图形成单元502,用于确定项目中的多个业务项目之间的相互依赖关系,并根据所述依赖关系得到有向图;判断单元504,用于确定由所述有向图形成单元形成的所述有向图是否为有向无回路图;拓扑排序单元506,用于在所述判断单元确定所述有向图为有向无回路图的情况下,使用拓扑排序方法对所述有向无回路图进行拓扑排序;以及顺序设置单元508,用于将经过所述拓扑排序单元排序后的所述多个业务项目之间的顺序设置为所述项目中的所述多个业务项目之间的顺序。
其中,判断单元可以根据所述有向图中是否存在闭环回路来确定所述有向图是否为有向无回路图,其中如果所述有向图中不存在所述闭环回路则确定所述有向图是有向无回路图。
拓扑排序单元506可以包括:
调用单元5062,用于调用深度优先搜索算法来计算所述有向无回路图的每个顶点的完成时间;
排序单元5064,用于在所述调用单元完成每个所述顶点的完成时间的计算之后,将每个所述顶点按照所述完成时间排序。
优选地,还可以包括:提示单元510,在所述有向图不是有向无回路图的情况下,提示存在闭环并停止所述业务项目顺序的设置方法。
综上,根据本发明的业务项目顺序的设置方法和装置,可以有效地避免在系统设置过程中,多个业务项目存在闭环的逻辑关系,进而导致计算错误的问题,并且通过本发明的方法,可以正确地得到业务项目顺序。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种业务项目顺序的设置方法,其特征在于,包括:
确定项目中的多个业务项目之间的相互依赖关系,并根据所述依赖关系得到有向图;
确定所述有向图是否为有向无回路图;
如果所述有向图为有向无回路图,则使用拓扑排序方法对所述有向无回路图进行拓扑排序;以及
将所述拓扑排序后的所述多个业务项目之间的顺序设置为所述项目中的所述多个业务项目之间的顺序。
2.根据权利要求1所述的业务项目顺序的设置方法,其特征在于,根据所述有向图中是否存在闭环回路来确定所述有向图是否为有向无回路图,其中如果所述有向图中不存在所述闭环回路则确定所述有向图是有向无回路图。
3.根据权利要求1或2所述的业务项目顺序的设置方法,其特征在于,还包括:
如果所述有向图不是有向无回路图,则提示存在闭环并停止所述业务项目顺序的设置方法。
4.根据权利要求1所述的业务项目顺序的设置方法,其特征在于,所述拓扑排序方法包括:
调用深度优先搜索算法来计算所述有向无回路图的每个顶点的完成时间;
完成每个所述顶点的完成时间的计算之后,将每个所述顶点按照所述完成时间排序。
5.一种业务项目顺序的设置装置,其特征在于,包括:
有向图形成单元,用于确定项目中的多个业务项目之间的相互依赖关系,并根据所述依赖关系得到有向图;
判断单元,用于确定由所述有向图形成单元形成的所述有向图是否为有向无回路图;
拓扑排序单元,用于在所述判断单元确定所述有向图为有向无回路图的情况下,使用拓扑排序方法对所述有向无回路图进行拓扑排序;以及
顺序设置单元,用于将经过所述拓扑排序单元排序后的所述多个业务项目之间的顺序设置为所述项目中的所述多个业务项目之间的顺序。
6.根据权利要求5所述的业务项目顺序的设置装置,其特征在于,所述判断单元根据所述有向图中是否存在闭环回路来确定所述有向图是否为有向无回路图,其中如果所述有向图中不存在所述闭环回路则确定所述有向图是有向无回路图。
7.根据权利要求5或6所述的业务项目顺序的设置装置,其特征在于,还包括:
提示单元,在所述有向图不是有向无回路图的情况下,提示存在闭环并停止所述业务项目顺序的设置方法。
8.根据权利要求5所述的业务项目顺序的设置装置,其特征在于,所述拓扑排序单元包括:
调用单元,用于调用深度优先搜索算法来计算所述有向无回路图的每个顶点的完成时间;
排序单元,用于在所述调用单元完成每个所述顶点的完成时间的计算之后,将每个所述顶点按照所述完成时间排序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100872610A CN101576980A (zh) | 2009-06-15 | 2009-06-15 | 业务项目顺序的设置方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100872610A CN101576980A (zh) | 2009-06-15 | 2009-06-15 | 业务项目顺序的设置方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101576980A true CN101576980A (zh) | 2009-11-11 |
Family
ID=41271913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100872610A Pending CN101576980A (zh) | 2009-06-15 | 2009-06-15 | 业务项目顺序的设置方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101576980A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156782A (zh) * | 2011-04-14 | 2011-08-17 | 国电南瑞科技股份有限公司 | 基于图论的电力系统公式并行运算管理方法 |
CN102945516A (zh) * | 2012-10-19 | 2013-02-27 | 北京神舟航天软件技术有限公司 | 多级网络计划的进度分析方法 |
CN104182499A (zh) * | 2014-08-16 | 2014-12-03 | 成都飞机工业(集团)有限责任公司 | Aoe网络到多叉树结构的异构转换方法 |
CN104951919A (zh) * | 2015-07-14 | 2015-09-30 | 惠龙易通国际物流股份有限公司 | 集配运输系统的模块控制方法 |
CN108037991A (zh) * | 2017-12-26 | 2018-05-15 | 中山大学 | 一种支持作业依赖关系的定时作业调度方法及系统 |
CN108230164A (zh) * | 2018-01-18 | 2018-06-29 | 中国平安人寿保险股份有限公司 | 一种产品利益项的显示方法、存储介质及终端设备 |
CN109636304A (zh) * | 2018-10-29 | 2019-04-16 | 浙江口碑网络技术有限公司 | 业务系统的发布方法及装置、存储介质、电子装置 |
CN111179071A (zh) * | 2018-11-09 | 2020-05-19 | 北京天德科技有限公司 | 一种基于拓扑排序的区块链交易依赖分析方法 |
CN111179071B (zh) * | 2018-11-09 | 2024-05-31 | 北京天德科技有限公司 | 一种基于拓扑排序的区块链交易依赖分析方法 |
-
2009
- 2009-06-15 CN CNA2009100872610A patent/CN101576980A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156782A (zh) * | 2011-04-14 | 2011-08-17 | 国电南瑞科技股份有限公司 | 基于图论的电力系统公式并行运算管理方法 |
CN102945516A (zh) * | 2012-10-19 | 2013-02-27 | 北京神舟航天软件技术有限公司 | 多级网络计划的进度分析方法 |
CN102945516B (zh) * | 2012-10-19 | 2015-10-28 | 北京神舟航天软件技术有限公司 | 多级网络计划的进度分析方法 |
CN104182499A (zh) * | 2014-08-16 | 2014-12-03 | 成都飞机工业(集团)有限责任公司 | Aoe网络到多叉树结构的异构转换方法 |
CN104951919A (zh) * | 2015-07-14 | 2015-09-30 | 惠龙易通国际物流股份有限公司 | 集配运输系统的模块控制方法 |
CN108037991A (zh) * | 2017-12-26 | 2018-05-15 | 中山大学 | 一种支持作业依赖关系的定时作业调度方法及系统 |
CN108230164A (zh) * | 2018-01-18 | 2018-06-29 | 中国平安人寿保险股份有限公司 | 一种产品利益项的显示方法、存储介质及终端设备 |
CN109636304A (zh) * | 2018-10-29 | 2019-04-16 | 浙江口碑网络技术有限公司 | 业务系统的发布方法及装置、存储介质、电子装置 |
CN109636304B (zh) * | 2018-10-29 | 2021-04-06 | 浙江口碑网络技术有限公司 | 业务系统的发布方法及装置、存储介质、电子装置 |
CN111179071A (zh) * | 2018-11-09 | 2020-05-19 | 北京天德科技有限公司 | 一种基于拓扑排序的区块链交易依赖分析方法 |
CN111179071B (zh) * | 2018-11-09 | 2024-05-31 | 北京天德科技有限公司 | 一种基于拓扑排序的区块链交易依赖分析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101576980A (zh) | 业务项目顺序的设置方法和装置 | |
Rashidi et al. | A complete and an incomplete algorithm for automated guided vehicle scheduling in container terminals | |
Liu et al. | Analysis and optimization of a multistage inventory-queue system | |
Manitz | Queueing-model based analysis of assembly lines with finite buffers and general service times | |
CN104572811B (zh) | 智能公交路线推荐方法、装置及设备 | |
CN104036139B (zh) | 一种移动对象轨迹监测方法 | |
Yeh | A simple MC-based algorithm for evaluating reliability of stochastic-flow network with unreliable nodes | |
Karimi et al. | Proprietor and customer costs in the incomplete hub location-routing network topology | |
Mostafaei et al. | A holistic MILP model for scheduling and inventory management of a multiproduct oil distribution system | |
Sha et al. | Time-varying network optimization | |
TWI398782B (zh) | 時間限制下雙最小路徑輸送之系統可靠度評估方法 | |
Bouman et al. | Detecting activity patterns from smart card data | |
Petrovic et al. | A new approach to two-machine flow shop problem with uncertain processing times | |
Köbler et al. | Interval graph representation with given interval and intersection lengths | |
Yuan et al. | A note on the complexity of flow shop scheduling with transportation constraints | |
Fleischer et al. | Preference-constrained oriented matching | |
Crampton et al. | Fixed-parameter tractability of workflow satisfiability in the presence of seniority constraints | |
Shajin et al. | A relook at queueing-inventory system with reservation, cancellation and common life time | |
Blanchet et al. | Perfect sampling of generalized Jackson networks | |
Blanchet et al. | Exact sampling for some multi-dimensional queueing models with renewal input | |
Wilson et al. | Case study on statistically estimating minimum makespan for flow line scheduling problems | |
Möhring et al. | Scheduling with AND/OR precedence constraints | |
Dyvak et al. | Interval model of the user reactions to messages in thematic groups of social networks | |
Krumke et al. | 2-approximation algorithm for minmax absolute maximum lateness scheduling-location problem | |
Salvagnin | Detecting and exploiting permutation structures in MIPs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20091111 |