ΠΛΗ31
PROLOG
Μάθηµα 5:
Έλεγχος Οπισθοδρόµησης
∆ηµήτρης Ψούνης∆ηµήτρης Ψούνης
ΠΕΡΙΕΧΟΜΕΝΑ
A.Θεωρία
1. Οπισθοδρόµηση
1. Μη προσδοκώµενα αποτελέσµατα
2∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης
1. Μη προσδοκώµενα αποτελέσµατα
2. Το κατηγόρηµα ! /0
2. Βίαιος Τερµατισµός Προγράµµατος
1. Το κατήγορηµα fail / 0
B.Ασκήσεις
Α. Θεωρία
1. Οπισθοδρόµηση
1. Μη προσδοκώµενα Αποτελέσµατα
Το παρακάτω πρόγραµµα εντοπίζει τον µέγιστο µεταξύ δύο αριθµών:
3∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης
Εκτελούµε τις παρακάτω ερωτήσεις:
max(X,Y,M):-
X>Y,
M=X.
max(X,Y,M):-
X=<Y,
M=Y.
?- max(4,5,Ν).
Η δεύτερη απάντηση κρίνεται παράλογη και καταχρηστική!
?- max(4,5,Ν).
Ν = 5.
?- max(5,4,Ν).
Ν = 5 ;
false.
Α. Θεωρία
1. Οπισθοδρόµηση
1. Μη προσδοκώµενα Αποτελέσµατα
Για να δούµε γιατί συµβαίνει αυτό θα µελετήσουµε το δένδρο εκτέλεσης των
δύο ερωτηµάτων:
4∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης
Στόχος: max(4,5,Ν).
max(X,Y,M):-
X>Y,
M=X.
max(X,Y,M):-
X=<Y,
M=Y.
Στόχος: max(4,5,Ν).
Στόχος: 4>5,Ν=4.
X=4,Υ=5,Μ=Ν
Αποτυχία
X=4,Υ=5,Μ=Ν
Στόχος: 4=<5,Ν=5.
?- max(4,5,N).
N = 5.
Στόχος: Ν=5.
Απαντά: N=5
?- max(5,4,N).
N = 5 ;
false.
Στόχος: max(5,4,Ν).
Στόχος: 5=<4,Ν=4.
X=5,Υ=4,Μ=Ν
Αποτυχία
Απαντά false
X=5,Υ=4,Μ=Ν
Στόχος: 5>4,Ν=5.
Στόχος: Ν=5.
Απαντά: N=5
Περιµένει
Α. Θεωρία
1. Οπισθοδρόµηση
2. To κατηγόρηµα ! / 0
Το κατηγόρηµα ! / 0 (διαβάζεται cut) χρησιµοποιείται για τον έλεγχο της
οπισθοδρόµησης:
5∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης
οπισθοδρόµησης:
Η εκτέλεση του επιτυγχάνει πάντα.
Θέτει φραγµό στην οπισθοδρόµηση. Όταν συναντίεται κατά την
οπισθοδρόµηση, αυτή σταµατά!
Το χρησιµοποιούµε όταν γνωρίζουµε ότι εφόσον επιτυγχάνει ένας δρόµος
υπολογισµού δεν πρέπει να γίνει οπισθοδρόµηση από το σηµείο χρήσης του
! και πριν.
∆ιορθώνουµε τον ορισµό του κατηγορήµατος max ως εξής:∆ιορθώνουµε τον ορισµό του κατηγορήµατος max ως εξής:
max(X,Y,M):-
X>Y,!,
M=X.
max(X,Y,M):-
X=<Y,
M=Y.
Α. Θεωρία
1. Οπισθοδρόµηση
2. To κατηγόρηµα ! / 0
Βλέπουµε εκ νέου την εκτέλεση των ερωτηµάτων
6∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης
Στόχος: max(4,5,Ν).
max(X,Y,M):-
X>Y,!,
M=X.
max(X,Y,M):-
X=<Y,
M=Y.
Στόχος: 4>5,!,Ν=4.
X=4,Υ=5,Μ=Ν
Αποτυχία
X=4,Υ=5,Μ=Ν
Στόχος: 4=<5,Ν=5.
?- max(4,5,N).
N = 5.
Στόχος: Ν=5.
Απαντά: N=5
Στόχος: max(5,4,Ν).
X=5,Υ=4,Μ=ΝX=5,Υ=4,Μ=Ν
?- max(5,4,N).
N = 5.Στόχος: 5=<4,Ν=4.
X=5,Υ=4,Μ=ΝX=5,Υ=4,Μ=Ν
Στόχος: 5>4,!,Ν=5.
Στόχος: Ν=5.
Απαντά: N=5
Στόχος: !,Ν=5.
∆εν εξετάζεται
Α. Θεωρία
1. Οπισθοδρόµηση
2. To κατηγόρηµα ! / 0
Με χρήση του ! µπορούµε να έχουµε κοµψές αναπαραστάσεις στα
προγράµµατα µας.
7∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης
προγράµµατα µας.
Στην ουσία προσοµοιώνουµε και το if-else
Καλύτερες αναπαραστάσεις του ίδιου κατηγορήµατος:
max(X,Y,M):-
X>Y,!,
M=X.
max(X,Y,M):-
max(X,Y,M):-
X>Y,!,
M=X.
max(X,Y,M):-
max(X,Y,Χ):-
X>Y,!.
max(X,Y,Υ).
max(X,Y,M):-
X=<Y,
M=Y.
max(X,Y,M):-
M=Y.
max(X,Y,Υ).
Α. Θεωρία
2. Βιαίος Τερµατισµός
1. To κατηγόρηµα fail / 0
Το κατηγόρηµα fail / 0 είναι το κατηγόρηµα της αποτυχίας:
8∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης
Η εκτέλεση του αποτυγχάνει πάντα.
(άρα εκκινά την οπισθοδρόµηση)
Από µόνο του δεν κάνει και πολλά πράγµατα.
Ωστόσο αν έχουµε ακολουθιακά τις δηλώσεις ! και έπειτα fail
τερµατίζουµε στην ουσία επι τόπου το πρόγραµµα.
Είναι χρήσιµο εργαλείο σε µεγάλες αναζητήσεις όταν καταλαβαίνουµε
ότι πρέπει να τερµατίσουµε την εκτέλεση του προγράµµατος µε
αρνητική απάντηση.
Β. Ασκήσεις
Εφαρµογή 1
Έστω το παρακάτω πρόγραµµα Prolog:
9∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης
first:- room(X),
write(X),
nl,
fail.
Σας δίνονται τα παρακάτω ερωτήµατα:
(a1) first.
(a2) second.fail.
second:- room(X),
!,
write(X),
nl,
fail.
third:- room(X),
write(X),
nl,
!,
fail.
fourth:- !,
room(X),
write(X),
(a2) second.
(a3) third.
(a4) fourth.
(a5) fifth.
Για κάθε ένα από τα παραπάνω ερωτήµατα αντιστοιχείστε µία από
τις παρακάτω απαντήσεις:
(1) (2) (3) (4) (5)
a a
b
a a
b
a
b
write(X),
nl,
fail.
fifth:- room(X),
write(X),
nl,
fail,
!.
room(a).
room(b).
room(c).
room(d).
Γράψτε την απάντηση σε µορφή ζεύγους, π.χ. a3->2
No c
d
No
No c
d
No
c
d
No
Β. Ασκήσεις
Εφαρµογή 1
10∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης
11∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης
Β. Ασκήσεις
Εφαρµογή 2
(α) f(X,Y):- X<0,!, Y=0.
(β)
f(X,Y):- X<0,!, Y=0.
f(_,0).
(γ)
f(X,Y):- X>=0, !, Y=0.
f(_,1).
(δ)
f(X,Y):- X<0, !, Y=0.
f(_,1).
(ε)
f(_,1).
f(X,Y):- X<0, !, Y=0.
Β. Ασκήσεις
Εφαρµογή 2
12∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης

