4.3 Ορθότητα και Πληρότητα

Σχετικά έγγραφα
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

Πληρότητα της μεθόδου επίλυσης

ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης. Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012

HY Λογική Διδάσκων: Δ. Πλεξουσάκης

HY Λογική Διδάσκων: Δ. Πλεξουσάκης Εαρινό Εξάμηνο. Φροντιστήριο 6

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

Επανάληψη. ΗΥ-180 Spring 2019

HY 180 Λογική Διδάσκων: Δ. Πλεξουσάκης Φροντιστήριο 5

Τεχνητή Νοημοσύνη. 8η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 5: Προτασιακός Λογισμός: Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών

Ασκήσεις μελέτης της 8 ης διάλεξης

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

Μορφολογική Παραγωγή. 3 ο φροντιστήριο ΗΥ180 Διδάσκων: Δ. Πλεξουσάκης Τετάρτη 28/02/2019 Ζωγραφιστού Δήμητρα

Μορφολογική Παραγωγή. 3 ο φροντιστήριο ΗΥ180 Διδάσκων: Δ. Πλεξουσάκης Τετάρτη 08/03/2018 Ζωγραφιστού Δήμητρα

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος

Αλγόριθµοι και Πολυπλοκότητα

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60

Σειρά Προβλημάτων 5 Λύσεις

Λύσεις Σειράς Ασκήσεων 1

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Πολυπλοκότητα. Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης. Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης. Προσπάθεια υλοποίησης

Κατηγορηματικός Λογισμός (ΗR Κεφάλαιο )

Σημειώσεις Λογικής I. Εαρινό Εξάμηνο Καθηγητής: Λ. Κυρούσης

Μαθηματική Λογική και Λογικός Προγραμματισμός

Μορφολογική Παραγωγή. 3 ο φροντιστήριο ΗΥ180 Διδάσκων: Δ. Πλεξουσάκης Τετάρτη 15/03/2017 Ζωγραφιστού Δήμητρα

ΑΣΚΗΣΗ 1 Για τις ερωτήσεις 1-4 θεωρήσατε τον ακόλουθο γράφο. Ποιές από τις παρακάτω προτάσεις αληθεύουν και ποιές όχι;

Σειρά Προβλημάτων 5 Λύσεις

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

12. ΑΝΙΣΩΣΕΙΣ Α ΒΑΘΜΟΥ. είναι δύο παραστάσεις μιας μεταβλητής x πού παίρνει τιμές στο

f(t) = (1 t)a + tb. f(n) =

4. Ο,τιδήποτε δεν ορίζεται με βάση τα (1) (3) δεν είναι προτασιακός τύπος.

Αναδρομικός αλγόριθμος

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Φροντιστήριο 4: Μορφολογική Παραγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών

Σειρά Προβλημάτων 4 Λύσεις

Προτασιακός Λογισμός (HR Κεφάλαιο 1)

ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1)

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (2)

K15 Ψηφιακή Λογική Σχεδίαση 3: Προτασιακή Λογική / Θεωρία Συνόλων

Λογική. Φροντιστήριο 3: Συνεπαγωγή/Ισοδυναμία, Ταυτολογίες/Αντινομίες, Πλήρης Αλγόριθμος Μετατροπής σε CNF

Τεχνητή Νοημοσύνη. 7η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

Αλγόριθμοι για αυτόματα

Σειρά Προβλημάτων 5 Λύσεις

CSC 314: Switching Theory

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Υποθέσεις - - Θεωρήματα Υποθέσεις - Θεωρήματα Στα μαθηματικά και στις άλλες επιστήμες κάνουμε συχνά υποθέσεις. Οταν δείξουμε ότι μια υπόθεση είναι αλη

Λογικός Προγραμματισμός

Σειρά Προβλημάτων 5 Λύσεις

Δομές Δεδομένων & Αλγόριθμοι

Μαθηματική Λογική και Λογικός Προγραμματισμός

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

ΜΕΓΙΣΤΙΚΟΣ ΤΕΛΕΣΤΗΣ 18 Σεπτεμβρίου 2014

Βασικές Ισοδυναμίες με Άρνηση, Πίνακες Αληθείας, Λογική Συνεπαγωγή, Ταυτολογίες, Αντινομίες, Πλήρης Αλγόριθμος Μετατροπής CNF

Φροντιστήριο 11 Λύσεις

Προτασιακή Λογική. Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Ηπείρου Γκόγκος Χρήστος

Υπολογιστική Πολυπλοκότητα

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

Τεχνητή Νοημοσύνη. 2η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

, για κάθε n N. και P είναι αριθμήσιμα.

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 9: Προτασιακή λογική. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

ΚΕΦΑΛΑΙΟ 3: Συνθήκες Αλυσίδων

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές

Σειρά Προβλημάτων 5 Λύσεις

f(x) = και στην συνέχεια

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Λύσεις 4ης Σειράς Ασκήσεων

Ανάλυση της Ορθότητας Προγραμμάτων

Π(n) : 1 + a + + a n = an+1 1 a 1. a 1. + a k+1 = ak+2 1

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

Σειρά Προβλημάτων 4 Λύσεις

ΠΑΙΓΝΙΑ Παιχνίδια Γενική Θεώρηση μεγιστοποιήσει την πιθανότητά

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

Λογικοί πράκτορες. Πράκτορες βασισµένοι στη γνώση

Δένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)

Υποθέσεις - Θεωρήματα. Μαθηματικά Πληροφορικής 1ο Μάθημα. Η χρυσή τομή. Υποθέσεις - Εικασίες

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

(Γραμμικές) Αναδρομικές Σχέσεις

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

Υπολογιστική Πολυπλοκότητα

Ανάλυση της Ορθότητας Προγραμμάτων

Ξέρουμε ότι: Συνάρτηση-απεικόνιση με πεδίο ορισμού ένα σύνολο Α και πεδίο τιμών ένα σύνολο Β είναι κάθε μονοσήμαντη απεικόνιση f του Α στο Β.

(Γραμμικές) Αναδρομικές Σχέσεις

5.1. Προσδοκώμενα αποτελέσματα

Κανονικές μορφές - Ορισμοί

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

