[发明专利]一种基于L∞准则的半连续最优分段线性近似方法在审
申请号: | 201711178360.0 | 申请日: | 2017-11-23 |
公开(公告)号: | CN107994906A | 公开(公告)日: | 2018-05-04 |
发明(设计)人: | 黎彤亮;赵环宇;李晓云;庞超逸 | 申请(专利权)人: | 河北省科学院应用数学研究所 |
主分类号: | H03M7/30 | 分类号: | H03M7/30;G06F17/17 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 050000 河北省石家庄*** | 国省代码: | 河北;13 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明旨在设计一个最优的基于L∞准则的半连续线性近似算法,本发明是通过以下技术方案实现的,采用DisConnAlg算法来生成第一个代表性线段‑有界的分段线段,该线段在局部上到达最远的点;用DisConnAlg算法生成下一个代表性线段‑有界的分段线段,将这个分段线段作为待检验的线段,采用扩展策略和缩减策略检验该待定线段是否可以前一个线段实现半连续;反复进行上述步骤,一直到所有的数据点都被处理过。本发明与现有技术的最大区别在于该算法实现的连续线段相连续的地方,并非是传统的时间点,而有可能是两个时间点之间的任意位置,因此称作半连续,并且该算法是最优的,时间复杂度是O(n)。 | ||
搜索关键词: | 一种 基于 准则 连续 最优 分段 线性 近似 方法 | ||
【主权项】:
一种基于L∞准则的半连续最优分段线性近似方法,其特征在于其包括如下步骤:(一)利用DisConnAlg算法生成第一个代表性线段:δ‑有界分段线段S1=S[1,n],其中S[1,n]=<p1,p2,…,pn>代表从时间点1到n时间段的子序列线段,每一个时序数据点pi=(xi,yi)代表时间点xi时所对应的实际值yi,x为横坐标轴,y为纵坐标轴;(1)给定一个δ误差限,将每一个时序数据点pi扩展为一个范围其中pi=(xi,yi‑δ),(2)从p1=(x1,y1),p2=(x2,y2)开始初始化:令pc=(xc,yc)=p2=(x2,y2‑δ),pb=(xb,yb)=p1=(x1,y1‑δ),令下极限直线即直线的斜率上极限直线即直线的斜率令下凸壳即下凸壳由点与点的连线构成;上凸壳即上凸壳由点pb与点pc的连线构成,所述a=b=1,c=d=1;(3)根据下一个点p=(x,y)的位置,判断是否需要更新下极限直线与上极限直线及凸壳的值,并进行调整,具体如下:当线段在直线与直线内部或者至少与一条直线有交点,即公式(1)成立时:l(x‑xa)+ya‑δ≤y≤u(x‑xb)+yb+δ (1)a.如果p的上限在直线与直线内部,即公式(2)成立时,需要更新上极限直线和下凸壳cvx:从上凸壳中找到点g,使得斜率最小;然后令pb=g;接下来删除上凸壳中点g所对应的时间点之前所有的点;更新将插入到下凸壳cvx末尾,并利用三角检验更新下凸壳cvx;所述三角检验的第一次更新方法如下:从下凸壳cvx中时刻距离p点最近的三个点开始检查,如果中间的点位于另外两个点所构成直线的上部或者在直线上,则去掉中间这个点,然后依次后向检验下凸壳cvx内所有的点,得到新的cvx(new),最后令更新上极限直线;b.如果p的下限p在直线与直线内部,即公式(3)成立时,需要更新下极限直线和p=y‑δ>l(x‑xa)+ya (3)从下凸壳cvx中找到点g,使得斜率slope(g,p)最大;然后令接着删除下凸壳cvx中点g对应的时间点之前所有的点,更新斜率将p插入到上凸壳的末尾,并利用三角检查来更新所述三角检验第二次的更新方法如下:从上凸壳中时刻距离p点最近的三个点开始检查,如果中间的点位于另外两个点所构成直线的下部或者在直线上,则去掉中间这个点,然后依次后向检验上凸壳内所有的点,得到新的最后令pc=p,更新下极限直线。(4)重复步骤(3),直到线段在直线与直线的外部,即y<l(x‑xa)+ya‑δ或y>u(x‑xb)+yb+δ,此时令po=(xo,yo)为直线与直线的交点,斜率ρ=(l+u)/2,因此可以得到一个斜率为ρ,经过点po=(xo,yo)的线段,该线段就是点p1到点pn的δ‑有界分段线段的代表性线段S1;(二)用DisConnAlg算法生成下一个代表性线段:δ‑有界的分段线段Sk+1,将Sk+1作为待检验的代表性线段,采用扩展策略和缩减策略验该待定的代表性线段Sk+1是否可以前一个代表性线段Sk实现半连续;令代表性线段Sk的下极限直线为lk,上极限直线为uk,起始点为结束点为上凸壳最右端的点为下凸壳cvxk最右端的点为令代表性线段Sk+1的下极限直线为lk+1,上极限直线为uk+1,起始点为结束点为上凸壳最右端的点为下凸壳cvxk+1最右端的点为令位置变量status=(m,n),其中m,n∈{up,down},m表示点相对于代表性线段Sk的极限直线的位置,n表示点相对于代表性线段Sk+1的极限直线的位置,up表示在上极限直线之上,down表示在下极限直线之下;当m=down时,interl代表lk+1与lk的交点,interu代表uk+1与lk的交点,当m=up时,intupl代表lk+1与uk的交点,intupu代表uk+1与uk的交点;根据Sk+1的两条极限直线与Sk的关系分为如下几种情况,(1)情况1:当Sk+1的两条极限直线都能够与Sk直接进行半‑连续时,即lk+1和uk+1可以分别用来代表Sk中位于交点interl和interu之后或者intupl和intupu之后的每一个点:a.当status=(down,up),选择lk和uk+1作为两个新的代表性线段,并保存两条线段的交点;b.当status=(down,down),选择lk和lk+1作为两个新的代表性线段,并保存这两条线段的交点;c.当status=(up,up),选择和uk+1作为两个新的代表性线段,并保存两条线段的交点;d.当status=(up,down),选择uk和lk+1作为两个新的代表性线段,并保存两条线段的交点;(2)情况2:当只有Sk+1的一条极限直线能够与Sk直接进行半连续时,即只有Sk+1的一条极限直线能用来代表Sk中位于交点interl和interu之后或者intupl和intupu之后的每一个点时:a.当status=(down,up)时,尽管lk+1可以用来代表Sk中位于interl之后的点,但对后续的半连续作用的是uk+1,而此时uk+1即不和lk相交也不能代表Sk中位于interu之后的点,因此需要更新uk+1,使更新后的uk+1能够与Sk实现半‑连续;采用扩展策略更新极限直线uk+1,扩展策略为:从右往左对Sk+1进行更新,即将点pek加入到Sk+1中需要代表的点,利用步骤(一)的第(3)步骤进行更新极限直线uk+1,重复步骤(一)的第(3)骤直到能将uk+1与lk相交,并能代表Sk中位于interu之后的点为止,此时将更新后的uk+1记做u'k+1,选择lk和u'k+1作为两条代表性线段,保存u'k+1与lk的交点;b.当status=(down,down)时:lk+1直接可以用来代表Sk中位于interl之后的点,而uk+1对于实现后续的半连续并不起作用,因此不需要进行更新,因此选择lk和lk+1作为两条代表性线段,保存lk和lk+1的交点。c.当status=(up,up),uk+1直接可以用来代表Sk中位于intupu之后的点,而lk+1对于实现后续的半连续并不起作用,因此不需要进行更新。因此选择uk和uk+1作为两个新的代表性线段,并保存两条线段的交点。d.当status=(up,down),尽管uk+1可以用来代表Sk中位于intupu之后的点,但对后续的半连续起作用的是lk+1,而此时lk+1即不和uk相交也不能代表Sk中位于intupl之后的点,因此需要更新lk+1,使更新后的lk+1能够与Sk实现半连续;采用扩展策略更新极限直线lk+1,扩展策略为:从右往左对Sk+1进行更新,即将点加入到Sk+1中需要代表的点,利用步骤(一)的第(3)步骤进行更新极限直线lk+1,重复步骤(一)的第(3)骤直到能将lk+1与uk相交,并能代表Sk中位于intupl之后的点为止,此时将更新后的lk+1记做l'k+1,选择uk和l'k+1作为两个新的代表性线段,并保存两条线段的交点。(3)情况3:当Sk+1的两条极限直线都不能与Sk直接进行半连续时,即Sk+1的两条极限直线都不能代表与Sk交点interl和interu之后或者intupl和intupu之后的每一个点:a.当status=(down,up),且Sk+1包含点时,lk+1和uk+1都不能与lk实现半‑连续时,此时采用缩减策略;缩减策略为:从Sk+1中的开始向左缩减点数,更新极限直线lk+1为l'k+1,直到l'k+1与lk有交点并且能够代表点此时uk+1没有改变;经过缩减策略后变成情况2能够解决的结果,此时按照情况2的步骤进行操作,最后可以得到更新后的u'k+1,选择lk和u'k+1作为两条代表性线段,保存u'k+1与lk的交点。b.当status=(down,down)时,在经过后续的“缩减”策略和“扩展”策略之后,与更新后的Sk+1的相对位置会发生改变,由原来的down变成up,即由status=(down,down)转换为status=(down,up);因此可按照情况3的status=(down,up)步骤进行处理,最后得到lk和u'k+1作为两条代表性线段,保存u'k+1与lk的交点;c.当status=(up,up),在经过后续的“缩减”策略和“扩展”策略之后,与更新后的Sk+1的相对位置会发生改变,由原来的up变成down,即由status=(up,up)转换为status=(up,down);因此可按照情况3的status=(up,down)的步骤进行处理,最后得到uk和l'k+1作为两条代表性线段,保存uk与l'k+1的交点;d.当status=(up,down),且Sk+1包含点时,lk+1和uk+1都不能与uk实现半连续时,此时采用缩减策略。缩减策略为:从Sk+1中的开始向左缩减点数,更新极限直线uk+1为u'k+1,直到u'k+1与uk有交点并且能够代表点此时lk+1没有改变;经过缩减策略后变成情况2能够解决的结果,此时按照情况2的步骤进行操作,最后可以得到更新后的l'k+1,选择uk和l'k+1作为两条代表性线段,保存uk与l'k+1的交点;(三)重复处理反复进行步骤(二),直到所有的数据点都被处理过。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河北省科学院应用数学研究所,未经河北省科学院应用数学研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201711178360.0/,转载请声明来源钻瓜专利网。
- 上一篇:模数转换电路及流水线模数转换器
- 下一篇:一种生成压缩字典的方法及装置