בדיקת מונוטוניות של פונקציות בוליאניות

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
מציאת צורה של מבני Tensegrity
Advertisements

מעבר מביטוי רגולרי ל – NFA (גזור ושמור) משפט: לכל ביטוי רגולרי r קיים אוטומט סופי A כך ש – L(A)=L(R). לכל אוטומט סופי A קיים ביטוי רגולרי r כך ש – L(A)=L(R).
תחשיב הפסוקים חלק ו'.
72120 – ביוכימיה של התא תרגיל מס' 3: קינטיקה אנזימתית.
שיעור 6 האטמוספירה בתנועה.
מגוון גנטי.
ניתוח תחבירי (Parsing) - המשך
Atom Interferomtry סוגי אינטרפרומטרים סוגי אינטרפרומטרים מודל של Double Y Interferometer מודל של Double Y Interferometer סיבוב של האינטרפרומטר סיבוב של.
שדות מגנטיים של זרמים משלוח ספינות חלל מכדור הארץ לחלל נעשה ע"י רקטות. אבל כאשר נתחיל לייבא מינרלים מהחלל לארץ, לא יהיה לרשותנו דלק לשליחת ספינות חלל.
שערוך תאורה מתוך צל Group meeting
תורת התורים תיאור חלקי עולם כרשתות של תורים לצורך: יישומים: הבנה
בדיקת תכונות של גרפים במודל מטריצת השכנויות ענב וינרב ינון חביב.
הרצאה 11: סמנטיקה ומשפט השלמות. אינטרפרטציה אינטרפטציה M מורכבת מ- 1. קבוצה D≠ ,D - תחום האינטרפטציה. 2. פרושים של פרדיקטים, פונקציות וקבועים ב- D, כלומר,
סמינר במדעי המחשב חורף תשסט תורת הטיפוסים הפשוטים הבסיסית הרצאה מס 3 ינון רפופורט חלק 1 משפט בנית הנושא.
בשעור הקודם הגדרנו את מושג השטף החשמלי השטף החשמלי דרך משטח A הוא כמות קווי השדה שעוברת דרך המשטח.
מבוא לסימולציות: מערכות בקרה
תורות עם שוויון. תהי Гתורה מעל שפה שמכילה יחס בינרי =. אנו נכתוב s  t במקום ~s = t. Г נקראת תורה עם שוויון אם הנוסחאות הבאות הן משפטים של Г: A6. הרפלקסיביות.
פוטנציאל חשמלי בטיול בפרק הלאומי של הסיקוויה מישהו נוכח ששערות בת הלוויה שלו סומרות. הוא צילם אותה. חמש דקות אחר כך פגע ברק במקום הזה הרג מבקר ופצע שבעה.
משוואות מקסוול וגלים אלקטרומגנטיים
אופציות מה נלמד? מושגים בסיסיים באופציות אסטרטגיות השקעה בסיסיות
ניתוח תחבירי (Parsing) של דקדוקי LR(1)
מבני נתונים 08 מיון.
מימון ד"ר זיו רייך , רו"ח.
Confidence intervals based on bootstrap “tables”
Καθηγητής Σιδερής Ευστάθιος
מבני נתונים ויעילות אלגוריתמים
גודל פיזיקאלי סקלרי אינו תלוי בכיוון
בס"ד אינטגרלים משולשים (והחוט המשולש לא במהרה יינתק)
מבני נתונים ויעילות אלגוריתמים
תקשורת אלקטרו-אופטית מרצה: רועי עמרם.
בהנחיית פרופ' עוזי אורנן
ניהול הייצור למערכות מידע – ניהול האיכות, תרשימי בקרה
שירטוט מערכות אופטיות בסיסיות
ניהול הייצור למערכות מידע תרגול – ניהול פרוייקטים
שעור 4 השלמות בתרשימי בקרה תרשימי C תרשימי U עקרונות הדגימה: מושגים
אופציות מה נלמד? מושגים בסיסיים באופציות אסטרטגיות השקעה בסיסיות
גישת תיק השקעות גיוון.
מדיניות תעסוקה בישראל ערביי ישראל פורום ספיר 4 נובמבר 2010
היבט כולל על הדואליות בין קינמטיקה וסטטיקה
אנימציה2: המתכת אבץ בתמיסת יוני נחושת
בקרה במכונות מושגי יסוד תרשים מלבנים חוג פתוח/סגור משתנה מבוקר/מבקר
בקרת ביטוי גנים בפרוקריוטיים
הרצאה 7 מבוא לסטטיסטיקה התפלגות נורמלית
גלגול, פיתול ותנע זוויתי
אולימפיאדה צעירה ע"ש אילן רמון שלב ג' 2013
10. תכנות לוגי ב-Datalog שקפים: אלדר פישר
ליאור שפירא, חיים קפלן וחברים
גלים אלקטרומגנטיים.
תורת התורים תיאור חלקי עולם כרשתות של תורים לצורך: יישומים: הבנה
אורך, היקף, שטח ונפח.
השוואה בין מחלקות.
נושא 4: זרם חילופין.
ספקטרוסקופיה ואפקט החממה
תורת הגרפים.
מדדים בית ספריים לניבוי אפקטיביות ההטמעה של טכנולוגיות חדשניות:
מתוך "טעם של כימיה" מזון למחשבה שומנים ושמנים
סימולציה- קוטביות מולקולות סימולציה- צורות מולקולה
מבני נתונים ויעילות אלגוריתמים
מבני נתונים ויעילות אלגוריתמים
זרם חילופין AC.
גלאי FM באפנון FM משתנה תדר הגל הנושא ע"י המשרעת של אות המידע, בעוד שהמשרעת של הגל הנושא נשארת קבועה. גלאי FM צריך לזהות את שינויי התדר ולהפוך אותם לשינויי.
בניית רובוט במבנה משולש הנשלט ע"י מחשב כף יד
מטוס נוסעים A380.
אלגוריתם סנכרון למערכות OFDMA
אנרגיה בקצב הכימיה פרק א'
סדרה סופית של תשלומים קבועים :
72120 – ביוכימיה של התא מנגנוני קטליזה אנזימתית - כימוטריפסין
שומנים ושמנים.
Η έννοια της δύναμης Οι δυνάμεις προκαλούν μεταβολή στην ταχύτητα
Προσέγγιση στην επαλληλία των κινήσεων
Μεταγράφημα παρουσίασης:

