一种基于Floyd算法的自动查询方法技术

技术编号:35057938 阅读:11 留言:0更新日期:2022-09-28 11:07
本发明专利技术涉及数据信息查询与判断技术领域,尤其涉及一种基于Floyd算法的自动查询方法,包括如下步骤:步骤1.系统运行,进行实例化执行器;步骤2.执行器实例化后注册到带权有向图,生成带权有向图;步骤3.调用Floyd算法获取所有实例化后的执行器之间最短距离和路径;步骤4.外部查询器通过图架构获取起始执行器和目标执行器;步骤5.通过起始执行器和目标执行器获取执行器之间的最短距离和路径;步骤6.执行目标执行器链路获取最终结果并返回;步骤7.重复上述步骤,本发明专利技术只要查询过一次的数据,在其它函数中再次查询时,不再增加系统IO,同时当维护关系发生变更时,无需修改原有代码。时当维护关系发生变更时,无需修改原有代码。时当维护关系发生变更时,无需修改原有代码。

【技术实现步骤摘要】
一种基于Floyd算法的自动查询方法


[0001]本专利技术涉及数据信息查询与判断
,尤其涉及一种基于Floyd算法的自动查询方法。

技术介绍

[0002]本部分中的陈述仅提供与本公开有关的背景信息并且不构成现有技术。
[0003]在计算机科学中,Floyd算法是一种在具有正或负边缘权重的加权图中找到最短路径的算法,算法的单个执行将找到所有顶点对之间的最短路径的长度。虽然它不返回路径本身的细节,但是可以通过对算法的简单修改来重建路径。自动查询是基于智能系统进行的一种全过程高效率低误差的计算作业,其中常常用到的自动查询方法包括二分查找算法、插值查找算法、斐波那契查找算法,上述查询算法均需要一个特定的前提,数据对象必须有序,鉴于此,已经公开的技术也在进行相应数据处理类型的调整与适配,目前已经出现的技术包括基于树状流程构思的线性索引查找。
[0004]但是,上述提到的算法依然无法较好的解决当前企业级应用编码过程中.服务与服务之间的数据获取以及自身服务数据获取,需要通过各个不同的服务提供各种方式的接口获取数据,再做相应的业务逻辑处理。实际的编码实践中,在一次请求中,一个业务逻辑的处理,是由多个业务逻辑函数组合而成,而不同的函数可能是由不同的人编写,因此每个函数中可能都要调用相同的方法获取相同的数据,这就导致增加系统IO开销和重复的网络请求以及不必要的查询步骤。

技术实现思路

[0005]专利技术人通过研究发现:程序开发人员在进行上述企业级应用的开发时,常常会在一次请求中,多次进行重复的查询步骤,造成代码冗余。
[0006]本公开的目的在于提供一种基于Floyd算法的自动查询方法,通过生成执行器继而生成带权有向图,对带权有向图使用floyd算法获取所有执行器之间最短距离和路径的方法,来解决现有技术在企业级应用开发中,面向相同函数时,不同的编码人员会采用相同的方法重复进行同类数据获取,造成代码冗余的技术问题。
[0007]根据本公开的一个方面,提供一种基于Floyd算法的自动查询方法,具体实现的技术方案为,包括如下步骤:步骤1.系统运行,进行实例化执行器;步骤2. 执行器实例化后注册到带权有向图,生成带权有向图;步骤3.调用Floyd算法获取所有实例化后的执行器之间最短距离和路径;步骤4.外部查询器通过图架构获取起始执行器和目标执行器;步骤5.通过起始执行器和目标执行器获取执行器之间的最短距离和路径;步骤6.执行目标执行器链路获取最终结果并返回;步骤7.重复上述步骤,直至完成规定查询作业次数,循环结束,其中规定查询作业次数为实际作业查询需要次数。
[0008]需要说明的是,专利技术人在进行日常研发工作中,总是会遇到不同程序员在进行编码开发作业时,遇到相同函数后,会采用相同的代码进行开发,这个过程会在无意间增加系
统的重复输入输出,也会增加代码的冗余,导致系统的缓存空间占用较多,影响开发人员的开发效率,同时专利技术人发现如果系统需要进行维护,那么维护关系必然会出现改变,当改变发生时,需要进行代码调整,基于此,专利技术人设想一种可以无需更改代码即可实现维护关系变更,且同时可以高效解决重发开发带来的代码冗余的问题,因此研究出了本专利技术的技术方案。
[0009]本公开的一些实施例中,所述步骤1具体包括如下内容:步骤1

1.获取所有执行器的具体实现;步骤1

2.获取到具体实现后,通过反射技术将执行器实例化;步骤1

3.将实例化后的执行器注册到带权有向图中。
[0010]本公开的一些实施例中,所述步骤2的具体内容包括如下内容:步骤2

1. 判断执行器是否已经在带权有向图中,存在,直接返回不做处理;不存在,则继续向下执行作业;步骤2

2.将当前执行器加入到执行器列表中,其中列表中的执行器与带权有向图中的节点一一对应;步骤2

3.获取当前执行器参与关联的字段名称,通过反射获取当前执行器返回值对象中的所有字段,基于关联字段名称过滤,最终获取到参与关联字段的名称和数据类型;步骤2