(Γραμμικές) Αναδρομικές Σχέσεις

Transcript:

4.3 Ορθότητα και Πληρότητα Συστήματα αποδείξεων όπως η μορφολογική παραγωγή και η κατασκευή μοντέλων χρησιμοποιούνται για να δείξουμε την εγκυρότητα εξαγωγών συμπερασμάτων. Ένα σύστημα αποδείξεων μπορεί να αποτύχει: να απαντήσει ότι μια εξαγωγή συμπεράσματος είναι έγκυρη ενώ στην πραγματικότητα είναι μη-έγκυρη. Για παράδειγμα η εξαγωγή συμπεράσματος { Q, Q} / είναι μη-έγκυρη. Ένα σύστημα αποδείξεων λέγεται ορθό αν οποτεδήποτε υποδεικνύει μια εξαγωγή συμπεράσματος ως έγκυρη, αυτή είναι πράγματι έγκυρη. Ένα σύστημα αποδείξεων μπορεί επίσης να αποτύχει με το να χαρακτηρίσει ως μη-έγκυρη μια έγκυρη εξαγωγή συμπεράσματος. Ένα σύστημα αποδείξεων λέγεται πλήρες αν προσδιορίζει κάθε έγκυρη εξαγωγή συμπεράσματος ως έγκυρη. Για παράδειγμα, ένα σύστημα που δεν μπορεί να χαρακτηρίσει την εξαγωγή συμπεράσματος { Q, } / Q ως έγκυρη είναι μη-πλήρες. Οι ιδιότητες της ορθότητας και της πληρότητας είναι επιθυμητές για κάθε σύστημα αποδείξεων. Δεν είναι όμως πάντα εύκολο να επιτευχθούν και οι δύο. Ορισμός Μια πρόταση Α παράγεται από ένα σύνολο προτάσεων S σύμφωνα με ένα σύστημα αποδείξεων S, αν το S προσδιορίζει την Α σαν λογική συνέπεια του S. Συμβολισμός : S - S A. Στη μορφολογική παραγωγή, η Α παράγεται από το S αν υπάρχει αν υπάρχει παραγωγή από το S χρησιμοποιώντας τους κανόνες της μορφολογικής παραγωγής. Στην κατασκευή μοντέλων η Α παράγεται από το S αν το σύνολο { S { A}} μπορεί να αναχθεί στο κενό σύνολο με τη χρήση των κανόνων αντικατάστασης. Ορισμοί 1. Ένα σύστημα αποδείξεων S είναι ορθό αν S = A όποτε S - S A. 2. Ένα σύστημα αποδείξεων S είναι πλήρες αν S - S A όποτε S = A. 3. Ένα σύστημα αποδείξεων S είναι ορθό και πλήρες αν S - S A αν και μόνο αν S = A. Παραδείγματα: 1. Θεωρείστε το σύστημα S 1 για το οποίο ισχύει S - S1A αν και μόνο αν Α A S. Για το S 1 η εξαγωγή συμπεράσματος {, Q} / είναι έγκυρη αλλά η { Q, } / Q είναι μη-έγκυρη. Είναι το σύστημα ορθό; Αν A S τότε S = A. Άρα, αν S - S1A, τότε A S και επομένως S = A. Άρα είναι ορθό. Είναι και πλήρες; Όχι, γιατί δεν αναγνωρίζει έγκυρες εξαγωγές συμπερασμάτων. 2. Θεωρείστε το σύστημα S 2 για το οποίο ισχύει S - S 2 A για κάθε Α. Δηλαδή αναγνωρίζει κάθε εξαγωγή συμπεράσματος ως έγκυρη. Είναι ορθό; Όχι, γιατί αναγνωρίζει ως έγκυρες και τις μη-έγκυρες εξαγωγές συμπεράσματος. Είναι πληρές; Ναι, γιατί χαρακτηρίζει σωστά ως έγκυρες όλες τις έγκυρες εξαγωγές συμπερασμάτων.

Τα S 1 και S 2 δεν μας είναι χρήσιμα. Χρησιμότερο θα ήταν ένα σύστημα που χαρακτηρίζει ως έγκυρες τις έγκυρες εξαγωγές συμπερασμάτων και μόνο αυτές. Η κατασκευή μοντέλων είναι ορθό και πλήρες σύστημα. 4.4 Πολυπλοκότητα των Συστημάτων Αποδείξεων Η πολυπλοκότητα ενός αλγόριθμου είναι ένα μέτρο της αποδοτικότητάς του. Συνήθως εκφράζεται σαν μια συνάρτηση η οποία σχετίζει τον αριθμό των υπολογιστικών βημάτων που απαιτούνται με το μέγεθος των δεδομένων εισόδου. Στην περίπτωση των συστημάτων αποδείξεων το πρόβλημα προσδιορισμού της πολυπλοκότητας εκφράζεται ως εξής : Για ένα σύστημα S βρείτε μια συνάρτηση f έτσι ώστε, η εγκυρότητα ή μη-εγκυρότητα μιας εξαγωγής συμπεράσματος που περιέχει σύμβολα μπορεί να προσδιοριστεί από το S σε f () το πολύ βήματα. Για παράδειγμα, για τη μέθοδο των πινάκων αληθείας και για την εξαγωγή συμπεράσματος { 1, 2,, 1 } /, όπου τα 1, 2,, είναι διακεκριμένα γράμματα, ο πίνακας αλήθειας θα έχει 2 γραμμές. Άρα η f είναι εκθετική. Καθώς μια εξαγωγή συμπεράσματος με σύμβολα δεν μπορεί να περιέχει περισσότερα από γράμματα, ο πίνακας αληθείας δεν μπορεί να περιέχει περισσότερες από 2 γραμμές. Άρα η πολυπλοκότητα της μεθόδου είναι εκθετική. Και άλλα συστήματα έχουν εκθετική πολυπλοκότητα στη χειρότερη περίπτωση. Υπάρχουν και περιπτώσεις που είναι απλούστερες, αλλά πάντα υπάρχουν άλλες στις οποίες απαιτείται εκθετικός αριθμός βημάτων. Ο έλεγχος της εγκυρότητας των εξαγωγών συμπερασμάτων του rop, ανήκει σε μια κλάση προβλημάτων που είναι γνωστή με το όνομα N-Πλήρη (N-Complete) προβλήματα. Υπάρχουν διάφορα είδη N-Πλήρων Προβλημάτων. Για τις ανάγκες μας, μας αρκεί να εξετάσουμε τα λεγόμενα N-Πλήρη Προβλήματα Αποφάσεων. Ένα πρόβλημα απόφασης είναι ένα πρόβλημα στο οποίο απαιτείται μια απάντηση της μορφής ναι/όχι. Για παράδειγμα, το πρόβλημα αποφάσισε αν ένας ακέραιος είναι πρώτος είναι πρόβλημα απόφασης, ενώ το πρόβλημα βρείτε τους πρώτους παράγοντες ενός ακέραιου δεν είναι. Για την περίπτωση του rop, το πρόβλημα αποφασίστε αν μια δεδομένη εξαγωγή συμπεράσματος είναι έγκυρη είναι ένα πρόβλημα απόφασης. Σχετίζεται στενά με ένα άλλο πρόβλημα απόφασης: αποφασίστε αν μια πρόταση του rop είναι ικανοποιήσιμη ή όχι (SAT). 4.4.1 Προβλήματα N Τα δεδομένα ενός προβλήματος απόφασης για τα οποία η ορθή απάντηση είναι ναι λέγονται θετικά ενώ εκείνα για τα οποία η απάντηση είναι όχι λέγονται αρνητικά. Έστω ότι κάθε είσοδος για ένα πρόβλημα μπορεί να πάρει ένα πιστοποιητικό, το οποίο είναι κάποια έκφραση η οποία ελέγχεται εύκολα για το αν ικανοποιεί η αντίστοιχη είσοδος το