בדיקת מונוטוניות של פונקציות בוליאניות Oded Goldreich, Shafi Goldwasser, Eric Lehman, Dana Ron, and Alex Samorodnitsky עמית ויסמן אסף זריצקי בדיקת מונוטוניות של פונקציות בוליאניות

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

מונוטוניות של פונקציות בוליאניות עבור x = (x1…xn),y = (y1…yn)  {0,1}n, נסמן x ‹ y אם לכל i xi  yi, וקיים i כך ש- xi<yi f :{0,1}n{0,1} תקרא מונוטונית אם f (x)  f (y) לכל x ‹ y בדיקת מונוטוניות של פונקציות בוליאניות

דוגמא – פונקציה מונוטונית (f1) ? f1 (0000) = 0 f1 (0001) = 1 f1 (0010) = 0 f1 (0011) = 1 f1 (0100) = 0 f1 (0101) = 1 f1 (0110) = 0 f1 (0111) = 1 f1 (1000) = 0 f1 (1001) = 1 f1 (1010) = 0 f1 (1011) = 1 f1 (1100) = 0 f1 (1101) = 1 f1 (1110) = 0 f1 (1111) = 1 בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות f1 – יחס סדר חלקי 1 1111 0111 1011 1101 1110 0101 1001 0110 0011 1010 1100 0001 0010 0100 1000 0000 בדיקת מונוטוניות של פונקציות בוליאניות

דוגמא – פונקציה לא מונוטונית (f2) בדיקת מונוטוניות של פונקציות בוליאניות

f2 – לא מקיימת תכונת סדר חלקי 1 1111 0111 1011 1101 1110 0101 1001 0110 0011 1010 1100 0001 0010 0100 1000 0000 בדיקת מונוטוניות של פונקציות בוליאניות

מרחק של פונקציה ממונוטוניות בהינתן f , g:{0,1}n {0,1} נסמן ב-dist(f,g) את החלק היחסי של הקלטים שערכי f ו-g בהם שונים. נסמן ב-εM(f) את המרחק של f לקבוצת הפונקציות המונוטוניות: נאמר ש-f ε -רחוקה מלהיות מונוטונית אם  ε εM(f) בדיקת מונוטוניות של פונקציות בוליאניות

דוגמא: f1 , f2 (מרחק מ- פונקציה/מונוטוניות) הפעם:dist(f1,f2) = εM(f) = 1/16 אם ε = 1/20 אזי f2 ε-רחוקה מלהיות מונוטונית בדיקת מונוטוניות של פונקציות בוליאניות

