《仿射算法研究3900字》

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

仿射算法研究综述
目录
仿射算法研究综述 (1)
1 仿射算法 (1)
1.1 仿射算法基本概念 (1)
1.2 非仿射算法基本操作 (3)
1.3 误差的传播 (8)
2 区间矩阵的仿射运算 (9)
2.1 区间矩阵的基本运算 (9)
2.2 仿射形式逆矩阵 (10)
2.3 矩阵的指数运算 (13)
1 仿射算法
1.1 仿射算法基本概念
(1)区间的另一种表达式
区间也可以用“中点和半径”来表示。

假设存在一个区间[],x a b =,由式(2.2)到式(2.4)可以推出区间x -
记为:
11()[()()]22
1()()[1,1]2
()()[1,1]x m x x x m x x m x x r ωωω=+-=+-=+-, (1) 令01(),()x m x x r x ==,则区间x -
可以表示为: 01[1,1]x x x =+-
(2)仿射算法
由上一章可以得知,区间算法虽然可以求解不确定条件下的边界解,但由于其局限性,区间算法可能会提供一个太宽的边界,即求解出的最值点太保守,可能会包含一些真值永远达不到的区域。

为了克服上述过于保守的问题,对式(1)进行改进,对每一个量都分配一个
新的系数,并且当两个或者两个以上的量同时出现了不确定性,就会自动地分配同样的系数。

添加一个新的噪声系数1ε,且1[1,1]ε∈-,则新的区间数x 可以表示成:
011x x x ε=+ (2)
这种通过添加新的噪声系数的方式即为“仿射方式”,噪声系数1ε代表着对
于总体不确定量的独立组成。

继续以章节2.1.3的例子为基础,区间值x -可以用式(1)中的仿射形式表示出来:10x ε=+,由于y x =-,存在一定的关联,所以两个区间值具有相同的噪声符号1ε,则区间值y 的仿射形式可以表示为:10y ε=-,则11(0)(0)0x y εε+=++-=。

通过仿射算法改进,消除了区间算法存在的过度估计问题。

在噪声模拟等实际环境中,可能会同时存在大量的变化对原始参数产生影响。

包含各种不确定项的量的一般仿射形式可以表示为:
0112201n n
n i i
i x x x x x x x εεεε==+++⋅⋅⋅+=+∑
(3.3) 每一个i ε表示一个不确定的独立组成,i x 表示要素的量级。

所以我们能很容易地从式(3.3)中得到x 的上界为0i i x x +∑,下界为0i i x x -∑。

(3)仿射算法基本操作
假设输入的仿射形式为:
0112201122n n
n n x x x x x y y y y y εεεεεε=+++⋅⋅⋅+=+++⋅⋅⋅+
x ,y 之间的操作主要可以分为仿射操作和非仿射操作。

仿射操作是对输入
的仿射形式进行直接操作,得到的结果不包含二次项的。

比如,x y ±,
x α和x δ±在R ∈δα,时的仿射操作分别可以表示为:
()()()()()()()00111011011n n n
n n
n n
x y x y x y x y x x x x x x x x εεαααεαεδδεε±=±+±+⋅⋅⋅+±=++⋅⋅⋅+±=±++⋅⋅⋅+ (3.4)
而非仿射操作就是接下来所要研究的内容。

1.2 非仿射算法基本操作 非仿射操作如乘法、除法、倒数、平方根等运算方式会在结果中产生二次项的,在计算过程中需要做的是将新方程转换成线性仿射形式,而转换方式是采取添加新的噪声系数来替换其计算结果中的二次项。

(1)乘法运算
假设存在两个区间的仿射形式为:01n i i i x x x ε==+∑和01n
i i i y y y ε==+∑,则x ,y
相乘可以得到:
()00110000111n n i i i i i i n n n i i i i i i i i i i z x y
x x y y x y x y y x x y εεεεε======⋅⎛⎫⎛⎫=+⋅+ ⎪ ⎪⎝⎭⎝⎭
⎛⎫⎛⎫=+++ ⎪⎪⎝⎭⎝⎭
∑∑∑∑∑ (3.5)
由结果可知,产生了新的二次项11n n i i i i i i x y εε==⎛⎫⎛⎫ ⎪⎪⎝⎭⎝⎭
∑∑,添加一个新的噪声符号ζ来取代新产生的二次项,可以表示为:
()
1111n n n
n i i i i i i i i i i x y x y R xy εεζζ====⎛⎫⎛⎫⎛⎫≈= ⎪⎪ ⎪⎝⎭⎝⎭⎝⎭∑∑∑∑ (3.6) 这种方法虽然也能求出所需的结果的边界,但也会引入新的误差:添加新的噪声符号跳过了它与其他符号的相关性,会出现同区间算法相同的过度估计的问题,同时计算出来的新系数()R x y 也会计算出最大量级的ζ,同样无法避免过度估计的现象。

