Μετάβαση στο περιεχόμενο

Τεχνητή Νοημοσύνη — Φεβρουάριος 2020

2020_1.jpeg

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ
ΤΜΗΜΑ ΜΗΧ/ΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ
"ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ"
Περίοδος Φεβρουαρίου 2020

ΜΕΡΟΣ Β

[20] ΘΕΜΑ 1
(α) Δίνεται η παρακάτω πρόταση κατηγορηματικής λογικής (ΚΛ):
$\(\forall y \exists x \forall z\ [[P(x) \land Q(x)] \Rightarrow [P(z) \land \neg Q(y)]]\)$
Να την μετατρέψετε σε Προτασιακή Μορφή, καταγράφοντας κάθε βήμα αναλυτικά. [10]

(β) Δίνεται το παρακάτω σύνολο προτάσεων ΚΛ:
1. thief([όνομα])
2. likes([όνομα], money)
3. likes(Stella, wine)
4. likes(Stella, food)
5. \(\forall x\ [likes(x, wine) \Rightarrow likes([όνομα], x)]\)
6. \(\forall x\ (thief(x) \land likes(x, y)) \Rightarrow steals(x, y)\)

Θέλουμε να απαντήσουμε στο ερώτημα «Ποιος κλέβει τι; (Who steals what?)». Αφού μετατρέψετε τις προτάσεις σε προτασιακή μορφή, να δημιουργήσετε το SLD-δέντρο της προς απάντηση ερώτησης και να καταγράψετε όλους τους τρόπους με τους οποίους φθάνουμε στην απάντηση. [10]

[15] ΘΕΜΑ 2
Δίνεται το παρακάτω πρόβλημα που αφορά ένα σταυρόλεξο. Ζητούμενο είναι η τοποθέτηση των κατάλληλων λέξεων (από αυτές που δίνονται) στις αντίστοιχες θέσεις. Οι αριθμοί μέσα στο σταυρόλεξο δείχνουν τα σημεία που αρχίζουν οι λέξεις.

[Σχήμα: Πλέγμα σταυρολέξου \(5 \times 5\) με αριθμημένα κελιά 1, 2, 3, 4, 5, 6, 7, 8 και λίστα λέξεων: AE, AL, EL, EAL, EVA, HEEL, HOSES, KEE, LASER, LEE, LINE, NEW, SHEET, TIECE, TIE, WE]

(α) Να περιγραφεί το πρόβλημα ως πρόβλημα ικανοποίησης περιορισμών, δηλ. να οριστούν οι μεταβλητές, τα πεδία τιμών τους και οι περιορισμοί μεταξύ τους. [7]
(β) Να βρείτε τη λύση χρησιμοποιώντας είτε αλγόριθμο συνέπειας τόξου είτε συνδυασμό του με αλγόριθμο αναζήτησης (επιλέξτε τον καταλληλότερο) και περιγράψτε ή απεικονίστε τα βήματα του αλγορίθμου μέχρι τη λύση. [8]

[12] ΘΕΜΑ 3
Δίνεται η εξής περιγραφή:
«Τα θηλαστικά έχουν κοινό γνώρισμα τον θηλασμό και ότι αναπνέουν με πνεύμονες. Τα άλογα και τα δελφίνια είναι θηλαστικά μεγάλου μεγέθους, ενώ οι νυχτερίδες μικρού. Τα δελφίνια καλύπτονται από δέρμα, όπως και τα άλογα. Ενώ τα άλογα είναι χορτοφάγα, τα δελφίνια είναι σαρκοβόρα. Ενώ ένα τυπικό θηλαστικό, όπως π.χ. ένα άλογο, δεν πετά, οι νυχτερίδες πετούν. Οι νυχτερίδες είναι συνήθως χρώματος γκρι, όπως και τα δελφίνια. Τα άλογα έχουν συνήθως χρώμα καφέ. Η Ντόλι είναι ένα άλογο λευκού χρώματος, ενώ ο Ντορίς καφέ. Η Νίκι είναι μια νυχτερίδα. Ο Γουίλι είναι ένα δελφίνι χρώματος μπλε.»
(α) Να αναπαρασταθεί η γνώση με ένα σημαντικό δίκτυο. [6]
(β) Να αναπαρασταθεί η γνώση με πλαίσια. [6]