אלגוריתם "בוחן מונוטוניות" אלגוריתם A יקרא "בוחן מונוטוניות" אם על פונקציה מונוטונית יענה "כן" בהסתברות  2/3, ועל פונקציהε -רחוקה ממונוטונית יענה "לא" בהסתברות  2/3 נראה אלגוריתם אקראי בוחן מונוטוניות שסיבוכיות זמן הריצה ומספר השאילתות שלו הוא O(n/ε) מה האלגוריתם המתבקש ע"פ ההרצאות הקודמות? בדיקת מונוטוניות של פונקציות בוליאניות

ניסיון ראשון: בדיקת מונוטוניות בעזרת דוגמאות אקראיות טענה 1: עבור ε = O(n2/3), כל אלגוריתם "בוחן מונוטוניות" שמשתמש בדוגמאות אקראיות חייב להשתמש בלפחות O(2n/ ε) אינטואיציה: יש הרבה זוגות קלטים שאינם ברי-השוואה מסקנה: סיבוכיות בוחן מונוטוניות שמשתמש בדוגמאות שנבחרו בצורה אחידה ובלתי-תלויה גבוה בהרבה מ-O(n/ε) בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות האלגוריתם קלט: n, ε , וגישה של אוב לפונקציה f :{0,1}n {0,1} חזור על שלבים 1-3 n/ ε 2 פעמים 1. בחר באקראי x = x1x2x3…xn {0,1}n , i {1,….,n} 2. חשב את y ע"י הפיכת הביט ה-i ב-x 3.אם x,y,f(x),f(y) מהווים דוגמא לאי-מונוטוניות – החזר "לא“ אם הגעת לסוף הלולאה ללא דחייה, החזר "כן" בדיקת מונוטוניות של פונקציות בוליאניות

הרעיון מאחרי האלגוריתם הרעיון העיקרי של האלגוריתם הוא שבעזרת בדיקה מקומית אקראית (צעד 3) ניתן לבסס את ההשערה לגבי קיום של תכונה גלובלית (מרחק f מקבוצת הפונקציות המונוטוניות) בדיקת מונוטוניות של פונקציות בוליאניות

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