令00000,i i i z x y z x y y x ==+,则式(3.5)中的~z 可以优化为:
()
01n i i i z z z R x y εζ==++∑~ (3.7)
在仿射模型中,由于任何区间结果的上界与下界都是关于中心值对称的,因此如果0z 十分趋近区间真实的上界,到上界的距离远远小于到下界的距离,从而
导致对前一个点过度估计,如图1所示。

图1 仿射形式乘法的过度估计
另一个问题是在计算过程中添加了一个新的噪声符号。

随着计算的复杂程度的增大,噪声符号的数目也会随之增加,反之,计算效率也就会降低。

假设存在两个受两个不确定性影响的区间,其仿射形式可以表示为:121021x εε=++和131021y εε=-+,则他们的乘积可以表示为:
1223231213(1021)(1021)
1001010(2)(2)z x y
εεεεεεεεεε=⋅=++-+=++++-+ (3.8)
结果中的二次项系数用新的噪声系数4ε替代,则23410010109z εεε=+++,相应的上下界区间是[][]10029,1002971,129z =-+=。

然而,更精确的分析表明,二次项系数的确切范围在[]1,9-,因此,z 的真值
区间应该为[]121
,71。

由此可见,仿射近似法的相对精度为: (12171)/(12971)0.86--=
这与图1中过高估计的情况相对应,得到的标称值更接近真实的上限,因此在这一侧引入了误差。

(2)除法运算
除法相对于乘法更为复杂,
它可以转换为一个区间乘以另一个区间的倒数的
形式:
1x z x x y y ω⎛⎫==⋅=⋅ ⎪⎝⎭
(3.9) 为了更好地反求一个实际上是非仿射操作的仿射形式,我们借鉴了“极值仿射逼近”的结论:
01111n n
y y y y εε=++⋅⋅⋅+ 定理1:设f 为区间[,]I a b =上定义的有界二次可微函数,并且其二阶导数f ''在区间I 内不变号。

令()a f x x αζδ=+±在区间I 内是其极值仿射逼近。

因此:
◆ 系数α表示(()())/()f b f a b a --,直线()f x 的斜率只与点(,())a f a 和
(,())b f b 有关
◆ 在端点,a b 范围内,当()f u α'=时,会出现最大绝对误差
◆ 独立项ς表示(()())/2u f u r u ας+=+,最大绝对误差为|()()|/2f u r u δ=-
由定理1可知,求近似函数的问题可以转换为求拟合系数,αδζ和的最优解:
0111()n n y y y y
εεζδα≈++⋅⋅⋅++± (10) 这就是所谓的“切比雪夫近似”算法。

另外一种方法是“最小范围近似法”,它在计算区间倒数的编码中与之相似,但更容易。

如图2所示:假设存在[,]y c d ∈,在最值(,1/)d d 处的切线和与之斜率相同的穿过另外一个最值点(,1/)c c ,组成y 和1/y y αζδ=+±(图2.4中的阴影部分)。

虚线代表1/y 在y 区间范围内的中点。

图2 最小范围近似法
注意该区间内不能包含0,对此进行分类讨论。

假设区间值全部为正数(0)c >,则直线的斜率是1/y 在y d =时的导数,即2/1-d =α。

经过端点,c d 的虚线可以表示为:
21111c c d d d
δζδζ-=-++=-+ 对上式进行求解得:
22
1212c d
c d c d c d ζδ+=++=+ (11) 将新的噪声符号1n ε+赋值给新的参数δ,结果函数表示为:
011111...n n n n y
ωωωεωεωε++≈=++++ (12) 式中00y ωα=表示新的标称值,i i y ωα=表示初始噪声符号的系数,用新的符号11n n ωε++和1n ωδ+=组成式(10)计算出的新符号系数。