πρόβλημα. Π.χ., για το πρόβλημα SAT ένα τέτοιο πιστοποιητικό είναι μια ερμηνεία που ικανοποιεί την πρόταση. Ένα πρόβλημα απόφασης Q λέγεται N (o-determiistic polyomial) αν έχει τις παραπάνω ιδιότητες: 1. Κάθε θετική είσοδος έχει ένα πιστοποιητικό. 2. Υπάρχει αλγόριθμος AQ ο οποίος δέχεται ως είσοδο οποιοδήποτε είσοδο Ι του Q μαζί με πιστοποιητικό C (αν υπάρχει) και απαντά ναι αν το C είναι πιστοποιητικό του Ι και όχι αν δεν είναι. 3. ο αλγόριθμος είναι πολυωνυμικού χρόνου, δηλαδή υπάρχει ακέραιος k και μια σταθερά c, έτσι ώστε ο αριθμός των βημάτων που εκτελεί ο A για να διαπιστώσει αν το C είναι πιστοποιητικό του Ι, είναι το πολύ είναι το μέγεθος του Ι. Q k c, όπου Το πρόβλημα SAT είναι πρόβλημα N. Μια πρόταση με σύμβολα περιέχει το πολύ -1 συνδετικά. Κάθε ερμηνεία της πρότασης είναι ένα πιστοποιητικό: αρκεί να υπολογίσουμε μια γραμμή του πίνακα αληθείας η οποία αντιστοιχεί στην ερμηνεία. Χρειαζόμαστε -1 βήματα για μια γραμμή του πίνακα. Άρα f ( ) = 1 < 2. Το SAT έχει μια ακόμα ιδιότητα: αν Q είναι οποιοδήποτε άλλο N πρόβλημα, υπάρχει ένας συστηματικός τρόπος για να μετατρέψουμε την είσοδο Ι του Q στην είσοδο Ι του SAT, έτσι ώστε οι θετικές είσοδοι του Q να μετατρέπονται σε θετικές εισόδους του SAT και αντίστοιχα οι αρνητικές. Επιπλέον, ο αλγόριθμος μετατροπής είναι πολυωνυμικός. Τι σημαίνει αυτό; Σημαίνει ότι κανένα N πρόβλημα δεν είναι πιο δύσκολο από το SAT παρά μόνο κατά μια διαδικασία πολυωνυμικού χρόνου. Ένα πρόβλημα λέγεται N-Πλήρες αν είναι N και κάθε άλλο N πρόβλημα μπορεί να μετατραπεί σε αυτό σε πολυωνυμικό χρόνο. Ενδιαφέρον παρουσιάζουν τα N προβλήματα που δεν μπορούν να λυθούν σε πολυωνυμικό χρόνο (όλα τα N Πλήρη). Αν οποιοδήποτε N-πλήρες πρόβλημα μπορεί να λυθεί σε πολυωνυμικό χρόνο, τότε κάθε N πρόβλημα μπορεί να λυθεί σε πολυωνυμικό χρόνο. Αν μπορούσαμε να λύσουμε κάποιο N- Πλήρες πρόβλημα σε πολυωνυμικό χρόνο, τότε θα απαντούσαμε ένα από τα μεγάλα ανοιχτά ερωτήματα της θεωρίας των υπολογισμών: =? N. Το SAT ήταν το πρώτο N-Πλήρες πρόβλημα που ανακαλύφθηκε. Θεώρημα (Cook 1971). To SAT είναι N-Πλήρες. Άρα και ο έλεγχος μη-εγκυρότητας είναι N-Πλήρες πρόβλημα. Σημαίνει αυτό ότι δεν έχουμε ελπίδες για την αυτόματη απόδειξη θεωρημάτων; Όχι, στην πράξη, τα περισσότερα προβλήματα λύνονται σε αποδεκτό χρόνο. Επίσης, χρησιμοποιούμε μεθόδους οι οποίες περιορίζονται σε κάποιες ειδικής μορφής προτάσεις.