[18] ΘΕΜΑ 4
Θεωρείστε ένα ρομπότ (rfeb20) σ’ ένα δωμάτιο roomA, όπου υπάρχει μια βρύση (wtap), και ένα δωμάτιο roomB, όπου υπάρχει ένας κουβάς (wbuck). Στόχος είναι η μεταφορά του κουβά από το ρομπότ στο roomA ώστε να τον γεμίσει με νερό από τον βρύση. Η αρχική και τελική κατάσταση του προβλήματος περιγράφονται ως εξής:

ΚΑΛΗ ΕΠΙΤΥΧΙΑ!!!

2020_2.jpeg

[Σχήμα: Δύο δωμάτια roomB και roomA. Στο roomB βρίσκεται ο κουβάς wbuck. Στο roomA βρίσκεται το ρομπότ rfeb18 και η βρύση wtap.]

START = {robot(rfeb18) ∧ room(roomA) ∧ room(roomB) ∧ object(wtap) ∧ object(wbuck) ∧ bucket(wbuck) ∧ tap(wtap) ∧ at(rfeb18, roomA) ∧ at(wbuck, roomB) ∧ in(wtap, roomA) ∧ free(rfeb18) ∧ empty(wbuck)}
END = {full(wbuck)}

Προτείνουμε να θεωρήσετε τους τελεστές: ΠάρεΑντικείμενο(R,O,X), ΆφησεΑντικείμενο(R,O,X), ΜετακίνησεΡομπότ(R,X,Y), ΓέμισεΚουβά(B,T,X), που αντιστοιχούν στις ενέργειες «Το Ρομπότ R παίρνει το αντικείμενο O που βρίσκεται στο δωμάτιο X», «Το Ρομπότ R αφήνει το αντικείμενο O στο δωμάτιο X», «Το Ρομπότ R μετακινείται από το δωμάτιο X στο δωμάτιο Y» και «Ο κουβάς B γεμίζει από τη βρύση T στο δωμάτιο X». Μπορείτε να εισάγετε και επί πλέον τελεστές ή να τροποποιήσετε τους υπάρχοντες, αν θεωρείτε ότι χρειάζεται.

(α) Να τους αναπαραστήσετε τους τελεστές με βάση το μοντέλο STRIPS. Αν νομίζετε ότι χρειάζονται, μπορείτε να εισάγετε και δικά σας κατηγορήματα. Απαριθμήστε τις ενέργειες που προκύπτουν. [9]
(β) Να περιγράψετε τα βήματα επίλυσης του προβλήματος του σχήματος με ορθή διάσχιση. [9]

Λύσεις (⚪ AI, μη επαληθευμένο)

Κατάσταση: ⚪ AI, μη επαληθευμένο Πηγή: λύσεις AI (antigravity-gemini, gemini-3.7-flash, sonnet), ανεξάρτητη επανάληψη και αντιπαραβολή· καμία δεν έχει ελεγχθεί από άνθρωπο

Προσοχή

Λύση από AI — ελέγξτε την· δεν έχει επαληθευτεί από άνθρωπο. Η ένδειξη «δύο λύσεις συμφωνούν» δεν σημαίνει ότι η απάντηση είναι σωστή.

AI λύσεις — 2020-02

Οι λύσεις γράφτηκαν από μοντέλα AI και δεν έχουν ελεγχθεί από άνθρωπο. Η αρίθμηση ακολουθεί το αρχείο θεμάτων.

Θέμα 1

Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή

