17
־ התמרת פוריה בדידהDFT 3 באלגוריתמים סיכום חלק התמרת פוריה המטרה בהתמרת פוריה הינה כפל מהיר של שני פולינומים. אזי כפל של הפולינומים בדרךn הינה1 אם דרגת הפולינום. לעומת זאת,O ( n 2 ) הינה:(כפל של איבר באיבר) הרגילה.O (n log n) בהתמרת פוריה, אנחנו עושים זאת ב־ שורשי היחידה1 , נצטרך תזכורת קלה(התמרת פוריה) FFT לשם ביצוע ה־ של מהם שורשי היחידה, לא ניכנס כאן למשמעות אלא נציג.k N כאשר2 k את מה שרלוונטי לנו: שורשי היחידה מסדרn n שורשי היחידה מסדר2 {1, -1} 4 {1, i, -1, -i} 8 ω = 2 2 + 2 2 i נסמן: ω 0 , ..., ω 7 = 1,ω,i,ω 3 , -1, -ω, -i, ω 7 חישוב שורשי יחידה מסדר) הסבר מעמיק יותר1.1 (n מבלי להכניס לתאוריה הרעיון הוא כזה: אנחנו רוצים לחשב אזי אנחנו מחשבים את הדברn את שורש היחידה מסדר הבא:2πki n , k =0, 1, ..., n - 1 למשל: הדרגה של פולינום מוגדרת להיות המעלה הכי גבוה בו.1 .deg ( 2x 3 +3 ) =3 נתון לנו, אזי ניתןn וה־e 2πki n כעת, בגלל שבעצם מדובר ב־ כחזקה, לכן, דרך נוספת לראות את הדבריםk לראות את היא באופן הבא: נחשב את:ω n = 2πi n וכעת, בשביל לקבל את שורשי היחידה מה שנעשה הוא שנחשב את:ω 0 n 1 n , ..., ω n-1 n ω j n ω k n = , כלומר:n נשים לב כי מדובר בחשבון מודולו.ω 0 n = ω n n =1 ולכן:ω (j+k) mod n n סדר הפעולות בהתמרת פוריה2 אנחנו רוצים לכפול שני פולינומים.הסבר בחלק) לכל אחד מהםDFT אזי קודם אנחנו עושים,( הבא לאחר מכן כופלים את שתי התוצאות שקיבלנו בכל אחד, אבל עם השורשיםDFT מהשלבים, ואז עושים לתוצאה שוב.(בהמשך יוסבר מה הכוונה) (!!) ההופכיים ־ התמרת פוריה בדידהDFT 3 2 k בנית הוקטור מאורך3.1 אזי ניתן2 1+ x +3x 2 נניח ונתון לנו הפולינום הבא: בשביל אולם,, 1 1 3 להציג אותו כוקטור הבא:, אנחנו נרצהDFT התמרת פוריה, או יותר מדויק בשביל, לכן, מה שנעה הואk N כאשר2 k שהוקטור יהיה מאורך עד שנגיע לחזקה הכי(מימין) אפסים מקדימה(נרפד) שנוסיף, לכן הוקטור יהיה:4 במקרה שלנו מדובר ב־.2 קרובה של1 1 3 0 (הבדידה) חישוב ההתמרה3.2 יכול להיות שיש כאן מספר טעויות בדרך) מה שאפשר לעשות הוא להציב את כל אחד משורשי היחידהאת) בפולינום וכך לקבל את התוצאה{1, i, -1, -i} 4 מסדר כאשר המקדם עם החזקה הנמוכה ביותר ככה יוצגו כאן הפולינומים.2 .(0 כל החזקות הינן מספרים טבעיים כולל) יהיה ראשון1

סיכום של הקורס אלגוריתמים

  • Upload
    csnotes

  • View
    178

  • Download
    2

Embed Size (px)

Citation preview

Page 1: סיכום של הקורס אלגוריתמים

בדידה פוריה התמרת ־ DFT 3

באלגוריתמים סיכום

I חלק

FFT - פוריה התמרתפולינומים. שני של מהיר כפל הינה פוריה בהתמרת המטרהבדרך הפולינומים של כפל אזי n הינה 1 הפולינום דרגת אםזאת, לעומת .O

(n2)