More Related Content

PDF
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 1
PDF
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2
PDF
PROLOG - ΜΑΘΗΜΑ 3
PDF
ΠΛΗ31 ΜΑΘΗΜΑ 2.3
PDF
ΠΛΗ31 ΜΑΘΗΜΑ 2.1
PDF
ΠΛΗ31 ΜΑΘΗΜΑ 2.6
PDF
ΠΛΗ31 ΜΑΘΗΜΑ 2.4
PDF
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.4
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 1
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2
PROLOG - ΜΑΘΗΜΑ 3
ΠΛΗ31 ΜΑΘΗΜΑ 2.3
ΠΛΗ31 ΜΑΘΗΜΑ 2.1
ΠΛΗ31 ΜΑΘΗΜΑ 2.6
ΠΛΗ31 ΜΑΘΗΜΑ 2.4
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.4

What's hot (20)

PDF
ΠΛΗ31 ΜΑΘΗΜΑ 2.2
PDF
ΠΛΗ31 ΤΕΣΤ 4
PDF
ΠΛΗ20 ΜΑΘΗΜΑ 2.3
PDF
ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.4
PDF
ΠΛΗ20 ΜΑΘΗΜΑ 2.5
PDF
ΠΛΗ20 ΜΑΘΗΜΑ 3.3
PDF
ΠΛΗ31 ΜΑΘΗΜΑ 1.3
PDF
ΠΛΗ30 ΜΑΘΗΜΑ 3.2
PDF
ΠΛΗ20 ΕΠΑΝΑΛΗΨΗ 4
PDF
ΠΛΗ20 ΜΑΘΗΜΑ 3.5
PDF
ΠΛΗ31 ΤΕΣΤ 22
PDF
ΠΛΗ31 ΜΑΘΗΜΑ 2.5
PDF
ΠΛΗ20 ΜΑΘΗΜΑ 2.4
PDF
ΠΛΗ31 ΤΕΣΤ 3
PDF
ΠΛΗ31 ΜΑΘΗΜΑ 1.2
PDF
ΠΛΗ20 ΕΠΑΝΑΛΗΨΗ 5
PDF
ΠΛΗ31 ΤΕΣΤ 6
PDF
ΠΛΗ30 ΕΠΑΝΑΛΗΨΗ 4
PDF
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.5
PDF
ΠΛΗ20 ΜΑΘΗΜΑ 2.2
ΠΛΗ31 ΜΑΘΗΜΑ 2.2
ΠΛΗ31 ΤΕΣΤ 4
ΠΛΗ20 ΜΑΘΗΜΑ 2.3
ΠΛΗ31 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.4
ΠΛΗ20 ΜΑΘΗΜΑ 2.5
ΠΛΗ20 ΜΑΘΗΜΑ 3.3
ΠΛΗ31 ΜΑΘΗΜΑ 1.3
ΠΛΗ30 ΜΑΘΗΜΑ 3.2
ΠΛΗ20 ΕΠΑΝΑΛΗΨΗ 4
ΠΛΗ20 ΜΑΘΗΜΑ 3.5
ΠΛΗ31 ΤΕΣΤ 22
ΠΛΗ31 ΜΑΘΗΜΑ 2.5
ΠΛΗ20 ΜΑΘΗΜΑ 2.4
ΠΛΗ31 ΤΕΣΤ 3
ΠΛΗ31 ΜΑΘΗΜΑ 1.2
ΠΛΗ20 ΕΠΑΝΑΛΗΨΗ 5
ΠΛΗ31 ΤΕΣΤ 6
ΠΛΗ30 ΕΠΑΝΑΛΗΨΗ 4
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.5
ΠΛΗ20 ΜΑΘΗΜΑ 2.2
Ad