4.5 Μέθοδος της Επίλυσης (Resolutio) Η μέθοδος της επίλυσης διαφέρει από τη μορφολογική παραγωγή και την κατασκευή μοντέλων στο ότι αφορά προτασιακά σχήματα περιορισμένης μορφής. Ορισμοί Ένας όρος είναι μια διάζευξη γραμμάτων. Π.χ. Q, Q R, Q R S. Καθώς μια διάζευξη είναι μεταθετική, ο όρος Q R είναι ισοδύναμος με τον όρο R Qκαι με τον R Q. Συχνά θεωρούμε τον έναν όρο σαν ένα σύνολο γραμμάτων, επομένως η σειρά με την οποία τα γράμματα εμφανίζονται δεν έχει σημασία. Οι παραπάνω όροι γράφονται ως {,Q, {, QR, } και { Q,, RS, } αντίστοιχα. Τα σύνολα {,Q} και {Q,} απεικονίζουν τον ίδιο όρο. Ένας μοναδιαίος όρος είναι ένας όρος που αποτελείται από ένα και μόνο γράμμα. Π.χ. {}, { Q }. Οι μοναδιαίοι όροι γράφονται και χωρίς {,}, δηλαδή ως και Q αντίστοιχα. Ο κενός όρος που συμβολίζεται με, συμβολίζει μια αντινομία. Ο όρος Τ αντιστοιχεί σε ένα σύνολο που περιέχει ένα γράμμα και την άρνησή του.{,q, }. Κάθε σύνολο προτασιακών σχημάτων μπορεί να μετατραπεί σε έναν σύνολο όρων : πρώτα μετατρέπεται σε συζευκτική κανονική μορφή και κατόπιν διαχωρίζονται οι διαζεύξεις. Κάθε διάζευξη είναι ένας όρος. Η μέθοδος της επίλυσης βασίζεται στην εγκυρότητα εξαγωγών συμπερασμάτων της μορφής { Q, Q R} = R. Αν Rείναι ψευδής, τότε και και R είναι ψευδείς. Αν Q είναι ψευδής, τότε και Q θα είναι ψευδής. Αν Q είναι αληθής, τότε και Q R θα είναι ψευδής. Άρα, κάποια υπόθεση θα είναι ψευδής. Επομένως, αν οι υποθέσεις είναι αληθείς, τότε και το συμπέρασμα θα είναι αληθές. Ο όρος {,R} ονομάζεται όρος επίλυσης των {,Q} και { Q, R}. Αν δύο όροι C και C περιέχουν τα γράμματα Α και A αντίστοιχα, οι όροι επιλύονται και παράγουν έναν καινούριο όρο ο οποίος περιέχει όλα τα γράμματα του C πλην του Α και όλα τα γράμματα του C πλην του A. res(c,c ) = (C-{A}) (C -{ A}) ή res(κ {Α}, Κ { A }) = (Κ Κ ) Παραδείγματα res( {, QR, }, { QR,, S} ) = { R,, S} res(q, {, QR, }) = { R, } res(, ) = res( {, Q}, Q) = res( {, QR, }, { Q, RS, }) = { R,, RS, } ={ Q,, QS, } = T

Αν δύο όροι έχουν κάποιο όρο επίλυσης res(c, C ), τότε {C, C } = res(c, C ). Γενικότερα, { Κ {Α}, Κ { A }} = Κ Κ. Για να διαπιστώσουμε ότι αυτό ισχύει, ας υποθέσουμε για κάποια ερμηνεία το συμπέρασμα είναι ψευδές. Αν Α είναι αληθές τότε K { A } είναι ψευδές, ενώ αν Α είναι ψευδές τότε Κ {Α}είναι ψευδές. Σε κάθε περίπτωση, μια από τις υποθέσεις είναι ψευδής. Άρα αν οι υποθέσεις είναι αληθείς για κάποια ερμηνεία, τότε και το συμπέρασμα είναι αληθές. Γιατί όμως μας είναι χρήσιμο αυτό. Αν S = C, τότε το S είναι ικανοποιήσιμο αν και μόνο αν το S C είναι ικανοποιήσιμο. Άρα αφού {C, C } = res(c, C ) το {C, C }θα είναι ικανοποιήσιμο αν και μόνο αν το σύνολο {C, C, res(c, C )} είναι ικανοποιήσιμο. Γενικότερα, αν S είναι οποιοδήποτε σύνολο όρων και R είναι ένας όρος επίλυσης οποιονδήποτε δύο από αυτούς, τότε το S είναι ικανοποιήσιμο αν και μόνο αν το S {R} είναι ικανοποιήσιμο. Αρχή της επίλυσης Έστω S ένα σύνολο όρων και R(S) το σύνολο που προκύπτει αν προσθέσουμε στο S όλους τους όρους επίλυσης των μελών του. Τότε το S είναι ικανοποιήσιμο αν και μόνο αν το R(S) είναι ικανοποιήσιμο. Παράδειγμα Δείξτε ότι το σύνολο S = {{ Q, }, { QR, },, R} είναι μη ικανοποιήσιμο. Πρώτα βρίσκουμε τους όρους της επίλυσης res({ Q, }, { QR, }) = { R, } res({ Q, }, ) = Q res({ QR, }, R ) = Q R(S) = {{ Q, }, { QR, },, R, { R, },Q, Q } Αυτό το σύνολο είναι μη-ικανοποιήσιμο γιατί περιέχει Q και Q. Άρα, βάσει της αρχής της επίλυσης, το S θα είναι μη-ικανοποιήσιμο. Θα μπορούσαμε να συνεχίσουμε υπολογίζοντας το R(R(S)) = {{ Q, }, { QR, },, R, { R, },Q, Q, R,, } H αρχή της επίλυσης μπορεί να διατυπωθεί και ως εξής: Έστω S ένα σύνολο όρων και R η πράξη της προσθήκης των όρων επίλυσης. Αν για κάποιο ακέραιο, R (S), τότε το S είναι μη-ικανοποιήσιμο. Η διαδικασία της επίλυσης μπορεί να αναπαρασταθεί και με τη μορφή δέντρου. Για παράδειγμα :

{ Q, } { QR, } R Q Q Ένα δέντρο επίλυσης για ένα σύνολο S είναι ένα δυαδικό δέντρο όπου κάθε φύλλο περιέχει ένα μέλος του S και κάθε ενδιάμεσος κόμβος περιέχει τον όρο επίλυσης των άμεσων απογόνων του στο δέντρο. Αν επιπλέον η ρίζα του δέντρου περιέχει τον όρο τότε το δέντρο επίλυσης λέγεται δέντρο ανασκευής. Αν ένα σύνολο έχει ένα δέντρο ανασκευής, τότε είναι μη-ικανοποιήσιμο. Παράδειγμα Δείξτε ότι το σύνολο S= {{ Q, },{ Q, },{ QR, },{ Q, RS, },{ Q, R, S}} είναι μη-ικανοποιήσιμο. { Q, RS, } { Q, R, S} { Q}, { Q, } { QR, } { Q, R} Q Q Θεώρημα Η μέθοδος της επίλυσης είναι ορθή.

Απόδειξη Προκύπτει από το γεγονός ότι κάθε σύνολο προτασιακών σχημάτων είναι ισοδύναμο με ένα σύνολο όρων. Είναι η μέθοδος πλήρης. Ας υποθέσουμε ότι δεν υπάρχει δέντρο ανασκευής για κάποιο σύνολο S. Σημαίνει αυτό ότι το S είναι μη-ικανοποιήσιμο. Για να το δείξουμε αυτό, πρέπει να δείξουμε ότι κάθε μη-ικανοποιήσιμο σύνολο όρων έχει ένα δέντρο ανασκευής. Υπάρχει αλγόριθμος ο οποίος κατασκευάζει ένα δέντρο ανασκευής για ένα οποιοδήποτε μη-ικανοποιήσιμο σύνολο όρων. Αλγόριθμος Iput: ένα σύνολο όρων S Output: αν το S είναι μη-ικανοποιήσιμο, ένα δένδρο ανασκευής για το S, διαφορετικά μήνυμα για την μη-εύρεση δέντρου. 1. Αν για κάποιο γράμμα Α, το Α και το A είναι μέλη του S, τότε ο αλγόριθμος τερματίζει επιστρέφοντας το δέντρο Α Α 2. Αν κάθε όρος του S περιέχει ένα αρνητικό γράμμα, τότε ο αλγόριθμος τερματίζει και δίνει ως αποτέλεσμα ένδειξη αποτυχίας. 3. Έστω C = { A1, A2, A3,..., A } ένας όρος του S όπου κάθε Α J είναι θετικό και έστω i := 1. 4. Αν Ai S, τότε έστω Ti το δέντρο με μόνο κόμβο το Ai. Πήγαινε στο βήμα 8. 5. Για κάθε όρο K S { C}, έστω K = K { A i }. Το K καλείται αντίστοιχος όρος του Κ. Αν A K, τότε K = K ). Έστω S = { K K S { C}}. i 6. Καλούμε αναδρομικά τον αλγόριθμο με είσοδο S i. Αν ο αλγόριθμος επιστρέψει «αποτυχία», τότε επιστρέφουμε «αποτυχία» και τερματίζουμε. Αλλιώς ο αλγόριθμος επιστρέφει το δέντρο ανασκευής T i και συνεχίζει στο βήμα 7. 7. Έστω T i το δέντρο που προκύπτει από το T i με την αντικατάσταση κάθε φύλλου του T με τον όρο του S του οποίου είναι αντίστοιχο και i αναμορφώνουμε το δέντρο. Αν η ρίζα του T i είναι, πήγαινε στο βήμα 10. 8. Αν i<, τότε i = i+ 1 και πήγαινε στο βήμα 4. Διαφορετικά πήγαινε στο βήμα 9. 9. Επιστρέφουμε το δέντρο. i