בדיקת מונוטוניות של פונקציות בוליאניות סימונים והגדרות הגדרה: זוג (x,y) , x,y {0,1}n עם מרחק Hamming שווה ל-1 (שונים בביט יחיד) שלא מקיים את תכונת המונוטוניות תחת f (כלומר(x ‹ y & f(x) > f(y) יקרא "זוג פושע תחת f" סימון: {x ‹ y ושונים בביט יחיד :(x,y)}U = , קבוצת "הזוגות השכנים" סימון: { (x,y) זוג פושע תחת f :(x,y)}Ucrime(f) = , קבוצת הזוגות הפושעים תחת f סימון: נסמן ב-M(f) את החלק היחסי של קבוצת הזוגות הפושעים ב-U (©Enav&Yinnon) בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות דוגמא: f2 (Ucrime , M) |U| = ½ • 2n • n = 32 Ucrime = {(1000,1010) , (1000,1100)} M(f) = 2/32 = 1/16 1 1111 1 1 1 0111 1011 1101 1110 1 1 1 0011 0101 0110 1001 1010 1100 1 1 0001 0010 0100 1000 0000 בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות טענה 2 לכלf :{0,1}n {0,1} מתקיים: נניח שהוכחנו את הטענה... בדיקת מונוטוניות של פונקציות בוליאניות

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

האלגוריתם הוא "בוחן מונוטוניות" אם f מונוטונית אז ברור שהאלגוריתם מחזיר "כן" בהסתברות 1 מה קורה כאשר f ε-רחוקה ממונוטונית? ההסתברות להגריל "זוג פושע" בניסיון יחיד = M(f) ההסתברות לא להגריל "זוג פושע" בניסיון יחיד = 1 - M(f) ההסתברות שהאלגוריתם יענה "כן" = טענה 2  ε εM(f)  0    1 (1 – )1/ < 1/e בדיקת מונוטוניות של פונקציות בוליאניות

נקפוץ ישר למים... (הוכחת טענה 2) בדיקת מונוטוניות של פונקציות בוליאניות

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

הרעיון מאחרי הוכחת טענה 2 נשתמש בטכניקה שלshifting (הזזה) של פונקציות בוליאניות – שינוי של ערך הפונקציה על חלק מהקלטים "נזיז" את הפונקציה כדי להפוך אותה למונוטונית, ונספור את מספר השינויים שנעשו (מספר הקלטים שערך הפונקציה עליהם השתנה) נשתמש בקשר בין מספר השינויים למרחק של הפונקציה לקבוצת הפונקציות המונוטוניות בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות קווים להוכחת טענה 2 לפי הגדרת εM(f), מספר השינויים חייב להיות לפחות εM(f)•2n, מצד שני, נחסום מלמעלה את מספר השינויים ע"י M(f) • 2n • n ומכאן נקבל את החסם: M(f) • 2n • n  מס' שינויים  εM(f)•2n ולכן, בדיקת מונוטוניות של פונקציות בוליאניות

הגדרות: מונוטוניות במימד/ים לכל i {1,…,n}, נאמר כי f מונוטונית במימד i, אם לכל  {0,1}i-1, ו-  {0,1}n-i מתקיים f (0)  f (1) לכל T{1,…,n}, נאמר כי f מונוטונית במימדים T, אם לכל i  T, f מונוטונית במימד i בדיקת מונוטוניות של פונקציות בוליאניות

דוגמא: f2 (מונוטוניות במימד) בדיקת מונוטוניות של פונקציות בוליאניות

הגדרה: אופרטור הזזה במימד נגדיר אופרטור הזזה Si שמעביר כל פונקציה f לפונקציה Si(f) שמונוטונית במימד ה-i: לכל i {1,…,n} הפונקציה Si(f):{0,1}n{0,1} מוגדרת כנ"ל: לכל  {0,1}i-1, ולכל  {0,1}n-i, אם f (0) > f (1) אזי: Si(f) (0) = f (1) Si(f) (1) = f (0) אחרת: Si(f) = f על הקלטים 0, ו- 1 בדיקת מונוטוניות של פונקציות בוליאניות

דוגמא: f2 (אופרטור הזזה במימד) S1(f2) = f2 S3(f2)(1000) = 0, S3(f2)(1010) = 1 S3(f2) מונוטונית במימד 3 בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות סימון: Di(f) נסמן ב- Di(f) את מספר הקלטים ש-Si משנה את f עליהם, Di(f) = |{x: Si(f)(x)  f(x)}| נשים לב: 1. (מס' הזוגות הפושעים ב- Ucrime ששונים בביט ה-i) Di(f) = 2 • 2.  i=1,…,n Di(f) = 2 • |Ucrime| בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות למה 3 לכל f :{0,1}n {0,1} , ו-j {1,…,n} מתקיים: אם f מונוטונית במימדים T{0,…,n} אזי Sj(f) מונוטונית במימדים T{j} לכל 1  i  j  n, Di(Sj(f))  Di(f) נשים לב שאם החלק השני של הלמה מתקיים אז גם החלק הראשון: אם f מונוטונית במימדים T, ו-  T i אזי לפי החלק השני, Di(Sj(f))  Di(f) = 0  Sj(f) מונוטונית במימדים T{j} לשם הנוחות נוכיח את שני החלקים בנפרד בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות דוגמא: S4(S3(S2(S1(f2)))) f2 (0000) = 0 f2 (0001) = 1 f2 (0010) = 0 f2 (0011) = 1 f2 (0100) = 0 f2 (0101) = 1 f2 (0110) = 0 f2 (0111) = 1 f2 (1000) = 0 f2 (1001) = 1 f2 (1010) = 0 f2 (1011) = 1 f2 (1100) = 1 f2 (1101) = 1 f2 (1110) = 0 f2 (1111) = 1 S1(f2) = f2 S2(S1(f2)) בדיקת מונוטוניות של פונקציות בוליאניות

דוגמא: S4(S3(S2(S1(f2)))) (המשך) פונקציה מונוטונית בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות דוגמא לריצה של התהליך 1 1 1111 1 1 1 0111 1011 1101 1110 1 1 1 0011 0101 0110 1001 1010 1100 1 1 0001 0010 0100 1000 0000 נפעיל את S1(f) ללא שינוי נפעיל את S2(S1(f)) בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות דוגמא לריצה של התהליך 2 1 1111 1 1 1 0111 1011 1101 1110 1 1 1 1 0011 0101 0110 1001 1010 1100 1 0001 0010 0100 1000 0000 נפעיל את S3(S2(S1(f))) בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות דוגמא לריצה של התהליך 3 1 1111 1 1 1 1 0111 1011 1101 1110 1 1 1 0011 0101 0110 1001 1010 1100 1 0001 0010 0100 1000 0000 נפעיל את S4(S3(S2(S1(f))) ) ללא שינוי סה"כ 4 שינויים עד לפונקציה מונוטונית בדיקת מונוטוניות של פונקציות בוליאניות

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

בדיקת מונוטוניות של פונקציות בוליאניות הוכחת טענה 2 בעזרת למה 3 תהי g = Sn(Sn-1(…(S1(f))…)). מהחלק הראשון של הלמה g מונוטונית, ולכן εM(f) dist(f,g)  (1) מהחלק השני של הלמה: Di(Si-1(…(S1(f))…))  Di(Si-2(…(S1(f))…))  …  Di(f) (2) לכן, (3) dist(f,g)  2-n i=1,…,n Di(Si-1(…(S1(f))…))  2-n  i=1,…,n Di(f) הראנו מעבר ל-g (2) בדיקת מונוטוניות של פונקציות בוליאניות

הוכחת טענה 2 בעזרת למה 3 (המשך) (3) &   i=1,…,n Di(f)  dist(f,g) • 2n  εM(f) • 2n (4) מהגדרת Di(f):  i=1,…,n Di(f) = 2 • |Ucrime| = 2 • M(f) • |U| = M(f) • 2n • n (5) (4) & (5)  M(f) • 2n • n  εM(f) • 2n  מ.ש.ל בדיקת מונוטוניות של פונקציות בוליאניות

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

בדיקת מונוטוניות של פונקציות בוליאניות הוכחת למה 3 – אבחנה חשובה לכל i, i  j, השינויים שנגרמים במימד ה i של f בעקבות ההפעלה של Sj לא קשורים לשאר המימדים. בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות הוכחת למה 3 – חלק 1 ברור ש-Sj(f) מונוטונית במימד j. נראה ש-Sj(f) מונוטונית לכל i  T: נקבע i  T, נניח בה“כ ש-i < j. נקבע  {0,1}i-1,  {0,1}j-i-1, ו-  {0,1}n-j. נגדיר: f `(x,y) = f ( x  y ) x,y {0,1} ברור ש-f ` מונוטונית במימד 1 (i). צ"ל שגם S2(f `) נתבונן במטריצה בגודל 2x2 מעל {0,1}, שערך התא (x,y) שווה ל-f `(x,y) i j בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות הוכחת למה 3 – חלק 1 (המשך) כעת ניתן לתרגם את חלק 1 לטענה שקולה: אם ממיינים את השורות של מטריצה בגודל 2x2 מעל {0,1} כאשר העמודות כבר ממויינות מלכתחילה, אזי העמודות נשארות ממויינות. הוכחה: בדיקת כל האפשרויות הערה: קיימת גם הוכחה מוכללת לגבי מטריצות בגודל dxd מעל {0,1} בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות הוכחת למה 3 – חלק 2 נקבע i,j,,, כמו מקודם, f ` תוגדר כמו קודם. וצריך להראות ש- D2(S1(f `))  D2(f `). כעת חלק 2 שקול לטענה: אם ממיינים את העמודות של המטריצה מחלק 1, אזי מספר השורות הלא-ממויינות לא יכול לגדול (מס' השורות הלא ממויינות D2 = 2 •) הוכחה: בדיקת כל האפשרויות הערה: קיימת גם הוכחה מוכללת לגבי מטריצות בגודל dx2 מעל {0,1} ( הטענה שקרית למטריצה dxd מ d 4 מעל{0,1} ולמטריצות 2x2 לא בינאריות) מ.ש.ל בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות טענה 4 לכל f :{0,1}n{0,1} , εM(f)  M(f)/2 מסקנה: הערה: אפשר להגיע גם לחסם מלעיל וגם לחסם מלרע (עד לפקטור קבוע) בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות הוכחת טענה 4 נקבע f ונתבונן בקבוצת "הזוגות הפושעים" Ucrime על מנת להפוך את f למונוטונית עלינו לעדכן אותה על לפחות קלט אחד בכל "זוג פושע" מכיוון שכל מחרוזת "משתתפת" בלכל היותר n "זוגות פושעים" מספר הקלטים שחייבים לשנות (εM(f) • 2n) הוא לפחות: ולכן, בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות הוכחת חסם תחתון נראה שאם ε=O(n-1.5) אזי כל בודק מונוטוניות שמשתמש בבדיקות אקראיות בלבד משתמש בלפחות (2n/ε) בדיקות כאלה הגדרת "גרף שכבות " בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות בניית "התאמות" נסתכל על שתי שכבות k ,k-1 כך ש- k=(n+1)/2 גודל השכבות : (n-0.5*2n)  נסמן ב-M התאמה בין השכבה הקטנה לתת קבוצה של השכבה הגדולה יותר M={(vi,ui):i=1….t} Lk-1 X Lk t = | Lk-1| 0111 1011 1101 1110 0101 1001 0110 0011 1010 1100 1 בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות בניית "התאמות" נבחר תת קבוצה של ההתאמה M , ={(vij,uij)} M` כך שאין צלעות בגרף המקורי בין זוגות הקודקודים vik,uij עבור kj. כל צלע ב – M` "פוסלת " לכל היותר (k-1)+(n-(k-1)+1) < n צלעות בהתאמה M המקורית ולכן |M`|  t/n = (n-1.5*2n) נבנה התאמה M`` על ידי קיצוץ M` עד לגודל 2* ε *2n נחלק את M`` לשתי קבוצות שוות A , B 1 1 1 0111 1110 0011 1010 0111 1101 1110 1001 0011 1010 1100 1 0111 1011 1101 1110 0101 1001 0110 0011 1010 1100 1 0111 1101 1110 1001 1011 0101 0110 0011 1010 1100 1 בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות הגדרת "משפחות" בעזרת M`` נגדיר שתי משפחות של פונקציות . 1.פונקציה f במשפחה הראשונה מוגדרת כך : עבור כל (v,u)  A נגדיר f(v)=1 f(u) = 0 עבור כל (v,u)  B נגדיר f(v)=0 f(u) = 1 עבור x כך ש- w(x)  k f(x) = 1 עבור x כך ש- w(x)  k-1 f(x) = 0 2. פונקציה f במשפחה השנייה מוגדרת כך : עבור כל (v,u)  A נגדיר f(v)=1 f(u) = 1 עבור כל (v,u)  B נגדיר f(v)=0 f(u) = 0 בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות משפחה 1 משפחה 2 1 1 1111 1111 1 1 1 1 1 1 0111 1011 1101 1110 0111 1011 1101 1110 1 1 0011 0101 0110 1001 1010 1100 0011 0101 0110 1001 1010 1100 0001 0010 0100 1000 0001 0010 0100 1000 0000 A B 0000 קל לראות שכל פונקציה במשפחה השניה היא מונוטונית , וכל פונקציה במשפחה הראשונה היא εM(f) = |B|/2n בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות למה זה טוב ? נוכיח את החסם שלנו ע"י כך שנראה שכל אלגוריתם שבוחר o(|B|) דוגמאות לא יכול להבחין בין פונקציה מהמשפחה הראשונה (רחוקה מספיק מהפונקציה המונוטונית הקרובה ביותר אליה - כזו שהוא צריך לדחות בסבירות של 2/3) ובין פונקציה מהמשפחה שניה (פונקציה מונוטונית שהוא צריך לקבל בסבירות של 2/3) . בדיקת מונוטוניות של פונקציות בוליאניות

איך נוכל להטעות את האלגוריתם ? נבחר בצורה אקראית אחידה פונקציה מכל משפחה ונפעיל כל אחת מהפונקציות על סידרה של qמחרוזות . ההבדל בין התוצאות שנקבל מהפעלת כל פונקציה על המחרוזות תלוי בבחירת B (מתוך M``/2 אפשרויות) ובחירת המחרוזות . ההבדל יהיה רק בתוצאות של מחרוזות שיש ביניהן צלע / התאמה ב – M`` . הסבירות לזה היא q מעל 2 כפול הסבירות שזוג ספציפי מופיע ב- M`` (שהיא |M``|/22n ) . לכן אם נבחר q < 2n/3|M``| נקבל שההבדל בין שתי הבחירות יהיה קטן מ 1/6 ולכן האלגוריתם ייכשל . בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות הכללת הבעיה והפתרון פונקציה שאינה בוליאנית→{1,…,d} f(x):{0,1}n פונקציה על תחום שאינו בינארי   x ו- |  |= n במקום לחפש מונוטוניות, נחפש unateness של הפונקציה. פונקציה שלכל i מתקיים בדיוק אחד התנאים הבאים : 1.כאשר הביט ה-i מתחלף מ-0 ל-1 ערך הפונקציה לא יורד . 2. כאשר הביט ה i מתחלף מ 1 ל 0 ערך הפונקציה לא יורד . (מונוטוניות היא מקרה פרטי של unateness ) בדיקת מונוטוניות של פונקציות בוליאניות

בדיקת מונוטוניות של פונקציות בוליאניות