Viewers also liked (11)

PDF
PROLOG ΜΑΘΗΜΑ 5 (ΕΚΤΥΠΩΣΗ)
PDF
PROLOG - ΜΑΘΗΜΑ 4 (ΕΚΤΥΠΩΣΗ)
PDF
PROLOG - ΜΑΘΗΜΑ 4
PDF
PROLOG - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
PDF
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 (ΕΚΤΥΠΩΣΗ)
PDF
ΠΛΗ31 ΜΑΘΗΜΑ 1.4
PDF
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ
PDF
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)
PDF
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2 (ΕΚΤΥΠΩΣΗ)
PDF
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 1 (ΕΚΤΥΠΩΣΗ)
PDF
ΠΛΗ31 ΤΕΣΤ 10
PROLOG ΜΑΘΗΜΑ 5 (ΕΚΤΥΠΩΣΗ)
PROLOG - ΜΑΘΗΜΑ 4 (ΕΚΤΥΠΩΣΗ)
PROLOG - ΜΑΘΗΜΑ 4
PROLOG - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 1.4
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ
ΠΛΗ31 ΜΑΘΗΜΑ 1.4 - ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 PROLOG ΜΑΘΗΜΑ 1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΤΕΣΤ 10
Ad

Similar to PROLOG ΜΑΘΗΜΑ 5 (20)