T 1 { AA..., A } 1, 2, T 2 { A..., A } A2 2, T 3 { A..., A } 3, A 3 T A A

και τερματίζομε 10. Καλούμε αναδρομικά τον αλγόριθμο με είσοδο S { C}. Παράδειγμα Ελέγξτε αν το σύνολο S= {{ Q,, R},{ ST,, },{ SU, }, T,{, U},{ QW, },{ Q, W}, R} είναι ικανοποιήσιμο. (1) Δεν υπάρχουν αντίθετα γράμματα στο S. (2) Υπάρχουν όροι που περιέχουν μόνο θετικά γράμματα. (3) C= { QR,, }, i= 1 (4) S (5) S1 = {{ ST, },{ SU, }, T, U,{ QW, },{ Q, W}, R} (6) Αναδρομική κλήση του αλγορίθμου με είσοδο S 1 (1 )- (2 )- (3 ) C = { ST, }, i = 1 (4 ) S S1 (5 ) S11 = { U, T, U,{ QW, },{ Q, W}, R} (6 ) Αναδρομική κλήση του αλγορίθμου με είσοδο S 11 (1 ) S 11 περιέχει U και U. Επιστρέφουμε το δέντρο Y U (7 ) Αντικαθιστούμε τον κόμβο U με τον αντίστοιχο όρο του. Προκύπτει το δέντρο T 11 { SU, } U S (8 ) i = 2 (4 ) T ST : T 1, 12 (8 ) i = 2 (9 ) Επιστρέφουμε το δέντρο

{ SU, } U { ST, } S T T (7)Το δέντρο αναμορφώνεται στο T 1 { SU, } {, U} { ST,, } {, S} { T, } T (8) i = 2 (4) Q S (5) S2 = {{, S, T},{ S, U}, T,{, U}, W, W, R}

(6) Αναδρομική κλήση του αλγορίθμου με είσοδο S 2 (1 ) To S 2 περιέχει και W και W. Επιστρέφουμε το δέντρο W W (7) Το δέντρο αναμορφώνεται στο T 2 { QW, } { Q, W } { Q} (8) i = 3 (4) R S, T : R 3 (8) i = 3 (9) Επιστρέφουμε το δέντρο

