אלגוריתם שטראסן

26
ןןןןןןןן ןןןןןן ןןןן ןןןןןן65740334

Upload: samson-hansen

Post on 02-Jan-2016

202 views

Category:

Documents


9 download

DESCRIPTION

אלגוריתם שטראסן. רוני גליקמן 65740334. וולקר שטראסן פרסם את אלגוריתם שטראסן בשנת 1969. האלגוריתם נועד לכפול מטריצות והוא משפר את זמן ריצתו של האלגוריתם הסטנדרטי שהיה עד ל 1969 ל - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: אלגוריתם שטראסן

שטראסן אלגוריתם

גליקמן 65740334רוני

Page 2: אלגוריתם שטראסן

אלגוריתם שטראסן 2

בשנת שטראסן אלגוריתם את פרסם שטראסן וולקר1969.

זמן את משפר והוא מטריצות לכפול נועד האלגוריתםל עד שהיה הסטנדרטי האלגוריתם של 1969ריצתו

ל

האלגוריתם את במעט משפר שלו שהאלגוריתם פי על אף , כי לציין הראשון היה הוא מטריצות כפל של הסטנדרטי

. אופטימאלית לא היא המקובלת הגישה

, יותר מהירים אלגוריתמים של החיפוש את התחיל המאמרשפורסם - יותר המורכב וינוגרד קופרסמית אלגוריתם כגון

.1987בשנת

)( 3NO)( 81.2NO

Page 3: אלגוריתם שטראסן

אלגוריתם שטראסן 3

מטריצות של בסיסית הכפלהבגודל מטריצות שתי לכפול שברצוננו :N x Nנניח

c1,1 c1,2c2,1 c2,2

a1,1 a1,2

a2,1 a2,2

b1,1 b1,2

b2,1 b2,2

c1,1 = ( a1,1 x b1,1 ) + ( a1,2 x b2,1 ) + . . . + ( a1,n x bn,1 )c1,2 = ( a1,1 x b1,2 ) + ( a1,2 x b2,2 ) + . . . + ( a1,n x bn,2 ):

cn,n = ( an,1 x b1,n ) + ( an,2 x b2,n ) + . . . + ( an,n x bn,n )

::

. . .

..

cn,1 cn,n

c1,n

..

an,1 an,n

a1,n

..

bn,1bn,n

b1,n. . . .

::

::

:

Page 4: אלגוריתם שטראסן

אלגוריתם שטראסן 4

מטריצות של בסיסית הכפלהבגודל מטריצות שתי לכפול שברצוננו :N x Nנניח

c1,1 c1,2c2,1 c2,2

a1,1 a1,2

a2,1 a2,2

b1,1 b1,2

b2,1 b2,2

::

. . .

..

cn,1 cn,n

c1,n

..

an,1 an,n

a1,n

..

bn,1bn,n

b1,n. . . .

::

::

jk

N

kkiji baC ,

1,,

)( 3NO

: ריצה :זמן לחישוב נוסחא

Page 5: אלגוריתם שטראסן

אלגוריתם שטראסן 5

) ומשול ) הפרד מטריצות הכפלתA0 A1

A2 A3

(A0xB0(+)A1xB2) (A0xB1(+)A1xB3)

(A2xB0(+)A3xB2) (A2xB1(+)A3xB3)

B0 B1

B2 B3

מטריצות- : לתתי לכפול שנרצה המטריצות את , A0 , A1נפרידA2 . . . .

הוא- העצירה כשתנאי המטריצות תתי את רקורסיבית n=1נכפול.

המטריצות- הכפלת של החישוב במשוואות נשתמש

A0 B0

a0 b0 a0 x b0

C0

Page 6: אלגוריתם שטראסן

אלגוריתם שטראסן 6

) ומשול ) הפרד מטריצות הכפלתA0 A1

A2 A3

(A0xB0(+)A1xB2) (A0xB1(+)A1xB3)

(A2xB0(+)A3xB2) (A2xB1(+)A3xB3)

B0 B1

B2 B3

