一种用于软件定义网络的路由确定方法和装置
技术领域
本发明涉及计算机技术领域,更具体的涉及一种用于软件定义网络的路由确定方法和装置。
背景技术
软件定义网络(Software Defined Network,SDN)是一种新型的网络架构,它的设计理念是将网络的控制平面与数据转发平面进行分离,集中的控制器 (controller)中的软件平台可以通过开放的接口去实现可编程化控制基础设施层的硬件,实现对网络资源灵活的按需调配,比如,基础设施即服务(Infrastructure-as-a-Service,IaaS)就可以看做一个SDN网络。
在SDN网络中,工作在基础设施层的网络设备(如SDN交换机)可以采用通用的硬件,只负责单纯的数据转发,不再需要对逻辑控制进行过多考虑,设备中的各个表项并非是由设备自身根据周边的网络环境在本地自行生成的,而是由控制器统一下发的,因此各种复杂的控制逻辑(例如链路发现、地址学习、路由计算等等)都无需在SDN交换机中实现;另一方面,SDN控制器集中管控 SDN网络的全网带宽资源,可以快速地从全局角度调配网络资源来满足业务的需求,实现网络资源利用的最优化。
因此,SDN控制平面最基本的一个功能就是路由计算,又称算路,路由计算应用于业务流量规划、带宽利用优化等涉及线性规划的网络规划问题。一方面,与传统网络不同,路由计算涉及全网的链路,而不是如分布式网络中路由算法仅仅基于局部信息算最短路决策路由,因此算路问题的规模和网络的动态变化大大增加,为了获得实时的计算结果,对网络规划(其核心是算路问题) 涉及线性规划的计算效率提出了更高的要求;另一方面,在实际的组网环境中,由于地震等自然因素会导致网络中某些链路中断,则需要在尽量短的时间内通过重路由(reroute)将这些中断的业务部署到其他的链路上,对网络规划(其核心是算路问题)中的计算效率同样有很高要求。
网络规划中使用的分析方法是利用线性规划的思想将SDN网络的拓扑结构结合业务需求抽象成数学模型后,利用单纯形法进行求解,而目前路由计算使用的计算方法求解效率低,无法满足在SDN网络环境下的涉及算路的网络规划问题对求解效率的要求,影响了SDN网络的网络规划和调度的实时性,限制了 SDN控制平面对SDN网络的网络规划能力。
发明内容
有鉴于此,本发明实施例提供了一种用于软件定义网络的路由计算方法和装置,以提高路由计算效率,更加适合求解在SDN网络环境下的涉及算路的网络规划问题。
第一方面,本发明实施例提供了一种用于软件定义SDN网络的路由确定方法,所述SDN网络包括多个网络节点,所述多个网络节点包括第一网络节点和第二网络节点,所述第一网络节点与所述第二网络节点之间存在多条路径,所述方法用于从所述多条路径中确定出符合指定业务需求的目标路径,所述方法包括:
确定至少两个起点,所述至少两个起点是至少两个迭代计算过程的计算初始点,所述至少两个迭代计算过程用于通过求解一线性规划数学模型来得到所述目标路径,所述线性规划数学模型与所述指定业务需求对应,每个所述起点唯一地对应所述线性规划数学模型的一组基,所述至少两个起点对应的至少两组基中,任意两组基之间线性相关的基的数量小于或者等于选取阈值,所述线性规划数学模型存在其他至少一组基与所述至少两组基中的一组基之间线性相关的基的数量大于或者等于所述选取阈值;
根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,其中每个所述迭代计算过程的计算初始点是一所述起点,所述至少两个起点中的任意一个起点表示一条用于求解所述目标路径的初始路径或者经过所述任意一个起点对应的迭代计算过程中的若干次迭代计算后表示一条用于求解所述目标路径的初始路径。
在第一方面的第一种可能的实现方式中,所述至少两个迭代计算过程是并行执行的。
结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,包括:
在所述至少两个迭代计算过程中的任何一个计算出所述线性规划数学模型的最优解的情况下,终止所述至少两个迭代计算过程;
根据所述最优解得到所述目标路径。
结合第一方面,或者第一方面第一至第二种任意一种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:
将所述至少两个迭代计算过程中的每个迭代计算过程正在计算的计算点与记录集合中的点进行匹配,所述记录集合是所述至少两个迭代计算过程已计算的点的集合;
在所述记录集合中不包括所述正在计算的计算点的情况下,将当前的计算点加入所述记录集合;
在所述记录集合中包括所述正在计算的计算点的情况下,终止所述正在计算的计算点对应的迭代计算过程。
结合第一方面第三种可能的实现方式,在第四种可能的实现方式中,在所述记录集合中包括所述正在计算的计算点的情况下,所述方法还包括:
利用所述终止的迭代计算过程的计算资源进行新的迭代计算过程,所述新的迭代计算过程的计算起始点与所述至少两个迭代计算过程中的一个有相同的计算起始点,并且所述新的计算线程的第二个计算点与具有相同计算起始点的所述迭代计算过程的第二个计算点不同。
第二方面,本发明实施例提供了一种用于软件定义网络的路由确定方法,所述SDN网络包括多个网络节点,所述多个网络节点包括第一网络节点和第二网络节点,所述第一网络节点与所述第二网络节点之间存在多条路径,所述方法用于从所述多条路径中确定出符合指定业务需求的目标路径,所述方法包括:
确定至少两个起点,所述至少两个起点是至少两个迭代计算过程的计算初始点,所述至少两个迭代计算过程用于通过解一线性规划数学模型来得到所述目标路径,所述线性规划数学模型与所述指定业务需求对应,每个所述起点是一起点选择方程组的唯一的解,每个所述起点选择方程组中的每个起点选择方程对应所述线性规划数学模型的一个约束条件不等式,每个所述约束条件不等式的选择向量与所述线性规划数学模型的目标函数的目标向量间的夹角大于或者等于90°,所述选择向量是所述约束条件不等式的一个法向量,所述目标向量是所述目标函数的一个法向量;
根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,其中每个所述迭代计算过程的计算初始点是一所述起点,所述至少两个起点中的任意一个起点表示一条用于求解所述目标路径的初始路径或者经过所述任意一个起点对应的迭代计算过程中的若干次迭代计算后表示一条用于求解所述目标路径的初始路径。
在第二方面的第一种可能的实现方式中,所述至少两个迭代计算过程是并行执行的。
结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,包括:
在所述至少两个迭代计算过程中的任何一个计算出所述线性规划数学模型的最优解的情况下,终止所述至少两个迭代计算过程;
根据所述最优解得到所述目标路径。
结合第二方面,或者第二方面第一至第二种任意一种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:
将所述至少两个迭代计算过程中的每个迭代计算过程正在计算的计算点与记录集合中的点进行匹配,所述记录集合是所述至少两个迭代计算过程已计算的点的集合;
在所述记录集合中不包括所述正在计算的计算点的情况下,将当前的计算点加入所述记录集合;
在所述记录集合中包括所述正在计算的计算点的情况下,终止所述正在计算的计算点对应的迭代计算过程。
结合第二方面第三种可能的实现方式,在第四种可能的实现方式中,在所述记录集合中包括所述正在计算的计算点的情况下,所述方法还包括:
利用所述终止的迭代计算过程的计算资源进行新的迭代计算过程,所述新的迭代计算过程的计算起始点与所述至少两个迭代计算过程中的一个有相同的计算起始点,并且所述新的计算线程的第二个计算点与具有相同计算起始点的所述迭代计算过程的第二个计算点不同。
第三方面,本发明实施例提供了一种用于软件定义SDN网络的路由确定装置,所述SDN网络多个网络节点,所述多个网络节点包括第一网络节点和第二网络节点,所述第一网络节点与所述第二网络节点之间存在多条路径,所述装置用于从所述多条路径中确定出符合指定业务需求的目标路径,所述装置包括:
起点确定单元,用于确定至少两个起点,所述至少两个起点是至少两个并行的迭代计算过程的计算初始点,所述至少两个迭代计算过程用于通过求解一线性规划数学模型来得到所述目标路径,所述线性规划数学模型与所述指定业务需求对应,每个所述起点唯一地对应所述线性规划数学模型的一组基,所述至少两个起点对应的至少两组基中,任意两组基之间线性相关的基的数量小于或者等于选取阈值,所述线性规划数学模型存在其他至少一组基与所述至少两组基中的一组基之间线性相关的基的数量大于或者等于所述选取阈值;
目标路径确定单元,用于根据所述至少两个并行的迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,其中每个所述迭代计算过程的计算初始点是一所述起点,所述至少两个起点中的任意一个起点表示一条用于求解所述目标路径的初始路径或者经过所述任意一个起点对应的迭代计算过程中的若干次迭代计算后表示一条用于求解所述目标路径的初始路径。
在第三方面的第一种可能的实现方式中,所述装置还包括迭代计算单元,所述迭代计算单元用于执行所述至少两个迭代计算过程,所述至少两个迭代计算过程是并行执行的。
结合第三方面第一种可能的实现方式,在第二种可能的实现方式中,在所述根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径的方面,所述目标路径确定单元具体用于:
在所述至少两个迭代计算过程中的任何一个计算出所述线性规划数学模型的最优解的情况下,终止所述至少两个迭代计算过程;
根据所述最优解得到所述目标路径。
结合第三方面,或者第三方面第一至第二种任意一种可能的实现方式,在第三种可能的实现方式中,所述装置还包括过程控制单元,所述过程控制单元用于:
将所述至少两个迭代计算过程中的每个迭代计算过程正在计算的计算点与记录集合中的点进行匹配,所述记录集合是所述至少两个迭代计算过程已计算的点的集合;
在所述记录集合中不包括所述正在计算的计算点的情况下,将当前的计算点加入所述记录集合;
在所述记录集合中包括所述正在计算的计算点的情况下,终止所述正在计算的计算点对应的迭代计算过程。
结合第三方面第三种可能的实现方式,在第四种可能的实现方式中,所述过程控制单元还用于:
利用所述终止的迭代计算过程的计算资源进行新的迭代计算过程,所述新的迭代计算过程的计算起始点与所述至少两个迭代计算过程中的一个有相同的计算起始点,并且所述新的计算线程的第二个计算点与具有相同计算起始点的所述迭代计算过程的第二个计算点不同。
第四方面,本发明实施例提供了一种用于软件定义SDN网络的路由确定装置,所述SDN网络包括多个网络节点,所述多个网络节点包括第一网络节点和第二网络节点,所述第一网络节点与所述第二网络节点之间存在多条路径,所述装置用于从所述多条路径中确定出符合指定业务需求的目标路径,所述装置包括:
起点确定单元,用于确定至少两个起点,所述至少两个起点是至少两个迭代计算过程的计算初始点,所述至少两个迭代计算过程用于通过解一线性规划数学模型来得到所述目标路径,所述线性规划数学模型与所述指定业务需求对应,每个所述起点是一起点选择方程组的唯一的解,每个所述起点选择方程组中的每个起点选择方程对应所述线性规划数学模型的一个约束条件不等式,每个所述约束条件不等式的选择向量与所述线性规划数学模型的目标函数的目标向量间的夹角大于或者等于90°,所述选择向量是所述约束条件不等式的一个法向量,所述目标向量是所述目标函数的一个法向量;
目标路径确定单元,用于根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,其中每个所述迭代计算过程的计算初始点是一所述起点,所述至少两个起点中的任意一个起点表示一条用于求解所述目标路径的初始路径或者经过所述任意一个起点对应的迭代计算过程中的若干次迭代计算后表示一条用于求解所述目标路径的初始路径。
在第四方面的第一种可能的实现方式中,所述装置还包括迭代计算单元,所述迭代计算单元用于执行所述至少两个迭代计算过程,所述至少两个迭代计算过程是并行执行的。
结合第四方面第一种可能的实现方式,在第二种可能的实现方式中,在所述根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径的方面,所述目标路径确定单元具体用于:
在所述至少两个迭代计算过程中的任何一个计算出所述线性规划数学模型的最优解的情况下,终止所述至少两个迭代计算过程;
根据所述最优解得到所述目标路径。
结合第四方面,或者第四方面第一至第二种任意一种可能的实现方式,在第三种可能的实现方式中,所述装置还包括过程控制单元,所述过程控制单元用于:
将所述至少两个迭代计算过程中的每个迭代计算过程正在计算的计算点与记录集合中的点进行匹配,所述记录集合是所述至少两个迭代计算过程已计算的点的集合;
在所述记录集合中不包括所述正在计算的计算点的情况下,将当前的计算点加入所述记录集合;
在所述记录集合中包括所述正在计算的计算点的情况下,终止所述正在计算的计算点对应的迭代计算过程。
结合第四方面第三种可能的实现方式,在第四种可能的实现方式中,所述过程控制单元还用于:
利用所述终止的迭代计算过程的计算资源进行新的迭代计算过程,所述新的迭代计算过程的计算起始点与所述至少两个迭代计算过程中的一个有相同的计算起始点,并且所述新的计算线程的第二个计算点与具有相同计算起始点的所述迭代计算过程的第二个计算点不同。
与现有的技术相比,本发明实施例具有如下有益效果:
在本发明实施例中,提供的一种用于软件定义网络的路由确定方法和装置,根据与所述指定业务需求对应的线性规划数学模型,通过尽量不重复地选取至少两组该数学模型的基或者根据该数学模型的约束条件不等式与目标函数法向量的夹角确定至少两个起点,该至少两个起点是至少两个迭代计算过程的计算初始点,根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,相对于现有技术中取该数学模型的任意基解作为迭代计算过程的起点而使迭代步骤多、求解效率低的情况,本发明实施例提供的通过确定出符合一定条件的起点并使用这些起点作为迭代计算过程的初始计算点,可以减少迭代计算过程的迭代步骤,从而提高了SDN路由计算的计算效率,增进SDN网络的网络规划和调度的实时性,提高了SDN控制平面对SDN网络的网络规划能力,能够更加合理高效地利用网络资源和计算资源。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本发明实施例所适用的软件定义网络的架构示意图;
图1b为图1a的架构下一种软件定义网络的组网结构图;
图2为单纯形法迭代计算中顶点选取的示意图;
图3a和图3b为本发明实施例提供的用于软件定义网络的路由确定方法的流程示意图;
图4为图3b中步骤302b和步骤303b的实施方法的流程示意图;
图5为本发明实施例提供的一种用于软件定义网络的路由确定装置结构图;
图6为本发明实施例提供的另一种用于软件定义网络的路由确定装置结构图;
图7为本发明实施例提供的又一种用于软件定义网络的路由确定装置结构图。
具体实施方式
本发明实施例提供了一种用于软件定义网络的路由计算方法和装置,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1a所示,本发明实施例了一种SDN网络的架构示意图,所示的SDN 网络架构适用于本发明实施例提供的路由确定方法和装置。需要说明的是,本发明实施例对SDN网络的具体形态不作限制,比如,SDN网络通常与网络功能虚拟化(Network FunctionsVirtualization,NFV)技术共用,又比如,基础设施即服务(Infrastructure-as-a-Service,IaaS)云计算平台就可以看做是SDN网络架构。
SDN的本质就是让用户或者应用可以通过软件编程充分控制网络的行为, SDN在网络内控制平面和数据平面之间开放了一个接口,这使得控制平面可以完全与网络设备分离,并构建另一个完全不同的控制平面。与传统网络相比, SDN网络的全网带宽资源均由SDN控制器集中管控,集中控制器可以快速地从全局角度调配网络资源来满足业务的需求,实现网络资源利用的最优化。
需要说明的是,目前业界通用的SDN架构主要包括以下特征:控制与数据平面解耦合,网络智能与控制逻辑集中,抽象的底层网络基础设施。因此不少 SDN实践者是从将控制与数据平面解耦合入手,将原来固化于网络设备当中的控制层抽取到设备之外,并进行逻辑上的集中处理;同时,在SDN的发展过程中,还发展出一种折衷的方案,在网络设备中抽取控制层时仍保留部分控制能力,以求做到类似混合(Hybrid)的方式,以期可以带来更大的灵活性:按用户需要对控制进行集中管理,或者仍按原有控制方式运行。本发明实施例不做限定。
具体的,SDN网络架构可以自上而下分为三层,并且层与层之间有开放的编程接口,以下对SDN网络架构的层及各层之间的接口进行说明:
应用层:通过控制层提供的应用程序编程接口(即图中的API)对底层的硬件设备(包括基础设施层,还可以包括控制层)进行编程,把网络的控制权开放给用户,基于开发各种业务应用(上层应用),实现丰富的业务创新。
API:通过控制层向上层业务应用开放的应用程序编程接口,又称北向接口,目的是使得业务应用能够便利地调用底层的网络资源和能力。API直接为业务应用服务的,其设计需要密切联系业务应用需求,具有多样化的特征。
控制层:对应控制平面,目前主流的SDN实现方案是将控制层提到设备外面来以便进行统一的控制与管理,提取出来控制层被定义为控制器(controller),控制器可以是远程的服务器也可以是安装在远程服务器上的软件,其中包括 SDN控制软件(如网络操作系统),提供各种网络服务。控制器集中管理网络中的所有设备,虚拟整个网络为资源池,根据用户不同的需求以及全局网络拓扑,灵活动态地分配资源,SDN控制器具有网络的全局视图,负责管理整个网络,对下层,通过标准的协议与基础网络进行通信;对上层,通过开放接口向应用层提供对网络资源的控制能力。
控制数据平面接口:基础设施层设备与控制层的信号传输通道,又称南向接口,相关的设备状态、数据流表项和控制指令都需要经由SDN的南向接口传达从而实现对设备的管控。目前南向接口的主流是OpenFlow协议,也是南向接口的标准。
基础设施层:对应数据平面,专注于单纯的数据、业务物理转发,关注的是与控制层的安全通信,要求硬件设备具有高的处理性能,以实现高速的数据转发。
需要说明的是,工作在基础设施层的SDN交换机等硬件设备虽然不在需要对逻辑控制进行过多考虑,但作为SDN网络中负责具体数据转发处理的设备,为了完成高速数据转发,还是要遵循交换机工作原理。本质上看,传统设备中无论是交换机还是路由器,其工作原理都是在收到数据包时,将数据包中的某些特征域与设备自身存储的一些表项进行比对,当发现匹配时则按照表项的要求进行相应处理。SDN交换机也是类似的原理,但是与传统设备存在差异的是,设备中的各个表项并非是由设备自身根据周边的网络环境在本地自行生成的,而是由远程控制器统一下发的,因此各种复杂的控制逻辑(例如链路发现、地址学习、路由计算等等)都无需在SDN交换机中实现。
本发明实施例提供的用于SDN网络架构的路由计算方法和装置部署在控制层。需要说明的是,控制层和基础设施层不一定会在物理上分离,也就是说,应用层、控制层可能就设置在基础设施层的某一台甚至几台SDN网络设备上(如 SDN交换机等)而无需专门的SDN硬件控制设备,也可能控制器是独立于基础设施层负责数据转发网络设备的服务器(可称之为控制服务器)或者以软件形式安装在控制服务器上,甚至以软件形式安装在控制服务器的虚拟机上。目前,多个厂家的SDN控制器的实现方式和协议均有不同,SDN控制器的主流实现方法是纯软件,纯软的SDN控制器已经在网络虚拟化领域的市场落地,比如 VMware的NSX控制器,与物理网络分开,VMware声称NSX是一款完全虚拟化的产品,与任何网络硬件兼容。而硬件SDN目前都与流量牵引有关,如交通工程,视频监控,安全领域等,具有硬件网络设备实体的SDN控制器(即控制服务器)与SDN网络中的一台或者多台SDN交换机连接,具体的连接方式视具体的 SDN网络的规模和需求而定,需要理解,由于性能限制,控制服务器有最大连接交换机数量,控制服务器如何与交换机连接,SDN网络如何组网不在本发明实施例的研究范围内,为了便于理解,请参阅图1b,图1b是SDN网络中SDN控制器具有对应的独立的硬件设备(如一台服务器)的情况下的一种组网示意图。本发明实施例对控制层的实现方式不作限制,如可以是纯软件(如网络操作系统) 实现的,还可以是在独立的网络设备实体硬件实现的(实现于独立于基础设施层网络节点的控制服务器或者计算机集群上)等等。
本发明实施例提供的路由计算方法从计算原理来讲,是求解具有约束条件 (根据网络的客观组网环境获得)和目标函数(根据待规划的网络问题确定) 线性规划问题的过程,该线性规划问题可以表示为包括目标函数、约束条件和非负约束条件的线性规划问题的数学模型的一般形式,在本发明的实施例中,具体以该一般形式进行叙述。求解线性规划问题的数学模型的一种常用解法即单纯形法,单纯形法又进一步细分为主单纯形法和对偶单纯形法。单纯形法的理论依据就是:表示线性规划问题的约束条件的不等式所围成的区域是一个n维向量空间Rn中的凸集(即凸多面体),该凸集是线性规划问题的可行域,凸集有有限多个顶点,且线性规划问题的极值都是在凸多面体的顶点(每个顶点对应一个基可行解)上取得,因此线性规划的求解思路从几何上解释就是先求得一个顶点作为迭代计算的起点,再沿着凸多面体的边从一个顶点过渡到相邻的某一个顶点,按照这种方式逐步迭代,直到找到最优解(最优解在该凸多面体的一个顶点上取到),从而完成对线性规划问题的求解。
目前的单纯形法的求解都是通过任意确定一个顶点作为起始点,然后通过不同的边的选择策略,如Dantzig,SteepestEdge等方法来逐步优化目标函数的值来获取最优解。该方法的问题是如果恰好初始选定的起点很不好的话,无论每次选择的边多么优,仍然要通过很多次迭代才能获取最优解。为了便于理解,请参阅图2,图2所示意的是某路由计算问题所对应的可行域,其中X(6)是路由计算问题的最优解对应的顶点,如果选定X(0)作为计算的起始点,则需要经过从X(0)到X(6)的顶点共计6步迭代才可以到达最优解对应的顶点,过程中采用Dantzig、SteepestEdge或者Dijkstra等计算方法确定出了从X(0)到X(6)的顶点的这条的迭代路径,然而如果能选取Y(0)作为起始点,则有可能经过2步迭代就到达最优解对应的顶点X(6),而如果恰好选择的是X(0)作为计算的起始点,无论如何优化迭代对应的路径,都不可能使用2步迭代获得最优解。
图3a和图3b是本发明实施例提供的用于SDN网络架构的路由确定方法对应的方法流程图,本发明实施例提供的路由确定方法应用在控制层,该SDN网络包括多个网络节点,所述多个网络节点包括第一网络节点和第二网络节点,所述第一网络节点与所述第二网络节点之间存在多条路径,所述方法用于从所述多条路径中确定出符合指定业务需求的目标路径。具体的,网络节点可以是交换机或者路由器等网络设备,本发明不做限制。另外本发明实施例对控制层的实现方式不作限制,如可以是通过加载在基础设施层的一条或多台物理设备中的加载的软件(如网络操作系统)实现的,还可以是在控制层的硬件实体设备中实现的(实现于独立于基础设施层网络节点的一台控制服务器上或者计算机集群上)等等,本发明实施例不做限定。
图3a所述的用于SDN网络架构的路由确定方法,包括以下步骤:
步骤301a:确定至少两个起点,所述至少两个起点是至少两个迭代计算过程的计算初始点,所述至少两个迭代计算过程用于通过求解一线性规划数学模型来得到所述目标路径,所述线性规划数学模型与所述指定业务需求对应,每个所述起点唯一地对应所述线性规划数学模型的一组基,所述至少两个起点对应的至少两组基中,任意两组基之间线性相关的基的数量小于或者等于选取阈值,所述线性规划数学模型存在其他至少一组基与所述至少两组基中的一组基之间线性相关的基的数量大于或者等于所述选取阈值。
需要理解的是,该线性规划数学模型可以是已存储或管理于控制层的数据结构,也可以是在步骤301a前,该控制层根据软件定义网络的路由信息和该指定业务需求得到的。该线性规划数学模型可以是链表或者数组等形式或类型,本发明实施例对线性规划数学模型的数据结构类型不做限定。
具体的,路由信息可以是SDN网络控制层存储或管理(如记录,修改等) 的,比如存储或者管理在控制服务器内或者控制服务器对应的存储设备,也可以是搜集自基础设施层的交换机或者交换机上报的,本发明实施例不做限定。路由信息可以具体包括网络拓扑信息,链路容量信息,链路单位流量代价等,本发明实施例不做限定。示例性的,该指定业务需求可以是在某对网络节点间建立网络通道,该对网络节点之间还包括若干网络节点,该网络通道需要满足一定的带宽或者流量的业务需求,或者在某些链路发生中断的情况下,通过重路由将这些中断的业务部署到其他的链路上等等,本发明不做限制。
需要说明的是,一个迭代计算过程可以通过一个计算线程或者一个计算进程实现,本发明实施例对迭代计算过程的具体实现方式不做限定。
步骤302a:根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,其中每个所述迭代计算过程的计算初始点是一所述起点,所述至少两个起点中的任意一个起点表示一条用于求解所述目标路径的初始路径或者经过所述任意一个起点对应的迭代计算过程中的若干次迭代计算后表示一条用于求解所述目标路径的初始路径。
可选的,该至少两个迭代计算过程是并行执行的。
可以理解的是,步骤301a和步骤302a表示该至少两个迭代计算过程中不少于两个迭代计算过程对应不同的起点。
可以理解的是,一个起点表示一条用于求解所述目标路径的初始路径,表示这个起点是该线性规划数学模型的一个基可行解,满足该线性规划数学模型的非负约束条件;一个起点经过所述迭代计算过程中的若干次迭代计算后表示一条用于求解所述目标路径的初始路径(即该第一节点与第二节点间的一条路径),表示这个起点是该线性规划数学模型的一个基解,不满足该线性规划数学模型的非负约束条件,由于起点是根据基的确定来计算的,而在确定了一组基的情况下,并不能从这组基直接得到这组基对应的是基解还是基可行解,在一个起点是基解的情况下,经过该迭代计算过程中的若干次(一次或多次)迭代就可以迭代到该起点附近的一个基可行解上,这个基可行解就表示一条用于求解所述目标路径的初始路径。
需要说明的是,可以根据SDN网络控制层的运算能力来确定并行执行的迭代计算过程的数量,尤其是在该至少两个迭代计算过程并行执行的情况下。SDN 网络控制层的运算能力具体体现在控制层的硬件配置情况,比如CPU的核数以及计算机的数量等等。例如,如果控制层部署于一台控制服务器上,服务器的硬件配置情况都是可知的。由于SDN网络控制层用于管理整个SDN网络,在网络部署时通常具有较高的运算能力,一般能够满足并行地运行至少两个计算线程。
可以理解的是,并行多个计算线程可以增大选中路由计算线性规划模型的可行域中与最优解对应的顶点间隔边数更少的起点的概率,从而提高了SDN路由计算的计算效率,增进SDN网络的网络规划和调度的实时性,提高了SDN 控制平面对SDN网络的网络规划能力,能够更加合理高效地利用网络资源和计算资源。
优选的,该迭代计算过程的数量与该至少两个起点的数量相等。也就是说,该至少两个迭代计算过程与该至少两个起点一一对应。
可选的,该迭代计算过程的数量大于该起点的数量,该迭代计算过程中存在具有相同起点的迭代计算过程,但是需要理解,该具有相同起点的迭代计算过程应当具有不同的迭代路径。
在另一种情况下,该至少两个迭代计算过程的数量也可以小于起点的数量,即步骤301a则相当于该迭代计算过程从确定的起点中取一子集(该子集中的元素数量不少于两个)当做计算初始点的集合,所述子集在确定的起点中的补集可以作为除上述至少两个迭代计算过程外其他求解该线性规划数学模型的迭代计算过程的计算起点,需要理解的是,该至少两个迭代计算过程中不少于两个具有不同的起点。
需要理解的是,由于一组基对应一个基解,从几何角度理解,步骤301a所叙述的就是在确定该至少两组基比较均匀地选取向量,尽量使减少每组基中线性相关(比如重复)的向量的数目的平均值比较小,也就是小于或者等于选取阈值。这就表示选出的该至少两组基对应的基解在该线性规划数学模型的可行域的上的分布是比较均匀的,“比较均匀”可以表述为:任意两个基解对应的两个起点间的距离落在距离取值区间内,所述距离取值区间是由该可行域的单纯形两个顶点间距离的平均值决定的。例如,假设某线性计算模型对应的可行域是正方体,则其一共有8个基解,即每个顶点的坐标就是一个基解,如果要选取该线性计算模型的两组基,则选取体对角线两端的基解及其对应的基是比较均均匀的(实际上是最均匀的),这样就满足选取的基解“在该线性规划数学模型的可行域的上的分布是比较均匀的”,也满足基解所对应的两组基“任意两组基之间线性相关的基的数量小于或者等于选取阈值,所述线性规划数学模型存在其他至少一组基与所述至少两组基中的一组基之间线性相关的基的数量大于或者等于所述选取阈值”。
可以理解的是,选取阈值表示该至少两组基的中任意两组基之间相同的或者公共基的数量比较少。也就是说,该至少两个起点对应的至少两组基中,任意两组基之间线性相关的基的数量小于或者等于选取阈值,该线性规划数学模型存在其他至少一组基与该至少两组基中的一组基之间线性相关的基的数量大于或者等于所述选取阈值。
优选的,选取阈值表示该至少两组基的中任意两组基之间相同的或者公共基的数量尽量少。也就是说优选的,该至少两个起点对应的至少两组基中,任意两组基之间线性相关的基的数量小于或者等于选取阈值,该线性规划数学模型的其他的任意一组基与该至少两组基中的一组基之间线性相关的基的数量大于或者等于所述选取阈值。
在该迭代计算过程的数量、该起点的个数以及该线性规划数学模型确定的情况下,选取阈值是可以计算出的。
具体的,步骤301a可以采取以下的实现方式:
从该线性规划数学模型的约束条件不等式组的系数矩阵的列向量集合中选择线性无关的列向量,得到所述线性规划数学模型的至少两组基,所述至少两组基中任意两组基之间相同的列的数量值小于或者等于选取阈值,所述选取阈值是所述计算线程的数量、所述基的组数以及所述线性规划数学模型确定的最小的数值,所述计算线程的数量与所述基的组数相等;
计算所述至少两组基的基解,从而确定该至少两个起点。
需要理解的是,基解的子集是基可行解,根据线性规划的相关知识,最优解是在基可行解中取到的,步骤301a和步骤302a中,对于以不可行的基解作为起点的迭代计算过程,可以经过该迭代计算过程中的若干步迭代至基可行解,本发明实施例不再赘述。
需要说明的是,启动该至少两个计算线程后,具体的求解过程一般遵循贪心算法,如用Dantzig、SteepestEdge或者Dijkstra等计算方法,本发明实施例不做限制,也不再赘述。
进一步的,图3a所述的方法还可以包括以下步骤,对该至少两个计算线程进行控制。
步骤303a:将所述至少两个迭代计算过程中的每个迭代计算过程正在计算的计算点与记录集合中的点进行匹配,所述记录集合是所述至少两个迭代计算过程已计算的点的集合;
在所述记录集合中不包括所述正在计算的计算点的情况下,将当前的计算点加入所述记录集合;
在所述记录集合中包括所述正在计算的计算点的情况下,终止所述正在计算的计算点对应的迭代计算过程。
进一步的,在所述记录集合中包括所述当前的计算点的情况下,还可以包括在所述记录集合中包括所述正在计算的计算点的情况下,所述方法还包括:
利用所述终止的迭代计算过程的计算资源进行新的迭代计算过程,所述新的迭代计算过程的计算起始点与所述至少两个迭代计算过程中的一个有相同的计算起始点,并且所述新的计算线程的第二个计算点与具有相同计算起始点的所述迭代计算过程的第二个计算点不同。
需要理解的是,在该至少两个迭代计算过程的数量小于确定出的起点的数量的情况下,该新的迭代计算过程还可以以该至少两个迭代计算过程的计算初始点的集合在该起点的集合中的补集中的起点作为计算初始点。
进一步的,图3a所述的方法还可以包括以下步骤,对该至少两个计算线程进行控制。
步骤304a:在所述至少两个迭代计算过程中的任何一个计算出所述线性规划数学模型的最优解的情况下,终止所述至少两个迭代计算过程;
根据所述最优解得到所述目标路径。
需要理解的是,最优解表示的是使该线性规划数学模型的目标函数达到最有值(最大值或最小值)的任一可行解,最优解表示符合该指定业务需求的目标路径。
步骤303a和步骤304a缩短控制层完成该至少迭代计算过程的总时间,提高了路由确定的计算效率,加强了对该至少两个计算线程的管理,减少了对计算资源的浪费。
需要理解的是,由于上述至少两个迭代计算过程中的每个迭代计算过程都是利用单纯形法处理线性规划问题的,如果存在最优解,最优解必在线性规划数学模型的可行域的边界上,更进一步的,最优解在可行域对应的单纯形的顶点(隅角)上。任何一项约束条件的边界方程是用=号来替换该约束条件中的≥或者≤而得到的,每个边界方程确定一个超平面。因此,可行域的边界是由那些满足一个或同时满足几个边界方程(即处在作为边界的一个或几个超平面上) 的可行解所组成,而且最优解必在其中。最优解不仅是在可行域的边界上,而且也在这个区域的一个隅角上。一个可行解,如果不处在由另两个可行解连接起来的任何线段上,它就是一个角点可行解,如果连接两个角点可行解的线段处在可行区域的边界上,这两个角点可行解就称为相邻的角点可行解。
角点可行解有以下三个性质:
1如果存在一个最优解,那么它必然是角点可行解,如果存在有多个最优解那么至少有两个最优解必定是相邻的角点可行解。
2只存在有限个数的角点可行解。
3如果一个角点可行解按目标函数值来衡量时比其所有的相邻角点可行解更好一些,那它就比所有其他角点可行解都更好,也就是最优解。
所以判断最优解无需列举所有的可行解,并且一旦确定某个解是最优解后就可停止计算。
需要理解的是,最优解表示符合该指定业务需要的目标路径,通过解析该最优解可以确定该目标路径。
需要理解的是,由于需要计算的线性规划数学模型是根据具体的SDN网络的路由信息和业务需求获得的,即数学模型是从具体的业务场景中抽象出的,故一般很少有无解,对可能无解的情况,可以根据该至少两个迭代计算过程向管理者或者决策方返回表示无解的结论,本发明实施例不做限制。
为了便于理解,下面对图3a对应的路由确定方法中的步骤301a和步骤302a 作进一步的具体描述:
为便于说明,以线性规划问题的数学模型的一般形式来进行叙述。线性规划问题的数学模型的一般形式表示为:
min(or max)z=c1x1+c2x2+…+cnxn (1.1)
其中,(1.1)称目标函数,(1.2)的前k个不等式或者等式可以获得约束条件不等式组的系数矩阵A,x1、x2、…、xn≥0称为非负约束条件不等式。k和n是正整数。约束条件不等式组的系数矩阵A的表达形式如下,由于矩阵A对应一个具体的有关路由计算的问题,一般矩阵A的列数大于行数,即n≥k,且r(A)=k,设该至少两个迭代计算过程数目为m个,为了简洁,以下针对该至少两个迭代计算过程中的每个迭代计算过程都对应一个不同的起点的情况进行叙述,则相当于需要根据矩阵A确定该线性规划数学模型的满足一定条件的m组基,应理解在实际计算中,也可以采用以下方法确定多于m组基或者少于m组基。
可以对矩阵A进行分析从而获得矩阵A对应的线性规划问题的基,具体的,这组基可以是A的k个线性无关的列向量,由于矩阵A对应一个具体的有关路由计算的问题,一般矩阵A的列数大于行数,故出于可以对矩阵A的各列向量进行编号:1、2……、n。
从n个列向量中选取m组线性无关的向量组,其中每个向量组包括k个列向量,该m组线性无关的向量组中任何两组向量组中编号相同的向量数都小于等于选择阈值,优选的,这个选择阈值是在所有选取方案中所能达到的最小值,由于n、m和k都是正整数,该最小值可以被确定。例如具体的计算中,可以通过穷举法进行比对(穷举法比较耗费计算资源,此处仅是举例)或者优化算法逼近,本发明实施例对选择阈值具体的计算方法和步骤不做限制。另一方面,需要理解,符合条件的该m组线性无关的向量组不一定是唯一的。
需要说明的是,该选择阈值用于判断选取的m组基是否满足条件,可以先取m组基得出选择阈值,然后进行分析,如果选择阈值已经是能取得的最小值,则这m组基符合要求,如果其他的选取方式可以获得更小的选取阈值,则重新选择能取更小选取阈值的m组基并检验。
当然,这个选择阈值也可以是使所述线性规划数学模型存在其他至少一组基与所述至少两组基中的一组基之间线性相关的基的数量大于或者等于所述选取阈值,这种情况下选择阈值的取值可以大于该最小值,但依据该选择阈值选择出的m组向量组中任何两组向量组中编号相同的向量数量也可能更大,即m 组向量组并不是“尽量均匀”只是“相对均匀”。本发明实施例不做限定。
当然,也可以对矩阵A进行线性变换后对矩阵A的各列向量进行编号,或者对矩阵A中线性无关的列向量进行编号再依据上述思路进行计算,还应理解,线性变换并不会改变向量之间是线性相关的还是线性无关的,在本发明实施例中,对于一个向量和该向量经过线性变换的向量(这两个向量是线性相关的),从实质上来说是等同的。需要说明的是,编号只是为了便于在说明时表示对不同的列向量的区分,具体区分方式以及具体编号方式本发明实施例并不做限制。
例如,如果A中线性无关的5个列向量的编号为1、2、3、4、5,k=3,m=2, 也就是说要在这5个列向量中选取2组,且每组由3个列向量组成,则选择阈值的取值范围为1,取选择阈值等于1,当两组列向量为{1、2、3}和{1、4、5} 时,则编号相同的列向量的个数为1,满足条件,显然,而当两组列向量为其他组合时,编号相同的列向量个数都大于或者等于1,例如当选取的组合为{1、2、3}和{1、2、4}时,则这两组列向量中编号相同的列向量个数为2,不符合要求 (这5个列向量中选取2组,且每组由3个列向量,这2组中最多有2个编号相同的)。则两组列向量为{1、2、3}和{1、4、5}就可以是确定出的两组基。
显然,这两组基也可以由其他编号的列向量组成,如{4、2、3}和{1、4、 5},{1、2、3}和{3、4、5}等,只要确定这样的两组基即可。
图3a所述的实施例提供的一种用于软件定义网络的路由确定方法,根据与所述指定业务需求对应的线性规划数学模型,通过尽量不重复地选取至少两组该数学模型的基确定至少两个起点,该至少两个起点是至少两个迭代计算过程的计算初始点,根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,相对于现有技术中取该数学模型的任意基解作为迭代计算过程的起点而使迭代步骤多、求解效率低的情况,本发明实施例提供的通过确定出符合一定条件的起点并使用这些起点作为迭代计算过程的初始计算点,可以减少迭代计算过程的迭代步骤,从而提高了SDN路由计算的计算效率,增进SDN网络的网络规划和调度的实时性。进一步的并行至少两个迭代计算过程可以增大选中路由计算线性规划模型的可行域中与最优解对应的顶点间隔边数更少的起点的概率,也提高了SDN路由计算的计算效率,增进SDN网络的网络规划和调度的实时性,提高了SDN控制平面对SDN网络的网络规划能力,能够更加合理高效地利用网络资源和计算资源。进一步的,通过对多个迭代计算过程的合理控制减少了对计算资源的浪费,缩短控制层完成该至少两个迭代计算过程的总时间,提高了路由确定的计算效率,加强了对该至少两个迭代计算过程的管理。
图3b所述的用于SDN网络架构的路由确定方法,包括以下步骤:
步骤301b:确定至少两个起点,所述至少两个起点是至少两个迭代计算过程的计算初始点,所述至少两个迭代计算过程用于通过解一线性规划数学模型来得到所述目标路径,所述线性规划数学模型与所述指定业务需求对应,每个所述起点是一起点选择方程组的唯一的解,每个所述起点选择方程组中的每个起点选择方程对应所述线性规划数学模型的一个约束条件不等式,每个所述约束条件不等式的选择向量与所述线性规划数学模型的目标函数的目标向量间的夹角大于或者等于90°,所述选择向量是所述约束条件不等式的一个法向量,所述目标向量是所述目标函数的一个法向量。
需要理解的是,该线性规划数学模型可以是已存储或管理于控制层的数据结构,也可以是在步骤301a前,该控制层根据软件定义网络的路由信息和该指定业务需求得到的。该线性规划数学模型可以是链表或者数组等形式或类型,本发明实施例对线性规划数学模型的数据结构类型不做限定。
具体的,路由信息可以是SDN网络控制层存储或管理(如记录,修改等) 的,比如存储或者管理在控制服务器内或者控制服务器对应的存储设备,也可以是搜集自基础设施层的交换机或者交换机上报的,本发明实施例不做限定。路由信息可以具体包括网络拓扑信息,链路容量信息,链路单位流量代价等,本发明实施例不做限定。示例性的,该指定业务需求可以是在某对网络节点间建立网络通道,该对网络节点之间还包括若干网络节点,该网络通道需要满足一定的带宽或者流量的业务需求,或者在某些链路发生中断的情况下,通过重路由将这些中断的业务部署到其他的链路上等等,本发明不做限制。
需要说明的是,一个迭代计算过程可以通过一个计算线程或者一个计算进程实现,本发明实施例对迭代计算过程的具体实现方式不做限定。
需要说明的是,该约束条件不等式不包括非负约束条件对应的不等式(即 x1、x2、…、xn≥0)。
具体的,该线性规划数学模型可以转化为如下形式:
min(ormax)z=c1x1+c2x2+…+cnxn
则目标函数为min(ormax)z=c1x1+c2x2+…+cnxn,式(1)到式(m)为约束条件不等式。
在目标函数为求最小值的情况下,形式如min z=c1x1+c2x2+…+cnxn,则该目标函数的目标向量为该目标向量是目标函数的一个法向量;
在目标函数为求最大值的情况下,形式如max z=c1x1+c2x2+…+cnxn,则该目标函数的目标向量为该目标向量是目标函数的一个法向量;
对于式(1)到式(m)中任意一个约束条件不等式(i),在约束条件不等式 (i)为大于等于不等式的情况下,形式如ai1x1+ai2x2+…+ainxn≥bi,则该约束条件不等式的选择向量为该选择向量是约束条件不等式(i) 的一个法向量;
对于式(1)到(m)中任意一个约束条件不等式(i),在约束条件不等式(i) 为小于等于不等式的情况下,形式如ai1x1+ai2x2+…+ainxn≤bi,则该约束条件不等式的选择向量为该选择向量是约束条件不等式(i)的一个法向量。
每个该起点是一个起点选择方程组唯一的解。该起点选择方程组中的每个起点选择方程是一个约束条件不等式(i)的等式形式(即不等式取等号),每个所述约束条件不等式(i)的选择向量与所述线性规划数学模型的目标函数的目标向量间的夹角大于或者等于90°。
步骤302b:根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,其中每个所述迭代计算过程的计算初始点是一所述起点,所述至少两个起点中的任意一个起点表示一条用于求解所述目标路径的初始路径或者经过所述任意一个起点对应的迭代计算过程中的若干次迭代计算后表示一条用于求解所述目标路径的初始路径。
可选的,该至少两个迭代计算过程是并行执行的。
可以理解的是,步骤301b和步骤302b表示该至少两个迭代计算过程中不少于两个迭代计算过程对应不同的起点。
可以理解的是,一个起点表示一条用于求解所述目标路径的初始路径,表示这个起点是该线性规划数学模型的一个基可行解,满足该线性规划数学模型的非负约束条件;一个起点经过所述迭代计算过程中的若干次迭代计算后表示一条用于求解所述目标路径的初始路径(即该第一节点与第二节点间的一条路径),表示这个起点是该线性规划数学模型的一个基解,不满足该线性规划数学模型的非负约束条件,由于起点是根据基的确定来计算的,而在确定了一组基的情况下,并不能从这组基直接得到这组基对应的是基解还是基可行解,在一个起点是基解的情况下,经过该迭代计算过程中的若干次(一次或多次)迭代就可以迭代到该起点附近的一个基可行解上,这个基可行解就表示一条用于求解所述目标路径的初始路径。
需要说明的是,可以根据SDN网络控制层的运算能力来确定并行执行的迭代计算过程的数量,尤其是在该至少两个迭代计算过程并行执行的情况下。SDN 网络控制层的运算能力具体体现在控制层的硬件配置情况,比如CPU的核数以及计算机的数量等等。例如,如果控制层部署于一台控制服务器上,服务器的硬件配置情况都是可知的。由于SDN网络控制层用于管理整个SDN网络,在网络部署时通常具有较高的运算能力,一般能够满足并行地运行至少两个计算线程。
可以理解的是,并行多个计算线程可以增大选中路由计算线性规划模型的可行域中与最优解对应的顶点间隔边数更少的起点的概率,从而提高了SDN路由计算的计算效率,增进SDN网络的网络规划和调度的实时性,提高了SDN 控制平面对SDN网络的网络规划能力,能够更加合理高效地利用网络资源和计算资源。
优选的,该迭代计算过程的数量与该至少两个起点的数量相等。也就是说,该至少两个迭代计算过程与该至少两个起点一一对应。
可选的,该迭代计算过程的数量大于该起点的数量,该迭代计算过程中存在具有相同起点的迭代计算过程,但是需要理解,该具有相同起点的迭代计算过程应当具有不同的迭代路径。
在另一种情况下,该至少两个迭代计算过程的数量也可以小于起点的数量,即步骤301b则相当于该迭代计算过程从确定的起点中取一子集当做计算初始点的集合,所述子集在确定的起点中的补集可以作为除上述至少两个迭代计算过程外其他求解该线性规划数学模型的迭代计算过程的计算起点。
需要说明的是,启动该至少两个迭代计算过程后,具体的求解过程一般遵循贪心算法,如用Dantzig、SteepestEdge或者Dijkstra等计算方法,本发明实施例不做限制,也不再赘述。
进一步的,图3b所述的方法还可以包括以下步骤,对该至少两个迭代计算过程进行控制。
步骤303b:将所述至少两个迭代计算过程中的每个迭代计算过程正在计算的计算点与记录集合中的点进行匹配,所述记录集合是所述至少两个迭代计算过程已计算的点的集合;
在所述记录集合中不包括所述正在计算的计算点的情况下,将当前的计算点加入所述记录集合;
在所述记录集合中包括所述正在计算的计算点的情况下,终止所述正在计算的计算点对应的迭代计算过程。
进一步的,在所述记录集合中包括所述当前的计算点的情况下,还可以包括在所述记录集合中包括所述正在计算的计算点的情况下,所述方法还包括:
利用所述终止的迭代计算过程的计算资源进行新的迭代计算过程,所述新的迭代计算过程的计算起始点与所述至少两个迭代计算过程中的一个有相同的计算起始点,并且所述新的计算线程的第二个计算点与具有相同计算起始点的所述迭代计算过程的第二个计算点不同。
需要理解的是,在该至少两个迭代计算过程的数量小于确定出的起点的数量的情况下,该新的迭代计算过程还可以以该至少两个迭代计算过程的计算初始点的集合在该起点的集合中的补集中的起点作为计算初始点。
进一步的,图3b所述的方法还可以包括以下步骤,对该至少两个计算线程进行控制。
步骤304b:在所述至少两个迭代计算过程中的任何一个计算出所述线性规划数学模型的最优解的情况下,终止所述至少两个迭代计算过程;
根据所述最优解得到所述目标路径。
需要理解的是,最优解表示的是使该线性规划数学模型的目标函数达到最有值(最大值或最小值)的任一可行解,最优解表示符合该指定业务需求的目标路径。
步骤303b和步骤304b缩短控制层完成该至少迭代计算过程的总时间,提高了路由确定的计算效率,加强了对该至少两个计算线程的管理,减少了对计算资源的浪费。
需要理解的是,由于所述至少两个迭代计算过程中的每个迭代计算过程都是利用单纯形法处理线性规划问题,如果存在最优解,最优解必在线性规划数学模型的可行域的边界上,更进一步的,最优解在可行域对应的单纯形的顶点 (隅角)上。任何一项约束条件的边界方程是用=号来替换该约束条件中的≥或者≤而得到的,每个边界方程确定一个超平面。因此,可行域的边界是由那些满足一个或同时满足几个边界方程(即处在作为边界的一个或几个超平面上) 的可行解所组成,而且最优解必在其中。最优解不仅是在可行域的边界上,而且也在这个区域的一个隅角上。一个可行解,如果不处在由另两个可行解连接起来的任何线段上,它就是一个角点可行解,如果连接两个角点可行解的线段处在可行区域的边界上,这两个角点可行解就称为相邻的角点可行解。
角点可行解有以下三个性质:
1如果存在一个最优解,那么它必然是角点可行解,如果存在有多个最优解那么至少有两个最优解必定是相邻的角点可行解。
2只存在有限个数的角点可行解。
3如果一个角点可行解按目标函数值来衡量时比其所有的相邻角点可行解更好一些,那它就比所有其他角点可行解都更好,也就是最优解。
所以判断最优解无需列举所有的可行解,并且一旦确定某个解是最优解后就可停止计算。
需要理解的是,最优解表示符合该指定业务需要的目标路径,通过解析该最优解可以确定该目标路径。
需要理解的是,由于需要计算的线性规划数学模型是根据具体的SDN网络的路由信息和业务需求获得的,即数学模型是从具体的业务场景中抽象出的,故一般很少有无解,对可能无解的情况,可以根据该至少两个迭代计算过程向管理者或者决策方返回表示无解的结论,本发明实施例不做限制。
下面结合图4对图3b对应的路由确定方法中的步骤301b作进一步的具体描述:
为便于说明,以线性规划问题的数学模型的一般形式来进行叙述。线性规划问题的数学模型的一般形式表示为:
min(or max)z=c1x1+c2x2+…+cnxn (1.1)
其中,(1.1)称目标函数,(1.2)的前k个不等式或者等式称约束条件, x1、x2、…、xn≥0称为非负约束条件不等式。k和n是正整数。
步骤401:将该线性规划数学模型中的前k个不等式或者等式即方程组(1.2) 转化成仅包括不等式的约束条件不等式组。
具体的,对于方程组(1.2)中包含等式的情况,通过消元法转化为仅仅包含大于等于不等式或小于等于不等式的形式。转化后的线性规划数学模型如下:
min(or max)z=c1x1+c2x2+…+cnxn
其中,m为正整数,m≤k。
步骤402:确定该目标函数的目标向量;以及确定该约束条件不等式组中约束条件不等式的选择向量。
具体的,根据该约束条件不等式组中的约束条件不等式是大于等于不等式还是小于等于不等式,确定该约束条件不等式组中每个约束条件不等式的选择向量。
具体的,根据线性代数中的知识可知,目标函数的一个法向量可以表示为:
约束不等式(1)、(2)、…、(m)的一个法向量依次可以表示为:
…
根据该目标函数求取的是最大值还是最小值,确定该目标函数的目标向量确定方法如下:
具体的,根据该约束条件不等式组中的约束条件不等式(i)是大于等于或小于等于不等式确定该约束条件不等式的选择向量确定方法如下:
步骤403:根据约束条件不等式的选择向量和目标函数的目标向量的夹角,将确定出的约束条件不等式的大于等于或小于等于号改为等号作为起点选择方程而构成至少一个起点选择方程组,每个起点选择方程组有唯一的解,求解起点选择方程组以确定计算起点集。
具体的,计算选择向量与向量的夹角(θi=1,2,…m),若θi≥90°(即夹角θi是直角或者钝角),则将对应的约束条件不等式(i)选取,这些被选取的约束条件不等式构成一个不等式集合。根据不等式集合中的约束条件不等式确定若干个具有唯一的解的起点选择方程组,起点选择方程组中的每个方程都是不等式集合中的一个约束条件不等式将不等号改为等号得到的。
具体的,可以根据不等式集合中的约束条件不等式确定一个具有唯一的解的起点选择方程组,该至少两个迭代计算过程有同样的起点;或者,可以根据不等式集合中的约束条件不等式确定多个具有唯一的解的起点选择方程组,其中,该多个具有唯一的解的起点选择方程组可以是能够根据不等式集合中的约束条件确定出的所有的具有唯一的解的起点选择方程组,也可以是能够根据不等式集合中的约束条件确定出的一部分具有唯一的解的起点选择方程组,本发明实施例不做限制。
具体的,计算从约束条件不等式(1)到约束条件不等式(m)的每个约束条件不等式的选择向量与向量的夹角(θi=1,2,…m)。
本领域技术人员应当理解,向量与向量的夹角θ的计算公式为:
本领域技术人员应当理解,起点选择方程组通常是非齐次线性方程组,设方程组形式为:
其中,j为正整数,j≤m。b1,b2,…bj至少有一个不为零,其中矩阵
和
分别称为方程组(*)的系数矩阵和增广矩阵,则该起点选择方程组具有唯一解的条件的充要条件是该起点选择方程组的系数矩阵A与增广矩阵B满足:r(A)=r(B)=n,其中r(A)是系数矩阵A的秩,r(B)是增广矩阵B的秩。
图3b所示的实施例提供了一种用于软件定义网络的路由确定方法,根据与所述指定业务需求对应的线性规划数学模型,通过根据线性规划模型中约束条件方程与目标函数法向量的夹角确定线性规划计算的起点集,至少两个起点,该至少两个起点是至少两个迭代计算过程的计算初始点,根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,相对于现有技术中取该数学模型的任意基解作为迭代计算过程的起点而使迭代步骤多、求解效率低的情况,本发明实施例提供的通过确定出符合一定条件的起点并使用这些起点作为迭代计算过程的初始计算点,可以减少迭代计算过程的迭代步骤,从而提高了SDN路由计算的计算效率,增进SDN网络的网络规划和调度的实时性。进一步的并行至少两个迭代计算过程可以增大选中路由计算线性规划模型的可行域中与最优解对应的顶点间隔边数更少的起点的概率,也提高了SDN路由计算的计算效率,增进SDN网络的网络规划和调度的实时性,提高了SDN控制平面对SDN网络的网络规划能力,能够更加合理高效地利用网络资源和计算资源。进一步的,通过对多个迭代计算过程的合理控制减少了对计算资源的浪费,缩短控制层完成该至少两个迭代计算过程的总时间,提高了路由确定的计算效率,加强了对该至少两个迭代计算过程的管理。
图5所示是的本发明实施例中一种用于软件定义网络的路由确定装置500 的结构示意图,该装置设置于SDN网络的控制层,比如控制服务器,该SDN 网络包括多个网络节点,所述多个网络节点包括第一网络节点和第二网络节点,所述第一网络节点与所述第二网络节点之间存在多条路径,所述方法用于从所述多条路径中确定出符合指定业务需求的目标路径。具体的,网络节点可以是交换机或者路由器等网络设备,本发明不做限制。
本发明实施例对控制层的实现方式不作限制,如可以是通过加载在基础设施层的一条或多台物理设备中的加载的软件(如网络操作系统)实现的,还可以是在控制层的硬件实体设备中实现的(实现于独立于基础设施层网络节点的一台控制服务器上或者计算机集群上)等等,本发明实施例不做限定。
所述装置500包括:
起点确定单元501,用于确定至少两个起点,所述至少两个起点是至少两个并行的迭代计算过程的计算初始点,所述至少两个迭代计算过程用于通过求解一线性规划数学模型来得到所述目标路径,所述线性规划数学模型与所述指定业务需求对应,每个所述起点唯一地对应所述线性规划数学模型的一组基,所述至少两个起点对应的至少两组基中,任意两组基之间线性相关的基的数量小于或者等于选取阈值,所述线性规划数学模型存在其他至少一组基与所述至少两组基中的一组基之间线性相关的基的数量大于或者等于所述选取阈值;
目标路径确定单元502,用于根据所述至少两个并行的迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,其中每个所述迭代计算过程的计算初始点是一所述起点,所述至少两个起点中的任意一个起点表示一条用于求解所述目标路径的初始路径或者经过所述任意一个起点对应的迭代计算过程中的若干次迭代计算后表示一条用于求解所述目标路径的初始路径。
具体的,该装置500还包括迭代计算单元503,所述迭代计算单元503用于执行所述至少两个迭代计算过程,所述至少两个迭代计算过程是并行执行的。
具体的,在所述根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,所述目标路径确定单元502具体用于:
在所述至少两个迭代计算过程中的任何一个计算出所述线性规划数学模型的最优解的情况下,终止所述至少两个迭代计算过程;
根据所述最优解得到所述目标路径。
可选的,该装置500还包括过程控制单元,所述过程控制单元用于:
将所述至少两个迭代计算过程中的每个迭代计算过程正在计算的计算点与记录集合中的点进行匹配,所述记录集合是所述至少两个迭代计算过程已计算的点的集合;
在所述记录集合中不包括所述正在计算的计算点的情况下,将当前的计算点加入所述记录集合;
在所述记录集合中包括所述正在计算的计算点的情况下,终止所述正在计算的计算点对应的迭代计算过程。
可选的,所述过程控制单元还用于:
利用所述终止的迭代计算过程的计算资源进行新的迭代计算过程,所述新的迭代计算过程的计算起始点与所述至少两个迭代计算过程中的一个有相同的计算起始点,并且所述新的计算线程的第二个计算点与具有相同计算起始点的所述迭代计算过程的第二个计算点不同。
以上单元按照功能示意性划分,其他采用本发明方法的单元划分方法同样在本发明保护范围内。关于本实施例的细节请参阅图3a对应的方法实施例,此处不再赘述。
可见,采用图5所述的实施例提供的一种用于软件定义网络的路由确定装置500,根据与所述指定业务需求对应的线性规划数学模型,通过尽量不重复地选取至少两组该数学模型的基确定至少两个起点,该至少两个起点是至少两个迭代计算过程的计算初始点,根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,相对于现有技术中取该数学模型的任意基解作为迭代计算过程的起点而使迭代步骤多、求解效率低的情况,本发明实施例提供的通过确定出符合一定条件的起点并使用这些起点作为迭代计算过程的初始计算点,可以减少迭代计算过程的迭代步骤,从而提高了SDN路由计算的计算效率,增进SDN网络的网络规划和调度的实时性。进一步的并行至少两个迭代计算过程可以增大选中路由计算线性规划模型的可行域中与最优解对应的顶点间隔边数更少的起点的概率,也提高了SDN路由计算的计算效率,增进SDN网络的网络规划和调度的实时性,提高了SDN控制平面对SDN网络的网络规划能力,能够更加合理高效地利用网络资源和计算资源。进一步的,通过对多个迭代计算过程的合理控制减少了对计算资源的浪费,缩短控制层完成该至少两个迭代计算过程的总时间,提高了路由确定的计算效率,加强了对该至少两个迭代计算过程的管理。
图6所示是的本发明实施例中一种用于软件定义网络的路由确定装置600 的结构示意图,该装置设置于SDN网络的控制层,比如控制服务器,该SDN 网络包括多个网络节点,所述多个网络节点包括第一网络节点和第二网络节点,所述第一网络节点与所述第二网络节点之间存在多条路径,所述方法用于从所述多条路径中确定出符合指定业务需求的目标路径。具体的,网络节点可以是交换机或者路由器等网络设备,本发明不做限制。
本发明实施例对控制层的实现方式不作限制,如可以是通过加载在基础设施层的一条或多台物理设备中的加载的软件(如网络操作系统)实现的,还可以是在控制层的硬件实体设备中实现的(实现于独立于基础设施层网络节点的一台控制服务器上或者计算机集群上)等等,本发明实施例不做限定。
所述装置600包括:
起点确定单元601,用于确定至少两个起点,所述至少两个起点是至少两个迭代计算过程的计算初始点,所述至少两个迭代计算过程用于通过解一线性规划数学模型来得到所述目标路径,所述线性规划数学模型与所述指定业务需求对应,每个所述起点是一起点选择方程组的唯一的解,每个所述起点选择方程组中的每个起点选择方程对应一个所述线性规划数学模型的约束条件不等式,每个所述约束条件不等式的选择向量与所述线性规划数学模型的目标函数的目标向量间的夹角大于或者等于90°,所述选择向量是所述约束条件不等式的一个法向量,所述目标向量是所述目标函数的一个法向量;
目标路径确定单元602,用于根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,其中每个所述迭代计算过程的计算初始点是一所述起点,所述至少两个起点中的任意一个起点表示一条用于求解所述目标路径的初始路径或者经过所述任意一个起点对应的迭代计算过程中的若干次迭代计算后表示一条用于求解所述目标路径的初始路径。
具体的,所述装置600还包括迭代计算单元603,所述迭代计算单元603用于执行所述至少两个迭代计算过程,所述至少两个迭代计算过程是并行执行的。
具体的,在所述根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径的方面,所述目标路径确定单元602具体用于:
在所述至少两个迭代计算过程中的任何一个计算出所述线性规划数学模型的最优解的情况下,终止所述至少两个迭代计算过程;
根据所述最优解得到所述目标路径。
可选的,所述装置600还包括过程控制单元,所述过程控制单元用于:
将所述至少两个迭代计算过程中的每个迭代计算过程正在计算的计算点与记录集合中的点进行匹配,所述记录集合是所述至少两个迭代计算过程已计算的点的集合;
在所述记录集合中不包括所述正在计算的计算点的情况下,将当前的计算点加入所述记录集合;
在所述记录集合中包括所述正在计算的计算点的情况下,终止所述正在计算的计算点对应的迭代计算过程。
可选的,所述过程控制单元还用于:
利用所述终止的迭代计算过程的计算资源进行新的迭代计算过程,所述新的迭代计算过程的计算起始点与所述至少两个迭代计算过程中的一个有相同的计算起始点,并且所述新的计算线程的第二个计算点与具有相同计算起始点的所述迭代计算过程的第二个计算点不同。
以上单元按照功能示意性划分,其他采用本发明方法的单元划分方法同样在本发明保护范围内。关于本实施例的细节请参阅图3b和图4对应的方法实施例,此处不再赘述。
图6所示的实施例提供了一种用于软件定义网络的路由确定装置600,根据与所述指定业务需求对应的线性规划数学模型,通过根据线性规划模型中约束条件方程与目标函数法向量的夹角确定线性规划计算的起点集,至少两个起点,该至少两个起点是至少两个迭代计算过程的计算初始点,根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,相对于现有技术中取该数学模型的任意基解作为迭代计算过程的起点而使迭代步骤多、求解效率低的情况,本发明实施例提供的通过确定出符合一定条件的起点并使用这些起点作为迭代计算过程的初始计算点,可以减少迭代计算过程的迭代步骤,从而提高了SDN路由计算的计算效率,增进SDN网络的网络规划和调度的实时性。进一步的并行至少两个迭代计算过程可以增大选中路由计算线性规划模型的可行域中与最优解对应的顶点间隔边数更少的起点的概率,也提高了SDN路由计算的计算效率,增进SDN网络的网络规划和调度的实时性,提高了SDN控制平面对SDN网络的网络规划能力,能够更加合理高效地利用网络资源和计算资源。进一步的,通过对多个迭代计算过程的合理控制减少了对计算资源的浪费,缩短控制层完成该至少两个迭代计算过程的总时间,提高了路由确定的计算效率,加强了对该至少两个迭代计算过程的管理。
图7是本发明实施例一种路由确定装置700的结构示意图,该路由确定装置用于软件定义网络的控制层,该路由确定装置可以是服务器等计算机设备。所述数据栅格化装置700可包括,输入/输出(I/O,Input/Output)设备701(比如: 网卡)、处理器702、存储器703以及总线705。具体的,处理器702可以是多核的。
存储器703可以包括只读存储器和随机存取存储器,并向处理器702提供指令和数据。存储器703的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器703存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
在一些实施方式中,存储器703存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集,比如SDN控制层的SDN控制器为了保证硬件的兼容性,在一些实施方式中是安装在虚拟机上的。
宿主机7031:作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,Host可能是虚拟机监控器 (VMM);此外,有时VMM和1个特权虚拟机配合,两者结合组成Host。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器、内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机则运行在Host为其准备的虚拟硬件平台上,Host上运行一个或多个虚拟机。
虚拟机7032:通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。
在图7对应的一个实施例中,处理器702通过调用存储器703存储的操作指令 (该操作指令可存储在操作系统中),执行如下操作:确定至少两个起点,所述至少两个起点是至少两个迭代计算过程的计算初始点,所述至少两个迭代计算过程用于通过求解一线性规划数学模型来得到所述目标路径,所述线性规划数学模型与所述指定业务需求对应,每个所述起点唯一地对应所述线性规划数学模型的一组基,所述至少两个起点对应的至少两组基中,任意两组基之间线性相关的基的数量小于或者等于选取阈值,所述线性规划数学模型存在其他至少一组基与所述至少两组基中的一组基之间线性相关的基的数量大于或者等于所述选取阈值;
根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,其中每个所述迭代计算过程的计算初始点是一所述起点,所述至少两个起点中的任意一个起点表示一条用于求解所述目标路径的初始路径或者经过所述任意一个起点对应的迭代计算过程中的若干次迭代计算后表示一条用于求解所述目标路径的初始路径。
具体的,所述至少两个迭代计算过程是通过多核的处理器702并行执行的。
在根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径的方面,处理器702可以通过调用存储器703存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:在所述至少两个迭代计算过程中的任何一个计算出所述线性规划数学模型的最优解的情况下,终止所述至少两个迭代计算过程;根据所述最优解得到所述目标路径。
可选的,处理器702通过调用存储器703存储的操作指令(该操作指令可存储在操作系统中),还执行如下操作:将所述至少两个迭代计算过程中的每个迭代计算过程正在计算的计算点与记录集合中的点进行匹配,所述记录集合是所述至少两个迭代计算过程已计算的点的集合;在所述记录集合中不包括所述正在计算的计算点的情况下,将当前的计算点加入所述记录集合;在所述记录集合中包括所述正在计算的计算点的情况下,终止所述正在计算的计算点对应的迭代计算过程。
可选的,在所述记录集合中包括所述正在计算的计算点的情况下,处理器 702通过调用存储器703存储的操作指令(该操作指令可存储在操作系统中),还执行如下操作:利用所述终止的迭代计算过程的计算资源进行新的迭代计算过程,所述新的迭代计算过程的计算起始点与所述至少两个迭代计算过程中的一个有相同的计算起始点,并且所述新的计算线程的第二个计算点与具有相同计算起始点的所述迭代计算过程的第二个计算点不同。
关于本实施例的细节请参阅图3a对应的方法实施例的叙述内容,此处不再赘述。
在本实施例下,图7所述的路由确定装置700根据与所述指定业务需求对应的线性规划数学模型,通过尽量不重复地选取至少两组该数学模型的基确定至少两个起点,该至少两个起点是至少两个迭代计算过程的计算初始点,根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,相对于现有技术中取该数学模型的任意基解作为迭代计算过程的起点而使迭代步骤多、求解效率低的情况,本发明实施例提供的通过确定出符合一定条件的起点并使用这些起点作为迭代计算过程的初始计算点,可以减少迭代计算过程的迭代步骤,从而提高了SDN路由计算的计算效率,增进SDN网络的网络规划和调度的实时性。进一步的并行至少两个迭代计算过程可以增大选中路由计算线性规划模型的可行域中与最优解对应的顶点间隔边数更少的起点的概率,也提高了SDN路由计算的计算效率,增进SDN网络的网络规划和调度的实时性,提高了SDN控制平面对SDN网络的网络规划能力,能够更加合理高效地利用网络资源和计算资源。进一步的,通过对多个迭代计算过程的合理控制减少了对计算资源的浪费,缩短控制层完成该至少两个迭代计算过程的总时间,提高了路由确定的计算效率,加强了对该至少两个迭代计算过程的管理。
在图7对应的另一个实施例中,路由确定装置700的处理器702通过调用存储器703存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:
确定至少两个起点,所述至少两个起点是至少两个迭代计算过程的计算初始点,所述至少两个迭代计算过程用于通过解一线性规划数学模型来得到所述目标路径,所述线性规划数学模型与所述指定业务需求对应,每个所述起点是一起点选择方程组的唯一的解,每个所述起点选择方程组中的每个起点选择方程对应一个所述线性规划数学模型的约束条件不等式,每个所述约束条件不等式的选择向量与所述线性规划数学模型的目标函数的目标向量间的夹角大于或者等于90°,所述选择向量是所述约束条件不等式的一个法向量,所述目标向量是所述目标函数的一个法向量;
根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,其中每个所述迭代计算过程的计算初始点是一所述起点,所述至少两个起点中的任意一个起点表示一条用于求解所述目标路径的初始路径或者经过所述任意一个起点对应的迭代计算过程中的若干次迭代计算后表示一条用于求解所述目标路径的初始路径。
具体的,在所述根据所述线性规划数学模型的约束条件不等式的法向量和所述线性规划数学模型的目标函数的法向量之间的夹角确定多个起点选择方程组的方面,处理器702通过调用存储器703存储的操作指令(该操作指令可存储在操作系统中),还执行如下操作:确定所述线性规划数学模型的约束条件不等式组,所述约束条件不等式组采用一组线性不等式表示所述线性规划数学模型的约束条件;确定所述约束条件不等式组中的约束条件不等式的选择向量,所述选择向量是所述约束条件不等式的一个法向量;确定所述所述线性规划数学模型的目标函数的目标向量,所述目标向量是所述目标函数的一个法向量;确定多个起点选择方程组,所述多个起点选择方程组中的每个方程对应一个选择向量与所述目标向量的夹角大于或者等于90°的约束条件不等式。
可选的,可选的,处理器702通过调用存储器703存储的操作指令(该操作指令可存储在操作系统中),还执行如下操作:在所述数量个迭代计算过程中的任何一个迭代计算过程得到一个最优解的情况下,终止所述数量个迭代计算过程;
根据所述最优解得到所述满足所述路由信息和所述业务需求的链路。
具体的,所述至少两个迭代计算过程是通过多核的处理器702并行执行的。
在根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径的方面,处理器702可以通过调用存储器703存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:在所述至少两个迭代计算过程中的任何一个计算出所述线性规划数学模型的最优解的情况下,终止所述至少两个迭代计算过程;根据所述最优解得到所述目标路径。
可选的,处理器702通过调用存储器703存储的操作指令(该操作指令可存储在操作系统中),还执行如下操作:将所述至少两个迭代计算过程中的每个迭代计算过程正在计算的计算点与记录集合中的点进行匹配,所述记录集合是所述至少两个迭代计算过程已计算的点的集合;在所述记录集合中不包括所述正在计算的计算点的情况下,将当前的计算点加入所述记录集合;在所述记录集合中包括所述正在计算的计算点的情况下,终止所述正在计算的计算点对应的迭代计算过程。
可选的,在所述记录集合中包括所述正在计算的计算点的情况下,处理器 702通过调用存储器703存储的操作指令(该操作指令可存储在操作系统中),还执行如下操作:利用所述终止的迭代计算过程的计算资源进行新的迭代计算过程,所述新的迭代计算过程的计算起始点与所述至少两个迭代计算过程中的一个有相同的计算起始点,并且所述新的计算线程的第二个计算点与具有相同计算起始点的所述迭代计算过程的第二个计算点不同。
关于本实施例的细节请参阅图3b和图4对应的方法实施例的叙述内容,此处不再赘述。
可见,本实施例提供的用于软件定义网络的路由确定装置700,根据与所述指定业务需求对应的线性规划数学模型,通过根据线性规划模型中约束条件方程与目标函数法向量的夹角确定线性规划计算的起点集,至少两个起点,该至少两个起点是至少两个迭代计算过程的计算初始点,根据所述至少两个迭代计算过程中至少一个迭代计算过程的计算结果,确定所述目标路径,相对于现有技术中取该数学模型的任意基解作为迭代计算过程的起点而使迭代步骤多、求解效率低的情况,本发明实施例提供的通过确定出符合一定条件的起点并使用这些起点作为迭代计算过程的初始计算点,可以减少迭代计算过程的迭代步骤,从而提高了SDN路由计算的计算效率,增进SDN网络的网络规划和调度的实时性。进一步的并行至少两个迭代计算过程可以增大选中路由计算线性规划模型的可行域中与最优解对应的顶点间隔边数更少的起点的概率,也提高了SDN 路由计算的计算效率,增进SDN网络的网络规划和调度的实时性,提高了SDN 控制平面对SDN网络的网络规划能力,能够更加合理高效地利用网络资源和计算资源。进一步的,通过对多个迭代计算过程的合理控制减少了对计算资源的浪费,缩短控制层完成该至少两个迭代计算过程的总时间,提高了路由确定的计算效率,加强了对该至少两个迭代计算过程的管理。
处理器702控制路由确定装置700的操作,处理器702还可以称为CPU (CentralProcessing Unit,中央处理单元)。存储器703可以包括只读存储器和随机存取存储器,并向处理器702提供指令和数据。存储器703的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,确定装置700的各个组件通过总线系统705耦合在一起,其中总线系统705除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统705。为便于表示,图7中仅用一条粗线表示,但并不表示总线系统705仅有一根总线或一种类型的总线。
上述本发明实施例揭示的方法可以应用于处理器702中,或者由处理器702 实现。处理器702可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器702中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器702可以是通用处理器、数字信号处理器 (DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器703,处理器702读取存储器703中的信息,结合其硬件完成上述方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件(例如处理器)来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体 (Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM) 等。
以上为本发明实施例所提供的用于移动终端的文本查找方法和装置,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。