{ SU, } {, U} { ST,, } {, S} { T, } T {,Q,R} { QW, } { Q, W} {Q, R} Q R R 4.5.1 Πληρότητα Για να αποδείξουμε ότι η μέθοδος της επίλυσης είναι πλήρης μέθοδος, χρειαζόμαστε τα ακόλουθα : Λήμμα 1: Αν κάθε μέλος ενός συνόλου όρων περιέχει ένα αρνητικό γράμμα, τότε το σύνολο είναι ικανοποιήσιμο. Απόδειξη: Θεωρείστε την ερμηνεία I που απεικονίζει την τιμή ψ σε κάθε γράμμα. Έστω C ένας όρος του συνόλου. Τότε, = I C γιατί το C περιέχει ένα αρνητικό γράμμα. Άρα το σύνολο είναι ικανοποιήσιμο. Για παράδειγμα, θεωρείστε το σύνολο, S= {{ Q, },{ QRS,, },{ RST,, }, { ST, }}. Εύκολα βλέπουμε ότι το σύνολο είναι ικανοποιήσιμο: π.χ., για την ερμηνεία που απεικονίζει ψ σε όλα τα γράμματα. Λήμμα 2: Έστω ένα σύνολο όρων S και L κάποιο γράμμα για το οποίο: (α) S = L και (β) L S. Τότε, το σύνολο S = { C { L} C S} είναι μη-ικανοποιήσιμο. (Δικαιολογεί το βήμα (7) του αλγορίθμου). Απόδειξη: Έστω ότι το S είναι ικανοποιήσιμο και I ερμηνεία που το ικανοποιεί. Αν η I κάνει το L ψευδές, τότε I : = I. Διαφορετικά, έστω Ι η ερμηνεία η οποία διαφέρει από την I μόνο στο ότι I L. Ο μόνος τρόπος για να είναι ένας όρος αληθής στην I αλλά ψευδής στην Ι είναι με το να περιέχει το γράμμα L. Επομένως, αφού κανένας όρος

του S δεν περιέχει το L και η I ικανοποιεί το S, η Ι ικανοποιεί το S επίσης. Η Ι πρέπει να ικανοποιεί το S γιατί με την προσθήκη του L ένας αληθής όρος δεν μπορεί να γίνει ψευδής. Άρα υπάρχει ερμηνεία για την οποία = I S και I L, και επομένως S L. Αφού όμως S = L, το S πρέπει να είναι μη-ικανοποιήσιμο. Με τη χρήση των παραπάνω λημμάτων μπορούμε να δείξουμε ότι ο αλγόριθμος είναι σωστός. Άρα, κάθε μη-ικανοποιήσιμο σύνολο όρων έχει ένα δένδρο ανασκευής. Το συμπέρασμα είναι ότι η μέθοδος της επίλυσης είναι πλήρης. 4.5.2 Ακολουθίες Επίλυσης Μερικά δένδρα επίλυσης έχουν απλή δομή. Για παράδειγμα, για το σύνολο όρων S= {,{ Q, },{ QR, }, R} το δένδρο ανασκευής έχει τη μορφή : {, Q} Q { QR, } R R Αυτό το δένδρο έχει την ιδιότητα ότι κάθε επίλυση γίνεται μεταξύ ενός όρου του S και ενός άλλου όρου (ο οποίος μπορεί επίσης να ανήκει στο S). Με άλλα λόγια, ποτέ δεν επιλύονται δύο όροι οι οποίοι προκύπτουν από προηγούμενες επιλύσεις. Δένδρα επίλυσης με αυτή την ιδιότητα μπορούν να αναπαρασταθούν σε γραμμική μορφή και λέγονται ακολουθίες επίλυσης. Η ακολουθία επίλυσης του προηγούμενου παραδείγματος είναι η { Q, } { QR, } R Q R. Ορισμός: Έστω S ένα σύνολο όρων. Μια ακολουθία επίλυσης του S είναι μια πεπερασμένη ακολουθία όρων C0, C1,..., C για την οποία (α) C0 S και (β) για

i= 1, 2,..., C, i είναι ο όρος επίλυσης του Ci 1 με κάποιο μέλος του S. Αν C = τότε η C0, C1,..., C καλείται ακολουθία ανασκευής. Είναι εύκολο να δούμε ότι, αν υπάρχει μια ακολουθία ανασκευής για ένα σύνολο S, τότε το S είναι μη-ικανοποιήσιμο. Το αντίστροφο δεν ισχύει: δεν είναι απαραίτητο κάθε μη-ικανοποιήσιμο σύνολο να έχει μια ακολουθία ανασκευής. Παράδειγμα: Το σύνολο S= {{ Q, },{ Q, },{ QR, },{ Q, R}} έχει το παρακάτω δένδρο ανασκευής: { Q, } { Q, } { QR, } { Q, R} Q Q Το σύνολο είναι μη-ικανοποιήσιμο αλλά δεν έχει ακολουθία ανασκευής. Λήμμα 3: Αν ένα σύνολο όρων S έχει μια ακολουθία ανασκευής, τότε το S περιέχει ένα μοναδιαίο όρο. Απόδειξη: Κάθε ακολουθία ανασκευής τερματίζει με μια επίλυση της μορφής res( A, A) = για κάποιο Α. Εξ ορισμού το Α ή το A πρέπει να ανήκει στο S. Οι ακολουθίες ανασκευής είναι πιο αποδοτικές από τα δένδρα ανασκευής. Επομένως, μπορούμε να επικεντρώσουμε το ενδιαφέρον μας σε κάποιο υποσύνολο όρων για το οποίο η ύπαρξη ή μη-ύπαρξη μιας ακολουθίας ανασκευής είναι ικανή και αναγκαία συνθήκη για την (μη-)ικανοποιησιμότητα ενός συνόλου τέτοιων όρων. Ορισμός: Ένας όρος Hor είναι ένας όρος ο οποίος περιέχει το πολύ ένα θετικό γράμμα. Παράδειγμα: Οι όροι T,,,,{ Q, },{ Q,, R} είναι όροι Hor, αλλά οι { Q, },{ Q,, R},{ QR,,, S} δεν είναι. Λήμμα 4: Ο όρος επίλυσης δύο όρων Hor είναι όρος Hor. Απόδειξη: Ας υποθέσουμε ότι ο αριθμός των θετικών γραμμάτων δύο όρων C και C είναι και αντίστοιχα. Αν υπάρχει res( SS ),, τότε ο όρος αυτός προκύπτει από τη διαγραφή ενός θετικού γράμματος από τον ένα όρο και ενός αρνητικού γράμματος από τον άλλο. Επομένως, ο αριθμός των θετικών γραμμάτων στον res( CC, ) είναι + -1.

