欧拉图的构造方法及基于该方法进行测试序列优化的方法

文档序号:6384737阅读:1023来源:国知局
专利名称:欧拉图的构造方法及基于该方法进行测试序列优化的方法
技术领域
本发明涉及中国列车运行控制系统,尤其涉及一种欧拉图的构造方法及基于该方 法进行测试序列优化的方法。
背景技术
测试案例为对列车车载设备某个功能特征进行的验证与测试。执行特定测试案例 要求系统必须到达此测试案例所需的初始状态。这些初始状态只有通过执行特定系统功能 才能达到,并且这些特定系统功能包含在其它测试案例中。
测试序列是通过一定的方法对测试案例进行串联,从而形成一个可以实际运行的 测试场景,并确保测试结束后,所有的测试案例都被测试过至少一次。测试序列不是随意产 生的,而是遵循一定的方法,将若干测试案例有序串联起来,形成一个测试场景式的有序测 试案例集。
由于测试案例数量庞大,并且车载设备功能复杂,在测试序列中,重复使用测试案 例的情况较多。为了更方便的对测试序列进行优化,可将一组测试序列转化为有向图,列车 各工作模式作为有向图的顶点,测试子序列作为顶点之间的有向弧,测试子序列中所包含 的测试案例数量看作有向弧的费用。
现有技术中通过对有向图进行欧拉图的构造来优化有向弧,以减少测试案例的重 复使用。但是在进行欧拉图构造时,辅助弧的添加个数较多,额外占用一定的内存空间,影 响了欧拉图构造的效率,并且,通过欧拉图构造后的有向图重复弧的数量较大,导致测试序 列的成本增加。发明内容
本发明的目的是提供一种欧拉图的构造方法及基于该方法进行测试序列优化的 方法,减少了辅助空间的使用,提高了欧拉图构造的效率。
本发明的目的是通过以下技术方案实现的
一种欧拉图的构造方法,该方法包括
判断有向图中各个顶点的出度与入度是否平衡,其中,有向图中所有的顶点间的 弧均有出入方向,出度为以当前顶点为起始点的弧的总数,入度为以当前顶点为终点的弧 的总数;
若顶点A的出度与入度的差为W,则查找距离所述顶点A最近的W个顶点,分别以 所述W个顶点为起始点构建以所述顶点A为终点的重复弧,或分别以所述顶点A为起始点 分别构建以所述W个顶点为终点的重复弧。
一种测试序列优化的方法,该方法包括
为有向图添加重复弧后,通过弗罗莱Fleury算法对添加重复弧后的有向图进行 欧拉回路的计算,获得以某一顶点为起始点并通过所有弧至少一次的测试序列。
由上述本发明提供的技术方案可以看出,通过利用贪婪策略,使局部最优达到全局最优,逐步构造最优解,并减少了辅助空间的使用,提高了欧拉图构造的效率。


