, , .
, (). : , 䒺 ( ) . , .
- , . (R. W. Floyd). , 1 . , . . 璺 , . , .
. ϳ - , . , , .
- :
, (3.1)
- . (3.1) . 3.3.
3.3
, :
FloydPath
n
1 for i=1 to n
2 for j=1 to n
3 A(i,j)=C(i,j)
4 end for
5 end for
6 for i=1 to n
7 A(i,j)=0
8 end for
9 for k=1 to n
10 for i=1 to n
11 for j=1 to n
12 if A(i,k)+ A(k,j)< A(i,j)
13 then A(i,j)= A(i,k)+ A(k,j)
14 end if
15 end for
16 end for
17 end for
FloydPath , .
, , FloydPath , , . , .
, .
ModifiedFloydPath
n
1 for i=1 to n
2 for j=1 to n
3 A(i,j)=C(i,j)
4 P(i,j)=0
5 end for
6 end for
7 for i=1 to n
8 A(i,j)=0
9 end for
10 for k=1 to n
11 for i=1 to n
12 for j=1 to n
13 if A(i,k)+ A(k,j)< A(i,j)
14 then A(i,j)= A(i,k)+ A(k,j)
|
|
15 P(i,j)=k
16 end if
17 end for
18 end for
19 end for
, , Path(i,j),
Path(i,j)
1 k=P(i,j)
2 if k=0
3 return
4 path(i,k)
5 writeln(k)
6 path(i,k)
7 end if
- ᒺ, , , . , ; - - . ,
.
, , , .
, , . , :
, , . (3.2)
(3.2) .
, .
:
MatrixMultiply
1 m,r,n
2 for i=1 to m
3 for j=1 to n
4 C(i,j)=0
5 for k=1 to r
6 C(i,j)=C(i,j)+A(i,k)*B(k,j)
7 end for
8 end for
9 end for
MatrixMultiply . , MatrixMultiply , .
, . , , , . 3.1
3.1
, . . (, ) , ( ). .
. ,
, (3.3)
, .
(3.3) . . , . .
, , (3.3) , . , 䳺 , . , ,
|
|
,
,
,
,
.
, 6 MatrixMultiply. . - - , .
, , , . , , . ; , . , , . . . , , . 5000+2500=7500 . , , , 75000 . , 10 , .
: , , , .
, . .
, , . , . , - .
(3.4)
(3.4) , . , , 㳿 .
.
, . , - , - , . , , . , , .
. - .
, . , , , ,
. (3.5)
. , - ,
(3.6)
MatrixChainOrder , - , . , . . . .
|
|
MatrixChainOrder
1 n=length(p)
2 for i=1 to n
3 m(i,i)=0
4 end for
5 for l=2 to n
6 for i=1 to n-l+1
7 j=i+l-1
8 m(i,j)=
9 for k=i to j-1
10 q=m(i,k)+m(k+1,j)+pi-1pkpj
11 if q< m(i,j)
12 then m(i,j)=q
13 s(i,j)=k
14 end if
15 end for
16 end for
17 end for
MatrixChainOrder ( 2 4) , . ( 5 16) (3.6) - . - . . . 9 17 .
, . , . . , , : . ֳ , , , - .
3.3 , . 3.2 MatrixChainOrder.
, , (. 3.4). . 3.4 , . . , , - . , . , - . , , . 3.2, 15125. . , . , : .
3.2
, ( ) (. 3.3).
3.4 , MatrixChainOrder
, MatrixChainOrder .
MatrixChainOrder , . .
, MatrixChainOrder , , , .
|
|
3.3
, .
, ,
,
- ;
- .
, .
.
, , , ; - .
.
, ,
, .
.
ϳ ,
.
,
, (3.6)
.
(Discrete Fourier Transform, DFT) : .
.
,
. (3.7)
г (3.7)
, (3.8)
; - .
(. 3.5).
(3.9)
. .
3.5 ()
.
1. - ,
. (3.10)
(3.8)
. (3.11)
2. -
. (3.12)
(3.8), . . (3.9) , , (3.11).
3 ( ). , , , .
, (3.12), . , . . 1, , . ,
.
4 (). - 䒺 , ,
. (3.13)
, - , - . . . , . ,
.
, .
(3.6) : . (3.6) :
. (3.14)
, FFT- (3.14) , , , , , .
FFT- . , (3.14) 2, , - . , (3.14) , .
,
,
. . , . ( , : , - . ).
, , ; , . , . . .
, 2, .