Αν οι C και C είναι όροι Hor τότε 1 και 1. Άρα + -1 1 επομένως ο res( CC, ) είναι όρος Hor. Πόρισμα: Αν ένα σύνολο όρων Hor είναι μη-ικανοποιήσιμο, τότε είτε πρέπει να περιέχει το, είτε ένα θετικό μοναδιαίο όρο. Απόδειξη: Από το Λήμμα 3, αν ένα σύνολο όρων Hor είναι μη-ικανοποιήσιμο, πρέπει να περιέχει τουλάχιστον ένα μοναδιαίο όρο χωρίς αρνητικά γράμματα. Οι μόνοι όροι Hor χωρίς αρνητικά γράμματα είναι οι όροι και A για κάποιο γράμμα Α. 4.5.3 Μέθοδος της Επίλυσης για όρους Hor Ο αλγόριθμος κατασκευής δένδρου ανασκευής εφαρμόζεται και σε όρους Hor. Σε αυτήν την περίπτωση το αποτέλεσμα είναι πάντα μια ακολουθία ανασκευής. Παράδειγμα: Κατασκευάστε μια ακολουθία ανασκευής για το σύνολο S = {,{ Q, },{ Q, R},{ R, }}. (1) Δεν υπάρχει όρος που να περιέχει Α και A για κάποιο Α (2) Υπάρχει τουλάχιστον ένας όρος που περιέχει μόνο θετικά γράμματα (3) C= i, = 1 (4) S (5) S1 = { Q,{ Q, R}, R} (6) αναδρομική κλήση του αλγορίθμου με είσοδο S 1 1. δεν υπάρχει όρος που να περιέχει Α και A για κάποιο Α 2. υπάρχει τουλάχιστον ένας όρος που περιέχει μόνο θετικά γράμματα 3. C = Qi, = 1 4. Q S1 5. S11 = { RR, } 6. αναδρομική κλήση του αλγορίθμου με είσοδο S 11 i. Το S 11 περιέχει R και R, οπότε ο αλγόριθμος τερματίζει R επιστρέφοντας την ακολουθία : R. R 7. Αναμορφώνουμε την ακολουθία { Q, R} Q 8. i = 1 R Q 9. Επιστρέφουμε την ακολουθία { Q, R} Q { R, } { Q, } (7) Αναμορφώνουμε την ακολουθία { Q, R} {, Q} (8) i = 1 (9) Επιστρέφουμε την ακολουθία { R, } { Q, } { Q, R} {, Q} και ο αλγόριθμος τερματίζει.

Η ακολουθία αυτή δεν είναι μοναδική. Υπάρχουν και άλλες για το ίδιο σύνολο S. Για παράδειγμα οι ακολουθίες : { Q, R} { Q, } { R, } {, Q} {, } {, } { Q, R} { R, } Q R { R, } { Q, R} { Q, } R Q Υπάρχουν συνολικά 12 ακολουθίες ανασκευής για το σύνολο S. Όλες οι ακολουθίες μπορούν να αναπαρασταθούν σε ένα γράφο ο οποίος ονομάζεται δίκτυο ανασκευής. Γενικά, αν ένα σύνολο όρων Hor είναι ικανοποιήσιμο, τότε το δίκτυο ανασκευής δεν περιέχει το. Για παράδειγμα, το δίκτυο ανασκευής του συνόλου S= {{ Q, },{ S, },{ QR, },{ S, R}, } δεν περιέχει το (κατασκευάστε το). Το σύνολο είναι ικανοποιήσιμο: η ερμηνεία I= { QRS,,, } είναι μοντέλο του S. Διαδικασία ελέγχου ικανοποιησιμότητας ενός συνόλου όρων Hor Κατασκευάζουμε συστηματικά το δίκτυο ανασκευής και σταματάμε όταν προκύψει ο όρος, οπότε το σύνολο είναι μη-ικανοποιήσιμο, ή όταν το δίκτυο είναι πλήρες (αν δεν περιέχει το τότε είναι ικανοποιήσιμο). Η διαδικασία είναι μη-αποδοτική. Ευτυχώς, δεν χρειάζεται να θεωρήσουμε όλες τις δυνατές ακολουθίες ανασκευής, όπως αποδεικνύει το ακόλουθο θεώρημα. Θεώρημα: Αν S είναι ένα μη-ικανοποιήσιμο σύνολο όρων Hor και C κάποιο μέλος του S, τότε, είτε το S { C} είναι μη-ικανοποιήσιμο είτε υπάρχει ακολουθία ανασκευής για το S η οποία ξεκινά με το C. To θεώρημα αυτό μας είναι χρήσιμο αν μπορούμε να είμαστε σίγουροι για την επιλογή ενός όρου C από το S για το οποίο το S { C} είναι μη-ικανοποιήσιμο. Υποθέστε ότι μας δίνεται ένα σύνολο όρων W το οποίο είναι ικανοποιήσιμο και θέλουμε να διαπιστώσουμε αν W = A για κάποιο A W. Αυτό θα συμβαίνει αν το σύνολο W = W { A} είναι μη-ικανοποιήσιμο. Εφόσον το W { A} = W είναι ικανοποιήσιμο, το θεώρημα λέει ότι το W θα είναι μη-ικανοποιήσιμο αν και μόνο αν υπάρχει μια ακολουθία ανασκευής που ξεκινά με το A. Άρα πρέπει να αναζητούμε συστηματικά μια ακολουθία ανασκευής αυτού του είδους. Παράδειγμα: Δεδομένου ότι το σύνολο W= {{ Q, S},,{ Q, },{, QR, }} είναι ικανοποιήσιμο, αποφασίστε αν W = R {, QR, } { Q, } R {, Q} Άρα, το W { R} είναι μη-ικανοποιήσιμο, οπότε W = R. Παράδειγμα: Δεδομένου ότι το σύνολο W = {{, R, S},{, Q, T},{ Q, R},{ S, U},{ T, U}} είναι ικανοποιήσιμο, αποφασίστε αν W = U. Οι παρακάτω ακολουθίες ξεκινούν με U : { SU, } {, RS, } { QR, } U S {, R} {, Q}