(α) Προτασιακή μορφή του \(\forall y \exists x \forall z\, [[P(x)\land Q(x)] \Rightarrow [P(z)\land\neg Q(y)]]\).

  1. Απαλοιφή \(\Rightarrow\): \(\forall y \exists x \forall z\, [\neg(P(x)\land Q(x)) \lor (P(z)\land \neg Q(y))]\).
  2. Μεταφορά αρνήσεων (De Morgan): \(\forall y \exists x \forall z\, [\neg P(x) \lor \neg Q(x) \lor (P(z)\land \neg Q(y))]\).
  3. Τυποποίηση μεταβλητών: ήδη διακριτές (\(y, x, z\)).
  4. Skolem: το \(x\) εξαρτάται από το \(y\) (το \(\exists x\) είναι μέσα στο \(\forall y\)), άρα \(x = f(y)\): \(\forall y \forall z\, [\neg P(f(y)) \lor \neg Q(f(y)) \lor (P(z)\land \neg Q(y))]\).
  5. Πρόθεμα (απαλοιφή \(\forall\), όλες οι μεταβλητές καθολικές) και διανομή του \(\lor\) πάνω στο \(\land\) (ΚΣΜ): \([\neg P(f(y)) \lor \neg Q(f(y)) \lor P(z)] \land [\neg P(f(y)) \lor \neg Q(f(y)) \lor \neg Q(y)]\).
  6. Διαχωρισμός σε προτάσεις και μετονομασία μεταβλητών ώστε κάθε πρόταση να έχει δικές της:

Προτασιακή μορφή: - \(\{\neg P(f(y_1)),\ \neg Q(f(y_1)),\ P(z)\}\) - \(\{\neg P(f(y_2)),\ \neg Q(f(y_2)),\ \neg Q(y_2)\}\)

(β) [όνομα] = ο κλέφτης της εκφώνησης· τον γράφω \(N\).

Προτασιακή μορφή: 1. \(\{thief(N)\}\) 2. \(\{likes(N, money)\}\) 3. \(\{likes(Stella, wine)\}\) 4. \(\{likes(Stella, food)\}\) 5. \(\{\neg likes(x, wine),\ likes(N, x)\}\) 6. \(\{\neg thief(x),\ \neg likes(x, y),\ steals(x, y)\}\)

