[发明专利]一种基于linux的路径跟踪方法在审
申请号: | 201310348577.7 | 申请日: | 2013-08-12 |
公开(公告)号: | CN103425838A | 公开(公告)日: | 2013-12-04 |
发明(设计)人: | 孟祥飞;吴楠;何志平;郭美思;宗栋瑞 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F17/50 | 分类号: | G06F17/50;G06Q10/04 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 250014 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种基于linux的路径跟踪方法,针对经济学、电子线路设计、自动控制、计算机辅助设计和制造以及计算机图形学等诸多领域中遇到一类问题都可归结为求解某一类非线性规划问题,尤其在神经网络以及图形图像处理中运用极为广泛。路径跟踪方法通过对已构建目标函数的跟踪路径函数进行建模,并在区间通过初始化化步、预估步、校正步、调换步、校验步五个步骤进行跟踪,最终得到目标函数的解。 | ||
搜索关键词: | 一种 基于 linux 路径 跟踪 方法 | ||
【主权项】:
1.一种基于linux的路径跟踪方法, 其特征在于针对求解非线性方程组的结果,首先要选取一个简单的方程,它的解已知或比较容易求解,然后构造一个带有参数的光滑函数,使其满足;并且在一定的条件下,方程的解集合包含一条从开始,趋近于超平面的光滑曲线,的另一端极限点为,则是的解;所述的一定条件,是首先对路径函数进行建模,接着在区间通过初始化化步、预估步、校正步、调换步、校验步五个步骤进行跟踪,最终得到目标函数的解;在对路径函数进行建模的过程中,采取的二维稀疏矩阵作为参变量来降低空间复杂度和时间复杂度;在初始化步中主要对一些全局变量进行初始化;在预估步中采取了首次切线预估其余割线预估的方式进行预估,以此降低时间复杂度;在调换步中监控跟踪步长并按照最优策略进行步长更新;最后一步校验步用来判断跟踪点与实际点的误差是否满足既定的要求,如果满足方法总之,否则继续转到预估步;由于五个步骤进行跟踪是个不断循环的过程,因此各个步骤的良好通信以及参数设置,采用全局变量和局部静态变量的混合管理模式,在主要数据结构的设计时采取的稀疏矩阵和普通矩阵混存动态管理结构,具体步骤如下:预处理和系数矩阵数据结构的设计为了很好的进行各个步骤的通信我们采取了全局变量的方式,诸如精度、步长、初始点、预估点、校正点、初始预估方向、预估方向等全部封存在一个全局文件当中统一进行监控更新,这样做的好处是在数据交换过程中少了很多中间变量的来回赋值,数据量大的时候赋值时间开销也很大,且便于通信和调试,因此,在跟踪之前,首先要将这些数据进行预处理;为了解决非线性规划问题当中向量的非对称性问题,本方法采取了稀疏矩阵的数据结构和正常的二维数组并存的数据结构进行数据的处理,这样针对不同的非线性规划问题,采取两套数据结构及对应矩阵计算方法进行切换,切换的策略是:“非零元的个数是零元个数的三倍以上”,不仅降低了空间开销,而且大大降低了时间复杂度,在这里我们只介绍稀疏矩阵的数据结构体描述:struct Trituple{int row_index;//非零元的行标int col_index;//非零元的列标double value;//元素值};structSparseMatrix{int Mrx_row;//矩阵的行int Mrx_col;//矩阵的列Trituple* data;//三元组数组};诸如这样的矩阵采取稀疏矩阵的结构描述,效果显而易见,而且在实际的非线性规划问题当中这种结构占据的比例偏高一些;路径跟踪过程在追踪由确定的同伦路径的过程中,方法分以下五个步骤:① 初始化步:在初始化步中给出三个量:一个初始点,一个初始化步长,在全局变量step中进行初始化;最后一个容许误差采取宏定义的方式在inf中进行了设定;② 预估步:得到初始点后,进行下一个点的预估,第一步采取切线预估,其余采取的是割线预估方式,首先求出在初始点处的单位切向量,计算得出预估点,后续的预估过程是通过取当前得到的校正点及其上一个校正后的点的差进行割线预估;在这里用到了带列主元的Gauss消元法来求切向量,下面简单介绍一下带列主元的Gauss消元法;选取,使得最大化,并进行如下行交换割线预估主要的方法是通过以计算的相邻两点来确定一个预估方向,具体是过以下公式得到的:还有一种预估方式是三次Hermite预估,具体的公式如下:由于第一次预估的时候,只有初值点一个点,因此,只能采取切线预估的方式,切线预估在计算切向量的过程中非常耗时,因此,只要得到第一个预估点之后,就采取简单有效的割线预估方式,这个方法比起其他两种方式在执行效率上会快很多,因此采取了第一步切线预估,其余步骤为割线预估的方式;③ 校正步:以为初值,用迭代法产生一个序列,使为中点的近似且误差小于,如果迭代不收敛,则缩小步长转回预估步,在这里采用牛顿迭代法,步骤如下:从一个点开始,预估,它给出一个其误差为粗糙估计,经若干步Newton迭代校正可防止这个误差传播而得以控制,这个迭代过程的初始值为预估值,希望迭代收敛于的解;向量与路径在点相切,经过点并且与切向量垂直的维超平面在点(其中)处切割路径,校正过程就是为了得到这个点,令’,表示的分量,超平面可写成:于是校正过程就是解方程组牛顿迭代的迭代格式为:牛顿迭代是局部收敛的,即在中存在点的某一领域,当初值时,牛顿迭代收敛,如果从出发的牛顿迭代不收敛,则通过缩小预估步长,使落在牛顿迭代收敛的某邻域中;迭代停止的判别依据有两种:第一,如果估计出迭代不收敛于一个相近的点,应立即停止迭代;第二,如果迭代收敛,当近似解均在符合规定误差内,也停止迭代,在方法的设计中,采用用if结构能很好的包括这两种情况,即在过预估点且垂直于预估方向的超平面上进行校正,校正方程组,其中,向量d表示预估方向;④ 调整步长:这一步主要是为了精度以及循环次数做考虑的,在校正过程中,如果满足要求,就要适当的调整步长,否则控制流程返回到预估步,在方法设计的过程中,对步长进行了逐次的标记,由于在每一次的预估校正过程中,这个变量一直在变,因此用一个静态的局部变量来实现;⑤ 校验步:这一个步骤是整个路径跟踪的终止信号,一旦中分量等于0或接近于0的话,就终止跟踪,牛顿迭代法过程中,每次都对t做检查,如果满足终止的条件,方法就让迭代循环终止并把最终的结果给出来。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310348577.7/,转载请声明来源钻瓜专利网。