Προηγούμενη Πάνω Επίπεδο Επόμενη Περιεχόμενα
Επόμενη: SLDNF -Ανάλυση Πάνω Επίπεδο: Ανάλυση Προηγούμενη: SLD -Ανάλυση 

4.7 SLD -Δέντρα

Ο χώρος αναζήτησης μιας SLD- παραγωγής (και άρνησης) μπορεί να αναπαρασταθεί από ένα δέντρο που ονομάζεται SLD- δέντρο. Αν tex2html_wrap_inline1236 είναι ένα οριστικό πρόγραμμα, G ένας οριστικός στόχος κι αν υποθέσουμε ότι σε καθεμιά από τις προτάσεις του tex2html_wrap_inline1236 αντιστοιχεί ένας μοναδικός αριθμός, ονομάζουμε SLD- δέντρο για το tex2html_wrap_inline1514, ένα δέντρο στο οποίο   figure365
Σχήμα 4.7α : SLD- άρνηση με επιλογή του δεξιότερου στόχου
 

'Ενα SLD- δέντρο μπορεί να περιέχει τριών ειδών κλαδιά. Κλαδιά τα οποία είναι μονοπάτια από τη ρίζα σε φύλλα που έχουν την κενή πρόταση για στόχο τους, αντιστοιχούν σε μια άρνηση του tex2html_wrap_inline1514 και ονομάζονται κλαδιά επιτυχίας (success branches). Το δεύτερο είδος κλαδιών είναι εκείνα τα οποία είναι μονοπάτια από τη ρίζα σε φύλλα που έχουν μη-κενές προτάσεις για στόχους, από τις οποίες δεν είναι δυνατά περαιτέρω βήματα παραγωγής. Τούτο σημαίνει ότι το επιλεγμένο άτομο σ' έναν τέτοιο στόχο δεν είναι ενοποιήσιμο με καμία κεφαλή πρότασης του προγράμματος. Αυτά τα κλαδιά ονομάζονται κλαδιά αποτυχίας (failure branches). Το τρίτο είδος κλαδιών είναι τα άπειρα - αντιστοιχούν σε άπειρες SLD- παραγωγές και δεν οδηγούν πουθενά. Για παράδειγμα, ας θεωρήσουμε το πρόγραμμα που δώσαμε και προηγούμενα:
 

tabular377

Το SLD- δέντρο του σχήματος 4.7β [*], δημιουργήθηκε με χρήση του κανόνα επιλογής (ή υπολογισμού) που επιλέγει πάντοτε το αριστερότερο άτομο σ' ένα στόχο (υπογραμμισμένα). Οι υπολογισμένες απαντήσεις (αντικατάσταση της μεταβλητής x) φαίνονται δίπλα στα δύο κλαδιά επιτυχίας τα οποία τελειώνουν μ' ένα ``κενό'' (tex2html_wrap1210) φύλλο.

  figure382
Σχήμα 4.7β: SLD- δέντρο ενός απλού προγράμματος
 
 


Εργαστήριο Γλωσσών Προγραμματισμού και Τεχνολογίας Λογισμικού

Mon Apr 5 16:25:43 EEST 1999