Ταυτοποίηση (Unification)
Πίνακας Ταυτοποίησης Όρος 1 Όρος 2 C1 X1 F (τ 1,…,τ ν ) C2 Επιτυχές αν C1 == C2 Επιτυχές {Χ1 = C2} Αποτυγχάνει Χ2 Επιτυχές {Χ2 = C1} Επιτυχές {Χ1 = X2} Επιτυχές {X2 = F (τ 1,…,τ ν )} F (u 1,…,u μ ) ΑποτυγχάνειΕπιτυχές {X1 = F (u 1,…,u μ )} Επιτυχές αν ν==μ και οι αντίστοιχοι όροι ταυτοποιούνται επιτυχώς Πίνακας: Κανόνες ταυτοποίησης δύο όρων
Tαυτοποίησης ατομικών τύπων Παραδείγματα Ατομικός τύπος 1Ατομικός τύπος 2Πιο Γενικός Ταυτοποιητής θ α (Χ, 2)α(3, 2){Χ=3} β (2, Χ)γ (2, Υ)Δεν ταυτοποιούνται δ (Χ, Υ)δ (7, φ(6)){Χ=7, Υ=φ(6)} ε(κ,φ(Υ))ε(Ζ,φ(Ζ)){Ζ=κ, Υ=Ζ} ζ (Χ,Χ)ζ (7,6)Δεν ταυτοποιούνται η (Χ,φ1(Χ,φ2(2)))η(5,Ζ){Χ=5, Ζ=φ1(5,φ2(2))} θ(Χ,Χ)θ(5,Ζ){Χ=5, Ζ=Χ} Πίνακας : Tαυτοποίησης ατομικών τύπων
Tαυτοποίηση και Ισότητα == (συντακτική ισότητα – identical) = (ταυτοποίησης – unification) π.χ. |?- X==Y no |?- X=Y, X==Y yes
Πρόγραμμα για κάποιο σχολείο /* μαθητής (Μθτ, Τ) ο Μθτ είναι μαθητής της τάξης Τ. */ /*1*/ μαθητής (νίκος, τάξη (1)). /*2*/ μαθητής (μηνάς, τάξη (3)). /*3*/ μαθητής (μαρία, τάξη (2)). /*4*/ μαθητής (σοφία, τάξη (5)). /*5*/ μαθητής (γιώργος, τάξη (2)). /*6*/ μαθητής (ελένη, τάξη (3)).
Πρόγραμμα για κάποιο σχολείο (συνέχεια) /* διδάσκεται (Μθ, Τ) το μάθημα Μθ διδάσκεται στην τάξη Τ. */ /*7*/ διδάσκεται (αριθμητική, τάξη (1)). /*8*/ διδάσκεται (αριθμητική, τάξη (2)). /*9*/ διδάσκεται (αριθμητική, τάξη (5)). /*10*/ διδάσκεται (γλώσσα, τάξη (2)). /*11*/ διδάσκεται (ιστορία, τάξη (1)). /*12*/ διδάσκεται (μουσική, τάξη (2)). /*13*/ διδάσκεται (μουσική, τάξη (5)).
Πρόγραμμα για κάποιο σχολείο (συνέχεια) /* αρέσει (Μθ, Μθτ) το μάθημα Μθ αρέσει στο μαθητή Μθτ. */ /*14*/ αρέσει (γλώσσα, γιώργος). /*15*/ αρέσει (αριθμητική, σοφία). /*16*/ αρέσει (αριθμητική, νίκος). /*κανόνας: Η μουσική αρέσει σε όλους τους μαθητές των τάξεων που διδάσκεται. */ /*17*/ αρέσει (μουσική, Χ) :- διδάσκεται (μουσική, τάξη (Τ)), μαθητής(Χ, τάξη(Τ)).
Πρόγραμμα για κάποιο σχολείο (συνέχεια) /* είναι φίλος (Μ1, Μ2) ο Μ1 είναι φίλος του Μ2 */ /*κανόνας: Ένας μαθητής είναι φίλος με κάποιον άλλο αν τους αρέσεει το ίδιο μάθημα. */ /*18*/ είναι_φίλος (Μ1, Μ2) :- αρέσει (Μαθ, Μ1) αρέσει (Μαθ, Μ2).
Ερωτήσεις ? Β1, Β2,..., Βn Π.χ. ? μαθητής (σοφία, τάξη (5)) –Yes (άμεση ταυτοποίηση) Π.Χ. ? μαθητής (Μ, τάξη (2)) –Μ=μαρία –Μ-γιώργος (ταυτοποίηση με αντικατάσταση) Π.χ. ? μαθητής (μαρία, Τ),διδάσκεται (γλώσσα, Τ), –Τ=τάξη (2) Π.Χ. ? αρέσει (μουσική, Μ) –Μ=μαρία –Μ-γιώργος –Μ=σοφία (βλ. Σχήμα επόμενης διαφάνειας)
Το δένδρο υπολογισμού του παραδείγματος 4
Ερωτήσεις (συνέχεια) ? είναι_φίλος (σοφία, Μ) –Μ=σοφία –Μ=νίκος –Μ=μαρία –Μ-γιώργος –Μ=σοφία Πως αποκλείουμε τη σοφία;
Έλεγχος PROLOG Σειρά ικανοποίησης ατομικών τύπων ερώτησης: ΑΠΟ ΑΡΙΣΤΕΡΑ ΠΡΟΣ ΤΑ ΔΕΧΙΑ ?Β, Γ, Δ,...., Ω
Έλεγχος PROLOG (συνέχεια) Σειρά αναζήτησης πρότασης για ικανοποίηση ατομικού τύπου ερώτησης: ΑΠΟ ΠΑΝΩ ΠΡΟΣ ΤΑ ΚΑΤΩ (τα Β 1,...Β ρ είναι ατομικοί τύποι με το ίδιο κατηγόρημα με αυτό της κλήσης Β). Ερώτηση ?Β. Πρόγραμμα Β1 :- C 1,….,C k Β2 :- D 1,….,D l Β ρ :- Ζ 1,….,Ζ ν
Το δένδρο υπολογισμού του παραδείγματος 5