PDF
ΠΛΗ31 ΤΕΣΤ 19
PDF
ΠΛΗ31 ΤΕΣΤ 26
PDF
ΠΛΗ31 ΤΕΣΤ 30
PDF
Θέματα Πανελλαδικών Εξετάσεων 2014 - Ημερησίων ΕΠΑΛ – Ομάδα Α - Δομημένος Προ...
PDF
ΠΛΗ31 ΤΕΣΤ 31
PDF
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2
PDF
ΠΛΗ31 ΤΕΣΤ 29
PDF
ΠΛΗ31 ΤΕΣΤ 8
PDF
Plir b
PDF
04-06-13 ΕΠΑΛ-Δομημένος Προγραμματισμός
PPTX
C7 17 - code (if then else)
DOC
Diag ep ola_1
PDF
Φύλλο Εργασίας για Λογικές Εκφράσεις & Δομή Επιλογής
PDF
Them plir kat_c_hmer_no_1106
PDF
Πληροφορική - Πανελλήνιες 2025: Αυτά είναι τα θέματα.pdf
PDF
PLI31 GE1 2016 2017
PDF
ΠΛΗ30 ΔΙΑΓΩΝΙΣΜΑ 8
PDF
ΠΛΗ31 ΤΕΣΤ 25
PDF
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 3
PDF
ΠΛΗ31 ΤΕΣΤ 24
ΠΛΗ31 ΤΕΣΤ 19
ΠΛΗ31 ΤΕΣΤ 26
ΠΛΗ31 ΤΕΣΤ 30
Θέματα Πανελλαδικών Εξετάσεων 2014 - Ημερησίων ΕΠΑΛ – Ομάδα Α - Δομημένος Προ...
ΠΛΗ31 ΤΕΣΤ 31
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2
ΠΛΗ31 ΤΕΣΤ 29
ΠΛΗ31 ΤΕΣΤ 8
Plir b
04-06-13 ΕΠΑΛ-Δομημένος Προγραμματισμός
C7 17 - code (if then else)
Diag ep ola_1
Φύλλο Εργασίας για Λογικές Εκφράσεις & Δομή Επιλογής
Them plir kat_c_hmer_no_1106
Πληροφορική - Πανελλήνιες 2025: Αυτά είναι τα θέματα.pdf
PLI31 GE1 2016 2017
ΠΛΗ30 ΔΙΑΓΩΝΙΣΜΑ 8
ΠΛΗ31 ΤΕΣΤ 25
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 3
ΠΛΗ31 ΤΕΣΤ 24

More from Dimitris Psounis (20)

PDF
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
PDF
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
PDF
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
PDF
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
PDF
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
PDF
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
PDF
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
PDF
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
PDF
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
PDF
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
PDF
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
PDF
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
PDF
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
PDF
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
PDF
ΠΛΗ31 - ΤΕΣΤ 33
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 - ΤΕΣΤ 33
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6