: ריצה זמן)( 8T(N/2) T(N) 2N

התנאי אב משפט :8 > 22לפי ולכן מתקיים

)()( 38log2 NONO

8

Page 7: אלגוריתם שטראסן

אלגוריתם שטראסן 7

שטראסן וולקר הגיע ואז " ומשול " הפרד התכנון שיטת של כיישום לראות ניתן האלגוריתם את

.

רק דרושות שבה שונה רקורסיבית גישה גילה פעולות 7שטראסןבמקום רקורסיביות , 8כפל לזמן הגורם דבר מקודם שראינו כפי

. יותר קצר ריצה

גדולות ) במטריצות מדובר כן אם אלא מעשי אינו nהאלגוריתםל ( ) 45בגודל השווים איברים מעט וצפופות (.0לפחות

. הישירה - בשיטה נשתמש קטנות מטריצות עבורמיוחדים - אלגוריתמים קיימים ודלילות גדולות מטריצות עבור

שביצועיהם . יותר טובים

. בעיקרו תיאורטי הוא שטראסן באלגוריתם העניין לכן

Page 8: אלגוריתם שטראסן

אלגוריתם שטראסן 8

בגודל מטריצות לתת הקלט מטריצות את N/2חלק

a1,1 a1,2

a2,1 a2,2

a1,3 a1,4

a2,3 a2,4

a3,1 a3,2

a4,1 a4,2

a3,3 a3,4

a4,3 a4,4

b1,1 b1,2

b2,1 b2,2

b1,3 b1,4

b2,3 b2,4

b3,1 b3,2

b4,1 b4,2

b3,3 b3,4

b4,3 b4,4

A0 A1

A2 A3

B0 B1

B2 B3

:4מתוך 1שלב

Page 9: אלגוריתם שטראסן

אלגוריתם שטראסן 9

:4מתוך 2שלב )(באמצעות 2N , חשב וחיסור חיבור מטריצות 14פעולות

בגודל n/2 x n/2

S1 = A0

S2 = A0 + A1 S3 = A2 + A3

S4 = A3 S5 = A0 + A3

S6 = A1 – A3 S7 = A0 - A2

T1 = B1 - B3 T2 = B3

T3 = B0

T4 = B2 – B0 T5 = B0 + B3

T6 = B2 + B3

T7 = B0 + B1

A0 A1

A2 A3

B0 B1

B2 B3

Page 10: אלגוריתם שטראסן

אלגוריתם שטראסן 10

P5 = ( ) x ) ( P4 = x) (

P3 = ( ) x

:4מתוך 3שלב i

iii TSP

7

1את רקורסיבי באופן מכפלות 7חשב

המטריצות

S1 = A0 + A1

S3 = S4 = S5 =

T1 = T2 = B0

T4 = T5 =

A0 B1 - B3 P1 = x) ( S2 = P2 = ( ) x B3

A2 + A3 T3 = B2 – B0 A3

A0 + A3 B0 + B3

P6 = ( ) x ) ( S5 = T5 = A1 - A3 B2 + B3

P7 = ( ) x ) ( S5 = T5 = A0 - A2 B0 + B1

Page 11: אלגוריתם שטראסן

אלגוריתם שטראסן 11

המטריצות תתי מכפלות חישוב

P1 = P2 = P3 = P4 = P5 = P6 = P7 =

A0

A0

A2

A3

A0

A1

A0

B1

B3

B0

B2

B0

B2

B0

-++-+++

A0

A1

A3

A3

A0

A1

A0

B3

B3

B0

B0

B3

B3

B1

+--

A3

A3

A2

B0

B2

B0

+--

A3

A3

A2

B3

B3

B1

A0 A1

A2 A3

B0 B1

B2 B3

C0 C1

C2 C3

(A0B0(+)A1B2) (A0B1(+)A1B3)

(A2B0(+)A3B2) (A2B1(+)A3B3)

חיוניים ביטויים נסמן

+ (A0B1( + )A1B3)P1

=P2 C1

Page 12: אלגוריתם שטראסן

אלגוריתם שטראסן 12

המטריצות תתי מכפלות חישוב

P1 = P2 = P3 = P4 = P5 = P6 = P7 =

A0

A0

A2

A3

A0

A1

A0

B1

B3

B0

B2

B0

B2

B0

-++-+++

A0

A1

A3

A3

A0

A1

A0

B3

B3

B0

B0

B3

B3

B1

+--

A3

A3

A2

B0

B2

B0

+--

A3

A3

A2

B3

B3

B1

A0 A1

A2 A3

B0 B1

B2 B3

C0 C1

C2 C3

(A0B0(+)A1B2) (A0B1(+)A1B3)

(A2B0(+)A3B2) (A2B1(+)A3B3)

חיוניים ביטויים נסמן

+ (A2B0( + )A3B2)P3

=P4 C2

Page 13: אלגוריתם שטראסן

אלגוריתם שטראסן 13

המטריצות תתי מכפלות חישוב

P1 = P2 = P3 = P4 = P5 = P6 = P7 =

A0

A0

A2

A3

A0

A1

A0

B1

B3

B0

B2

B0

B2

B0

-++-+++

A0

A1

A3

A3

A0

A1

A0

B3

B3

B0

B0

B3

B3

B1

+--

A3

A3

A2

B0

B2

B0

+--

A3

A3

A2

B3

B3

B1

A0 A1

A2 A3

B0 B1

B2 B3

C0 C1

C2 C3

(A0B0(+)A1B2) (A0B1(+)A1B3)

(A2B0(+)A3B2) (A2B1(+)A3B3)

חיוניים ביטויים + P5 + P4 – P2נסמןP6

הביטוי על נתבונן

++

-- =

(A0B0( + )A1B2)

Page 14: אלגוריתם שטראסן

אלגוריתם שטראסן 14

המטריצות תתי מכפלות חישוב

P1 = P2 = P3 = P4 = P5 = P6 = P7 =

A0

A0

A2

A3

A0

A1

A0

B1

B3

B0

B2

B0

B2

B0

-++-+++

A0

A1

A3

A3

A0

A1

A0

B3

B3

B0

B0

B3

B3

B1

+--

A3

A3

A2

B0

B2

B0

+--

A3

A3

A2

B3

B3

B1

A0 A1

A2 A3

B0 B1

B2 B3

C0 C1

C2 C3

(A0B0(+)A1B2) (A0B1(+)A1B3)

(A2B0(+)A3B2) (A2B1(+)A3B3)

חיוניים ביטויים - P5 + P1 – P3נסמןP7

הביטוי על נתבונן

+ -

- - =- + +

(A2B1( + )A3B3)

Page 15: אלגוריתם שטראסן

אלגוריתם שטראסן 15

:4מתוך 4שלב המבוקשות המטריצות תת את C0 , C1 , C2 , C3חשב

/ " צירופים של חיסור או ו חיבור י ע התוצאה מטריצת שלהמטריצות של Piשונים

C0 C1

C2 C3

P5 + P4 – P2 + P6

P1 + P2

P3 + P4 P5 + P1 – P3 - P7

Page 16: אלגוריתם שטראסן

אלגוריתם שטראסן 16

האלגוריתם של הנסיגה נוסחת

)( 7T(N/2) T(N) 2N

)()( 81.27log2 NONO

התנאי אב משפט :7 > 22לפי ולכן מתקיים

ב משתמש רקורסיביות 7האלגוריתם מטריצות הכפלותהחסום n/2בגודל וחיסור חיבור פעולות )( ובמספר 2N

Page 17: אלגוריתם שטראסן

אלגוריתם שטראסן 17

שטראסן אלגוריתם הרצת דוגמת2 1 3 4413

2 3 52 1 23 2 4

3 4 1 2245

2 3 43 2 14 3 3

בגודל מטריצות לתת המטריצות את 2x2נחלק

A0 A1

A2 A3

B0

B3

B1

B2

את המטריצות 14נחשב S,Tתתי

?

Page 18: אלגוריתם שטראסן

אלגוריתם שטראסן 18

2 1 3 4413

2 3 52 1 23 2 4

3 4 1 2245

2 3 43 2 14 3 3

A0 A1

A2 A3

B0

B3

B1

B2

את S,Tהמטריצות 14נחשב

S1 = A0 =

S2 =A0 +A1=

T1 =B1 - B3 =

T2 = B3

=

2 14 2

S3 =A2 +A3=

S4 = A3 =

S5 =A0 +A3=

S6 =A1 -A3=

S7 =A0 –A2=

T3 = B0

=T4 =B2 – B0 =T5 =B0 + B3 =T6 =B2 + B3 =T7 =B0 + B1 =

5 57 7

2 45 7

1 22 4

3 36 6

2 21 1

1 -11 -1

-1 10 1

2 13 3

3 42 2

1 -13 2

5 55 5

6 48 7

4 65 6

את S x Tהמכפלות 7נחשב

P1 =

Page 19: אלגוריתם שטראסן

אלגוריתם שטראסן 19

2 14 2

-1 10 1

את S,Tהמטריצות 14נחשב

S1 = A0 =

S2 =A0 +A1=

T1 =B1 - B3 =

T2 = B3

=S3 =A2 +A3=

S4 = A3 =

S5 =A0 +A3=

S6 =A1 -A3=

S7 =A0 –A2=

T3 = B0

=T4 =B2 – B0 =T5 =B0 + B3 =T6 =B2 + B3 =T7 =B0 + B1 =

2

3

6

2

4

-1

-2

0

1

-1

1

0

1

0

את S x Tהמטריצות 7נחשב

P1 = 0

P2 = 3

P3 = -6

P4 = 2

P5 = 0

P6 = -1

P7 = 0

Page 20: אלגוריתם שטראסן

אלגוריתם שטראסן 20

2 14 2

-1 10 1

P1 = P2 = P3 = P4 = P5 = P6 = P7 =

0

3

-6

20

-1

0

P5 + P4 – P2 + P6

P1 + P2

P3 + P4 P5 + P1 – P3 - P7

0 + 2 – 3 -( +1) 0 + 3

-(6 + )2 0 + 0-( – 6) -0

-2 3

-4 6

Page 21: אלגוריתם שטראסן

אלגוריתם שטראסן 21

2 1 3 4413

2 3 52 1 23 2 4

3 4 1 2245

2 3 43 2 14 3 3

A0 A1

A2 A3

B0

B3

B1

B2

S2 =A0 +A1= T2 = B3

=

2 14 2

S3 =A2 +A3=

S4 = A3 =

S5 =A0 +A3=

S6 =A1 -A3=

S7 =A0 –A2=

T3 = B0

=T4 =B2 – B0 =T5 =B0 + B3 =T6 =B2 + B3 =T7 =B0 + B1 =

-1 10 1

את S x Tהמכפלות 7נחשב

P1 = -2 3-4 6

P2 = 5 57 7

2 45 7

1 22 4

3 36 6

2 21 1

1 -11 -1

2 13 3

3 42 2

1 -13 2

5 55 5

6 48 7

4 65 6

Page 22: אלגוריתם שטראסן

אלגוריתם שטראסן 22

5 57 7

2 13 3

את S,Tהמטריצות 14נחשב

S1 = A0 =

S2 =A0 +A1=

T1 =B1 - B3 =

T2 = B3

=S3 =A2 +A3=

S4 = A3 =

S5 =A0 +A3=

S6 =A1 -A3=

S7 =A0 –A2=

T3 = B0

=T4 =B2 – B0 =T5 =B0 + B3 =T6 =B2 + B3 =T7 =B0 + B1 =

5

10

14

7

12

-2

-2

-2

3

2

1

5

6

3

את S x Tהמטריצות 7נחשב

P1 = -10

P2 = 30

P3 = 28

P4 = 7

P5 = 60

P6 = -12

P7 = -6

Page 23: אלגוריתם שטראסן

אלגוריתם שטראסן 23

5 57 7

2 13 3

P1 = P2 = P3 = P4 = P5 = P6 = P7 =

-10

30

28

760

-12

-6

P5 + P4 – P2 + P6

P1 + P2

P3 + P4 P5 + P1 – P3 - P7

60 + 7 – 30 -( +12) -10 + 30

28 + 7 60 -( + 10 – )28 -( –6)

25 20

35 28

Page 24: אלגוריתם שטראסן

אלגוריתם שטראסן 24

2 1 3 4413

2 3 52 1 23 2 4

3 4 1 2245

2 3 43 2 14 3 3

A0 A1

A2 A3

B0

B3

B1

B2

2 14 2

S3 =A2 +A3=

S4 = A3 =

S5 =A0 +A3=

S6 =A1 -A3=

S7 =A0 –A2=

T3 = B0

=T4 =B2 – B0 =T5 =B0 + B3 =T6 =B2 + B3 =T7 =B0 + B1 =

-1 10 1

את S x Tהמכפלות 7נחשב

P1 = -2 3-4 6

P2 = 5 57 7

2 45 7

1 22 4

3 36 6

2 21 1

1 -11 -1

2 13 3

3 42 2

1 -13 2

5 55 5

6 48 7

4 65 6

25 2035 28

P3 =

P4 =

P5 =

P6 =

P7 =

14 1629 34

7 314 6

30 3060 60

28 2214 11

-1 0-1 0

Page 25: אלגוריתם שטראסן

אלגוריתם שטראסן 25

2 1 3 4

4

1

3

2 3 5

2 1 2

3 2 4

3 4 1 2

2

4

5

2 3 4

3 2 1

4 3 3

-2 3-4 6

25 2035 28

14 1629 34

7 314 6

30 3060 60

28 2214 11

-1 0-1 0

P1

P5 + P4 – P2 + P6

P1 + P2

P3 + P4 P5 + P1 – P3 - P7

30 3060 60

7 314 6+ - 25 20

35 2828 2214 11

+-2 3-4 6

25 2035 28+

P2 P3 P4 P5 P6 P7

14 1629 34

7 314 6+ 30 30

60 60-2 3-4 6

14 1629 34

-1 0-1 0+ - -

40 3553 49

23 2331 34

15 1728 32

21 1943 40

Page 26: אלגוריתם שטראסן

אלגוריתם שטראסן 26

Mail: Oskar-Pletsch-Strassen D-01324 Dresden Telephone: ++49 351 2666942 Fax: ++49 351 2666664

E-Mail :. - .volker strassen@t online de

שטראסן וולקר

שאלות ?