תכנות לוגי פרולוג

50
יייי ייייי יייייי רררר : ררר רררר ררר רררררר ררררררר "ררררר "ררררר2003

Upload: adena-espinoza

Post on 02-Jan-2016

47 views

Category:

Documents


9 download

DESCRIPTION

תכנות לוגי פרולוג. מרצה : עמי ברלר חוג להוראת המחשבים מכללת "אחווה" 2003. מטרות הקורס. היכרות עם תורת היגיון - לוגיקה היכרות עם עקרונות של תכנות לוגי. היכרות עם שפת פרולוג, עקרונותיה ויתרונותיה. כתיבת יישומים מתחומים שונים. להציג נתונים בצורה מופשטת. - PowerPoint PPT Presentation

TRANSCRIPT

תכנות לוגיפרולוג

מרצה : עמי ברלר

חוג להוראת המחשבים

"מכללת "אחווה 2003

מטרות הקורס

היכרות עם תורת היגיון - לוגיקה

.היכרות עם עקרונות של תכנות לוגי

.היכרות עם שפת פרולוג, עקרונותיה ויתרונותיה

.כתיבת יישומים מתחומים שונים

.להציג נתונים בצורה מופשטת

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

קצת היסטוריה

עקרונות המחשב כתפיסה, כפי הוא מוכר.40היום, התגבשו בשנות ה-

כיצד לבנות מחשב כיצד להשתמש במחשב.

.התפתחות השפות שפה.מבנה המחשב .תכנות לוגי