Recently uploaded (16)

PPTX
Οι Κανόνες Μας Στο Εργαστήριο Υπολογιστών
PPTX
Δριστά Κυριακή, Το καπλάνι της βιτρίνας, της Άλκης Ζέη.pptx
PDF
ΕσωτερικήΑξιολόγηση56ουΓυμνασίουΑθήναςyear-2024-school-0501193-form-21-export...
PPTX
Τσολογιάννη Στυλιανή, Ο Τρελαντώνης.pptx
PPTX
Μπαμπάνης Κ., Εκεί που τραγουδ. οι καραβίδες.pptx
PPTX
ΤΣΑΡΤΣΑΡΗ ΕΛΙΣΑΒΕΤ, Ο Βίος και η Πολιτεία του Αλέξη Ζορμπά.pptx
PDF
ΕσωτερικήΣυνοπτικήΑξιολόγηση56ουΓυμνασίουΑθήναςyear-2024-school-0501193-form-...
PPTX
Πιπιλίκα Αναστασία_Μια φλόγα στο σκοτάδι (Έλεν Κέλερ).pptx
PPTX
Τιμαμόπουλος Ευγ., Ο άρχοντας των δαχτυλιδιών 2.pptx
PDF
ΕξωτερικήΑξιολόγηση56ουΓυμνασίουΑθήνας.year-2024-school-0501193-form-22-expor...
PPTX
Μπαμπάνη_Αρχ._Χωρίς_οικογένεια_(Έκτ._Μαλό).pptx
PPTX
Κωνσταντού Γλυκερία, Ο ΜΥΣΤΙΚΟΣ ΚΗΠΟΣ.pptx
PDF
Παιδικές Δασουπολίτικες Πατριδοφωνές 24-25.pdf
PPTX
ΣΤΑΜΟΥ_ΙΩΑΝΝΑ__Το_σπίτι_των_πνευμάτων_της_Ιζαμπέλ_Αλιέντε.pptx
PPTX
Φολτόπουλος Αλέξανδρος, Με μόνο Φίλο τον υπολογιστή (της Ράνιας Μπουμπουρή).pptx
PDF
Τριανταφύλλου Μπαμπάνης Αλέξανδρος, Λόγια της πλώρης.pdf
Οι Κανόνες Μας Στο Εργαστήριο Υπολογιστών
Δριστά Κυριακή, Το καπλάνι της βιτρίνας, της Άλκης Ζέη.pptx
ΕσωτερικήΑξιολόγηση56ουΓυμνασίουΑθήναςyear-2024-school-0501193-form-21-export...
Τσολογιάννη Στυλιανή, Ο Τρελαντώνης.pptx
Μπαμπάνης Κ., Εκεί που τραγουδ. οι καραβίδες.pptx
ΤΣΑΡΤΣΑΡΗ ΕΛΙΣΑΒΕΤ, Ο Βίος και η Πολιτεία του Αλέξη Ζορμπά.pptx
ΕσωτερικήΣυνοπτικήΑξιολόγηση56ουΓυμνασίουΑθήναςyear-2024-school-0501193-form-...
Πιπιλίκα Αναστασία_Μια φλόγα στο σκοτάδι (Έλεν Κέλερ).pptx
Τιμαμόπουλος Ευγ., Ο άρχοντας των δαχτυλιδιών 2.pptx
ΕξωτερικήΑξιολόγηση56ουΓυμνασίουΑθήνας.year-2024-school-0501193-form-22-expor...
Μπαμπάνη_Αρχ._Χωρίς_οικογένεια_(Έκτ._Μαλό).pptx
Κωνσταντού Γλυκερία, Ο ΜΥΣΤΙΚΟΣ ΚΗΠΟΣ.pptx
Παιδικές Δασουπολίτικες Πατριδοφωνές 24-25.pdf
ΣΤΑΜΟΥ_ΙΩΑΝΝΑ__Το_σπίτι_των_πνευμάτων_της_Ιζαμπέλ_Αλιέντε.pptx
Φολτόπουλος Αλέξανδρος, Με μόνο Φίλο τον υπολογιστή (της Ράνιας Μπουμπουρή).pptx
Τριανταφύλλου Μπαμπάνης Αλέξανδρος, Λόγια της πλώρης.pdf

