Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
1
Προβλήματα Αναζήτησης
2
Ν Βασίλισσες στο Σκάκι Ν-Queens Problem
Ν=8. Πώς τοποθετούμε 8 βασίλισσες σε μια σκακιέρα χωρίς κάποια βασίλισσα να απειλεί μια άλλη; Αναπαραστούμε τις θέσεις των βασιλισσών με μια λίστα των y-συντεταγμένων τους: [Y1, Y2, Y3, ..., Y8] solution (X) :- permutation ([1, 2, 3, 4, 5, 6, 7, 8], X), safe (X). Παράδειγμα "generate and test"
3
Ν Βασίλισσες (συνέχεια)
safe ([]) safe ([Queen | Others]) :- safe (Others), noattack (Queen, Others,1). noattack (Queen, [], XPosition). noattack (Y, [Y1 | Rest], Xdist) :- Y1 – Y ≠ Xdist, Y – Y1 ≠ Xdist, Dist = Xdist + 1, noattack (Y, Rest, Dist). permutation ([], []). permutation ([X | L], P) :- permutation (L, L1), insert (X, L1, P).
4
Ν Βασίλισσες (συνέχεια)
Αναπαράσταση της θέσης μιας βασίλισσας: pos (X, Y) – συντεταγμένες Απάντηση/λύση θα είναι μια λίστα: [pos (X1, Y1), pos (X2, Y2), …, pos (X8, Y8)] [pos (1, Y1), pos (2, Y2), …, pos (8, Y8)] correct ([]). correct ([pos ( X, Y) | Rest]) :- correct (Rest), member (Y, [1, 2, 3, 4, 5, 6, 7, 8]), %Choise noattack (pos (X, Y), Rest).
5
Ν Βασίλισσες (συνέχεια)
% noattack (QueenPosition, ListQueensPositions) noattack (Queen, []). noattack (pos (X, Y), [post (X1, Y1) | Rest]) :- X ≠ X1, Y ≠ Y1, Y1 – Y ≠ X1 –X, Y – Y1 ≠ X – X1, noattack (pos (X, Y), Rest). solution (X) :- template (X), correct (X). template ([pos (1, Y1), pos (2, Y2), …, pos (8, Y8)]). ? solution (X)
6
Πύργοι της Χανόη (Towers of Hanoi)
Κάθε κίνηση μόνο ένα δίσκο. Σε καμμíα κατάσταση δεν μπορούμε να έχουμε δίσκο πάνω από μικρότερο δίσκο. hanoi (s (o), A, B, C, [move (A, B)]). hanoi (s (N), A, B, C, Moves) :- hanoi (N, A, C, B, Moves1), hanoi (N, B, A, C, Moves2), append (Moves1, [move (A, C) | Moves2], Moves). H μεταβλητή Moves κρατά τη λύση σε μια δομή δεδομένων που αποφάσισε ο χρήστης. A B C
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.