{ TU, } {, QT, } U T {, Q} Δεν υπάρχει ακολουθία ανασκευής η οποία ξεκινά με το. U. Άρα W U Χρειαζόμαστε μια μέθοδο για να παράγουμε δίκτυα ανασκευής συστηματικά. Είναι ευκολότερο να βρεθεί μια τέτοια μέθοδος αν το δίκτυο γίνει δένδρο. Αυτό γίνεται με την αντικατάσταση ακμών που συγκλίνουν με παράλληλες ακμές. Παράδειγμα: Το δίκτυο ανασκευής R {, QR, } {, Q} { Q, S} { Q, } {, S} Q { Q, S} { Q, } S μετασχηματίζεται στο δένδρο

R {, QR, } {, Q} { Q, S} { Q, } {, S} Q { Q, S} { Q, } S S Χρησιμοποιούμε την εξής σύμβαση: αν δύο ή περισσότερα κλαδιά ξεκινούν από τον ίδιο κόμβο τότε γράφονται από τα αριστερά προς τα δεξιά με τη σειρά που οι ετικέτες τους εμφανίζονται στο αρχικό σύνολο. Αναζήτηση στο δένδρο: Ξεκινώντας από τη ρίζα του δένδρου ακολουθούμε πάντα το αριστερό κλαδί. Όταν συναντήσουμε ένα φύλλο, επιστρέφουμε στην προηγούμενη διακλάδωση και εξερευνούμε το αριστερότερο ανεξερεύνητο κλαδί. Αυτή η μέθοδος αναζήτησης λέγεται διάσχιση προδιάταξης (pre-order traversal). Παράδειγμα: Στο ακόλουθο δένδρο

1 2 3 4 5 6 7 8 9 10 θα επισκεφτούμε τους κόμβους με την εξής σειρά: 1,2,4,5,9,10,6,3,7,8. Σε σχέση με μια μέθοδο αναζήτησης, η σειρά με την οποία μας δίνονται οι όροι έχει σημασία στο πόσο γρήγορα θα βρεθεί ο όρος (αν υπάρχει). Παράδειγμα: Για το σύνολο S= {{,Q}, { Q, }, } η διάσχιση προδιάταξης δεν τερματίζεται. 4.6 Λογικός Προγραμματισμός Η μέθοδος της επίλυσης για όρους Hor βρίσκει εφαρμογή στον Λογικό Προγραμματισμό. Οι όροι Hor μεταφράζονται σε δεδομένα (facts), κανόνες (rules) και ερωτήσεις (queries). Θετικοί μοναδιαίοι όροι (π.χ.,,q) μεταφράζονται σε δεδομένα. Ένας όρος με ένα θετικό γράμμα και ένα ή περισσότερα αρνητικά γράμματα μεταφράζεται σε έναν κανόνα. Ο όρος { A1, A2,..., A, A} αναπαριστά την πρόταση A1 A2.... A A η οποία είναι ισοδύναμη με την πρόταση A1 A2... A A. Στο λογικό προγραμματισμό συνηθίζεται οι κανόνες να γράφονται στη μορφή A A1, A2,..., A, με την ερμηνεία «το Α είναι αληθές αν τα A1, A2,..., A είναι αληθή». Η επίλυση εφαρμόζεται στο λογικό προγραμματισμό ως εξής: οι κανόνες A A1, A2,..., A και Am B1, B2,..., Bkόπου Am { A1, A2,..., A} επιλύονται δίνοντας τον κανόνα A A1, A2,..., Am 1, B1, B2,..., Bk, Am+ 1,..., A Παράδειγμα: Θεωρείστε τις εξής προτάσεις 1. «αν βρέξει, ο αγώνας θα αναβληθεί» 2. «αν ο αγώνας θα αναβληθεί, θα πάμε στο πάρτυ» 3. «αν πάμε στο πάρτυ και βρέχει, θα πάρουμε το λεωφορείο» 4. «αν πάρουμε το λεωφορείο, θα χρειαστούμε χρήματα» 5. «θα βρέξει» Μπορούμε να συμπεράνουμε ότι «θα χρειαστούμε χρήματα».

Πρέπει να γράψουμε τις προτάσεις σε μορφή όρων Hor και στη μορφή που χρησιμοποιούνται στο Λογικό Προγραμματισμό. Ορίζουμε τα παρακάτω προτασιακά γράμματα: : «θα βρέξει» Q: «ο αγώνας θα αναβληθεί» R: «θα πάμε στο πάρτυ» S: «θα πάρουμε το λεωφορείο» V: «θα χρειαστούμε χρήματα» Τότε, οι προτάσεις (1)-(5) γράφονται ως εξής: 1. Q 2. R Q 3. S Q, 4. V S 5. ή σε μορφή όρων Hor: {{ Q, },{ QR, },{ Q, S, },{ SV, }, }. Η ερώτηση «θα χρειαστούμε χρήματα; μεταφράζεται σαν V. Για να διαπιστώσουμε αν είναι λογική συνέπεια των προτάσεων (1)-(5), πρέπει να βρούμε μια ακολουθία ανασκευής ξεκινώντας από το V. Η ακολουθία { SV, } { Q, S, } { Q, } V S { Q, }, δείχνει ότι το V είναι λογική συνέπεια των (1)-(5). Δυστυχώς, ο περιορισμός σε όρους Hor δεν μας επιτρέπει να εκφράσουμε κανόνες της μορφής «αν πάμε στο πάρτυ και δεν βρέχει, θα περπατήσουμε». Αν το γράμμα U δηλώνει την πρόταση «θα περπατήσουμε», τότε η πρόταση αυτή θα είναι ισοδύναμη με την R U, δηλαδή με τον όρο { R, U, } ο οποίος δεν είναι όρος Hor. Αν περιλάβομε όρους που δεν είναι Hor τότε δεν μπορούμε να είμαστε σίγουροι ότι κάθε μη-ικανοποιήσιμο σύνολο έχει μια ακολουθία ανασκευής. Στη γλώσσα rolog, οι παραπάνω προτάσεις μπορούν να εκφραστούν στη μορφή ενός λογικού προγράμματος: q :- p. r :- q. s :- q, r. v :- s. p. Αφού φορτωθεί το πρόγραμμα iterpreter της rolog, η ερώτηση?-v επιστρέφει yes.