则仿射除法可以表示为:
1x z x x y y
ω⎛⎫==⋅=⋅ ⎪⎝⎭
因此,除法是在乘法的基础上进行计算的,但是比乘法更复杂一些,需要先
求出区间y 的倒数形式,再将两者相乘,而这两个过程中都会产生新的噪声符号。

另一种情况假设区间内的值全部为负数(0)d <时,需要进行的操作是相同的,这里就不作重复叙述。

(3)指数运算
根据定理1中的“切比雪夫近似算法”来计算区间y 在[,]c d 内的指数算法。

即近似求解exp()y :
011011exp()exp()
()n n n n y y y y y y y εεαεεζδ=++⋅⋅⋅+≈++⋅⋅⋅++± (13)
如图3.3所示:同时经过端点(,)c c e 和(,)d d e 的直线1,在区间[,]c d 中有且只有一点u 的切线斜率与直线1斜率相等。

图中阴影部分包含exp()y 的所有可能值,也就是最小近似范围。

阴影部分中间的虚线:y αζ+与直线1平行,由此,可以求得虚线的斜率为:
d c
e e d c
α-=-
图3.3 切比雪夫近似算法求指数形式
两端点之间的最大误差出现在图中所示u 点,出现了异号,这一点的值为:
()(1ln )2
c e c αααμ---= 同样,最大误差的大小被赋予一个新的噪声符号,包括“最坏情况”。

参数
ζ
表示:
()(1ln )2
c e c αααζ-+-= 最终,对所有线性近似值进行筛选,函数最终可以表示为:
01111exp()n n n n y v v v v v εεε++≈=++⋅⋅⋅++ (14)
00v y αζ=+表示新的标称值,i i v y α=表示初始噪声符号的系数,1n v δ+=表示最大误差。

(4)对数运算
用“最小范围近似法”求在[,]c d 上的区间y 的对数运算,比如,估算函ln()y y αζδ≈+±,近似参数为:
1
(ln())(ln())2
(ln())(ln())2d
d d c c d d c c αααδααδ=
---=-+-= (15) 大多数单调函数都可以用上述两种近似方法估算。

值得注意的是,仿射算法和近似法不适用于周期函数,如正弦函数。

综上,仿射操作可以直接产生仿射形式,不会生成新的二次项;而非仿射操作更为复杂,会产生新的二次项,所以需要先将它转变为仿射形式,将输入的线性组合近似任何非线性函数,仿射和非仿射操作在精度和效率上都比区间方法有很大的提高,结合其他数值技术(如区间分割技术)有望减少过度估计产生的误差。

1.3 误差的传播
上面已经说过,在非仿射算法中,每次单独的操作都会产生附加的噪声符号。

在需要做大量乘法的情况下,随机变量的数量会不断增长,这在计算时间上是非常低效的。

这里通过给现有的不确定量分配额外的二次项,可以表示为:
01111()n
i i n i i i z z z R x y z ε==⎡⎤≈++⎢⎥⎢⎥⎣⎦∑∑ (16) 这种方法没有生成新的不确定量,并且限定了z 的真实范围,但是,由于没有完整的对其进行严谨的数学理论公式推导,所以缺乏一定的严谨性,并不能达到最佳结果分布。

2 区间矩阵的仿射运算
2.1 区间矩阵的基本运算
由式(2.6)和(2.7)可以得知,__X 也可以用“中点和半径”的方法表示为:
0111()(),()221()()[1,1]2
[1,1]
X m X X X m X X X X ωωω⎡⎤=+-⎢⎥⎣⎦
=+-=+- (17) 添加一个新的系数1ε给变量进行赋值,则区间矩阵的仿射形式可以表示为:
011X X X ε=+ (18)
假设存在两个区间矩阵X 和Y ,其仿射形式可以表示为:
011011n n
n n X X X X Y Y Y Y εεεε=++⋅⋅⋅+=++⋅⋅⋅+
由式(3.4)和(3.7)可以得知,区间矩阵的基本运算可以表示为:
0011100001111()()()()n n n
n n
n
i i i i
i n i i i X Y X Y X Y X Y X Y X Y X Y Y X X Y εεεε+===±=±+±+⋅⋅⋅+±⎛⎫⨯=+++ ⎪⎝⎭∑∑∑ (19) 遗憾的是,由于切比雪夫法和最小范围近似法只适用于标量的求倒和指数运算,不适用矩阵的相关运算。

