פונקציה פרימיטיבית רקורסיבית – הבדלי גרסאות

מתוך ויקיפדיה, האנציקלופדיה החופשית
תוכן שנמחק תוכן שנוסף
יישור קו עם פונקציה רקורסיבית
Felagund-bot (שיחה | תרומות)
בוט - מחליף 'דוגמא' ב'דוגמה', 'פונקצית' ב'פונקציית'
שורה 4: שורה 4:
:<math>\
:<math>\
s(x) = x+1
s(x) = x+1
</math> -פונקצית העוקב.<br />
</math> -פונקציית העוקב.<br />
:<math>\
:<math>\
n(x) = 0
n(x) = 0
</math> -פונקצית האפס.<br />
</math> -פונקציית האפס.<br />
:<math>\
:<math>\
s_n^i(x_1, ... , x_{i-1}, x_i, x_{i+1}, ... , x_n) = x_i
s_n^i(x_1, ... , x_{i-1}, x_i, x_{i+1}, ... , x_n) = x_i
</math> -פונקצית ההטלה לרכיב ה-i.<br />
</math> -פונקציית ההטלה לרכיב ה-i.<br />
ובנוסף סגורה לפעולות של [[הרכבה של פונקציות]], ורקורסיה פרימיטיבית. כאשר הרקורסיה הפרימיטיבית היא בעצם הגדרת פונקציה חדשה באמצעות הגדרתה על נקודת התחלה באמצעות פונקציה רקורסיבית פרימיטיבית, ותיאור ההתקדמות שלה באמצעות פונקציה רקורסיבית פרימיטיבית אחרת:<br>
ובנוסף סגורה לפעולות של [[הרכבה של פונקציות]], ורקורסיה פרימיטיבית. כאשר הרקורסיה הפרימיטיבית היא בעצם הגדרת פונקציה חדשה באמצעות הגדרתה על נקודת התחלה באמצעות פונקציה רקורסיבית פרימיטיבית, ותיאור ההתקדמות שלה באמצעות פונקציה רקורסיבית פרימיטיבית אחרת:<br>
אם <math>\ f: \N^k \rightarrow \N</math> ו-<math>\ g: \N^{k+2} \rightarrow \N</math> פונקציות פרימיטיביות, אז הפונקציה <math>\ h: \N^{k+1} \rightarrow \N</math> שמוגדרת ב[[רקורסיה]]:
אם <math>\ f: \N^k \rightarrow \N</math> ו-<math>\ g: \N^{k+2} \rightarrow \N</math> פונקציות פרימיטיביות, אז הפונקציה <math>\ h: \N^{k+1} \rightarrow \N</math> שמוגדרת ב[[רקורסיה]]:
שורה 39: שורה 39:
קיימים קשרים מעניינים ביותר בין פונקציות פרימיטיביות רקורסיביות, ו[[פונקציה רקורסיבית|פונקציות רקורסיביות]]. בפרט, ניתן להראת שאם פונקציה היא רקורסיבית, ועוצרת תמיד לאחר מספר ידוע של צעדים (שחסום על ידי פונקציה פרימיטיבית רקורסיבית), אזי היא גם פרימיטיבית רקורסיבית.
קיימים קשרים מעניינים ביותר בין פונקציות פרימיטיביות רקורסיביות, ו[[פונקציה רקורסיבית|פונקציות רקורסיביות]]. בפרט, ניתן להראת שאם פונקציה היא רקורסיבית, ועוצרת תמיד לאחר מספר ידוע של צעדים (שחסום על ידי פונקציה פרימיטיבית רקורסיבית), אזי היא גם פרימיטיבית רקורסיבית.


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


[[קטגוריה:סיבוכיות]]
[[קטגוריה:סיבוכיות]]

גרסה מ־15:53, 13 ביולי 2006

הגדרה

מחלקה של פונקציות, בתורת החישוביות, נקראת סגורה תחת רקורסיה פרימיטיבית (PRC), אם היא מכילה את הפונקציות התחיליות:

-פונקציית העוקב.
-פונקציית האפס.
-פונקציית ההטלה לרכיב ה-i.

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

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

דוגמאות

מכיוון שמחלקת הפונקציות הפרימיטיביות רקורסיביות חלקית או שווה לכל מחלקת פונקציות PRC, ומכיוון שמחלקות פונקציות רבות ומעניינות הן PRC, נוח למצוא פונקציות שנמצאות במחלקת הפונקציות הפרימיטיביות רקורסיביות, ולהראות בכך שהן נמצאות בכל מחלקת פונקציות PRC.

פונקציות כאלו הן, למשל:




כלומר, ניתן להראות שכל אחת מהן מתקבלת מהרכבה, ורקורסיה, של הפונקציות התחיליות, ומכך נובע שכל אחת מהן נמצאת במחלקת הפונקציות הפרימיטיביות רקורסיביות. כך נקבל שכל אחת מהן נמצאת בכל מחלקת פונציות PRC.

שימושים

בהוכחות מתמטיות הדבר יכול להיות שימושי ביותר.

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

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

קשר למודלים חישוביים שונים

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

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