שאלת מבחן במבני נתונים - אוניברסיטת בר-אילן 2013 - סיבוכיות זמן

נתון משדר לא ממוןין על מספרים טבעיים. בצורתונו לזידרה על בסיס העמוקות ש חישוב בינו לזירויות מדוקדק שהאינדקס מיוצור לזירות מדוקדק. שהרח"אח מעקב אינדקסים שהם אינדקס מדוקדק לדעות זרך .
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
אוניברסיטת בר-אילןמועד א2013סמסטר ב
סיבוכיות זמןסימון אסימפטוטיחסם תחתון למיוןרדוקציה
הראו כיצד ניתן לפתור את בעיית בדיקת ייחודיות האיברים (Element Uniqueness), שלה חסם תחתון ידוע, באמצעות אלגוריתם המוצא את זוג האיברים עם ההפרש המינימלי.
נוכיח את החסם התחתון הנדרש באמצעות רדוקציה מבעיית בדיקת ייחודיות האיברים (Element Uniqueness).

1. הגדרת הבעיות:
* בעיית הזוג עם ההפרש המינימלי: בהינתן מערך
של מספרים, יש למצוא זוג אינדקסים $i
eq j
|A[i] - A[j]|$ הוא מינימלי אך גדול מאפס. אם כל האיברים זהים, אין פתרון.
* בעיית בדיקת ייחודיות (Element Uniqueness): בהינתן מערך
של מספרים, יש לקבוע האם כל האיברים ב- שונים זה מזה.

2. החסם התחתון של בעיית בדיקת הייחודיות:
ידוע כי לבעיית בדיקת הייחודיות יש חסם תחתון של
במודל עץ ההחלטה (אלגוריתמים מבוססי-השוואות). כלומר, כל אלגוריתם מבוסס-השוואות הפותר בעיה זו דורש לפחות השוואות במקרה הגרוע.

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

4. בניית אלגוריתם לבדיקת ייחודיות:
נבנה אלגוריתם, נקרא לו
, המשתמש ב- כתת-שגרה:
* קלט: מערך
בגודל .
* שלב 1: קודם כל, נבדוק אם קיימים איברים זהים. ניתן לעשות זאת על ידי מיון המערך והשוואת איברים סמוכים, דבר הדורש
. אך אנו רוצים להשתמש ברדוקציה. נניח ש- יודע להתמודד עם איברים זהים ולהחזיר הפרש 0. הרץ את האלגוריתם על הקלט . נסמן את ההפרש המינימלי שהוחזר ב-.
* שלב 2: אם האלגוריתם
מצא זוג איברים זהים, ההפרש המינימלי יהיה . אם כל האיברים שונים, ההפרש המינימלי יהיה . לכן:
* אם
, זה אומר שקיים זוג כך ש-. במקרה זה, לא כל האיברים ייחודיים. החזר "לא ייחודי".
* אם
, זה אומר שלכל זוג מתקיים . במקרה זה, כל האיברים ייחודיים. החזר "ייחודי".

5. ניתוח סיבוכיות וסתירה:
האלגוריתם
שבנינו מורכב מהרצת (בזמן לפי ההנחה) וביצוע בדיקה אחת (בזמן ). הסיבוכיות הכוללת של היא .
מהנחת השלילה,
, ולכן גם הסיבוכיות של היא .
בנינו אלגוריתם הפותר את בעיית בדיקת הייחודיות בסיבוכיות
, מה שמהווה סתירה לחסם התחתון הידוע של הבעיה שהוא .
מכאן שההנחה הראשונית שלנו שגויה. לא ייתכן שקיים אלגוריתם הפותר את בעיית מציאת ההפרש המינימלי בסיבוכיות טובה יותר מ-
.
לפיכך, כל אלגוריתם מבוסס-השוואות לבעיה זו דורש לפחות
השוואות.