为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用 的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 附图。
图1为本发明实施例一提供的一种欧拉图的构造方法的流程图2为本发明实施例二提供的又一种欧拉图的构造方法的流程图3为本发明实施例二提供的一种测试序列有向图的示意图4为本发明实施例二提供的一种构造重复弧后的有向图的示意图5为本发明实施例三提供的一种测试序列优化的方法的流程图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整 地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本 发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施 例,都属于本发明的保护范围。
实施例一
图1为本发明实施例一提供的一种欧拉图的构造方法的流程图,该方法主要包括 如下步骤
步骤101、判断有向图中各个顶点的出度与入度是否平衡。其中,顶点为列车的各 个工作模式,有向图中所有的顶点间的弧均有出入方向,出度为以当前顶点为起始点的弧 的总数,入度为以当前顶点为终点的弧的总数,所述弧为工作模式间的测试子序列。
判断有向图是否为欧拉图,主要判断有向图中各个顶点的出入度是否平衡,即判 断以当前顶点为起始点的弧个数与以当前顶点为终点的弧个数是否相同。
步骤102、若顶点A的出度与入度的差为W,则查找距离所述顶点A最近的W个顶 点,分别以所述W个顶点为起始点构建以所述顶点A为终点的重复弧,或分别以所述顶点A 为起始点分别构建以所述W个顶点为终点的重复弧。
若出入度不平衡则表明当前有向图不是欧拉图,则需要添加重复弧。利用贪婪策 略求解通过局部最优达到全局最优,即在每个阶段选取一个最优决策,逐步构造最优解。 从问题的初始状态出发,通过若干次的贪婪选择而得出最优值(或较优解)。
例如,分别计算各个顶点的出入度是否平衡,当顶点A出入度不平衡时,求出度与 入度的差W,当出度大于入度时,则查找距离所述顶点A最近的W个顶点,分别以所述W个 顶点为起始点构建以所述顶点A为终点的重复弧;当入度大于出度时,则分别以所述顶点A 为起始点分别构建以所述W个顶点为终点的重复弧。当通过添加重复弧平衡顶点A的出入 度后,再为其他出入度不平衡的顶点添加重复弧,直至所有顶点的出入度平衡。
本发明实施例通过利用贪婪策略,使局部最优达到全局最优,逐步构造最优解,并 减少了辅助空间的使用,提高了欧拉图构造的效率。
实施例二
为了更具体的介绍本发明,下面结合附图2-4对本发明做进一步描述。如图2所示,包括以下步骤
步骤201、判断有向图中各个顶点的出度与入度是否平衡。若不平衡则转入步骤 202。
其中,顶点为列车的各个工作模式,有向图中所有的顶点间的弧均有出入方向,出度为以当前顶点为起始点的弧的总数,入度为以当前顶点为终点的弧的总数,所述弧为工作模式间的测试子序列。
若出入度不平衡则表明当前有向图不是欧拉图,则需要添加重复弧来平衡顶点的出入度,此时转入步骤202。
步骤202、计算有向图的距离矩阵及路由矩阵。当前有向图不是欧拉图,需要添加重复弧来平衡定点的出入度。而在此之前需要计算所述有向图的距离矩阵与路由矩阵,可以使用弗洛伊德Floyd算法来计算,其计算流程为从任意2个顶点i到j的距离的带权邻接矩阵(i与j相连)开始,每次插入一个顶点k,然后将i到j间的已知最短路径与以插入顶点k作为中间顶点的路径距离相比较,取较小值为新的距离矩阵。并以此循环迭代,依次构造出η个矩阵D(1),D (2),……D (η)。
例如,对如图3所示的有向图计算距离矩阵的结果为
权利要求
1.一种欧拉图的构造方法,其特征在于,该方法包括 判断有向图中各个顶点的出度与入度是否平衡,其中,有向图中所有的顶点间的弧均有出入方向,出度为以当前顶点为起始点的弧的总数,入度为以当前顶点为终点的弧的总数; 若顶点A的出度与入度的差为W,则查找距离所述顶点A最近的W个顶点,分别以所述W个顶点为起始点构建以所述顶点A为终点的重复弧,或分别以所述顶点A为起始点分别构建以所述W个顶点为终点的重复弧。
2.根据权利要求1所述的方法,其特征在于,该方法还包括 根据弗洛伊德Floyd算法计算所述有向图的距离矩阵与路由矩阵,井根据所述距离矩阵与所述路由矩阵查找距离所述顶点A最近的W个顶点; 其中,所述距离矩阵表示两个顶点最短路径的长度,所述路由矩阵表示各个顶点的连接路径。
3.根据权利要求1所述的方法,其特征在于,该方法还包括 当所述有向图中重复弧的数量最少,且每个重复弧的费用权值最小时,所述重复弧的总费用最低,其中重复弧的费用权值为该弧包含的测试案例的个数;
4.一种测试序列优化的方法,其特征在于,该方法包括基于权利要求1-3任一项所述的方法为有向图添加重复弧; 通过弗罗莱Fleury算法对添加重复弧后的有向图进行欧拉回路的计算,获得以某ー顶点为起始点并通过所有弧至少一次的测试序列。
5.根据权利要求4所述的方法,其特征在于,该方法还包括 通过回溯法对所述有向图的路由矩阵进行回溯,获得所有重复弧的两顶点对应的最短路径; 使用所述重复弧的两顶点对应的最短路径替换所述测试序列中的重复弧。
6.根据权利要求5所述的方法,其特征在于,所述使用所述重复弧的两顶点对应的最短路径替换所述测试序列中的重复弧之后还包括 将测试序列中所有弧的费用权值相加获得测试序列的总费用;所述总费用表示完成该测试序列所需费用,当重复弧的总费用最低时,测试序列的总费用最低。
全文摘要
本发明公开了一种欧拉图的构造方法及基于该方法进行测试序列优化的方法,其中,欧拉图构造的方法包括判断有向图中各个顶点的出度与入度是否平衡,其中,有向图中所有的顶点间的弧均有出入方向,出度为以当前顶点为起始点的弧的总数,入度为以当前顶点为终点的弧的总数;若顶点A的出度与入度的差为W,则查找距离所述顶点A最近的W个顶点,分别以所述W个顶点为起始点构建以所述顶点A为终点的重复弧,或分别以所述顶点A为起始点分别构建以所述W个顶点为终点的重复弧。通过采用本发明公开的方法减少了辅助空间的使用,提高了欧拉图构造的效率。
文档编号G06F19/00GK103049656SQ20121055545
公开日2013年4月17日 申请日期2012年12月19日 优先权日2012年12月19日
发明者杨志杰, 徐宁, 吕旌阳, 王财进, 王瑞, 王丁, 刘佳 申请人:中国铁道科学研究院, 中国铁道科学研究院通信信号研究所, 北京市华铁信息技术开发总公司, 北京锐驰国铁智能运输系统工程技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1