הינה: באיבר) איבר של (כפל הרגילה.O (n log n)ב־ זאת עושים אנחנו פוריה, בהתמרת

היחידה שורשי 1

קלה תזכורת נצטרך פוריה), (התמרת FFT ה־ ביצוע לשםנציג אלא למשמעות כאן ניכנס לא היחידה, שורשי מהם של.k ∈ N כאשר 2k מסדר היחידה שורשי לנו: שרלוונטי מה את

n n מסדר היחידה שורשי

2 1,−14 1, i,−1,−i8 ω =

√22 +

√22 i נסמן:

ω0, ..., ω7

=

1, ω, i, ω3,−1,−ω,−i, ω7

מסדר יחידה שורשי (חישוב יותר מעמיק הסבר 1.1(n

לחשב רוצים אנחנו כזה: הוא הרעיון לתאוריה להכניס מבליהדבר את מחשבים אנחנו אזי n מסדר היחידה שורש את

הבא:

2πki

n, k = 0, 1, ..., n− 1

למשל: בו. גבוה הכי המעלה להיות מוגדרת פולינום של 1הדרגה

.deg(2x3 + 3

)= 3

ניתן אזי לנו, נתון nוה־ e2πkin ב־ מדובר שבעצם בגלל כעת,

הדברים את לראות נוספת דרך לכן, כחזקה, k את לראותהבא: באופן היא

את: נחשב

ωn =2πi

n

שנחשב הוא שנעשה מה היחידה שורשי את לקבל בשביל וכעת,את:

ω0n, ω

1n, ..., ω

n−1n

ωjnω

kn = כלומר: ,n מודולו בחשבון מדובר כי לב נשים

.ω0n = ωn

n = 1 ולכן: ω(j+k) mod nn

פוריה בהתמרת הפעולות סדר 2

פולינומים. שני לכפול רוצים אנחנובחלק (הסבר מהם אחד לכל DFT עושים אנחנו קודם אזי

הבא),אחד בכל שקיבלנו התוצאות שתי את כופלים מכן לאחרהשורשים עם אבל ,DFT שוב לתוצאה עושים ואז מהשלבים,

הכוונה). מה יוסבר (בהמשך ההופכיים(!!)

בדידה פוריה התמרת ־ DFT 3

2k מאורך הוקטור בנית 3.1

ניתן אזי 21 + x + 3x2 הבא: הפולינום לנו ונתון נניחבשביל אולם, , 1 1 3 הבא: כוקטור אותו להציגנרצה אנחנו ,DFT בשביל מדויק יותר או פוריה, התמרתהוא שנעה מה לכן, ,k ∈ N כאשר 2k מאורך יהיה שהוקטורהכי לחזקה שנגיע עד (מימין) מקדימה אפסים (נרפד) שנוסיףיהיה: הוקטור לכן ב־4, מדובר שלנו במקרה .2 של קרובה

1 1 3 0

(הבדידה) ההתמרה חישוב 3.2

בדרך טעויות מספר כאן שיש להיות (יכולהיחידה משורשי אחד כל את להציב הוא לעשות שאפשר מה(את התוצאה את לקבל וכך ,1בפולינום i,−1,−i 4 מסדר

ביותר הנמוכה החזקה עם המקדם כאשר הפולינומים. כאן יוצגו 2ככה

.(0 כולל טבעיים מספרים הינן החזקות (כל ראשון יהיה

1

Page 2: סיכום של הקורס אלגוריתמים

היחידה שורשי במקום שלם מספר בדידה3.3 פוריה התמרת ־ DFT 3

שלו תא שכל ארבע מאורך וקטור נקבל .(DFT ה־ תוצאתבפולינום. שהצבנו שורש אותו הוא

ומייגע... ארוך להיות יכול זה הבעיה:לעשות? ניתן כן מה

כזה: הוא לעשות לנו מציעה פורימה שהתמרת מהאחד כל חצי בגודל וקטורים לשני פעם כל הוקטור את נפצלבחצי כאשר ,(2k בגודל מוקטור התחלנו כי אפשרי תמיד (וזהאי־זוגי הוא הסידורי מספרם אשר התאים את נשים אחדזוגי הוא הסידורי שמספרם התאים כל את נשים השני ובחצישורשי ערכי את נציב אחד בכל 2 בגודל לוקטורים שנגיע עדכאשר בחזרה הוקטורים את נצרף ,1,−1 ־ 2 מסדר היחידהלמטה, בדוגמא (כמו תאים שני של הפרש או סכום יש תא בכלהיחידה שורשי את שמים שאנחנו זה עושים בעצם שאנחנו מהלוקטור נגיע וכך הוקטור), אורך שהוא מסדר או 4 מסדר

המבוקש.את נותנים אשר למטה אחד משלב בוקטורים להיעזר ניתן

ההפרש) ואת הסכוםממקודם: לנו הנתון הוקטור את ניקח למשל:

1 1 3 0

ל־2: אותו נפצל אזי1 3 1 0

בוקטור הזוגיים והמקומות בראשון האי־זוגיים (המקומותהשני).

:2 מסדר היחידה שורשי את ונציב 1 3 את ניקח כעתהוא: שנקבל מה .1,−1

כפולינום: הזה הוקטור את להציג שניתן לראות ניתן.f (x) = 1 + 3x

הוקטורים שני סכום בעצם שזה ־ 4 2־ ⇐ 1 -1

1 3השמאלי). (התא בניהם וההפרש

f (1) = 1+3x = 1+3 ל־= שווה (השמאלי) הראשון התא כי,4

.f (−1) = 1 + 3x = 1− 3 = ל־2− שווה השני התא ואילו:h (x) = 1 (הימני): השני הוקטור לגבי כנ"ל

1 1 ⇐ 1 -1

1 0החדש: הערך עם רק שלו המקורי למקום תא כל "נחזיר" וכעתעל נתסכל הבא: באופן המתאים הערך את נציב תא בכלכיצד יוסבר (בהמשך 1, 4,−1,−4 :4 מסדר היחידה שורשי

זה).. את לחשבוקטור בכל הראשון התאים שני את ניקח הראשון התא עבורשלהם. הסכום זה ולכן ־ 1 היחידה שורש את מציבים אנחונ כיאת ניקח לכן ־ 4 היחידה שורש זה ־ השני התא לגבי כעת,הראשון התא כפול 4 לו ונוסיף הראשון בוקטור הראשון התא

.4 + 4 · 1 כלומר: השני, הוקטור של

היחידה שורש את להציב צריכים אנחנו ־ השלישי התא לגביכפול הראשון בוקטור השני התא יהיה זה לכן ־ בוקטור (−1)

השני. הוקטור של הראשון בתא שיש מה (−1)נשים (−4) היחידה בשורש שמדובר בגלל הרביעי, בתא ואילוהשני התא כפול (−4) ועוד השני בוקטור הראשון התא את

השני. ובוקטור־ 4 + 1 = 5 4 + 4 · 1 = 8 2 + (−1) · 1 = 1 7

.DFT ה־ של התוצאה וקטור וזהואותו את בדיוק נעשה אז ־ 8 מאורך וקטור לנו ויש במידהאת נעשה כאן כמו ל־2 הוקטור את נפצל פעם כל ־ הדברונדאג התוצאה של הוקטורים את נמזג בסוף ואז החישוב,הראשון הערך יהיה הראשון התא של המעודכן שהערך כמובן

התוצאה. בוטוק

היחידה שורשי במקום שלם מספר 3.3

את לחסום וזה יותר נוחה היא שבעיקרון אפשרות, ישנהωnב־ להשתמש ובמקום כלשהו m ∈ N ע"י הפולינום אברי

.Zmב־ משתמשים

?m את מחשבים איך 3.3.1

m למצוא וננסה m = 2tn2 + 1 הבא: בביטוי נתבונן

שיתאים.מוצאים? איך

הגודל לפי בשני אחד מקדם ונכפול הפולינומים שני את נקיחכפול הראשון בפולינום גדול הכי המקדם (כלומר, ונחברגדול הכי השני המקדם + השני בפולינום גדול הכי המקדםהשני בפולינום הגדול השני המקדם כפול הראשון בפולינוםפשוט אזי אורך, שווי אינם הפולינומים אם הלאה) וכך ....+

שהם. כמו לכפול במי שאין אלו את נחברמחפשים אנחנו אזי ,k היא התוצאה כי נניח

.m = 2tn2 + 1 > k

הכי החזקה עבור מלמעלה 2 של קרובה הכי החזקה הינה ־ nהכי החזקות שתי חיבור כלומר ־ לקבל יכולים שאנחנו גבוהה

הפולינומים. בשני גדולותהבאים: הפולנימום שני על נתסכל למשל,

f (x) = 2x3 + x2 + 1

h (x) = 3x2 + 2x+ 13 + 2 = 5⇒ n = 8

.k = 2 · 3 + 1 · 2 + 1 · 1 = 9 שלנו: במקרה אזי,נחשב: כעת

m = 28t2 + 1 > 9⇒ m = 24t + 1 > 9

2

Page 3: סיכום של הקורס אלגוריתמים

הגדרה 4

ולכן t = 1 הוא זאת שמקיים קטן הכי tה־ כי לראות ניתן.m = 17 נבחר

:Z17ב־ כולם כבר הם היחידה שורשים כעת,שורש למצוא נצטרך היחידה שורשי את למצוא בשביל

.3Z17 של פרימיטיבי20, 24

שזה 1,−1 הם: 2 מסדר היחידה שורשי לכן:

.(Z17 של 8 מסדר פרימיטיבי יחידה כשורש 2 את (בחרנוהינם: 4 מסדר היחידה שורשי ולכן

,

20, 22, 24, 26

= 1, 4,−1 (= 16) ,−4 (= 13):8 מסדר היחידה ושורשי

.

20, 21, ...., 27

אזי 16 מסדר Z17 של היחידה שורשי את צריכים היינו אםהבא: בסדר רק 0, ...., 16 המספרים כל פשוט אלו

מסדר פרימטיבי שורש הוא 2 הזה במקרה ־

20, ..., 216

.16

מתאים אכן הוא זה חסם כי הוכחה 3.4

שלמה חזקה הוא n כאשר טבעיים מספירם t, n יהיו טענה:.1 ≤ t .2 של

.Zm בחוג n מסדר פרמיטיבי יחידה שורש הוא ω = 2t אזיZm בחוג n מסדר פרימיטיבי יחידה שורש הוא ω הוכחה:

.ωn = 1 mod m⇐⇒.1 ≤ j < n לכל ωj 6= 1 ולכן

.n = 8, t = 1 .m = 17 למשל:.1 6= ω, ω2, ...., ω7 mod 17 מקיים: ω = ש־2 היא הטענה

.ω8 = 1 mod 17: זאת ולעומתהוכחה:

הבאה: בסדרה נסתכל

1 < 2t︸︷︷︸ω

< 22t︸︷︷︸ω2

< 23t︸︷︷︸ω3

< · · · < 2nt2︸︷︷︸

ωn2

< m

.ωj 6= 1 mod m מתקיים 1 ≤ j ≤ n2 לכל ולכן,

.ωn2 = −1 mod m מתקיים: כמו־כן

.ωn = 1 mod m ולכן:ωj 6= 1 מתקיים: n

2 < j < n ששלכל להראותץ נותר.mod m

מחלקים nל־ ואין n את מחלק ω של שהסדר כבר לנו לנו ידועעצמו. nל־ פרט ,n2 מ־ הגדולים

.n היא 1 ∈ Zm שנותנת ω של ביותר הקטנה החזקה ולכן,הטענה. את להוכיח סיימנו בכך

. מש"ל

.xa = 1 mod n שמתקיים: כך x ∈ Zn הינו Zn של פרימטיבי 3שורש

x אזי xa = 1 mod n אם כלומר , יחידה שורש אותו של הסדר נקרא a.a מסדר Zn של פרימיטיבי שורש נקרא

II חלק

מטרואידים

הגדרה 4

התכונות מתקיימות אם מטרואיד יקרא M = (S,I)הבאות:

ריקה. לא סופית קבוצה היא S .1

העומד S של תת־קבוצות של ריק לא אוסף היא − I .2הבאות: בדרישות

.A ∈ I אזי A ⊆ Bו־ B ∈ I אם (א)

,x ∈ D קיים אז |C| < |D|ו־ C,D ∈ I אם (ב).(c ∪ x) ∈ Iש־ כך x /∈ C

קוראים: Iל־."M המטרואיד של תלויות הבלתי הקבוצות "אוסף

ש־ כך x 666/∈ A ,x ∈ S קיים ולא A ∈ I אם 4.1 הגדרהמקסימלית. תלויה בלתי קבוצה היא: A אזי (A ∪ x) ∈ I

המקסימליות הבלתי־תלויות הקבוצות כל 4.2 טענהגודל. שוות הן M = (S, I) במטרואיד

נאמר אזי (C ∪ x) ∈ I ו־ x /∈ C ,C ∈ I אם 4.3 הגדרה.C את מרחיב x ש־ כי

אם מקסימלית, בלתי־תלויה קבוצה היא C ∈ I 4.4 הגדרהאותה. שמרחיב x ∈ S קיים לא

בלתי קבוצה היא מרבי4 ω (A) עם A ∈ I קבוצה 4.5 טענהאותה). להרחיב ניתן (לא מקסימלית תלויה

אינו x ∈ S אם מטרואיד. M = (S, I) יהא 4.6 טענה.A ∈ I לכל ,A את מרחיב אינו x אזי ,∅ את מרחיב

שונים. דברים בשני מדובר למקסימליות. קשר 4אין

3

Page 4: סיכום של הקורס אלגוריתמים

למטרואידים דוגמאות הגדרה4.4 4

משוכלל מטרואיד 4.1

משוכלל מטרואיד שהוא Mנאמר = (S, I) מטרואיד בהינתןקיימת: אם

ω : S → R+

:A ⊆ S לכל גם מגדירים

ω (A) =∑x∈A

ω (x)

האופטימיזציה) (בעית האלגוריתמית הבעיה 4.1.1

,ω : S → R+ עם משוכלל מטרואיד M = (S, I) בהינתןמרבי. ממשקל A ∈ I לחשב ברצוננו

הבעיה לפתרון חמדני אלגוריתם 4.2

∅ → A .1

עולה. לא מקלים סדר לפי S אברי את נמיין .2

הבאה: הלולאה את נבצע שקיבלנו הסדר לפי .3

אז: (A ∪ x) ∈ I אם x ∈ S לכל (א).A ∪ x → A

.A הפלט:

האופטימיזציה. בעיית את פותר האלגוריתם 4.7 משפט

האם הבדיקה במחיר תלוי האלגוריתם של הריצה זמן 4.8 הערה.A ∪ x ∈ I

משקל פונקצית עם מטרואיד M = (S, I) יהא 4.9 טענהשל יורד סדר (לפי הראשון האיבר x יהא .ω : S → R+

A ⊆ S אזי כזה). x קיים (אם x ∈ Iש־ כך משקלים).x ∈ A עם אופטימלי

בקצרה ההגדרה 4.3

מטרואיד. ־ M = (S, I)סופית. קבוצה והיא S 6= ∅

ש: כך S של ריק) (לא תת־קבוצות אוסף ־ I

.A ∈ I ⇐ A ⊆ B ,B ∈ I .1

כך x ∈ D\C קיים אזי ,|C| < |D|ו־ ,C,D ∈ I .2(C ∪ x) ∈ Iש־

.ω : S → R+ פונקציה נתונהמרבי. ω (A) עם A ∈ I חישוב המטרה:

למטרואידים דוגמאות 4.4

הוקטורי המטרואיד 4.4.1

.A 6= 0 ,F שדה מעל מטריצה A תהא.A המטריצה של של השורה וקטורי קבוצת ־ S

לינארית. תלוים הלתי הם ⇔ I 3 וקטורים קבוצת

הוקטורי המטרואיד זהו

הגרפי המטרואיד 4.4.2

.S = E נגדיר .E 6= ∅ עם מכוון לא גרף G = (V,E) יהאמעגלים. אין Bב־⇔ (B ⊆ E) B ∈ I הבא:: באופן I נגדיר

הגרפי המטרואיד זהו

קבוצה של תת־קבוצות 4.4.3

.|A| = n > 0 כאשר A קבוצה לנו ויש נניחמגודל A של הקבוצות תתי כל ־ n ≥ k > 0 נבחר אם אזי

מטרואיד. הן k.(n, k ∈ N)

4

Page 5: סיכום של הקורס אלגוריתמים

III חלק

בגרפים זרימות

a12 //

10

b

20

9

s

16

??

15

t

c

4

UU

14// d

4

@@7

OO

s, t מיוחדים קודקודים שני ובו G = (V,E) מכוון גרף נתון. (s 6= t)

המוגדרת קיבלות פונקציית ־ 5c : E → R+ נתונה כמו־כןהצלעות. על

את המקיימת f : V × V → R פונקציה היא בגרף זרימההבאות: הדרישות

.u, v ∈ V לכל f (u, v) ≤ c (u, v) קיבולי: חסם •

.u, v ∈ V לכל f (u, v) = −f (v, u) אנטיסימטריה: •

לכל∑

u∈V f (u, v) = 0 החומר: שימור •u ∈ V \ s, t

הבא: באופן מוגדר f הזרימה ערך

|f | =∑v∈V

f (s, v)

מרבי. |f | עם f זרימה לחשב המטרה:

.c : V × V → R+ ∪ 0 הבא: cהאופן את 5נרחיב

.c (u, v) = 0 מתקיים: (u, v) /∈ V המקיים u, v ∈ V לכל כאשר

למעלה: שישנו הגרף על הבאה הזרימה על נסתכל למשל:

a12/12 //

3/10

b

12/20

0/9

s

12/16

??

11/15

t

c

3/4

UU

11/14// d

4/4

@@0/7

OO

yה־ מתוך x מזרימים שאנחנו היא x/y של המשמעות כשאר.x = ש־0 לכך שקול זה אזי y רק כתוב אם המותרים

כמה ־ קודקודים שני בין המאזן בעצם היא fהרווחנו/הפסדנו.

כי ונניח בסיסיות מדוגמאות נתחיל זה את להבין בשבילכלשהו6: נזל של ליטרים של זרימה כמות על מדובר

o

3/10

p

4/5

UUm

8/12

n

2/3

UU

שב־ נראה הזרימה כמות על נסתכל אם כי ־ f (m,n) = 6ליטרים, 6 בסה"כ לנו זורמים m 99K n

ליטרים 6 של זרימה לנו יש אם כי f (n,m) = −6 ואילוליטרים. −6 של היא הזרימה השני בכיוון אזי אחד בכיוון

.f (o, p) = −1, f (p, o) = 1 ולכן:a 99K b בין זורמים ליטרים כמה זה בפועל לנו שמשנה מה

.f (a, b) את לחשב כדי

שלמעלה: לדוגמא נחזור כעת.f (c, s) = −11 ,f (d, t) = 4 ,f (d, s) = 0 ,f (d, a) = 0

.f (b, d) = −7 ,f (d, c) = −11

.f (x, x) = 0 מתקיים x ∈ V לכל 4.10 טענה

מכוניות כמות כמו להזרים שניתן אחר דבר כל להיות יכול שזה 6למרות

וכו'... בכביש

5

Page 6: סיכום של הקורס אלגוריתמים

דוגמאות: פורד־פלקרסון5.1 שיטת 5

נגדיר: X,Y ⊆ V לכל סימון:

f (X,Y ) =∑

x∈X,y∈Yf (x, y)

טענות:

.∀X ⊆ V ,f (X,X) = 0 .1

.f (X,Y ) = −f (Y,X) .2

אם f (X ∪ Y, Z) = f (X,Z) + f (Y, Z) .3.X ∩ Y = ו־∅ X,Y, Z ⊆ V

= |f | כלומר ,tמ־ שיצא מה סך (זהו |f | = f (V, t) .4.(tמ־ שיוצא למה

פורד־פלקרסון שיטת 5

איטרטיבית: בשיטה עובדים כזה: הוא הרעיון.(0 זהותית (פונקציה f ≡ מ־0 נתחיל

שבה tל־ sמ־ מסילה מרחיבה": "מסילה מחשבים שלב בכללהזרים. עוד ניתן

מרחיבות. מסילות יותר מוצאים שלא עד זאת עושיםהשיורי בגרף שלב) (בכל מחשבים המרחיבה המסילה את

הבא: באופן המוגדר שנשאר) מה של (במובן,G = (V,Ef )

Ef =

(u, v) ∈ V × V ; c (u, v)− f (u, v)︸ ︷︷ ︸cf

> 0

.(u, v) הצלע של השיורית הקיבולת = cf (u, v)

דוגמאות: 5.1

הבא: הגרף על נסתכל

s1 //

1

@@a

1 //

1

b

1 // t

הבאה: הזרימה ועל

s1/1 +3

1

@@a

1/1 +3

1

b

1/1 +3 t

שהעברנו־ ממה יותר להעביר ניתן לא ־ שזהו לראות ניתן.1 סה"כ

"להתחרט" הוא שיטה אותה ע"פ לעשות, שניתן מה כעת,הופכים אנחנו לכן חזרה, שהעברנו מה את להחזיר ולאפשר

שהעברנו: הקיבולת אותה את ומחזירים הצינור כיוון את

אזי a7/10 // b כזה: במצב היינו למשל אם כלומר,

שהזרמנו, מה את "להחזיר" האפשרות לנו שתהיה נרצה כאשר

את לנו יש כעת ־ a3

**b

7

jj כך: יראה הדבר

לקנו קח ולשם ,bל־ aמ־ שהזרמנו מה את להחזיר האפשרות:cf הוא שקיבלנו מה דיוק וליתר ,c (a, b) מהקיבולת

למעלה). (כמתואר cf (a, b) = c (a, b)− f (a, b)

6

Page 7: סיכום של הקורס אלגוריתמים

דוגמאות: 5.1 פורד־פלקרסון שיטת 5

מסילה נבחר אזי ־ tל־ sמ־ זרימה שוב למצוא נצטרך כעת( +3 ב־ תסומן (היא דרכה ונעבור כלשהי

s oo0/1

1/1

<Da ks

1/1

1/1

"b oo

1t

האפשרות לגבי מקודם כמו הדבר אותו את נעשה פעם ושובשהעברנו: מה על להתחרט

s oo 1

^^

1

a1 //

1

b oo1

t

sמ־ מסילות להעביר אפשרות יותר אין הבא: לדבר לב נשיםשסיימנו! הוא הדבר פירוש ־ tל־

איך ־ שעשינו מה כל את לסכם הוא לעשות שצריך מה כעת,זאת? עושים

הכמות: מבחינת(פעמיים). tל־ sמ־ 1 העברנו פעם כל

היותר. לכל 2 להעביר ניתן לכןכמות: אותה את להזרים איך מבחינת

בגרף, קודקודים שני כל בין סה"כ העברנו כמה מחשביםלמשל:

לכן הפוך בכיוון פעם כל 1 העברנו bל־ a בין כי לב נשים.0 שם העברנו בסך־הכל

ולכן ,→ בכיוון: אחת פעם רק 1 העברנו למשל tל־ b בין.→ בכיוון 1 רק יעבור tל־ b בין (המרבית) הסופית בזרימהנוזל אותו את העברנו שדרכן הצלעות כל עבור הלאה וכך

(למשל).

הינה: המרבית הזרימה לכן,

s1/1 +3

1/1

<Da

0/1 //

1/1

"b

1/1 +3 t

מורכבת: יותר טיפה דוגמא על נסתכל כעת

b

3

a

299

4

!!

1

**t

s

3

BB

5** c

7

aa

2

BB

הדבר. אותו נשאר הגרף ־ f ≡ מ־0 נתחיל

את דרכה להעביר וננסה tל־ sמ־ כלשהי מסילה נבחר:(2 יהיה שלנו (שבמקרה המקסימום

7

Page 8: סיכום של הקורס אלגוריתמים

דוגמאות: 5.1 פורד־פלקרסון שיטת 5

b

3

a

299

2/4

%

1

**t

s

2/3

>F

5** c

7

aa

2/2

>F

עם דרכן, שהזרמנו לאלה ההפוך בכיוון צלעות נעביר כעתולכן cל־ a בין מעגל ישנו כי לב נשים שהזרמנו. הכמות אותהערכי את לעדכן הוא שצריך מה אלא צלעות להוסיף איך איןכמו שהעברנו, הכמות את לשניה מאחת ("להעביר" הצלעות

הבאה): בדיאגרמה שמופיע

b

3

a

299

0/2

!!

0/2

1

**t

s

0/1

BB

5** c

9

aa

2

sמ־ מסילות ישנן ועדיין היות בגרף זרימה שוב נבצע וכעת:tל־

b

1/3

a

1/25=

2

!!

2

1

**t

s

1/1

>F

5** c

9

aa

2

ההפוך בכיוון רק שהעברנו הקיבולת עם הצלעות את ונוסיףהחדשה: הזרימה את נוסיף +

b

2

''

1

a

1

FF

2

!!

3

1/1

&.t

1

gg

s

1/5 &. c

1/9

]e

2

חדשה זרימה ונוסיף המתאימות הצלעות את נוסיף כעתבהתאם:

8

Page 9: סיכום של הקורס אלגוריתמים

דוגמאות: פורד־פלקרסון5.1 שיטת 5

b

1/2

#+

1

a

1/1

BJ

3

!!

3

jj1

t

1

gg

s

1/4/7 c

1/8

]e

2

1mm

־ שקיבלנו למה לב ונשים

b

1

''

2

a

4

!!

3

jj1

t

2

gg

s

333 c

7

aa

2

2mm

סיימנו! אזי ,tל־ sמ־ מסילות יותר אין זהו!

הסופית: הזרימה את נחשב כעת

(עוד הפעמים בשאר ואז 2 הראשונה (בפעם 5 העברנו סה"כבצלעותיו ונעביר המקורי7 הגרף את ניקח עכשיו .(1 שלוש)

צלע: בכל שהעברנו כמה

שהעברנו ממה מתקזז זה אזי ההפוך, בכיוון חדשה בצלע העברנו אם 7גם

המקורית. בצלע

b

2/3

a

2/299

0/4

!!

1/1

**t

s

3/3

BB

2/5 ** c

0/7

aa

2/2

BB

.f זרימה עם זרימה רשת G = (V,E) תהא 5.1 טענההשיורית. הרשת ־ Gf

ומתקיים: Gב־ זרימה היא f + f ′ אזי .Gf ב־ זרימה ־ f ′

|f + f ′| = |f |+ |f ′|

אינה f אזי Gf ב־ מרחיבה מסילה קיימת אם 5.2 מסקנהמסילות לנמצוא ניתן עדיין אם (כלומר, מקסימלית. זרימהמקסימלית). זרימה אינה f אזי מקודם, שהראנו כמו ,tל־ sמ־ההפוך בכיוון גם נכון זה כלומר: ומספיק, הכרחי תנאי גם זהו

מקסימלית. f אזי Gf ב־ מרחיבות מסילות אין אם ־

קבוצת של חלוקה הוא cut (S, T ) חתך 5.3 הגדרה:V הקודקודים

.t ∈ T ,s ∈ Sש־ כך S·∪ T = V

.f (s, t) הוא cut (S, T ) דרך העובר השטףהיא: cut (S, T ) החתך של הקיבולת

c (S, T ) =∑x∈S

∑y∈T

c (x, y)

כלומר, ־ f (S, T ) = |f | מתקיים: cut (S, T ) לכל 5.4 טענה.sמ־ יצא כמה למדוד נוכל תמיד נחתוך היכן משנה לא

מתקיים: cut (S, T ) לכל 5.5 טענה

f (S, T ) ≤ c (S, T )

9

Page 10: סיכום של הקורס אלגוריתמים

ציבורי מפתח בשיטת הצפנות 8(Public Key)

והחתך השטף משפט 6

.t ובור s מקור עם G = (V,E) ברשת זרימה f תהא

שקולים: הבאים התנאים

.Gב־ מקסימלית זרימה היא f .1

מרחיבות. מסילות אין Gf ב־ .2

כלשהו. cut (S, T ) חתך עבור |f | = cut (S, T ) .3

השידוך גודל = בגרף המרבית הזרימה ערך 6.1 טענההמקסימלי.

Edmonds-Krap של האלגוריתם 7

כלומר, ,BFSב־ שימוש תוך Gf ב־ מרחיבה מסילה נחשב.Gf ב־ tל־ sמ ביותר קצרה במסילה נבחר

ב־ מרבית זרימה מחשב א־ק של האלגוריתם 7.1 משפט

.O(|E|2 · |V |

)ומגיעה sמ־ שיוצאת מסילה על נמצא Gב־ קודקוד כל (הנחה:

.(tל־

IV חלק

ההצפנה תורת

ציבורי מפתח בשיטת הצפנות 8(Public Key)

רבין של ההצפנה אלגוריתם 8.1

את עושה הוא כך לשם מוצפנת. הודעה לקבל רוצה בובהבאות: המקדימות הפעולות

p, q גדולים8 ראשוניים מספרים שני בוחר הוא .1.p, q ≡ 3 (mod 4) המקיימיים:

.n = p · q את: מחשב הוא .2

להצפנה) (המשמש הציבורי המפתח ־ n את מפרסם הוא .3להעביר כדי הודעות להצפין יוכלו שאנשים (כדי בוב של

לו).

את עושה היא לבוב. 9M ההודעה את לשלוח רוצה אליסהבאות: הפעולות

הציבורי המפתח רשום שעליו המודעות לוח אל פונה היא .1.M < nש־ ומוודאת n הוא אשר ־ בוב של

. C = M2 mod n את: מחשבת היא .2

לבוב... C את שולחת היא .3

לראות יכול העולם כל ־ המוצפנת ההודעה היא C.C את

יהיו שהם המשמעות ומה מספרים שני לבחור פירוש מה יוגדר 8בהמשך

גדולים..Nב־ מספר הוא ־ M 9

10

Page 11: סיכום של הקורס אלגוריתמים

רבין של ההצפנה אלגוריתם 8.1ציבורי מפתח בשיטת הצפנות 8(Public Key)

M את לחשב ורוצה המוצפנת) (ההודעה C את מקבל בובהבאים: הדברים את עושה הוא כך לשם (ההודעה),

p+14 ש־∋ לכך לב נשים .C

p+14 mod p את מחשב הוא .1

הזה. הגודל את לחשב בעיה שום אין ולכן N

:p מודולו הכל שלו)? (החישוב שווה זה למה

Cp+14 =

(M2) p+1

4 = Mp+12 = M ·M

p−12 = M ·

√Mp−1︸ ︷︷ ︸

.1 = gcd (M,p) ⇐⇒ 1 mod p ל־ שווה שזה :

= M ·√

1 mod p = ±M mod p

את: ומקבל Cq+14 mod q את: מחשב בוב דומה באופן .2

±M mod q

שימוש ותוך משוואות של מערכות 4 מקבל בוב סה"כ, .3הוא הסינית) השארית (משפט הסיני השאריות במשפט

המשוואה: של השורשים ארבעת את מקבל

x2 = C mod n

הנכון. Mה־ הוא האלה מהארבעה אחד

(כנראה מספרים ארבעה נקבל מתמטית מבחינה 8.1 הערההכוונה האחר, על עדיפות אין מהם אחד לאף אשר שונים)

שלחנו. שאותה ההודעה אכן שזאת היא הנכון Mב־

רבין בשיטת שהוצפנה הודעה לפצח שהיכולת ההוכחה 8.1.1הראשוניים לגורמיו n את לפרק ליכולת שקולה

אחת את שפותר (פולינומיאלי) אלגוריתם יש אם ־ כלומראת גם שפותר (פולינומיאלי) אלגוריתם גם יש אזי הבעיות,

השנייה. הבעיהשיודע מי (כלומר, n את לפרק מסוגל שמיש מקודם הראנוהמשוואה של הפתרונות ארבעת את לחשב מסוגל (p, q את

.x2 = C mod n

שמסוגל שמי נראה כלומר, השני, הכיוון את נראה עכשיוהמקיימים: M1,2,3,4 את לחשב

M21 = M2

2 = M23 = M2

4 mod n

מי לדעת ולכן n את לפרק מוסגל שונים, ה־M־ים כל כאשר.qו־ p הם

הוכחה:מתקיים: אזי ,M1 6= ±M2 ש־ נניח

0 = M21 −M2

2 = (M1 −M2) (M1 +M2)

כלומר:

(M1 −M2) (M1 +M2) = k · n = k · p · q

.k ∈ Z כאשרימין. אגף ־ B שמאל, אגף ־ A

כלומר: ,p | B ולכן p | A.p | (M1 −M2) (M1 +M2)

ולכן: ראשוני p, p | (M1 +M2) ו/או p | (M1 −M2)

אופן: ובאותו.q | (M1 +M2) ו/או q | (M1 −M2)

?q | (M1 +M2) וגם p | (M1 +M2)ש־ הייתכןשלמדנו מה (ע"פ n | (M1 +M2)ש־ הוא שיצא מה אז כי לא,

.M1 = M2 mod n כלומר: אלגבריים), במבניםש־ ייתכן לא אופן, באותו

מתקיים היה זה לו כי ,q | (M1 −M2) וגם p | (M1 −M2)כלומר: M1 +M2 = 0 mod n אזי

.M1 = −M2 mod n,q - (M1 −M2)ו־ p | (M1 −M2) בה"כ: נניח

שתי (את gcd (M1 −M2, n) ∈ 1, p, q,n אזי:זאת אחרת תתיכנה, לא הן כי ביטלנו האחרונות האפשרויות

להנחה). סתירה תהיהולכן:

p = gcd (M1 −M2, n)

בקלות.... זאת לחשב וניתןלחשבו: אפשרויות שתי ישנן ,q ולגבי

q =n

p, q = gcd (M1 +M2, n)

לפרק מסוגל השורשים ארבעת את משכיר שמי הראנו וכך.p, qל־ n את

11

Page 12: סיכום של הקורס אלגוריתמים

ההצפנות של סיכום 10

מש"ל.RSA שיטת 8.2

המקדימות הפעולות את ועושה מוצפנת הודעה לקבל רוצה בובהבאות:

ושונים. גדולים ראשוניים שני p, q בוחר .1

.ϕ (n) = (p− 1) (q − 1) ואת n = p · q את מחשב .2

.gcd (e, ϕ (n)) = 1 המקיים: (אי־זוגי) קטן e בוחר .3

.10d · e = 1 mod ϕ (n) המקיים d מחשב .4

.(e, n) שלו: הפומבי ההצפנה מפתח את מפרסם הוא .5

שלו: הפרטי הפענוח מפתח את בכספת שומר הוא .6.(d, n)

ורצוי ביותר סודיים ־ (p, q, ϕ (n)) לזכור: חשוב .7להשמידם!

לבוב: M מוצפנת הודעה לשלוח רוצה אליס

(e, n) הפומבי המפתח את המודעות) לוח (על מוצאת .1.M < nש־ ומוודאת בוב של

לבוב. ושולחת C = Me mod n את: מחשבת היא .2

המוצפן. המסר הוא C

מחשב הוא כך לשם :M את לחשב ורוצה C את מקבל בובקיבל? הוא ומה Cd mod n את

(n מודולו החישובים (כל

Cd = (Me)d

= Med = M1+k·ϕ(n)

= M ·(Mϕ(n)

)k= M

.gcd (M,n) = 1 היות ־ Mϕ(n) = 1 mod nפענחנו!

RSA באמצעות חותמת 9

אלגוריתמית. בצורה לחתום המטרה:נרצה? מה

לחתום. מאוד קל החוקי לחותם .1

.gcd (e, ϕ (n)) = ש־1 בגלל כזה קיים 10בהכרח

לכולם. מאוד קל החתימה: נכונות וידוא .2

אפשרי. בלתי ־ חתימה זיוף .3

אפשרית. בלתי ־ חתימה העתקת .4

הודעות: על לחתום רוצה בוב

את ומחשב ושונים גדולים ראשוניים שני p, q בוחר הוא .1.n = p · q

.gcd (e, ϕ (n)) = 1 המקיים: קטן e בוחר .2

.d · e = 1 mod ϕ (n) המקיים: d מחשב .3

(ציבורי). שלו החתימות וידוא מפתח ־ (e, n) את מפרסם .4

(פרטי). חתימה מפתח ־ (d, n) את בכספת שומר .5

נשאר...). זה אם מסוכן (מאוד להשמיד! ־ (p, q, ϕ (n)) .6

הוא .M ההודעה על לחתום רוצה בוב החתימה: אלגוריתםאת: ומחשב M < nש־ מוודא

σ (M) = Md (mod n)

לנמען ותשלח M להודעה שתצורף החתימה היא σ (M)(אליס).

זויפה): ולא אמיתית אכן (שהחתימה הבדיקה אלגוריתםבוב של (e, n) את מוצאת ,(M,σ (M)) את מקבלת אליס

פורסם). (אשרהאם: בודקת היא

M = (σ (M))e

חוקית. החתימה ־ כן אםחוקית. אינה החתימה ־ לא אם

ההצפנות של סיכום 10

רבין בשיטת הצפנה 10.1

מתקיים (אשר .p, q ראשוניים מספרים שני בוחר המקבל הצדשיטת אחרת זה!!! את לזכור חשוב ,p, q ≡ 3 mod 4 עבורם

עובדת...). לא ההצפנהבסוד... שומר הוא p, q ואת n = pq כאשר n את מפרסם הואבחזרה לו ושולח M < n בוחר הודעה לו לשלוח שרוצה הצד

.Cב־ זאת נסמן .M2 mod n את

12

Page 13: סיכום של הקורס אלגוריתמים

הגדולים הראשוניים המספרים לגבי הערה 11

Cq+14 mod q ואת C

p+14 mod p את מחשב המקבל הצד

.אחד. בכל ±M נקבל אלו בשני

שאחד פתרונות 4 מקבל הוא הסיני השאריות משפט ובעזרתהנכון... Mה־ הוא מהם

מהם לדעת בקלות יכול הללו הפתרונות ארבעת את שיודע מיכמובן... וההפך p, q

RSA בשיטת הצפנה 10.2

הבאות: המקדימות הפעולות את עושה המקבל הצדומחשב p, q ושונים: גדולים ראושניים מספרים שני בוחר הוא

הבאים: הדברים את.n = p, q, ϕ (n) = (p− 1) (q − 1)

.gcd (ϕ (n) , e) = 1 מקיים: אשר קטן e בוחר הוא.d · e = 1 mod ϕ (n)ש־ כך d מחשב הוא

שלו. הציבורי המפתח ־ (e, n) ־ את ומפרסםבסוד. אצלו שומר הוא (d, n) את

,C את בחזרה ושולח M < n הודעה את בוחר השולח: הצדמשתמש השולח הצד לזכור: (כדאי C = Me mod n כאשר

פירסם). המקבל שהצד הנתונים בשני

מחשב: המקבל הצד

Cd mod n = M

ההודעה... את מקבל הוא וכך

RSA באמצעות חתימה 10.3

ב־ עושה המקבל שהצד מה את בדיוק עושה ־ החותם הצד.RSA

M ההודעה על לחתום רוצה הוא הקודמת לפעם שבנוסף רקכאשר: ,σ (M) את מפרסם הוא ולכן (nמ־ קטנה (שהיא

σ (M) = Md

,(σ (M))e את מחשב החתימה נכונות את לבדוק שרוצה הצד

ל: שווה שזה.11σ (M)

e= Med = M

ההעלה כלומר, דומה, אחר דבר כל (או זויפה החתימה אםσ (M)

e 6= M אזי ההודעה) מפרסם של eה־ איננה e בחזקתזויפה. שהחתימה יודעים אנו וכך

הראשוניים המספרים לגבי הערה 11הגדולים

p, q ≈ ולכן n ≈ 210000 ־ כזה גודל מסדר מספר על מדובר.25000

.RSAה־ שיטת על בחלק נמצא Mל־ שווה זה מדוע 11הסבר

13

Page 14: סיכום של הקורס אלגוריתמים

הסינית) השארית (משפט הסיני השאריות משפט 13

V חלק

בתורת משפטים כמההמספרים

פרמה של הקטן והמשפט אוילר משפט 12

אוילר משפט 12.1

אזי ,gcd (a, n) = 1 שמתקיים: כך a ∈ Nו־ n ∈ N יהימתקיים:

aϕ(n) ≡ 1 (mod n)

(וקטנים nל־ שזרים המספרים כל סכום זה ϕ (n) כאשרממנו).12

.ϕ (p) = p− 1 מתקיים: ראשוני p עבור ההגדרה, ע"פ לכן,

פרמה של הקטן המשפט 12.2

אוילר משפט של פרטי מקרה הינו פרמה של הקטן המשפטראשוני. הוא n שבו המקרה עבור מתייחס והוא (שלמעלה)

ולא pב־ זאת נסמן נוחות (מטעמי ראשוני הוא p כי נניח אזי,מתקיים: a ∈ Zp לכל אזי ,(nב־

ap−1 ≡ 1 (mod p)

של בסיכום יותר עליה לקרוא וניתן אוילר פונקציית גם נקראת ϕ (n)12

.(4 (עמוד אלגבריים" "מבנים הקורס

(משפט הסיני השאריות משפט 13הסינית) השארית

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

לא הם (בעיקרון p, q ראשוניים מספרים שני לנו ויש נניחזה זרים להיות צריכים הם כן אבל ראשוניים, להיות חיביםהזה (במקרה הבאה המשוואות מערכת לנו ונתונה שונים לזה)

משוואות): שתי יש שבו למקרה רק אתייחס אני

x ≡ a mod p

x ≡ b mod q

מהצורה: פתרון ישנו אזי

x ≡ c mod p · q

הזה? הפתרון את מחשבים כיצד כעת,(נניח הבא באופן אותה ומציגים מהמשוואות אחת את בוחרים

הראשונה): את וניקח

x = pk + a

.k,m ∈ Nהראשונה: את בה ומציבים השניה אל עוברים כעת

pk + a ≡ b mod q

p−1ב־ נכפול ,pk ≡ (b− a) mod q נקבל: נמשיך אםונקבל: (qב־ p של (ההופכי

k = (b− a) · p−1 mod q ⇒ k = q ·m+ (b− a) · p−1

את וקיבלנו ־ הראשונה במשוואה כעת נציב זה אתהסופית. התוצאה

d · x ≡ a mod p מהצורה: משווה לנו יש אם גם הערה:.dב־ גם להתחשב נצטרך ופושט משנה לא זה (למשל),

פעם כל אנחנו אזי אחת, ממשואה יותר לנו ויש במידהוממשיכים כאן) שנעשה (כמו לאחת משוואת שתי מצמצמים

הלאה.מצמצמים אזי משוואות, שלוש לנו יש למשל אם כלומר,שוב להיות הופך זה השלישית עם יחד ואז ־ לאחת שתיים

משוואות... שתי

14

Page 15: סיכום של הקורס אלגוריתמים

מספר של ראשוניות לבדיקת רבין־מילר אלגוריתם 14

דוגמא 13.1

ניקח:

x ≡ 3 mod 7

x ≡ 4 mod 11

.x ≡ c mod 77 מהצורה: פתרון מחפשים אנחנו.(7 · 11 = 77)

אזי:

x = 7k + 3

⇓7k + 3 = 4 mod 11

⇓7k = 1 mod 11

הצדדים שני את נכפול לכן ,6 הינו Z11ב־ 7 של ההופכי כעתב־6:

k = 6 mod 11⇒ k = 11m+ 6

:kה־ עם הראשונה במשוואה זה את ונציב

x = 7 (11m+ 6) + 3

⇓x = 77m+ 42 + 3

⇓x = 77m+ 45

x ≡ 45 mod 77

שרצינו... מה את וקיבלנו

VI חלק

הסתברותיים אלגוריתמים

לבדיקת רבין־מילר אלגוריתם 14מספר של ראשוניות

a ∈ 1, ..., x− 1 נגריל כראשוני שחשוד x בהינתןשתתואר בדרך ax−1 mod x את ונחשב אחידה בהתפלגות

בהמשך.ראשוני אינו x אזי ax−1 6= 1 mod x שאם לכך לב נשים

וסיימנו... פרמה) של הקטן המשפט (ע"פזוגי. הוא x− 1 ולכן זוגי אינו הוא ולכן כראשוני חשוד x

r כאשר (x− 1) = 2t · r הבאה: בצורה x − 1 את נרשום.1 ≤ tו־ אי־זוגי הוא

ולכן:

ax−1 = ar·2t

=

((((ar)2)2)2

)2 · · ·

פעמים. t מופיעות 2 של החזקות כאשרולכן: x− 1 = 136 = 8 · 17 = 17 · 23 למשל:

a136 =

(((a17)2)2)2

הבא: באופן x− 1 בחזקת ההעלה את נבצע

s0 = ar mod x

s1 = s20 mod x

s2 = s21 mod x

.

.

.

st = s2t−1 mod x

15

Page 16: סיכום של הקורס אלגוריתמים

מטריצות כפל בדיקת 15

st = s2t−1 האחרונה השורה ולבן st = ax−1 כי לב נשיםהתוצאה. הינה

פרמה). (ע"פ ראשוני אינו x אזי st 6= 1 mod x אםשלמשוואה הוא הדבר פרוש st−1 6= ו־±1 st = 1 אם

שונים: פתרונות שלוש (לפחות) מצאנו y2 = 1 mod xהיא: המסקנה ולכן st−1,±1

.13 ראשוני אינו x ־ ולכן שדה אינו Zx

מסקנה. ללא נעבור ־ st−1 = ו־1− st = 1 אםst−2ו־ st−1 עם הבדיקה על נחזור ־ st−1 = ו־1 st = 1 אם

.(s0ו־ s1ל־ שנגיע עד היותר לכל זאת (ונעשההמסקנה:

שלא שור מצאנו אם או ,x פריקות על הכריז פרמה אםזאת). להוכיח גם (ונוכל פריק xש־ נכריז :1 של טריוויאלי

אחרת...xש־ גילינו מהמקרים באחד אם פעמים. k הניסוי על נחזור

ונסיים. כך על נכריז אזי פריקהנראה שככל נכריז אזי למסקנה נגיע לא הפעמים k בכל אם

ראשוני... x

וטעינו ראשוני xש־ שהכרזנו לכך ההסתברות 14.1 טענה.(12

)kל־ שווה קטנה

יקרא a אזי ראשוני, אינו xש־ לנו מגלה a אם 14.2 הגדרה.x לפריקות עד14

לפריקותו. עדים קיימים לא אזי ראשוני x אם 14.3 הערה

או גדול לפריקותו העדים מספר אזי פריק, x אם 14.4 משפט.x−12 ל־ שווה

שדה. הוא Zx⇔ ראשוני x 13ע"פ:

עדות. שנותן עד של 14במובן

מטריצות כפל בדיקת 15

.F שדה מעל n× n מסדר A,B,C מטריצות: 3 נתונות. C = A×B האם: לבדוק ברצוננו

.Ω (2n) עולה A×B של חישוב.O(n2)כך על לשלם ומוכנים לבדוק רוצים רק אנחנו

תלוי: בלתי באופן פעמים k עליו) (נחזור הבא הניסוי את נבצע

הווקטורים 2n על אחידה בהתפלגות 15~r ∈ 0, 1 נגריל .1הללו.

זמן). יחידות O(n2)) ~x = C · ~r את נחשב .2

זמן). יחידות O(n2)) ~y = B · ~r את נחשב .3

זמן). יחידות O(n2)) ~z = A · ~y את נחשב .4

ונפסיק. C 6= A×B כי נכריז אזי ~z 6= ~x אם .5שוב... ההגרלה על נחזור אזי ~z = ~x אם

את: מחשבים בעצם אנחנו שבו 4 לשלב לב לשים כדי.~z = A · ~y = A · (B · ~r)

טעינו. לא אזי C 6= A×Bש־ הכרזנו אם 15.1 הערה.C · ~r = (A×B) · ~r אזי C = A×B אם כי

כלומר:

C · ~r︸︷︷︸~x

= A · (B · ~r)︸ ︷︷ ︸~y︸ ︷︷ ︸

~z

אזי ניסיונות k אחרי C = A× Bש־ הכרזנו אם 15.2 טענה.(12

)kל־ קטנה־שווה שטעינו ההסתברות

. 12 ≥ Pr(C 6= A×B

∣∣∣C · ~r = (A×B) · ~r)

15.3 טענה

.D = C −A×B סימון: נכניס שמעל) הטענה (של הוכחה:

. 12 ≥ Pr(D · ~r = ~0

∣∣∣D 6= 0)

ש: הוא שנוכיח מה

קיימים) והם (במידה הערכים ויתר d116=0 כי נניח בה"כבאינדקסים מרוכזים (d1j) הראשונה בשורה מאפס השונים

הנמוכים.

Pr(D · ~r = ~0

∣∣∣~d · ~r = ~0)שדה. בכל ישנם 0,115

16

Page 17: סיכום של הקורס אלגוריתמים

מטריצות כפל בדיקת 15

.d של הראשונה השורה את מייצג ~d כאשר.1 ≤ l ∈ N

הבא: לדבר לב נשים כעתונראה ~r בוקטור D של הראשונה השורה את נכפול אנחנו

ל־0. שווה המכפלה כאשר קורה מה

17