PROLOG ΜΑΘΗΜΑ 5

  • 2. ΠΕΡΙΕΧΟΜΕΝΑ A.Θεωρία 1. Οπισθοδρόµηση 1. Μη προσδοκώµενα αποτελέσµατα 2∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης 1. Μη προσδοκώµενα αποτελέσµατα 2. Το κατηγόρηµα ! /0 2. Βίαιος Τερµατισµός Προγράµµατος 1. Το κατήγορηµα fail / 0 B.Ασκήσεις
  • 3. Α. Θεωρία 1. Οπισθοδρόµηση 1. Μη προσδοκώµενα Αποτελέσµατα Το παρακάτω πρόγραµµα εντοπίζει τον µέγιστο µεταξύ δύο αριθµών: 3∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης Εκτελούµε τις παρακάτω ερωτήσεις: max(X,Y,M):- X>Y, M=X. max(X,Y,M):- X=<Y, M=Y. ?- max(4,5,Ν). Η δεύτερη απάντηση κρίνεται παράλογη και καταχρηστική! ?- max(4,5,Ν). Ν = 5. ?- max(5,4,Ν). Ν = 5 ; false.
  • 4. Α. Θεωρία 1. Οπισθοδρόµηση 1. Μη προσδοκώµενα Αποτελέσµατα Για να δούµε γιατί συµβαίνει αυτό θα µελετήσουµε το δένδρο εκτέλεσης των δύο ερωτηµάτων: 4∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης Στόχος: max(4,5,Ν). max(X,Y,M):- X>Y, M=X. max(X,Y,M):- X=<Y, M=Y. Στόχος: max(4,5,Ν). Στόχος: 4>5,Ν=4. X=4,Υ=5,Μ=Ν Αποτυχία X=4,Υ=5,Μ=Ν Στόχος: 4=<5,Ν=5. ?- max(4,5,N). N = 5. Στόχος: Ν=5. Απαντά: N=5 ?- max(5,4,N). N = 5 ; false. Στόχος: max(5,4,Ν). Στόχος: 5=<4,Ν=4. X=5,Υ=4,Μ=Ν Αποτυχία Απαντά false X=5,Υ=4,Μ=Ν Στόχος: 5>4,Ν=5. Στόχος: Ν=5. Απαντά: N=5 Περιµένει
  • 5. Α. Θεωρία 1. Οπισθοδρόµηση 2. To κατηγόρηµα ! / 0 Το κατηγόρηµα ! / 0 (διαβάζεται cut) χρησιµοποιείται για τον έλεγχο της οπισθοδρόµησης: 5∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης οπισθοδρόµησης: Η εκτέλεση του επιτυγχάνει πάντα. Θέτει φραγµό στην οπισθοδρόµηση. Όταν συναντίεται κατά την οπισθοδρόµηση, αυτή σταµατά! Το χρησιµοποιούµε όταν γνωρίζουµε ότι εφόσον επιτυγχάνει ένας δρόµος υπολογισµού δεν πρέπει να γίνει οπισθοδρόµηση από το σηµείο χρήσης του ! και πριν. ∆ιορθώνουµε τον ορισµό του κατηγορήµατος max ως εξής:∆ιορθώνουµε τον ορισµό του κατηγορήµατος max ως εξής: max(X,Y,M):- X>Y,!, M=X. max(X,Y,M):- X=<Y, M=Y.
  • 6. Α. Θεωρία 1. Οπισθοδρόµηση 2. To κατηγόρηµα ! / 0 Βλέπουµε εκ νέου την εκτέλεση των ερωτηµάτων 6∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης Στόχος: max(4,5,Ν). max(X,Y,M):- X>Y,!, M=X. max(X,Y,M):- X=<Y, M=Y. Στόχος: 4>5,!,Ν=4. X=4,Υ=5,Μ=Ν Αποτυχία X=4,Υ=5,Μ=Ν Στόχος: 4=<5,Ν=5. ?- max(4,5,N). N = 5. Στόχος: Ν=5. Απαντά: N=5 Στόχος: max(5,4,Ν). X=5,Υ=4,Μ=ΝX=5,Υ=4,Μ=Ν ?- max(5,4,N). N = 5.Στόχος: 5=<4,Ν=4. X=5,Υ=4,Μ=ΝX=5,Υ=4,Μ=Ν Στόχος: 5>4,!,Ν=5. Στόχος: Ν=5. Απαντά: N=5 Στόχος: !,Ν=5. ∆εν εξετάζεται
  • 7. Α. Θεωρία 1. Οπισθοδρόµηση 2. To κατηγόρηµα ! / 0 Με χρήση του ! µπορούµε να έχουµε κοµψές αναπαραστάσεις στα προγράµµατα µας. 7∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης προγράµµατα µας. Στην ουσία προσοµοιώνουµε και το if-else Καλύτερες αναπαραστάσεις του ίδιου κατηγορήµατος: max(X,Y,M):- X>Y,!, M=X. max(X,Y,M):- max(X,Y,M):- X>Y,!, M=X. max(X,Y,M):- max(X,Y,Χ):- X>Y,!. max(X,Y,Υ). max(X,Y,M):- X=<Y, M=Y. max(X,Y,M):- M=Y. max(X,Y,Υ).
  • 8. Α. Θεωρία 2. Βιαίος Τερµατισµός 1. To κατηγόρηµα fail / 0 Το κατηγόρηµα fail / 0 είναι το κατηγόρηµα της αποτυχίας: 8∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης Η εκτέλεση του αποτυγχάνει πάντα. (άρα εκκινά την οπισθοδρόµηση) Από µόνο του δεν κάνει και πολλά πράγµατα. Ωστόσο αν έχουµε ακολουθιακά τις δηλώσεις ! και έπειτα fail τερµατίζουµε στην ουσία επι τόπου το πρόγραµµα. Είναι χρήσιµο εργαλείο σε µεγάλες αναζητήσεις όταν καταλαβαίνουµε ότι πρέπει να τερµατίσουµε την εκτέλεση του προγράµµατος µε αρνητική απάντηση.
  • 9. Β. Ασκήσεις Εφαρµογή 1 Έστω το παρακάτω πρόγραµµα Prolog: 9∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης first:- room(X), write(X), nl, fail. Σας δίνονται τα παρακάτω ερωτήµατα: (a1) first. (a2) second.fail. second:- room(X), !, write(X), nl, fail. third:- room(X), write(X), nl, !, fail. fourth:- !, room(X), write(X), (a2) second. (a3) third. (a4) fourth. (a5) fifth. Για κάθε ένα από τα παραπάνω ερωτήµατα αντιστοιχείστε µία από τις παρακάτω απαντήσεις: (1) (2) (3) (4) (5) a a b a a b a b write(X), nl, fail. fifth:- room(X), write(X), nl, fail, !. room(a). room(b). room(c). room(d). Γράψτε την απάντηση σε µορφή ζεύγους, π.χ. a3->2 No c d No No c d No c d No
  • 10. Β. Ασκήσεις Εφαρµογή 1 10∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης
  • 11. 11∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης Β. Ασκήσεις Εφαρµογή 2 (α) f(X,Y):- X<0,!, Y=0. (β) f(X,Y):- X<0,!, Y=0. f(_,0). (γ) f(X,Y):- X>=0, !, Y=0. f(_,1). (δ) f(X,Y):- X<0, !, Y=0. f(_,1). (ε) f(_,1). f(X,Y):- X<0, !, Y=0.
  • 12. Β. Ασκήσεις Εφαρµογή 2 12∆ηµήτρης Ψούνης, ΠΛΗ31, Prolog, Μάθηµα 5: Έλεγχος Οπισθοδρόµησης