- שנה: 1988
- מחבר: בלה צירולניקוב
- מו"ל: הוד-עמי
- פורמט: ספר
- נמסר ע"י: הוצאת הוד-עמי
- תגיות: בינה מלאכותית תכנות
OCR (הסבר)
ה 4 -- . |
| 0 0
- ,
.-. 1] 4
הי יבי וצ ו 1
2 |
דיר בלה צירולניקוב
| 7 כ % ספרי לימוד והכשרה במדעי המחשב
/ > .4 הוצאתָּ הודדעמי לספרי מחשבים- *
פרולוג
שפת
בינה מלאכותית
תודה ליונתן קורפל ואדי סער ממכקקלת ""קדטיי על עזרתם.
עריכה: יצחק עמיהוד
עריכה לשונית: גילי דיין-פרל
הכנה והבאה לדפוס: זהר עמיהוד
עיבוד תמלילים: |1]א6זס/ - אינטרסופט בעיימ
הרצת תכניות: 280 655חו5ט11-8 באדיבות המחלקה לבינה מלאכותית, טקסל
אלקטרוניקה בעיימ
6ץ-אתן
סדר צילום: אל-אות בעיימ
הדפסת לייזר: 1.27-11 חסחג) באדיבות קרט בע'ימ
לוחות: סיט שרותי אופסט 8 266075
דפוס: חידקל בעיימ
תמונות השער, צ'רלי ו-95/2 באדיבות יבמ ישראל בע'ימ
5 הינו סימן רשום של חסוזגזסקז0 5011סזסו]א
8 אההינו סימן רשום של [4ּחסוזהחז16ח] סחהוזסם
א0פ!100 0108ז00-0ז170 הינו סימן רשום של |החסוזהחזסזחו 6חגּ!זסם
הינו סימן רשום של 15ח0וחג0ח051ח1 85א6ך
₪ ]א הינו סימן רשום של פזחסוח0510ח1 85א6ך
0 פ5פםא1-8151ד הינו סימן רשום של ח6וחטזז5ח1 5הא6ד
0 וח6ו5ץ5 26 הינו סימן רשום של חסווגזסקזס) זחטוחקוטףם ופוס
17/דא/0ק-1א8] הינו סימן רשום של 65ח1ח136/ 655חופטם |החסוזהחזסוח] - ואםז
0-0 5/ הינו סימן רשום של מקסבייט תוכנת מחשבים בע''מ
פרולוג
שפת
בינה מלאכותית
ד''ר בלה צירולניקוב
ערך יצחק עמיהוד
ספרי לימוד והכשרה במדעי המחשב
הוצאת הוד-עמי לספרי מחשבים
ןי
1 6שהטפחה.] 76
6 11110131
עט
צסאות]טתוד 0618 .תס
בונ / .1 עס 66460
5
כל הזכויות שמורות
הוצאת הוד-עמי
לספרי מחשבים בעיימ
ת.ד. 560, רמת-גן 52105
טל. המשרד: 052-541207
אין להעתיק ספר זה או קטעים
ממנו בשום צורה ובשום אמצעי
אלקטרוני או מכני, לרבות צילום
והקלטה, ללא אישור בכתב מאת
ההוצאה, אלא לשם ציטוט קטעים
קצרים בציון שם המקור
הודפס בישראל
שבט תשמ''ח, ינואר 1988
0 פזחפוה |
וו /-1100
5 ח028)-181ח3 560 .0.3 ק
8 עזהטת13 ,,1 ה 158
על הספר
חקר הבינה המלאכותית התחיל עוד לפני המצאת המחשב האלקטרוני. המחשב היה הכלי
לקידום מחקר זה. בשנים האחרונות המחקר בבינה מלאכותית צבר תנופה עם התקנת
היישומים המעשיים הראשוניים. נזכיר כמה משטחי היישום הקיימים, או הנמצאים
בשלבי מחקר מתקדמים: מערכות שאילתות בשפה הטבעית, מערכות קולטות דיבור,
מערכות ראייה, רובוטים, ומערכות מומחה ברפואה, בתעשייה ובניהול. אלו הן מקצת
הדוגמאות להיקף הפעילות בתחום ולחשיבותו.
עדות נוספת לחשיבות שמייחסים לנושא הבינה המלאכותית הינה התכנית רחבת ההיקף
הנתמכת ע''י ממשלת יפן. היא הקימה קונסורציום של חברות גדולות למימון המחקר
ומכון ממשלתי מיוחד להכוונתו ולריכוז המאמצים. המטרה שהוגדרה היא יצירת מחשבים
מן ''הדור החמישיי' - מחשבים בעלי אינטליגנציה מלאכותית. ממשלות רבות באירופה
הלכו בעקבות יפן ויזמו תכניות דומות, אם כי שאפתניות פחות.
כל העוסק בבינה מלאכותית ובמערכות מומחה חייב להיות מצוי בשתי השפות
המקובלות ביותר בתחום זה, ?115 ו801.007ק. 115 ימיה כימי העיסוק בבינה
ממוחשבת והשימוש בה נרחב ביותר. 801.06 (תיכנות בלוגיקה), בת שנים מספר
בלבד, אך כבר רכשה לה אוהדים ומשתמשים רבים מפאת היותה מתאימה במיוחד לרבים
מהיישומים שהוזכרו. השימוש בפרולוג טבעי ונוח ביותר. התכנית היפנית למחשבי הדור
החמישי אף בחרה בפרולוג כשפת מחשבים אלה.
על כן, יש לברך על הופעתו של ספר פרולוג ראשון בעברית, פרי עטה של דייר
ב. צירולניקוב ובעריכתו של י. עמיהוד.
המחברת עשתה עבודה יסודית בריכוז החומר ובהצגתו בצורה מובנית ונוחה ללימוד. היא
מתחילה בהדרכה לדרך חשיבה לוגית ודנה במשמעות של תיכנות לוגי, עוברת להדרכת
התיכנות בשפת פרולוג בסביבה של פרולוג מסוימת ומסיימת בהנחייה לפיתוח מערכות
מומחה בתחומים שונים.
לקורא ניתנת הנחייה והכוונה, אשר יאפשרו לו להמשיך את שלבי הלימוד וההכשרה
באמצעות ספרי ההדרכה של גירסאות הפרולוג המסופקות ע''י היצרנים. התיאור של
סביבות עבודה דוגמת 01)00אק-]א0כ15/צ ,01000אק-80א11 ואחרות מכוון
למטרה זו.
המחברת מלווה את ההסברים בדוגמאות קלסיות מן הספרות ובדוגמאות הלקוחות מחיי
היום יום כמו למשל, ניתוח דבריהם של נואמים, תוכנה לימודית, מערכת מומחה לזיהוי
בעלי-חיים, ועוד. בכל פרק ניתנים תרשימים, תרגילים פתורים מלווים בהסברים, הדפסי
מחשב (1866) ותרגילים נוספים לחזרה ושינון.
ספר לימוד זה ממלא חלל גדול בחומר כתוב עברית בתחום הנושאים של בינה מלאכותית.
בכך אין ספק שהוא יתרום להעלאת רמת המודעות והידע בנושאים אלה, ההופכים
במהירות לשטחי לימוד ועבודה מרכזיים בנושאי המיחשוב ומערכות המידע.
פרופ' פיליפ עין-דור
אוניברסיטת תל-אביב
ללוי ונעמי
הבעת תודה
המחברת מודה ל:
ד''ר אהוד שפירא, מכון ויצמן למדע;
דייר יהודית גל-עזר, האוניברסיטה הפתוחה;
המחלקה לבינה מלאכותית, טקסל אלקטרוניקה בעיימ.
תוכן הענייניס
על הספר
תוכן ענייניס
הקדמה - היבטים שונים של שימוש בפרולוג
פרולוג - 1.020216 חו 8ַחווחותגז02? - 0100אק
פרולוג - שפה הצהרתית
פרולוג -- שפה לתכנות של תהליכים מסועפים
אסטרטגיה של חיפוש פתרון
פרולוג -- שפה לפיתוח תוכנה של בינה מלאכותית
פרולוג - שפה לבניית אב-טיפוס של מערכת תוכנה
הנחיות למשתמש
ל טש ב נש
מדריך ללומד - שיטות ויעדי הלימוד
מדריך למתכנת מקצועי - סביבות עבודה
מבוא - מבט חטוף על פרולוג
תכנות לוגי כאמצעי לעיבוד וייצור ידע
*יצוג ידע באמצעות עוברות וחוקיס
מרכיבים של תכנית לוגית: עובדה, חוק, שאילתה
איך מסיקיס מסקנות
התאמה והצבה
נסיגה
סיכום: סקירת הנושאים אשר יידונו בספר
= ₪ ₪ 5 ₪ 5 צ
חטיבה ראשונה - מבוא ללוגיקה פסוקית
פרק 1 - פסוק וערך-אמת שלו
1 ערכי-אמת ם!זאד ו-1.55=
2 פסוק אטומי, פסוק מורכב, קשרים
3 לוחות-אמת של הקשרים שאג .08 יהסא
4 סדר קדימויות של קשרים, בניית לוח-אמת של פסוק מורכב
5 לוחות-אמת של הקשרים א1-צ1אס-סאג-ת1 ,אפצד-=1
6 פונקציות בוליאניות ופעולות בוליאניות
359
42
12
3
66
|88
49
2
פרק 2 - יחסים סמנטיים בין שני פסוקיס
1 פסוקים שקולים, תכונות השקילות
2 עושר השפה וקשרים פסוקיים
3 ואוטולוגיה וסתירה
4 יחס של נביעה: פסוק נובע מפסוק אחר
פרק 3 - יחסים סמנטיים בין פסוק לבין קבוצה של פסוקים
1 אוסף פסוקים אטומיים של השפה
2 קבוצה עקבית של פסוקים
3 יחס של נביעה: פסוק נובע מקבוצה של פסוקים
4 תכונות של יחס הנביעה
פרק 4 - מנגנון ההוכחה של לוגיקה פסוקית
1 כלל היסק נאות, קבוצת אקסיומות, מערכת היסק
2 משפט והוכחה, מערכת היסק שלימה
3 דוגמאות של כללי היסק
4 הוכחה בדרך השלילה
5 השימוש בכללי היסק להוכחות אקטואליות
חטיבה שניה - עקרונות של תכנות לוגי
פרק 5 -- עובדות, משתנים ושאילתות
1 יחסים וקבוצות סדורות של עצמיס
2 עובדות, בסיסי נתוניס ושאילתות
3 משתנים לוגיים, שאילתות עם משתנים
4 העובדות והשאילתות - תרגול
5 שאילתה מורכבת ומשתנה משותף
6 הצגה של שאילתה מורכבת - תרגול
7 עובדות עם משתנים
פרק 6 - השפה של לוגיקת היחסים
1 סימני השפה וביטוייה
2 השימוש בכמתים
3 כמתים לא תקניים ומגבלות של ייצוג ידע באמצעות לוגיקת היחסים
4 נוסחה ופסוק בלוגיקת היחטסים
5 שקילות, עקביות, נביעה וכללי היסק בלוגיקת היחסים
8
5
5
7
9
1
5
5
7
69
1
4
4
5
6
77
8
1
3
3
5
7
90 |
933
%6
08
100
100
12
104
155
107
פרק 7 - חוקים
1 הגדרת יחס באמצעות חוק
2 מבנה של חוק
3 הסקת מסקנות על בסיס החוקים: תכנית "תלמידים"
4 הסקת מסקנות על בסיס החוקים: תכנית 004
5 הטקת מסקנות על בסיס החוקים: חישוב המטרה (%,40:8081)ס1קטסס
6 בעקבותיהן של המטרות: פרדיקט המערכת 11806
7 הצגת מידע באמצעות עובדות וחוקים - תרגול
8 רקורסיה
9 חוקים רקורסיביים - תרגול
חטיבה שלישית - תכנות לוגי בפרולוג
פרק 8 - כללי התחביר ומבנה הנתוניס
1 שפת פרולוג - סימנים וביטויס
2 עצים
3 מבנים מורכבים
4 בניית קובצ נתוניס - אירוע
5 בנליה של ביטוים מורכבים - תרגול
6 אופרטורים ופעולות החשבון
פרק 9 - רשימה
1 הגדרה של רשימה
2 בניית בסיסי נתונים עס רשימות
3 עיבוד של רשימות - תרגול
4 עיבוד של רשימות - פתרונות
5 פירוק של רשימה באמצעות הפרוצדורה 59151 - תרגול
6 עיצוב של תכנית לוגית: מיון רשימות
7 תכניות מיון - הריצה והמעקב (17806)
פרק 10 - מנגנון ההוכחה של פרולוג
1 הצבה ומאורע
2 המאורע המשותף הכללי ביותר
3 התאמה
4 איחוד
5 המודל החישובי של תכנית לוגית
6 יישום של המודל התישובי: בחירת מטרה ובחירת פיסקה
7 יישום של המודל החישובי - תרגול
110
110
13
116
119
14
146
120
134
17
1.41
13
13
15
10
15
18
11
15
15
120
13
100
16
1099
14
108
פרק 11 - פרדיקטי המערכת )60 ו-00ח
1 בקרת נסיגה באמצעות 601
2 שלילה באמצעות הכישלון
3 המשתנה הלוגי ופרדיקטי המערכת סח
4 השלילה וה-וט0) - תרגול
פרק 12 - פרדיקטים אקסטרה-לוגיים ומטה-לוגייס
1 סקירה של פרדיקטי המערכת
2 שימוש בפרדיקטים של המערכת
3 פרדיקטים אקסטרה-לוגיים ומטה-לוגיים
4 פרדיקטי המערכת - תרגול
חטיבה רביעית - תכניות יישוס
סיפור מן החיים בשפת פרולוג
חד-גדיא
קשרי המשפחה המנומקים
תאור של מבנים אינסופייסם באמצעות רקורסיה
חישוב עצרת של מספר
פתרון בעיה באמצעות תכנות לוגי - מפת היעדים
מודל לפתרון בעיה באמצעות תכנות לוגי
חיפוש הדרך במבוך
מודל לפתרון בעיה באמצעות תכנות לוגי (המשך)
. בעית שמונה מלכות
. מגדלי האנוי
. תוכנה לימודית באמצעות פרולוג - התפתחות של בעלי-חיים
3. מערכת מומחה - גן החיות
. קונכיה (58611) של מערכת מומחה
5. תכניות יישוס - תרגול
- ₪ 5 ₪ 5 צ ₪ 0 רס
= = =
=
-
4
נספחים
נספת אי -- סביבת עבודה 00 1ַ0אק-וא0סס5ז/צ
נספת ב' - אופרטורים
נספח ג' -- סביבת עבודה 0100אק-זך
נספח די -- הפרוצדורה 6ַחססְק3ּ בפסקל ובפרולוג
נספח ה' - סביבת עבודה 80100ק-80אד
רשימה של תכניות ופרוצדורות
ביבליוגרפיה
מילון מונחים עברי-אנגלי
מילון מונחים אנגלי-עברי
2108
2108
26
200
26
272
23
218
208
271
29
21
24
206
2|08
22
255
2028
3
108
5
226
212
207
5
3
|11
הקדמה
היבטים שונים של שימוש בפרולוג
פרולוג היא שפת תכנות מתקדמת וחדשנית. על היבטים שונים של השימוש בה נשוחח בהקדמה
זו. בשיחתנו נעסוק בנושאים הבאים:
א.
שפת פרולוג מיישמת רעיון חדש של תכנות - התכנות בלוגיקה. תכנית של פרולוג הינה
אוסף של נוסתאות לוגיות. את הרצת התכנית ניתן לפרש כתהליך של הסקת מסקנות על-פ5י
כללים לוגיים.
פרולוג הינה שפה הצהרתית. התכנית של פרולוג מתארת בעיה. באופן מופשט ניתן לומר,
כי התכנית של פרולוג מספקת למחשב ידע, שעל פיו מתקבלות המסקנות.
בהתאם למסקנות נעשה עדכון של הידע, מתקבלות מסקנות חדשות וחוזר חלילה. בדרך
זו ניתן לתכנן תהליכים מורכבים ומסועפים, אשר הבנתם אינה מושלמת. תהליכים אלה
הינס נושא של מחקר בתחוס של בינה מלאכותית. בשל כך מכניס את פרולוג בשםס "שפה
של בינה מלאכותית".
בעת פתרון בעיה, מיישס המנגנון של פרולוג את אחת האסטרטגיות של בינה מלאכותית
- החיפוש לעומק.
שפת הפרולוג הינה כלי לפיתוח תוכנה של בינה מלאכותית, ובכלל זה של מערכות
מומחה.
שפת הפרולוג הינה כלי רב-עוצמה לפיתוח אב-טיפוס של מערכת תוכנה.
שפת הפרולוג משלבת בתוכה פשטות של שפה הצהרתית, הפועלת על פי כללים לוגיים ברורים,
עם תתכוס המאפשר ניתוח ותכנות של תהליכים מורכבים ומסועפים, ובשל כך - רבים ימצאו
בה ענין.
הז
א. 5ר1ל21 - 1/0206 חן פחוותותגזק0 תע - 06 זסאק
בשנות השבעים עסקה קבוצת מדעניס מאוניברסיטת מרטיי שבצרפת במחקר בתחום העיבוד
של שפות טבעיות. במהלך מחקר זה פותחה שפת תכנות, אשר הציגה מודל חדש של תכנות:
תכנות בלוגיקה, או תכנות לוגי. השפה הכילה מערכת היסק לוגי. באמצעותה ניתן היה להסיק
מסקנות על בסיס מידע שהוצג למחשב באמצעות נוסתאות לוגיות. הסקת המסקנות נעשתה
על פי כללי היסק לוגיים, ונראתה כחיקוי של תהליך חשיבה אנושית [1985 מ6ט8זסות001].
השפה החדשה כונתה בשם פרולוג. השם 001/00 נגזר מצירוף המללים:
0 תג תות ותגזק סאק
בראשית שנות השמונים התפרסס הפרוייקט היפני של מחשבי הדור החמישי. פרוייקט זה חשף,
לדברי היפניסם, תפישה חדשה של מבנה המחשב.
6 ותא 1
| 6 תד
6 5צ05וס ₪ 5ע5סנוס
6% 66111תד
6
איור א' - המחשב של הדור החמלשי
לכל מחשב יש שפה הנקראת שפת מכונה, אשר תואמת את מבנהו ואת אופן פעולתו. על בסיס
שפה זו נבנות גם שפות עיליות. המחשב הנוכחי, הקרוי מכונת פון-נוימן (ממגנתט6צן | חס
6מ1סג]א)בנוי על העקרון של חיפוש לפי כתובות. החיפוש מתבצע באופן סדרתי, כתובת אחר
כתובת, על כן באופן מופשט נאמר כי תכנית בשפת מכונה היא סדרה של כתובות.
היפנים החליטו לבנות מחשב, אשר יהיה בנוי על העקרון של חשיבה לוגית, ואשר פעולתו
העיקרית תהיה הסקה על פי כללי היסק לוגיים [1984 ,1ת6טת]. הבעיה שתוצג למחשב תבחן
בכמה כיוונים במקביל, ומכאן כינויו: המחשב המקביללי (ז6וטקות60 |2918116). המחשב יהיה
קשור למערכת הידברותית (1679011%6ת1) של מאגרי ידע (3וח0ופעפט5 | 28500 16686שסתא).
כדי להינתק מן המושגים הישנים ולהדגיש את חדשנות הגישה, כינו היפנים את שפת המכונה
של המחשב המקבילי בשם שפת גרעין (ספַ4ט8ַח143 |6חז6א). הם בנו אותה על בסיס שפת
הפרולוג [1984 ,006ח48ו8]. אחד הנימוקים לבתירת פרולוג כשפת גרעין של המחשב המקבילי
היה הנימוק הבא: לוגיקת היחסים הינה כלי להצגת ידע [1980 ,חספפ!וא]. יעודו של המחשב
1. 0 ייצור ועיבוד ידע, ולכן שפת הפרולוג, שבנויה על בסיט לוגיקת היחסים, מתאימה
ו .
12
(בהקשר לנאמר לעיל נציין את המאמר [1986 ,0ז1ק504], אשר דן בהתאמה בין שפת תכנות
לבין מבנה המחשב).
1יסא
6 רפתה ]
מה שַת1ט501-10₪סספק
נת8ת60ע 066םת2626ת1
0
צעתסמסם תנהם
48 160₪6שסתא
57564 6תסמסשהתבּון
38 ,85א15כ
"6
50820
58
50820
1
ת8610עססס
1 ת5
ת8610נסקס
6% 66111תד
6 ץד
%טס6ט0/ סטוסקתד
איור בי -- תפישות חדשות של הדור החמישי
ב. פרולוג - שפה הצהרתית
פרולוג הינה שפה סימבולית, בעלת מבנה נתונים דמול עץ. התכנית של פרולוג מורכבת מעובדות,
חוקיס ושאילתות. העובדות מתארות את הנתונים, והחוקים מתארים את הקשרים הלוגיים
בין הנתונים. יחד הס מתארים את הבעיה. השאילתה, אשר המבנה התחבירי שלה זהה לזה
של העובדה, מתקבלת כהוראה לבצע את החישוב ולמצוא את הפתרון. תהליך החישוב נסתר
מעיני המשתמש וניתן להציגו כתהליך הסקת מסקנות על בסיס עובדות וחוקים. התהליך
מתנהל על פי כללי היסק לוגיים שהינס חלק אינטגרלי של השפה.
שפת הפרולוג פותרת בעיה על פי התאור הכללי שלה, וללא הוראות ביצוע מפורטות. במילים
אחרות, צריך להגיד לפרולוג מה לעשות. צריך לתאר את הבעיה ולספק את המידע הרלוונטי,
אך אין צורך לפרט את צעדי החישוב ולהסביר איך נבצע את המשימה. סוג תכנות זה מכונה
בשס הצהרתי, או דקלרטיב? (126618791146). לעומתו התכנות המסורתי, הדורש פירוט מדוקדק
של צעדי החישוב (כמו התכנות בפורטרן או בבייסיק), מכונה בשם פרוצדורל? ([4ט270060).
נציג דוגמה של תכנית הצהרתית בפרולוג. התכנית אשר להלן, איננה זקוקה לתיעוד, היא
מדברת בעד עצמה. את העובדות והחוקים כותבים ב-ז1-60110א16 ולאחר הטענתם אל מערכת
הפרולוג מציגים שאילתות ומקבלים תשובות.
13
. (₪806216 , 8215ק)86סע
. (סת₪118 ,086)28215ס2
. (115008 ,080)₪886216ע2
. (0618ת816ט ,80216מ)2080
. (8שסתע ,0ת2080)2118
. (6218תסט ,0סת2086)₪118
.(צ ,א)20808 1% (צ ,א)606%6006מת60
(%ם11] ,א)20806 1% (צ,א)66%606םתת60
. (צ ,א%םת2088)11 6ם8
6בסהק .(2 ,8218ק)6060860םתמ60 -?
8 =
סתה 111 5 8 =
8 =
סת1[18ם =
8 האהמסת 018ת0810 115008 8 =
8 =
א א א א א א
הביטוייס שמתחילים במילה 7084 הינם עובדות ואלה שמתחילים במילה 60166תת60 הינם
חוקים. נציין, כי אין חשיבות לסדר כתיבתם. האותיות צ, 2, א, הינס משתנים, אשר משמעותם
- עיר כלשהי. תיארנו את הכבישים, הסברנו באמצעות החוקים מה פירוש הדבר "עיר קשורה
לעיר", הצגנו שאילתה - וזכינו לתשובה. לנושאי הקשר הבין-עירוני עוד נחזור במהלך הספר.
נציין תכונה נוספת של תכנות לוגי, אשר הוצגה בתכנות שלעיל: תכנות לוגי הינו תכנות מבני
(קת!ותות3זק סז 1010766רו51).
נביא דוגמה נוספת. את בעיית מיון הרשימה נפתור בפרק 9 באמצעות תכנית הצהרתית "מיון
טבעי". לשם כתיבתה נתאר את המשימה ואת צעדי הביצוע מבלי לפרטם. להלן התאור. בפרק
9 נתרגם אותו לשפת פרולוג ובכך נסיים את כתיבת התכנית.
* כךל למיין את הרשימה 118%, צריך לבחור מבין תמורותיה את הרשימה הממויינת
68
+ כדי למצוא את התמורות של הרשימה +145, שיש בה פריט אחד לפחות, נוציא ממנה
פריט אחד א, נחשב את התמורה של שאר הרשימה, ונחזיר את הפריט א.
* רשימה בת פריט אחד הינה ממויינת. רשימה שבה יותר מפריט אחד היא ממויינת,
אס שני פריטיה הראשונים מסודרים בהתאם לסדר שנקבע, ושאר פריטיה
ממויינים.
בתאור זה לא פרטנו, איך נבחר את התמורה הממויינת, איך נחשב את התמורה של שאר
הרשימה, ואיך נבדוק האם שאר פריטיה ממוייניסם. את הפרטים האלה שפת הפרולוג משלימה
בעצמה.
על כן, ניתן להיעזר בפרולוג במקרים בהם אין אנו יודעים באופן ברור וחד-משמעי איך לפתור
את הבעיה הנתונה. כמובן, שבמקרים כאלו לא ניתן לעצב את התכנית בשיטות הנדסת התוכנה
14
המקובלות (כמו למשל, ש"כ). אנשים שמפתחים תוכנה לבעיות אשר אותן הם מביניס בצורה
חלקית בלבד, עובדים לפי שיטת התכנות הבוחן (פתווחוחגזקסז/ עזסו8זס!קאם). תוך כדי כתיבת
התכנית הם בוחנים את הבעיה ומחפשים את העיצוב הנכון. שפת הפרולוג תומכת בסוג זה של
תכנות.
אף על פי ששפת הפרולוג יודעת במקרים רבים לפתור את הבעיה הנתונה מבלי שהמתכנת
יפרט את צעדי החישוב, לא ניתן להתעלם לחלוטין מן הצד הפרוצדורלי. מתכנת שמכיר היטב
את מנגנון השפה, *כול לייעל את תהליך החישוב ובכך לחסוך משאבים רבים.
ג. פרולוג - שפה לתכנות של תהליכים מסועפים
הצגת ידע הינה נושא מרכנזי בתחומים רבים, המאוחדיסם תחת השם בינה מלאכותית
(00ח161!186ח1 [4111/1618/). בהתאם לכך, שפת פרולוג, אשר משמשת להצגת ידע, הינה השפה של
בינה מלאכותית.
על אף השימוש הנפוץ במונח "בינה מלאכותית", אין הסכמה כללית לגבי משמעותו. לרוב,
משתמשים במונח זה כשמדובר בביצועי המחשב, אשר ניתן לתארם במושגים של תפישה חושית
(ח0ג1ק06ז6כ), הסקה (8ת1ת64950ז), אסטרטגיות של תיפוש (5178168165 ח0ז568) וכדומה. מושגיס
אלה הינס נחלת החשיבה האנושית, ומכאן מקורו של המונח "בינה מלאכותית".
בלשון חופשית ניתן לומר, כי בינה מלאכותית הינה תחום, החוקר את מנגנוני התבונה. בחקר
זה משתתפים מתמטיקאים, אנשי מחשב, פסיכולוגים, אנשי רוח ועוד. בהקשר למדעי המחשב,
בינה מלאכותית עוסקת בעקרונות, שיטות וטכניקות, אשר באמצעותם אפשר לחקות במחשב
את תהליך של חשיבה אנושית. שפת הפרולוג מיישמת כמה מהשיטות והטכניקות של בינה
מלאכותית בתחומים רבים, ובפרט בתחומים האלה:
עיבוד והצגת ידע.
עיבוד שפות טבעיות.
מערכות מומחה.
רובוטיקה.
*א % % *
בתחומי היישום של בינה מלאכותית לרוב אי אפשר לתאר את הפתרון באופן חד-משמעי,
באמצעות שרשרת צעדים הידועיס מראש והמובילים אל הפתרון. יש לכך סיבות שונות. הסיבה
העיקרית היא, שעקב הסתעפויות וריבוי אפשרויות, יש יותר משרשרת אחת של צעדים (כלומר
הפתרון אינו דטרמיניסטי). ישנה גם סיבה נוספת - לעיתים אין אנו יודעים איך לפרט את
הצעדים.
בתחומים אלה אנו מסוגלים במקרים רבים לתאר מה לעשות, ואיננו מסוגלים לציין איך
לעשות. שפת הפרולוג פותרת עבורנו את ה"איך" באמצעות כללי היסק לוגיים שהינס חלק
אינטגרלי של השפה. פירוש הדבר הוא, שבמקריס רבים שפת הפרולוג מסוגלת למצוא את
הפתרון על פי תאור הבעיה והצגת השאילתה בלבד, מבלי שנציין את פרטי הביצוע. אנו ננצל
תכונה זו במקרים בהם אי אפשר לתאר את הפתרון באופן חד-משמעי, עקב ריבוי האפשרויות,
או מכיון שהבעיות והתהליכים אינס מובנים באופן מושלם. את התכנית לצורך זה מפתחים
בשיטת התכנות הבוחן [1987 ,]561]: מתאריס את הבעיה ומתכנתים אותה בפרולוג, מריצים,
מעדכנים, ממשיכים בתאור, מתכנתים וכן הלאה. בסיוס מקבלים תכנית הצהרתית, אשר אותה
ניתן לייעל במידת הצורך.
15
ד. אסטרטגיה של חיפוש פתרון
ביישומים של בינה מלאכותית מקובל לתאר את הבעיה באמצעות מרחב המצבים (3)410
6). לשנו המצב המצוי - המצב בו נמצאת המערכת כרגע, וישנו המצב הרצוי, שאליו רוציס
להגיע. ישנסם מצבים נוספים, שאליהם ניתן להגיע מן המצב המצוי. חיפוש הפתרון מתבטא
בבניית שרשרת של מצבים, המקשרת את המצב המצוי עם הרצוי. במילים אחרות, על מנת
לפתור את הבעיה, יש למצוא דרך להגיע למצב הרצוי. נציין כי במקרים רבים יש יותר מדרך
אחת, שמובילה אל הפתרון.
נביא דוגמה של תאור בעיה, אשר ניתן לפרשו באמצעות מרחב המצבים. בפרק 9 פתרנו את
בעית המיון באמצעות תכנית "מיון טבעי". המצב המצוי, או המצב ההתחלתי, תואר באמצעות
הרשימה הנתונה 1%%. המצב הרצוי תואר באמצעות הרשימה הממולינת 5071664. בתור מרחב
המצבים שימשו תמורות (5ת14110טמת6ק) של הרשימה 1.1%, אשר אחת מהן היתה הרשימה
הממולינת 501166. המעבר ממצב למצב התבצע באמצעות הפרוצדורה מ0ס18110טותז6ק. פרוצדורה
אחרת, 501166, בדקה אס המצב החדש הינו מטרת החיפוש, כלומר, הרשימה 501164.
את מרחב המצבים ניתן להשוות למפה, אשר היישוביס המסומנים בה הס המצבים, והכבישיס
הינם אמצעי המעבר ממצב למצב. היישוב בו אנו נמצאיס הינו המצב המצוי, או המצב הנתון.
היישוב שאליו רוצים להגיע, הוא המצב הרצוי, או המטרה. חיפוש הפתרון כמוהו כחיפוש קשר
בין היישובים. כדאי להזכיר, כי בחיפוש זה מחכות לנו הפתעות לא נעימות, כמו לולאות או
מבוי סתום. על כל אלו יש להתגבר בעת החיפוש.
ישנם *ישובים, שניתן להגיע אליהם באמצעות מערכת הכבישים וישנם יישובים, שניתן להגיע
אליהם בשבילי עפר בלבד. מכיון שלא ניתן להגיע אליהס באמצעים המקובלים עלינו, הס כלל
אינס רלוונטיים לנושא התיפוש. אוסף המצבים, אליהס ניתן להגיע מהמצב ההתחלתי, מכונה
מרחב החיפוש (32406 ג0ז568). מרחב החיפוש הינו תת-מרחב של מרחב המצבים.
את מרחב המצביס מתארים באמצעות גרף (םגז8). נסמן את המצבים בעיגולים או נקודות
ונעביר קשתות (סזג) בין המצבים הקשורים אחד למשנהו. התאור שהתקבל הינו גרף. המצב
בגרף מכונה צומת (066ם). בסוג של גרף, הנקרא עצ (66זו), נדון בפרק 8.
איור ג' - חיפוש לעומק
16.
איור די -- חיפוש לרוחב
קיימות שתי אסטרטגיות בסיסיות של חיפוש הפתרון: האחת - חיפוש לעומק (1131/-ם1ק66
ה0ז568), מתוארת באיור ג'; השניה - חיפוש לרותב (ג0ז508 1181/-ת6801ז0), מתוארת באיור די.
בחיפוש לעומק או לרוחב, מרחב החיפוש נסרק ביסודיות עד אשר נמצא הפתרון. קיימות
אסטרטגיות אחרות, אשר בהן מרחב החיפוש נסרק באופן סלקטיבי, בהתאם לקריטריונים
שוניס, למשל על פי המקדם, המבטא את חשיבותו של הצומת או על-פי קירבתו אל המטרה.
חיפוש מסוג זה נקרא חיפוש האוריסט? (ם0ז563 15110זט6ת). אם כן, חיפוש האוריסטי הינו חיפוש
לעומק או לרוחב בתוספת של פונקציית הערכה. בחיפוש מסוג זה משתמשים כאשר מרחב
החיפוש גדול מדי. במקרה זה מדלגיס על צמתים בעלי סיכוי נמוך ועל ידי כך מקצרים את זמן
החיפוש.
הצמתיס שנסרקו על ידי חיפוש לרוחב, מיוצגים באמצעות תור ומתנהלים בשיטת 150
(1טכ) 1181 ת1 118%). לעומת זאת, בתיפוש לעומק משתמשים במחסנית ועובדים בשיטת 1150
(1טכ) 1156 1 1451). המנגנון של פרולוג מכיל אלגוריתס של חיפוש לעומק. במקרים בהם
החיפוש נקלע למבוי סתום, המנגנון מבצע נסיגה לאחור (8ח1א80%ז040%1).
בסעיפים 7 ו-9 של חטיבה רביעית נביא סדרה של תכניות, אשר בכל אחת מהן נדגיש את
האופן שבו אסטרטגיית החיפוש לעומק מיושמת על ידי פרולוג.
נציין, כי בנוסף לחיפוש לעומק, ניתן בפרולוג ליישם גם אסטרטגיות חיפוש אחרות. דבר זה
דורש קידוד של האלגוריתמים המתאימים, בשעה שהחיפוש לעומק הינו חלק אינטגרלי של כל
תכנית.
7
דרך-
איור ה' - עקומה של מחסנית בעת חיפוש לעומק
ה. פרולוג - שפה לפיתוח תוכנה של בינה מלאכותית
כפי שאמרנו, המונח "בינה מלאכותית" נועד לתאר את ביצועי המחשב, המחקים תהליך חשיבה
אנושית. אחד מחלוצי התחוס של בינה מלאכותית, פרופי מרווין מינסקי (ע58ח:1/ תנצזג]ו/א),
תיאר בינה כמושג, שמשתמשים בו כדי לציין פעולה שיכלית, אשר אותה מעריכים, אבל לא
מבינים.
הגדרתו של מינסקי משקפת את האופן שבו אנחנו רואים את תהליך העבודה השיכלית. ניקת
למשל, את עבודת הרופא. היא מסווגת כנבונה ואינטליגנטית על ידי אלה העומדים מהצד.
לעומת זאת, עמיתיו רואים בה שימוש נכון בשיטות וטכניקות, ותו לא. באשר לעבודת המחשב,
על פי גישה זו של מינסקי, כשמבינים היטב את תהליך קבלת הפתרון, אין זו בינה מלאכותית,
אלא אוסף של עקרונות, שיטות וטכניקות ותו לא. העובדה, שתהליך קבלת הפתרון דומה מאוד
לתהליך חשיבה אנושית, אינה רלוונטית כלל וכלל. על פי גישה זו מותר להשתמש במונת "בינה
מלאכותית" רק כאשר מדובר בתהליכים, אשר אינם מובנים באופן מלא. עם השיטות
שבאמצעותם ניתן לטפל בתהליכים כאלה, נמניס תכנות בוחן ותכנות בלוגיקה. לאתר
שהתהליך הזה תוכנת והורץ במחשב, הוא מאבד את זכותו להיקרא בשם "בינה מלאכותית".
בדרך כלל השימוש במונח "בינה מלאכותית" חופשי בהרבה מזה הנגזר עליו על פי ההגדרה
שלעיל. ישנו אוסף של מוצרים, אשר תהליך פעולתם מובן היטב, ובכל זאת מכנים אותם בשם
8
המוצרים (או התוכנה) של בינה מלאכותית. דוגמה מסוג זה היא מערכת מומחה המכילה ידע
של מומחה ואסטרטגיות, שעל פיהן המומחה מפעיל אותה.
מערכת מומחה מכילה מנגנון הסקה, אשר לרוב אינו תלוי בידע של המומחה, ובשל כך הוא
משמש כלי לבניית מערכות נוספות. בחטיבה הרביעית נציג מערכת מומחה לימודית
(גת6ז5ע5 1ז6קאם עסד). כמו-כן, נציג קונכיה (5611) של מערכת מומחה, המפעילה מפרש-על
(ז1616קת16ת6181ת) של פרולוג בתור מנגנון הסקה.
שיטת התכנות הבוחן הינה השיטה המקובלת בפיתוח תוכנה של בינה מלאכותית. שיטה זו
מיישמת את גישתו של מינסקי, משמע, באמצעותה ניתן לפתח תוכנה בנושאים אשר הבנתם
איננה מושלמת.
ו. פרולוג - שפה לבניית אב-טיפוס של מערכת תוכנה
לדעת מומחים, השלב הקשה ביותר בבניית מערכות תוכנה הינו שלב האיפיונים, אשר בו
מפתחים את תפישת המערכת. בשלב זה מחליטים מה המערכת מבצעת ואיך היא תיבנה.
המשתמש, אשר אינו בקיא בתהליכי פיתוח תוכנה, חייב להגדיר את דרישותיו כך, שעל פיהן
ניתן יהיה לפתח מערכת. בדומה, מהנדס תוכנה, אשר אינו בקיא בתחום עיסוקו של המשתמש,
חייב להבין ולספק את דרישותיו. מכאן שהמשתמש אינו יודע מה הוא רוצה, והמפתח אינו
יודע מה הוא בונה.
פרופי פרדריק ברוקס, אחד מהמפתחים של משפחת מחשבי 360 ות516ץ1-5א18, ממליץ במאמר
שכתב [1987 ,00%8ז2] להתתיל את פיתוח המערכת מבניית אב-טיפוס (6קע1ס1סזק). באמצעות
אב-טיפוס מיישמים את תפישת המערכת בקוויס כלליים ומאפשרים לשני הצדדים, למשתמש
ולמפתח, להכיר וללמוד את הדרישות של הצד השני. המשתמש מציג את דרישותיו בצורה
נאותה, והמפתח מציע לו פתרונות מתאימים. נציין כי לשיטת פיתוח תוכנה, אשר מתחילה
מבניית אב-טיפוס, ישנס תומכים רבים [1987 ,65חז83].
אב-טיפוס של מערכת יש לבנות מהר, בזול, ותוך שיתוף פעולה מקסימלי עס המשתמש. פרולוג
הינה שפה הצהרתית, בעלת מבנה נתונים גמיש. היא מצוידת במנגנוני הסקה וחיפוש ותומכת
בתכנות בוחן ובעיצוב מובנה מלמעלה למטה (מ66518 511001060 מאו60-קס1). בשל תכונות אלו,
פרולוג הינה כלי רב-עוצמה לפיתוח מהיר של אב-טיפוס למערכת תוכנה.
אי * אי
את הנאמר בהקדמה נסכם כך. פרולוג הינה שפה הצהרתית, אשר מכילה את האלגוריתם של
חיפוש לעומק עם נסיגה מבוקרת לאחור. בשל כך היא מאפשרת להכין תכניות, שאינן מפרטות
את צעדי הביצוע בזה אחר זה. תכניות אלו מכילות מידע, הרלוונטי לפתרון הבעיה. המידע
מוצג בצורת עובדות, המתארות את הנתונים, וחוקיס המתארים את הקשרים הלוגיים בין
הנתונים. ניתן לכתוב תכנית בפרולוג, כאשר התהליך מתואר באופן כללי, אבל פרטיו אינס
ברורים. את התכניות של פרולוג ניתן לעצב בשיטת התכנות הבוחן, ובשל כך השפה נוחה
במיוחד לעיצוב מהיר של אבות-טיפוס, לבניית מערכות מומחה, לתכנות תהליכים מסועפים
עם אפשרויות ביצוע רבות, וכדומה.
נסייס ונאמר: פרולוג הינה שפה המלישמת היום את הטכנולוגיה של העתיד, ועל-כן רבים ימצאו
בה עניין. מחד גיסא, המתחילים יראו בה שפה הצהרתית, הפועלת על-פי כללים לוגיים ברורים,
אשר נוח להתחיל ממנה את ההיכרות עס עולס המחשב; מאידך גיסא, אנשי מחשב מנוסים
יהיו מעוניניס להכיר כלי חשוב בעל עוצמה רבה, שנועד ליישומיס מתוחכמים ולמחשבי הדור
החמישי.
פן
20
הנחיות למשתמש
מדריך ללומד - שיטות ויעדי הלימוד
מדריך למתכנת מקצועי - סביבות עבודה
21
מדריך ללומד - שיטות ויעדי הלימוד
ספר זה נכתב בעקבות הקורסים האלה:
- עקרונות של בינה מלאכותית ושפת פרולוג (60 שעות), לאנשי מחשב.
- שפת פרולוג ומערכות מומחה (60 שעות), לאנשי מחשב.
- תכנות לוגי ושפת פרולוג (48 שעות), לקהל רחב.
- חוג לפרולוג במסגרת פרוייקט שנתי של מכון וייצמן, לתלמידי כיתה '.
הספר מתחיל במבוא "מבט חטוף על פרולוג" שנכתב ברמה אינטואיטיבית פשוטה ומהווה
סקירה של נושאים, אשר ידונו בהמשך. הודגש הבדל בין תכנות הצהרתי (6ו86018:411) לבין
תכנות פרוצדורלי ([14זט660סזק) (ראה פרק 2 בספר [1985 ,תגזז3]א]).
החטיבה הראשונה של הספר דנה בנושאיס של לוגיקה. שפת לוגיקה פסוקית מוצגת כהפשטה
(ח4051:40110) של שפה טבעית (עברית או אנגלית), המאפשרת תאור פורמלי של תהליך הסקת
מסקנות.
החטיבה השניה דנה במבנה של תכנית לוגית. הושס דגש על הגישה ההצהרתית (ראה חלק 2
בספר [1984 ,1ח9268צ]). על-פי גישה זו תכנית לוגית מתוארת כמכשיר להצגת *דע (16086שסח>%
ח0ן181ת6%6זק6ז). נציין, כי בנוסף להוראת תכנות לוגי, גישה זו נפוצה בהוראת תוכנה
הידברותית (6צו861ז6וחו), כדוגמת "גיליון עבודה אלקטרוני" (]5066אזסאו 16ח0ז6|601). נציין גם
כי תוך עיון בחטיבה זו הקורא מתוודע לעבודה עם בסיסי נתונים (ניסות של יחסים, הצגת
שאילתות וכדומה).
החטיבות השלישית והרביעית דנות בשיטות וטכניקות של תכנות מעשי בפרולוג. הושס דגש על
ניסוח בעיה תוך שימוש בפרוצדורות ובמבני נתונים מורכבים. שיטת הלימוד מבוססת על
הגישה האפיסטמולוגית ([80108163ח1516ק6), המקובלת בהוראת בינה מלאכותית (ראה פרק 7
בספר [1980 ,61ק4ק]). גישה זו כוללת פירוק הבעיה למרכיביה הפשוטים, ניתוח של קשריהם
הלוגיים ותאורס בשפה פורמלית. אף-על-פי שתאור המרכיבים נעשה בפרולוג, גישה זו אינה
תלויה בשפה מסוימת, אשר על כן השיטות הנלמדות (כדוגמת מרחב המצבים, או
1 לשמשו את הקורא בתחומים נוספים. יצוין כי נעשה שימוש באלמנטים של
הגישה האלגוריתמית, מבלי להכנס לנושאים תיאורטיים כגון סיבוכיות (עָזואס!סוחסס), נכונות
(655מ60601) וכדומה (הנושא של סיבוכיות תכנית לוגית נדון במאמר [1984 ,0ז1ק8ח5]; נושאים
אחרים נידונים בספר [1986 ,סזוַפְ3ח5. 86 8חו!ז516]). נציין, כי המשימות הלימודיות של החטיבה
הרביעית (אשר דנה בכתיבת תכניות יישום) מדורגות בהתאם להתקדמות של הקורא בחומר
הנלמד.
הספר מכיל חומר רב לתרגול. חלק מהתרגילים ניתן לצורך הדגמה תוך הגשת הנושאים. חלק
אחר מוגש במרוכז ומהווה מטלה לימודית בעלת תוכן מוגדר.
הספר מיועד לקהל מגוון של קוראים. אנשי מחשב, שהתתנכו על מושגים של תכנות פרוצדורלי
וגישה אלרגוריתמית, וודאי ימצאו אתגר בהיכרות עם דרך חשיבה אחרת. לקוראים, שעבורם
פרולוג היא שפת התכנות הראשונה, נמליץ להתחיל את הלימודים מפרק 5, לאחר מכן לקרוא
את המבוא, לעבור לפרק הראשון ולהמשיך לפי הסדר העולה של הפרקים.
הספר מתאים ללימוד עצמי וגם ללימוד בכיתה. התכניות והתרגילים הוכנו והורצו בסביבה של
1-6 (המתוארת בנספת אי).
22
יעדי הלימוד: :
מבוא --
פרק 1 -
פרק 2 -
פרק 3 -
פרק 4 -
פרק 5 -
פרק 6 -
פרק 7 -
פרק 8 -
פרק 9 .
להכיר מושגיסם בסיסיים של תכנות לוגי:
* ייצוג ידע באמצעות עובדה, חוק, שאילתה.
* עיבוד ידע וחישוב שאילתה, כתהליך של הסקת מסקנות לוגיות.
* חישוב שאילתה על ידי מערכת הפרולוג באמצעות התאמה, הצבה ונסיגה.
ללמד ייצוג של ידע בשפה פורמלית באמצעות:
* פסוק אטומי.
+ קשרים לוגיים.
+ מושגיסם של אמת (17) ושקר (ת).
להכיר את הבסיס הלוגי של המושגים:
* שקול (שווה-ערך).
א נובע (גורר).
להכיר את המושג "עקביות".
לבנות מערכת היסק.
ללמד תהליך הסקה לוגית.
להציג תכנית לוגית כבסיס נתונים.
ללמד מושגי יסוד של בניה ושימוש בבסיסי נתונים:
* יחס (תסנז16[8).
* עצם (00[60).
* עובדה (86]).
+ משתנה (16טגוז4ץ).
* שאילתה (עזסטף).
לייצג ידע באמצעות מושגיס בסיסיים של לוגיקת היחסים:
* פרדיקט (6610416זק) - מתאר את היחס.
א ארגומנט (1ח6וט8ז3) --מתאר את העצסם.
* כמת (160]נותגטף) -- מציין האס העובדה המוצגת נכונה עבור עצס אחד
לפחות, או עבור כל עצם.
* נוסתה (ג!טנממז0ס1 07166!-!|שש) - מתארת את הקשרים הלוגיים בין
היחסים.
ללמד ייצוג של ידע באמצעות:
= כללים "אם-אז" (אתצד-=1).
* חוקיס רקורסיביים.
להכיר את מבנה הנתונים של פרולוג.
לדעת לנסת בעיה תוך שימוש במבני נתונים מורכבים.
להעמיק את הידע במבנים רקורסיביים.
לדעת לקרוא תכנית לוגית.
לדעת לעצב תכנית לוגית.
23
4
פרק 10 | - להכיר את תהליך האיחוד (תסוז104תט).
לבנות מודל חישובי של תכנית לוגית וליישמו בפרולוג.
פרק 11 | - לדעת לשנות זרימה של תכנית לוגית.
לדעת לייעל את תהליך חישוב השאילתה.
פרק 12
ללמד להשתמש באמצעי עזר שונים, המסופקים על ידי מערכת הפרולוג
(פרדיקטי המערכת).
חטיבה רביעית
- לכתוב תכניות הידברותיות (8011%6ז16ח1) בעלות תכנים לימודיים.
- להכיר אסטרטגיות של פתרון בעיה באמצעות תכנות לוגי.
- לדעת לבנות מערכת מומחה.
- לדעת לפתח מערכת מומחה באמצעות הקונכיה ([8061).
- להכיר את המפרש-על (616ז0ז16חו14סוח) של פרולוג.
מדריך למתכנת מקצועי - סביבות עבודה
מקובל כי הוראת פרולוג מתנהלת בשני שלבים. נתאר אותס בקצרה.
שלב ראשון - רמה לוגית
בשלב זה בוניס תשתית:
א מתוודעים לרעיון המונח ביסוד השפה: הסקה לוגית באמצעות מחשב.
א לומדים תכנות הצהרתי שבמהלכו אומריס למחשב מה לעשות, והמחשב יחליט איך
לעשות.
לשלב זה הקדשנו את החטיבות הראשונה והשניה.
שלב שני - רמת הביצוע
בשלב זה לומדים תכנות מעשי, ובכלל זה:
* מבנה הנתוניס של השפה.
+ מודל חישובי של תכנית לוגית.
א שיטות וטכניקות של עיצוב התכנית.
לשלב זה הקדשנו את החטיבות השלישית והרביעית.
מתכנת מקצועי שסיים קורס לפרולוג ומכיר את השפה ברמה הלוגית וברמת הביצוע, עובר
לשלב הבא:
שלב שלישי - רמת הסביבה
בשלב זה נעשית התקנה של תוכנת פרולוג, והמתכנת לומד להכיר את סביבת העבודה
ואיפיוניה, לדוגמה:
+ הפרדיקטים של המערכת (60104165ז2 800[6ט[6/8).
+ מישקי תקשורת (5אם:1 ,16118065מ1 ת0ו1691מטותותסס).
א אמצעי ניפו? (1:806 ,10015 שתופפטט06).
ועוד.
המתכנת "נחשף" לאלמנטים של הסביבה כבר בשלב השני של הלימוד. הדוגמאות והתכניות
שבספר זה נבנו בסביבת עבודה של 01.00ַאק-א0כ15/צ, אשר מתוארות בפרוט בנספת אי.
כדי להקנות לקורא תחושה של עבודה מקצועית תחת ]א150או, הצגנו מספר תכניות: עיבוד
מערכים (תכנית אי), בניית העורך (תכנית בי) ועוד. נספח ג' מתאר את 001.00 אק-1ד המיושסם
במכונת 1.155, ונספח הי מתאר את גירסת טורבו-פרולוג. נציין, כי חלק מהתכניות בספר זה
אינן מתאימות לטורבו-פרולוג בשל המבנה המיוחד שלו. נספח בי מתאר את האופרטורים של
פרולוג ומציג את רשימת האופרטוריס המוגדריס מראש של 801.00 ק-]א150או.
המתכנת לומד את סביבת העבודה בעזרת מדריך למשתמש של יצרן התוכנה. מדריך זה, בדרך
כלל, אינו מהווה ספר לימוד של פרולוג ולכן אינו דן בשלביס הראשון והשני. היצרן מצפה
שהמשתמש מכיר את העקרונות של תכנות לוגי, והמדריך מנחה אותו איך להשתמש בגירסת
הפרולוג שבידיו.
25
לעתים קורה כי בשל אילוצים שונים, המתכנת חשוף לשלב השלישי מבלי לעבור את השלבים
הראשון והשני. כלומר, המתכנת לומד פרולוג באמצעות מדריך ([8טחפוח *6פט), אשר אינו
מתאים להיות ספר לימוד. כתוצאה, נוצר אצלו רושם מוטעה, כי פרולוג הינה שפה פרוצדורלית
נוספת, שכן המדריך מתאר עבודה מעשית במחשב סדרתי ואינו מדגיש את הרעלון ודרך חשיבה
של תכנות לוגי.
פרולוג שונה בתכלית משפות פרוצדורליות כגון פסקל, פורטרן וקובול. בנספח די השווינו בין
6 פרוצדורלי לבין 6ת6סקג לוגי, וגם הסבנו את תשומת הלב למאמרים הדנים בנושא זה.
כדי לנצל את עוצמתה של פרולוג, נמליץ להתחיל את כתיבת תכניות היישוס בדרך הבאה:
- בשלב ראשון נכתוב מודולים הצהרתיים, אשר בהם יושם דגש על הקשרים הלוגיים
(רמה לוגית).
- בשלב שני נעבד מודולים אלה באמצעות ארגון פיסקאות, זט וכדומה, כדי לייעל
אותם (רמת ביצוע).
בדרך זו, בשלב הראשון נתרכז בחשיבה לוגית, ובשלב השני נתחשב עם אפשרויות של ביצוע
סדרתי. תוך כדי עבודה מעשית בפרולוג המתכנת יפסיק "לעבוד בשלבים" ויתחיל "לחשוב
פרולוג".
6
מבוא
מבט חטוף על פרולוג
לא נגזיסם אם נאמר, כי אין בימינו אדס בן-תרבות, שיכול להתעלם מקיומו של המחשב.
המחשב הוא מכונה. מאז ומתמיד בנו אנשים מכונות, ש"הגבירו" את יכולתס והגדילו את
שליטתם בטבע ובסביבה. הם בנו מכוניות כדי "לתגבר" את הרגליים, והמציאו טלפון כדי
להתגבר על בעיות מרחק.
אף על פי שהמחשב הוא מכונה, הוא שונה באופן מהותי ממכונות אחרות. כנגד מכונה, המבצעת
פעולה אחת, או לכל היותר כמה פעולות, המחשב מסוגל לבצע תפקידים רבגוניים, אשר לרוב
אין ביניהסם כל קשר. מחשב אחד יכול לשריין מקומות לטיסה ולנווט מטוסים וטילים. הוא
יכול לנתב תקשורת ארוכת טווח ובו-זמנית להכין חשבון טלפון.
המחשב הוא מכונה מיוחדת. הוא נבנה כדי לתגבר את מוחו ותבונתו של האדם.
1. תכנות לוגי כאמצעי לעיבוד וייצור ידע
המחשבים הראשונים, אשר נבנו בשנות החמישים, התקבלו כמגבירי כושר החישוב, ובעזרתם
מהירות החישוב גברה בהרבה על זו של האדם. במשך השנים גדלו המהירות, הזכרון, האמינות
ועס זאת - גדל גם התיחכום. מכלי חישוב המחשב הפך להיות כלי לעיבוד נתוניס ולהפקת
מידע, החיוני לקבלת החלטות חשובות. על-כן, מכלי חישוב הפך המחשב לכלי לייצור מידע.
התהליך של ייצור ידע על בסיס מידע נעשה תחילה בידי האדם. על מנת ליצור ידע, היה דרוש
לנתח את הקשרים הלוגיים בין פרטי המידע ולהסיק מסקנות בדרך לוגית. היוס, תהליך עיבוד
וייצור ידע נעשה ע"י המחשב. תהליך זה כולל פיתוח כליס שונים, החל משפות תכנות, אשר
באמצעותן ניתן לייצג ידע במתשב, וחלה במערכות תומכות החלטה ומערכות מומחה [ותססט.1
6 ;010675 .86].
207
איור מ-1 - שפת פרולוג הינה שפה לעיבוד ידע
מהו ידע! לא נתיימר לענות על שאלה זו. בין יתר הדברים, ניתן גם לומר כי ידע הוא סוג משאב,
אשר המחשב הינו כלי לשמירתו ולמיחזורו. המחשב הינו כלי המאפשר ליצור ידע חדש על
בסיס הידע הקיים.
הצגת ידע למחשב הוא אחד הנושאים המרכזיים של המחקר בתחום של בינה מלאכותית.
למונח "בינה מלאכותית" (6!!126006זת1 |11018ז47) יש תומכים רבים מחד, ומתנגדים רביס
מאידך. מבלי להיכנס לויכוח בנושא זה, נביא כמה מהגדרותיו. הגדרה אחת אומרת, כי "בינה
מלאכותית" הינה אומנות, תורה וטכנולוגיה של בניית מערכות מחשב, אשר מחקות פעילות
שיכלית של בני-אדם. הגדרה אחרת טוענת, כי "בינה מלאכותית" הינה תחוס של מדעי המחשב,
העוסק בשיטות להצגת ידע במחשב והסקת מסקנות באמצעותו. הגדרה נוספת גורסת כי "בינה
מלאכותית" הינה חקר של פעילות שיכלית של בני-אדם באמצעות מודלים חישובייס.
לכל ההגדרות יש נקודה משותפת: הצגת ידע במחשב.
פרולוג היא שפה להצגת ידע. בעזרתה מיישמים סוג תכנות חדש -- תכנות לוגי, אשר שונה
מהתכנות הפרוצדורלי המקובל.
תהליך התכנות מתחיל בניסוח המשימה ומסתיים בכתיבת תכנית מחשב. בתכנות פרוצדורלי
התכנית שמתקבלת בסיומו היא סדרת הוראות, המפרטות את צעדי ביצוע של המשימה.
ההוראות מאורגנות בהתאם לסדר ביצוען, אשר בדרך כלל אינו מבטא את דרך החשיבה
הלוגית, שהובילה אל הפתרון. בעת עיון בתכנית, עוסקים לרוב בפרטים הטכניים של תפעול
התכנית, ופחות - במהלך הלוגי שלה. .
שיטת התכנות הפרוצדורלי מחייבת תיעוד מסודר ומפורט. בהכנתו נתקלים לעתים בבעיות,
שכן מתכנתים רבים, שרגילים לחשוב במונחים של שפת תכנות פרוצדורלית, מתקשים להביע
את מחשבותיהם ורעיונותיהס בשפה אחרת.
בתכנות לוגי המצב שונה. בצורה מופשטת ניתן לומר כך: מספיק לנסח את המשימה ולתאר
את צעדי הביצוע. אין צורך לפרטם. במילים אחרות, צריך לספק למחשב ידע שעל פיו הוא
יסיק את המסקנות. ניתן, אם כך, לומר, כי תאור המשימה הינו תכנית והינו גם תיעוד.
נראה את תהליך תכנות לוגי באמצעות דוגמה פשוטה.
הנהלת קופת חולים הזמינה מערכת לייעו בנושא הרגלי אכילה נכונים. ההמלצות מיועדות
8
לקבוצות שונות של האוכלוסייה: ילדים, מבוגריס, קשישים, נשיס בהריון וכן הלאה. ההמלצה
לילדים למשל, אומרת כי עליהס לאכול מזון, שמכיל מרכיבים הנחוצים כדי לגדול. במילים
אחרות, ילד אוכל סוג מזון מסויים, אם הסוג הזה מכיל מרכיב הנחוץ כדי לגדול. בצורה
פורמלית נבטא את ההמלצה הזאת כך:
6% פםת1הסתסס 2006 1% 006+ 68065 1186ת6
.ב%שסע₪ 202 66600ת 158 ס6ת6610עשת1 פאה
ברוב הגירסאות של פרולוג נהוג לסמן את מילת הקשר 1 באמצעות הסימן "-:", ואת מילת
הקשר סצן4 באמצעות פסיק (","). האוכל עליו יש להמליצ איננו ידוע, כלומר הוא הנעלם, או
במילים אחרות, המשתנה הלוגי. נסמן אותו במילה המתחילה באות אנגלית גדולה: 50068. מילה
את מבטאת את משמעות המשתנה.
לפנינו חלק של מערכת הייעוץ. תכנות לוגי הינו תכנות מבני, אשר על כן חלק זה של המערכת
הינו תכנית לוגית בזכות עצמו.
-: (006ת, 6116) 0865
, (%ת6610עשת1 ,006ת)5ת581ת60
. (ת%שסע₪ ,%6ת6616עשת02)1] 66006ת
-: (0006ע, 80111%) 68%5
, (%ת6616עשת1 ,5)20006ם581ת60
. ( צ62₪ת6 ,%ת0610ע8ת02)1/ 66606ת
. (תנס6>סעק ,5)₪68%6ת%81ת00
. (₪ט1ס081 ,5)₪11%ת581ת600
. ( 8ת1ת1%8ט ,626%580105ט)5ת581תס60
. ( 8ת1%8₪1ט ,105וע+5)1ת%681ת60
. (868+ ,₪68%)פת%81ת60
. (ת%שסע₪ ,₪ט202)08101 66666ת
. (ת06%ע₪2 ,ת20001ק)ע0? 66606ת
. (מסשסע8 ,פת1ם8ס1ט)02? 66666ת
. (צ₪ע6ת6 ,פת1ם08ס1ט)02? 66006ת
. (צשעסת0 ,808+)202 66006ת
תכנית לוגית מ-1 - המלצת מזון
את שתי הפיסקאות הראשונות, המתחילות במילה 6488, ניתן לכנות בשם כללים או חוקים
(165נת) לאזכילה נכונה. הפיסקאות, שמתתילות במילים זס) 66066ת, 5מוגות0ס6, הן עובדות
(18015) הכוללות מידע על מרכיבי המזון. לסדר כתיבתן של הפיסקאות אין כל חשיבות, ולכן
כתבנו אותן בסדר שביטא את תהליך החשיבה הלוגית.
התכנית פשוטה וברורה. המשימה מתבטאת באמצעות המילה 69418, שמתארת את היחט בין
קבוצת האוכלוסיה, כגון ילדים או מבוגרים, לבין המזון 006". המילים: זס 66666ם, 5ח191חסס,
מבטאות את היחס בין המיון 46 לבין המרכיב 1זַת816416ח1. שתי הפיסקאות הראשונות
29
מתארות באמצעות המילים 1 (הסימן "-:") ו-פא4 (הסימן "") את הקשרים הלוגיים בין
היחסים זט 66666ת, 5חו18חסס, 6415, הפיסקאות האלה מספקות את הידע הדרוש, שעל פיו
המחשב יוכל להסיק את המסקנות.
המשימה, דהיינו, המלצת מטון, מתבצעת באמצעות הצגת שאילתה למחשב. בתגובה, המחשב
מציג את ההמלצה. תהליך קבלת התשובה נסתר מהמשתמש. אמנם, יש אפשרות שהמשתמש,
אם ירצה בכך, יעקוב אחר תהליך חישוב התשובה באמצעות ההוראה "עקוב-1:8906* (ראה סעיף
6 אס המשתמש רוצה לקבל הסברים ונימוקים להמלצות שהתקבלו, ניתן לעצב את מערכת
הייעוץ בצורה של מערכת מומחה (וח916ַע5 זזסקאם). מבנה גמיש של נתונים מאפשר "להלביש"
על תכנית של פרולוג מנגנון מיוחד, המכונה בשם קונכיה ([5161) של מערכת מומחה (בנושא זה
נדון בחטיבה האחרונה).
נציג שאילתות ונעיין בתשובות.
וו בכר הק
| שאילתה | . (6865)60116,2006 -? |
| | ]₪686 = 6ססק |
| תשובות | ;1% = 8ססט |
| | ;8 = 6ססע |
| | 1 = 6ססע |
|
| שאילתה | . (008 ,1%ט6865)88 -? |
ן | = 6ססע |
| תשובות | = 6ססע |
| ן . = 6סספ |
וו הנוור
איור מ-2 - המלצת מזון: שאילתות ותשובות
בהמשך הספר נביא גירסה נוספת של התכנית הזאת (ראה תכנית 2006 בפרק 7).
את המונחים, כגון: יחס, עצם, משתנה, שבהם נעזרנו בסעיף זה, נלמד ביתר הרחבה בפרק 5.
מקורם של מונחים אלו בלוגיקת היחסים, אשר אותה נלמד בפרק 6. את הידע להמלצת המון
הצגנו באמצעות חוקי אכילה נכונה. סקירה של מבנה החוק נביא בסעיף הבא. את נושא החוק
נלמד בהרחבה בפרק 7.
לסיכום נאמר, שתהליך של תכנות לוגי קצר ויעיל בהרבה מתהליך תכנות פרוצדורלי. פשטותו
ובהירותו גורמות לשיתוף פעולה בין המתכנת לבין המשתמש ומקילות על עבודת הכנת התיעוד
למערכת התוכנה.
2. ייצוג ידע באמצעות עובדות וחוקים
המחשביס הראשונים התמחו בחישובים מתמטיים. היתה לכך סיבה טובה: החישובים התבססו
על נוסחאות, שניסוחן היה מדויק וחד-משמעי. צריך היה רק לתרגם את הנוסתאות האלה
לשפה מדוליקת אחרת: שפת תכנות.
10
ו .שר -"""""" ו
לעומת זה, את הידע אין מבטאים בנוסתאות, אלא בשפה מדוברת, כגון עברית או אנגלית.
שפות אלו, המכונות גם שפות טבעיות, אינן מדויקות. מבחינה תחבירית הן בנויות על פי כללים,
אבל יש בהן יוצאים מן הכלל, שמספרס רב למדי. מבחינה סמנטית יש .בהן עירפול
ודו-משמעויות, ריבוי גוונים, ביטוייס עקיפים ואי דיוקים למיניהם.
מכאן, שעל מנת לעבד וליצור ידע באמצעות המחשב, עלינו לבחור דרך ברורה וחד-משמעית
כדי לייצג ידע. במילים אחרות, עלינו לבתור מודל מתאים לייצג ידע. לשם כך ניעזר במונחים
של לוגיקת היחסים (אשר אותה נלמד בפרק 6). את הידע נציג באמצעות עובדות וחוקים.
- העובדות ישמשו לייצוג עצמים ולתאור תכונותיהס והיחסים שביניהם.
- החוקים ישמשו להגדרת תכונות ויחסים חדשים על בסיס התכונות והיחסים
הקיימים.
את החוק נכתוב באופן הבא: את התכונה שהחוק מגדיר נכתוב בראש; את העצמים, שמהווים
בסיס להגדרה, נכתוב בהמשך. את הראש ואת ההמשך נקשור באמצעות מילת-קשר "אם" 1).
הדוגמה שלהלן מתארת את תרגומו של "סיפור קיץצ" לעובדות וחוקים של מודל לייצוג ידע.
בוו ו ה
| סיפור קיץ |
שו הממחה תורוק הווה ממ ה
| בשפה מדוברת | באמצעות חוקים |
ו וקוק הממו
| בקיץ חם. | חם אם קיץ. |
==
| כשחם, הולכים לים. | ים אם חם. |
שוחים אם ים. |
מבלים אם ים. |
עושים חיים אם ים. |
| בים שוחים ומבלים,
| ובקיצור - עושים חיים.
איור מ-3 - ייצוג ידע באמצעות חוקים
כמובן, שאין זו חובה להציג את המשפט המילולי "בקיץ חם", דווקא כחוק "חס אס קיצ". בשל
הרבגוניות שלו, ניתן היה להציגו באמצעות חוק אחר, למשל: "קיץ אם חם", ניתן היה גם להציגו
כעובדה: "בקי חס". העדפנו את החוק "חס אס קיץצ" מטעמי שמירת קשר לוגי פורמלי, אשר
משמעותו תוברר כשנבנה שרשרת של מסקנות (ראה איור מ-7).
נמשיך בסיפור הקיצ:
כשווורררר רכב תפסכ הההכרהכרהכרר ב ו
| המשך סיפור קיץ |
|| בשפה מדוברת | באמצעות עובדה |
=
| הקיץ בא. | ויץ. |
1
איור מ-4 - ייצוג ידע באמצעות עובדה
31
גם את המשפט המילולי "הקיץ בא" ניתן היה להציג בצורות שונות. הסייבה, אשר לפיה בחרנו
להציגו באמצעות עובדה "קיץ" תובהר בסעיף 4, כשנדון בנושא הסקת מסקנות ובניית שרשרת
של הוכחה (ראה איור מ-7).
3. מרכיבים של תכנית לוגית: עובדה, חוק, שאילתה
לפנינו תכנית לוגית, שנכתבה בתעתיק של הפרולוג העברי. הסימן ":-" מסמל את מילת הקשר
"אם" (המילה "אם" היא תרגומה של המילה 1, והסימן :-* הוא תמונת ראי של הסימון
המקביל בפרולוג האנגלי).
| חם :- קיץ. | |
| ים :- חם. | |
| שוחים :- ים. ן חוקים |
| מבלים :- ים. | |
| עושים חיים :- ים. | |
| קיץ. | עובדה |
[ שש
תכנית לוגית מ-2 - סיפור קיץ
תכנית לוגית מורכבת מעובדות, חוקים ושאילתה. לחלק התכנית שמכיל עובדות וחוקים,
קוראיס בשסם מסד נתונים (241498%) או מסד ידע (8456 6686!אוסת16). נציין, כי בשם "תכנית"
משתמשים גם כשמדובר על אוסף של עובדות וחוקים בלבד, ללא השאילתה. המינוח בתחום
התכנות הלוגי עדיין איננו ממוסד, ועל-כן ייתכנו מונחים שונים לשם ייצוג של מושג זהה. על
כל פנים, נשתדל לשמור על המינוח הבא: אוסף, אשר מכיל חוקים, נכנה בשם מסד ידע או
בסיס ידע. אוסף, המכיל עובדות בלבד נכנה בשם מסד נתונים או בסיס נתונים.
את העובדות והחוקים מחסינים בקובץ, אשר ישרת את מערכת הפרולוג בעת ההרצה. "הרצה
של תכנית לוגית" הינה הצגה של שאילתה וקבלת תשובה, אשר מתבסטת על העובדות והחוקים.
השאילתה היא המרכיב השלישי של התכנית הלוגית.
נציג שאילתות על-פי מסד הידע של "סיפור קיץ" ונעיין בתשובות:
| שאילתה || תשובה |
77|
| קחן ל | כן |
| חם ? | כן |
| ים ? | כן |
| שוחים ? | כן ן
| מעתזפים ? ן לא ן
| מבלים ? | כן |
| שותים קולה ? | לא |
| עושים חיים ? | כן |
איור מ-5 - סיפור קיץ: שאילתות ותשובות
22
תכנית לוגית מיישמים באמצעות שפת התכנות פרולוג. הקו התחתון מיועד לחבר מילים, בדומה
למקף המחבר בשפה הטבעית. משתמשים בו בפרולוג העברי והאנגלי כאחד: שותים. קולה,
עושים חלים, זס). 66666ת.
4. איך מסיקים מסקנות
את התשובה החיובית לשאילתה "קיצ!", מקבל המחשב מכיון שמסד הידע "סיפור קיץ" מכיל
את העובדה "קיץ". את התשובה החיובית לשאילתה "חס!" מקבל המחשב בדרך הסקה לוגית.
תהליך ה נלמד בצורה מפורטת בפרקים 7 ו-10; כאן נביא הסבר תמציתי. נעיין בחוק: "חם
:-קיץ" (נזכירכם כל ":-" הוא הסימן התחבירי למילת הקשר "אם"). התשובה החיובית לשאילתה
"חס" התקבלה כתוצאה משיקולים אלו: נתון כי הגיע הקיץ (העובדה "קיץ"), ונתון כי בקיץ
חס (החוק "תחם :-קיץ"). מכאן נובע כי אכן חס (במושג "נובע" נדון בפרקים 2 ו-3).
| נתונים | קיץ. |
| | חם אם קיץ. |
| מסקנה | חם |
|
איור מ-6 -- הסקת מסקנות לוגיות
לנתוניס שבאיור מ-6 יש שם נוסף: אקסיומות, או הנחות יסוד. גם למסקנה שבאיור זה יש שם
נוסף: משפט. על כך נרחיב את הדיון בפרק 4.
התשובה השלילית לשאילתה "משתלפים!" מציינת כי למחשב אין ידע שגור (56ת56 מסותנחסס).
אם לא נאמר במפורש, באמצעות העובדה, כי אכן משתזפים, ואס אין חוק שעל פיו ניתן להסיק
כי משתזפים, פרוש הדבר שלא משתלזפים. הוא גם הדין לגבי השאילתה "שותים. -קולהז".
להלן שרשרת של מסקנות שהוסקו על פי העובדה והחוקים של התכנית הלוגית "סיפור קיצ":
ונ ו
ר------= שוחים
| קיץ --=-חם -----ים --ך ----->- מבלים
------=- עושים חיים
[בשכמ-ב- בש שוב שד בבש ונ ה ל וב שת 9 2 בר ל .8 ל המ שו שבכש םשר ב ב. |
איור מ-7 -- שרשרת של מסקנות
בנושא של הסקת מסקנות לוגיות נדון בהרחבה בחטיבה הראשונה של הספר. את הלישום של
תהליך הסקת מסקנות על ידי מערכת הפרולוג נציג בפרקים 7 ו-10.
את הנאמר לעיל נסכם כך:
- תכנית לוגית היא אמצעי להצגת ידע למחשב ולהסקת מסקנות בדרך לוגית על ידי
המחשב.
- תכנית לוגית מורכבת מעובדות, חוקים ושאילתות.
33
מילת
- החוק של התכנית הלוגית בנוי בצורת פסוק, המורכב משני פסוקים באמצעות
הקשר "אם" 19).
0
על תהליך הבנייה של פסוקים מורכבים באמצעות מילות קשר נדון בפרק 1 במסגרת של לוגיקה
פסוקית.
5. התאמה והצבה
נחזור לתכנית "המלצת מון" ונתאר איך התקבלה התשובה הראשונה לשאילתה:
.(0060- ,6415)6116-?
המילה 5006 הינה משתנה, המסמל את המוון, שעליו יש להמליץ. משמעותו של המשתנה
בתכנית לוגית, ובפרט בתכנית פרולוג, שונה ממשמעותו בתכנות הפרוצדורלי. השם "משתנה"
בתכנות הפרוצדורלי הוא כינוי נוסף לתא הזכרון. אשר על כן, להוראת בייסיק: 1+<=א, יש
משמעות של השמה (1ח86ח45518). במילים אחרות, ההוראה הזאת גורמת למחשב להגדיל ב-1
את התוכן של התא %.
בתכנות לוגי, לביטוי 1+<=א כלל אין משמעות. המשתנה הינו משתנה לוגי, כלומר הוא מסמל
עצם שאיננו ידוע, ואחת המטרות של תכנית לוגית היא לגלות את העצם הזה. הגילוי נעשה
באמצעות ההתאמה וההצבה. כאשר מציגים למערכת הפרולוג את השאילתה, היא מאתרת את
החוק המתחיל בביטוי (6815)00116,:000. האיתור נעשה על ידי בדיקת התאמה של התווים
במילה 6915 של השאילתה, אל המילה 6818 של החוק. המילה השנייה - 68116 של השאילתה
תושווה אל המילה השנייה - 6116 של החוק, וכן הלאה. אחר כך עוברת המערכת לביטוי:
(1מ816016ח1, 006-)5ה00141. היא מאתרת מבין העובדות את העובדה (ת:016זק,681ו5)0ת181ח00,
ומציבה את העצם ₪631 תחת המשתנה 006ת, ואת העצם חוסוסזק תחת המשתנה 1ח66:6זפת1.
ההצבה תחת המשתנים 006 1-זח6016זקַח] נעשית בכל אחת מהופעותיהם בתוך החוק.
לאחר ההצבה, החוק נראה כך:
, (ת661סעק ,6)₪68%6ת581ת60 -:(118,₪686ת6805)0
. (תסשסיש ,ת061ס0סעק)02] 6806סת
את המשמעות הלוגית של החוק הזה ניתן לבטא באמצעות המשפט הלשוני הבא:
תנסססעק פת581ת00 ₪086 10 ₪680 6865 62116
.ם09%עש ע0+ 66606ת 18 תנסססעק 6תה8
מערכת הפרולוג כבר "יודעת" כי בשר מכיל פרוטאינים, שהרי היא איתרה את העובדה
(ת0!61זק ,631וח)5ת181חס6. עכשיו היא מאתרת את העובדה (הואסזם ,חו016זק)זס). 660660ם,
מאמתת את העובדה, כי הפרוטאין דרוש לשם גידול, ומכאן מסיקה כי ילד אכן אוכל בשר.
שלבי האיתור וההצבה מתוארים באיור מ-8:
4
קששהכרישקבהר הורכההוננרופורור רו ו סור
1| שאילתה | | . (6865)062116,20068 7- |
ו
2| חוק | -: (0068ע, 6805)62116 |
| | , (5ת826616ת1, 006 ) 5ת581ת60
| | . (ם)שסתש, %6ת26616שת02)1+? 66666ת |
777-ה
3| עובדה | (ת561סעק,₪08%6)פת81טת0ש |
ינווי ה ו
4| הצבה | תנסססעק = 6ת826616ה1 ,₪686 = 6ססק |
וי וכ ו
5| עובדה | (םפשסעש, ת0661עק)02? 66606ה |
הוה הוה =
6| תשובה | 6 = 008קע |
| מ בב ב ]1
איור מ-8.-- שלבי קבלת התשובה
המושגים "התאמה" ו"הצבה" יידונו באופן מפורט בפרק 10. עידון תהליך ההתאמה, המכונה
בשם איחוד, יידון גם הוא בפרק זה.
את תהליך קבלת התשובה לשאילתה בלשון חופשית ניתן לתאר כחיקוי של תהליך הסקת
מסקנות בדרך לוגית על ידי האדם.
6. נסייגה
המחשב, שבנוי על פי הארכיטקטורה של פון-נוימן, מבצע את הפעולות באופן סדרתי, כלומר
בזו אחר זו. משתמע מכאן, כי תכנית המחשב מתבצעת בצעדים בדידים, המוגדרים באופן
חד-משמעי. אין להתיר מצב, שבו התכנית נמצאת מול אפשרויות רבות, וללא הוראה ברורה
כיצד עליה לפעול. במילים אחרות, תכנית שנועדה לביצוע במחשב של פון-נוימן, היא תכנית
דטרמיניסטית.
לעומת זה, תהליך הסקת מסקנות בדרך לוגית איננו תהליך דטרמיניסטי. אנו עומדים "במבוכה"
מול אפשרויות רבות, מנסים, טועים, נסוגים, מנסיסם אפשרות אחרת, וחוזר חלילה.
אנו עומדיס מול מצב כזה: מחד, תכנית לוגית היא בעקרון תכנית לא דטרמיניסטית (על כך
נדון בפרק 10); מאידך, תכנית לוגית מיושמת באמצעות שפת פרולוג במתשב של פון-נוימן,
הפועל באופן דטרמיניסטי. לכאורה, נקלענו למבוי סתוס.
שפת הפרולוג פותרת את הבעיה באמצעות הדמיית תהליך לא-דטרמיניסטי של חיפוש אחר
תשובה. ההדמיה נעשית בשיטות ובטכניקות שונות (ראה למשל, פרק 10). חלק מהשיטות הן
נחלת מערכת הפרולוג וחלקן יזומות על ידי המתכנת. אחת השיטות, השייכת למערכת הפרולוג,
היא נסיגה.
כאשר מערכת הפרולוג מגיעה למבוי סתום בעת חיפוש אחר תשובה, היא מבטלת את
הצעד האחרון אשר ביצעה, ובודקת האם קיימת אפשרות להמשיך את החיפוש בדרך
אחרת. פעולה זאת נקראת נסיגה (2ת:א040%1:80).
55
נביא דוגמה. בעת חיפוש אחר תשובה לשאילתה (006- ,011ו6415)40-? פונה פרולוג אל החוק
השני, אשר התחלתו תואמת לשאילתה. מן הביטוי (11,=006ט6413)80 פרולוג פונה אל הביטול
(1ח6016ז8ת006,1-)5ת181ה60, ומבצעת את ההצבה:
תנסססעק = ס6ת6616עשת1 ,% = 006ע
מאחר והמערכת איננה מאמתת את הביטו? (עשז6ת6,ת0161זק)זס). 66666ה, היא מבצעת נסיגה:
היא מבטלת את ההצבה אשר ביצעה, ומבצעת הצבה אחרת:
מט68101 = 6ת6616עשת1 ,11% = 6ססק
גס את ההצבה הזאת היא מבטלת. ההצבה הבאה:
הסט = 6ת60610ע82ת 1 ,6₪0%580165ט = 6ססק
מובילה אל התשובה:
858 = 6ססק
לסיום נציין, כי ההצבה תחת המשתנה איננה מתבצעת למעשה. כלומר, תוכן כתובות הזכרון
איננו משתנה. ההצבה נעשית על ידי ציון קשר בין כתובת המשתנה לבין כתובת העצס שהוצב
תחתיו.
1| פאילתה | . (68%8)86016,0000 -7 |
2 חוק | -: (0008, 9865)86816 |
, (%ה856010ה1, 5)2006ה6070581
| | (עָאַט6ה6, 6ה806616ה05)1] 66666ת |
3| עוברה | (ח561סמק,5)₪686ה581ה60 |
4| הצבה | ה661סתק = 6ה6616ִתאַה1 ,₪686 = 6ססק |
5| בדיקה | | 7 (עְאַע6ה6,ה661סמק)עס] 66666ת |
| נסיגה
3| עוברה | (₪שט5)₪11%,68161ה681הסס
4| הצבה 081010 = 6ה6816קה1 ,א₪11 = 6ססק |
5| בריקה | | 7 (עְאַת6ה6,שט02)08101] 66666ה |
| נסיגה
3| עוברה | (8ת158₪1ט ,5)0686580105ה581ה00
4| הצבה | 88 = 66165ע2שה1 ,0680580108 = בססע
5| בריקה | 71 (עקַת6הס, 8ה158₪21ט)02] 6666סת |
6| עוברה | . ( עָאַעסח0, 5ה02)916821] 666פטת
7| חשובה | | 8 = 2006 |
איור מ-9 - נסיגה
6
7 סיכוס: סקירת הנושאים אשר *יידונו בספר
לסיום נציין את עיקרי הדברים אשר למדנו, ואת הקשרס בהמשך הספר. נסקור גם נושאים
אחרים, אשר נלמד בהמשך.
א. פרולוג הינה שפה לייצוג ועיבוד ידע. באמצעותה ניתן להגדיר ולנתח קשרים לוגיים בין
עצמים שונים. על קשרים לוגיים נדון במסגרת של לוגיקה פסוקית בפרקים 1, 2, 3.
פרולוג הינה שפה הצהרתית. התכנית של פרולוג מספקת למתשב ידע בנושאים רלוונטיים
מבלי לפרט את הצעדים לביצוע המשימה. את תהליך הביצוע ניתן לתאר כתהליך הסקת
מסקנות בדרך לוגית. נלמד זאת בפרק 4, במסגרת הדיון בלוגיקה פסוקית.
המידע הרלוונטי מיוצג בתכנית פרולוג באמצעות עובדות. את המידע שואביס באמצעות
השאילתות. על העובדות והשאילתות של פרולוג נדון בפרק 5.
מקורו של פרולוג - בלוגיקת היחסים. נושאים של לוגיקת היחסים, הרלוונטייס לפרולוג,
יידונו בפרק 6.
את הידע מבטאיסם בתכנית לוגית, ובפרט בתכנית של פרולוג, באמצעות חוקים. את החוק
של פרולוג, מבנהו והשימוש בו נלמד בפרק 7.
מבנה הנתונים של פרולוג הינו גמיש ועשיר. לא ניתן היה להרחיב את הנושא במסגרת
פרק זה. את מבני הנתונים נלמד בפרק 8, שבו נכיר גם את פעולות החשבון שניתן לבצען
בפרולוג.
מבנה, המכונה בשם רשימה, מאפשר להציג קבוצת עצמיס בתור עצס אחד. הרשימה של
פרולוג שונה מרשימה של שפה פרוצדורלית בכך, שאין מצהירים על אורך הרשימה וסוג
איבריה. הרשימה הינה באורך כלשהו וכוללת בתוכה איברים מסוגים שונים. על מבנה
הרשימה ואפשרויות השימוש בה נדון בפרק 9.
בפרק 10 נדון במושגים של הצבה, התאמה ואיחוד, ונבנה מודל חישובי של תכנית לוגית.
בפרקים 11, 12 נדון במרכיב של מערכת הפרולוג, המכונה בשס פרדיקט המערכת, אשר
תפקידו לייעל את תהליך התכנות הלוגי.
בחטיבה הרביעית נציג אוסף של תכניות יישוס בנושאיס שוניס ונסביר את דרך בנייתן
והפעלתן.
17
חטיבה ראשונה:
מבוא ללוגיקה פסוקית
תכנות בפרולוג הינו תכנות באמצעות לוגיקה. תכנית של פרולוג נבנית על-פי כללים לוגייס,
ותהליך הפעלתה מתפרש כתהליך של הסקת מסקנות בדרך לוגית. בתטיבה זו ובפרק 6 של
החטיבה הבאה, נדון בתשתית הלוגית של פרולוג.
לוגיקה היא שפה, אשר משתמשים בה לייצוג מידע. מבחינת המבנה היא שפה פורמלית, הבנויה
על-פי כללי תחביר ברוריס וחד-משמעיים וללא יוצאי דופן. מבחינת עושר הביטוי היא "ישרה
כמו סרגלי: אין בה רמזים, עירפול וריבויי משמעות, שהס נחלת שפות טבעיות. לכל פיסת מידע,
המיוצג באמצעות לוגיקה, יש משמעות של אמת או משמעות של שקר, ורק אחת מהן, וישנסם
כלליס ברורים לקביעת המשמעות הזאת.
בחטיבה הראשונה נדון בנושאיס של לוגיקה פסוקית, כלומר לוגיקה, אשר בה המשפט הלשוני
על כל חלקיו (נושא, נשוא ומושא) הינו היחידה הקטנה ביותר שאינה ניתנת לחלוקה. במסגרת
זו נכיר את המושגיס של הוכחה ושל מערכת היסק. את הנושאים אלה נארגן באופן הבא:
פרק 1: פסוק וערך אמת שלו
בפרק זה נעסוק בתחביר כלומר, בשאלה איך בוניס את ביטויי השפה ממרכיביה השונים.
מרכיבי השפה שנלמד בפרק זה הם פסוק אטומי, פסוק מורכב, קשריס (קי פתוחה, שי
קמוצה).
בפרק זה גם נלמד לקבוע אם פסוק נתון הינו אמית? (₪06!) או שיקרי (₪8156). כל פסוק מייצג
מידע כלשהו ומכאן, שכדי לקבוע את משמעות המידע עלינו לקבוע את אמיתות הפסוק.
הקביעה בדבר אמת או שקר היא קביעה סמנטית. הסמנטיקה הינה הקשר בין האלף-בית של
השפה לבין מה שנאמר בה. במילים אחרות, היא המשמעות של מה שנאמר בעזרת הסמלים
התתביריים של השפה.
39
פרק 2: יחסים טמנטיים בין שני פסוקים
משמעות דומה ניתן להציג בדרכים שונות. אפשר לומר: "אלך לים", ואפשר גם לומר: "לא יתכן
שלא אלך לים". אם נתעלם מגוונים ורמזים המאפייניסם את השפה הטבעית, ניתן לראות כי
שני הפסוקיס האלה מבטאים מידע זהה. הפסוקים האלה הינם שקולים, ובכך נדון בפרק זה.
ישנס פסוקיס בעלי משמעות קבועה, כמו למשל, הפסוק: "היוס יש גשם או אין גשסם". פסוק זה
מכונה טאוטולוגיה, והוא תמיד אמיתי. הפסוק אשר תמיד שיקרי, מכונה בשס סתירה.
נכיר גם את היחס הסמנטי בין שני פסוקים, המתבטא באמצעות המושג נובע. מושג זה נפוץ
בחיי יוס-יוס. בפרק זה נכיר את הבסיס הלוגי שלו.
פרק 3: יחסים סמנטיים בין פסוק לבין קבוצה של פסוקיס
העובדות והחוקים של פרולוג, שמייצגיס את הבעיה, הס קבוצה עקבית של פסוקים והשאילתה
היא פסוק אשר נובע ממנה. בפרק זה נדון במושג של קבוצה עקבית ונבחן פסוקים הנובעים
מקבוצה זו.
פרק 4: מנגנון ההוכחה של לוגיקה פסוקית
תכנית של פרולוג ניתן להציג כמערכת היסק, ואת חישוב השאילתה ניתן לתאר כתהליך של
הוכחה על פי כללי היסק לוגיים. בפרק זה נדון במושג של היסק. תורת ההיסק עוסקת
בהוכחות. ההוכחה היא כלי לאימות הפסוק. במילים אחרות, כדי לדעת כי פסוק הוא אמיתי,
עלינו להוכיח אותו.
מתוך כללי ההיסק, אשר נכיר, נקדיש תשומת לב מיוחדת לכלל הניתוק (5ח6חסק 5ט0סהז), בשל
חשיבותו בהקשר לפרולוג.
מקורו של פרולוג בלוגיקת היחסים, שהיא שפה עדינה ועשירה יותר משפה של לוגיקה פסוקית.
נעיין בשני הטיעוניס האלה:
- כל אדם הוא בין תמותה.
- סוקרטס הוא אדם.
מטיעונים אלה נובעת המסקנה, כי סוקרטט הוא בן-תמותה. השפה של לוגיקה פסוקית, אשר
בה הפסוק על כל חלקיו הוצג כיתחידה אחת, הינה דלה מכדי לטפל בהסקת.מסקנה זו. בפרק
6 בחטיבה השניה, נכיר את לוגיקת היחסים ובאמצעותה נציג חלקים שונים של פסוק.
10
לסיוס נציג את הטיעוניס המפורסמיס שלעיל בתעתיק של פרולוג:
בן-תמותה(א) :- אדס(א).
אדס(סוקרטס).
!-בן-תמותה(סוקרטס).
כן
נושאי הדיון בלוגיקה נבחרו בהתאם למיקומס וחשיבותם במסגרת של פרולוג. לקוראים, אשר
עניינסם בלוגיקה חורג ממסגרת זו, נמליץ לפנות לספרי לימוד, אשר כמה מהם הוזכרו ברשימה
הביבליוגרפית (למשל [1956,תסזטת0)).
21
דר
פרק 1
פסוק וערך-אמת שלו
בפרק זה נדון במושגים הבאים:
- פסוק אטומי,
- ערך-אמת של פסוק,
- פסוק מורכב,
- קשרים לוגיים,
- לוח-אמת של קשרים.
1 ערכי אמת םאד ו-55 ]ג
פסוק הוא משפט תחבירי בשפה כשלהי, אשר ניתן ליחס לו משמעות של אמת או משמעות של
שקר, ורק אחת מהן.
נעיין בדוגמאות אלו:
- לונדון היא בירת אנגליה (אמת).
- סוקרטט הוא יווני (אמת).
- המספר 2 קטן מן המספר 1 (שקר).
לא כל משפט לשוני הוא פסוק. לא ניתן למשל לייחס את המשמעות של אמת או שקר לשאלה
"מה השעה!" או לקריאה "אוי וליו גם משפטים כמו: "תן לי את הספר", או "לך לעזאזליי
(המכונים ציווים), אינם ראויים לתואר אמת או שקר ולכן אינם זכאים להקרא בשם פסוק.
לנוחותנו ניעזר במונח ערך אמת של פסוק. קיימים אם-כן, שני ערכי אמת:
- אמת אותו נהוג לסמן ב-1 (ראש המילה 18128 שמשמעותה "אמיתלי).
- שקר אותו נהוג לסמן ב-] (ראש המילה 5155 שמשמעותה "כוזב" או "שקריי).
את הנאמר לעיל נסכם כך: משפט תחבירי הוא פסוק, אם ניתן לייחס לו ערך-אמת אחד ויחיד:
ד (אמת), או = (שקר).
42
] ₪
אין אנו מניחיס שערך האמת של כל פסוק ידוע לנו. נתבונן למשל במשפט הלשונ:
האיש הזה גנב אבטיח.
המשפט הזה בהחלט ראוי לתואר אמת או שקר, ורק לאחד מהם, ולכן הוא פסוק. נדון בערך
האמת שלו: אם האבטיח לא נגנב, אז ערך האמת של הפסוק הזה הוא = (שקר); אם הוא כן
נגנב ואס על פי עדי ראיה האיש הזה הוא הגנב, יהיה ערך האמת של הפסוק הנ"ל ד (אמת).
ומה הוא ערך האמת של הפסוק אם האבטיח אכן נגנב ואין עדי ראיה! במקרה זה לא נדע
את ערך האמת שלו. נסכם ונאמר, כי המשפט הלשוני "האיש הזה גנב אבטיח" הוא פסוק, שהרל
יש לו ערך-אמת אחד ויחיד: 1 (אמת), או = (שקר), אף על פי שהערך הזה אינו ידוע לנו.
תרגיל 1.1
א. התבונן במשפטים הבאים וקבע אילו מהם פסוקים ואילו אינם פסוקים:
1 *יורד גשם.
2 מה קרה!?
3 בשנת 1642 בנה המתמטיקאי הצרפתי פסקל את מכונת החישוב הראשונה.
6 הסתלק מכאן.
5 המחשב הראשון 140אם נבנה בשנת 1946.
66 גודלו של 146אם היה: 30 מטר אורך, 3 מטר גובה, 1 מטר רוחב.
7 קדימה, אל מתשבי הדור התמישי!
ב. התבונן בפסוקיס הבאיס וקבע על פי מיטב הבנתך, מהו ערך האמת של כל אחד מהם:
1 העיר תל-אביב נוסדה בשנת 1936.
2) הקיסרית ליוויה הרעילה את בעלה אוגוסטוס.
3 אי אפשר ללמוד מבלי להתאמץצ.
2 פסוק אטומי, פסוק מורכב, קשרים
נעיין בפסוקיס הבאים:
- אני נוסע לים.
- אני נוסע לטיול.
בהמשך חטיבה זו נעסוק בפסוקיס המורכביס מפסוקים אחרים, כדוגמת פסוקיס אלה:
- אני נוסע לים וגם נוסע לטיול.
- אני נוסע לים, או נוסע לטיול.
- אני לא נוסע לים.
- אם אני נוסע לים, אז אני לא נוסע לטיול.
בהמשך נלמד, כי תכנית לוגית היא אוסף פסוקיס הקשורים אחד למשנהו. כדי להבין את
השיטות לבניית התכנית ודרכי הטיפול בה, נבנה שפה, אשר בניגוד לשפה הטבעית תהיה חסרת
עירפול, רמזים, וריבויי משמעוזיות. תהיה זו שפה פורמלית, הבנויה על פי כללים מוגדריס ובעלת
תחביר חד-משמעי לחלוטין. באמצעותה ניתן יהיה לייצג פסוקים של שפות טבעיות ולהבין את
הדרך בה אנחנו קושרים פסוק אחד למשנהו.
פסוק של שפה יכול להיות בנוי מפסוקים "פשוטים" יותר, כדוגמת הפסוק: "אני נוסע לים וגס
נוסע לטיולי', או בניסות אחר: "אני נוסע לים וגם לטיול". פסוק כזה הינו פסוק מורכב. ישנס
פסוקים, אשר לא ניתן לפרקס לפסוקים "פשוטים" יותר מבלי לשנות את משמעותם (נסו למשל
>3
/ לפרק את הפסוק "אני נוסע לים"). פסוק, אשר לא ניתן לפרקו יקרא פסוק יסודי או אטומי.
המילים שבאמצעותן בונים פסוקיס מורכבים: וגם, או, לא וכן הלאה, יכונו קשרים (קי פתוחה
ו-שי קמוצה). להלנ בשנמת-הקשרבים שבהם-רוה...
[|הכינוי הי
הסימון | הסימון ה
| השלילה | די | דסא | ם88610סת |
| הגימום | א | פאג | תס61סתט[תס6 |
| האיווי | צ | 08 || מ10ס6מט8151 |
| האימוז | - | אמזו-ע1 | מ1₪01168610 |
| האימום -אם | > | א1-עא0ס-פא4-ת1 | 06מ00010816 |
איור 1.1 - קשרים לוגיים
הקשרים סאג, 08, אפחד-ת1, <]ן-צזאס-כאג--1 הם קשרים דו-מקומיים (6011%65תחסס),
שכן הם יוצרים פסוק חדש משני פסוקים נתונים. הקשר 01א, המכונה קשר השלילה, הוא
קשר חד-מקומי.
בהמשך נלמד לקבוע ערך-אמת של פסוק מורכב, על-פי ערכי-אמת של הפסוקים שמהסם הוא
מורכב. לצורך זה נסמן את הפסוקים שמהם בנוי פסוק מורכב באותיות לועזיות קטנות: ל ,3
..... למשל, את הפסוק "אני נוסע לים" נסמן ב-8 ואת הפסוק "אני נוסע לטיוליי נסמן
ב-ט. את הפסוקים שלעיל, המורכבים מהפסוקים 8 ו-פ, נסמן כך:
| הפ סו ק | הפסוק בתעתיק לוגי |
| בלבדיה |₪ סימון לוגי |עם סימון אנגלי |
| אני נוסע לים וגם לטיול | ל3/: | ט פאג 8 |
ו
| אני נוסע לים, או לטיול | סצג | פ 08 |
| אני לא נוסע לים | ג | 8 דסא |
ר---------------------+----------=
| אם אני נוסע לים, אז אני לא | (סר) -% | אפזוז 8 18 |
| נוסע לטיול | | (ס דסא)
איור 1.2 - דוגמאות של שימוש בקשרים
44
נעזר בדוגמה נוספת. נסמן ב-8 את הפסוק "השמש זורחת". נסמן ב-ט את הפסוק "השקדיה
פורחת". נבנה פסוקים, המורכבים מ-8 ו-ס באמצעות הקשרים.
| ה פ ס + ק | הפסוק בתעתיק לוגי |
/-
| ב ש ב די חח |₪ סימון לוגי | עם סימון אנגלי |
|השמש זורחת והשקדיה פורחת | פא% | ספ פאג ב|
|השמש לא זורחת, וגם השקדיה לא | (סר) / (708) | | פאג (8 דסא) |
| פורחת | | (ס עסא) |
וקווו טי המוק ההתתממיט. טסיווט ההמקהקוואם.
|אם השמש זורחת, אז השקדיה | ל--4 | ס אמח 8 קז|
| פורחת | | |
7-ה -הה-ה-הה--------]
|אם השקדיה לא פורחת, אז השמש | | (78)--(פה) | אממך (ס עסא) שצ|
| לא זורחת | ן (8 עסא) |
ו
איור 1.3 - דוגמאות של שימוש בקשרים
נתבונן בשני פסוקים:
א. אני נוסע לים וגם לטיול.
ב. השמש זורחת והשקדיה פורחת.
את שניהס הצגנו בתעתיק לוגי באמצעות הפסוק: ט א 8. מחד - איבדנו ממשמעותם
המילולית. מאידך -- התרכזנו בקשר סא א, המאפיין את שניהם. השפה הפורמלית, אשר סימניה
הס אותיות לועזיות, קשרים וסוגריים, מכונה בשם לוגיקה פסוקית (סוּאָס] [גתסו11פסקסזק).
האותיות מסמנות את הפסוקים, הקשרים משמשים לבניית פסוקים נוספים והסוגריים שומרים
על סדר הקדימויות של הקשרים (בסדר זה נדון בהמשך). את הפסוק נסמן באות לועזית קטנה,
בין אם הוא אטומי ובין אם לאו; אס הפסוק אכן אטומי, נציין זאת במידת הצורך. את הפסוק
38 נכנה בשס שלילה של פסוק 8. את (6--פ)--((ס/ 9) (4ר-)) נבין כך: לפנינו פסוק, המורכב
מפסוקים 6,5,8 באמצעות הקשרים ר7/,/, /,+-,-+ ובאמצעות הסוגריים. הקשר +- בפסוק זה
מכונה הקשר הראש". נציין, כי בכל פסוק מספר הסוגריים השמאליים שווה למספר הסוגריים
הימניים.
תרגיל 1.2
לפניך פסוקים המסומנים באותיות 8, ט, 6, 4. קרא אותס בעיון והשב על שתי השאלות
שבהמשך:
8 האביר אוהב את הנסיכה. > האביר מציל את הנסיכה.
ט: הרשע חוטף את הנסיכה. הנסיכה מתחתנת עם האביר.
45
א. הפסוקים הבאים מורכבים מפסוקים 4, פ, 6, 6 ומיוצגים בתעתיק לוגי. כתוב אותם
בעברית.
.4/6 1
.6--6 2
3 (סדז)--(טרה).
6 0/ 5-84).
5 ((776)--(סרה))/(ט--(8ר7)).
ב. את הפסוקים העברייס שלפניך הצג בתעתיק לוגי בעזרת האותיות , 6, 6 0,8 והקשרים
המתאימים. היעזר בסוגריים במידת הצורך.
1 האביר מציל את הנסיכה, אם ורק אס הרשע חוטף אותה.
2) אם הרשע אינו חוטף את הנסיכה, והאביר אינו מציל אותה, אז הנסיכה אינה
מתחתנת עם האביר.
3 אם האביר אוהב את הנסיכה, אז אס הרשע חוטף את הנסיכה, אז האביר מציל
אותה.
6 אס האביר אינו אוהב את הנסיכה, או האביר אינו מציל את הנסיכה, אז הנסיכה
אינה מתחתנת עם האביר.
3 לוחות-אמת של הקשרים פאג, אס, דסא
את ערך האמת של פסוק מורכב קובעים מתוך ערכי-אמת של הפסוקים שמהם הוא מורכב
ובהתאם להגדרות שלהלן:
הגדרה 1.1
ערך-אמת של פסוק 3/5 (ט כ א זג 4) הוא 1 אס ורק אם לשניהם, ל-8 ול-ט ערך-אמת
7
את ההגדרה נלווה בלות המכונה "לוח-אמת של הקשר', אשר מתאר את ערך-אמת של ט/8
לכל צירוף אפשרי של ערכי-אמת של 8 ושל פ.
איור 14 - לוח-אמת של הקשר /
46
תרגיל 1.3
נסמן ב-8 את הפסוק: איתן אוהב את דנה.
נסמן ב-ט את הפסוק: איתן אוהב את רותי.
חבר של איתן הודיע לנו כי ערך האמת של הפסוק 43/ הוא ת. האם ניתן להסיק
חד-משמעית מי היא אהובתו של איתן, דנה או רותי! נמק את תשובתך.
הגדרה 1.2
ערך האמת של הפסוק פ'/ג (ט 08 ג) הוא 1, אם ורק אם, לפחות לאחד מהפסוקים
8 או ט יש ערך-אמת ד.
תרגיל 1.4
איור 1.5 - לוח-אמת של הקשר שי
נסמן ב-3 את הפסוק: בצפון יורד גשם.
נסמן ב-ט את הפסוק: בחרמון יורד שלג.
נמסר לנו מן השירות המטאורולוגי כי ערך האמת של הפסוק 6 שא הוא 7 וערך האמת
של הפסוק ט/8 הוא ת.
מה ניתן להסיק על מזג האוויר בצפון ובתרמון: נמק את תשובתך.
הגדרת 1.3
ערך האמת של הפסוק גר- (8 זסא) הוא 1, אס ורק אם, ערך האמת של ג הוא 5.
איור 1.6 - לוח-אמת של הקשר ד-
17
4 סדר קדימויות של קשרים,
בניית לוח-אמת של פסוק מורכב
בדומה לסדר קדימויות של פעולות החשבון (כפל קודם לחיבור), קיים גם סדר קדימויות של
קשרים. הסדר הוא:
| קדימות ראשונה | שלילה | |[ -- | עסא |
| קדימות שניה | גם | א | פא |
| קדימות שלישית | או |[ צ | הס |
איור 177 - סדר קדימויות של קשרים
הערה: נקדים ונאמר, כי הקדימות הרביעית היא של הקשר -- והקדימות החמישית היא של
הקשר -+.
על-פי סדר קדימויות זה מתפרש הפסוק 5ַ/אגַר- באופן חד-משמעי כך: ט'צ(גַר-). פירוש הדבר
הוא, שכאשר רוצים לחשב את ערך האמת של הפסוק הזה, יש לחשב תחילה את ערך האמת
של שלילת ג, ולאחר מכן לעבור אל לוח-אמת של הקשר 08.
נדגים איפוא, את חישוב ערך האמת של הפסוק ט/אר-. לצורך חישוב זה נבנה לוח הקרול
לוח-אמת של פסוק, אשר בו ירוכזו ערכי-אמת של פסוק מורכב בהתאם לצירופים שונים של
ערכי-אמת של פסוקים אטומיים המרכיבים אותו. לוח-אמת של הפסוק פַ/אר- נבנה על-פי
לוחות-אמת של הקשרים א ו-008 ובהתאם לשיקולים הבאים:
השורה הראשונה של הלוח:
אס ערך האמת של 8 הינו 1. וערך האמת של > הינגו ד,
אז על פי לוח-אמת של הקשר [01א, ערך האמת של ר- הינו =,
לכן על פי לוח-אמת של הקשר 08 ערך האמת של פ8/גר- הינו ד.
השורה השניה של הלות:
אם ערך האמת של ג הינו 1, וערך האמת של ט הינו =,
אז על פי לוח-אמת של הקשר 07א, ערך האמת של אַר- הינו ",
לכן על פי לוח-אמת של הקשר 08 ערך האמת של ט/גר- הינו ".
באופן דומה נבנה גם את השורה השלישית והרביעית של הלוח.
| ס'אַר- | ס |
איור 1.8 - לוח-אמת של פַ/גָר-
88
עתה נשנה את סדר הקדימויות של הקשרים ונעיין בפסוק (ט/ג)ר-. על מנת לוודא כי הפסוק
הזה שונה מן הפסוק הקודם, נבנה את לוח האמת שלו. את חישוב ערך האמת שלו נבצע באופן
הבא: תחילה נחשב את ערך האמת של הפסוק ט/ש8, ולאחר מכן נחשב את שלילתו של ט שג..
נפרט את הצעד הראשון של בניית לוח-אמת של הפסוק (ט/צג)ר.
השורה הראשונה של הלות:
אם ערך האמת של 8 הינו 1, וערך האמת של ט הינו 1,
אז על פי לוח-אמת של הקשר 08 ערך האמת של 8/ הינו ד,
לכן על פי לוח-אמת של הקשר סא ערך האמת של (ט'צג)ר- הוא =.
באופן דומה נבנה גם את השורות הבאות של הלוח.
| (ס/ג)ר- | ס | 8 |
איור 1.9 - לות-אמת של (פ/ג)ר-
תרגיל 1.5
המקור הדליף לעיתון את פסוק 8 ואת פסוק פ (כלומר, הודיע כי ערך האמת של כל אחד
מהם הוא 7).
לעיתון נודע כי:
- ערך האמת של הפסוק (ט'צג)ר- הוא ד.
האם המקור הזה מהימן! נמק את תשובתך.
0
5 לוחות-אמת של הקשרים ע1-צזאס-פאג-ת1 ,אאזזד- זז \/
נעיין בפסוק: "אני הולך לים רק אס יהיה חם". מפרשים אותו כך: "אם יהיה חם, אז אני הולך
לים, ואם לא יהיה חם, אז אני לא הולך לים". כדי לבטא את המשמעות הזאת בשפת לוגיקה
פורמלית, משתמשים בקשר אם-ורק-אם (15- צ1אס-כ אזג-ת1):
אני הולך לים אסם-ורק-אם יהיה חם.
הגדרה 1.4
ערך האמת של הפסוק ט-- (ט 1 צזאס פאג "1 8) הוא 1, אם ורק אם, ערך האמת
של הפסוק 8 זהה לערך האמת של הפסוק פ.
49
איור 1.10 - לוח-אמת של הקשר +>
הערה: את הקשר "ת] צ1א0ס סאג =1* רושמים בראשי תיבות כך: ==1. בעברית משתמשים
בסימון "אססם" כקיצור לצירוף "אם ורק אם".
תרגיל 1.6
נסמן ב-3 את הפסוק: אני חבר הכנסת.
נסמן ב-פ את הפסוק: אני דואג לבוחרים שלי.
אחרי בדיקות בשטח התברר, כי ערך האמת של הפסוק פ--(ט/'8) הוא =.
חשב את ערך האמת של הפסוק פ--8. נמק את תשובתך.
ההגדרה הבאה דנה בערך האמת של הפסוק 5--4, או במינוח העברי: אם 8 אז פ. בדיבור
יום-יומי מוענקת לצירוף זה משמעות של "גרירה", או "קשר סיבתי": אם ג נכון, אז גם ט נכון.
המשמעות הזאת אינה עומדת בקנה אחד עס ההגדרה הפורמלית של ערך-אמת של הפסוק
5--8. מדוע! - משוס שהמשמעות הזאת קובעת כי לכאורה ערך האמת של ט תלוי בערך האמת
של 4.
ניעזר בדוגמה הבאה: דני אמר לחברו "אם יהיה חם, אני הולך לים". נסמן ב-8 את הפסוק
"יהיה חם", וב-5- את הפסוק: "אני הולך לים". ערך האמת של הפסוק ט אינו תלוי בערך האמת
של הפסוק 8 ומכאן משתמע שדני יכול ללכת לים, גם אס יהיה קר.
לפני שנעבור להגדרה 1.5, נעיין בהנחיות אלו:
- הפסוק פ--8 הוא פסוק מורכב, הבנוי על פי כללים פורמליים של לוגיקה פסוקית,
בעזרת שני הפסוקים 8 ו-ט ובעזרת קשר *-.
- ערכי האמת של הפסוקים 8 ו-ט אינס תלויים זה בזה. לכן כל צירוף של ערכי האמת
של הפסוקים האלה הוא אפשרי ומתקבל על הדעת.
- בשל היותו פסוק, זכאי ט--8 לתואר ד (אמת), או = (שקר).
- תואר זה מוענק לפסוק פ--8 על ידי הגדרה 5 (שלהלן), עבור כל צירוף של ערכי-אמת
של הפסוקים 8 ו-פ.
הגדרה 1.5
ערך האמת של הפסוק ט--8 (ם א₪48ד 8 :1) הוא =, אם ורק אם, ערך-אמת של 84
הוא ד וערך-אמת של פ הוא =.
הערה: לפעמים מבטאים את הפסוק ט--8 בדרך זו: 8 =1 ט.
-
0
איור 1.11 - לותח-אמת של הקשר *-
תרגיל 1.7
האב אומר לבנו: "אם תסדר את החדר שלך, נלך לקולנוע".
למחרת הודיע הבן לאביו: "שיקרת ליי" (כלומר ערך האמת של הפסוק שנאמר על ידי האב
הוא ת).
האם סידר הבן את חדרוז האם הלכו האב ובנו לקולנוע! נמק את תשובתך.
נפרש את הגדרה 1.5 באמצעות שני פסוקים אטומיים:
הפסוק 8 - אני ראש העיר.
הפסוק ט - אני משפר את איכות החיים.
נציג את הפסוק המורכב ט--8 בתעתיק העברי: אם אני ראש העיר, אז אני משפר את איכות
החיים.
נוכל לומר, כי ראש העיר (או המעוניין להיות ראש העיר), הוא דובר אמת, אס ערך האמת של
הפסוק ט--8 הינו ד, והוא אינו אמין, אס ערך האמת של הפסוק ט--8 הינו =. נקבע את אמינותו
של ראש העיר על-פי הגדרה 1.5. את השורה הראשונה של ההגדרה ניתן להבין כך:
- ראש העיר הוא דובר אמת, כי הוא מקייס את הבטחתו: הוא ראש העיר, אשר משפר
את איכות החיים.
השורה השניה של ההגדרה אומרת:
- ראש העיר אינו אמין. הוא אכן ראש העיר, אבל אין הוא משפר את איכות חיינו.
את השורות שלוש וארבע של ההגדרה נפרש כך:
- המועמד לרשות העיר הינו דובר אמת, שכן הוא עדיין לא ראש העיר. מותר לו ליהנות
מן הספק, שהרי לו היה ראש העיר, יתכן ובאמת היה משפר את איכות חיינו.
בתרגיל שלפנינו נבחן את אמינותו של אחד מנבחרי הציבור בעזרת לוחות-אמת של לוגיקה
פסוקית.
תרגיל 1.8
נסמן ב-3 את הפסוק: אני חבר הכנסת.
נסמן ב-ט את הפסוק: אני דואג לבוחרים שלי.
חבר אחת המפלגות נשא נאום, שבו אמר:
1 84
2 2--8
לאחר בתירתו לכנסת, הוא נשא נאוס נוסף:
3 ס/3
51
דיוד
נודע לנו ממקור מוסמך כי ערך האמת של הפסוק 8/5 הוא .
א. הצג בעברית את נאומיו של חבר הכנסת.
ב מצא את ערך האמת של הפסוק 5-+-4.
נמק את תשובתך.
חשוב לציין, כי כדי לקבוע ערך-אמת של פסוק מורכב על-פי ערכי האמת של הפסוקים שמהם
הוא מורכב, אין אנו צריכיס "להבין" את הפסוק המורכב או "לחשוב" על משמעותו. את ערך
האמת שלו קובעים על פי הגדרות 1.1 - 1.5 ובאופן פורמלי לחלוטין. נציין גם, כי באשר
לפסוקים 8 ו-9 שבהגדרות 1.1 - 1.5, אין זה משנה אם פסוקיס אלה הם אטומיים או לא. ולכן
לוחות-האמת של ההגדרות נקראים על שם הקשר ולא על שם הפסוק.
נוסיף ונאמר, שכפי שבנינו את לוח האמת של פסוק המורכב משני פסוקים, כך גם ניתן לבנות
את לוח האמת של פסוק המורכב משלושה ויותר פסוקים. נדגים את בניית לוח האמת של
הפסוק (ס/9פ)--8 על פי ערכי האמת של הפסוקים 8 ,פ -0.
8-)/%0 | | | 5/6 | 6 |[ ס ן 3 |
ה-------7---77--7ך----7----=₪
| 5 41 ₪ [י₪ ]| ₪ *].ש-ן
| סּ 81 7 [ו שה | חן
| קּ ו - 1 תב שיא ב]. ₪ |
| ק 2-4 >[ אה.] יי שי ן
ן ₪ 4 ₪ | של ][ ה | ]|
| 0 .₪ 7 לק | יא ]> - ה ]
| . [ ]0 1 85 | ]
| ' ]₪ [ 8% 5[ א | .8 ן
וו ורוו ותו ורוו
---------------- איור 1.12 - לוח-אמת של (0/ )--8
תרגיל 1.9
נתוניס הפסוקים האטומיים האלה:
- האביר אוהב את הנסיכה.
- הרשע חוטף את הנסיכה.
- האביר מציל את הנסיכה.
בנה לוח-אמת של הפסוק המורכב:
- אם האביר אוהב את הנסיכה, אז אם הרשע חוטף אותה, אז האביר מציל את
הנסיכה.
6 פונקציות בוליאניות ופעולות בוליאניות
נתבונן בלוח-האמת של הקשר 1סא. ערך האמת של הפסוק 8 דסא תלוי בערך האמת של
הפסוק 8 ולכן, הקשר 01א הוא פונקציה של הפסוק 3. את הפסוק ג נכנה בשם ארגומנט
52
(1ח6ותנופַזה). הארגומנט 3 מקבל אחד משני הערכים: ד (אמת), או = (שקר). גם ערך הפונקציה
סא הוא ד או = , בהתאס לערך הארגומנט.
הקשר כ א 4 הוא פונקציה של שני הארגומנטים 8 ו-ט, אשר כל אחד מהס יכול לקבל את
הערכים 1 או =. הפונקציה פא 4 מקבלת גם היא אחד משני הערכים 1 או .
פונקציה, אשר כל ארגומנט בה מקבל את הערכים ד או 5 ואשר ערכה גם הוא 1 או =, נקראת
פונקציה בוליאנית (תסוזסחט) ת68!ססס), על שמו של המתמטיקאי האנגלי ₪006 26ז260).
קוראים, אשר עיסוקס קשור לאלקטרוניקה בוודאי מכירים את הפונקציות האלו.
כמה פונקציות בוליאניות, בעלות שני ארגומנטים ושונות זו מזו ניתן להגדיר! התשובה היא
שש-עשרה. קיימים ארבעה צירופים שוניס של ערכי אמת של 8 ושל פ. לכל צירוף יכולה
הפונקציה לקבל באופן בלתי תלוי את אחד משני הערכים: 7 או =. ומכאן, שיש לנו 4:16
פונקציות בוליאניות שונות בעלות שני ארגומנטים.
מתוך 16 הפונקציות הבוליאניות בעלות שני ארגומנטים הכרנו 4 בלבד:
שס הפונקציה
פאה
08
(ת0ס1168%1קא1) קאד
(06ת00108106ע) שסם
נציין ארבע פונקציות בוליאניות נוספות:
פונקצית 7
( סטות' - אמת),
אשר ערכיה הם 1 עבור כל
צירוף של ערכי 8 ו-5.
פונקצית 08א₪
(08 61₪5106אם - "או מרציא")
אשר היא שלילתה של
הפונקציה ₪00.
פונקצית אסא
(08א...ע6ת61%6ת)
אשר היא שלילתה של
הפונקציה 08.
הסימון הלוגי של הקשר
3
פונקצית 4 4 | סּ | 8 |
אשר ערכיה זהים לאלו של 8. כר-+-----4----=
| 1 |[ .₪400 ]
ן 1 | = | 5 |
ן 3 | :שה | ?+ |
4 |. ]| * |
לכל פונקציה בוליאנית בעלת שני ארגומנטים ניתן להתאים פסוק, המורכב משני פסוקים
אטומיים, אשר ערכי האמת שלו יהיו זהים לאלו של הפונקציה. נתבונן למשל בפסוק ט--(פ/4).
אנו מציעים לקורא לבנות את לוח האמת של הפסוק הזה ולבדוק אס ערכי האמת של הפסוק
זהים לערכים של פונקצית אד.
לפונקציה בוליאנית יש כינוי נוסף: פעולה בוליאנית. נציין, כי לכינוי "בוליאני" ולכינוי "לוגי"
בהקשר ללוגיקה פסוקית יש אותו מובן. לכן ניתן לומר "פונקציה לוגית" במקום "פונקציה
בוליאנית", "ביטוי לוגי" במקום "ביטוי בוליאני" ו-"פעולה לוגית" במקום "פעולה בוליאנית".
תרגיל 1.10
א. בנה את כל 16 הפונקציות הבוליאניות בעלות שני ארגומנטים.
ב לכל פונקציה בוליאנית אשר בנית, התאם פסוק מורכב בעל ערכי-אמת זהים לאלה
של הפונקציה.
לטיוס נוסיף את ההערה הבאה:
הקוראים, אשר עיסוקס קשור לנושאי אלקטרוניקה ומעגלים משולבים יודעים, כי כל אחת
מתוך 16 הפונקציות הבוליאניות ניתן להציג באמצעות שני קשרים בלבד: דסא ו-סאג (או
לחילופין: סא ו-0028). יותר מזה: כל פונקציה בוליאנית ניתן להציג באמצעות קשר אחד בלבד,
המכונה שא גא (כא4 זסא). משמע, שניתן לבנות שפה פורמלית באמצעות שני קשרים לוגיים
בלבד: השלילה ר- והגימום /, ואף ניתן לבנות שפה פורמלית באמצעות קשר לוגי אחד ויחיד,
אשר לוח-אמת שלו זהה לזה של סאג א. מטעמי נוחות וקירבה אל השפה הטבעית העדפנו
להשתמש בחמישה קשרים לוגיים. את הדיון בנושא זה נמשיך בפרק הבא.
ה ייק
| סאאא [ - ס | ג |
4
פרק 2
יחסים סמנטיים בין שני פסוקים
סמנטיקה היא המשמעות של מה שנאמר בשפה. כאשר קבענו ערכי-אמת של פסוקים מורכבים,
עסקנו בקביעה סמנטית. המושגים מתחום הסמנטיקה, אשר בהם נדון בפרק זה הם:
- פסוקים שקולים,
- טאוטולוגיה,
- סתירה,
- פסוק אשר נובע מפסוק אחר.
1 פסוקים שקולים, תכונות השקילות
נעיין בשני הפסוקיס האלה:
האחד - 5+-8
השני - ס/צגר-
מנקודת ראות תחבירית אלה הס פסוקים שונים, אך לא כך הדבר מבתינה סמנטית. מתוך עיון
בלוח-אמת משותף של הפסוקים האלה רואים, כי לפסוקים האלה אותו ערך האמת עבור
צירופים זהים של ערכי-אמת של ג ו-ם.
איור 2.1 - שקילות של פסוקים 9--8 ו-פ/גר-
5
ב ו
הגדרה 2.1
שני פסוקים הס שווי-ערך, או שקולים, אם שניהם מקבלים ערך-אמת זהה, עבור כל
צירוף של ערכי-אמת של הפסוקים המרכיבים אותם.
נקבל אם-כן, שהפסוק: "אס אני ראש העיר, אז אני משפר את איכות החיים", שקול לפסוק:
"אני לא ראש העיר, או שאני משפר את איכות החיים". משמע, ששני הפסוקים האלה הם בעלי
תוכן זהה מזווית ראיה של לוגיקה פסוקית.
את שקילות הפסוקים מסמנים בעזרת הסימן =>. קיים קשר הדוק בין הקשר התריבירי -+ לבין
יחס השקילות >. הקשר הזה מתבטא כך:
- נניח כי ק ו-6 הס שני פסוקים מורכבים. אם ערך האמת של הפסוק 4-כ הוא ד עבור כל
צירוף של ערכי-אמת של הפסוקים האטומיים, שמהם מורכבים הפסוקים ק ו-6, אזי
>.
- נכון גם ההיפך: אם 6=>ק, אז ערך האמת של הפסוק %--ם הוא תמיד ד.
תרגיל 2.1
א. בדוק האם שקולים הפסוקים האלה:
0-+3 [-(8--0)/(ט--8) ?
0-:8 (-0--8 ?
נמק את תשובתך.
ב הוכח, כי הפסוק "אני אלך לים רק אם יהיה חס" שקול לפסוק "אם יהיה חם, אנל
אלך לים, ואם לא יהיה חם, אני לא אלך לים".
הוכח, כי הפסוק "אני אלך לים רק אם יהיה חס" אינו שקול לפסוק "אס יהיה חם,
אני אלך לים".
להלן תכונות השקילות של פסוקים מורכבים:
תכונות החילוף:
א
ב.
תכונות הקיבוץ:
ג.
ד
תכונות הפילוג:
ה.
ו
תכונות דה-מורגן (חהזס1א-26)
ב
ח.
6
8/ל > 8/
038 > ס/ה
(ס/ ל)/8 > ס/ (ט/ 8)
(0/ס)/ג <> סש(ס/ג)
(ס/ג)/(ס/ 9) = (8/)0/0
(ס/8)/(ס/8) > (ס/ס)/ג
(טר-)/ (8ר7) > (פ/ 8)רד
(טר-)/ (8ר=) > (ט/ג)ר-
תכונת שלילת השלילה:
ט. 8 > (8ר-)ר-
את תכונות השקילות אי - טי ניתן לבדוק באמצעות שיטות שונות. אחת מהן היא בניית
לוחות-אמת משותפים.
נתבונן בתכונות החילוף אי ו-בי. מבחינה תחבירית הפסוקים 4/5 ו-4/ט שוניס זה מזה, אבל
מבחינה סמנטית אין הבדל ביניהם: לשניהס יש אותה משמעות, שניהם מוסרים אותו מידע.
בהמשך חטיבה זו נתייחס לשניהם כאל אותו פסוק. ההבדל התחבירי שביניהם יהיה רלוונטיי,
כאשר בחטיבות הבאות נדון ברעיון של תכנות לוגי ויישומו על-ידי שפת התכנות פרולוג.
נעיין בתכונות הקיבוץ גי ו-די. הן מאפשרות להשתחרר מן הסוגריים בפסוקים 6/ט/8
ו-6/ם/א, שהרי אין זה משנה מבחינה סמנטית אם בפסוק 8/5/6 נחשב תחילה את ערך
האמת של 8/5, או את ערך האמת של 6/ס. להבדל התתבירי שבין 6/(ט/ 4) לבין (ס/ פ)/8
נחזור, כאשר נעסוק בפרולוג.
תרגיל 2.2
מצא פסוקים, השקולים לאלה שלהלן:
לא(דובים או יער).
לא(חס או קר).
לא(לא נעים או לא טעים).
.לא יתכן שהאביר אינו אוהב את הנסיכה.
לא יתכן שהרשע חוטף את הנסיכה והאביר אינו מציל אותה.
ל טש 3 כ
(הערה: בנוגע לשני הפסוקיס האחרונים, ראה תרגיל 1.2).
2 עושר השפה וקשרים פסוקיים
ישנסם לוחות-אמת רבים ושונים. כל אתחד מהם מבטא פסוק, אשר יש לו תוכן ומשמעות. את
תוכנס ומשמעותס של הפסוקים מבטאיס בשפות טבעיות באמצעות חמשת הקשרים אשר
היכרנו, ובאמצעות קשרים נוספיס כדוגמת:
עסת...ז6116ת, זס...ז61126ת, +טס, זטס...311 ואחריס.
מבתינה תחבירית, עולה עושר הביטוי של שפה טבעית על עושר הביטוי של השפה הפורמלית
- שפת לוגיקה פסוקית. לא כך הדבר מבחינה סמנטית. כל פסוק מורכב ניתן לבנות בעזרת
שני קשרים בלבד. יותר מזה, ניתן לבנות שפה פורמלית, בה קשר אחד בלבד ישמש את כל לוחת
האמת. הבעיה היא שביטוייה של השפה הפורמלית הזו ארוכיס מאוד ועס סוגריים רבים ולכן,
אינס נוחיס לקריאה ולהבנה. לכן בתרנו בשפה פורמלית, אשר יש בה קשר פסוקי כנגד
הקשרים הנפוצים ביותר בשפות הדיבור הטבעיות.
לקוראים, אשר התנסו בשימוש בפונקציות בוליאניות, נזכיר את פונקצית סאנ4א. באמצעותה
ניתן לבטא כל פונקציה בוליאנית אחרת (כפי שהערנו בפרק הקודם). באמצעות הקשר, אשר
לוח האמת שלו זהה לזה של שא אא, ניתן לבטא כל לוח-אמת. כלומר, ניתן לבנות באמצעותו
שפה פורמלית, השקולה לזו שנדונה כאן.
7
| חדותחצק צהקשווושר ישן ץ חל חקה הי
| כו
את הנאמר כאן ננסח באופן פורמלי:
- לכל לות-אמת נתון, מתאים פסוק מורכב, אשר לוח האמת שלו זהה ללות האמת הנתון.
- כל פסוק מורכב שקול לפסוק, המורכב מאותם פסוקים אטומיים באמצעות שני קשרים
בלבד: האחד -- קשר השלילה ר-, האחר - אחד מהקשרים /, , *-.
לדוגמה, נעיין בלוח האמת הבא:
(= משמעו 156 או [וג)
לוח האמת הזה מתאים לפסוק המורכב (8/9/)78. הוא מתאים גם לפסוק:
(ל/טר-)--(4/3ר-). באשר לפסוק האחרון, נזכירכם כי קשר השלילה קודם לקשרים /, ש
(ראה פרק 1) ולכן לא נזקקנו לסוגריים ליד השלילות של הפסוקים.
הפסוק (ט/פר-)--(4/9ר-) מיוצג באמצעות ארבעת הקשרים: ר7, ש, /, +-. ניתן להציג אותו
באמצעות שני קשרים בלבד: רד ש. נסמן ב-2 את הפסוק הראשון שבקשר +-, וב-()- את
הפסוק השני:
88ר- - ק
ט/ טר- = 0
צעד ראשון: נתון
קר =>0--ק
כלומר:
(ל/ סר-)/(8/8ר-)ר- > (ט/ פר-)+-(8/גר-)
צעד שני: על פי תכונת השקילות ט,
כלומר: ל
ס/ סר- >> ((ס/ פַר-)ר-)ר-
צעד שלישי: את הפסוק
ניתן לשנות כך: ה
בהתאם לתכונת השקילות ז:
(פר-)/צ(טר-)רד > (פ/ טר-)ר-
ולכן בהסתמך על תכונה ט':
(סר-)/ט > (פ/ פר-)ר-
88
קיבלנו אס-כן:
(טר-)/ט > ()ר-
ולכן:
((טר-)/שט)ר > 6
ולכן:
(((טר-)שט)ר-)/צ(4/גר-)רד > (0/קר-
בדרך זו הדגמנו, כי את לוח האמת ניתן להציג באמצעות הפסוק הבא:
(((טר-)/ 5)ר-)ש((8/צ4ד-)ר-)
אשר מכיל שני קשרים בלבד: ר- ו- ש.
3 טאוטולוגיה וסתירה
מבין הקבוצות של פסוקים שקולים ישנן שתי קבוצות מיוחדות. הקבוצה הראשונה מורכבת
מפסוקים, אשר לכל אחד מהם יש לוח-אמת זהה לזה של הפונקציה הבוליאנית 18, כדוגמת
הפסוק 8/גר-. פסוק כזה מכונה בשם טאוטולוגיה. הקבוצה השניה מורכבת משלילות של
טאוטולוגיות. כל אחד מפסוקי הקבוצה הזו מכונה סתירה.
הגדרה 2.2
פסוק מורכב, אשר ערך האמת שלו הוא ד עבור כל צירוף ערכי-אמת של הפסוקים
מהס הוא מורכב, נקרא טאוטולוגיה (עְפָסוסזטג)), או תקף (84116ע).
דוגמאות של טאוטולוגיות:
א) 8-8
ב) 4/גר-
נניח כי כ ו-6 הס שני פסוקים שקולים. יוצא אם-כן, כי הפסוק 4-- הוא טאוטולוגיה. את מה
שנאמר בסעיף 2.1 על הקשר בין +> לבין > ניתן לנסת כך: 6 > םש אם ורק אס הפסוק
4 == כ הינו טאוטולוגיה.
תרגיל 2.3
בדוק אם הפסוק "אני הולך לים וגם לטיול, רק אם אני הולך לטיול וגם לים" הוא
טאוטולוגיה, אם לאו.
נסמן ב-6ות1 את הפסוק שהוא טאוטולוגיה. בסימון זה אנחנו מתעלמים מן המבנה התתבירי
של הטאוטולוגיה ומתרכזים במשמעותה, כלומר בסמנטיקה בלבד. עבור כל פסוק כ (מורכב
או אטומי) מתקיימות תכונות השקילות הבאות (ראה הגדרה 2.2).
תכונות השקילות (המשך):
47 6 >> 6נגתו/צק
יא. כ > ש6ות1ז/כק
יב. 6 >> 16ח1--כ
לג. ע > ק+-1₪6
59
הגדרה 2.3
פסוק מורכב אשר ערך האמת שלו הוא = עבור כל צירוף ערכי-אמת של פסוקיסם
שמהם הוא מורכב, נקרא סתירה (מ0ו1186101ח60).
דוגמאות של סתירות:
א) 14/48
ב) 4--3
את הסתירה נסמן ב-86 ונציין את תכונות השקילות שלו.
תכונות השקילות (המשך):
יד. כ > 156 שק
טו. 6 > 18156/ ש
טז. 6 > (8156))ד-
א 6 >> (6גת1)ר-
תרגיל 2.4
לגבי כל אחד מהפסוקיס שלהלן קבע האם הוא טאוטולוגיה, סתירה, או לא זה ולא זה:
א 4-4
ב (8--5)י-/פ--8)
ג. | (8--0ר )--(ס--8ר-)
ד ((ל/4)ר7)-((779)--(ט--4))
תרגיל 2.5
קבע לגבי כל אחד מהפסוקים הבאים אם הוא טאוטולוגיה, או סתירה (מנקודת ראות
של לוגיקה פסוקית).
א. המכונית נוסעת, או עומדת (כלומר, לא נוסעת).
ב. המכונית נוסעת ועומדת.
ג המכונית לא נוסעת ועומדת.
ד. המכונית נוסעת ולא עומדת.
רמז סמן את הפסוק "המכונית נוסעת" ב-8, והצג את פסוקי התרגיל כפסוקים
מורכבים.
תרגיל 2.6
התבונן בשני הפסוקים האלה:
א. אם המכונית נוסעת, אז היא עומדת.
ב אם המכונית נוסעת, אז היא לא עומדת.
תוכל להניח, כי הפסוק "המכונית עומדת" הינו שלילתו של הפסוק "המכונית נוסעת". קבע
לגבי כל אחד מהפסוקים שלמעלה אס הוא טאוטולוגיה, סתירה, או לא זה ולא זה.
00
4 חס של נביעה: פסוק נובע מפסוק אחר
נסמן ב-8 את הפסוק: "היה חם", ב-ט את הפסוק "נלך לים", ונעיין בשני הפסוקים האלה:
האחד - ט-+3, שמשמעו "נלך לים רק אם יהיה חם".
השני - 5--3, שמשמעו "אם יהיה חם, אז נלך ליסי.
האס הפסוקים האלה שקולים! נבנה עבור שניהם לוח-אמת משותף:
איור 2.2 - לוח-אמת משותף של הפסוקים 5--8 (-5--8
ניתן לראות, שכאשר לפסוק הראשון 5-+8 יש ערך-אמת ד, גם לפסוק השני פ--8 יש ערך-אמת
1. מאידך, כאשר ל-8 ערך-אמת = ול-ט ערך-אמת 1, ערכי האמת של ט--8% ושל ט--8 אינם
זהים. לכן הפסוקים האלה אינס שקולים זה לזה.
נעיין בזוג נוסף של פסוקים:
האחד - 4/4ר-
השני - 8/5ר-.
עתה נבנה עבורס לוח-אמת משותף:
|| 78/5 | 74/4 [ 5 |[ 33|
כ---4----+---+---]
שי [ א | ...|
ה ה[ ₪ |[ 6 .|
(ד- תי ] 2 |[ ₪ 4 |
|[ א< | שה |,ץ |* |
איור 2.3 - לוח-אמת משותף של הפסוקים 8/גר- ו-ט/ 4ר-
את שני לוחות האמת האחרונים מאפיינת התכונה המשותפת הבאה: לא קיים צירוף של
ערכי-אמת של הפסוקים ג ו-5, אשר עבורו לפסוק 4/8-- יהיה ערך-אמת 1 ולפסוק ס/ 8-
יהיה ערך-אמת ת.
61
הגדרה 2.4
יהיו ק ו-6 שני פסוקיס.
נאמר, כי
הפסוק כ גורר את הפטוק 1,
אוה
הפסוק 6 נובע מפסוק ס,
אם לא קיים צירוף ערכי-אמת של הפסוקים האטומיים, שמהם מורכבים הפסוקים
ם ו-6 כך, שעבור הצירוף הזה ערך האמת של כ הוא 1 וערך האמת של 6 הוא 5.
את העובדה, כי ם גורר את 6 מסמנים כך:
=
או כך:
פ=6
הערה:
שים לב, כי הגדרה 2.4 אינה דורשת שלפסוק ם יהיה אי-פעם ערך-אמת 7. את הנאמר בה ניתן
לנסח בצורה חופשית, כך: הפסוק כ גורר את הפסוק 6 אם כל עוד ל-ם יש ערך-אמת 7, גם
ל-) יש ערך-אמת 7.
דוגמאות:
1. מתוך לות-אמת המשותף של הפטוקים 8-5 ו-9--8 ראינו, כי הפסוק פ-+8 גורר את הפסוק
0+-8:
0--8 = כ--8
יוצא אם-כן, כי הפסוק: "אני הולך לים רק אם יהיה חס" גורר את הפסוק "אס יהיה חם,
אני הולך לים". .
2 מתוך לוח-אמת של הקשר / רואים, כי לכל זוג הפסוקים כ ו-6 מתקיים:
/ק = כ
וכמו-כן:
6/ם = 6
בהתאם ללות-אמת של הקשר / לא יתכן, שלפסוק ף/ם יהיה ערך-אמת ד ולאחד מן
הפסוקים כ או 6 יהיה ערך-אמת ת.
יוצא אם כן, כל
חס ולח > חם
וכמו כן:
חס ולת > לח
3 אם 6 הוא פסוק השקול לטאוטולוגיה, אז לכל פסוק םש מתקיים:
>
במילים אחרות, הטאוטולוגיה נובעת מכל פסוק, שהרי לא יתכן כי לטאוטולוגיה יהיח
ערך-אמת =.
ו
כאן המקום לדון שוב בפסוק ף--ם. כשבנינו לוח-אמת של ף--ם ציינו את הקושי שבלל שי
והבנתו, בשל המשמעות היום-יומית המוענקת לצירוף "אם-אז". הבה ננתח את היחס שב
02
וו "-
הקשר הפסוקי +- (חץ ימני) לבין הקשר הסמנטי של גרירה = (חצ ימני מודגש):
- 6--ק הוא פסוק, ובשל כך זכאי לתואר 1 (אמת) או = (שקר). תואר זה מוענק לו על ידי
לוח האמת שלו ומתוך ערכי-אמת של כ ו-6. ערכי האמת של ק ו-4 אינס תלויים זה בזה.
- 6=ק הוא קשר סמנטי בין פסוק ם לבין פסוק 8, הקובע כי כל עוד ל-ק יש ערך-אמת 1,
גס ל-6 יהיה ערך-אמת 1. קשר זה אינו מוסר מידע על ערך-אמת של 6, כאשר ל-ם
ערך-אמת ת. ניתן לחשוב על הקשר הזה כעל "תלות חלקית" של 6 ב-ק. 6 תלוי ב-ם כל
עוד ערך-אמת של כ הוא 7 ו-0 אינו תלוי ב-ץ, כאשר ערך-אמת של כ הוא ת.
בדומה לקשר בין >> לבין =, שנידון בסעיף 2.1, קיים גם קשר בין +- לבין = :
יהיו ם ו-6 שני פסוקים. נקבל כי = אם ורק אם, ערך האמת של הפסוק 6--ק הוא תמיד ד.
במילים אחרות: כ גורר את ף, אם ורק אם, הפסוק 6--ם הוא טאוטולוגיה.
בדיבור היום-יומי אין מבדילים בין הקשר התחבירי +- לבין היחס הסמנטי = ואת שניהם
מבטאיס באמצעות הצירוף "אם...אז". כפי שאמרנו, השפה הטבעית אינה חד-משמעית
ומדוייקת, להבדיל משפת לוגיקה פורמלית.
נביא דוגמה של דו-משמעותיות, הניתנת לצירוף "אם...אז" בשפה הטבעית.
נעיין בשני פסוקים אלה:
הפסוק 8 - אני חבר כנסת.
הפסוק 5 - אני דואג לבוחרים שלי.
איש ציבור אמר בנאומו: אם אהיה חבר כנסת, אדאג לבוחרים שלי. הבוחרים הבינו, כי הובטח
להס היחס הסמנטל ט=8, אשר פוסל את האפשרות שלפסוק 8 יש ערך-אמת 7 (משמע, האיש
נבחר לכנסת), ולפסוק ט יש ערך-אמת ת (משמע, הוא איננו דואג לבוחרים). לאחר בחירתו של
האיש התברר לבוחריו, כי בנאומו הוא התכוון לקשר התחבירי 5--8, אשר בו ערכי האמת של
8 ו-9 אינם תלויסם אחד במשנהו. אס-כן, מבחינתו של איש הציבור, תיתכן האפשרות שערך
האמת של הפסוק המורכב ט--8 הינו = כלומר, ערך האמת של 8 הינו 1, וערך האמת של ט
הינו ".
תרגיל 2.7
נתון פסוק אטומי כלשהו 8. ענה על השאלות הבאות:
א. האם 88 ?
ב. האם 8(>=8--4) ?
ג. | האס 4(>8-+8ר-) ?
נמק את תשובותיך.
תרגיל 2.8
עיין בפסוקים האלה:
ל/8 - אני חבר כנסת, אשר דואג לבוחרים שלי.
(טר-)/ (8/) -- איני דואג לבוחרי ואיני חבר כנסת.
ט'/(גַר-) -- אני דואג לבוחרים שלי, או שאיני חבר כנסת.
8-02 -- אס אני חבר כנסת, אז אני דואג לבותרים שלי.
(סר-)/8 -- אני חבר כנסת, אשר אינו דואג לבותרים שלו.
ל שש בע
33
נתח את היחסים הסמנטיים בין הפסוקים אי - הי.
האם ישנם בתוכם פסוקים שקולים!
האם פסוק כלשהו נובע מפסוק אחר!
נמק את תשובותיך.
94
פרק 3
יחסים סמנטיים בין פסוק לבין קבוצה
של פסוקים
בפרק זה נעסוק ביחסים הסמנטיים שבין פסוק מחד, וקבוצת פסוקים מאידך. לשם כך נחזור
ונזכיר את מושגי היסוד של לוגיקה פסוקית, אשר בתחומה אנחנו נמצאים. לאחר מכן נכיר
את הבסיס הלוגי של שני מושגים, אשר משתמשים בהם בתחומים ובהקשרים שונים:
- עקביות של קבוצת פסוקים,
- פסוק אשר נובע מקבוצת פסוקים.
1 אוסף פסוקים אטומיים של השפה
השפה שאנו עוסקים בה נקראת לוגיקה פסוקית. ביסודה של שפה זו נמצאת קבוצת סימנים
המכונים פסוקים אטומיים. באופן אינטואיטיבי אנחנו רואיס כל אחד מהפסוקים האטומיים
כמייצג פסוק כלשהו בשפה הטבעית (בשפה העברית, למשל). מפסוקים אטומיים בוניס פטוקים
מורכבים ובדרך זו אנחנו מקבלים את פסוקי השפה, או במילים אחרות, בוניסם את השפה. את
המושג "פסוק" ניתן לתאר כך:
- כל פסוק אטומי הוא פסוק.
- אם 8 הוא פסוק, אז שלילתו (4)ר- הינה גס כן פסוק.
- אס 8 ו-6 הינם פסוקים, אזי הביטוייס שלהלן הינס גם כן פסוקים:
(ס)/(4)
(ס)/ש(4)
(ס)--(84)
(ט)-+(8)
הסוגריים נועדו להדגיש, כי הפסוקים ג ו-9 אינס בהכרח פסוקים אטומיים.
לגבי כל פסוק אנחנו מקבלים את ההנחה הבסיסית הבאה: לכל פסוק יש ערך-אמת ד או ז,
ורק אחד מהם. ערך-אמת של פסוק, המורכב בעזרת הקשרים והסוגריים, נקבע מתוך
ערכי-אמת של הפסוקים, אשר מהם הוא מורכב. הקביעה נעשית על פי לוחות-אמת של
הקשרים.
55
הפסוקיס 4 ו-0 אשר מופיעים בלוחות-אמת של הקשרים, אינם בהכרח פסוקים אטומיים.
נתבוגן למשל בפסוק ((ס/4)ר-).-(פ/ 8). בלוח-אמת של הקשר -- (ראה איור 1.11) נציב את
3/9 תחת 8 ואת (4/ )ר- נציב תחת 5. בדרך זו נקבל ערכי-אמת של הפסוק
((פ/ 8)ר-).-(פ/ 8). במקרה הספציפי הזה, הצירופים בהם ערך האמת של 4/5 זהה לזה של
שלילתו (פ/4)ר., אינס מציאותיים. כלומר, בלוח האמת אשר התקבל בדרך זו תהיינה שורות
מיותרות, אך אין לכך חשיבות בשלב זה.
עקרונית, ניתן לתאר כל פסוק באמצעות פסוקים אטומיים של השפה. נניח למשל כי:
ם הוא פסוק 4/5.
4 הוא שלילתו של ק.
8 ו-ט הס פסוקים אטומיים.
אם-כן, הפסוק 4--ק שקול לפסוק ((ט/ 9)ר-)--(ט/ 4), אשר מורכב מפסוקים אטומיים. נבנה
את לוח האמת של הפסוק 6--ם מתוך ערכי האמת של 8 ו-ט, על פי לוחות-אמת של הקשר
הראשי +- והקשרים /, ד
| ; | 6 | | 8-8 |
==
| | (ל/6)--(פ/6) | | (776/5 | 5/ג | | 5 |
ר--ה--- --=]
כם
| ||
ן ||
| ||
| ||
איור 3.1 - לוח-אמת של הפסוק 6--ס מתוך ערכי-אמת של 8 ושל ט
מלוח האמת ניתן לראות, כי ארבעת הצירופים של ערכי האמת של 8 ושל ט הצטמצמו לשנל
צירופים שונים בלבד של ערכי-אמת של ט/8 ושל (ס/8)ר-.
תרגיל 3.1
יהיו ק ו-6 הפסוקים שהוזכרו קודם. בנה לוח-אמת של כל אחד מהפסוקים האלה:
א) 6צס:.
ב) ף6שפר;
ג םק-0.
כל פסוק של השפה מורכב ממספר סופי של פסוקים אטומיים, מספר סופי של קשרים ומספר
סופי של סוגריים. לכן, כשנתונה קבוצה סופית של פסוקים, נוכל תמיד "לגלות" את אוסף
הפסוקים האטומיים, אשר ממנו נבנו פסוקי הקבוצה.
ניעזר בדוגמה הבאה:
8
יהיו 8 ,5 ,ם ו-6 הפסוקים דלעיל, כלומר, 8 ו-5 הס פסוקיס אטומיים, ש הוא הפסוק ל/
ו-6 הוא שלילתו של ם. הקבוצה 4 מורכבת מן הפסוקים הבאים:
(0-ק ,שק ,)=
6
זו . -
ניתן לראות, שהקבוצה נבנתה משני פסוקיס אטומייסם: 8 ו-ט. לשם כך נציב את 8/5 תחת
ם, ואת (ט/ג)ר- תחת 6.
לגבי פסוק אטומי נקבל את ההנחה הבאה: כל פסוק אטומי יכול לקבל ערך-אמת 7 או 5,
ללא קשר לערך-אמת של פסוק אטומי אחר. במילים אחרות, ערכי-אמת של פסוקים אטומיים
אינס תלוייס זה בזה.
2 קבוצה עקבית של פסוקים
באחד מעלתוני הערב נמסרה תחצית מזג-האויר הבאה:
- חס ולח.
- אם חס ולח, אז לא חס או לא לח.
החלטנו לבחון את האמינות של הפסוקים האלה. בניסוח מדויק יותר: החלטנו לבחון אם קיים
צירוף של ערכי-אמת של פסוקים אטומיים, שמהם מורכביס הפסוקים לעיל כך, שעבור הצירוף
הזה לכל אחד מהפסוקים יהיה ערך-אמת 1.
נסמן ב-8 את הפסוק האטומי "חס", וב-5- את הפסוק האטומי "לת'". הפסוק "חם ולת" יסומן
כך: ס/4, והפסוק "לא חם או לא לח" יסומן כך: (טד-)/(גּר-). על פי תכונת שקילות זי של
סעיף 2.1, הפסוק (טר-)/י(גר-) שקול לפסוק (ט/8)ר-. ניעזר בסימונים של הסעיף הקודם ונסמן
ב-ק את הפסוק ט/8 וב-6 את שלילתו של פ. קיבלנו את קבוצת הפסוקים הבאה:
- חס ולת - כ
- אס חם ולח, אז לא חס או לא לח - 6--
כדי לבדוק אם כל הנאמר באמצעות הקבוצה הוא אמת או לא, נבנה לות-אמת משותף של
קבוצת הפטסוקים (0--פ,כ!.
| 6-- 1 8 ]
| ((ט/6ר)--(ט/4) | | 8/5 | 5 | ג |
| ק וש |[ > |יש|
| 7 ה הרי
| 0 | ע | ל | ת<|
| 1 | > |נען
איור 3.2 - לוח-אמת משותף של הקבוצה (6--ם ,ק)
בלוח האמת המשותף של הקבוצה, אף לא שורה אחת כוללת ערכי-אמת 1 לכל אחד מהפסוקים
(0-- ,ם). משמע, שאין צירוף ערכי-אמת של 8 ו-5 שעבורו לכל אחד מפסוקי הקבוצה יש
ערך-אמת 1. המסקנה היא, שהקבוצה (ף--ק ,ם) אינה אמינה כתחזית מזג האויר.
לעתים קרובות, בתיי יום-יום, אנו משתמשים במושג "עקביות". אנו נוהגים לומר "התנהגות
עקבית", "חוסר עקביות" וכן הלאה.
7
הגדרה 3.1
תהי 4 קבוצה (לא ריקה) של פסוקים. נאמר, כי 4 היא קבוצה עקבית (1ח51516תסס),
אם קיים צירוף ערכי-אמת של הפסוקים האטומיים שמהם בנויים פסוקי 4 כך, שעבור
הצירוף הזה יְהִיָה לכל אחד מפסוקי 4 ערך-אמת ך.
אם כן, קבוצת הפסוקיס (6--ק,ם) של דוגמת תחזית מזג האויר אינה קבוצה עקבית.
נציג דוגמה נוספת של קבוצה לא עקבית. אחד משרי הממשלה, בניסיון לשכנע את העם כי אין
להעלות את שכר העבודה, השמיע את הנאוס הבא:
אם יעלה שכר העבודה, אז או שתעלה האינפלציה או שיעלה החוב התיצוני.
אס החוב החיצוני יעלה וגם האינפלציה תעלה, אז יעלה שכר העבודה.
אם האינפלציה תעלה, אז שכר העבודה לא :עלה והחוב החיצוני כן יעלה.
אם לא יעלה שכר העבודה, או אס יעלה החוב החיצוני, אז תעלה האינפלציה.
נבדוק את עקביות נאומו של השר. נשתמש בסימונים הבאים:
8 - שכר העבודה יעלה.
5 - האינפלציה תעלה.
0 - החוב החיצוני יעלה.
הפסוקים שהשר השמיע בנאומו הם אלה:
- (0/0)-8
- 4-(0/ )
- | (778/ )--
- | 0-(8/0ר-)
כדי לבדוק את עקביות דבריו של השר (כלומר, עקביות קבוצת הפסוקים שהשמיע) נבנה
לוח-אמת משותף של הקבוצה.
| ס--(8/0ר-) | (78/ -)-- | 8-(0/ ס) | (0/0)--8 | 0 | ט | 8 |
3 3 3 ב 1 ב
| | [ד|ז|
| | |פ|פ|
| | |צ|*|
| | |ש|ען
| | וצ צ|
ה
| | |פ|ת |
33 3 ₪3 3 1 נה
3 ₪3 3 ב- 11 [
₪3 3 1 3 1 ב- נמ
333 3 3 ב ב
033 3 3 1 ב-
₪ ₪ 33 3 ב ב
| |
| |
| |
| |
| |
| |
| |
| |
ו ורוו הוויק הווה הו ה
איור 3.3 - בדיקה של עקביות נאומו של השר
נסקור את השורות בלות האמת המשותף. כל אחת מהן מציגה צירוף כלשהו של ערכי-אמת 0
הפסוקים האטומיים. אפשר לראות, כי בכל שורה יש ערך-אמת = לאחד מפסוקי הנאום. ב ר
| לא שורה אחת נמצא, כי לכל כסוקי הנאום יש ערך-אמת 1. מכאן המסקנה, כי נאומו של הש
אינו עקבי.
08
=
תרגיל 3.2
בחר מאמר בעיתון (למשל, את מאמר המערכת) ובדוק את עקביות הנאמר בו.
3 יחס של נביעה: פסוק נובע מקבוצה של פסוקים
אפשר להניח, שכאשר הציבור שומע נאומים בלתי עקביים של נבחריו הוא "מסיק מסקנות".
אם הוא לא מסיק מסקנות, "נובע" מכך, שהוא ציבור אדיש. אנחנו משתמשים במילים: "נובע",
"להסיק מסקנות" גם בחיי היום-יוס וגם בהוכחות מדעיות. בסעיף זה נדון במשמעות נוספת,
אשר ניתנת למילה "נובע" בלוגיקה פסוקית. את המושג "להסיק מסקנות" נכיר בפרק הבא.
הגדרה 3.2
תהיה 4 קבוצת פסוקים (לא ריקה) ויהי םק פסוק. אנו אומרים כל:
הקבוצה 4 גוררת את הפסוק פ,
אה
הפסוק , נובע מהקבוצה 4,
אס אינו קיים צירוף של ערכי-אמת של פסוקים אטומייס שמהם מורכבים הפסוק םש
ופסוקיה של 4, אשר עבורו:
ערך-אמת של כל אחד מפסוקיה של 4 הוא ד
וערך-אמת של כ הוא ת.
בלשון חופשית ניתן לומר, כי ם נובע מ-4, אס בכל פעם שלכל אחד מפסוקיה של 4 יש
ערך-אמת 17, גם ל-ם יש ערך-אמת 1.
את העובדה שהפסוק כ נובע מקבוצת הפסוקים 4 מסמנים כך:
ק = 24
או כך:
4 = כ
נעיר, כי הגדרה 3.2 אינה דורשת שיימצא צירוף ערכי-אמת של פסוקים אטומיים אשר 4 בנויה
מהם, עבורו לכל פסוק של 4 יהיה ערך-אמת 7, כלומר הקבוצה 4 של ההגדרה 3.2 היא לאו
דווקא עקבית.
דוגמאות:
א. נתונה קבוצה 4 כלשהי, הכוללת שני פסוקים אטומיים ג ו-פ:
(0,ג) = 4
נתבונן בלוחות-אמת של הקשרים /, ש, +-, =>. ניתן לראות, כל
8/ = (ס ,4)
כ'ג = (ס ,44
ם--8 = (ס ,4)
כ--8 = (כ ,4)
69
ב.
ג.
ה.
70
נציין, כי 4 אינה גוררת את הפסוק 74- וגם לא את הפסוק פר-.
נתונה קבוצה 4, המורכבת משני פסוקים ם ו-6 (לאו דווקא אטומילים):
4-0
הגדרה 3.2 קובעת כל:
כ = ( ןז
מק = 0 ו
4-כ = (0 5
6-כ = (0 )
יהיו 8 ו-9 פסוקים אטומיים. נסמן ב-ק את הפסוק 4/5, ב-6- את שלילתו של ס, וב-4-
את הקבוצה הבאה: (0--כ ,₪ = 4.
לוח-אמת משותף של הקבוצה 4 בנינו בסעיף הקודם.
הגדרה 3.2 קובעת, כי כל פסוק נובע מ-4, שהרי 4 אינה עקבית ולכן לא קיים צירוף של
ערכי-אמת של הפסוקים 8 ו-5, אשר עבורו ערך-אמת של כל אחד מפסוקיה של 4 הוא
ד. לכן, כל פסוק שהוא נובע מ-4, ללא קשר לערך-אמת שלו.
משתמע אם-כן, שתחזית מזג האויר, אשר אותה ניתחנו בסעיף הקודם, מבטיחה לנו גם
חום וגם שמש וגם קור וגם שלג - הכל בבת אחת.
נתונה הקבוצה:
(--ק ,)ו = 3
נראה כל
342 = 1
נניח, כי ערך האמת של םס הוא ד וכך גם ערך האמת של ף--ם. נבנה לוח-אמת של ף--ם.
אנו רואים, כי יש שורה אחת בלבד בה יש ל-ק וגם ל-6--ק ערך-אמת 7. גם ל-4 יש בשורה
זאת ערך-אמת 7.
ולכן, הקבוצה ג גוררת את הפסוק ף.
נתונה הקבוצה:
שאר ,שק = 4
אז
8 > טצכ (בדוק!)
ו
נתונה הקבוצה: (מ-- ,מר+ .4
אזי; 4 = פר- (בדוק!)
תרגיל 3.3
נתונה קבוצה 4 הכוללת שני פסוקים 8 ו-פ:
(ק,) = 4
להלן רשימת פסוקים. בדוק כל אחד מהם וקבע, אם הוא נובע מ-4, אם לאו. נמק את
תשובתך.
א) 2
ב) (טר)/8
ג) 6גח]
ד) 1456
ה) טי-(778)
886)--8
ז) 8/ ר-
ח) 8-(4156!--5)
ט) 8--(6טז1--5ר-)
4 תכונות של יחס הנביעה
נחזור להגדרה 3.2. להלן כמה מהתכונות של הקשר הסמנטי =, הנובעות מההגדרה הזאת.
1
אם הפסוק כ שייך ל-4, אז הפסוק כ נובע מ-4.
הסבר: אם לכל אחד מפסוקי 4 יהיה ערך-אמת 1, אז גם ל-ק יהיה ערך-אמת 17, שהרל
הוא אחד מפסוקיה של 4.
אס פסוק כ הינו טאוטולוגיה, אז הוא נובע מכל קבוצת פסוקים.
הסבר: ל-ק יהיה תמיד ערך-אמת 1. לכן לא יתכן שלכל אחד מפסוקיה של 4 יהיה
ערך-אמת 7 ולפסוק ם יהיה ערך-אמת .
אם אחד מפסוקיה של 4 הוא סתירה, אז כל פסוק נובע מ-4.
הסבר: לפסוק שהוא סתירה, תמיד יש ערך-אמת = והקבוצה 4 מכילה אותו. אי לכך, לא
יתכן שלכל אחד מפסוקיה של 4 יהיה ערך-אמת 1. ניקח פסוק םק כלשהו, ונפנה לפסוקים
האטומיים, המרכיבים אותו ואת הפסוקים של 4. האם קיים צירוף של ערכי-אמת של
הפסוקים האטומייסם האלה אשר עבורו ערך-אמת של כל אחד מפסוקיה של 4 הוא 7
וערך-אמת של כ הוא =? לא. צירוף כזה אינו קיים, משוס שאחד מפסוקיה של 4 הוא
סתירה. לכן על פי הגדרה 3.2, הפסוק ק נובע מקבוצה 4.
אס הקבוצה 4 כוללת פסוק ושלילתו, אז כל פסוק נובע מ-4.
הסבר: אם לפסוק יש ערך-אמת 1, אז לשלילתו יש ערך-אמת ת, ולהיפך. לכן, 4 אינה
עקבית. אי-לכך, לא יתכן שלכל אחד מפסוקיה של 4 יהיה ערך-אמת 1. אס נמשיך את
ההסבר באופן דומה לזה של תכונה 3, נגיע למסקנה כי כל פטוק נובע מ-4.
7[
ו -=
/
.5
72
אם הקבוצה 4 אינה עקבית, אז כל פסוק נובע מ-4. /-
הסבר: הקבוצה 4 אינה עקבית, ולכן לא יתכן שלכל אחד מפסוקיה של 4 ערך-אמת
אם נמשיך את ההסבר בצורה דומה לזאת של תכונה 3, נגיע למסקנה כי כל פסוק נובע
מ-4.
תכונה 5 קובעת, כי מקבוצה שאינה עקבית נובעים פסוק ושלילתו.
על-פי תכונה 5, מקבוצה, אשר אינה עקבית נובע כל פסוק. בין היתר, נובעיס ממנה פסוק
ושלילתו. לכן, השר אשר בסעיף 3.2 ניסה לשכנע את העם כי אין להעלות את שכר העבודה,
שכנע את העסם בשני דברים סותרים, דהיינו: יש להעלות את שכר העבודה ואין
להעלותו.
התכונה הבאה היא היפוכה של תכונה 5.
אם כל פסוק נובע מ-4, אז 4 אינה עקבית.
הסבר: כל פסוק ובכלל זה סתירה, נובעים מ-4. לו קבוצה 4 היתה עקבית, היינו מסיקים,
כי קיים צירוף ערכי-אמת של פסוקים אטומיים, שמהם בנויים פסוקי 4, עבורו לכל פסוק
של 4 יש ערך-אמת 1. לאותו צירוף, גם לסתירה, אשר נובעת מ-4, יש ערך-אמת 1, דבר
שלא יתכן. לכן 4 איננה עקבית.
אם ג הינה קבוצה עקבית ו-ק נובע מ-4, אז הקבוצה 8, אשר פסוקיה הס פסוק ם ופסוקים
של 4, הינה עקבית גם-כן.
הסבר: 4 עקבית, ולכן קיים צירוף של ערכי-אמת עבורו לכל פסוק של 4 יש ערך-אמת ד.
הפסוק כ נובע מ-4, לכן לאותו צירוף גם ל-ק יש ערך-אמת 1. ומכאן שקיים צירוף של
ערכי-אמת עבורו לכל פסוק של 8 יש ערך-אמת 1. לכן 8 הינה קבוצה עקבית.
לקבוצה 8 קוראים איחוד של שתי קבוצות: האחת מהן 4 והשניה - קבוצה שמורכבת
מאיבר אחד ויחיד (כ). את איחוד הקבוצות מסמניס בעזרת הסימן (
(ק ג = 8
תרגיל 3.4
נתונים הפסוקים הבאים:
פסוק 3: יכולה להסתמן אפשרות של דיון על פשרה טריטוריאלית.
פסוק 5: יופעלו הסדרי-ביניים בניהול עניני היומיוס במשך תקופה מסוימת (הקרויה גם
תקופת ביניים).
במעריב של יום ו, 2 באוקטובר 1987, הופיעה הכותרת הבאה:
1 המזכיר לא הוציא מכלל אפשרות דיון על פשרה טריטוריאלית "בסוף הדרך", אד
הדגיש, כי זו יכולה להסתמן רק אחרי שיופעלו הסדרי-ביניים במשך תקופה
מסוימת.
מדובר בשיתוף ירדן בניהול עניני היומיוס בתקופת הביניים, שאחריה הכל פתוח
למו"מ.
עיין בכותרת של מעריב ובצע את המטלות האלה:
א תרגם את הכותרת לשפה פורמלית של לוגיקה פסוקית, ועל פי התרגום שלך בדוק אמ
הכותרת הינה עקבית.
ב בדוק האם נובע מהכותרת של מעריב הפסוק שלהלן:
אם יופעלו הסדרי-ביניים בניהול עניני היומיוס במשך תקופה מסוימת, אז יכולה
להסתמן אפשרות של דיון על פשרה טריטוריאלית.
ג. | אחרי שניתחת את הכותרת הנ"ל, תאר באופן חופשי את ההבדלים בין שפה טבעית
לבין שפה פורמלית. האם לפי דעתך, קיימת שפה נוספת -- השפה הדיפלומטית!
ד. בתאריך 7 באוקטובר 1987 בעיתון "חדשות" הופיע הפסוק הבא:
"צריך קודס לקרוא את פסק-הדין, לקיים התייעצויות ולהחליט באיזה טיעוניס
לנקוטי', הסביר פרקליט בכיר, "צריך להבין שהכל כאן כתוב לא בשפה שלנו אלא
בשפת הדת, שהיא מרומזת יותר משאומרת בפירוש".
האם לפי מיטב הבנתך, קיימות שפות, כגון: שפה משפטית, שפת הדת, שפה טכנית, וכדומה?
אם אכן קיימות, תאר (באופן בלתי פורמלי) את איפיוניהן.
שפח
נמ פאר מי אותנ שקול . אל!?
7 ג
תי השופט מאיר שמי
-. 7 הרואות את | הכנסת שלמה היל
ל -. כערכים העומדים מעל החוכ | שפטים, אברד'
ל, נוקטות אלימות או עוברות על החוק | ע? המשפל
של סלחנות ואף הבנה מצד הציבור 5 רֶּ
שי
ל'..
%
%
לה
'נת ישראל, |התפרקות והתפוררות".
טוב פוליטי | | כך אמר אמש נשיא המי
שים על רקע |דינה, חיים הרצוג, בכי
יוני ביותר |המועצה הציבורית לִר
לשמור משמר על |ערכי שלטון החור
המכנה המש. ף האחר והיז |במשכן הנשיא בי
זיך, השומר על חישוקיה | . בכינוס
זל החברה הישראלית מפני |נשיא ביף
0
ט שני, ז' בטכבת תשמ"ח - *
3
-
5
פרק 4
מנגנון ההוכחה של לוגיקה פסוקית
תכנית לוגית היא קבוצת אקסיומות, המאפשרות להוכיח משפטים בעזרת כללי היסק נאותים.
בפרק זה נדון במושגים הבאים:
- אקסיומה,
- משפט,
- כלל היסק,
- הוכחה,
- מערכת היסק.
1 כלל היסק נאות, קבוצת אקסיומות, מערכת היסק
תחילה נדון במונח כלל היסק. נעיין בקבוצה סופית וסדורה של פסוקים. המשמעות של "סדורה"
היא, ששינוי של סדר פסוקי הקבוצה משנה את הקבוצה. לפסוק האחרון יש תפקיד מיוחד.
הוא מכונה התולדה המיידית של הפסוקים שקדמו לו. הקבוצה עצמה קרוייה כלל היסק.
ניעזר בדוגמה הבאה:
(/ק ,6 ,כו
נכריז שקבוצה זו הינה כלל היסק, כלומר, שהפסוקים פ ו-6 מולידים באופן מיידי את הפסוק
שצורתו התחבירית /ק. הפסוקים כ ו-6 הס פסוקים כלשהם. לכן, על פי כלל ההיסק חזה,
הפסוק (טר-)/(גר-) הוא התולדה המיידית של הפסוקים 8ר- ו-פר-, הפסוק (6/צ6)/(טי-:8)
הוא התולדה המיידית של הפסוקים 3-5 ו-6/6, וכן הלאה. כלומר, כל פסוק, אשר הקשר
משמש בתור הקשר הראשי שלו, הוא התולדה המיידית של הפסוקים העומדים משני צדיו >
הקשר על פי כלל ההיסק הזה.
,
המונח "כלל היסק" הוא מונח תחבירי בלבד. לכן מותר לנו להכריז, באופן פורמלי לחלוטלן, .
הקבוצה (פר- ,עו היא כלל היסק. כלומר, אנחנו מכריזים כי כל פסוק מוליד את שלילתו ב ב"
מיידי על פי הכרזה זו, הפסוק "חם" מוליד באופן מיידי את הפסוק "לא חם", והפסוק
4
- את הפסוק "אינו אוהב". מבחינה פורמלית ההכרזה הזו "שווה" בהחלט, אבל אין אנו
מעונייניס בהכרזות סותרות מסוג זה.
כדי "להכניס מוסר" לעניין, ניעזר במונח נאות (6םט50). המוסר - משמעו סמנטיקה, כלומר
"משמעות הנאמר". אנו רוציסם להקפיד שערך האמת של התולדה המיידית לא "יתנגש"
בערכי-אמת של הפסוקים, אשר הולידו אותה.
הדבר מנחה אותנו אל ההגדרה הבאה: אומרים, כי כלל היסק הוא נאות, אם התולדה המיידית
שלו נובעת מקבוצת הפסוקים, אשר הולידה אותה (את המונח נובע הכרנו בפרק הקודם).
כלומר, הפסוק האחרון של קבוצת פסוקים סדורה, המכונה כלל היסק, נובע מקבוצת פסוקים
אשר קדמה לו. בלשון אחרת ניתן לומר, כי לכלל היסק נאות יש בסיס לוגי.
לכאורה, פתרנו באמצעות כלל היסק נאות את בעית "מוסר ההכרזות". אלא שלא בדקנו את
עקביות הפסוקים, אשר קדמו לתולדה. נתבונן בכלל ההיסק הבא: (ף ,שר-, קו. הכרזנו אם כן,
באמצעות הכלל הזה, כי פסוק כלשהו הוא התולדה המיידית של הפסוקים ק ו-קר-. כלל ההיסק
הזה הוא נאות, שהרי הקבוצה (מר- ,שו איננה עקבית, ולכן כל פסוק נובע ממנה. אבל אין אנו
מעוניינים בעזרת כלל היסק זה לתת גיבוי למצב, כאשר דבר והיפוכו נובעיס מקבוצת פסוקים
על בסיס לוגי מוצק של כלל היסק נאות.
נציג מונח חדש: מערכת היסק (וח5/516 6ש660011). מערכת היסק היא אוסף כללי היסק נאותים
ביחד עם קבוצה עקבית של פסוקים, המכוניסם אקסיומות של המערכת. את כללי ההיסק נפעיל
רק על האקסיומות של המערכת. פירוש הדבר, כי אם כלל היסק (60 ,קר- ,ו קובע, שפסוק
ושלילתו מולידים כל פסוק אחר, אנו צריכים לפנות אל האקסיומות של המערכת ומתוכן
למצוא זוג המורכב מפסוק ושלילתו. במצב זה נוכל להסיק, כי כל פסוק הוא תולדה מיידית
של מערכת היסק נתונה. אבל, קבוצת האקסיומות היא קבוצה עקבית ולכן אין היא כוללת
פסוק ושלילתו. יוצא אם-כן, כי האמצעי הטכני (דהיינו כלל ההיסק 6 ,פר- ,קו) אכן קיים,
אלא שאין בסיס להפעלתו. אם-כן, פתרנו את בעית "מוסר ההכרזות" באמצעות מערכת
היסק.
2 משפט והוכחה, מערכת היסק שלימה
ההתנסות שלנו במונח "הוכחה" מתתילה בגיל הרך ואינה מסתיימת בגיל הזהב. בשיעורי
המתמטיקה, בבית המשפט ובמקומות רביס אחרים אנו עוסקים באימות טענות בעזרת כלי
הקרוי "הוכחה". הטענה היא פסוק, אשר ראוי לתואר 1 (אמת) או * (שקר) וההוכחה היא
תהליך, אשר סופו אימות הטענה. בתהליך זה אנן משתמשים במערכת היסק, המורכבת
מקבוצה עקבית של אקסיומות (המכונות גם הנחות) ומאוסף של כללי היסק נאותים.
תהליך ההוכחה הוא כדלהלן: תחילה, באמצעות כללי היסק של המערכת, רושמים את התולדות
המיידיות של חלק מההנחות. בשלב הבא, רושמים פסוקיס חדשים, שהס התולדה המיידית של
הקבוצה המורחבת. את הפסוקים החדשים מכניס בשס תולדות של הקבוצה המקורית (מבלי
תוספת "מיידיות"). כך ממשיכים, עד שמגיעים לפסוק, אשר הוא הטענה שהחלטנו להוכיח.
ההוכחה מסתיימת כאשר הפסוק הזה נרשם כתולדה של הקבוצה המקורית.
נציין, כי הקבוצה המורחבת היא קבוצה עקבית. מדוע! כי הקבוצה המקורית של ההנחות היא
קבוצה עקבית, ולכן יש צירוף של ערכי-אמת, עבורו לכל פסוק של קבוצת ההנחות ערך-אמת
1. כלל היסק הוא נאות, כלומר התולדה המיידית נובעת מקבוצת ההנחות, לכן עבור אותו
צירוף נקבל לכל אחת מהתולדות המיידיות ערך-אמת 7. יוצא אם-כן, שהקבוצה המורחבת
5
ך-=-=ו-
היא עקבית, שהרי יש צירוף שעבורו לכל אחד מפסוקיה יש ערך-אמת ד (ראה גם את הוכחת
תכונה 7 בסעיף 3.4).
את התהליך הזה ניתן גם לתאר כך: נתוניס קבוצת הנחות ואוסף כללי היסק נאותים. באמצעות
כללי ההיסק אנו בונים קבוצות עקביות, אשר קבוצת ההנחות המקורית היא חלק מהן.
כשמתקבלת קבוצה הכוללת את הטענה, עוצרים את התהליך ואומרים כי הוכתנו את
הטענה.
נציין, כי יש אסטרטגיות הוכחה נוספות, אשר כמה מהן נכיר בהמשך.
פסוקים, אשר יש להס הוכחה במערכת היסק נתונה, מכוניס משפטים של המערכת, או בקצרה,
משפטים. לתולדה יש הוכחה ולכן - תולדה היא משפט. כפי שציינו, ההוכחה מתנהלת בעזרת
כללי היסק נאותים, כלומר, באמצעות כללי היסק, אשר התולדות המיידיות שלהס הן אלו שגם
נובעות בדרך לוגית. מתבקשת השאלה: האם כל הפסוקים הנובעים בדרך לוגית מההנחות,
הינס גם משפטים! במילים אחרות, האם לכל פסוק, אשר נובע מהנחות של מערכת היסק יש
גם הוכחה במערכת זו, כלומר, האס ניתן לקבל את הפסוק מתוך ההנחות של המערכת על-ידי
ההפעלה של כללי ההיסק שלה! התשובה היא שלילית. כלומר, ישנן מערכות היסק בהן לא כל
פסוק שנובע מהנחות ניתן להוכחה. מערכת היסק, אשר בה ניתן להוכיח כל פסוק הנובע
מההנחות, נקראת מערכת היסק שלימה. בלשון אחרת: מערכת היסק היא שלימה כאשר כל
פסוק הנובע מההנחות שלה, הוא גם משפט שלה.
דוגמה של מערכת היסק לא שלימה
ניעזר בשפה, אשר סימניה הם שני פסוקים אטומיים 8 ו-5, חמשת הקשרים ר7]) /, ש,
+-, >> וסוגריים. כקבוצת ההנחות נגדיר את הפסוק 8 ואת כל הטאוטולוגיות של השפה.
הקבוצה הזו היא עקבית, שהרי לטאוטולוגיה יש תמיד ערך-אמת 1, ולכן כל עוד ערך
האמת של 8 הוא 1, נקבל ערך-אמת 7 לכל אחד מפסוקי הקבוצה. בתור כלל היסק נאות
נבחר את הקבוצה (6/ק ,6 ,₪ ). נתבונן בפסוק 4--ט. פסוק זה נובע מקבוצת ההנחות
מכיון, שאס ערך-אמת של 8 הוא 1, אז גם ערך-אמת של 8--5 הוא 1. אבל הפסוק 8--ט
אינו משפט של המערכת, שכן בעזרת כלל ההיסק (ף/צק ,6 ,ו ניתן מתוך ההנחות לקבל
פסוקים, השקולים ל-8 או לטאוטולוגיה. הפסוק 8--פ אינו טאוטולוגיה ואינו שקול ל-8,
ולכן אינו מהווה משפט של המערכת.
באופן מופשט נאמר כך: למערכת היסק לא שלימה אין מספיק כללי היסק כדי להגיע לכל
פסוק, שנובע מההנחות שלה.
3 דוגמאות של כללי היסק
בסעיף זה נדון בכמה כללי היסק בעלי חשיבות מיוחדת בתכנות לוגי. נזכיר, כי כלל היסק הוא
מונח תחבירי ולא סמנטי. מחד, כלל היסק הינו מניפולציה עם פסוקים כדי לקבל פסוק חדשו
המכונה תולדה מיידית ומאידך, כלל היסק נאות הוא מונח בו מעורב גם הנושא הסמנטל",
דהיינו: התולדה המיידית של הפסוקים נובעת מהם.
א (0 .6-כ ,ק) :5ת6פסק 5ט0סוח
סיס
כלל ההיסק פמסתסק 0605 קובע, כי הפסוק 6 הוא תולדה מיידית של שני - [ .
שצורתם ק ו---ק. הו כלל היסק נאות, שהרי אם ערכי-אמת של ₪ ו-6--0 הינם 6
גם ל- יש ערך-אמת 1, כפי שלמדנו בדוגמה ד' בסעיף 3.4. החשיבות של פתסחסכ ₪5
76
מוצאת את ביטוייה במשפט הבא:
מערכת היסק היא מערכת שלימה כאשר:
א. קבוצת ההנחות כוללת את כל אחת מהטאוטולוגיות של השפה,
ב. 5ת6תסק פ5ט6סות נמנה עס כללי ההיסק שלה.
את הוכחת המשפט אפשר למצוא בספרי הלימוד של לוגיקה מתמטית.
ב. (קר- ,706 - ,6--ק) :5ח1016 פטססות
כלל ההיסק 101685 5ט4סות קובע, כי פסוק שצורתו התחבירית פִר-, הוא התולדה המיידית
של פסוקים שצורתם 7-4 ו-6--כק. גם הכלל הזה הוא נאות, שהרי אס ל-4--ם ערך-אמת
ד ול-4 ערך-אמת = אז, על פי לוח-אמת של הקשר -- יהיה ל-ק ערך-אמת ת. ולכן ל-קר-
יהיה ערך-אמת 1, משמע - סר- נובע מ-(770 ,6--פ).
ג. | (1--ק ם--6 ,6--ק) :קַתוחוגת0
כלל ההיסק פַחוחוגח6 קובע, כי שני פסוקים שצורתם ז--6, 6--ס מולידים את הפסוק ז--ם.
אנו מציעים לקורא לבנות לוח-אמת משותף של הקבוצה (--ק מ--6 ,6--פ) על מנת
להשתכנע, כי כלל היסק זה הוא נאות.
ד ₪ סק ףש6ר ,ףיק) :תסו1ט]1650
כלל ההיסק תסנזט]650ז קובע, כי כאשר לשני פסוקים יש צורה שק ו-זצשר-, הפסוקים
4 ו-0- "מבטלים" זה את זה ונוצר הפסוק ז/צק. ניתן לבדוק באמצעות לוח-אמת משותף
של (צק ףשףר- ,6שם) כי זהו כלל היסק נאות.
לכלל היסק זה חשיבות רבה בתחום הוכחות משפטים אוטומטיות.
4 הוכחה בדרך השלילה
למדנו, כי תהליך ההוכחה של משפט מתבצע על-ידי "צבירת" תולדות מיידיות של הנחות,
הוספתן אל הנחות, "צבירת" תולדות של הקְצָוצה החדשה והוספתן, וכן הלאה, עד אשר אחת
התולדות שהתקבלה היא המשפט. קיימת דרך נוספת להוכחת המשפטים והיא דרך השלילה.
כדי להוכיח משפט בדרך השלילה, מוסיפים על קבוצת ההנחות את שלילת המשפט כהנחה
נוספת ומוכיחים, כי קבוצת ההנחות המורחבת איננה עקבית. אבל קבוצת ההנחות המקורית
היתה עקבית ולכן ניתן לפסוק, כי חוסר עקביות נגרם על-ידי שלילת המשפט, כלומר, כל צירוף
של ערכי-אמת, אשר עבורו ערכי האמת של ההנחות המקוריות היו 1, מזכה את שלילת המשפט
בערך-אמת א. מכאן מסיקים, כי צירוף זה מזכה את המשפט בערך-אמת 1, ולכן המשפט נובע
מקבוצת ההנחות.
כדי להוכית את חוסר העקביות של קבוצת ההנחות המורחבת פונים אל אוסף כללי ההיסק
אשר ברשותנו על מנת להסיק, כי פסוק מסוים כ ושלילתו קר- הם תולדה של הקבוצה
המורחבת. כללי ההיסק שלנו נאותים, משמע שאם ק ו-קר- הס תולדות של הקבוצה המורחבת,
אז כ ו- פר- נובעים מהקבוצה המורחבת, ולכן היא אינה עקבית. בדרך כלל, מחפשים את
הפסוק םק בין ההנחות המקוריות. כלומר, רוציסם לקבל באמצעות כללי היסק, כי שלילתה של
אחת ההנחות היא תולדה של הקבוצה המורחבת. בלשון תמציתית ניתן לתאר את ההוכחה
בדרך השלילה כך: כדי לומר, כי פסוק מסויס הוא משפט (כלומר תולדה של ההנחות באמצעות
כללי היסק נאותים), אנחנו מוכיחים כי שלילתו של הפסוק איננה משפט.
7
5 השימוש בכללי ההיסק להוכחות אקטואליות
לסיום החטיבה הראשונה נציג אוסף שאלות, לעבודה עצמית. בחיי היומיום פותרים לעיתים
קושיות לוגיות כדוגמת השאלות שלהלן מבלי לציין באופן מפורש את האקסיומות ואת כללי
ההיסק שעל פיהם פעלנו. בשאלות אלו יש לפתור את הקושיות ולנמק את התשובה על ידי ציון
מפורש של כללי ההיסק שעל פיהס התקבל הפתרון.
שאלה 1
בכל אחת מהקבוצות שבהמשך יש שתי אקסיומות ושאלה אחת. ענה על השאלה מתוך
האקסיומות ועל פי כללי היסק נאותים. בחר אחת מהתשובות האלה:
כן.
לא.
לא ידוע.
התשובה "לא ידוע" הינה למקרה, כאשר אי-אפשר להסיק מהי התשובה הנכונה.
הסבר את בחירתך.
(כדוגמה לשיטת הפתרון האפשרית, נענה על השאלה של קבוצה אי).
קבוצה א':
אקסיומות: השקדיה פורחת.
ט"ו בשבט הגיע אם השקדיה פורחת.
שאלה: ט"ו בשבט הגיע!
תשובה: כן.
לא.
לא ידוע.
הסבר: נסמן ב-3 את הפסוק 'השקדיה פורחת,
וב-פ את הפסוק 'ט"ו בשבט הגיעי.
האקסיומות: (0--8 ,8).
השאלה: ס
התשובה: | כן, על פי 5ח6חסכ 8ט6סוז.
קבוצה ב':
אקסיומות: השקדיה פורחת אם השמש זורחת.
השקדיה לא פורחת.
שאלה: השמש זורחתז
תשובה: כן.
לא.
לא ידוע.
הסבר את התשובה.
קבוצה ג':
אקסיומות: אם יש צמיחה אז יש ברכה.
יש ברכה.
68
שאלה: יש צמיחה!?
תשובה: כן.
|לא.
לא ידוע.
הסבר את התשובה.
קבוצה ד':
אקסיומות: חה-חה-חה אס יש בידור.
חה-חה-חה.
שאלה: יש בידור!
תשובה: כן.
לא.
לא ידוע.
הסבר את התשובה.
קבוצה ה:
אקסיומות: חה-חה-חה אם יש בידור.
אין בידור.
שאלה: חה-חה-חה?
תשובה: כן.
לא.
לא ידוע.
הסבר את התשובה.
קבוצה ו':
אקסיומות: הגוף אינו בריא.
הגוף בריא אס הנפש בריאה.
שאלה: הנפש בריאה!
תשובה: כן.
לא.
לא ידוע.
הסבר את התשובה.
שאלה 2
בכל אחת מהקבוצות שלהלן יש שלוש אקסיומות ושאלה אחת. ענה על השאלה בהסתמך
על האקסיומות. ציין את אחת משלוש התשובות האלה:
כן.
לא.
לא ידוע.
הסבר את תשובתך.
9
קבוצה א':
אקסיומות: יש חיוך אם יש מצב-רות.
יש מצב-רוח אם יש שמש.
יש שמש.
שאלה: יש חיוך?
תשובה: כן.
לא.
לא ידוע.
הסבר את תשובתך.
קבוצה ב':
אקסיומות: אם יש עבודה, אז יש פרנסה.
אס יש פרנסה, אז יש מצב-רות.
אין מצב-רוח.
שאלה: יש עבודה!
תשובה: כן.
לא.
לא ידוע.
הסבר את תשובתך.
קבוצה ג':
אקסיומות: אם יש צמיחה, אז יש עבודה.
אם יש עבודה, אז אין בריאות.
יש בריאות.
שאלה: יש צמיחה!
תשובה: כן.
לא.
לא ידוע.
הסבר את תשובתך.
קבוצה ד':
אקסיומות: הגוף בריא אם הנפש בריאה.
הנפש בריאה אם אין מלחמה.
הגוף אינו בריא.
שאלה: יש מלחמה!?
תשובת: כן.
לא.
לא ידוע.
הסבר את תשובתך.
חטיבה שניה -
עקרונות של תכנות לוגי
את הרעיון של תכנות לוגי ניתן להציג באופן הבא:
+ נתאר את הבעיה.
* נשלב את התאור הזה עס מנגנון ההסקה, אשר אינו תלוי בבעיה.
* נציג שאילתה ונקבל תשובה.
הבעיה .
| |
----ך--=
| מנגנון ההסקה |
תשובה | | שאילתה
המעותמש
הרעיון של תכנות לוגי
בחטיבה זו נכיר את דרך החשיבה של תכנות לוגי, ונלמד כללים לתאור הבעיה. את הבעיה
מתארים בשפה פורמלית, אשר בנויה על בסיס של לוגיקה ומכילה פסוקים משני סוגים: עובדות
וחוקים. העובדה היא פסוק, אשר לא ניתן לפרקו לפסוקים פשוטים יותר מבלי לאבד את
משמעותו. את העובדה נכיר בפרק 5. מבחינה תחבירית העובדה הינה נוסחה אטומית של
לוגיקת היחסים; על כך נדון בפרק 6. החוק הינו פסוק, אשר מורכב מפסוקים פשוטים
ו
12
באמצעות הקשרים הלוגיים =1, עאג, 08, זסא. מבנה של חוק נכיר בפרק 7.
העובדה מתארת יחס בין העצמים, אשר לעיתים אינם ידועים. תהליך הגילוי שלהם הינו חלק
של הבעיה. את העצמים שאינם ידועים, מסמנים באמצעות משתנים, כפי שנלמד בפרק .. נציין,
כי משתנים לוגיים הינם מכומתים, משמע, בנוסף לעצם בלתי ידוע, הס מבטאים ערך כמותי,
הקשור לעצס זה. בשאלות הכימות נדון בפרק 6.
העובדות והחוקים מבטאים מידע, הרלוונטי לתאור הבעיה. על בסיס מידע זה ניתן להציג
שאילתות ולהסיק מסקנות. מנגנון ההסקה מיושם באמצעות תוכנה (בספר זה נשתמש בתוכנה
של 2801.06-/%א1500/ש), אשר די לנו להכירה באופן כללי לצורך תכנות לוגי. את תהליך
הסקת המסקנות ניתן להסביר במונחים לוגיים, כפי שנביא בפרק 7.
מנגנון ההסקה מופעל על ידי השאילתה. בפרק 5 נדון בשאילתה של תכנות לוגי.
המינוח של תכנות לוגי טרס התמסד בשל גילו הצעיר. אי-לכך, משתמשים במונת "תכנית לוגית"
כדי לציין אוסף של עובדות וחוקים, המתארים בעיה. השמות הנוספים לאוסף זה הינס:
+ מסד נתונים, או בסיס נתונים - כשהאוסף מכיל עובדות בלבד.
+ מסד ידע, או בסיס ידע - כאשר בנוסף לעובדות, האוסף מכיל גם חוקים.
בשם "תכנית לוגית" משתמשים גם כדי לציין את האוסף שמכיל עובדות, חוקיס ושאילתה, אשר
באמצעותה מופעל מנגנון ההוכחה. במקרה זה אומרים: "התכנית רצה", "התכנית מבצעת"
וכדומה. להבא, נשתמש במונח "תכנית לוגית" לציון שני מבניס אלה. לאיזה מן המבנים אנו
מתכוונים: למסד נתונים, למסד ידע או ל"תכנית רצה", יהיה ברור מההקשר.
את התכניות הלוגיות של החטיבה הזאת ניישם באמצעות שפת התכנות פרולוג בגירסה
- אס /.
פרק 5
עובדות, משתנים ושאילתות
בפרק זה נכיר את המושגים הבאים:
עובדה - מתארת יחסים בין עצמים.
שאילתה - מאחזרת מידע מתוך העובדות שבבסיס הנתונים.
משתנה - מציין עצמים, אשר אינס ידועים.
1 יחסים וקבוצות סדורות של עצמים
נתבונן בפסוק: לונדון היא בירת אנגליה. הפסוק הזה מבטא יחס בין שני עצמים. היחס הוא:
בירה של, והעצמיסם הם: לונדון, אנגליה. סוג יחס זה נקרא דו-מקומי, כיוו שהוא יחס המתקיים
בין שני עצמים. להלן דוגמאות נוספות של יחסים דו-מקומיים.
עצם ראשון יחס עצם שני
אברהם אב של יצחק
יצחק אב של יעקב
צמיג חלק של גלגל
גלגל חלק של מכונית
חמש גדול מ- שלוש
שלוש גדול מ- אחד
זוג העצמיס (אברהם, יצחק) עומד ביתחס הנקרא אב של. זוג עצמים העומד ביחס דו-מקומי הוא
זוג סדור. למה סדור! כי אם הופכים את סדר העצמים עלול היחס לחדול מלהתקייס. לדוגמה:
אברהס הוא האב של יצחק, אבל יצחק אינו אביו של אברהם. כלומר, הזוג (אברהם,יצחק) והזוג
(יצחק, אברהם) אינס זהים בהקשר ליחס אב של.
33
---- 1/7
להלן נציג את היחס ואת העצמים בדרך, אשר שפת הפרולוג אימצה אותה ואשר מקורה
בלוגיקת היתסים (08/0! 60/6416זק). את העצמים נכתוב בין סוגריים בהתאס לסדר שנקבע,
ואת היחס נכתוב לפנ? הסוגריים. לא נשאיר רווח בין היחס והסוגר הפותח ונוותר על מילים
כמו: של, מ-(כמובן בתנאי שהוויתור לא יפגע במשמעות הנאמר). נציג בצורה זאת את
הדוגמאות שהצגנו קודם:
אב( אברהם, יצחק)
אב(יצחק, יעקב)
חלק(צמיג, גלגל )
חלק(גלגל, מכונית)
גדול(חמש, שלוש)
גדול(שלוש, אחד)
בהמשך נכנה את היחס בשס פרדיקט (6016416זק) ואת העצמים שבסוגריים - בשס ארגומנטיס
(15ח6וחט8ז4). מקורם של השמות האלה בלוגיקת היחסים. בשמות אלה משתמשים גם
בפרולוג.
בנוסף ליחסים הדו-מקומיים ניעזר גם ביחסים תלת-מקומיים, ארבעה-מקומיים,
חמישה-מקומיים, וכן הלאה. נעיין בפסוק: צמיג וגלגל הס חלקי המכונית. היחס חלקים של
מתקיים בין שלושת העצמים: צמיג, גלגל, מכונית. הקבוצה (צמיג, גלגל, מכונית) היא שלשה
סדורה בהקשר ליחס זה. היחס חלקים של מתקיים גם בין העצמים של השלשה הסדורה (יד,
ראש, גוף). היחס הורים של מתקייס בין העצמיס של השלשות הסדורות (אברהם, שרה, יצחק)
ו-(דני, ריקי, יוסי). נארגן את היחסים של השלשות באמצעות הכתיב הפורמלי של לוגיקת
היחסים, כלומר באמצעות פרדיקטים, ארגומנטים וסוגריים.
חלקים של(צמיג, גלגל, מכונית).
חלקים של(יד, ראש, גחף).
הורים של(אברהם, שרה, יצחק).
הורים פל[דג", ריק", יומר).
אומרים, כי צמיג וגלגל הס חלקי המכונית. אפשר גם לומר: החלקים של המכונית הס הצמיג
והגלגל. נתבונן ברשימה הבאה:
חלקים של(מכונית, צמיג, גלגל).
חלקים של(גוף, יד, ראש).
הורים של(יצחק, אברהם, שרה).
הורים של(יוסי, דני, ריקי).
שינול
ברשימה האחרונה סדר העצמים בין הסוגריים שונה מזה של הרשימה הקודמת. למרות ולא
הסדר ברור, שבכל אחת מן הרשימות הכוונה היא, כי היד והראש הן החלקים של -- ולכן
אחרת. לגבי אברהם, שרה ויצחק אנו מניחים, כי מדובר במשפחה התנ"כית מ ₪ של
בכל אחת מן הרשימות אברהם ושרה הם ההורים של יצחק. לגבי השלשות (דני, ריק קוריס של
הרשימה הראשונה ו-יוסי, דני, ריקי) של הרשימה השניה, מניחים כי דני וריקי הם הה ה ולי
יוסי, שהרי בכל אחת מן השלשות דני וריקי "תופסים" את מקומותיהם של אברהם ושרי
"תופס" את מקומו של יצחק.
4
כדי להצפין מידע על היחסים והעצמים בצורה ברורה וחד-משמעית ובאמצעות הכתיב הפורמלי
של לוגיקת היחסים, חייבים לציין באופן מפורש את תפקידו של כל אחד מארגומנטים. נעיין
ברשימה שלהלן:
הורים של(גלית, טל, רן).
הורים של(לילית, שרית, דן).
הורים של(חדווה, רוני, משה).
הרשימה הזו הינה נטולת מידע ולכן גם נטולת משמעות. כדי להבהיר את הנאמר בה, נוסיף
את השורה הבאה:
הורים של(אם, ילד, אב).
נסכים, כי בכל אחת משורות הרשימה מבנה הנתונים הוא כזה: במקוס הראשון נמצאת האם,
במקוס השני נמצא הילד ובמקום השלישי האב. נאמר בדרך משל, כי "סדר סדר תרדוף ובסדר
תשפוט את רשימתך". א
2 עובדות, בסיסי נתוניס ושאילתות
בפרק זה נכיר כמה מן הרעיונות המהוויס את הבסיס של תכנות לוגי ושל שפת הפרולוג. את
העולסם אשר סובב אותנו מתארים בפרולוג באמצעות הכתיב הפורמלי של לוגיקת היחסים,
כלומר, באמצעות היחס וקבוצת העצמים הסדורה. את העובדה כי לונדון היא בירת אנגליה
מבטאיס בפרולוג כך:
בפרולוג העברי בפרולוג האנגלי
בירה(לונדון, אנגליה) (6ת₪18ַת6 ,ת860םתס1%81)1ק08
ה-[119ק63 של הפרולוג האנגלי וה-בירה של הפרולוג העברי הס היחסים. העצמים מוקפים
בסוגרייס ומופרדיס בפסיקים. הביטויס לונדון, אנגליה, מסשתס!, 6חג1פַח6 הינם עצמים.
את העובדה כי אברהם ושרה הם ההורים של יצחק נבטא כך:
הורים של(אברהם, שרה, יצחק) (15880 ,בת8828 ,ם8ַת01/)8028 פסתסעהע
ברשימת העצמים נציין במקוס הראשון את שם האב, בשני - את שם האם ובשלישי - את
שסם הילד. בכל מקרה עלינו לשמור על סדר קבוע כפי שהוגדר.
להלן כמה מכללי התחביר של שפת פרולוג:
1. שמות היחסים והעצמים מתחיליס באות. בפרולוג האנגלי תהיה זו אות אנגלית קטנה. את
תפקיד האות הגדולה בפרולוג נכיר בהמשך.
2 שמות היחסים והעצמים אינם כוללים רווחים. את הרווחים "סוגרים" באמצעות קו-תתתון
05-59
5
ו ו
3 אין משאיריס רווח בין היחס לבין הסוגר הימני הפותח.
4 כל פסוק של פרולוג (עברי, או לועזי) מסתיים בנקודה.
לתכנית הלוגית הראשונה שנכיר נקרא "המשפחה", או 101 6. התכנית הזאת היא אוסף
של עובדות על המשפחה התנ"כית המפורסמת.
הורה(אברהם, יצחק). . (15880 , מהת8ת6)80תסיהק
הורה(יצחק, יעקב). . (18000 ,%6)15880ת6ע82ק
הורה(שרה, יצחק). . (15880 ,ת5828)ס6תסעהק
הורה(רבקה, יעקב). . (18000 ,6)210%8ת6עהק
זכר(אברהם). . ( 8₪ת8028) 810
זכר(יצחק). . (15886) 816
זכר( יעקב). . (18600 ) 1816
נקבה(שרה). . ( 5828 )6 26₪81
נקבה(רבקה). . (10%8ת ) 20810
תכנית 5.1 - ע|ווחפ=] 6מד (בגירסה עברית ואנגלית)
התכנית ץ!ןוחג] 76 מתארת את היחסים האלה: הורה, זכר, נקבה. היחס הורה הוא יחס
דו-מקומי בין שני העצמים אשר הראשון בהסם הוא ההורה והשני הוא הילד. היחס זכר מכונה
יחס חד-מקומי או תכונה. הכינוי האחר ליחס של פרולוג הוא פרדיקט. את העצם מכנים בשם
ארגומנט. מקורם של הכינויים האלו בלוגיקת היחסים.
התכנית ע[ווחג- 6ה'ד בגויה כולה מעובדות. עובדה של פרולוג היא פסוק, אשר לא ניתן לפרקו
לפסוקים פשוטים יותר מבלי לשנות את משמעותו (בלוגיקה פסוקית קראנו לפסוק מסוג זה
פסוק אטומי). ערך-אמת של עובדה, המופיעה בתכנית, הוא 7 (אמת) במסגרת אותה תכנית.
פירוש הדבר הוא, כי ערך האמת של העובדה הורה(אברהם, יצחק) הוא ד (אמת), מכיון שהיא
שייכת לתכנית, וערך האמת של העובדה הורה(אברהם, ישמעאל) הוא = (שקר), כי היא אינה
שייכת לתכנית. נציין, כי ערך האמת של העובדה הורה(יצחק, אברהם) הוא = (שקר). משמע,
שקבוצת העצמים היא קבוצה סדורה וכאשר משנים את סדר העצמים, מפסיק היחס
להתקיים.
התכנית עוווחגץ 186 היא אוסף של נתונים על המשפחה התנ"כית. ניתן אם-כן לכנותה בשם
בסיס נתונים (48180956). זהו מאגר של נתונים, אשר ממנו אפשר לאחזר מידע על המשפחה
התנ"כית. בפרולוג ניתן לאחזר את המידע באמצעות שאילתה.
המבנה התחבירי של השאילתה זהה לזה של העובדה. ההבחנה בין עבודה לשאילתה נעשית
בכל גירסה של פרולוג בדרך האופיינית לה. אנו נציין את השאילתות של פרולוג על ידי'סימו
שאלה, מקף ורווח אחד לפחות לפני הביטוי (מימין או משמאל, בהתאם לכיוון השפה4
לדוגמה:
6
?- הורה(אברהם, יצחק). . 15880( תהַַהּתס6)8תסעאק -?
כן 958
?- הורה(אברהם ישמעאל). . (15₪861 , םהתהעס8)סמסעהם -?
לא סת
?- הורה(יצחק, אברהם). . (ע8028(8 ,15880)%ת820ק -?
לא סת
?- נקבה(שרה). . (ת6₪816)5828+ -?
כן בב
?- נקבה(לאה). . (ת0₪816)168? -?
לא סת
הצגת שאילתות וקבלת תשובות דומה לשיחה, אשר מתקיימת בין שניים. האחד הוא אדס,
והשני אינו אדס. השני הוא מחשב, וזאת יש לזכור היטב. פרטים רביס אין צורך לבטא בשיחת
בני-אדם. השס לאה למשל, הוא שם של אישה ובהקשר למשפחה התנ"כית הוא שסם של אחת
מנשות המשפחה. זהו ידע שגור (56ח56 חסוחוחסס6)- נחלת כל אדם מן הישוב. הוא כולל אין ספור
קשרים אסוציאטיביים ונרכש במשך שנים רבות.
הקניית ידע שגור למחשב היא אחת הבעיות הקשות ביותר בתחום של בינה מלאכותית. פרולוג
הינה שפת תכנות, כלומר, שפה פורמלית, אף-על-פי שהיא נראית כמעט כמו שפה טבעית.
הדמיון בין פרולוג לבין שפה טבעית מטעה לפעמים את המשתמשים בפרולוג. בשל דמיון זה,
הס מייחסיס למערכת הפרולוג תכונות אנושיות ומצפים לתשובות חיוביות המתבססות על ידע
שגור. בהמשך נלמד את כללי ההיסק ואת החוקים, אשר באמצעותם מרחיבה המערכת של
פרולוג את מאגר הידע שלה. בכל מקרה, אין להקנות לשפת הפרולוג תכונות של בני-אנוש. יש
לנסח את השאילתות על פי כללי התחביר שלה, ויש לצפות לתשובות בהתאם לנתוניס שנצברו
בבסיס הנתונים.
3 משתנים לוגיים, שאילתות עם משתניס
באופן עקרוני, תכנות לוגי הינו תכנות הצהרתי ואינו תכנות פרוצדורלי. תכנית לוגית אידיאלית
היא אוסף של עובדות וחוקים, המתארים את המושגים שבהס אנחנו דנים. קל מאוד להבין
את הנאמר בה. נעיין בתכנית לוגית 5.2, המכונה עְזבחסנו6וע. זהו מילון אנגלי-עברי. המילה
העברית מופיעה בו בתעתיק הלועזי, כיון שהפרולוג האנגלי איננו מכיר את האלף-בית
העברי.
.(?8161 ,טש8)פת81סס . (ע8 ,ע6ת80+) 5ת68ם
. (%566 ,%58785)פת681ס - (80106 , 6פעטת) 5ת₪68
. (56% ,5)061%658פת681ס . (0%ת80 ,ע5)51806פת₪68
. (68166 ,5)806ת681ס - (טטט2 , צ1 ) 5ת₪68
. (8166 ,ת6ט6)פת1שסס . (מ6ט6 ,6ת560)פתפסם
. (8162 ,0%ת5)806מ681ס - (061%58 , 08₪) ₪089
. (ת281 ,טגוש2) פת1שסס . (08%6881 ,תס1תס)5ת68ם
. (06% , 080581)פת81סס . (606 , 616ת) 5ת68ם
. (6660 ,685)פת1שסס . (88ץ%58 ,110%ק)5ת₪68ם
688( - ,ע1+) ₪685
תכנית 5.2 - צְזפחסוזסושם
7
לצורך התרגום השתמש כותב התכנית ביחס 5חג6וח, וכדי למצוא בספר את התעתיק העברי
של המילה הוא נעזר ביחס פתושסט.
למעשה, כותב התכנית בנה מאגר מידע, אשר ניתן להשתמש בו לצורך התרגום. כאן הוא זקוק
לסוג שאילתות, השונות מאלו, אשר ראינו בפרק הקודס. הוא זקוק לשאילתה שמשמעותה: "מהו
התרגום לעברית של המילה ז6חו3/?* הוא גם זקוק לשאילתה: "מהו תרגומה לאנגלית של המילה
ש8?". השאילתה מן הסוג, אשר הופיע בפרק הקודס איננה מתאימה לו.
אס הוא ישאל: (ש8 6₪ח6805)141ות-?
פירוש הדבר שהוא יודע, כי תרגומו של ז6חו9) הינו צפ.
סוג השאילתה החדש שנלמד הוא שאילתה עם משתנה. את המשתנה של פרולוג (עברי ואנגלי
כאחד) מסמנים באמצעות אות אנגלית גדולה. אם-כן, את השאלה: "מהו התרגוס לעברית של
המילה ז06ח:ג]?* מבטאיסם בפרולוג כך:
. (א ,ע6ת5)18%ת₪68 -?
התשובה של פרולוג תהיה:
טם = א
משתנים של פרולוג הם משתנים לוגיים ועל כך עוד נדון בהמשך. נציין רק כי הם שונים לחלוטין
ממשתני התכנות הפרוצדורלי, אשר תפקידם היה לזהות את כתובות הזכרון של המחשב.
השאילתה הבאה שלנו תהיה:
. (ט8 ,5)8ת₪08 -?
התחום של המשתנה הוא פסוק אחד בלבד, ולכן המשתנה % של השאילתה השניה איננו קשור
למשתנה % של השאילתה הראשונה. התשובה של פרולוג תהיה:
עס6ת280 = א%<
כשמעוניינים לקבל תשובות נוספות, מקישים מייד אחרי התשובה את הסימן ";'" (נקודה-פסיק).
נעיין בדוגמה שלהלן:
. (8000% ,%)פת68ם -?
;ספת = 3
(ע818%66 = %<
(פעסשפת8 6עסם) סם
להלן כמה דוגמאות נוספות של שאילתות ותשובות:
. (8 ,ץ1+)5ת₪68 -?
ְטטט? = א
]88 = <
( פעסטפת8 6עסם) סת
. (8 ,2ע6ת5)₪0%מ₪68 -?
סם
|108
=
התשובה לשאילתה האחרונה היא שלילית. פירושה, כי בסיס הנתוניס
ץזהתסוז6וכ] אינו כולל את התרגוס לעברית של המילה זסותזסוח.
ניתן גס להציג שאילתה מן הסוג הבא:
. (צ ,א)5ת₪68 -?
בתשובה נקבל את כל זוגות העצמים, המקיימים את היחס 5ת68וח:
עס6םת8%? = א
;טם = צ
סאפ = א
;0 = ץצ
ע51506 = א
;]סתסה = ץצ
וכך הלאה.
הצגה של שאילתה עם משתנה ניתן לפרש כהצגה של שלוש קושיות:
1. האם קיימת הצבה תחת המשתנה עבורה ערך האמת של הפסוק יהיה ד (אמת)!
2 מהי ההצבה הזו (בתנאי שהיא קיימת)!
3 האס קיימות הצבות נוספות, ומה הןז
אס התשובה לקושיה הראשונה היא שלילית, נקבל: סח (לא). אס התשובה לקושיה הראשונה
היא חיובית, נקבל את ההצבה, וכאשר נקיש ";" נקבל הצבות נוספות, אם אלו אכן קיימות.
ישנן גירסאות של פרולוג בהן בתשובה לשאילתה מתקבלות ברצף כל ההצבות הקיימות.
סוג אחר של שאילתה עס משתנה הוא שאילתה עם משתנה, הקרוי משתנה אנונימי
(8718016/ פוסותותסתה). הצגת שאילתה מסוג זה מתפרשת כהצגת קושיה ראשונה בלבד. סימונו
התחבירי של משתנה אנונימי הוא קו-תחתון, והתשובה המתקבלת היא: 66ץ (כן), או: סח
(לא).
. (ע8 , )5ת₪68 -?
65
.( ,ע6ת5)₪06פת68ם -?
סםת
.( , )5ת₪68 -?
בב
>49
4 העובדות והשאילתות - תרגול
0
הגענו עתה לנקודת ביקורת, אשר תוכל לסייע לך לבדוק את שליטתך בחומר שלמדת בסעיפים
1
הכן עט ונייר. אין צורך במחשב.
עבודה מהנה!
שאלה 1
לפניך פסוקים בשפת הפרולוג. תרגם אותם לעברית או לאנגלית. תן הסברים, אם נראה לך
כי התרגום איננו חד-משמעל.
הערה: הפסוקים אינם תלויים זה בזה. כל פסוק הוא תכנית לוגית העומדת בזכות עצמה.
א. . (צע₪8 ,60₪ס)11%65
בא . (180% ,1₪ס) 6680265
ג. . (61₪) 6680062
ד. . (112 ,תת8) 66806205
ה. . (6680262)112
ו. . (מת8 ,7ע2ע8)₪8ע515%02
ז. . (שס% ,1₪ס)ע6ת80+
ח. . (1808 ,שסף ,61₪)ץ18011
שאלה 2
לפניך שתי תכניות לוגיות. תאר מה הן התכונות ומי הס העצמים בכל אחת מהתכניות.
תכנית א' תכנית ב'
. (016)ם6250ש
. (אתוסץ)ת6250ם
. (106ת)מ80ע6ק
- (₪001008 ) ת6250
. (ת6290ס)018
. (018)20156
. (ת106)062590ת
. (ע6ת106)₪68%ת
שאלה 3
תרגם לפסוקים של הפרולוג האנגלי את המשפטים הבאים:
האיש הזה זקן.
האיש הזה חביב.
הבית הזה ישן.
מזג האויר נחמד.
ל שש 4ב
00
לעזרתך - מילון עזר:
איש - תספזסק
זקן - 014
ישן - 016
חביב - 6סות
נחמד - 6סנות
שאלה 4
התבונן בתכנית לוגית 5.2, המכונה "ץזגחסווסוכש* (סעיף 5.3) ומצא את כל התשובות האפשריות
לשאילתות האלו:
א. .( ,616תט)5ת₪08 -?
ב .( ,ע6ם06עס)5ת₪68 -?
- .(8169 , )פת1שסס -?
ד. . (₪1₪61 , )פת1שסס -?
ה. .( , )פת1שסס -?
3 . (06% ,%)5ם1ש6ס -?
. . (8< ,5)%85ת661ס -?
ח. . (צ ,א)פםמ1שסס -?
שאלה 5
לפניך בסיס הנתונים:
. (106₪סעק ,1ת5010165)08
. (אס1סעק ,ת8תע)5010165
. (צעס15%ת ,111ת)5%06165
. (צעס15%ת ,ת8תע)5600105
. (0₪ס1סעק ,111נת)56016165
. ( ₪8%50₪8%6108 , 1ת08) 50101065
. (₪8%66₪8%108 ,ת8ת)56101065
הצג את השאלות אי - וי בשפת פרולוג, בדומה לדוגמה שלפניך.
דוגמה: מי לומד פרולוג? .(פַס!סזכ , %)2-5106165
האם מישהו לומד היסטוריה?
מי לומד מתמטיקה!
האם דני לומד משהו?
מה לומדת נילי?ז
האס הלימודים מתקיימים! (במילים אחרות: האס מישהו לומד משהו!)
נא להכין את רשימת הסטונדטים ואת רשימת הקורסים שהם לומדים (במילים
אחרות, מי לומד מה!).
ל טע בע
ופ
וו
בו ו ו ש
שאלה 6
לפניך שתי שאילתות:
1. .( ,א)5010105
2. .(א , )8016105
א. בהסתמך על בסיס הנתונים של שאלה 5 מצא לכל אחת מהשאילתות את כל התשובות
האפשריות.
ב. תרגס לעברית כל אחת מהשאילתות האלו.
שאלה 7
לפניך שלושה בסיסי נתונים:
בסיס נתונים אי: . ((ם₪200 ) 6206
. ( ₪200 ) 80855
5% )0106( .
5% ) 820% ( -
. (5106) 86טסת
. ((ם₪200 )6פטסת
. ( 26 ) 6פטסת
בסיס נתונים בי: . (06ע6 ) ₪66
- ( 2888 ) מ₪200
. (צ1₪6)5%ס
- (ע5%) ₪20
. (86גוסת) 6גג1ס
. (56ו0) ת₪060
. (6פגוסת) ₪06
בסיס נתונים ג': . (ת₪700 ,6 טפט0ס601
. (ת₪700 54 פטס601
- (106ס צַ5%)+ס פטס601
- (צ0עש צַ5%)+0 עטס601
. (106ס )0 עט0ס601
. (ת₪000 6 ענטס601
60102 0) ₪00%( .
02
התבונן בשאלות שלהלן:
לאילו עצמים יש צבע ירוק!
מהם צבעי השמיים!:
לאילו עצמיס יש צבע כחול!
מה צבע העצ?ז
האס הדשא הוא ירוק!?
האם הבית הוא אפור?
₪ ₪ 5 ₪ ₪ =
עליך לתרגם את השאלות האלו לשאילתות של פרולוג לפי:
א. בסיס נתוניס אי.
ב. בסיס נתונים בי.
ג. | בסיס נתונים גי.
איזה מבנה נתונים נראה לך יעיל והגיוני יותר: זה של בסיס הנתונים אי, זה של בי או זה של
גי נמק את תשובתך.
5 שאילתה מורכבת ומשתנה משותף
לפנינו הפסוק הבא:
"אברהס הוא ההורה של יצחק ויצחק הוא ההורה של יעקב".
פסוק זה מורכב משני פסוקים אטומיים באמצעות הקשר הלוגי "ו" ("וגם", שאג). את לות
האמת של הקשר הזה הגדרנו בחטיבה הראשונה. אין בפרולוג עובדות מורכבות. כלומר, עובדה
של פרולוג היא תמיד פסוק אטומי. עס זאת, פרולוג מאפשר הצגת שאילתות מורכבות. הסימון
התחבירי של הקשר "ו" ("וגם", שאנג) הוא "," (פסיק). השאילתה המורכבת של פרולוג נראית כך:
בפרולוג העברי:
?- הורה(אברהם, יצחק), הורה(יצחק, יעקב).
בפרולוג האנגלי:
. (18000 ,6)158880ת6ע8ק, (158806 ,מהת8תס6)8תסעהק -7?
התשובה לשאילתה מורכבת תואמת את לוח האמת של הקשר "וגם". היא חיובית ("כן" בפרולוג
העברי, 65 בפרולוג האנגלי), אס ורק אם, כל אחד מהפסוקיס המרכיבים את השאילתה, שייך
לבסיס הנתונים. במקרה של השאילתות דלעיל, יהיה זה בסיס נתונים ע11וג= 6ד (ראה סעיף
2). נציין, כי בתכנית לוגית כדוגמת ע1ווח9" 1₪6, סדר הפסוקים שבשאילתה אינו חשוב כלל,
שהרי בחטיבה הראשונה אמרנו, כי הפסוק ספ כשאז4 4 שקול לפסוק 3 שאג ס.
נעיין בדוגמאות נוספות:
?- הורה(שרה, יצחק), נקבה(שרה).
כן.
3
ניתן להרכיב שאילתות ממספר כלשהו (סופי) של פסוקים אטומיים:
?- הורה(יצחק, יעקב), זכר(יצחק), זכר(יעקב).
כן.
?- הורה(יצחק, יעקב), הורה(רבקה, יעקב), זכר(יצחק), זכר(יעקב),
נקבה(רבקה).
כן.
ניתן גם לשאול שאילתה מורכבת עס משתנים. תחום של המשתנה בשאילתה מורכבת הוא כל
השאילתה ולכן, אס נשאל:
?- זכר(א), נקבה(א).
נקבל תשובה "לא", שהרי אין עצם בבסיס הנתונים ע!נחג= 16, אשר הוא גם זכר וגם נקבה.
מאידך, בתשובה לשאילתה:
?- זכר(א), נקבה(צ).
נקבל את כל הזוגות שבבסיס הנתונים ע!ווח8] 16 (ללא קשר משפחתי מוגדר):
א = אברהם.
עשרה;
וו
%%*
א = אברהם
צ = רבקה;
א = יצחק
שרה;
וו
>
וכן הלאה.
נעיין בשאילתה:
?- הורה(אברהם, א), זכר(א).
המשתנה % של השאילתה הזאת מכונה משתנה משותף. אם נפרש את השאילתה באמצעות
שלוש הקושיות, אשר הצגנו בסעיף 5.3, תהיה הקושיה הראשונה כדלהלן:
וק
האם קיימת הצבה תחת המשתנה א, עבורה ערכי-אמת של הפסוק הראשון וגם הפסוש
השני, שניהם יהיו ד (אמת)ו
את השאילתה לעיל ניתן לתרגם לעברית כך:
מי הוא הבן של אברהם!
התשובה כידוע היא:
94
א = יצחק.
את השאלה:
מי היא הבת של אברהסם!?
ניתן להציג באמצעות השאילתה הזאת:
?- הורה(אברהם, א), נקבה(א).
על פי בסיס הנתונים ע11ו8= 6ו'ד תהיה התשובה "לא', כלומר, לאברהם אין בנות.
נדון בתפקידו של המשתנה האנונימי בשאילתה מורכבת.
נתבונן בשאילתה:
?- הורה(אברהם, ), נקבה( ).
השאילתה הזאת מתפרשת באמצעות קושיה אחת בלבד: האם קיימות הצבות (לאו דווקא
זהות), שעבורן ערך-אמת של הפסוק המורכב יהיה ד (אמת). לשאילתה זו נקבל תשובה חיובית
"כן", שהרי יש לנו שפע של הצבות כאלו מתוך ע!נוח4ת, 76 ובתוכן: הורה(אברהם, יצחק),
נקבה(רבקה). אם-כן, את השאלה:
האס לאברהס יש בת?
נציג בפרולוג כך:
?- הורה(אברהם, א), נקבה(א).
להלן מספר שאלות, שאותן נציג כשאילתות מורכבות של פרולוג (הן בפרולוג העברי והן
בפרולוג האנגלי).
1. מי הס ההוריס של יצחק!
?- הורה(א, יצחק), הורה(צ, יצחק), זכר(א), נקבה(ץ).
א = אברהם.
צ = שרה.
. (צ)26₪816 , (א)₪816 , (158806 ,צ)6תסעהק ,(15886 ,א<)6םסעהק -
תעסה =
588
כי 6 6
ו
5
--
2 האם ליעקב יש אם!
?- הורה(א, יעקב), נקבה(א).
א = רבקה.
. (20₪816)8 ,(18000 ,א)6תססהק -?
מהאטדת = א
לסיום נציג את השאילתה הבאה:
?- הורה( , יעקב), נקבה( ).
.( )102816 ,(18000 , )6ת6ס8ק -7?
התשובה לשאילתה זו חיובית ואף-על-פי-כן, לא תהיה זו התשובה לשאלה 2: "האם ליעקב יש
אס" נסיק זאת מתוך השיקולים אותם השמענו בדיון בשאילתה: !-הורה(אברהם.--),
נקבה(- )
6 הצגה של שאילתה מורכבת - תרגול
פרק זה מיועד לעבודה עצמית. נושא העבודה - שאילתה מורכבת ומשתנה משותף.
הכן עט ונייר. אין צורך במחשב.
עבודה נעימה!
שאלה 1
התבונן בבסיס הנתונים "צזגתסנוסוכ* (סעיף 5.3), וענה על השאילתות הבאות:
א. .(צ ,א)5ת81סס ,(א% ,ע6ת8%+)5פת₪68 -?
ב . (צ ,ת5)606ת0681 , (מ6ט6 ,א)פת₪68 -?
ג. . (065% ,צ)5ת6₪1ס ,(+ ,א)5ת₪68 -?
ד. .(א , )פת0681 ,( ,ע6ת5)186פת68ם -?
ה. . (+% ,ת6ט5)6ת681ס (ת606 , )5ת₪68 -?
ו. .(066 , )5ת081 ,( ,א)פת08ם -?
שאלה 2
התבונן בבסיס הנתונים עזחסוו6וע ותרגם את השאלות הבאות לשאילתות של פרולוג:
גמת!
ן א. מהו התרגום לעברית של המילה וסוו, ומהי האות הראשונה של המילה המתור
ב. מהי האות הראשונה של המילה העברית צטצ2 ומהו תרגומה לאנגליתז
ג. | מהי המילה העברית המתחילה באות |6316 ומהו תרגומה לאנגלית!
6%
|
שאלה 3
התבונן בבסיס הנתוניס הבא:
. (שס1סעק ,1ת5516165)08
. (108סעס ,5000165)28%1
. (צעס15%ת ,111םת)5006165
. (צע1560 ,50001065)28%1
. ( ₪8%5206₪8%6168 , 1ת08) 5006105
. ( 6₪8%6168ת₪8%5 ,111ת)5000165
תרגם לשפת פרולוג את השאלות האלה:
א האס מישהו לומד פרולוג וגם מתמטיקה!
ב. מי לומד פרולוג וגם היסטוריה!
ג. | האם נילי ורפי נפגשים בהרצאה כלשהי?
ד באיזו הרצאה נפגשים נילי ודנ?
שאלה 4
לפניך עובדות:
. (180% ,1₪ס)65ת6680
. (112 ,תת05)8ג66806
. (62)%1₪ת6680
6680202)112( .
בהסתמך על העובדות האלו, מצא את כל התשובות האפשריות לשאילתות האלה:
א. . (68062)8%> ,((צ ,א)658ת50680 -?
בּ. . (צ)ת6ת6686 ,(ץ ,א)65ג680ס -?
ג. .( )668002 ,(צ ,א%)65ת6680 -?
האם ניתן לקבוע מי המורה ומי התלמיד על פי היחס 168605 בלבד וללא היחס ז16806? נמק
את תשובתך.
שאלה 5
התבונן בבסיס הנתונים !ווח 6ו'ד (סעיף 5.2) וענה על השאילתות הבאות:
א. . . (צ)₪816 ,(צ ,א)6ת6עאק -?
ב . (%)6₪816? , (%)₪816 ,(צ ,א)6תסעהק -?
077
תרגם את השאילתות אי ו-בי של פרולוג לשאלות בשפה העברית.
שאלה 6
התבונן בבסיסי הנתונים אי, בי, גי, של שאלה 6 שבסעיף 5.4 וקרא את השאלות שלהלן:
א. האם קיים עצם כלשהו, אשר צבעיו אפור וכחול!
ב. האם העצץ, הדשא והבית הם בעלי אותו צבע!
ג. | מהו שם העצם, אשר צבעיו אפור וירוק!
ד
מה הם העצמים, אשר הצבעים שלהס הם כצבעי השמיים!
הצג כל אחת מהשאלות שלעיל כשאילתות של פרולוג על פי:
א. בסיס נתוניס אי.
ב בסיס נתונים ב'.
ג. | בסיס נתונים ג'.
ציין אילו מן השאלות לא ניתן היה לתרגם לשאילתות של פרולוג לפי אחד מבסיסי
הנתונים.
7 עובדות עס משתנים
כאשר עובדה מסוימת נכונה לגבי קבוצה גדולה של עצמים, אשר את שמותיהס אין אנו רוציס
לפרט, אנו נעזרים בעובדות עם משתנים. נעיין למשל בסיפור הבא:
כל אחד הוא בן-אדם.
כל אחד הוא בן-תמותה.
כל אחד אוהב את החיים.
הטענות שבסיפור דלעיל נכונות עבור כל אחד. נעיין בעובדות שלהלן:
בן אדם(א).
בן תמותה(א).
אוהב(א, חיים).
בהסתמך על העובדות האלו, התשובה לשאילתה הבאה היא חיובית:
?- בן אדם(משה).
כמו-כן, חיובית גם התשובה לשאילתה זו:
?- בן תמותה(כדור הארץ).
וגס לשאילתה הזו התשובה היא חיובית:
?- אוהב(גלגל, חיים).
88
4 =
אין לפרולוג ידע שגור ואין הבתחנה של הכוונות הנסתרות של כותב התכנית. כאשר אנחנו
אומרים "כל אחד הוא בן-אדסם" אנו מתכוונים לכל אחד מאיתנוּ, כלומר אל בני-אנוש. מאידך,
העובדה כי לכל % בן אדם(א), מתפרשת על ידי פרולוג כך: לכל א, אשר על פי כללי התחביר
של פרולוג יכול להתמצות בתוך הסוגריים, מתקיים: בן אדם(א). המסקנה היא, כי יש להיזהר
מעובדות עם משתנים, אם כי אנו נזקקיס להס לעיתים קרובות, כפי שנראה בהמשך.
59
זוי
פרק 6
השפה של לוגיקת היחסים
בפרק זה נמשיך להכיר את התשתית הלוגית שעליה מבוססת שפת הפרולוג. בהקדמה ציינו, כל
מקורה של שפת הפרולוג בלוגיקת היחסים. בחטיבה הראשונה עסקנו בלוגיקה פסוקית, אשר
במסגרתה תקרנו את תהליך החשיבה באמצעות מערכת היסק. את הפסוק האטומי של לוגיקה
פסוקית הצגנו על כל חלקיו באמצעות אות אחת. בלוגיקת היחסים לעומת זאת, ניתן לייצג גם
חלקים של פסוק אטומי, אשר אינס פסוקים בעצמם. לכן תאור העולסם באמצעות לוגיקת
היחסים הוא יותר עשיר ומגוון.
בשני נושאים עיקריים נדון בפרק זה:
- כמתים, .
- הצגת ידע באמצעות לוגיקת היחסים.
1 סימני השפה וביטוייה
תחילה נכיר כמה מונחים של לוגיקת היחסים, המשמשים את שפת הפרולוג לתאור בעיות
ולייצוג מידע:
₪= פרדיקטים.
באמצעות הפרדיקטים מתארים את היחסים בין העצמים. הפרדיקט *יכול להלות
חד-מקומי, דו-מקומי, או רב-מקומי, בהתאם למספר העצמים, שאת היחס ביניהם הוא
מתאר.
₪ קבועים.
הקבועים משמשים לתאור העצמים.
₪ משתנים. י
במשתנים לוגיים נעזרים כדי לסמן ערכים שאינם ידועים.
100
₪ קשרים.
אלה הס הקשרים: דסא, שפאג, אס, אפצהד-ת1, =ו-צזאס-פאהב-=1. בחטיבה הראשונה
הצגנו אותס והגדרנו את לוחות האמת שלהם.
₪ כמתים (כ' פתוחה, מי קמוצה).
אלה הם שני סימנים, שאת משמעותם נכיר בהמשך. הסימן צ הוא אות 4 הפוכה (האות
הראשונה של המילה האנגלית !1ג). הסימן 3 הוא אות 5 הפוכה (האות הראשונה של
המילה האנגלית 1518א6, שפירושה: יש, קיים). הסימן ש מציין כמת כללל (|3פז6טוחט
זסווותהטף), והסימן 3 מציין כמת קיומי (זסו]נותגט |114ח1816א6). נעיר כי לעיתים
משתמשים במונחים: כולל במקוסם כללי, ו-יישי במקוס קיומי.
₪ סימני פיסוק.
הסוגריסם והפסיק הינם סימני פיסוק. נשתמש בסוגריים עגולים ומרובעים. הסוגרים
העגוליס מציינים את סדר הקדימויות של הקשרים ומקיפים את העצמים של הפרדיקט.
הפסיק מפריד בין העצמים. בסוגריים מרובעיס ניעזר בכתיבת הכמתיס.
את הפרדיקטים, הקבועיס והמשתנים נכתוב בתעתיק הלועזי. את הפרדיקט נסמן באות קטנה
או בסדרת אותיות ומספרים, אשר מתחילה באות קטנה ואיננה כוללת רווחים. סדרה זו קרויה
אטוס. הפרדיקט הוא אטוס. הקבוע הוא אטום, או מספר. את המשתנה נסמן באות גדולה, או
בסדרה של אותיות וספרות ללא רווחים המתחילה באות גדולה. להלן מספר דוגמאות:
משתנה אטום
תסיפת סתסעפק
% א
1 11
את העולם אשר סביבנו, מתארים בלוגיקת היחסיס באמצעות ביטויים. הגדרת הביטוי היא
רקורסיבית (משמע - ביטוי מוגדר באמצעות עצמו). הביטו? (ותזסו) הוא קבוע, או משתנה, או
ביטוי מורכב. ביטוי מורכב בנוי מפרדיקט וארגומנטים. הארגומנטים מוקפים בסוגריים
ומופרדים בפסיקים. כל אחד מהארגומנטים הוא גם-כן ביטוי, כלומר קבוע או משתנה או ביטוי
מורכב. הפרדיקט הינו אטום בלבד.
וס
|
קבוע מעתנה ביטוי מורכב
איור 6.1 - הגדרה של ביטול
להלן דוגמאות של ביטויים מורכבים:
א. . (15880 , מה8ת6)8028ת826ק
בּ. . ( (ת₪06262)5828 , (8₪ת8028 )286202 ) 16סנוסס
- . ( תס , ת88) 10סגוסס
הארגומנטים של ביטוי ב (וח8ת9זס6)8ח91] ו-(ת8ז58)ז6תוסוח, הש ביטויים מורכבים.
הארגומנטים של ביטוי ג': ח4/א ו-תגוחס/ט, הם משתנים. רצוי לסמן משתנה במילה שלימה ולא
באות יחידה, כדי לציין את מהות העצם הלא-מפורש ולהצביע על סדר העצמיס בקבוצה
הסדורה: במקוס הראשון - הגבר של הזוג ובמקום השני - האישה.
נעיין בדוגמאות נוספות:
ד. . ( (צע8שם ,תת8150025)8 ,מס>)11%65
ה. .((515%022 ,515%5625)515%021 ,7ץ11%65)50₪6006
הארגומנט הראשון של ביטוי די הוא אטום, והארגומנט השני הוא ביטוי מורכב:
(ץז8ות ,חח5)8ז51516. הארגומנט הראשון של ביטוי ה' הוא משתנה והארגומנט השני הוא ביטוי
מורכב: (2ז51516 ,5151615)5151011. המשתנים 5151671 (-2ז51510 אינס %הים זה לזה מבתינה
תחבירית.
נציין, כי את הפרדיקט, שמהווה חלק של ארגומנט (כמו 515168 בדוגמה הי או 81007 ו-זסו!1סוח
בדוגמה בי) מכנים בשם "פונקציה".
נציין גם, כי פרקים של לוגיקת היחסים הרלוונטיים לנושא של פרולוג שייכים ללוגיקה מסדר
ראשון. משמע, שקיימת לוגיקת יחסים מסדר יותר גבוה, אשר לא נעסוק בה במסגרת ספר זה.
קוראים, אשר ירצו להכיר את הנושא של לוגיקה מתמטית, יפנו לאחד מספרי הלימוד הרבים
כמו למשל, לספר [1956 ,הסזטח6].
2 השימוש בכמתים
האטוסם והביטוי הס מונחים השייכים לתחביר השפה. עתה נדון בסמנטיקה, שהיא - המשמעות
של הנאמר. נעיין בביטוי?:
. ( (ת₪0562)5828 , (8₪ת8028 )28662 ) 16קנוסס
לחס 6
+את, קשה
ביטוי זה מבטא את העובדה, כי האב אברהס והאם שרה קשורים באמצעות ה
(זוג). ניתן לבדוק אם העובדה הו נכונה, אם לאו, ולכן ניתן להחליט אם לעובדה זו
של אמת (כלומר, ערך-אמת 1), או משמעות של שקר (כלומר, ערך-אמת א). לעומת
12
לדעת אס ערך האמת של הביטול (מהוחס/ ,ח8א)ס!קטס6 הוא ד או =, כל עוד אין רמז באשר
למה שמבטאים באמצעות המשתנים חג! ו-חהוחס/.
יתכן, שבאמצעות (ההוחס/ ,14₪א)ס1קטוס6 רצינו לומר, כי:
.6קטסס 8 6זה תהוחסטו עזסצ0 6ח8 תגוח עזסטם (1
המשפט הלשוני הזה הינו פסוק. הוא זכאי לתואר ד (אמת) או = (שקר) ויש להניח כי ערך
האמת שלו הוא ת (שקר). אך יתכן, שהכוונה היתה כ
.חוחסטו 8 85 חגוח עז6טם (2
גם זה פסוק, וערך האמת שלו יכול להיות שונה מזה של הפסוק הראשון. נבחן פסוק נוסף:
.6 8 876 הסור , ההוחסא 8 15 1616 86 חבות 8 15 6זסוד (3
פסוק זה משתמע גם הוא מהביטוי (תפוחס%\ ,ח8]א)6!קט60. ראינו אס כן, כי הביטול
(ח8והס/ ,ת8/א)16קוס6 איננו חד-משמעי. כדי לציין איזה מתוך שלושת הפסוקים שלמעלה
מבטא הביטול (חגוחס/ ,ת18א)6!סטסס, עלינו להיעזר בכמתים. משמעות הכמת הכללי ץ, כאשר
הוא נכתב לפני המשתנה א הינה: א 311 זסו (לכל א). משמעות הכמת הקיומי ב3, הנכתב לפני
המשתנה א, הינה: א 641568 6זסת) (קיים %).
נציג את הפסוק הראשון באמצעות הביטוי והכמתים. את "חגוח עזסם* נתרגם כך: תג)א,
ואת "חאוחסשו עץז6צ6* נתרגם כך: תגוחס/צש. בתעתיק הלוגי נציג את הפסוק הראשון כך:
[(ח8וס/ , ת18א )16 ט60]תה ותס\ שתג]אצ (1
נציג את הפסוק השני באמצעות הביטוי והכמתים:
[(ח8ותס/ ,18 )16 ט60]ח וח ס/בה13א צ (2
את תאוחס/ט3 מתרגמים לעברית כך: יש אישה, או קיימת אישה. הפסוק השני הוא כאמור: לכל
איש קיימת אישה, אשר ביחד הס זוג.
נציג את הפסוק השלישי בעזרת הביטוי והכמתים:
[( הג רחס( ,ח16)18קט60]תגותס/כת3]אב (3
להלן דוגמאות נוספות של הצגת עובדות באמצעות ביטויים וכמתים:
.1ח6זבק 8 885 01116 עזסצם (4
[(1מ6ז8 ,116ם-85)6ת]1ת816 163נתי)צ
המשמעות היא: לכל ילד קיים הורה, אשר הוא ההורה שלו. הילד וההורה אינס מוגדרים
באופן מפורש ולכן הם מיוצגיס באמצעות משתנים. המילים "לכליי ו-"קיים" מיוצגות על ידי
הכמתים בהתאמה.
3
+66 11865 ותסד (5
[(1.800 ,ות65)10א11]ץ40 1ש
.6 ותס1 ותסתא עץ80! 6חס ץ[מס 15 6ז6ח1 זטם (6
[(ץ1.20 ,וח65)10ש31.40]!0
הבחור טום צויין במפורש, אך לא כך הגברות. לכן, המילה "טום" מיוצגת באמצעות קבוע,
והמילה "גברת" - על ידי משתנה.
3 כמתים לא תקניים ומגבלות של :יצוג ידע באמצעות
לוגיקת היחסיים
נדון בהיבטים נוספים של הצגת ידע בעזרת הכמתים. לוגיקת היחסים משתמשת בשני כמתים
בלבד: הכמת הכללי צ והכמת הקיומי 3. כאשר ידוע כי המידע נכון עבור כל עצס מתחום
הגדרת המשתנה, נעזרים בכמת הכללי ש. כשיודעים שקיים לפחות עצס אחד עבורו המידע
נכון, משתמשים בכמת הקיומי 3. מכאן, שמשתמשים בכמת 3 גם כשהמידע נכון עבור עצם
אחד בלבד, וגם כאשר המידע איננו נכון עבור עצס אחד מתוך רבים.
בלשון חופשית ניתן לומר, כי הכמתים של לוגיקת היחסים דנים בשאלת הכמות. בטרם נולד
המושג של מספרים טבעיים, השתמש האדם בשני מונחים בלבד להגדרת הכמות: אחד והרבה.
מאז עברנו דרך ארוכה ובנוסף להגדרות מספריות של כמות, פיתחנו שורה של מונתים
המבטאים כמויות שונות. להלן רשימה חלקית של כמתים, המכונים לא-תקניים [8 ות63ות גוא
5 ,טסגם506181].
רת ,שגות ,811 ,צֶת8 ,66 ,680
6] 8 ,6וח50 ,ע1ח6!ק ,06 1015 ,חאו
.6חסת 1051ח41 ,6ח0 8161 ,56/6181
על אף השימוש בהם בשפה הטבעית, הכמתים האלה אינם מיוצגים בלוגיקת היחסים.
נעיין בפסוק:
.6 6זה ת16א (1
נציג אותו באמצעות סמלים לוגיים:
]3ת]0ז8צ6)א18ח((
משמעות הביטוי (חג!א)וגזט עם הכמת הכללי צ ליד המשתנה חג!/ הלא, שכל גבר הוא אמי.
נניח כי תחום הגדרת המשתנה הגוא הוא כל הגברים שבעולם. האם כל גבר אמיצז כנראה
שלא, אם כי יש להניח, שרוב הגברים הם אכן אמיצים. לכן, נכון היה לומר:
.זל 316 ח6וח 1/1051 (2
א
3
.1 876 50716 6ח8 ,6ש8זס 6ז8 ת6ות 6 (
ים של
איך נתרגם לשפת לוגיקת היחסים את הפסוקים 2 ו-3! איך נבטא באמצעות הסמל
14
לוגיקת היחסים את ההבדל העדין שביניהס! לצערנו, אין לנו מרשס לכך. לפיכך יש קושי, אשר
נתקלים בו לעתיס בבניית מאגרי מידע. נעיין בפסוקים נוספים:
.6זס 816 חסוח [!8 צץ|ט8טסזק (4
.086 876 חסוח [81 051וח41 (5
.086 876 מ6וח 4/5/ו[8 051וח41 (6
.86ז0 816 חסוח 01 1.015 (7
ללוגיקת היחסים אין מנגנון לטפל בדקויות אלו. לכן כשאנו מתרגמים את הפסוקים 7-2 לשפה
הפורמלית של לוגיקת היחסים, אנו מאבדים מעושרם המילולי, שהרי אם קיים ספק לגבי אומץ
לב של גבר אחד בלבד, אנו נאלציס להשתמש בכמת הקיומי ב ולא בכמת הכללי ש.
לא נרחיב את הדיון בנושא הכמתים במסגרת ספר זה. נציין רק, כי לטיפול בכמתים
לא-תקניים יש חשיבות רבה בתחומים שונים של בינה מלאכותית, ובפרט בתחומי הבנה של
שפות טבעיות על-ידי המחשב, או הצגת ידע במערכת מומחה.
נעיר עוד, כי בנוסף ללוגיקות מסורתיות (לוגיקה פסוקית, לוגיקת היחסים), פותחו לוגיקות
חדישות, כגון: סופס! 10681 [1968 ,01058911 /6 65תפט1], סופס! עַ2לט [1973 ,ת2806] ואחרות.
בעזרתן ניתן לטפל בכמתים הלא-תקניים ביתר גמישות. נעשים גם נסיונות לשלב לוגיקות
חדישות בתוך מערכת של פרולוג [1985 ,81ת88 .6 8ט2וח15].
4 נוסחה ופסוק בלוגיקת היחטסים
פסוק אטומי שימש כיחידת שפה של לוגיקה פסוקית, אשר לא ניתן היה לפרקה ליחידות קטנות
יותר. נתבונן בביטוי של לוגיקת היחסים. ביטוי זה מבטא יחס בין עצמים. הוא מורכב
מפרדיקט שמבטא את היחס ומארגומנטים שמתארים את העצמים. גם אותו אי אפשר לפרק
מבלי לשנות את הנאמר בו, ובשל כך מכונה הביטוי בשם נוסחה אטומית (ב[טהחס] 16וח410).
נוסתאות אטומיות משמשות כאבני הבנין, אשר מהן בוניס את הנוסתאות של לוגיקת היחסים.
כמלט בבניה ו משמשיס הקשרים, הסוגריים והכמתים. מכאן שנוסחה של לוגיקת היחסים
הינה נוסחה אטומית, או אוסף של נוסתאות אטומיות, הקשורות באמצעות הקשרים, והמוקפות
בסוגרייס ובכמתים. נבטא את מושג הנוסחה באמצעות הגדרה רקורסיבית.
נוסחה היא:
= נוסחה אטומית.
דוגמה: (8)ם
א שלילתה של נוסחה אטומית.
דוגמה: (א)קר-
* אוסף של נוסחאות המחוברות באמצעות הקשרים.
דוגמה: (<)ף/צ(א)ם
+ אוסף של נוסחאות המוקפות בכמתים.
דוגמה: [(8) ש(א)פ]אב
15
את הנוסחאות של לוגיקת היחסים מכנים בלע"ז 85[טוחזס) 6סנתחס)-!!סש' ומסמנים בראשי
התיבות 8=/.
הנוסחאות של לוגיקת היחסים משמשות להצגת מידע. נביא כמה דוגמאות:
.וזח 15 תהס1 (1
(תת1680)[0ז6וח8
018 8 ₪85 התס1 (2
.(681- 018 ,תח85)[0ת
.קתוה]ץ67ש6 85 תהס1 (3
[(< :תתסן)85ת])א<ש
.68 86 5ת08וז6וח/ (4
1 .%)285--()ח08וז6ותג]ץ שיאש
.0 8010708885 זססק 876 676םדך (5
[(%)671080וח49/ ()זססק])אב
.בת 1'ח60 060016 זססק 1191 5פחות1 סה 6ז6תדד (6
[(( + ,א)45ח7-)--(א)זססס] יבאש
אוה
[((צ .%)45ח]צצ)ר---(א)זססס]אש
כאשר לפנינו נוסחה עם כמתים, אנו אומרים כי הסוגריים המרובעים מסמנים את טווח
הכימות של המשתנה (או המשתנים). מבחינה פורמלית, המשתנים יכולים להופיע בנוסחה ללא
כימות, כמו למשל:
.(א)צְסק3 ה הט--((, א)סצגת צ(8)זססק)
אותו משתנה יכול להופיע בנוסחה גם בטווח הכימות שלו וגם מחוץ לו, כמו למשל:
(%)ץ400תט--((צ, )86 צ[()זססס]אב)
המשתנה של הנוסחה נקרא משתנה מכומת (ש80וז9+ 6חטסס). אם הוא נמצא בטווח הכימות
שלו, והוא נקרא משתנה חופשי (6|ס4חגע 06ז!), אם הוא נמצא מחוץ לטווח הכימות. המשתנה
א בדוגמה האחרונה הוא גם מכומת וגם חופשי.
בסעיף 6.2 כשדנו במשמעות הנוסחה (תהוחס\ ,ח18א)6!קגוס6 ציינו, כי לא ניתן ליחס משמעות
של אמת, או משמעות של שקר לנוסחה שמכילה משתנים חופשיים. לעומת את, ניתן לאמת
נוסחה שמשתניה מכומתים, או שכלל אין לה משתנים. על-כן, נוסחה שאין בה משתנים חופשיים
הינה פסוק והיא זכאית לתואר אמת או שקר. נציין, כי משתני התכנות הלוגי הס משתנים
מכומתים, אף-על-פי שבתכנית לוגית לא מציינים זאת במפורש.
אס כן, פסוק הוא נוסחה ללא משתנים, או נוסחה בה כל אחד מן המשתנים הוא -.
מכומת. נוסחה אטומית ללא משתנים מקבלת ערך-אמת 7 (אמת) או = (שקר), בהתאם
16
בה. למשל, ערך-אמת של הנוסחה (87ו ,1ח0ו)65א1! הוא ד. אם טום אוהב את מרי, והוא 7
אם טוס אינו אוהב את מרי. את ערך האמת של פסוק ללא משתנים מחשבים על פי לוחות-אמת
של הקשרים ומתוך ערכי-אמת של נוסחאות אטומיות, מהן הוא מורכב.
באשר לערך-אמת של פסוק עם משתנה: הכמת הקיומי בפסוק [(א)פ]א3 מצביע על כך, שקיים
לפחות < אחד, עבורו יש ל-(א)ק ערך-אמת 7. נעיין בפסוק אחר: [(א)ט]אצ. הכמת הכללי בו
מציין, כי ערך-אמת של (א)ם הוא ד עבור כל א.
המשתנים של פרולוג הס משתנים מכומתים ועל-כן, העובדות והשאילתות של תכנית לוגית הם
פסוקים. המשתנים של העובדה מכומתים כללי, ובשל כך לפסוק של פרולוג בן-אדס(א) יש
ערך-אמת 7 גם עבור א=משה, וגם עבור א=שולחן, כפי שציינו בסעיף 5.7. משתני השאילתה
מכומתים קיומי, ואת זה ביטאנו על ידי הצגת קושיות בסעיף 5.3. הצגת השאילתה: !-זכר(א),
דומה להצגת השאלה: האס קיים א שעבורו מתקיים היחס זכר.
5 שקילות, עקביות, נביעה וכללי היסק בלוגיקת היחטים
הפסוקים של לוגיקת היחסים מקיימים את תכונות השקילות, אשר הוגדרו בחטיבה הראשונה.
הפסוק: (ת0[)ת167168ת8--(תתס()זססק שקול, למשל לפסוק: (תתס[)ת168ז0וח4 / (תהסנ[)זססקר-
(חת0[)ת168ז6וחה צ (תמס[)זססקר- = (חת0[)ת68וז16ח8--(ח0()זססק
באופן פורמלי, תכונות השקילות מתקיימות גם עבור הנוסחאות:
(8)ת108ז6וחה / ()זססקר- > (%)671630ת8--(א)זססק
פירוש הדבר, כי לערכי א, שעבורס מוגדר ערך האמת של (א)זססק ושל (%)ח8סוז6ותג, יהיו
הפסוקים משני צידי הסימן > בעלי ערך-אמת זהה. בנוסף מתקיימות גם תכונות שקילות אלו:
[(צ)]צ/י > [(א0]אע
ניתן לפרש את תכונת שקילות 1 כך : היחס םק מתקיים לכל עצם, ואין זה חשוב אם מסמנים
את העצם ב-א או ב-צ.
2 [(צ)8]צ3 > [(א)פ]אב
ניתן לפרש את תכונת שקילות 2 כך: היחס ק מתקיים עבור עצם אחד לפחות, ואים זה משנה
איך מסמנים את העצם הזה.
פירוש תכונות 1 ו-2 הוא, שניתן לשנות את סימון המשתנה.
3 [(א)פר-]אב > ([(א)פ]אצ)ר-
את האגף השמאלי של תכונת שקילות 3 יש להבין כך: היחס כ לא מתקיים עבור כל א. פירוש
הדבר הוא, שקיים % עבורו היחס כ איננו מתקיים, וזה בדיוק מה שנאמר באגף הימני.
להלן דוגמה לשימוש בתכונת שקילות 3. נעיין בפסוק:
ץסק גת 15 6תסעז6צ6 ןסא
107
את החלק:
עקת 15 6ת0ע6/67
של הפסוק הזה רושמים בשפת לוגיקת היחסים כך:
[(א)עסקגם]אש
הפסוק עצמו נראה כך:
([((%)עקק4ה]אש)ר-
על פי תכונת שקילות 3, הוא שקול לפסוק
[(%)עקקג4ור-]3%
נתרגם את הפסוק האחרון לאנגלית: :
ץקה תט 15 הסוא 6ת60וח50 15%א6 6ז6ח
4 [(א) ]ל > [(א)]א3)ר-
בעזרת שיקולים הדומים לאלו שלעיל, ניתן להראות, כי הפסוק
ץק 15 ה6וחש 6חהס6ו50 151א6 01ח 6005 6ז6תך
שקול לפסוק
ץְסקגצת 18 6חס סז
5 [(ו)זצצ/[(צ)פ]צ = [(א)4/(צ)פ]צט
כלומר, את הפסוק:
פחו[ורת5 60ח8 עקקגת 18 6מסעז6טם
ניתן להציג כך בשפת לוגיקת היחסים:
[(8)פַחו[ורת5/ ()עסק ]אש
או כך:
[( צ)פתו!וות5]צ צ /[( )עסס13]אש
את הפסוק האתרון נתרגם לאנגלית כך:
.| רח5 15 6תסץז6%6 36 עקקגת 15 6תסץזסטם
6. [(4)]צ3/[()פ]א3 = [(א)ש(א)פ]אב
כלומר, הפסוק:
.תו![ווח5 זס עְק40ת 15 5001606
שקול לפסוק:
.שחו[ורח5 15 6ה60וח50 זס עבת 15 501606
בדומה לשקילות, ניתן להעביר ללוגיקת היחטים גם את התכונות "נובע-גורר" (אשר נסמן: =)
ו"עקביות", שאותן הגדרנו בחטיבה הראשונה.
גם טכניקות של הוכחה על פי כללי היסק ובדרך השלילה, אשר דנו בהן בתטיבה הראשונה
קבילות בלוגיקת היחסים. נדגים זאת בעזרת משל זה:
קבוצת הפסוקים 4, 5, 6 שבסעיף הקודם איננה עקבית. למה! כי פסוק 4 קובע שק 3 שת
גם עני וגם אמריקאי. נניח כי שמו של ה-א הזה חינו טום.
לכן, לפסוק
(הח0])ת167108ת 8 / (ת0)10 0
18
יש ערך-אמת 1. המשמעות היא, כי ערכי-אמת של (ותסו)זססק ושל (ותס))ת68וזסוחג הם דד
בשל היותו עני ועל פי פסוק 6, חסר לטום איזה שהוא עצם המסומן ב-צ. נניח כי צ מייצג
מכשיר טלוויזיה. נציג זאת כך:
((ז0ו15ש1616 ,ות85)10ר-) +- (נתסו)זססק
אבל טוס הוא גם אמריקאי, וזה סותר את הפסוק 4. על פי פסוק זה לכל א, ובכלל זה טום=א,
ולכל צ ובכלל זה טלוויז*ה= צ, מתקיים:
(ח1616/1510 ,הת195)10---(רת68)10וז6וחבה
לכן, על פי פחסחסק 5ט6סוח, שהוא כלל היסק נאות ניתן להסיק מחד, כי:
.(ח1510ש1616 ,בת85010ר- == (((תסופוצ16!6 ,ות0ס145)1[)ר"+-(ותסו)זססק ,(וחסז)זססק)
מאידך: .
((ח1910ש1616 ,1850107 <= (((ת1510ש1616 ,ב185010₪[-- (וח10)ת6163ה ,(1ה10)ת67104ת8)
כלומר, מקבוצת הפסוקיס 4 5, 6 נובעים דבר והיפוכו, ולכן קבוצה זו איננה עקבית.
קוראים, אשר מעוניינים להּמשיך בדיון בנושאים של לוגיקת היחסים בהקשר לתכנות לוגי,
שהועלו בפרק זה, יכולים לפננת אל הספרים הבאים: [1985 מ6פַחו4!0ג/ .8 בהח3]א]: [1984
,ה0ז5ח1/]; [1980 ,מ880!גצז]. בספרים האחרונים לוגיקת היחסיס מתוארת כאחד הכלים להצגת
ידע בבינה מלאכותית. באשר להוכחות וכללי היסק בלוגיקת היחסים, ראה את הספר [1984
וס 86 פס/ץ].
תרגיל 6.1
בכל אחת מהקבוצות שלהלן יש שני פסוקים ושתי מסקנות. תרגם אותס לשפת לוגיקת
היחסים ובדוק את תקפותן של כל אחת מהמסקנות (כלומר, בהנחה כי ערך האמת של כל
פסוק הינו 1, בדוק האס ערך האמת של כל מסקנה הינו 7).
א. פסוקים: כל אדם הוא בן-תמותה.
סוקרטס הוא אדס
מסקנות: אם מישהו אינו בן-תמותה, אז הוא אינו אדם.
טסוקרטס הוא בן-תמותה.
ב. פסוקים: משה הוא חייל.
רק חייליס הס אמיצים
מסקנות: מי שאינו אמיצ, אינו חייל.
משה הוא אמיץ.
ג. | פסוקים: כל אחד עובד במקוס עבודתו.
לא כל אחד מרוצה ממקום עבודתו.
מסקנות: ישנו אחד, אשר אינו עובד.
חיים מרוצה ממקום עבודתו.
109
החוקים של פרולוג מתארים את הקשרים הלוגיים בין יחסים שונים. הם משמשים להגדרת
יחסים חדשים על בסיס היחסים הקיימים.
את התכנית הלוגית על כל מרכיביה: עובדה, חוק ושאילתה, ניתן להציג כמערכת היסק. את
התהליך של קבלת תשובה לשאילתה ניתן להציג כתהליך הסקת מסקנות בדרך לוגית. ניתן
לעקוב אחרי התהליך הזה באמצעות פרידקט המערכת 17806.
הנושאיס של פרק זה הם:
- הגדרה ומבנה של חוק,
- קבלת תשובות על בסיס החוקים כתהליך לוגי של הסקת מסקנות,
- מבט על מערכת הפרולוג באמצעות ה-866ז1,
- חוקים רקורסיביים.
1 הגדרת יחס באמצעות חוק
עיון מחודש בתכנית "ע|ווחג= 6ודיי (ראה סעיף 5.2) מגלה, כי היא כוללת מידע נוסף. מהעובדות:
הורה(אברהם, יצחק) ו-זכר(אברהם) ניתן להסיק, כי אברהס הוא אביו של יצחק. אם נוסיף לכך
את העובדה: הורה(יצחק, יעקב), נגלה כי אברהם הוא סבו של יעקב וכן הלאה.
אם נציג על בסיס תכנית "צ|ווחג= 6וז'דיי את השאילתה הבאה: ?-אב(אברהם, יצחק), נקבל תשובה
שלילית. הסיבה לכך היא, שאין למחשב ידע שגור וכל אשר ידוע לו נמצא במאגר הנתונים
בצורה מפורשת. ניתן להרתחיב את המאגר ולהוסיף מידע על הקשרים המשפחתיים של בני
המשפחה התנכי"ת. אנו נעשה זאת בדרך מתותכמת: לא נוסיף עובדות חדשות, אלא נבנה חוקים
שיאפשרו לפרולוג להרחיב את המעגל המשפחתי בהסתמך על העובדות הקיימות.
החוק של פרולוג מגדיר יחס חדש על בסיס היחסים הידועים. אברהס הוא האב של יצחק, כי
הוא ההורה שלו והוא זכר. באופן כללי, כל הורה שהוא גם זכר, הינו אב. הפסוק האחרון הוא
חוק המגדיר את היחס אב על בסיס היחסים הורה ו-זכר. נבטא את החוק הזה בתעתיק פורמלי
באמצעות המשתנים והקשרים הלוגיים:
יוו
לכל א%, לכל צ,
אם הורה(א,צ) וגם זכר(א) אז אב(א,צ).
לנוחותנו, נתחיל את החוק מן היחס, אשר למענו החוק הזה נבנה. את התוספת "לכל א ולכל
צ* לא נכתוב במפורש.
אב(א,צ) אם הורה(א,צ) וגם זכר(א).
למדנו כי הסימן התחבירי של הקשר "וגם" הוא הפסיק: ",". הסימן התחבירי החדש אותו נלמד
הוא "-". סימן זה נועד לסמן את הקשר הלוגי "אסי.
נציג אסם-כן את החוק של הפרולוג העברי, המגדיר את היחס אב על בסיס היחסים הורה ו-זכר:
אב(א, צ) :- הורה(א, צ), זכר(א).
החוק מסתיים בנקודה, בדומה לעובדה.
להלן דוגמאות של חוקיס נוספים, בהס היחס החדש מוגדר על בסיס היחסים של תכנית
ןונחג 6מך:
1+ הגדרה של היחס ילד:
לכל א%, לכל צ,
א הוא הילד של צ אם צ הוא ההורה של א%.
בתעתיק הפורמלי:
לכל א%, לכל צ,
ילד(א,צ) אם הורה(צ,א).
בפרולוג:
ילד(א,צ):- הורה(צ,א).
2 הגדרה של היחס בן:
לכל א, לכל צ,
א הוא הבן של צ אם צ הוא ההורה של א ו-א הוא זכר.
בתעתיק פורמלי:
לכל א, לכל צ,
בן(א,צ) אם הורה(צ,א) וגם זכר(א).
בפרולוג:
בן(א,צ):- הורה(צ,א), זכר(א).
וו
את היחס בן ניתן להגדיר גם בדרך אחרת. ניתן להיעזר ביחס ילד, אשר הגדרנו קודם לכן:
בן(א,צ):- ילד(א,צ), זכר(א).
3 הגדרה של היחס סב:
לכל א%, לכל ץצ,
א הוא הסב של צ אם א הוא האב של 2 ו-2 הוא ההורה של צ.
בתעתיק הפורמלי:
לכל א%, לבל צ, לבל 2,
סב(א,צ) אם אב(א,2) וגם הורה(2,+).
בפרולוג:
סב(א,צ):- אב(א,2), הורה(2,+).
את החוקים שהגדרנו עתה ואת החוקים האחריס נאחד בתכנית לוגית, אשר אותה נכנה בשס
5 עזווחג. התכנית הזו תתאר בעזרת חוקי פרולוג קשרי משפחה שונים ולאו דווקא קשריס
של המשפחה התנכי"ת. היא תשמש כל אחד, שירצה לבנות בסיס נתונים משלו:
אב(א,צ):- הורה(א,צ), זכר(א).
אם(א,צ):- הורה(א,צ), נקבה(א).
סב(א,צ):- אב(א,2), הורה(2,צ).
סבתא(א, צ):- אם(א,2), הורה(2,+).
זוג(א,צ):- אב(א,2), אם(צ,2).
ילד(א,צ):- הורה(צ,א).
בן(א,צ):- ילד(א,צ), זכר(א).
בת(א,צ):- ילד(א,ץ), נקבה(א).
תכנית 7.1 - ₪16 ץ[ומזג (גירסה עברית)
נציין, כי את כל שמונת היחסים של תכנית 7.1 הגדרנו על פי שלושת היחסים האלה: הורה, זכר,
נקבה. לדוגמה, את היחס סב הגדרנו על בסיס היחסים הורה ו-זכר, כפי שמציג האיור הבא:
סב (א, צ)
אב(א,2) הורה(2,צ)
| |
הורה (%,2) זכר(א) .
איור 7.1 - הגדרת יחס סב על פי הורה ו-זכר
2
נעבור להגדרת היחסים באמצעות החוקים בפרולוג האנגלי. הסימן התחבירי החדש של
הפרולוג האנגלי, שאותו נלמד, הוא "-:", ומשמעותו - ת1.
וצ 811 ע0ס? ,א 811 עסק (1
. (₪816)8 פאג (צ,א)6תס6עהק 18 (צ,א)02ת80+
. (₪816)8 , (צע,א)6תסתהק -:(צ,א)02ת80+
,וצ 811 עס? ,א 811 עסק (2
. (א, צ)>תסתהק ע1 (צ,א)116תס
. (א8, צ)>תספפק -:(צ,א)118ת6
,2 811 0+ ,צ 811 ע0ס? ,א 811 עסע (3
. (צ,6)2>תסעהק פא (2,א)602ם80? 18 (צ,א)62ב6186תהעש
. (+,6)2תסעהק ,(2,א)עסת8%+ -:(צ,א)62ת618%ת8עש
נערוך את התכנית ₪168 ע]ווחגז בגירסתה האנגלית:
. (₪816)8 ,(צ,א)6םסעהק -:(+,א)עסת80?
. (926₪816)8 , (צ,א)6תסעהק -:(צ,א)02ג0%ם
. (צ,6)2תסעהק ,(2,%)02ת28% -:(צ,א)600ב6180ת₪28
. (%,5)2תס6עהק (,(62)2,2ת00ס₪ -:(צ, א)עסםססמהתהעם
. (2, צ)62ם₪06 , (2,א)62ת8%? -:(צ,א)16קטס0ס
. (8, צ)6תסעהק -: (צ,א)118ת0
. (₪816)8 ,(צ,א)118ת6 -:(צ,א)םספ
. (6₪816)8? ,(צ,א)116ת6 -:(צ,א)662ת6808
תכנית 7.1 -- 65וגו₪ ע1ווחג= (גירסה אנגלית)
2 מבנה של חוק
אם נתעלם מן ההבדל, הקשור לכיוון הקריאה בעברית (מימין לשמאל, כנגד קריאה משמאל
לימין בלע"ז), ניתן לומר כי המבנה של חוק בפרולוג האנגלי זהה לזה של הפרולוג העברי.
החוק של הפרולוג האנגלי בנוי בצורה: פ 1% 3, או בתעתיק של פרולוג: פ-:4. לאגף של החוק,
אשר משמאל של ה-=1 קוראים ראש (646ת), ולחלק אשר מימין קוראים גוף (ע0סט). אם כן,
בחוק פ-:8 הראש הוא ג והגוף הוא פ. מבחינה תחבירית ניתן גס את העובדה של פרולוג לפרש
כחוק, אשר גופו ריק. בראש החוק עומד ביטוי אחד בלבד, אשר מבטא את היחס שאותו התוק
מגדיר. משמע, כל חוק מגדיר יחס אחד בלבד. בגוף החוק נמצאים ביטוי אחד או יתר,
הקשורים באמצעות הקשרים 08, פאג, זהסא.
3
כ
בסעיף הקודם ראינו דוגמאות של חוקים, הכוללים קשר צן4. עתה נציג דוגמאות של חוקים,
הכוללים גם את הקשרים 8, ד0סא. את הקשר 08 מסמנים ברוב הגירסאות של פרולוג
באמצעות נקודה-פסיק "". נוכל להגדיר את היחס חספז6ק בעזרת החוק הבא:
,* 811 עסע
קז תספעסק 8 15 א
8 * ₪816 8 158 א
.4 ה 15 א
את היתס המוגדר חספז6ק נבטא בפרולוג כך:
. (6₪816)8? ; (₪816)8 -:(א)םס5עסס
את היחס חספז6ק ניתן גם להגדיר באמצעות שני חוקים אלטרנטיביים:
. (₪816)8 -:(א)ם0ס5ע6ק
. (0₪816)8+? -:(א)ם50עסק
את הקשר הלוגי 07א מסמנים בפרולוג האנגלי באמצעות המילה וסח לפני היחס הנשלל.
בפרולוג העברי מסמנים את הקשר הזה באמצעות המילה לא. את היחס 1סח נלמד בהרחבה
בפרק 11.
נביא דוגמה של חוק הכולל את הקשר הלוגי 01אז. נגדיר את היחס עקק4החט באמצעות הכלל
הבא:
,צ 811 עס? ,א 811 עסקע
א1 עסקהתתט 6ע8 צ 6ת8 <
תא 16קטסס 8 6ע8 צ תה א
.צ 11%6 01א 80698 א
בפרולוג נבטא את הכלל הזה כך:
. (+,א)65א11% >סת ,(צ,א)16קטס60 -:(צ,א)עסקהתתט
את סדר קדימויות של הקשרים הלוגיים המופיעים בחוק, קבענו בפרק 1 של החטיבה
הראשונה: הקדימות הראשונה היא של הקשר ד0אז, השניה - של סצזגא, השלישית - של 08
והרביעית - של =1. כאשר חורגים מהסדר הזה נעזרים בסוגריים. נביא דוגמה: נניח כי זוג
מתגרש, אם אחד מבני הזוג אינו מחבב את השני. את המידע הזה נבטא כך:
וצ 811 ע0ס? ,א 811 עסץ
61002866 6ע8 צ 6ת8 א
פא 16קטסס 8 6ע8 ץ 6תה8 <
ץצ 618118068 % ש6ת010
א 61811%0685 ץצ עס
14
כלומר, שני בני-אדם המסומנים ב-א ו- צ מתגרשים, אם מתקיימים שני התנאים האלה: התנאי
הראשון הוא ש-א ו-צ הם אכן זוג, והתנאי השני הוא ש-א אינו מחבב את ץ, או ש-ץ אינו
מחבב את א. את שני התנאים האלה ניתן לבטא בתעתיק הפורמלי כך:
. ((8, צ)81511505 08 (צ,א)65א81511%) פאג (צ,א)16קטסס
הסוגריים שמקיפים את הביטול:
(א8,צ)81511%05 08 (צ,א)61511%65
מצביעים על כך, שיש כאן חריגה מן הסדר המקובל של קדימות הקשרים הלוגיים, דהיינו -
הקשר 08 קודס לקשר סצזג.
החוק הבא של פרולוג מגדיר את היחס 566זסצ:41 בהתאם לתנאים שפורטו:
. ( (א, צ)81511%05 ;(צ,א)41511%05) ,(צ,א)16קט60 -:(צ,א)2506סט01
על פי תכונת הפילוג הי שלמדנו בפרק 2, ניתן לבטא את תנאי הגירושין של הזוג כך:
08 (צ,א)41511%65 פאה (צ,א)16קטסס |
. (א, צ)81511%65 פאה (צ,א)16קטסס |
בהצגה הזו של תנאי הגירושין, הקשר 0% מחבר את שני החלקים האלה: |
החלק הראשון: (צ,א)641811%65 פא (,א)16קט60
החלק השני: (8,צ)65א61511% פאה (צ,א)16קטסס
לא נמקקנו כאן לסוגריים, כי בהצגה זו אין חריגה מן הסדר המוסכם של קדימות הקשרים.
את ההצגה האחרונה של תנאי גירושין ניישם בפרולוג כך:
; (צ,א)81511%05 ,(צ,א)16קט600 -:(+,א<)02506ט61
. (א, צ)61511>65 , (צ,א)16קטסס
כמו כן, אפשר להגדיר את היחס 6101564 באמצעות שני חוקים אלטרנטיביים:
. (צ,א)61811%658 ,(צ,א)16קטסס -: (צ,א)02560ט610
. (א8 צ)81511%65 ,(צ,א)16קטסס -: (+,א)02500ט610
מבחינה סמנטית, שלוש ההצגות של היחס 66פזסצו0 שקולות זו לזו. בשל הבהירות והקריאות
- עדיפה ההצגה האחרונה: באמצעות שני התוקים האלטרנטיביים. באיורים 12 ו-39 של
חטיבה רביעית מוצגים שתי גירסאות של תכנית "חיפוש הדרך במבוך". האחת (39) מכילה חוק
עס הקשר 8 0, האחרת (12) מכילה שני חוקים אלטרנטיביים.
נציין כי החוקים של פרולוג מבחינה סמנטית הינס פסוקים. משתני החוק מכומתים כללי וטוות
הכימות שלהסם הוא החוק כולו. אף-על-פי-כן, לפעמים מתייחסים למשתנים שמופיעים בגוף
5ו1
החוק ושאינם מופיעים בראשו, כאל משתנים המכומתים קיומל.
נעיין למשל בחוק הבא:
יש.- . (2,צ)62ת₪0% ,(2,א)62םת86? -: (צ,א)16קטסס
ניתן לתרגם את החוק הזה כך:
4 ,צ 811 עס? ,א 811 פסע
תע[ 16קטסס 8 6ע8 צ 6ת8 א
6 ג6ש5 2 580₪6 681865 6ע6ת6
סאג 2 +ס עסת8%6? 6ת6 18 א
.1 +0 62ג₪0% 6ת6 18 צ
כלומר, המשתנה 2, שמופיע בגוף החוק ושאיננו מופיע בראשו מתפרש כמשתנה המכומת קיומי
ולא כללי.
את משתני הפרולוג האנגלי ניתן לסמן במילה המתחילה באות גדולה (בדומה למשתנים של
לוגיקת היחסים). סימון זה חשוב, כי הוא משפר את נוחות הקריאה של התכנית ומבהיר את
משמעות המשתנים. נעיין בדוגמה הבאה:
, (1160ם0 ,ת8א)62ת8%? -: (תה8שסא , ת88א) 16קנוסס
. (0116 , תהשסש)ע6ת6סם |
בפרולוג העברי ניתן לסמן את המשתניס באמצעות אוסף סמלים, המתחיל בקו. .תחתון; המילה
שבאה בהמשך לקו התחתון, מבהירה את משמעות המשתנה:
" זוג( גבר, אישה):- אב( גבר, ילד), אם( אישה, ילד).
3 הסקת מסקנות על בסיס החוקים: תכנית "תלמידים"
השאילתות שהוצגו לפרולוג עד עתה, והתשובות שהתקבלו, היו על בסיס עובדות בלבד. בסעיף
זה נדון בתהליך, שמתבצע על-ידי מערכת הפרולוג, כדי לקבל תשובה על בסיס החוק. לשם כך
נציג וננתח מספר דוגמאות. את המודל החישובי של תכנית לוגית נבנה בפרק 10. כאן נסתפק
בתאור בלתי פורמלי בלבד ונסביר (באופן בלתי פורמלי) איך פרולוג עונה על שאילתות. בסעיף
זה נלמד מה הוא היסוד הלוגי לקבלת התשובה.
העובדה של פרולוג, אשר אינה כוללת משתנים, מכונה בשס עובדה בסיס'ת (61ג) 6חטסז6).
תכנית לוגית 5.1 (ע!ווח9] 6'ד) ותכנית לוגית 5.2 (עזפחסווטוכן) נבנו אס-כן, מעובדות בסיסיות.
בדומה, חוק ללא משתנים יכונה חוק בסיסי.
נעבור לתכנית לוגית 7.2: *תלמידים". תכנית זאת מתארת את התלמידים, את המקצועות
הנילמדים ואת הכינויים להם זוכים התלמידים: סופר, איש-מחשבים, חוקר שפות טבעיות.
6ון
לומד(נמרוד, פרולוג).
לומד(רמי, פרולוג).
לומד(צהלה, פרולוג).
לומד(אר+, אנגלית).
לומד(יובל, פרולוג).
לומד(רמי, מתמטיקה).
לומד(הילה, מתמטיקה).
לומד(ירון, מתמטיקה).
לומד(יובל, ספרות).
לומד(נמרוד, אנגלית).
לומד(ארז, ספרות).
סופר(א):- לומד(א, ספרות).
איש מחשבים(א):- לומד(א, מתמטיקה),
לומד(א, פרולוג).
חוקר שפות טבעיות(א):- לומד(א, פרולוג),
לומד(א, אנגלית),
לא לומד(א, מתמטיקה).
תכנית 7.2 - תלמידים
נענה על השאילתה הבאה, המבוססת על תכנית 4:
?- סופר(א).
לשם כך נחפש עובדה, או חוק, אשר בראשס עומד היחס סופר. מצאנו כי:
סופר(א):- לומד(א, ספרות).
המטרה החדשה, או המטרה הנגזרת היא:
?- לומד(א, ספרות).
עכשיו נחפש עובדה או חוק, אשר היחס לומד נמצא בראשם. העובדה הראשונה מבין עובדות
האלו היא:
לומד(נמרוד, פרולוג).
נבדוק את האפשרות להציב תחת % את שמו של נמרוד. נפסול הצבה זו, כי נמרוד אמנס לומד
פרולוג, אך פרולוג אינו זההּ לספרות. נמשיך לחפש, עד שנגלה כי יובל לומד ספרות. הביטו2
לומד(א, ספרות),
הוא כללי יותר מאשר הביטול:
לומד(יובל, ספרות),
177
כי הוא כולל את המשתנה א.
על-כן נציב:
א=יובל.
הצבה זו מאחדת את הביטויים לומד(א, ספרות) ו-לומד(יובל, ספרות). הביטוי לומדנ(יובל, ספרות),
הוא המאורע של הביטוי לומד(א, ספרות), כי הוא התקבל אחרי שהחלפנו את המשתנה % בשם
של תלמיד הלומד ספרות. העובדה לומד(יובל, ספרות) היא עובדה בסיסית, מכיון שאינה כוללת
משתנים. הצבת שם התלמיד תחת % מתבצעת בחוק כולו, כולל את ראשו - סופר(א).
הגענו עתה לשלב הסקת המסקנות. האקסיומות, או ההנחות, הן החוק והעובדה הבסיטיים
כדלהלן:
סופר(יובל):- לומד(יובל, ספרות).
לומד(יובל, ספרות).
ובכן, החוק קובע כי יובל הוא סופר, אם יובל לומד ספרות. העובדה קובעת כי יובל אכן לומד
ספרות. המסקנה היא: סופרניובל).
את המסקנה קיבלנו על פי כלל היסק נאות פח6חסק 5ט0סוח בדרך זו: נסמן את הפסוק לומדניובל,
ספרות) ב-8 ואת הפסוק טופר(יובל) ב-ט. בהתאם לנאמר בפרק 4 הפסוק 5 הוא תולדה של
הפסוקים (ט--8 ,8 על-פי 5ת6חסק 5ט6סוח.
נציין, כי את המסקנה הנ"ל ניתן היה לנמק גם באמצעות המינוח של פרק 6 (ראה סעיף 46.5
בתשובה לשאילתה ?-סופר(א) קיבלנו את ההצבה <=יובל, אשר פירושה הוא שהוכתנו את
המשפט סופרניובל). אם נקיש ";", נקבל א=ארז. כלומר, מהחוק המגדיר את היחס סופר
ומהעובדה לומד(ארז, ספרות) נובע המשפט טופר(ארז). אם שוב נקיש "" - נקבל את התשובה
"לא".
נציג שאילתה נוספת:
?- איש מחשבים(א).
בפניה אל תכנית 7.2 מגלים, כי א הוא איש מחשבים אם א לומד גם מתמטיקה וגם פרולוג.
מאתרים את רמי, אשר לומד פרולוג ומגלים כי הוא לומד גם מתמטיקה, ומכאן מסיקים, כי
א=רמי. תשובה נוספת היא: א=הילה.
נציג את השאילתה האחרונה, המבוססת על תכנית 7.2:
?- חוקר שפות טבעיות(א).
בפניה אל תכנית 7.2, מאתרת מערכת הפרולוג את החוק אשר ראשו חוקר שפות טבעיות(א).
המטרה הנגזרת בהתאם לחוק זה היא לומד(א, פרולוג), אשר מצליחה בעקבות ההצבה א =
נמרוד. ההצבה מתבצעת עבור כל אחד מההופעות של א בחוק הזה ולכן - המטרה הבאה היא
לומד(נמרוד, אנגלית), אשר מצליחה גם היא.
כאן פונה המערכת של פרולוג אל המטרה הבאה:
לא לומד(נמרוד, מתמטיקה).
|88
המערכת של פרולוג פועלת כאן על פי העיקרון הבא: היא בודקת אם ניתן להסיק על פי תכנית
2 שנמרוד אכן לומד מתמטיקה. במילים אחרות, המערכת מנסה להוכיח את ההנחה:
לומד(נמרוד, מתמטיקה). היא לא מצליחה להוכיח אותה, ולכן היא מסיקה כי נמרוד אינו לומד
מתמטיקה.
נסכס ונאמר כי בחיפוש אחר תשובה לשאלה, האם נמרוד לומד או לא לומד מתמטיקה, פעלה
מערכת הפרולוג על פי העיקרון: "מי שלא איתנו הוא נגדנו". אם לא נכתב במפורש, שנמרוד
לומד מתמטיקה, ואם לא ניתן להסיק זאת על בסיס תכנית 7.2 פירוש הדבר שאין הוא לומד
מתמטייקה.
את תפקידו של קשר השלילה בתכנות לוגי נלמד ביתר הרחבה בפרק 11.
4 הסקת מסקנות על בסיס החוקים: תכנית 2000
שס התכנית הבאה הוא 6ססת, והיא גירסה של תכנית בעלת שם זהה המופיעה במבוא. החלטנו
לאכול רק את סוגי האוכל, אשר מכילים חומרים מיינים, להם אנו זקוקים לקיומנו.
- : (ת36850 ,006ת)ם6866
(282% ,5)2006ת00%81
. ( מ36850 ,102)282% 66600ת
גם החלטנו לאכול רק את האוכל, אשר מכיל שני מרכיבים שונים לפחות:
-: (2008) ת68%56
, (282%1 ,5)7008ת681ת00
, (282%2 ,5)"008פת%581ת60
. (282%2 ,6)282%1ם58 6סת
אלו הס החוקים. היחס (מ000,869050:)ח6916 והיחס (000:)מ6316 הם יחסים שונים לחלוטין.
שפת הפרולוג מסווגת את היחסים על פי שם הפרדיקט (הקרוי פנקטור לצורך זה) וגם על פי
מספר הארגומנטים. בשל כך מסמניס את היחס הראשון 2/ח6416, כלומר, ת6316 עם שנל
ארגומנטיס ואת היחס השנל -- 1/ח6316 כלומר, ח6316 עם ארגומנט אחד.
להלן התכנית 006=:
-: (ת36850 ,2006)ת6806
. (ח36850 ,%6ע02)28] 66666ת ,(6ע8? ,006ת)5ת%581ת00
- : (20068) ח6866
,(62ע282 ,5006)פת%681ה00 ,(28261 ,5)2006ת581ת0סס
. (28262 ,61ע8886)28 פסת
. (ח61פסתעק ,5)₪68%פת%81ת60
. (858+ ,₪68%)פת%81ת60
. (ת61ססעק ,686%80165ט)5פת%681ת60
. (28%8 ,%א₪11)פת581ת60
. (ת)שספש ,ת861סעק)ע0] 66666ת
, (עָקַפ6ת6 ,ת1סטסעק)02] 66660ת
. (צ8ע6ת6 ,02)1865] 66066ת
. (1858 ,ת561סעק)8826 6סת
תכנית 7.3 - 006
פו1
נציג שאילתה על פי תכנית 7.3 ונראה איך מתקבלת התשובה:
. (ח368580 ,006ת)מ0806 -7?
הפעולה הראשונה תהיה איתור החוק, אשר בראשו 2/ח6410. החוק הוא:
- : ((מ36850, 2006 ) ת68%66
, (2826 ,5)7008ת%81ת00
. (ת36880 ,02)282%+ 6000סת
בהתאס לנאמר בחוק הזה, עוברת התכנית אל המטרה הנגזרת:
(2826, 006 ) 8ת%81ת00
התכנית מאתרת את הפסוק הראשון, אשר ראשו הוא 5/2ח141חס6, ובמקרה שלנו זוהי
העובדה: .
(ת661סעק ,₪68%)פת581ת00
התכנית מבצעת את ההצבה:
ת661סעק = סעהק % = 06סע
ההצבה הזו מתבצעת בכל מופע של המשתנים 006 ו-1זג? בחוק של 2/ח6916.
המטרה הנגזרת הבאה מתוך 2/ח6916 היא: (ח66850, חו6זסזם)זס). 66066ח.
על פי העובדה (חזאוסזק.תוט1סזק)זס). -66066ה מתבצעת ההצבה
ה1א0זק = ח86850. נקבל אם כן:
. (ת36850 ,00006)ת6866 -?
6% = 6ססץ
ם%שסת₪ = תספַַסת
מבחינה לוגית הוכחנו את המשפט (ם1שסזק.₪681)ח6316 באמצעים אלה:
א. מתוך קבוצה של אקסיומות:
-: (ת36880 ,006ת) 0860
,(%ע28 ,5)2006ת%681ת00
. (ת36880 ,%6ע02)78+? 668666ת
. (תנ56סעק ,5)₪68%ת6081ת00
. (ת)שסע₪ ,ת05661עק)02ס+ 66666ת
ב באמצעות ההצבה:
תנ66סעק = 6ע28 ,ת6)שסעש = תספהסת ,₪686 = בססקע
ג. | על-ידי שימוש ב-5חסחסק 5ט0סחח.
נבתן איך מתקבלות תשובות נוספות לשאילתה:
120
. (מ36850 ,20006)ם6856 -?
כאשר מקישים את התו "" התכנית נסוגה צעד לאחור, כלומר, חוזרת אל הנוטרה
(ח36850 ,ת0101זק)זס1- -66660ח. היא מאתרת את הפסוק (ע8זסח6, חוסזסזק הס!- 6ט4סטח ומבצעת
בהתאם את ההצבה ע8ז6ח6 = ת836850.
התשובה הנוספת היא: 7
% = 6ססק
צשתסתס = תספסת
המשפט (עפז6ת6 ,1681ח)ח6816 הוכח כדלהלן:
א. מתוך האקסיומות האלה:
-: (ת36850 ,02)0008? ת0860
(26ע8ק ,000ע)5פת%81ת60
(ת6850 ,82%ק)02+ 66600ת
. (ת%561סעק ,5)₪68%פת%81ת60
. (צ₪ת6ת6 ,ת2205661)ע0? 66666ת
ב. באמצעות ההצבה:
תנס6סעק = 28200 ,עַ8ע0ת0 = ת260850 ,₪686 = בססק
ג. | על-5י 5ח6חסק 5טו6סוח.
אנו מעוניינים בתשובות נוספות. שוב מקישים "" ושוב חוזרת התכנית אל המטרה
(0ח40850 ,ת0161זק)ז 10 660606ת. היא בודקת את האפשרויות להציב שם-עצם השונה מ-ע8ז6ח6,
תחת המשתנה ח86850. היא מגלה כי אין הצבות נוספות ונסוגה צעד נוסף לאחור אל המטרה
(7811 | ,5):0006ה141ת00. היא מאתרת את העובדה (תו6זסזק,68612016ט)5ת181חס6 ומציבה
6 טטר = 006 ו-תו016זק = 1זגש. התכנית עוברת אל המטרה (ח₪6450 ,חו016זק)ס)- -60606ה
ומתקדמת כפי שעשתה בשלב הקודס. בסיוס הרצת התכנית תהיינה לפנינו התשובות הבאות,
לפי סדר קבלתן:
ולו
. (ת36880 ,7006)ת6₪866 -?
5% = 6ססק
;ם)שסע₪ = תספהסת
% = 06סע
; צ₪ע6ת6 = תספהסת
6 = 6ססע
; צ₪ע6ת6 = ת36890
868 = 6ססע
;ם%שסת₪ = תספהסת
68 = 006ע
; 6028 = ת36850
% = 6ססק
עשעסת6 = תספהסת
(פעסשפת8 6עסם) סת
התשובה:ץקז6ה6 = ה6850, |62וח >= 006ת, התקבלה פעמיים: בפעם הראשונה על-פי
האקסיומות שצויינו לעיל, ובפעס השניה - על-פי האקסיומות הבאות:
-: (ת36850 ,7000)ת0806
,(5ע28 ,0006)פת681ת0ס
. (ת36850 ,02)2826+ 66666םת
. (858+? ,₪068%6)פת%581ת00
. (צ8ע6ת6 ,202)2858 66606ת
בסעיף 7.6 נעקוב אחתרי תהליך קבלת התשובות בעזרת איור 7.3.
נבדוק את תהליך קבלת התשובה לשאילתה נוספת:
. (70068)ת6806 -?
; 6=685ססע
. (8ע6שפת8 6עסמ)סת
קבלת התשובה |63וח=006/ היא מבחינה לוגית כהוכחת המשפט (₪691)ח6816. להלן ההוכחה.
אן זה אלגוריתם, אלא תאור בלתי פורמלי של מהלך התכנית.
2
9.
1. המטרה: (1000)ח6816.
על-פי החוק 1/ח6816, פניה אל (11זג ,006ת)5ה181ח60.
2 המטרה: (1)זג] ,5)1000ת131ח60.
על-פי הראשונה מבין העובדות 5/2ח181ח60, ההצבה: חוסוסזק = !1זגק, 681וח = 006ת.
מצב ביניים:
, (ת61>סעק ,5)₪68%ת%681ת00 -:(₪08%6)ת6866
(282%2 ,₪08%)פת%81ת00
. (282%2 ,ת0%61ע2ק)6מ58 פסת
3 המטרה: (2)זגץ ,6ג6וח)5ת31)ח60.
על-פי הראשונה מבין העובדות 5/2ת191ח60, ההצבה: חוסוסזק = 2זזבט.
מצב ביניים:
, (םנ6סספמס ,5)₪068%ת581ת60 -: (₪68%)ת68%66
, (ת%61סעק ,5)₪08%ת%81ת00
. (תנסססעק ,ת0661עק)6ם58 ססת
4 נסיגה אל מצב-הבינייס שלאחר השלב השני, כי העובדה:
(תו016זק ,הו016זק)16ח58 -וסת אינה שייכת לתכנית 7.3.
5. המטרה: (2)זג/ ,5)₪0686ת31)ח60.
על-פי השניה מבין העובדות 5/2חו14ח60, ההצבה: 815 = 29112.
מצב ביניים:
, (ת661סעק ,₪686 )5ת681ת60 -: (₪68%6)ת6866
, (808+ ,5)₪08%ת%81ת60
. (868+ ,ת0661עק)6ם58 ססת
מצב בינייס אה הוא גס המצב הסופי.
הוכחנו את המשפט (64165)1641 באמצעות ההצבה:
8 = 28202 ,ת1ס6ססעק = 28061 ,268% > בססק
על-5י פת6חסק 5ט6סוח ומתוך האקסיומות הבאות:
3
- : ((006) ם68%0
, (28261 ,006ת) 5מ681ת60
28262( , , 006ע) 5ת681ת00
(282%2 ,%1ע58₪6)28 6סת
. (ת661סעק ,5)₪686ת%681ת60
. (868+ ,5)₪068%6ת%681ת60
. (2808 ,ת20%061ק)58₪6 ססת
האיור 7.4 של סעיף 7.6 מדגים, איך מערכת הפרולוג משיבה על השאילתה הנ"ל.
למדנו בתכנית 7.3, כי אנו אוכלים בשר וירקות כדי לגדול ולהיות נמרצים. את החלב אנו שותים
רק למען המרץ. אם אין לנו זמן לאכול הרבה, כדאי לאכול בשר, כי כך אנו נהנים ממבחר
יותר עשיר ומגוון של מרכיבי המזון. זוהי המשמעות הלוגית של התכנית והשאילתות אשר הוצגו.
5 הסקת מסקנות על בסיס החוקים: חישוב המטרה
(4,ות60016)40788
נביא דוגמה נוספת לתהליך קבלת התשובה. נפנה אל הגירסה האנגלית של תכניות 5.1 ו-7.1
ונבדוק מי היא בת-זוגו של אברהס-אבינו. נציג את השאילתה:
(8 ,מ8ת16)8028קטסס -?
החוק שמגדיר את היחס 6!קטס6, בנוי על בסיס היחטים: 816ח6). 1ח6זאק, 6 האור שלהלן
מתאר את הקשר בין היחסים האלו לבין השאילתה שהצגנו קודם. האיור גם מתאר את
המטרות הנגזרות של תהליך קבלת התשובה.
(8,וח8ת16)4073ק 00
(א, 8₪ת16)8028קטסס
|
וו ומר
| |
(2, %)62ת₪0%5 (2 , התסה ) 62ת8%+
ד ד
| | | |
(0₪816)8? (2,א)6תסעהק (מ8ת₪816)8028 (2 , םה הס ) טס מסינהק
איור 7.2 -- המטרות הנגזרות
להלן שלבי קבלת התשובה 58180 = א. אין זה אלגוריתם של חישוב התשובה, אלא תאור בלתי
פורמלי בלבד.
1 המטרה: (א ,וג הזלה)10קט60.
על-5י 2, פניה אל (2,וח6)451888תז8].
14
-2. המטרה: (2 ,והגהבזטבּ)זסו)ג).
על-פי 2/ז67ת81), פניה אל ((2,וחה30זס1)4ת6זהק.
3 המטרה: (2,וחהתהזטה))ח6זהק.
על-פי 2/וחסזגק, הצבה: 15880 = 2.
מצב ביניים:
(18880 , ם8ת80262)8028+? -:(% ,מ8ה000016)8028ס
. (15880 ,%)62ת6סם
(15880 ,מם8ת8008)%ת826ק -: (15880 , מה8ת8028)עסת18%
. ( זתה:סה ) ₪816
, (15880 ,(א)%ת820ק -:(62)2,158806ת₪0%0
. (%)6₪816+
4 המטרה: (הזגהזס3ג)416חח.
אימות של המטרה (ו8ת3ז816)30וח ובעקבותיה -
אימות של (15980 ,וח407808)ז6ת91).
5 המטרה: (15880 ,%)ז0)0ז.
על-פי 2/ז6תוסוח, פניה אל (15446 ,א)1תסזגק.
6 המטרה: (15420 ,א))חסזבק.
על-פי 2/חטזגק, הצבה: (8ז58-א.
7 המטרה: (וזג ה בגזל6416)3).
המטרה נכשלה. צעד אחד לאחור.
8 המטרה: (15226 ,א))וחסזבּק.
על-פי 2/זח6זגק, הצבה: ה5478=א.
9. המטרה: (ת8ז67816)54).
אימות (1416)54:81ח16 ובעקבותיה -
אימות (61)58181,15480ח01סוח.
התשובה היא 88ז54- א, שמשמעה: הוכחת המשפט (80ז53 ,ות8ח3ז0ג)16קטס6 על-פי האקסיומות
האלו:
5
,ץע ,א 11ה > (1
.(2 ,צ)62ת₪06 ,(2 ,א)ע6ת8%6? -:(ץ ,א)16קטסס.
,2 ,א 811 08 (2
. (₪816)8 ,(2 ,א)6ת6ע8ק -:(2 ,א)עסת28%
,2 ,צ 811 ע02ס? (3
. (%)6₪816? ,(2 ,+ץ)6תסעהק -:(2 ,צ)62ת₪0%
. (18880 , 88ת08ה)6תסעבק (4
. (15880 ,ת28ע6)58מ80ק (5
. (8₪ת₪816)8528 (6
. (ת6₪816)5828? (7
. (15880 ( 88ת02)8028ת80? (8
. (15880 ,ת8ע62)58ת06ם (9
בתהליך ההוכחה ביצענו את ההצבות: 15446 = 2 ,ח8זה5 = צ.
את ההוכחה קיבלנו על פי כלל ההיסק פח6חסק 5ט6סוח. להלן תמצית של שלבי ההוכחה:
א. מתוך האקסיומות 6,4,2 הוכחנו את המשפט (15886 ,וח88זט3)ז6ה1ב], וצירפנו אותו אל
קבוצת האקסיומות בתור אקסיומה נוספת: אקסיומה מספר 8.
ב מתוך האקסיומות 7,5,3 הוכחנו את המשפט (15880 .ה8ז58)ז6חוסוח. אשר אותו צירפנו אל
הקבוצה כאקסיומה מספר 9.
ג מתוך האקסיומות 9,8,1 הוכחנו את המשפט (ה8ז58 .ר48ז16)40ק ט60.
נעיר, כי את השילוב של הצבות |-פח6חסק 0805 מכנים לפעמים בשם 8ט06וח |4פזסטוחט.
5מטחסק
6 בעקבותיהן של המטרות: פרדיקט המערכת 06גזו
היתסים בהם השתמשנו עד כה באו כתוצאה מיוזמות שלנו. יחסים מסויימים תוארו באמצעות
עובדות בסיסיות, כדוגמת היחסים הורה, נקבה, זכר. יחסים אחרים הוגדרו באמצעות החוקים,
כמו למשל היחסים אב, סב, זוג. בנוסף ליחסים המוגדרים על ידנו, המערכת של פרולוג מכילה
קבוצת יחסים המוגדרים מראש, המכוניסם פרדיקטי המערכת. בדרך כלל אלו הס היחסים
שהשימוש בהם נפוץ. לרוב, פרדיקטי המערכת מנצלים את שגרות המחשב. הם מיועדים לביצוע
פעולות שונות כמו ניהול קבצים, טיפול בבסיסי נתונים, פעולות החשבון, פעולות קלט-פלט וכן
הלאה. ישנם הבדלים בין פרדיקטי המערכת של גירסאות פרולוג שונות.
בסעיף זה נכיר את פרדיקט המערכת 1806 אשר תפקידו לעקוב אחר קבלת התשובה
לשאילתה. בעת הפעלת הפרדיקט הזה, מערכת הפרולוג מתארת את תהליך קבלת התשובה.
על מסך המחשב מוצגת השאילתה וסדרת המטרות הנגזרות. נעקוב אחר קבלת התשובה
לשאילתה (ח006.66350=)ח6816 על-פי התכנית 5006.
נציג את השאילתה הבאה:
.( (ת36850 ,2006)ם02806)0866 -7
16
להלן הפלט של 806ז1, המלווה בהסבר:
השורה הראשונה של הפלט:
(81ת36850 ,008)80ת)ת6800 :6811 [6]
השורה הזאת קוראת לנסות להוכיח את השאילתה, כלומר, למצוא הצבה תחת המשתנים 006-
ו-ח36950 כך, שעבורה ערך האמת של השאילתה יהיה ד (אמת). מרגע זה השאילתה מכונה
בשם מטרה. אנו נשתמש במינוח הבא:
- המטרה הושגה, או הצליחה, אס מצאנו הצבה תחת המשתנים,
- המטרה נכשלה, אס נקבל תשובה שלילית (סת).
המספרים 80 ו-81, שרשומים ליד המשתנים, שייכים לתחום הניהולי של מערכת הפרולוג, אשר
למשתמש אין בו עניין.
השורה השניה של הפלט:
. (82%185ק ,2006183)פת081ת60 :6811 [1]
השורה הזאת מסמלת פניה אל המטרה הנגזרת על-פי החוק שמגדיר את היחס
(ח000,0850)ה6816. המספר שבסוגריים המרובעים מציין את עומק החיפוש. בשפה חופשית
ניתן לומר כי הוא מציין בכמה מטרות התרחקנו מן השאילתה.
השורה השלישית:
. (ת661סעק ,5)₪068%ת681ת60 :16א6 [1]
השורה הזאת מבשרת את השגת המטרה. היא התקבלה בעקבות פניה אל העובדה הראשונה
מבין העובדות, המתארות את היחס 5ח181חסס.
השורה הבאח:
. (188ת36850 ,ת0561סתק)02+] 66666ת :6811 [2]
שורה זו מסמלת פניה אל המטרה הבאה, אשר נמצאת בגוף החוק (ח006,6950-)ח6816.
השורות שלהלן הן:
. (תסשסיש ,(ת0661עק)?0? 606066ם :16א6 [2]
כלומר, המטרה הושגה.
. (ת)שסעש ,₪68%)ת6866 :16א6 [0]
כלומר המטרה המקורית הושגה. המטרה המקורית הינה השאילתה, ועל כן הצלחתה של
המטרה המקורית מסמלת את גמר תהליך ההוכחה.
השורה האחרונה של ה-1:806 היא:
.תע 3 ת1...
המספר 3 הוא מספר המטרות אשר הוכחנו תוך כדי קבלת התשובה. האחת מהן היא השאילתה
והאחרות הן המטרות הנגזרות. אל המונח חס:01ט04: נחזור בפרק 10, כשנדון במודל החישובי
של התכנית הלוגית.
7
בסיוס ה-66גזו מתקבלת התשובה:
% = 6ססק '
ם%שסעש = מספאסת3
כדי לקבל 6גזו1 של תשובה נוספת, מקישים נקודה-פסיק ";" אשר מתקבלת על ידי מערכת
הפרולוג כהודעת כישלון.
המערכת מגיבה כך:
. (ם)שסעש ,₪08%6)ת6866 :2660 [0]
בשלב זה המערכת מבצעת את הנסיגה (פַחו460ז086%1). היא חוזרת אל המטרה האחרונה
שהצליחה ודורשת לבצע אותה מחדש:
. (ת)שסע₪ ,ת0601עק)ע0] 660666ת 1 [2]
הנסיגה מתבצעת על-ידי מערכת הפרולוג באופן אוטומטי. היא מתבצעת בעקבות כישלון
המטרה, כדי לאתר דרכים אלטרנטיביות, המובילות אל הוכחת המשפט.
להלן המשך ה-866ז1. בשלביס שונים של ה-66גז1 מופיעה ההודעה |:. משמעותה של הודעת
1 הינה, שהניסיון להוכיח את המטרה נכשל.
8
/ ו ',7000)ת0859 -7 | :אַה61בץם
77, 0ְ₪8560)20068 :₪411 [0]
- (8:%185? ו :11 [1]
. (ה0561:ק,:5)098ה581ה0 :6815 [1]
. (7363500180,ת2:0061)ז0] 66486ה :₪811 [2]
. (ה 9זפ,ת0:61זק):0+ 466ספת :5416 [2]
.(ה:09תק,:868)ה6856 :15א6 [0]
.0 ַָ ה1 ...
% = 006ע
; תףטסעק = ת6850ת
-% יש ,]068)ת9856 :680ע [0]
.(ה)שסצק,ה0561צק):0)] 66664ה :660ז [2]
. (עץ8ז6ה6,ה0661זק)ת0ס] 66666ת :616 [2]
.(ע058ח068:,0)ת6856 :16א6 [0]
.]00 3 ה1 ...
7006 = 1%
; צְקַז6ה6 = ה36350
.(ע8ַז6ה₪68%:,6)ת63%6 :660+ [0]
.(עְאַז6ה0,ה0561צק)0] 66060 :660צ [2]
.(184 ,ה0561זק)ץ0ס] 6606ספה :411+ [2]
.(ה0:61:ק,:5)₪68ה581ה60 :660+ [1]
.(5)₪085,1865ה%31ת60 :16א6 [1]
.(184 ,865+):0] 66666 :6811 [2]
- (עפץפחט 8)ס]. 4 :ם1א6 [2]
.((8%8ת₪636,6)ת6866 :16א6 [0]
.0 3 ה1 ...
= 006ץ
] ץקַזסתס = הספבּסת
.(ע8ז6ה₪0686,6)ת6358 :5660 [0]
.(עְאַז06ה02)18:5,0+ 66666ת :640ץ [2]
.(188 ,07)18:5+ 66666ה :1811 [2]
.(815+,5)0681ה531ה60 :5660 [1]
.(ה050:61ק,020:82168ט5)0ה581ת60 :15א6 [1]
.(184 ,תה50561ק):0) 66666ה :6811 [2]
. (ה5שסץש,ה661סשק )0+ | 4 :1א6 [2]
. (ה%סץק,9620%805188)ה68%6 :615 [0]
.0 3ָ3 ת1 ...
8 == 7006
:] ה)שסץק = תה6880ת
.(ה50%%ק,686582185ט)ת8858 :660: [0]
. (ה)שסצק,ת50561ק)05+ 66666ה :660צ [2]
.(עְאַז8ה6,ת561סצק):0+ 68666ת :16א₪ [2]
.(ע8%8ת68821068,6ק6ט0)ת₪866 :616 [0]
.0 3 ת1 ...
2006 = %₪
:] ע8ז6ת6 = ת6880
. (ע8ז8ה6585165,6ק6ט)ה₪856 :660 [0]
.(עְאַז8ה6,ת0:61:ק)ז0+ 666664הת :5660 [2]
.(184 ,ת260661ק):0] 66686ה :811+ [2]
.(ה50581ק,8)06265825163ה600881 :660: [1]
.(858+,5)₪11%ה681ה60 :15א6 [1]
.(184 ,8%58+)105 66086ח :411 [2]
.(עקזסת2:8,0+):0] 66666ה :6%16 [2]
.(עְאַזפת6,א11ה)ה6856 :16א6 [0]
.0 3 ה1 ...
1% = 6ססץ
ץְקַזפהט = ת36880
איור 7.3 - בעקבות המטרה
(ח46350 ,000-)ת6916
.(63%560)7006 -7 | :2ח1:801
77 :6811 [0]
. (%1180+5)7006179,28ת%81ת60 :6811 [1]
. (ה0561זק,5)068%ה531ת₪0 :15א6 [1]
.(%2181ז59)068%:,78ת581ת60 :6811 [2]
. (ה0661:ק,:5)068ה581ה60 :18א6 [2]
.(ח0%61זק,ת0:61זק)6ַת53 םסה :6811 [3]
.(ח0561זק,ת0561זק)6ת58 פסה :111 [3]
- .(ה0561ז5)863%,2ה%81ה₪0 :640ז [2]
.(8)068:,1853ח581ת00 :618 [2]
1855(.7,ה0561:ק)5826 םסה :6811 [3]
:(185%,ת2:0061ק)53₪6 ססת :515 [3]
> .(:688ה)ת6868 :16א6 [0]
"7 4 ת1 ...
; ₪68% = 6ססץ
. (865],ה0561:ק)5886 ם
.(8%8+,ה0561:ק)6מ58 םסח :
.(8%5+,5)068%6ה000%81
.(181 ,5)₪68%6ה%81ת00
. (ה20%61ק,:68%מ)5ה000%81
.(858+,8)068%ה581ת60 :
.(181 ,:5)₪68ה531ה60 :6811 [2]
.(ח2?0:61ק,:5)₪68ה831ה60 :16א6% [2]
.(ה0561:ק,3:5+)6מ58 6סת :6811 [3]
.(ת0661זק,6)]8:5מ53 6סת :811+ [3]
. (ה2:0:61ק,:8)083ה%31ת60 :5640 [2]
.(8%5+,8)₪68%ה581ה60 :15א6 [2]
.(868,18%8+)6מ58 םסה :6811 [3]
.(6)13:5,]8355ת53 מסת :11+ [3]
.(5)₪68:,18%8ה831ה60 :640צ [2]
.(181 ,:8)068ה41:ה60 :1311 [2]
.(5)868:,]8%3ה31:ה60 :660 [1]
.(ה0%01:ק,6860%85165ט)5ה%81ה60 :16א6 [1]
.(181 ,676585168ט)8ה531ה60 :5811 [2]
. (ה0%61:ק,6%85165ק6ט)פת581ת60 :15א6 [2]
.(ה0561:ק,ת0561זק)6ע88 םסח :
.(ה0561תק,ה0581+ק)6ת58 מסת :811+ [3]
.(ת0561זק,6680165ק6ט)פת81הסס :5660 [2]
.(181 ,626%80168ט)8ה681ה0 :311+ [2]
. (ה8)0620%85165,250%661ה600581 :660: [1]
.(5)₪11%,18%5ה581ה60 :616 [1]
.(181 ,8)11%8ה581ה60 :6811 [2]
. (3:8+,5)₪11%ה31:ה60 :16א6 [2]
.(358,1858+)6מ58 םסח :6811 [3]
.(358,1815+)58₪6 םסח :811! [3]
.(8%8+,8)811%ה%81ה0ם :5660 [2]
.(181 ,א5)₪11%ה41)הסס :811+ [2]
. (8)8118,18:5ה581ה60 :660: [1]
,(180 ,179 )8ה581ה0ש :1411 [1]
-(280 )6806 :11] [0]
סת
איור 7.4 - בעקבות המטרה (008=)ח6916
19
7 הצגת מידע באמצעות עובדות וחוקים - תרגול = 9%
בשלב זה נציג לפניך שאלות, אשר יש להן שתי מטרות: ל :
+ האחת - לעזור לך להעריך את התקדמותך בנושא תכנגת לוגי ושפת פרולוג.
+ השניה - להציג בפניך אתגריס חדשים ולספק חומר למחשבה.
-ש
7% |
אינך זקוק למחשב, כדי לענות על השאלות 1 ו-2. אע בלל יש ן
-
ל
עבודה מהנה! - 2"7-..
שאלה 1 ל
הצג בשפת פרולוג את החוקיס הבאים:
א 811 עסק .1
של ,1 6116 8 פהת <
[ 6 5060 + 50₪6 19 6עסת6
.ל ]0 6תסעהק 66 18 א
צ ,א 811 פסקץ .2
ץ11ם8] 8 םעס] צ 6תה8 א
6% תג500 2 506 18 6תע6תס
4 2 0% ע6ת₪00 6ת6 18 א
08 ע6ת80] 6ת6 18 ץ
צ,א 811 פסק .3
?1 ץצ 05 עס6ת0/8%ת8ע2ש סתט 15 א
5 500 2 50₪6 18 6ע6ת6
4 2 08 ע6ת85] 6ת6 18 א
ץצ ]0 ע6ת85] 6ת6 15 2
עס
4 2 0% ע6 186 6ת% 18 א
.ל 02 עפת₪06 66 15 2
צ,א 811 פסק .4
9 ץצ 08 תעפתססם6ת8תש 6ת6 18 א
- 8%ת% 500 2 50₪86 18 6ע6תס
4 2 0 עסת%סש 6ת6ף 158 <
ץצ 07 88ת80] 6ת6 18 2 ת62ב016
.ץ 02 62ת₪05 66 18 2 עס
צ ,א 811 עסס .5
1 עסקאתתט 6ע8 צ 6ת8 <
60 095ת0860ם 1106 ץצ 6תה8 א
7-7 1 118658 א ע6ת616ת -
.א 11%68 ץ עסת
10
,
שאלה 2 2
לפניך סיפור,,.הָמתאר בשפת הפרולוג את שלושת החברים יורס. יול וימ צר
אוהב(יורם, לקרוא).
אוהב(יורם, לעבוד).
אוהב(יוסי, לעבוד)<>
' טוהב(יוסי, ספורט).. ?
אוהב(משה, ספורט). 77 ,
חרוץ(א):- אוהב(א, לעבוד ).== 2%
7
בריא(א):- אוהב(א, ספורט). (
מלומד(א):- אוהב(א, לקרוא). 4
מאושר(א):- חרוץ(א), בריא(א). 2
יתקדם יפה בחיים(א):- חרוץ(א), מלומד(א).
עצלן(א):- בריא(א), לא חרוץ(א).
ימצא את מקומו בחיים(א):- חרוץ(א); מלומד(%-
1. תרגם את הסיפור משפת פרולוג לשפה העברית. לנוחדתך תבעך =יםה = ה
תוכל לשנות את סדר הפסוקים.
2 ענה על השאלות הבאות:
א. מי מבין החברים יורם, יוסי ומשה ימצא את מקימד בההכשד
ב. מי מבין החברים יתקדס יפה בחיים!
ג. | מי מבין החברים עצלן?
ד מי המאושרז
ה. האם העצלן שבהסם הוא גם המאושר!?
דרי 7 האור
בהקשר לנושא הצגת מידע בשפת פרולוג, ראוי להביא את הדברש ה=איכ:
פורמלית ומדויקת, כדוגמת לוגיקה או פרולוג, יוכל המתחש
האינטליגנטטיית. בשנת 1956 התקיים כנס בעיר דרטמות, ארהי
נשמעו תחזיות אופטימיות בדבר הצגה פורמלית של כל הלבכי אששחד 2% 2
אחרי מחקר של שלושים שנה ויותר, האופטימיות קצת פחתה;
ב לקת שת
/, - 2 *עי<,
=
.> 1
-- :עז = כשנד ילע א 2
בשאלות שלהלן ננסה לבדוק האם ניתן להציג בפרולוג את כל מה 7 - 6 ו
בפניכס פסוקים בשפה הטבעית ונשאל, האם ואיך ניתן לבלא אש 770% 7 7.7877
תכניות בפרולוג ונבקש לנתחן.
רצוי לפתור את השאלות 3-6 ללא עזרת המחשב, ולאחר מכן לחהש את חל
להשוות את התוצאות.
ל חי
2 29 * ג
שאלה 3
לפניך קבוצת פסוקים: .
א. משה אוהב לבלות. '
, "₪
ב. כולס אוהביס לבלות. / 7
ג. טיפש מי שאינו אוהב לבלות.
ד. יורם טיפש.
1 הצג את פסוקי הקבוצה בשפת הפרולוג.
7
(רמז: העזר ביחסים אוהב, טופש) 9
בהנחה כי ערך האמת של כל פסוק בפרולוג הוא 7, בדוק האם קיבלת קבוצת פסוקים
עקבית, אם לאוג גמק את תשובתך.
3 ענה על השאלות הבאות:
א. האם משה טיפש!
ב. האם יורס אוהב לבלות?
ג. האם יורס טיפש!
הצג את השאלות שבסעיף 3 למעלה כשאילתות של פרולוג. בדוק מה תהינה התשובות
והסבר אותן. במידת הצורך העזר ב-866ז1.
(הערה: אם הגירסה אשר ברשותך היא של הפרולוג האנגלי, כתוב את היחסים ואת שמות
העצמים בתעתיק הלועזי).
שאלה 4
בתכנית 866 ע!ווחג: ניתן להגדיר את היחס אחים (6ת!סזט) באמצעות החוק הבא:
, (1161ת₪816)0 -:(01162 ,628)021161תססעס
, (1162ת0) ₪816
,(1101ת0 ,א)5תסע8ק
. (021162 ,א)5תסע8ק
האם החוק הזה אמנם מבטא את היחס אחים כפי שנהוג ומקובל אצל בני אדס! נמק את
תשובתך.
שאלה 5
א נתון הפסוק:
6 8206 תסם 8411
נתרגם אותו ללוגיקת היחסים: א 811 עסע
*-- .
(א)םתה8ם ע1 (א<)סטהעס
112
עוווווווריורו .>
*------
= <
ומכאן געבור- לפרולוג:
נעיין בפסוק אחר:/.
נתרגם אותו ללוגיקת היחסים, ונקבל:
% .א ש
4
>
. (א)ת₪8ם -:(6)8ט8ע2ס
.= 76ת8 ת6ש צ1ת0
(א 811 ספסם
- 78 (א)ם8ש ע1 עעא0 פאה א1 (א)שט8עס
א 4
7 *%
האם ניתן לתרגם את הפסוק הזה לפרולוג נמק"את תשובתך.
ב. לפניך שני בסיסי נתונים:
. (מס)2תה₪8 (2
. (62)8ט8עס -:(2)8ם₪8
. (₪822)8 -: (%)62טפעס
4
. (8) תפמ -: (%)92ט8פס (1
. (61)8ט8עס -:(א) ",
. (₪שסס ) 1תהם
מצא את התשובות של פרולוג לשאילתות הבאות:
. (מסף) 8061עס -?
. (₪ס%)28062ס -?
תן הסבר לתשובות.
שאלה 6
זוג העצמים העומד ביחס דו-מקומי הוא זוג סדור, שהרי אם נהפוך את סדר העצמים, 7
עלול היחס לחדול מלהתקיים. ישנס יחסים אשר מתקיימים גם כאשר הופכים את סדר
העצמים. נעיין למשל, ביחס נשואים. אס דן נשוי לרותי, אז רותי נשואה לדן ולהיפך. יחס
מסוג זה נקרא יחס סימטרל. היחס 66וזזגוח הוא יחס סימטרי.
7 1 0+ ,א 811 ספסק
.א 60 106ע₪822 18 צ קך צעא0 כאג 1 צ 60 822106 18 א
לפניך שני בסיסי ידע (להזכירך כי אוסף עובדות וחוקים של פרולוג מכונה בשם בסיס
ידע, ראה במבוא):
. (ם60 , שע8ם)₪8221661 (1
. (8 ,צ)₪8221601 - : (צ, א) 1601עעהם
. (א ,צ)₪8221662 -:(צ ,א) ₪8221602 (2
. (₪ס% ,עע₪8221662)₪8
3
-
ענה על השאילתות האלו:
(ע ,א)1661סעמם -?
.(צ ית -?
הסבר את תוצאות. 4
8 רקורסיה | | 7--
בסעיף זה נדון במושג הרקורסיה אומרים, כי ההגדרה הינה רקורסיבית (151%6ט66ז) אם המונת
מוגדר באמצעות עצמו. ההגררות של ביטוי ונוסחה בפרק 6 היו הגדרות רקורסיביות. בתכנות
לוגי יש לרקורסיה חשיבות רבה, שכן היא אחד הכלים היעילים ביותר להגדרת היחסים, אשר
אותס ניתן להמשיך ללא סוף, כמו הדורות של אבותינו.
בתכנית 21 !טא ע]נוחג= הגדרנו את היחס טב. ניתן להמשיך את שרשרת האבות ולבנות את
איקי היוחסין המשפחתי, כפי שמוצג כאן:
-:(ץ ,%)ע6ת6+8%6ת8ת0805ע₪2
. (%ת11 ,%)62ם80+
. (? ,את62)11ת618%6ת8:₪
-:(צ ,א)0665%602ת8
. (%1ת11 ,א)02ת86?
. (2את11 , %1ת11)עסת86?
. (3את11 ,2א%ת02)11ת86+?
. (+ ,3את62)11ת8%0?
שתי בעיות היו עומדות לפנינו לו היינו ממשיכים בדרך זו. האחת היא אורך התכנית והשניה,
המשמעותית יותר - אורך שרשרת האבות. לסבא-של-סבא-של-סבא יש גם כן סבא, אשר אותו
נקפח, אם נעצור את "חוקי סבא" בשלב אחד לפניו. את שתי הבעיות האלו פותרים באמצעות
חוק רקורסיבי (חסוצוט6ז עפ 6ונח) כלומר, באמצעות חוק בו היחס המוגדר נמצא גם בראשו
וגם בגופו. נגדיר את היחס זסופ66תג באמצעות שני חוקים, אשר השני שבהס הוא חוק
רקורסיבי:
-: (ת26280 ,ע06500ת668002)4ת8
. (ת26280 ,ע665060ת62)4ת86?
-:(ם80ע26 ,ע0665%60ם68%602)4סת8
. (%ת1,1 ,665502ת62)4ת8%0?
, (ת26280 ,%ת665602)11ת8
החוק השני, בו היחס המוגדר זס661ת3 מופיע בראש ובגוף ההגדרה, נקרא חוק רקורטיבי. ניתן
לפרש אותו כהכללת חוקי "סבא-של-סבא-של..". החוק הראשון של היחס ז0ו60ח3 מכונה בשם
תנאי הגבול, או תנאי השפה (חסגזו0ח60 עְזג03חטסס).
4
/
/
/
את הדרך 0 הרקורסיבי פועל נסביר בצורה בלתי פורמלית באמצעות תכנית 7: "שושלת
היוחסין של קוביי?/
אב( אברהם, יצחק).
אב(יצחק, יעטקב ).
אב(יעקב, יוסף+>,
./* ובההשך...*/ 7
ארוס אב ל
אב(אבי, צחי). ,7
אב(צחי, קובי). "ל
אב בשושלת(א, צ):- אב(א, ץ). "ש
אב בשושלת(א, צ):- אב(א, ע), אב | בטוטלת 6
תכנית 7.4 - שושלת היוחסין של קובי
הערה: ברוב הגרסאות של פרולוג, הדרך להכנסת הערות לתכנית היא להקיף את ההערה'שעצני
צדדיה בקו נטוי עס כוכבים. אין המהדר (או המפרש) מת*יחס אל הנכתב בין הכוכבים. ההערה
ובהמשך.. +/ נועדה להדגיש, כי שרשרת האבות של קובי היא הרבה יותר ארוכה מזו שהוצגה
בתכנית.
כדי לבדוק האם קובי הוא אכן מצאצאיו של אברהם אבינו, נציג את השאילתה:
?אב בשושלת(אברהם, קובי).
כאשר השאילתה מוצגת, מאתרת התכנית את הראשון מבין החוקים, אשר היחס אב בשושלת
הוא ראשו. על פי הראשון מבין החוקים, אברהם הוא האב בשושלת של קובי, אס הוא אביו.
בתוס בדיקת אב2 התכנית מגלה כי אין זה נכון שאברהס הוא האב של קובי. היא פונה לחוק
השני של אב בשושלת. לפי החוק הזה, אברהם הוא האב בשושלת של קובי אם הוא אב של
מישהו והמישהו הזה הוא אב בשושלת של קובי. התכנית מגלה כי אברהם הוא אביו של יצחק.
כדי לבדוק האם יצחק הוא אב בשושלת של קובי, היא פונה אל הראשון מבין התוקים של
אב בשושלת. כשהיא מגלה :י יצחק אינו אביו של קובי, היא פונה אל החוק השני, מגלה כי
יצחק הוא אביו של יעקב, ובודקת אם יעקב הוא אב בשושלת של קובי, וכן הלאה. את החיפוש
והגילוי נדגים על ידי הצגה בלתי פורמלית של תהליך קבלת התשובה באמצעות איור 7.5.
5
שמפמשמאממאם ל + ו -"-"-=-
הההההההר--ַןַַ ה 0000000000 וו וו ררש ה
| עאילתה:
חוק ראשון:
חוק שני:
חוק ראשון:
חוק שני:
חוק ראשון:
חוק שני:
חוק ראשון:
חוק שני:
חוק ראשון:
?- אב בשושלת(אברהם, קובי).
האם אב(אברהם, קובי)? לא.
אב(אברהם, יצחק). ,
האם אב בשושלת( יצחק, קובי)? >> (קושיה ראשונה).
האם אב(יצחק, קובי)?4 לא. 0
אב(יצחק, יעקב) ה
האם אב | בשדשלת ( יעקב , 20 (קושיה שניה).
-
האם אב(יעקב, קובי)? לא.
אב(יעקב, יוסף).
האם אב בשושלת(יוסף, קובי)? (קושיה שלישית).
האם אב(יוסף, קובי)? לא.
אב(יוסף,אבי).
האם אב בשושלת(אבי, קובי)? (קושיה רביעית).
האם אב(אבי, קובי)? לא.
חוק שני: אב(אבי, צחי).
האם אב בשושלת(צחי, קובי)? (קושיה חמישית).
חוק ראשון: האם אב(צחי, קובי)? כן.
המסקנה: אב(צחי, קובי),
לכן | אב בשושלת(צחי, קובי) (קושיה חמישית).
2 [ , [
/ לכן | אב בשושלת(אבי, קובי), (קושיה רביעית).
לכן | אב בשושלת(יוסף, קובי), (קושיה שלישית).
לכן | אב בשושלת(יעקב, קובי), (קושיה שניה).
לכן | אב בשושלת(יצחק, קובי), (קושיה ראשונה).
לכן | אב בשושלת(אברהם, קובי), תשובה.
איור 7.5 - קבלת התשובה על בסיס חוק רקורסיבי
כפי שרואים באיור, השאילתה מפנה אותנו אל החוק הראשון של אב בשושלת, אשר מכוון
אותנו אל החוק השני, אשר מזמין את החוק הראשון וכן הלאה. בדרך זו, אנו עובריס מאברהם
4 אל יצחק, מיצחק אל יעקב, מיעקב אל הבא בתור, עד אשר מגיעים אל צחי, שהוא אביו של
קובי. התהליך הרקורסיבי נעצר כאן על ידי החוק הראשון, שקובע כי מכיון שצחי הוא אביו
של קובי, אזי הוא גם אב בשושלת שלו. מכאן מתחילה תנועה בכיוון חזרה: על פי החוק השני
גם אביו של צחי, אבי, הוא אב בשושלת של קובי וכן הלאה. המסקנה: אברהם הוא אב בשושלת
.- של קוב
156
9 חוקים הקורסיבייס - תרגול
בסעיף זה נציג לפניך שאלות, אשר בעזרתן תוכל להעריך את התקדמותך בלימוד חוק
רקורסיבי. מומלץ לבצע את 4עבודה בשלבים הבאיסם:
1. לענות על השאלה מבלי להריץ את התכנית.
2 להריץ את התכנית ולהשוות את התשובות,,
3 להיעזר ב-1:806 במידה והתשובה שעל הנייר"שונה מזו שעל גבי המסך.
/ 2%
נדגיש, כי על כל אחת מהשאלות ניתן לענות מבלי להזדק. למחֶשב.
עבודה מהנה!
שאלה 1
ענה על השאילתות הבאות על בסיס התכנית "שושלת היוחסין של קובי" (תכנית 7.4).
להלן השאילתות:
א. ?- אב בשושלת(א, קובי).
ב. ?- אב בשושלת(אברהם, א).
ג. ?- אב בשושלת((א, ץ).
מצא את כל התשובות האפשריות לכל אחת מהשאילתות האלה.
שאלה 2
לפניך שתי שאלות:
1) מי הס אבות אבותיו של יוסף!
2) מי הם צאצאיו של יוסף!
א. תרגם את השאלות האלה לשאילתות של פרולוג.
ב לכל אחת מהשאילתות, מצא את אוסף כל התשובות האפשריות על פי התכנית 7.4.
ג. | תן הסבר לצעדי החישוב של השאילתה הראשונה בדומה לזה שבאיור 7.5.
להלן נציג כמה תכניות, אשר בהן נשתמש בחוק רקורסיבי. הראשונה מדגימה תהליך של הסקת
מסקנות בשרשרת הבאה:
ים +ם חם.
חם אם עמש.
עמש אם קיץ.
מפסוקי השרשרת אנו מסיקים כי ים אם קיץ. התכנית שלפנינו מתארת את תהליך הסקת
המסקנה:
7
0
מסקנה מיידית(ים, חם).
מסקנה מיידית(חם, שמש).
מסקנה מיידית(שמש, קיץ).
מסקנה(א, +):- מסקנה מיידית(א, צ).
מסקנה(א, צ):-מסקנה מיידית(א, 0),מסקנה(ם, ץ).
תכנית 7.5 - הסקת מסקנות
שאלה 3
מצא את כל התשובות לשאילתות אלו:
?- מסקנה(ים,קיץ).
?- מסקנה(א,קיץ).
?- מסקנה(ים,א).
?- מסקנה(א,ץ).
הערה: ניתן להשתמש במונחים "תולדה מיידית" ו"תולדה" (אשר השתמשנו בהם בדיון
בפרק 4), במקוס המונחים "מסקנה מיידית" ו"מסקנה".
שאלה 4
א. עיין בתכנית לוגית "סיפור קיץ" שבמבוא לספר זה והצג את תהליך הסקת המסקנות
בשרשרת באמצעות היחסים מסקנה. .מיידית ו-מסקנה.
ב מצא את כל התשובות לשאילתות אלו:
?- מסקנה(מבלים, קיץ).
?- מסקנה(עושים חיים, קיץ).
?- מסקנה(מבלים, שוחים).
?- מסקנה(א, קיץ).
?- מסקנה(שוחים, א).
?- מסקנה(א, צ).
התכנית הבאה דנה במערכת כבישים בין-עירוניים. נביא את הגירסה האנגלית שלה. הישובים
3 ו-ט נקראים קשורים אם יש כביש המקשר אותם:
. (2086)8,0-: (, 8) 666 60תתסס
כמו-כ|, הישובים 3 ו-5 קשורים, אם קיימים הישוביס שביניהם:
5 , .. ,2>%מ11 ,%1ת11 ,8
88
הראשון בסידרה, הישוב ט הוא האחרון בסידרה, ולכל זוג ישובים סמוכים (כמו
ג ו-1אחו1, למשל, או כמו %1ח:1 ו-2תו1) יש כביש המקשר אותם. קשר מסוג זה נבטא באמצעות
הגדרה רקורסיבא
(ל, 1408) 608 66תתסס, (%ת11, 8) 2086- : (פ, 8 )60558 תהסס
להלן התכנית בשלמותה.
7 . (20886)8,0
4" . (6, )20806
4 . (6, 2086)5
| . (2080)8,6
. (1, 2086)6
. (₪, ?)2086
. (ת,₪)086סע
. (1, 2080)6
. (צ,א)20806-: (ץ, 8א)600606תת00
, (%ת1,1, %)2088-: (צ, %)66666תת0סס
. (צ, %ת66568)1,1ת600
תכנית 7.6 - הקשר הבין-עירוני
הערה: בתכנית זו מניחים, כי הכבישים הס חד-סטריים. כלומר, הכביש שמקשר את 8 ו-פ איננו
מקשר את 5 ו-8.
שאלה 5
א מצא את כל התשובות לשאילתה:
. (8 ,60568)6תת60 -?
ב. מצא את כל התשובות לשאילתה:
. (0 ,)6060000 -?
ג. = מצא את כל התשובות לשאילתה המורכבת:
.(1 ,א%)60666תת60 ,(₪ ,א%)60066תת60 -?
ד מצא את כל התשובות לשאילתה המורכבת:
. (ת ,א)60066תת60 ,(א ,60060)8תת00 -?
תכנית 7.6 היא גירסה של הקשר הבין-עירוני, אשר תואר בסעיף בי של ההקדמה. בסעיף 6 של
חטיבה רביעית נציג תכנית נוספת בנושא זה.
19
שאלה 6
תאר את המחסנית 1.10 בעזרת היחסים:
. (1%60₪2 , 160₪1)תס
. (166₪2 , 160₪1)סטססם
רמז: את היחס 6/2טסטג ניתן להגדיר באופן רקורסיבי על בסיס של היחס 2/חס.
שאלה 7
נבנה בסיס נתונים סביב היחס 072. 1זגק:
. (001606 ,%6ע8ק09)2 סע8כ
נוסיף לבסיס זה את החוקים:
-:(00[160%6 ,%ע8ק2)ם1 18
. (001606 ,01)2826 סעפק
-:(00[860%6 ,%ע28)ם1 18
,(01ע28 ,6ע8ק)01 סעפס
- (00166% ,1 185
בהתאם לבסיס הנתונים שלך בדוק מהן התשובות לשאילתה:
. (00160% ,6ע28)ם1 18 -?
תן הסבר לכל תשובה.
110
44
/
חטיבה שלישית -
תכנות לוגי בפרולוג
כתיבת תכנית בשפה פרוצדורלית היא הצפנת אלגוריתם, משמע, הצפנה של סדרת הוראות
חד-משמעיות עם סדר ביצוע מוגדר. כתיבת תכנית לוגית היא תאור בעיה, ולכן היא נעשית
ברמה אחרת: ברמה של *חסים, קשרים בין היחסים והסקות לוגיות. את היתחסים מתארים
באמצעות עובדות וחוקים, ומתוכם, באמצעות השאילתות, מסיקים את המסקנות. בהתאם
לגישה זו מציגיס את חישוב השאילתה כתהליך לוגי של הסקת מסקנות, מבלי לרדת לרמה של
ביצוע, כלומר, מבלי לברר איך מערכת הפרולוג מרכיבה את התשובה. באופן מופשט ניתן לומר
כך: תכנית לוגית מציינת מה לעשות, ומערכת הפרולוג מחליטה איך לעשות.
אנו לומדים אם-כן, כי בתכנות לוגי ניתן להפריד בין שתי רמות:
₪ רמה לוגית, המתבטאת בהגדרות של יחסים ושל קשרים ובניסוח של השאילתות.
₪ רמת ביצוע, אשר היא נחלתה של מערכת הפרולוג. כדי לענות על השאילתה, מערכת
הפרולוג מאתרת עובדות וחוקים, מבצעת הצבות ובוחנת אלטרנטיבות, מבלי שבתכנית
נכתב במפורש: "אתר'", "הצבי, "בחן".
על פי העקרון של תכנות לוגי, הרמה הלוגית היא אשר קובעת את הסמנטיקה, כלומר, את
משמעות התכנית. האם הרמה הלוגית קובעת גם את הפלט!
במילים אחרות, האס ניתן לנבא את תוצאות השאילתה על-פי היחסים והקשרים הלוגיים,
מבלי שנדע איך המערכת מאתרת, מציבה, בוחנת ומבצעתז
נעיין בשתי תכניות לוגיות, 1601 זגו ,1602גות, אותס הכרנו בסעיף 7.7. התכנית 811601חז
מורכבת משני פסוקים. פסוקים אלה מרכיבים גם את התכנית 662ההגוח, אלא שסדרס הפוך.
למדנו כי סדר של כתיבת הפסוקים אינו משפיע על המשמעות של תכנית לוגית. ניתן לצפות
שהתשובה לשאילתה (/,א)6561ו1זגמ-? תהיה זהה לזו של השאילתה (+, %)1662חגוח -? האמנם!
ראינו כי לא כך הדבר.
ו14
לשאלה למה התשובות אינן זהות אין הסבר ברמה הלוגית, אך יש לה הסבר ברמה
פרוצדורלית, כלומר, ברמה של ביצוע. נקבל אם-כן, כי ביישום עקרונות של תכנות לוגי
באמצעות תכנות בפרולוג אי אפשר להתעלם מן הצד הפרוצדורלי, אותו יש להכיר אם ברצוננו
לכתוב תכניות מעשיות.
היחס בין הצד הלוגי והצד הפרוצדורלי במערכת של פרולוג דומה ליחס בין הדרג המתכנן
והדרג המבצע במערכת כלשהי: מבחינה לוגית התכנית יכולה להיות מושלמת, אך התוצאות
תהיינה טובות או מאכזבות, בהתאם לביצוע. נקדיס ונאמר כי אין לתלות את האשמה בשפת
הפרולוג. מקור האכזבה טמון בכלי אשר באמצעותו אנו מיישמים את מערכת הפרולוג. כלי זה
הוא המחשב של הדור הנוכתי. מחשב זה מבצע את חישוב השאילתה באופן סדרתי, פסוק אתר
פסוק. לכן התכנית עלולה להיתקע בפסוק מסויים מבלי לדעת שהפסוק הבא "יציל את המצבי.
כנראה שהבעיה היתה נפתרת, לו ניתן היה לבחן את פסוקי התכנית במקביל על מנת לבחור
את הפסוק המתאים. ביצוע מסוג זה שייך לטכנולוגיית הדור הבא. ומכאן, שאם רוצים לקצור
היום את הפירות של טכנולוגיית העתיד ובכללס את שפת העתיד פרולוג, צריכים ללמוד את
דרכי פעולתה של מערכת הפרולוג ברמת הביצוע וברמה הלוגית כאחד.
בחטיבה זו נלמד לתכנת בפרולוג. בפרק 8 נכיר את התחביר ואת מבנה הנתונים של פרולוג.
לאלה מן הקוראים, אשר השלימו פרק 6, תהיה זו מלאכה קלה, שכן לוגיקת היחסים היא
המקור של פרולוג. בפרק 9 נדון במבנה, הקרוי רשימה. הרשימה של פרולוג הינה מבנה
רקורסיבי, ועל כן רוב התכניות של פרולוג אשר משתמשות ברשימות, מכילות חוקים
רקורסיביים. בפרק 10 נציג את המודל החישובי של תכנית לוגית, ובפרקים 11 ו-12 נכיר את
הפרדיקטים, המוגדרים בתוך המערכת והמכוניס פרדיקטי המערכת או פרדיקטים המוגדרים
מראש.
את היעד הלימודי - תכנות מעשי בפרולוג, נשלים באמצעים האלה: בפרק 8 נלמד לבנות בסיסי
נתונים, ובפרק 9 נעסוק בכתיבה רקורסיבית. תחילה ננתח תכניות נתונות (סעיפים 9.3 ו-94),
ולאחר מכן נעצב סדרה של תכניות מיון (סעיף 9.5). בפרק 10 נכיר את המודל החישובי של
תכנית לוגית ואת יישומו על ידי מערכת הפרולוג, ובפרקים 11 ו-12 נלמד להיעזר בפרדיקטי
המערכת לצורך ייעול התכנית.
12
פרק 8
כללי התחביר ומבנה הנתונים
.
בפרק זה נכיר את מבנה הנתונים של פרולוג (סעיפים: 8.1, 8.2, 8.3). נלמד לבנות בסיסי נתונים
ולדלות מהם מידע באמצעות חוקים, אשר הוגדרו במיוחד למטרה זו (סעיף 8.4). נלמד לקרוא
רשומות בפרולוג, ולהציגן באמצעות תרשים דמוי ע (סעיפים: 8.3, 8.5). בנוסף, במסגרת פרק
זה נכיר אופרטורים לחישוב והשוואה, נלמד את פעולתם ונעמוד על הבעיות הנוצרות עקב
השימוש בהם (סעיף 8.6).
1 שפת פרולוג - סימנים וביטויים
האלף-בית של פרולוג מורכב מאותיות, ספרות וסמלים מיוחדים. בפרולוג האנגלי משתמשים
באותיות גדולות וקטנות. בפרולוג העברי משתמשים באותיות עבריות וגם באותיות לועזיות
גדולות. לפרולוג יש גירסאות שונות ובהתאם לכך יש גם הבדלים בסימון. בספר זה נשתמש
בסמלים לפי גירסת 1520₪1/ (ראה נספת אי).
מסימני האלף-בית בוניסם את ביטויי השפה (פוחזסו). הביטויס הפשוטים ביותר של פרולוג
בנוייס מאטומיס ומספרים.
האטום של פרולוג שייך לאחת הקבוצות א, ב, ג, שלהלן:
א. אוסף אותיות וספרות שמתחיל באות קטנה ואינו כולל רווחים. את המילים באוסף
זה כותביס ברצף (ללא רווחים), או מחברים באמצעות קו תחתון.
אטום 80
הורה %תסעהק
ההורה של 9 6תסעה8ק 6תס
ב831 8
3
ב. אוסף סמלים כלשהו המוקף משני צדדיו בגרש. כשקיים חשש, כי ו סמל כלשהו אינו
אטוס, כדאי להקיף אותו בגרש משני צדדיו.
'האב של! '2ע6ת28% 6תס'
זדק' 'ם זדק'
'30ם' '534'
ג. | אוסף של סמלים מיוחדים. סמלים אלה שונים בגירסאות השונות:
<<<
בחלק מהגירסאות של פרולוג משתמשים במספרים טבעיים בלבד: 0, 1, 2, וכן הלאה. יש
גירסאות בהן ניתן להשתמש בכל מספר שלם בין 32768-לבין 32768, ויש גירסאות בהן
ניתן להשתמש בכל מספר ממשי.
האטומים והמספרים הם קבועי השפה (6חגוצחס)). בנוסף, ישנם משתנים (18016ז4ץ).
המשתנים הם:
א. קו תחתון המכונה "משתנה אנונימי" (פ5טסוחותסחה).
ב. אוסף סמלים המתחיל באות גדולה או בקו תחתון ללא רווחים.
בן תספ
א א
המחדוע עסת86].
12 0141
כל אחד 6מסעחג
הביטויים של השפה הם: קבועים, משתנים וביטויים מורכבים. השם האחר של ביטוי מורכב
הוא מבנה (6זטוסטז51). המבנה של פרולוג בנוי מפנקטור (זסז6תט)) וארגומנטים (15תסמזטפזה).
הפנקטור הוא אטוס. הארגומנטים הם אטומים, משתנים או מבנים. להלן דוגמאות:
1. אב(אברהם, יצחק) (18880 ,שהה8תס8)עסת18%6
09 ארגומנט ארגומנט ארגומנט ארגומנט פנקטור
2. זוג(אב(א), אם(ץ)) ((צ)62ת₪05 ,(%)62ת86+?)18קטסס
פנקטור אַרגומנט ארגומנט ארגומנט ארגומנט פנקטור
קיתוו ור ה
3 אוהב(דני, חברות(רותי, אתי)) | ((צע₪8 ,מת8185628)8 ,80₪ס)11%68
7
פנקטור ארגומנט ארגומנט ארגומנט ארגומנט פנקטור
הצור יי ב וכו
14
ה 0 7-ו
את הגדרת הביטוי נדגים בעזרת איור 8.1. הגדרה זו הינה רקורסיבית.
ביטוי תד
וו המו ו ו
| | ן | ן |
ן ן | | ן ן
קבוע | מעתנה | ביטוי 4תטסקפס0 08218016 6ת5%68ת00
ר---- מורכב ישן 4 |
| ן
אטום מספר עסספטא | 260
איור 8.1 -- הגדרה של ביטוי
הביטוי מאופיין גם על ידי פנקטור וגם על ידי מספר הארגומנטים. משמע, הביטויים:
אב(אברהם) ו-אב(אברהם, יצחק), הס ביטויים שונים לחלוטין. מספר הארגומנטים של הפנקטור
מכונה בשם רבב או אריט" (עזוזג) של פנקטור. הפנקטור אב בביטוי אבןאברהם) הוא של אריטי
ג והוא מסומן כך: אב / 1. הפנקטור אב של הביטוי השני הוא של אריטי 2 ומסמנים אותו כך:
אב / 2. בפרולוג האנגלי הסימונים של (גה8זסג)ז6ת91) ושל (5840 ,וח8ת8ז40)ז6תוג] הם
1 ו-2/ז6ה1ג! בהתאמה.
בביטוי כדוגמת ((עזהות ,תת51516)8 ,ותס:)65או! הפנקטור וחסו נקרא הפנקטור הראשי
(ז610חג [8קוסמוזק). מטעמים טכניים מכנים את הקבוע בשם פנקטור של אריטי 0. למשל, את
הקבוע חם נסמן כך: חם / 0, ואת הקבוע וחסוג נסמן כך: 0/חסז4.
ביטוי מורכב של פרולוג ניתן לתאר באמצעות תרשים הקרוי עצץ, כדוגמת זה שבאיור 8.2. לנושא
הצגת הביטוי באמצעות עצ יוקדש הסעיף הבא.
אוהב 898
דני חברות 59 מסס
רותי רחל צעמ תת
אוהב(דני, חברות(רותי, רחל)) ( (צע₪8ם ,תת9)8ע818%6 ,11%658)%0₪
איור 8.2 - תאור הביטוי באמצעות עצ
2 עצים
ביטויים מורכבים של פרולוג ניתן לתאר בצורה מדורגת. ניקח למשל, את הביטוי הבא:
אוהבנדני, חברות(רותי, אתי)). את התאור המדורג של הביטוי הזה נתחיל מהפנקטור הראשי
אוהב. אחריו באים הארגומנטים לפי סדר הופעתם: דני ו-חברות(רותי, אתי). לארגומנט השני
יש מדרג (עםסזגזסות) משלו: הפנקטור חברות והארגומנטים רותי, אתי.
5
1
כדי "לראות" כנגד עינינו את מדרג הביטוי, אנחנו נעזרים בתרשים דמוי עצץ. לנוחותנו ל
את העץ ונתחיל לציירו מן השורש (ראה איור 8.3). בשורש העץ נרשוס את הפנקטור --
אוהב. בעקבותיו יופיעו שני הארגומנטים, כאשר השני שבהם נרשם בהתאם למדרג הפנימי שלו.
איור 8.3 - תרשים דמוי עץ של מבנה מורכב
במהלך הספר כבר נעזרנו בתרשים מסוג זה. השתמשנו בו כשהגדרנו את הביטוי של לוגיקת
היחסים (ראה איור 6.1). גם תיארנו בעזרתו את החוק, המגדיר יחס סב (ראה איור 7.1.
המשותף לכל המקרים שבהם נעזרנו בתרשים דמוי עץ, היה המבנה המדורג של העצם המתואר.
קשה היה לתאר את העצם בעזרת מער סדרתי. מאידך, "ראינו" את העצם על כל חלקיו, כאשר
נעזרנו במערך כללי יותר, משמע בתרשים דמוי עץ.
את היעילות של ייצוג דמוי עץ ניתן לראות בתאור קשרי אב-בן, המוכר בכינוי "אילן יוחסין".
להלן אילן היוחסין של המשפחה התנכי"ת:
תרח
אברהם נחור הרן
0
ישמעאל יצחק
יעקב עשיו
איור 84 - אילן היוחסין
46
מעתה נשתמש בייצוג דמוי עץ ובשל כך נקדיש לנושא זה את הדיון שלהלן. תחילה נבחן את
המאפיינים של התרשימיסם הקרויים עצים.
העץ מורכב מצמת?ם (665סה). לעץ שבאיור 8.3, יש חמישה צמתים: אוהב, דני, חברות, רותי,
אתי. לעץ שבאיור 8.4 יש תשעה צמתים, המייצגים את השמות של בני המשפחה התנכי"ת. זוגות
של צמתים מחובריסם יחד בעזרת קשתות (05ז3). למשל באיור 8.4, הצומת בשם יצחק מחובר
על ידי הקשתות עס הצמתים האלה: אברהם, יעקב, עשיו. כל שני צמתים של העץ קשורים
באמצעות נתיב (ה081), המורכב מקשתות. למשל, מצומת בשם נחור ניתן להגיע אל הצומת יעקב
בנתיב העובר דרך הצמתים תרח, אברהם, יצחק.
כל זוג צמתים, שמחובר בעזרת קשת, נמצא בקשר משפחתי. האחד מבני הזוג מכונה בשם הורה
(וח6זגק). השני מכונה עוקב (ז50006550), או בן. ניקח לדוגמה, את הזוג אברהם ו-יצחק. מן
ההקשר התנכ"י אנו יודעים, כי הצומת אברהם הוא ההורה והצומת יצחק הוא העוקב, או הבן.
ניקח זוג אחר של צמתים: יצחק ו-יעקב. הצומת יצחק הוא ההורה והצומת יעקב הוא העוקב.
אבל אל נא נתעלם לרגע מן ההקשר התנכ"י. איך נדע מי מבני הזוג הוא ההורה ומי העוקב!
כדי להבדיל בין ההורה ובין העוקב נגדיר את מדרג הצמתים. בכל עצ יש צומת אחד ויחיד
המכונה בשם שורש (001ז) והמאופיין על-ידי התכונה הבאה: אין לו הורים. בלשון אחרת, לעץ
יש צומת אחד ויחיד, שמופיע בכל אחד מקשריו עם צמתים אחרים בתור הורה ושאינו מופיע
בתור עוקב. את צומת העץ שהוכרז כשורש, מציירים בדרך כלל בראש העצ, את בניו מסדרים
במפלס (|טצ6!) מתחת לשורש, את בניהס של בניו מארגניס במפלס הבא, וכן הלאה.
עבור צומת מסוים, הבנים, בני-בנים, בני-בני-בנים וכן הלאה, מכונים צאצאים (15ת86500008)
של הצומת. הצומת עצמו מכונה האב הקדמון (זסן09סחג) של כל אחד מצאצאיו. אשר על כן,
העצ הינו מבנה מכוון. הכיוון נקבע על-ידי הקשר אב-בן. באיורים, כיוון זה מסומן לעיתים
באמצעות חץ בקצה הקשת (ראה איור 84).
למבנה הקרוי עץ יש תכונה נוספת: לכל עוקב יש הורה אחד בלבד. פירוש הדבר הוא שבעצ
אין לולאות (פקסס!). באחד מספרי המדע הבדיוני מופיע הסיפור הבא: גיבור הסיפור מגיע
במכונת זמן מתוחכמת משנת 2120 אל שנת 1970. הוא פוגש את אשת חלומותיו, אשר מולידה
לו בן. הגיבור חוזר אל שנת 2120 ואז מתברר לו, כי הוא אחד מצאצאיו של הבן שלו. אם
נרצה לצייר את שושלת היוחסין של הגיבור הזה, נקבל את הלולאה שבאיור 8.5.
גיבור
צאצא בן
נין נכד
איורך 8.5 - לולאת היוחסין של הגיבור הבדיוני
שרשרת האבות של גיבור הסיפור תוארה באמצעות מבנה המכונה גרף (הק3זק), אשר יש לו
צמתים וקשתות, אבל אין לו בהכרח שורש. גס המגבלה שלכל עוקב יהיה הורה אחד בלבד
אינה קיימת בגרפים. משמע, שלצומת מסוים של הגרף ישנס לפעמים שני אבות ויותר. בגרף,
אשר באיור 8.6, יש לצומת תל-אביב שלושה אבות: הרצליה, רמת-השרון, פתח-תקוה.
7
רמת-השרו ן הרצליה
פתח-תקוה
תל-אב יב
איור 8.6 - גרף שמתאר קשרים בין-עירוניים, המכווניס
על-פי העקרון אב-בן.
נציין תכונה נוספת של עצים: בעץ ישנס צמתים, אשר אין להם בנים. צמתים אלו מכונים עלים
(65צ168). בעץ שבאיור 8.4 הצומת לוט הוא עלה, וכמו כן גם הצומת נחור. גם בגרף ישנם עלים:
הצומת תל-אביב של הגרף שבאיור 8.6 הינו עלה.
את הנאמר לעיל נסכם כך: עץ הוא אוסף של צמתים המחוברים בעזרת קשתות. לשני צמתים
המחוברים על ידי הקשת ישנס תפקידים: האחד הוא ההורה, השני הוא העוקב, או הבן. לכל
עוקב יש הורה אחד בלבד. קיים צומת אחד ויחיד שאיננו מופיע בתפקיד של עוקב: צומת
השורש. צומת שאין לו בנים, נקרא עלה (640!). חלק של העצ, המורכב מהורה על כל צאצאיו,
מכונה בשם ענף (66ז5001), או שבט. את הצמתים שבעצ ניתן לארגן בשרשרת (חוג4גס) על פי
הקשר המשפחתי הורה-בן-נכד-, וכן הלאה.
העץ נקרא אינסופי (116חו1חו) אם יש בו שרשרת אשר אינה מסתיימת. אומריס שהשרשרת היא
בעלת אורך א, אם בנוסף להורה יש בה א צאצאים. כל זוג צמתים ניתן לקשור באמצעות
נתיב, אבל לא כל זוג ניתן לקשור באמצעות שרשרת משפחתית. לדוגמה, בעץ שבאיור 84, יש
נתיב המחבר את צומת לוט עם צומת ישמעאל, אבל אין שרשרת שתחבר אותם, משום שאף לא
אחד מהם הוא האב הקדמון של האחר. מאידך השורש הוא האב-הקדמון של כל צומת אחר
ולכן, כל צומת ניתן לחבר עם השורש באמצעות שרשרת משפחתית. עבור כל צומת נתון, קיימת
שרשרת אחת בלבד, המקשרת בינו לבין השורש. דבר זה נובע מן העובדה שלכל בן יש הורה
אחד בלבד.
אומרים שהצומת הנתון נמצא בעומק א, אם אורך השרשרת שמקשרת בין השורש לבין הצומת
הזה הוא א. בניו של אותו הורה מכוניסם אחים: המאפיין של האחים הוא, שכולסם נמצאים
באותו עומק. אומרים כי עומק הע (1166 106 01 מ1ק66) הינו א, אם השרשרת הארוכה ביותר,
שמקשרת בין השורש לבין אחד מעלי העץ היא באורך א. לדוגמה, עומק העץ שבאיור 8.3 הייו
2, ועומק העץ שבאיור 8.4 הינו 3.
תיאורטית, ניתן להגדיר עץ, שאין בו צמתים בכלל. עץ זה מכונה בשם עץ ריק (1766 ע1קו6).
קיים גם עץ שעומקו 0, משמע הוא בעל צומת אחד בלבד. מערך סדרתי גם הוא עצ: האיבר
הראשון בו הוא שורש, השני הוא בנו וכן הלאה. האיבר האחרון של הסדרה הוא עלה (ראה
איור 87). עצ אשר בו להורה יש לכל היותר שני בנים מכונה עץ בינר? (1166 עָזפתוס). בסעיף
הבא נציג תכנית המתארת עצ בינרי. ישנס גם סוגי עץ אחרים, אשר לא נדון בהם.
[018
(א) סדרה (ב) עץ בינרי
איור 8.7 - סוגים שונים של עצים: (א) סדרה, (ב) עץ בינרי
נאמר לסיום, שעץ הוא מבנה פורמלי אשר משתמשים בו כאשר יש צורך לתאר מספר אירועים
"במקביל". נשתמש בעץ, אם נרצה לתאר "במקביל" את כל בניו של תרח, או את כל
הארגומנטיס של הפנקטור הנתון. קיים מבנה פורמלי אחר לתיאור אירועים "במקביל" - גרף.
כל עץ הוא גם גרף, אך ההיפך אינו נכון. נציין גם, כי בספרי לימוד שונים יכולים להיות הבדלים
במינוח ובניסוח של ההגדרות. בנוגע לגרפים, נשתמש במינוח הבא:
* גרף - אוסף של צמתים, אשר חלקס קשורים.
* גרף קשיר (60160תחסס)- גרף אשר כל אחד מצמתיו קשור לצומת אחר.
* גרף מכוון (תק9ז618 ,61:60166)- גרף אשר בו כל זוגג של צמתים קשורים מוגדר באמצעות
הקשר אב-בן.
* *
(א) גרף לא קשיר (ב) גרף קשיר (ג) גרף לא קשיר
ולא מכוון ולא מכוון ומכוון
איור 8.8 - סוגים שוניס של גרפים:
(א) לא קשיר, לא מכוון,
(ב) קשיר, לא מכוון,
(ג) לא קשיר, מכוון.
149
3 מבנים מורכבים
מביטויי השפה בונים את העובדות והחוקים ובהתאם לסוג הביטוי מציגים מבנה נתוניס פשוט
או מורכב. התרשים שבאיור 8.9 מתאר את מבנה הנתונים בפרולוג:
נתון 8
הה] ר-----ת
ן | | |
פשוט מבני 5 6
ן | | |
קבוע מעתנה 6טט 00%
| ן | |
אטום מספר תססחמטת 860
איור 8.9 - מבני הנתונים של פרולוג
השימוש במבני נתונים מורכבים מאפשר גמישות רבה בכתיבת תכניות. ניתן אם-כן, לכתוב
תכנית בצורה מודולרית כך, ששינוי קל בנתון זה או אחר לא יחייב שינוי של התכנית. השימוש
במבני נתוניסם מורכבים מאפשר גם גמישות בהצגת השאילתות. נעיין בדוגמאות אחדות.
דוגמה 8.1
את העובדה כי 2+4=6 ניתן לבטא בעזרת ביטוי פשוט:
.אדפ 6000818 עט0ס? 5ט1ק סשס
או בעזרת ביטוי מורכב:
.(818 ,עט0ס+? ,( סשס)5ג1ס
או בעזרת ביטוי מורכב, בו צומצס מספר הארגומנטיס לשניים:
.(518 ,(ע0ס+ , סשס)5ט1ק)000815
בביטוי האחרון אסור להחליף את הפרדיקט פט!ק במשתנה, אבל מותר להחליף במשתנה את
הארגומנט (זטס),סא)פט1ש ואת כל אחד מהארגומנטיס הבאים: סשוז, זטס), א51. בלשון אחרת:
אם נציג את הביטוי בעזרת עצ, ניתן יהיה להחליף במשתנה את הענף (זטס),0שש1)פט1ק ואת כל
אחד מהעלים סאוז, זטס), או5. אסור להציב משתנה במקום צומת פנימי, או במקוס שורש. להלן
השאילתות והתשובות:
. (2 , (ל ,א)8ט600815)21 -7 . (צ ,א)600818 -71
₪0 = א (עטס] ,8)690ט1ק=א
פטס? = ץ א+פ=צ
א1ם = 2
10
-
ויוי 00000000 -
נציין, כי בתשובה לשאילתה (--,%)000815-? נקבל את ענף העץ, אשר שורשו פטופ:
(זטס] ,1050610 = 9
5
רוי |
5 18
2
עטס? סשס
איור 8.10 - עץ של 600819/2
דוגמה 8.2
ניתן לבטא קטע של מישור באמצעות המבנה הבא:
((4 (43 ,(2 ,5)1ת01ק)%6ת50806
4
5
ס>תנסס %תנסק 2
8 3 2 1
3 1
(א) עץ של %5/2ת508₪0 (ב) קטע במישור
איור 8.11 - קטע: (א) כביטוי מורכב של פרולוג,
(ב) כחלק של המישור.
נציין, כי בתשובה לשאילתה: ( -,%)1ח56806-? נקבל ענף שלם של העץ: (1,2)ותוסק- <. בתשובה
לשאילתה: (--,(- -, א)1ת1סק)1ת56816-? נקבל את העלה: 1 = א%.
דוגמה 8.3
ניתן לבטא את התנועוּת של שני רובוטיסם ואת המרחק ביניהם בדרך זו:
,(50 ,שטס6ת1ש עהסת ,6002 ע68ת)6)5%8061ט0ם
. ( (06ת215%8 ,2180662 ,568%662)018661
151
ו
במצב |514)6 נמצא הרובוט הראשון במקוס המכונה ז400. ז68ח והרובוט השני - במקום
המכונה שסשחוש. זג68ח. המרחק בין הרובוטים שווה ל-50 יחידות אורך כלשהן. במצב 518062
נמצא הרובוט הראשון במקוס 1 והשני - במקוס 2, המרחק בין הרובוטיס מסומן
באמצעות המשתנה 06ח8ו5וש.
שטסם
ל
"1 "12
686 218062 218061 0 שס6תבש עאס6ת 6002 תאסת
איור 8.12 - עץ של 6/2שסוח
גם כאן, בתשובה לשאילתה (--.א)6שסוח-? נקבל את הענף:
(50 ,שס6ת1ש עהסת ,6002 ת68ם)5%8061=%
דוגמה 8.4
להלן חלק של רשומת (166016) המשפחות: שם האב, שס האם ומספר הילדים:
משפחה(אב( ישראלי, ישראל), אם(ישראלי, ישראלה), ילדים(3)).
משפחה(אב(צבר, יורם), אם(צבר, רינה), ילדים(0)).
האיור 8.13 מתאר באמצעות עץ את הביטוי השני שברשומה.
נציג את השאילתה הבאה:
?- משפחה( אב, , ).
נקבל את התשובה:
אב = אב(ישראלי, ישראל);
אב = אב(צבר, יורם).
נציג שאילתה נוספת:
?- משפחה(אב( משפחה, פרטי), , | ).
נקבל:
משפחה = ישראלי
פרטי = ישראל
0 וכן הלאה.
112
₪000 אתתת זז 41( מפטטששש שש ללה 35ןו
הערה: נזכירכם, כי = אב הוא סימון נוסף של משתנה בפרולוג העברי.
מ ש פ ח ה
אב אם ילדים
צבר יורם צבר רינה 0
איור 8.13 - עץ של משפחה / 5
דוגמה 8.5
הביטוי הבא הוא חלק מבסיס נתונים המתאר מערכת שעות לימודים במוסד כלשהו. נציג אותו
תחילה בעזרת עץ, ואח"כ נכתוב אותו בתעתיק של פרולוג באמצעות שיטה המכונה סריקת ע.
הפרדיקט הראשי של הביטוי הוא קורס. המאפיינים של הקורס הם כינויו, זמן ומקום העברתו,
ושמותיהם של המרצה והמתרגל. הזמן, המקום ושמות המרצה והמתרגל משתנים בהתאם
לסמסטר שבו מלמדיס את הקורט הזה, אף-על-פי שאת המערכת בונים בדרך כלל לשנה. לכן,
למען המודולריות, הוחלט על מבנה הנתונים הבא:
קורס( שם, - סמסטרו, 3 סמסטר2)
את הפרטים הנוספיס הוחלט לציין בענף שבראשו נמצא הסמסטר המתאים:
סמסטר)ן- .סמסטר, = הרצאה, = תרגול).
רוב הקורסיס הועברו פעמיים בשבוע ולכן מבנה של הנתון הרצאה היה כדלהלן:
הרצאה( .מרצה, יוםו, - יוס2.
הנתון יום היה מורכב מיוסם של השבוע, שעות התחלה וסיום של ההרצאה, שס הבנין ומספר
החדר:
יום(: יום, -- שעות, = בנין, = חדר).
השעות תוארו באמצעות הביטו:
שעותן: התחלה, = סיום).
לגבי ההרצאות שהתקיימו פעס בשבוע בלבד, סוכם היה שאת הפעם השניה, החסרה, נציין
באמצעות אטום ריק.
העץ שמתאר את מערכת השעות של הקורס להסתברות הוצג באיור 8.14
3
25-45 ה שק 0- 5 החד =
קורס
ו 7 יכ
וס ום ריק דני יום בל
א שעוה רקנטי אולםו א שעות רקנטי אולם1 ד שעוה רקנטי 5:
8 12 2 3ו 8 8ו
איור 8.14 - עץ של קורס / 3
העץ מתאר את הנתונים האלה: קורס להסתברות מועבר בסמסטר הראשון ואינו מועבר
בסמסטר השני. ההרצאה מתקיימת בימי אי של השבוע, בין השעות 10 עד 12, באולם 1 של
בנין רקנטי. המרצה הוא יוסי. התרגיליס מועברים על ידי דני בימים אי ו-די, בבנין רקנטי. ביוס
אי התרגיל מתקיים מיד אחרי ההרצאה, וביום די הוא מתקיים מ-9 עד 10 בחדר מספר 5.
נכתוב את נתוני קורס ההסתברות כביטוי מורכב של פרולוג.
קורס(הסתברות, סמסטר(ראשון, הרצאהיוסי, יוסם(א, שעות(סו, 12), רקנטי, אולסו), ריק),
תרגולנדני, יום(א, שעות(12, 15), רקנטי, אולסו), יוס(ד, שעות(פ, 10), רקנטי, 65)), ריק).
לצורך כתיבת הביטוי אנו סורקים את העץ מימין לעומק, ועוברים את הצמתים הבאים: קורט,
הסתברות, סמסטר, ראשון, הרצאה, יוסי, וכן הלאה. כשיורדים למפלס נמוך יותר, פותחים את
הסוגריים, וכשחוזרים, סוגרים אותם. לדוגמה:
יוס(א, שעות(10, 12), רקנטי, אולסו) וכן הלאה.
שיטה זו מאפשרת כתיבת קוד יעילה ומהירה. את בדיקת הסוגריים ניתן לעשות באמצעות
האלגוריתמים הרגילים בתוך ענף כלשהו, או בתוך העצ כולו.
נעיר כי את סריקת העץ בפרולוג האנגלי יש לבצע משמאל לימין (ראה את שאלה 2 בסעיף
הבא).
דוגמה 8.6
את המושג עץ בינרי (ראה סעיף 82) מגדירים רקורסיבית כך: עץ בינרי הוא עץ ריק, או עץ
אשר כל אחד מענפיו הינו עץ בינרי. הביטוי ווח משמש לסימון של עץ ריק. ניתן לתאר עץ בינרי
באמצעות היחס (זה8ו3 ,₪006 ,6)068ז1, שבו וססת הינו השורש, ו-160, הפוא הינם הענף
השמאלי והימני בהתאמה, אשר שורשיהם הם בנים של השורש.
ניתן לתאר את העצ הבינרי אשר להלן, באמצעות היחס 1166 בדרך זו:
14
4
--=-₪₪₪₪ 00], ע /2/2//סהמ.
.((11ת ,6 ,11ת)66ע62 ,8 ,(11ת ,ס ,11ת)66)02660עס
8
/
התכנית הבאה בודקת האם הצומת א שייך לעץ הבינרי 66זו:
.(( ,א , )06עס ,א)ת1
.(1 ,א)ם1 -: ((-,-,66)2עס ,א)םת1
.(8 ,א)ם1 -: ((8 , -, )66עס ,א)ת1
תכנית 8.1 -- חיפוש צומת בעצ בינרי
התכנית מורכבת משלושה חוקים. החוק הראשון קובע כי הצומת א שייך לעץ אם הוא השורש.
החוקים השני והשלישי הינם רקורסיביים: הצומת א שייך לעץ בינרי, אם הוא שייך לענף
השמאלי או הימני שלו.
4 בניית קובץ נתונים - אירוע
בדוגמת בסיס הנתוניס שנבנה על ידי חברי חוג פרולוג בבית הספר התיכון על-שם גינצבורג
ביבנה, נראה את אשר ניתן לעשות באמצעות מבנה מורכב. נציין, כי להצגת המבנה בצורת ע
היתה חשיבות רבה במהלך העבודה.
המטלה היתה לבנות את קובץ נתוני הכיתה, אשר ממנו ניתן יהיה לדלות מידע על ימי הולדת,
כתובות, מספרי זהות, מספרי טלפון וכן הלאה. הוחלט לבחור את הפרדיקט מידע בתור
הפנקטור הראשי. בהמשך, נציג גירסה מקוצרת של נתוני הקובץ, הכוללת את שם התלמיד,
תאריך-לידה וכתובת. השס מורכב משס משפחה ושם פרטי, תאריך-הלידה כולל יום וחודש,
והכתובת כוללת את שס הרחוב, מספר הבית ומספר הטלפון. העץ שבאיור 8.15 מתאר את
הביטוי המורכב של הקובצ "מידעל".
מידע
תאריך לידה כתובת
| | | | | | |
| | | | | | |
משפחה פרטי יום חודש רחוב מספר הבית טלפון
איור 8.15 - עץ של מידע / 5
15
הביטוי המורכב, אשר כולל את המידע, נראה כך:
מידע(עם( משפחה, פרטי), תאריך לידה( יום, חודש),
כתובת( רחוב, מספר הבית, טלפון)).
כדי להקל על דליית המידע, נבנו מספר חוקים. "חוק ימי הולדת" כלל את המידע הרלוונטי
באמצעות הארגומנטים שם / 2 ו-תאריך לידה / 2. את הביטוי כתובת / 5 החליף המשתנה
האנונימי:
יום הולדת( משפחה, פרטי, יום, חודש):-
מידע(שם( משפחה, פרטי), תאריך לידה( י ום, חודש), -).
נציין את המודלוריות של "חוק ימי הולדת". התלמיד יכול לשנות את הכתובת. המידע הרלוונטי
יעודכן מבלי לגרור את עדכון "חוק ימי הולדת".
התלמידים החליטו לערוך אחת לחודש מסיבה לכל החברים, אשר נולדו באותו חודש. כדי
לקבל את שמות "בני ההולדת" נבנה החוק הבא:
מסיבת הכיתה( פרטי, חודש):-
מידע(שם( , פרטי), תאריך לידה( חודש), | ).
4
להלן חלק של התכנית "מידע". השמות הס שמות אמיתיים של חברי חוג פרולוג ביבנה, אך
שאר הפרטים שונו מטעמים מובנים.
החוקים של תכנית 8.2 נועדו להקל על המשתמש להציג את השאילתות. נוכל לראות, כי הצגת
שאילתה עם הפנקטור מידע / 3 מחייבת כתיבה רבה בשל המבנה המורכב שלו. דליית הנתונים
הינה פשוטה, קלה ואלגנטית כאשר משתמשים בחוקי פרולוג שנכתבו.
הינה מספר דוגמאות של שאילתות:
1 מי נולד באפריל!
?-מסיבת הכיתה(- פרטי, אפריל).
- .פרטי = רמי;
- .פרטי = חדוה.
2 איפה גר איל?
?-מען(איל, > כתובת).
- כתובת = כתובת(האורן, 130, 541425).
33 מה הוא שסם המשפחה של יובל!
?שם מלאניובל, = משפחה)
> משפחה = אבנשטיין.
4 מי גר ליד סיגל!
?-שכנים(סיגל, = פרטי, צאלו).
= פרטי= נמרוד.
156
מידע(עם(אהרון, סיגל), תאריך לידה(21, נובמבר),
כתובת(צאלון, 150, 551143)).
מידע(עם(ברטוב, רמי), תאריך לידה(25, אפריל),
, כתובת(הדרור, 99, 531125)).
מידע(שם(מנור, איל), תאריך לידה(2, ספטמבר),
כתובת(האורן, 130, 54423)).
מידע(עם(ביירון, אביאור), תאריך לידה(2, מרס),
י כתובת(הגפן, 37, 521114 )).
מידע(עם(דרור, צהלה), תאריך לידה(5, אוגוסט),
כתובת(האורן, 97, 521003)).
מידע(שם(וקס, נמרוד), תאריך לידה(14, יוני),
כתובת(צאלון, 100, 510341)).
מידע(שם(חרמון, עופר), תאריך לידה(10, אפריל),
כתובת(הגפן, 21, 550012)).
מידע(עם(מדר, חדוה), תאריך לידה(17, אפריל),
כתובת(ברניצקי, 99, 560103)).
מידע(שם(אבנשטיין, יובל), תאריך לידה(15, מרס),
כתובת(הדרור, 77, 540132)).
יום הולדת( פרטי, יום, חודש):-
מידע(שם( , פרטי), תאריך לידה( יום, חודש), ).
מספר הטלפון( פרטי, טלפון):-
מידע(שם( , פרטי), ,כתובת( , , טלפון)).
מסיבת הכיתה( פרטי, חודש):-
מידע(שם( , פרטי),תאריך לידה( , חודש), )).
מען( פרטי, כתובת):-
מידע(שם( , פרטי), , כתובת).
שכנים( פרטי1, פרטי2, רחוב):-
מידע(שם( , פרטי1), , כתובת( רחוב, , )).
מידע(שם( , פרטי2), , כתובת( רחוב, , )).
עם מלא( פרטי, משפחה):-
מידע(עם( משפחה, פרטי), ,- ).
תכנית 8.2 - מידע
17
5 בנייה של ביטויים מורכבים - תרגול
סעיף זה נועד לתרגול עצמי. מטרתו הינה להקנות מיומנות בעבודה עס נתונים מבניים ובסיטי
נתונים.
אין צורך במחשב. הכן עט וניר.
עבודה מהנה!
שאלה 1
לפניך ביטוי מורכב המתאר את המתכנת 8ווחז5 חהס(, אשר עובד במקצוע החל משנת 1980
ומכיר את שפות התכנות אסמבלר 86 (ניסיון של שבע שנים), ופרולוג (ניסיון של שנתיים).
, (תתס1 ,ת5₪1%6)םת0ספע6ק)66020ע2
(1980 ,עעהטת18 ,12)₪שסע+ פאעסט
- ( ( (0108)2ק , (1) 8850016286 ) עס₪םה8עהסעס) 56865 %סעס
א. תאר את הביטוי המורכב הזה באמצעות עצ.
ב מצא את האריטי של הפנקטורים האלה:
|(
החסז). -5אזסאי (2
5 =סזק (3
זרת רתפ זקסזק (4
ג. | ענה על השאילתות האלו:
. (ת220268810 ,2866 ,ת80ע266020)26 -?
. (ת220105510 , (ע8סע 7 )0ם? א%עסש , )60026ע- ?
.(((? ,א)65שם8עקסתק)8%8005 %סעק ,| ,מ50ע00026)20ע -?
. ((%)508005 סק | ,(6ש8א ,ע11ש78)ת50ע6ס)6עסססץ -?
ד נניח כי העובדה 3/ח80ז6ק היא חלק מבסיס נתונים, בו נמצאים שמות נוספים של עובדים.
המבנה של כל אחת מהעובדות בבסיט הנתונים זהה למבנה של העובדה 3/ח50ז6כ דלעיל.
אנו רוציס לדלות מידע מתוך בסיס הנתונים הזה. הצג בפרולוג את השאלות האלו:
הכן שמות של עובדים עס תאריכי תחילת עבודתם.
הכן שמות של מתכנתים.
הכן את שמות העובדים ואת מקצועותיהם.
הכן את שמות העובדים היודעים לתכנת בפרולוג.
2 ₪ ₪ =
שאלה 2
הנתונים של משפחת זווח5 מוצגים באיור 8.16 בצורה של עץ.
8
שטוו שטסחו או - 98 א
| 8 ₪פ |סטא ₪
ן עשר 4-ה
7 שה6ה15 |6ץ| פססשטטט4 פפן446 | |; ]טטהטנא |1?6 שצט >שוןף ףפא% >ַקאטג | +( 9%ר\ 40% >האום
, / 2% /
4 / /
/ 7
]סטט פשדְנגֶט ססצש א0ס44ף5 5 פפשזְנט סנ שסה*אפאץ(% )ןגי וו
9
9%-
ג שב שסן494 ל ו
ג צשון
א. רשוס את הנתוניס כביטוי מורכב של פרולוג באמצעות סריקת ע.
ב מצא את האריטי של הפנקטורים הבאים:
זו (1
ת6ז1!6ת6 (2
תס (3
ג. | תרגם לשאילתות של פרולוג את השאלות הבאות:
1. מהם השמות הפרטיים של האב, האם, הבן והבת?
2 מה הוא שם האב, כמה שנים הוא עובד בחברה ומה גובה משכורתו?
3 מהם שמות הבן והבת ומתי נולד כל אחד מהסז
שאלה 3
התבונן בביטוי המורכב קורס / 3 שבדוגמה 5 בסעיף 8.3. בהנחה כי הביטוי הוא חלק מבסיס
נתוניס גדול, בנה את החוקים האלה:
א. חוק השולף את השם של כל אחד מהקורסים, המועברים בסמסטר הראשון בלבד.
ב. חוק השולף את שם הקורס בו התרגול מתחיל מיד אחרי ההרצאה.
ג. | חוק שבודק האם שתי הרצאות שונות ניתנות באותו יום, באותן השעות ובאותו אולם.
ד
חוק שבודק האם אותו מרצה מעביר שני קורסים שונים באותו יום של השבוע, ובאותם
שעות.
הערה: החוקים ג' ו-ד' נועדו לבדוק את ה"בגים" של מערכת השעות.
שאלה 4
קובץ חשוב נמחק, אך ברשותך נשאר תדפיס, שמכיל שאלות ותשובות על בסיס הקובץ הזה.
אתה מתבקש לשחזר את מבנה נתוני הקובץ על פי התדפיס הזה. לפניך שאילתה ותשובה. שתזר
את העובדה, אשר על פיה התקבלה התשובה, והצג אותה בצורת עץ.
א. +-מרכיבים(קטעננקודה(א, צ),--), 2).
א=1
צ+=0
2 = משולעננקודה(ו, 2), נקודהן5, 5), נקודה(1, 4)).
מהו לפי הבנתך, מבנה הארגומנט, אשר את מקומו תופס המשתנה האנונימי?
ב. ++-חיבור מקבילי(א, . חיבור- טורי(צ, 2)).
א = חיבור טורי(התנגדותו, התנגדות?).
צ = חיבור מקבילי(התנגדות5, התנגדותא).
2 = התנגדות5.
100
6 אופרטורים ופעולות החשבון
כדי לבצע את פעולות החשבון, נעזארת מערכת הפרולוג בפרדיקטים, המוגדרים מראש והמכונים
פרדיקטי המערכת (ראה סעיף 7.6). פרדיקטים אלו מנצלים את השגרות של מערכת התוכנה
של המחשב, ולכן התנהגותסם לעיתים שונה מן המצופה על פי עקרונות של תכנות לוגי ועל כך
נדבר בהמשך. בסעיף זה נשתמש בפרדיקטים של הגירסה 1.3 280100 [א800זצו (יתכן כי
ישנס הבדליס בין פרדיקטי הגירסה הזאת לבין גירסאות אחרות).
מערכת של פרולוג מכירה את הפעולות האלו:
חיבור +
חיסור -
כפל *
הסימנים +, -, +, הס אטומים ומוגדרים בתור פרדיקטי המערכת. המערכת מכירה גם את סדר
הקדימויות המקובל, ולכן הביטוי: 4 2+5 מתפרש כביטוי מורכב: ((4,5)א,2)+. הביטוי הזה נועד
להציג את הפעולות, וכדי לבצען אנו נעזרים בפרדיקט נוסף: 18. נציג את השאילתה לביצוע
התישוב של הביטוי האריתמטי ונעיין בתשובה:
* 5 + 2 18 א -7
2 = א
השאילתה מתקבלת על ידי המערכת כבעלת המבנה הבא:
.((4 ,5)* ,2)+ ,א)15 -?
הצגת הפרדיקטים א, +, 15 בצורה של אופרטורים, כלומר בצורה בה הם נכתבים בין
הארגומנטים ולא לפניהם, אינה מבשרת שינוי במבנה הנתונים. זוהי הצגה חיצונית בלבד.
המתכנת יכול להגדיר אופרטורים משלו על-מנת לשפר את קריאות התכנית (ראה נספת בי).
כך, למשל, ניתן להגדיר את העובדה כי אברהס הוא אביו של יצחק, בצורה הבאה:
.4 0% עסת86? מ8ת8028
ניתן להגדיר שלושה סוגי אופרטורים:
א פרדיקט של אריטי 2 ניתן להגדיר כאופרטור הנכתב בין הארגומנטים, כדוגמת +, או *.
אופרטור מסוג זה מכונה בלע"ז זס41זסקס אותו.
ב. פרדיקט של אריטי 1 ניתן להגדיר כאופרטור הנכתב לפני הארגומנט, כדוגמת וסח.
אופרטור מסוג זה מכונה בשס זסוגז6קס אג)6זס.
ג פרדיקט של אריטי 1 ניתן להגדיר כאופרטור הנכתב אחרי הארגומנט. אופרטור מסוג זה
נקרא 0067410 או)51סק. לגירסה 1.3 של 0100₪אק אסס15/ אין אופרטורים של
המערכת מסוג זה.
הדרך בה ניתן להגדיר פרדיקט כאופרטור מתוארת בנספח בי.
11
נעבור לפעולת החילוק. בגירסה 1.3 של 801006 1500%1או ישנס שני פרדיקטים הקשורים
לפעולת החילוק הרגילה. אלו הס הפרדיקטים "/" ו-06ח. הביטוי ט/ג3 מסמל את החלק השלם
של תוצאת החילוק של 8 ב-ט. לדוגמה, אם 8-16 וגם 5-5, אז ט/3 מסמל את המספר 3. את
שארית החילוק ניתן לחשב באמצעות הפרדיקט 6סוח. נציג אם כן, את השאילתות ונבחן את
התשובות:
1-8 48 1609..
.5 ₪06 16 18 א -7
נציין כי הגירסה 1.3 של %1א1500/ אינה תומכת בנקודה צפה (ותוסק 8ַחו041ח).
ניתן להשוות בין שני ביטוייס תשבונייס באמצעות הפרדיקטיס הבאים:
=:= "שווה"
== "איננו שווה"
ניתן לבטא את היחסים "גדול", "קטן", "איננו גדול" ו-"איננו קטן" באמצעות הסימנים הרגילים
של האלגברה. בכתיבת הביטוי "איננו קטן/גדול" יש להקפיד שהסימן לא ידמה לחצ, כלומר
יש לכתוב ט)=8 ולא 4=(9. נביא דוגמאות אחדות:
9-4 = 3 * 2 -1
8
.5 =< 1 -?
סת
הסימנים "=" ו-"=" של האלגברה מנוצלים גם הס על ידי מערכת הפרולוג, אבל בהקשר אחחר,
השונה מן המוכר לנו באלגברה. נעיין בשאילתה ובתשובה:
,4 * 2 = א -7
3 * 2 = א
הפרדיקט "=" מאחד את המשתנה < עם הביטוי המורכב 3 * 2. הפרדיקט "=" הוא שלילתו של
תפקידם של פרדיקטי המערכת, העוסקים בהערכה וחישוב של ביטויים חשבוניים הינו לספק
מישק לשגרות המתאימות של המחשב.
בשל השימוש בשגרות המחשב, התנהגות הפרדיקטים, האלה סוטה מן העקרון של תכנות לוגי.
תכנית לוגית, שמגיעה למבוי סתום, אמורה לבצע נסיגה ולחפש דרך אלטרנטיבית לפתרון
הבעיה. לכן תכנית לוגית מסתיימת בהצלחה (אם יש פתרון לבעיה), או בכישלון (אם אין
פתרון), או שאינה מסתיימת כלל (אם היא נקלעת ללולאה אינסופית). בשל כך, "שגיאות זמן
ריצה" אינן קורות בתכנות לוגי. עקרון זה מופר בעת שימוש בשגרות המחשב. נציג דוגמה כדי
להסביר זאת.
נעייך בביטוי; 1 + צ ₪ א, ונתאר אותו בעזרת עץ:
2
15
/%
1 צ
איור 8.17 - עץ של הביטוי 1 + צ' ₪ א
הביטוי הזה בנוי בהתאם לכללי התחביר של פרולוג. על פי ההגדרה של המשתנה הלוגי בתגובה
לשאילתה "1 + ץצ 18 א-?* ניתן היה לצפות לתשובות רבות, האחת מהן למשל: 2 = א, 1 = צ.
נציג את השאילתה ונראה מה תהיה התשובה:
1+ ץצ 18 א -?
ם265510קא6 821526016 ת1 פספעם
שגרת המחשב מחייבת שבמקום צ יוצב מספר. בהעדרו נשלחת הודעה של שגיאת זמן ריצה.
בסעיף 4 של חטיבה רביעית נביא הגדרה של מספר טבעלי ושל פעולות החשבון באמצעות תכנית
לוגית.
לסיום נביא שתי תכניות שידגימו את השימוש באופרטורים אותם למדנו.
התכנית הראשונה מוצאת את הגדול מבין שני מספרים נתונים.
א -: (אהא ,ץ ,א)אהם
.א = א88 ,ץצ =<
א8/ ;ל > א -: (אהא ,ץצ ,א)אגם |
.ץצ =
תכנית 8.3 - מקסימום של שני מספרים
נעיין בשאילתות ובתשובות:
. (א8א ,2 ,1)א8ם -?
2 = אה
. (א8א ,2 ,א%)א8ם -7
ת65510ת2קא6 6%106שת1%ת8 ם1 עסעסם
בהמשך נראה גירסאות נוספות לחישוב המקסימום.
התכנית השניה מחשבת סכוס מספרים טבעיים מ-א עד ]א, כולל את א ואת ]א.
3
. (א ,א ,א)פטפ
. -: (מט5 ,8 ,א)מטפ
,> א
(1,- א 15 1א
(₪1ט5 ,81 ,א)פטפ
.% + 1שט 5 18 שטפ
תכנית 8.4 - חישוב של סכום מספרים טבעיים מ-א עד ]א.
החוק הראשון קובע, שאם ]א=אא, אז הסכום שווה ל-צ]. החוק השני הינו חוק רקורסיבי. הוא
קובע שאם /א)א, יש לחשב את הסכום עד 1-]א ולחבר את התוצאה עם ]א. נעיין בשאילתות
ובתשובות.
. (שטפ ,3 ,2)םטם -?
9 = פופ
. (םטפ ,4 ,א)שטם -?
ת65510ע2קא6 6610מת16ע8 ת1 עספסם
לאלו מן הקוראים, אשר גירסת פרולוג מצויה בהישג ידם, מומלץ להיעזר בפרדיקט 0גזו על
מנת להבין את הפעולה של תכנית 8.4.
()
/
ל
14
פרק ל
רשימה .
בפרק זה נכיר מבנה הקרוי רשימה. נציג את יעדי הלימוד.
בסעיף 9.1 נגדיר את הרשימה וננתח את מבנהו.
בסעיף 9.2 נראה את השימוש ברשימה לצורך בנייה של בסיס נתונים.
בטעיף 9.3 נציג 10 תכניות בנושא עיבוד של רשימות, אשר הקורא יתבקש לנתחן ולהפעילן.
בסעיף 9.4 נציג את התוצאות של הפעלת חלק מהתכניות של הסעיף הקודם.
בסעיף 9.5 נלמד לפרק רשימה לתת-רשימות. נציג 9 אפשרויות לפירוק הרשימה ונבקש מן
הקורא להפעילן ולהשוותן.
בסעיף 9.6 נעצב יחד עס הקורא תכניות לוגיות. נתאר את הבעיה ואת אסטרטגיית הפתרון
ונתרגם את התאור הזה לפרולוג. נתחיל מן התכנית "מיון טבעי", בה נתאר את צעדי הפתרון
בצורה כללית. נמשיך בתכניות, אשר בהן תאור של צעדי הפתרון יעשה ביתר פירוט.
בסעיף 9.7 נפעיל ונשווה את תכניות המיון של הסעיף הקודם.
1 הגדרה של רשימה
לפנינו בסיס נתונים:
לומד(דני, פרולוג).
לומד(דני, ספרות).
לומד(דני, אנגלית).
לומד(יוסי, מוסיקה).
לומד(יוסי, ספרות).
שלוש העובדות הראשונות דנות במקצועות אותם לומד דני, ושתי העובדות הנוספות דנות
במקצועות של יוסי. נארגן את הנתוניס באמצעות שתי עובדות אלו:
לומד(דני, פרולוג, ספרות, אנגלית).
לומד(יוסי, מוסיקה, ספרות).
65
הארגון הזה איננו יעיל, שהרי דני מתואר באמצעות היחט לומד / 4 ויוסי - באמצעות היחס
לומד / 5. על כן, מבנה השאילתה שמתייחסת אל דני שונה מזו המתייחסת ליוסי.
?- לומד(א, צ, 2).
א = יוסי
מוסיקה
ספרות
לא (כלומר, אין תשובות נוספות).
ווה|
>ר תת
?- לומד(א, צ, 2, א).
דני
פרולוג
ספרות
אנגלית
לא (כלומר, אין תשובות נוספות).
א
ץ
2
₪
שפת הפרולוג מאפשרת להציג את המקצועות של דני או של יוסי כעצם אחד:
לומד(דני, [פרולוג, ספרות, אנגלית]).
,
לומד(יוסי, [מוסיקה, ספרות]).
סדרה של איברים (המופרדים זה מזה בסימן פסיק), שמוקפת בסוגריים מרובעים, קרויה
רשימה (ן8ו!). את הרשימה על כל איבריה, ניתן לראות כיישות עצמאית, ועל כן ניתן להתייחס
אל דני ואל יוסי באמצעות שאילתה אחת. נעיין בשאילתה ובתשובות:
?- לומד(א, ץ).
א
צִ
דני
[פרולוג, ספרות, אנגלית];
א
צ
יוסי
[מוסיקה,ספרות].
ברוב הגירסאות של פרולוג אין מגבלות על המבנה התחבירי של איברי הרשימה, לדוגמה:
לומד(רמי, [סמסטר(1), מתמטיקה(אלגברה), [אנגלית, התעמלות]].
לומד([רמי, [סמסטר(2), מחשבים([פרולוג, מבנה נתונים])]).
16
מבין שלושת האיבריס של הרשימה הראשונה, האיבר השלישי הוא רשימה: [אנגלית, התעמלות].
מבין שני האיבריסם של הרשימה השניה, האיבר השני הוא ביטוי מורכב, אשר הארגומנט שלו
הוא רשימה:
מחשביםנןפרולוג, מבנה. נתונים]).
מכאן אנו לומדים, כי רשימה היא גוף עצמאי כמו חברה בע"מ. את מדרג החברה אפשר לתאר
באופן רקורסיבי: בראש החברה עומד הנשיא, ופיקודיו הס חברה בזכות עצמה. הראשון בין
פיקודיו הוא סגן-הנשיא, הבאים אחריו במדרג החברה הס חברה בפני עצמה, וכן הלאה.
לרשימה יש מבנה דומה לזה של החברה שתיארנו לעיל - מבנה רקורסיבי. האיבר הראשון של
הרשימה מכונה ראש (686ה). שאר איבריה מכונים זנב ([181) והס מהוויס רשימה בזכות עצמה.
את המבנה הרקורסיבי של הרשימה תיארנו באמצעות איור 9.1.
בפרולוג העברי:
| רשימה
| [פרולוג,ספרות,אנגלית] | [ספרות,אנגלית]
| [[א], [ב,ג], הכל] | [[ב,ג], הכל]
| [סמסטר(2),[ציור,פיסול]] סמסטר(2) | [[ציור,פיסול]]
| [יום(שני), מהירות(5)] יום(שני) | [מהירות(5)]
בפרולוג האנגלי:
1% 1
[1,2,3]
[811, [1[,]2,3]]
,10₪ספק], (56₪65665)2]
[2.3] | | |
| |
| [[ת8115ת6 |
ן |
[2,3[,811,] |
[[ת₪115ח6, שס1סמפ]] - ו
, (1980, עָם, 1 ) צ08 ]
[(866)5ק5
[(666)5ק5] | ,עַ1,₪8)צ68
| (1980
איור 9.1 - המבנה הרקורסיבי של הרשימה: הראש הינו איבר
והזנב הינו רשימה
בדומה לחברה אשר יכולה לפטר את כל חבריה, כולל הנשיא, ועדיין להיות רשומה אצל רשם
החברות כגוף עצמאי - כך קיימת גם רשימה ללא איברים. הרשימה אשר אין בה איברים
נקראת רשימה ריקה (1181 עץ1סות6) ומסומנת כך;]. מבחינה תחבירית, הרשימה הריקה [] היא
אטום של פרולוג.
הרשימה של הפרולוג העברי בת איבר אחד, כדוגמת הרשימה [יוסי], היא ביטוי מורכב בעל
פנקטור ושני ארגומנטים. הארגומנט הראשון הוא האיבר יוסי, והארגומנט השני הוא הרשימה
7
הריקה. האיבר יוסי הוא הראש של הרשימה (יוסי], והאטום [] הוא הזנב של [יוסי]. הרשימה של
הפרולוג העברי, אשר ראשה יוסי וזנבה אינו ידוע, מסומנת כך: [יוסי[ד]. המשתנה 1 מסמן את
הזנב הבלתי ידוע. את הרשימה של הפרולוג העברי, אשר גם ראשה וגם זנבה אינם ידועים,
ניתן לסמן בשני דרכים. ניתן לסמנה באמצעות משתנה, כפי שעשינו זאת בשאילתה
?-לומד(א, צ). ניתן גם לסמנה באמצעות שני משתנים: [1|4]. המשתנה 1 מסמן את ראש
הרשימה, והמשתנה 1 מסמן את זנבה. נדגיש כי המעמד של 11 שונה מזה של 1: המשתנה 11
מסמל איבר ברשימה, והמשתנה 1 מסמל רשימה.
לעתים אנו ניעזר גם בסימון [ ראשן. זנב]. שפת הפרולוג מסווגת רשימה כלשהי [ ראש| זנבן
כמבנה מורכב בעל שני ארגומנטים: = ראש, - .זנב. את הפנקטור של המבנה הזה מסמנים ברוב
הגירסאות של פרולוג באמצעות הנקודה "" (601). להלן דוגמאות:
רשימה כמבנה מורכב רשימה באמצעות הסוגריים
.( ראש, זנב) [ ראש, זנב]
.(יוסי, []) [יוסי]
.(יוסי, 1) [יוסי|1]
.(יוסי, .(דני, [])) [ידסי, דנ"]
.(יוסי, .(דני, 1)) [יוסי, דני|1]
.(יוסי, .(דני, ,(דעי, []))) [יוסי, דני, רמי]
גם בפרולוג האנגלי קיימת רשימה ריקה, שגם היא אטום של פרולוג. רשימה של הפרולוג
האנגלי אשר ראשה 4 וזנבה 1, מסומנת כך: [14|1]. שפת הפרולוג מסווגת את [ד]1!] כמבנה
מורכב בעל שני ארגומנטים: 8 ו-1. את הפנקטור של המבנה הזה מסמנים באמצעות "." (001).
להלן דוגמאות:
רשימה כמבנה מורכב רשימה באמצעות הסוגריים
(1,א). [ד|א]
([],8). [8]
(8,1). [דצ|8]
(([],8,.)5). [פ,8]
((1,ס).,8). [ד'|ס,8]
((([],6).,ם).,8). [8,5,6]
מערכת הפרולוג רואה את הרשימה כמבנה מורכב בעל פנקטור ושני ארגומנטים. למרות זאת,
מעדיפים כותבי התכניות לייצג את הרשימה באמצעות הסוגריים המרובעים, למען הקריאות
והבהירות (השווה נא את [8,0,6] ואת ייצוגה כמבנה מורכב).
כמו כל מבנה מורכב, ניתן לייצג את הרשימה באמצעות העץצ. ייצוג זה הובא באיור 9.2.
1.08
0 ו רו 0
| רשימה כמבנה מורכב | רשימה באמצעות הסוגריים |
| . | |
| / | [ד|₪] |
| 1 כ גא | |
4-7
| . | |
| % / | [8] |
| [] 8 | |
₪
| . | |
| / | [ד|8] |
| 8-7 | |
|
| . | |
| / | |
| > א | [פ,8] |
| / | |
| [] ס | |
ה---7-7----+---------------
| . | |
| / | |
| , 8 | [ד|פ,8] |
| / | |
| 1 ס 3 |
1777777774 ןהה[
ן : | |
| / | י |
| . 8 | [8,5,6] |
| / | |
| .םס | |
| / ן |
| [] 6 | |
איור 9.2 - ייצוג של הרשימה בצורת עצ
למדנו אם-כן, כי הרשימה היא מבנה רקורסיבי. ביטוי מורכב בעל שני ארגומנטים הוא רשימה,
אם הארגומנט השני שלו הוא רשימה. ואיך נדע אס הארגומנט השני הוא רשימה! - על פ5י
המבנה הרקורסיבי. כלומר, הארגומנט השני הוא ביטוי מורכב בעל שני ארגומנטים, שהשני בו
הוא רשימה, וחוזר חלילה, עד שנגיע לאטום [], אשר הינו רשימה ריקה, משמע - רשימה.
התכנית הבאה מגדירה את הרשימה באמצעות רקורסיה. החוק הראשון קובע, כי האטוס []
הוא רשימה. התוק השני קובע, כי מבנה מורכב בעל שני ארגומנטים הוא רשימה, אם הארגומנט
השני הוא רשימת:
19
רשימה([]). . ([])1185
רשימה( [1]3]):- רשימה(1). .(1186)1 -:([1186)]4|1
תכנית 9.1 -- הגדרת רשימה (גירסאות אנגלית ועברית)
תרגיל 9.1
לפניך שלוש רשימות של הפרולוג האנגלי:
1 ננ]]
402 [ננז, ]]
3. [[א|פ,8], [ד|8]]
תאר אותן בשני אופנים:
א. כביטוי מורכב.
ב באמצעות ע.
2 בניית בסיסי נתוניסם עס רשימות
אחרי שהכרנו את הרשימה כגוף אחיד, אנו מעוניינים להכיר את כל אחד מאיבריה. התכנית
הבאה מגדירה את איברי הרשימה. החוק הראשון קובע כי האיבר שייך לרשימה אם הוא עומד
בראשה. החוק השני הוא חוק רקורסיבי: האיבר שייך לרשימה אם הוא שייך לזנבה.
חבר רשימה(א, [א|2]). . ([|א] ,א)6ספסם
חבר רשימה(א, [צ|2]):- -: ([ץ | צ] , %)₪00סם
חבר רשימה(א, 7). . (7 , א)עססמסם
תכנית 9.2 - חבר. ברשימה (בגירסה אנגלית ועברית)
נתבונן בשאילתה:
. ([8,5,6],%)6₪062ם -?
על פי החוק הראשון נקבל את התשובה הבאה:
:8 = %
אחרי שמקישים "", פרולוג פונה אל החוק השני, הקובע כי א הוא חבר ברשימה המקורית אם
הוא חבר ברשימה [5.6]. כאן מפעיל פרולוג את החוק הראשון ועל פיו קובע כי:
וע = א
וחוזר חלילה: הקשת ";", פניה אל החוק השני אשר על פיו יש לברר אם א שייך לרשימה (6
ד
חזרה אל החוק הראשון והתשובה: 6 = א. את תהליך החיפוש אחר התשובה לשאילתה הנ"ל
נתאר באמצעות איור 9.3:
70
([8,5,6] ,א)עססמסם
ש
([[6]|ס] ,א)062מ6ם
ס=א
([[6,ם] |8] ,א)ע6סמסם
8
([5,6] ,א)ע6סמסם
([6] ,%)6₪062ם
([[]|6] ,א)060מ6ם
6
. ([] ,א)מססמסם
איור 9.3 -- חישוב של השאילתה (8.9.6] .א)זטטוחטוח -?
תרגיל 9.2
לפניך השאילתה והתשובות שהתקבלו:
. (8 ,8)ת0₪06ש -?
= א
:[| ,צ] = א
[צ| ,2צ ,גץ] = א
תן הסבר לתשובות אלה.
את השימוש ברשימות לצורך בניית בסיסי נתונים נדגים באמצעות תכנית 9.3.
לומד(רמי, [אלגברה, ספרות, מוסיקה]).
לומד(נימרוד, [פרולוג, ספרות]).
לומד(סיגל, [פרולוג, מוסיקה, אלגברה]).
לומד(אביאור, [פרולוג, ביולוגיה, אלגברה, ספרות]).
סופר(א):- לומד(א, ), חבר ברשימה(ספרות, ם).
איש מחשבים(א%):- לומד(א, ם), חבר ברשימה(פרולוג, 2),
תבר ברשימה(אלגברה, ע).
חבר ברשימה(א, [א|1]).
תבר ברשימה(א, רצוע )= חבר ברשימה(א, 1).
תכנית 9.3 - רשימת המקצועות
נשווה בין תכנית "תלמידים" שבפרק 7 לבין תכנית 9.3. בשתיהן מופיע הפנקטור לומד / 2, אלא
שהארגומנט השני של לומד / 2 בתכנית 9.3 הוא רשימה, וזה מחייב שינוי בהגדרות של סופר
ושל איש מחשבים. הגדרת סופר של תכנית 9.3 קובעת כי א הוא סופר, אם א לומד את רשימת
המקצועות .1 וספרות שייכת לרשימה הזאת.
התכנית 9.4 היא דוגמה נוספת של שימוש ברשימה לשם בנייה של בסיס נתונים (השווה נא
בינה לבין דוגמה 8.4 בפרק הקודס).
ול
משפחה(אב( ישראלי, ישראל), אם(ישראלי, ישראלה),
ילדים([דני,יוסי,רמי])).
משפחה(אב(צבר, יורם), אם(צבר, רינה), ילדים([]).
ילדים( המשפחה, רשימת הילדים):-
משפחה(אב( המשפחה, ), -, ילדים( רשימת הילדים)).
ילד( עם הילד, עם המשפחה):- ילדים( שם המשפחה, רשימת הילדים),
חבר ברשימה( עם הילד, רשימת הילדים).
/* את הגדרת היחס חבר ברשימה/2 ראה בתכנית 9.2 */
תכנית 9.4 - ילדי משפחה
להלן שאילתות ותשובות לדוגמה:
?- משפחה(א, צ, 2).
א = אב(ישראלי, ישראל)
צ' = אם(ישראלי, ישראלה)
2ַ = ילדים([דני, יוסי, רמי]);
א = אב(צבר, יורם)
צ = אם(צבר, רינה)
2 = ילדים([] )
?- ילדים(א, ).
א = ישראלי
צ+> [דני, יוסי, רמי];
א = צבר
3 ןת
נציין, כי ברוב הגירסאות של פרולוג היחס חבר ברשימה הוגדר כפרדיקט המערכת בשל
השימוש הרב שעושים בו.
תרגיל 9.3
מצא על פי תכנית 9.4 את התשובות של פרולוג לשאילתה:
?- ילד( עם פרטי, שם משפחה).
נסיים בתכנית תרגום נוסת תכנית עְזגּחסנו16כע שבפרק 5.
כ
. (11%6 16טסת5 1 ,00181028) פת68ם
. (6ת5 ,5)6118ת68ם
. (₪56 00 ,ע058) פ5ת68ם
. (צטם 60 ,ע00028ס)5ת68ם
. (5068%8 , 188פַָת) 5ת68ם
. (86ת 5 , 8006118) פתהסם
. (ת18ת508 , 01ת6508)פת68ם
. (ע81ת6 ,5)51118פת68ם
. ([] ,[])81866ת%28
.(8 ,51866)1ת528 ,(צ ,א)5פת₪08 -:([םה|צ] ,[ך1|א<])1866פת8עס
תכנית 9.5 - תרגום
נעיין בשאילתות ובתשובות:
. (8. ,[01ת8ק65 ,18סהת ,1806)]6118פת628 -?
[מפנת8ק5 ,68%5ק5 ,6ת5] = א
.([ע81ת0 ,528% ,₪80 סס ,11%6 18טסת5 1] ,א)1806פת8ע6 -?
[51118 ,8 ,תפ ,00181028] = א
3 עיבוד של רשימות - תרגול
בסעיף זה נציג מספר תכניות המשמשות לעיבוד רשימות. חלק של היחסים שמוגדריס בתכניות,
הוגדרו באמצעות סוג רקורסיה, שמכונה בלע"ז תסוצזט6ז 160-51606. זוהי רקורסיה, אשר בה
היחס המוגדר חוזר רקורסיבית בגוף החוק מיד אחרי הקשר הלוגי =1. רקורסיה מסוג זה
רגישה מאוד לארגון פסוקי התכנית - השווה למשל, את היחסים 0ח6קקג ו-61ת6קק3 בתרגיל
43א). לנושא ארגון הפסוקיס והשפעתו על תהליך קבלת תשובה לשאילתה נחזור בפרק 10,
במסגרת דיון במודל חישובי של תכנית לוגית.
מטרת סעיף זה היא להקנות מיומנות בעבודה עס רשימות. המטרה הנוספת היא ללמוד להפעיל
תכנית אשר כבר נכתבה. בסעיף הבא נעשה צעד נוסף קדימה: נלמד לכתוב תכניות.
את אוסף החוקיס והעובדות, בעלי ראש זהה, נכנה בשם פרוצדורה (סזט60ססזס).
מומלץ בעת ההרצה של הפרוצדורות שלהלן להיעזר ב-186. חלק של היחסים, שמופיעים
בפרוצדורות, הוגדרו כפרדיקטי המערכת בגירסאות שונות של פרולוג.
בסעיף הבא נביא פתרונות של חלק מהתרגילים, אשר הוצגו להלן.
3
3 א) פרוצדורה 6תסקקב3
ניתן לשרשר (416ח6416ח60 ,6ח6קק8) שתי רשימות. הרשימה [א,ב,ג] היא שרשור הרשימות [א]
ו-[ב,ג]. היא גם שרשור של הרשימות [] ו-[א,ב,ג]. נדגיס זאת באמצעות התכנית הבאה:
/* שרשור(31.,2,,1):- הרשימה 3 היא */
/* שרשור של הרשימות 1 ו-20 */
שרשור([], 2, 2). . (2 ,1 ,[])6תססקה
שרשור ( [א].11], .2₪, [א|32]):- -: ([13|א] ,1.2 , [1.1] א] ) 6תסקקם
שרשור(1, 22, 30). . (13 ,22 ,6)11תססקה
פרוצדורה 9.3(א) - שרשור רשימות (גירסה עברית ואנגלית)
בגלל חשיבותו של היחס 6ח6קקג, הוא מוגדר בגירסאות פרולוג רבות כפרדיקט המערכת.
תרגיל 9.3(א)
א בדוק מהן התשובות של פרולוג לשאילתות האלה:
. (א, [6,ם] , [8)]8מססקה8 -?
. ([8,5,6],א,[6)]8תססקה -?
. ([5,6[,]8,5,6],א)60םססקה -?
(הפתרון באיור 9.4) . ([8,5,6],צ,א<)6תסקקה -?
(הפתרון באיור 9.5) . (צ,[8,5],א)8מסקסה -?
. (צ,א, [6)]8,0מססקה8 -?
. (2, צ, א)תסקקה8 -?
ב. נגדיר את פרוצדורה !6ח6קקג כך:
-:([13|א] ,12 ,[11|א<]) 61מסססה
. (13 ,12 ,11) 61מ6קסה
.(2 ,1 ,[])61ת6סקה
נסח את השאילתות שלעיל כלפי 61ַחסקקג, ובדוק מה הן התשובות.
3) פרוצדורה ]56160
בהמשך נציג רק את הגירסאות האנגליות של הפרוצדורות. הקורא המעוניין יגדיר בנקל
פרוצדורות אלו גם בפרולוג העברי.
4
התכנית הבאה מוחקת מן הרשימה את הופעתו הראשונה של האיבר. היא מורכבת משני
חוקים. החוק הראשון קובע כי אס האיבר נמצא בראש הרשימה, אז תוצאת מחיקתו היא הזנב.
של הרשימה. החוק השני הוא חוק רקורסיבי: כדי למחוק איבר הנמצא בזנבה של הרשימה, יש
למחוק אותו מזנבה.
/* 68016ע 6ת% 18 8001186 -:(6₪1156א ,1156 ,א)561605 | */
/ % ת1 א 08 06ת6ע00002 6תס ש6ת4616%1 0% */
. (1811 ,[7811]א] ,א)561665
.(7 ,71811 ,)561606 -: ([ד| צ] ,[17811] צ] ,א)561605
פרוצדורה 3.פ9(ב) - מחיקה של הופעת איבר
נעיין בשאילתות ובתשובות הבאות:
. (צ,[1,2,3],א)5801605 -?
1.
%
1] = ץ
2 = %
1] = ץ
3 א
[1,2] = צ
. (01,156א, [80100%5)8,]8,5,8,8 -?
[5,8,8] = 115%6ש6א
;[8,0,8] = 115%ש6א
;[8,0,8] = 1156ש6א
( 850628 6עסם)סםת
תרגיל 9.3(ב)
בדוק מהן התשובות לשאילתות האלה:
.([1,2,3] ,118% ,861005)3 -?
(הפתרון באיור 9.6) . ([8,5,6] ,215% ,א%)86160%6 -?
. (601,186/ ,1186 ,א)501606 -?
175
3) פרוצדורה ]135
התכנית הבאה מאתרת את האיבר האחרון של הרשימה:
/* 1 1156 ע6קמ6 מסת 8 +04 02סשפם 18586 6ת6 18 א -:(2,א)1855 */
. ([א] ,א)1855
.(1811 ,א)185%5 -:([3686|1811] ,א)185%5
פרוצדורה 9.3(ג) -- בחירת האיבר האחרון
ניתן לבחור את האיבר האחרון בעזרת 6/3ח6ססג:
.(2 ,[א] , )6מפסק8 -:(2 ,א)18501
תרגיל 9.3(ג)
בדוק מהן התשובות לשאילתות האלה:
(הפתרון באיור 9.7) .([1,2,3] ,א)1886 -?
.(1186 ,185%)8 -?
(הפתרון באיור 9.8) . (118% ,%)18986 -?
(הפתרון באיור 9.9) .([1,2,3] ,א)185%1 -?
. (1150 ,185%1)8 -?
.(11850 ,א)185%1 -?
הערה: בנושא פרוצדורה |8!, ראה איור 10.11 בפרק 10
3) פרוצדורה 516ש00
התכנית הבאה מעתיקה פעמיים כל אחד מאיברי הרשימה:
/* 0% %8ת610₪0 6ם6 0% ת680 -:([1שסא|א ,א] ,[ך|א])16סטס40 */
/* 06₪015%א/ ת1 6000106 15 1156 ע6קשסתסת 8 */
. (6₪1א ,16)7פט60 -:([1שסא|א ,א] ,[7|א])16פטס4
. ([א ,א] ,[א<])16סט60
פרוצדורה 9.3(ד) - הכפלת איברי הרשימה
76
תרגיל 9.3(ד)
בדוק מהן התשובות לשאילתות האלה:
. (8 ,[16)]8,5,6סט40-?
(הפתרון באיור 9.10) . ([8,8,0,0,6,6] ,א)000016-?
. ([8,8,0,6,6] ,א)600016-?
הערה: בנושא פרוצדורה 516ט40 ראה איור 10.10 בפרק 10.
3ה) פרוצדורה א:6)1זם
נעיין במילה 1גזגזג. האותיות 8, זג, זג וכן הלאה, הן קידומות (6או6זק) של 9141ז8.
התכנית הבאה מגדירה את הקידומת של הרשימה.
/* 118% 0% א6+1תק 8 18 6עק 115% 6תס -:(12186 ,6עת)א1+סעם | */
.(11860 ,[])א1+?6עק
. (1811 ,6עק)א1+?6עק - : ([1811 | א] , [6עת | א] ) א1+ספק
פרוצדורה 9.3(ה) - קידומת של הרשימה
תרגיל 9.3(ה)
מצא את התשובות של פרולוג לשאילתות האלה:
. ([8,5,6] ,[8,5])א6?1פק -?
. ([8,5,6] ,א)א6?1עק -?
(הפתרון באיור 9.11) . (1189 ,[8,5])א6]1תק -?
(הפתרון באיור 9.12) .(12150 ,%)א1]ס6עק -?
3) פרוצדורה א8ט5
נתבונן במילה זגּזגּזג. האותיות 1, וג, 191 וכן הלאה, הן סיומות (65א11/ט5) של 141גזג. התכנית
הבאה מגדירה את סיומת הרשימה.
/* 118% 0% א1+1טם 8 18 50% 115% 6םס -:(115%6 ,+ט5)א1?)ט8 | */
. (1186 ,215%)א50+21
. (1811 ,%ט5)א1?+ט5 -:([1811|א] ,/ט5)א111ט5
פרוצדורה 9.3(ו) -- סיומת של הרשימה
17
תרגיל 1(9.3)
מצא את התשובות לשאילתות האלה:
. ([8,5,6] ,[6,ס])א9?1ט8 -?
(הפתרון באיור 9.13) . ([8,5,6] ,%)א1/?ט5 -?
(הפתרון באיור 9.14) . (1156 ,[8,0])א1/?ש5 -?
.(1156 ,%)א1??ש5 -?
3) פרוצדורה ח0ו)ג)טוחז6ק
התכנית הבאה מגדירה את התמורות של הרשימה.
+ תת 1156 6ת% -:(6ט₪ע6ק ,115%6)ת8610טםע6ק */
/* 1856 0% תס1סה8סטמעסק 8 18 9
. ([] ,[])ם68610טמלסק
-: ([%ט₪ת6ק | א] , 1.156) ת8610)טשעסק
,(3680 ,218% ,א)561606
. (262₪06 ,265%)ת68610טמעסק
/* את הפרוצדורה 58186% הגדרנו ב-9.3(ב) 2
פרוצדורה 9.3(ז) - תמורה של הרשימה
תרגיל 9.3(ז):
מצא את התשובות לשאילתות האלה:
.(פ ,[8,0,6,6])ת%8010טשע6ס -?
(הפתרון באיור 9.15) . ([8,5,6,6] ,א)ת68610>טמפסק -?
568
3) פרוצדורה 5006066
בהינתן מספר טבעי א, הפרוצדורה 66ח6ט560 יוצרת את רשימת המספרים מ-1 עד צן.
/* 6 11856 66 -:(66ת50006 ,א)06ת 50000 */
/< א סס 1 מסע+ פעססמטת +0ס 1156 8 18 "/
. ([1] ,66)1ת500₪6
-: (06מ56006 ,)5000606
, 1<א
,1 185 1א
, (51 ,1א)66מ50016
: (06ת56486 ,[א] ,6)51ת6סקה
/* את הפרוצדורה 6תס6סק8 הגדרנו ב-9.3(א) 4%
פרוצדורה 9.3(ח) - רשימת המספרים מ-1 עד א
תרגיל 9.3(ח)
א מצא את התשובה לשאילתה הבאה:
( הפתרון הינו חלק מאיורים ) . (56006006 ,06)5ת80006 -7
( 22, 23 של חטיבה רביעית. )
ב. בדוק האס תשתנה התשובה, אם נחליף בהגדרת 66ח6ט560 את הפרוצדורה 6ַח6קק3
בפרוצדורה 61חס6קסג8.
43) פרוצדורה ח66ו)6
---7-7---ר------------
התכנית הבאה מגדירה את רשימת המספרים הטבעיים, הנמצאים בין המספרים צ ו-א, לפי
סדר עולה.
/* 00% 066מ860₪6 6ם6 18 2156 -:(1156,א8,א)םססשססס */
/* 8 6ת8 א ם66ש66כ -פעססמטת 4
. ([א] ,א ,א)ם60060ס
-: ([7811|א] ,א ,א)ת60060ס
, אא
(1+א 15 1א
. (7811 ,א ,1א)ם60ש66ס
פרוצדורה 9.3(ט) - סדרת המספרים בין א ו-וא
19
תרגיל 0(9.3)
התבונן בפרוצדורה ת66א6%ס והגדר את הפרוצדורה 06ת56006 מבלי להשתמש
ב-0ח6כק4.
4 עיבוד של רשימות - פתרונות
להלן פתרונות של חלק מתרגילי סעיף 9.3. נציין כי 6ח6קק3 הינו פרדיקט המערכת של
ווו. המערכת אינה מאפשרת למשתמש להגדיר את פרדיקטי המערכת, ולכן
החלטנו "לרמות" אותה. היחס 6ח6קק38 מוגדר באופן זהה ל-6ח6סק3 של 9.3(א). מבתינת
המערכת, הפרדיקטים 6חסקק3 ו-6ח6כק48 הינם שונים. מבחינה סמנטית הס שקולים.
(המשך)
[פ,ה8] = א
; [6] = צ
.([6)]8,5[,]6[,]8,5,6ח0ק7ק83 :660צ [0]
-([6,פ],[6],[פ])ַחסקִקַ83 :660ץ [1]
-([0)][,]6[,]6ת70ק7ק88 :660+ [2]
. ([],12360, 6)11359ח6קק33 :5 [3]
.([],[],[])ַתסקְק83 :6%16 [3]
-([0)]0[,][,]6ה6ק7ק88 :₪418 [2]
- ([5,6], [],[5,6] )6ת6קק33 4% [1]
-([8,5,6[,][,]8,5,6] )4ה6קקב :21 [0]
:2 <₪<; 1 .
[3,5,6] = א
[] = צ
.([3,5,6],+,א)8ַחכְק83 -7 | :8ַה801:%
7,, 800א)6ַחסקקבּ3 :6311 [0]
7 ,,ב],[ ] )4ַהסקקב83 :16א5 [0]
.0 1[ ה1 ...
[]= א
; [0,6,ג] = צ
27,',' (8,5,6],[])ַַתסקְקה8 :660ז [0]
7, ,4)1118ַחסקְקבּה3 :6411 [1]
.([6[,]5,6,פ],[])ַַתסקְקהּה3 :618 [1]
.([0)]3[,]5,6[,]8,5,6ַחסקְקהה :18א6 [0]
.060ז 2 ח1 .
[8] = א
; [5,6] = צ
.([4)]3[,]5,6[,]3,5,0ַחסקְקב3 :660: [0]
.([6)][,]5,6[,]5,6ַתסקקבּה :640: [1]
.([0)1278,12279,]6ַתסקְקג3 :6811 [2]
.([6)][,]6[,]6ַתפקקבּ8 :16א6 [2]
.([6[,]5,6],[פ])שתפקקבּה8 :16א5 [1]
.([4)]3,5[,]6[,]3,5,6ַחסקְקבּ3 :6815 [0]
.0000 3 ח1 .
הרשימה [9,6,ג] משורשרת מרשימות % ו-צ, אשר אינן ידועות.
הוצגו כל ארבע התשובות האפשריות.
איור 9.4 - (8,9,6] צ ,%)0ח38006
100
. (צ,[ל,3],א)0ַחקְקב8 -7 | :8ַת801ז:
7, [3,5], 80א)4ַתסקקבּב3 :6311 [0]
7, ([5,],[] )אַתסְקבּ3 :15א6 [0]
.00100 [ ת1 ...
[]=א
:; [5,ג] = ץצ
?7 ([3,5],[])ַחסקקבּ3 :660: [0]
. (13185, [11182,]3,5)ַחסקקבּ3 :6811 [1]
.([8,5[,]8,5],[])ַתסקקבּב3 :16א6 [1]
. ([פ,181,8א],[181[,]8,5א])4ַחסקקבּ3 :16א6 [0]
.0010 2 ח1 .
[181א] = א
; [181,8,5א] = ץצ
. ([181,8,5א<],[5,ה],[6)]2181ַתסקקה8 :660: [0]
. ([פ,8],[פ,ג],[])ַתסקְקבּ8 :660ז [1]
. (13266, [0)11263,]8,5ַת6קק33 :6811 [2]
. ([ס,8,5[,]3],[])ַתסקְקבּב3 :16א6 [2]
. ([262,8,9א<],[3,5], [262א])0ַחספְקבּב3 :16א6 [1]
.([262,8,9א,181א<],[262[,]3,5א,181א])בַתסקקבּה :18א6 [0]
.600010? 3 תה1 .
[181,8262א] = א
[262,8,0א,181א] = צ
הרשימה צ משורשרת מרשימות א ו-[8,0].
הוצגו שלוש תשובות; ניתן לקבל תשובות נוספות.
איור 9.5 - (צ ,[8,0] , %)0ח06ק340
11
.([561605)2,1155,]8,5,6 -7 | :קת801ע6
77, 80א)561805 :₪311 [0]
272 (,,182,8א],182א)5610605 :16א6 [0]
.5ת6600510: 1 ת1 ...
12 = א
; [182,8,0,6א<] = 1156
7-7 [56100%)%182,]%182,3,5,6 :5660 [0]
72,, 2 :₪411 [1]
7 [268,5,6א] 561666)%268 :18א5 [1]
7, 0 ,268א,5616066)%268,]8 :616 [0]
.0 2 ת1 ...
8 = א
; [268,5,6א,3] = 115%
22,, 8], 8616066)%268 :660: [0]
17 ץ))),, ,268א5618606)8 :2660 [1]
27,, 89268א)561605 :6811 [2]
2 ,354א)5061805 :15א6 [2]
27 ] ,354א)5610605 :15א6 [1]
2 5:: :ם81א₪ [0]
.0 3 מ1 ...
468 = א
; [8,2,%354,6] = 12156
7 354,0א,561605)0354,]8,0 :660: [0]
7,,ָ ],354א)561005 :5660 [1]
:660ץ [2]
27, ,1 :6811 [3]
7 :816א₪ [3]
777 :816א6 [2]
27, 56160%)%440,]5,0 :₪%16 [1]
7 (4400א,56180%)2440,]8,5,0 :6%16 [0]
.0 ₪ ת1 ...
0 = א
[8,5,6,%4080] = 456
הרשימה 8.0,6] הינה התוצאה של בחירת % מרשימה בלתי ידועה 1.181.
הוצגו כל ארבע התשובות האפשריות.
איור 9.6 - (8,0,6] ,1.151 , %)561601
.([1,2,3] ,א)1865 -7 | :ַקַת861ע6
22 :6811 [0]
.([186,]2,3א)185%5 :6811 [1]
.([265,]3א)185% :6811 [2]
.([1855)3,]3 :16א6 [2]
.([1855)3,]2,3 :16א6 [1]
.([185%5)3,]1,2,3 :16א6 [0]
.0610: 3 ת1 .
3=א
האיבר % הינו האחרון ברשימה [1,2,3]. התשובה: 3=<.
איור 9.7 - ([1,2,3] ,%)1851
12
.(11856,א)185%6 -7 | :קַת801:
27, 80א)1355 :6811 [0]
217 :6816 [0]
.10 1 ת1 ...
5 >= א
; [175א] = 2156
17 ::860ץ [0]
9,727 :6411 [1]
217 :816 [1]
7, 1646177], 185%5)%259 :16א6% [0]
.0 2 ת1 ...
9 = א
[259א, 16864177] = 1156
האיבר < הינו האחרון ברשימה 115%, אשר אינה ידועה, וזאת גם המשמעות התשובות
שהתקבלו.
איור 9.8 - (1.181 ,%)1851
.([1,2,3] ,א)185%1 -7 | :קַת1סבז:
227 1 :6811 [0]
.([186[,]1,2,3א],188 )ַחתסקקְבּ3 :6811 [1]
.([2,3], [0)11268,]2186ַחסקקבּג3 :6411 [2]
.([186[,]3א],11349)ַַתסקקב3 :6311 [3]
.([4)][,]3[,]3מסקקבּב3 :15א6 [3]
.([2[,]3[,]2,3])ַתסקְקב8 :16א6 [2]
.([0)]1,2[,]3[,]1,2,3ַתסקקב3 :18א6 [1]
.([185%1)3,]1,2,3 :16א6 [0]
.0010 4 ת1 ...
3=א
האיבר < הינו האחרון ברשימה [1,2,3]. החישוב נעשה באמצעות 6ח6קקג.
איור 9.9 - ([1,2,3] .%)19511
.([8,8,5,2,6,6],א)40₪216 -7 | :8ת8061ץ6
7, ה],80א)400216 :6811 [0]
27 401)86 :6411 [1]
7 :6411 [2]
27 :6811 [3]
72 :1411 [3]
72)))ָ )9 :68165 [2]
7 [5,6] )400516 :16א6 [1]
77 [6,ם, ב] )40₪516 :818א6 [0]
.000 3 ת1 ...
[5,6,ה] = %
הרשימה [3,8,9,0,6,6] הינה הרשימה א המוכפלת.
איור 9.10 - (8,4,0,0,0,0] , %)6|סט40
13
.(%,[8,5])א6+1מק -7 | :קת861ץ5
7, [3,0])א6+1צק :₪311 [0]
7, ([5])א6+1צק :6811 [1]
7, ([])א6+1:ק :₪811 [2]
1, [])א6+1צק :16א6 [2]
,)0 );א6+1זק :81₪א6 [1]
2), ).אמק :6%16 [0]
.010 3 ת1 ...
; [4,5|1215%347] = א
7;, (ְ,4])א6+1זק :5660 [0]
7 (])א6+1זק :5660 [1]
77, [])א6+1צק :2660 [2]
7 ,[]);6+1צק :811+ [2]
7 ,[5])א6+1צק :5411 [1]
171 ,[,ג])א6+1צק :811+ [0]
סח
הרשימה [9,ג] הינה קידומת של הרשימה הבלתי ידועה א.
התשובה מתפרשת כך: 8 ו-ט הינס שני איבריה הראשונים של א.
איור 9.11 - (% 8,0])או61זק
.(2,115%)א6+1זק -7 | :8ת801ץ:
717, 0 + :₪411 [0]
7, ([])א6+1צק :615 [0]
:2 1 ת1 ...
[]- <
; 1155176 = 1156
7, [])א651צם :5660 [0]
77, 7)צק :6811 [1]
7, ([])א6+1זק :16א6 [1]
)66א1+זק :5415 [0]
.0 2 ת1 ...
[176א] = א%
[176|115%261<] = 186ע
הרשימה א הינה קידומת של הרשימה 1.81; שתיהן אינן ידועות.
איור 9.12 - (1.181 ,%)או6זק
.([8,5,0],א)א1++ט5 -7 | :קת801ץ
7 :₪811 [0]
77 :ם1א6 [0]
.010 [ ת1 ...
: [8,5,6] = א
77 :6860 [0]
7 :₪211 [1]
2 :ם91א [1]
22 :16א6 [0]
.ת600610: 2 ת1 ...
[0,ט] = א
הרשימה א הינה סיומת של הרשימה [0,6.ג].
הוצגו שתי תשובות; ישנן תשובות נוספות.
איור 9.13 -- ([8,0,0] , %)או51
134
.(8,5[,1155])א1++ט5 -7 | :8ח6:861
7, [,])א1++ט5 :6811 [0]
27 כ,3])א1+1ט5 :16א6 [0]
.0 1 1 ...
215% = ]3,5[ ;
7 [,8])א1++ט5 :600 [0]
17, [, 8])א1++ט5 :6311 [1]
272 ([ס,ה])א1++ש5 :15א6 [1]
27 [,8] )1%++ט5 :15א6 [0]
.010 2 ה1 ...
; [178,8,5א] = 1156
7 [,8])א1++ט5 :660 [0]
7 :660 [1]
7, [8,5])א1++ט5 :6811 [2]
7 [8,5])א1+/ט5 :16א6 [2]
27 [,8])א1++ט5 :16א6 [1]
9217 [, 3] )א1++ט5 :18א6 [0]
.0 3 ת1 ...
[פ,262,8א,178א] = 12156
הרשימה [8,0] הינה סיומת של הרשימה 181 אשר אינה ידועה, וזאת גם משמעות התשובות
שהתקבלו.
איור 9.14 - (1.151 ,[₪8,0])או11ט5
.([8,]3,5,6,6)ח58)10טתזסק -? | :2ה401:%
7 080)ת3:10)טממפק :6811 [0]
7, 56166%)8,11551800 :68411 [1]
717, [861865)8,]8!1811276 :15א6 [1]
7, ס, ], 1811276)ת8610>טזסק :6811 [2]
861665)02,1811276,654057 :6811 [3]
7, [ 51811497 ] ,.56166%)2 :15א6 [3]
7 1811497)ת63)10טמזסק :6811 [4]
67, 561605)0,1811497 :6411 [5]
717, [861805)0,]6|1811718 :18א6 [5]
7, 1718)תס)ה6טםמזפק :6811 [6]
6558077 56160%6)6,1811718 :6811 [7]
7, [561666)6,]4!1811939 :15א6 [7]
77 ) ס1הסטמתסק :6811 [8]
7 )מס1)ב63טמזסק :15א6 [8]
7, [4] )ת3610>טמת6ק :16א6 [6]
777 6,6])מ8:10>טמהזסק :6%15 [4]
7 5,6,6])ה10:)טמזסק :6%16 [2]
77 [6,6,פ, 8])מ3610)טומזסק :16א6 [0]
.0 9 ת1 ...
[3,5,6,6] = %
הרשימה [8,9,6,46] הינה תמורה של הרשימה % אשר אינה ידועה.
התשובה הראשונה שהתקבלה הינה התמורה עצמה. לאחר מכן, התכנית נכנסת ללולאה
אינסופית. נמליץ לחזור לפתרון זה אחרי דיון במודל חישובי של תכנית לוגית שבפרק 10.
איור 9.15 - ([8,0,6,6] , %)תסו141טוח חס
15
תרגיל 9.4
א. אתר את הפרוצדורה ם0ס0וז4זטחח6ק באיור 9.20 של פרק זה ובאיור 22 ₪ חטיבה
רביעית, ועקוב אחרי מהלכה בשני המקרים.
ב מצא הגדרה נוספת של היחס תס0ו141טה ז6ק, ללא 561608.
5 פירוק של רשימה באמצעות הפרוצדורה +115ט5- תרגול
-בסעיף זה נמשיך את המטלה של הסעיף הקודם - הפעלת תכנית נתונה. התכנית של הסעיף
הזה "מפרקת" רשימה לתת-רשימות. אומרים, כי פט5 היא תת-רשימה (01151ט5) של רשימה 1481,
אם הרשימה |14% משורשרת משלוש רשימות: 1.1 ,פט5 ו-12 .
12 סטפ 11
איור 9.16 - תת-רשימה
אין זו הגדרה פורמלית ולכן אין אנו מציינים אם פט5 שונה מ-]] או מ-1. להלן נציג מספר
אלטרנטיבות להגדרת תת-רשימה. הקורא מתבקש לבדוק אם אלטרנטיבות אלו שקולות, אם
לאו. הפרוצדורות 6ח6קקג, או1וטפ, או)6זק, שבהן נעזרנו, בעת הגדרת הפרוצדורה 1151פט5, הוגדרו
בסעיף הקודם.
הסימונים של המשתנים שבפרוצדורות הס בהתאם לאיור 9.16. הרשימה טגו5 היא תת-רשימה
של הרשימה )1.8. הרשימה 6זק היא שרשור הרשימות 1.1 ו-טט5, והיא מהווה קידומת של
הרשימה זַ14. בדומה, הרשימה 511 היא שרשור הרשימות 565 ו-1.2, והיא סיומת של הרשימה
1
,(226 ,סט5 ,6)11ת6קק8 -:(118%6 ,סט510115%1)5
.(115% ,12 ,6עק)6תססקה
,(1159 ,12 ,6ע6)2ת6סק8 -:(1156 ,סט500115%2)5
. (6עת ,סט5 ,6)11תסססה
תכנית 9.6 - גירסאות 2,1 של הפרוצדורה 5801181
16
איור 9.17 - שרשור של 1.1 ו-ט5 הוא קידומת של ]18
, (5959 ,2 ,סטפ)6ת6קק8 -:(215% ,סט11503)5ס50
. (1185% ,+9ט5 ,6)11תססקה
((1150 ,59% ,6)1.1ת6קק8 -:(115%6 ,סט50011550)5
. (24גו5 ,1.2 , סגופ)תססקהּ
תכנית 9.6 (המשך) - גירסאות 4,3 של הפרוצדורה 5001181
-(1150, 5₪22)א5221, (095ו5, פטפ)א621פס-: (1.186, פט5) 115%5פ5
ב (226,1180)א6/1ע, (6שת, פט9)א21?טפ- : (1.186, פט5) 5811566
תכנית 9.6 (המשך) - גירסאות 6,5 של הפרוצדורה 500151
17
איור 9.19 - תת-רשימה טט5 היא סיומת של 16 וקידומת של 5071
. (6עס ,םטפ)א50//1 ,(115% ,6עק)א6]1עם -:(1156 ,סט50011567)5
.(1186 ,5985)א621עק -:(1156 ,סט500115%68)5
. (1 ,פט11858)5סט5 -:([4|1] ,סט500118%68)5
5.4 ,(118%5 ,12 ,סט6)5מסקקה8 -:(115%6 ,50115%9)50
.[]=פט5 ,(1 ,סט11859)5סט5 -:([8|1] ,סט50011559)5
תכנית 9.6 (המשך) - גירסאות 9-7 של הפרוצדורה 5001181
תרגיל 9.5
| א ן בדוק מהן התשובות של פרולוג לכל אחת מהשאילתות האלה:
.([8,5,6,6] ,[6,ס])א1186סט8 -?
. ([8,0,6,6] ,א)א1150סש8 -?
.(1155 ,[8,0])א5800115%6 -?
. (2186 ,א)א8₪0115%6 -?
הערה: בתרגיל זה אתה מתבקש לענות על 36 (4+ 9) שאילתות, אשר לחלק מהן יש יותר
מתשובה אחת. בעת הפעלת התכנית, אחרי הקשת ";", תתכן ההודעה 5186% 01 וטס. כמו כן,
תתכן "נפילת התכנית". אל תתייאש, הטען את התכנית שוב והמשך בעבודתך. רשום את
כל התשובות אשר קבלת. בפרק 10, לאחר שתכיר את המודל החישובי של תכנית לוגית,
תתבקש לחזור לתרגיל זה.
1.108
6 עיצוב של תכנית לוגית: מיון רשימות
בסעיף זה נכתוב תכניות אחדות, אשר באמצעותן ימויינו איברי הרשימה. תכניות אלו מכונות
בשס תכניות מיון.
מיון (וז50) הוא פעולת סידור פריטים על פי קריטריון נתון. אם הפריטים הם מספרים,
הקריטריון הזה יכול להיות הסדר העולה, או הסדר היורד שלהם. אם הפריטים הם אותיות,
ניתן למיינסם על פי הסדר האלפה-ביתי. באופן כללי ניתן לבטא את הקריטריון הזה באמצעות
היחס (606665)4,8זק, שמשמעו: הפריט 4 קודם לפריט 8. כדי לפשט את הדיון ולרכזו במיון
בלבד, נקבל כי הרשימה מורכבת ממספרים, אשר יש למיין אותם לפי הסדר העולה:
7606005) ,8(:-4=)2.
קיימים אלגוריתמים רבים למיון. לא נדון כאן בנושאי יעילותם. במרכז הדיון נעמיד את נושא
העיצוב והכתיבה של תכנית לוגית. בשלב העיצוב מתארים את הצעדים הלוגיים לביצוע
המשימה. השיטה הטבעית לעיצוב של תכנית בפרולוג היא עיצוב מובנה מלמעלה למטה
(הקו065 1010166וז51 משו10-60). נתחיל מלמעלה, דהיינו, נגדיר את המשימה ונתאר את צעדי
הביצוע. בשלב הבא נרד מטה, דהלינו, נפרט ונעדן את הצעדים. בעת העידון נשמור על העקרון
של עיצוב מובנה כלומר, נפרט את הצעדים כתת תכניות ופרוצדורות עצמאיות. את אשר אמרנו
ניישס בכתיבת תכניות מיון שלהלן.
6א) מיון טבע? - +50 6וופצן
00
המשימה היא למיין רשימת מספרים נתונה. את המשימה נבטא באמצעות היחס 5011. את
הרשימה הנתונה נסמן באמצעות המשתנה 1.151, ואת הרשימה הממויינת - באמצעות המשתנה
6
את המשימה נתאר כך: (501166 ,5071)1.81, משמע: צריך למיין את הרשימה 181 ולקבל את
הרשימה 5071664.
את המשימה נבצע כך: נייצר את התמורות של הרשימה הנתונה, ונבדוק איזו מהן היא הרשימה
הממויינת:
-:(502066 ,8026)115%6
, (502680 ,1156)ת68%10טםעסק
502666 )502066( .
את היחס ת0ו141טחז6ק הגדרנו בסעיף הקודם.
נפרט את הצעד הבא: (501168)501160. רשימה בת פריט אחד היא רשימה ממויינת:
502668)]4[( .
איך נבדוק, האס רשימה שמכילה שני פריטים או יותר, היא אכן ממויינת! ניעזר במבנה
רקורסיבי של הרשימה: נבדוק אס שני פריטיה הראשונים מסודרים על פי הקריטריון הנבחר,
ונמשיך בבדיקת הסדר של שאר הפריטיס באמצעות חזרה רקורסיבית:
502%66)]4, 2|368%[( :-
2666005)4, 8(,
502666 )]8 | 365%6[( -
1999
את היחס 6060065זק נפרט בהתאם לנאמר בפתח הסעיף, כלומר, נחליפו ביחס "קטן או
שווה".
להלן התכנית בשלמותה. בצד ימין הוספנו הסברים לצעדים שבוצעו.
ורוו וויויורורוור ויו רו ר......
כדי למיין רשימה 12186, יש -: (502606 ,5026)2186
לבחור מבין חמורותיה את ב (502066 ,1,186)ת68610טםעסק
הרשימה הממויינת . (8005806)502666
ושוווור/ווותורוווו ררווו.רר ורי
ראה סעיף 9.3 (502066 ,156) ת68610םעסק
אוו יוור ו ור
תמורה בת איבר אחד ממויינת. . ([500080)]84
חמורה בת שניים ויותר איברים -: ([865%| ,802080)]4
ממויינת, אם שני איבריה הראשונים ,=4
מסודרים, וזנבה ממויין. . ([6₪56ת | 8]) 502686
ישווישפ ורוו הוור ריוור רו ריר
תכנית 9.7 - 5071 6טוגצז
את המשימה ביצענו בדרך של "ייצר ובדוק" (1651 806 67816ח66). ייצרנו את התמורה ובדקנו
אס היא הפתרון. אין זו שיטה יעילה למיון, שכן ייצור התמורות איננו קשור למשימה, ואפשר
שנייצר תמורות רבות עד שנגיע לתמורה הנדרשת. בסעיף הבא *וצג 866ז1 של כל אחת מתכניות
המיון של הסעיף הזה והקורא מוזמן להיווכח, כי המיון באמצעות התכנית 1זס5 6או4ן אינו
היעיל ביותר. הסיבה שבגללה החלטנו לדון בתכנית הזאת, היא צורתה הפשוטה. תיארנו את
המשימה ומייד כתבנו תכנית ברורה ותמציתית. נעיז ונאמר: אין זו בעייתנו שהמחשב של הדור
הנוכחי מייצר תמורות באופן סדרתי בזו אחר זו. האם נחכה עד לבואו של המחשב המקבילי
של הדור הבא! לא ולא. בפרולוג ניתן לכתוב תכניות קצרות ויעילות כאחד. נעבור לתכנית
המיון הבאה.
6) מיון ע"י שיבו - )501 חסן)ז56ה1
---------7-7--ררך-----------------
המיון ע"י שיבוץ "מנצל" את המבנה הרקורסיבי של הרשימה: נניח שזנב הרשימה כבר ממויין;
נשאר לשב את האיבר הראשון במקוס הנכון בהתאם לסדר.
נתאר את הצעדים למיון רשימה לא-ריקה בשפה יותר פורמלית:
א. נמיין את זנבה,
ב. נשבץ את ראשה אל תוך זנבה הממויין כך, שהרשימה שתתקבל תהיה הרשימה
הממויינת.
מכאן נעבור לכתיבת התכנית:
/ -: (5020066 , [811 | ה ] )10
, (50206001811 ,19020)1811
. (5020060 ,5026001811 ,026)4פת1
הרשימה הריקה היא אכן רשימה ממולינת:
18026)][, ][(-
100
את השיבוץ נבצע כך: נשווה בין המספר המשוב לבין ראשו של הזנב הממויין. אס המספר
המשובץ איננו גדול מראשו של הזנב, נעמיד אותו בראש הרשימה הממוינת:
-: ([1|865% ,4] ,[1|3656] ,562%6)4ת1
.=
אחרת - נשבץ אותו במקום הנכון בתוך הרשימה 36%%. הכיצד! אין צורך לפרט. החוק
הרקורסיבי יבצע את השיבוץ ללא עזרתנו:
-: (שסא]|8] ([1]3656] ,562%)4ת1
,48
. (שסא ,368% ,502%6)4ת1
איך בכל זאת התבצע השיבוץ של 4 בתוך 8631? החוק הרקורסיבי ישווה בין 4 לבין ראשו
של |865. במידת הצורך, ראשו של ₪651 "יקוצץ" ותעשה השוואה בין 4 לבין ראש השארית של
וצסת, וכן הלאה. התנאי הגבולי, אס כן, הוא:
. ([4] ,[] ,8026)8ה1
להלן התכנית בשלמותה:
15026)]4|1811[, 902006( :-
, ( .5025606181 ,6)1811ע1502
. (5020068 ,5020001811 ,5026)4ת1
.([] ,[])15026
-: ([4,1|365%] ,[1|365%] ,5025)4ת1
.= :
-: ([שסא|8] ,[8|365%] ,5096)4ת1
,4<8₪
. (שסאת ,265% ,62%)2פת1
. ([4] ,[] ,5606)4ת1
תכנית 9.8 - 5011 מסגז1567
בתכנית הזאת ביצענו את המשימה בדרך זו: היחס 501ו מפריד בין איברי הרשימה, והיחס
ו בונה את הרשימה הממויינת.
6) מיון בועות - )ז50 6|פפט
במיון בועות משווים בין האיבר הראשון של הרשימה לבין האיבר השני, ואם סדרם הפוך -
מחליפים ביניהם. אחר כך משווים בין האיבר השני (החדש) לבין השלישי, וכן הלאה. בצורה
זאת עולה האיבר הגדול ביותר וצף, בדומה לבועת אוויר במים, עד שהוא מגיע לסוף הרשימה.
לאחר מכן פעולת ההשוואה חוזרת על עצמה.
ולגר
את מיון הבועות נבטא באמצעות היחס (1)1.181,507166זס5טט, ואת השוואתם והחלפתם של שני
מספרים עוקבים נבטא באמצעות היחס (שסצן,86)1.181ח6/3. את משימת המיון נתאר באמצעות
החוק הבא:
-: (902006 ,6)115%6עספגס
, (שס6א ,1,156) 6שתהת0
. (008 507 , שסא)6עספגוס
היחס (ש6צן,26)1.151ח3ת6 מתאר את החיפוש אחר שני מספרים עוקבים, אשר סדרם הפוך:
-:([65%ת4|3 ,2] ,[686ת|8 ,6)]4שתהתס
.248
-: ([656שסא | ] , [65%6 | 4 ] ) 6שתהתס
. (0086596 ,656ת)ס6שתהת0
אם ברשימה 145% אין זוגות מספרים עוקבים אשר סדרם הפוך, תהיה הרשימה 1.15% ממויינת:
.(5026006)1,18% -:(1156 ,115%)%עספטס
להלן התכנית בשלמותה:
-: (502066 ,1.15%)%עספס
, (שסא ,1,15%6)סַקַתהת6
. (502506 , שסא)6עספטס
.(802000)1180 -:(12186 ,6)115%6עספטס
-:([4|365% ,8] ,[65%ת8|3 ,6)]4שַתת6
.4
-: ([656ש6א| ג ] , [656 | ] ) 6שַת8ת6
. (0008% , 365%) סשתה תס
ראה תכנית 9.7 - (5020606)1,15%
תכנית 9.9 - 507% 6|טסטם
היחס פִַת60 ממיין את הרשימה, והיחס זזספטט מכוון :את פעולתו.
112
הנה תכנית נוספת, אשר בה פעולת המיון מבוטאת באמצעות היחס, המוכר לנו מהסעיף
הקודם:
-: (502%5606 ,80261)115%ט
, (1.155 ,[656ת|צ, א] , 6ק)6תס6קקה
, צ<א3
, (1,15%שסא , [656ת | א, צ] 6ע6)2תסקק8
502%666( . ,1,15%6ש6א) 1>%עספגוס
.(802060)1180 -:(1186 ,61)218%עספ5טס
ראה פרוצדורה 9.3(א) - ספה
ראה תכנית 9.7 - 50006
תכנית 9.10 - 6ת06ק8 קחנפט 5071 6|טסטפ
6) מיון מה?ר - +2₪16%501)
מיון מהיר נחשב למיון יעיל ומתוחכם. המפתת של האלגוריתם למיון מהיר זכה בפרס טיורינג
(0זגוג/ פתוזגוד 1א2)ג/). להלן נוהל המיון:
א. נוציא איבר כלשהו מן הרשימה.
ב. את הרשימה נפרק לשתי רשימות:
- האחת מכילה איבריס הקטניס מזה שהוצא.
- השניה מכילה איבריסם הגדולים מזה שהוצא.
ג. | נמיין כל אחת מהרשימות.
נשרשר אותן, כאשר האיבר שהוצא נמצא בין הרשימות. כלומר, במקומו הנכון.
בדרך כלל מוציאיס מן הרשימה את האיבר הראשון.
ניישס את שיטת המיון המהיר באמצעות התכנית הבאה:
. ([] ,[])8026א16ט6
-: (502568 ,[10%5026)]4]1811ש6
,(808ק01 ,ת5₪8116 ,7811 ,)80116
,(5 ,6)5581168-:10%80טף
,((8 ,ע898026)81880א0010
. (505604 ,[4]8] ,6)5חה6קק8
.ךז .[] .[] .)9116
-:(818 ,[8|5₪811] ,[8|1] ,)50116
,8
.(818 ,5811 ,7 ,)82115
-:([ש8|81] ,5₪811 ,[ד|8] ,)50116
4-3
. (818 ,5811 ,7 ,)80115
ראה סעיף 9.3 - 6חסקקם
תכנית 9.11 - 1זס5א6וטכ)
3
הסבר:
הפרוצדורה 51 מפרקת את זגב הרשימה [ו9ד לשתי רשימות: ז4!!6וח5 ו-זס8קופ. הרשימה
זס||04ז5 מכילה את האיברים שאינם גדולים מ-4, והרשימה ז81886 מכילה את אלה הגדולים
מ-4. החוק הראשון של הפרוצדורה ו:1ק5 קובע, כי פירוק רשימה ריקה נותן שתי רשימות ריקות.
החוק השני של וו1ק5 מגדיר רקורסיבית את הפירוק, כאשר 4 גדול מהראש 8 של |181. החוק
השלישי מופעל, כאשר 4 אינו גדול מ-8.
7 תכניות מיון - הריצה והמעקב (018060)
תכניות המיון, אשר הצגנו לפניך, מכילות 11 פרוצדורות, חלקן רקורסיביות. בפרוצדורות אלו
תוכל להיעזר כשתכתוב תכניות נוספות. הרצנו את תכניות המיון בגירסת 201.00 |אסספו/
ועקבנו אחרי מהלכן. להלן תוצאות הריצה והמעקב של חלק מהתכניות. אתה מתבקש לעיין
בהן היטב ולהסבירן.
ראה איור 9.20 בעמוד הבא
.(1505%)]2,1,3[,50:1660 -7 | :ַאַה801ץ+ .(50:6)]2,1,3[,50::66א6016 -? | :קַה361ז%
צ?(2,1,3[,50::6687]):ז150 :6311 [0] ?5056687 ,[505:)]2,1,3א16%טף :6811 [0]
.(5)]1,3[,50:5661811190ז150 :6811 [1] | .(52116)2,]1,3[,5₪8116+190,81886:191 :6411 [1]
.(190:5)]3[,50:1861311279 :6811 [2] .1 < 2 :6411 [2]
.(1505%)][,50::661811368 :₪811 [3] .1 < 2 :16א6₪ [2]
-([],[])ז:150 :6418 [3] . (3[,50811288,812289] ו :1 [2]
.(56:5)7,][,50:566367ה1 :6811 [4] .4 < 2 :6411 [3]
.([3,][,]3):ז50ה1 :6%18 [4] . < 2 :11+ [3]
.([3[,]3]):ז150 :15א6 [2] .+ >= 2 :0311 [3]
.(56::)1,]3[,505566278ה1 :6811 [5] .= 2 :ם1א8 [3]
.+ >= 1 :6411 [6] .(115)2,][,90811478,812480ק5 :811 [3]
.+ >= 1 :16א6 [6] .([],[],[],115)2ק5 :16א6 [3]
.([56::)1,]3[,]1,3ה1 :15א5 [5] .([115)2,]3[,][,]3ק5 :6%16 [2]
.([150:5)]1,3[,]1,3 :16א6 [1] .([115)2,]1,3[,]1[,]3ק5 :16א6 [1]
.(86::)2,]1,3[,505666189ה1 :6811 [6] -(1[,5192] )61009055 1 [4]
.1 >- 2 :6811 [7] .(116)1,][,5₪3116:868,81886:869ק5 :6811 [5]
.= 2 :11] [7] .([],[],[],116)1ק8 :6%16 [5]
.1 <2 :6311 [7] .(6)][,5870ז50א16טף :6811 [6]
.1 < 2 :םא [7] .([],[]):505א16טף :15א6 [6]
.(6%988א,[5856)2,]3ה1 :6811 [7] . (50:6)][,8871א16טף :6811 [7]
.+ >- 2 :6811 [8] .([],[])5ז50א16טף :16א6 [7]
.+ >= 2 :6416 [8] .(8)][,]1[,50:5668067ַה6קקב33 :6811 [8]
.([50:5)2,]3[,]2,3ה1 :615 [7] .([4))[,]1[,]1ַחסקק83 :16א6 [8]
.([56::)2,]1,3[,]1,2,3ה1 :16א6 [6] .([90::)]1[,]1א16טף :616 [8]
.([2,1,3[,]1,2,3])%ז150 :16א6 [0] .(50::)]3[,8193א16טף :6811 [9]
.הז 8 ה1 .. |.(116)3,][,5₪3116:1489,81226:1490ק5 :6311 [10]
.([],[],[],115)3ק8 :16א6 [10]
[1,2,3] = 505566 .(51491,[]):ז50א16טף :6311 [11]
.((],[])50:5א16ט :16א6 [11]
(5)][,81492ז50א16ט :6811 [12]
.([],[])5ת50א16טף :18א6 [12]
.(6)][,]3[,50:5661488ַחפקקהּג :6811 [13]
.([4))[,]3[,]3ַחפקק83 :16א6 [13]
.([5055)]3[,]3א16טף :16א5 [9]
.(0)]1[,]2,3[,50%%66189ַחסקק88 :6811 [18]
.(6)][,]2,3[,2321040הסקקהּג :6811 [15]
.([4)][,]2,3[,]2,3ח6קקבּב3 :6%16 [15]
([6)]1[,]2,3[,]1,2,3ח6קקהה8 :6*16 [א1]
([50:5)]2,1,3[,]1,2,3א16טף :515 [0]
.8 16 ה1 ...
[1,2,3] = 80:666
איור 9.21 - מיון של הרשימה [2,1,3] איור 9.22 - מיון "מהיר" של
על-ידי שיבוץ (תכנית 9.8) הרשימה [2,1,3] (תכנית 9.11)
134
(המשך)
.([2,1,3[,]2,3,1])ת8510>טחצפק :660: [1]
.([1,3[,]3,1])ח10םה58טמתפק :660צ [3]
.([1[,]1))חס1=הפטחצסק :660 [6]
.([],[])מס1:הם:טחצסק :660: [8]
.(56186%5)%1010,][,365+1012 :6411 [9]
.(1012 ,[],1010א)561605 :111 [9]
.(805 ,[])חהס53=1טמצסק :311+ [8]
.([],[561666)1,]1 :660: [7]
.(56166:)%891,][,1896 :6811 [8]
.(896 ,[],891א)561606 :1411 [8]
.(806 ,[804,]1 )561665 :111 [7]
.(481 ,[1])ח8610םטהזסק :5811 [6]
.([56160%)3,]1,3[,]1 :660: [4]
.([],[5618665)3,]3 :5660 [5]
.(1653, [],561665)%648 :6811 [6]
.(653 ,[],561605)%608 :811+ [6]
.(572 ,[567,]3 )56160 :1811 [5]
.(50:5)]2,1,3[,505560 -? | :אַת801ץ1
7 ))] )50 :6811 [0]
.(2,1,3[,50:566187])ת10ם8:טמזסק :6311 [1]
.(274,]2,1,3[,3655276א%)561665 :6311 [2]
]2[ 6%16: 561605)2,]2,1,3[,]1,3[(.
. (275ט₪:6, [3, 1 ] )מ3:10)טממז6ק :6811 [3]
. (36556482, [480,]1,3א)56166% :₪411 [8]
.([56186)1,]1,3[,]3 :6%16 [8]
. (5481טתז26, [3 ] )ח3+10טתת6ק :6811 [5]
.(865:688, [56166%)2686,]3 :6811 [6]
. ([],[561665)3,]3 :18א6 [6]
. (5687ט₪ש6, [ ] )ה3:10:טםז6ק :6411 [7]
.([],[])ח3:10טתז6ק :616 [7]
. ([3], [3]])ח8+10:טמז6ק :18א6 [5]
.([1,3[,]1,3])ת3:10:טמזסק :6418 [3]
. ([3:108)]2,1,3[,]2,1,3:טמז9ק :16א6 [1]
.([50:566)]2,1,3 :6811 [8]
.1 )= 2 :6411 [9]
.1 )= 2 :111 [9]
.([566)]2,1,3ת50 :2 [8]
.(2 ,[480,]1,3 )561665 :11+ [4]
.(275 ,[1,3])תס1ם8)טתזסק :811+ [3]
.([581605%)2,]2,1,3[,]1,3 :5660 [2]
]3[ 6811: 561605)2361,]1,3[,1366(.
.([561805)1,]1,3[,]3 :15א₪ [3]
.([561605)1,]2,1,3[,]2,3 :15א5 [2]
.(275 ,[2,3])חה68610טהנ6ק :6811 [4]
]5[ ₪311: 561806)%598, ]2,3[ ,865%600(.
.([561805)2,]2,3[,]3 :16א6 [5]
. (05599צ26, [3] )ה3:10:טמ:6ק :₪411 [6]
.(3[,265%806] ,5618606)%804 :₪311 [7]
.([],[561606)3,]3 :15א6 [7]
. (005805ש26, [ ] )ח0ס3=1:טמצסק :6411 [8]
.([],[])ח10:ה:טתזסק :15א6 [8]
.([3[,]3])תס3:1:טתצסק :15א6 [6]
.([2,3[,]2,3])מס6861טתל6ק :15א5 [4]
-([2,1,3[,]1,2,3])תס8)1)טתתסק :16א6 [1]
.([50:5606)]1,2,3 :₪811 [9]
]10[ 6811: 1 => 1
4 >= 1 :15א6 [10]
]10[ 6811: 505586)]2,3[(.
]11[ ₪811: 2 => 4.
.1 >= 2 :15א6 [11]
]11[ 6411: 505586)]3[(.
.([505586)]3 :16א6 [11]
.([566)]2,3ת50 :16א6 [10]
.([50:56606)]1,2,3 :15א6 [9]
.([8055)]2,1,3[,]1,2,3 :15א6 [0]
.0 12 ה1 .
.([2,1,3[,]2,1,3])ה8:10:טמתסק :660ז [1]
. ([1,3], [1,3])ת8+10)טמהו6ק 1 [3]
. ([3[,]3])ה3510:טמז6ק :660 [5]
. ([], [ ] )ה3510:טמזסק :660: [7]
. (655894ת, [ ] ,56186%)%892 :1 [8]
.(894 ,[],861605)%892 :1 [8]
. (687 ,[])ת3510:טמזפק :1 [7]
. ([],[86186:)3,]3 :660 [6]
. (1778, [ ] ,56166%)%773 :6811 [7]
.(778 ,[],773א)561805 :1 [7]
.(688 ,[686,]3 )56160% :1311 [6]
. (481 , [3] )ה3:10)טמחזסק :1 [5]
. ([561605)1,]1,3[,]3 :660 [4]
. (1572, [3], 56166%)%567 :1 [5]
. ([],[581066)3,]3 :16א9 [5]
.([56180%)3,]1,3[,]1 :2 [4]
.(481 ,[1])ח3:10)טפזסק :6811 [6]
. (65%806ת, [36160%)%804,]1 :1 [7]
.([],[86166%)1,]1 :16א6 [7]
. (5805ט5ז26, [ ] )ח8+10:טמת6ק :6811 [8]
. ([],] ] )ת8:10:טמת6ק :6%16 [8]
.([1[,]1])מ3:10:טתצשק :16א6 [6]
. ([3,1], [1,3] )מ68610גומזסק :2 [3]
.([2,1,3[,]2,3,1])ת3+10:טמזסק [1]
([50:566)]2,3,1 :6811 [9]
]10[ 6811: 2 =6 .
]10[ 618: 2 = 3.
]10[ 6811: 50:566)]3,1[( .
.| )= 3 :0811 ה
.31 :11 [11
ב . ([501666)]3,1 :1311 [10]
]10[ :660: 2 => 1. --=--
]10[ 6311: 2 = +. 77
]9[ ]811: 50566)]2,3,1[(.
בתכנית זו נוצרו התמורות האלו:
[2,1,3]
[2,3,1]
[1,23]
התמורה האחרונה הינה הרשימה הממויינת.
איור 9.20 - מיון טבעי של הרשימה [2,1,3] (תכנית 9.7)
15
16
.(5)]3,2,1[,507866ת50ט5 -7 | :קת361ץ:
7, [5)]3,2,1ת50טפ :6311 [0]
. (66188א, [3,2,1] )סִפַת3ּתם :₪811 [1]
< 3 :₪811 [2]
< 3 :916א6 [2]
.([6)]3,2,1[,]2,3,1פַחהת6 :15א6 [1]
.(50:6)]2,3,1[,505566187טפ :₪811 [2]
. (494ש6א, [2,3,1])קַת3ת6 :₪811 [3]
.% < 2 :₪811 [8]
.4 < 2 :111 [4]
.(66865%583א/, [3,1] )6פַה3ת6 :₪811 [4]
.1 < 3 :6811 [5]
.| < 3 :16א6 [5]
.([86)]3,1[,]1,3ה8ת₪ :16א6 [4]
.([26)]2,3,1[,]2,1,3ה678 :16א6 [3] .
.(566093ת5026)]2,1,3[,50טפ :6811 [5]
.(66917א, [6)]2,1,3קַה3ת6 :₪411 [6]
.1 < 2 :₪811 [7]
.1 < 2 :916א6 [7]
.([2,1,3[,]1,2,3])קַחהת6 :15א6 [6]
.(5056)]1,2,3[,50566916טפ :₪811 [7]
.(1223ש6א, [20)]1,2,3ה8ת6 :6811 [8]
< 1 :6811 [9]
< 1 :811+ [9]
. (6561312תש6א, [6)]2,3קַה608 :6811 [9]
]10[ 6411: 2 < +.
]10[ %811: 2 < .
. (865%61392ש6א, [3] )ספַחגּת6 :6811 [10]
. (86561472ש6א, [ ] )תַהַ8ת6 :₪811 [11]
.(1472 ,[])6קה8ת6 :811+ [11]
.(1392 ,[6)]3קה8ת6 :411+ [10]
.(71312 1 :811+ [9]
. (1223 -7+ 21 :811+ [8]
.-([50:%86)]1,2,3 :6811 [8]
. >= 1 :₪411 [9]
>= 1 :816א6 [9]
.([50566)]2,3 :6811 [9]
.+ >= 2 :6311 [10]
.+ >= 2 :16א6% [10]
.([50566)]3 :6811 [10]
.([505586)]3 :16א6% [10]
.([505566)]2,3 :6%15 [9]
.([5066)]1,2,3 :16א6 [8]
3 2 :ם1א6 [7]
1 :2 [5]
2 5 :ם81א6 [2]
2
.0 [1 ת1 ...
5055866 = ]1,2,3[
איור 9.23 - מיון של [3,2,1]
באמצעות "בועות" (תכנית 9.9)
.(50552)]3,2,1[,502566טפ -7 | :8ת%1801
52)]3,2,1[,50556687(7ס5טפ :6811 [0]
.([192!98655193[,]3,2,1+,190א6188,]2:ת)ַַתסקְקְב3 :6411 [1]
.([6)][,]3,2,1[,]3,2,1חסקקבּה :6%18 [1]
.4 < 3 :6011 [2]
< 3 :6%15 [2]
.(155196ש6א, [2,3,1],[])ַתסקְקבּ3 :6411 [2]
.([0)][,]2,3,1[,]2,3,1תסקקבּ3 :5418 [2]
.(50:52)]2,3,1[,505566187טפ :6811 [3]
.([637!8655638[,]2,3,1+,6633,]2635ז8)2ַחסקק33 :6311 [8]
.([2,3,1[,]2,3,1],[])ַתסקְק33 :616 [4]
.4 < 2 :6811 [5]
. < 2 :111 [5]
.([6)][,]2,3,1[,]2,3,1תסקקבּב3ּ :640ז [4]
.([638[,]3,1 !637 ,635 ],1732")ַתסקְקַ3 :6811 [5]
.([6)][,]3,1[,]3,1תפקקבּ3 :16א6 [5]
.([6)]2[,]3,1[,]2,3,1תשקקהּה :615 [א]
.1 < 3 :6411 [6]
.1 < 3 :615 [6]
. (155641ש6א, [6)]2[,]1,3ת6קק33 :0811 [6]
. (1,3[,131083],[])ַתפקְקב3 :6811 [7]
.([0)][,]1,3[,]1,3חפקקבּ3 :16א6 [7]
.([0)]2[,]1,3[,]2,1,3ַתשקקבּ3 :615 [6]
. (505%2)]2,1,3[,50:566632טפ :6811 [8]
.([1318|26561319[,]2,1,3צ,1316א] 0 :1 [9]
.([0)][,]2,1,3[,]2,1,3ַתפקקבּ3 :16א6 [9]
.1 < 2 :6411 [10]
.1 < 2 :616 [10]
. (15%1322ש6א, [4)][,]1,2,3ַחסכְקב33 :6311 [10]
.([0)][,]1,2,3[,]1,2,3ַמסקְק83 :16א6 [10]
.(2)]1,2,3[,50:5661313:ץס5טפ :6811 [11]
.((65%1764[,]1,2,3ת!|1763צ,1761א],61759:ק)ַתִסקְק337 :6811 [12]
.([1,2,3[,]1,2,3],[])ַחסקְקבּ3 :16א6 [12]
.4 < 1 :6411 [13]
< 1 :11) [13]
. ([6)][,]1,2,3[,]1,2,3תפקקבּ3 :2660 [12]
.([1764[,]2,3 !1763 ,1761 ],011858)ַחסק7ק337 :6411 [13]
.([6)][,]2,3[,]2,3תסקקבּג :18א6 [13]
.([1[,]2,3[,]1,2,3])ַַתסקק33 :16א6 [12]
. < 2 :6811 [14]
.4 < 2 :111 [18]
.([6)]1[,]2,3[,]1,2,3ת6קק38 :660 [12]
.31 772 [])ַחסקְקַבּג :660: [13]
3 !1763 ,1761. ן 39 ?2 :6811 [18]
]1. 1 7 ],212020)ַחשקק3 :6811 [15]
[ ,[71764 1 -. 7] (0הנפפְתַהּ :811+ [15]
[3] הו 17631 -. .10 | )הקפהה :2 [14]
3] 1. 17631 -. [ ,158 | )6חסקקהּה :5 [13]
20 2 ,[1764. 11 ,11 ] 159 )בַתסקְקבּה :1811 [12]
.גד 2 1 2 :616 [11]
.ג[3 2 5 :165א6 [8]
. ([552)]2,3,1[,]1,2,3ספטט :4 [3]
.([50::2)]3,2,1[,]1,2,3ט5 :16א6 [0]
.4 12 ה1 ...
ו
1
ו
.
1
3
.
.
-
ב
.1
505686 = ]1,2,3[
התנאי הגבולי של תכנית 9.10
הוחלף: . 80"%8₪( ,2)50"%₪0+"ספטם
איור 9.24 -- "*בועות" של [3,2,1] בעזרת 6ח6קק8
17
פרק 10
מנגנון ההוכחה של פרולוג
בסעיפים 7.3 7.4 7.5 תיארנו תהליך של הסקת מסקנות על-ידי מערכת הפרולוג מנקודת ראות
לוגית. בפרק זה נתאר את התהליך הזה במונחים של ביצוע. לשם כך נדון במודל חישובי של
תכנית לוגית ונכיר את יישומו בפרולוג. בסעיפים 10.1 ו-10.2 נכיר את המושגים הצבה ומאורע.
המודל החישובי של תכנית לוגית מבוסס על אלגוריתם של איחוד. במושגים התאמה ואיחוד
נדון בסעיפים 10.3 ו-10.4. את המודל נכיר בסעיף 10.5, ואת יישומו על ידי מערכת הפרולוג -
בסעיפים 10.6 ו-10.7.
1 הצבה ומאורע
ההצבה היא חלק של תהליך חישוב השאילתה. לפני שנדון במושג ההצבה, נחזור ונעיין במרכיבי
התכנית הלוגית. המרכיבים - עובדה; חוק ושאילתה, הס נוסחאות של לוגיקת היחסים. ליתר
דיוק, הם נוסתאות של לוגיקת היחסים מסדר ראשון. נציין כי בלוגיקה מסדר ראשון הפרדיקט
הוא אטוס ולא משתנה, משמע - הביטויים מהסוג (1:2,וחסז)< אינם חוקלים. הנוסתאות האלו
בנויות בצורה תחבירית אחידה: לחוק יש ראש וגוף, לעובדה יש ראש ואין גוף, לשאילתה יש
גוף ואין ראש. את העובדה ניתן לפרש כחוק, אשר גופו מכיל פרדיקט אחד בלבד: 6גזו.
השאב שהמקוי אק ההההכב )0 ההחסאוקקו השק ההקשקיפ מששפות
|פיסקה | | ראש | אם | גוף | | 806 | א1 | 8688 | 56ט018 |
| עובדה | א | -ש | | | | ₪ | 8 | 5% |
| עובדה |( א | :- | אמת | | פשעם | -: | 8 | סספק |
| חוק |[ א | > | ב,ג,ד | | 8,₪,₪ | -: | 8 | 6נטת |
| שאילתה | | :- | ב,ג,ד | | 4,₪,₪ | -: | | | עֶע6ט0 |
איור 10.1 - מרכיביס של תכנית לוגית
108
המשתנים של תכנית לוגית הם משתנים מכומתים ועל כן נוסחאות של תכנית לוגית הן פסוקים.
משתני השאילתה מכומתים קיומי, משתני העובדה והחוק מכומתים כללי. את הכמתים אין
כותבים באופן מפורש. הפסוקים של לוגיקת היחסים, אשר הכמתים אינס מופיעים בהם בצורה
מפורשת, מכונים בשם פ*סקאות (6[0565). באמצעות תכונות השקילות, שאותן למדנו בפרקים
2 ו-6, ניתן להפוך כל פסוק לפיסקה, השקולה לפסוק הזה מבחינה סמנטית. את תהליך ההפיכה
של פסוק לפיסקה ניתן למצוא בספרי לימוד רבים, למשל, ב-[1984, חסוצחו/] ולא נדון בכך
כאן. את הפיסקאות מהסוג "ראש אם גוף", אשר ראשן ריק או כולל נוסחה אטומית אחת
בלבד, מכניסם פיסקאות של הורן (613565 חזס1!). מכאן, שהמרכיבים של תכנית לוגית הם
פיסקאות של הורן.
פיסקה של תכנית לוגית, אשר אינה כוללת משתנים, נקראת פיסקה בסיסית. בדומה, ביטוי
ללא משתנים הוא ביטוי בסיסי, עובדה ללא משתנים היא עובדה בסיסית ושאילתה ללא
משתנים היא שאילתה בסיסית.
ערך-אמת של עובדה ושל חוק הוא תמיד ד (אמת). את ערך האמת של השאילתה יש לחשב,
וכחלק מתהליך החישוב יש לבצע הצבות. ההצבה היא קבוצה סופית של משוואות שצורתן
היא: הוחסו = %.
להלן ההגדרה הפורמלית:
הגדרה 10.1
ההצבה (תסווטוו51ט5) 0 היא קבוצה של משוואות:
(אםע0ף = אא ,...- ,62₪2ס=2א ,₪1ע1=60א]
אשר בה:
א צ[א,...2א ,1 הס משתנים שונים, (1<א).
₪ \וחזש),....2ותז10 ,] וחז16 הס ביטויים (לאו דווקא שוניס ולאו דווקא בסיסייס).
הערה: בפרולוג העברי כותבים את המשוואות כך: 1%=ביטוי1, 1%=ביטוי?, וכן הלאה, מימין
לשמאל.
הגדרה 10.2
תהי 8 פיסקה ו-0 - הצבה. את תוצאת ההצבה 0 בתוך 8 מסמנים ב-80 ומכנים מאורע
(51806ח1), החלפה, או מקרה של ג. להבא נשתמש במונח מאורע.
המוגח הבא שנגדיר יהיה מאורע משותף. האיור 10.2 מתאר את המונח הזה באופן בלתי
פורמלי:
פיסקאות (ע,ם8ת02)8028ב80+ (15880, %)8%207?
הצבות 6 = התהיסה=א
מאורע
משותף (158886, 088 ) 28002
איור 10.2 - מאורע משותף
199
הגדרה 10.3
תהיינה 8 ו-ס פיסקאות. נאמר, כי הפיסקה 6 היא מאורע משותף (66ח518ח! חסוחוס6)
של 8 ו-9, אם 6 היא מאורע של 8 ומאורע של ס, כלומר, אם קיימות שתי הצבות, 01
ו-02, כך, ש-0=401 ו- 0=502.
במילים אחרות, ל-3 ול-ט יש מאורע משותף אם מאורע 801 של 8 זהה תחבירית למאורע 002
של ט. להלן דוגמאות של מאורע משותף.
דוגמה 10.1
נתונה הפיסקה 8:
, (%ת11 ,ש8₪ת02)8028ב80? -:(ע ,ש8ב665602)8028ת8
. (צ ,א%ם0665%02)11ת8
נתונה הפיסקה פ:
((%ת11 ,%)62ת8%6? -:(001א ,א)עסספ6סתה
(%001 ,%ת005002)11ת8
נבצע את ההצבות שלהלן:
ביטוי משתנה
הצבה 01 לתוך הפיסקה 8: צמס; = צ
הצבה 02 לתוך הפיסקה פ: מהתהתסה = א
המאורעות 801 ו-02ט זהים תחבירית, משמע שלפיסקה 8 ו-ט יש מאורע משותף 401=002 והוא:
, (%ת1,1 ,ש8ת62)8028ת8%+? -:(001ס5> ,םה8ת8028)עס6פ6סתם
. (1פס% ,את665002)11ת8
דוגמה 10.2
הפיסקאות של הדוגמה הזאת הן של הפרולוג העברי, ולכן יש לקרוא את ההצבות מימין
לשמאל.
נתונה הפיסקה 8:
משפחה(א, אס(צבר מי), 2),
נתונה הפיסקה ₪
משפחה(אב(ה, 8), ש , 0).
200
לשתי פיסקאות אלו יש מאורע משותף 6, אשר מתקבל כתוצאת ביצוע של ההצבות שלהלן:
מעשתנה ביטוי
ההצבה 01 בתוך פיסקה 8: 9% = אב(4, 8)
2 = 12
ההצבה 02 בתוך פיסקה פ: שּ = אם(צבר, צ)
ט = 12
המאורע המשותף 6 הוא:
משפחה(אב(א, 8), אס(צבר, צ), 12)
לפיסקאות 8 ו-ט ישנסם מאורעות משותפים נוספים. נעיין בפיסקה אשר נסמנה ב-6:
משפחה(אב(צבר, יורם), אס(צבר, רינה), ילדיס(])).
הפיסקה 4 מתקבלת מ-8 באמצעות ההצבה 03:
א* = אב(צבר, יורם)
צ = רינה
= ילדים([]).
1
ב
הפיסקה 6 מתקבלת מ-0 באמצעות ההצבה 04:
= צבר
= יורם
אם(צבר, רינה)
= ילדים(1]).
ו
< םס שש ₪
2 המאורע המשותף הכללי ביותר
(סמן ב-3 את הפיסקה: (צ,%)ז6ת131, ונבצע בה את ההצבות האלה:
ביטוי משתנה
ההצבה 01 (בתעתיק אנגלי): 1 = א
1צ = צ
ביטוי מעתנה
ההצבה 02 (בתעתיק אנגלי) . המעה8ת8ת 802 = א
1צ = צִ
201
לאחר ההצבה קיבלנו שני מאורעות:
המאורע 801: (1? ,1א)עסת80+
המאורע 082: (1ץ ,תהת8ע80)ת0ב80?
בין שני המאורעות האלו יש הבדל מהותי. לאחר שנבצע בתוך 801 את ההצבה שבהמשך, נחזור
אל הפיסקה (צ,א)ז6חוג). יוצא אם כן כי הפיסקה 801 היא המאורע של 8, והפיסקה 8 היא
המאורע של 401, משמע, שאת הפיסקה 801 קיבלנו כתוצאה של החלפת השמות של משתני
הפיסקה 4.
ההצבה: ביטרי משתנה
א = 1
צּ = 1צ
לעומת זאת, לא ניתן לחזור מן הפיסקה 802, אשר היא
1( ,וח6)4078(8הוג]. אל הפיסקה 3. אשר היא (צ'.א)ז6חו8]. על פי הגדרת ההצבה ניתן להציב
את הביטוי ותגחגזטג תחת משתנה % אך לא להיפך.
הגדרה 10.4
תהיינה 8 ו-₪ שתי פיסקאות.
אומרים, כי ט היא הצורה האלפביתית (1ח18ז8/ 806116 /ק1ב) של 8, אם ט היא המאורע
של 8 ו-8 היא מאורע של פ.
אומרים, כי 4 היא יותר כללית ([9ז6ח80 6זסות) מ-פ, אם ט היא מאורע של ג, אבל 4
איננה מאורע של פ.
דוגמה 10.3
הפיסקה (1צ , [א)טשהוג! היא הצורה האלפביתית של (ץ ,א)זסווג).
הפיסקה (ץ %)6ווג] יותר כללית מהפיסקה (15386 ,הח8ת8ז30)ז10ב).
הגדרה 10.5
המאורע 80 של הפיסקה 3 מכונה מאורע בסיס? (512006ח: 6תטסזם), אם 40 היא
פיסקה בסיסית (כלומר ב-89 אין משתנים).
דוגמה 10.4
הפיסקה (15880 ,ותבהגזס13)זסתובּ] היא המאורע הבסיסי של (|צץ ,ת40:803)ז6ו1ג) ושל
(צ ,א)6חזג). המאורע הבסיסי (15886 ,וַח808ז890)ז6ה81) הוא סופי במובן שאין לו מאורעות.
נחזור אל דוגמה 10.2, בה מצאנו שני מאורעות משותפים 6 ו-6 עבור זוג הפיסקאות ג ו-ט. נציין
שהפיסקה 6 יותר כללית מן הפיסקה 4. ניתן למצוא מאורעות נוספים, המשותפים ל- ול-5,
כדוגמת המאורע 6 שלהלן:
202
המאורע המשותף 6:
משפחה(אב(צבר, 8), אם(צבר, צ), 12)
מאורע 6 התקבל מ-8 באמצעות ההצבה 05:
משתנה ביטוי
א אב(צבר, 8)
2 = 1
מאורע 6 התקבל מ-ט באמצעות ההצבה 06:
משתנה ביטוי
4 = צבר
טש = אם(צבר, צ)
ט 12
נציין, כי הפיסקה 6 יותר כללית מן הפיסקה 6, והפיסקה 6 יותר כללית מן הפיסקה 6. הפיסקה
4 היא המאורע הבסיסי של כל אחת מהפיסקאות: 6,0,8.
הגדרה 10.6
תהיינה 8 ו-פ שתי פיסקאות. המאורע המשותף 6 של 8 ושל ט נקרא הכללי ביותר, אם
הוא יותר כללי מכל מאורע אחתר, המשותף ל-8 ול-8.
נציין בהקשר לכך:
א. אס לשתי פיסקאות 8 ו-ט יש מאורע משותף אחד לפחות, אז יש להן המאורע המשותף
הכללי ביותר.
ב. המאורע המשותף הכללי ביותר הוא אחד ויחיד עד דיוק של צורה אלפביתית. כלומר, אם
לפיסקאות 3 ו-פ יש שני מאורעות משותפים כלליים ביותר, אז אחד מהמאורעות הוא
הצורה האלפביתית של המאורע האחר.
3 התאמה
נעיין בשתי הפיסקאות 8 ו-פ של דוגמה 10.2 בסעיף הקודס. את המאורע המשותף הכללי ביותר
6 מצאנו בדרך זו:
₪= את המשוואה %=אב(28,4) מצאנו על ידי ההשוואה בין הארגומנט הראשון של הפיסקה 84
לבין הארגומנט הראשון של הפיסקה ט.
₪ את המשוואה /ש=אם(צבר,צ) מצאנו אחרי שהשווינו את הארגומנט השני בשתי הפיסקאות,
וכך הלאה.
23
הגדרה 10.7
בהינתן שני ביטויים | וחז6ד ו-2וחזשך אנו אומרים, כי יש ביניהס התאמה (פחוח10גות), אם:
₪ [|ותז6ך זהה מבחינה תחבירית ל-2וחז6ד,
אה
₪ קיימות שתי הצבות, האחת לתוך !וחז6ך והאחרת לתוך 2וחזטד, כך שאם נבצע אותן
יהיו הביטויים זהיס מבחינה תחבירית.
בסעיף הקודס הגדרנו את המאורע המשותף של שתי פיסקאות (ראה את ההגדרה 10.3). אם
נגדיר בצורה דומה את המאורע המשותף של שני ביטויים ניתן יהיה לנסח את ההגדרה כן:
הגדרה 10.7(א)
בין שני ביטוייס יש התאמה אם הס זהים מבחינה תחבירית או אם יש להם מאורע
משותף.
בדוגמה 10.2 מצאנו אם כן, כי יש התאמה בין הביטוייס האלה:
צין % לבין | אב(, 8)
בין אם(צבר, ץ) לבין ₪.
בין 2 לבין ט.
כמו כן מצאנו, כי קיימת התאמה בין
משפחה(א, אם(צבר, צ), 2)
לבין
משפחה(אב(ג, 8), ש, (ז).
להלן דוגמאות נוספות:
דוגמה 10.5
בפרק 7 של החטיבה השניה חישבנו את התשובה לשאילתה סופר(א) וראינו, כי יש התאמה
בין הביטויים האלה:
בין | לומד(א, ספרות) לבין לומד(נמרוד, ספרות)
בין | לומד(א, ספרות) לבין | לומד(יובל, ספרות)
כמו כן התוודענו כי איץ התאמה בין לומד(א, ספרות) לבין לומדננמרוד, פרולוג).
24
דוגמה 10.6
נעיון בביטוי (1 [1]<] ,א)561601 ובביטוי (צ (1,2,3] ,%)56161. יש התאמה בין הביטויים
האלה:
בין | [צ|א] לבין | [1,2,3]
בין א לבין 1
בין ?ך לבין | [2,3]
בין *% לבין | צ
בין | (2 ,[1|א] ,א)861605 | לבין | (צ ,[1,2,3] ,א)961006
המאורע המשותף של שני הביטוייס האחרונים הוא
([2,3] ,[1,2,3] ,56160%5)1
דוגמה 10.7
בין הביטוי א לבין (%) יש התאמה. ההצבה אשר בעקבותיה הם זהים היא:
ביטוי מעשתנה
% = ₪
את (א) מציביס תחת א בביטוי הראשון.
(נציין כי ההצבה (%)=< אסורה בפרולוג מטעמים, אשר בהם נדון בסעיף הבא).
את דבר ההתאמה בין שני הביטויים 1חוזטך ו-2וחזטד קובעים על פי הכללים האלה:
= אם הביטויים 61 ו-2ותזטד קבועים, יש ביניהסם התאמה רק אם הם זהים תחבירית.
₪ אם לפחות אחד מהם, למשל [וחזט1, הינו משתנה, אז יש ביניהם התאמה. להלן ההצבה
אשר לאחריה הביטויים יהיו זהים:
ביטוי מעשתנה
1 = 2
א אם 161 ו-2ותז6ד שניהסם ביטויים מורכבים, אז יש ביניהס התאמה רק כאשר:
- הפנקטור הראשי של 61 זהה לזה של 2מוז6ד וגם -
- האריטי של 1 וו ז6ד זהה לזה של 2מזטד וגם -
- יש התאמה בין הארגומנטים: בין ראשון לראשון, בין שני לשני וכך הלאה.
את ההתאמה בין שני ביטויים מורכבים נוח לבצע כאשר כל אחד מהביטויים מיוצג בצורת
עץ. השורש הוא הפנקטור הראשי של הביטוי ומספר בניו הס האריטי שלו. אם השורש ומספר
בניו של שני הביטויים זהים, יורדים למפלס הבא ובודקים אם קיימת התאמה בין הבנים.
נתבונן באיור:
255
1ב א 8
צ ס
איור 10.3 - הצגה של הביטויים [1941]א] ו-[ץ]ט,] בצורת עץ לצורך התאמה
בין הביטוי [[וג1]] לבין []פ,ג] יש התאמה. ההצבה אשר מזהה אותם היא (בתעתיק לועזי)
ביטוי משתנה
5 א
1
8
[צ| ₪]
4 איחוד
נחזור אל הפיסקאות 8 ו-9 של דוגמה 10.2. בפיסקאות אלו מופיעים משתנים. המשתנה הלוגי
מייצג עצם או ביטוי בלתי ידועים. טווח המשתנה הוא פיסקה אחת בלבד ולכן לא מן הנמנע
הוא, שאותם משתנים יופיעו בשתי הפיסקאות. נניח כי בשל סיבה לא ידועה השתמשנו
במשתנים א.צ,2,נז בתוך הפיסקאות ג ו-6 באופן הבא:
בפיסקה 8: | משפחה(א, אם(צבר, צ), 2).
בפיסקה פ: | משפחה(אב(א, צ), 2, ט)
תהליך ההתאמה המופעל באופן פורמלי בין הפיסקאות 8 ו-ט יוביל אותנו אל התוצאות
האלה:
הצבה 01: א = אב(א, צ)
2 = 12
הצבה 02: 2 = אם(צבר, צ).
ע= 12.
אחרי ביצוע ההצבות 01 ו-02 נקבל את המאורע המשותף הבא:
משפחה(אב(א, צ), אם(צבר, צ). 12)
משתמע מכך, כי השם הפרטי של האב זהה לזה של האם, אך זו לא היתה כוונתנו. המשתנה
צ של פיסקה 3 לא היה קשור אל המשתנה ץצ של פיסקה ט, כדוגמת המשתנה א בשתי פיסקאות
האלה (ראה תכנית 7.2 - "תלמידים" שבפרק 07:
סופר(%):- לומד(א, ספרות).
איש מחשבים(א):- לומד(א, מתמטיקה), לומד(א, פרולוג).
206
הזהות בין השס הפרטי של האב לבין זה של האם אירעה בשל התנגשות בין שמות המשתניס
((6[85 6וחגה). המשתנה צ, שהופיע בשתי הפיסקאות במקום השמות הפרטיים, הוביל אותנו
אל מסקנות שגויות. הבעיה הנוספת בשתי הפיסקאות האלו היתה הופעת משתנה א בשני
מפלסים שונים: במקוס הביטוי המורכב אב / 2 בפיסקה הראשונה, וכארגומנט של הפרדיקט
אב בפיסקה השניה. על כך נדון בהמשך (ראה גם דוגמה 10.7 ותרגיל 10.1).
כדי למנוע את ההתנגשות, הקפדנו באופן אינטואטיבי לסמן את משתני הפיסקאות 8 ו-ט
בדוגמה 10.2 באותיות שונות. אבל המחשב פועל על פי האלגוריתם ולא באופן אינטואטיבי
ולכן תהליך ההתאמה זקוק לשיפור שימנע את התנגשות שמות המשתנים.
שינפור תהליך ההתאמה מביא אותנו אל תהליך האיחוד (חסווגשו]ותט). תהליך זה תואר
לראשונה ב-[1965 ,חספחוט0]. ישנ אלגוריתמים שונים של איחוד. להלן נתאר באופן בלתי
פורמלי אחד מהם.
האלגוריתס מתבצע בין שני ביטויים | וחזשד ו-2וחזסך, אשר אותם יש לאחד. כתוצאת ביצוע
האלגוריתם מתקבלת הצבה 0, אשר מגדירה את המאורע המשותף הכללי ביותר של | חחטד
ו-2וחזטך, או מתקבלת הודעת כשלון (6זט11פ)) אס אין הצבה כו.
האלגוריתם פועל על פי הכללים האלה.
כלל 1: קבוע - קבוע
המקרה הפשוט ביותר הוא כאשר !וחזסד ו-2ותזסך הינס קבועים. אם הס זהים, אז הם גם
המאורע המשותף הכללי ביותר שלהסם. ההצבה במקרה זה היא הצבה ריקה (לפעמים
מכניס אותה בשס 11ַח). אס הקבועים אינס זהים מתקבלת הודעת כשלון.
כלל 2: משתנה - משתנה אחר
מקרה פשוט אחר הוא כאשר ! חזטד ו-2וחזטד הינס משתנים אשר סימוניהם שונים (למשל,
האחד - % והשני - צ). במקרה זה מחליפים את הסימון (למשל, את שניהם מסמנים
ב-21, ובמקרה זה ההצבה 0 נראית בתעתיק לועזי משמאל לימין, כך: [2=ץ ,21=א).
כלל 3: ביטוי מורכב - ביטוי מורכב
נניח כי סד ו-2ותזסד הס ביטויים מורכבים. אם הפנקטור הראשי של הביטוי האחד
שונה מזה של השני, או אס האריטי של האחד שונה מזה של השני, מתקבלת הודעת כשלון.
את הפנקטור והאריטי של האחד זהים לאלה של השני, מתבצעת פעולת איחוד בין
הארגומנטים. האיחוד מתבצע בין הארגומנטים הנמצאים במקומות זהים בכל אחד
מהביטויים: בין הארגומנט הראשון של אחד הביטויים לבין הארגומנט הראשון של
הביטוי האחר, בין הארגומנט השני של הביטוי האחד לבין הארגומנט השני של הביטוי
השני וכך הלאה. על פי עקרון התכנות הלוגי, ניתן להתתיל את האיחוד ממקוס כלשהו
ולאו דווקא מן המקוס הראשון.
אם כן, פעולת האיחוד היא פעולה החוזרת על עצמה, משמע - פעולה רקורסיבית. את
הכלל האחרון של פעולת האיחוד נתאר כצעד בתוך הלולאה.
כלל 4: משתנה - ביטוי
הכלל האחרון מתאר את המקרה כאשר לפחות אחד מהביטויים הוא משתנה. כלל 2, אשר
אותו הצגנו בנפרד כדי להקל על הקורא, הוא המקרה הפרטי של כלל 4. את המשתנה הזה
נסמן ב-א, ואת הביטוי, איתו א מתאחד, נסמן ב-חחטו. הצעד הראשון של פעולת האיחוד
הוא בדיקת הנוכחות (60%ת0 75ַ0000):
בודקים האס א מופיע ב-חז6ו
207
אם א אכן מופיע בתוך וחז6ו (למשל אם (%)=וחז16 כמו בדוגמה 10.7), מתקבלת הודעת
כשלון. אם % איננו מופיע ב-וחזסו- נעשית פעולת הצבה של וחזטו תחת א בכל אחת
מהופעותיו של א.
מהן ההופעות של % אשר בהן מתבצעת ההצבה! ראשית, מכיון שאנחנו נמצאים בתוך
לולאת האיחוד ונעשו כבר הצבות תחת משתניסם אחרים, עלול א להופיע באותן ההצבות.
שנית, א עלול להופיע בארגומנטים האחרים של שני הביטויים אשר אותס אנחנו
מאחדים.
ניעזר בדוגמה. נניח כי האיחוד בין א לבין [9]-וח16 הוא חלק של תהליך של איחוד
הביטויים:
. (צ, [פ], [א| 8 ]) 6מ6פפה , ([א|8,5] ,א ,)6מסקקה
הפנקטור והאריטי של הביטוי האחד זהים לאלו של האחר. המשתנה א והביטוי [פ] היגם
הארגומנט השני של 0/3ח6ק, ואנו רוצים לאחדם. נניח כי לפניי כן התבצע האיחוד בין 8
לבין [א|ג]. מכאן, שהופעותיו של א הן:
ביטוי משתנה
- בתוך ההצבה [א] = 4
- בתוך הארגומנט האחרון [א|פ,ג] של אחד הביטויים.
על כן, יש להציב את [ט] תחת א בכל אחד מהביטויים: [א|ג], [א|ט,8].
לאחר הצבת וחח6ו תחת המשתנה % בכל אחת מהופעותלו, המשתנה 8 "מחוסל". כתוצאה של
ביצוע מוצלח של האיחוד מתקבלת ההצבה 9:
אהח6ו = אא ,... ,2וחז6ו = 22 , מחסו = 1
כאשר אף לא משתנה אחד מתוך 1א, 2א, ..., אא מופיע בביטוים 1ח6], 2וחחשו, ..., אחחטו.
נציין, כי ביישומים של אלגוריתם האיחוד אין מבצעים את ההצבות תחת המשתנים (כלומר,
אין מחליפים את תכולת תאי הזכרון), אלא מציינים את הקשר בין כתובות של המשתנים
והביטוי שמחליף אותו.
דוגמאות של איחוד
דוגמה 10.8
נאחד באמצעות האלגוריתם דלעיל את הביטוייס שלהלן:
1
1
2
. ([א|פ ,8] ,א ,6)4מססקה
. (צ ,[פ] , [6)]8|8םססקה8
ו
התחלה: הביטויים 1671 ו-2וחז16 הינם ביטוייס מורכבים. לשניהס מבנה אתיד 3/ַח6קקג
ועל כן בהתאס לכלל 3, נעבור לאיחוד הארגומנטים. אלגוריתם האיחוד אינו מפרט את סדר
בדיקת הארגומנטים ולכן נאחד אותס לפי הסדר הבא: השני, הראשון והשלישי.
208
איחוד הארגומנטים: הארגומנט השני של [ותזטד הוא המשתנה א. הארגומנט השני של 2המחשך
הוא הביטוי המורכב [פ]. בהתאם לכלל 4 מבצעים את הצעדים הבאים.
בדיקת הנוכחות: המשתנה % אינו מופיע בתוך הביטוי [פ].
הצבה: נציב את [פ] תחת % בכל אחת מהופעותיו של א ונקבל:
. [םפ] = א (ההצבה)
.([ס ,5 ,8] ,[ס] ,6)4ת6קקהּ = ₪1ע16 (עדכון של הביטוי)
. (צ ,[פ] ,[פ ,6)]8תס6סקה8 = 162₪2 (עדכון של הביטוי)
הארגומנט הראשון של |וחזסד הוא המשתנה 4 והארגומנט הראשון של 762 הוא הביטוי
המורכב [8,9]. בהתאם לכלל 4, מבצעיםס את בדיקת הנוכחות ואת ההצבה הבאה: [8,9] = 4.
הארגומנט השלישי של מזסד הוא הביטוי המורכב [8,0,9] והארגומנט השלישי של 2חחטך הוא
המשתנה צ. בהתאס לכלל 4, מבצעים את בדיקת הנוכחות ואת ההצבה: [9,ט,8] = צ.
סיוס: בתוסם ביצוע האיחוד של הביטוליים 1 ז6ד ו-2וחזטד מתקבלת ההצבה 0:
[8,0,0] = צ [ס,ג] = 4 פ] = <
דוגמה 10.9
נאחד את הביטויים הבאיס באמצעות האלגוריתס שלמדנו:
(1 ,[3 ,2 ,1] ,)561605 = 62₪1ך
(2 ,[7]א] ,א)801606 = 7622
התחלה: הביטויים 1 וחזטד ו-2ותזסד הינם ביטוייס מורכבים בעלי מבנה אתיד 56160/3. על פי
כלל 3, נעבור לבדיקת הארגומנטים.
איחוד הארגומנטיס: את הארגומנט הראשון מאחדים על פי כלל 2, כלומר מבצעים את ההצבה
של 21 תחת 4 ותחת <:
1 = 4
1 = א
נקבל:
( ,[3 ,2 ,1] ,561605)21 = 1מעסך (עדכון הביטוי)
(1 ,[21|1], 86160%6)21 = 2שעסך (עדכון הביטוי)
הארגומנט השני של [וחזסד המעודכן הוא הביטוי המורכב [1]1,2,3 והארגומנט השני של 2חחסך
המעודכן, הוא הביטוי המורכב [211).
האיור 10.4 מציג את כל אחת מהרשימות [1,2,3] ו-[21]1] בצורת עץ:
209
7%
1 21 /
נ 3
איור 10.4 - הצגת הרשימות בצורה של עץ לצורך האיחוד
הרשימות [1,2,3] ו-[21]1] הן בעלות מבנה זהה, עם פנקטור "דוט" (נקודה) ואריטי 2, ולכן ניתן
על פי כלל 3 לעבור לאיחוד הארגומנטים. את הארגומנטים מאחדים על פי כלל 4 ומקבלים
את ההצבה הבאה:
1 > 21
[2,3] = 7
נבצע הצבה זו בכל המופעים של 21 ושל 1 בהצבה הקודמת ובביטוים !זט ו-2החטד
המעודכנים:
1 = 4ב
1 = א
561605)1, ]1, 2, 3[,(
1" (עדכון נוסף של הביטוי)
((3 ,2] ,[3 ,2 ,1] ,56100%)1
2 (עדכון נוסף של הביטוי)
את הארגומנט השלישי מאחדים על פי כלל 4: מבצעים את בדיקת הנוכחות ואת ההצבה
[2,3]=].
סיוס: בתוס ביצוע האיחוד של הביטויים | וזסד ו-2חוזסד מתקבלת ההצבה 0:
[2,3] = 2 ,[2,3] = 2 ,1 = א ,1 = 4
נזכיר כי אלגוריתם האיחוד אינו מפרט את סדר בדיקת הארגומנטים. סדר זה נקבע בעת
היישום.
ההצבה שמתקבלת בסיום תהליך האיחוד בין שני הביטויים | ותחזסד ו-2וחזסך נקראת המאחד
הכללי ביותר (ז6ו]וחט [2ז6ח86 1פסות, או בראשי תיבות טפוח) של הביטויים !וחזסד ו-2חחחטך.
ה-טקוח מגדיר את המאורע המשותף הכללי ביותר של הביטויים 1וחזטך ו-2וזטד.
המאורע המשותף הכללי ביותר של שני הביטוייסם המוגדר באמצעות ה-טפוח כולל לפעמים גם
משתנים. נציג זאת בדוגמה.
20
דוגמה 10.10
נאחד את הביטוייס האלה:
, ((1.85%6%8₪6 , 6)7128%%826ת266026)50₪66 = ₪1ע0ך
, (ע16ו80ע) עס 1801
( (00029808 09 50161065)1.186
, (008ת5016 ע6סטקם0ס)עץ280016 ,א%)260020 = ₪2ע6ך
([6עט60טע8% 6808 ,108סעק ,85081ק])0165ש56
בתוס האיחוד נקבל את ה-טפוח 0:
( סםה8א1.88% ,%5)7125%%8₪6ת66ש50 = א
895 מססטקנסס = ע16ג86ע
[060026ע5% 6868 (אַס1סעק ,85081ק] = 6002508 0% 1186
המאורע המשותף הכללי ביותר של !וחזטד ו-2וחז6ד, המוגדר באמצעות ה-0, טקוחז הוא:
, (1,85%6%8₪6 , 6)2125%%88₪6מ260026)50060
, (008ת8010 60000662)ע80010?
. ([160026ו5%2 108,68%68סקק, 88081ק]) 5606105
מאורע זה כולל משתנים. ניתן לפרשו כך: כל סטודנט בפקולטה למדעי המחשב לומד פסוסזקי
ו-101070רו .51 0818.
ההצבה, אשר כתוצאת ביצועה יהיו הביטויים !חח זשד ו-2וחזטד, זהיס מבחינה תחבירית, מכונה
בשם מאחד (ז6:]:חט). המאחד מגדיר את המאורע המשותף של הביטויים.
באשר להבדל בין התאמה לבין איחוד: בדיקת הנוכחות היא אשר מבדילה בין שתי הפעולות
האלו. ברוב הגירסאות של פרולוג בדיקת הנוכחות אינה מיושמת מטעמי היעילות, אולם לפני
התחלת האיחוד נעשית החלפת שמות המשתנים, שמונעת את התנגשות השמות בעת ביצוע
הפעולה.
תוגיל 10.1
א מצא את ה-טפוח של הביטויים הבאים:
([8|א] ,צ ,[צ|א])ץ+1תט (2 ,8 ,[8,5,6])ץ+1תט
ב. מצא מה תהיה התשובה לשאילתה המורכבת בהתאםס לגירסת פרולוג אשר ברשותך.
תן הסבר לתשובה.
. ([4|א] ,צ ,[צ|א])ץ+נמט ,(12 ,4 ,[8,0,6])ץ/1מט -?
ג. | הצגנו את השאילתה:
.(א)?-א -?
וו2
וקיבלנו את התשובה הבאה (בגירסת 15008₪1או):
)))))ת)ץ)?)ת)ת)ם)ת))ם > א
[5%808 +0ס 006]
תן הסבר לתשובה זו.
ד. הצגנו את השאילתה:
?- א>אב (א, צ)
מה לפי מיטב הבנתך תהיה התשובה הצפויה של פרולוג! נמק.
ה. בדוק מה תהיה התשובה לשאילתה הבאה על פי גירסת פרולוג שברשותך:
.(צ ,א)צ?נתט (((צ)?)+? ,צ)ץ+1תט ,((א)? ,א)צ+1תט -?
הערה: השאילתה האחרונה מוצגת במאמר [1984 ,45ז18601ו=].
5 המודל החישובי של תכנית לוגית
כאשר נתונה תכנית לוגית, אנחנו מציגים שאילתות ומקבלים תשובות. התשובה מתקבלת בתוס
תהליך החישוב (חסווגוטקוחסס).
בסעיף זה נציג את המודל החישובי ([006וח [8ח9110וטקוחסס) של תכנית לוגית. ניעזר במונחים
הבאים:
א מטרה ([808)- שאילתה שהיא נוסחה אטומית, כלומר אינה שאילתה מורכבת.
+ הורדת המטרה (חסוז0ט66ז |808)- המרת המטרה בגוף החוק, אשר ראשו מתאחד עם
המטרה (ניתן גם להשתמש במונח צימצוס המטרה).
<< המטרה הנגזרת (|808 1%60ז66)- מטרה חדשה שנלקחה מגוף החוק, אשר החליף את המטרה
הקודמת.
נתאר את המונחים האלה באמצעות האיור 10.5:
| תכנית לוגית א4ת06אק: .פ-:8 |
| 8 |
| 3>|
| מטרה: [ |
|
| 6 |
איור 10.5 - הורדת המטרה
22
המטרה ט שבאיור 10.5, היא המטרה הנגזרת, וכך גם המטרה 6.
+ רזולבנטה (זח6צ!050ז)- מטרה, או קבוצת המטרות הקשורות באמצעות הקשר סאג.
בספרי לימוד רבים, כמו למשל ב-[1980 ,ח1150א], מכניסם בשם זה את תוצאות הפעלתו של
כלל ההיסק. לדוגמה, הפסוק 8/6 הינו רזולבנטה של הפסוקים ₪ /שפ,(טר-)/או על פי כלל
ההיסק מסוזט!650ז. הרזולבנטה של תכנות לוגי מתקבלת כתוצאה של הורדת המטרה
באמצעות כלל ההיסק פח6חסס פטסוח.
+ רזולבנטה התחלתית - שאילתה, פשוטה או מורכבת.
נתאר את הרזולבנטה באמצעות התרשים שבאיור 10.6.
| תכנית לוגית אַַת00הק: .6 |
| .2 |
ה------------------------
| שאילתה: .₪ -? |
ב
| רזולבנטה (התחלתית) 8 |
ן
| רזולבנטה 6,ס |
ן |
| רזולבנטה 6 |
איור 10.6 - רזולבנטה
* מטרה בסיסית (20891 6תטסז8)- מטרה שאיננה כוללת משתנים.
+ חישוב של תכנית לוגית - תהליך קבלת תשובה לשאילתה.
- התחלת החישוב: החישוב מתתיל כאשר מתקבלת שאילתה, פשוטה או מורכבת.
- סיוס החישוב: החישוב מסתיים, או שאיננו מסתיים.
- תוצאת החישוב אשר הסתיים: הצלחה או כשלון. במקרה של כשלון מתקבלת
התשובה סת. במקרה של הצלחה מקבלים:
- תשובה 68ע, אס השאילתה היתה בסיסית, או כל אחד ממשתני השאילתה היה
משתנה אנונימי.
- ה-טשות של השאילתה ושל סדרת המטרות, אשר נגזרו מהרזולבנטה ההתחלתית
באמצעות ההצבות על פי כלל ההיסק 5ח6חסק 5ט0סחח.
2.3
חישוב
מסתיים איננו מסתיים
הצלחה | כשלון
5 נקאתם
איור 10.7 - חישוב של תכנית לוגית
להלן התאור של המודל התישובי של תכנית לוגית. את צעדי החישוב נתאר בשפה דמויית
בייסיק:
א. התחלת התישוב: תכנית לוגית 28064₪1 ושאילתה 8, אשר היא גם הרזולבנטה
ההתחלתית.
ב צעדי החישוב:
24
1
מתוך הרזולבנטה 8 בוחרים את המטרה [008.
מתוך התכנית 2806834₪1 בוחרים את הפיסקה 01386, בעלת ראש 0ג116, אשר
הפנקטור הראשי והאריטי של 11634 זהים לאלו של המטרה [603.
אם אף לא פיסקה אחת ב-1א280684 הינה בעלת ראש 11636, אשר הפנקטור
הראשי שלו והאריטי זהים לאלו של [603, עוברים לסיום אי, אחרת, עובריס לצעד 4.
מחליפים את שמות משתני הפיסקה 618086 כדי למנוע את ההתנגשות בינם לבין
משתני הרזולבנטה 8. (את הצורה האלפאביתית של הפיסקה נמשיך לסמן
ב-86טג[6).
מאחדים את המטרה [608 עם הראש 1166 של הפיסקה 856ש013. בזמן האיחוד
מקפידים על בחירת שמות המשתנים כדי שיהיו שוניסם מאלה אשר הופיעו ברזולבנטה
8, בפיסקה 613856 ובצעדיס הקודמים.
אם תהליך האיחוד מסתיים בכשלון, עוברים לצעד 2. אחרת, עוברים לצעד 7.
את ה-טקוח 0 של המטרה 6081 ושל הראש 11684 מציבים בתוך הפיסקה 618085 ובתוך
כל אחת מהמטרות של הרזולבנטה 8 (את המאורע של 013056 נמשיך לסמן ב-86טג61,
ואת המאורע של 8 נמשיך לסמן ב-א).
מבצעים את הורדת המטרה 6081 על ידי המרתה בגוף 808 של הפיסקה 086ג01. את
הרזולבנטה החדשה אשר נקבל, נמשיך לסמן ב-א.
אם הרזולבנטה 8 ריקה, עוברים לסיום ב', אחרת -- עוברים לצעד 1.
ה ה-א
ג סיוס החישוב:
סיוס א': החישוב הסתיים בכשלון.
סיוס ב': החישוב הסתייסם בהצלחה.
התרשים שבאיור 10.8 מתאר את צעדי החישוב של תכנית לוגית. המספרים שבסוגריים
מסמניס את הצעדים שהוסברו קודס.
אתססתק
רזולבנטה ה
בחירת 0081
(1) מתוך 8
בחירת 86ט018
1
8 של 86ש018
עם 0081
(3) לא
של 0180886
כן
ה
איור 10.8 -- מודל חישובי של תכנית לוגית
205
נדגים את המודל החישובי של תכנית לוגית.
דוגמה 10.11
א. התחלת החישוב: תכנית לוגית עָזגת0וו6:ע (ראה פרק 5), ושאילתה מורכבת:
(צ ,)26015 ,(3 ,6ח6305)500הו-?
ב. צעדי החישוב:
1. מתוך הרזולבנטה | 8: (צ,א)5חו6,8(,062ת5)540תה6וח, | בוחרים | את המטרה
1 (א,6805)54006וח
2 מתוך התכנית צַז9ח0וו16 בוחרים את הפיסקה 6 (ח635)51006,006ח בעלת
ראש 11646, אשר הפנקטור והאריטי שלה זהים לאלו של |0204.
5 מאחדים את המטרה |004: (א,5)50006ח68וח, עם הראש 1686 של הפמסקה
6): (ח6צ6,6ח6385)500וח
7 את ה-טפָוח 0 של [0204 ושל 11686: חפוס = א, מציבים בתוך כל אחת מהמטרות של
הרזולבנטה : (,ח6ו5)6ח1ק6 , (ח6ש6385)50006,6וח
8 מבצעים את הורדת המטרה |004 על ידי המרתה בגוף 806 של הפיסקה 66טגו0.
הגוף 806 ריק ועל כן הרזולבנטה החדשה ₪ הלא: (צ,ח6ש6)פחושספ.
9 הרזולבנטה 5: (4,ח6ו105)6ק6פ, אינה ריקה ולכן עוברים לצעד 1:
המטרה [0208: (,ח6צ60105)6.
הפיסקה 56ט3]): ([ק816,ח5)6%6חופטט.
מאחדים את המטרה [0084 עם הראש 11686 של הפיסקה 618086.
את ה-טפוח: חק6!ג = צ, מציבים בתוך המטרה [0209: (ק3!6 ,ח6צ105)6ק6ט
מורידים את המטרה 0081 על ידי המרתה בגוף הריק של הפיסקה 056ג!6.
הרזולבנטה החדשה 8 ריקה ועל כן עוברים לסיום בי.
₪ 00% ס
ג סיוס החישוב:
סיוס ב'. החישוב הסתייסם בהצלחה.
תוצאת החישוב. ה-טקוח של השאילתה ושל סדרת המטרות:
תו = א
הקשה = צ
נעיין בדוגמת חישוב נוספת.
דוגמה 10.12
א. התחלת החישוב: תכנית לוגית "תלמידים" (ראה פרק 5) ושאילתה: !-איש מחשבים(רמיו.
216
...ב את----7-][][=- - - תת תת ₪- תת - - - -ּ//[]/[/[][][]-]-][-]-]-][] ] - ]1.1 ...2.2 [][][[3[[3[[3[ּ[ּתתתתהה ה..."מ'ו
ב צעדי החישוב:
1 המטרה [0208: איש מחשביס(רמי).
2 הפיסקה 56ש618 בעלת ראש 11696, אשר מבנהו איש מתשביבע:
איש מחשבים(א):- לומד(א, מתמטיקה), לומד(א, פרולוג).
5 מאחדים את [0208) עס 11686 של 618056.
7 את ה-טפוח: א=רמי מציבים בתוך 0[2₪86:
איש מחשבים(רמי):-לומד(רמי, מתמטיקה), לומד(רמי, פרולוג).
8 מבצעיס את הורדת המטרה |02084 על ידי המרתה בגוף 800 של הפיסקה 618056.
הרזולבנטה ₪ היא:
לומד(רמי, מתמטיקה), לומד(רמי, פרולוג).
9 הרזולבנטה 8 איננה ריקה ועל כן עוברים לצעד 1.
1
מתוך 8 בוחרים את [0203): לומד(רמי,פרולוג).
מתוך התכנית בוחרים את 86ג01: לומד(רמי,פרולוג).
מאחדים את [0208) עם 11686 של 013056
מורידים את המטרה 0081 על ידי המרתה בגוף ריק של 86ט6!8. הרזולבנטה ₪
היא : לומד(רמי,מתמטיקה).
הרזולבנטה 8 איננה ריקה ועל כן עוברים לצעד 1.
המטרה: לומד(רמי,מתמטיקה).
הפיסקה: לומד(רמי, מתמטיקה).
מאחדים.
מורידים.
הרזולבנטה א ריקה.
₪ שת ₪ 0
ג. | סיוס החישוב:
טיום ב'. החישוב הסתייס בהצלחה.
תוצאת החישוב: התשובה "כן".
6 יישום של המודל החישובי: בחירת מטרה ובחירת
פיסקה
כאשר תיארנו את המודל החישובי של תכנית לוגית, לא פירטנו את שני הצעדים האלה: בחירת
המטרה מתוך הרזולבנטה ובחירת הפיסקה מתוך התכנית. תחילה נדון בבתירת המטרה. נזכיר
את הצעד המתאים של המודל החישובי:
217
6 א) מתוך רזולבנטה 5 בוחרים את המטרה [03:).
מזוית ראיה לוגית, הרזולבנטה שכוללת יותר ממטרה אחת היא פסוק הבנוי מפסוקים
אטומייס באמצעות הקשר סאג. לכן סדר בחירת המטרה איננו חשוב, שהרי הפסוק
המורכב 9 אא 3 שקול מבחינה סמנטית לפסוק 8 סצן4 ט. אולם, מבחינה מעשית יש
חשיבות רבה לסדר בחירת המטרה. על ידי בחירה נבונה ניתן לקצר את תהליך התישוב.
במקרה הקיצוני, הבחירה הבלתי נכונה של המטרה גורמת לכך שאי אפשר לסיים את
תהליך החישוב.
נעיין בתהליך החישוב של השאילתה הבאה:
אב בשושלת(אברהם, קובי).
דוגמה 10.13
א
2|8
התחלת החישוב: התכנית הלוגית "שושלת היוחסין של קובי" (ראה סעיף 7.8) והשאילתה
אב בשושלת(אברהם,קובי).
צעדי החישוב:
1. המטרה |02094 היא:
אב בשושלת(אברהם, קובי).
2 מתוך התכנית בוחרים את הפיסקה 618056:
אב בשושלת(א,צ):- אב(א,.1), אב בשושלת( 1]ץצ).
5 מאחדים את 00041 עם הראש 11686 של הפיסקה 56טג!0).
7 ה-טאח 0 הוא:
א = אברהם.
צ = קובי.
את ה-טפוח הזה מציבים בתוך הפיסקה 0618056 ומקבלים:
אב בשושלת(אברהס,קובי):-אב(אברהם,.1), אב בשושלת(1,קובי).
8 מורידים את המטרה. הרזולבנטה החדשה 8 היא:
אב(אברהם,1), אב בשושלת ,1,קובי).
9 הרזולבנטה ₪ אינה ריקה ועל כן עובריס לצעד 1. אין המודל מפרט איזו מהמטרות
יש לבחור, לכן:
1. מתוך 8 בוחריס את המטרה [0203): אב בשושלת ((1, קובי).
2 מתוך התכנית בוחרים את הפיסקה 2[8056):
אב בשושלת(א,צ):- אב(א,1), אב בשושלת(1,צ).
4 מחליפים את שמות משתני הפיסקה 2]8056):
אב בשושלת(א11):- אב(א11,1), אב בשושלת (11,צ1).
מאחדיס את המטרה [0204 עם הראש 11646 של 618056.
ה-טפוח 9 של [0209) ושל 11686 הוא:
אנ5
צג = קובי.
מציביס אותו בתוך 56ט018 ומקבלים:
אב בשושלת (1,קובי):-אב((11.,1), אב בשושלת .11,קובי).
מורידים את המטרה. הרזולבנטה החדשה ₪ היא:
אב(11,1), אב בשושלת(11,קובי).
הרזולבנטה 8 אינה ריקה ועל כן עובריםי לצעד 1. אין המודל מפרט אישו
מהמטרות יש לבחור, ולכן:
1
מתוך 8 בוחרים את [003: אב בשושלת /11,קובי).
המטרה הנגזרת אב בשושלת(11,קובי) היא הצורה האלפביתית של
המטרה הקודמת אב בשושלת ((],קובי).
נמשיך את החישוב.
מתוך התכנית בוחרים את 018056:
אב בשושלת(א,ץ):- אב(א,1), אב בשושלת()],).
מחליפים את שמות המשתנים:
אב בשושלת(א2/2);- אב(א21,2), אב בשושלת .21,צ2)
מבצעיס את האיחוד
ה-טקוח הוא:
א2>
צ2 = קובי.
מציבים אותו בתוך 0180% ומקבלים:
אב בשושלת ,1,קובי):-אב(,21,,1), אב בשושלת .21,קובי).
מורידים את המטרה. הרזולבנטה החדשה 8 היא:
אב(,21,,1), אב בשושלת ,21,קובי).
הרזולבנטה 8 איננה ריקה, ועל-כן עוברים לצעד 1. אין המודל מפרט איזו
מהמטרות יש לבחור ולכן:
1. מתוך ₪ בוחרים את [003: אב בשושלת(21,קובי).
וחוזר חלילה. נקבל את סדרת הצורות האלפביתית של המטרה
אב בשושלת (1,קובי). החישוב איננו מסתיים.
29
אב בשושלת(אברהם,קובי )
|
|
|
אב(אברהם,), אב בשושלת(,קובי)
|
|
|
אב(10,1), אב בשושלת(1,קובי)
|
|
|
אב(,21,,11), אב בשושלת(.:2,קובי)
איור 10.9 - בחירה של המטרה מתוך רזולבנטה
את תהליך בחירת המטרה מכנים בשם מדיניות הקביעה (עסו1סק 8ח:1ט5066). לכל יישום יש
מדיניות קביעה האופיינית לו. ביישומי המודל החישובי של תכנית לוגית, שמיועדים למחשב
המקבילי, שואפים לחשב בו-זמנית מספר מטרות (גח4|!6[:8ז8ק-6ת3), ראה [1983 ,0זוםגח8].
שפת הפרולוג, המיישמת את המודל החישובי של תכנית לוגית במחשב בעל פעולה סדרתית,
מאמצת בתור מדיניות הקביעה את מדיניות המחסנית (ע01:0 5180%):
₪ הפרולוג האנגלי בוחר מתוך הרזולבנטה ₪ את המטרה השמאלית ביותר.
₪ הפרולוג העברי בוחר מתוך הרזולבנטה ₪ את המטרה הימנית ביותר.
לאחר הבחירה מתבצעת הורדת המטרה ודחיפת המטרה הנגזרת אל ראש המחסנית. אם כן,
מתוך הרזולבנטה 8:
אב(אברהס, 1),אב בשושלת ,1,קוב').
תיבחר המטרה |008: אב(אברהם,1). חישוב עם הבחירה הזאת הוצג באופן בלתי פורמלי
בסעיף 7.8.
הצעד האחר שאיננו מפורט במודל החישובי של תכנית לוגית הינו בחירת הפיסקה:
6) מתוך התכנית 78006841 בוחרים את הפיסקה 56טג61) בעלת ראש 1630 אשר
הפנקטור הראשי והאריטי של 11636 זהיס לאלו של המטרה [6093.
מזווית ראיה לוגית ניתן לראות את הפיסקאות בעלות ראש 11646 המתאחד עם |004,
כקשורים באמצעות הקשר הלוגי 08. לדוגמה:
220
. (₪,1, [ ]) 6תססק8
08|
. (1שסא, ,1, 7) 6תסססה- : ([1שסא |א],, [:'| א ]) 6ת6ססה
הפסוק ט 008 8 שקול סמנטית לפסוק 8 08 ט. לכן תיאורטית אין זה משנה אם נתחיל את
החישוב מפסוק 3, או מפסוק ט.
אבל באופן מעשי יש חשיבות רבה לסדר הבתירה של הפיסקה. נעיין בתהליך חישוב השאילתה:
(8[ט,ה].0)4ח6קקג על פי הפרוצדורה 6חטקקה שבפרק 9.
דוגמה 10.14
א. התחלת החישוב: הפרוצדורה 6חסקקה (ראה סעיף 9.3) והשאילתה
(8,[פ,4)4,]8ַתשקק -7
ב צעדי החישוב:
1
.5
המטרה 02081 היא (0)4..]8.08חססקב. אין המודל מפרט באיזו פיסקה נבחר מתוך
הפיסקאות בעלות ראש המתאחד עם המטרה |0023 ולכן:
בוחרים מתוך התכנית את הפיסקה 6
. ( 1ש6א,.1, 7') 6תסקקהּ-: ( [1ש6א |א] 0 [ד|א] ) ת6סקה
מאחדיס את [0204 עם הראש 11696 של 6!8056.
את ה-טקוח:
4
/
8
[ד|א]
[פ,8]
[1ש6א |א]
מציבים בתוך המטרה 004 ובתוך הפיסקה 613056. הפיסקה החדשה 6356
תהיה:
(1ש6א, [, ה] , 1') 6ח6פקה- : ( [ש6א |א] , [8,0] , [7|א] )4ת6קקהּ
פיסקה זו הינה בעלת ראש 11686 הזהה תחבירית ל-0031, שלאתר ההצבה.
מבצעיסם את הורדת המטרה. הרזובלנטה החדשה א (אשר היא גם המטרה הנגזרת)
הינה: (1ו6צ1 ,[3,9] ,ד)0ח6קקה
הרזולבנטה החדשה ₪ אינה ריקה ועל כן עובריס לצעד 1.
1 המטרה |02084: (0)7,]3,9[,61ת6קקג. אין המודל מפרט איזו פיסקה נבחר מתוך
הפיסקאות בעלות ראש המתאחד עם |[008 ולכן:
22[
2 מתוך התכנית דלעיל בוחרים את הפיסקה 56טש613:
(6₪1א, .1, 7) 6מ6סה- : ( [1ש6א | א] ,.1, [ץ | א] ) 6מ6קפה
4 מחליפים את שמות משתני הפיסקה 018056:
. (6₪11א, 1.1, 6)711תספפה- : ([611א| 1א] , 1ז, [1י'| 1<] )4ת6קפהּ
5 מאחדים את [0034 עס הראש 11696 של פיסקה 618056.
7 את ה-טפוח :
[1|11א] = ך
[מ,ה8] > 71
[11ש6א | 1א] = זשסא
מציביס בתוך ההצבה הקודמת, המטרה והפיסקה:
[1|11א,א]=8 (ההצבות
[611א | 1א, א]=8 | הקודמות)
([61א|1א], [₪,3], [11| 1] )8ת6פפ8 | (המטרה)
-: ([6₪11א | 1א] , [פ,8], [1ד]|1א])4תסקסהּ | (פיסקה)
. (11ש6א, [פ, 8], 11) 6ת6פקהּ
8 מבצעים את הורדת המטרה. הרזולבנטה החדה 8 (שהיא גם המטרה הנגזרת)
הינה: (11 וא ,[פ,ג] ,1 0)1ח6פקבה
9 הרזובלנטה 8 איננה ריקה, ועל-כן עובריס לצעד 1.
וחוזר חלילה. כל עוד נמשיך לבחור את הפיסקה השניה של התכנית דלעיל, לא נסיים את
החישוב. אולם החישוב יסתיים אס נבחר את הפיסקה הראשונה של התכנית:
1 המטרה: (1 1אוּסא,[1.]8,0 0)1ח6פקה
2 הפיסקה: (,0)]/1..1ח6קקה
4 החלפת שמות משתני הפיסקה: (,1צו6א,.1וו6א,ן])8ח6קקה
5 מבצעים את האיחוד.
7 את ה-טפוח:
[] = 71
[פ, 8]=שסא
[פ,11=]8שסא
221
מציבים בתוך ההצבות הקודמות, המטרה והפיסקה:
[1א,א]=8 (ההצבות הקודמות)
[פ,1,8א, א]-8
. ([ס,3],[ס,ב6)][,]3ת6קק8 (המטרה)
. ([ס,3],[ס,6)][,]3ת6קק3 (הפיסקה)
8 מבצעים את הורדת המטרה.
9 הרזולבנטה החדשה ₪ ריקה ולכן עוברים לסיום בי.
ג. | סיוס החישוב:
סיוס ב': החישוב הסתיים בהצלחה.
תוצאת החישוב: ה-טפוח של השאילתה ושל סדרת המטרות:
[1א, א]=3
[מ,1,3א,א]-ם
כפי שראינו בדוגמה, סיוס או אי-סיום של תהליך החישוב תלוי בבתירת הפיסקה 56טג!0 מתוך
התכנית 1א/0008ק. בחירת הפיסקה לצורך הורדת המטרה, במקרים בהם יש יותר מפיסקה
אחת, בעלת ראש המתאחד עם המטרה, היא בחירה לא-דטרמיניסטית (שו81ותווחז0616תסם).
ביישומי תכנות לוגי שנועדו למחשב מקבילי, שואפים להוכיח את השאילתה בו-זמנית במספר
דרכים (ות418[!6!15ק-זס), ראה: [1983 ,0זוקְ4ת5].
שפת הפרולוג, המיישמת את הרעיון של תכנות לוגי במחשב סדרתי, בוחרת מבין הפיסקאות
אשר ראשן מתאחד עם המטרה, את הראשונה לפי סדר ההופעה. הדמיית בתירה
לא-דטרמיניסטית נעשית באמצעות נסיגה (8חו966ז040%1).
7 יישוס של המודל החישובי - תרגול
השאלות שלפנינו הן הדמיית הלא-דטרמיניזם של תכנית לוגית. מטרת התרגול - ללמוד את
השפעת הסדר של הפסקאות והמטרות על תהליך החישוב.
שאלה 1
רקע:
לפניך שש גירסאות להגדרת היחס 6510/2סת3. את הגדרת 3605101 הצגנו בפרק 7.
-: (ת50ע6ק ,ע065%60ת656021)2ס6ת8
. (ת50ע26 ,ע6)4665%0ת6ע8ק
-:(ם26250 ,065%502ת656021)42ס6ת8
, (%ת11 ,ע066500ת4)%ת826ק
. (ת50ע26 ,את650602)1,1סת8
23
הגדרת 8665102 היא הדמייה של בחירת המטרה הלא-דטרמינסטית בעת התישוב של
1
-: (ת262580 , 2065602 )656022סת8
. (ת90ע26 ,ע66500ת4)%ת6ע82ק
-: (ת50ע26 ,ע065060ת6656022)4ת8
, (ת590ע6ק ,את6656022)1,.1ת8
. (%ת21 ,ע06560ת2)%ת826ק
הגדרת 601013ח8 היא הדמייה של בחירת הפיסקה הלא-דטרמיניסטית בעת החישוב של
0
-: (ם80ע26 ,ע665%60ם66586023)2ת8
, (%מ11 ,065%602ת5)4ת826ק
. (מ6290ק ,את06650023)21ת8
-: (ם80ע26 ,ע665%50ת8066056023)4
. (ת26250 ,ע665%0ת6)4ת6ע8ק
הגדרת 4ז66310ח8 מיישמת את הכתיבה הלא-דטרמיניסטית של הפסוקים בגוף החוק.
-: (ם80ע26 , ע6655024)42065%0ת9
. (ת26280 ,ע66500ת%6)4ת826ק
-: (ת80ע26 ,ע66560ת6655024)2ת8
,(%ת21 ,ע665%0ת6655021)2ת8
. (ת26250 ,את6)11ת6עפק
הגדרת 5זסופטסחג היא הדמייה של בחירת המטרה הלא-דטרמיניסטית בעת החישוב של
4
-:(ת80ת26 ,ע606560ם6656025)4ה8
. (ת90ע26 ,605%602ת6)2ת6ע8ס
-: (ת580ע26 ,ע66500ת668%025)4ת8
, (ת26250 ,את6)11ת6ע8ק
. (%ת1,1 ,ע06500ת6656025)84ת8
הגדרת 6זסוט6חג היא הדמייה של בתירת הפיסקה הלא-דטרמיניסטית בעת החישוב של
4
-:(ת80ע262 ,ע66800ת6656026)42ת8
, (%מ11 ,ע06500ת6026)4 8605
. (ח50ע26 ,א%ת6)11תסעפק
-: (ם90ע26 ,ע068%0ת6680026)4ת8
. (ת26250 ,ע66800ת6)4תסעהק
224
לפניך בסיס הנתונים:
. (ם8ת8028 ,ת%6280)%ת826ק
. (15880 , ם8ת6)8028ת6עהק
. (18000 ,6)15880תסע8ק
. (תקספסץ ,5)18%00מס6ע8ק
בצע את המטלות שלהלן.
א. מצא את כל התשובות לשאילתות האלו :
. (ת50ת26 ,ע0665%60ת1)4עסטפ6סתה -?
. (ת26250 ,065%02ת6655023)12ת8 -?
. (ת26250 ,005%02ם665%025)4ת8 -7?
ב. תאר את תהליך החישוב של השאילתות האלו :
. (תק056עץ ,ת6680022)56280ת8 -?
. ((תק6פסע ,ם0055021)66280ת8 -?
(הערה: ניתן להיעזר ב-806ז1).
ג. בדוק האס מסתייס חישוב השאילתה:
. (15880 ,ש8₪ת605%026)8028ת8 -?
ד מצא את כל התשובות לשאילתות האלו. תן הסבר לסדר הופעת התשובות.
. (ת6280ק, 002801 ) 069%021ת8 -7?
. (ת26280, 602801) 86655023 -7
ה. תן הסבר לסדר של הופעת התשובות לשאילתות:
. (תק56סעץ ,665%602ת650021)4סת8 -7
. (תק6פסץ ,ת065605ם41)לעסספפסת8 -7
ו בדוק מהן התשובות של פרולוג לשאילתות הבאות:
. (ת80ע26 ,ע606800ת6680022)4ת8 -7?
. (ת26250 ,ע06860ת6650021)2ת8 -?
תן הסבר לכל אחת מהתשובות שהתקבלו.
225
באזו משש התכניות היית בוחר כדי לענות על השאילתה שה-זסו00ח4 בה ידוע,
וה-ח50ז6/ לא ידוע, כדוגמת:
. (ת26280 ,8₪ת605002)8028ת8 -7
תאר את שיקולי הבחירה.
באיזו תכנית היית בוחר כדי לענות על השאילתה:
-7?
. (18000 ,ע065%0ם65602)4סת8
נמק את בחירתך.
שאלה 2
חזור לתרגיל 9.5 של הפרק הקודם וענה על השאלות הבאות:
א.
עיין בפרוצדורות 50018811 ו-11512פט5 והשווה בין התשובות לשאילתות זהות, אשר התקבלו
על-פי הפרוצדורות האלו. תאר את ההבדלים שבין התשובות והסבר אותם.
בצע את המטלה א' כלפי הפרוצדורות 813ו5₪01 ו-011514ש5.
בצע את המטלה אי כלפי הפרוצדורות 5₪911815 ו-50011816.
בצע את המטלה אי כלפי הפרוצדורות 8/7ו5601, 11818פט5 ו-50011519.
בחלק של השאילתות ישנן תשובות החוזרות על עצמן עם הקשת ";". אתר אותן והסבר
את התופעה.
באיזו מן הפרוצדורות היית בוחר כדי לענות על השאלה:
מצא את התת-רשימות של הרשימה הנתונה [8.0,6.6].
נמק את בחירתך.
באיזו מן הפרוצדורות היית בוחר כדי לענות על השאלה:
מצא את הרשימות אשר [ג] היא תת-רשימה שלהם.
נמק את בחירתך.
באיזו מן הפרוצדורות היית בוחר כדי לענות על השאילתה:
- (810115%)][,1186% -?
באיזו מן הפרוצדורות היית בוחר כדי לענות על השאילתה:
?- 50115%)1,15%6 ,1,186( .
206
. (צ,א)516ט40 -7 | :תס זם .(א,[600216)]8,5,6 -7 | ִפַה61בץ:
7, 8860א)16ט40 :6811 [0] 7, ([60,, 3] )16פט60 :6311 [0]
7, 016)1177גוס :1 [1] .(1191ש6א,[600518)]5,6 :6811 [1]
1266(7שפא, 408516)1263 :6811 [2] . (1272א6א, [6] )16פט60 :6811 [2]
7, 9פ408516)7349 :6811 [3] . (1353ש6א, [ ] )60516 :6811 [3]
7, 516)14359ש40 :6811 [8] .(353 ,[])516ט60 :1411 [3]
1520(7שא, 608516)1521 :6811 [5] . ([516)]6[,]6,6ט60 :18א6 [2]
27,, 5186)1607ש40 :6811 [6] .([16)]5,6[,]5,5,6,6פט60 :018 [1]
,3 :6811 [7] .([408516)]3,5,6[,]8,3,5,2,6,6 :18א6 [0]
61782(7א, 40516)7779 :6811 [8] .5ת6000510ץ 3 ה1 ...
,)1 :₪811 [9]
0619547 516)1951פטס3 :₪811 [10] [4,8,5,5,6,0] = א
איור 10.10 - חישוב שתי שאילתות:
(א) החישוב של (א (916)8.0.6ט40 מסתיים,
(ב) החישוב של (צ .א)6!פג60 אינו מסתיים.
-: ([8|1],א)18552 . ([א],א):185
.(1,א)18552 -: ([86860|1811],א)1856
. ([א],א)18552 . (1355),1811
.(185%52)08,1155 -7 | :8ַת6801 .(1865)8,115% -7 | :8ַת861ץ:
7 :6811 [0] 221 :611 [0]
57 :6811 [1] .([185%)3,]8 :16א6 [0]
9,727 :6411 [2] .0 1 1 ...
]3[ 6811: 27
]8[ 6411: 22
]5[ ₪411: 227
115% = ]8[ ;
]0[ :660: 185%)8,]8[(.
77 :6811 [6] .(1856)8,1811183 :6811 [1]
27 :411 [7] .([185%)3,]8 :16א6 [1]
227 :6811 [8] .([1855)3,]1680182,8 :16א6 [0]
97 :6811 [9] .0 2 ה1 ...
]10[ 6411: 7
115% = ]686182,8[ ;
]0[ :660: 185%5)3,]1686182,8[( .
.([1855)8,]8 :660ץ [1]
.(1855)8,1811262 :6811 [2]
.([185%5)8,]3 :16א6 [2]
.([185%)3,]11640261,8 :16א6 [1]
. ( [8, 11686261, 11636182] ,185%)3 :6%16 [0]
.0 3 ת1 .
1155 = ]1680182 ,]1630261,8[ .
איור 10.11 - הדמייה של בחירת הפיסקה הלא-דטרמניסטית:
הפרוצדורות 351! ו-8512].
207
פרק 11
פרדיקט? המערכת 006 0-1
מערכת של פרולוג מכילה יחסים, הקרויים פרדיקטי המערכת. פרדיקטים אלה הוגדרו מראש
והמשתמש או המתכנת אינו יכול לשנותם. בפרק 7 היכרנו אחד מהם, פרדיקט המכונה 86ז1.
אלה מן הקוראים, שעובדים עם גירסה 801.06ק-1א1500/ו בוודאי גילו שהיחסים זש6טות6וח
ו-0מ3006 הינס פרדיקטי המערכת.
בפרק זה נכיר שני פרדיקטי המערכת: וט ו-וסח. הפרדיקט וטכ) מונע נסיגה וחיפוש של פתרון
אלטרנטיבי. את השימוש בו נדגים בסעיף 11.1. הפרדיקט וסח אמור לבטא את הקשר הלוגי
1סא. בסעיף 7.2 הצגנו חוק המכיל את היחס ות (לא). בפרק זה נעמיק את ההיכרות עם
הפרדיקט זסת. בסעיף 11.2 נראה איך משתמשים בו בפיסקאות ללא משתנים. בסעיף 11.3 נדון
בבעיות שנוצרות עקב השימוש בו בפיסקאות עם משתנים. לסיום, בסעיף 11.4 נציג שאלות
לעבודה עצמית בנושאי שימוש בפרדיקטים זט ו-זסח.
1 בקרת נסיגה באמצעות )0
מערכת הפרולוג מבצעת בקרה על נסיגה באמצעות פרדיקט המערכת, המסומן ב-:" והמכונה
). את פעולותיו של 081 נכיר באמצעות הדוגמאות שלהלן.
20
10
10 20 90
איור 11.1 - מדרגות
|08
דוגמא 1: מדרגות
נעיין במדרגות באיור 11.1. האורך והגובה של כל מדרגה הינם 10 סנטימטרים. באמצעות
פונקציה מתמטית ניתן לתאר את המדרגות כך:
90 > א< 0
90 > א > 10 0 ן = (א)ע
0 < א 29|
היחס שבין ארגומנט הפונקציה א, לבין ערך הפוקנציה (א)ץ, מתבטא על ידי שלושת הכללים
האלה:
4 > א שך 0 = (א)ץ .1
.+ > א פאג 10 < א עך 90 = (א)צ .2
.4 < א אך 0 = (א)צ .3
את הכללים האלה ניתן לבטא בשפת הפרולוג באמצעות היחס (צ,א)!מסווסתט אשר בו
המשתנה צ מסמן את ערך הפונקציה, התלוי בארגומנט %:
.4 > א -: (0 ,א)1ת6510תנ1
.1 > א ,10 =< א -: (10 ,א)1ת610סתנ?
.4 =< א -: (20 ,א)1ת0ס661תנ1
תכנית 11.1 - מדרגות
את השאלה "מהו ערך של צ עבור 5=א" מבטאים באמצעות השאילתה:
(צ ,1)5חסנו6חט(-?. נעקוב אחרי תהליך קבלת התשובה:
4 -7 |
. (צ ,1)5ת%10סתט] -? | :1
?(80צ ,1)5תס1>סתט? :6811 [0]
7 > 5 :6811 [1]
7 > 5 :16א6 [1]
71 ,1)5ת6610תט) :816א6 [0]
.6000010ע 1 ת1 ...
0 = צ
התשובה 0=צ התקבלה על פי החוק הראשון. כדי לבדוק אם יש תשובות נוספות נקיש ";.
הקשת ";" מתקבלת על ידי מערכת הפרולוג כהודעת כישלון, המחייבת נסיגה.
1 = ץצ
]0[ 2060: 7
]1[ 2060: 5 > 7
]1[ /811: 5> 7
229
בחיפוש אחר תשובות נוספות, נבדקת האפשרות להיעזר בחוק השני ובחוק השלישי. האפשרויות
האלו נפסלות, ולבסוף מתקבלת תשובה שלילית, המעידה על כך שהתשובה היחידה היא 0 = ץ:
]1[ 0811: 5 <>= 17
]1[ ?811: 5 <>= 7
]1[ 6811: 5 <>= 71
]1[ 9811: 5 <>= 17
]0[ ?811: ,1)5ת0ס61סתט? 80(?
סתם
כדי ליעל את תכנית 11.1 ניעזר בשיקול הבא. הארגומנט % הוא מספר בעל ערך מוגדר. בהתאם
לערכו הוא נמצא בתחוס השיפוט של חוק אחד בלבד. למשל, אם 5=א, אז הוא אינו גדול מ-10,
ובוודאי שאינו גדול מ-20. לכן, קבלת תשובה על פי החוק הראשון הינה האפשרות היחידה
עבור 10)א ואין צורך לבחון אלטרנטיבות. במילים אחרות, ערכו של הארגומנט א קובע באופן
חד-משמעי את החוק שעל פיו מתקבלת התשובה. כדי לחסוך חיפוש מיותר של תשובות אחרות,
נוסיף לתכנית 11.1 את פרדיקט המערכת וש:
.5 > א -: (0 ,א)2ת610סתגת
.! 0 > א ,10 >< א -: (10 ,א)2ת6610תט1
.5 =>< א -: (20 ,א)2ת6610תט?
תכנית 11.2 - מדרגות עם ה-6₪1
התכנית 11.2 מבטאת את אותם שלושת הכללים, שביטאה התכנית 11.1, משמע שמבתינה לוגית
התכניות 11.1 ו-11.2 הינן שקולות. כדי לעמוד על השינוי הפרוצדורלי, כלומר השינוי בביצועו
נציג שאילתה ונעקוב אחר תהליך קבלת התשובה:
| ?- 64.
. (צ ,2)5ם6%610תט+ -? | :0
?(80+ ,2)5ת6610מט? :6811 [0]
7 > 5 :6811 [1]
7 > 5 :16א6 [1]
7 ,2)5ת10ס6תט? :1%6א6 [0]
.תע 1 ת1 ..
0 = ץצ
הקשת ";" מתקבלת על-ידי המערכת של פרולוג כהודעת כישלון, הדורשת לבדוק את
האלטרנטיבות. אבל ה-וט6 מונע את הנסיגה ובדיקה של אפשרויות נוספות:
0% = צ
?0 ,2)5ת6610תט? :660 [0]
80(? ,2)5ת10ס6תט? :2811 [0]
סת
220
החלטנו לערוך שינוי נוסף בתכנית הלוגית המתארת את המדרגות. לשם כך נעזרנו בשיקול
הבא: כל עוד 10 + א, הפרדיקט 01 מונע לעבור למימוש החוק השני. לכן התנאי 10 < א
בחוק השני הינו תנאי מיותר, והוא הדין לגבי התנאי 20 < א בחוק השלישי:
.! 9 > א -: (0 ,א)3ם6610תט1
.! 0 > א -: (10 ,א)3ת6610תט1
. (20 ,%)3ת6610תט1
תכנית 11.3 - מדרגות עם ה-זט) האדום
הפרדיקט וַטכ) שמופיע בתכנית 11.3 מכונה ה-)06₪ האדום. אותו פרדיקט המערכת, המופיע
בתכנית 11.2, מכונה ה-)0) הירוק. נדון בהבדל שבין שתי הופעותיו של זט6.
התכנית 11.3 פועלת בדומה לתכנית 11.2. נציג את השאלה, מהו הערך של צ עבור 5-א. נעקוב
אחרי תהליך קבלת התשובה והזמנת תשובות נוספות:
| 7- 4
. (צ ,3)5ת6%510תט] -? :8ת801ע6
. (80+ ,3)5ת610סתט? :6811 [0]
71 > 5 :6811 [1]
17 > 5 :16א6 [1]
71 ,3)5ת6610תט+? :16א6 [0]
.0 1[ ת1 ...
1 >= ץצ
?(0 ,3)5ת6610תט] :2660 [0]
?80 ,3)5ת610סמט? :811? [0]
סת
אפשר ללמוד מכך, כי התכניות 11.2 ו-11.3 מספקות תשובה זהה לשאלה מהו הערך של ץצ עבור
א מסויים. עם הקשת ";" בכל אחת מהתכניות האלו, מתקבלת התשובה סח באופן זהה. בכל
זאת, יש הבדל מהותי בין התכנית 11.2 לבין 113, וכדי להבינו, נחזור שוב לתכנית 11.1.
התכניות 11.1 ו-11.2 מספקות תשובות זהות לשאלות זהות. פירוש הדבר, כי אס נמחק את
ה בתכנית 11.2, תשובותיה לא ישתנו. במקרה זה אומרים כי הסמנטיקה (כלומר
המשמעות) של תכנית 11.2 איננה משתנה אחרי נשירת ה-וט). לעומת זאת, אם נמחק את
ה-זט) בתכנית 11.3, משמעותה תשתנה. נעיין בתכנית הבאת:
.1 > א -: (0 ,א)1ם6010םט+
.1 > א -: (10 ,א)4םתס61סתט+
. (20 ,א)1ם6510תט+
תכנית 11.4 - מחיקת וט) אדוסם
-תחילה נוודא, כי גם על פי תכנית 11.4 הערך של צ עבור 5-א הינו 0.
231
-? |
. (צ ,4)5תסנ6סתט? -? | :שת801ת%
7 ,66101)5ת? :6811 [0]
7 > 5 :6811 [1]
?7 > 5 :160אם6 [1]
7 ,1)5ת6510תט] :16א6 [0]
.תת 1 ת1 .
0 > ץצ
כעת נבדוק האם 0 = צ היא התשובה היחידה. נזמין תשובות נוספות:
0 = ץצ
71 ,4)5ת6010תט? :2680 [0]
17 > 5 :56680 [1]
17 > 5 :911 [1]
17 > 5 :6811 [1]
7 > 5 :16א6 [1]
7 ,10)5ת10ס6תו? :16א6 [0]
.0 1[ תב .
1 = ץצ
7 ,00)5ת6610תט+ :660 [0]
?7 > 5 :6600 [1]
> 5 :811? [1]
7 ,1)5ת6%10מט? :1%6א6 [0]
.0 1 ת1 ...
1 = ץצ
7 ,1)5ת6610תט? :660 [0]
7 ,5)%מ10ססתט? :811? [0]
סמ
את אשר קיבלנו נפרש כך: כתוצאה של הקשת ";" אחרי התשובה 0=צ, נסוגה התכנית צעד
אחד. היא חוזרת אל המטרה (/,4)5ת0ו61תט1 ומנסה להפעיל את החוק השני. היא מצליחה
לממשו כי הרי 5 קטן מ-20. כך אנחנו מקבליס תשובה נוספת: 10=צ. לאחר הקשה נוספת של
?" אנו מקבלים תשובה: 20=צ, שהרי העובדה (20,%)4מ6110חט היא עובדה כללית (ראה סעיף
7, המתקיימת עבור כל הצבה תחת א, ובכלל זה עבור 5=א%.
קיבלנו, כי עבור %55 על פי התכנית 11.4 יש ל-צ שלושה ערכים שונים. לכן אנו מסיקים, כי
היחס (ץ,א)4חס:ו6תט] אינו מבטא את פונקצית המדרגות (א)ץ, כפי שהגדרנו אותה באמצעות
שלושת הכללים והיחס (צ,1)8תסנוסחגח.
212
כאשר הנוכחות או אי הנוכחות של זטכ) איננה משנה את משמעות התכנית, אומרים כי ה-זט6
הוא ירוק. לדוגמה, כל אחד מפרדיקטי ה-01 של תכנית 11.2 הוא ירוק. כשהתכנית שמכילה
6 שונה מזו המתקבלת אחרי נשירתו, אומרים כי ה-וט0 הינו אדוס. כל אחד מפרדיקטי
ה%ט6 בתכנית 11.3 הינו אדוס.
דוגמה 2: חבר ברשימה
נציג דוגמה נוספת של ה-ו1ט) האדום. נעיין בפרוצדורה הבאה:
.5 -: ([1]א] ,א)9₪0621ם
.(1 ,א)₪6₪0621 -: ([ד| צ] , א) 621סמסם
תכנית 11.5 - פרוצדורה ז6סוחסוח עס זט
נשווה בין תכנית 11.5 לבין הפרוצדורה זססוח6וח של סעיף 92. התשובה לשאילתה
(1,2,3] ,1)2 ז6טות6ות תהיה חיובית, כלומר, זהה לזו של ([2,]1,2,3)ז6טוח6ות. הבה נעיין בשאילתה
נוספת ובתשובה שהתקבלה:
.. ([1,2,3] ,א)6₪0621ם -?
;1 = א
סת
ה-6 מונע קבלת תשובות נוספות. אחרי נשירתו מתקבלת פרוצדורה זסטוחטוח שאותה היכרנו
בפרק 9. היא שונה מ-!זססוח6ות, כפי שנראה זאת באמצעות השאילתה שלהלן:
. ([1,2,3] ,א)062מ₪0 -?
;1 = א
א
א
סם
2
3
9% -+
דוגמה 3: הפרוצדורה עקקגּת
נעייען בשתי התכניות שלהלן וננתח את התשובות שהתקבלו על פיהן.
,! ,אתטסץ -: 2עסקפת ,פתטסע -: 1עקקפת |
| |
| . עַת6 [68ת | . צַת6810ת |
| .בת -: 2עסקאת | .ה16ם -: 1עקקהת |
| .שחטסץ | קחטסץ |
| .תס1ע | .הסנת |
ן |
| .2צסספת -7? | .1 -7 |
ן סת | 8 |
יוו הוור
תכנית 11.6 -- פרוצדורות עְקקגת עם ובלי זטי)
23
את קבלת התשובה לשאילתה 1ַעְַפִּת-? נתאר באמצעות עץ שבאיור 11.2. השאילתה נמצאת
בשורשו של העצ. בניו של השורש הינס גופיהס של החוקים, אשר השאילתה עומדת בראשם.
הבנים מסודרים משמאל לימין בהתאם לסדר הופעת החוקים בתכנית. בהוכתת השאילתה אנו
יורדים לעומק מן הצד השמאלי, עד שמגיעים לעלה ץמ₪6811, ומשס חוזרים אל השורש ופונים
אל הצומת חסח. העובדה מסוז נמצאת בתכנית, מה שמנמק את הופעת עלה 6טזו. העץ שבאיור
2 הינו עץ החיפוש של המטרה 1ַעְקְקִ18. אם כן, התשובה החיובית לשאילתה 1ע0-?
מתקבלת על פי החוק השני: הסגז -: | עססגת.
1סספת
"
תס1ע צֶת6816ת , שתטסעץ
| |
-
66 עתםס 68[1ת
איור 11.2 - עץ החיפוש של [עסספת
האיור 11.3 מתאר את עץ החיפוש של המטרה 2ץסקג. הפרדיקט וט0) קוטע את העץ במקום
המסומן ב-+. פירוש הדבר הוא, שבהגיעו אל העלה עה!!169,! אין אפשרות לסגת ולחפש דרך
אלטרנטיבית אשר מובילה אל הפתרון. לכן, התשובה לשאילתה עעפְפג-? הינה שלילית.
2נקפפ
"וו יי
ת16ת עֶת6816ת, ! , שתגוסץ
. |
|
6 צֶתס [68ת, !
איור 11.3 - קטיעת עץ החיפוש באמצעות 1ט2)
הפרדיקט 61 שמופיע בחוק כעְפסּח, הינו אדום. נציין הבדל נוסף בין הפרוצדורות [עקקגת
ו-כעְסְקְגת. שינוי סדר החוקים בפרוצדורה 1ַעְססּת, לא יגרוס לשינוי התשובה. במובן זה
הפרוצדורה וַעְסַסְגּת היא הצהרתית ותואמת את העקרון של התכנות הלוגי. לעומת זאת, השינוי
בסדר הופעת החוקים בפרוצדורה 2עְפקגּת גורס לשינוי התשובה.
214
2סספ
9 יי
צֶתס 61ת, ], שתטסץ ת10ת
| |
*
|
ז
צס [68ת, 1 6
איור 11.4 -- שינוי סדר החוקים בפרוצדורה כקקגת
כאשר משנים את סדר החוקים, מגיעה התכנית אל הצומת השמאלי חסוז, במהלך חיפוש
התשובה. משם היא יורדת לעומק, אל העלה 6טזו, אשר פירושו - קבלת תשובה חיובית.
ברוב התכניות הלוגיות, שאותן ראינו, שינוי סדר הפיסקאות לא שינה את אוסף התשובות
שאותן ניתן היה לקבל. במילים אחרות, שינוי סדר הפיסקאות לא שינה את הסמנטיקה (כלומר
את המשמעות) של התכנית. לעומת זאת גילינו, כי כאשר בתכנית מופיע ה-וטל) האדום, שינוי
סדר הפיסקאות בתכנית עלול לשנות את משמעות התכנית, כלומר - לשנות את אוסף התשובות
שהיא מציגה.
טיכוס
נתאר את פעולת הפרדיקט +ט2) באופן כללי. נתבונן בשתי הפיסקאות הבאות:
,! ,2ת61%10ת00 ,1צַת01%10ה00 -: 0081
. 8ת61%10ת60 ,3ת81%10ח60
.תח01%10ח60 -: 0081
כאשר מציגים את השאילתה [008-? יפנה פרולוג אל התוק הראשון. אס המטרה 0001ו620061)
נכשלה, הוא עובר לחוק השני. אם המטרה 1ח606/0:0 מצליחה, הוא עובר ל-002וו/6006.
אס המטרה 2תסוז6001 נכשלה, חוזר פרולוג אל 1ת0ז411ת60 ומחפש דרך אלטרנטיבית למלא
את התנאי 1חסווו6ת60. אס אין אלטרנטיבות הוא נסוג ל-02041 ופונה אל החוק השני. השפעת
ה-)6) אינה מורגשת בשלב זה.
נניח כי המטרה 2תסו611ת60 מצליחה. הצלחתה של 02גו:6061 גוררת מיידית את הצלחת
ה-וט6. עתה עובר פרולוג אל 3ח600610:0. אס 3ת0ו4611תס6 נכשלת, נכשלת גם המטרה |0208)
והמשתמש מקבל הודעת כישלון. אס 611:003ת60 מצליחה, פרולוג עובר אל 6006180004. נציין
כי במקרה של כישלון ב-4תסגו61ת0ס0, ניתן לסגת מ-0006111004 אל 3חסווו0תס6 ולחפש
אלטרנטיבות. לא ניתן להמשיך ולסגת אל 2חסגוו6תס6 כי ה-וט0 מונע זאת.
בחוקי פרולוג, אשר צורתם: .5 =: 6031, הפרדיקט 61 מצליח, כאשר מתבצע איחוד בין [004)
לבין פיסקה של תכנית, כפי שראינו בפרוצדורה 1ז6טות6וח. במקרה של [זשטוחטמז נקטע המעבר
אל החוק השני בעל ראש זהה, ולכן לא התקבלו תשובות נוספות.
2055
2 שלילה באמצעות הכישלון
את השלילה מבטאים בפרולוג באמצעות פרדיקט המערכת 1סח. פרדיקט זה הכרנו לראשונה
בסעיף 7.2, כשדנו בחוקים המכילים קשרים לוגיים דסא ו-08. בגירסת 00 01ק-אסס5א
הפרדיקט הזה מוגדר גס כאופרטור (ראה נספת בי). בהמשך נבטא את הפרדיקט 01ח בצורה
של אופרטור.
היה וע ד חש ו ה ה עו ההז הש ה לא ל שו רהטל שוב ה ל ישן
| פרדיקט המערכת סט 0 ם |
| בצורה של פרדיקט | בצורה של אופרטור |
| (8)>סת | 8 %סה |
| (05)0081ם | 1 ססה |
| ((תתה ,6)11%05)%0₪סםת | (תת8 ,11%05)60₪ טסה |
0
איור 11.5 - ייצוג של וסת
את ההיכרות הראשונה עס הפרדיקט 01ח נעשה באמצעות השאילתות הבאות:
.1 -?
סח
בפרק הראשון הגדרנו את קשר השלילה 001אז. אמרנו, כי ערך האמת של הפסוק 8 דסא מנוגד
לזה של 8. בסעיף זה נבחן איך פרדיקט המערכת 01ח מיישם את ההגדרה הלוגית של הקשר
01סא. נתאר גס את הסטיות מההגדרה הלוגית וננתח אותן.
העובדות והחוקים של תכנית לוגית הינס פסוקים בעלי ערך-אמת ד(אמת). פירוש הדבר הוא,
שתכנית לוגית מתארת עובדות וחוקים נכונים, ואיננה מתארת עובדות וחוקים שאינם נכונים.
את קנה המידה של תכנית לוגית לגבי נכונות או אי-נכונות של עובדה בסיסית ניתן לבטא כך:
- עובדה בסיסית, הנמצאת בתכנית, או
הנובעת ממנה, היא עובדה נכונה
(כלומר, ערך האמת שלה הינו 1).
- עובדה בסיסית, אשר אינה נמצאת בתכנית וגם
אינה נובעת ממנה - איננה נכונה
(כלומר, ערך האמת שלה הינו ת).
ניעזר בדוגמה: נציג שאילתות על בסיס התכנית ע1ווח9= 6ה'ד שבפרק 5 והתכנית 3166 ע[ווחג]
שבפרק 7 באיור 11.6 ריכזנו את השאילתות והתשובות, יחד עם החלקים הרלוונטיים של
התכניות. העובדה הבסיסית (ג618166663! אינה נמצאת בתכנית וגם אינה נובעת ממנה. הוא
הדין גם לגבי העובדה הבסיסית: ([150386 ,גח81067)207808].
26
ג ----
.( 15386 , ההּהב7ס3)%הסזבק
.( 3600[ 15336 )פחס"בּק
ב (1583836,ב6)537הסטבק
. ( וְחהּהבּיזם3 )₪816
316) 15386 ( .
318) [3600 ( .
+ 16 ) 531" ( .
. (א)0316 ,(+,א)5הסחהק -: (ץ,א)ספת3%+
. (80316)5308+ פסה -? 1
סח
. (ת870316)168+ 6סה -? !
פע
. ( 1 36החה15 הסה )תסה3%+ פסה -7 |
ץ
. ( 1 1570883 ,הההההם67)3ה3%+ פסה -7? ! :הַה1 6ב7+
?([סההת15 ,הההההסה)פפת3%+ :₪311 [10
?([ בוחחה15 ,וההההססה)6הפפבּק :₪311 [1:
0361(7ח15,חבּהה"סה)6הסשחהק :%311 [1]
61(7ההה15,ההבהב"פה)"סה3%+ :%311 101
.7600061075 0 ה1 ...
איור 11.6 - שלילה של עובדה בסיסית
ה-866ז1 של חישוב השאילתה (₪0861ח5 ,ז808ז30)ז6ה1ג! וסת נמצא באיור 11.6. ננתת את שלבי
החישוב. כאשר מתקבלת השאילתה, מנסה מערכת הפרולוג להוכיח את נכונות העובדה
([180ח15 וח30780)ז6ה81). תהליך החישוב מסתיים בכישלון והמערכת מסיקה מכך כי שלילת
העובדה אכן נכונה. כתוצאה משיקולים אלה מתקבלת תשובה חיובית.
השא יאואקנישתקכט הבכ מה בר:ההתנבב הקפההו רת השפ
|1. | עאילתה | ([150₪86 ,מהת8זס62)8ה8%! לסה |
|2. | מטרה | | (15₪8061 ,מהתעל8)פסת:8/ |
[3. | חוק | -: (ץ ,א)65ת80? |
| | | (א)₪816 ,(צ ,א)6ת6שהאק
|4. | הצבה | | 1פתפ = ץ ,מהתהעלה - א |
|5. | מטרה | | (157801 , מהההקלה5)8הסעהק |
|6. | מסקנה | המטרה ( [15(₪86 , ש8ת5)85:8ת6עאק נכשלה |
|
| ולכן ן
|
| המטרה (₪801ת15 ,מהתהפפ8)ע6ת:18% נכשלה |
|
| ולכן |
ן |
| |
המטרה ( [86עת15 , מת8ת62)80ת80] פסת הצליחה
איור 117 -- שלבי החישוב של ([36ח5ו ,8₪0ח4זס6)9חוג) וסת
207
תיארנו את שלבי החישוב באיור 11.7. מערכת הפרולוג מבצעת את תהליך החישוב על פיי
הכללים האלה:
- המטרה [004 01 מצליחה על בסיס התכנית ותגזפסזק,
אם המטרה [004 נכשלת על בסיס זה.
- המטרה [004 01 נכשלת, אם המטרה 02081 מצליחה.
הכללים האלה באים לידי ביטוי בתכנית הבאה:
.1 ,! ,0081 -: 0081 ססת
. 0081 6סת
תכנית 11.7 - שלילה באמצעות הכישלון
תכנית 11.7 הינה הגדרת השלילה, המשמשת גירסאות רבות של פרולוג. היא מכונה בשם שלילה
באמצעות הכישלון (6זט!1ג) עס ת9110פסה). הפרדיקט [91 הוא פרדיקט המערכת, אשר משמעותו
כישלון.
התכנית פועלת בדרך זו: כאשר מתקבלת השאילתה [0208 זסח, פונה המערכת אל החוק הראשון.
אס המטרה |204) מצליחה, מצליח גם הפרדיקט וט0). בעקבותיו בא הפרדיקט וו₪, אשר
משמעותו היא שהוכחת [208) זסח על פי החוק הראשון נכשלה. הפרדיקט 01 מונע את הנסיגה
ופניה אל החוק השני, ולכן אס המטרה [208) מצליחה, המטרה [0208 01 נכשלת. להיפך, אס
המטרה |2084) איננה מצליחה, עוברת המערכת אל החוק השני ומבצעת את האיחוד. במקרה
זה המטרה [208) זסת מצליחה.
התכנית 11.7 מכילה צירוף המכונה בשם 601-881. בצירוף זה משתמשים כדי לומר, שאם
החישוב הצליח עד עתה - הגיע הזמן לנטוש אותו. "עד עתה" פירושו עד ה-זט0.
נעיין בכלל הבא:
- אם המטרה 4 מצליחה, אז המטרה 2 נכשלת, אחרת -
המטרה 2 מצליחה.
את הכלל הזה ניתן לבטא כך:
.עס ;811? ,! ,4 -: ק
הפרדיקט 6וחז הינו פרדיקט המערכת שמשמעותו הצלחה.
את החוק האחרון ניתן "לפרק" לשני חוקים:
.1 ,]1 4 -: ק
.תס -: ק
גופו של החוק השני מורכב מהפרדיקט 166. פירוש הדבר, שכאשר המטרה מתאחדת עם הראש
ע של החוק השני, המטרה מצליחה. במילים אחרות, החוק השני שקול לעובדה ?.
את ה-001 אין מבטאים בעת קריאת התכנית, ולכן תכנית לוגית עם 01 שקופה פחות מאשר
תכנית ללא 001. במקרה של המטרה 2 ניתן לעצב תכנית אלטרנטיבית, אשר בה נשתמש
בפרדיקט סח במקום הפרדיקט זט6. לשם כך ננסת את הכלל הקודם באופן הבא:
- המטרה ץ נכשלת אם המטרה 4 מצליחה.
- המטרה ? מצליחה אם המטרה 4 נכשלת.
את הניסוח האחרון נתרגם לפרולוג כך:
.1 ג -: ק
.6 ,2 ססת -: ק
208
בתכנית 11.8 הבאנו דוגמה של שימוש אלטרנטיבי ב-וט6 וב-וסח. נציין כי בפרולוג העברי
השלילה מתבטאת באמצעות פרדיקט המערכת "לא".
ים :- חופש, !, שמש. | ים :- חופש, שמש. | |
ים :- קיץ. | ים :- לא חופש, קיץ. |
תכנית 11.8 - הפרוצדורה "ים" עם וט6 ועם סח
הפרולוג אינו מאפשר למשתמש להגדיר את פרדיקט המערכת. בנוסף, ה-866ז1 איננו מפרט את
שלבי חישוב המטרה, שהוגדרה באמצעות פרדיקט המערכת. כדי לפרט את ה-0גז1 של
הפרוצדורה וסח, הגדרנו את היחס וסחח באופן זהה לחלוטין להגדרת היחס וסח. ובכך "רימינו"
את המערכת וקיבלנו את ה-17866 המפורט. את תוצאות "ההונאה" ניתן לראות באיור 11.8.
-: (0031)%סהח
,6031
די ו
.1+
. ( 0081)%סהת
.('( 158836 , ההבּהב"סב3 )תפה+3%+)6סהה -? !1
סח
-7 1
.( ( 153860 ,חההההסה)ספת3%+)%סהה -?7 ! :הַה%7801
?15886 ההּתהּ"סה)ספה3%+)5סהה :₪811 101
153307 ,ההּההּהטב3ּ)"פה3%+ :₪811 [11
5886(7 ,חהּהב"טב5)3הפ"בק :₪311 [2]
?7( 5330 ,(הבּהבהסב6)3הספבק :1%א₪ [2]
?7(חהּהה"315)30ה :311 [13
?7(וח3ה316)307"3ה :21% [13
15936(7,(הההה"סב)תסה35+ ,:8%1% [1:
?7 :₪311 [14
72 :1+ [4:
?7 (15330 ,חבּהבססה)"סה3%+)6סהה :311+ 01]
איור 11.8 - ה- 11866 של |0204 וסת
219
3 - המשתנה הלוגי ופרדיקט המערכת ה
נעבור לשאילתות, שאינן בסיסיות, כלומר - לשאילתות אשר כוללות משתנה. נציג את
השאילתה הבאה וננתח את התשובה.
. (8 ,מ8ת02)8028ת8%? 6סת -?
סת
כמה מהשלבים לקבלת התשובה ניתנים באיור 11.9. בהתקבל השאילתה, המערכת של פרולוג
פונה אל המטרה (א ,301408)ז6ח!8!. תהליך החישוב מסתיים בהצלחה ומתקבלת ההצבה
6. מערכת הפרולוג מסיקה מכך כי שלילת המטרה נכשלה, ולכן אנו מקבלים תשונה
שלילית. י
|[1. |עשאילתה
|2. | מטרה
|3. | חוק
|: +
||
|4. | מטרה
|5. | הצבה
|6. | מסקנה
ולכן
20
תהליך החישוב של (א% ,שאת8תס62)8ת8%6? הסתיים בהצלחה
ולכן
תהליך החישוב של (א ,ש8ת62)8028ת86? 6סח הסתיים בכישלון
(8, םהתה8תס8)עסת8%6/ 6סת |
(א שהתה8עסה8)תסת80] |
-: (% ,מה8ת8028)ע62ת186 |
(8 ,ש8ת6)8028ת6עהק
. ( 8₪ת8028 ) ₪816 |
(8, םההה8תס8)שתספהק |
6 = א |
המטרה (15880 ,ש8ת6)8028תס6ע8ק הצליחה
המטרה (ש8ת₪816)8028 הצליחה
המטרה (15880 ,ם8ת2)8028ע6ת8%6? הצליחה
|
|
|
|
|
|
|
|
|
|
|
|
איור 11.9 - שלבי החישוב של (א ,גח401408)ז6ת1ג) וסת
את קבלת התשובה השלילית ניתן לראות מזווית ראיה נוספת. הצגת השאילתה
(8 ,וח0:303)ז6ה181 כמוה כהצגת השאלה הבאה:
האם קיים א שעבורו מתקיים היחס (% ,וחגתגזפ3)ז06)ג]-?
כפי שראינו, התשובה לשאלה הזאת הינה חיובית.
אסם-כן, הצגת השאילתה (% ,ג40:8(08₪)ז6ת81) וסת מתפרשת כך:
האם זה נכון שלא קיים א, אשר מקיים את היחט
(4 ,וַההתהזל3)ז6ת)ג) ?
לשאלה זו נענינו בשלילה, שהרי ידוע כי ההצבה של 18486 תחת % מקיימת את היחס
(8 ,גח8018(8)ז8106).
את שתי השאלות האחרונות ניתן לתאר בצורה פורמלית. לשם כך ניעזר במינוח של לוגיקת
היחסים. איור 11.10 מציג את התאור הפורמלי. באיור זה ביטאנו את הכמת הקיומי באמצעות
המילה צו8וא₪ (קלים), ואת הכמת הכללי באמצעות הצירוף !81 זסץ (לכל).
0
|שאלה ראשונה| קיים א שעבורו
|[שאלה שניה|
[(8< גמ8ת62)8228ה2]18% 15%5את
לא קיים א שעבורו (8 ,ש8ת62)8028ת85]
[(< ,תהתה8על62)8ה8%?]א 15%5אם [סא
(8 ,מהתהעס8)ע6ת80/ |
7-4
|השאלה השקולה לעאלה השניה
ן
ן
|
|
ן ן
לפי תכונת | |
| | שקילות 4 של | |
| | סעיף 6.5 | |
| שק |
| |
| |
| לכל א לא מתקיים (% ,מהההעס8)סת8%6? |
|
| [(8 ,מהתה8תסה)ל6ת8%? 07א]א 811 עסק |
|מסקנה | היחס (% ,8₪ת80002)8028? |
| מתקיים עבור 0 *=* א |
|
| ולכן |
| ן
| |
ערך האמת של הפסוק האחרון הינו ע (שקר)
איור 11.10 - השאלות במינוח של לוגיקת היחסים
241
בעת החישוב של (8 ,שהת62)8028םת86?,
חישבנו גם את המטרה (8 ,מ8ת6)8028תסעהק.
הבה נתרכז בחלק זה של החישוב ונעיין בשאילתות ובתשובות הבאות:
. ( [₪86ת 15 ש8ת8028)%ת820ק 6סם -?
58
. (18000 ,מע8ת8028)%ת6ע8ק ססת -?
1
8( . משהת8עסה8)%תסע8ק 6סם -?
סת
ישנס עצמים רבים, אשר על פי התכנית ץ3011- 6ח'ד, אברהס אינו האב שלהם: ישמעאל, יעקב,
ועוד. אף-על-פי-כן, התשובה לשאילתה האחרונה הינה שלילית. כלומר, אין זה מספיק להוכיח
כי קיים עצם א כזה, שאברהם אינו אביו. כפי שהדגמנו באיור 11.10, המשתנה א של השאילתה
האחרונה אינו משתנה המכומת קיומי, אלא הוא מכומת כללי. על-כן, קבלת תשובה חיובית
מותנית בכך, שעל פי התכנית ע|ווחג= 6, אברהם אינו אביו של אף אחד, אבל הוא אביו של
יצחק ולכן קיבלנו תשובה שלילית.
במינוח הפרוצדורלי ניתן לומר, כי המטרה (% ,ו84₪ח4ז40)זח6זגק %ת נכשלה משום שהמטרה
( ,גהת8ז1)40ה6זגן הצליחה בשל האיחוד בינה לבין (15886 ,הת80188)ותסזהק.
את ה-3066ז1 המפורט של (א ,4079(80)וח6זגק וסת ניתן לראות באיור 11.11. לשם ההשוואה
הבאנו גם את ה-206ז1 של ([46וחח15 ,גח8(8ז30)ות6ז8ק זסת.
. ( ( 1500361 ( הבּהבּטב6)3הספהק)%סהה -? !
פע
.סםהת) -72 |
. ( ( 61בוחה15 ,הבּההט30) %ה6ההק)%סהה -7 !1 05ה%79361
?((361הה5 ,ההּההתכטה )6הפ"הק)6סהה :311 [0ם
7 ,הההה"ס0ה)%ה"בהק :₪811 111
?ההחה15,חהּהההםה))הס"בהם :6811 [11
?((00361ה15 ,הבּההיסה)6הפ"הק)%סהה :51% 01
-0705ג7₪000% 1 ה1 ...+
.((א,חהההּסב6)3הסטהק)6סהה -? 1
סח
ב -7 !1
. ((א ,הההה"סה)%הספפבק)6סהה -7 !1 :679617
?((1פא,ההההתס5)3הפ"הק)%סהה :311 201
?(1פא ,חהבההמסה)+הס"בק :₪311 111
15837 התסה )6)הפסהק :891% 111
7 :₪311 [2]
72 :6311 [2.
?((91- ,הקסה )6הס"הק)%סהה :6311 101
איור 11.11 - המטרות 0081 01ח: עס ובלי המשתנה
22
עתה נציג שאילתה מורכבת, אשר אחד מביטוייה מכיל את הפרדיקט וסח, והאחר אינו מכיל
אותו. המשתנה % בביטוי (%)316 מכומת קיומי. אותו משתנה ב-(8 ,ות4ת9זס3)וח6זגק זסת
מכומת כללי. נבדוק איך מערכת הפרולוג מטפלת במצב הזה. ניעזר לשם כך באיור 11.12.
-. ( % בְההַהַההסבּ)5הפפבק %סה ,(%)₪318ה -7? !
%| חהההחטב = א
<%-
ו
198605 ]
סח
ב -7 !
- (א יְִההַה"0ב)6הספהק 6סה ,(8180%ה -7 | :הַה61בת%
?(0מא%)₪316 :₪311 [0:
?(ההּהב"16)30הה :₪216 [0:
?(הבּההּיפה , ההּהבּ"סה )6הט"בּק :311 [1:
?(והבּההסב3 ,ההּהַה"כפב)6ה6"בק :311+ [11
.-05ה₪000%10" 1 ה1 ...
] ההההחפהּ = א
7(וחהּה₪316)30"3 :600ת [0:
₪316)15386(7 :816 [0:
53967 ,ההּההּ"טב6)3הפ"הק :2311 111
15387 ,ההּהה"סב6)3הס"בק :816 111
₪316)15336(7 :000ה [10
?7(ם₪316)1360 :81% [0:
?3600,הבּהבּתטב)+הס"הק :₪311 [1]
?7 360( , הההבּהפ6)3הב"בק :311+ 111
.8006610705" 1 ה1 ...
]; פססה3[ = א
00(?7ס₪316)36 :800" 101
7 :%311 [0:
סח
. (א)₪816 , (א,הבּהבהסה)5הס"הק >סה -? !
סח
| 7- +
.(%)₪316 ,((א,ההּהה"סה)%הפסהק %סה -7 ! :הַה61בת%
?(2א, הבּההּתפה6)3הס"בק :₪311 [10
15337 הבּהה"כפב6)3השסבק :1%א₪ [0]
סת
איור 11.12 - המופע של 1סח בסדרה של מטרות
התשובה לשאילתה אשר בה הפסוק (%)416 הינו במקוס הראשון, נובעת באופן לוגי מתכנית
עוווחג= 16. לתשובה זו היינו מצפים לו היינו שואלים מי הם הגברים של ע1ו9] 6דד. אשר
23
אברהם אינו האב שלהסם. בשאילתה השניה שינינו את סדר הפסוקים ועקב כך גרמנו לשינוי
במשמעות השאלה. דבר זה מבטא את הגישה הפרוצדורלית, שעל פיה הגדרנו את הפרדיקט
1. סדר החוקים בתכנית 11.5 משפיע על תוצאות החישוב בגלל הופעתו של 1ש₪.
= מכך אנו לומדים, שכאשר הפרדיקט 01ח מופיע בתוך סדרת המטרות הקשורות באמצעות
כאג, התשובות תלויות בסדרן של המטרות. נעיין בתכנית המגדירה את היחס עסקגחחט;
ונבדוק את עקביות התשובות, שהתקבלו על בסיס התכנית הזאת (ראה איור 411.13
התשובות:
[ ה ב ו חן
. (8)אַתטסץ , (%)צץם681%ת פ>סת -: (א)עסקהתתט
. (₪סס ) צַת6 681ת
. (תתס1 ) שתגוסעץ
5
. (8)עסקהמתתט -?
סם
ריוור ריר ררה
| |
| |
| |
| |
| . (חתסן ) צַסק8תתט -? |
| |
| |
איור 11.13 - תשובות שאינן עקביות
המטרה (חמ0[)עקקגו!חט הצליחה, משוס שראשו של החוק המגדיר את היחס עקקגחט התאחד
עם (תתסן)ץקקגחט. אחרי ביצוע ההצבה מחסן-א בגופו של החוק, פנתה מערכת הפרולוג אל
המטרה (חמ₪69117))0 זסח. המטרה הזאת הצליחה וגם המטרה (מחס;()פחטסץ הצליחה ולפיכך
התקבלה תשובה חיובית.
לעומת זאת המטרה (א)ע300חט נכשלה, משוס שהמטרה (%)ע681:8ו הצליחה. יש לבחון איפוא
את התכניות של פרולוג המכילות את הפרדיקט זסח, בתשומת לב רבה. העצה המעשית הינה
לרשוס את הפסוק שמכיל וסח בקצה גופו של החוק, כדי להגיע למטרה [6208 וסח אחרי ביצוע
ההצבות. נגדיר למשל, את היחש [ץקק4תחט באמצעות החוק הבא:
. (8)עת681%ת 6סת , (%)שמתטסץ -: (א)1עסקהתתט
. (8) 1עסק8תתט -?
.םתס = א
על אף הקשיים שנגרמים בשל השימוש בפרדיקט זסח, לא ניתן להתעלם ממנו. באמצעותו
למשל, ניתן להגדיר שתי רשימות זרות:
-: (115%2 ,115%1)%ת615101
((115%2 ,א)₪6₪062 ,(115%1 ,א)שססמסם) פססת
נציין כי מבחינה לוגית הפסוק:
((115%2 ,%)62משסם כאה (115%1 ,א)סססשסש) ע0א
244
ושמומ ו
שקול לפסוק:
(1,15%2 ,א)6₪062ש 01א 08 (215%1 ,א)ע6סמסם עסא
את תכונות השקילות של הפסוקים למדנו בפרקים 2 ו-6. איור 11.14 מראה, כי מערכת הפרולוג
אינה מכירה את הפסוקים לעיל כשקולים מבתינה סמנטית. דבר זה מזכיר שוב, כי ההגדרה
הלוגית של 001צ1 והגדרת הפרדיקט סח תואמות זו את זו עד גבול מסויים. בנוגע לאיור 11.14
נציין, כי היחס ז6טוח6וח מוגדר ב-₪01.060ק 15001 בתור פרדיקט המערכת ולכן נאלצנו
"לרמות" את פרולוג ולהגדיר את היחס זסטוח6וחוח באופן זה לזה של זספוח6וח.
, -: (15%2] ,%1)].15%1ה415[01
.((15%2]! ,א)מפסהפהה ,(15%1] ,א)תספהפהה) %סה
/ -: (15%2] ,%2)|.15%1ה₪15[01.
.((15%2] ,א%)סססהסחה 5סה + (15%1] ,(א%)תפםטהפחה %סה
.(נ1גהד!א] ,|( א)הפסהההה
.(7311,א)סספחסהה -: (111ד!+] ,א)סססהפהתה
.(1+,%1)]3,0,61,0,6ה₪15[01 -7? |
פפץ
3 -7 !1
.(1+,₪,%1)]3,5,51,76ה015[01 -7 ! :הַהגסב%9
77,,, טם,%1)13ה015[01 :2311 [10
7, ה,183א)"ססהפהה :₪811 [1]
7 תספהחפוהה :1%א₪ [11
) ,),),)7 תספחסהה :₪311 121
7 )תסםהפחה :2811 [23
1(7+],ה3)"ססהסחה :₪311 141
7 ) ססהטהה :811 [5]
7 )תספהפהוה :3811+ [15
7(+],3)"ססהחה :311+ [4]
1(7+,6],)"ססהסהה :11+ [3]
7, )תפפטחה :311+ [12
7 )תספהסחה :7800 [1]
?61(7,ם],277א)הפפהפהה :311 [12
?7 ,ס)תפסהפוחה :81% [12
7,, , ס ) יססהטהוה :1%א8 111
7,, ס) תפפוהפוהוה :811 [3]
7 ,ם)מפסטהפהח :₪811 41
7(7+],ם)מסטהפהה :311 51]
7, ס) יפסהטוחוה | :₪811 162
?7(,ם)"ספהסהה :311+ [6]
7, ס) יסםוהפוהוה :11+ [5]
77 ,ס)תססהפהה :311+ [4]
7,, פס ) יוטטהטיחה :%311 [3]
7 ,ם)תססהפהה :₪00- 111
7 ,ם)מססהפהה :7800 [12
72, 361 א ) יפסוהפוחוה :2811 [13
7 ))תפסההה :1%א₪ [3]
7,,.))תסטהסוהה :81% [2]
3,077 6)"ססההפהה '21%<₪ [1]
2.55
7 ,)הוה :0311 141
7, ש)מספהסחה :₪311 51]
7, 6)תספהפהה :₪311 161
72 פפסהסוהחה :2311 171
72 )))תפפחסהה :%311 [17
72 ))תספחסחה :311+ 161
7, ש)תפפהחסחה :6311 151
772 )תססהסחוה :311+ [4]
7 )תס הסהה :₪00ס 111
077 ,0)תפפהסהוה :600ת [12
?72, ס)תספהטוה :800ת [3:
72 ))תססהפחהה :311 141
7 ,445א)מספהפחה :311+ 41:
7, )תססהפוחה :311+ [13
7 ,277 הפסהפוה :311+ [2]
7777 ,+,+,+ )6 פטוהסהה :811+ [1:
7 ם])%1הג0ס[₪15 :1%א8 [0]
-75ה7600%10 1 ה1 ...
-7, ט,])%2ה015[01 -? |
סח
! 7- 4.
.(%2)0],,,4,6,67ה015[01 -? | :הַה1ַסבת%
:0[ 6311: 215101762); 7
?7 )"פפהטהה :6311 [1]
707 ) תפססהפיחה :1%א6 [1]
77,+,, ) הפה :5311 111
?7 הססהפהוהח :1%6א6 [1:
) ...7 ט הוה 0% ן; (1893,103,5,01.)"טסהפהה פסה :₪311 [1:
7 ";-פטהפהה שה ; (6").183,13,0,₪1פהסחה פסה :6311 11]
7,',, ;)115101620 :1+ [0]
איור 11.14 - הפרוצדורות 1זתוס(8:5 ו-12ח615(01 אינן שקולות
4 השלללה וה-)6 - תרגול
בסעיף הזה ניתניסם מספר תרגילים בנושאי השלילה וה-01. התרכזנו בשלושת הנושאיס
האלה:
- השימוש ב-61.
- הקשר בין הפרדיקטים 01ח ו-זט6) והשימוש האלטרנטיבי בהם.
- ההבדל בין הקשר הלוגי סא לבין פרדיקט המערכת וסם.
שאלה 1
א. נתון החוק הבא:
.ם ס6סת -: 8
מצא את התשובה לשאילתה הבאה על פי החוק הנתון:
.8 -7
2166
ב נתון החוק הבא:
.(ס %סת)פ5סת -: 8
מצא על פי החוק הזה את התשובה לשאילתה הבאה:
.1 -?
שאלה 2
נתוניס שני החוקיס הבאיסם:
.ם ס6סת -: 8
. 6ס0ם -: ס
א. האס החוקיסם האלה סותרים זה את זה! נמק את תשובתך.
הערה. במינוח של פרק 3 ניתן לנסח את השאלה בדרך זו: האם הקבוצה שמורכבת משני
חוקים אלה, הינה עקבית!
ב בדוק מהי תשובת הפרולוג לשאילתות הבאות:
. -?
.0 -?
שאלה 3
נתוניס שני התוקיס הבאיס:
.םע 6סת -: 8
8 -: ס
א. האם החוקים האלה סותרים זה את זה! נמק את תשובתך.
ב. בדוק מהי תשובת הפרולוג לשאילתות הבאות:
. -?
.ט -?
שאלה 4
בפרק 2 למדנו כי הפסוק (ט אא ג)סא שקול מבחינה סמנטית לפסוק 5 דסא 08 3 זסא.
להלן ההגדרות של היחסים 1ק, 2 ו-03:
. (8,0) 6סת -: 1
.ע פסת ;8 ל0ת -: 2
. ססת -: 3
.כ 6סת -: 3
האפשרויות לגבי העובדות 8 ו-5 הן כדלהלן:
א. שתי העובדות 8 ו-ס נמצאות בתכנית.
ב. אחת מהעובדות 8 או סט נמצאת בתכנית.
ג. | אף אחת מהעובדות אינה נמצאת בתכנית.
בדוק בכל אחד מהאפשרויות אי, בי, ג', מהן התשובות לשאילתות הבאות:
?- 1.
7- 4.
?- +
27
שאלה 5
נתון הכלל הבא:
6 פאג 3 דסא 08 ט כאג ג :ו כ
תרגם אותו לפרולוג:
א. באמצעות הפרדיקט זט0.
ב. באמצעות הפרדיקט זסת.
הערה: את הקשרים הלוגייס שמופיעים בכלל, יש לפרש בהתאם לסדר קדימויות של הקשרים
(ראה פרק 1).
שאלה 6
ביטאנו את המקסימוס של שני המספרים באמצעות הכלל הבא:
אם א גדול מ-צ, אז המקסימוס הוא א, אחרת - המקסימום הוא צ.
רצינו לבטא את הכלל הזה באמצעות היחס אגוח בין שלושת הארגומנטים, כאשר הארגומנט
השלישי הינו המקסימוס של שני הארגומנטים הראשונים. לשם כך כתבנו את החוקים
האלה:
.! ,צ < א -: (א ,ץצ ,א)אהם
. (צ ,ץצ ,א)אפם
הצגנו שאילתה וקיבלנו תשובה:
. (2 ,2 ,5)א8ש -?
8
לפי התשובה הזאת, 2 הוא המקסימום של 5 ו-2 וכידוע - תשובה זו אינה נכונה.
א. הסבר מדוע קיבלנו תשובה זו.
ב האם החוקים האלה מבטאים את הכלל! נמק את תשובתך.
ג. | הגדר יחס |אפות כך, שעל פיו נקבל תשובה שלילית לשאילתה:
(2, 2, 3)|אפ .
שאלה 7
לפניך שתי גירסאות נוספות של החוק הרקורסיבי אב בשושלת.
א. אב בשושלת1(א, צ) :- אב(א
אב בשושלת1(א, צ) :- אב(א
1
, 1), אב בשושלת1(ם, ץ).
ב. אב בשושלת2(א, צ) :- אב(א, ץ).
אב בשושלת2(א, צ) :- אב(א, ם), !, אב בשושלת2(ם, ץ).
נתח והשווה את שתי הגירסאות של אב בשושלת.
208
שאלה 8
הצגנו שאילתה מורכבת על פי התכנית ץ1ווחג= 16 וקיבלנו את התשובות הבאות:
. (א6)8ת6עהק 6>סת ,(א)₪816 -?
; ₪ם8ת8ת802 = %<
1 = <א
;]0 = א
א. תן הסבר לתשובות שהתקבלו.
ב. מצא את התשובות לשאילתה הבאה:
. (416)8ות ,(1)8ת8:6ק 01ת-?
שאלה 9
הגדרנו את היחס 13חוסן615. הצגנו שאילתה ועקבנו אחר תהליך קבלת התשובה:
.(11801 ,א)0₪002ם 6סת -: (118%2 ,%53)21561ת615101 |
.(1,15%2 ,%)₪0₪002 ססם -: (115%2 ,63)115%1ת415101 |
. ([%3)]8,5,6[,]6,6,2ת818101 -? |
סת
| ?- 6.
. ([8,6,2] ,[63)]8,0,6ת615101 -? :שת801ע62
77 ,ן[63)]8,0,60ת815[01 -? :6811 [0]
227])] ,182א)₪0₪062 :6811 [1]
-?([8,0,6] ,062)8ש9ם :16א6 [1]
77 ,182א)002םמ₪6 :6811 [1]
27 ,₪62062)6 :16א6 [1]
7 ,[63)]8,0,60ת8415101 :811? [80]
סת
השווה בין היחסיס 12ת:615[0 ו-13תוס(415. האם ניתן לומר כי הס מבטאים את אותו כללו
ב חזור את שאלה 4 והשווה:
בין [1תוסן₪15 לבין 1כ.
בין 2ותוס[5ו4 לבין 2ק.
בין 13תוסן5ו4 לבין 03.
ג הסבר, מדוע התשובות לשאילתות שבשאלה 4 זהות זו לזו ולעומת זאת, התשובות
לשאילתות הבאות אינן זהות:
.([?,8,6] ,[1)]8,5,6שת815101 -?
.([8,6,?9] ,[%2)]8,5,6ה615101 -?
29
שאלה 10
נעיין ביחס 14חוסן5ו4, המוגדר להלן:
,(11561 ,%)6₪0062ם -: (115%62 ,1)11501ש%ת615101
. (115%2 ,%8)ת06מ6ש ססת
א. מה מבטא היחס הזה?
ב. האס 4תו0ן40 שקול לאחד מהיחסים 11חוס[(415, 12ח615[01, 13ח1ס[015?
את המונח "שקול" בהקשר זה נבין כך: שני יחסים שקולים מבטאים אותו כלל ונותנים
תשובות זהות לשאילתות זהות.
נמק את תשובתך.
שאלה 11
א. מצא את התשובות לשאילתה הבאה:
. (1.15% ,%)ע6₪006ש 6סת 6סםת -?
ב. מצא את התשובות לשאילתות הבאות:
ו . (118%2 ,%1)1,1861ת815101 6סת -?
. (1,18%2 ,%0)1.15%1ת615101 ססת -?
שאלה 12
א באיור 11.15 הוצגו ההגדרות של היחסים 2עסקה8תחט, 3עקקההחט, 4עְסקתחט. נתח אותן
והשווה בינן לבין 1עסק4תחט. האס יש מבין הגירסאות החדשות לפחות אחת השקולה
סמנטית ליחס [ץפק4תחט? נמק את תשובתך.
ב מצא את התשובות לשאילתות הבאות:
8 ,2 ,1=א ,(א)אעסקהתתט ססת -?
0 ,(א)אעסקהתתט ססם ססם -?
הערה: ניתן להיעזר ב-806ז1, שבאיור 11.15.
20
|, 51
+1.
11 ,! ,(א)עתה16הּפה ,(א)הַהטסץ -: (א)2ץכקבּההט
((א)ץה6315ה -: (%)3ץכקקבּההט
.(א)סַהטסץ -: (א)3ץקקבּההט |
. (א)3ץקקהּתהחהט -? !
סח
.הס -72 !
.(א)3ץקקהההט -? !| :הַהגסבת%+
?(79א)3ץקקבּתההט :₪311 101
?169(7א)עץח16הסה :₪311 111
?(חס6%)עה631%ה :521% 111
7 :2311 [2:
:2[ +311: 72
?7. )3ץכקהההט :311+ 01
(,(א)עחה16הּסת -: (א)4עץקקבּתחט !
.(א)סהטסץ -: (א)4עקקהההט !
. (א)4ץקקהּתחט -7 !
חחס, = א
1! 7- 3:
. (א)4ץקקהּההט -7 !| :סַת1הת%
?(79א)4עקקהההט :₪311 01
7 )+)עְת>1ַבּפת :2311 171
?007ס5)עת316פה :₪216 [1]
72 :₪311 2
72 :5311 [2]
?07ס6)צץת16ּפת :600ה 11]
?(169-)עה16בּפת :311+ [1:
?167א)הַהטסץ :2311 [1:
7(התסנ )שהטסץ :1%א6 111
?(ההסן )4ץקקהּההט :₪16 [0:
.00600 2 ה1 .+..
חחם], = א
.(א)סַהטסץ -: (א)2ץכקבּההט
. (א)2ץקקבּהחט -7 |
חחס[., = א
1 -7 !1
.(א)2ץקקּההט -7 ! :8ה%0861
79(7א)2ץקקהתהט :6811 [0:
169(7א)סַהטסץ :₪311 [1:
7(חהתס])הַהטסץ :816 [11
?(ההס[)ץה831%ה :₪311 [2:
?הת )ץת1%ּסת :311+ [2]
?(התס] )סַהטסץ :7900 [1]
7 )פטסץ :6811 [1:
7))לטהטסץ !₪311 [1:
?(ההס)הַתטסץ !1%6א6 (1:
?(ההסן )2ץקקבּההט :8<1%6 [0]
.פתס)6שט0פי 2 ה1 ...
חחם], = א
איור 11.15 -- גירסאות שונות של הפרוצדורה עקקגתחט
251
פרק 12
פרדיקטים אקסטרה-לוגיים
ומטה-לוגיים
בפרק זה נכיר פרדיקטי מערכת נוספים. נציין, כי התכניות שבפרק זה הורצו בגירסת
08 |:א1500/ו. לקורא, אשר גירסה אחרת של פרולוג נמצאת ברשותו מומלצ לעיין
במדריך המצורף לגירסתו ולתקן את התכניות בהתאם, לפני הרצתן.
נציג את יעדי הפרק.
- בסעיף 12.1 נכיר פרדיקטים חשובים. נסווג אותס בהתאם לתפקידים שהם ממלאים
במערכת הפרולוג.
קריאה וכתיבה של ביטוים - 6 .7680
גישה לתווים - 6וחפת .וטק .861
עריכה של פלט - 1ח .180
בדיקה של סוגי נתוניס - עפצ 1686₪תו ,החסוה
גישה לביטוים מורכביס - זג תסוסחג
פניה לפיסקאות - 5118 .855671 .018056
בקרת זרימה - 1 ,]ו .11א6 ,![08
קריאת קבצים - 61 005011
- בסעיף 12.2 נלמד להשתמש בפרדיקטי המערכת. נדגיסם את תכונותיהס באמצעות תכניות
ואיורים.
- בסעיף 12.3 נסווג את פרדיקטי המערכת על פי השתייכותם לקבוצות אלו:
אקסטרה-לוגיים - פרדיקטים אשר התנהגותס חורגת ממסגרת של תכנות לוגי.
מטח-לוגיים - פרדיקטים שמטפלים בפיסקאות של תכנית לוגית ומאפשרים לבצע
תכנות-על.
- בסעיף 12.4 נביא שאלות לעבודה עצמית בנושא פרדיקטי המערכת.
22
1 סקירה של פרדיקטי המערכת
בסעיף זה נציג את פרדיקטי המערכת הנפוצים ביותר. נציין כי אופן פעולתם של רבים מהם
תלוי באמצעי רקע, כגון: חומרה, מערכת ההפעלה וכוי. במקריס רבים, פעולתס תורגת ממסגרת
של תכנות לוגי והיא יכולה להיות שונה בגירסאות שונות של פרולוג. בעת קריאת סעיף זה
מומלץ להפעיל את הפרדיקטים המוזכרים, כדי להכיר את אופן פעולתס בגירסה הנמצאת
ברשות הקורא. אין לצפות לשליטה מוחלטת בפרדיקטים אלה מתוך היכרות ראשונית.
השליטה בהם באה לאחר יישום ועבודה ממושכים.
קריאה וכתיבה של ביטוייסם
₪ (ומז630)19ז -- באמצעות הפרדיקט הזה קוראים ביטוי מלוח המקשים או מתוך הקובץ
הנתון. כאשר חחזסד הינו משתנה, מתבצעת ההצבה של ביטוי תחת ווחשך. במקרה של
כישלון אין נסיגה.
₪ (וחז6)17)נזו -- באמצעות הפרדיקט הזה כותבים ביטוי על המסך או אל תוך הקובץ הנתון.
במקרה של כישלון אין נסיגה.
התכנית שלהלן מתארת את אופן פעולתס של הפרדיקטים 7686 ו-שווחא היא קוראת את
המספר א באמצעות 686ז, מחשבת את ריבועו 8, מציגה את התשובה 8 על המסך באמצעות
שואי ומסתיימת לאחר קריאת ססו5. גירסה נוספת של התכנית הזאת מופיעה בסעיף הבא
(ראה איור 12.4).
((א)2080 -: 8ט10ע
. (א)2066086
.! -: (6660)585600סעק
,(א*א 18 ת -: (א)200660ק
(1%66)8עש
. סע
תכנית 12.1 - ריבוע
גישה לתוויס
₪ (ז2610)02126)0 -- הפרדיקט משמש לקריאה של תו והצבת קוד 45611 שלו תחת המשתנה
ו
₪ (ז6) הז ?))₪61 -- הפרדיקט משמש לקריאה של תו, ואם ניתן להדפיסו - להצבת קוד
11 שלו תחת המשתנה זסְוְסגזגח?). הפרדיקט מדלג על תווים אשר לא ניתן
להדפיסם.
₪ (ז6)0בזבת))))טש - הפרדיקט משמש לכתיבה של תו, אשר קוד 45611 שלו הוצב תחת
המשתנה זשַסאז8ַ6.
3
התכנית שלהלן מתארת את אופן פעולתם של הפרדיקטים ₪861 ו-וטק. היא קוראת באמצעות
הפרדיקט 861 את התוויס הניתנים להדפסה, ומחזירה אותס באמצעות הפרדיקט וטק. גם אל
התכנית הזאת נחזור בסעיף הבא.
,(₪96)0 -: ₪0
, (6)0טס
. (0)מס ₪0
.! -: (46)מס ₪0
.0 -: (0)תס ₪0
תכנית 12.2 - קריאה וכתיבה של תוויס
₪ (6000 08 )6)410,118ומגה - הפרדיקט הזה מקשר בין האטום וחסו4 לבין רשימת
קודים 45611 של תווים המרכיבים אותו. הפרוצדורה שלהלן מגדירה קבוצות זרות של
תווים ומדגימה את השימוש בפרדיקט 6וחגַח. בפרוצדורה זו נדון בהרחבה בסעיף הבא.
-: (450₪2 ,82800625)4%60₪1ת6 6ת615[01
(118%2 ,602 )86 , (1.15%1 , 460₪1) ספת
. ((1.18%2 ,א)פססשסם ,(115%1 ,א)מססמסם) ססת
ראה סעיף 9.2 - זססוח6ות
תכנית 12.3 - קבוצות זרות של תוויס
עריכה של הפלט
₪ (א)פגו - הפרדיקט משמש לקביעת א רווחים. ניתן להגדיר אותו כך:
- 1
: (685)0
, (32)%טם ,0<א -: (א)ס68
. (1א)585 ,1-א 15 1א
תכנית 12.4 - הגדרה של הפרדיקט 180
₪ |ח - הפרדיקט משמש לקביעת שורה חדשה. האותיות 1ח הינן ראשי התיבות של המילים
6חו] ש6ח.
את פעולת הפרדיקטים 185 ו-1ח נדגיס באמצעות שאילתה ותשובה:
. ([6)6טס ,(585)2 ,1ת ,(6)66טש ,(685)1 ,1ת , (65)>טק -?
4
8
0
24
דוגמה נוספת של עריכת הפלט נציג בסעיף הבא, כשנדון בפרוצדורה גטפסוז.
בדיקה של סוגי הנתוניס
₪ ()וחסוג - המטרה (א)וחסוג מצליחה, אם א הינו אטוס. במקריס בהם א איננו אטום,
פעולת הפרדיקט וחסוג תלויה בגירסה של פרולוג.
₪= (%)ז0ק6)הו - המטרה הזאת מצליחה, אם א הינו מספר. במקרים בהם א איננו מספר,
פעולתו של הפרדיקט תלויה בגירסה.
א= (א))וומסוג3 - המטרה מצליחה, כאשר א הינו אטוס או מספר. את היחס 6ווחס0ז3 ניתן
להגדיר כך:
. (8)םס850 -: (א)860₪16
. (6₪05)8פת1 -: (א%)860₪16
תכנית 12.5 - הגדרה של הפרדיקט שווחסוה
א (א)זה+ - המטרה מצליחה, כאשר א הינו משתנה.
₪ ())זהותסה - המטרה מצליחה, כאשר א אינו משתנה.
איור 12.1 מדגים בדיקה של סוגי נתוניס, שנעשתה בגירסה 2.10 של :01.06אק-וא800וא.
| המספר 5 | המעתנה 4 | האטום 8 |
| . (5)מסט8 -? | (8)םסס8 -? | . (860₪)8 -? |
סם | סת | פס
| - (60₪05)5ת1 -? | . (50802)8מ1 -? | . (60200)8ת1 -? |
| 8 | סה | סת |
| . (16)5מסט8 -7? | . (860₪16)8 -? | . (860216)8 -? |
8 | סת 58
| -(5)פפט -? | .(8)פהט -? | .(8)פאט -7 |
סם | 71 | סח |
| . (5)מטתסת -? | . (8)שהטחסת -7 | . (8)ת8טתסח -? |
8 | סת | 8 |
וי ורוו רו וו
איור 12.1 - בדיקת סוגי הנתונים
25
תכנית 12.6 משתמשת בפרדיקטים ז6פסותו ו-זגצ לבדיקת סוגי הנתונים. השימוש באופרטור 5
נעשה בהתאס לתוצאות הבדיקה.
((82)2ט ,(צ)6802סת1 ,(%)66₪862ת1 -: (2,צ,א)5ש1ק
.צ+א 18 2
((א)פ8ט ,(2)ת%680ת1 ,(צ)0₪02סת1 -: (2,צ,א)5ט1ס
.צ-2 158 א<
,(צ)ע8ט ,(60₪02)2ת1 ,(%)6802סת1 -: (2,צ,א)5ט1ק
.א-2 15 צ
תכנית 12.6 - בדיקה של סוג הנתונים
גישה לביטויים מורכבים -
₪ (עָ1ת4 מ0ו6חט ,וחזטד)זסו6חט - הביטוי וחזסד הינו בעל הפנקטור הראשלי זסוסחט] של
אריטי עווזג.
.(4 ,8 ,(15880 ,ם8ת5)8028תסתהק)עס6סתנ/ -?
%תסתהת = 2
2 = 4
₪ ()ה6ותטקז ,וחזטך ,א1פַזּ -- הארגומנט ה-צ-י של הביטוי מ ז6ד הינו 1הסוחטקז ה.
.(8ע4 , (15880 ,םת8ת6)8028תסע8ק ,2)שעה -?
6 = שםג
בסעיף 12.4 נציג את התכנית ווח6וסט5, בה נדגים את השימוש בפרדיקטים זסזסתט] ו-388.
פיה לפיסקאות
₪ (צ300 4 - הפרדיקט הזה מאתר פיסקה בעלת הראש הנתון 11686.
. (צ806 , (15880 ,מ8ת%6)8028ת6ת8ק)018096 -?
66 = 806
באיור 12.9 נביא דוגמאות נוספות של שימוש בפרדיקט 018056.
₪ (56שג[)))ז3550 - באמצעות הפרדיקט הזה מוסיפים פיסקה אל סוף הפרוצדורה. את
השימוש בו נדגים באיור 12.10.
₪ (56ט0)0|2ז8550 - פועל כמו 855671.
₪ (86טג|18)0ז3550 -- באמצעות הפרדיקט הזה מוסיפים פיסקה אל התחלת הפרוצדורה. את
השימוש בו נדגיס באיור 12.10.
26
16)186)))-13056( - באמצעות הפרדיקט הזה מבטלים פיסקה. בסעיף הבא נראה איך
משתמשים בו.
נציין, כי אם הפיסקה 01356 הינה חוק, יש להוסיף זוג נוסף של סוגריים בשל סיבות
טכניות הקשורות לסדר הקדימויות של האופרטורים.
(4 390108305 -- מבטל את כל הפיסקאות בעלות פנקטור = של אריטי 4. נדגים את
השימוש בו באיור 12.10.
קחוזפו! -- באמצעותו של הפרדיקט הזה מערכת הפרולוג מפרטת את כל הפיסקאות
שהוגדרו על ידי המשתמש.
(270660070)קַת801ו1 -- באמצעותו המערכת מפרטת את הפיסקאות של הפרוצדורה
66ס0סזק. האיור 12.10 מדגיסם את השימוש בפרדיקט הזה.
בקרת הזרימה
(א)/[68 - הביטוי, אשר הוצב תחת א, מתקבל כמטרה. את הפרדיקט הזה היכרנו בעת
דיון בפעולת ה-806ז1 בפרק 7.
אא - בגירסת 01.00אק-1א1500/ זהו סיום הרצה של מערכת הפרולוג והתזרת
המשתמש אל מערכת הפעלה.
ו - נכשל תמיד, ובכך גורס להמשך החיפוש או להודעת הכישלון.
וזו - מצליח תמיד.
-- מצליח מספר פעמים כרצוננו. ניתן לראותו כמוגדר באופן הבא:
. 260685
.קת -: 686ק6ע2
תכנית 12.7 - הגדרה של הפרדיקט ]16064
קריאת קבציס
את אוסף העובדות והתוקיס של תכנית הפרולוג כותבים בדרך כלל ב-ז1-64100א16. את הטענת
הקובץ אל מערכת הפרולוג מבצעיםס באמצעות הפרדיקטים הבאים:
₪ (51))71|0ת60 -- קורא קוב 16ו. בעת הקריאה מארגן את הפיסקאות על פי השתייכותן
לפרוצדורה, ובתוך הפרוצדורה הנתונה מארגן את הפיסקאות על פי סדר כתיבתן (בנושא
זה ראה תכנית "התפתחות של בעלי-חיים" ואיור 30 בחטיבה רביעית).
27
₪ [716+] - סימון תחבירי גוסף של 5011ת600.
₪ [71863+ ,71162+ ,71161+] - ניתן לקרוא קבצים אחדים בזה אחר זה.
₪ (18ת))!5ת660ז - קורא קוב 6ות. בעת קריאת הפרוצדורה מוחק פיסקאות הנמצאות
במערכת הפרולוג והשייכות לפרוצדורה הזאת.
₪ [6וע] - סימון תחבירי נוסף של 511ח660ז.
₪ [63/ ,71162 ,1161ע] - ניתן לקרוא באמצעות 511ח0ס6ז קבצים אחדים בזה אחר זה.
שם הקובץ הינו אטום. נציין גם, כי ניתן לקרוא כמה קבצים בזה אחר זה, כאשר אחדים
מהס קוראים באמצעות 5[1ת0ס6 ואחרים - באמצעות 11ט5ת600ז.
נדגיס את ההבדל שבין 1|טפחס6 לבין ₪11פחס66ז. נניח, כי נתונים שני קבצים: קוב 11ח6זג,
המורכב מפיסקה (א610 ,וחס)וח6זגק וקובץ 12ח6ז8ק, המורכב מפיסקה (61/68 ,1)!:2ח6זגק.
תחילה נטען את הקובץ !וח6זגק. אס נטען לאחר מכן את הקוב 876812 באמצעות 005011>-
יהיו במערכת הפרולוג שתי פיסקאות של הפרוצדורה |ח6זגק. אם נטען את הקוב 2!וחשזגק
באמצעות ]51ת660ז- הפיסקה (6:6% ,וחסו)וח6זגק תמחק, ובמערכת הפרולוג תהיה פיסקה אחת
בלבד: (א68ו6 ,1)102ת6ז8ק.
הפרדיקטים שלעיל הוצגו על-פי הגירסה 15201-8001.06/ו. נציין שבגירסות אחרות יתכן
וישנס שינוייס בהגדרתם ובתיפקודם.
2 שימוש בפרדיקטים של המערכת
בסעיף זה נביא דוגמאות שונות המתארות את אופן פעולתם של פרדיקטי המערכת.
קריאה וכתיבה של ביטוים, עריכה של פלט (איורים 12.2, 12.3, 12.4)
את פעולתו של הפרדיקט (וחז116)16זאו נדגים באמצעות איור 12.2. בחרנו להציב תחת המשתנה
וחזסך ארבעה סוגי ביטויים: ביטוי מורכב, משתנה, ביטוי שאינו בנוי בהתאם לכללי התחביר
של פרולוג ואטוםס. בתור אטוס שימש הביטוי הקודם, כשהוא מוקף בגרש מכל צעד. כמו כן
הצגנו שתי שאילתות מורכבות.
לפרדיקט (חח16)16וזאי יש שימוש נוסף, שגם אותו היצגנו באיור 12.2. אם נציב תחת ווזטך
ביטוי המוקף בגרשיים, נקבל בתשובה רשימת קודים ב-45611, אשר מייצגת אותו. הפרדיקט
(1.181 .6)56016060וחפח מאשר, שרשימת הקודים אותה קיבלנו, אכן מייצגת את הביטוי שמוקף
בגרשיים.
|08
21800
0 ח810ז6ט 6%67תקז0שה1 20108 (ת%)תסהפוט
1 ,(75צ8א8)84ז81.001800 8 536:8 .₪ (0) שת18זץק 60
(0.5.8) 688:ק2 817 (6) שת18זעק00
8
.(((112,הה156)11%68):00,818%6:8)3:א -7 !
((112,הה8)3:ז818:6,ת11%68)%0
8
.(%)166:א -1 !|
7
7 > א
8
.(112 6ח8 חת8 11%68 ת166):0;א -7 !
: 6:07 א68הץ5
:66
( 112 4ה3 תחתה 11868 תס: )166זא
.('?11 4ח8 הח3 11%68 08ס]')1:6:א -7 |
2 64ח3 תחה 11668 608
8
. (חח3,ת68))0א11 = א ,(א)166:ח -? |
58
(הח3,ת0ס])68א11 = %
8
. (166)8"₪ ,(תח3,ת11868)]0= א -7 |
(חה8,ת68)%0א11
(הה11668)%08,3 > %
58
. ("חחה 11868 ת66)"]0!:א -7 |
[116,111,109,32,108,105,107,101,115,32,97,110,110]
8
.([06,]116,111,109,32,108,105,107,101,115,32,97,110,110ה%6ה56)פתבּה -? !|
חתה 11%68 ח0ס) = 08ה66ה56
98
| 7-
איור 12.2 - השימוש ב-סווחזש
נבחן את פעולתו של הפרדיקט (נז6ד)680ז. לשם כך נעיין בפרוצדורה 8ט10ז >חסזאי, המוצגת
באיור 12.3. כשמציגים את השאילתה 008 שחסזא-?, מופיע הסימן " המעיד, שמערכת
הפרולוג מחכה לקלט. כשמקישים את המספר 7, המטרה (1640)5:00 נכשלת, והמערכת נסוגה
אל החוק השני. שוב מופיע הסימן ']". הפעם המשתנה א מתאחד עס המספר המוקש 913 ואנחנו
זוכיס לתשובה 833569, אשר היא הריבוע של 913. אם-כן, לא זכינו לדעת מהו הריבוע של 7.
את השאלה, מדוע אחרי הקשת 4000 מופיעה הודעת השגיאה, נציג באחת השאלות של סעיף
4.
209
.| , (8686)8500: -: 15₪08: שהסתט
,א * א 18 5 ,(א)680, -: 8ט150: שהספא
ב , (166)8תט
3
8
.15 פאַחסזחט -? |
.4 |
.םסא |
[ ת788810קא6 6616הת8:1)6 ת1 תסתתם ]
[8507566 ת60₪610א6]
-? |
איור 12.3 - הפרוצדורה 8טפ!ז- שחסזש
הבעיה העיקרית של הפרוצדורה גטסוז- שחסזש הינה האובדן של המספר המוקש, כאשר
המטרה (ק1640)510 נכשלת. הפרוצדורה 8טט:ז, שמוצגת באיור 12.4, פותרת את הבעיה הזאת
כך: אחרי קריאת הביטוי המוקש היא מזמינה את הפרוצדורה 00664זק. בדרך זו שומרים על
קביטוי המוקש.
,('זסאַס:ה! 8צש161פסק 3 6קע:] ,716380 ')166זא -: בט15ץ
,(%85)10 , 1ה , 1תח
,('(קס)8 6קץ) 6ת88 6ת% ת18ה1] 166)')%0-א
,(%85)5 ,1ה , 1ת
.(66606)8סזק ,(א)680ץ
.| -: (6686)8602סזק
ו(' ]0 8ז8003 8ת1:6)'7:א , א * א 18 םת -: (א)666סס:ק
((' 670818 1660)7:ה ,(א)66]-א
.3 |, (585)2 , 1ה , 1ה , (1680)8-ח
8ץ
.טס -7 |
זסאַפ:ה! 6צ81%1סק 8 6קץ) ,16888ק
(ק8%0 6קע] 8808 פת ה18ה1] 6)0)
.1
9 640818 7 ]0 6חהטף8 6תך
זַפאַס)ה! 6צ081:1סק 8 6קץ: ,(18888ק
(ק860 6קע5 6ה88 6ה6 ה18ַה1) 60)
11
9 880818 913 ]0 840878 6תך
זפאַפ6ה! 8צ!:|8סק 8 6קע:) ,18888ק
(קס8% 6קץ) 2308 פה) ה18ה1] 60)
.קס6ה
איור 12.4 - השימוש ב-1686
200
בכתיבת הפרוצדורה אטוז השתמשנו בפרדיקטים [ח ו-180, כדי לערוך את תבנית התשובה.
גישה לתווים, ט2) (איורים 12.5, 12.6, 127, 12.8)
נעבור לפרדיקטים 861, זטק ו-סוחגח. הפרוצדורה 80 של הסעיף הקודם מתארת את פעולתם של
הפרדיקטים 861 ו-וטק. פרוצדורה זו מוצגת באיור 12.5. הפרוצדורה "דוחקת" את הביטוי
שהתקבל, ומחזירה אותו ללא רווחים.
,(86%)6 -: 80
,(6)שטק
. (20.00)6
.| -: (46)ח80-0
.0 -: (80.00)6
| ?- 0.
6 ס) )סח זס 56 0] |
| 0%6006הז0060:
||? 3 4 5 6 7 0
1234567890]
איור 12.5 - פרדיקטים 61 ,ווק
את השימוש בפרדיקטיס 6וחגָח ,וטק נדגיס באמצעות הפרוצדורה15ז514, המתוארת באיור 12.6.
הפרדיקט סוח8ח מתרגם את המילה 6זסאי לרשימת קודים 45611, והפרדיקט וטק מציין את
הראשון שבהם. נעיר כי הדפסת התו ג נעשית מייד לאתר קריאה של המטרה (104)ו.
-: (623:80667 ,6ז%8)00:ז863
,([1811| ז656-ַ3ת6] ,6זסטש)פתהת
.(86687ז8ת6)שטק
.(6066. 450611 ,6110ת)8%8:68 -7 |
45611 6066 = 4
| 7- 4.
.(6006 45011 ,6110ת)8:8:68 -7 |
?6060681 8110,05011ת)8:8:58 :6811 [0]
17 5 3:0008ת110,]6פת)פְחגה :6311 [1]
27,, 6110,]104,101,108ת)6חהת :15א6 [1]
?,6)104טק :6411 [1]
?047));טק :16א6 [1] ת
68110,104(7ה)863::8 :16א6 [0]
.0 [ ה1 .
45011 6066 = 4
איור 12.6 - פרדיקטים 6וחגח, וטק
26[
לפרדיקט 6וחגח ישנם שני שימושים. האחד - לפרק לתוויס את האטום הנתון (בדרך זו
השתמשנו ב-6וחגת בפרוצדורה 518718). השימוש האחר הינו למצוא את הביטוי על פי הרשימה
הנתונה (את השימוש הזה של 6וחאַח ראינו באיור 12.2).
האיור 127 מתאר את השימוש בפרדיקט המערכת ש6וחגה שנעשה בפרוצדורה
5 ו|םו41[0. המטרה 80)088ז4ת0- זחסו(5ו מצליחה, אס שני האטומים הנתונים
1 סו ו-410₪2 מורכבים מקבוצות זרות של תווים.
-: (80)45001,45002ת874666ת0 6ה01( 418
,(1218%1, [תס126)פהבּח
, (46002,118%2)פחהת
.((118%2,א)-56ת₪6 , (1218%1,א2)ז6פת6ה) שסה
.(50ז8)8608,60ז660ַ4ז4ת0. 6ה8418[01 -7? | :א8ַח6:401
?(0פז60,ת350)זַ6ַ6סַבזת0 %6ת418[01 :₪811 [0]
?(18)1171],הס:ב)פַההה :6811 [1]
217,ָ 97],תסבּ)פההּה :1%6א5 [1]
721, ספתט) )פחהח :₪311 [1]
7+ 60 ס;-טם)פחבּה :16א6 [1]
,+ ,7) זספתסח :6811 [1]
7 ,+ 7,]97)-פפהפה :16א<5 [1]
;ו[1ן,6:)97,]116,117,114,98סתפה :6311 [1]
) ), 7? זקסספתפת :11+ [1]
727, 97,]97)זפפהסת :680;- [1]
727,ָ 16,]97])זספחפת :15א6 [1]
7 %));) לספססתסה :6311 [1]
)6 1, טקפפחפת :1%א5 [1]
72 ,ראת :640;: [1]
. 7, סספט) )הבח :51 [1]
27,, 97] ,חס )פחהּה :640 [1]
?(171 ,חס6בּ)פחבּה :311+ [1]
01פ-ט6,ת8)860 034-666 6ה418[01 :811] [0]
סח
איור 127 - הפרוצדורה 8ז4016ז8ח6- :חוסן5ו9 ללא זט
הבה נעקוב אחרי חישוב המטרה (ספזטץ ,גח81801615)810ח .6 1תוס(415. לאחר שמתגלה כי התו
6 שייך לשתי הרשימות, המטרה נכשלת. בשלב זה המערכת נסוגה, כדי לנסות למצוא פתרון
אלטרנטיבי. היא בודקת האס יש פתרון אחר למטרה (1.1512 ,סטזט1)פוחגח וכשמוצאת כי אין
- היא נסוגה צעד נוסף ובוחנת את ([11811 ,ו6)8108ותאת. המתכנת *ודע שלמטרות
(1.1512, סטזטז)6ות8ח ו-(1.1511, וח6)410חחבה יש פתרון אחד ויחיד. לכן הנסיגה מיותרת וכדי למנוע
אותה, המתכנת מוסיף וט אחרי (1.1812 ,02זס/)סוחגה. את הפרוצדורה שהתקבלה ואת
ה-1366 שלה ניתן לראות באיור 12.8.
22
-: (68:)80"81,₪80:02 5ה618[01
,(01,1218%1:ס0)פחהת
,((00:02,118%2)פַחאת
5
.((218%2,א)ז6פת6ת , (115%1,א)ז6פתפ6ת) 6סה
.(50זזט6,ת03:)3%0 :ה818[01 -? | :אַת1סבז%
?(0פזט%,ת36)0)ז3ת6 6ת418[01 :0811 [0]
?;18:1171,תס-ב3ּ)פחבּה :6311 [1]
7, 97,116,111],הס:ב3)פ6חבת :15א6 [1]
?0,118%2[172(1פזט6)פתהּח :6311 [1]
7, 116,117],ספזטם)שחבּת ::1א8 [1]
7, 175,]97,116,111[א):ספתפת :6811 [1]
?;[97,]97,116,111,109)זפפתפת :16א6 [1]
7 9+ 7))))ָ חתפה :6811 [1]
7, 16,117,114]) -פסתפה :11ג] [1]
7, 7611 רפפ :600: [1]
7, 16,]97,116,111[)ז6פתפת :16א6 [1]
7, 16,]116,117,114[)ז6סת6ת :611 [1]
7, 116,]116,117,114)זססת6ת :16א6 [1]
?זט תס:ב3)זת6 %ה418101 :11] [0]
סח
איור 12.8 - הפרוצדורה פז6זסג4ז4ה0. )חוס[615 עם 661
גישה לביטויס מורכבים, פניה לפיסקאות (איורים 12.9, 12.10)
איור 12.9 מתאר את פעולת הפרדיקטים זסוסתנ ו-56טג!6. היחס מסו6חט: ,וחזטד)זסוסתנת
(שג מצליח, כאשר ביטוי מוצב תחת המשתנה וחז16, או כאשר נתונים הפנקטור והאריטי.
דוגמה נוספת לפעולת הפרדיקט הזה נראה באחד השאלות בסעיף 12.4. המטרה ,018056)71686
(ע806 מצליחה, כאשר הראש של הפיסקה מוצב תחת המשתנה 11636.
איור 12.9 -
98
.(8 ,? ,(1,א8:)2ת6 %5ת418101)ז0:ס6תט] -1
8
+9
תה8ת6 %ח618[01
2
₪ > >
8
.(2 ,גְתַהּת0 %ת618[01 ,18:8)ז0:סתט) -7? |
(43 ,42 )-8ת0 שהת418[01 = מ-6ך
23
, (0260,1186262זס0)פַחההה , (80:6159,1218%161)פחהת = ע4ס
((65,118%262א%):56ה₪6 , (65,1218%161א%)ז6לחפת) 6סה -,
איור 12.10 מתאר את פעולת הפרדיקטים 5ח1811], 455011, 1617861, תפו[0ס8. לאחר הטענת
המערכת בודקים אם היחס זחשזגק מוגדר, או לא. הבדיקה נעשית באמצעות השאילתה
(1מ6זהק)8ה/1:51. היח איננו מוגדר. בהמשך מגדירים את היחס באמצעות 453671, ומוחקים אותו
באמצעות ]161780 ו-8901:88. התשובה לשאילתה אחרונה (זחסזבק)פַת:1151 מגלה, כי אכן חזרנו
8
.(ע806 ,(1,א)ז8ת0 %6ת01[ 86)018ש018 -? |
0-9
00
8
. (עץ806 ,60180₪0986)80 -? |
(051)ח80.0 , (651):טק , (865)051 = ע804
8
. (צ800 ,(%)ח018886)80.0 -? |
6 > א
; ! = ע806
5 = א
| 80 = ע806
איור 12.9 - הפרדיקטים זסזסתט] ו-018056
למצב, שבו היינו כאשר הטענו את המערכת.
איור 12.10 -
24
ת1840א42
0 ח810ת6ט ת6%6זקז56ה1 0108"? (ת6)ה0ב018
1 ,|,(8178א8.001690:8)84 8 :]53 .א (0) 6הא1זעקסס
(0.5.8) 688:ק ₪17 (6) 6ת18עק60
8
. (%ַחסַזַהק)8ה118)1 -? |
8
.((500,010%)חשזַ3ק)848807:6 -7 !
08=
.((א8760%)8878,010ק)888076 -7 |
8
.(%ה8+6ק)8ח118:1 -1 |
. ( 610%,תס5)6ת8ז8ק
- (83878,010%):ח6זק
8
. ( (ת18,%0:ז210):ַת8זַ84ק)886::8 -1 |
8
. (%ח6ז8ק)8ה118:1 -7? !
. (חס:,210:18))ה8זק
. (6)600,8616%ת6זאק
. (8878,0616%)%ה876ק
8
(|ה3007688)7376 6ה83 -: (118ת6,%ה73-6)תַח6ז3ק))4880:62 -? |
.(((116ת0 ,שַהסתבק)ץ11ה3] 836 ,(114ת6 ]
9-ה = שה6זג7
0 = 116ת6
8
.(יַחסַזהק)8ת11861 -7 |
. (0₪ס%,810:13)%ה6ז3ק
. (6)600,016%ה8זאק
.(א88:8,616))ח6זאק
-: (114ת6,%ה6ז6)24ת6זק
,((116ת06,%ת800:688)78:6 8378
. (114ת6, %ת3:6?)ץ11ה3] 8806
8
.((א616 ,ת0])%ת6ז8ק)667806; -1 |
8
.(%ַחסזַהק)ש8ת118%1 -? |
. (ח210:18,%0):ת6זהק
.(א88:8,016)]ת6זגק
-: (116ת0,%ה78:6)%ה23:6
,(118ת1:,6ה3007688)734:6 8886
. (60118, %ה6ז8?)ץ11ה3] 8886
8
. (2, יַתזַב3ק)ת118ססַ3 -7 |
8
.(%חסזהק)8ַה118:1 -7 |
8
| 1-
איור 12.10 -- הפרדיקטים 8ת1511], 455681, 161801 ,ח300115
25
קריאת קבצים (איור 12.11)
הטענת קובץ עס עובדות וחוקים נעשית באמצעות הפרדיקטים 1|טפתס6 ו-)|ט5ח0ס6ז, כפי
שהודגם באיור 12.11.
0 חהס1אץפט 6%67-קז56ה1 08ס01ס:ת (ת6)תהסב5גש
41 |,(88775א8.001606:8)82 8 53178 .₪ (6) שת18זעק 60
(0.5.8) 688;-ק ₪817 (6) 6ת18זץק 60
8
. (חז8815)805508ת60 -? |
0-4 התץסס6סטה
8
.[80+ גט5ם1:] -? |
9-4 88
4].!]- 0 ספ
איור 12.11 - פרדיקטים 5011ח60, 166005011
בקרת זרימה (איור 12.12)
הדוגמה הבאה מתארת את בקרת הזרימה באמצעות הפרדיקטים 62681ז ו-811]. הפרוצדורה
600 המוצגת באיור 12.12, קוראת ביטוי, כותבת אותו מייד, קוראת את הביטוי הבא, כותבת
אותו, וחוזר חלילה. הזרימה מנוהלת באמצעות הפרדיקטים 60041 ו-811. המערכת איננה
מאפשרת להגדיר את הפרדיקט 60631ז, ולכן "רימינו" אותה והגדרנו 60691זז, כפי שהגדרנו את
הפרוצדורות זססוח6וחות ו-01חח בפרק 11.
נעקוב באמצעות ה-178066 אחרי חישוב המטרה 0ה60. התכנית קולטת את המספר 2 וכותבת
אותו. לאחר מכן היא מבצעת את המטרה !|ח. בתרשים של ה-1:406 הקריאה וההצלחה של
המטרה [ח מתבטאות על ידי קפיצת סימן השאלה לשורה החדשה. לאחר מכן בא תורה של
המטרה [₪1, אשר כמובן נכשלת. כתוצאה מזה מתבצעת נסיגה. תוך כדי נסיגה חוזרת התכנית
אל המטרה )6064ז, אשר מצליחה, וחוזר חלילה.
206
(המשך)
7 :660 [3]
7 :811) [3]
1 :ַ11) [2]
7 :6600; [2]
27 :311] [2]
27 :6600 [1]
27 :0311 [2]
27 :16א6 [2]
27 :15א6 [ן1]
222 :₪811 [3]
.112
7-: :16א6 [3]
71 :611 [3]
1 :6811 [4]
27 :16א6 [4] 12
]4[
]4[ 1%
]4[ 6811: 27
]4[ 111: 7
]4[ 1%
]4[ 1:
2 :0660: [4]
7 :11] [4]
1 :811] [3]
71 :86600 [3]
7 ז:11] [3]
27 :6800פ: [1]
27 :660: [2]
217 :6811 [3]
27 :16א [3]
27 :816א6 [2]
27 :16א6 [1]
7 )66 :₪811 [4]
.6
0(1ח8806)6: :16א6 [4]
)0 :₪811 [4]
1ת0)6ת60 :15א6 [4]
1 :816א6 [0]
.000 5 ת1 ...
1
ךָ
-: 600
רב בצ
,(686)8
,(א9000)8
.
-: (06ח0)6(ת60
1
-: (0)8ת60
((א166)8ז₪
,1ח
.1
רבו
-: 62686:ז
וז
88
| ?- 0.
.תס) |
מס)
! 2.
112
.(112,ת10%68)60 |
(10%68)%00,112
8
.6 -7 |
.0 -? | :אַת861ז:
171 :0811 [0]
1 :611 [1]
27 :8186א6 [1]
167(1א)636: :₪811 [2]
2 ן
2171 :6816 [2]
)9 :0811 [2]
2 :0411 [3]
7 :16א6 [3] 2
:1 [3]
]3[ 2:
]3[ 0311: 71
]3[ 11: 7
]3[ 1
]3[ 1:
איור 12.12 -- התכנית 660 עם 6סגז1
207
3 פרדיקטים אקסטרה-לוגיים ומטה-לוגייס
בין פרדיקטי המערכת ניתן להבחין בפרדיקטים משני סוגים. להלן נביא את התאור
והמאפיינים של הסוגים האלה.
43 א) פרדיקטים אקסטרה-לוג?ים ([173108163א6)
סוג זה של פרדיקטים חורג ממסגרת המודל של תכנות לוגי. שפת הפרולוג, אשר באמצעותה
מוצג הרעיון של תכנות לוגי, הינה שפה הצהרתית, הבנויה על בסיס לוגיקת היחסים. השפה
מתארת את העצמים והקשרים ביניהם. לא נדרש מן המשתמש לחשוב במונחים של ביצוע
ההוראות, כדי להבין מה עושה התכנית ואיך היא עושה זאת. את תהליך החישוב, כלומר, את
ה-"איך", ניתן לראות כתהליך הסקה לוגית.
את שפת הפרולוג, אשר בנויה על-פי העקרונות של תכנות לוגי, מכנים בשס פרולוג צרוף (6וטם
לתכנית של פרולוג צרוף, המבצעת חיפוש אחר המטרה ונסיגות, דרושיס משאבים
רבים. כדי לייעל את פעולת התכנית, מוסיפים פרדיקטים (כמו למשל, את הפרדיקט וטל)), אשר
אינם עומדים בקנה אחד עם הרעיון של תכנות לוגי (למשל, בתכנית עם וט יש לעתים חשיבות
לסדר של כתיבת פיסקאות, ראה איורים 11.3 ו-114 בפרק 11).
ישנן סיבות נוספות שלא לתכנת בפרולוג צרוף. למחשב ישנס אמצעים לבצע פעולות רבות כמו
למשל, פעולות החשבון ופעולות קלט/פלט. שפת תכנות, אשר מטרתה להיות שימושית ויעילה,
חייבת להיעזר בהם. ניתן למשל, להגדיר את פעולות החשבון באופן התואם את הרעיון של
תכנות לוגי (ראה סעיף 4 של חטיבה רביעית), אבל בשל היעילות מעדיפים לוותר על כך
ולהשתמש בשגרות (פ6חוזטסז) של המחשב. פעולות קלט/פלט אינן כלולות במודל של תכנות
לוגי, המיושם במחשב סדרתי. נציין, כי נעשים נסיונות להכלילם במודל של תכנות לוגי במסגרת
הפרולוג המקבילי [1983 ,0זוס504].
נביא מספר דוגמאות של התנהגות חורגת, שעל פיה נסווג את הפרדיקט כאקסטרה-לוגי. נתחיל
מפרדיקטים המטפלים בקלט/פלט. אחד המאפיינים של הפרדיקטים האלה הינו היעדר
פתרונות אלטרנטיביים. כלומר, הם מצליחים או נכשלים פעם אחת בלבד.
₪ 6ג6, 610, ₪6 - באמצעות הפרדיקטיס האלה המערכת קוראת נתוניס מתוך קובץ מסוים.
קובץ זה מכונה בשם זרס הקלט הנוכת" (ות68ז51 1טקח: 1חסזזטס). לוח המקשים לצורכי
הקריאה מסווג כקובץ, אשר כינו?ו זספט. הקבצים הינם קבצי 45011, כלומר, קבצים של
תוויס, וניתן לקרוא אותס באופן סדרתי בלבד. לאחר שהמערכת קראה נתון מסויים,
ההוראה 1636 הבאה תגרוס לקריאת הנתון שבא אחריו, וכן הלאה. לא ניתן לחזור ולקרוא
את הנתון הקודם. תריגה זו הודגמה בפרוצדורה 1508 שתסזאו.
₪ 6 - ניתן לקרוא את הנתונים מתוך הקובץ 6 באמצעות הפרדיקט (566)516. לאחר
ההטענה, המערכת מוכנה לקרוא מתוך הקוב זספט, אשר מוגדר אוטומטית כזרם הקלט
הנוכתי. כשרוצים לשנותו, נעזריס בפרדיקט (566):116, אשר מעביר את זרס הקלט הנוכחי
מקובץ זט לקובץ 16=. המטרה (566):16 מצליחה פעם אחת. בעת נסיגה, המערכת
מדלגת על המטרה (366)=116 כלומר, זרס הקלט הנוכתי אינו משתנה.
₪ 566 -- סוגר את הקובץ ששימש כזרס הקלט הנוכחי, ומחזיר את המערכת לקוב ז0פט.
208
---
₪ 6וזט, )טש - באמצעות הפרדיקטים האלה ניתן לכתוב את הנתונים אל תוך הקוב,
המכונה בשס זרס הפלט הנוכת" (וח68ז51 זגוקוטס 1ח6זזטס). המסך מסווג לצורך זה כקובצ
בשס ז6פגו.
₪ |!6 - באמצעות הפרדיקט (ש6וַ=))161 פותחים את זרס הפלט הנוכחי. המטרה (161)16
מצליחה פעם אחת בלבד, ואינה נכשלת בעת הנסיגה.
₪= 0₪) - הפרדיקט הזה סוגר את זרם הפלט הנוכתי.
נביא דוגמאות אחרות של התנהגות חורגת, אשר מקורן בהצבות תחת המשתנה.
= אה - התנהגותו של הפרדיקט הזה חורגת ממסגרת תכנות לוגי, כאשר בעת הפעלתו
נמצאים בתחומו משתנים שאינם קשורים. דוגמאות של סטיות מסוג זה מובאות בסעיף
3. לעומת זה, כאשר ההצבות תחת המשתנים אשר בתחומו נעשו לפני הפעלתו, הוא
מתנהג כפרדיקט לוגי לכל דבר, [1983 ,ז6תוס 8 זג3(]. בסעיף 11.3 הדגמנו את הבדלי
התנהגותו של וסת באמצעות הפרוצדורות עקקגתחט ו-1ץקקגתתט.
א )וצה - היכרנו את אופן השימוש בפרדיקט זה בסעיף הקודם. בלעדיו לא ניתן לבנות
מערכת מומחה (ראה חטיבה רביעית).
נציין כמה מתכונות הפרדיקט, לאחר עיון בשתי השאילתות הבאות:
. עתתט5 , (עַתתט885626)8 -7
. ( צתתט855626)5 , שַתתט5 -?
התשובה לשאילתה הראשונה הינה חיובית. התשובה לשאילתה השניה תלויה בכך,
שהעובדה עתתט5 נמצאת, או שאינה נמצאת, בבסיס הנתונים. האופרטור "," אמור לשמש
כקשר לוגי כםא.א. בהשפעת הפרדיקט 855671 הוא אינו ממלא תפקיד זה, שהרי על פי תכונת
השקילות שלו (ראה פרק 2), הפסוק ט שא 8 שקול לפסוק 8 שאג פ, דבר שאינו נכון
במקרה של שת? השאילתות שלעיל.
נעיין בשתי שאילתות נוספות:
. (610002)8 , (א)עַסְקאת -?
. (02)8ט61600 , ((א)עַסְקת)855006 -7?
על פי העקרון של תכנות לוגי, המשתנה % בשאילתה המורכבת הינו משתנה משותף.
העקרון הזה הופר בשאילתה השניה. משמעות הפיסקה ((א8)עק1)330ז3556 היא, שהעובדה
(%)40ת מצטרפת לבסיס הנתונים. אשר על כן המשתנה א בפיסקה ((55671)330)0%ב
הינו משתנה המכומת כללי. לעומת זאת, אותו משתנה בפיסקה ()6צ6!6 מכומת קיומי,
כנהוג במשתני השאילתה.
נעיין בשאילתה נוספת:
. (610002)8 , ((צ)צסקאת)855026 -?
המשמעות של השאילתה הזו הינה זהה למשמעות של השאילתה הקודמת. למדנו מכך, כי
כללי התכנית הלוגית בנוגע למשתנים משותפים בשאילתות מורכבות, כפי שהיכרנו אותס
בפרק 5, מופרים על ידי השימוש ב-45501.
209
נציין תכונה נוספת של 1ז4556: הפיסקה שנוספה לבסיס הנתונים באמצעות 355671, נשארת
בו כשמתבצעת נסיגה. נציין גם, כי נעשים מאמצים לפתח שיטות, אשר יאפשרו להוסיף
מידע לתכנית מבלי לפגוע בתכונות הלוגיות שלה [1984 ,ת6זז8/ו].
ישנם פרדיקטים אקסטרה-לוגיים נוספים. את השאלה אם הפרדיקט הנתון הינו אקסטרה-לוגי
אם לאו, פותרים לגבי כל פרדיקט. בחרנו לסווג את הפרדיקטים בהתאם להתנהגותם. חשוב
ללמוד את התנהגותם כדי לדעת לאתר סטיות ובכך למנוע את סילופי המשמעות בתכנית לוגית.
3) פרדיקטים מטה-לוג?ים (6031081691)
תתילה נדון במונח "מטה" (618מח), שתרגומו לעברית הינו "על". אס-כן, תרגומו של המונח
ו08זק4ו6וח הינו "תכנית-על". תכנית-על היא תכנית אשר הקלט שלה הוא תכנית אחרת.
למשל, המהדר (ז6!וקוחס6) הינו דוגמה של תכנית-על.
פרדיקט מטה-לוגי הינו פרדיקט המערכת, אשר יעודו לטפל בפרדיקטים אחרים. פרוש הדבר
הוא, שהארגומנטיס של פרדיקט מטה-לוגי הינם פיסקאות של תכנית לוגית. נביא כמה
דוגמאות של פרדיקטים מסוג זה.
₪ ||ג6 - התכנית של פרולוג הינה אוסף הנתונים. הפרדיקט (א)681 "הופך" את הנתון א
למטרה א ובכך מתאפשרת ריצת התכנית. הכלל שלפיו מחשבים את המטרה (א)681 הינו
כדלהלן: המטרה (א)!681 מצליחה, אם המטרה א מצליחה, והמטרה (א))681 נכשלת אם
המטרה א נכשלת. את השימוש בפרדיקט המערכת ]681 ראינו בעת ביצוע המעקב (06גזו).
בתור דוגמה נוספת נביא את ההגדרה הבאה:
.1 ,! ,(0811)0081 -: 0081 ס>סת
. [008 >סת
תכנית 12.8 - שימוש בפרדיקט |041
₪ זג - הפרדיקט (נחז6ד)זגי מבצע בדיקה של סוג הנתון וחזסד. המטרה (וחז6ד)זג+ מצליחה,
כאשר המשתנה וחזטך אינו קשור. אם הנתון הינו ביטוי מורכב, המטרה (וחז76)ז4/
נכשלת.
השימוש בפרדיקטים מטה-לוגיים מהווה אמצעי יעיל בבניית קונכיות (50618). לנושא זה נחזור
בחטיבה הרביעית.
סוגים שונים של פרדיקטי המערכת תוארו באיור 12.13. נציין, כי אין דעה אחידה לגבי החלוקה
של הפרידקטים לאקסטרא-ומטה-לוגיים. ישנם פרדיקטים כמו למשל, פרדיקטי קלט/פלט,
שהינם פרדיקטים אקסטרא-לוגיים ואין ספק לגבי השתייכותם. לעומתם, ישנס פרדיקטים
(כמו למשל, 61ח) אשר סיווגם איננו חד-משמעי (את הפרדיקט 01 מסווגים לפעמים כמטה-לוגי,
כיוון שהוא מטפל בפסוקים, שהינם חלק של תכנית לוגית).
ספקות דומים קיימים גם לגבי הפרדיקטים שבודקים את סוג הנתון. ישנסם שמסווגים את
(1606)8חו כפרדיקט מטה-לוגי, בתנאי שבמקרים בהס א איננו קשור, מתקבלת תשובה
שלילית, ולא הודעת השגיאה. בכל מקרה, מבחינה מעשית יש ללמוד היטב את פעולתם של
פרדיקטי המערכת, כדי לדעת את מגבלותיהם ואת גבולות השימוש בהם.
200
הבודקים את
0
ר----------] פרדיקטי המערכת |
| סוגי הנתונים
| | |
ב | ה
מטה-לוגיים לוגיים אקסטרה-לוגיים
ן
|
|
ן
|
| | (א)עפט | | (,1, א) 6סמסם |
| | (6811)0 | | (2, צ, א) 6ח6קק8 |
|
ן
860₪)8( ]-3
ה
190% ך ( 6ת550₪)000₪8צ5 |
1 (6תסמגתא, עס66תטת ) ק560₪ע5
ך ()2199 ר--
נ (ץ/זטפמת, צתמט501.)0 |מישקים
ב ו
4
|
|
|
|
|
|
ן
ן
|
|
|
|
|
|
|
|
|
==
(858626)8 | ניהול דינמי
(6%62806%)8ע2
8
0
(680)8ם |
(2156)8ש | קלט/פלט
(26%)8
(א)פטפ |
|
|
|
|
|
|
|
|
ן
|
|
|
|
|
|
|
|
|
|
|
|
|
|
איור 12.13 - פרדיקטי המערכת
4 פרדיקטי המערכת - תרגול
שאלה 1
א. הצג לפרולוג אשר ברשותך את השאילתות של איור 12.1, בדוק את התשובות והשווה את
התשובות עס אלו שבאיור.
ב הצג לפרולוג את השאילתות שלהלן ועיין בתשובות.
271
15886( ( . , מהת8028)%ת6ע8ק)מס6ה -7
. ( (15880 ,ע8ת8028)%ת820ק)ע6₪0סת1 -7
. ( (15880 ,מהת6)8028תסעהק)עפט -?
הערה: באמצעות שאלה זו תוכל ללמוד לאיזו התנהגות יש לצפות מתכנית הפרולוג, אשר מכילה
את הפרדיקטים לבדיקת סוג הנתונים.
שאלה 2
עיין בתכנית 8טטוז אשר באיור 12.4. שנה את הפרוצדורה 66664סזכ כך, שלאחר הקשת הקלט
תתבצע בדיקת סוג הנתון, ותשלתח הודעה מתאימה, אס הקלט איננו מספר ואיננו האטום קס510.
שאלה 3
הגדר את הפרוצדורה (1161181)1.881זו כך, שניתן יהיה לקבל את התשובה הבאה לשאילתה, אשר
להלן:
.([6 ,מ ,1661186)]8עט -?
8
ס
6
שאלה 4
הגדר את הפרוצדורה (.915)1ו5 כך, שניתן יהיה לקבל את התשובה הבאה לשאילתה, אשר להלן:
.([3 ,5 ,5)]2ע808 -?
**
*.%%%
א*א+
שאלה 5
הגדר את הפרוצדורה (62זס/ , 61זס/)א601זק, אשר באמצעותה ניתן יהיה לבדוק האס המילה
הנתונה 61זס\ הינה קידומת של המילה הנתונה 62זס/ץ.
רמז: היעזר בפרדיקטיס 6וחגּת ו-6ת6כק8.
22
. (8066%,ט0סץ)0787-80:078 %6ה418[01 -? |
8
[! ?- 6.
. (70%0,8%66%ץ)8780%678ת6 5ה618(01 -? | :אַת461::
?(00,8086%ץ)8:80:0:8ת6 6ת418[01 :6811 [0]
?;115%[171,טסץ)שתהת :6811 [1]
7, [121,11], טסץ)פחהּה ::1א6 [1]
?(66:,1862172א8)פתגה :6311 [1]
7, 115,119,101,101], 66א8)פחבּה :16א5 [1]
7, [175,]121,111[א):6סת₪6 :6811 [1]
?([121,]121,111,117)זפסחתפת :15א6 [1]
71, 121,]115,119,101,101)ז6סת6ת :6311 [1]
7, 6:)121,]115,119,10[1סתסת :311] [1]
7 ) זפחפת :600: [1]
71, 111,]121,111)זפפחפםת ::1א6 [1]
7, ,> :6811 [1]
7, 11,]115,119,101,101[)זפסתפת :11 [1]
71, 11,]121])זפסתפת :660 [1]
7,,, 117,]121)ז6סת6ת :16א6 [1]
7, 7,]15,119,101,101[ן)זססהפת :6311 [1]
71, [56:)117,]115,119,101,10ת6ת :811)] [1]
71, 17,]121,111[):ז6פתשת :640; [1]
7, 175,]12[,111 )זפסלתפת :411! [1]
606%7א8,טסץ)א8זסםסַבזהת6 %ה418[01 ::1א6 [0]
איור 12.14 - ה-11806 של 009140168 1חוס[615
שאלה 6
עיין באיור 12.14 וענה על השאלות הבאות.
א. מהי התשובה לשאילתה:
. (8666% ,טסץ)82ת6 6ת618[101 -7
ב האס ה-17466 של חישוב השאילתה שלעיל יהיה שונה מזה שבאיור 12.14! נמק את
תשובתך.
הערה: את הפרוצדורות 008790165 1ח615(01 ו-ז8תס- וחוסן6:3 היגדרנו באיורים 12.7 ו-12.8.
שאלה 7
התבונן בתכנית הבאת:
ובאה -: (עסשפת8 ,6ע00)ץ18ק
, (860)₪026
, (עסטפת1)עפש
, (1.155 , 0026) ספת
. ([32]1156, 117, 111, 121 ] , עסשפחה) ספת
מצא את התשובות לשאילתות הבאות:
. (עסשפת , קַםשט4) צָ18ק -?
. (עסשפת1 ,%)ץ18ק , עמשט0-א -?
. עַמםט8=א , (עסשפתה ,א)צ18ק -?
2.3
שאלה 8
לפניך פרוצדורות אחות! ו-30686. -80. מבלי להריץ את התכנית, הסבר מה תהיינה התשובות
לשאילתות שלהלן.
-: (0081)>ת1ת%
, (צ306 ,018056)0081
. (ע806) 8686 ₪0
-: (06ע%)6806ת8 ₪0
, (680)12
(('!מסתך')6ס1עט
. 1ת
-: (עץ686)006ת8 ₪0
, (685)8
(('ע6)'1ס1עט
, 1ת
, (680)10
- ( 008%) 66 נעש
- (([8,0,6] ,8)ת6סמסם)%ת1גם -?
. (([8,0,6] ,ס)6₪062שם)את1םס -?
- ( (עסשפתג , שְ₪שעט8) צ18ק)%ם1ג> -?
- ( (עתש , צַשמט8) צ18ק)את1ת6 -?
שאלה 9
עיין בפרוצדורה חז68! שבאיור 12.15, וענה על השאלות האלו:
א. האם ישתנה ה-80ז1 של הפרוצדורה חזג6! בהשוואה ל-1:806 של 0ה66, שנמצא באיור
2 אם אכן ישתנה, מה יהיה השינוי
ב. נניתח שמריצים את הפרוצדורה 0ה660, כאשר זרס הפלט הנוכחי הינו קובץ בשסם 6601. מה
תהיה התוצאה!
ג. | נניח שמריצים את הפרוצדורה םז68!, כאשר זרס הפלט הנוכתי הינו קובץ בשם |חזגין.
מה תהיה התוצאה!? -: "168
,)הפקת
((א)8806ת
,(א888675)8
,(א)0ת60
.1
-: (6ת0)6ת60
%
-: (א%)0ת60
((156)8;-₪
,1ח
11
.]ה6קפתץ
-: 8686ק6תת
איור 12.15 - הפרוצדורה חז168 .0
24
שאלה 10
עיין בפרוצדורה וחז6זטט5 וב-1:866 שלה אשר באיור 12.16
בתשובה לשאילתה:.
. (((112 ,תת515806025)8 ,ש11%65)60₪)םת6ספט5 -?
מקבלים אוסף של תת-ביטויים של הביטוי. לעומת זאת, ה-6גז1 מסתיים בפרדיקט [ו8.
התשובה לשאילתה מסתתרת בתוך ה-06גז1, ואינה מופיעה לקראת סופו. אתר את שלבי
קבלת התשובה בתוך ה-1:8066 והסבר את דרך קבלתה.
-: (תז8055:6:8)18
(תז8,16ז5%6פט67)5:פט8
,(%85)12
, (תז%6לט156)5:א
,1ח
.1]
-: (5)585%670,1672ז5%6פ81
, (תז8%08106)16 %סח
,(א,2,1ז16):ז%0ס6הט)
. (תז16,תז6:פט5,א)6678פט8
.(1,1)תז66פט8
-: (ת5,167ז5)8,50566ז6:%לט8
+ א
,1]- א 18 [א
. (מז16,₪ז66סט5, [א)תז66פט8
-: (תז167,ת:566ט8,5)תז%6פ80
,()ת6הט8ז:4,תז3"2)8,16
. ( ל חסתטק ז4 , 505667 ) ז6:סט8
8
. (( (112,תת818%078)8,ת2)11%68):0:ז5:6ט8 -? !|
חס:
התג
112
(112,הה818:078)8
((112,תה08)60₪,818%6:8)3א11
| 7- 4.
.(((112,הת8185078)8,ת11%68)%0)תז5:6ט8 -7 | :ַאַת801ז:
112(((7,הה68)%00,818%6:8)8א11)ת-16סט8 :68411 [0]
112(((1,תה173,11%68)%08,818%6:8)8ת67:פט5)תז6)פט8 :6311 [1]
?'((112,הה81868:8)8,ת68):0א860₪16)11 :6811 [2]
?((112,תת818%6:8)8,ת68)60א16)11ת3:0 :411] [2]
71,, (( 112, חה68):00,818%67:8)3א60:)116סתט] :0811 [2]
1, ( ( 112, הה0:)11%68)600,818%678)8:סתט] :16א6 [2]
112(((7,תתה818%8:8)8,ת550:2270,11%68)50ט2,5)מז6)פט8 :6811 [2]
?1 כ 2 :6311 [3]
1 2 :16א6 [3]
1 - 2 18 1491א :6811 [3]
7 - 2 18 1 :16א6 [3]
112((1,תה488,11%88)507,818%878)8ת:1,505:6)תז6)פט8 :₪811 [3]
7; 1 :611 [4]
איור 12.16 -- ריצה של פרוצדורה ה חסוטט5
25
?ןְ< 1 :811 [4]
1 פהסתטעז,((112,הה8)3ז818:6,ה68):0א8)1,11%ז8 :₪811 [4]
112((,500(7,הה68)600,818:8:8)3א8)1,11%ז8 :16א6 [4]
813,017 הז50560)הז55:6ט8 :4[.₪411]
7(חס%)16תס6ה3 :₪811 [5]
?(ח0ס%)10תסםהּ :16א6 [5]
?(500,ה60)תז66סט8 :15א5 [4]
7 חהת1,600,11%68)%00,81860:8)3)הז66סט8 :16א8 [3]
7, חח 2,507,11%88)600,818:0:8)3)הז%6סט8 :16א8 [2]
7(, תח81866:8)3,ת11%68):0,ת%0)תז66פט8 :16א6 [1]
? 1 [5]
2 21 [5]
7חס;)166:א :6811 [5]
?)166 :16א6 [5] תס;:
+ [5]
1
]5[ 1%
1
נש נש מ ענ
1 פסטפָז, (112,הה8:8)2,81860:8)8 :6811 [5]
7, (112,הה8)2,8186678)8ז :16א6 [5]
207 :0811 [5]
התסה :0811 [6]
?(16)112ה350 :16א6 [6]
?(0)112,112ז566ט8 :16א8 [5]
?((112,הה2,112,81860:8)3)ה67:פט8 :16א6 [4]
?(112,הה112,818:078)8)ה-667פט8 :16א6 [3]
7 ח2,112,11%68)%00,818%:078)307)ת:56לט8 :16א6 [2]
?(((112,הה112,11%68)%08,818%8:8)8)ה67:פט8 :16א5 [1]
ָ? :1 [6]
1 1 [6]
2 :6411 [6]
7 :916א68 [6] 112
:1 [6]
7
שש עשת גמ גת גמ :
7, ה0ה)81858:8, (112,הה818%6:8)3)ת-6)פטם 1 [3]
7, הְ68):00,818%:0:8)830א112(,11,הה2,818%6:8)3)הז6)טגום :2 [2]
7, ההה)8ז81858,ת68):0א112(,11,הה81860:8)3)ה-6:פגם :1 [ֶן]
1 :1 [4]
]4[ 2 ?ָ
[(112,הה166)818%6:8)8-א :₪811 [4]
112(1,הה8)8ז156)81860:א :6 [4] (112,תה8186678)8
+ ([4]
1
איור 12.16 - ריצה של פרוצדורה וחזשוסט5 (המשך 1)
26
7, ההה)112((,11%68)608,818%0:8,הה68)60₪,818%678)8א11)ז6)סט8 :16א6 [1ן
1 1 [2]
1 :)1 [2]
7, ((112, הה88):05,818%87:8)8א11%)זס:שתט] :660: [2]
7.,. ((112,תחה818:6:8)8,ת68):0א660:)11הט] :811) [2]
7, חתה)112((,11%68)500,818%0:8,הה68):05,818:8:8)8א5)11ז8:לט8 ::1א8 [1]
1 :1 [2]
7 1 [2]
?((112,החת1:6)11%68):08,818%67:8)8:א :63411 [2]
112((1,הה818:678)8,ת166)11%68)60:א :16א6 [2] ((112,הה11568)%05,81800:8)3
:1 [2]
1
]2[ 1
1
1 :6811 [2]
71 :ן11] [2]
1 [2]
]2[ 1
?112((1,הת116)11%68)!08,81816:8)3זא :660: [2]
?((112,הת68):05,818%6:8)8א1:6)11זא :1811 [2]
]2[ 1 1
1 ו1 [2]
7, חה112((,11%68)60₪,8186678)8,הת68):08,8181:678)8א11)מז16פט8 1 [1]
7 , הח0ת818%67-8)8,ת173,11%68):0 )675:פט8 וגו [1]
112((1,הה818%9:8)8,ת68)]0א2)11ז6)פט8 1 [0]
איור 12.16 -- ריצה של פרוצדורה מחטופט: (המשך 2)
207
28
חטיבה רביעית
תכניות יישוס
בחטיבה זו הצבנו שתי מטרות. האחת - להכיר את האפשרויות של פרולוג בנושא היישומים.
לשם כך הצגנו סדרה של תכניות יישום בתחומים שונים. המטרה האחרת - לערוך חזרה על
חומר הלימוד. לשס כך, ערכנו את התכניות לפי סדר הפרקים בספר, אשר ההיכרות אתם
תיונית לכתיבת התכניות. מספרי הפרקים צויינו במבוא לכל תכנית יישום, בסעיף "רקע". כל
תכנית מלווה בתרגיל, אשר גם הוא מתאים לחומר הרקע. לארגון זה יתרון נוסף: ניתן לדון
בתכנית היישוס מיד לאחר הלימוד של הפרקים המתאימים.
לטיום החטיבה הצגנו מספר שאלות, אשר בהן הלומד נדרש להדגים ידע משולב של חומר
הלימוד. דגש מיוחד ניתן לשאלות בעלות תוכן לימודי בתחומים שונים, כגון תנ"ך, הסטוריה,
מתמטיקה וכדומה.
רשימת תכניות היישוס של חטיבה זו:
1. סיפור מן החיים בשפת פרולוג.
רקע: פרקים 5, 7 (בלי רקורסיה).
2 חד-גדיא.
רקע: פרקים 5, 7.
3 קשרי המשפחה המנומקים.
רקע: פרקים 5, 7 (בלי רקורסיה), 8 (בלי פעולות החשבון).
4 תאור של מבנים אינסופיים באמצעות רקורסיה.
רקע: פרקים 5, 7, 8 (בלי פעולות החשבון).
5 חישוב עצרת של מספר.
רקע: פרקים 5, 7, 8.
209
200
פתרון בעיה באמצעות תכנות לוגי - מפת היעדים.
רקע: פרקים 5, 7, 8 (בלי פעולות החשבון).
מודל לפתרון בעיה באמצעות תכנות לוגי.
רקע: פרקים 5, 7 8.
חיפוש הדרך במבוך.
רקע: פרקים 5, 7 8, 9.
מודל לפתרון בעיה באמצעות תכנות לוגי (המשך).
רקע: פרקים 5, 7 8, 9, 10 (פרק 10 רצוי, אולס אינו הכרתחי).
. בעית שמונה המלכות.
רקע: פרקים 5, 7 8, 9.
. מגדלי האנוי.
רקע: פרקים 5, 7 8, 9, 12 (מתוך פרק 12 נדרשת ההיכרות עם היחס 6ווזא).
. תוכנה לימודית באמצעות פרולוג - התפתחות של בעלי-חיים.
רקע: פרקים 5, 7, 11, 12 (היכרות עם היחסים 6ווזשי ו-[ח).
. מערכת מומחה - גן החיות.
רקע: פרקים 5, 7 8, 11, 12.
. קונכיה (5561) של מערכת מומחה.
רקע: פרקים 5, 7 8, 9, 10, 11, 12.
. תכניות יישוס - תרגול-
1. סיפור מן החיים בשפת פרולוג
חומר רקע: פרקים 5, 7 (בלי רקורסיה).
תכנות לוגי הינו תכנות הצהרתי (דקלרטיבי). תכנית לוגית היא אוסף של עובדות וחוקים,
המתארים אירוע כלשהו. העובדות מתארות את היחסים בין העצמים ואת תכונותיהם,
והחוקים מגדירים יחסים חדשים על בסיס היחסים הקיימים. כל חוק מבטא קשר לוגי בין
היחסים.
את הסיפור על אדון נחמד בשם צירלס, כתבנו במקביל בשפה האנגלית ובשפת הפרולוג. להלן
הטיפור.
צתסד5 פצס1 פטאדך 4
ת6ותסשש 6ז6עו 6ז6ת1 תג ...ההוח1!6ת26 8 85 166 6וח11 4 הסקט 66תכ)
:5 15 6זסאו 10056 46 ...116 פות תג
.6% |ט] 631 11860 116
(צ)[:1וג6ס ,(צ)20[-:(ץ , )1160
.6 [!181 )0 6חס)] 85 116
(צ)[[19 ,( צ)ץ136-:(ץ ,0% 6ח0]--45
.5 וג תס[ 66ז6)0זק 116
(ץ)זו4ת 6חסום ,(צ)ש20]-:( + ,%)6)6160זק
.65 16!]18601חו 6014160זקקג 116
( צ)1ח161186ח ,(צ)ע86|-:(צ ,%)4160ו60זקקג
.5 ]6011061ל 6181006חט 116
( )06901101 ,( צ)ק20551-:( ,%)6651000תט
.5 |ח6קו!|16חו 14166 116
.( ץ)זת86ו16[1ח: ,( ל)ק80551-:( ,)3160
6 6 10056 קהסוח/
.1ח6קו!|16חו 6ז6צו סחאו 1056 תז1או 8+6[160ז1 6ת
.( צ)1ת161!186ח1 ,ץצ , %)60ז6/6זכ-:(צ , )וזו 6[66/ז1
68 סח 1056 קחסוח /
1 סשז6שו 0חאו 10056 ]0 6ח₪6]) 3 45צו 6ת
(צ)1ט640111ט ,( ל ,%)604160זקקב-:ץ ,00% 166
646 שת 18056 קהסוח/
6ז6או סחאו 18056 60| 6
(צ)[ט 06310 , ( ל ,%)60ז6)6זק -:( + , א)60צסו
281
84 10606 6 ותסתט 166גות 116
. .1ח16!10ח! 85ש סח
.(צ)זח86ו!!16ת1 ,(צ ,%)60שס1-:(ץצ 1600גוח
6 והסתשש )0 6ה716) 01056 8 85 8150 6 וו
.4 שח ]0 6ַתס] 45
(צ ,%)0- 6ח0ס)- -45שו ,(צ ,%)66151000תט-:(צ , %)0ת16]. -61050
(ץצ ,%)60ז6]6זק
1 15 6ז6ע 10056 6
. (5828)ץ1806
. (ע0506)ץ180
. (תסגות ) 180%
. (81106) 1806
. (16%0218ט)ץ186
. (188)28%621618
. (112)ץ1806
. ( עְ1ַ5הַת) 180
. (16%60218ט)₪05910
. ( צַש8םמ)ק₪09591
. (112)ק₪05581
. (₪098910)28%621018
. (ע%811)68%6
6811)112( .
. ( עַעהם) 6811
. (8%210618ק)6811
(5828) 211 681161
. (תסגות ) 5111 1%1ו68ס
. (112) 51 61טהסס
= . (צ581ת) 9111 161ו68ס
. (812)8828ת 6ת10ס
. (1060218ט)15ה8ת 6תס1ס
. (ע2812)6806 6מ0ס1ס
. (812)112ת 6ם0ס1ס
. (9828)%ם%6611186ת1
. (%6)81106ת%66111₪6ח1
. (צ8%81ת)%ת%5611186ת1
. ( צע8ם)%ת6611186ת1
תכנית 1 - סיפור מן החיים בשפת פרולוג
22
תוגיל 1
ידוע כי: מ8וח1]6ח86 16 01 6התאח 186 פא 165זהי)
א ענה על השאלות הבאות:
?7 ?ז6)6זק ?1186 65]זגה-) 616 נתסת/
7 15 6ז6ע 0 / ?106 6 816 וחסמצ
7 6 816 וחסת\ ?ת1ואו [6גז1 36 416 ותסה/
?זט 6 016 ותסת'\ ?)0 6ח0] 6 45א ותסתצ
7 01056 115 6ז6צ סחצ 46 ?60וזזהוח 6 616 ומסת/ש
ב. תרגם את השאלות שבסעיף אי לשאילתות של פרולוג.
ג הרץ את התכנית, והשווה את התשובות לשאילתות עם התשובות של סעיף א, אשר
השבת על פי סיפור המעשה.
ד המצא המשך ל"סיפור מן החיים". למשל: תאר את חיי משפחת צירלס עם בחירת ליבו,
תאר את ילדיהם, או לתילופין, תאר את חבריו של צירלס, את עיסוקיהם וכן
הלאה.
ה כתוב סיפור בפרולוג בנושא האהוב עליך.
23
2. חד-גדיא
חומר רקע: פרקים 5, 7.
התכנית שלהלן הינה בעלת תוכן לימודי בנושא השיר חד-גדיא, שבהגדת חג הפסח. השיר תורגם
לעובדות של פרולוג. את הקשרים בין העצמים המוזכרים בשיר, תיארנו באמצעות חוקים
רקורסיביים. כדי לבנות את החוקים האלו, היה עלינו להפוך את סדר הזוגות, הקשורים
באמצעות היחס "ואתא". מדוע! על שאלה זו תתבקש לענות בתרגיל שבהמשך.
גדיא שונרא כלבא חוטרא
איור 1 - שרשרת של חד-גדיא
להלן התכנית. באמצעותה ניתן לראות את הקשרים בין משתתפי סיפור החד-גדיא. קשרים
נוספים בין המשתתפים ומעשיהס תתבקש לפתח באחת השאלות של סעיף 15.
ואתא(שונרא, אכל, גדיא).
ואתא(כלבא, נשך, שונרא).
ואתא(חוטרא, היכה, כלבא).
ואתא(נורא, שרף, חוטרא).
ואתא(מיא, כבה, נורא).
ואתא(תורא, עתא, מיא).
ואתא(שוחט, שחט, תורא).
ואתא(מלאך המוות, שחט, שוחט).
ואתא(הקדוש ברוך הוא, שחט, מלאך המוות).
זוג( עצם1, עצם2) :-
ואתא( עצם2, מעשה, עצם1).
עשרשרת( עצם1, עצם2) :-
זוג( עצם1, עצם2).
ערשרת( עצם1, עצם2) :-
זוג( עצם1, עצם),
ערערת( עצם, עצם2).
קשר( עצם1, עצם2) :-
שרשרת( עצם1, עצם2);
שרערת( עצם2, עצם1).
עושה( עצם, מעשה) :-
ואתא( עצם, מעשה, ).
עושה( עצם, מעשה) :-
ואתא( עצם, פעולה, עצם1),
עושה( עצם1, מעשה).
תכנית 2 - חד-גדיא
24
נציון, כי היחס שרשרת מתאר את הקשר בין העצמים על פי סדר הופעתם בשיר. לעומת זה,
היחס קשר הינו יחס סימטרי: אם הוא מתקיים בין גדיא לבין שונרא, אז הוא מתקיים בין
שונרא לבין גדיא, וכן הלאה.
את התכנית "חד-גדיא" ניתן לפתח בכיוונים שונים. נחזור אליה בשאלה 2 בסעיף 15.
תוגיל 2
א לשם מה הפכנו את סדר הופעת העצמים באמצעות היחס זוג! האם ניתן לבנות את
התכנית מבלי להפוך את היחס!
נמק את תשובתך.
ב מצא את התשובות לשאילתות האלה:
?- שרשרת(גדיא, שוחט).
?- שרשרת(שוחט, גדיא).
?- קשר(גדיא, שוחט).
?- קשר(שוחט, גדיא).
ג. | אילו ממשתתפי החד-גדיא קשורים אל חוטרא!
ד התבונן בשאילתות הבאות:
?- שרשרת(נורא, א).
?- קשר(נורא, א).
?- עושה(נורא, א).
?- שרשרת(א, נורא).
?- קשר(א, נורא).
?- עושה(א, היכה).
מצא את כל התשובות של פרולוג לכל אחת מהן.
ה. הוכח באמצעות השאילתות והתשובות, כי הקדוש-ברוך-הוא קשור לכל אחד
ממשתתפי חד-גדיא.
3 הוכח באמצעות שאילתות ותשובות כי הקדוש-ברוך-הוא עושה את כל אחד ממעשיו
של חד-גדיא.
255
3 קשרי המשפחה המנומקיס
חומר רקע: פרקים 5, 7 (בלי רקורסיה), 8 (בלי פעולות החשבון).
את קשרי המשפחה פיתחנו בפרק 7 בתכנית ₪165 ע1והחגת. עתה, ברצוננו לנמק את כל אחד
מחוקי הקשר המשפחתי. נבטא זאת באמצעות היחס 608056ט.
שפת הפרולוג תומכת בנתון מבני, על-כן ניעזר בו לבניית קשר משפחתי מנומק. להלן
התכנית:
. ((15886 ,ם8ת6)8028ת826ק ,15886 ,ם8ת6)8028תספהק
. ((18000 ,%6)18880ת0ע82ק ,18005 ,18886)סמסעק
. ( (18880 ,ת5828)%ת6ע8ק ,188806 ,גת6)5828תסע8ק
. ( (18000 ,ת6)210%8ת6ע8ק ,180600 ,בג8אט6)21תספהק
. ( (8₪ת₪816)8028 , מ8ת816)8028
. ( (₪816)15886 ,₪816)15886
. ( (18600 )₪816 , 18600 )₪816
. ( (ת5828) 200816 , ת20₪816)5828?
. ( (ת10%8ע) 26816 ,ת10%8ע0₪816)2?
-: ((2 ,608086)4ס ,+ ,א)עסתס8?
.(8 ,א)₪816 ,( ,צ ,א)6תססהק
-: ((2 ,0608₪86)4 ,ע ,א)00262ם
.(8 ,א)0₪816? ,(8 ,צ ,א)6מסעהק
-: ((0 ,4 ,0608056)2 ,צ ,02)8ב6+80ת8תש
.(0 ,+ ,6)2ת6עפק ,((2 ,06080₪56)4 ,2 ,א)02ג80?
-: ((0 ,4 ,0668186)2 ,ץצ ,א)ע6ם6סם6תהפא
(0 ,7 ,6)2ת0ע8ק ,((2 ,0608056)4 ,2 ,א)עסתססם
-: ((כ ,0 ,2 ,)0668056 ,+ ,א)16קטסס
86 ,2 ,א)02ג₪00 ,((2 ,0608₪86)8 ,2 ,א)עסם8%?
. ((פ ,0)
-: ((0608₪856)8 ,צ ,א)02116
.(8 ,א ,צ)6תסעהאק
-: ((2 ,0608₪586)4 ,צ ,א)תספ
.(8 ,א)2816 ,((06080586)4 ,ץצ ,א)118ם6
-: ((8 ,0608056)4 ,ץצ ,א)עסת%קט68
.(9 ,א)1600816 ,((06068₪56)3 ,צ ,א)116ם0
תכנית 3 - קשרי המשפתה המנומקיסם
לתכנית זו נחזור בשאלה 3 בסעיף 15.
206
תוגיל 3
א. מצא את כל התשובות לשאילתות הבאות:
.(2 ,ץ ,א)פסת80] -7
.((8 ,)608056 ,+ ,א62)8ת₪05 -7?
-((8 ,8 ,2 ,א)ת50 ,((ע ,0 ,2 ,56)4ט2668 ,+ ,א)16קטס6 -7
ב. תאר באמצעות עצ את הביטויים המורכבים האלה:
.(2 ,+ ,א)62ת6/8%ת8ע2 .1
.((0 ,4 ,608086)2 ,+ ,א)0]8%202ת8עק .2
, (8₪ת06680986)₪816)8028 ,18000 ,םהההעס62)8ת6/86תמלם .3
- (( (ססס18 ,")פסססתה , (15886 ( מהההתס%6)8תסתאק
ג. כתוב תכנית כלשהי עס הסברים (למשל, הוסף הסברים לתכנית "סיפור מן החיים"
שבסעיף 1).
207
4. תאור של מבנים אינסופיים באמצעות רקורסיה
חומר רקע: פרקים 5, 7 8 (בלי פעולות החשבון).
באמצעות הגדרה רקורסיבית ניתן לטפל במבנים אינסופיים, כמו מספרים טבעיים, או במבנים
בעלי פוטנציאל אינסופי, כמו דורות של אבותינו.
נתבונן בתכנית הלוגית הבאה:
. ((821068ת6) 616062
.(610002)8 -: ((א)ם50)ע6ט616
תכנית 4א) - צאצאיו של צירלס
נציג שאילתה ונעיין בתשובות:
?- 016062)8( .
= 082108 ;
; (82168ת0)ם80 =
; ( (82168ת0)ם50)ת80 =
] (((801065ת0)ת50)ם50)םתס8 =
26 6 6
וכן הלאה.
את התשובה הראשונה קיבלנו על פי החוק הראשון. את התשובות הנוספות קיבלנו באמצעות
הרקורסיה. אם כן, התכנית הזאת מטפלת בסדרה אינסופית של ביטוייס בסיסיים, אשר
מוצגים באיור 2.
,
( (82108ת6)ת50)םת50 (82165ת0)תס5 8
איור 2 - סדרת צאצאיו של צירלס
ביטויים אלו מייצגים את מיודענו צירלס של תכנית 1 ואת צאצאיו:
בנו של צירלס - ( 5006008486
נכדו של צירלס - ((60391165)ח50)ת50
נינו של צירלס - (((500)6008765)ח50)ח50
וכן הלאה.
לסדרה של מספרים טבעיים יש מבנה דומה לזה של סדרת צאצאיו של צ'רלס. את המספר 0
נציב במקום "צירלס". את המספר 1 ניתן, אם כן, לזהות עס בנו, את המספר 2 - עם נכדו, וכן
הלאה. לצורך זיהוי זה, נסמן את המספר 1 באמצעות הסימון (5)0. בהמשך נקבל את הטבלה
הבאה:
208
| ב ו 0
| נמ 0 0 |
| ( 6282168)ת50 5)0( 1 |
| ( ((6282168)ם50)םס5 5)8)0(( 2 |
| (( (82168ת6)ם50)ם50)תס5 (((5)5)5)0 3 |
|
| |
וכן הלאה. המספר ם מתבטא באמצעות הופעה ם פעמית של 5.
איור 3 -- מספרים טבעיים המיוצגים כצאצאיו של 0
התכנית הבאה מגדירה את המושג של מספר טבעי באמצעות תכנית לוגית. כמו כן, היא מהווה
בסיס להגדרתן של פעולות החשבון בדרך לוגית. את ההוכחות המתמטיות להגדרות אלו ניתן
למצוא בפרק 3 בספר [1986 ,59170 86 8תוח6ו5].
. (0) צססמטת 81תטס8ת
-: ((5)8)עססמות [פטסאת
. (8)יססשטת [ה8עטסאת
תכנית 4(ב) - הגדרה של מספר טבעי
. (8)זספתטת | 81:טוספת -7 | :8ת1801: .(61606:)8 -7 | :2ח%1801
807 ) ססות . 1מטסהת :6811 [0] 27 :0411 [0]
0 )ץ6פתטות - 1 :816א6 [0] 1687ז61696:)603 :18א6% [0]
.0 1 ת1 ... .3 1 1 ..'
; 0 = % ] 108ז0(8 = א
7 צפפעטת 1השטסהת :2660 [0] 7 :16600 [0]
1צטטטת 81טס4ח :₪811 [1] 171 :6411 [1]
7)פפטטת 1תטפהת :16א6% [1] 7 :6416 [1]
7 )ונת . 1 :815א6 [0] 7 (008:165)מ50)ז61646 :16א6 [0]
.600010 2 ה1 ... .0 כ ת1 ...
; (800 = א ] (3+168ת6)ת50 = %
71) )צשסוטת . 1וופתי :1 [0] 7 (608+165)ת50)ז61600 :1660 [0]
7) סמות | 81זנסהת 1 [1] 7 :660ץ [1]
17 טח 1טסהת :68411 [2] 7 :6811 [2]
1) צפטת 81עטסהת :15א6 [2] 7 :0816 [2]
((6:)5)0פתטת 81מטסהת :18א6% [1] 165(7ת6(8)ת6:)50ט616 :616 [1]
7) סמות , 1מטסהת :16א6 [0] 7 ((604:165)ת50)ת6:)50ט616 :18א6 [0]
.0 3 ה ... .0 ְ 1 ...
((8)8)0 = א ו ((06(8%165)ח50)ת50 = א
איור 4 - חישוב צאצאיו של צירלס ושל 0
נחזור למיועדנו צירלס. מהתכנית 1 ניתן להסיק, כי הוא היה איש מלא חיים, שאהב לבלות.
ולעומתו בנו היה איש שקט, שאהב להיות בביתו עם בני משפחתו. נכדו היה איש מלא חיים
שאהב לבלות, נינו היה איש שקט וחוזר חלילה. תכונות אופי אלו של צ'רלס וצאצאיו ניתן
לבטא באמצעות התכנית הלוגית הבאה:
209
. (ת₪8ם 800100 ,1098ע028280%662)0282
. (ת8ם 28211 , (82109ת0)ת50)ע82860%60ת0
-: (צ ,((א)ם50)םספ5)סס6סִַכה8ת0
.(צ ,א)סססֶס8ע8ת6
תכנית 4(ג) - תכונות אופי של צירלס וצאצאיו
התכנית שלהלן מסווגת את המספרים הטבעיים לזוגיים ואי-זוגיים. השווה נא בינה לבין
התכנית 4(ג), אשר באמצעותה תיארנו את תכונות האופי של צירלס וצאצאיו.
. (ת606 ,0)ע6סמטת
. (0868 , (0) 5) עססמטת
-: (צ ,((א)5)5)ע6סםטםת
. (צ ,א)ע6סמטת
תכנית 44ד) - מספרים זוגיים ואי-זוגיים
בסדרת תכניות אשר להלן, נגדיר פעולות שונות בין המספרים הטבעיים באמצעות חוקים
רקורסיביים.
הד-------------------------------------
|ה | /* (9 ,)60081 עס 1658 - 2 איננו גדול מ-8 */
. (8)עססמטת 1ַַקטסת -: (8< ,60081)0 עס 1658 |
.(7 ,א)00081 עס 1688 -: ((צ)8 ,(א)00081)5 מס 10658 |
|| /* (0 ,8 ,4)פט1ק - 6 הינו הסכום של 4 ו-8 */
. (א)ססמטת 1בעטסהת -: (א ,א ,105)0ע
.(2 ,צ ,א)פט1ק -: ((5)2 ,צ ,(א)8)5ט1ק
|ז | /* (0 ,2 ,1₪68)4ס - 0 הינה מכפלה של 4 ו-8 */
. (8)פסספמטת 81עטס8ת -: (0 ,א ,61₪68)0
.(2 ,ץצ ,5)0ט1ק ,(0 ,ץצ ,א)08ם1ס -: (2 ,+ ,(א)685)5ש1ס
| /* (ם ,א)80%502181? - ת הינו העצרת של א */
ב
|
|
| . ((8)0 ,180602181)0 |
|.(פ ,1ק ,(א)01₪05)5 ,(1ק ,א)181עספסה! -: (ת ,(א)602181)8סם? |
=
תכניות 4(ה-ח) -- פעולות במספרים טבעיים בדרך לוגית
הערה: את מושג העצרת נגדיר בסעיף הבא,
200
נסיים את הסעיף הזה בתכנית, אשר מיישמת את הפתגם הבא: הדור הראשון בונה את העושר,
הדור השני מבזבז, הדור השלישי מתרושש, הדור הרביעי בונה, וחוזר חלילה.
. (ת210 ,60₪ף)ת628610ת86
. ( [06188ע , (₪סס )ם50) ת628%10ח₪6
. (עססק , ( (₪ס>)ת0ס5)ת50) ם628%10ח20
.(8 ,4)ת010ס8עסת₪0 -: (א ,(((8)ם50)ם50)ם50)ם8610ת0ח86
תכנית 4>ט) - בונה-מבזבז-מתרושש
את תכנית 4(ט) אפשר לתאר באמצעות גרף, אשר ציר ה-א שלו הוא ציר הדורות וציר ה-צ
שלו הוא ציר העושר.
= | -רו) עססש
| | | |
--ד-------- ה -------1 .== 1
((שס>)תספ5)תס5 (שס6>)ם50 םסס
1
איור 5 - הקשר בין הדורות לבין העושר
תוגיל 4
א. מצא את ארבע התשובות הראשונות לכל אחת מהשאילתות האלו:
. ( ,00081)4 02 1688 -7?
. (0 ,8 ,10804 -?
. (0 ,2 ,)6105 -?
.(ת ,א)80%02181/ -?
תאר את כל אחת מהתשובות באמצעות העצ.
ב מצא את שלוש התשובות הראשונות לכל אחת מהשאילתות האלו:
כ"
ו
. (ם210 ,א)ת628%10ח20
. (צ ,א)ם628010ת0ש
כ"
ו
תאר את כל אחת באמצעות עצ.
ג האם, לפי מיטב הבנתך, ניתן לקבל את הביטוי הבא:
(((5)5)0 ,(00081)5)0 עס 1685
בתשובה לשאילתה:
(9 ,60081)4 עס 1685
נמק את תשובתך, ובדוק אותה באמצעות גירסת הפרולוג אשר ברשותך.
291
5. חישוב עצרת של מספר
חומר רקע: פרקים 5, 7, 8.
פונקצית העצרת (א) מוגדרת עבור כל מספר טבעי א באופן הבא:
0-א 1 ז
1>א 1 ך = (א)?
1;א א*...*1*2 !
הסימון המקובל של הפונקציה הזאת הינו !א, אשר על כ >
1 = !0
1 !1
1 ,12.4% וא
בסעיף הקודם הצגנו תכנית לוגית 44ח) לחישוב העצרת. המספרים הטבעיים הוצגו בתכנית
הזאת בתור צאצאיו של 0. בסעיף זה נבנה תכניות לחישוב העצרת, אשר בהן המספרים יוצגו
בדרך המקובלת: 1, 2, וכן הלאה. את פעולות החשבון בתכניות אלו נבצע באמצעות פרדיקטי
המערכת שלמדנו בפרק 8.
התכנית 5(א) מיישמת את הגדרת העצרת באמצעות חוק רקורסיבי, באופן דומה לזה של
התכנית 4ח): כדי לחשב אונ !א, חשב את 1%-א), והכפל את התוצאה ב-א. אין היא מפרטת
איך לחשב את !(1-א). למעשה, החישוב של יָנ1-א) נעשה על פי אותו חוק, שניסחנו קודם: כדי
לחשב את :(1-א), חשב את :(2-א), והכפל את התוצאה ב-(1-א). החוק הזה, אשר באמצעותו
עוברים מ-!א ל-!(1-א) וכן הלאה, הינו חוק רקורסיבי. התנאי הגבולי מתבטא על ידי העובדה
הבאה: העצרת של 0 שווה ל-1. להלן התכנית.
-: (ע ,א)1811ע80%02+?
0<א
,1 18 1א
,(81 ,1א)80%021811?
.1*א 18 ק
.(1 ,80%6021811)0+
תכנית 5(א) - חישוב העצרת
בהשוואה לתכנית 4(ח), יש בתכנית 5(א) נסיגה מן העקרון של תכנות לוגי. הנסיגה הזאת מוצאת
את ביטויה בהודעת שגיאה, אשר מקבלים בתגובה לשאילתה (= ,א)116101911. הודעת השגיאה
נשלחת משום שההשוואה בין א לבין 0 מתבצעת רק כאשר תחת המשתנה א הוצב מספר.
לעומת זה, כאשר בסעיף הקודם הצגנו את השאילתה (= ,א)7181ס861], זכינו לשלל של
תשובות.
התכנית 5(א) אינה יעילה. היא איטית למדי, וגס צורכת נפת רב בזכרון (בעת חישוב של !אז,
מחסנית הזכרון גדלה עד לסדר גודל של א). נציין גם, כי לפרולוג אין אמצעים להחסנה של
תוצאות הביניים (להוציא את פרדיקט המערכת 855671, אשר הכרנו בפרק 12; כזכור, השימוש
202
בו בעייתי עקב התכונות האקסטרה-לוגיות שלו). יוצא אם כן, כי כדי לחשב את !5, מחשבים
את !4, את !3, וכן הלאה, וכאשר רוצים לחשב את !6, חייבים לשוב ולחשב את !5, !:4, וחוזר
חלילה.
בתכנית 5(ב) נציג את שיטת הצבירה האיטרטיבית: נוסיף משתנה, שתפקידו יהיה לצבור את
תוצאות הביניים. המשתנה הזה איננו כתובת בזכרון, כי אם משתנה לוגי. הצבירה תתבצע על
ידי האיחוד בין תוצאת הבינייס לבין המשתנה.
להלן התכנית. המשתנה האמצעי של 86101181/3] הינו "הצובר".
/* (ת ,א)86502181? 100280106 - תע הינו העצרת של א */
.(ת ,1 ,א)80002181+? -: (ת ,א)80%02181+ 100280106
-: (ק ,4 ,)180502181
, 0<א
,וא*4 15 41
,1 185 1א
.(ע ,41 ,1א)186002181
.(ת ,םת ,80002181)0?
תכנית 5(ב) - חישוב עצרת בשיטת צבירה איטרטיבית
נציג תכנית איטרטיבית נוספת לחישוב העצרת. הפרוצדורה 2/. .1168116 קוראת לפרוצדורה
4. בפרוצדורה החדשה המשתנה הראשון מציין את לולאת האיטרציה (אשר דומה
להוראת בייסיק: 1 5157 א סד 0=] תסת; ניתן גם להשוותה עם הוראת 6...60!וחאי של
פטקל).
.(ע ,1 ,א ,80002181)0? -: (ע ,א)/] 160280106
-: (ת ,4 ,א ,80602181)1?
,א+1
,1 185 7
,(נ*8 18 41
.(ע ,41 ,א ,181)1ע80602?
.(ק ,םת ,א ,א)181ע8000+?
תכנית 5(ג) -- עצרת איטרטיבית עם הלולאה
תרגיל 5
א הצג את השאילתות שלהלן והשווה את התשובות (הפרוצדורות |61008ג]
(-זססנתטת.- [4זטזגת ניתנות בפרק 4 של חטיבה זו).
.(ע ,800021811)0? -? .(ת ,80%602181)0? -?
.(2 ,א)805021811? -? . (((5)5)0 ,א)80002181? -?
.(ת ,א)1811עס6ס8+ -? . (ת ,א)80002181? -?
ב חשב את !3 באמצעות כל אחת מהתכניות בסעיף זה. עקוב אחר החישוב בעזרת 366ז1.
23
7- 166086106 ])6,2(.
150-8516 77
+? 12
.(80%501181)6,2+ 186286106 -7 | :8ַת801ץ%
27 פעצט100231 :6811 [0]
27, 1661 :6811 [1]
7 > 0 71 < 6 :6811 [2]
7 > 0 171 < 6 :16א6 [2]
7 + 0 15 1260 7 * 1 158 41259 :811 [2]
7 + 0 18 1 17 * 1 18 6 :816א6 [2]
? * 1 15 41263 7 - 6 18 1261א :₪811 [2]
7 * 1 15 1 7 - 6 15 5 :16א6 [2]
17, + + 277, 1 :6411 [2]
7 > 1 7 < 5 :6411 [3]
17 7 < 5 :16א6 [3]
?7 + 1 15 1706 7 * 6 18 21705 :6811 [3]
7 + 1 18 2 7 * 6 15 30 :16א₪ [3]
7 * 1 15 41709 7 - 5 18 1707א :6411 [3]
7 * 1 1585 2 7 - 5 18 4 :16א6₪ [3]
27 + 27 :0411 [3]
7 > 2 17 < 48 :6811 [4]
7 > 2 71 < 8 :16א6 [4]
?1 + 2 38 11152 7 * 30 15 411151 :6811 [4]
1 + 2 18 3 7 * 30 15 120 :18א₪ [4]
1 * 2 35 411155 7 - 4 15 11153א :6811 [4]
7 * 2 18 6 7 - 4 18 3 :16א6₪ [8]
77 + 7 :₪411 [4]
7 > 3 7 < 3 :6411 [5]
7 > 3 1 < 3 :16א6 [5]
7 +3 18 11598 71 * 120 18 2411597 :6811 [5]
7 + 3 18 4 7 * 120 18 360 :16א6 [5]
17 * 6 185 411601 7 - 3 15 11599א :6811 [5]
7 * 6 15 24 7 - 3 18 2 :816א₪ [5]
,)0+ 7, 0 :6811 [5]
71 > 4 7 < 2 :6811 [6]
7 > 4 7 < 2 :16א6 [6]
+ 8 15 12044 7 * 360 15 212083 :6811 [6]
7 + 4 18 5 7 * 360 18 720 :15א6 [6]
112047 15 28 * 7
7 - 2 15 12045א :0811
7 * 24 15 120 7 - 2 38 1 :16א6 [6]
,]+ 7 ,+ :₪411 [6]
7 > 5 171 < 1 :6411 [7]
7 > 5 7 < 1 :16א6 [7]
]7[ ₪811: 212489 158 720 * 7 12490 18 5 + 7
1 + 5 15 6 7 * 720 158 720 :16א6 [7]
7 * 120 18 112493 ?7 - 1 15 12491א :₪811 [7]
7 * 120 15 720 7 - 1 18 0 :16א6 [7]
3050181)6,6,720,22289(1+ 27, 20 :6411 [7]
6 > 1
6 > 7
+,
+ ָ,7
]8[ 6811: 0 < 7
]8[ +11: 0 < 7
0927 :ם1אב [7]
227, )1 :ם81א6 [6]
+0,
1-1
+ 212
+050:181)1,6,1,720(7
277 :ם1א6 [5]
22 :ם1אם [4]
717, 8000:181)4+ :16א6 [3]
1,227 :ם1א6 [2]
7, 8660:181)0+ 27 :8916 [1]
27 ז(צ1567861 17 שמְשצ150:481 :6416 [0]
.0010 8 ת4 .5ת₪000%10: 8 ת1 ...
0 =ץ
איור 6 - חישוב של :6 באמצעות התכניות 5(ב), 5(ג)
0 =ץ
24
6. פתרון בעיה באמצעות תכנות לוגי - מפת היעדים
חומר רקע: פרקיס 5, 7, 8 (בלי פעולות החשבון).
אדם נודד מעיר לעיר בחיפוש אחר תעסוקה. את מצבו בעיר מסוימת הוא מגדיר כבעל סיכוי,
אם בעיר זו יש תעסוקה, או אם ניתן להגיע מהעיר הזו לעיר אחרת שבה יש תעסוקה. כדי
לעזור לאיש הנודד, החלטנו באמצעות תכנית לוגית לאתר את הערים אשר בהן מצבו הוגדר
כבעל סיכוי. עיר, אשר בה מצבו הינו בעל סיכוי, תיקרא בשם "יעד". את התכנית נבנה בשיטה
*מלמעלה למטה" (חשש40-קסו). נגדיר תחילה "יעד":
יעד(.. עיר) אם יש. .סיכוי. .66 5 )1 (ח ד)ח0ו31ח66511
את הסיכוי נסווג בהתאם למצב:
יש-- סיכוי(. מצב). .(ח0ו66)511081ת3ח6- -85ת
מצב הינו נתון מבני:
מצב)- -עיר, .- תעסוקה). (1 שוח עס!ק ות ,ה0ד)ת51108110
המצב הוא בעל-סיכוי, אם בעיר יש תעסוקה:
יש- סיכוי(מצב(- עיר, יש)) :- עיר=ב; - -עיר=ג; --עיר=ו.
.]=חשוסד :6=חאסד :ט=חצוס1-: ((85!] ,האוסך)511081100) 68006- -85
המצב הוא בעל-סיכוי, אם ממנו ניתן להגיע אל מצב בעל-סיכוי:
יש סיכוי(. ,מצב1)-מעבר( מצב1, = מצב?), יש סיכוין: מצב?).
,(2ת51104110 1 6051108108 /10ח-:( 1 ת66)51108110ח4ת0-- 85
.((2ת66)51108110ה618 - 85
נתנה את המעבר בשימוש בתחבורה העירונית ונתעלם מסוג ועלות התחבורה.
מעבר(מצב(.. עיר1, . תעסוקה1), מצב(. .עיר?, תעסוקה2)):-
תחבורה(- .עיר1, עיר?).
-:((2ע10 רת ,2תש10)ת0ו511081 ,(1 עס1קוח= , | חאוסך)ת0ו6)511081 סח
(2ת/שסך , | תש10)ת68110ותטותוחסס
להלן התכנית בשלמותה. את הערים נסמן באותיות עבריות בגירסה העברית של התכנית
ובאותיות אנגליות קטנות -- בגירסה האנגלית. המלה ₪ח60 היא קיצור של ח0ו691ותטווח60.
255
תתבורה(א, ב). ד א
תתבורה(ב, ה).
תתבורה(ד, ג): 1 ךר ג ב
תתבורה(ד, ו).
תתבורה(ד, ז). ח ₪
תתבורה(ז, ח).
מצב(א, אין). /* בעיר א' אין תעסוקה */
מצב(ב, יש). /* בעיר ב' יש תעסוקה */
מצב(ה, אין).
מצב(ח, אין).
מצב(ז, אין).
מצב(ד, אין).
מצב(ו, יש).
מצב(ג, יש). .
מעבר(מצב( עיר1, תעסוקה1), מצב( עיר2, תעסוקה2)) :-
תתבורה( עיר1, עיר2).
יש סיכוי(מצב( עיר,יש)):- עיר=ב; עיר=ג; עיר=ו.
יש סיכוי( מצב) :- מעבר( מצב1, מצב2), יש סיכוי( מצב2).
יעד( עיר) :- יש סיכוי(מצב( עיר, תעסוקה)).
תכנית 6(א) - מפת היעדים (גירסה עברית)
/* ם168%10תטמםס6 8פת₪68 מסס */ .(ס ,8)שסס
.(6 ,60₪)0
4 8 .(6 ,0₪)8ס
.(+ ,00₪)8
8 0 ס .(₪ ,00₪)8
.(ת ,8)שסס
ת 6
.(%סת 288 ,8)ת81618010
- ( 85 , 5)ת51018%610
.(6סת 88ת ,6)ת81018%610
.(%סת פהת ,ת)ת51618610
.(%סת 88ת ,₪)ת0ס51008%1
.(6סת פהת ,8)ם51018%610
.( 88ת ,%)ת91018%10
.88 ,6)ת31018%10
-: ((2ע10קשם ,2ת109) ה5108610 , ( 1צַ10ק₪ , 1תשסי) ת086+0ו0 51 ) סטסם
. (2תאס1' , 1תשסי') מסס
-: ( ( 388, משס1') מ68610 51 ) 66ת8ס פא
.] = תא0ס1 ;0 = תשס1 ;5 = תשסץך
, (2ת51%18%510 ,₪006)5100801001 -:(1מ66)51608610ב8ת6 פהת
. (2מ66)51008610ת8ת0 פאה 7
. ( ( 6 מ₪6ע10סמם , תאסץ') מ06)81008010ת08 88 -: ( משס') ת8610ת01 665
תכנית 6(ב) - מפת היעדים (גירסה אנגלית)
206
התכנית הלוגית "מפת היעדים" מיישמת כמה נושאים חשובים. הנושא האחד הינו רקורסיה.
ההגדרה "יש. .סיכוי/1" היא הגדרה רקורסיבית. הנושא האחר הינו "נתון מבני", אשר דנו בו
בפרק 8.
תרגיל 6
א. הצג כל אחד מהביטויים שלהלן באמצעות מבנה עצ.
(ת66)51008%10ת8ת0 פא .1
( (%תסמעס1סמם תשסך)ת51008610)ססתַת0 פה( .2
(2ת8%610ש516 ,1ת8010ט006)516ם .3
( (2קמ , 2תשס') 51008610 , (1סמם, [משסיך) ם8610ט516)סטסם .₪
ב מצא את כל התשובות לשאילתות הבאות:
?- ₪006), +( .
. ((2צ ,82)ם51008610 ,(1+ ,1א)ת8%10ט6)510טסם -7?
. (06)8ת008 פפַת -?
. ( (צ ,א)ת8%610ט06)510ת608 388 -7
ג מצא את כל התשובות לשאילתה (תשס1)חס311ח/6631-?. אחת מהתשובות מופיעה
פעמיים. איזו ומדוע! נמק את תשובתך.
ד ברצוננו לתרגם לשאילתה של פרולוג את השאלה הבאה:
לאיזה ערים ניתן להגיע מהעיר, אשר בה יש תעסוקה!
נתבונן בשאילתה:
. (ת81608%610 , (85ת , תשס1) ת81008%610)פטסם -7
האם השאילתה הזאת אכן מבטאת את השאלה שלעילו נמק את תשובתך.
207
7. מודל לפתרון בעיה באמצעות תכנות לוגי
חומר רקע: פרקים 5, 7, 8.
ניתן לראות את התהליך של פתרון הבעיה כמורכב משני הצעדים האלה:
א. ייצוג הבעיה.
ב. קביעת אסטרטגיה של חיפוש התשובה.
בסעיף זה נבנה מודל לפתרון הבעיה באמצעות תכנית לוגית. במודל זה ניישם כמה מהשיטות
והטכניקות של בינה מלאכותית. הבעיה בתחוס של בינה מלאכותית מוצגת באמצעות מרחב
המצבים. את המושג הזה היכרנו בהקדמה. מרחב המצבים הינו גרף, אשר צמתיו מייצגים את
המצבים, והקווים המחברים את הצמתים מייצגים את המעברים ממצב למצב. לצורך בניית
המודל נסמן את המצבים באותיות לועזיות מ-8 ועד % (ראה איור 7). ממצב 8 ניתן לעבור למצב
ט או > ממצב 5 ניתן לעבור למצב 6 או 6 וכן הלאה. את המעברים נציג באופן פורמלי
באמצעות היחס 6צסוח, ובאופן בלתי פורמלי - באמצעות העצ שבאיור 7.
8 . ( ל,8 )פטס
. (6)8,6טסם
. (8,ס)6טסם
. ( 6, ל)6טסם
. ( ם, ) סטסם
.(6)6,1ע0סם
. ( [, 6)6טסם
. (+, 6)6ע0סם
. (₪,6)6ט0ם
. (%,6)2ע0ם
איור 7 - מרחב המצבים
את היחס ואת העץ נבנה בהתאם למוסכמות הבאות:
1 מהמצב 8 ניתן להגיע למצב ס ולמצב 6. המעברים האלו מיוצגיס באמצעות היחסים
(6)3,0צסות -(6)8,0סות. אי לכך, לצומת 8 של העצ, אשר באיור 7, ישנם שני בנים: ל
6-1.
2 נקפיד על ההתאמה בין סדר כתיבת העובדות לבין סדר הופעת הבנים: אם העובדה
(6)8,0טסות נכתבה לפני העובדה (6)8.0וסוח, אזי הבן םס יופיע משמאלו של הבן 6. באופן
כללי נתאר את ההתאמה בין סדר כתיבת העובדות לבין סדר הופעת הבנים באמצעות
איור 8:
| 8 . (ס, 8 ) סטסם
| . (8, 8 ) סטסם
| . (ם, 8) סטסנ
| ת ₪ 6 א ס . (6,, 8) סטסם
| . (ם, 8 ) סטסם
איור 8 - התאמה בין כתיבת העובדות לבין הופעת הבנים
208
את הבעיה ננסח במונחים של מרחב המצבים באופן הבא:
האס ניתן להגיע ממצב % למצב ץצ באמצעות המעברים הקיימים!
נפתור בעיה זו באמצעות תכנית לוגית, שמיישמת את השיקול הבא. ניתן להגיע ממצב א למצב
צ, אם קיימת שרשרת מעברים: מ-א למצב ביניים אחז1, מ-אחו1 למצב אחר וכך הלאה, עד
שהמעבר האחרון של השרשרת יוביל אל המצב צ. את השיקול הזה נבטא באמצעות שנל
חוקים, אשר האחד מהם הינו חוק רקורסיבי, והאחר הינו התנאי הגבולי:
| | כלל | חוק של פרולוג |
| 1 | ניתן להגיע מ-א ל-צ | -: (צ ,א) 501061 |
| אם יש מעבר מ-א ל-צ | . (צ ,)₪006
| 2 | ניתן להגיע מ-א ל-צ | -: (ץ ,א) 501061 |
| אם יש מעבר מ-א ל-%ת11 | ,(את11 ,א)סטסם
|| | ואם ניתן להגיע מ-%ת11 ל-צ |. (צ ,%ת501061)11
תכנית 7(א) - החיפוש לעומק
אם נתבונן היטב בשני החוקיס של היחס 61ש[50, נמצא אותם מוכרים. באמצעות חוקים מסוג
זה פתרנו בפרק 7 את בעיית אבות-אבותינו. בתור המצבים שימשו בני המשפחה, המעבר ממצב
למצב התבטא באמצעות היחס ז6ו11ג!, ואת שרשרת האבות מצאנו בעזרת היחס זסונטשהג. גם
את בעיית הקשר הבין-עירוני, שהוצגה בפרק 7, פתרנו על פי אותו מודל. המעבר מ-% ל-ץ
התבצע באמצעות היחס (צ,%)088: והפתרון התבטא באמצעות היחס (/.%א)600066160.
בבניית מודל 50161 נעזרנו באסטרטגיה לחיפוש הפתרון, הקרויה חיפוש לעומק (0₪51-ח1ק60
969). בחיפוש זה, מרחב המצבים נסרק באופן הבא: מצומת % עוברים באמצעות המעבר
הקייסם אל הבן הבכור. אם הבן הבכור של א הינו צ, מסיימים את החיפוש ואס הוא איננו צ-
מסמנים אותו באמצעות משתנה, השונה מ-צ (למשל אח:1). עתה עוברים אל הבן הבכור של
%חו1 וכן הלאה. כשמגיעים לצומת, אשר איננו צ, ואשר אין לו בנים, מבצעים נסיגה
(פַחו086%1786%): חוזרים לאב של העלה ופונים אל הבן השני (נזכיר כי לצומת, אשר אין לו בנים
קוראים עלה, ראה פרק 8). אם הבן השני איננו צ, פונים אל הבן הבכור של הבן השני, וכן
הלאה. נדגים את החיפוש לעומק עם הנסיגה באמצעות ה-06גזו, שבאיור 9.
בנוסף לחיפוש לעומק, ניתן לפתור בעיות באמצעות חיפוש לרותב ((56816 31-ת6401זט), או
חיפוש האוריסט? (ת0ז568 15116זט6ם). את התיאור האלגוריתמי של השיטות ניתן למצוא 7
מהספרים [1986 ,ת516] ו-[1982 ,בחט8סת086-] .8 7זז83]. את היישום בפרולוג של איסטרטגיות
התיפוש השונות ניתן למצוא בספר [1986 ,5040180 6 פחו!זסו5].
כפי שראינו, המודל 501/61 פותר את הבעיה באמצעות החיפוש לעומק. נציג גירסאות נוספות
של המודל הזה. בגירסה 501%62 משתמשים, כאשר המצב ע, שאליו רוצים להגיע, מוגדר בבסיט
הנתוניס כמצב סופי באמצעות היחס 518166 |4חו]. נניח שרוצים להגיע לאחד מהמצבים | או
לשם כך, נוסיף לתכנית את שתי העובדות האלה:
51416)(( [3חו1
.)51816 81ח1]
209
היעזר באיור 7 .(%,61)8ט5010 -7 | :ַאַת801ץ1
27 :0811 [0]
7 :6411 [1]
7 :11 [1]
לבור ם-8 לבנד הנפו ₪ || |
7א,ם)1ט501 :6811 [2]
7 :6811 [3]
77 :811+ [3]
7, לפ)טסח :₪311 [3]
עבור מ-0 לבנו הבכור 6: -------->>-?(6)5,4ט₪0 :618 [3]
77 :6411 [8]
22 :6411 [5]
27 :11+ ₪
עבור מ- 0 77 :6411 [5
מ-6 לבנו הבכור ת: -------->*-7(ת,6)4ט₪0 :ם1א6 [5]
7,ת)61ט501 :6311 [6]
7)טסש :6811 [7]
7 :1411 [7]
- 7 ,)טס :6811 [7]
ל-ת אין בנים: ו :4 [7]
- 2 7 :111 [6]
חזור מ-ם ל-6: החה-ר----------------->-- 7(ף[,61)שטסת ':₪660 [5]
7 ,6)64ט₪0 :1811 7
ב 27 :11 [4
חזור מ-6 ל-ס: --77-------------------->== 1 ( 62 כ ]) 068 > : 20100 1 3 ]
עבור מ-ם לבנו הש( 8: ----------=₪0%6)5,8(7 :5415 [3]
27 :6411 [4]
277 :6811 [5]
, 277 :111 [5]
/ . 7 )טס :6811 [5]
עבור מ-6 לבנו הבכור 1: -----*>?(6)6,1ט₪0 :15א6 [5]
227 :6811 [6]
27 :6811 [7]
277 :411 [7]
, 77 :0811 [7]
ל-1 אין ב(ים: --------------->-825(7 ,₪008)1 :411+ ו"
. 27 :1811 [6
הזור מ-1 ל-6: -------------------א- 7 ( 1 ע ג6 )10008 004050 [5 ]
7 :16א6 [5]
7 :011 [6]
7 :411 [7]
7 :11+ [7]
7 :6811 [7]
7 ,6)1ט₪0 :11 [7]
27 :811 [6]
77 :660ם [5]
ו :1 [5]
- 277 :411 [8]
חזור מ-6 ל-פ: 7 :660ש [3]
ו :1 [3]
"/ ₪ 27 :5811 [2]
חזור מ-5 ל-8: 22 :5660 [1]
עבור מ-8 לבנו הש(: 6---------------->-0%8)8,6(7ם1 :2 [1]
+(א%,61)6ש501 :6811 [2]
7 :0811 [3]
" 77 :11+ [3]
, 7 :6811 [3]
עבור מ-6 לבנו הבכור +: --------->>-6)60,(7ט₪0 :6%15 [3]
ו :+ [4]
7 :0811 [5
עבור מ-+ לבנו הבכור א: 00 ןא 6 -
, 277 :ם81א6 [8]
277 :6816 [2]
277 :₪816 [0]
.0 6 1 ...
איור 9 - החיפוש לעומק באמצעות היחס 501/61
200
להלן היחס 501/62:
ד" ו ו
1 כלל | חוק של פרולוג |
דולל הטההתי | א אה הח הה-=<=-]
| 1 | המצב א הינו מצב סופי | -: (א%)501082 |
| | | (5%866)8 81ת1+ |
ר-4----=-הה.----------1--ה הרוה[
| 2 | ניתן להגיע מ-א למצב הסופי | -: (א801062)8 |
| אם יש מעבר מ-א ל-%ם1.1 | , (אח11, א)6טסם
| | | ואם ניתן להגיע מ-%ת11 למצב הסופי| | .(את501062)11 |
0-0 0/5
תכנית 7(ב) - החיפוש לעומק, כאשר המצב הסופי מוגדר מראש
את היחס 66ח8ח6 .₪85 של תכנית "מפת היעדים" שבסעיף הקודם, הגדרנו על בסיס הגירסה
2 של המודל.
נניח, כי נתון המצב 8. האם ניתן להגיע ממנו אל המצב הסופי + או (? את השאלה הזאת נבטא
בפרולוג באמצעות השאילתה (62)8צ2-501.
תרגיל 7
א. תרגם את היחסים 50161 ו-62ש501 לפרולוג העברי. היעזר במילון הבא:
פתור בעיה - >
מעבר - 6טסם
מצב סופי - 50806 [ַת11
ב היחסים אשר להלן, הופיעו בתלקן בפרק 7 של חטיבה שניה, וחלקן בחטיבה זו. נתת
כל אחת מהן וסווג אותן על פי השתייכותן לגירסה מסוימת של מודל לפתרון
הבעיה.
פתור בעיה1 או פתור בעיה2 2 א 61ש501
אב בשושלת (סעיף 7.8 חטיבה שניה) 006 (סעיף 7.9)
מסקנה (סעיף 7.9 חטיבה שניה) ת1 18 (סעיף 7.9)
שרשרת (סעיף 2 חטיבה רביעית) 086 88 (סעיף 6)
עושה (סעיף 2 חטיבה רביעית)
יש סיכוי (סעיף 6 חטיבה רביעית)
301
היעור באיור 7
מעבר מ-8 ל-ם
מעבר מ-5 ל-₪
מעבר מ-₪ ל-ה
נסיגה מ-ח ל-₪
נסיגה מ-₪ ל-ם
מעבר מ- ל-₪
מעבר מ-8 ל-1
נסוגה מ-1 ל-₪
מעבר מ-₪ ל-1
המסקנה כי מ-3 ניתן
להגיע למצב הסופי
בהמשך נקבל את התשובות הבאות:
.(801962)8 -7 | :8ה801ז1
7 "159 1 [0]
7 111 2 [1]
67 1 :ם1א5 (1]
7 :16 [0]
.פהס]:6ט66: 2 ה1 +
4-א
1207 1 [0]
]1[ + 111 7
7" 1 :ם1א6 [1]
17 :4 [0]
.4ה6000:]0ץ 2 ה1 *
1]-א
7 :6600 [0]
7 נ1ה1] :640 [1]
7 )58066 41ה11 11 [11
)טסט 1 [1]
27 :ם1א6 [1]
7 :6811 [2]
7 1ה1+ :1 [3]
7 הו :1811 [3]
7 )פטס 1 [3]
6)5,6(7טסם :2 [3]
77 :6811 [4]
7 11 :6811 [5]
7 111 :311] [5]
71, 60 ) טספ :1 [5]
7(ת,4)סטסם [5]
7 :6811 [6]
7 81ה1: :6811 [7]
7 ובה1] :1811 [7]
7, הח ) פטסמז 1 [7]
7 ,ח)פטסמ :1 [7]
7 :8811 [6]
77 :660: [5]
7 ,6)6טסח :%511 [5]
7 :111 [8]
77 :5660 [3]
7 :ם1א. [3]
62)6(7ט801 1 [4]
7 1גה1] :6811 [5]
7 1 ה; :111 [5]
7, )₪ :6811 [5]
7 :ם1אס [5]
7 :6811 [6]
77 1גה!1 [7]
7 1גהח1+ וגו [7]
7,, )טס :6811 [7]
7 ,1)טסם :1811 [7]
7 :11 [6]
77 :6600 [5]
7 ו םא [5]
527 1 [6]
7 1ה1+ :5811 [7]
7 1גה1] וםןאם [7]
77 :16אם [6]
7 :16אס [4]
7 :נ:נםןאם [2]
77 נמם1אף [0]
.8חס!66ט66ז 8 ה1 *
> > > 4
וו
₪ ₪ 0 0
איור 10 - חיפוש לעומק באמצעות היחס 50162
נציין, כי תכנית 7(ב) מאתרת תחילה את המצב (, אף-על-פי שהעומק של + הינו 2 והעומק של
ן הינו 3 (ראה איורים 7 ו-10).
2
8 חיפוש הדרך במבוך
חומר רקע: פרקים 5, 7, 8, 9.
נניח כי אנו נמצאיסם בארמון מפואר מן המאה ה-18. לאלה שלא נולדו בו, קשה להתמצא
במבוך של החדרים, הפרוזדורים והמעברים. בשניים מחדריו של הארמון נמצאים מכשירי
הטלפון אליהם אנו רוצים להגיע. נכתוב תכנית לוגית, אשר תציין את החדרים שיש לעבור,
כדי להגיע למכשירי טלפון אלה.
תחילה נעיין באיור 12.11 המתאר את חדרי הארמון.
איור 12.11 - תרשים של הארמון
טלפון אחד נמצא בחדר ], והשני נמצא בחדר |. את התיפוש אחרי מכשיר הטלפון נתאר
באמצעות היחס ה0ז568. בעת החיפוש נקפיד לא לעבור פעמיים דרך אותו חדר, כדי לא להיקלע
ללולאת המבוך. לכן, החיפוש יתבצע על פי הכללים האלה:
נניח כי אנו נמצאיס בחדר א.
1 אם הטלפון נמצא בחדר א, אזי נסיים את התיפוש.
2 אם הטלפון אינו נמצא ב-א, אזי;
1 נעבור לחדר אחר.
2 נבדוק אס הוא שייך לרשימת החדרים שבהם כבר היינו.
3 אם הוא אינו שייך לרשימה, נצרף אותו.
4 נמשיך בחיפוש.
את רשימת החדרים שעברנו, נסמן באמצעות המשתנה 151166. בתחילת החיפוש יש ברשימה
68 איבר אחד בלבד - החדר שבו אנו נמצאים. כל חדר שדרכו נעבור, יצורף לרשימה זו,
13
בסיומו של החיפוש נקבל את רשימת החדרים, אשר דרכם יש לעבור כדי להגיע לטלפון. את
הרשימה הזאת נסמן באמצעות המשתנה פוחסס.
היחס ת0ז564 מתקיים בין שלושת העצמיס האלה:
חדר א, אשר ממנו מתתיל החיפוש.
חדר צ, אשר אותו יש למצוא.
רשימה פוחססא של חדרים, אשר דרכם עוברים מ-% ל-צ.
נעבור לכתיבת התכנית בפרולוג. בתחילת החיפוש יש ברשימה 151166 אייבר אחד בלבד.
-: (פמססת ,+ ,א)ם0ע508
. (פ₪ססת ,[א<] ,צ ,א)ם80820
אס הטלפון נמצא בחדר א, נסיים את החיפוש. במקרה זה הרשימה 11166 תרכז את כל
החדרים שדרכם עברנו כדי להגיע לטלפון, ועל כן תהיה זהה לרשימה פוחססת:
-: (0718100606 ,018510606 ,א ,א)ם0ע5082
. (6)8תסת66160
אם הטלפון אינו נמצא בחדר א. נעבור לחדר %חו:.1 ונבדוק אם הוא שייך לרשימה 181166.
אס אחג.1 אינו שייך ל-151806, נצרף את % לרשימה ונמשיך בחיפוש:
-: (פשססת ,01810006 ,+ ,א)ם0ע5082
, (%ת11 ,א)סטסם
, (01515660 ,את1.1)ע6משסם ססת
, (71810061 ,[%ת11] ,6)/151066םס6ססה
. (פמססת ,01516061 ,+ ,א%םת11)ם50820
נתאר את היחס 6טסוח. הדלת בין שני חדרים סמוכים 4 ו-8 מאפשרת את המעבר מ-4 ל-8,
וגם את המעבר מ-8 ל-4. אשר-על-כן, היחס 6צטסוח מוגדר כך:
.(8 ,6002)8 ;(2 ,6002)4 -: (8 ,8)סטסם
נוסיף את המידע על הדלתות והטלפונים ונרכז לידו את החוקים שהגדרנו, כדי לקבל את
התכנית בשלמותה:
6002)8,5(.
.(4002)8,8 ; (6002)4,2 -: (6)4,2טסם .(6002)8,0
6002)0,6(.
-: (פמססת ,ץצ ;8<)ת806820 . (6002)0,6
.(פמססת ,[א] ,ץ ,א)ם56826 .(ת,6)עסס6
-: (0191666 ,7191600 ,3 ,8א<)ת0ע808 .(6000)6,1
. ( א)6תסתק6616 .(6000)6,1
-: (00₪5ת ,07181666 ,+ ,א)ת80820 .(60020)6,9
,(%ת11 ,א)6טסם .(6000)6,6₪
,(%151%66 ,א%ת0₪062)11ם ססת .(5,+)6002
,((7151%861 ,[%ת11] ,8)/151660מסקק8 . (])6תס0תק6616
.(פמססת ,71815661 ,+ ,את01)ת56820 9 . ( 1 ) 6ת0תק6616
תכנית 8 - חיפוש דרך במבוך
04
הבה
נכנס. לארמון. אנו
בתשובות: למצאים בחדר ג. איך נגיע לטלפוף נציג את השאילתה ונעיר
. (000₪5 ,1 ,8)ת50820 -?
נ=ץצ
]] = פמססת
?ץצ
-1] = פמססת
עקבנו אחרי התשובה לשאילתה הראשונה באמצעות ה-6גזו שבאיור 12. כדי לפשטו, הצגנו
את הפרוצדורה 6טסוח באמצעות שני חוקים אלטרנטיביים:
. (8 ,)8002 -: (8 ,₪006)2ם
. (8 ,)8002 -: (8 ,6)4ט0ם
התכנית שכתבנו מאפשרת להגיע לטלפון מכל אחד מחדרי הארמון:
. (פ₪ססת ,ץע ,ת)ם0ע868 -?
3=צ
7 = פמססת
?>
.51 + = פמססת
את התכנית בנינו בשלושה שלבים. בשלב הראשון דנו בבעיה ותיארנו באופן כללי 8
הביצוע; בשלב השני גיבשנו את מבנה הנתונים; בשלב השלישי כתבנו את העובדות והחוקים
של פרולוג.
תרגיל 8
א. מצא את כל התשובות לשאילתות האלה:
, (00₪8ת ,1 ,א)ת0ע868 -1
. ((פ₪ססת 1 ,א)ג80820 -7?
צדורה 564001:
ב. בתכנית 8 החלפנו את הפרוצדורה 3636 בפרו ,
1566
-: (פ5מססת ,+ ,א)1ת56820
. (פ₪ססת ,[] ,ץצ ,א)8082021
-: (פמססת ,0181066 ,א ,1)%8ת56800
, (6)8תס0ת66160
. (פמססת ,[א] ,6)01515686ת6סקה
-: (פשססת ,01581606 ,צ ,8א)ג50820
, (%ת11 ,א)סטסם
, (0181566 ,את062)1,1מ6ם ססת
(01810061 ,א ,6)0151%606מ6סק8
. (פ₪סס3 ,018106061 ,+ ,א%ת5082021)11
תאר את ההבדל בין הפרוצדורות 568108 ו-011ז568 ומצא, מה תהיינה התשובות
לשאילתות האלו:
. (פ₪ססת ,+ ,1)8ת80820 -?
. (פשססת ,ץצ ,ת)1ת80800 -?
. (פשססת ,+ ,)808201 -?
. (פשססת ,1 ,%)1ם0ע808 -?
.
טש(
5 -7 | נשַת801ץ%
2, [8+, 8)ת56816 :2 [0]
א. עברנו את החדרים 8 ,0 ,6 ,ם. .(30085186, [ג],185+,8)ת56816 :6811 [1]
. (15661272
-([פ
. (5267מססת, [
.(86)8ח0תק616: :1 [2]
. (006)8תק616+ : [2]
.(%268ת6)8,11ט₪0 :₪811 [2]
.(400:)3,9362 :6811 [3]
.(ל,000:)8 :6%18 [3]
.(ל,ג3)פטסם :615 [2]
.([6:)5,]8כם6ם :₪811 [4]
.([8],ל)ז6לם6ם :1811 [8]
5, ],[6)]3תשקק3 :₪811 [4]
,ג],[פ],[4)]3ת6קקג :₪416 [4]
5,1265,]8,5)ה568:6 :6811 [4]
.(ל)6ת0תק5616 :6811 [5]
.(ל)6ה0חק616: :11+ [5]
.(%721ה6)5,11טסמ :6811 [5]
.(400:)5,8815 :6811 [6]
.(600:)5,6 ::1א5 [6]
.(08)5,6ש ::5+1 [5]
([6:)4,]8,9לם₪6 :6811 [7]
.([0:)0,]3,5למסם :1411 [7]
. (1516641725/, [6], [פ,6)]8תפקק8 :6811 [7]
]8,5,6[(-
1[ 84 "סק :ם1א5 [7]
.(00₪5720ת, [6,7718,]8,5,6)ת568:6 :6811 [7]
.(6)4תסהק616: :6811 [8]
.(6)0חסתק5616 :811) [8]
(1180אה6)0,11טסמ :6811 [8]
. (400:)6,81274 :6811 [9]
.(ה,400:)6 :6416 [9]
.(ם,6)6טסם :616 [8]
.([3,5,6],ה):6למ62ם :6811 [10]
.([3,5,8],ה):06מ₪0 :311] [10]
. (15156611184ץ, [ת]
. ([ת,5,6פ,ג],[ת]
. (51179פססת, [ת,5,6, ג]
,[4)]3,5,6תשקק8 :6811 [10]
,[4,ל,4)]3חפקק8 :615 [10]
,56:07 :6811 [10]
.(ה)6חסתק616 :6811 [11]
.(ת)6חסתק616: :1811 [11]
ב. חזרנו לחדר 4, גילנו כי היינו כאן. . (1645צה11,ח)6ט₪0 :6811 [11]
(81739,ת):600 :12["6811]
(1739 ,ה):400 :111 [12]
(ה,400:)21739 :6811 [12]
.(ת,400:)6 :8+16 [12]
.(4,ם)פטסמ :6118 [11]
,02 :6411 [13]
70 :ם1א6 [13]
.(6,ת)₪0%6 :660: [11]
.((,400:)6 :660: [12]
.(ם,1739 ):400 :1811 [12]
. ([ת,4
וי .([ת,4
בהמשך: .(1179 ,[ת,8,5,4]
חזרנו לחדר ט, ל
גילינו כ*י ה*ינו כאן,
מחדר 5 הגענו לחדר 1, חזרנו לחדר 6,
מצאנו טלפון, סיימנו את החיפוש.
.(1645 ,ה)6ט0ש :1811 [11]
,7 ,)56:60 :811+ [10]
,[6)]8,5,4ח6קק8 :1660 [10]
,41 שק :1811 [10]
הגענו מ-6 ל-1,
.(6)1חסתק616: :6811 [11]
.(6)1תסםק616 :18א6 [11]
]10[ 6216: 563:6)1,1,]8,5,6,1[,]3,5,6,1[(.
[,]3,5,6,1[(-
4,5,6,1[(.
08 :16 [7]
],[5,3,]8,5)ה568:6 :6+15 [8]
.([568:60)8,[,]3[,]8,5,6,3 :15צ8 [1]
,.
איור 12 - חיפוש הטלפון
((4,[,]8,5,6,0)ה868:6 :616 [0]
.5 12 ה1 .
:= צ
[8,9,8,0] = פמססת
207
9. מודל לפתרון בעיה באמצעות תכנות לוגי (המשך)
חומר רקע: פרקים 5, 7, 8, 9, 10 (ידיעת פרק 10 רצוייה, אך אינה הכרחית).
בסעיף זה נמשיך לדון במודל לפתרון בעיה באמצעות תכנות לוגי. ברצוננו להרחיב את
הפרוצדורה 62ש501 שבסעיף 7. ההרחבה אמורה לחשב את השביל בין המצב הנתון לבין המצב
הסופי. במליס אחרות, אנו רוצים לרכז באמצעות הרשימה את כל המצבים, אשר דרכם עוברים
כדי להגיע למצב הסופי. נגדיר, לשס כך את הפרוצדורה 03ש801:
-: ([א], א%)501063
.(א)5%806 81ת1+
-: ([םס8ק|א] ,א)501063
, (%ת1.1 ,א)פטסם
.(ם80ק ,%םת63)1.1ט5010
תכנית 10(א) - חיפוש אחר שביל
את המצבים, אשר עוברים בדרך אל המצב הסופי, נרכז באמצעות במשתנה גוגק.
נעיין בשאילתה ובתשובות שהתקבלו. את היחסים 6טסוח ו- .51416 41ח11 הגדרנו בסעיף 7.
?- 801063)8, 1,150( .
186 =
1186 = ]8,6,2[.
נעקוב באמצעות איור 13 אחרי קבלת התשובה הראשונה. נשווה בין קבלת תשובה זו לבין
קבלת התשובה לשאילתה (62)8ש801.
ישנן בעיות, אשר לא ניתן לפתור באמצעות הפרוצדורות 62ש501 או 63ש501. נניח למשל, כי
המצבים מ-8 ועד א מייצגים את הערים, המעברים מייצגים את הכבישים, והכביש המקשר את
הערים ₪ ו-6 הינו דו-סיטרי (ראה איור 14). נוסיף לבסיס הנתונים של סעיף 7 את העובדה
(6)6,0+סוח ונדגיס באמצעות איור 15 את חישוב השאילתה (62)8צ501-?.
מהמצב 6 ניתן להגיע אל שני המצבים ת ו-פ. את העובדה (6)6,9שסוח הוספנו לסוף הפרוצדורה
סשסוח, ולכן כשהתכנית מגיעה אל המצב 4, בהתאם למודל חישובי של תכנית לוגית, היא פונה
אל המצב ם. כאשר התכנית מגלה כי אינו המצב הסופי, היא חוזרת אל 6, ובאמצעות היחס
(6)0,0סוח- עוברת למצב 5. מ-פ היא עוברת ל-4, מ-6 ל-1, וחוזר חלילה. וכך הפרוצדורה
(62)8ש501 נכנסת ללולאה.
108
.(63)8,1156ט501 -7 |
63)38,15581(7ט501
7 1ת1+
77 1ה1+ :11? [1]
"75 :6411 [1]
6)8,07ט₪0 :16א6 [1]
63)5,285(174(7ט501 :6411 [2]
7 1 1+ :₪811 [3]
77 ג81ח1+ :811+ [3]
77 )טס :6811 [3]
7 :6ם1א6 [3]
7 :6811 [8]
77 1ח1+ :6411 [5]
]5[ 111: 1 7
7 רטטטט :6411 [5]
7 :16א6 [5]
7 )5013 :6811 [6]
7 1בת1+ :6411 [7]
7 11הת1+ :411+ [7]
7, ה )סטסםת :6311 [7]
7 ,ה)פטסת :5811 [7]
7. ,ת)501063 :1811 [6]
7(ת,6)4ט0ס₪ :1660 [5]
77 ,6)4טסח :411+ [5]
7.. 0 :1 [84]
6)5,6(7טסם :660 [3]
7 :815א8 [3]
7 ,63)6ש501 :6811 [4]
]5[ ₪811: +1 ..7
55856)8(7. 1הת1+ :1811 [5]
]5[ 6811: 7
7 :8165א6 [5]
7, +)3ט501 :6411 [6]
277 11הת1+ :6411 [7]
27 11ח1+ :11 [7]
7 1)טסש :6811 [7]
7 ,1)טסת :1411 [7]
]6[ 111: 61, .7
]5[ :600: 7
27 מ :156א6 [5]
77 ,63)1ט501 :6811 [6]
77 1 1הת1+ :6811 [7]
7 1ת1+ :18א6 [7]
]6[ 6816: 77
77 :6816 [4]
77 :ם81א6 [2]
22 :ם81א6 [0]
.5ת0610ט660ץ 8 ת1 ...
:חס
:1 [0]
:1 [1]
12186 = ]4,5,6,[[
:(501062)8 -7 | :8ה861ץ6
7 :611 [0]
7 [גת1] :68411 [1]
7 81ה1] :11+ [1]
87 )טס :2 [1]
7 טס :5418 [1]
77 :6211 [2]
717 81[1ה1+ :6811 [3]
77 נ[בת1+ :1811 [3]
)טס :6811 [3]
7 :610 [3]
27 :6411 [4]
27 נ81[1ה1+ :6411 [5]
277 11גת1] :811+ [5]
7 :6811 [5]
1 :6816 [5]
7,ת)62ט501 :6811 [6]
7 81ם1+ :6811 [7]
)5 [אה1] :1411 [7]
07 ,ת)סטסת :6411 [7]
77 ,מ)סטסם :411 [7]
?)501062 :1811 [6]
7 :660 [5]
7 ,,)6)ט0ם :411+ [5]
7 :11 [4]
₪006)5,0(7 :1660 [3]
5,07)סטסם :16א6 [3]
)2 :6411 [4]
27 1ה1+ :6811 [5]
7 1[1גת1+ :411 [5]
77 :6811 [5]
22 :6816 [5]
7 :0411 [6]
27 1ה1+ :6811 [7]
27 [1[1ם1] :1411 [7]
7 :611 [7]
7 ,1)טסם :1811 [7]
2 :11] [6]
27 :660: [5]
22 :8165א6 [5]
27 :0811 [6]
77 81[1ח1+ :6811 [7]
77 גג1ת1+ ::1א6 [7]
7 :816א6 [6]
267 ::6%1 [8]
27 :616 [2]
501082)8[7 :16א6 [0]
:2 8 ם1 ...
35
איור 13 - קבלת התשובה ל-(ג)501%62 ול-(1.151 ,50196364
109
9. מודל לפתרון בעיה באמצעות תכנות לוגי (המשך)
חומר רקע: פרקים 5, 7, 8, 9, 10 (ידיעת פרק 10 רצוייה, אך אינה הכרחית).
בסעיף זה נמשיך לדון במודל לפתרון בעיה באמצעות תכנות לוגי. ברצוננו להרחיב את
הפרוצדורה 50162 שבסעיף 7. ההרחבה אמורה לחשב את השביל בין המצב הנתון לבין המצב
הסופי. במלים אחרות, אנו רוציס לרכז באמצעות הרשימה את כל המצבים, אשר דרכס עוברים
כדי להגיע למצב הסופי. נגדיר, לשס כך את הפרוצדורה 501/63:
-: ([א], א)501063
.(%)5%806 81ת1+
-: ([ם86ק |א] ,501063)8
, (%מ11 ,א)שטסם
.(ם80ק ,%ת501063)11
תכנית 10(א) - חיפוש אחר שביל
את המצבים, אשר עוברים בדרך אל המצב הסופי, נרכז באמצעות במשתנה הוג7.
נעיין בשאילתה ובתשובות שהתקבלו. את היחסיסם 6צסוח ו-51816. 81ח11 הגדרנו בסעיף 7.
?- 501063)8, 1180( .
21565 = 7
15% ],6,9[.
נעקוב באמצעות איור 13 אחרי קבלת התשובה הראשונה. נשווה בין קבלת תשובה זו לבין
קבלת התשובה לשאילתה (62)8צ501.
ישנן בעיות, אשר לא ניתן לפתור באמצעות הפרוצדורות 501962 או 501%63. נניח למשל, כי
המצבים מ-8 ועד א מייצגים את הערים, המעברים מייצגים את הכבישים, והכביש המקשר את
הערים פ ו-4 הינו דו-סיטרי (ראה איור 14). נוסיף לבסיס הנתוניסם של סעיף 7 את העובדה
(06)6,0ח ונדגים באמצעות איור 15 את חישוב השאילתה (62)8ש501-?.
מהמצב 6 ניתן להגיע אל שני המצבים ת ו-פ. את העובדה (6)6,0שסוח הוספנו לסוף הפרוצדורה
6סוח, ולכן כשהתכנית מגיעה אל המצב 4, בהתאם למודל חישובי של תכנית לוגית, היא פונה
אל המצב ם. כאשר התכנית מגלה כי ת אינו המצב הסופי, היא חוזרת אל 6, ובאמצעות היחס
(6)0,0סוח- עוברת למצב פ. מ-5 היא עוברת ל-4, מ-8 ל-ת, וחוזר חלילה. וכך הפרוצדורה
(501%62)8 נכנסת ללולאה.
108
.(501063)8,1150 -7 | :2ה67861
15%817 :6811 [0]
77 1 1+ :₪811 [1]
7 1ה11 :1811 [1]
27 טס :6411 [1]
37)טסם :1א6 [1]
7 :411 [2]
27 1 1ת1+ :6811 [3]
7 [81ח1] :111 [3]
7,)טס₪ :6311 [3]
7 :616 [3]
77 :6411 [8]
717 1 1+ :6811 [5]
7 ג81ת1+ :1411 [5]
7טטט :6411 [5]
7 :10א [5]
2860612(7,ת)63ט501 :6811 [6]
7 1ח1+ :6811 [7]
7 11ח1+ :111 [7]
7 ה)טסם :6411 [7]
7 ,ה)פטסת :111 [7]
77 ,)501063 :1411 [6]
7 :660: [5]
7 ,64)טסח :1811 [5]
77 ,)501063)6 :1411 [8]
27 :660 [3]
,)פטס :618 [3]
17 ,63)6ט501 :6811 [8]
7 81ה1+ :6811 [5]
27 1ה1+ :411+ [5]
7 )טס :6811 [5]
7 :816א6 [5]
7, 1+)3ט501 :6311 [6]
77 1[1גת1+ :6811 [7]
7 1ם1+ :1811 [7]
27 טס :6411 [7]
7 ,6)1ט0ח :811+ [7]
7 ,63)1ט301 :5411 [6]
7 :660: [5]
7 :6816 [5]
77 ,[)63ט3801 :6811 [6]
77 81[1ת1+ :6811 [7]
7 נ1[,ת1+ :16א6 [7]
7 3 :6816 [6]
7 :6816 [4]
27 :ם81א6 [2]
27 :ם81א6 [0]
.00 8 ת1 ...
115% = ]8,5,6,1[
:(501062)8 -7 | :2ה801ץ:
7 :6811 [0]
7 [1[1ה1? :6811 [1]
77 181 :1811 [1]
7 :811 [1]
7 שש :615 [1]
)501062 :6811 [2]
7 1הת1+ :6411 [3]
77 נ[גת1+ :811+ [3]
7כ%386ה6)5,11טס₪ :6811 [3]
272 :10א6 [3]
727 :6811 [4]
27 1[1ה1+ :6411 [5]
277 נ811[1ת11 :1811 [5]
,0 :6411 [5]
22 :818א8 [5]
)62 :6411 [6]
77 1גת1) :6811 [7]
)55356 81ה1+ :1811 [7]
77 )טס :6311 [7]
7 ,ם)6טסמ :1411 [7]
7 :1411 [6]
2 :56600 [5]
7 ,6)4ט₪0 :1811 [5]
27 :1411 [4]
27 :26600 [3]
71 :815א5 [3]
77 :6811 [4]
56806)67 [1ה1+ :6811 [5]
7 [81[1ה1+ :1811 [5]
7 טטטט :6411 [5]
7 :616 [5]
27 :64811 [6]
7 1ה1+ :6811 [7]
77 1[1ת11 :811 [7]
7 1 )טסם :6811 [7]
7 ,1)טסמ :1811 [7]
27 :111 [6]
27 :6600: [5]
77 :15א8 [5]
:6811 [6]
7 861ח1+ :6811 [7]
77 1ם1+ :ם1א6 [7]
7 :816א6 [6]
2067 :6416 [8]
)62 :816א6 [2]
82)8(7ט501 :15א6 [0]
.03 8 ת1 ,..
8
איור 13 - קבלת התשובה ל-(()801/62 ול-(1.81 ,501+63)8
09
איור 14 - א. האב והצאצאים של 6
ב. הלולאה
הפרוצדורה (501/63)8 נכנסת גס כן ללולאה דומה. הגירסה הנוספת של המודל, 501%64, נועדה
למנוע את הכניסה ללולאה. הפרוצדורה 50164 צוברת באמצעות המשתנה עץזסופת את
המצביס שדרכם עברה התכנית. כל מצב נוסף נבדק באמצעות הפרוצדורה ז6טוח6וח, כדי לגלות
אס התכנית עברה דרכו, אס לאו. להלן הפרוצדורה 64צ801:
.(מס8ת,[],א)501061 -: (םס8ק,א<)501061
.(א)5%5806 81ם1? -: ([עע11560|א], 115602 %)501064
,(את,1,%)6ט0ם -: (ם80ק, עע0ס3115%,א)501061
, ( צעס1115%, %ת1,1) ₪662 6סת
. ( 8%ק, [ ע2ע11560 | א ] , %ת1.1) 501068
תכנית 9(ב) -- חיפוש שביל ללא לולאות
נציג את השאילתה ונעיין בתשובות:
?- 501061)8, 1,18%( .
11565 =
1% ]9,6,8[.
ניתן (בתוספת של 6חספקג) לשנות את הפרוצדורה 501/64 כך, שהרשימה 1.181 תופיעה בסדר
הבא: [,8,5,6], [8.6].
באיור 16 עקבנו אחרי חישוב התשובה הראשונה לשאילתה (1.181 ,801%64)8. נעיין בחלק בי של
ה-11366, כאשר התכנית מגלה כי המצב 8 אכן שייך לרשימת המצבים שהצטברו ב-118107.
110
ו ו
ויוי אויווו וטל וו ורוו ווה
7- 6.
.(501062)8 -7 | :8ה801ץ5
7 :6811 [0]
27 נ[ה1+ :6811 [1]
7 1ה1 :11+ [1]
7 :6811 [1]
7 :ם1א6 [1]
7 :6411 [2]
7 11ח1] :0811 [3]
77 1ה1+ :811] [3]
7 טפט :6811 [3]
7" :615 [3]
777 :6811 [4]
77 81ח1? :0411 [5]
77 1ה1+ :1811 [5]
77 ,)טס :6811 [5]
7 :6816 [5]
2)7 :6811 [6]
77 1ה1+ :₪811 [7]
)5080 [אה1+ :811 [7]
7 ה)טסם :6811 [7]
7 ,ת)סטסם :11+ [7]
7 :111 [6]
77 :660: [5]
7 :ם1א6 [5]
77 :6811 [6]
7 1ה11 :6811 [7]
77 1בה1] :1811 [7]
7 וט :611 [7]
7 :8165 [7]
727 :6811 [8]
77 81ה1+ :6811 [9]
7 1ה1+ :1811 [9]
7 :6811 [9]
7 :816 [9]
7ה)501062 :₪811 [10]
5087 81ה1+ :2 [11]
7 1גה1] :1811 [11]
,)טס :6811 [11]
77 ,ת)6טסם :11+ [11]
01)7 :1811 [10]
27 :660 [9]
7 :ם1א6 [9]
7 :6811 [10]
7 81ה1+ :6411 [11]
7 1ה1+ :811] [11]
7 :6811 [11]
7 :ם1א6 [11]
7 :6811 [12]
77 81ה1+ :6811 [13]
7 1+ :111 [13]
7 )פטס :6811 [13]
7 שש :ם1א6 [13]
7 :6811 [18]
7 81ה1+ :6811 [15]
77 81ה1+ :1811 [15]
איור 15 -- הלולאה של (501962)0
.(64)8,118%ט501 -7 | נַאַת861ץ:
277 :6811 [0]
7, [],ב)86ט5010 :6811 [1]
7 81ה1] :6811 [2]
)5:0 [ה1] :11] [2]
]2[ 611: 7
6)8,0(7טסם :15א6 [2]
]3[ 6811: 7
]3[ 1811: 7
7, ([8], 501084)5 :6811 [3]
77 1ה1] :6811 [8]
?(5:806)5 [גה1] :811] [8]
7 )טס :6811 [4]
7 :5416 [4]
8-7 :6811 [5]
7 ו111 [5]
7, (64)6,]5,8ע501 :6811 [5]
7 נ[נגה1+ :6811 [6]
77 [1גה1) :811] [6]
27 :6811 [6]
77 ץ :616 [6]
7 :6811 [7]
7 :811] [7]
7, ([4,5,8],ח)64ש501 :6811 [7]
77 [1ה1+ :6811 [8]
7 [ה1] 1 [8]
7 ה)טסם :6311 [8]
7 ,ת)פטסם :811] [8]
7 ,ן[6,5,3],ת)64ש501 :2 [7]
17 :6600 [6]
7 :16א6 [6]
7 :011 [7]
7 :5418 [7]
7 :660 [6]
7 ,)6)פטסם :411] [6]
7 ,ן[501964)6,]5,3 :1 [5]
7 :660: [8]
7 :ם1א6 [4]
7 ו6811 [5]
17 :11] [5]
7 ,[501964)6,]5,8 :6811 [5]
56816067 81ת1+ :6811 [6]
7 נגת1) :1811 [6]
7 :6811 [6]
27 :ם1א [6]
7 :611 [7]
77 ו11ג: [7]
257, [64)1,]6,5,8ש501 1 [7]
7 1ה1] :6811 [8]
7 1גה!] :1811 [8]
17 )סמ :6811 [8]
7 ,6)1טסם :1 ([8]
7 ,ן[501964)1,]6,5,8 1 [7]
1 :6600: [6]
)טסט 1 [6]
7 :6811 [7]
77 :111 [7]
71 ,ן[801964)1,]6,5,8 [7]
77 1ה1] :6811 [8]
6717 1 :16צ8 [8]
7 ,)50164 וצ [7]
7 ]501 :4 [5]
7, 1 [501964)5,]5 [3]
)1 ומש 16 [1]
7, | ], 50106465 :ףוצ [0]
.8ח6:10ט60: 9 ת1 ...
[1,8,5,8] = 115%
איור 16 - תיקון הלולאה
באמצעות (1/8 ,501+64)4
וו3
בגירסאות 1 עד 4 של 501%6 המעבר ממצב א למצב צ הוצג באמצעות היחס (ץ, א)6צסוח.
לעיתיס יש צורך לייצג את המעבר בצורה יותר מתוחכמת. נציג גירסה 50165 של המודל, אשר
בה המעבר מוצג באמצעות היחט
(2ת51008%10 ( סטסא ,1ת516₪86010)ס6טסם
נוסיף אל בסיס הנתוניס את העובדות הבאות:
.(ס, (006)8,0ם ,8)ס6טסם
.(6 ,(₪006)8,6 ,6)8טסם
.(8 ,(₪006)0,8 ,ס)6טסם
.(6 ,(6)0,6טש0סם ,ס)6טסם
. (ס ,(₪006)8,5 ,6)8טסם
.(1 ,(₪006)6,1 ,6)6טסם
.(% ,(₪006)6,9 ,6)6טסם
להלן הפרוצדורה 501%65:
- ( 8סטסא, [ ], %)501065 -: ( פסטסא, א) לסט501
.(50806)8 81ת1? -: ([],ע115602,א)65ט5010
, ((א%ת11, סטס)א, %)6טסם -: ( [ 65טס) | פטס ] , צצ111560, א) 50165
, ( צע0ס1115%, %ת1,1) עססמסם ס6סת
. ( פסטס!, [ עס 1115 | 1.1% ] , %ת1.1) 501065
תכנית 9(ג) - חיפוש עס מעבר מתוחכםס
נעיין שוב בפרוצדורה 501%63. באמצעות החיפוש לעומק אין אנו מאתרים את הפתרון הקצר
ביותר: התשובה [[,8,9,6] מופיעה לפני התשובה [,8.6]. במקרים קיצונייס ניתן באמצעות החיפוש
לעומק "להסתבך" בתוך הענף האינסופי של העץצ, כפי שזה קורה לעתים בפרוצדורות
רקורסיביות כדוגמת זס651סחג שבפרק 10. הגירסה 501%66 נועדה להגביל את עומק עץ החיפוש.
להלן הפרוצדורה 66צ801:
.(55806)8 81ת21 -: ( ,[א],א)501066
,6 < ב6606א88 -: (ם660%6א8א, [םס8ק |א], א)501066
,1 - בת6000א08 15 ב6ק6אא , (%6ם11, א) סטסם
. ( ם600א, ב8ק, %ת1.1) 501066
תכנית פ(ד) - חיפוש עד עומק מסוים
נעיין בשאילתות ובתשובות שלהלן: .(1 .1498 ,0006/8ם =ס
סת
?- 801066)8, 1186, 2(.
11386 = ]8,6,1[
7- 801066)8, 118%, 3(.
185 = 7
1186 = 71
12
משמעות התשובות הינה כדלהלן: ברצוננו להגיע ממצב 8 למצב המוגדר כמצב סופי. בעומק 1
אין מצב סופי. בעומק אשר אינו עולה על 2, יש מצב סופי אחד בלבד, ), ואליו ניתן להגיע דרך
המצב 6. בעומק אשר אינו עולה על 3, ישנס שני מצבים סופיים, + ו-1.
נאמר לסיום, כי ניתן לבנות גירסאות נוספות של המודל. ניתן למשל, לתאר את המעבר ממצב
למצב באמצעות שני יחסים:
. (006 ,006)5%58061סם
. (558%662, 006א) 6866קט
נציין גם כי האסטרטגיה של החיפוש לעומק הינה חלק של מערכת הפרולוג, ולכן לא נזקקנו
לתאור אלגוריתמי מורכב של המודל. התאור באמצעות הגירסאות שהגדרנו, היה שקוף
והצהרתל.
את הפרוצדורות לפתרון הבעיה באמצעות תכנות לוגי רכזנו באיור 17.
₪-
.(צ,א)סטסם -: (+,א)61ט5010
.(צ,את501061)11 ,(%ת11,א)שטסם -: (+,א)501061
א
.(א)5%806 8[1ת1? -: (א)501082
. ( את62)1,1ש501 ,(%ת11,א)6ט0ם -: (א)62ש501
טי
.(א)55806 81ת1? -: ([א],א)63ט5010
. ( 861ק, %ת501063)1.1 ,(%ת11,א)6טסם -: ([ם286|א],א)501063
₪3
|
|
|
|
ן
ן
ן
|
ן
ן
. ( ח86ק, [ ], א) 501065 -: (םס8ק, א)50106% |
. (%)50806 81ת1+ -: ( [ע115502 |א], עצ115600, א) 501068 ||
,(%ת11,א)6טס₪ -: (ת286,צ₪18%02, )501964 |
, ( צע111860, %ת1.1) ₪6₪062 6סת |
. ( 28%, [ ע 11860 | א ] , %ת1.1) 801068 |
|
|
|
ן
|
ן
|
|
ן
ן
ן
ת>
. ( פסטסא, [ ], %)501065 -: ( פסטסא, א) פסט801
.(8%5866)8 [8ת1/ -: ([],עע115%0,%)501069
, ) %ת1,], סטסא, %)6טסם -: ( [ פשטסא | 6טסא] , עס 115, א) 05ט801
, ( צע1118%0, %ת6₪062)1.1ם >סת
. ( 68שסא, [ 1150 | %ת1.1] , %מ1/1) 65ט501
.
וס
.(א)5%5806 81ת1? -: (-,[א],א)66ט501
,0 < ת0606א8א -: (ת660%א8א, [ם86ק|א],א)66ש501
,1 - ת0ק86א8 15 ת6ק6אא , (%ם1,א)6טסם
. ( ם6ק6אא, ת85ק, %ת66)1.1ש501
> -... ]
איור 17 - פתרון בעיה באמצעות תכנות לוגי
2133
תרגיל 9
א. תאר את בעיית חיפוש הדרך במבוך (סעיף 8) בשפת מרחב המצבים וצייר את הגרף
המתאיס.
ב. נתח את הפרוצדורות ת0ז508 ו-1ת0ז568 של סעיף 8 וסווג אותן על פי השתייכותן
למודלים 501%63, 501%64, 501/65, 501/66.
ג. | אם לא ניתן להתאיס בין המודלים של 6צ!50 לבין הפרוצדורה ם6ז568 (או 01ז568),
כתוב מודל חדש, אשר יתאים לפרוצדורה הנ"ל.
4
הוההה'התויווווווווייווווווווווווווווו ורוו ור ור ריר
ואו 1וו:₪ | פוכן
0. בעיית שמונה המלכות
חומר רקע: פרקים 5, 7, 8, 9.
האם ניתן למקס שמונה מלכות על גבי לוח שחמט ריק כך, שאף מלכה לא תאיים על רעותה?
שאלה זו הוצגה לראשונה בכתב-עת גרמני לשחמט בשנת 1948. המלכה היא כלי של משחק
שחמט, שיכולה לנוע מרחק כלשהו בכל אחד משמונת הכיוונים העיקריים שעל הלוח. המלכה
נעה בכיוון השורה - ימינה. או שמאלה, בכיוון העמודה - מעלה או מטה, ובכל אחד מארבעת
כיווני האלכסון (ראה איור 18). בשל כך מאיימת המלכה על כל כלי הנמצא באחד משמונת
הכיווניס האפשריים.
נניח, כי מלכה אחת ניצבת במשבצת על פני לוחת השחמט. על-כן בשורה בה נמצאת המלכה,
לא תימצא כל מלכה אחרת. כלל זה חל גס על העמודה ועל ארבעת האלכסונים. האמנם נוכל
להציב את כל שמונה המלכות על אותו לוח בלא שתאיימנה זו על זו התשובה לכך חיובית.
יתר על כן: הוכח, כי קיימות 92 אפשרויות למקס את המלכות על גבי הלות. בכללן נמנות גם
תמונות ראי במצבים שונים, ואם נפסול אותם, נגיע למספר אפשרויות קטן יותר.
נציין, כי בנושא זה נעשו מתקרים ונכתבו מאמרים רבים (ראה למשל, את המאמר [1986
6 +
איור 18 - המלכה נעה בשמונה כיוונים
את מלאכת הצבת המלכות על פני הלוח נעשה באמצעות תכנות לוג בעת כתיבת התכנית
עלינו להשיב על שתי השאלות העיקריות:
א. כיצד יוצגו המלכות על הלוח!
ב. מה תהיה האסטרטגיה של חיפוש הפתרון!
15
נכתוב שלוש תכניות לוגיות, שבהן נציג גישות שונות לפתרון הבעיה. בתכנית הראשונה נתאר
את כל אחת מהמלכות על פני הלוח באמצעות זוג סדור (צ,א) של שעורים (קואורדינטות).
הערך של א יציין את העמודה והערך של צ את השורה, בה ניצבת המלכה. את תצורת המלכות
(5ת066) ]0 ת0ג41זט16]תסס) נציג באמצעות הרשימה הבאה:
[(8צ ,8א)... ,(2צ ,2א) ,(וץצ ,1 א)]
כדי לפשט את ההצגה, נארגן את המלכות לפי הסדר הטבעי של העמודות:
[(8'צ ,8)... ,(2צ ,2) ,(וצ ,1
את התכנית הראשונה נתחיל מהגדרת היחס (66051))206605טף. המשתנה 5ח66ט2) של היחס
מייצג את תצורת המלכות:
- : ( 8ת166גו0 ) 1 6תססנו
, (3+,3) , (2+,2) , (1צ,1) ]=5ת0166
,[(8צ,8) ,(7צ,7) ,(6צ,6) ,(5צ,5) ,(%צ,5)
. ( 8ת160ו0) 1ם610ו501
באמצעות היחס (5ח2066))] חסנ1ט501 ניישם את האסטרטגיה לחיפוש הפתרון. כדי לקבל את
התצורה, אשר בה אף לא מלכה אחת תאיים על רעותה, ניעזר בהגדרה רקורסיבית. נניח כי
כמה מהמלכות כבר הוצבו על גבי הלוח בלא שאיימו זו על זו. נסמן מלכות אלו על ידי המשתנה
5. את המלכה הנוספת יש למקס על הלוח בלא שתאיים על 5ז6תו0ס. נקבל אם-כן, כי
הצבת מספר כלשהו א של מלכות מושתת על שלב קודם, שבו הוצבו ג-א על פני הלוח:
-: ([5ע6ת06| (צ ,%)])1מ610ט501
, (028ם05) 1ת50111610
,([8 ,7 ,6 ,5 ,8 ,3 ,2 ,1] ,+)ע6סםסם
. (628ת06 ,(ע ,א))86%680%81 טסת
"תנאי הגבול" הוא המקרה, שבו הלוח ריק: /
. ([ ]) ם8010%610
נעבור אל היחס (0010689,ח66ט81180%51))2. המלכה תוקפת בכיוון העמודה:
-:(625ת0%6 ,(צ ,א))51א86080%
,(628ת0%5 , (2 ,4))עססמסם
.א = 8
המלכה תוקפת בכיוון השורה:
-:(25ע6ם0%6 ,(ץ ,א))51א8%66080%
,(628ת0%5 , (2 ,4))תעססשסם
.ץצ = 8
המלכה תוקפת בכיווני ארבעת האלכסונים. הבה נתבונן באלכסוני הלותח. אם נתבונן
באלכסונים העולים משמאל לימין נגלה, כי ההפרש בין שיעורי המשבצות באלכסונים אלה
הוא קבוע, האופייני לאלכסון (ראה איור 19). באלכסונים היורדים משמאל לימין סכוס שיעורי
המשבצות הוא קבוע, האופייני לאלכסון.
16
וק
םי םב :ם: חי
ים:ם +
ש:םם.
170 3-6
םר
1:
7
איור 19 - איפיונים של אלכסוני הלות:
(א) הפרש בין שיעורים באלכסונים העולים משמאל לימין.
(ב) סכום של שיעורים באלכסונים היורדים משמאל לימין.
המלכה (צ, א) תוקפת את המלכה (8, 4) בכיוון האלכסון שעולה משמאל לימין, אס: א-צ-8-4.
או אם: 4+א-צ-8. את השיקול הזה נבטא בפרולוג באמצעות החוק הבא:
-:(5ע6ת0% ,(? ,80080%51))8
, (628ת00 , (8 ,4) ) עססמס
.+א-7 18 8
בדומה, המלכה (צ,א) תוקפת את המלכה (4.8) בכיוון האלכסון שיורד משמאל לימין, אם:
א+צ-2+4, או אם: 4-%+צ-8. החוק המתאים בפרולוג הוא:
-:(628ת00 ,(ץ ,א))51א8%080%
(פע6ת0% ,(8 ,4))ע6סמסם
.-ץ 185 8
את היחס (1.151 ,6טוח16/)זססוח6ות הגדרנו בפרק 9.
לפני שנציג את התכנית הראשונה בשלמותה נציין, כי ניתן לוותר על החוק המגדיר התקפות
בכיוון העמודה. מכיוון שהעמודות מסודרות לפי הסדר הטבעי, אין שתי מלכות הנמצאות
באותה עמודה.
להלן התכנית 51ת66ט2) בשלמותה. את כתיבת חוקל 41186851 "חסכנו" על ידי שימוש בקשר ";*
(08). נזקקנו לסוגריים המקיפים את הפיסקאות הקשורות" באמצעות הקשר 08, כדי לציין
את סדר הקדימויות של הקשרים.
27
-: ( 8ת01160) 1 8ת60נ
,(8צ ,4) ,(3? ,3) ,(2צ ,2) ,(1ץ ,1)] = פתססגם
,[(8צ (6) , (7צ 1) (סל 4) , (פלצ :)
. ( 8ת1)0₪60ת%10ט501
. ([ ]) 1ת5011610
-:([8ע6מ00| (צ ,א)])1ת10סטו501
, (628ם0%) 1ת50111610
(([8 ,7 ,6 ,5 ,3 ,3 ,2 ,1] ,צ)עססמסם
. (28ע6ת00 ,(צ ,א))80680%881 >סת
-: (628ת0% ,(צ,א))8%080%51
(,(259ת6ם06 ,(3 ,4))ע6סמסםת
.(8-א+ץ 18 2 ;4+א-? 18 8 ; צ > ם)
. ([ 680 | 662 ] | , 0002 ) פסספמסם
-: ([ 1811 | 11686 ] , 0062 ) ספתסם
. (1811 , 6₪0062) ע6סמסת
תכנית 10(א) - פתרון בעית שמונה המלכות
קודם שנפנה לכתוב את התכנית השניה נעיר, כי אין כל סיבה שנתייחס רק לשמונה המלכות
על פי הגודל המקובל של לוח שחמט. אפשר להכליל את הבעיה: האם ניתן למקם א מלכות
על גבי לוח שגודלו א+ א בלא שהמלכות יאיימו זו על זו?
אין תועלת רבה בשיעור ה-א של הזוג הסדור (צ, א). את המלכות ניתן להציג באמצעות רשימת
שיעורי ה-צ. הערך של צ יציין את השורה בה נמצאת המלכה ומקומו של צ ברשימה יציין את
העמודה.
כל מלכה תייבת לתפוס שורה משלה, כדי שלא תאיים על רעותה. לכן, רשימת שיעורי ה-צ היא
תמורה (ם0וז18טוחז6ק) של המספרים מ-1 עד א.
את התכנית השניה נפתח בהגדרת היחס (206605) ,א)52ח66טס. המשתנה 5ח66ט2) הוא תמורה
המייצגת את תצורת המלכות:
-: (5ת66:גו0 ,)66252
, (06ת5606 , )800000
, (( 8ת0066 , 06ת5006) ת62₪1168610
. ( 8ת166ו0) 2ת501₪%10
היחס (66ח56006 ,צ)66ח6טף56 מליצר את הרשימה 06חסטף56 של מספרים מ-1 עד א: [או...,1,2].
היחס (5ת2066) ,₪6066ף56)חסנז18טותז6ק מייצר את התמורה 5ח2066) של הרשימה 66ח56006,
והיחס (5ח66ט())2חסנזט!50 בודק האם התמורה 5ח66ט2) מייצגת את תצורת המלכות בלא שהן
יאיימו זו על זו. שיטת הפתרון, שמיושמת באמצעות היחסיס מ14110טוחז6ק ו-2תסוזט!50, מכונה
בשם "ייצר-ובדוק" (6-1651ח61810-8ח86). היחס תסוזפוטותזסק בונה את התצורות, והיחס
2 בודק אס התצורה שהתקבלה אכן פותרת את הבעיה. נזכיר, כי באמצעות השיטה
ייווצר-ובדוק" ביצענו גם מיון טבעי של רשימה (ראה פרק 9).
|18
1
את היחס 66ח56006 ואת היחס תסווג8וטותזסק הגדרנו בפרק 9. עתה נגדיר את היחס 2חסווטו50.
הגדרתו תהיה רקורסיבית בדומה ל-1חסווט!50 של התכנית הראשונה:
. ([ ])2ת50110610
([628ת06] צ] )5010061002
, (628ת2)0%5ת5010%10
. (628ם05 ,+)86080%852 6סת
את היחס 81186%52 נגדיר על פי השיקולים הבאים: המלכה שנמצאת בשורה צ, מאיימת בכיוון
האלכסון על המלכה שבשורה 8, אם המרחק בין העמודות, שבהן נמצאות המלכות, שווה
למרחק שבין השורות, כלומר, המרחק בין העמודות שווה ל-(8-צ) או ל-(צ-8) (ראה איור 20).
6 = ם-?
איור 20 - מלכות מאיימות
המלכות מאיימות זו על זו בכיוון האלכסון, אס המרחק בין השורות שווה למרחק בין העמודות.
יוצא אם-כן, כי בהגדרת היחס 811868682 אנו נעזריס במרחק בין העמודות של המלכות בלא
שמציינים במפורש את שיעורי העמודות. לשס כך אנו משנים את היחס 41186652 המקורי
ועוברים ליחס 8118665/3, אשר בו הארגומנט האחרון הינו המרחק בין העמודות:
-:(58ע62ת0%6 ,)86680452
.(1 ,5ע6ת0%6 ,)85%80%52
נניח, כי המרחק בין העמודות של המלכות שווה ל-66חפו5וכ. על-פי השיקולים שצויינו לעיל,
המלכות מאיימות זו על זו בכיוון האלכסון, אם המרחק בין השורות שלהן שווה גם הוא
ל-1318006כ:
39
-: (068ת215%58 ,[8|17811] ,צ))52א86080%
;הספת + 2 18 צ
.5 - 2 18 צ
האלכסונים נבדקיס בזה אחר זה עד קצה הלות:
- : (06ם215%8 ,[2|1811] (צ)86580%52
,1 +. 06ת 215%8 158 21 :
. (21 ,71811 ,צ)52א80580%
להלן התכנית השניה בשלמותה: -: (8ת0066 ,52)8ת06166
, (06ת560₪6 ,א)06ת500₪6
, ((8ת066 , 56001606 ) מ168%10ו₪עסק
. ( 8ת01160) 2ת50111610
. ([1] ,2666)1גו500
-: (06ת56016 , א) 5001066
10 185 1א
, (51 ,06)%1ת560010
. (06ת56006 ,[א] ,6)51מסססה
.(1 ,1 ,[])8מסססה
-: ([1811שסא|א] ,1 ,[811 | א<] ) 6מססקה
. (1811שסא ,2 ,0)71811מססקה
-: ([1|צ] ,א)ם10ס68טמעסק
, (1,156ש6א, <, צ)56166%
. ('1', 86₪1,18%א) ת168%10וסק
. ([], [ ])ם68%10נוםעסק
. (ד, [1]|א], )561605
-: ([2|צ], [ד| צ], 56166%)8
. (2 ,1 ,א)56160%
. ([ ]) 2ת50111610
-: ([ 06628 | צ'] ) 501116102
, (628ת2)0%ת50111610
. (625ת00 ,צ)85580852 >סםת
-: (58ת0066 ,צ)8%66080882
. (1 ,5ת0₪66 ,צ)8%6580%52
-: (06ם21568 ,[2|17811] ,צ)52א80680%
ספת + 2 18 צ
6 - 2 18 צ
-: (066ת21558 ,[2|1811] ,צ)852א80680%
,1 + 06ם 21508 15 21
. (21 ,1811 ,צע)8%5580%52
תכנית 10(ב) -- פתרון בעית המלכות באמצעות "ייצר-ובדוק"
220
בתכנית השניה מייצרים תמורה ובודקים, אם היא מייצגת את תצורת המלכות הרצויה. אם
לא - שוב מייצרים תמורה וחוזר חלילה. את התהליך הזה ניתן לייעל.
בתכנית השלישית נבנה את התצורה, שבה אין מלכה, המאיימת על רעותה, בדרך זו: נבחר
מלכה באמצעות היחס 561601 ונבדוק באמצעות היחס 3פא6ווג3 אס המלכה הזאת מאיימת על
אלו שנבחרו קודם וכבר הוצבו במקומות הנכונים. אם המלכה אינה מאיימת על רשימת
המלכות שכבר הוצבו, נוסיף אותה לרשימה זו.
להלן התכנית השלישית:
-: (5ת0₪60 ,א)53ם0₪60
, (06ת10ו560 ,)5600606
. ( 8ת06ו0 ,[] ,06ת3)56006ת5010610
-: (8ת0₪66 ,5816 ,06ת3)50006מ610ט501
, (51 ,06ת06ט560, ת60נו0) 561606
, (5816 ,ת60ט8%5680%53)0 ססת
. (8ת066 , [5816| ת66ט0] ,3)51ת10סט501
. (8ת0066 ,5ת0066 ,[])3ת5010610
ראה תכנית 10(ב) - 066ת50006
ראה תכנית 10(ב) - | 5616056
זהה ליחס 850080%52 של תכנית 10(ב) - 80080853
תכנית 10(ג) - פתרון בעית המלכות באמצעות 5616
תרגיל 10
א. ענה על השאילתות הבאות ועקוב אחר תהליך חישוב התשובה באמצעות ה-806ז1:
. (0) 91ת066 -?
. (0 ,52)8ח0066 -?
. (0 ,53)8ח0066 -?
(הערה: היעזר בסבלנות, כי תישוב השאילתות עלול להימשך זמן רב).
ב לפניך שורה של ה-11806, העוקב אחרי חישוב השאילתה שהוצגה על בסיס אחת
התכניות שלעיל.
? (81153ת0060, [861006)000601152,]1,2,3 :0811 [5]
ענה על השאלות האלה:
1. מהי השאילתה שאחרי חישובה עוקב ה-66גזו הזה!
2 על פי איזו מהתכניות בסעיף זה הוצגה השאילתה הזאת!
3 מהי התשובה הצפויה!
נמק את תשובתך.
31
2
5
5(,)7 , 3(,)8 , 1([(-
,[(-
3
6 , 5(,07 , 3(,)8 , 1([(.
6. 5.07 , 3(,)8 , 1([(-
.([(8211+ , 7207(,)8+ , 1)])7ת510ט501 :6811 [7]
.([(8211*צ , 1)])8ת10ט501 :₪811 [8]
.([])1ה610ט501 :6811 [9]
.([])1ח10:ט501 :15א6 [9]
5 :6811 [10]
7 :ם1א6 [10]
.([],(1 , 85:86881))8 :6811 [10]
.([],(81514 , 56:))01513מ6ם :6311 [11]
[],(81514 , 6:))1513סמ6ם :411+ [11]
.([],(1 , 51))8א8::86% :11+ [10]
.([(1 , 1)])8ה0ס1ט501 ::1א6 [8]
5"ץ, :6411 [10]
21 :ם1א6 [10]
1, 1(,])8 , 51)0)7א855368 :6811 [10]
,(81665 , 06:))41664מ₪6 :₪811 [11]
(1 , 1(,])8 , 8))זססתסם :16א6 [11]
.| = 1 :₪811 [11]
.1 = 1 :ם1אם [11]
8 , 881))7א34556 :15א6% [10]
6 :5640 [10]
6 :ם1א6₪ [10]
6 2.3
8 5
נז.
0
,
,
, 2(,])8 , 3680%51))7 :6811 [10]
9 , 41668))ז6פמ6ם :6811 [11]
, 1(,])8 , ₪6206:))8 :15א6 [11]
. = 1 :611 [11]
5 = 1 :11 [11]
7 185 1 :6811 [11]
:1 [11]
7+ 185 1 :₪11 [11]
7+ 18 1 :ש1א6 [11]
, 85580%51)07 :ש1א6 [10]
2 :5660 [10]
2 :15א6 [10]
. 85:86%51))7 :₪811 [10]
₪
₪.
2
0
-1
' ++
8
8
8
8
2
3
3
3
.([(1 , 3(,])8 , 26:26951))7 :811+ [10]
.([(1 , 3(,)8 , 1)])7ה10:ט501 :16א5 [7]
, 3(,)8 , 5(,07 , 2(,])6 , 86:86%51))5 :1811 [10]
.([(1 , 3(,)8 , 5(,)07 , 2(,66 , 1)])5ה10:ט501 :16א8 [5]
.([06:)1731,]1,2,3,4,5,6,7,8מ₪6 :6811 [10]
.([56:)1,]1,2,3,4,5,6,7,8ל2סמ :15א6 [10]
, 7 , 2(,66 , 1(,])5 , ₪6:86%51))4 :₪811 [10]
, 2(,)6 , 82146(,])5 , 6:))42145פת₪6 :6811 [11]
-([(1 , 3(,)8 , 57 , 2(,66 , 2(,])5 , 6:))5למ₪6 :5%16 [11]
...= 2 :611 [11]
.2=.1 :11 [11]
4 - 1 18 2 :₪811 [11]
8 - 1 18 2 :16א6 [11]
606 :ם1א₪ [10]
1 :58680 [10]
71 :ם1א6 [10]
6608 :6811 [10]
איור 21 - חלקים של חישוב השאילתה ((66051)0טף:
(א) ירידה אל (])1חסנוט!50 והתחלה של בניית התצורה.
(ב) חלק של תהליך בניית התצורה.
שש = מ גר שם:
]17[ 6811: 0 08
]18[ 6811: 1
]19[ 611: 0 4
,]טס :611 [20]
]21[ 6811: 0 ]5
] )2ה10:ט301 :6811 [22]
]22[ 4165: 0]
]23[ 611: 65
]24[ 6811: %6%5
]24[ ).11: 65
]23[ )11: 65
5] 3:0 ו15צ0 [21]
]23[ 6811:
]24[ 6811: 4]
]25[ 6811: 4 15 5 + 1.
]25[ ]11: 4 18 5 +1.
]25[ 6811: 4 18 5 -1.
.1 5 18 4 ו18א5 [25]
]24[ 62161 45586%32)4,]5[,1(.
]23[ 6+15: 2::46%82)4,]5[(.
[1002)]5:ט801 :640: [21]
ו 1 [22]
[5
]5
4 :11] [19)
4 טס :11ג) [18]
4ץ)י זוז11] [17]
4), ])1:10:טמזסק ו640: [6]
]1 נבפק :1640 [8]
1.
2?
,(.
)סט :11] [22]
]הט ו11ג) [21]
4 :11) [20]
.
.
ו
.
/
[5
5,
/
-ש
. (5ה52)5,0086ת56טף -7 | גַּצָת801::
7 , , ץ :₪11 [0]
.(66[82ה66)5,56608ה6טף56 :₪811 [1]
.| -5 15 1271א :6211 [2]
.| - 5 15 א וםןצם [2]
.(68)4,51274ה26008 :6811 [2]
.1- 18% 1472א :6511 [3]
.1 5 םוצב [3]
.(68)3,51475מ6ט560 :₪811 [3]
.1 - 3 15 1671 :6811 [4]
.1 , כ :ם16צ. [4]
.(68)2,51676ה8טף56 :6811 [4]
.1 - 12 1874א :6211 [5]
.|- | 1 :ם!צב [5]
.(51877, [)68ת6טף56 :₪811 [5]
.([66)1,]1ם6ט526 :41 [5]
. (8066873:ו560, [2], [6)]1ה6קק2 :6211 [6]
.([4)]1[,]2[,]1,2ח6קקם ::1צם [6]
.([66)2,]1,2ת6ט560 ז:!+ [6]
. (68672ה8ט580, [3], [2, 1] )4מ6קק5 :5811 [6]
. ([4)]1,2[,]3[,]1,2,3ת6קק2 :ם!צ+5 [6]
.([66)3,]1,2,3ת6ט260 ו:1צם [3]
. (68471מ8ט56, [4)]1,2,3[,]4ה6קק2 :6811 [6]
. ([1,2,3,4], [4)]1,2,3[,]4ת6קק2 ו:!+6 [6]
.([66)4,]1,2,3,4מ8ט260 :4:1 [2]
. (66270ה56408, [5], [1,2,3,4] )222684 :6811 [6]
. ([1,2,3,4,5], [4)]1,2,3,4[,]5ת6קק8 ו8+16 [6]
.([66)5,]1,2,3,4,5ה26006 :4:16 [1]
. (2181ח66נ0, [2,3,4,5, 1] )ה10 :תק :6511 [6]
. (11551818שפא, [50160:)11816,]1,2,3,4,5 1 [7]
. ([2,3,4,5], [26160:)1,]1,2,3,4,5 :016 [7]
. (11817, [2,3,4,5])ה0:8110ת0ק :611 [8]
. (118:2024ש6א, [56166:)12022,]2,3,4,5 :6811 [9]
. ([26166:)2,]2,3,4,5[,]3,4,5 ו:1:. [9]
. (12023, [3,4,5] )הס!:8:משת6ק :6811 [10]
. (112:2230טגא, [3,4,5], 2228+)1661 29 ו [ו1]
. ([6166:)1,]3,4,5[,]4,5 ו:4:1 [11]
. (12229, [4,5] )הס :תק :6811 [12]
. (118:2436שפא, [4,5], 55106:)12424 :6811 [11]
. ([96166:)4,]4,5[,]5 ::1+. [13]
. (12435, [5] )מס] ז8]פת6ק :6811 [16]
. (18:2642שפא, [56186:)42640,]5 :6811 [15]
. ([],[56166:)5,]5 :4:16 [15]
. (12641, [ ] )418:108ק :6811 [16]
. (15:2848ש6א, [] ,2846+)561061 :5211 [17]
.(2848 ,[],28166:)12846 ו11ג] [17]
([ ], [ ] )הספוק :6+15 [16]
. ([5], [5])הס1::ט9ק :5116 [1%]
. ([4,5], [4,5] )10 :מק 51151 [12]
. ([3,4,5], [14:108)]3,6,5ת6ק ו:6+1 [10]
. ([2,3,4,5], [2,3,4,5 ] )חן :סק ו:5:1 [8]
רם. ([1,2,3,4,5], [1,2,3,4,5] )10 תק :91 [6]
.([2,3,4,5[,]3,5,2,4])ה0ס8:1: 1 8
מ (ן2,3, 1135 125551 1
.([2)]1,3,5,2,4ת510ט801 :6811 [20]
.(25586%52)1,]3,5,2,4[,1 :111 [27]
.([8586%82)1,]3,5,2,4 :811+ [26]
.([2)]1,3,5,2,4ת610ט501 :641 [20]
.([%2)5,]1,3,5,2,4ת68ט :8415 [0]
.8000610 26 ת1 ...
[1,3,5,2,4] = פת68
איור 22 - חישוב השאילתה (0066052)5,0:
התמורה מספר 11 מייצגת את התצורה הנכונה.
(3
4
]18[ 6811: 212679 18 1 + 1.
.| + 1 18 2 :16א9 [16]
]14[ ₪811: 85586%52)3,][,2(.
]18[ 1811: 85680%52)3,][,2(.
]18[ :600: 2 18 1 + |.
]18[ ]811: 2679 18 1 + 1.
.(8586%52)3,]1[,1 :811+ [13]
([40586%52)3,]1 וג81] [12]
.(32253ה3)]2,4,5[,]3,1[,0066ה10:ט501 :₪811 [12]
. (512599, [2,4,5], 861665)0060602598 :₪311 [13]
.([561805)2,]2,4,5[,]4,5 :615 [13]
עמ עשפ מק נמ גמ
]20[ 1811: 8::86%52)4,]2,5,3,1[(.
. (53275ה0₪86, [3)][,]4,2,5,3,1ה510ט801 :6811 [20]
]21[ 6811: 7, 1. 513498( .
ור ,[],3497ה861605)0066 :11] [21]
.([5,3,1 0 :816א6 [20]
(311 7 )0 :616 [18]
ו 5",, (ְ,])3ת10:ט501 :15א6 [16]
-([4,2,5,3,1] 1 72 )0 :810 [12]
.([3)]2,3,4,5[,]1[,]4,2,5,3,1ה10:ט801 :6%16 [9]
?ו 2 1 [5 1,230 5013 :2 [7]
.([3)]1,2,3,4,5[,]4,2,5,3,1ה610ט501 :15א8 [6]
.([53)5,]4,2,5,3,1ה6פטף :15א6 [0]
.5 2 ה1 ...
[4,2,5,3,1] = פהספטף
. (53)5,0060608ה6060 -7 | ַפַח861ץ:
הסט :6811 [0]
06178(7ה06)5,50008ה56086 :6811 [1]
בע בע כמ מע גמ
27 ][-]!]]' :16א8 [1]
22 )80101036 :6811 [6]
7 + ]0 :6811 [7]
7, [2018,]1,2,3,4,5ה56186:)0066 :6811 [8]
7" ומ 16א [8]
2 :6811 [9]
7 :6811 [10]
7 :1811 [10]
7 :1811 [9]
7 )0 ז6811 [9]
5(7)] ו 1 [10]
7 , :ם81א8 [10]
7 :1 [11]
77 :6811 [12]
1 + 1 18 2 :6811 [13]
.+ 1 18 2 :18א6 [13]
.(85686%82)2,]1[,1 :616 [12]
.([85:86%52)2,]1 :15א6% [11]
.([561665)2,]2,3,4,5[,]3,4,5 :5660 [10]
.(223560, [561865)%2349,]3,4,5 :68411 [11]
.([561665)3,]3,4,5[,]4,5 :6%16 [11]
.([561865)3,]2,3,4,5[,]2,4,5 :18א6 [10]
.([8:686%82)3,]1 :6811 [12]
.(845536%52)3,]1[,1 :6811 [13]
+ 1 15 3 :₪811 [16]
5 :11 [14]
5 :6411 [18]
8 :11+ [18]
1.
1.
= %
1
דה
איור 23 - חישוב השאילתה (66053)5,0טף:
בניית התצורה הנכונה
ג [6,3,7,2,4,8,1,5] = צתססט
[4,2,7,3,6,8,1.5] = פתססט
| [7,1,3,8,6,4,2,5] = צהספג
[1,6,8,3,7,4,2,5] = פתפפט
| [3,8,4,7,1.6,2,5] = פהספטס
ו [6,3,7,4,1,8,2,5] = פה6פט0
ו [7,4,2,8,6,1,3,5] = פה66
| [4,6,8,2,7,1,3,5] = 0699
[2,6,1,7,4,8,3,5) = פתססט
| [2,4,6,8,3,1,7,5] = 00669
| [3,6,8,2,4,1,7,5] = צה006%
1 [6,3,1,8,4,2,7,5] = פה6ט
, [8,6,1,3,6,2,7,5] = פת60ט
, [4,8,1,3,6,2,7,5] = 5ת066
ו [2,6,8,3,1,4,7,5] = פהספטס
| [7,2,6,3,1,4,8,5] = פתספט
[3,6,2,7,1,4,8,5] = פתספטט
ו [4,7,3,8,2,5,1,6] = פתססט
+ [4,8,5,3,1,7,2.6] = פהספטף
[3,5,8,6,1,7,2.6] = פהססטף
ן [4,2,8,5,7,1,3.6] = פהפפטף
1 (5,7,2,4,8,1,3.6] > פתסס
+ [7,4,2,5,8,1,3,6] = פהפסטט
[8,2,4,1,7,5,3.6] >= חפט
[7,2,4,1,8,5,3,6] = 5ה99ט
ו [5,1,8,4,2,7,3.6] = פהספט
| [4,1,5,8,2,7,3,6] = פה%פ
. (5,2,8,1,4,7,3,6] = פה
1 (3,7,2,8,5,1,4,6] = הט
. [3,1,7,5,8,2,4,6] = פהססטף
[8,2,5,3,1,7,4,6] = הסט
[3,5,2,8,1,7,4,6] = פהפפט
ו [3,5,7,1,4,2,8,6] = פהספטף
| [5,2,4,6,8,3,1,7] = 006605
| [6,3,5,8,1,4,2,7] = פת6פט0
| [5,8,4,1,3,6,2,7] = פהשפטס
| [4,2,5,8,6,1,3,7] = 8ה0086
| [4,6,1,5,2,8,3,7] = 9ה0059
[6,3,1,8,5,2,4,7] = פהססטס
| [5,3,1,6,8,2,4,7] = פת6פט
[4,2,8,6,1,3,5,7] = פמספט0
, [6,3,5,7,1,4,2,8] = הפ
[6,4,7,1,3,5,2,8] = פה000
, [4,7,5,2,6,1,3,8] = 0855
[5,7,2,6,3,1,4,8] = פתפפטט
איור 24 - בעיית שמונה המלכות: 92 פתרונות
. (0066859, 8 )05053 -זן
ו
וי
ג [5,2,47,3,86,1] = פהספטף
[3,5,2,8,6,47,1] = פטס
ג [3,6,4,2,8,5,7,1] = :חפט
ו [5,7,1,3,8,6,4,2] = 5
ו [4,6,8,3,1,7,5,2] = פמספט
[3,6,8,1,4,7,5,2] = 05
| [5,3,8,4,7,1,6,2) = פמט
| [5,7,4,1,3,4,6,2] = 066%
| [4,1,5,8,6,3,7,2] = הסט
ו [3,6,4,1,8,507,2] = הפ
ב [4,7,5,3,1,6,8,2] = ה
ך (6,4,2,8,5,7,1,3] = מ
, (6,4,7,1,8,2,5,3] = 0095
1 [1,7,4,6,8,2,5,3] = 0053
ו (6,8,2,4,1,7,5,2] = פתספטס
[6,2,7,1,4,8,5,3] = האס
1 [4,7,1,8,5,2,6,3] = ספ
ן [5,8,9,1,7,2,6,3] = צתספטס
| [4,8,1,5,7,2,6,3] = פתספטס
ב [2,7,5,8,1,4,6,3] = פהספנם
| [1,7,5,8,1,4,6,3] = פמט
ו [כ,2,5,7,4,1,8,6] = פהספטס
, [2,75,1,8,6,3] =
| (5,7,1,4,2,8,6,3] = 095
ן (6,4,1,5,8,2,7,2] = הסט
ג [5,1,4,6,8,1,7,0] = 0098
ו (5,2.6,1,7,4,8,3] = 0995
285 0
ו [(.1,7,3,6,85,1] = תס
ו (73,1,6,8,5,2,4] = 9
1 [5,1,5,6,3,7,2,4] = 0099
ו [.1,5,86,37,2] = טס
ו [3,6,8,1,5,7,2,4] = 000008
ו [6,3,1,7,5,8,2,4 ]= 9
ן [7,5,3,1,6,8,2,4] = 0
ג [7,1,8,2,5,1,6,4] = הט
| [5,3,1,7,2,8,6,5] = הט
571386 2] = פטס
7 = פתופטף
ו [%,6,1,5,2,8,20] = פתספט
הט
57" :הסט
ב ")] " 05009
ופט
תפ
2 "9
5
1. מגדלי האנוי
חומר רקע: פרקים 5, 7 8, 9, 12 (מתוך פרק 12 נדרשת היכרות עס הפרדיקטים 6ווזש ,1ח).
מגדלי האנוי הוא משחק שבו משתמשים בשלושה עמודים וקבוצת דיסקיות, בעלות קטרים
שוניס המנוקבות במרכזן בדומה לתקליט. העמודים עומדים בשורה אחת והדיסקיות מושחלות
על העמוד השמאלי (ראה איור 25). הדיסקיות מסודרות על העמוד, כך שקוטריהן הולכים
וגדלים ככל שיורדים כלפי מטה. את הדיסקיות יש להעביר אל העמוד הימני תוך שמירה על
המגבלות האלה:
1. מותר להעביר מעמוד לעמוד רק את הדיסקית העליונה.
2 אסור להניח דיסקית כלשהי על גבי דיסקית, הקטנה ממנה בקוטרה.
33 בעת המשחק מונחת כל אחת מהדיסקיות על אחד העמודים. העמוד האמצעי משמש
לאחסון הדיסקיות בשלבי הביניים. הוא פנוי מדיסקיות בתחילת המשחק ובסיומו.
איור 25 - מגדלי האנוי
מקורו של המשחק באגדה מן המזרח הרחוק. האגדה מספרת, כי בעת בריאת העולס הוצבו
בו שלושה עמודים גבוהים. על העמוד השמאלי הושחלו 64 דיסקיות, אשר סודרו לפי גודל
קוטריהן. על הנזירים במנזר נידח הוטלה המשימה להעביר את הדיסקיות אל העמוד חימני
בהתאם למגבלות שצויינו. הוסבר לנזירים, כי אס יסטו ממגבלה כלשהי, יהיה עליהם להתחיל
את המשימה מחדש. עס השלמת משימתם יתמוטט העולם, ייתמו התיים הארציים, ובני-האדם
יזכו בנירוונה ובחיי נצח.
נתחיל את העברת הדיסקיות מהדיסקית העליונה. ניתן להעביר אותה לעמוד האמצעי או
לעמוד הימני. איור 26 מדגים את האפשרויות הרבות שלפנינו. את הסדר הנכון שעל פיו יש
להעביר את הדיסקיות ניתן לבחור בשיטת ניסוי וטעיה, אבל השיטה הזאת אינה יעילה.
6
-
2 2
3
4 1 2 "
3
גן 2 1 1 ,
1 1
3 3 1 3 3 1
4 2 4 2 4 2 4 2
איור 26 - העברת הדיסקיות
נכתוב תכנית, אשר תקבע את הסדר הנכון של העברת הדיסקיות. התכנית תהיה רקורסיבית
ותיישס את השיקולים האלה:
א. הפעולה "הקשה ביותר" של המשחק היא העברת הדיסקית האחרונה, הגדולה ביותר. למה!
כי כדי לחשוף אותה, יש למלא אחר כל מגבלותיו של המשחק כלפי שאר הדיסקיות. לכן,
על העברת הדיסקית האחרונה חל מספר המגבלות הרב ביותר.
ב מאידך, קיים מצב אחד בלבד, בו ניתן לבצע את העברת הדיסקית האחרונה. זהו המצב,
שבו העמוד הימני ריק, שהרי אי אפשר להניח את הדיסקית האחרונה הגדולה ביותר, על
דיסקית אחרת כלשהי.
ג. | יוצא אם כן, שבעת העברת הדיסקית האחרונה כל הדיסקיות האחרות נמצאות על העמוד
האמצעי. בהתאם לכללי המשחק, הן מסודרות על העמוד הזה לפי קוטריהן.
השיקולים האלה מצביעיס על אפשרות של תכנית רקורסיבית, שכן העברת מספר כלשהו א
של הדיסקיות מושתת על שלב קודם, שבו מועברות 1-א דיסקיות. אין אנו יודעים כיצד נעביר
1]-א דיסקיות, אך התכנית הרקורסיבית משיבה על כך באמצעות "נסיגה" אל 2-א דיסקיות,
וכן הלאה, בסופו של דבר נגיע לשלב, בו יהיה עלינו להעביר דיסקית אחת בלבד מעמוד לעמוד.
שלב זה ישמש "תנאי הגבול" בתכנית.
את התכנית נתחיל בהגדרת היחס (א)וסחגח. שבו א הוא מספר הדיסקיות המושחלות על
העמד השמאלי:
, (₪18016 ,1826ע ,1626 ,א)621806ע2 -: (א)1סתפת
207
היחס (6 ,8 ,4 ,א)1866ק16 מתאר העברה של א דיסקיות מעמוד 4 לעמוד 8, תוך שמירה על
מגבלות המשחק. העמוד 6 משמש לאחסון הדיסקיות בשלבי הביניים:
-:(0 ,ם ,4 ,)2601806
,1 18 1א
((8 ,0 ,4 ,1א)1866ק6ע
(2 ,6)4טסם
.(8 ,2 ,0 ,1א)1866ס0ע
נסביר את המשמעות של כל אחד מהיחסים, הנמצאים בגופו של החוק 601806/4::
יק ו ו ₪
כדי להעביר א דיסקיות מ-4 | (4,2,0,א)1806קסע |
| ל-8 תוך עמירת הכללים |
| יש להעביר 1-א דיסקיות מ-4 | | 1א 18 א |
| ל-6, תוך עמירת הכללים | (1,4,0,8א)2001866 |
| יש להעביר את הדיסקית ה-א-ית | (3,8)סטסם |
| האחרונה מ-4 ל-8 |
| יש להעביר 1-א דיסקיות מ-06 (1,0,8,8א)2601806 |
| ל-8, תוך עמירת הכללים |
יוו ורוו וו ור הנינ
"תנאי הגבול" הוא העברת דיסקית אחת:
26001806)1, 4, 2, ( :- ₪006)4, 8(.
היחס (8 ,,6)4טסות מתאר את העברת הדיסקית האחרונה מעמוד 4 לעמוד 8. על המסך מופיעה
הודעה המתארת את העברת הדיסקית:
-: (2 ,6)4טסם
((106)4ע₪ ,(' מסע+? 618% 6טסש')166תשט
.1 ,(6)2ס1ע ,(' 60 ')6ס1עט
08
להלן התכנית בשלמותה:
-: (א)1סתאת
.( ₪108016 ,6ה18ע ,1616 ,א)1806ק6ע
-: ( ,8 ,4 ,2001806)1
.(8 ,6)4ש0סם
-: (0 ,8 ,4 ,)2621806
,1 185 1א
,(8 ,0 ,4 ,1א)621806ע2
,(8 ,4)סטסם
.(4 ,8 ,0 ,1א)601806ע2
-: (8 ,₪006)4
((156)4עט ,(' מ0ע+ 615% 006ם')166עט
.1 ,(156)8עש ,(' 60 ')166עט
תכנית 11(א)-מגדלי האנוי
את טדר העברת הדיסקיות ניתן להציג באמצעות רשימה. הנה גירסה נוספת של התכנית, שבה
המשתנה 1065 מייצג את רשימת התנועות, שעל פיה יש להעביר את הדיסקיות.
-: (5סטסא ,א)1סתהת
-( 80008 ,₪18016 ,6ת18ע ,1616 ,א)2601806
.([(8 ,006)4ם] , ,8 ,4 ,601806)1ע2
-: (0008א8 ,0 ,8 ,34 ,א)601866ע
,1-א 18 1א
-,(א ,2 ,0 ,4 ,1א)2001866
,(צ ,4 ,2 ,0 /81א)601866ע
- ( פסטס , [צ| (2 ,6)4טסם] ,א)4תססקה
(ציג את השאילתה (65ש10א,4)וסחגת-?. בתשובה נקבל את הרשימה פטעס!א. הרשימה תופיעה
על המסך ברצף. נערוך אותה באמצעות הפרוצדורה 1161:81זו. להלן התכנית בשלמותה:
-: (א) 11סתאת
. ( 106118%6)%0068עש , (68טסא ,א)1סתהת
-: ( 65ט0א ,א)1סתהת
.( 00008 ,₪180616 ,6ה18ע ,16+6 ,א)601806ע
.([(8 ,6)4ט₪00] , ,8 ,0 ,601806)1ע2
-: (68ט0א8 ,0 ,2 ,0 ,1806)8ק6ע
,1 18 1א
,(א ,8 ,0 ,4 ,1א)2001806
,(צ ,8 ,2 ,0 ,1א)2001866
. ( 68טס , [צ| (8 ,6)4טסם] ,א)6הסקקה
.([])156118%עש
-:([1|א])₪2150118%
,(א)166ע₪
תכנית 11(ב) -- -
.(166118%5)7ע
מגדלי האנוי (גירסה שניה) ראה פרק 9 - פה
229
באיור 27 הוצגו שאילתות על בסיס התכניות 11(א) ו-11(ב). באיור 28 הוצג החישוב של
השאילתה (2)סתגת. בנספתח ג מוצגת גירסה נוספת של "מגדלי האנוי", אשר נכתבה
ב-0105:ק11.
.(11)4סחה3ת -7 | . (1)4סתהּת -? |
(14616מ, 1616 )6טסת 86 ס0ם 1615 מסץ+ 415% סטסת
(16+6,:18(6 )6טסםת %תק1ץ 60 1656 מס5+ 415% סטסת
(16616,:1206ת)6טסת סם 0164616 מ0ץ+ 415% סטסת
(14616ם, 16+6 )6טסת 6 סם 1686 מסץ+ 415% שטסת
(%+12(05,16ץ)6טסת % סם 180 מסת+ 415% פטסת
( 166416ם, 1806 )6טסת 6 ססם ₪ת18ץ תסש+ 415% 6טסת
(160616ח, 1656 ) פטס 6 סם 16%6 מתסץ+ 415% סטסת
(6ת18:, 1616 )סטסת שת18ז 0ם 16%6 0₪סע+ 415% סטסת
(10616,7180%ת)6טסת %תק1ץ סם ₪14416 מ0ס5+ 415% פטסת
(166416,16%%מ)6טסת % סם ₪166416 מסץ+ 415% 6טסת
(16+6, 186 )6טסות % ססם ₪ת18ץ תסץ+ 415% שטסת
(%(18-,10616מ)6טסת %תק1ץ 0ם ₪146416 תסת+ 415% שטסת
( 018816 %+16 )6טסת 6 0 16%6 מסש+ 615% סטסת
(16+6,:1886 )6טסמ "תקגץ סם 1616 ₪סץ+ 415% שטסת
(1805ץ, 6)₪16016טסת %תק1ץ סם ₪16016 מסץ+ 415% סטסת
איור 27 - העברת הדיסקיות על-פ5י תכניות 11(א), 11(ב)
.(3001)2( -7 | :8ה61ב
2 :6811 [0]
. (18(6,016616+,1866)2,1616ק6: :6811 [1]
.| - 2 15 1259א :6811 [2]
.| - 2 15 1 :16א6 [2]
.(621866)1,1616,016416,51805ת :₪811 [2]
. (6)16+6,016616טסת :₪811 [3]
.( תסץ+] 415% 156)0008ת :₪411 [4]
.( חסע] 415% 006מ)186: :16א6 [4] תסץ] 415% פטסח
.(166)161%?₪ :6811 [4]
.(5186)1648> :16א₪ [4] 1%
.( 50 )5186 :6811 [4]
.( סם )6ם1ץט :15א6 [4] ס
. (166)016616מט :₪811 [4]
. (166)010016:> :16א6 [4] 6
:1 [4]
]4[
. (1016,016616)שטסת :₪15 [3]
. (621806)1,16%5,014616,71808: :6%16 [2]
.(5,5180%+16%)פטסת :₪811 [4]
.( ₪מסץ] 615% 8טסמ)6ם1צץש :₪811 [5]
( מסץ+ 615% בטסת)1:6:ש :15א6 [5] הסץ+ 415% פטסת
.(%)₪5156)16 :₪811 [5]
.(1686)16]6ץט :ם1א6 [5] | 1606
.( סף )186 :6811 [5]
.( סף )51886 :18א6 [5] 60
.(6ה156)18ץט :6811 [5]
.(5ה156)518ץ> :ם1א6 [5]
:1 [5]
]7[ 4
. (06ק1+,6)010416ט₪0 :15א8 [6]
. (601866)1,816616,:18(:,16%5ז :1 [5]
. (₪14616, %ה621866)2,161:,518ם :18א6 [1]
.(01)2ח8ת :15א6 [0]
81 7 ח1 ...
איור 28 - חישוב של (2)וסחג
220
- 2 ₪4.
ה 7
תרגיל 11
תאר באמצעות עץ את כל אחד מהביטויים האלה:
. ([%ם1₪ע2 ,%6+₪006]16% 6 ,תנע ,16%6 ,2001806)1 (1
, (₪18816 ,6)16%%6ט00סם] ,[(6ג1₪ע ,6)16%%טסם ] ) 6ת6סקה (2
. ((פסטסא ,[(₪188616 ,6תשנת)סטסם
; (6ם₪ דע ,₪006)1696] ,2186 ,₪16616 ,16%6 ,2001806)2 (3
. ([ (₪180616 ,%ג18₪ע)6טסם , (₪18816 ,6)16%6טסם
מבלי להריץ את התכנית, מצא את התשובה לכל אחת מהשאילתות הבאות:
. (1) נסתת -?
. (11)1סתפת -?
. (2) נסתהת -?
. (11)2סת8ת -?
מצא את התשובה לשאילתות האלה:
.(2 ,ץצ ,א ,001806)3ע -?
.(ע ,2 ,צ ,א ,01806)4ק20 -?
ו33
2. תוכנה לימודית באמצעות פרולוג -
התפתחות של בעלי-חיים
חומר רקע: פרקים 5, 7, 11, 12 (מתוך פרק זה נדרש להכיר את היחסים 6ווזשי ו-[ח).
בסעיף זה נדון בתכנית בעלת תוכן לימודי. התכנית מתארת את שלבי ההתפתחות של בעלי
חייס שוניסם ומשלבת ידע בפרולוג עם ידע בתחום *יחודי.
התכנית הינה מודולרית ונכתבת בשיטה "מלמעלה למטה" (חש40-קסו). המודול של החוקים
מכיל שני יחסים. היחס הראשון 6666 .1:6 מגדיר את נושא הדיון 64טכ0, ומתאר את השלב
הראשון של התפתחותו. היחס השני 51416 אשת שסח5 מוגדר באמצעות חוק רקורסיבי. הוא
מתאר שרשרת של שלבי ההתפתחות של בעל החיים )00[60.
את מודול החוקים הבאנו בשתי גירסאות. גירסה אי הינה הצהרתית. בגירסה בי ביצענו שינוי
פרוצדורלי באמצעות זט0.
את מודול העובדות הרכבנו מבלוקים, אשר כל אחד מהם מתאר בעל-חיים מסוים. כתיבת
העובדות נושאת אופי לימודי בשל הידע הנדרש בתחוס התפתחות של בעלי החיים. את מודול
העובדות ניתן להמשיך ולפתח, ככל שיידרש.
בעת דיון בתכנית ניתן להיעזר במילון הבא:
מפותח, בוגר, בשל 0 6תגוס 8
צפרדעי - שסע?
ראשן (צפרדע בלתי מפותח) - 06
פרפר - %שרכטט
זחל, תולעת - "0
גולם, פקעת = 00000
עובר - סעעסמס
כלבלב - צססטס
להלן התכנית בשלמותה. כדי להריצה, צריך להטעין את מודול אי ומודול ג', או לחילופין, את
מודול בי ומודול ג'.
12
+ יו
תכנית 12 -
/* 1 ם510ע06 ,165טת */
-: (0181)00160%ע0 1196
, ( 5%58%6, 85)00[160% פת1שסס
, (1>6)00160%עש
,(6)5%806ס1תעש ,(' : ')166עש
. ( 65%806א6, 5%58%66, 00160%) 5%8%61 6אסת שסם5
-: ( 65%800א6א, 56856, 00160%) 558661 6א6ת שסם5
, ( 55%866א6א, 558%6, 160% 5)00א6ת 00065
, ( %55%8%6א6א) 8026 ססת
,(%א1%6)6עש ,(' <== ')106עט
- ( לאסא, %9%8%6א6א, 00166%) 5%8%61 סאסת שסםפ
-: ( 05%866א6א, 5%8%56, 00[160%) 558561 6אסת שסת5
, ( %5%8%6א6א, 55866, 6)00160%א6ת 0065
, ( %5%866א86) 86
.1 ,(%9%580606א₪2166)6 ,(' <== ')6ס1עטש
א. התפתחות של בעלי-חיים, מודול של חוקים, גירסה אי
/* 2 תסנפע6ע , 165טת *]
-: (0162)00[160%ע0 11926
, ( 5%856, 88)00[1060% 8ת681ס
, (6)00166%ס1עש
,(' :')166עש
,( 1%6)5%8%6ע₪
. (65%806א6א, 5%8%66, 5%8662)00166% 6א6ת שסם5
-: ( 056806א6א, 55800, 558002)001665 6אסת אסת5
, ( 05%806א6א, 56806, 160% 6)00א6ת 60865
,( 05%5850א106)6עש ,(' <== ')166עט
,1 ,( 05%806א6א) 26ו₪8% %סת
; (686, 55%866א6א, 5%58%562)051066% 6אסת שסתפ
.1ת
ב. התפתחות של בעלי-חיים, מודול של חוקים, גירסה בי
3
/<* 8 */
. ( 0₪ע+ ) סענגוספם
.(89)?208,0₪₪ פת1שסס
. ( 0800016, 066, ₪סע?)6%%ת 0065
. ( 08ע?, 6800016, ₪סע? )6%%ת 65מסס
. ( צ1666221ו ) סתגוס ₪
. ( 088, צ85)00%%6221 פת1שסס
. ( ע08002011182, 088, צ1606221ו6)0א6ת פסמסס
. ( ת60000, 82 680600111, צ666221)%א6ת 65מסס
. ( צ606291ט0, ת60000, צ666221ו)6א6ת 65מסס
. ( 60₪) 126ו8%
. ( סצע0מ6, 85)808₪ פת1שסס
. ( צַסקטס, סעעסמס, 5)808א6ת 65מסס
- ( 608, צסקטוס, 5)60₪א6ת 65מסס
. ( תהם) סעו8%ת
. ( סעץסמ6, מ89)₪8 פתנ1שסס
. ( מעססשסת, סעעטמס, תהם)סאסת 65מסס
- ( צָס8ם, תעססשסת, תהם)6אסת 65מסס
- ( עסס, ע80ס, ת8ם)%א6ת ₪65סס
. ( תהם, צָסם, ת8ם)6א6ת 6065
ג. מודול של עובדות
תכנית 12 - התפתחות של בעלי-חיים, מודולים אי, בי, ג'.
נציג שאילתה ונעיין בתשובה:
. (08ע?)6161ץ0 1196 -?
שססת <== 0800016 ?== 0₪₪ :שסס+
תשובה זהה נקבל גם כאשר נציג את השאילתה (08ז))6162עס- -116.
את התכנית הזאת ניתן להסב לתחומי לימוד שונים. ניתן לתאר באמצעותה את התפתחות
התברה, התפתחות רוחנית של האדם, התפתחויות פוליטיות שונות, שלבי פיתות חומרים
בתהליכים כימיים או פיסיקליים, ועוד.
את התכנית "התפתחות של בעלי-חיים" פיתחה גילה רז, סטודנטית בקורס לפרולוג.
4
תוגיל 12
א. בהסתמך על המודולים אי ו-גי של התכנית, תאר באמצעות הפרולוג את שלבי
ההתפתחות של שילטון במדינות שונות. את היחס 6זטוגוח החלף ביחס זחסהטס
(נוכחי).
נציג שאילתות בנושא התפתחות בעלי-חיים ונעיין בתשובות (ראה איור 29). תחילה
נציג את השאילתה (א)!66ש6. .1/6. בתשובה נקבל את השרשרת ואת ההצבה תחת
א. לעומת זאת, כאשר נציג את השאילתה (א)6162ע6 ₪!!. ההצבה תחת א שמופיעה
אחרי השרשרת תחזור על עצמה מספר פעמים.
הסבר את התופעה.
. (%)6161ץ6 11/6 -7 ן
<== 6402016 ל== תַקָ : 108
| 8ַ0ז) = א
ץצ טל <== ה60600 <== ש21118ז₪306 <== מק : ע1+:6:סטס
; ץ1]זס)6טל = %
8 <== עְקְקטק ?== 10:לם6 : 608
% = 608 ;
הת <== שְסל <== לבל <== הזסלטפת <== 6010 : הגמ
הגם = %
. (%)606162 1116 -71 |
8] <== 180016 <== מק :108
| 08ז) = א
] 02ז) = א
ץ6]1םטל <== ת60600 <== :1113קז68:0 <== פָקָ :ע6:11::טפ
; ץ61]1:טל = א
; ץ1)ז6:%טל = %
; ץ11ז6)טס = <<
קַ0 <== עקקטק <=* 029:10 :608
:07 = א
; 608 = א
מב <== סל <== עֶל3ל <== תצסלטפת <== 10ץלם6 :הגח
; הגם = %
; הגח = א
; תגם = %
הגּם = א
איור 29 - תשובות לשאילתות (א%)6|61ץ6- .1:6
5
נציין, כי מערכת הפרולוג מארגנת את מודול העובדות על-פי פרוצדורות, ולא על-פי בלוקיס
(ראה איור 30).
.8ח11551 -7 |
-: (5558%6א558661)05160%,55856,86 אשת אסת5
,(656860א6)051666,5%5866,86א6ה 0₪65ס
,(655868א6א/)6ת0ם₪ ססת
((' <== ')166ץ9
((65%58%0א6א156)8ץט
. (6א6א, 555866א6א, 5%58%661)05166% םאשח שסת5
-: (%55866א568561)09[60%,5%856,86 6אשה אסת5
,(655850א5)051606,55866,86א6ה 00865
, (555856א6)86שט-המ
((' <== ')1660לט
((5563%8א6א156)8ץ₪
.1
-:(%65%856א8%8562)05[60%,5%856,%6 אשת אסת5
,(%5%856א6)05166%6,5%866,06א6ת 00₪65
((' <== ')166עט
((%55%58%0א1560)86"ט
((%5%860א₪8600:6)06 ססת
/
:.(5א6א, 65%8%6א6א,5%38562)05[665 םאפה טסת5
.1
.(85)1:08,088 8ח5081
. (022,ץ1+ז666ט85)5 5ח5621
. (5510ה85)402,6 5ה621ס
. (0510ת6,ה85)08 8ת681ס
. (08"+)6שט6הח
. (ץ87+1::טפ )6שט6ת
. ( 6)608:גו5מ
. (ח6)₪8שט6גת
. (5860016, אַאַ,ַ0++)6א6ח | 8
(016,1900ק5)1508,580א8ה 00₪68
. (צ1118ק:66:117,028,0800:טפ))אפת 00865
. (ח60000, :085601118 ץ1+:66ם טכ )= אסח . 5
. (ץ1+:666טפ ,00000 6617 טפ )6 אפת . נד
- ( עקקטק, 10+סתס, 608 )אה 6085
. (608, עקקטק, 6)602אפה 85סס
חל שסה, 0 לו ס, חמ )> אסת " 85
. ( ע8ל, תסל שפח, חמ )אפה 6085
- (0פ, 89 ,ההמ))אפתה 60085
. ( ח8ם, עֶספ , חב )את | כ
-: (070161)09166%6 11%6
((85)09[60:,5%5888 5ת681פ
,(₪2156)051668
(' :')166סט
,(₪5156)558606
. (555858א558661)091605,56856,06 םאפת טסתפ
-: (6162)0091666/ 11%6
,(55859 ,85)05[865 פת681
,(166)051805ת₪
((' :')166צט
((166)055858תש
.(%5%5888א8:8662)005[805,55856,06 מאפת שסת8
איור 30 - ארגון של הנתונים על-ידי המערכת של פרולוג
6
3. מערכת מומחה - גן החיות
חומר רקע: פרקים 5, 7 8, 11, 12.
בסעיף זה נציג מערכת מומחה לימודית בשם "גו התיות". מערכת מומחה הינה תכנית מחשב
לפתרון בעיות בתחום מסוים, אשר:
* כוללת ידע רב של מומחה בתתום זה,
* נעזרת באסטרטגיות של המומחה כדי לפתור בעיות בתחום זה,
* הינה הידברותית (אינטראקטיבית), משמע מתחקרת את המשתמש ומסבירה את
שיקוליה לפי בקשתו.
מרכיב חשוב של. מערכת מומחה הינו מסד דע (84%6 6086|וסח), המכיל ידע של מומחה
בתחוםש מומחיותו. מרכיב חשוב נוסף הינו מנגנון ההסקה (6תוקַחם 66ח6ז6ח1), אשר באמצעותו
המערכת מגיעה למסקנות תוך שימוש במסד ידע ועל פי תיחקור של המשתמש. המערכת מבצעת
את ההידברות עם המשתמש באמצעות. מישק המשתמש (61806וח1 5'ז)). אלה הם
המרכיביס הבסיסיים של מערכת מומחה. במערכות מומחה ספציפיות ישנם מרכיבים נוספים,
בהתאם למבנה המערכת ובהתאם לדרישות המשתמש.
מערכת מומחה נבנית על ידי צוות. נציין שלושה מחברי הצוות:
* המומחה, שאת מומחיותו המערכת אמורה להנציח.
+ מהנדס ידע, אשר מעצב באופן פורמלי נאות את הידע של המומחה.
* המשתמש, שאת דרישותיו המערכת אמורה לספק.
איור 31 - מבנה של מערכת מומחה
207
נבנה עתה מערכת מומחה לזיהוי חיות על פי סימנים שונים. המומחה שלנו הוא רובוט נחמד
בשס רובי, הנמצא בספר 1101186066 |471/116/8 של חסופחו/ו. בתור מהנדסי ידע נלהבים,
נעסוק בנצחת ידע של רובי באמצעות מערכת מומחה. תחילה נקשיב למונולוג (חד-שיח) של
רובי, ומכיון שהוא דובר אנגלית, ניעזר במילון הבא:
חיה האוכלת בשר - 6שסטתיס
יונק = 1 הת
שיניים בולטות - ת66606 666ת01סק
טפר, ציפורן - 010
צבע צהוב-חום - עס601 עתש8>
כתמים כהים - 5 68
להלן המונולוג של רובי:
וטס זס) !701060 /
0 10 8תוח!סח 996 1 - 60614 8 11'5 ]ו זס6חסאי ] ,|פוחוחה 118 עץ)ו1ת606ו 10 ותו [ .506 1.60'8
זז ה [ - 6זסט!חז08 8 15 11 191 עזו|ו0ו55סק 6ח1 סותו פתואססן עס 51871 |['1 אחוהו [ 50 .ו6ץ הס
618 06 10 וח566 1'ה4065 11 - זובה 0% 18 81ה1 .פ6ץ - |5זו) |[הותוחפות 8 15 | ]! 566 10 066%
8 .>ש6]3 .ח1601 166חהוסק 85ת 11 .פ6ץ .חס זטס - (6זסטותז08 8 18 11 ]ו [[16 1'ח68 [ 50 שהוהועהב
סח 68 8 118 - 1 85 6זס תא שסת - 1ח8וז ||8 6זסטוחז08 8 15 11 50 ,665 שחווהוסק-6זהאס]
!666180 8 06 51טוח 11 צ|6זט5 - 52015 681% 6ח8 זס!60 ְחצו18 8 345 11 1181 566 8150 ][ סחה
,2 .סק .1161118606 [4711/1018 הסופהו/
4 ,6516\-ח00150//
כדי להבין את האסטרטגיה שעל פיה רובי מזהה את החיה, נעיין בשרשרת שיקוליו. אליבא
דרובי, החיה היא צייטה אם היא יונק, וגם אוכלת בשר, וגם יש לה סימניס מיוחדים כגון צבע
צהוב-חום וכתמים כהים. היא יונק אם יש לה שערות. היא אוכלת בשר, אם יש לה ציפורנייס
חדות ועיניים ושינייס בולטות. הנה שרשרת שיקוליו של רובי:
( [ממהו <==) 8 27 ס1 פהת
בב 17 ס1 פהת
5+ 17 סְס1 85ת
(10026ת082 <==) 8+ 7 16 פהת
- ?7 רהץקְַתש68 16 פ5הת
(066%81 <==) 5 17 ששְ1 פפת
איור 32 - שרשרת שיקוליו של רובי
רובי מארגן את שיקוליו באמצעות שיטה, המכונה בשם שרשרת הוכחה לאחור (86%0816ט
הַחוחוּהּה6). הוא מציג לעצמו את המטרה: צ'יטה, ולאחר מכן בודק אם החיה שמולו תואמת
לתאור של צייטה. נציג את מערכת שיקוליו בצורת עצ:
8
---ש
0
לי
58 680% עס601 עתש68 6נ- 4
68 018068 66סת1סק
0-5 ת666%
איור 33 - הצגת שיקוליו של רובי באמצעות ע
ענהת
אחרי כמה שיחות התברר לנו, כי את הכללים של רובי ניתן להציג באמצעות הביטויים שצורתם
"אם...אז...". לכן סוכם, כי שפת הפרולוג היא המתאימה ביותר כדי להציג את הידע של רובי.
על כן כתבנו בפרולוג את מסד הידע ואת מישק המשתמש. המערכת של פרולוג סיפקה את
מנגנון ההסקה (אשר הוא כידוע, אחד מנכסיה הבנויים). בדרך זו השלמנו בנייה של מערכת
מומחה לזיהוי חיות. להלן המערכת:
תכנית 13 -
א מישק המשתמש: כניסה למערכת, תישאול המשתמש, ניהול דינמי של הנתונים.
/* א * א א א א* א א א* א א א א א א א א א א א א א א א א א א א */
/א
7 מערכת מומחה - גן החיות
*/
/*
/*
/*
/* * א א א א א א א א א א א א א א א א א א א א אא א א א א א* */
/* כניסה למערכת: הזמנת המומחה נעשית באמצעות השאילתה 200 -? */
,1ת , ('200 70 05/0088 )166עשט
,1ת,('6ת8 16סססת 15 שמת עַא')166עש
,('81שנתה8 18ת6 +61ת160 60 טסץ ק61ת 5811 166)'1עש
,1ת,( 'תס561סטף ץש שת1עסשפת8 תסתש2166)'0ש,1ה,1ת
,1ת,1ת,('סת ע0 69ץ 6קעט 16856ק')166עש
,1 1המנתה
,(א)166תש,(' 15 81ש1תה8 מטסץ, את1ת6 166)'1תש
,('סטת61ת60 60 סתהא טסץ /1,92166)'1ת
,1ת,('.01080-28068-? :עעסט4 16856ק ')166עט
11',(;' 200 ₪171 כגםן 00 פא ')166תעש
,('אסמא ססת 80 1 [0566/ת60 שה 166)'1עע
,1ה,('.18 [8שגת8 עטסץ סתא ' )166עט
.8 616085,(' ?20218 מא א45 70 עאגא ט00צ 166)'20עעט
200:-
200:-
9
/* * א א א א א א א א א א א א א א א א א א אא אא אא א א * */
/* ניהול דינמי של הנתונים: באמצעות היחס 28608 01682 */
/* נמחקות תשובות של המשתמש והמערכת מוכנה לדו-שיח חדש */
-:78008 01682
.1, (2, עסשפת8 65ע)ת800115
-:8008/ 01688
. 811?, (2, עסשפתה סת)ת80115
01682 )8005:-
('1060061-ק0ס 6ת6 ע66ת6 60 405 66 6קע6 166)'216856עט
.( )686ע
/* * א א* א אא א א א א א א א א א א א א א א א א א א א א א א א* */
/* תיעאול המשתמש: לאחר עיון במסר הידע המערכת מחליטה */
/* מה, ומתי לעאול */
)ססטפתה פסץ -: (ץ,א)6ט51%1סק
.(צ,א)אפה8,((+ץ,א)עסשפתה8 סת)6סת -: (צ,א)6ט5161סק
.,(,א)תסטפת8 סת -: (+,א)6ט861קסת
.( צ,א)85%,((צ,א)עסטפתה8 68צ)ססם -: (צ,א)6ט1סהקסת
-:(צ, א)859%
,('?')106ק2 ,(צ)166ע2 ,(' 16 ')6סב1עש ,(א)6ס1עש
,גת
, ( ע6שפם ) 2686
.(עסטפת8 ,ץצ ,א)6מסק65ע2
/ אא * ג א אא אאא א א א א א א א א א א א א א א א א א א ת* */
/* ניהול דינמי של הנתונים: את תשובות המשתמש המערכת */
/* מוסיפה למסר הידעי */
-:(65ץ ,+ ,א)8ם0סק69ע
.((צ ,א)עסשפתה 68ץ)8550208
-:(סם ,צ ,א)6תסק65ץ
,((צ ,א)תסחפתה8 סת)8550268
. 1811
1210
ב מסד ידע: שרשרת שיקוליו של רובי מוצגת באמצעות חוקיס של פרולוג.
/ אא * אא א א א א א א א א א א א א א א א א א א א א א א א א */
הידע של רובי מוצג באמצעות חוקים של פרולוג
6
-:( ת15)0(6668 [1₪8תה
, ( [18)₪8₪₪8 16
,(6עסט1תת15)68 16
,((ע6010 עתאםס, 85ת)20515106
. ( 50005 6082%, 89ת)0516106
-:(2ע15)%186 1₪81ת8
,( [₪8מ15)₪8 16
,( 10026ת15)682 16
,(עס001 עתאהס, 515106)085סק
. ( 68ק5%521 186%, 6)85ש5161ס
-:(15)8128)16 [1₪8ח8
, ( 1806נוקתט)18 16
,(60%ת 8ת10, 2051%106)088
,(( 1085 8ה0ס1,פַהת)6ע051%1
- ( 52068 082%, 6)088ש051%1ק
-:(15)20028 1₪81ת8
,(166ַפַתט)15 16
. ( 05ק5621 0180%, 20516106)188
-:(ת15)055216 1₪81תה
,(18)01206 16
, (צ1), 6886106)8008ת
,(אס6ת אַת10, 85ת)516106סק
,(1689 קַח85,10ת)081%106ק
.(עס601 2166 6ת8 0186%, 85ת)6ש05151ק
-:(ת1טשתסק)15 1₪81חה
,(1260ס)15 16
,((צ11, 86106)6069קסת
,(51%5106)6005,591₪ס
.( עס001 ₪166 6חתה 85,0180%ה)15106פסק
-:(15)819862055 81ש1תם
,(198פ)18 16
- (₪611 צ1], 515106)0005ס
341
-:( ₪81ע15)₪8 106
.(ש1ה8ת, 85ת)6ט51%10סק
-:( [8ממהום)15 16
.(₪11% 516106)8008,₪106סק
16 18)9126(:-
. ( 628ת68%+, 858) 6106 51סש
-:(15)0126 1%
, (ץ1)+, 6)8008ש61 051
.( 6₪₪5 /0516106)8009,18ש
-:( 10026ת19)082 106
.(₪086 0510106)8065,086סק
-:( 10026תע18)082 16
,( 6660 60ס6ת001, 85ת)0516106סקש
, ( 5ש6018, 85ת) 0516196
.( 08ע₪ 0820ע10, 89ת)0510106ק
-:( 1860נוקתט)15 1%6
, ( [15)₪8₪₪8 16
. ( פסטססת, פַת) 51%6106סק
-:( 11806ופַח)15 16
, ( [15)₪8₪₪8 16
.(0006 ש6גת6, 0816106)0069ש
תכנית 13 - מערכת מומחה לזיהוי-חיות:
א. מישק המשתמש
ב. מסד ידע
את המערכת חילקנו לשני מודולים. הפרוצדורה 200 של המודול הראשון מזמינה את המטרה
15)8( |8וחוחג. מתוך המודול השני, המכיל את הידע של רובי, מתבצעת ההצבה 6006188 תחת
המשתנה א. עתה המערכת בודקת, אם החיה, אשר אותה רואה המשתמש, היא אכן צ'ייטה.
כאשר המערכת מגיעה לאחת המטרות (צ, א)6צו1ופס או (צ, א)6צו6281ח, היא פונה למשתמש
כדי להשלים בעזרתו את המידע החסר. לאחר קבלת המידע, המערכת חוזרת למסד הידע. את
הנאמר לעיל תיארנו באמצעות איור 34:
12
עספט
|
סס; | |
ר---74- 70
|פרוצרורה: | |
| סס? |
ז |
ן
(15)8 [השנת8 | |
0
ב-----------1] מסד ידע |
1
|
| (צ,א)51%106סק |
| (צ,%)6880106ת |
2 | פרוצדורות: |
| עובדות: | | 58 61085 |
| (צ,8002)8ת8 65ע |ך------ 68 |
| (צ,א)עסשפת8 סם | | 6 |
5% |
| 4 |
8 ו
איור 34 - הקשרים בין המודולים של המערכת
המערכת פועלת באופן הבא: היא מגדירה את המטרה (ה15)0066)8- -|4וחוחג ובודקת את
הנתונים על מנת לאמת או להכחיש את המטרה הזאת. שיטה או מכונה בשם
8וח870-681 86% או ח6צוז8081-6. שפת הפרולוג תומכת בשיטה זו.
הבה נשוחח עם רובי בנושא זיהוי החיות. את תוצאות השיחה ריכזנו באיור 35.
נציין, כי רובי הוא מומחה אמיץ, שכן הוא מכיר את מגבלות הידע שלו.
תרגיל
א
|33
הצג את השאילתה 0ס2-?. ענה בתיוב רק על שאלותיה של המערכת, ששייכות לשרשרת
שיקוליו של רובי (איוריס 32 ו-33). מה תהיה החלטת המערכת בעניין הזיהוי?!
ציין את העובדות ואת החוקים של מערכת מומחה, אשר על פיהם התקבלה התשובה
הנ"ל.
בדוק את עקביות השאלות שהמערכת מפנה אל המשתמש. האם יש מקום לשיפורים!
נמק ושפר.
3
ץ
.0 -7 |
0 0 00₪,קא
4 16לפסת 15 שמהּה עא
1מנגתג פגה" צץ+51ה166 סם טסץ ק61ת [1ת5 1
ת1069610 עֶת קת1:סטפחהה הספת
סת עס 65ץ 6קץ5 216856
7 1 פהת
/
.סח |
1 6ט21 15 6068
.פע |
27 685 15 6068
.סח |
7 6מפסתנ1סק 15 פאת
.סח |
17 ם1 פגת
.פע |
17 1008 16 פת
.5 |
17 100 15 פאת
.5 |
17 63/86 ם1 פב
.ץ |
6 15 [הת1ת8 מטסץ, אחתגתם 1
7-61688 0. :קמסטף 16856ק 6טת51תסם ₪0 סתהט טסע +1
0 תח פגמאה 60 פאג
8
.5 מ:0108 -7 |
1 שת תסשסת6 0ם 6406 שת6 סקץ6 216856
8
.5 -7 |
0 20 1/00₪מא
4ח3 00516 15 שתהח עא
1 185תם 7ץ+%1ה146 ס=ם טסץ ק61ת 811ת(5 ך
תס65%1ט עת קת1:בטפחה תפחח%
סח חס פשץ שקץ" 168586ק
17 16 פהת
.סח |
64068 15 216 7
.סח |
17 ם1 פה
.סח |
17 ףם1 6088
.סח |
.1 81ת1תה8 מטסץ סת> טסת% פסת 40 1 ![%566ת60 תה 1
.1 פמפת מפסת6 סם 405 6ה6 6קְץם 216856 7א6041 חא 35% סד צאגאח טסצ ספ
איור 35 - שיחה עם רובי
44
[
4. קונכ*ה ([5[61) של מערכת מומחה
חומר רקע: פרקים 5, 7 8, 9, 10, 11, 12.
בעת הפעלת מערכת מומחה של סעיף 13 ראינו, כי הפרוצדורות של המודול הראשון, להוציא
את הפרוצדורה 200, כלל לא היו תלויות במודול השני. המודול השני הכיל ידע ספציפי בנושא
זיהוי החיות, והמודול הראשון ניהל את הידע הזה מבלי להיות תלוי בו. משמעות הדבר היא,
כי המודול הזה מסוגל לנהל כל מסד ידע, בעל מבנה נתוניס התואס את המבנה של המודול,
ועל כן ניתן להיעזר בו לבניית מערכת מומחה נוספת.
את הנאמר לעיל ניתן גם לתאר גס בדרך אחרת: ניקת מערכת מומחה, נוציא ממנה את מסד
הידע ונשאזיר את המודולים ה"מטפלים" בתהליך ההסקה ובהידברות עם המשתמש. מודולים
אלו מכונים בשם קונכיה של מערכת מומחה 5161 1ח50516 +ז6קא6). אם נצרף לקונכיה מסד
ידע בתחוס ספציפי, אשר מבנה הנתונים שלו הותאס למבנה הקונכיה, נקבל מערכת מומחה
בתחום זה.
עתה נציג לפניכס קונכיית מערכת מומחה, העונה על השאלות עְהאי (מדוע) ו-אסם (איך) של
המשתמש. לשאלות אלו המשתמש נזקק, כאשר הוא רוצה לקבל נימוק והסבר לשיקולי
המערכת.
לנימוקים ולהסברים של המערכת ישנם שני צדדים. הצד האחד הינו הצד הסמנטי. מבחינה
סמנטית, המערכת "פורשת" בפני המשתמש את תהליך ההסקה הלוגית האופייני לה. לשם כך
היא נעזרת בביטוים, כגון: "אני יודע ש-..", או "אתה אמרת לי ש-..", או "אם..אז..", או "כדי
להסיק כי.., עלי לדעת את...", וכן הלאה. זהו חלק של תהליך הידברות בין המשתמש לבין
המערכת. על המשתמש, השייך לצוות כותבי המערכת (מומחה, מהנדס-ידע, משתמש), חלה חובה
להעריך את איכות ההסברים: האם הם סבירים, ברורים, מלאים וכדומה.
הצד האחר של הסברי המערכת הינו הצד הטכני. ברמה טכנית המערכת מציגה חוק מסוים
או אוסף של חוקים (תלוי במבנה הקונכיה). חוק זה נדרש על מנת להמשיך בביצוע של תהליך
החישוב וכדי להציגו, יש לספק גישה למנגנון החישובי.
הקונכיה, שאותה נציג, נכתבה ב-1-2801.06א1500ו. המפרש (זטושזכוטוחו) של הגירסה
הזאת נכתב בפרולוג גם הוא. המפרש הינו תכנית מחשב מיוחדת, אשר תפקידה לתרגס לשפת
המכונה תכנית אחרת שנכתבה בשפה עילית. התרגוס והביצוע משולבים על ידי המפרש זה
בזה, שכן הוא מתרגם הוראה ומיד מבצע אותה. המפרש של שפה עילית, אשר נכתב בשפה
עצמה, מכונה בשס מפרש-על (ז616זקז16חו8ז6וח). לפיכך, המפרש של 06 001מק-1א1!500צו הינו
מפרש-על. באמצעותו מבצעים תכנות-על: העובדות, החוקים והשאילתות של תכנית בפרולוג
הינס ארגומנטים (ניתן גם לומר: קלט) של מפרש-על. המפרש-על של פרולוג מיישם את המודל
החישובי של תכנית לוגית באמצעות החיפוש לעומק והוא מהווה חלק של הקונכיה שאותה
נציג: הוא "אחראי" על תהליך ההסקה. בקונכיה שלהלן נראה שתי גירסות של מפרש-על.
ההבדל ביניהן הינו בהצגת החוקיס של התכנית המתורגמת, להלן הקונכיה.
5
2466
/* תכנית 14 - * * * א א א א א א א א א א א א א א א א א א א */
/* "/
/* קונכיה של מערכת מומחה */
/* */
/ אאא אאא אאא אאא איאואיא אואיא אואיא אאא א ואו אאא אאא אאא איאיא אא איאיאיאיא אא אי אא אאא אאא
/* מפרש-על של פרולוג: הפרוצדורה 80196 פונה לרצולבנטה צ806 של */
/* המטרה 0081 ומבצעת את החיפוש לעומק */
/* באמצעות הרקורסיה */
.([],6)0081ט8010 -: (6)0081ט8010
. ( 168טת, 6גוע6 )50196
-: (165ט, (00812, 00811) )80196
. ( 168טה, 6)00812ט5010, ( 168ט, 00811) 50196
-: (1698טה, 80106))2081
, ( צ800, 0081) 018056
- ( [ 168ט | (צ808, 16)0081שת] , ע,806) 50106
-: ( 165ט₪, 0081) 80106
, ( [66660)008ת 6808
, ( 0081) תשסח% 6סת
, ( ע5₪6ת4, 898%)0081
. ( 168טת, פ6ש8ת2, 0081) 6ה0ק69ע
א. מנגנון ההסקה: מפרש-על של פרולוג
איאיאיאיאיאיאיאיאואיאוא אא איאיאיאיאיאואואואיאי אא אא איאואואואיאי אאא אאא איאיאוא איאיאיאיאיאיאיאר א א אאא
/* הצגת עאלות: הפיסקה האחרונה של 6ט801 מפנה את התכנית למודול */
/* ב', המבצע את תיעאול המשתמש וניהול הנתונים */
-: ( עסשפת, 88%)0081
,(166)0081עש
,('?')166עש
.( ע%6פ5ת6886)4ע2
-: ( 1658גות, 65ץ, ג008) 6ח69800ע
. ( 8398626)0081
-: ( 168טשת, סת, 0081) 8ת6900ע
,((0081)ת6שפת8 סת)8580626
.7811
-: ([686ת| 16טת] , עָתש, 0081) 6תסקפס
,(16ש16)3ט2 618018
,( עסשפחא, 898%)0081
- ( 686, 4862 , 0081) מס 698
-: ([], צתש, 680006)0081ע
,('ת610את18קא6 6עסם סא')166עש
,1ת
,(עסטפת4, 88%)0081
- ( 108טת, ע996ח4, 0081) 6ת0ק65ע
.1 -: (0081)תשסח
- ( [008)פ6שפת8 סת -: ( 0081)תשסת)!
ב. מישק המשתמש: הצגת שאלות וניהול דינמי של נתונים.
ד.
5% 3ה4התאתאה%5והפפפ'''''ו'צצצרו'ו.ההכהו1,
/* הצגת הסבר: נזכירכם, כי מ610סתט[תס6 הינו הכינוי */
/* של הקשר פא4 */
-: ((,א)16ש16)2טע 615018
,(' 166)'18עש
, ( צ)ת6610תט[ת60 166עש
,((' אמזו')6ס1עט
,(א)156עש
1ת
-: ((+,א))ת6610תט[תסס 6ס1עט
ו
,(%)156ת₪
,(' פא ')166עש
. ( צ) ת6610תט[ת60 166עש
-: (א%)ת610סתט[תסס 166עש
, (%)166עש
. 1ת
מישק המשתמש: הצגת הסבר.
/ אאא אאא אאא אא א איאיא א א אאא אי אי אאא אאא איאי אי אואיאי א אי אא אא אאא
/* המפרש-על: מבנה נתונים שונה מזה עבמודול א' */
. ( 06ע6, 206 )501061
-: ((20012, 2200+1), (00812, 00811) ) 501061
, (00+1ע, 00811) 501061
. (2200+2, 00812) 801061
-: ((2200%-:501061)0081,)0081
, ( צַ806, 0081)) 0181156
. (2000ת, 808 ) 501061
מנגנון ההסקה: מפרש-על של פרולוג, גירסה נוספת.
27
108
/ %%% אא אאא אאא ייא אאא א אאואיאיאיאואיאיא אאא איאיא אאא אא א אואיאיאי אאא
/* דוגמה נוספת של תכנות-על: הקלט של הפרוצדורות שלהלן הינו */
/* המטרה 0081, הרזולבנטה /+ססספק | */
/* והעובדה 866ק */
ה.
-: ((00%2ע2ק,2266))220021ע06ת1
,(062026%)2200+1ה1
.(2266)250002ע662ת1
-: (008ע66)22עקע6סת1
,(1806)2001,7806
,1ת
,(' דד אסאא 166)'1עט
,(166)7806תט
,('23149050 צא א1 צסגת 4 15 ')166עט
.גת
-: (00%ע6622266)22ת1
, (1)סספץ, צ806, 11680, 2001 )116ע
,1ת
, ( 116860) 66 1עש
,(' שעט0ת מו 0א051 סמטסתק 15 ')166תט
,גת
, ( ( ע000, 11680) 2010 )216 615018
.(66202866)2200/1ת1
-(806ת, (6ע6-:7806))2866
-: ( 007ע, צ808, 0081, (2סספם-: 16))0081טע
, 6006= 0ספק
. ( צ800, )2200) צ06 0%60806
-: ((2ע1,806ע806), (2/סספם, 220011))עץ006 866ע0א0
,1
, (1ע800, 00+1פת) צ006 62806א0
. (2ע806, 220012) צ06 62866א6
. (6081, (08סע?-:0081))עץ006 866ע62א0
הצגה של תהליך ההסקה: דוגמה נוספת של תכנות-על.
| אאא אאאאוא אאא אאיאי אאא אאואיאיא אאיאי א אואואיא א ואו איא אאיאיאאואואואואיא אאואואי אא
*/
*/
.
ההוראה "הוכח והצג": השאילתה (0081)אסת -? מציגה למעתמש את */
ההוכחה */
-: (6081)אסת
, (/200ק,61)0081ט8010
. (004ע026%)22ת66ה1
הזמנת ההצגה: ההוראה "הוכת והצג".
תכנית 14 - קונכיה של מערכת מומחה, מודולים אי-וי
חומר נוסף בנושא בניית מערכת מומחה על בסיס מפרש-על של פרולוג, ניתן למצוא ב[1983
פַחו[ז516], ב-[1986 ,סזוק39ת5 6 פתו!ז516] וב-[1986 .551ס8].
במאמר של [1986 ,010618 .8 6וטוחט!20)] מתוארת מערכת מומחה, שנבנתה בפרולוג. מערכת זו
מייעצת לסטודנטים בהכנת תכנית הלימודים.
] אאא%%%%4%א53%4%%%%%] ] אמאאאא%%%%%א%א5]
/* *]
/* 8 *ן -: 2
/* / */
/* / *] .4 -: 5 .
]* 5-06 *ן
/א* / *ן . (66866)6ה 4868
/* / *] . (66660)4ח 6868
/* 6 4 *] . (66064)8ה 68%8
א */
| א%%%%%%א%%א%4אהאאאה] [ אאאאאאה>*א.א*]
.(50106)8 -7 |
. עת%?6
58
. (8)שסת -7 |
אצטת מו 0א051 פפטסתץ 15 ב
6 פאא 5 ץז
4 אעווך
שת א סא1פט פפטסת? 15 פס
₪ פאא 4 קד
פ אעזו
צ אז 01גץ ג 15 4 זגווד אסאא 1
פתפדת צע אז 07תע 4 15 6 צגאדך אסוא 1
פפתדאת צא אך דסאל ג 15 6 דאאד אסאא 1
איור 36 - הדגמה של פעולת הקונכיה
29
]| אאאאאת 1 ₪ תת5דטת תטסצ אאאאאאה]
/* ., א6א6-51א51 0780 1 - */]/
-: 8601508
((%ת6ת65%טה1 011 666ת6)600₪26ט501
,( '666ת66076: ץ1ת0צ85 15 מתסתספשטת1 166)'011חש
,('"סת ₪356 ,10056 טסץ 56פץ1%6)'13ת%,1ת
(,('טסץ 6טע56 סם עכק156)']13:%,1ת
.1 (צָ63 106ת ב סטב1,9:166)'81ת
-: 8601560
()הסתס5סטת1 50114 066ת6):600826ט501
(('06605865,1,1983 15 צ156)'1063חש
, ( 'אזאא24-184101] עטפ 6טסת5 טסץ אתגת6 1,9:156)'1ת
.1,, ('טסץ 6ט:56 0ם עְקְכַבּת 6ת8 ,106% 166)'0006ת1,92ת
-: 8001568
, ()הסמהףפ6טה1 2ט6בט 0666ת6(ת6):600₪ש501
,(('%4202 סם עץ1+ ,ת8610שט 8 6א15860'13%:ט
(('15%ת600 8 08+ 21806 66גת 1,9:166)'4ת
.1, ( 286% 6086 ססת 40 16858ק 6ת1,9:166)'4ת
-: ע800156
((6ה6םמז65טה1 581868 8666ה6):60086ט501
(('שאסא 59001 ,שאס₪')156:ח,1ת
(('254110 1,7:156)'5007ת
.1 ('פט 0:866+ ססת 40 16856ק 6ת156)'1ת1,9ת
-: 6תסת65%טת1 011 666ת6ת600₪ע
שסחסה 16881
.הפוה 06ת₪010:8 א15%ץ
-: 6ת655₪6טת1 50116 686ת600₪06ץ
,קֶסחסח 16881
.10% 501628806 185%:
-: 6תסת65טת1 2ט6בט 6066ת600780ץ
,ץסתסח 1116281
.ה18ה 08ה6₪016:8 15%ץ
-: מםתפת65%טת1 281868 0466ת600826ק
,ץסתסת 1116881
.0 66תה016:8ם 15%ץ
-: ת118 086ת501058 415%ץ
.561 ה₪11110 תהם 6צסמ ע110₪1841%
-: שס1 08ת018698 18%ץ
.(6861ת5 ה₪11110 תבת: סצסת ע1100161%5)זסשפה סת
-: עסחסת 1116881
. (עפחס₪ 16881)ז6ט5ח8 סת
. (עסהסוח 66460)16281ה 4358
. (506861 ה₪11110 ההת שחסםת ע66066)11001016ת 4:8
איור 37 - דוגמה של מסד ידע, התואס את הקונכיה
0
]*** אא00501101 תטסצ ***]
-: (פַת5510 ,605865108)585[865
,(ע186 ,51865ט5)ה1:10ה4611
- (ע5166:,085%5ט5)ה00668510
-: (מט₪641 ,60526:165)505[60%
((צ186 ,5[605ט5)ה1510ה4611
. (8ה1קקסה5 ,605[פט5)ח0668510
-: (מט₪661 ,5[1666ט60526:165)5
,(צ136 פַהטסץ ,665[לט5)ה1:10ה86)1
.(ע855ק ,ש160פט5)ה0068510
-: (411 85 םסת ,605₪65165)585[805
,(עצ136 הקַתטסץ ,ז5[60ט5)ה1:10ה46]1
.(15הת66 ,665[פט5)ת0608510
. ((ע186 ,5[605ט5)ת1510ה66664)66/1ת 8818
. ((1867 קהטסץ ,5[66%ט5)הס161ה66460)66/1ה 68%8
.((ע5ז8ק ,51661ט5)ה0066)0668510ה 48%8
.((קַה1קק0ת5 ,5[661ט5)ה6066)0003510ה 4868
.((15הת6) ,5[665ט5)ה66666)0668510ה 6:8
0 תס1פ5ססט :6:6זקז6זה1 20100 (מ:)₪15602
1 |,(פַץ08א2)4ז6פ4.0014 8 53158 .א (6) פת18זעְק00
(0.5.8) 21655 411 (60) 1805צץק00
5
.['.3:605066'+ ,'טסת:ב3'+ ,'עהצ:ג'+] -7 |
46 ץעחתא:8
64 שסת:8
8:005266. "6
8
. ((80₪1,8ה)6)60506:165ש501 -1 |
. 0ח7(7ץ136, 1ַהסב3ה)ה1610ה66/1
. עה7%(ץ186 קתטסץ, והסה)הס161ה66)1
(עסזגק ומסהת)ה0663510 פא (1367 קַתטסץ, 1מסגה)הס1:1ה46/1 1
(מט601ח, סבה )60506:165 אקווד
.5( מפהנטסץ, 1מסבה)ת1:10ה46]1
.סה7(ץ6ז3ק, 1מסה)ת0668510
)0668510
1 6ג סח = א
5
.((811 86 0%ה,801ה)6:165מ605)טסת -7 |
מוטת פד 05186 פמטסת? 15 (811 86 שסה, 1ַמסהה)005₪0:165
(18תת6: וַמסת)ה0668510 0 (1867 קַתטסץ, 1שסהה)ה1510ה46+1 קך
(311 85 סה,801ה)60526:165 אקווך
מפגפאדות צא אז ד0? ( 15 (ש134 קַהטסץ, 1מסבה)הס1ם1ה4611 עגווך שסאא ך
מפאפדאם צן אז 07א? 15 (15תת6:, ומסה)ה0668510 שגד אסאא 1
איור 38 - מערכת מומחה 6051611680 זטסצ:
הקובף )605016 מכיל את מסד הידע.
הקוב חא מכיל את המודולים א ב ג' של הקונכיה.
הקוב אסון מכיל את המודולים ד; ה ו
1
תרגיל 14
א. לפניך מסד ידע, המכונה "רפואה שלימה".
2
-:08%6 60 שגוע6
, ( 8868801 ) 50106
,( '8068₪01 68%6 18טסת5 טסצ')66בעש
. [1ת
-:%58%6 60 שגות
, ( 58106%גום) 50106
,( '*55166טת %8%6 186ש0ג5 גסצע')166עש
. [ת
-:68%6 60 שַטת6
,('טסץ ע0+ שתנהססת שטבת רְ')166עשט
.1ת
. 20002, 168068016 -: 80801
. 6פ5סת עתתוץ, 6ת168080 -: %א85166נות
. ( 16868016) 66866 6868
. ( ע2000 )66000 6868
( 56סת עתתוע )66806 8808
הפעל את התכנית 14 והצג את השאילתה:
.6 סס ש8ַג60 -?
אם המערכת המליצה על נטילת אקמול, הצג שאילתה נוספת:
. ( 808101 ) שסם -?
עקוב באמצעות ה-1:8966 אחרי חישוב השאילתות.
(את מסד הידע 1466 -10 אַט07 כתב נועם נוימן, סטודנט בקורס לפרולוג)
כתוב מסד ידע בתחום מומחיותך.
5. תכננות יישוםס - תרגול
בסעיף זה נציג אוסף שאלות לתרגול עצמי. לא נציין מהו חומר הרקע עבור כל שאלה ושאלה.
אנו מצפיסם שהקורא יקבע זאת בעצמו כחלק של התרגול.
עבודה מהנה !
שאלה 1
מפתח התכנית "סיפור מן החייס בשפת פרולוג" החליט לשנות את מבנה העובדות:
. ([ 6ת56111₪6ת1, ע1פת 6ת10ס, 08061001ם, צ186 ] , 1605)5828 505
. ([ע81ת 6ת10ם, 5811, 186 ] , ע1600)6566 5
. ([ 1 680% , 180 ] , )טע ) 1665 ספ
. ([ %ת6111₪6סת1, 188 ] , 180%)81106 פופ
. ([ש1הת 6מס1ס,8095510, ץ1660218,]186ט)605[סט5
". ([ %811, ק₪0551, צ188 ] , 8621618ק)166% ספ
. ([ע81ת 6ת10ט, 6811, 101 68061ס, ק0551, צ180] , 166%)112 50
. ([ 6מ66111₪6ת1, 612₪1ט68ס, 186 ] , צ8+81ת) 166% סנו
. (([%מ66111₪6ת1, 6811, ק0551 ] , צֶצ160%)8 סט5
הכללים של אדון צירלס לא השתנו. שנה את חוקי הפרולוג, כדי לבטא את הכללים של
צירלס בהתאם למבנה הנתונים החדש.
כתוב חוק של פרולוג, המגדיר זוגות נשים, אשר תכונותיהן הינן קבוצות זרות (כלומר, נשים
שונות לחלוטין).
כתוב חוק של פרולוג, המתאר באמצעות הרשימה :1.18 את הנשים של התכנית, אשר אינן
אינטליגנטיות.
שאלה 2
עיין בתכנית "חד-גדיא" וענה על השאלות האלה:
א.
כתוב חוק, המגדיר את היחס שרשרתן)- עצסו,. שרשרת,. עצס?), אשר בו המשתנה
-- שרשרת מסמן את רשימת העצמים, הקושרים בין עצם1 לבין עצס?.
כתוב חוק, המגדיר את היחס מעשים. של)ן- עצם, מעשים), אשר בו המשתנה - מעשים
מסמן את רשימת המעשים, שמבצע העצם - עצם.
כתוב חוק המגדיר את היחס אורך(- רשימה,. אורך), אשר בו המשתנה --אורך מבטא את
מספר האיברים ברשימה ושימה. הראה באמצעותו, כי רשימת מעשיו של
הקדוש-ברוך-הוא היא ארוכה מכולן.
3
שאלה 3
לפניך הגירסה המורכבת של תכנית ץ[ווח38= 6ח'ך (ראה פרק 5
הורה(אברהם, יצחק). . (18886 ,מ8ת8028)%ת6ע8ק
הורה(יצחק, יעקב). . (פ1800 ,158806)%ת6ע82ק
הורה(יעקב, ראובן). . (ח6סט6ע ,6)18000ת6עהקש
הורה(אברהם, ישמעאל). . ( [15(₪86 ,מ8ת6)8028תסעהק
הורה(יצחק, עשיו). . (ט690 ,6)158806ת6עהקש
הורה( יעקב, עמעון). . (תס6שצת8 ,6)18000תסעהק
הורה(שרה, יצחק). . (18886 ,ת6)5828ת6ס8ק
הורה(רבקה, יעקב). . (18000 ,ת8אט6)210מס6עהק
הורה(לאה, ראובן). . (ח6סט6ע ,ת168)%ת6ע82ק
הורה(הגר, יעמעאל). . ( [₪86ת15 , ספשַהת)6ח6עהק
הורה(רבקה, עשיו). . (עט65 ,ת8א%ט6)210תסעהק
הורה(לאה, עמעון). . (חס6ש1ת58 ,ת6)168ת6ע82ק
זכר(אברהם). . ( ₪התה2ס ) ₪816
זכר(יצחק). . (816)15880ם
זכר(עשיו). . ((טט69) 816
זכר(עמעון). . ( ת1₪60ת816)5ם
זכר( יעמעאל). . ( [₪86ת15) ₪816
צכר( יעקב ). . (18000 ) 816
זכר(ראובן). . (תססטוסע ) ₪816
נקבה(שרה). . (5828) 6₪816+?
נקבה(רבקה). . (חהאט1ע ) 0₪810?
נקבה(הגר). . (ע8ק8ת)0₪816+?
נקבה(לאה). . (ת168) 0₪816+
א. שנה את מבנה הנתונים שלעיל בהתאם למבנה של נתוני התכנית "קשרי המשפחה
המנומקים" של סעיף 3 בחטיבה זו, וענה על שאלה אי של תרגיל 3.
ב. הוסף לתכנית 65טם ץ!ווחג] של פרק 7 את החוקים, המגדירים את היחסים האלה:
אחים(א,ץ)- ל-א ול-צ יש הורה משותף, ו-א שונה מ-צ.
בניו של(א/צ)- הרשימה צ הינה רשימת בניו של א.
ג. | כתוב חוק, המגדיר את היחס צאצאיו של(א,צ), כאשר א הינו אחד מהגבריס של המשפחה
התנ"כית, ו-צ היא רשימת צאצאיו ממין זכר.
ד. האם ניתן לשנות את שני החוקים של (ח06310.6880ח4/)ז66510ח3 שבסעיף 7.6 (אשר השני
שבהם הינו חוק רקורסיבי) כך, שהחוקים האלה יכללו את היחס 0604086 בדומה לחוקי
התכנית "קשרי המשפחה המנומקים": נמק את תשובתך.
ה. השווה בין ההסברים, הניתנים באמצעות היחס 608086ט, לבין אלה, הניתנים על ידי
קונכיית מערכת מומחה באמצעות תש ו-שסח (סעיף 18), ותאר את ההבדלים.
שאלה 4
באיור 39 נמצא החישוב של השאילתה (5וח00ס₪ ,צ ,00)8ז568 על-פי תכנית 8. השווה בין איורים
2 ו-39. תן הסבר להבדלים שבחישוב.
4
. (00₪5ת, +, 8)ת50370 -7 | נאַת801ץ
7 1 [0ז
,563 :5 [1]
617 :1 [2]
37)פחסתק616: :1 [2]
7 טפ :6411 [2]
77 :6411 [3]
77 :0 [3]
77 :ם1א2[.6]
7 :6411 [4]
7 :11: [8]
77, [], [8] )8ח6קקם :7 [4]
7 ::1א. [8]
0052687 [262,]3,5+,5)ת6ז563 :1 [4]
7ל)6תסהק619: :6811 [5]
7ל)פתסתק616: :111) [5]
7 :6811 [5]
7 :611 [6]
7 :ם1אש [6]
77 :ם1א6 [5]
77 :6811 [7]
77 :11) [7]
77, ([8], [פ,4)]8ַתפקְק8 :6811 [7]
?7) )זףסקק :811 [7]
7, (56:0()4,1763,]8,5,4 :6811 [7]
617 :6811 [8]
7פסהק616: :11) [8]
7 :611 [8]
217 :6411 [9]
4,7)ז0ס4 :16צ5 [9]
7 :68186 [8]
7 :6811 [10]
77 :111 [10]
7, ת], [8,5,4] )4חפקק3 :6811 [10]
77,, ה(ת], [4)]8,5,6ת6קקג :6816 [10]
.?(0051272ת, [ת,11270,]3,5,6,ת)ת6זג563 :6811 [10]
7ת)תסתק616 :6411 [11]
7ה)פתסתק616: :11+ [11]
77 ,ו :6811 [11]
1 :6811 [12]
71 ,ת)400 :111 [12]
57 )ז400 :611 [12]
77) 0 :6416 [12]
7)טסם :6%15 [11]
7 :611 [13]
7 :6416 [13]
)טס :660: [11]
7 :660 [12]
5,7 )400% :1 [12]
7 )ז0 40 ; (1885 ,ת):400 :6811 [12]
7 ;,; (6,ח):600 :6415 [12]
7)טסט :6415 [11]
7 :6811 [12]
7 :6416 [12]
77 :660: [11]
7 ; (4,ח):400 :1860 [12]
7 ):40"0 ; (1885 ,ת):400 :1311 [12]
7 ,ה)6ש₪0 :811+ [11]
7 ,[1270,]3,5,4,0 ,ח)ת568:6 :5811 [10]
717 [6)]8,5,0הסקק8 :660ז [10]
77 ,ון[ת],[6)]8,5,4ת6קקג :1311 [10]
17 15 [11]
7 )16166 :וצ [11]
7,,, )5684160 יזוא [10]
,+ :ו [7]
,, ,)56810 [4]
,)9 ₪ [1]
7 4 [0]
.05 12 ם1 .
איור 39 -- חיפוש הטלפון על-פי תכנית 8 [9,6,1,ג] = -%%
5
שאלה 5
החלטנו לערוך שינוי מסוים בתכנית 6(ב) של חטיבה זו.
לפניך שלושה איורים של חישוב השאילתה (מש10)חס/41ת:6651 (איוריס 40, 41, 42). שניים מהם
בוצעו על-פי התכנית ששונתה (לכל איור - שינוי אחר).
א. אתר את החישוב, שנעשה על-פי תכנית 6(ב) לפני השינוי.
ב. קבע על-פי האיוריס הנותרים, מהס החוקים אשר שונו.
. (תשס1)ה8:10ה465:1 -7 | :8ה861ץ%
10%0807)ה3:10ת46551 :6811 [0]
?((173:ת6מעס1קתת, 171ה10%)ה8510ש660)515ה674 5ב :₪411 [1]
;] 6 = השטסך
7)ה8510ה46551 :5660 [0]
8:100)6,3(7ש66)815ת603 פבת :660: [1]
7 = ₪ | 0 = ₪ :5660 [2]
7 = ] ; ₪ = )+ :16א6 [2]
7, ))ת06)51503610ת678 18 :16א5 [1]
40577 :16א6 [0]
.4 2 ת1 ...
; 6 = השסך
77 :6600ם [0]
7((ת,1)ה810ט66)515ַהת6 פגת :640: [1]
7 + ; ₪0 = 6 :₪660 [2]
255-7 : 6 = 255 :5411 [2]
= 255 ; ₪ = 255 | : 5 = 255 :6811 [2]
7 = 5 ; ₪ = 5 | 5 = ם :16א6 [2]
7 )חס66)5104ה8ת6 פגת :6%15 [1]
7 :16א6 [0]
.0600:1005: 2 ת1 ...+
; ₪ = משסך
77 :2660 [0]
7, ל68)51003:100)0ה4ה6 פבת :860: [1]
7 = ; ₪ = 5 ; 5 = 5 :5660 [2]
7 = 0 ; ₪ = ₪ ו 5 = ₪ :ם91א6 [2]
5((7ת,4:102)6ש6)516סה608 פאת :5%16 [1]
77 "16 [0]
.5ח0510ט600: 2 ה1 ...
; ₪ = השסך
7)ח8:10ה465)1 :56640 [0]
6,085((7)ה66)51108%10ת678 185 :660ז [1]
1 = ₪ ; = ₪ ;5 = ₪ :660 [2]
17 :8-60 גכ = ]1 :915א6 [2]
85(7ַ,1)ת8:10ט66)511ה608 85( :15א6% [1]
7 :ם81א8 [0]
.0:]0ט90: 2 ה1 ...
] = הטסך
7 = 255ה109 :6811 [2]
7 = 5 :815א6 [2]
85(7ה,5)ה8%10ט66)516ה8ת6 פגת :16א6 [1]
?(5)ה8%10ה665%1 :18א6 [0]
.6006:100: 2 ת1 ...
; ל = השטסך
7)חהס!:8ת665:1 :5660 [0]
85(7ה,5)ה8:10ט516)ססְהת6 בה :5660 [1]
7 = 5 :600ז [2]
?7 = 255. :1811 [2]
7 = 255 :6411 [2]
7 = ₪ :816א6 [2]
7(פגת,8%108)6ש66)516ה8ת6 פאה :615 [1]
77 :ם16א6 [0]
.00100 2 ה1 ...
; 6 = השסך
17 :6600: [0]
5(7ת,6)ה8510ש66)516ה8ת6 5את :660 [1]
7 = ₪ :5660 [2]
7 = 255 :11+ [2]
7 = 255 :6811 [2]
7 = + :16א8 [2]
7, ))ת66)51508:10ה₪708 385 :16א5 [1]
7 :15א6 [0]
.5ת6000:10: 2 ה1 ...
; + = השסך
77 :5660 [0]
85(7ת,+)ת8:10ט66)515ה₪08 פגת :640: [1]
7 = + :660ש [2]
7 = 255 :%11 [2]
7 = 255 ; ₪ = 255 :6811 [2]
7 = ₪ ; ₪ = 2 :ם91א5 [2]
6,785(7)ה8610ט66)515ה8ת₪ בת :16א6 [1]
?(6)ה8:10ה4638%1 :15א6 [0]
.0 2 1 ...
איור 40 - (חש10)תס:81ת66511, גירסה ראשונה
6
207
;] 8 = הטסך
8:)00)8[7ה685:1 :660ז [0]
8,51347(7)ה8:10ט68)515ה608 085 :660: [1]
5,51692(7)ה8:10ט:66)81ה6708 85( :660: [4]
97 פגת :660: [7]
977 "=" (6,85)ה8:10ט:51 :660 [8]
7 %0תה8:10ט516 = (695 ,6)ה8:10ט:51 :111 [8]
1, (695 ,6)ה8:10טם81)שטסמ :6811 [8]
7 :6811 [9]
7 ,006 :811 [9]
7 ,(695 ,8)הס]:8ט:6)51טסה ו11] [8]
7 ,,6)ה8:10ט66)515ה8ה6 את :811] [7]
7 ,+6)ה8:10ט5,51692(,515)ה8:10ט6)515טסמ₪ 8601 [5]
7 :6600 [6]
7 ,ס5)מסם ו811] [6]
7 ,(350 ,5)ה8010ט818)סטסת :1811 [5]
7 ,50)ח0ס8:1ט68)815ה608 פגֶ :511] [4]
7 ,,ס5)הס8:1ט8,51347(,816)ה8)51:08:10טסת ו860: [2]
7(ל,600)8 56001 [3]
7 :ם1+. [3]
7 ,6)ה5,51347(,81508:10)ה8:10ט6)516ט0ה :16א5 [2]
7 ,6)ה8:10ט:68)81ה608 פגת 08111 [4]
997 "="* (350 ,6)הס2:1ט816 !6811 [5]
88(7ת,51:08:)00)6 = (6,085)ה10:בט:81 :8*16 [5]
6,085((7)ה68)051608:10ה608 85( 5161 [4]
77 ח0)אט]|68)3ה8ה5 הגה ו16א9 [1]
7(פ)ה8:!0ה468:1 :15א8 [0]
.05 5 ח1
| 5 = הטסך
?5(7)הס!:8ה408:1 :660: [0]
5,51347(7)ה8:10ט:8866)51(₪ 5גת ו860: [1]
7, ))הח8:)0ט:66)81ה68 פאה 6601 [4]
7 "* (85ה,6)ה10:אטש81 :660: [5]
7 ותה8510ט)81 = (350 ,6)הס):אטם21 ו211] [5]
7 , (350 ,6)הס8:1ט₪06)815 :5811 [5]
0₪)6,10-026907ם :6811 [6]
7 ,)60 ו11] [6]
77 ,(150 ,6)הס):8ט:6)51צ₪0 ו211) [5]
7 ,6)ה8%10ט60)816ה608 פגה ו11) [4]
7, ,)5:100ט5,51347(,815)ה8:10ט:₪06)581 :880: [2]
אק ו940: [3]
7 ְום1אם [3
7,, (6,81347)ה8:10ט₪0%6)515 ו:|א9 ₪
7 ,8:100)6ט678066)815 5את :6511 [4]
7 "הט = (350 ,6)הס8:1ט515 ו6811 [5]
97 "= (פאת,6)הס1:אט:81 ו:1צם [5]
7, ס)ה66)81508:10ה678 פגת 2:11 [4]
6,51347((7)ה66)81508610ה88ם גת ו₪ןא5 |1]
7 0))ה):468 :16א5 [0]
.5ה0:10ט64ז 5 ה! ++.*
4 = הטסך
.(השס1)הס8:1ה463:1 -7 | :אַה801ז1
07ח0ך)הס1:הה66%:1 :6811 [0]
7, !10017)ה₪08006)51008:10 35 :₪811 [1]
7 = (171,%173ה109)הס8:1טם51 :6811 [2]
7 9 "* (ת,7256)ה8:10ט:51 ::1א6 [2]
1256,085(7)ה3:10ט66)516ה608 85 ::1א6 [1]
1 :416 [0]
.05 2 ה1 ...
] 1256 = הטסך
97 :660: [0]
66)81:08%108)7256,388(7ה60 085 :%660 [1]
97 "= (1256,085)ה8:10טם81 :660: [2]
91 = (173 ,171 )הס]:אטם51 :1811 [2]
7 , (173 ,171 )ה8610ט:81)סטסת :₪811 [2]
23649(7ה1346,109הטסך)60₪ 68111 [3]
0)8,7 וש1א6 [3]
5,52350(7)ה4,51347(,51608510)ה610בט6)516טסת ו16א6 [2]
5,82350((7)ה66)51208%10ה6708 85ת :6811 [8]
887 6100)1601הט51 = (5,82350)ה8610ט518 :6811 [5]
77 = (8ה,5)ה10:מטם81 :16א6 [5]
5,085(7)ה8610ט66)515ה603 גת ו16א6 [5]
8:108)8,51347((7ט60)516ה6087 פא !אש (1]
7 ו>)אס [0]
הז 5 ה] ++.
ו = הטסך
8(7)ה0ס|:8ה485:1 ו660ז [0]
8,51347((7)ה10:הט:06)81ה608 פפת :960: [1]
5,085(7)ה₪708066)81508:10 05 ו60ס+ [4]
7 )חס]:ט516 = (5,089)ה8!508:!0 ו660: [5]
7 )5166106 = (350 ,5)ה10:גט:91 וווג) [5]
7, (350 ,0/6)516085100)5 +1 (5]
600)5,10026947 |6811 [6]
7 ום!אם [6]
5,51692(,51:08:108)6,52695((7)ה81608610 )096 וף|אס [5]
6,52695((7)ה8:10ט:60)31ה688 שגה :6811 [7]
7 = (81:88:100)8,52695 :₪811 [8]
87,)ה0):הט8|0 = (6,(88)ה51:08:10 ו16א8 [8]
7 (8פה, 5)ה06)051608%10ה68.. ו ופןאס [7)
5,51692(7)ה68)51508:10ה8ה6 085 ו16א5 [8]
8,51347((7)הס!:66)81508ה608 פאה ו16א5 [1]
7 ו%א5 [0]
.מהס]:6ט00: 8 ה] ...
איור 41 - (חשס)חסו1גח/6051, גירסה שניהח
(8
.6 'קספןוטטןוסט(0[1א0) - ל? ,א
*'י זט ף גפקחסרְזָסטפ*
[0] פּאזֶךַָ: 1099
[ן] פאץב: טַטפ כשטט90(פ5דְבַ8טּבֶדְסט(פַיהָשאזְס4ך5ל)))1
[ל] פאןב: 596 כןְטטכ9(פדְבהטבִזְסט(ף'1))801
[6] פּאץב: פִּדְבְהטבְזְסט(891'6)]
[6] סט]ן: פַזֶבְהטרְזֶסט(ף'1/)59%
[ף] סטךך: חפ סןטטספ(פקְבְה8פרְזְסט(ף'4ש6ך1))0507:40
(?]) סאזך: שסה5(5זבהטבַדֶסט(ט'4ש6ז6]40ל/) 'אִזְבְהסרְזְסט(4'0ש1))056240[6
[)] פאזב: ססש(ט'ף)1
[)] ספזך: כסש(620801'970[0807ל1)6
[?] ספןן: שס0ה8(9זבהטבןסט( ך/ז' ך/5')6ַזְבְהטבִזסט5522)/
[?] נָפדְזי שזְבהטבןסט( ק1)50%'66
[?] גפקס: פִדְרְחפרְדְסט(ס'59)/]
[]] גפקס: שפפ כןטטספ(פְדְבְהטְבְדֶסט(ס'99))/
[0] גסקס: סְפפבַ(5)/
1 = 0 +
ייי זט ) גפְּקְחסְרְזֶָסטפ8:*
[0] פּאדֶבַָ: 590ב()ן
[ן] סאץב: צָפ8 כשטטס9(פדְבְהטבְדְסט(ס'1/))59%
[7] פּאץב: פדְבְהטבְדֶסט(כַ'מֶ59)/
[?] גפקס: פדְבַהסּבִזְסט(ךָ'טָט1/)5
[ן]] גפקס: )59 סטְפט90(פדְבַטבִזְסט(נָ'טֶ1))58
[)] גפקס: ק1(459)/
[ = 7 1
ייי זט 6 גפקְחסבץסטפי
[0] 9אזֶב: 590ב(1)/
[ן] פאזב: 59 כשטטס5(9זְבַהטבְדְסט(ךָ'שֶ59))/
[?] פּאדֶבַ: פזְבַהטבִזֶסט(ךָ'טֶ1/)59
[?] 91ק0: פזֶבְהטבְזְסט(ף'1/)59
[ן] גפקס: [ַ59 סטטטס9(פ5זבהטְץְסט(ף'9%))/
[)] גפּקס: קְ59(ף)1
1 = 6
ייי זֶט 6 גפּקְחכרְזֶסטפי
[0] פּאזֶב: )2
[ן] 5אץב: שַָ58 כטְפט0ס3(פדְבְַהטבְדְסט(ף'1/))56%
[?] פּאץך: פזֶבחטרַדֶסט(ף'טַ1)59
[?] סשןץ: פזֶבַחטְבַזֶסט([1)591'667080
[ז] ספןז: 594 כסטסטס90(פץבהטבץסט(ץסאטך/זְ'הַש0זְס4שפטב[1))%2
[0] כטץן: ק59ב([088%0)/
בְגטסקט8: | :- 590ב(שָסאט₪):
1 = תק
ייי זט ף גססחסבְזסטפי
[0] סאזְבו ק69ב(ק)/
[ן] פאזֶבָ: וספ סמְפטס90(פץְבהטרְזֶסט('הִש8זְ6[40ל/))/
[ף] סאזב: 880 סטְפט90(ףזְבְה8בִזְסט(ס'ן1))59
[6] פאזב: פזֶבהטבזֶסט(ס'4ט5)/
[6] ספן]: שזבהטרץסט(ס'ך59)] 2
[ל] ספןזן: 584 סטְטטס9(פְזְבַחטְבֶזֶסט(ס'* %)) .
[?] פאזב: שס9.0(>זֶבחטבַזסט(ק'צש6ץ]סאן)ף/)'5זבהטבןסט(ס' 1))056
[6] פאןב: ססש(פ'ס)]
₪] גפקס: ססש(9'6)/ 2
[?] גסקס: שס0ה5(9זבהטבןסט(6₪3'6ך40ן6ל/)'פץןבהטבןסט(9' 1))056
[ל] נטזן: טפ סןטטכ90ס(פ5ּדְבַטבַזְסט(9' 056))/
[6] נָפזֶץ: ש5(980זבהטבץסט(9' 056)' 26009
[9] נָפזְזי ססש(9' 69ל)/
[9] סטןץ]ן: ססש(1)76970001'9
[6] סטןן: ש8(940זבהטבןסט(9' 5')056זבחטבזסט0097)/
[5] זָטזֶן: פְזְְהטבְזְסט(פּ'טְ1)59
[5] סטןן: פוַבְהטרְזָסט(9'ש1)59
[ף] ספןן: 59 סטפטס9(פ5זְרחטְבֶזסט(9' 1))056
[?] פאןב: שסא5(ףזְבהטְבְזסט(ף'הַא8ז0אן6ל/)'פןבהטרץסט(ט' 1))056
[)] פאזב: ססש(1])9'6
[6] גטק0: ססש(9'ף)1
[?] גסקס: ש5(940זרְהטרזְסט(4'9ש6ך40[ן0ל/)'פזבהטבץסט(4' 1))056
[ע] נַטזֶז: טספ סןטטכ9 (5דבחטר סט (6' 206055
[6] נָטדֶ: שסה9(>ץבהטְבָזְסט(ף' 056)' 26009
[9] נָפזְזְי ססש(ף' 69ל)1
[9] גפּקס: ססש(ף'1)9
[6] גפקס: שסא5(9זבהטבץסט(3'6ש5')769[40[8ז]בהטבץסט(9' 1))569
[/] זָטזֶן: 58% כןטטס9(>דְבְהטְבְזְסט(9' 1))669
[8] נַטזֶך: שס9(פדֶבְחטבָזֶסט (3* 9)' 76ל5)/
[6] [ַפזֶן: ססש(9' [1)660
[6] ספץץ: 01'8(₪00ה12)650120
[8] סטןן: שסה5(9זבהטבְז9(00' פ5')56ְַבַהטְבְדְסטק6ל1)5
[8] [טןן: פזְבְהטבְזְֶסט(1)58%'9
[8] סטןן: פַזְבְהטבְדְסט(1)591'9
[/)] ספטןן: 59 סשטט90(פדְבַ6ּבִדֶסט (4'9ש1))669740[6
[6] פאזֶב: ש9.0(פְבַחטבזסט(ף'בַש6ן269[40)י5זבהטְבַדְ6₪3'9(00ך1))569740
[(0] פּאץב: ססש(1)9'6
[9] סטץן: ססש(6978301'6ל)1..
[5] סטןן: שסה9(פ5זְבהטְבָזסט(ף' 380315')056ז1)009200
[9] נָפזֶן: פזֶבהטְבְזֶסט(ף'1/)59
[6] גפק0: פזְבְחטבְזֶסט(ף'1)50%
[ף] גפקס: צַט5 סשְטטס9(פזבחטבץסט(ףָ'ז59))]
[ן] גפקס: 596 סטפט90(>ץָבְהטבְזֶסט(שַ'בַש6זְ6[0ל/))1
[)] גפּקס: ק8(459)/
1 = 5 !
שאלה 6
א. תלמיז י כיתה י"א החליטו לעו וז טיול באתרים היסטוו יים שבין תל אביב לבין חיפה.
ד
בחר את היעדים, ותאר באמצעות תכנית לוגית את מסלולי הטיול האפשריים
ב. תלמידי הכיתה המקבילה החליטו לערוך תחרות ריצה בין תל אביב לבין חיפה. תאר
באמצעות תכנית לוגית את מסלולי הריצה האפשריים וציין את אורכו של כל מסלול
ג. | הנהלת בית הספר החליטה לקראת חג החנוכה לערוך טיול בעקבות המכבים. בנה תכנית
לוגית, אשר תסייע בבתירת המסלולים האפשריים. בנוסף למשמעותס ההסטורי של
היעדים, ציין את המרחקים שביניהם, ואת אורכם של המסלולים.
הערה: בתכנית אשר תבנה, אתה רשאי להחליט על מקום התחלת הטיול ועל מקוס
סיומו.
שאלה 7
החלטנו לערוך שינוי בפרוצדורה 50165 של סעיף 9. עיין באיור 43 ותאר את השינוי ואת
תוצאותיו.
. (10065, ץז115+0, 501065)3 -7 | :קַת5401
7,, 111560:781, 501065)3 :68411 [0]
7 81[1ה11 :1 [1]
77 [ג1ה1+ :1411 [1]
797 ה )טס :6811 [1]
7, (6)3,0ט0ם,6)3ט₪0 :18א6 [1]
777 )₪606 :6811 [2]
7 |5,]5)צפסמפת :1 [2]
7, (6)3,5טסת,3)סטסם :660> [1]
7, (60, ב)6טסם, 3)סטסם :18א8 [1]
7 ,6)מ6כמסם :1 [2]
7 |6,]6)צססתסם :1 [2]
71 6)8,0ע3,₪0)סטסמ :660צ [1]
7 ,179 ,)פטס 2 [1]
7 ,81 ,65)8ט501 :1 [0]
סת
איור 43 - שינוי של הפרוצדורה 50165
שאלה 8
הפונקציות הבאות מוגדרות עבור כל זוג של מספרים טבעיים א ו-ץ. תאר כל אחת מהן
באמצעות תכנית לוגית.
א עַא 1 הק = (צ,א)+?
צַלא | 0:
ב שא | !א ] = (צ,א)+?
צ<< וד .
9
(!ץ ,!א<)תנם = (צַ,א)?
(צ2+< ,עַ+א2)ת1ם = (צַ,א)?
0=א< צ זז
0 (0 ,1-א)? [ = (צ,א)?
9 ((1-ץ ,א)? ,1-א)? 8
תאר את הפונקציה האחרונה באמצעות תכנית לוגית, שהמספרים הטבעיים בה מיוצגיס
כצאצאים של 0: (0)% ,((5)8)0, וכן הלאה. בדוק באמצעות התכנית הזאת מהו הערך של
הפונקציה עבור זוג כלשהו של מספרים טבעיים.
שאלה 9
כתוב מערכת מומחה בנושא התפתחות בעלי החיים. היעזר בתכניות שבסעיפים 12, 13, 14.
שאלה 10
א.
0
הוסף לקונכייה של מערכת מומחה שבסעיף 14 פרוצדורה, אשר באמצעותה ניתן למחוק
את התשובות של המשתמש (בדומה לפרוצדורה 8018). -ז6!69 שבסעיף 13).
הוסף לפרוצדורה 6ו!50 של הקונכיה חוקים, אשר באמצעותם ניתן לחשב את המטרה
1) וסח.
בנה מערכת מומחה בנושא המוכר לך. פנה אל חבר שמכיר את הנושא, ובקשו להעריך את
המערכת מנקודת ראות של המשתמש. שפר את המערכת בהתאם להערותיו. הסבר לו מה
הן המגבלות של השימוש בה, במידה ולא ניתן לשפר אותה בהתאס להערותיו.
נטספחים
נספח א' -- סביבת עבודה 1.06ַ0אק-א0 זט
נספח ב' - אופרטורים
נספח ג' - סביבת עבודה 006ַסע - זך
נסספח ד' - הפרוצדורה 6ַת6סכג
בפסקל ובפרולוג
נספח ה' - סביבת עבודה
ץד
11
נספח א
סביבת עבודה 001/06אע-] 0כ 5ז/)
נמסר באדיבות: 50/1416 זסוטקוח 60 6וְצְס0אב!א
ת.ד. 7925, ירושלים.
1. תיאור כללי של תוכנת ]0% 15/ש
התוכנה 8001/06ק-1!520₪1/ (בקיצור-1א1520/ו) פותחה על ידי מולי ספרא (מכון וייצמן
למדע, רחובות) ומוטי גולדברג (מקסבייט תוכנת מחשבים, ירושלים). השס 1500₪1/צ (שמשמעו
באנגלית - בינה, תבונה) נגזר מצירוף המילים:
135 ]00 1ה6וח1ז8ק126 ,5616006 01 105111016 תתהותלו6ש
המערכת של 1500%1/ו בנויה מגרעין (בשפת 6) ומקונכיה (בשפת פרולוג). הגרעין מגדיר את
מנגנון ההסקה ואת המישקים למכונה המארחת. הוא "עטוף" בקונכיה, המכילה דקדוק של
שפה, פרדיקטיס של המערכת ומישקים למשתמש. הקונכיה נכתבה בפרולוג, ועל כן המשתמש
יכול לשנותה כדי ליצור סביבת עבודה בהתאם לדרישותיו. השינויים יכולים להתבצע בשתי
רמות:
א. שימוש ב"יציאות" של הקונכיה המקורית לפרדיקטים, שהוגדרו על ידי המשתמש.
ב. שינוי של פרדיקטי המערכת.
להבדיל מקונכיה של מערכת מומחה, אשר נדונה בחטיבה הרביעית, הקונכיה שעוטפת את
הגרעין מכילה בנוסף למפרש-על, את כלל סביבת המשתמש.
תוכנת 1א1500/ משמשת שתי מטרות עיקריות:
1. להוראה של תכנות לוגי.
2 ליישומים מתוחכמים, הנבנים על פי עקרון של תכנות בוחן והמשתמשים במנגנון הסקה
לוגית (בניית אבות-טיפוס, מערכות מומחה, עיבוד שפות טבעיות וכדומה).
המערכת מיושמת על מגוון רחב של מחשבים ומערכות ההפעלה. כדי להגיע לרמת תאימות
גבוהה זו, המפתחים החליטו:
2
- לנקוט בגישה מודולרית, שתאפשר העברת 1500%1/ ממחשב או ממערכת הפעלה
אחד למשנהו על ידי החלפת מודולים מעטים בלבד.
- להשתמש בשפת 6 ולהגביל את השימוש בשפת סף (ע01וח8556).
- במידת האפשר, לכתוב 1א1500%/ בפרולוג - כלומר, המערכת מסוגלת לבנות את
עצמה מגרעין מצומצם.
להלן רשימת הגירסאות והמכונות המארחות:
רו | א קר ד ליט ה מל )ו כ השמ אש בתח ויה שיו הצוענ 18 ששה שד הר גי שי עקר הר
| מערכת הפעלה | | מחעב | | גירסה |
| 8 | (פא 256) 0ק-אפד | |
| | | למתחילים, עברי+אנגלי |
| 8 | (פא 383) סק-אמ1 | 0 |
| | | עם חלונות |
| 05כ-40016 | | אסא | |
| 0 | 6 | |
| אנאט | 1 | 177ה-1560₪ |
| אנאט | הטסו | %-01560₪ |
| אנאט | 0 | ה-₪1560₪ |
| אנאט | אטפ | אטפ-01560₪/ |
| אנאט | 1 | |
| פשט | אגט | 0-5 |
| אנאט | אגט | 0-א3-1560₪ |
מווווווווהו וווווווווווווווווהוווווווו ייוו ויוי
התחביר של 1800₪%1/ו הינו מערכת-על של תקן "אדינבורו". בכל הגירסאות, פרט ל-ץ545,
ניתנת תמיכה מלאה במספרים עם נקודה צפה.
חבילת /585, התומכת בדקדוק עברי ואנגלי, מכילה מפרש, קוב מידע ומערכת ניפוי.
חבילות אחרות (פרט ל-ץ585) מכילות:
מפרש - קוב הפעלה.
קבצי ידע (1116 51416).
קובץ מקור של מערכת הניפוי, שנכתב בפרולוג (כולל פוחוסק עס8 וניפוי תמידי).
חלקים נרחבים של קונכיית הפרולוג.
ספריות שונות (כולל דוגמה ל-ז3וחוח8ז2) 86ט6[8 0)וח6).
מודול מישק לשפות: 6, אסמבלר, פסקל, פורטרן.
תיעוד למשתמש -- [גותגוח ז56ש.
+ % % *% *% *% *
בנוסף חבילת 6ת-וח560/ מכילה:
תכנית ניהול חלונות + ספריה למתכנת.
מערכת לבניה והצגה של חלונות עזרה.
תכנית פרולוג לעורך (ז0ז601).
דוגמאות למישק עם 005כ-15א ו-8וקנחז6וחו 8105.
* % % *
המשתמש של 26-ו 560ו/ יכול לשלוט במערכת הקולית (6חט50).
3
2. מערכת ה9?2(? - ז006ט060 172660
התכנית של פרולוג בדרך כלל אינה מפרטת את צעדי הביצוע, ותהליך הרצתה (כלומר, חישוב
השאילתה) מוסתר מעיני המשתמש. תהליך זה כולל נסיגה (8ח86%1ז1א096), ועל כן מהלכיו קשים
לחיזוי. בשל כך המערכת של 15001 מכילה תוכנת ניפול (פַחוּפַפָטס06), המאפשרת לעקוב
(17806) אחרי ריצת התכנית.
מודל מיוחד הוגדר כדי לתאר את מהלכי ביצוע של תכנית: קופסה בעלת 4 פתחים של
כניסות/ יציאות למעבר תכניות. בהתאם לפתח, אשר דרכו עברה תכנית מסוימת, ניתן לראות
מתי מטרה (8031) הצליחה, נסוגה או נכשלה.
ארבעת הפתתיס הס:
41 - פתת כניסה ראשונה לכל [809. מספור הכניסה מאפשר להבחין בין כניסות שונות של
אותו [₪04 בארועים שונים שלו בתכנית.
דז]אם - פתח יציאה לאחר הצלחה.
0 - פתח כניסה מחדש של התכנית ל-8081 בנסיון נוסף (נסיגה).
1 - פתח יציאה לאחר כשלון.
-<-- 18א8 ך------] 0811-= 8 ך-----₪ 6811" -
|| ₪081 | || ₪081 |
--*- 2660 00-74 24110 -77-----%-2660 0-71 14110 ----
בנוסף לאופציות העקיבה (11866) הסטנדרטיות, המערכת מאפשרת הגדרת עקיבה מתמדת,
הגדרת נקודות עקיבה ספציפיות (פותוסם עק5) ואף אפשרות יציאה זמנית למערכת 1801
הסטנדרטית, כדי לבצע שינויים "בזמן אמיתי', לחזור למערכת הניפוי ולבדוק את השפעת
השינוי על התנהגות התכנית.
תכנית ניפו? כתובה בפרולוג ומהווה חלק מחבילת התוכנה הנמסרת למשתמש, כדי שיוכל ללמוד
אותה, או אף לבצע בה שינויים כרצונו.
3 עבודה מול תכניות ומודוליס חיצונייס
היכולת לתקשר עם תוכנות אחרות הינה אחת התכונות התשובות שהמתכנת מחפש בכל מערכת
או שפה. ]א1500/ מאפשרת זאת בשלושה אופנים שוניס:
א יציאה זמנית למערכת ההפעלה, תוך כדי העלאת עותק נוסף של מערכת ההפעלה על-גבי
מערכת 1500₪1/ץ.
ב הפעלת תכנית חיצונית מתוך 1500₪1/ו. במקרה זה עותק נוסף של מערכת ההפעלה אינו
מועלה לזכרון המחשב (כלומר נחסך זיכרון), אך עם זאת לא ניתן לבצע את כל הפעולות
שהתאפשרו במקרה הקודם (למשל, אי-אפשר לבצע פקודת 218 או +צ007 תחת
.))-5
4
חיבור מודולים נוספים ל-1500%/- תוספת גרעין למערכת. המשתמש :כול לחבר
][א150/ עם בסיס נתונים, אס כ-6חט-וחסז! לאחר שהגדיר בפרולוג .5001 מתואם, ואם
בתור מנגנון ההסקה.
לצורך זה הוגדרו ב-1520%1/ מספר פרדיקטים יחודיים, המאפשרים למודולים נוספים
להשתתף עם המערכת המקורית באיזורי זיכרון ולהקרא/להתבצע מתוך 1א1500/ו.
כדי לאפשר את החיבור של מודולי המשתמש ל-1800%1/, המודולים השונים מצורפים
בגרסתסם המהודרת (6066 66!וקוחסס). שיטה זו נבחרה כיון שהיא היחידה המשותפת לכל
המחשבים שבהם פועלת 1א1500: תחת 05כ-15א ניתן להתקשר דרך מערכת
ה-15קח6ותו, תחת 15א באמצעות אחז[ 6ווח8חץ4, תחת א1א1 קיימות שיטות שונות
בהתאם לגירסה. אף לא אחת משיטות אלו קיימת במערכות אחרות.
להלן מספר דוגמאות של תכניות/מודולים זרים.
א. ביצוע פקודה של מערכת הפעלה:
. ('ק/ 1ק.* 556)'012צ5
הפעלת תכנית:
. (36%081 ,'1116.01-עם' ,ת66)0011א6 %עס?
תחת 1א/צ5 (מערכת ניהול חלונות של 1א1500/, ראה בהמשך), ניתן לקשור את הפקודות
למקשים פונקציונליים:
. .'/ 1ם." מ1' ,1 ,3)עסו בתגט
. ( [36%08 '1ק.116/-צ₪' ,ת6611 ,2 ,5)ש6א1 בתנס
ואז הקשה על מקש 3" תבצע את אי והקשה על 4 את בי.
קריאה לרוטינות המשתמש מתוך וח60פו/):
. (36%081 ,8015%ע2 ,סת0ת)6תנ? עפט
כאשר: סחט= הוא מספר הפונקציה המבוקשת.
1 היא רשימה של הארגומנטים להעברה לפונקציה.
1 הוא הערך המוחזר ע"י הפונקציה.
4. טייפול במערכים
תוכנת 1א1500/ מאפשרת לנהל מערכים (צץ778ג) בפרולוג. התכנית המנהלת (תכנית אי)
מבוססת על הפרדיקט המאפשר הקצאת אסור זכרון (ח0וו41!063) לצורך שיתוף נתונים עס
מודולים חיצוניים. הקוד המפורט כאן מתייחס למערכים של סוגי נתוניס מוגדרים. אולס, ברור
כי הדבר אינו הכרחי ואכן, בקובץ המלא, נמצאת ההדרכה המתאימה כדי להרחיב את התכנית
כך שתדע לטפל גם באלמנטים מורכבים שונים במערך יחיד.
5
הפונקציות השונות בתכנית:
הגדר מערך עס שם, סוג ומימדים.
שחרר מערך.
קבע ערך לתא במערך.
קבל ערך מתוך תא במערך.
ל שש כ
השלבים בהגדרת מערך:
א. מצא את נפח הזכרון הדרוש כדי לאחסן את הנתונים במערך.
ב. דרוש את הזכרון.
ג. | שמור את הגדרת המערכת להמשך עבודה.
השלביס בשחרור מערך:
א. שחרר את הזכרון שנדרש למערך.
ב. מחק את הגדרת המערך.
גישה לתא במערך:
א. חשב את מיקומו.
ב. קרא/עדכן את תוכנו.
6
יי וו
. .
6 6>ח% על שע8זץ8 סטף ]0 ה86618:8%10 שה% 1%מזשק מסת ב /
סף 2081 5%ז1] 6 6שתפת6 60010 טס+ .6תפה
((ז115 הס1פה0156 .6קע] ,.. ,8/)8886:ז1)2סה
6חפה 8886 שת% ת1%ט מצהזזה 81ז8696 שזשהט ,א8:הע8 6א0102-11:ק 80:6 8 טס811 %0
שפס 16ט60 פהס81ה4156 :0/0ה8 שקע:-08:8 %ה6ז₪/]]41 שנס
/.
-: (115% 018 ,6קע:0 .8856)ע2:ז8 46/176
עפזזה ז0ס] 6מפה 66פטהט % .. .. ,- .87)0886זז5)8סה 7
6 ףם1חט שקע%-48%8 ₪6% % ,(%!ה0 ,6קע:1:)0הט3
6 6816018565 1 ,0 = 15126 ,(75126 .115% 5126)018 5%0%81
עזזה סה% 51106866 5 .(1 ,ע8פזז8)ז6]]טס
ה8%10ז06618 6ז5%0 5 .((115% מ1ם ,שקעסם ,עגזז3 .7886)ע8:ַז8)%:ז2536
ץפזזפ ה8 ]0 52866 6ת% 66:ץ */
6ס 160טסה8 ה1510ה46/1 פה+ ,שמגה 8856 שת: ה+1ט פע8זז8 20151216 8110060 טסץ ]1
,(118% מ1ם .6קע:ם ,עפזז ,80886)ע8זז2
.( .ע5::א)ז16]טס
. ((118% 015 ,שקעזם ,עג::3 ,856א)ע8:ז865)8ז:6ז
.
/
-: (6מ08)ע8ז:ז8 6816:6
ז56הןסק צַא8זז8 26% 1 .(. .ב .עפזז 8 עפזזם
,ע8זז)ז16]טס
ז6]]טס 1%8 46811068%6 5
הס8%1ז06618 550766 118 856ז6 1 .((2 24 .8856)ע8:ז86%)8ז61+
.עז%ה>-ץאזז8 הא ₪6:/26% '*/
.4 158 %81 תש6תט - 55%
6 ₪ 18 [%8 תשתט - 26%
6ח% ]0 686ה שת% ,0115% 2 6מפה 5886 6ת% ה₪1% פע8זז8 16ק1:1טם 8110066 טסץ ]1
5 06/1656 06 16טסת5 56ט618
-: (%81 ,01668ה1 ,6קע] ,8856):ת61656
/
-: (%81 ,01665ה1 ,886א):צת61656
.(0115% ,6קץ1 ,ע8זז3 .6מב9)ץ8זזם
,(1%הט .6קעד)1%הט3
,ף1ח/'א66ה61ה0 15 71866 ,(א66ה61ה0 ,/ ,0115% ,61665ה1)א6ה3
.(6קע1 ,%81 ,71866 ,עאזז3)ז6]]טסטז
הס8%1ז46618 6ה1) 5
59 חשהח6-:6ש])61 שת% "0] (ת%א8ה16 %6ע5 ה1) 65ט[אצ-:1הט 6ה46)1 */
58 ט 8 1 86% 16טסה8 טסע פהס1פז6ט פחט/א1אט/6אה₪ זס] - הס1שזסצ-6ק)
.(4 0+
/
הס81זסט-0ק7 זס] 68ט81? ז86%6ז8ת6 1 .(1 ,1:)6תט%
(132767) ז6ש=%ת] 2 .(2 ,1:)1תט+
(65536+ - 0) ז6ש%6ה! 66הש51הט 2 .(2 ,ט):!תט%
ז626:%ה1 %זסתפ 5 .(2 ,81):!הט4
%686%ה1 66ה818הט :זסת5 % .(2 ,ע6):!הט4
(ז686זה1 97'5) פשתסן % .(6 .1:)1ה90
%גסן] 5 .(4 .]):!הט4
2 אס ה1%ט שפט %0 - זש%ה1סק 5 . (4 ,ק):!תט4
+00%81 8126)]015:015:168%[, 78126( :-
.6'ה1ק 18 78126 ,(5126 ,8126)012:18% 5%0%81 ,[(] = 15.18%
. (15עם ,[8126)]0!8 4%0%81
%ה816ט1טף6 1%6 60 עז)ה6 81ת810ה1:1-0126טא (0881016ק) 8 %ז6צה60 */
8 א שזפתש ,8-1 ס% 0 שז8 168:%ה6 עה:זזג %5ה1 .עז:ה6 ה0ס1פה16-0156,ה81
.88 ]06 זססמטה 8'ה10פה6186 6ת%
. 0006 18 שַה66%1ה6-עזא68הטסס סון
4גטסתפ טסץ ,0118% 2 שאגה 8886 6ת) ה1%ט שע8::8 16ק201:1 8110466 טסץ ]1
זס] 65% שת% 8640
.
/
-: (%81 ,0155)א6א'*15 ,[215:0155] ,(5א0א:א4ה])א4ה%
.[] * 5א4א
,(% ,0155:א6] ,0185 ,5א4%)86ה3
.צ.0155:א6|'א4א = [ג%
. (אשא ,א1ק ,[015] ,(א04])א6ה+
5זת6ת616-ע8ז:8 016ה38ֶ 0+ עאט 81ה10:אז6קס הג 6ה46]1 '/
7
.(ז86 ,א] ,930)ק0 -1
.(0ף ,ע]א ,925)ק0 -1
%ה61656-ץ8::8 ה8 שַה86%%1 ת%סס :0] 98116 15 ה1%10ה46/1 שה1אס011] שתך */
8 8ה868%1 85 ₪611 85 (18 %0 (1]3,4ץ8ז:ז8 561 .₪.6) .6ט[אע השצ1] 8 %0
(1ה%8 50 [3,4]ע8זזה 86% .6.8) .עז:ה6-עג:זג ה8 מסז] 16סג1זגץ
/.'
-:! %81 60 עזזה6 עפזז 86%
. (%81 ,01668ה1 ,%5)38856ה61656 ,[01668ה1 ,8886] ..* עזצה6 עגזזג
הה מס?] 18016זפש 8 אַה86%%1 "ס] שַה1טס011] שת% 8ה66]1 88 טסע ,ע1%ז618 זס] '*/
עז%ה6-ץגזז,
/י
.(מסז] ,]א .925)ק0 -1
-: עזסה6 עהזז0 תסז) 1:? 86%
.1 560 ע:זה6 עגז:א 56%
תכנית א' - טיפול במערכים תחת 1א1500/ש
207
5. מערכת ניהול חלונות
זה מכבר מקובל בתכניות 26, כי תכנית אשר תומכת בחלונות לצורך תצוגה, הינה תכנית
"ידידותית" (ע61ח16) ז6פט). החלונות הינס כלי יעיל להפרדה של אלמנטים שוניס לצורך תצוגה
על גבי מסך פיסי יחיד. ברמת התוכנה, המתכנת יכול להגדיר לאיזה מהחלונות ברצונו לכתוב,
מאיזה לקרוא והיכן.
150 מאפשר שימוש בשני אופני תצוגה:
- הצורה הסטנדרטית בה מוצגות השורות בזו אחר זו על גבי מסך אחד.
- תחת מערכת ]א/5 (ז486הג1 שס6חו% 1866!קוחו5) - מערכת ניהול החלונות של
]אס פצ.
]א/ו5 הינה מערכת ניהול חלונות פשוטה להפעלה שנבנתה על בסיס מערכת !וא/ו רבת
עוצמה. המערכת המקורית, 1א/ו, מאפשרת למשתמש לנהל מספר אובייקטים:
(5צ) מסכים בפועל - "דפים" בגודל המוגדר ע"י המשתמש ומהווים אזורי החסן
לנתונים המיועדים לתצוגה.
(קצ) חלונות תצוגה - "פתחים" על המסך הפיסי דרכם יוצג החלק הרצוי מתוך
המסך בפועל. ע"פ הגדרתו, גודלו המקסימלי של חלון
תצוגה הוא כגודל המסך הפיסי. מספר חלונות תצוגה
יכולים להתייחס ל-5 יחיד.
(8;) מסגרות - תוחמים לתלונות התצוגה.
(]אא) שמות - שמות לחלונות התצוגה.
(685) סמנים - לכל מסך בפועל ולכל חלון תצוגה יש סמן נפרד.
(צ5) תצוגת-על - מספר חלונות תצוגה יכוליס להקשר במסגרת תצוגת-על,
כך שתזוזת אחד מהם תגרור תזוזה בהתאם של
האחרים.
(1קצ) רשימת חלונות - רשימה לניהול סדר הופעת חלונות התצוגה.
לכל אחד מהאובייקטים מוגדרות פעולות מותרות כגון הזזה, שינוי גודל, כתיבה, קריאה ועוד.
הספריה בשלמותה מסופקת עם מערכת 15008%1/ כדי להקל על המשתמש המעונין ביצירת
תכניות המשתמשות במערכת זו.
בעוד מערכת 1א/ מספקת למשתמש מנוסה כלים רבי עוצמה, אין ספק כי מורכבותה מהווה
מכשלה לרוב המשתמשים - ברצונס להשתמש בכלי פשוט ונוח לתפעול, גם אס במחיר הפסד
חלק מאפשרויות הביצוע. לצורך זה נבנתה מערכת ]א/ץ5.
ה-1א/5 מגדירה אובייקט יחיד - 60 - הכולל בתוכו מסך בפועל, חלון תצוגה (אחד לכל 5)),
מסגרת, שם וסמן. באופן כזה צומצם מספר הפרדיקטיס שהמשתמש צריך לזכור על מנת לשלוט
במערכת החלונות. בנוסף, תומכת המערכת בעורך (ז0סזו646) פשוט בכל חלון, כולל העברת תמליל
מחלון למשנהו. עם זאת, המערכת חזקה דיה כדי לבנות בעזרתה מעבד תמלילים מלא!
בצד התמיכה בחלונות המוגדרים ע"י המשתמש, תומכת המערכת במספר חלונות 15001
המוגדרים מראש.
שני שיקולים הנחו את בנית מישק המערכות 1500₪1\ - (|אא5): שסבחו/ט 51011866
תוא
א. בצד הרצון לתת בידי המשתמש התפצ בכך, שליטה מירבית על ניהול התצוגה, קיימות
המגבלות הטכניות של ניהול ערוצי התקשורת היחידים של 1800%/ עם המטוף.
|08
כתוצאה, נוצרים חלונות מערכת ]150% בקוד הגרעין. הס לא ניתנים לשינוי (ולכן
לסגירה בטעות), אך כל פעולות הקלט/פלט מקודדות בפרולוג בקוד הנמסר לידי
המשתמש.
ב. | אין הבדל בפרולוג בין סוגי המשתנים השונים, כאשר מטרתה היחידה של המערכת היא
הוכחת ה-[208 הראשוני שלה, ה-50611. אס כך, אילו חלונות נפרדים ייופיעו על המסך!
הפתרון היה בהחלטה שקבעה, כי אלו הן הפעולות של המערכת, הנפרדות ביותר מבחינת
ההבנה שלנו:
- דו שיח רגיל משתמש-מערכת.
- אימות נתוניס (תס:ג855671).
- עקיבה (1:406).
נסכס ונאמר: מבחינת המערכת יש פעולה אחת בלבד: הוכחת ה-041א. המשתמש רואה את
הפעולה הזאת כמורכבת ממספר פעולות, ועל-פי ראיה זו נבנו החלונות.
בנוסף לתמיכתה במערכת התלונות, מערכת 1א/5% מאפשרת למשתמש להגדיר מקשים
פונקציונליים לצורך ביצוע פעולות מוגדרות הקשורות בתכניות חיצוניות.
שתי גירסאות של תכנית 511124 (ראה תכנית בי) מדגימות הסבת תכנית כדי שתתמוך בעבודה
עם חלונות. נציין כי התכנית המוסבת לעבודה עם חלונות, תרוץ גם ללא מערכת החלונות.
0:70062%1560₪ -4100 -5₪4 1
0 חס51ע6ט ע606:קז0:ה1 0108:? (מ:)31500₪
1 ,(75ַצ8א4.001656:2)44] 8 8:+53 .4 (6) 6ת18זעק00
(ג.0.5) 2:655 117 (6) 6ת18זעקס?
38
1-
סע - 1?] <<<6ט4661 )טקת1>>>
טס6ת₪1 7866
איור א' - מסך פתיחה של 1500%1/: א. בלי חלונות,
ב. עם חלונות
109
1200
שוש 6%ם - ,א 6ש
9( ]ןי
1 פטַנְבש30( 106 )*
1001
סנכ 9900053 [3100' סנב ) *
אבס (פַבֶזמהזְחפ' זסחְְ' [ט4חב)*
6 81 ח5' 950005988) *
1 ונק ([ט6חך-* [ט0חךָ)'
זט |[ :-
הדנ[ = [ 040% [ 8 וזככ 4סח, ])"
זט ([90]) :-
218 :- 7631 פסטַרֶב00[(308ח)' 0ן21ט([טשח1)' [י
6 םא :3ך][2צ ₪6 צאם6) ₪ -- ₪ 66%
1% - ,₪ 6פש
1 פפטרְסטכ3 (8] :- 091(א9)*
1) :- שי
1 [09ק/191ך] ) :- אנדרס(וְסק)' הנזְבָ9(, ,)' 076931 (101ז)י
אנזרסזְט(א) :- 691ך4(א)' שךי
5(
פחף9ך (04ח1 ' אא)*
פחף08(19' 04ח1)י
1 חקפ (ךָ'ךֶן) :- צהףפב(ך'ךז)י ץצ |"
פחף9(אַס1קז' 108ק?)' 1כ0זטכט אסנקפ(ך'ךן)י ע ' |"
1 50( [מסנקן ,ך] ' [אסגק?:דז]) :-
זא [ (צד' הד ואופ] 'ה) :- א = אך' זסטצחט(א'אופ')י
זה[ ופי
00 גסטךָ (5זָפנָ)* סט סב ) *
ו סט 108 ) *
שבֶנֶט( [ץ] ' [0'08'9509[6ש])*
זט
בֶבָּ ט( [ץ'א'?] ' [כסט' אסח' נָּדְזְ'שַכּ'ש10פ'6)סחב'א]) :-
שבנסנט( [ץ' זכ ץ]' [קס'4סח'10פט' נְפפץ' בֶָסבָ'אטא 'ש] )י
6[ זְדֶצּ' ץ] ' [ק590'סט)סטבּ'9ץ95' דט )סג ' ן86זז'זזצ9'ך'2])י
בֶרסנטן [ך'04ח 2 96] ' [מןסרָ'8טצ4'59סח נטֶזְטצ'ץ'ק'אסח'א])י
בֶבסטן "טפ ] ' [ 0 93 סח 090 ])י
טרס( [] '691ז9*[])*
שסרסן בבס ט' [198101'9[00)*
8 סק )'
סרכ ( [אסנק ו סבָבְּנט] ' זָסזְט' [א10ק/08101]) :-
אטרכ (סַבֶבָ ט' זססָזְ'אַזְורְןְס1031)*
(רְן ]6 98ך' אַזְוְרְזָ 198 [19810)*
6 (א' 091ז3'ך19 1981011 )'
זרְב (א)*
סב ( [א ְסַרֶנְסנט] *193101'3[661) :-
שף6ט סז - .6 שש
זט( ]טב 0'1)
1 פטבֶטכפ( זְטוְחְבֶן )'
טס( )י
1 בהי
וטס (0)*
8 (95000598' 3161 ה 4 ) *
שטבכן(פַבַפה חפ זמ טנב '
6ב (פרְזשחזחפ' 3500653 ) *
1 אסנק8( [ט4חך7' [טסח)*
זט 0 :-
השזפסט :- תאכה (כָ) ' החטס(2)' טכ (כ)' (:?' האטט(כא)י
הס :- הרט (7)*
אפזך :ד שסך (א8זסט)*
זנ( [, 3000000" [ )960 [ 90 [9ן0סק 4סח,])' דרי
וטס (0)'
([9] ' י0) :-
זט 08[ (0'0'1ו) :- שקּזְבּבָ([)' 9191306 (0)' תטס(כמ)י
00 7)י
שכה (כ)' ווטס()י
טר( 0 0006 066 וצר גפ151, '0)*
זז סט( :ב( 0006 שנוע וי
זט סט (0 0 כָן) :- טסך (88ז₪05)י
זט סכ
( (91סק פַפַטַבָס30( [160) * 9זז2ט ([שג'0'1)] 0 נָנפּ)' 1
מז :- 8ן21ט אסט(0'1יכא)'
6. מערכת ניהול ספריות מסכי עזרה
מערכת העזרה מאפשרת למשתמש לבנות מסכי עזרה (כולל תמיכה בצבע ופונטים גרפיים)
לשימוש בתכניות 1א1500/ו. למסכים אלו ניתן לקרוא מתוך תכניות ]א1500/ו. בנוסף, ניתן
להפעיל את התוכנה כדי לקרוא את מסכי העזרה המוגדרים ל-1א1500/ עצמו.
המערכת מורכבת משני חלקים:
א. תוכנה של עריכת ספריות מסכי עזרה.
בעזרת התוכנה, יכול המשתמש לבנות מסכי עזרה לשימוש בתכניותיו השונות, תחת
1א150/ו. מסכים אלו יכולים "לקרוא" זה לזה על פי הגדרות הבניה.
לתוכנה מצורפת ספרית מסכי עזרה, שנבנתה בעזרת התכנית עצמה.
ב. תוכנת תצוגת מסכי עזרה.
מסכי העזרה יכולים להקרא מתוך תכנית פרולוג בעזרת פרדיקט מיוחד. המשתמש מגדיר
את שסם הספריה הרצויה ובמידת הצורך גם את מספר המסך איתו תעלה התוכנה. לאחר
כניסה למערכת העזרה, יכול המשתמש "לטייל" בין המסכים השונים.
ספריה מיוחדת של מסכי עזרה ל-1א1500/ עצמו מסופקת בצמוד לתוכנה והיא ניתנת
להפעלה גם מחוץ ל-%1א1500/צ, כתוכנה עצמאית.
8 מ 81560 פַה051
8
א%3חץ5 0108שץ
5 108516>6געק
0%
8 סשחסססטצם
איור בי - מסך עזרה ראשי של ואסס5!ז/
21
7. ניהול של שיגרות פסק (5)קטזז0)ת1)
למשתמש של 6=-1א1500/ ניתנת גישה לפונקציות של 8105 ו-005כ תוך שינוי וקריאה של
אוגריס (5ז681516ז) שונים. נציג מספר דוגמאות:
א 15קט6וחו 8105
/* הצב סמן על שורה 2 ועמודה 6 */
-: (1,06)ע0ספעגס
. (%686)16ת1 ,(2,0,0,0,0,0,2,0)אע2 566
/* גלגל מסך בכיוון :כ (מעלה/מטה), 68ם11 שורות, החל משורה */
/* 26 ועד שורה 15. החל מעמודה 61 וכלה בעמודה ע0, מלא את | */
/* המקום המתפנה ב-ע466 4662100606 */
-: (ע16,01,10,00,4%0, 65ם11 3[
. (686)16ת1 , (0,2%,01,10,02,ע65,4652ת11,ע21)אע 566
/* נקה מסך שלם */
. (902)0,0עטס ,(802011)7,0,0,0,24,79,7 -: 615
ב. פ>זקטחסוחהו 05
/* מצא תאריך נוכחי ₪
-: (עַ8כ, ם6תס, ע682צ, 040060%ע28) 6866
: ,8 ,(42,0,0,0,0,0,0,0)אע2 566
.(682,02,01צ)אשסץ ,( ,תסתסא,01,ת0, , , ,05006%עַ28)אע ₪66
/* בנה אוגר א מבית 8 ובית 1 */
-: (1081, 1081, [8טא)%שס
. ( 1פטא, 1/08[1, 80811)תס16ם , (8,10811, 81ט161696)11ס
פונקציות נוספות מתוארות בקבצים המלווים את 1א1500/ו, לצורך בנית קבצים, בקרת
מדפסת, תקשורת וכדומה.
נתאר שלד-תוכנה לבנית עורך (ז10ו64) בעזרת ]אאו5. התוכנה ניתנת להרחבה כך שתמלא
פונקציה של מעבד תמלילים מלא.
. ח068005173+10 %זֶ0ת5 4 : 586 שת */
פטס[[3 1036 ,ש3זקסזק 11טפח0ס-6011-8 518016 3 15 116] קת011061] שתך
.5ה6110תט] ₪4 818011164 165 שַה1פט 116תט ,₪0 ה1ת1%א פסז] 116] ג ]0 מַת661%1
4 0 660ה ₪6 ,008ה1ט שסת 3 ז0] 57866 31106366 96 35 103% , :686800
5 6:6 311003164 5) 86+) 50806 6זספ ת1%ט (זסקגהגפ-אסתגט שת+) כמטקט
. (35ק- ()1ט 3פשקט 8ת10861
- 06655זק 601116005%11 06) קַה638/1 ז0] [100 3 6טג( 0+ 15 ה₪0%143%10 6תך
,4 )1 שתַהבת6 8 6016 ,10 165% ,1[6] 3 1036 0) 6[כג 6ל 0+ |ההט ₪6 -
.0 00 ₪6 35 16086ט0ח) 38'5זקסזק זט0 4816קט ה
: 60168165זק 00) 6ה06]1 50311 ₪6
5 306 ,.1.6 ,1% 16ש5ח60 ח6] 306 116] 3 601% 0 - (641%)7116 .1
.6 תש ח1 10056 %0 0186565
]הגש ₪ - 1% )[50ה0560 ה6(] 4תג 116] ג 601% 0) - (6001%)/116ז .1
.56 זנ ח1 11056 601366ז 10 613565 601+66-ע[שסה 6+
12
תכנית ג' - זס1ו60
:ג 50 1/6169
וז 6 תא ו- 00 56% - ₪
4 500014 6 ,611515 6016 0 1[6] ₪6 ]1 כ- ת166-1 + 116) מסקס =
ו
65 זשקה64)1 ₪ ₪!] שַה1פ (- תג 6גו -
.6 צפת 26] 8076 ,אַת6011 ז3])6 (- )1]6-00זט -
0 61066 + 116 6105 -
.6 ששה 106 )[נפח6(60ז) תג6 ₪ ,151 ]4 -
/י
1 01 1 -: (001))]116
. ((600501:)1116) ₪116
0 | 1411 -: (16516)7116
. ((501))7116חססס) 416
-: (0) 616
.6 10085ש6תק 0551916ק 61856 1 ,(1 .9 )115סג
אגה 16 ₪ 1 | ,(00)7116 , (7116 0 זג
61 114 1 716 ,8 ,]06011
0 6 6 0 66 א ,)זט ]11 ((511)9)9ג
<ה6011 6 61356 1
.]זג 0% 6 ,/00 4 6פגה-116? 55גק 1 , (06 ,ל ,7116)+601
10 , (₪4 ,96011)9ת1]
160 ,ץ601 00 61|)64 11/06 . ((6811)0 ; (6ה20] זצ)
.5 ות 1 -: ( ]6011
.1 ,61 וש
!| )זג 6 ]1 011617 641626זק 315 6211 פג6 1 -: [6 ₪
. (061616)9/ , (9)8ש?
00 אַה601)1 610316 1 -: (6גו ,0 ,00) 106011
תע , 96 ,4 ,92 ,80 ,23 ,80 ,0 ,631802 , (/)) עשפ
-: (₪0 ,01))8ה1]1
. [גת121 זט 0) חזט6ז ,00 061616 1
. ()) סתפט , (61616)9הו
1 6 0 ₪0 162065 )טל 35] ץ[פט1)ג[6ז 15 6זשן 561 55סזק שח י]
6 ל 10 6 00016 ,30363 | ז6שס51 השטסמ)) ז616 תא |
16 00 6060 של 500016 11 10 066106 506 (61/1ק חס 10/1 אמט )
1105 651 376 1696 10 61056 6 , זפלסטסו| 6זשו] .0161156 05560זק זט
,165 ]0 2ה1ה1ק6ל 106 3% 65561זק 6 0) 1-8605ז0 05061 6 1601165 פגד
(השק-1ז01) .5 16 01 אזגקן ונ ו ]0 ₪6 ו וג
/י
-: (206 ,0 ,60110836
5 %ן ]1 116 104 1 , (אג)141116
.1-1 )91 6116 [1וט 1 16
קה[ 116 ממ!גגת ק 1 , (116 ,605)255קט
, (151. ,16| גת
פה[ תג 506181 ]1 55 0) 0% 1 . (006 ,ג ,198)1151ה611
11
)] ת!-א6ז 1 -: (14/116)88
. (6גא)ם16301פ , | , (8396) 611515
. ( )141116
: ךז [ג5761 3 ]0 6816 16 6 */
()
0% ו ₪ 0 ,11 1 גפ סט 1001 | -: (1 ,גא ,[.51] )מ15ת6/1
. (8ג₪1)6)0
06 1 86 ס פ-1זו0 1 -: ( ,גא ,[ :15))2ה6)1
1( 1 ,1
(00000ל9) 6011 60 0171-8 1 ו
)1 ]תו6זק 10 116 1 הזנס6ז 1 ,(6 ,5615)0-1מא , ( שת
. זזש 6001101 6 1 ג 1 מ
3
6 5311 6 .10085-ז56ט 115 15 65זט636] 65%קַה0ז5% 5'ק₪ ]0 6ח0
6 קח51ט ז0פזגק ₪7 106 10 16 %ה1[ 4ת8 ,זבתפהזק 66ז]-%א64:ת60 8 6ז6ת
.00% 618056/2 60806
5, ,א6אקְַתַח13 70108 06+ )0 5356 06) ,6ה1ת836 66ת6ז6]ה1 1081681 6תך
1 ק<ת311ז2600 306 קַה51ז3ק ז0] פה63ת [ט]ז6טסק 3 6ל 60 6סלסזק
- 6ַגְַתַה13 10108/ 06) ]0 ת121ז0 176 05 115 ,80%] ת1) .פשַאַגּטַתַחה18
6 83[1126ז0] 804 65[ט] זהפפ3זק 655זק64 10 10210 056 10 8116501 תה
(!! 00655זק תַה51זגם
1[ 6 - 10216 61356 1%6ה06)1 3 קַה1פט 11%של 06 ה63 צ6ת1
0 ז3קַע5 180616ה57 8 - :213853 018056 8/06/1116 5008 6ז6ת 156ז6650
ח1פ465011 ת206 ז0] 56/61 6ז3 0005 .אג)הל5 270108 עְזגה61ז0ס 106 6ת6ז6%
.1 30317215 ז0] 35 6אַהת0ח18 06+
-קח11ז5)0 .1 .ז0 על ?₪ ז0) ה1)66זט 5גע 0066 קַח1ס011] 186
-: (56ש0102013ז0, 382310016 21 ) 851856 ז+
6 ]0 6401031606 0108זק 06+ 15 7010018656
.6 3זק 6[ ז3853זק 66ז] ]א600)6
/
. ('', ץ)א,60)ק0 -:
הטסח 38 ]0 60051505 16 )1 ,ז50זהק 200 6ת] עס 664ק3066 56 [11ט 06ה06ה56 א '/
.6 פז6ט 3 על 10110864 56בזתק
/י
-: (((800 -: 636]), (5(₪ <-- 05]) )51816ח18)%
!, (15פא, ע800, 5ח513%6)8ח3ז%1 , (515א, 2636], 5ח/780513+6)1+%
1 ו[גַּה81ז6)הסה 6300 10 06-115%ה6ז61]]6 פת+ 400 '/
/י
-: (515א, (41,81), (8, 513+6))4ח73)+
!, (51?5א, 81 51316)8ח3ז% , (551א, 41, 51316)4ח3ז)+
604 %סה 3]6 16טז זהממבזק 06] ]0 5166 שתגתתק1ז 6( ז0) 16568 60:83 '/
5 ח13+10פת73+ 200 06+ על
/י
.! -:(0,55, (368615)0זל ץ1ז60 ה513%6)1ח3ז:4
-: (6,5ט0]), 51316)45ח3ז)%
. (5, 566066)%5 /,! , (815)85ה6181+
-: (41,5, 51306)4ח3ז++
-[6ז,5,]] ..= 1 , [85ז,?] .=( קפ
. (3+08)0 -: (31)4ה81ז16 חסת
. ([5א:א])315ח81ז0+
. ((])6:810315+
-: (15[50א], [88:א] )560606
. (550, 8046066)%5
. (5א5א, [ ] )5606006
! 1000 ₪86 - ת56ז8ק 8'ק₪ 60 151516ץ 65[טז 811 ₪306 */
₪
/
-: ((1 -: א), (8 ג-- 613056))4 6003800
.((1 -: א), (8 ג-- ))513%6ח3ז)%
תכנית די - דוגמה של 66
4
[ףאשא - 10ע] [6ט061/ע0ק00 - 9ע] [65126ת - 22] [8גזם - 21] <<<60666ק55 פטקח1>>>
7 צאטזךץ
|4095ה%1,ה2,0ה100%,15,15,57301]
5
טס6ת₪1 806ת7 שס6ת1 13108
.3 -7 | :שת861::|ט56,12516,0ה6520)תְ6תגּם
1 :611 [0 , (0)סתתחו
001788(7, 11768,01776)תס> 61128 :₪411 [1] (5טק5ט0)ץ601ז
7, צאתדדת, 26:6866)2,2,30,20,38,30,1> :6311 [2] , (1)סתמט
7 אד 9₪6168:6)2,2,30,20,38,30,1 :15א6 [2] | ,(1:טקת66)1ה6ה56 686+
717, 1, ₪0:6856)2,40,30,20,39,30> :6811 [2] .(51,1,0טקה061123)1
7, 9676856)2,40,30,20,39,30,1 ::1א6 [2] -: ([8636|1811])ץ601?
66)082768(71> :6411 [2] (156)08630:₪
?(0)שסמ> :15א6 [2] ((' ')6ם1זט
7 )חא :6411 [2] . (1311)ע901ץ
7 תח :15א6 [2] -: ('[]')ץ601+
77 61123 :18א8 [1] .1
1808(7)טקת06)1ה598ת56 686ע :6811 [2]
27 :0411 [3]
7( פשס6ת1, חס קַת1686)]100%,1%,15,5:861 :15א6 [13
5
|! 7- 6.
איור גי - ניפוי של .51.12 בעזרת החלונות
דאזד?
7
? עב 66 1661 ת%66+0 טסץ 40 .[1,]661,51:66] |
ש6ת0%ע5 8508 0:6ס₪ ₪6 5611 טסץ ת08 . [ץסת5ס:ל, עם, 66,1,₪6%ה51] |
חס ₪0 216856 .[סה] |
ץח 11%6 צ11ת8+ מטסץ ת1 6156 6הסקת8 606% . [16עץ55, זטסץ, 1,1186] |
7 5516 ן
חס ₪0 216856 -[65ע] |
7 50 את1ת6 טסץ ₪8%65 מגתט .[50102,18,268%ק,₪15608,אה1ת1,6] |
7 וסץ 56626 1 א%ת1הם טסץ ₪4%65 6גת> .[56626,₪6,טסץ] |
חס ₪0 16856ק . [וסץ, 6ז3ת,1] |
צסץ 061264 פטת 1 שקסת 1 .6ע60065 -[6עפ] ו
איור ד' - שימוש בחלונות: דו-שיח על בסיס תכנית 51174
8. הפעלת התכנית
שו- (6)0818-0856- (5126-5)6180%- [116)-51816] |א1500צ
הסברים:
6 - שם קובץ המידע הראשוני, אותו תעלה המערכת (ברירת המחדל היא קוב
5)..
(51916-5126) | - מספר יחידות הזיכרון שתוקצנה למחסנית.
(6418-0856) -- מספר יחידות הזיכרון שתוקצנה למאגר הנתונים.
ש - תחת 26 בלבד, לעבודה עס חלונות.
5
08
| 10₪]זטס 111ע (67]]טל פזהט') 80305 1(6 ,80065 60] 8 ז4])0 6 (המשך)
:0 6+ 6077606 ₪111 6006 קַה011061] שתך
8 |(010316תק 698108016) 64108%6זק 1000 ]46סזק עח3 פתנפט 533% ,סו
(0386) ע13ק חצ ,54316 100%60חט תג 01 6פט 6(] 65ז16001 ,ה518 + 8 ה16א 503:15 6פפת
, (ז136? ,ת051%10? ,101131126)0386 . (1) ח1 חאסח5 35 קַה1אזסט ה6חא
, (ז0ץ13? ,,ח2886)2051610 015018
05 6100(5זק 07886 1 , (2, ח081%10ק+)ח30115 8 1086 60 ,178661 6(+ ח1 ח10)ק0 'ל' 16 6ט 0 )הג טס? 6פסקקנפ .1
051000 .16ה1 5506 5 | ,((ז6ע713 ,ח051:10/)ת40051610)+ז3550 : 15) 1186 100% ₪126 1% .50611 ץז3ז6500+
!! 5611 ₪8 6קַהגת6 1 . ((עָ13ק -: 8850:6))57611
| 1051 06 111 80366 678067 106 ,30070 1/06/5600 1 600360 -: 611ת5ס
-: 13 1 26 11'5 ז68606ז טסץ 6זט5 1/5386 | , (' ?:א6(' )015013 ,1תע%)
ה10ז051ק 1606זז6ז 1 ,((ז218/6 ,ה10ז2051)ה051110ק%)617801ץ , (! , (0081, 00819)) 2081 630306 5 , (%8 ,517636)00315
, (865411 , ז6ץ18? ,ת2051110)ז006 8886 . (8), 0081)) 100655
. זז 0 תקט)6ת 5 .( ,06655)641%זק
1 ז1ש06/3 10 תזט)6ץ (- זסט0 15 235 1 , (0 ,50611)ת30115 -: (8), 06055)60081זק
; (+6)86501סתטסחח8 .1 ,! ,(0811)0081,08 886
6016 (- 15064ה1] 0%ה 2356 1 .(₪65016 ,ז6ע13ק ,ה051:10ק)עג1ק :
ץ[ )הס ](518 ,8081 ה91ח ז61ת) ז0] 0007510 056 3%) פאגזקסד) .2
-: (86511 ,018/67 , 0511100ק) ע18ק 1 8ה1001) 800031 116 0065 ל - 01685סזק 108]זסטס/ 4-08 51808 שעת
, (0006 ,01367 ,0051%108 )5090 60056 .1 ש6ת+ 60 תַה1תזט760 261076 08%[ 8ז16]טפ
, (05101001 ,100ז051ק 8 8 38ז0ז] - 28505 8ה131ק ת0] %[7732600' 06+ 850[6ה6 ז0] 0005106
, 81361 ,2386)205101001. 015013 :01/0108 + פתד' ת1
, (611ע13/ , 1367?) ז6ע13 )אשת
ו -: (13/)0386ק
חק 6 51086 5 , ((2136:1 ,40051:100)205101001)+85501 , (13/6? ,ח2051010 ,11181126)0386ה1
, (ז136? ,ח2356)7051+10 0157137
.11 800111660 הקטסזת+ תזט1סץ ,031 320115760 1 81308 66ז] 5 .6ז0פה -
. (+86501 ,21361 ,ח2051+10)ע218
ץ[פט10צ6זק %ט0ת11ע 1-0ז01 :0 ]זסס3 ח3 ת1%א 6זשת 6ַה1%1צ64 6+ ,%6סון
.36 6+ 01 ?ז? פטסטת600:1 68056 ₪111 ,50611 11ש66]8 106 8ה16-56011
.16061 3/ 0/0 2386 76 81 5100-ז96ט 8 ז0] 81108 :676/0ת1 16טסת5 טסצ
4 תג 06 ז0 אג6זל-07פט 8 ז0] 35% 10 ]11561 6010816זק 6ת+ צ20011)
(64163%6זק 13/0ק 6+ ת1 018686
-: (+6501 , 71361 ,ת2051+10) 13
. (+6501) 6סחטסתת 3 ,! ,(₪6541% , ז1876? ,ה0051110)ז0/6 386
-: (86501% , ז1876] ,ח0051%10) 1
, (₪0%6 ,18/61 ,ח80%6)7051010 080056
== , (1ח2051%10 ,ח2051+10 , 6ט0]) סטסת
(ז6ע13 ,1ח28₪6)2051+10 0150137
, (811ש13? , ז0ע213) ז6ע13ק )אסת
. (+₪0501 , 1ז2136 ,2051%1001)ע13ק ,!
תכנית ה' - שינויים ברמת ה-|5061
נספח ב'
אופרטורים
את פעולות החשבון של פרק 8 ואת הפרדיקט 501 של פרק 11 הצגנו בצורה של אופרטורים.
ניתן להגדיר בצורה זו כל פרדיקט של אריטי 1 או 2. כדי להגדיר אופרטור יש לציין את שלושת
המאפיינים: קדימות, סוג של התחברות ושם.
א. קדימות (66606006ז2)
קדימות של אופרטור מוצגת באמצעות מספר שלם. בגירסת 01.000ק-1א1500/ו המספר הזה
נע בין 1 לבין 1200. נציין כי בגירסה זו הקדימות של האופרטור "+" הינה 500, והקדימות של
האופרטור "*" הינה 400. באופן כללי, האופרטור בעל הקדימות הגבוהה ביותר מתקבל בתור
הפנקטור הראשי, אשר על כן הביטוי 2+3%5 מתפרש על ידי מערכת הפרולוג כביטוי מורכב
((2,*)3,5)+.
ב. סוג של התחברות (ת9550012)00)
הסוגים של האופרטורים: אוחו, א6זק, או!ופסק נידונו בפרק 8. בין שני אופרטורים בעלי
קדימות זהה מבדילים על ידי קביעת סוג של התחברות. את טוג ההתחברות קובעים בעזרת
הסימוניס האלה: את האופרטור מסמנים ב-], את הארגומנט בעל קדימות הנמוכה מזו של ],
מסמנים ב-א, ואת הארגומנט אשר הקדימות שלו אינה נמוכה מזו של 1 מסמנים ב-ץ. בעזרת
סימוניס אלו ההתחברות של האופרטורים מסומנת כך:
אופרטורים מסוג אםו:
אא - הקדימות של הארגומנטים נמוכה מזו של האופרטור.
עוא - הקדימות של הארגומנט השמאלי נמוכה מזו של האופרטור.
אוץ - הקדימות של הארגומנט הימני נמוכה מזו של האופרטור.
9
אופרטורים מסוג א611זס:
% - הקדימות של הארגומנט נמוכה מזו של האופרטור.
9 - הקדימות של הארגומנט אינה נמוכה מזו של האופרטור.
לסימון של האופרטורים מסוג א11פסס: א, 1ץ, ניתן פירוש דומה.
נציג שתי דוגמאות:
1. אם ההתחברות של "-" הינה אוץ, אז הביטוי 7-4-1 מתפרש כ-1-(7-4).
2 אם ההתחברות של זסת הינה ע, אז הביטוי 4 61 ₪01 מתפרש כ-(8 ז1סם)וסת.
אם ההתחברות של זסח היא א, אז הביטוי 8 1סח 01 אינו חוקי: הביטוי הנכון במקרה זו
הוא (4 01ת)זסם.
ג. שס (6חזגת)
השס של האופרטור הינו אטוס.
את האופרטור פס מגדירים באופן הבא:
. (11%68 ,אא ,200)ס -?|
. (6ת8 ,צַ+א ,100)קס -?|
באמצעות האופרטוריס שהגדרנו ניתן לרשוס את הביטו:
((חתה לת ,רת65)10א11
באופן הבא:
תתה 300 זגו 11865 ותס+
כמו כן ניתן לרשוס את הביטו:
(((2ו] ,מת0)8ח3 ,לז0)18ת3 ,ות65):0א11
באופן כדלהלן:
2 86 תתה 326 עזג 11865 נחסז
נציין כי כמה אופרטוריס בעלי קדימות והתחברות זהות ניתן להגדיר באמצעות רשימח.
להלן אוסף של האופרטורים שהוגדרו מראש במערכת 1520%1-28001.00/ץ. הסימון "-:" לפנל
ההגדרה משמש לציון של שאילתה (ראה איור 10.1 של פרק 10).
0
(-? .-] וא ,1200)קס-:
.([?-- ,-> ,(-:)] ,א/א ,1200)ק0-:
.(';' ,ע+א ,1100)כ0-:
.(',' ,צַ+א ,1000)כס-:
. ([%סת] ,א+ ,900)קס-:
. ([=<,18,:=,=..,==,==,=;=,==,6,<2,=6,=,=],א/א,700)קס0-:
([- -+] ,זע ,60 -;:
-([(-) ,(+)] ,8 ,500)קפ-:
- ([// ,/ "| ,אפ ,60
. ([₪06] ,א+א ,300)כס-:
נסכס ונאמר: במסגרת נספת זה הדגמנו רישוס של אופרטוריס בתעתיק של פרולוג. אלה מן
הקוראיס אשר מעונינים להרחיב את הדיון בנושא אופרטורים בשפות תכנות, יוכלו למצוא
חומר לימודי רב בנושא, למשל סעיף 4.6 בספר [1986 ,018615 .8 0 4], או פרקים 11, 12 בספר
[1971 ,021165)]
יווהו וווווווווווווווווווווווווו
:₪ת0+ שת% ת1 הג06:1 15 אס1גאםקש חה
6תשחט (115%5 תת ,6קעם ,606ת66616תק)קס
- ע1%ע102תעק 5ע8502עת6ק0ס שת% 8ת1ה06+1 1200 60 1 שסץ+ ת686ה1 ת3 15 66ת60606תק
.חס%1הט6081 0% ע15ת10עק 6תף 20868 6תם 66ת60₪06תק שת6 110388 שת
(5ץ ,%א) אזעך05ק עס (צְ+א .א+ץ ,א+א) אנקא1 .(צ] .א+) א1קפהק ת6ת615 15 6שקעף
8 שאשתם 6 שתם שה (55ה6מטשַת) 00588805 6הת46+1 ע שה8 א 6שת%
5% חהתף 120088 6ס ₪055 כאג58ק0 שת+ 0% 086ת66606עק 6ת5 מהּה5 5ה₪68 - א+
.ת678%0ק0 6ת% 0%
ףהת> 60 50042 6 ה63 0א02284% ש6ת% 0% 66ת60606עק 6ת: פאה5 5ה68ם - צ+
.תעסס8ת6קס 6ת5 +01
6 תעששאס1 שטאת 5-60 תעסה 8-5 ע6ת61%ה - 1116881 :- 8-5-60 נ- א)א
.עסת05 ת686 60 6ש618%1ע
-)-)8,5(,6( - 6-(8-5) י- 8-5-6 ג- א+ע
((5,0פ)-,8)- -- (5-60)-8 - 5-6- ;- צַ+א
6ת% ת6נ1תט עס שההה 6ה+ 8ה1ה46)1 350₪5 0% 1155 8 עס 108 הבה 18 115% 6מהה
₪6 ₪111 ת850ת6ק0
56 69-ה 8אָאָאָאָם 6:50:5ק0 25562 [ווןןןןווווווווווווווווווווווווווווווווווו
איור הי - מסך עזרה של 18200%1/: הגדרת אופרטורים
21
85 דצ
ווווווווותוווווווגוווווו
שחהת עס ב צנ
ווווווווווווווווהווווהה
8% 1200
%אפא 1200
עצ%א 1100
עצ+א 100
5% 100
ע+א 5
ע+א %00.
%+ 200
%א 200
אפצץ 00
1% 00
אפצץ 1000
אתא 1200
גוווווווווווווווווווווווווווווווו!וווו -<> >-< מווווווווווווווווווווווווווו
איור ו -- האופרטורים של ]150%
12
נסיפח ג'
סביבת עבודה 6ס0זַסאק - זך
נמסר באדיבות: טקסל אלקטרוניקה בע"מ
דרך פתח-תקוה 37, תל-אביב
1. תאור המוצר וסביבת הפיתות
חברת פדא5)אזד5א1 755 מציגה את 1-006ַ0ַאק-1ד, המשולב בסביבת העבודה של
ה-1/0858קאם (מכונת 1152 של פדאט)אעו ד5א1 5 אמד). סס1סאק-וד הוא קבוצת-על
של 280100 10-ו56ץסמכ ועל כן הוא תואם את רוב יישומי הפרולוג הקיימים (כלומר
הוא פרולוג תיקני; אין סטנדרט דה-יורה אבל יש דה-פקטו, אשר מזוהה עם 10-וז56ש505כ
ומכונה בשם "אדינבורו").
אותה מידת תמיכה וסיוע הניתנים למתכנת 1185, ניתנת גם למתכנת ה-100סאק
ב-10358קאם.
ה-0100אע של זד מספק:
- עורך לקלט - הרחבה של ה-₪01108 21405 לתמיכה בשפת ה-100סאק.
- השלמת שמות קבצים - א]אגאאצזאק.
- השלמת שמות פרדיקטים של המערכת ושל המשתמש.
- הסברים לכל הפרדיקטים של המערכת, עם אפשרות נוחה להוסיף הסברים גם לפרדיקטים
שמוגדרים על ידי המשתמש.
- מישק עבור 1009 כאגאוא60 541פצזא כמו במערכות המשנה האחרות
ב-0888 1קאם.
- אפשרות לשמור ולדפדף בהסטוריה של הידברות (ם0ו461ז16ח1) עס המערכת.
3
.2
קוא 01/00 אק, שמופעל אוטומטית על כל הפיסקאות המוקלדות.
תכונות נוספות
התאמות במיקרוקוד של ה-0858/ 21 א להשגת ביצועים ברמה גבוהה.
קומפילציה אינקרמנטלית: ניתן להדר (6!וקותס6) חלקים נבחרים מבלי להדר את התכנית
כולה.
עזריס בנוסת 10-316₪ש0מכ, הכוללים אסנזאזתטכ. 0א1ז40אד1, פדאוס צקפ,
קט 100%
טייפול בשגיאות נעשה באמצעות מערכת ה-1.1152 הסטנדרטית.
אפשרות בלתי מוגבלת ל-01.41155 ,455587 ו-ד4/0 578 לקוד שעבר הידור.
אין צורך ב-411105 561/45 עבור פרוצדורות דינמיות, מאחר וניתן לראות את כולן
כדינמיות.
אופטימיזציה של א0118510א .זזגד.
ניהול הזכרון נעשה באופן אוטומטי.
על-מנת לספק שילוב מוחלט בין 1152 ו-8001/00ק, ניתן לקרוא ל-1152 מ-01.00אק
ול-801.06 מ-1.152 וזאת משוס שלשניהם ייצוג נתוניס משותף. מאחר והגישה ל-1.152
כה נוחה, 11280100 מאפשר גישה מלאה למערכות התוכנה הנוספות של
ה-1/0858קאם, כמו למשל ל-1א515צ5 שספאזזש.
מספק כמה תכניות לדוגמה המתארות את עוצמת המערכת. למשל,
דדפםת 100[( ם516ש5 זזסקאם 16-08564טת) הינה קונכיה של מערכת מומחה הכתובה
ב-00/ 1סאק.
על-מנת לאפשר כתיבה של תכניות 001.00אק גדולות, ניתן לארגן מודולים שעברו הידור
ולטעון אותס באמצעות מנגנון, המאפשר טעינת מודולים של 1/187.
0% בנוי מתוכנת מיקרוקוד ותוכנת :115, ואין כל צורך בשינוייס או תוספות
לחומרה.
הדרישות: מערכת התוכנה 085% 51 במהדורה 2.1 ואילך.
24
9 תת 00[
/. 50ו] 0ס 0|08ז₪ 6ה% ה! ה₪60005178%|0 8 5ו פהואס! [0+ ש6חד
. בשחה 6וו+ 5 חס 6070870 %(60050 6ה+ 056 .866+ז6:ה1
.הטז ||!א ":ז 1 ו
. "88001 0% 5זשאס]" ה6|ססזק [6!855168 שח+
/* 0ח8 5076670 שחש 0% 0סם שתם חס אססהוא 65|הקהזף 6ה% ה! 01501360 6ם ||!א 65|הסהזם שחז
: " : 2
6 .| אס|6ם ז6ה1556! 150ו| שח הן 60ע50!8ו₪ 6ם ||וא סשקזטס 60זהוזם 8
/. הסום3הז0)ה! 6זסה 96% 60 0ה8 0670 6ה הטז 60 אסה אסתא 60 6||6 6א6.:6ה-680] שה+ ₪680*
./
*"*""י**/
/.
/.
/.
/.
/*
/יווו'וווו'ו'וודווווויוווודווווווויווווו'וו'וד'ווו'יו'וווו'ו'ווידוווויויוודדיויורויווייייי]
- ( 01ה8ח)806א₪6%036% -1
.(-,['!0ה8ה; ז!א-ז08:5587:6!סזק-|ז' ,'0ג8|)]'|)0צ6 -:
-: (א)וסחםת
אססח!א %טק%ט0 השח% פָום 00 5! א 16 1 . (אסטחא. זטקזטס, [א], *א:561-5686*: ' ןוטאג )ץוססה
5 0"60!608566 5וחש ₪ה8 |וה 15 1 [] =- <00ח!א, +טפזטס
זז
ב[ 6-₪א': ' [סאגא ]) !68
זז עפא כא6 |ו%הט 668%: 1 .(אססהוא.+טקזט0,:תף!ה ,ז6:ה66 ,:+6! ,א)5א5ו8.0שסה +
. (- ('א0|*:'06551-56025א8!)]'₪4צ0
-: (-:2:-:-5000א015%. 6שכ
-: (אסשה|וא )טק%ט0 ,00!63 ,00[62 ,|0!6ק ,א)6.0!5%5/סח
רז 1:866 , (אסטח!א. +%טק6ט0, ') 5א5ו006.0 : פס|סזק')6)!זט
, (אסטח!א. )ניקזנוס. זט
, (אססהוא %טק)ט0,* , ')6)!:ט
. (00%ח1 א זט %ט0, [016ק )6 זא
, (אסשה]א %טק)ט0.* , ')6:!:זא
. (אכשח!א )ווק ט0, 6000162 )| זא
, (008ה!א )טש%ט0,* , ')60:!:א
, (אס00ח וא )וו זט0, 03 001) 6+ זא
, (אסטח!א. זטק%טט, *(')6)!]ע
( סח לטק +ו0, | ) וח
| 5 א
, (אססה!א.)טק6ט0 ,20162 ,0!63ק ,[0!6ק ,06-0158508
50!| 167806 , (אססה!א.6טפ6)ט0,') א0:86-0!5% : - 6)'/!50:!זת
, (אסטח א. לטק ט0, [16סי])6+! זא
, (אססהוא.%טק%ט0,* , ')66| א
, (אסטח! א %טק ט0, 00162 )6 זי
, (א0ח !א )גו זטס, * (')%6| זא
. (אסטיז!א. +טק+ט0, | )וח
ו
, 'א68-015ע*: ' [סאאה' ] ) ו|8צס
4 שא 0ה6 )| 5|ו8+ 1 ([ ].[[162סס, ]000 ], ( 61 וסק, 6 ז סי ]
. (00%ח1א %טק:ט0 ,|0!6ק ,₪0!62 ,0!63ק ,6.015%5)8טסח
תכנית וי -- מגדלי האנוי ב-106סאק-זך
5
3
5 ץ6זפהץ
. זסשסן
ק6זפ
ק56-+אפא
+גו)
6
סנתע 01ת113 01 ז6שטסס1
, ₪670%609(
("חס%חהספם , 97%ו" , 1₪%%
(%ה9ו] , הש6+הסם ,
(ז060%0 , %ה98ו; , %%+16
(90%)" , %86ה₪6 ,
(זס+הפס , 970%וח , 16%%
(%ה9ו" , +
("ס+הסם , %
(%+10 , חס+הסם , %ה9ו:
("ס+הסם , %ה
(%ה9ו" , %
(%%+18 , %ה9פוה , %67ה6ם
(%ה9ו" , 1₪%% , זש%ה6ם ,
(++16 , -%6ח6
(%ה9ו" , הפ+ה6
(זש%הסם , %הפו" , %+1₪ ,
(%ה9ו!" , %+₪
ריר רת
תש = ר-₪ = 0 =
₪ ₪
- ₪
יכיכירו ילל 09לד א
איור ז' - סביבת עבודה של 00 1סם-יך
8% חי
5 6עצסח
5 6טסת
%5 6צסח
5 סטסה
%5 6טסחה
8% רו
8% הי
5 6עצסח
8% 6
8-ל
5 6ש6טסח
5 ו 6טסחה
8% רה
8% חר
5 6עטסמ
5% רוט
נסיפח ד'
הפרוצדורה 6ַחסקקגּ בפסקל ובפרולוג
בפרק 9 הגדרנו את המושגים הבאים של פרולוג: פרוצדורה (6זט660סזק), רשימה (:185). קוראים
רבים יודעים, שהמושגים האלה מקובלים גם בשפות פרוצדורליות. בנספת זה נשווה בין 6ת6קקג
בשפה פרוצדורלית לבין 6ח6קק3 של פרולוג.
הפרוצדורה 6ַח6קפגּ בשפה דמויית ,45641:
; (1.197 :13 עהט ;1.157 :12 ,6)11ת6קק8 6עט0סססעק
51 :7 10681 תבשסס
2 =: 13 םשת% 11ת = 121 11
0-6
תדשסס
; (7 ,22 ,(6)%811)1.1תסססה
(? ,(5)26806)11ת60 =: 13
6
]תס
הסבר:
הפרמטרים 1,1, 1.2 - מצביעים (8ז6ותוסק) לרשימות (1185).
הרשימה - רשומה (6ז660ז), מכילה שני שדות (₪6165).
את השדות של הרשימה .1 נסמן ב-.680)1ם ו-(1411)1. השדה 1636 מצביע על רשימה או על
אטוס כלשהו, והשדה 1811 מצביע על רשימה או על אטוס מסוים, הקרוי !וח (בפרק 9 סימנו
אטוס זה ב-]). הפונקציה ([5)1636,041ח60, דמויית 1157, בונה את הרשימה (בפרק 9 סימנו
פונקציה זו ב-401).
הפרמטר 1.3 - מכיל את תוצאת השרשור של 1.1 ו-12.
המשתנה 3 - מכיל את תוצאת הביניים.
207
נעבור עתה לפרוצדורה 6ת6קק8 של פרולוג. ההשמה (וח6וחתק3551) וההסתעפות המותנית
(פֶתוםסתגזט [4תסגזו6תס6) של פסקל הוחלפו במנגנון של פרולוג, המכיל חיפוש, התאמה/איחוד
ונסיגה. כתוצאה מכך, נגרמו השינוייס הבאיסם:
1. הפרוצדורה של פסקל קלטה 1.1 ו-1,2 והחזירה פלט 1.3. לעומת זאת, בפרוצדורה של פרולוג
הפרמטרים 1.1, 1.2, 1.3 איבדו את המשמעות של קלט-פלט, שכן ניתן להציג גם שאילתה
מסוג זה:
?- 8הקק6ת6)11, 12, ]8,5,6[( .
31=ְ[
12 = ]8,0,0[
2. כמו כן, הפרוצדורה של פרולוג מתזירה תשובה, שמכילה משתנים:
. (13 ,122 ,[6)]8,0תס6סקה -?
0 = 12
[1280 |ס ,8] = 13
3 ובנוסף, הפרוצדורה של פרולוג מסוגלת לייצר יותר מתשובה אחת:
?- 8קק6מ0)11, ]8,0[, 13( .
[ז = 11
] = 3
[1186] = 11
[סם ,8 ,2180] =
=
0
[
לקורא, אשר מעוניין להמשיך בהשוואה בין שפה פרוצדורלית כדוגמת פסקל, לבין פרולוג,
נמליץ על המאמרים האלה: [1985 ,ח6ת00], [1986 ,ח6ת0) 6 פותהגן!ו/צ].
8
נסיפח ה'
סביבת עבודה 006ַ0אע-50א0ד
נמסר באדיבות: גושן מחשבים ומערכות
ת.ד. 33
קרית אונו 55100
1. טורבו-פרולוג (גירסה 1.0)
טורבו-פרולוג הינה שפת מחשב של הדור החמישי המביאה לתכנות מימד חדש. בגלל גישתה
הטבעית וההגיונית, הן אנשים חדשים והן מתכנתים מקצועליים, יכולים לבנות יישומים בעלי
עוצמה - כגון מערכות מומחה, בסיסי ידע ע"פ הזמנה, מישקים לשפה טבעית ומערכות ניהול
מידע מתוחכמות.
טורבו-פרולוג מתאים לפרולוג הסטנדרטי, הקרוי "אדינברו".
חבילת התוכנה של טורבו-פרולוג כוללת ספר הדרכה בן 200 עמודים, תכנית עזר המטבירה
צעד אחר צעד כיצד להשתמש בטורבו-פרולוג. כמו כן, מסופקת מערכת-עזר "ק.1151* מלאה
עבור העורך. את כל הפעולות ניתן לבצע דרך תפריטי "אאוסכ 11טק".
כמו טורבו-פסקל של חברת בורלנד שנמצאת בשימוש רחב בכל העולם, גם טורבו-פרולוג
מספקת סביבת תכנות מוכללת מלאה. עורך תמלילים הנמצא בחלון, עובד יחד עס המהדר כדי
ליצור קוד מקור מושלם.
+ מהדר הגדלה מתקדם.
המהדיר מעל ל-2500 שורות בדקה על 26 18% הסטנדרטי, ויוצר קוד (מכונה) מקומי
ומודולי-יעד הניתנים לחיבור (בתהליך %א11). פורמט החיבור תואם ל-8שאא11 של
ה-0-205ק. התכניות מהודרות לקבצי 8% ויכולות להיות בגודל של עד א640. ניתנת
תמיכה לקבצי מכנ1סאז.
109
+ עורך תמלילים הידברותי
מאפשר התרת "באגים" בקלות ובמהירות. כאשר המשתמש מהדר את תכניתו, העורך
ממקד את הסמן אוטומטית בתכנית המקור, שבה נמצאת הטעות.
+ סביבה רבת-חלונות מיוחדת
מאפשרת לנוע קדימה ואחורה בין החלונות. היא מציגה את העורך, תהליך המעקב, תכנית
המקור, מטרות והתוצאות של פרולוג - הכל בו-זמנית. המשתמש יכול לשנות את הגודל
והצבע של התכניות, כדי שיתאימו לסביבת התכנות שלו.
+ גישה ותמיכה מלאה של 05.
המשתמש יכול לתת כל פקודת 205 בתוך תכנית טורבו-פרולוג שלו. הוא אפילו יכול
להריץ תוכנה אחרת מבלי לעזוב את תכניתו.
+ הכללת עורך טורבו-פרולוג בתכנית.
בזמן ריצה, תכניות טורבו-פרולוג יכולות לקרוא לעורך, המאפשר לצפות בקבצי תמליל
ולערוך אותס.
+ תמיכה מלאה בחלונות גרפיקה וטקסט.
מאפשרת ליצור סביבה רבת-חלונות עבור תכניות המשתמש. ניתן להזיז ולשנות גודל וצבע
בכל החלונות.
+ מידות
טורבו-פרולוג פועל במחשבי 1/41א/20 1א18 תואמי 6ק ו-5/2ק-1א18 תחת 005כ-15א או
5 (גירסה 2.0 ומעלה). ניתן לגשת בנקל לזיכרון ה-26 ולחיבורי ה-1/0. ניתן לחבר
מודולים בקוד מכונה לתכניות טורבו-פרולוג של המשתמש.
+ בסיס נתונים גיאוגרפי 00845 לשפת שאילתות טבעית
המכיל מידע גיאוגרפי של 1154- נהרות, ערים, הריס ודרכים. מושלם ומוכן להידור, מכיל
תכניות מקור מתועדות. ניתן להשתמש בבסיס נתונים זה כמו שהוא, או לשנות אותו לפי
הצורך. בסיס נתוניס זה מאפשר ללמוד על טורבו-פרולוג.
2. טורבו-פרולוג טולבוקס
"טורבו-פרולוג טולבוקס" הינו מוצר נוסף של חברת בורלנד הכולל שישה מרכיבים בחבילת
תוכנה אחת המכילה כלים עבור:
+ עיצוב תפריטים,
+ הכנת מסכים, -,
+ גרפיקה לבתי עסק,
+ העברת קבצים מהתכנות הבאות: אםזקם, 5[ז1ק 48450-11]1, לוטוס 1-2-3
ו- צא0ת1א צפ,
תקשורת,
+ ניתוח דיקדוקי.
*
טורבו-פרולוג טולבוקס מוסיף כת רב לטורבו-פרולוג ע"י יותר מ-80 כלים (8000 שורות של
קוד מקור). כדי לסייע למשתמש המתחיל, חבילת התוכנה כוללת 40 דוגמאות של תכניות, אשר
מדגימות כיצד להשתמש בכלים אלו של בינה מלאכותית.
100
0% קט בצ 25 1% 6-כ
תטת
יי
90 מְש: 156 660% 7:06:65209 166 :א6ך
58 ווק
(0805:ה81)1ז017521
201
.(521581)400ע201, (165)1,1,8תק8זק
8
,((120:)62ז,()07%86+ -: (א)1:81ק5ע201
. (צ)615000,2017521181צ,100+א%=צ
86 ו
6
056 11256 168568 01+ עס ת510ק0 561605 156 -< 05 >-
איור ח' - המסך של טורבו-פרולוג בעת עבודה עם תכנית
"₪88 = 176 בצש-ק
וו
,
איור יי - הרצה של תכנית בטורבו-פרולוג
391
רשימה של תכניות ופרוצדורות
מבוא
תכנית לוגית מ-1 - המלצת מזון
תכנית לוגית מ-2 - סיפור קילצ
פרק 5
תכנית 5.1 - ץ[1וח13 6ח'ד (בגירסה עברית ואנגלית)
תכנית 5.2 - ץזגתסוזסוס
פרק 7
תכנית 7.1 - 65!גו ץ[ווחג= (גירסה עברית)
תכנית 7.1 - ₪165 ע11וז4- (גירסה אנגלית)
תכנית 7.2 -- תלמידים
תכנית 7.3 - ₪006
תכנית 7.4 -- שושלת היוחסין של קובי
תכנית 7.5 - הסקת מסקנות
תכנית 7.6 -- הקשר הבין-עירוני
פרק 8
תכנית 8.1 -- חיפוש צומת בע בינרי
תכנית 8.2 - מידע
תכנית 8.3 -- מקסימום של שני מספרים
תכנית 8.4 -- חישוב של סכום מספרים טבעיים מ-א עד 1א.
פרק 9
תכנית 9.1 -- הגדרת רשימה (גירסאות אנגלית ועברית)
תכנית 9.2 - חבר. ברשימה (בגירסה אנגלית ועברית)
תכנית 9.3 -- רשימת המקצועות
תכנית 9.4 - ילדי משפחה
תכנית 9.5 -- תרגוס
2
פרוצדורה 9.3(א) - שרשור רשימות (גירסה עברית ואנגלית)
פרוצדורה 9.3(ב) - מחיקה של הופעת איבר
פרוצדורה 3.פ(ג) - בחירת האיבר האחרון
פרוצדורה 9.3(ד) - הכפלת איברי הרשימה
פרוצדורה 9.3(ה) - קידומת של הרשימה
פרוצדורה 9.3(ו) - סיומת של הרשימה
פרוצדורה 9.3(ז) - תמורה של הרשימה
פרוצדורה 9.3(ח) - רשימת המספרים מ-1 עד א
פרוצדורה 9.3(ט) - סדרת המספרים בין א ו-א
תכנית 9.6 - גירסאות 2,1 של הפרוצדורה 501181
תכנית 9.6 (המשך) - גירסאות 4,3 של הפרוצדורה 11פט5
תכנית 9.6 (המשך) - גירסאות 6,5 של הפרוצדורה ז8ו91ט5
תכנית 9.6 (המשך) - גירסאות 9-7 של הפרוצדורה 50181
תכנית 9.7 - 5071 6צוגצן
תכנית 9.8 - 5011 תסו1ז56ה1
תכנית 9.9 - 5071 6|סטטפ
תכנית 9.10 - 6ח6כק8 פתוצט 1ז50 6|ססטפ
תכנית 9.11 - 5071אס1ט()
פרק 11
תכנית 11.1 - מדרגות
תכנית 11.2 - מדרגות עם ה-6₪1
תכנית 11.3 - מדרגות עס ה-1ט0 האדוס
תכנית 11.4 - מחיקת 01 אדוס
תכנית 11.5 - פרוצדורה ז6טוחפות עם זט
תכנית 11.6 - פרוצדורות עִקק3( עם ובלי זט
תכנית 11.7 - שלילה באמצעות הכישלון
תכנית 11.8 - הפרוצדורה "ים" עס זט ועם סח
פרק 12
תכנית 12.1 - ריבוע
תכנית 12.2 - קריאה וכתיבה של תוויס
תכנית 12.3 - קבוצות זרות של תוויס
תכנית 12.4 - הגדרה של הפרדיקט 180
תכנית 12.5 - הגדרה של הפרדיקט 310.10
תכנית 12.6 - בדיקה של סוג הנתונים
תכנית 12.7 -- הגדרה של הפרדיקט 160641
תכנית 12.8 - שימוש בפרדיקט [0681
חטיבה רביעית
תכנית 1 - סיפור מן החיים בשפת פרולוג
תכנית 2 - חד-גדיא
תכנית 3 - קשרי המשפחה המנומקים
תכנית 4(א) - צאצאיו של צירלט
תכנית 4(ב) - הגדרה של מספר טבעל
תכנית 4(ג) - תכונות אופי של צ'רלס וצאצאיו
תכנית 4>(ד) -- מספרים זוגיים ואי-זוגיים
תכניות 4(ה-ח) -- פעולות במספרים טבעיים בדרך לוגית
3
תכנית 44ט) - בונה-מבזבז-מתרושש
תכנית 5(א) - חישוב העצרת
תכנית 5(ב) - חישוב עצרת בשיטת צבירה איטרטיבית
תכנית 5(ג) -- עצרת איטרטיבית עס הלולאה
תכנית 6(א) - מפת היעדים (גירסה עברית)
תכנית 6(ב) - מפת היעדים (גירסה אנגלית)
תכנית 7(א) - החיפוש לעומק
תכנית 7(ב) - החיפוש לעומק, כאשר המצב הסופי מוגדר מראש
תכנית 8 - חיפוש דרך במבוך
תכנית 9(א) - חיפוש אחר שביל
תכנית 9(ב) - חיפוש שביל ללא לולאות
תכנית 9(ג)-- חיפוש עם מעבר מתוחכם
תכנית 9(ד) - חיפוש עד עומק מסוים
תכנית 10(א) - פתרון בעית שמונה המלכות
תכנית 10(ב) - פתרון בעית הַמלכות באמצעות "ייצר-ובדוק"
תכנית 10(ג) - פתרון בעית המלכות באמצעות 561601
תכנית 11(א) - מגדלי האנוי
תכנית 11(ב) - מגדלי האנוי (גירסה שניה)
תכנית 12 -- התפתחות של בעלי-חיים, מודולים אי, בי, גי
תכנית 13 - מערכת מומחה לזיהוי חיות:
א. מישק המשתמש
ב. מסד ידע
תכנית 14 - קונכיה של מערכת מומחה, מודולים אי-וי
נספח אי
תכנית א' - טיפול במערכים תחת ]1500
תכנית בי - שתי גירסאות של 511124: עס ובלי חלונות
תכנית ג' - זסזו60
תכנית די - דוגמה של 606
תכנית הי - שינויים ברמת ה-50611
נספת ג'
תכנית ו' - מגדלי האנוי ב-01.00אם-זדך
194
ביבליוגרפיה
:1005 6חה 65גו1חת166 ,65!קו6חוזק - פז6!וקוחס)* :(1986) .1 .הגוח!!(1 6 .₪ ,5611 86 .ש.ג ,סחה
.0 צ05[6/\-ח4.00150
,60סת6ווקותסי) 6טכ] ופט[ 6ת8 הגס 166 פשתוקץוסוסז] שהוצוכ)" :(1987) .1 .65תז38
.(21)36 .7 ז6טוח16ק50
3 ,2 ,1 .01 06%ת16[1186ת1 4111016181 ]ס 0000%ת113 6ה'ד* :(1982) ...₪ וחטבסת6קוס>] 8 .ג זזבת
.-) .1105 1.05 ..6ח] תתבוח)ט3א ותפו![!ו/
פַתוז66תופחם 6זבא!/50 ]0 15ח400166/ 6ח8 06ח₪556 - ו6|[טם זסצוו5 סא :(1987) -ז[ = = ,פאססזט
.9 .סק ,!וזקג ז6וטקותס)
.5 12161811 ה6610ת!ז 1.0816% [68ו1בוח6ו!1ה1א 10 חסווסטססזוח!" :(1956) .4 .הסזטת)
"תסגוג|וקות0ס) 6ה8 תסווגו6זקז6וה1 115 על פסוסזק שתופהתסצ6ם" :1985(0!) .[ ,ת6006
4 .סק .28 ,401 106 ]0 5חסו641וחטוהוחס)
.קק ,28 ,]40% 01 6811005ותטותוחס 6 -68זטקו] 10 חו שס!סז?" :(1985) .ג מ6טבזסח|0 6
0
0פוחזס1 %6ַותו]ה1 תו שתואזס% זסו6זקז6וה] 6סוסזק - 3" :1984(0) .1 .פגזוסטקוו]
.תת 610065160 ,01166ח1-1 109006 1115 .8סוסז 01 5חסו1ב1ח6ות6וקות]
5 1675טק ות 60 ה0וז8ז6ה26) ם111ו= 01 עתקס8ס!ותץ |בתוקוזכ) פהוזופוצ6" :(1984) .א ,ומסט-
.ץד .16007 .00065 01 .1ח60 מ6וח] .סז :601(סזק
4ששצשצסת 4" :(1986) .(1 ,6|וח5 6 .5 .תטפך 8 .1 .הסוצסאזבוא 6 .1.0 סוטוחט|6
13 .סק ,29 ת04110ט50 חס .5תגזדך 155 ה פַתופוצ4 1ח51066 זס! וח6ו5צ5 וזסק גא
.10 ,5ת50 :8 ץ116/ תת 0 5ז16טקוחס?) [118פוכ] זס! תסווסטז51תס 6 זט|וקוחס =" :(1971). .פ6וז)
'5וח5/516 1ז6קאם פתוס[וטם* :(1983) .2.8 ,106086 8 ...כ .תבותזסוב\ 8 = .1805-8001
.6 .600 צ65|6\-ח400150
:ת0ת1.0 1.081051 |10068/ 10 מסוזסטבסזוח] תג" :(1968) .1.1א 8/6 .02.5 .פסתקטון
.חסט6ח6וא
שסצ [1.0816 22 8ת!ו81זסס 160 -.1ם-ס!ס-ק" (985]) .א ההא 8 .]א .האטק קת
. ו .6 .סק .3 .פַחוזטק וס 6 ח0ו6781ח26)
7 סזט][91- 85 ח1 28110 106 01 6160655!קוחס2)" :(1983) .1 .106 86 -1- 8/1/9550 .1 .זג18
9+ .11601 ]0 .6סזק
5
זסטקוחס) ת0וז678ה026 101 6ה1 01 21805 6זטזט-] 6ח8 512105 וחסזזטי)* :(1984) .> ,6ססתגוה
.7 .סק .0ץא0ד ,1007 .= 01 .8ת00 מ16ח1 .ססז ,661[סז? 5וח510ץ5
]אא 116 :5516808 1ז6קאם"* :(1986) 1.5א .הסוזס)א 50011 8 .איד ,6תסוגוא 6 .51 ותססט1
4 .סק ,811 זסוחות 5 .016 386101 ת13 ת5!08 > 5ז80ַ4ה3]/ זס] ס6פַחסו[הת)
120667191 8הו]6ה118 זס] 108105 זס6זס-ז6ח8ו1]" :(1985) .1.1 ,טסוהזהו 8 .2.71 ,והג68הגוא
14 :סק .22 5106105 6הוח140-ח14/ .1 .זח] | פוח516ץ5 |ז6קאם תג
/0[ : קַתוותוח3זק סז ז16טקותס 6 זס] 88515 [1.08108 6ת'ד* :(1985) .₪ תספחו4|ה/ .6 .2 ,ההחגוא
.6ח] ,.020 ש65[6/-ה00150// ,8תוח₪6850 6צו66061
ש6צ ,7601106-114[1] 6051700157 601זזסי) עץ|סםעסז וחסז) ח8ו265] וח516צ5" :(1985) .1 ,חווזגואת
.4 .סק ,107566
.4 ,810-110 ,.20) 11088 101!800667ח] [471101018 01 05|קו6חוזק* :(1980) .[.צז ,הס8פווצז
.אזסל-אוסצ ,.0ח1 .200%5 24516 | 5וחז6510חו1א* :(1980) .5 זסקהק
סח [[111-ש160278 16|!186060%ח1 1176181 * :(1986) .ם ,הסוא
תוזע תסוזט[650 16 חס 08566 1.0816 166חסוזכ) 6חגו[136/ * :(1965) .1.4 ,הספחוטסת
.23-41 .סק ,12 1א6ה
ח0ו81ז6ת26) ש6צ1 5וח516ע5 1ז6קאם ]0 תסוזב1ח6וח6!קוח1 הו פס!סזק 01 12565* :(1986) .602 ,30551
.9 .סק ,4 8חו1טקוחס?)
.0" .11 .1 .זח] 02816 5178168 8 85 וח6|טסז 5ת2066) ותפום 76" :(1986) .602 ,567886
4 .סק ,17 עקס!סתת166 .561
1 .ת160 ו 6167זכ16ת] 115 6חב 0!08סץק 1ת6זוטסח 60 ]0 500561 //* :(1983) .צ.ם ,סזוקגוו5
.1 .501 06 .151 תת8וח2ו6\ ,6583-06)
"וח זקסז 1.0816 ]0 ץ1וא6!קוחס 6 [התסוז4וטקוח 6 6ו|1 6ח8 חסו81ח1167 * :(1984) .צ.ם ,סזוקג53
6 ..501 01 .51ח1 הה8וח2ן6\ ,0584-06 1זסק₪6 .הס6שך
"זז חב זס] 56 808ח1.3 8 01 ץ060086// 116 פהוזהט|בצם הכ" :(1986) .צ.ם סזוק3ה5
1 ..501 01 .51ח1 מתהות2ו6\ ,[0586-0 1זסק₪6 .ה66ך
.קק ,4 א16צ6 20510655 1187/8706 :66ח16!!186ח1 |1618]ו1זג/ וטססב שתואחותך" :(1987) .₪ וסוו5
07
סק .ה160 [ז616ז0ז10ת1 -618] + 6086|וסתה = הה5)6ץ5 |ז6קאם" :(1984) .1 ,שתוז6ו5
.1 ...501 01 .1051 תחהוח2?ו6\ ,02584-17)
.5 ,608000086 .658זק 117 00106006 ק ]0 1 6חדד* :(1986) .₪ ,0זוקְבת5 6 .1 ,שתז[ז6ו5
,5% ]0 .0006 מ16ח1 .06זק :0[08ז 6זטץ תו 12268165 4140856" :(1984) .5. ,ת6זפ
4 .סק ,סץאסד ,1607
6468 3 תס תסו1ש66א= ז0] [78569 8תו5|81תבזד* :(1986) .₪2 .ח06 8 .1.1 ,פוחגו!|ו/
4 ,סק ,29 ,.1 זסזטקוח 0 1716 ] וח516ע5
.6ח] .00 ע6816/-001500// [16!1:86000ח1 [8ו0ו]11 ג * :(1984) .ד ,הסופתועצ
₪68500[087] 66זהוחסזט/* :(1984) .[ .80/|6 85 .ם =אפט] 8 .₪ .א06טז96כ 8 .1 (פסוצ
.6 ש6צ1 ,.6ח1 1106-11811ח6זק
1 1107006 1118 אַחו1טקוחס 6 [8ת26068110 תו 5ה20ו1107] א6צ][* :(1984) .1א ,וה208גצ
.-פתם 01065168
84 5וח516ע5 א6!קותס 6 ]0 817515ח/ 16 10 ה086זקק// שסצ] 8 ]0 6חו!וטשי* :(1973) ...1 ,22001
.4 .סק ,5%10-3 ,606761108 6חב 13 ,5וח57516 .5ת8זד 155 :270065805 תסו8וס6כ
106
מילוז מונח?ם עבר?-אבגל?
גלמום "גם"
אלוול "או"
שלילה "לא"
כמת כולל (כללי)
כמת ללשל (קיומל)
איחוד
אלמוז "אם-אז"
אימוז "אם-אז"
אלמום "אם-ורק-אם"
שקילות
נובע (גורר)
נובע (גורר)
< > 1>ש6 !ו ]+%+4ן|ן
(ה)מאחד הכללל ביותר
(ה)מטרה הנגזרת
אב-טלפוס
אב-קדמון
אוגר
אופרטור
אטום
איוול "או"
אלחוד (תהללך ה...)
אימוז "אם-אז"
אימום "אם-ורק-אם"
אילנסופי (עץ, מבנה)
איפיון
אירוע
אמלתל
אמת
אסטרטגיה של חיפוש
אקסיומה (הנחה)
ארגומנט (מתואר)
ארלטל (רבב)
בדיקת נוכחות
בלטול
ביטול בסיסל
בינה מלאכותית
בסלס (מסד) נתונים
בסלס (מסד) לדע
גלמום "גם"
גלשה אפילסטמולוגית
גישה הצהרתית
תא תס1>סט[תחסס
8 ת6610תט[615
1 תס1םהקפת
11167סתהטף 581ע6ט1תט
1+167םתהטף %181ת1560א6
הסנתט
אפח-17 ת1168%10ק1₪
אמז-17 ם1168%10קת1
ע1-צעא0-כא17-4 66ת816ט0001
6 טש
(1165קת1) 5אטס1011
(1165קת1) 101105
20
117, 2
19, 2
138, 187, 3
2
161, 9
101, 3
24, 3
207
28, 1
24, 1
188, 8
19
15
82, 59, 8
2
16, 298, 5
75, 8
82, 8
15
207
101, 3
1.09
15, 8
22, 32, 82, 5
32, 82, 7
24, 3
22
22
(טקת) ש11106תט 81ש6ת0ק ₪056
1 66עט6671
סק
ע0מ665ה8
בב
ע8%0צ6קס
תססה
8 ת10>סתט[615
ת11168%10תט
אתווך-17 ת1168610קת1
עך-צ]אס-כא-17 6סתס81ט0001
(6עט5סטע55 ,66ש5) 166ת1+ת1
601%
ץ5 60858
6
ת6טת+
0ע508
תס1אה
"תסתוק זה
ץס1זה
68 פעטססס
ל
מז6ם בתטסצם
6 1110181)ז3
86
6 16026שסתח%
סאג ת0ס1פ5סטןת 00
ס8סמקקה 1ממ|-][-|[]-. כ
ת080תקקה 60018785106
107
גרף 8 ,189 ,16
דטרמלניסטל 3 ,15
הגדרה רקורסיבית 5 ,134 ,101
הוכחה 3 ,75
הוכחהּ בדרך השלילה 77
הורדה (צמצום) של מטרה 222
הורה 17
הידברותל 7 ,22 ,12
המאורע המשותף הכלל? ביותר 203
המאחד הכלל? ביותר 20
הנחה (אקסיומה) 8 ,75
הסקה 1 ,116 ,81 ,724 ,33 ,28 ,25 ,15
הפשטה 22
הצבה 9 ,120 ,34
הצגת (ייצוג) ידע 8 ,22
הצהרתל 13
הקצאת אזור זיכרון 55
התאמה 4 ,328
התחברות 29
התנגטשות של שמות 207
זוג סדור 3
זנב 8 ,167
זרם הפלט הנוכחל 209
זרם הקלט הנוכחל 208
חוק 8 ,100 ,29
חוק רקורסלבי 0 ,138
חיפוש האוריסטל 9 ,17
חיפוטס לעומק 9 ,16 ,11
חיפוש לרוחב 9 ,17
חיטוב 141
חתוך 208
חתוך (5ש0) אדום 221
חתוך (08%5) לרוק 221
טאוטולוגיה 19
טווח הכילמות של (על) המשתנה 106
לדידותל 15008
ידע טגור 7
לחס (מתואר) 3
לחס דו-מקומל 3
לחס חד-מקומל (תכונה) 66
לחס סלמטרל 33
ליצר ובדוק 8 ,190
כלל היסק 8 ,784 ,12
כלל הניתוק 8 ,109 ,76
כמת 11
כמת כללי? (כולל) 1 ,199 ,101
כמת לא תיקנל 18
כמת קלומל (לישל) 1 ,199 ,101
לא-דטרמלניסטל 3 ,15
לאחד 1 ,118
108
תקהצם
6-6
ת1610ת66+1 5106ע6002ץ
+סצ
מ8610510ת%ת60 עפ +ססמק
ת6000%10ת 8081
"תפצה
| ו
6 תסמתסס 678[1ת86 ספסת
(טקת) 1+16%תט 6781ת86 ספסת
סגה
(8ח1ת7650) 06ת1676ַת1
מ805%:80510
תמ9055%160610
מ%8%10ת60:650: 16686טסת<
%%6"."-.'
ת8[11068610
קַת1ת6גת
ת8550618%10
ת6185 סתהת
צגהק 66ע660טס
21
ת68ת55 סטקפטס מת6שמגטס
56:68 סטקת1 6תס6שסטםס
הטע
ח510תט60: על 16טע
ת0ע568 15616עטסת
ת0ע508 115%+-ת%ק66
ת0ע568 5%ע2ע1+-ת680%:
ת68610טקתסס
ג
05 66ע
0% תסססם
סוה
86 ₪ 0% 560026
צ81ת16ת+-ת6פגט
6 תסתתסס
מ618%10ץ
ת618610ת טְעהת1ס
ת618%10ע צְעתט
ת618%10ת 66:16תחץפ
--678660ת6ק
166ת1 +0 16טץ
פתסתסק פטבסת
1+16םמהאטך
61+1061תהטך 6:58[1ט1מט
1+16%םתהטך 6מ682ת5%8-תסת
11161>תהטף %181ת1566א6
66 תסת
ץ+1חט
לוגילקה פסוקית
לוגלקת הלחסים
לוח-אמת
לולאה
מאורע (החלפה)
מאורע בסלסל
מאורע משותף
מאורע משותף הכללי ביותר
מאחד
מאחד הכללי ביותר
מבנה
מדלנלות המחסנית
מדלנלות הקביעה
מדרג
מודל חלשובל
מחשב מקבילל
מטרה
מטרה בסיסית
מטרה נגזרת
מלון
מיון בועות
מלון טבעל
מלון מהלר
מילון ע"? שיבוץ
מלשק
מישק המשתמש
מכוון
מכונת פון-ניומן
מנגנון ההסקה
מסד (בסיס) לדע
מסד (בסיס) נתונים
מערר
מערכת היסק
מערכת מומחה
מפלס
מפרש-על
מרחב החלפוטש
מרחב המצבים
משפט
משתנה
משתנה אנונלמל
משתנה חופשל
משתנה מכומת
משתנה משותף
נאות
נובע (גורר)
נוסחה
נוסחה אטומלת
נכונות
נסיגה 9 ,
22, 39, 5
40, 88, 0
147, 308, 3
118, 8
22
200
201
211
20
144, 7
220
2200
145, 7
212
12, 220, 3
117, 127, 2
213
117 2
14 9
11
184, 9
13
100
25, 7, 7
317
117
12
81, 7
32, 82, 7
22, 32, 82, 5
5
128
19, 7
17
5
16
16, 8
76, 8
34, 88, 100, 4
89, 4
16
16
93
75, 8
69, 8
15
105, 9
2
17, 35, 121, 223, 9
6 0205151081[1:
6 260168566
6 תםסטחם
10
156
156 בתטסצק
תת תסמתסס
68 תסתת0ס 26681 ספסת
67ג11תט
(טפת) ע1+16תט 608281 ספסת
6ט 5
558608
ץק קת11ט60ת56
ץהזה8ץסג1ת
1 81ת8%10םטקתסס
עססטקתסס [8116ע8ק
01
1 6תטסשם
1 66ט6071
0%
1650%פפט
0% ס6ט1את
50%
0% ת50:610ה1
166
6 5 '"ספט
166
תגסה תתהתט6 חס
86 606ה%070ת1
6 016626
126
צהצזה
5566 6%6106ש660
57506 656קא6%
11
שק ץ60ת%81סת
6 ת568:0
6 50866₪
ת6עססת
86צט
86 פשטסת1תסתה
86 06₪ש+
86 ש6תטספ
6 תסתתסס
504
(1₪71165) פשס1011
3+ 07066+-611ש
מס 86016
0-8
86086017
109
נקודות עקיפה ספצלפיות
נתיב
סיבוכיות
סיומת
סמנטיקה
סתירה
עובדה
עובדה בסיסית
עומק של העץ
עוקב (בן)
עיצוב
עיצוב מובנה
עיצוב מובנה מלמעלה למטה
עלה
ענף (שבט)
עץ
עץ בינרל
עץ חיפוש
עץ ריק
עץ, נתיב
עקביות
ערך-אמת
פונקציה בוליאנית
פיסקה
פיסקה בסיסית
פיסקה של הורן
פנקטור
פנקטור ראשל
פסוק אטומל
פסוק מורכב
פרדיקט (מתאר)
פרדיקט אקסטה-לוג? (חוץ-לוג:)
פרדיקט המוגדר מראש 228 ,161 ,
2222
(טל המערכת)
פרדיקט מטה-לוגל
פרולוג צרוף
פרוצדורה
פרוצדורלי
צאצא
צומת
צומת, אב-קדמון
צומת, הורה
צומת, צאצא
צורה אלפאביתית
צמצום (הורדה) של מטרה
קבוע
קבוצה סדורה
קבוצה עקבית
קדימות
קונכיה (קליפה)
400
23, 3
39, 55, 1
29, 6
116, 9
108
187, 8
1.399
1.99
1.399
18
18
16
1%.
258
1
17
67, 107, 8
22, 9
3
29, 199, 6
1|.09
1.9
185, 6
15
23, 3
15
15
18
84, 86, 0
208
200
208
13
12
187, 8
16, 7
187, 9
17
1-7
18
78, 5
67, 5
9
2
11%
5 ץס5
התסה
1 1קותסס
11%+טפם
5
מ8016610ת6ת00
1%
% 6תטסעם
6 שתם +0 64606
060
הק
ה46517 60שט6סט:50
מ00518 66שט66טע55 תש60-ק0סם
11%
6
6
6 ץעאת1
6 56800
6 קםקתס
תסהק ,566
ץצ 005
16הט-תסטת
ת6%10תט+ ת0168ס0ספ
0%6
6 ש6תטצסשש
86 תעסן
עסףסתט+
עס6סתט+ 81ק61ת1צק
הח51610סקסצק
(068ת%56ת56) ת1610פסקסעק 6תמטסקתסס
6
6%%:81081081[[ 86
6 6610856₪עק (6081₪8218) ת116-1טס
6 810216031
8 שסשטק
16גו0660צ
1רפְ סט
6
הס
עס5ם5פ6סת8 ,66סת
%תסעהק ,66סת
80%ת4500 ,66סת
%תהּותהט 8566106ת312
מ6000%10ת 081
006
6 66266עס
60515060 %
6
1
קונכיה (קליפה) של מערכת מומחה 345 ,19
קידומת
קשלר
קשרים
קשת
ראש (של חוק)
ראט (של רשימה)
רבב (ארלטל)
רזולבנטה
רשלמה
רשילמה ריקה
שאילתה
שאיללתה בסלסית
שגרות פסק
שורש
שלגרה
שלילה "לא"
שלילה באמצעות הכישלון
שפת גרעין
שפת מכונה
שפת סף
שקילות (שווה ערך)
שקרל
שרשור
שרשרת
שרשרת הוכחה לאחור
תוכנת נלפול
תולדה
תחביר
תכנות בוחן
תכנות הצהרתי
תכנות לוגי
תכנות פרוצדורלל
תכנית רקורסילבית
תמורה
תנאל הגבול (השפה)
תת-רשימה
177
1-9
28, 101, 48
16, 7
113, 8
107
15
2033
16
107
32, 6
1.09
363, 2
1785, 7
33, 108, 8
8
208
75, 8
39, 85, 3
15
13, 7
12, 28, 81, 87, 2
8
137, 7
16, 8
138
1616
1 מ 500ע5 6ש6קאס
א1+סצ
0-4
0-5
6
(115% 6ת5 0%) 16טץ
46
ץקה
%תסט[650ץ
1%
6 ק םתס
ץצסטף
ץלעסטף 6תטסצם
5 שת1
0%
6ת1םטסץ
1 תס4610קסת
6מט311] של תס1+הקפת
6 רפפ [6תז6
6 6שת1תסאת
355
6 טס
16
(ת8%10ת08%0ת60) בתסקקה
ח631
קת1:ת681 6ז4טא80ל
בי
06
אףתחץ5
קתןתתהזקסצק ע:10:860קא6
קהנתתה:קסצק 6ט66618%8%61
קהןתתהזקָסצק 10210
קתןתתה:קסזק 81תט660סצק
תהצקסצק 6ש600751ץ
תס63)1טת סק
ה60061%10 צְז68תטספ
5%
401
מ-לרןך מונכבחלם אב גל- עבר
גלמום "גם" / עאג תסנפסט[תסס
אלוול "או" ש 8 תסגםסתט[615
שליללה "לא" = 17 ת0ס851ק6ת
כמת כולל (כללל) ש 1+161>תהטף 6:581ט1חט
כמת ילשל (קלומל) ב 61+16%תהט) %618[1ת15%6א6
איחוד ( מסנתט
אלמוז "אם-אז" - אתחך-17 ת21168%10ת1
אלמוז "אם-אז" -- אפחך-17 ם1001168%10
אימום "אם-ורק-אם" -* | ע1-צ/א0-כעא17-4 06ת816ט611
שקילות => טש
נובע (גורר) = (011065קת1) פשס011+
נובע (גורר) => (01165ק1₪) 5אס011+
הפשטה 2 ת8055280%10
הקצאת אזור זיכרון 55 מ811068%:10
צורה אלפאביתית 202 %תה1צהט 806%16תק81
אב-קדמון 3 ,187 ,1348 65%0%סת8
משתנה אנונימל 4 ,89 6 פטסת1תסחהּ
שרטור 7 ,178 (ת0ס8%1ת08%6ת60) 6מסקקה
קשת 7 ,16 6
ארגומנט (מתואר) 8 ,824 +תסותנוק זה
ארלטי (רבב) 15 צ16זה
מערךר 15 צהצזה
בינה מלאכותית 8 ,15 6 511+10181ץ8
שפת סף 3 3556017
התחברות 19 ת8550018%10
אטום 3 ,101 תססה
נוסחה אטומית 9 ,105 ות 0+ 8600106
אקסיומה (הנחה) 8 ,75 תסגאה
נסיגה 9 ,229 ,223 ,121 ,35 ,17 קת0:86%1א86
שרשרת הוכחה לאחור 28 8ַתנתַגהת6 860826
לחס דו-מקומל 3 מ618%10ע שְשהת1ס
עץ בלנרל 5 ,188 6 קעהת1ס
פונקציה בוליאנית 3 תס51סתט+ מ168סספ
משתנה מכומת 9 ,106 6 5 5ש6תטסס
תנאי הגבול (השפה) 138 המ01%10מ00 שע68מטספ
חיפוט לרוחב 9 ,17 [56820 מ1:5+-ת686%מ
מיון בועות 11 16502%ספטס
פרדיקט המוגדר מראש 228 ,161 ,126 66108%8קק (8516ש81ט6) םת116-1טס
(של המערכת) 22
אירוע 15 ץצ 0856
42
שרשרת 8 ,188 ,33
פיסקה 6 ,199 ,29
פיסקה של הורן 1.9
פיסקה בסיסית 1.09
מאורע משותף 200
לדע שגור 7
משתנה משותף 33
סיבוכיות 22
פסוק מורכב 3 ,23
חישוב 3 ,141
מודל חלשובל 212
שרשור 7 ,175
גילמום "גם" 3 ,24
קטשיר 139
קשרים 4 ,101 ,24
תולדה 8 ,75
עקביות 8 ,107 ,67
קבוצה עקבית 5 ,67
קבוע 4 ,100
סתירה 9
נכונות 22
צרם הקלט הנוכחל 208
צרם הפלט הנוכחל 209
החתוך 208
חתוך ירוק 21
חתוך אדום 221
בסים (מסד) נתונלם 5 ,2 ,32 ,22
תוכנת ניפול 268
הצהרתל 13
גישה הצהרתלת 2
תכנות הצהרתל 7 5 ,13
מערכת היסק 8 ,12
עומק של העץ 188
חיפוש לעומק 9 ,16 ,11
(ה)מטרה הנגזרת 2 ,117
צאצא 8 ,1487
עיצוב 199
עיצוב מובנה 1.9
עיצוב מובנה מלמעלה למטה 199
דטרמינלסטל 3 ,15
מכוון 127
אלוול "או" 3 ,28
רשימה רלקה 17
עץ רלק 6% ,148
גישה אפיסטמולוגית 22
שקילות (שווה ערך) 7 ,55
אימום "אם-ורק-אם" 1 ,28
פרדיקט של המערכת 228 ,161 , 126
(המוגדר מראש)
כמת קלומל (ללשל)
222
101, 199, 1
תנגה
06
6 התהקססן
6 שמטסצם
6סתהפת תסתחסס
6 תסתתסס
6 תסתתסס
161 קתסס
(06ת56ת56) ת51610סקסזק 6תטסקמחסס
ת68+10טקת סס
1 [8ת058510 60
(6ת6קק3) ת8%510ת68%0ת60
תא ת610ס6ט[תסס
0-4
0-58
0-6
001
% סשת515060ת₪0
00%
ת%28016510ת00
0-5
63ת55 מטקת1 6ת6תעטס
5568 סטקםטס מת6עעטס
0%
0% ת660לם
0% 66ע
568
66226
1%8"."'.'
מסהסתקקה 6601878%106
קתןתתהץקסצק 6601828%106
5/5606 660066106
6 6ת6 +0 ת660%
ת20ע508 158%+-ת0%ק606
1 66עט66:1
0%
הק
הק0651 66שט065ת5%
065178 66שט005ת55 ת60%-קס"
6
6
8 ת6610תט[615
% ץ+6קתס
6 קסםסקתס
ה080שקק8 15%0001021681ק0
6
ע1-צ/אס-קא17-4 6סתס81ט001
86 (ת20115-1) 68108216
1110םתהטף 5181ַת15%6א6
43
מערכת מומחה 7 ,19 ת5%6ץ5 מעסקאס
קונכיה (קליפה) של מערכת מומחה | 345 ,19 1 מס6ם5ץ5 2676א6
תכנות בוחן 15 קחותתהצקסצק צץ:8%60:ס1קאס
פרדיקט אקסטה-לוגי (חוץ-לוגל) 208 6 %281021081א6
עובדה 6 ,29 1%
עובדה בסילסית 9 ,116 % 6תגטסצם
נכסל 7 ,128 1
שקרל 0 ,22 186
נובע (גורר) 8 ,69 (3001165) 5שס011+
משתנה חופשל 106 86 60₪ע1
פנקטור 6 ,185 ,119 צסםסתט+
ליצר ובדוק 8 ,190 1% 6תה 6-8%6ת26
מטרה 2 ,127 ,117 001
מטרה נגזרת 2 ,117 1 66:16
מטרה בסלסית 203 1 ו6תטסצם
הורדה (צמצום) של מטרה 212 מ6000510? 2081
גרף 8 ,189 ,16 הקהזם
גרף, מכוון 139 הק3ץק 641:60560
ףטס לרוק 221 0% ת8:66
פיסקה בסיסית 1.99 6 ש6תטסצש
עובדה בסיסית 9 ,116 % ו6תטסצם
מטרה בסלסית 2013 1 66תוסשם
מאורע בסיסל 202 6סתהספת1 6תטסצם
שאילתה בסיסית 1|9 צעסטף 6תטסעם
ביטוי בסיסל 1.99 הת6 64תטסשם
ראט (של רשימה) 17 (1156 שת6 0%) 686ת
ראש (של חוק) 8 13 (18טץ 66 0%) 686ת
חיפוש האוריסטל 9 ,17 ת(56820 15%16תט6ת
מדרג 7 ,185 צתעהתס1ת
פיסקה של הורן .| 6 תחסן
אימוז "אם-אז" 1 ,248 אפחד-17 תס1168%1קת1
הסקה 1 ,116 ,81 ,74
מנגנון ההסקה
אינסופל (עץ, מבנה)
מילון ע"י שיבוץ
מאורע (החלפה)
מאורע משותף
מאורע בסיסל
המאורע המשותף הכללל? ביותר
הידברותל
מישק
שגרות פסק
שפת גרעין
בסיס (מסד) ידע
הצגת (*ילצוג) לדע
עלה
מפלס
רטימה
רשימה רלקה
תת-רשימה
4
15, 25, 28, 2
(8ת1ת76850) 66ת6:6+ת1
7 ,81 קת 66ת606+%ת1
8 ,148 (6תש₪08ע85 ,66ע52) 156ת%1צת1
100 5 ת%10ע56ת1
8 ,118 156
200 הספת תסתתחסס
2022 66מהספת1 6תטסצק
1 6סם2ת1₪508 תסתחסס 6%81ת86 ספסת
7 ,22 ,12 116
7 ,271 ,25 16
2 ,363 8 1
12 6פפרפאה 61ת:6ת
7 ,82 ,32 6 160866שסת
8[ ,22 ת656058%10:ק67ת 16026טסחא
1=8 +11
17 11
16 1%
107 % עטסקתס
5% 16
לוגיקה מעורפלת 1.9
לוגיקה מודאלית 1.9
לוגיקת הלחסים 0 ,88 ,20
לוגיקה פסוקית 5 ,39 ,22
תכנות לוגי 2 ,87 ,81 ,28 ,12
לולאה 3 ,308 ,147
שפת מכונה 12
התאמה 8 ,384
מפרש-על = 345
פרדיקט מטה-לוגל 200
המאחד הכלל? ביותר 210
כלל הנלתוק 8 ,109 ,76
מאורע משותף הכלל? בלותר 203
(ה)מאחד הכללי ביותר 20
מיון טבעל 9 ,189
התנגשות של שמות 207
שלילה "לא" 4 ,24
שלילה באמצעות הכישלון 208
צומת 7 ,16
צומת, אב-קדמון 9 ,147
צומת, צאצא 1-7
צומת, הורה 17
עוקב (בן) 8 ,187
כמת לא תיקנל 18
לא-דטרמינלסטל 3 ,15
בדיקת נוכחות 207
אופרטור 9 ,161
זוג סדור 3.
קבוצה סדורה 5 ,74
מחשב מקבילל 3 ,220 ,12
הורה 1-7
נתיב 17
תמורה 8 ,16
קדימות 9 ,28
פרדלקט (מתאר) 0 ,86 ,84
ד שררר יקש רת ההק כ ה ה
1006
6 10227
6 641סת
6 66160866צק
6 ג[ב8ת51510סקסקק
קתותתהצקסזק 10816
קסס1
6 6ת61גת
קת 6+גת
66מקץ6םת31סת
6 6:810810481ות
(ץ1+10תט [678ת6ק2 056מ) טקת
פהפתסק פט4סת
6 תסתתסס 81ש6ת269 %פסת
(וק₪) ע1+16תט 6781ת6ק ספסמ
% 6שט1את
ה6185 6תהת
7 תס1םקסת
שצט[81] על ת8610קסת
6סת
צס665%ח3 ,46סת
%ת00500008 ,66סת
%תסצאק ,66סת
00066550 ,66סת
ץ1+16>תהטף 68:6ת558-תסת
6 46-חסת
666% 0000858
ץ0סף8מ6קס
צגגת 66806זס
% 066066
צס6טקתס6 [4116צ4ק
%תסצהק
הי
ה%8+10טתזסק
6
%6ו
פרדיקט של המערכת 126,161,228,252 6610856זק (8016ט6081) מ116-1טכ
לוגילקת היחסים 0 ,824 ,20
קידומת 17
פנקטור ראשל 15
פרוצדורלל 1412
פרוצדורה 13
תכנות ,
תכנות בוחו 15
תכנות הצהרתל 7 ,25 ,13
תכנות לוגל 2 ,87 ,81 ,28 ,12
תכנות פרוצדורלי 8 ,13
תכנות מבנל 18
הוכחה 3 ,75
הוכחה בדרך השלילה 7
0 6610486₪צק
א1+סצק
עס6סתט? 81ק61ת1צק
1פררסס
6
קתותתהצקסצק
ץְץס86תס1קאסט
1...1%8
16
1רְ טס
56
+
ת8610510:%ת60 של +ססץק
155
פסוק אטומל
לוגיקה פסוקית
אב-טיפוס
פרולוג צרוף
כמת
כמת קיומל (*לשל)
כמת לא תיקנל
כמת כללי (כולל)
שאילתה 6 ,32
שאילתה בסלסית 1.99
מיון מהיר 13
הגדרה רקורסיבית 5 ,101
תכנית רקורסיבית 7 ,137
% אדום 21
אוגר 272
לחס (מתאר) 3
לחס דו-מקומלי 43
לחס חד-מקומל (תכונה) 6
לחס סימטרל 33
איפיון 19|
רזולבנטה 203
שורט 17
שיגרה 8 ,162
חוק 8 ,110 ,29
חוק רקורסיבל 0 ,1324
כלל היסק 8 ,784 ,12
מדיניות הקביעה 2200
טווח הכימות של (על) המשתנה 106
חיפוש
חיפוש לרוחב 9 ,17
חיפוש לעומק 9 ,16 ,11
חיפוש האוריסטל 9 ,17
מרחב החיפוש 16
אסטרטגיה של חיפוש 5 ,298 ,16
עץ חיפוש 28
סמנטיקה 1 ,55 ,39
קונכיה (קליפה) 2 ,345
מיון 9 ,18
מיון בועות 11
מיון ע"י שיבוץ 10
מיון טבעל 9 ,18
מיון מהלר 13
נאות 8 ,75
מערכת קולית 3
מרחב החיפוש 16
מרחב המצבים 8 ,16
נקודות עקיפה ספציפלות 484 ,3684
מדיניות המחסנית 2200
מרחב המצבים 8 ,16
46
24, 3
22, 39, 5
19, 2
208
11
101, 199, 1
מס51610סקסצק
6 [8ןת51510סקסטק
6סץסםסמק
0% מסעטק
61+165תהטך
1+161םתהטף %618[1ת15%66א0
1064 1+106%)תהטף מַַה6ת5%8-תסת
101, 199, 1
1+161םתהטך 881תסט1תט
עצסטף
צצסטךף בתטסצם
%ע16%50טף
ח1%10ת66+1 6ט60₪5510ץ
תהעקסעק 601:5106ץ
0% 266
%ע15%6ץ
מ618%10+
ת618%10צ עְעהת1ם
ת618%10ת צעהתט
מ618510: 6%?16תהץ5
ד
"תפט60ץ
0%
6ת61טסץ
סע
ת6002510: צכ 16שע
6תתן +0 16טע
ץ116סק 8קת11ו60ת80
86 ₪ 0% 50026
56870
ת(20ע508 125%+-ת680%:ס
ת0ע568 25%ע1+-ת6628
ת50810 15%16עטסת
6 הְ868:0
ץק 56800
6 568:0
58-ו
1
0%
50% פטס
% ב610ת:6פ5ת1
% ס6ט1את
תע50א0ג1טף
תגוס
4מטספ
6
6 (ְ0ע568
6 508066₪6
תוס צקפ
צְס11סק א80806
6 8508066
מבנה 7 ,1884 6עטם סנ +5
עיצוב מובנה 199 תק051 66תט65טת5%
תת-רשלמה 11606 0%
הצבה 9 ,120 ,38 8מ50555150610
ענף (שבט) 1038 גו
עוקב (בון) 8 ,187 50007
סלומת 17 1]1%טפ
תחביר 3 ,85 ,39 א%8חץ5
פרדיקט של המערכת 252 ,228 ,161 ,126 6010866עק (ת2₪116-1) מ6ספץ5
זנב 8 ,167 1+
טאוטולוגיה 9> ץקטה
ביטול 3 ,101 +66
בילטוי בסיסל 1|.09 6 4תטסחם
משפט 8 ,76 1606
עיצוב מובנה מלמעלה למטה 199 תק0051 66תטסט:55 תש60-קס
עץ 5 ,16 6
עץ בינרל 5 ,1488 6 עץְצאת51
עומק של העץ 188 6 שת 01 ת4605
עץ ריק 8 ,188 6 ץ6קתס
אינסופל 1088 16
עץ, נתיב 127 הס
שורש 107 0%
עץ החלפוש 28 6 ת50870
ענף (שבט) 1-38 6
עוקב (בו) 8 ,1827 506665502
אמלתל 8 ,59 ,22 6+
אמת 2 ת6גום
לוח-אמת 46 6 תםמטעט
ערך-אמת 9 ,22 6 -תטת
לחס חד-מקומל (תכונה) 66 ה618510: שְצהתט
איחוד (תהליך האיחוד) 207 ת1]168510תט
מאחד 211 67ג]ןתט
המאחד הכללי בלותר 0 (טקחת) ע1+16תט [6:8ת26 56סת
לאחד 1 ,118 ץ+1חט
כמת כללי (כולל)
מישק המשתמש 207
לדידותל 21|068
משתנה 48 ,100 ,88 ,
משתנה אנונלמל 8 ,89
משתנה מכומת 9 ,106
משתנה משותף 93
משתנהה חופשל 106
טווח הכימות של (על) המשתנה 166
מכונת פון-ניומן 12
נוסחה 155
101, 199, 1
ע1+10םתהטף 581ל6ט1תט
68 85'ע6פש
ץתז+-ץ50ט
6ט
5 תסחה
6 שתשטספ
6 תסתו 60
160₪6 6
86 שת 0% 560706
66ב תתהתט6א תסל
(₪775) 18טתת0+ 07₪66+-611ש
38
107
סבלבת עברדדה 00 201 /אצ
גירסת 4/280106 של 1254 פועלת תחת 1/52 ומלושמת במחשבים
ממשפחת 370 (%א30%, %א43, 9370).
נציין כמה מהאיפלונים החשובים של 06ַַ0תק2/אַ:
* המפרש של 0%4/280106 מכלל הרחבה (מ510ת56א6 58ש616טת) של 0858.
לפיכך, המשתמש בו נהנה מהשלרותים של 6045, אשר מאפשר לו
להפסיק את הפעילות בפרולוג, לעבור ל-6%5 ולחזור להמשך
העבודה.
* בעת הטעינה של מפרש פרולוג נלתן להגדיר את הגודל של המחסנלות
1, 210081, 16צת ו-811ת6, לטעון %%/1152 ולהגדיר אופצלות
נוספות.
* המשתמש לכול להגדיר פרדילקטים בשפת הסף ולהטעינם במלדת
הצורך.
* ניתן להאיץ את התכנלת על-ידל הכרזת חוקים סטטלים. אלה הם
החוקים, אשר אין צורך לשנותם בזמן ריצת התכנלת.
* התוכנה מכללה אמצעלי עקלבה ונלפול: 608ת7, צק52, צג עדת צקפ,
אאמתת ועוד. נילתןן לשנות פרדיקטים אלה ולבנות שגרות נלפול
נוספות על-פ5: דרלשות המשתמש.
* התוכנה מללעלת את השלמוש בזלכרון באמצעות :00116060 0820886
ו-ת%1(128%10ק0 תס1פתטס6ת 7811.
* תמיכה בנקודה צפה ובמספרים שלמלם 1%פ32-5.
* הגנה מפנל התנגטות של שמות הקבצים בעת טעינתם.
= התוכנה מכילה מישקים ל-52/אט, 501/25, 1152/04 ועוד.
התוכנה מכללה שנל סוגלם של סטס:
- ()001, המשחרר את המחסנלת 5%5806% 811ע62, שמכללה מלדע בנושא של
הצבות (ציינו בספר, כל בדרך כלל אין מבצעילם את ההצבה תחת
המשתנה, אלא רק מצלינים את הקשר).
- ()/, אשר פעולתו מהלרה מזו של ()601, אולם המחסנלת אלננה
מתרוקנת ובשל כך, לעיתים יש צורך | להלעזר | ב-08:2826
צ0ם001160.
התוכנה מכללה אופרטורים, המכונלם "8ע0ס665תתס6". הם מתארלם את
הקטרים הלוגיים צסא, צסאצסא, תס, פאא, אמפתד-ע1, מ55ממת-אטחה-עך,
באופן שונה במקצת מהגדרת פרדיקט? המערכת בעל? שמות דומלם
שהכרנו במהלך הספר.
תוכנת 280106 פועלת גם במערכת ההפעלה %5 וקרוליה 105/280106.
בגירסאות פרולוג של יבמ ילש הבדלים קלים בהשוואה לתקון
"אדינבורו".
14-08
אאסםו ד 4 601160005 886ל:8,
1 1
ות 5 3
165 220002 2208 20008 1000 22008
106 206 22008 20012 108 208
1 855ק 167₪3 1186
ץ וקני 2010) 02916
:צאוס[01] 22 154:הקת6ותו גג 4212 גנוד
ססוגקל
איור %%8/2201,06: מסך של 0011860508 0320886 והסברים
2109
<< שרמ? פהדלרת2
בנ תרח מעהכרת
ראובן גולדשטיין
נמסר באדיבות סלון מחשבלם בע"מ
1. מבוא
בחברת "סיון מחשבים" פועלת מחלקת פלתוח בפרולוג, העוסקת בתכנון
ופיתוחה של כל עבודה ממוחשבלם לניתוח מערכות מלדע. כלים אלה
נועדו לסייע בשתיל משימות עלקריות:
- ליוו" מנתח המערכות במהלך פעילויות התכנון השונות הקשורות
במחזור החיים של פלתוח ונלהול פרוללקטלם.
- הקנלית שלטות עבודה ואמצע? ביקורת במסגרת הכשרת כח-אדם בענף
ניתוח המערכות.
2. ?תרונות הפ?תוח בפרולוג
בחלרת שפת פרולוג כשפת הללשום לפיתוח מערכות, נעשתה בעקבות
בחינה של היתרונות של השלמוש בשפה זו. לתרונות אלה מסווגלם
לשני ענפים עלקריים: הפתרונות שמצלעה שפת פרולוג לבעלות
עקרוניות בהנדסת תוכנה, והקשר ההדוק הקלים בין אופל השפה
והנושא המלושם.
הלתרון המשמעותי בלותר של פיתוח ללשומים בשפת פרולוג נובע
מאופליה הליחודי של השפה: את פרולוג נילתן לסווג כ-"שפת הגדרות
תיאורלת" (6ק8טפת18 מ601+168%10ק5 6ט26₪50212%61). כלומר, קילמת
אפשרות מעשלת לעבור משלב הגדרת הדרישות ותיאור המערכת אל שלב
הלישום וההרצה, ללא צורך במעבר דרך שלבי קילדוד מייגעים. עובדה
זו גורמת לחיסכון בזמן פיתוח יקר, ומאפשרת להצלג אב-טיפוס
ראשוני של המערכת כבר בשלבים מוקדמים של תהליך הפלתוח. הלכולת
לבצע מעבר טבע?ל מההגדרה אל הילשום מורידה באופן משמעות? את
עלולות התחזוקה והנלפול, שכן יישום המערכת מהווה העתקה לישירה
של מפרטל הפרוילקט.
שפת פרולוג מציעה באופן טבעל פתרונות פשוטלם לדרלשות ובעלות
עקרוניות בהנדסת תוכנה. הכתלבה בפרולוג כוללת פלרוק היררכ של
הפרוייקט ולצלרת אוסף של "קופסאות שחורות" לטיפול בתתל-בעיות.
קבוצת הגדרות (פרדילקטים) העוסקת במשלמת משנה כלשהל, עוברת
באופן עצמא את שלבל הניסוחת והבדיקה ומשתלבת בהמשך במערךר
הפתרון הכלללי.
210
במסגרת היישום בפרולוג נפתרת בעיית התיעוד. הניסוח התיאורי של
פרולוג מהווה למעשה גם את התיעוד המיידי של המערכת. בדרך זו,
התכנות בפרולוג מליצר כתוצאת לוואל את מסמכל התיעוד הנלווים
לפרוילקט.
השלטות והטכניקות השונות הנהוגות בנלתוח מערכות מידע נלתנות
ברובן להכללה על לדל צלון אופ?ל העבודה של מנתתח המערכות.
פעילויות אלו כרוכות בפירוק היררכ? של תהליכים, מבנים ארגונללם
ודרישות, ועוסקות ביחסים בין תהליכים לבין נתונים, בין תכנון
לבילן בלצוע וכדומה. בעת מיכון תהליכל ניתוח מערכות, לש לתרון
רב לשפת פיתוח המאפשרת טלפול במונחים אלה. מיחשוב תהליכל ניתוח
מערכות בעזרת שפה בעלת כלים בסיסלים לטיפול ביחסים ובקשרים
מהדקת את הקשר בין תהליך פיתות המערכת לבין הנושא המטופל,
ומאפשרת הדמילה מלאה של תהללכל ניתוח לוגלים.
35. ??שומ?ם בפרולוג לנ?תוח מערכות
כלי העבודה הממוחשבים לנלתוח מערכות מוצעים כתחנת עבודה לניהול
מלדע. תחנת עבודה זו מהווה כלי פשוט ללימוד ונות להפעלה,
ומלועדת ללוות את מנתח המערכות בכל שלבי מחזור החיים של תכנון
ולישום פרוייקטים.
גרעילן התוכנה הלנו מללון נתונלם פתוח למשתמש (ת6ק0 0056001264
27ע8ת216%10 2858 666ם2) המאפשר לתכנן, לנהל, לתעד ולנתח מלדע
מכל סוג המעורב בשלב? הנלתוח של מערכות מידע. המערכת כוללת
אפשרולות | להגדרת ועיבוד מלדע, שפת שאללתות גרפית *עילה
ו"חכמה", מחולל דוחות, רשתות לחסים, עצל מסמכים, וגם מערכת
ליעוץ לתכנון מאגרי נתונים.
המשתמש לכול להגדיר כל מסמך, מושג וילישות (עצם) המעורבים
בפעולות הנלתוח. לאחר שלב ההגדרה (55ת12006ט)36 2858 86%8)
נלתן לבצע אלסוף ועיבוד מושגים, כגון תהליכלם, אפלקים, תכניות,
מודולים, טבלאות וכו'. המערכת מאפשרת להגדיר לחסים בין
הלישויות השונות, כגון טדות בטבלה, אפלקי קלט לתהליך, מודולים
בתכנילת ועוד. אלסוף המידע מתבצע הן בשלטה הקונבנציונלית
(קל 6008ף20%) והן בשלטה המתאלמה להגדרות אב-טיפוס (מחסכ סְסך).
המשתמש לכול לשלוף מידע מבוקש בעזרת שפת שאילתות "תכמה" ולהפיק
דוחות במבנה ותוכן רצול.
בנוסף ליתרונות המידיים, המערכת מסייעת להקניית שיטות ותקנל
עבודה בלחידות מחשב. שלב ההגדרה של התוכנה מאפשר למנהל פרוילקט
הפיתוח להחליט על תצורת מסמכי הנלהול הנדרשים, ולהנחות את
משתתפי הפרוייקט על-יד? שימוש במתכונת שנקבעה.
הערת העורך:
ך: הצגה מקיפה של לתרונות השימוש בפרולוג נלתנה
ההקדמה והמבוא. ו
וו4
מ ע ר כ ת 7 ת ע ו ד מ ו כ ל 7
קורס ניתוח מערכות / מהדורת תרגול
| שם המערכת : ניתוח מצב קיים בחברת ערן מהדורה : 1 |
ה
הפקת
תדפיסים
בב 1
ישות
מסמך
חתבנית
טעינת עץ מסמכים ...... 7268 םתס" 036
אילוצים ומגבלות---:%
הסביבה הארבוני
תיחום והגדרת מערכת המידע
ניתוח מצב קיי
ניתוח המידע
אפיקי פלט
אפיקי קלט
מסמכי הגדרה
טבלאות
יעדים ומקורות
מאגרי מידע
נתונים בסיסיים
תהליכים
בטיחות ובקרו---]
טעינת עץ מסמכים ...... 7568 תתפסת 0356
הגדרה עקרונית של המערכ
מסמכי הגדרה
קלטים / פעילויות / פלטי
הגדרת דרישו
אילוצי מסמכי המערכת
דרישות מיוחדו
דרישות לפלסיס
דרישות לפעילויות
דרישות לקלטים
קווים מנ ט ו 5 ס 7 מ ס מ ך
ניתוח דרישות ההסבה
משאבים ולו"ז לפיתוחה+הפעלה
ל
[-קווים מנחים להדרכה
לו
42
איסוף נתונים לישות ...... ג%ג2 ע%1%תם 601160%
י ₪ ה סוג פעולה
תהלייךָ עדכון נתון
שס הנתון (עברי)
| איתור חריגי נוכחות |
קוד זיהוי
אפיק מידע
דרישה לדווח הריגים
דרישות לדווחים
הודעה על דרגה
הודעת עובד חדש/חריב
הוראת בדיקת חריגבים
החלסות דיוני דרוב
הקצאת חופשה/מחלה
חוות דעת
חומר לתיוק
החריגי נוכחות
חריגים
ט. דווח הופש/מחלה/מילואים
ימי חופשה/מחלה
כרסיסי נוכחות
כרטיסים וטפסים
אפיקי
זמינות
יעילות
איסוף נתונים לישות ...... 0% ע+%1הם 60!!86%
שם ישות סוג פעולה
| אפיק מידע | עדכון נתון
שס הנתון (עברי)
| אשורי עובדים |
שמות נרדפים
סוג האפי
מקור
יעד
ביניים
סוג האפיק
אסמכתא לסיבת העדרות /
תכיפות באפיק אחת לחודש
אמצעי טכני מכתב, טופס
תוכן האפיק תאריך אישור העדרות
הצגת רשת יחסים ...... %:סש%9% פהס!%ג!|9א עג|ק215
סוג רשת היחסי סוג הקשר.
קשרים בין נתוני ישות/התך אפיקי קלט
קבוצה מכילה (שורות) קבוצה מוכלת (עמודות)
| *תהליך <---- "החלטות דרג" | | *אפיקי קלט (מקור)
תקנים
תעודות ואישורים
שינויים בפרטים
שאלון אישי
כרטיסי נוכחות
ט. דווח הופש/מהלה/מילואים
חוות דעת
החלטות "דיוני דרוב
דרישות לדווחים
ברורים
אשורי עובדים
עבוד פרטים בתיק אישי
413
וי
(שפסת