2.2 仿射形式逆矩阵
区间矩阵X 的逆矩阵可以表示为:
11011()n n X X X X εε--=++⋅⋅⋅+ (20)
除了标称值0X 外所有的变量区间都包含了随机系数1ε,如果将 1......i n =全
部带入运算,计算难度之大,耗费时间精力之多,显然都是不现实的,因此我们必须采取更适合的计算方式来解决这个问题。

当计算两个区间矩阵和的逆矩阵,其中一个矩阵可逆时,可以表述为: 假设A 是一个n 阶可逆区间矩阵,u 和v 是n 维的任意向量,
则有下面关系式: 11
11
1()1T T T A uv A A uv A v A u -----+=-+ (21) 其中T uv 表示u 和v 的输出结果,且110T v A u -+≠。

不难发现1T v A u -就是1()T A uv -的倒数形式。

这个公式仅被应用在秩()1T uv =时。

为了快速地得到相应结论,这里假设区间矩阵只包含一个随机系数:011X X X ε=+,并且矩阵满足秩为1,则有下列关系式:
()111101*********
1()1X X X X X X g Y Y εεε----+=-+=+ (22)
100Y X -=是新的标称值,1110101/(1)()Y g X X X --=-+⋅是1ε的新系数,当且仅当
1-≠g 时,秩为101()g X X -=。

接下来,考虑在式(20)中1X -的标准表达形式,当m 阶区间矩阵X 随着任意符号的变化而变化,并且每一个系数矩阵都以阶次排序。