4.反射执行器列表中的目标执行器,获取目标执行器入参的参数名称和数据类型,入参的参数名称和数据类型与当前执行器的关联字段名和关联字段数据类型进行匹配;步骤 2

5.目标执行器和当前执行器是否匹配,不匹配,则返回;匹配,则继续执行;步骤2

6.获取所有匹配的目标执行器在执行器列表中的角标;步骤2

7.判断角标是否已经被当前执行器持有,持有,则跳过;不持有,则继续向下执行;步骤 2

8.当前执行器添加路径,每一条路径代表可达执行器的位置角标和到达权重,位置角标为步骤2

6中所获取的角标,其中到达权重是通过角标获取对应执行器,从执行器中获取到的权重值。
[0011]本公开的一些实施例中,所述步骤3具体包括如下内容:步骤3

1.初始化距离矩阵,生成一个两维数组,长度为执行器列表长度乘以执行器列表长度;步骤3

2.初始化路径矩阵,生成一个两维数组,长度为执行器列表长度乘以执行器列表长度;步骤3

3.调用Floyd算法,获取距离和路径。
[0012]本公开的一些实施例中,所述步骤4具体包括如下内容:步骤4

1.根据目标对象匹配执行器列表,匹配条件为目标对象类型和执行器返回对象类型相同,进而获取目标执行器在列表中的角标列表;步骤4

2.根据参数名和参数类型匹配执行器列表,匹配条件为参数名和参数类型等于执行器入参的参数名和参数类型,进而获取起始执行器在列表中的角标列表;步骤4

3.将初始最短距离设置为无穷大;步骤4

4.将起始角标列表和目标角标列表嵌套循环,用于找到最短距离的角标组合;步骤4

5.用当前起始角标和目标角标通过距离矩阵获取两个执行器的距离;步骤4

6.判断初始最短距离是否比获取到的距离短,初始最短距离比获取到的距离短,执行循环完结判断;步骤4

7.将获取到的距离赋值给初始最短距离,同时保存当前距离的角标组合;步骤4

8.是否循环完结,没有完结,回转执行步骤4

5;步骤4

9.返回当前最短距离的角标组合。
[0013]本公开的一些实施例中,所述步骤5具体包括如下内容:步骤5

1.判断目标执行器和起始执行器是否相同,相同,直接形成执行器调用列表,其中列表只有目标执行器一个执行器;不相同,则循环从路径矩阵中获取下一个执行器,拼接最终的执行器列表;步骤5

2.通过获取矩阵获取执行器的完整路径;步骤5

3. 生成执行器的调用顺序列表。
[0014]本公开的一些实施例中,所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Floyd算法的自动查询方法,其特征在于,包括如下步骤:步骤1.系统运行,进行实例化执行器;步骤2.执行器实例化后注册到带权有向图,生成带权有向图;步骤3.调用Floyd算法获取所有实例化后的执行器之间最短距离和路径;步骤4.外部查询器通过图架构获取起始执行器和目标执行器;步骤5.通过起始执行器和目标执行器获取执行器之间的最短距离和路径;步骤6.执行目标执行器链路获取最终结果并返回;步骤7.重复上述步骤,直至完成规定查询作业次数,循环结束,其中规定查询作业次数为实际作业查询需要次数。2.根据权利要求1所述的一种基于Floyd算法的自动查询方法,其特征在于,所述步骤1具体包括如下内容:步骤1

1.获取所有执行器的具体实现;步骤1

2.获取到具体实现后,通过反射技术将执行器实例化;步骤1

3.将实例化后的执行器注册到带权有向图中。3.根据权利要求1所述的一种基于Floyd算法的自动查询方法,其特征在于,所述步骤2的具体内容包括如下内容:步骤2

1.判断执行器是否已经在带权有向图中,存在,直接返回不做处理;不存在,则继续向下执行作业;步骤2

2.将当前执行器加入到执行器列表中,其中列表中的执行器与带权有向图中的节点一一对应;步骤2

3.获取当前执行器参与关联的字段名称,通过反射获取当前执行器返回值对象中的所有字段,基于关联字段名称过滤,最终获取到参与关联字段的名称和数据类型;步骤2

4.反射执行器列表中的目标执行器,获取目标执行器入参的参数名称和数据类型,入参的参数名称和数据类型与当前执行器的关联字段名和关联字段数据类型进行匹配;步骤2

5.目标执行器和当前执行器是否匹配,不匹配,则返回;匹配,则继续执行;步骤2

6.获取所有匹配的目标执行器在执行器列表中的角标;步骤2

7.判断角标是否已经被当前执行器持有,持有,则跳过;不持有,则继续向下执行;步骤2

8.当前执行器添加路径,每一条路径代表可达执行器的位置角标和到达权重,位置角标为步骤2

6中所获取的角标,其中到达权重是通过角标获取对应执行器,从执行器中获取到的权重值。4.根据权利要求1所述的一种基于Floyd算法的自动查询方法,其特征在于,所述步骤3具体包括如下内容:步骤3

1.初始化距离矩阵,生成一个两维数组,长度为执行器列表长度乘以执行器列表长度;步骤3

2.初始化路径矩阵,生成一个两维数组,长度为执行器列表长度乘以执行器列表长度;步骤3

【专利技术属性】
技术研发人员:张跃叶晓丹叶梅宓建栋
申请(专利权)人:杭州仟金顶信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1