Ερώτηση: \(steals(X, Y)\). SLD-δέντρο (στόχος \(\leftarrow\) ...):

  • \(\leftarrow steals(X,Y)\) — με την 6 (\(x{=}X, y{=}Y\)): \(\leftarrow thief(X),\ likes(X,Y)\)
  • με την 1 (\(X=N\)): \(\leftarrow likes(N, Y)\). Εδώ διακλάδωση:
  • Κλάδος 1: με την 2 (\(Y = money\)): κενός στόχος, απάντηση: \(N\) steals money.
  • Κλάδος 2: με την 5 (\(x=Y\)): \(\leftarrow likes(Y, wine)\).
    • με την 3 (\(Y = Stella\)): κενός στόχος, απάντηση: \(N\) steals Stella.
    • με την 5 (κεφαλή \(likes(N,x')\), \(Y = N\), \(x'=wine\)): \(\leftarrow likes(wine, wine)\) — δεν ταιριάζει με καμία πρόταση: αποτυχία.
    • οι 2 και 4 δεν ενοποιούνται με \(likes(Y, wine)\) (άλλο δεύτερο όρισμα): αποτυχία.
  • Οι 3, 4 δεν ενοποιούνται με \(likes(N,Y)\) (πρώτο όρισμα \(Stella \neq N\)).

Απαντήσεις (δύο τρόποι επιτυχίας): ο \(N\) κλέβει τα χρήματα (money) και ο \(N\) κλέβει τη Stella (\(\{X/N, Y/money\}\) και \(\{X/N, Y/Stella\}\)).

Θέμα 2

Αξιοπιστία: λύθηκε με βάση τις φωτογραφίες του θέματος· μία λύση AI

Στην πρωτότυπη εικόνα 2020_1.jpeg απεικονίζεται το πλέγμα σταυρολέξου διαστάσεων \(5 \times 5\) (γραμμές 1–5, στήλες 1–5), με τα αριθμημένα κελιά έναρξης λέξεων 1 έως 8 και τα μαύρα κελιά: - Μαύρα κελιά (μπλοκαρισμένα): - Γραμμή 2: \((2,1), (2,2), (2,4)\) - Γραμμή 3: \((3,2)\) - Γραμμή 4: \((4,3)\) - Γραμμή 5: \((5,2), (5,3)\) - Θέσεις έναρξης των λέξεων: - \(1\): στο κελί \((1,1)\) - \(2\): στο κελί \((1,3)\) - \(3\): στο κελί \((1,5)\) - \(4\): στο κελί \((3,3)\) - \(5\): στο κελί \((3,4)\) - \(6\): στο κελί \((3,1)\) - \(7\): στο κελί \((4,1)\) - \(8\): στο κελί \((5,4)\)


(α) Μοντελοποίηση ως Πρόβλημα Ικανοποίησης Περιορισμών (CSP)

  1. Μεταβλητές: Κάθε αριθμός αντιστοιχεί σε μία θέση λέξης (οριζόντια ή κάθετη) με μήκος ίσο με τα συνεχόμενα λευκά κελιά:
  2. \(X_1\) (ή \(O_1\)): Οριζόντια λέξη 5 γραμμάτων στα κελιά \((1,1), (1,2), (1,3), (1,4), (1,5)\).
  3. \(X_2\) (ή \(K_2\)): Κάθετη λέξη 3 γραμμάτων στα κελιά \((1,3), (2,3), (3,3)\).
  4. \(X_3\) (ή \(K_3\)): Κάθετη λέξη 5 γραμμάτων στα κελιά \((1,5), (2,5), (3,5), (4,5), (5,5)\).
  5. \(X_4\) (ή \(O_4\)): Οριζόντια λέξη 3 γραμμάτων στα κελιά \((3,3), (3,4), (3,5)\).
  6. \(X_5\) (ή \(K_5\)): Κάθετη λέξη 3 γραμμάτων στα κελιά \((3,4), (4,4), (5,4)\).
  7. \(X_6\) (ή \(K_6\)): Κάθετη λέξη 3 γραμμάτων στα κελιά \((3,1), (4,1), (5,1)\).
  8. \(X_7\) (ή \(O_7\)): Οριζόντια λέξη 2 γραμμάτων στα κελιά \((4,1), (4,2)\).
  9. \(X_8\) (ή \(O_8\)): Οριζόντια λέξη 2 γραμμάτων στα κελιά \((5,4), (5,5)\).

  10. Πεδία Τιμών (Domains): Τα πεδία τιμών διαμορφώνονται από τη δοθείσα λίστα λέξεων με βάση το μήκος της αντίστοιχης θέσης:

  11. Λέξεις μήκους 5: HOSES, LASER, SHEET, TIECE $\(D(X_1) = D(X_3) = \{\text{HOSES}, \text{LASER}, \text{SHEET}, \text{TIECE}\}\)$
  12. Λέξεις μήκους 3: EAL, EVA, KEE, LEE, NEW, TIE $\(D(X_2) = D(X_4) = D(X_5) = D(X_6) = \{\text{EAL}, \text{EVA}, \text{KEE}, \text{LEE}, \text{NEW}, \text{TIE}\}\)$
  13. Λέξεις μήκους 2: AE, AL, EL, WE $\(D(X_7) = D(X_8) = \{\text{AE}, \text{AL}, \text{EL}, \text{WE}\}\)$ (Σημείωση: Οι λέξεις μήκους 4 HEEL, LINE δεν αντιστοιχούν σε καμία θέση του πλέγματος και δεν χρησιμοποιούνται).

  14. Περιορισμοί (Constraints):

  15. Δυαδικοί περιορισμοί διασταυρώσεων (intersections):
    • Μεταξύ \(X_1\) και \(X_2\) στο \((1,3)\): \(X_1[3] = X_2[1]\) (το 3ο γράμμα του \(X_1\) ισούται με το 1ο γράμμα του \(X_2\))
    • Μεταξύ \(X_1\) και \(X_3\) στο \((1,5)\): \(X_1[5] = X_3[1]\)
    • Μεταξύ \(X_2\) και \(X_4\) στο \((3,3)\): \(X_2[3] = X_4[1]\)
    • Μεταξύ \(X_4\) και \(X_5\) στο \((3,4)\): \(X_4[2] = X_5[1]\)
    • Μεταξύ \(X_4\) και \(X_3\) στο \((3,5)\): \(X_4[3] = X_3[3]\)
    • Μεταξύ \(X_5\) και \(X_8\) στο \((5,4)\): \(X_5[3] = X_8[1]\)
    • Μεταξύ \(X_8\) και \(X_3\) στο \((5,5)\): \(X_8[2] = X_3[5]\)
    • Μεταξύ \(X_6\) και \(X_7\) στο \((4,1)\): \(X_6[2] = X_7[1]\)
  16. Περιορισμός μοναδικότητας λέξεων: Όλες οι λέξεις που τοποθετούνται πρέπει να είναι διακριτές μεταξύ τους: $\(\text{alldifferent}(X_1, X_2, X_3, X_4, X_5, X_6, X_7, X_8)\)$

(β) Επίλυση με Αλγόριθμο Συνέπειας Τόξου (AC-3) και Αναζήτηση

Εφαρμόζουμε τον αλγόριθμο AC-3 (Arc Consistency) για τη μείωση των πεδίων τιμών πριν/κατά την αναζήτηση:

  1. Έλεγχος τόξου \((X_1, X_2)\) και \((X_2, X_1)\):
  2. Το 1ο γράμμα των λέξεων του \(D(X_2)\) είναι \(\{E, K, L, N, T\}\).
  3. Για να έχει το 3ο γράμμα του \(X_1\) τέτοια τιμή:
    • HOSES: 3ο γράμμα 'S' (δεν υπάρχει λέξη στο \(D(X_2)\) που να αρχίζει από 'S') \(\to\) διαγράφεται.
    • LASER: 3ο γράμμα 'S' \(\to\) διαγράφεται.
    • SHEET: 3ο γράμμα 'E' (ταιριάζει με EAL, EVA).
    • TIECE: 3ο γράμμα 'E' (ταιριάζει με EAL, EVA).
  4. Άρα \(D(X_1) = \{\text{SHEET}, \text{TIECE}\}\) και \(D(X_2) = \{\text{EAL}, \text{EVA}\}\).

  5. Έλεγχος τόξου \((X_1, X_3)\) και \((X_3, X_1)\):

  6. Περιορισμός: \(X_1[5] = X_3[1]\).
  7. Το τελευταίο γράμμα των λέξεων του \(D(X_1)\) είναι: για το SHEET το 'T', για το TIECE το 'E'.
  8. Στο \(D(X_3)\), η μόνη λέξη που ξεκινά από 'T' είναι η TIECE. Καμία λέξη του \(D(X_3)\) δεν ξεκινά από 'E'.
  9. Συνεπώς, για να υποστηρίζεται το \(X_3[1]\), αναγκαστικά: $\(X_1 = \text{SHEET} \quad \text{και} \quad X_3 = \text{TIECE}\)$
  10. Έτσι, τα πεδία \(D(X_1)\) και \(D(X_3)\) γίνονται μονοσύνολα!

  11. Έλεγχος τόξου \((X_2, X_4)\):

  12. Περιορισμός: \(X_2[3] = X_4[1]\).
  13. Για \(X_2 \in \{\text{EAL}, \text{EVA}\}\): το 3ο γράμμα είναι 'L' (από EAL) ή 'A' (από EVA).
  14. Στο \(D(X_4)\), η μόνη λέξη που ξεκινά από 'L' είναι η LEE. Καμία λέξη δεν ξεκινά από 'A'.
  15. Άρα αναγκαστικά: $\(X_2 = \text{EAL} \quad \text{και} \quad X_4 = \text{LEE}\)$
  16. Επαλήθευση διασταύρωσης \((X_4, X_3)\) στο \((3,5)\): \(X_4[3] = 'E'\) και \(X_3[3] = 'E'\) (για το TIECE), που συμφωνούν απόλυτα.

  17. Έλεγχος τόξου \((X_4, X_5)\):

  18. Περιορισμός: \(X_4[2] = X_5[1]\).
  19. Επειδή \(X_4 = \text{LEE}\), το 2ο γράμμα είναι 'E'.
  20. Άρα το \(X_5\) πρέπει να ξεκινά από 'E'. Από τις εναπομείνασες λέξεις (το EAL έχει ήδη ανατεθεί στο \(X_2\)), απομένει μονοσήμαντα: $\(X_5 = \text{EVA}\)$

  21. Έλεγχος τόξων για το \(X_8\):

  22. Περιορισμοί: \(X_8[1] = X_5[3] = 'A'\) και \(X_8[2] = X_3[5] = 'E'\).
  23. Η μόνη λέξη μήκους 2 με γράμματα 'A' και 'E' είναι η AE.
  24. Άρα: $\(X_8 = \text{AE}\)$

  25. Ανάθεση στις υπόλοιπες μεταβλητές \(X_6, X_7\) (συνιστώσα στηλών 1–2):

  26. Περιορισμός: \(X_6[2] = X_7[1]\).
  27. Για το \(X_8\) χρησιμοποιήθηκε το AE. Άρα για το \(X_7\) απομένουν οι λέξεις \(\{\text{AL}, \text{EL}, \text{WE}\}\).
  28. Για το \(X_6\), οι διαθέσιμες λέξεις 3 γραμμάτων (εκτός των EAL, LEE, EVA) είναι οι \(\{\text{KEE}, \text{NEW}, \text{TIE}\}\).
  29. Το 2ο γράμμα των KEE και NEW είναι 'E', το οποίο απαιτεί το 1ο γράμμα του \(X_7\) να είναι 'E', οδηγώντας μονοσήμαντα στην επιλογή: $\(X_7 = \text{EL}\)$
  30. Για το \(X_6\), μπορούν να χρησιμοποιηθούν είτε το KEE είτε το NEW (και τα δύο έχουν 2ο γράμμα 'E' και δεν παραβιάζουν κανέναν άλλο περιορισμό).

Τελική Λύση Σταυρολέξου

Μία πλήρης και έγκυρη ανάθεση τιμών είναι: - \(X_1\) (\(O_1\)): SHEET - \(X_2\) (\(K_2\)): EAL - \(X_3\) (\(K_3\)): TIECE - \(X_4\) (\(O_4\)): LEE - \(X_5\) (\(K_5\)): EVA - \(X_6\) (\(K_6\)): KEE (ή NEW) - \(X_7\) (\(O_7\)): EL - \(X_8\) (\(O_8\)): AE

Απεικόνιση συμπληρωμένου πλέγματος:

  1   2   3   4   5
1[S] [H] [E] [E] [T]
2[█] [█] [A] [█] [I]
3[K] [█] [L] [E] [E]
4[E] [L] [█] [V] [C]
5[E] [█] [█] [A] [E]
(Όλες οι διασταυρώσεις και οι περιορισμοί επαληθεύονται πλήρως).

Θέμα 3

Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: μέτρια

Η αναπαράσταση δεν είναι μοναδική· δίνω μία λογική λύση.

(α) Σημασιολογικό δίκτυο (κόμβος –σχέση→ κόμβος):

  • Άλογο –is-a→ Θηλαστικό· Δελφίνι –is-a→ Θηλαστικό· Νυχτερίδα –is-a→ Θηλαστικό
  • Θηλαστικό –έχει→ θηλασμός· Θηλαστικό –αναπνοή→ πνεύμονες· Θηλαστικό –πετά→ όχι (προεπιλογή)
  • Άλογο –μέγεθος→ μεγάλο· Δελφίνι –μέγεθος→ μεγάλο· Νυχτερίδα –μέγεθος→ μικρό
  • Άλογο –κάλυμμα→ δέρμα· Δελφίνι –κάλυμμα→ δέρμα
  • Άλογο –διατροφή→ χορτοφάγο· Δελφίνι –διατροφή→ σαρκοβόρο
  • Νυχτερίδα –πετά→ ναι
  • Νυχτερίδα –χρώμα→ γκρι· Δελφίνι –χρώμα→ γκρι· Άλογο –χρώμα→ καφέ
  • Ντόλι –instance-of→ Άλογο· Ντορίς –instance-of→ Άλογο· Νίκι –instance-of→ Νυχτερίδα· Γουίλι –instance-of→ Δελφίνι
  • Ντόλι –χρώμα→ λευκό· Ντορίς –χρώμα→ καφέ· Γουίλι –χρώμα→ μπλε

(β) Πλαίσια (slot: τιμή· τα προεπιλεγμένα στο πλαίσιο κλάσης):

Θηλαστικό:  θηλασμός: ναι; αναπνοή: πνεύμονες; πετά: όχι (default)
Άλογο:      is-a: Θηλαστικό; μέγεθος: μεγάλο; κάλυμμα: δέρμα; διατροφή: χορτοφάγο; χρώμα: καφέ (default)
Δελφίνι:    is-a: Θηλαστικό; μέγεθος: μεγάλο; κάλυμμα: δέρμα; διατροφή: σαρκοβόρο; χρώμα: γκρι (default)
Νυχτερίδα:  is-a: Θηλαστικό; μέγεθος: μικρό; πετά: ναι; χρώμα: γκρι (default)
Ντόλι:      instance-of: Άλογο; χρώμα: λευκό
Ντορίς:     instance-of: Άλογο; χρώμα: καφέ
Νίκι:       instance-of: Νυχτερίδα
Γουίλι:     instance-of: Δελφίνι; χρώμα: μπλε
Η Νίκι κληρονομεί χρώμα γκρι, μέγεθος μικρό, πετά: ναι (η τιμή της Νυχτερίδας υπερισχύει της προεπιλογής του Θηλαστικού). Η Ντορίς έχει καφέ ήδη από την κλάση (η ρητή τιμή είναι περιττή αλλά επιτρεπτή).

Θέμα 4

Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: μέτρια

Σημείωση: η εκφώνηση αναφέρει το ρομπότ ως rfeb20 και στο σχήμα/START ως rfeb18· παρακάτω γράφω \(R\) (και στο START \(R=\) το ρομπότ της αρχικής κατάστασης).

(α) Τελεστές STRIPS (εισάγω το κατηγόρημα \(holding(R,O)\) και χρησιμοποιώ τα \(at\), \(in\), \(free\), \(empty\), \(full\) της εκφώνησης):

  • ΠάρεΑντικείμενο(R,O,X)
  • Προϋποθέσεις: \(robot(R),\ bucket(O),\ room(X),\ at(R,X),\ at(O,X),\ free(R)\)
  • Διαγραφές: \(at(O,X),\ free(R)\)
  • Προσθήκες: \(holding(R,O)\)
  • ΆφησεΑντικείμενο(R,O,X)
  • Προϋποθέσεις: \(holding(R,O),\ at(R,X)\)
  • Διαγραφές: \(holding(R,O)\)
  • Προσθήκες: \(at(O,X),\ free(R)\)
  • ΜετακίνησεΡομπότ(R,X,Y)
  • Προϋποθέσεις: \(robot(R),\ room(X),\ room(Y),\ X \neq Y,\ at(R,X)\)
  • Διαγραφές: \(at(R,X)\)
  • Προσθήκες: \(at(R,Y)\) (ό,τι κρατά το ρομπότ δεν έχει \(at\), άρα μετακινείται μαζί του)
  • ΓέμισεΚουβά(B,T,X)
  • Προϋποθέσεις: \(bucket(B),\ tap(T),\ in(T,X),\ at(B,X),\ empty(B)\)
  • Διαγραφές: \(empty(B)\)
  • Προσθήκες: \(full(B)\)

(Το \(bucket(O)\) στο «Πάρε» εμποδίζει να πιαστεί η βρύση. Το γέμισμα απαιτεί ο κουβάς να έχει αφεθεί στο δωμάτιο της βρύσης.)

Ενέργειες που προκύπτουν (ground, \(R = rfeb20\), δωμάτια \(A, B\), κουβάς \(wbuck\), βρύση \(wtap\)): - ΠάρεΑντικείμενο(\(R\), \(wbuck\), \(A\)), ΠάρεΑντικείμενο(\(R\), \(wbuck\), \(B\)) - ΆφησεΑντικείμενο(\(R\), \(wbuck\), \(A\)), ΆφησεΑντικείμενο(\(R\), \(wbuck\), \(B\)) - ΜετακίνησεΡομπότ(\(R\), \(A\), \(B\)), ΜετακίνησεΡομπότ(\(R\), \(B\), \(A\)) - ΓέμισεΚουβά(\(wbuck\), \(wtap\), \(A\)), ΓέμισεΚουβά(\(wbuck\), \(wtap\), \(B\)) (η δεύτερη δεν εφαρμόζεται ποτέ, γιατί \(in(wtap, B)\) δεν ισχύει)

(β) Ορθή διάσχιση (forward search) από το START

Έλεγχος εφαρμοσιμότητας (έγινε και με ένα μικρό πρόγραμμα BFS):

  1. Στο START (\(R\) στο \(A\), κουβάς στο \(B\)): εφαρμόζεται μόνο η Μετακίνηση(\(R\),\(A\),\(B\)) (το Πάρε(\(wbuck\),\(A\)) απαιτεί \(at(wbuck,A)\), το Γέμισε απαιτεί \(at(wbuck,A)\)).
  2. Κατάσταση 1 (\(R\) στο \(B\)): εφαρμόζονται Πάρε(\(R\),\(wbuck\),\(B\)) και Μετακίνηση(\(R\),\(B\),\(A\)) (η δεύτερη επαναφέρει το START — επαναλαμβανόμενη κατάσταση, απορρίπτεται). Επιλέγεται το Πάρε.
  3. Κατάσταση 2 (\(holding(R,wbuck)\), \(R\) στο \(B\)): μόνο η Μετακίνηση(\(R\),\(B\),\(A\)) και η Άφησε στο \(B\) (επαναφέρει προηγούμενη κατάσταση). Επιλέγεται η Μετακίνηση.
  4. Κατάσταση 3 (\(R\) στο \(A\), κρατά τον κουβά): εφαρμόζονται Άφησε(\(R\),\(wbuck\),\(A\)) και Μετακίνηση πίσω. Επιλέγεται το Άφησε.
  5. Κατάσταση 4 (\(at(wbuck,A)\), \(free(R)\), \(empty(wbuck)\)): εφαρμόζεται ΓέμισεΚουβά(\(wbuck\),\(wtap\),\(A\)) → \(full(wbuck)\) = στόχος.

Σχέδιο: ΜετακίνησεΡομπότ(\(R\),\(A\),\(B\)), ΠάρεΑντικείμενο(\(R\),\(wbuck\),\(B\)), ΜετακίνησεΡομπότ(\(R\),\(B\),\(A\)), ΆφησεΑντικείμενο(\(R\),\(wbuck\),\(A\)), ΓέμισεΚουβά(\(wbuck\),\(wtap\),\(A\)) — 5 ενέργειες.

✔ Επιβεβαίωσε · ✖ Βρήκα λάθος


✖ Βρήκα λάθος στη μεταγραφή