מבוא ללוגיקה) תורת ההיגיון (

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

הוא מסקנה והיתר הם הנחות.: דוגמאות

המים הם קרים וכחולים , לכן הם כחולים.

המים הם קרים או כחולים, לכן הם כחולים. .לא תמיד נשמר הסדר בין המסקנה וההנחות.דוגמא : הכל רטוב כי יורד גשם

טענה היא משפט שהתשובה אליו היא אמת אושקר.

: אוסף של היסק לוגיעכשיו נתקן את ההגדרה: טענות שאחת מהן היא מסקנה והשאר הן

הנחות. היסק תקף : ההנחות גוררות את המסקנה

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

הזמיר הוא ציפורלכן הזמיר שר

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

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

תכנות לוגי

.מבוסס על תורת ההיגיון.ההיגיון מספק שפה מדויקת

מאפיינים של שפות לוגיות

.הן משתמשות בלוגיקה להעברת מידע

.הן משתמשות בלוגיקה לייצוג בעיות במחשב

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

(NOT): לא קשר השלילה

לא נכון שהשמיים כחולים

השמיים כחולים

אמת שקר

שקראמת

(NOT): לא קשר השלילה

– לא נכון שהשמיים כחולים pלא

- pהשמיים כחולים

אמת שקר

שקראמת

(NOT): לא קשר השלילה

נכון שהשמיים לא - qכחולים

pהשמיים כחולים -

FT

TF

(NOT): לא קשר השלילה

NOT p p

FT

TF

(AND) : גם קשר הגימום

המים קרים וכחולים

המים קריםהמים כחולים

אמתאמת

אמתשקר

שקראמת

שקרשקר

(AND) : גם קשר הגימום

המים קרים וכחולים

המים קריםהמים כחולים

אמתאמתאמת

אמתשקרשקר

שקראמתשקר

שקרשקרשקר

(AND) : גם קשר הגימום

המים קרים וכחולים

q AND q - pהמים קרים - qהמים כחולים

אמתאמתאמת

אמתשקרשקר

שקראמתשקר

שקרשקרשקר

(AND) : גם קשר הגימום

המים קרים וכחולים

q AND q

qהמים כחולים -

- pהמים קרים

TTT

FFT

FTF

FFF

(AND) : גם קשר הגימום

q AND qqp

TTT

FFT

FTF

FFF

(OR): או קשר האיווי

הציפור עפה או שרה

הציפור עפההציפור שרה

(OR): או קשר האיווי

הציפור עפה או שרה

הציפור עפההציפור שרה

אמתאמת

אמתשקר

שקראמת

שקרשקר

(OR): או קשר האיווי

הציפור עפה או שרה

הציפור עפההציפור שרה

אמתאמתאמת

אמתשקראמת

שקראמתאמת

שקרשקרשקר

(OR): או קשר האיווי

p OR qqp

TTT

TFT

TTF

FFF

קשר האימוז .     

אם ברונו ישן" ו- "ברנו ישן אז ברונו חולם אםהטענות " ברונו חולם" הן שתי טענות מורכבות )זהות( המורכבות משתי

טענות פשוטות וקשר האימוז ביניהם. 

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

והראש מציין את ה- אז. הגוף מציין את ה- אם  

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

"ברונו ישן אם ברונו חולם".

גוף ראש

ברונו ישן ברונו חולם

קשר האימוז: גרירה לוגיתיש עננים אם יורד גשם

אם יורד גשם אז יש עננים

יורד גשםיש עננים

אמתאמת

אמתשקר

שקראמת

שקרשקר

קשר האימוז: גרירה לוגית

יש עננים אם יורד גשם

אם יורד גשם אז יש ענניםיורד גשםיש עננים

אמתאמת

אמתשקרשקר

שקראמת

שקרשקר

קשר האימוז: גרירה לוגית

יש עננים אם יורד גשם

אם יורד גשם אז יש עננים

יורד גשםיש עננים

אמתאמתאמת

אמתשקרשקר

שקראמתאמת

שקרשקראמת

קשר האימוז: גרירה לוגית

אם יורד גשם אז יש עננים

p q q יש עננים –

יורד גשם - p

אמתאמתאמת

אמתשקרשקר

שקראמתאמת

שקרשקראמת

קשר האימוז: גרירה לוגית

p qq p

אמתאמתאמת

אמתשקרשקר

שקראמתאמת

שקרשקראמת

קשר האימוז: גרירה לוגית

p qq p

TTT

FFT

TTF

TFF

קשר האימוז: גרירה לוגית

pq p q

TTT

TFF

FTT

FFT

הרעיון של תכנות לוגי

המשתמש

תאור

הבעיה

מנגנון ההסקה

תשובה שאילתא

שימור האמת- היסק תקף או בטל

:הנחות

משה יתקלח אם הוא הזיע

משה הזיע אם הוא רץ

משה רץ אם הוא התאמן

משה התאמןמסקנה

משה יתקלח

הצרנההנחות

q pr qs rs

מסקנהp

מילון - משה יתקלחp - משה הזיעq משה רץ - r – משה התאמן

s

"עץ הוכחה"

r

ss r

r

ss r

r q

p

qq p

הרעיון של תכנות לוגי

המשתמש

תאור

הבעיה

מנגנון ההסקה

תשובה שאילתא

כללי היסק

כלל ההחזרה

כלל הוספת גימום

– כלל מודוס פננסModus Ponens

– כלל מודוס טולנסModus Tolens

כלל שרשרת

כלל הוספת איווי

- כלל החלטהResolution

כלל ההחזרה

p1 ∧ p3 … ∧ ∧ pn => pi

כלל הוספת גימוםAnd- introduction

p2 , p1, pn,…, : אם

∧ p1 : אז p2 ∧ … ∧ pn

כלל מודוס פננס Modus Ponens

: אם מתקיימים

p => q , p

אז

q

כלל מודוס טולנסModus Tolens

אם

∨ q , not q p

אז

p

כלל שרשרת

אם

p => q , q => t

אז

p => t

כלל הוספת איוויor-introduction

אם כל

pi

אז

p1 ∨ p2 …∨ ∨ pn

כלל החלטה Resolution

אם

p q , not q t∨ ∨אז

p t ∨

% תוכנית המשפחה התנכית

 % עובדות

% המתאר אב)_אדם,_מישהו(  % מתאר ש _אדם הוא אבא של _מישהו.

 אב) אברהם,יצחק(.

אב )אברהם,ישמעאל(.אב)יצחק,יעקב(.אב)יצחק,עשו(.

אב)יעקב,ראובן(.אב)יעקב,שמעון(.

  

המתאר אם)_אדם,_מישהו( %.מתאר ש _אדם הוא אימא של _מישהו %

 

.אם)שרה,יצחק(

.אם )הגר,ישמעאל(

.אם)רבקה,יעקב(

.אם)רבקה,עשו(

.אם)לאה,ראובן(

.אם)לאה,שמעון(

 % המתאר זכר)_אדם(

% מתאר ש _אדם הוא ממין זכר. 

זכר)אברהם(. זכר)ישמעאל(.

זכר)יצחק(. זכר)יעקב(.זכר)עשו(.

זכר)ראובן(.(. זכר)שמעון

% המתאר נקבה)_אדם( % מתאר ש _אדם הוא ממין נקבה.

 נקבה)שרה(.נקבה)הגר(.

נקבה)רבקה(.נקבה)לאה(.

% חוקים:

% המתאר הורה)_אדם,_מישהו(  % מתאר ש _אדם הוא הורה של _מישהו.

 הורה)_אדם,_מישהו( :- אב)_אדם,_מישהו(.הורה)_אדם,_מישהו( :- אם)_אדם,_מישהו(.

  % המתאר בן/בת )_מישהו,_אדם(

% מתאר ש _מישהו הוא בנו/בתו של _אדם.

מישהו( , ,_אדם( :- הורה) _אדם,_ בן) _מישהוזכר) _מישהו(.

מישהו(, ,_אדם( :- הורה)_אדם,_בת)_מישהונקבה) _מישהו(.

% המתאר אב)_אדם( % מתאר ש _אדם הוא אב.

אב)_אדם( :- אב)_אדם,_מישהו(.

% המתאר אם)_אישה( % מתאר ש _אישה היא אימא 

אם)_ אישה( :- אם)_אישה,_מישהו(.

( 2,_אח%1 המתאר אח)_אח הם אחים.2 ו _אח%1 מתאר ש _אח

(,1(:- הורה) _הורה,_אח2,_אח1 אח) _אח(,2 הורה) _הורה,_אח

\= 1(, _אח1 זכר) _אח.2_אח

  הוא ממין נקבה )אחות(.%1 כאשר _אח

(,1(:- הורה) _הורה,_אח2,_אח1 אחות) _אח(,2 הורה) _הורה,_אח

(, 1 נקבה) _אח.2 \= _אח1_אח

( 2,_אח%1 המתאר אח_או_אחות)_אח הם אחים.2 ו _אח%1 מתאר ש _אח

(,1( :- הורה)_הורה, _אח2,_אח1אח_או_אחות)_אח(.2 הורה)_הורה, _אח

 

( 2,_בן-דוד%1 המתאר בן-דוד)_בן-דוד הם בני דודים.2 ו- _בן-דוד%1 מתאר ש_בו-דוד

 (,1,_בן_דוד1(:- הורה)_הורה2, _בן_דוד1בן_דוד) _בן_דוד

(,2,_בן_דוד2הורה)_הורה

(,2,_הורה1אח_או_אחות)_הורה

.2 \= _בן_דוד1 _בן_דוד