为了满足式(21)中对秩的要求,首先要把每个系数矩阵分解为秩的形式:
1
1
0111
011121121222212()()()()n n m m n n nm n X
X X X X X X X X X X X X X εεεεε---=++⋅⋅⋅+⎡⎤
⎢⎥
+++⋅⋅⋅+⎢
⎥⎢⎥=+++⋅⋅⋅+⎢⎥+⋅⋅⋅⎢⎥⎢⎥++++⎣⎦
(23) 假设存在:
101110111()X X Y Y εε-+=+ (24)
则由式(22)可以逐步推导出:
10111121101111211110111011111101110111011111101110121
()(())1
()(()())11
()(()())1X X X X X X X X X X X X X g
Y Y Y Y X Y Y g
Y Y εεεεεεεεεεεεε-----++=++=+-+++=+-+++≈+ (25) 其中12Y 可以由“误差的传播”方法中的式(16)得出:
121101101111111111Y Y Y X Y Y X Y g g ⎛⎫=-- ⎪++⎝⎭
如此反复,则式(23)矩阵中的第一行可以表示为:
10111112121
0111112121
011011212011011212
()(())1()(()())
1m m m m m X X X X X X X X Y Y Y Y X Y X g
Y Y Y εεεεεεεεεεεε---++⋅⋅⋅++=++⋅⋅⋅++=+-+++≈++ (26) 两个系数1m Y 和21Y 都可以用式(16)的方法得出:
11121121021012111
2(1)
11
(12m m m
m m
Y Y Y X Y g Y Y X Y Y X Y g =-
+=-++
对上述方法作一般性归纳:假设存在元素jk X ,下标表示其位置是在矩阵的
第j 行,第k 列,111jk jk j Y X X εε=+⋅⋅⋅+为jk X 前这一行所有噪声符号的和,
因此: 11
11
(1)1()1j k jk jk jk jk Y Y Y X Y g
----+=-
+ (27) 最后,X 的求逆计算为:
1
1011011()n n n n
X
X X X Y Y Y εεεε--=++⋅⋅⋅+=++⋅⋅⋅+ (28)
j jm Y Y =可由式(27)得出。

在这种反复运算的过程中,虽然计算步骤繁多,计算效率不高,不适用于大规模矩阵计算,但其优点是矩阵的区间操作不会产生新的随机系数ε。

另外一种方法叫做泰勒扩张法,两个矩阵之和的逆矩阵可以表示为:
1111111()A B A A BA A BA BA -------+=-+-⋅⋅⋅ (29)
结合式(20)可得:
1
011111
001101110
110
110
11111001010011
()()()()()()n n n n n n n n n n n n X X X X X X X X X X X X X X X
X X X X X X X X εεεεεεεεεεε------------++++⋅⋅⋅+=-+⋅⋅⋅+++⋅⋅⋅++⋅⋅⋅+≈+-+⋅⋅⋅+-+ (3.30)
将方程展开为只有三项的泰勒展开式,所有的高阶项都近似为一个新的噪声符号1n ε+。

111
10
00
11n n n i i i i X X X X X X ---+==⎛⎫⎛⎫= ⎪ ⎪⎝⎭⎝⎭∑∑
通过反复求解法得出的式(27)和泰勒展开近似法得出的式(3.30)都得出了精确的数字结果,并且都成功地将区间矩阵X 转化为相应的矩阵形式。

反复求解的方法必须满足区间矩阵秩为1的条件,如果不能满足,就必须对矩阵进行分解。

前者在求解小规模矩阵的问题时能更精确也更高效,但如果矩阵较复杂,更适合用泰勒展开法,求解速度更快,效率更高。

2.3 矩阵的指数运算
区间矩阵的指数运算同样可以用泰勒展开近似求解,两个矩阵之和的指数运算的泰勒展开形式可以表示为:
2
311exp()()()()2!
i i A B In A B A B A B i ∞
=+≈++++++∑ (3.31)
其中In 为与A ,B 相同维度的单位矩阵。

由上式不难看出,矩阵的指数运算可以简化为矩阵求和的乘法运算。

假设存在区间矩阵
011n n X X X X εε=++⋅⋅⋅+
其指数运算可以表示为:
201101101111
()()26n n n n X X X X X X X X X εεεεε=++++⋅⋅⋅++++⋅⋅⋅++⋅⋅⋅ (3.32)
根据式(16)可以求得:
011011()(1,2,...)i n n i i in n X X X X X X i εεεε++⋅⋅⋅+≈++⋅⋅⋅+=; (3.33) 可以近似的得到仿射形式exp()X :
01122exp()n n X Y Y Y Y εεε=+++⋅⋅⋅+ (3.34)
其中,标称矩阵:
200003112!
i
i Y In X X X i ∞==+++∑
系数矩阵:
23
11
(1,2,...,)2!j ij j ij i Y X X X j n i ∞
==++=∑;
在进行矩阵的指数运算时,可以近似为:
111
exp()()()22
X In X In X -≈-
+ (3.35) 据此推出:011exp()exp()n n X X X X εε=++⋅⋅⋅+,
令11n n X X X εε∆=+⋅⋅⋅+,则:
00001
00100100100exp()
11()()22111()()222111()()222111()()()222X X X Y X X In X X In X X In X X In X X In X X In X e X In X X In X X e X e In e ----=+∆⎡⎤⎡⎤
≈-+∆++∆⎢⎥⎢⎥
⎣⎦⎣⎦⎡⎤⎡⎤
=-+∆++∆⎢⎥⎢⎥
⎣⎦⎣⎦⎡⎤⎡⎤
≈-+∆-+∆⎢⎥⎢⎥
⎣⎦⎣⎦
⎡⎤⎡⎤⎛⎫
=-+∆⋅-+∆+∆+ ⎪⎢⎥
⎢⎥⎣⎦⎝⎭⎣⎦=()0
01
0011()
22X X In X X X e In Y Y
-⎡⎤
+-+∆∆+⎢⎥⎣⎦
=+∆ (3.36)
其中:
00exp()Y X =
Y ∆包括矩阵求逆运算,可以表示为:
01
0100010011220112211()()
221
()()21
()()()2
X n n n n
Y In X X X e In Y In X X Y In Y In X X X X Y In Y Y Y εεεεεε---⎡⎤
∆=-+∆∆+⎢⎥⎣⎦≈-∆+=-++⋅⋅⋅++=++⋅⋅⋅+ 其中:
10001
()()(1,2,...,)2
j j Y Y In X X Y In j n -=-+=;
本文只介绍了泰勒展开法求指数运算,另外还有如双线性法和Pade 逼近法等都比泰勒级数展开法更加精确和高效,但应用性不高,因为它们只能在特定条件下使用,比如,矩阵的形式必须是小量级。

相关文档
最新文档