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

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

feb2026.png

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ, ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ
ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ "ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ", 6 ΦΕΒΡΟΥΑΡΙΟΥ 2026
ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2,5 ΩΡΕΣ

ΟΝΟΜΑΤΕΠΩΝΥΜΟ:_______________________ ΑΜ:_______ ΕΤΟΣ:__

ΘΕΜΑ 1º (μονάδες 20) Θεωρείστε το παρακάτω γράφημα με αρχική κατάσταση Α και τελική κατάσταση την G. Οι τιμές στις ακμές είναι οι τιμές της συνάρτησης κόστους, ενώ οι τιμές στον πίνακα είναι οι τιμές της ευρετικής συνάρτησης.

[Σχήμα: Κατευθυνόμενο γράφημα με κόμβους S, A, B, C, D, E, F, G. Ακμές και κόστη: S->A (1), S->B (2), A->C (1), B->C (2), C->D (1), C->E (2), D->F (1), E->F (2), F->G (100).]

Heuristic
A = 100
B = 2
C = 91
D = 99
E = 1
F = 90
S = 90
G = 0

Α) Να εκτελέσετε τις παρακάτω μεθόδους αναζήτησης: i) BestFS και ii) A*, δείχνοντας αναλυτικά τα βήματα που ακολουθεί κάθε αλγόριθμος μέχρι τη λύση. Αν τυχόν υπάρξει ισοβαθμία, επιλύστε αλφαβητικά.
Β) Βρίσκουν οι αλγόριθμοι βέλτιστη λύση; Εξηγήστε συνοπτικά.

Θέμα 2º (Μονάδες 20) Σε ένα πρόβλημα μεγιστοποίησης εφαρμόζουμε προσομοιωμένη ανόπτηση (simulated annealing). Δίνονται τα παρακάτω πιθανά 5 βήματα του αλγορίθμου (όχι απαραίτητα ότι θα εκτελεστούν):

α/α Τρέχουσα κατάσταση Πιθανή νέα κατάσταση Θερμοκρασία
1 120 50 20
2 120 50 500
3 120 100 20
4 120 100 500
5 120 130 1000

Α) Να ταξινομήσετε, με κατάλληλη τεκμηρίωση, τα βήματα αυτά από το πιθανότερο να εκτελεστεί μέχρι το λιγότερο πιθανό.
Β) Αν στην προσομοιωμένη ανόπτηση η θερμοκρασία \(T \to \infty\) ο αλγόριθμος συμπεριφέρεται σαν: i) κατάβαση κλίσης με επιλογή του καλύτερου ii) κατάβαση κλίσης με τυχαία επιλογή (στοχαστική) iii) κατάβαση κλίσης με επιλογή του \(1^{\text{ου}}\) καλύτερου iv) τυχαία επανεκκίνηση v) κανένα από τα παραπάνω. Να τεκμηριώσετε την επιλογή σας.

ΘΕΜΑ 3º (μονάδες 20) Δίνονται οι παρακάτω προτάσεις ΚΛΠΤ:
1. \(\forall x, y, z, k\ (\text{parent}(x, z) \land \text{parent}(y, k) \land \text{sibling}(x, y)) \Rightarrow \text{cousin}(z, k)\)
2. \(\text{parent}(\text{maria}, \text{Χρήστης#0715})\)
3. \(\text{parent}(\text{giannis}, \text{kostas})\)
4. \(\text{sibling}(\text{maria}, \text{giannis})\)

Α) Ελέγξτε με την μέθοδο αντίφασης της επίλυσης εάν από τις παραπάνω προτάσεις (1)-(4) προκύπτει το συμπέρασμα \(\text{cousin}(\text{Χρήστης#0715}, \text{kostas})\).
Β) Να γράψετε τις παραπάνω προτάσεις σε Prolog. Πώς μπορείτε να εκφράσετε τη σχέση cousin ως συμμετρική, ώστε το ερώτημα ?-cousin(X,Y) να τερματίζει;

feb22026.png

ΘΕΜΑ 4º (μονάδες 20)

[Σχήμα: Διάγραμμα τεχνητού νευρώνα με εισόδους \(x_1, x_2\), βάρη \(w_1, w_2\), άθροιση/συνάρτηση ενεργοποίησης \(\sigma(z)\) και έξοδο \(\hat{y}\)]

Δίνεται νευρώνας με εισόδους \(\mathbf{x} = [1.0, 2.0]^T\) και βάρη \(\mathbf{w} = [w_1, w_2]^T = [-0.5, 0.3]^T\). Η συνάρτηση ενεργοποίησης είναι η \(\sigma(z) = \frac{1}{1 + e^{-z}}\) και η συνάρτηση απώλειας η \(E = \frac{1}{2}(y - \hat{y})^2\). Η επιθυμητή έξοδος είναι \(y = 1.0\).

Α) Υπολογίστε την έξοδο \(\hat{y} = \sigma(z) = \sigma(w_1 x_1 + w_2 x_2)\) (Forward Pass).
Β) Υπολογίστε την τιμή της παραγώγου της sigmoid για το συγκεκριμένο \(z\) δεδομένου ότι είναι \(\sigma'(z) = \sigma(z)(1 - \sigma(z))\). Δίνεται: \(e^x \approx 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!}\)
Γ) Υπολογίστε την κλίση του σφάλματος ως προς το βάρος \(w_1\) χρησιμοποιώντας τον κανόνα της αλυσίδας: \(\frac{\partial E}{\partial w_1} = \frac{\partial E}{\partial \hat{y}} \frac{\partial \hat{y}}{\partial z} \frac{\partial z}{\partial w_1}\)
Δ) Πραγματοποιήστε μια ενημέρωση του βάρους \(w_1\) με ρυθμό μάθησης \(\eta = 0.1\): $\(w_1^{\text{new}} = w_1^{\text{old}} - \eta \frac{\partial E}{\partial w_1}\)$

ΘΕΜΑ 5º (μονάδες 20)

Κάποια χαρακτηριστικά των καιρικών συνθηκών (outlook, temperature, humidity, windy) χρησιμοποιούνται για να αποφασίσουμε αν θα πραγματοποιηθεί (yes) ή όχι (no) ένας αγώνας κρίκετ. Διαθέτουμε τα δεδομένα του ακόλουθου πίνακα, στον οποίο επίσης φαίνονται οι πιθανές τιμές που μπορεί να λάβει κάθε χαρακτηριστικό. Χρησιμοποιώντας την Αφελή Μπεϋζιανή κατηγοριοποίηση καλείστε να αποφασίσετε αν θα πραγματοποιηθεί ο αγώνας Χ ο οποίος έχει τα εξής χαρακτηριστικά \(X =\) {outlook = rain, temperature = hot, humidity = high, windy = true}.

Outlook Temperature Humidity Windy Class
sunny hot High false NO
sunny hot High true NO
overcast hot High false YES
Rain mild High false YES
Rain cool Normal false YES
Rain cool Normal true NO
overcast cool Normal true YES
sunny mild High false NO
sunny cool Normal false YES
Rain mild Normal false YES
sunny mild Normal true YES
overcast mild High true YES
overcast hot Normal false YES
Rain mild High true NO

Α) Υπολογίστε τις πιθανότητες \(p(\text{yes})\), \(p(\text{no})\). (2 μονάδες)
Β) Υπολογίστε τις πιθανότητες \(P(\text{sunny}|\text{yes})\), \(P(\text{overcast}|\text{yes})\), \(P(\text{rain}|\text{yes})\), \(P(\text{sunny}|\text{no})\), \(P(\text{overcast}|\text{no})\), \(P(\text{rain}|\text{no})\) και τις αντίστοιχες πιθανότητες για τα χαρακτηριστικά temperature, humidity, windy. (8 μονάδες)
Γ) Πως διαμορφώνεται η πιθανότητα \(P(X|\text{yes})\) κάνοντας χρήση της βασικής υπόθεσης του Μπεϋζιανού κατηγοριοποιητή; Ομοίως υπολογίστε την \(P(X|\text{no})\). (8 μονάδες)
Δ) Σε ποια κλάση κατατάσσετε τον αγώνα Χ; (2 μονάδες)

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

IMG_20260206_120529.jpg

ΘΕΜΑ 4° (μονάδες 20) Δίνεται νευρώνας με εισόδους \(x = [1.0, 2.0]^T\) και βάρη \(w = [w_1, w_2]^T = [-0.5, 0.3]^T\). Η συνάρτηση ενεργοποίησης είναι η \(\sigma(z) = \frac{1}{1 + e^{-z}}\) και η συνάρτηση απώλειας η \(E = \frac{1}{2}(y - \hat{y})^2\). Η επιθυμητή έξοδος είναι \(y = 1.0\).

[Σχήμα: Νευρώνας με εισόδους \(x_1, x_2\), βάρη \(w_1, w_2\), άθροισμα και συνάρτηση ενεργοποίησης \(\sigma(z)\), έξοδος \(\hat{y}\).]

Α) Υπολογίστε την έξοδο \(\hat{y} = \sigma(z) = \sigma(w_1 x_1 + w_2 x_2)\) (Forward Pass). Β) Υπολογίστε την τιμή της παραγώγου της sigmoid για το συγκεκριμένο \(z\) δεδομένου ότι είναι \(\sigma'(z) = \sigma(z)(1 - \sigma(z))\). Δίνεται: \(e^x \approx 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!}\). Γ) Υπολογίστε την κλίση του σφάλματος ως προς το βάρος \(w_1\) χρησιμοποιώντας τον κανόνα της αλυσίδας: \(\frac{\partial E}{\partial w_1} = \frac{\partial E}{\partial \hat{y}} \frac{\partial \hat{y}}{\partial z} \frac{\partial z}{\partial w_1}\). Δ) Πραγματοποιήστε μια ενημέρωση του βάρους \(w_1\) με ρυθμό μάθησης \(\eta = 0.1\): \(w_1^{\text{new}} = w_1^{\text{old}} - \eta \frac{\partial E}{\partial w_1}\).

ΘΕΜΑ 5° (μονάδες 20) Κάποια χαρακτηριστικά των καιρικών συνθηκών (outlook, temperature, humidity, windy) χρησιμοποιούνται για να αποφασίσουμε αν θα πραγματοποιηθεί (yes) ή όχι (no) ένας αγώνας κρίκετ. Διαθέτουμε τα δεδομένα του ακόλουθου πίνακα, στον οποίο επίσης φαίνονται οι πιθανές τιμές που μπορεί να λάβει κάθε χαρακτηριστικό. Χρησιμοποιώντας την Αφελή Μπεϋζιανή κατηγοριοποίηση καλείστε να αποφασίσετε αν θα πραγματοποιηθεί ο αγώνας \(X\) ο οποίος έχει τα εξής χαρακτηριστικά \(X = \{\text{outlook} = \text{rain}, \text{temperature} = \text{hot}, \text{humidity} = \text{high}, \text{windy} = \text{true}\}\).

Outlook Temperature Humidity Windy Play
sunny hot high false no
sunny hot high true no
overcast hot high false yes
rain mild high false yes
rain cool normal false yes
rain cool normal true no
overcast cool normal true yes
sunny mild high false no
sunny cool normal false yes
rain mild normal false yes
sunny mild normal true yes
overcast mild high true yes
overcast hot normal false yes
rain mild high true no

Α) Υπολογίστε τις πιθανότητες \(P(\text{yes})\), \(P(\text{no})\). (2 μονάδες) Β) Υπολογίστε τις πιθανότητες \(P(\text{sunny} \mid \text{yes})\), \(P(\text{overcast} \mid \text{yes})\), \(P(\text{rain} \mid \text{yes})\), \(P(\text{sunny} \mid \text{no})\), \(P(\text{overcast} \mid \text{no})\), \(P(\text{rain} \mid \text{no})\) και τις αντίστοιχες πιθανότητες για τα χαρακτηριστικά temperature, humidity, windy. (8 μονάδες) Γ) Πως διαμορφώνεται η πιθανότητα \(P(X \mid \text{yes})\) κάνοντας χρήση της βασικής υπόθεσης του Μπεϋζιανού κατηγοριοποιητή; Ομοίως υπολογίστε την \(P(X \mid \text{no})\). (8 μονάδες) Δ) Σε ποια κλάση κατατάσσετε τον αγώνα \(X\); (2 μονάδες)

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

Επιπλέον πηγές χωρίς μεταγραφή εδώ (λύσεις → 2026-02.solutions.md, ή διπλότυπες φωτογραφίες της ίδιας σελίδας): IMG_20260206_121159.jpg, Screenshot_2026-01-31_192545.png

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

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

Προσοχή

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

AI λύσεις — 2026-02

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

Θέμα 1

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

Λύση 1: Γράφημα: \(S\to A(1),B(2)\)· \(A\to C(1)\)· \(B\to C(2)\)· \(C\to D(1),E(2)\)· \(D\to F(1)\)· \(E\to F(2)\)· \(F\to G(100)\). Ευρετική: \(S=90,A=100,B=2,C=91,D=99,E=1,F=90,G=0\). Ο έλεγχος στόχου γίνεται κατά την επέκταση· ισοβαθμία ⇒ αλφαβητικά. Τα βήματα επαληθεύτηκαν με πρόγραμμα.

i) BestFS (κλειδί \(h\))

Τρέχουσα Μέτωπο πριν την επιλογή (κόμβος, \(h\)) Κλειστό
\(S\) \(\{S(90)\}\) \(\emptyset\)
\(B\) \(\{B(2),\ A(100)\}\) \(S\)
\(C\) \(\{C(91),\ A(100)\}\) \(S,B\)
\(E\) \(\{E(1),\ D(99),\ A(100)\}\) \(S,B,C\)
\(F\) \(\{F(90),\ D(99),\ A(100)\}\) \(S,B,C,E\)
\(G\) \(\{G(0),\ D(99),\ A(100)\}\) \(S,B,C,E,F\)

Λύση: \(S\to B\to C\to E\to F\to G\), κόστος \(2+2+2+2+100=108\).

ii) A* (κλειδί \(f=g+h\), με κλειστό σύνολο)

Τρέχουσα Μέτωπο πριν την επιλογή (κόμβος, \(f\)) Κλειστό
\(S\) \(\{S(90)\}\) \(\emptyset\)
\(B\) \(\{B(4),\ A(101)\}\) \(S\)
\(C\) (\(g=4\)) \(\{C(95),\ A(101)\}\) \(S,B\)
\(E\) \(\{E(7),\ A(101),\ D(104)\}\) \(S,B,C\)
\(F\) \(\{F(98),\ A(101),\ D(104)\}\) \(S,B,C,E\)
\(A\) (το παιδί \(C\) με \(g=2\) δεν ξαναμπαίνει, είναι κλειστό) \(\{A(101),\ D(104),\ G(108)\}\) \(S,B,C,E,F\)
\(D\) (\(g=5\)) \(\{D(104),\ G(108)\}\) \(S,B,C,E,F,A\)
\(G\) \(\{G(108)\}\) ...

Λύση: \(S\to B\to C\to E\to F\to G\), κόστος \(108\).

Αν επιτραπεί επανεπέκταση κλειστών κόμβων (ή αν δεν χρησιμοποιηθεί κλειστό σύνολο), ο \(A\) επεκτείνει ξανά το \(C\) με \(g=2\) και ο A* βρίσκει το \(S\to A\to C\to D\to F\to G\) με κόστος \(\mathbf{104}\) (βέλτιστο).

Β) Η ευρετική είναι παραδεκτή (π.χ. \(h(A)=100\le h^*(A)=103\), \(h(D)=99\le101\)) αλλά όχι συνεπής: \(h(A)=100 > c(A,C)+h(C)=1+91=92\). Συνέπειες:

  • Ο BestFS δεν βρίσκει βέλτιστη λύση: ακολουθεί μόνο το \(h\) και δίνει 108 αντί για 104.
  • Ο A* με παραδεκτή \(h\) είναι βέλτιστος στην αναζήτηση δέντρου (ή με επανεπέκταση)· με κλειστό σύνολο χωρίς επανεπέκταση και μη συνεπή \(h\) μπορεί να χάσει τη βέλτιστη διαδρομή, όπως εδώ (108 αντί 104). Άρα η απάντηση εξαρτάται από την υλοποίηση: το κλειστό σύνολο εδώ προκαλεί την υποβέλτιστη λύση.

Λύση 2: Παραδοχή: Στην εκφώνηση αναγράφεται «με αρχική κατάσταση Α», αλλά το γράφημα ξεκινά από τον κόμβο \(S\) (Start) με διαθέσιμες ακμές \(S \to A\) και \(S \to B\), και δίνεται τιμή \(h(S) = 90\) στον πίνακα. Πρόκειται για κλασικό τυπογραφικό λάθος της εκφώνησης όπου εννοείται αρχική κατάσταση το \(S\). Η επίλυση πραγματοποιείται με αρχική κατάσταση το \(S\) (σημειώνεται επίσης η απλοποιημένη περίπτωση αν ξεκινούσε από το \(A\)).


Α) Εκτέλεση μεθόδων αναζήτησης

Η επιλογή του επόμενου κόμβου προς επέκταση γίνεται αποκλειστικά με βάση τη μικρότερη τιμή της ευρετικής συνάρτησης \(h(n)\).

  1. Αρχικοποίηση: Μέτωπο αναζήτησης (Fringe) = \(\{S (h=90)\}\)
  2. Βήμα 1: Επέκταση του \(S\).
    Παιδιά του \(S\): \(A\) (\(h=100\)), \(B\) (\(h=2\)).
    Fringe = \(\{B(2), A(100)\}\)
  3. Βήμα 2: Επέκταση του \(B\) (\(h=2\)).
    Παιδιά του \(B\): \(C\) (\(h=91\)).
    Fringe = \(\{C(91), A(100)\}\)
  4. Βήμα 3: Επέκταση του \(C\) (\(h=91\)).
    Παιδιά του \(C\): \(D\) (\(h=99\)), \(E\) (\(h=1\)).
    Fringe = \(\{E(1), D(99), A(100)\}\)
  5. Βήμα 4: Επέκταση του \(E\) (\(h=1\)).
    Παιδιά του \(E\): \(F\) (\(h=90\)).
    Fringe = \(\{F(90), D(99), A(100)\}\)
  6. Βήμα 5: Επέκταση του \(F\) (\(h=90\)).
    Παιδιά του \(F\): \(G\) (\(h=0\)).
    Fringe = \(\{G(0), D(99), A(100)\}\)
  7. Βήμα 6: Επιλογή και έλεγχος τερματισμού για τον \(G\) (\(h=0\)).
    Ο στόχος \(G\) επιτεύχθηκε.

  8. Διαδρομή λύσης BestFS: \(S \to B \to C \to E \to F \to G\)

  9. Συνολικό κόστος: \(g(G) = 2 + 2 + 2 + 2 + 100 = 108\).

ii) Αλγόριθμος \(A^*\)

Η επιλογή γίνεται με βάση την εκτίμηση συνολικού κόστους \(f(n) = g(n) + h(n)\), όπου \(g(n)\) είναι το πραγματικό κόστος από την αρχική κατάσταση.

  1. Αρχικοποίηση: Fringe = \(\{S: g=0, h=90, f=90\}\)
  2. Βήμα 1: Επέκταση του \(S\).
  3. Κόμβος \(A\): \(g=1\), \(h=100 \Rightarrow f = 1 + 100 = 101\)
  4. Κόμβος \(B\): \(g=2\), \(h=2 \Rightarrow f = 2 + 2 = 4\)
    Fringe = \(\{B: f=4, A: f=101\}\)
  5. Βήμα 2: Επέκταση του \(B\) (\(f=4\)).
  6. Κόμβος \(C\) (μέσω \(B\)): \(g = 2 + 2 = 4\), \(h=91 \Rightarrow f = 4 + 91 = 95\)
    Fringe = \(\{C(\text{via } B): f=95, A: f=101\}\)
  7. Βήμα 3: Επέκταση του \(C\) (\(f=95\)).
  8. Κόμβος \(D\): \(g = 4 + 1 = 5\), \(h=99 \Rightarrow f = 5 + 99 = 104\)
  9. Κόμβος \(E\): \(g = 4 + 2 = 6\), \(h=1 \Rightarrow f = 6 + 1 = 7\)
    Fringe = \(\{E: f=7, A: f=101, D: f=104\}\)
  10. Βήμα 4: Επέκταση του \(E\) (\(f=7\)).
  11. Κόμβος \(F\) (μέσω \(E\)): \(g = 6 + 2 = 8\), \(h=90 \Rightarrow f = 8 + 90 = 98\)
    Fringe = \(\{F(\text{via } E): f=98, A: f=101, D: f=104\}\)
  12. Βήμα 5: Επέκταση του \(F\) (\(f=98\)).
  13. Κόμβος \(G\) (μέσω \(E \to F\)): \(g = 8 + 100 = 108\), \(h=0 \Rightarrow f = 108 + 0 = 108\)
    Fringe = \(\{A: f=101, D: f=104, G: f=108\}\)
  14. Βήμα 6: Επέκταση του \(A\) (\(f=101\)).
  15. Κόμβος \(C\) (μέσω \(A\)): \(g = 1 + 1 = 2 < 4\) (βρέθηκε φθηνότερο μονοπάτι για το \(C\)).
    Νέο \(f(C) = 2 + 91 = 93\).
    Fringe = \(\{C(\text{via } A): f=93, D: f=104, G: f=108\}\)
  16. Βήμα 7: Επέκταση του \(C\) (\(f=93\), μέσω \(A\)).
  17. Κόμβος \(D\) (μέσω \(A \to C\)): \(g = 2 + 1 = 3 < 5 \Rightarrow f = 3 + 99 = 102\)
  18. Κόμβος \(E\) (μέσω \(A \to C\)): \(g = 2 + 2 = 4 < 6 \Rightarrow f = 4 + 1 = 5\)
    Fringe = \(\{E: f=5, D: f=102, G: f=108\}\)
  19. Βήμα 8: Επέκταση του \(E\) (\(f=5\)).
  20. Κόμβος \(F\) (μέσω \(A \to C \to E\)): \(g = 4 + 2 = 6 < 8 \Rightarrow f = 6 + 90 = 96\)
    Fringe = \(\{F: f=96, D: f=102, G: f=108\}\)
  21. Βήμα 9: Επέκταση του \(F\) (\(f=96\)).
    • Κόμβος \(G\): \(g = 6 + 100 = 106 < 108 \Rightarrow f = 106 + 0 = 106\)
      Fringe = \(\{D: f=102, G: f=106\}\)
  22. Βήμα 10: Επέκταση του \(D\) (\(f=102\), μέσω \(A \to C\)).
    • Κόμβος \(F\) (μέσω \(D\)): \(g = 3 + 1 = 4 < 6 \Rightarrow f = 4 + 90 = 94\)
      Fringe = \(\{F(\text{via } D): f=94, G: f=106\}\)
  23. Βήμα 11: Επέκταση του \(F\) (\(f=94\), μέσω \(D\)).
    • Κόμβος \(G\): \(g = 4 + 100 = 104 < 106 \Rightarrow f = 104\)
      Fringe = \(\{G(\text{via } D \to F): f=104\}\)
  24. Βήμα 12: Επέκταση / Εξαγωγή του \(G\) (\(f=104\)). Τερματισμός.

  25. Διαδρομή λύσης \(A^*\): \(S \to A \to C \to D \to F \to G\)

  26. Συνολικό κόστος: \(g(G) = 1 + 1 + 1 + 1 + 100 = 104\).

(Σημείωση: Αν η αρχική κατάσταση ήταν αυστηρά το \(A\), ο BestFS θα έδινε \(A \to C \to E \to F \to G\) με κόστος \(105\), ενώ ο \(A^*\) θα έδινε \(A \to C \to D \to F \to G\) με βέλτιστο κόστος \(103\).)


Β) Εύρεση βέλτιστης λύσης

  • BestFS: Δεν εγγυάται και δεν βρίσκει τη βέλτιστη λύση, καθώς αγνοεί το συσσωρευμένο κόστος \(g(n)\) και παρασύρεται από τοπικά ελκυστικές τιμές της ευρετικής (βρίσκει διαδρομή κόστους 108 αντί του βέλτιστου 104).
  • \(A^*\): Ο \(A^*\) βρίσκει τη βέλτιστη λύση (\(S \to A \to C \to D \to F \to G\) με κόστος 104). Παρόλο που η ευρετική δεν είναι παραδεκτή (π.χ. \(h(A) = 100\), ενώ το πραγματικό κόστος \(A \to G\) είναι \(103\), άρα \(h(A) \le h^*(A)\) ισχύει, αλλά \(h(D) = 99 > h^*(D) = 101\) που είναι παραδεκτό, ωστόσο γενικά σε γραφήματα ο \(A^*\) με επανεξέταση κόμβων/μικρότερου κόστους καταφέρνει να βρει το βέλτιστο μονοπάτι όταν εξάγει τον στόχο).

Λύση 3 (τρίτη γνώμη): Παρατήρηση εκφώνησης: Στο κείμενο αναγράφεται «αρχική κατάσταση Α», αλλά το γράφημα ξεκινά από τον κόμβο \(S\) (Start) που συνδέεται με \(A\) και \(B\), και στον πίνακα δίνεται \(S=90\). Η ανάλυση διεξάγεται με αρχική κατάσταση το \(S\).

Α) Εκτέλεση μεθόδων αναζήτησης

i) BestFS (Greedy Best-First Search, κλειδί επιλογής \(h\))

  • Αρχικοποίηση: Μέτωπο = \(\{S(90)\}\)
  • Βήμα 1: Επέκταση \(S(90)\) \(\to\) Παιδιά: \(B(2), A(100)\). Μέτωπο = \(\{B(2), A(100)\}\)
  • Βήμα 2: Επέκταση \(B(2)\) \(\to\) Παιδί: \(C(91)\). Μέτωπο = \(\{C(91), A(100)\}\)
  • Βήμα 3: Επέκταση \(C(91)\) \(\to\) Παιδιά: \(E(1), D(99)\). Μέτωπο = \(\{E(1), D(99), A(100)\}\)
  • Βήμα 4: Επέκταση \(E(1)\) \(\to\) Παιδί: \(F(90)\). Μέτωπο = \(\{F(90), D(99), A(100)\}\)
  • Βήμα 5: Επέκταση \(F(90)\) \(\to\) Παιδί: \(G(0)\). Μέτωπο = \(\{G(0), D(99), A(100)\}\)
  • Βήμα 6: Επιλογή \(G(0)\) \(\to\) Έλεγχος στόχου επιτυχής.
  • Διαδρομή λύσης BestFS: \(S \to B \to C \to E \to F \to G\), με κόστος \(2 + 2 + 2 + 2 + 100 = \mathbf{108}\).

ii) Αλγόριθμος \(A^*\) (\(f(n) = g(n) + h(n)\))

  • Σε Graph Search με κλειστό σύνολο (standard κλειστό σύνολο χωρίς επανεπέκταση κλειστών κόμβων):
  • Επέκταση \(S\): παιδιά \(B(g=2, f=2+2=4)\), \(A(g=1, f=1+100=101)\). Μέτωπο = \(\{B(4), A(101)\}\), Κλειστό = \(\{S\}\).
  • Επέκταση \(B(4)\): παιδί \(C\) μέσω \(B\) (\(g=4, f=4+91=95\)). Μέτωπο = \(\{C(95), A(101)\}\), Κλειστό = \(\{S, B\}\).
  • Επέκταση \(C(95)\): παιδιά \(E(g=6, f=6+1=7)\), \(D(g=5, f=5+99=104)\). Μέτωπο = \(\{E(7), A(101), D(104)\}\), Κλειστό = \(\{S, B, C\}\).
  • Επέκταση \(E(7)\): παιδί \(F\) μέσω \(E\) (\(g=8, f=8+90=98\)). Μέτωπο = \(\{F(98), A(101), D(104)\}\), Κλειστό = \(\{S, B, C, E\}\).
  • Επέκταση \(F(98)\): παιδί \(G\) μέσω \(E \to F\) (\(g=108, f=108+0=108\)). Μέτωπο = \(\{A(101), D(104), G(108)\}\), Κλειστό = \(\{S, B, C, E, F\}\).
  • Επέκταση \(A(101)\): παράγει το \(C\) με \(g=2\), αλλά το \(C\) ανήκει ήδη στο κλειστό σύνολο. Αν δεν επιτρέπεται επανεπέκταση κλειστών (κλασικό Graph Search), το \(C\) αγνοείται. Μέτωπο = \(\{D(104), G(108)\}\), Κλειστό = \(\{S, B, C, E, F, A\}\).
  • Επέκταση \(D(104)\): παράγει το \(F\), το οποίο είναι επίσης στο κλειστό σύνολο.
  • Επιλογή \(G(108) \implies\) Τερματισμός με διαδρομή \(S \to B \to C \to E \to F \to G\) και κόστος \(\mathbf{108}\).
  • Αν επιτρέπεται επανεξέταση/ενημέρωση κλειστών κόμβων (όταν βρεθεί μικρότερο \(g\)) ή σε Tree Search: Στο βήμα 6, ο κόμβος \(A\) προσφέρει μονοπάτι προς το \(C\) με \(g=2 < 4\). Το \(C\) επανεισάγεται στο μέτωπο με \(f(C) = 2 + 91 = 93\), επεκτείνεται και οδηγεί σταδιακά μέσω \(D\) (\(g=3, f=102\)) στο \(F\) (\(g=4, f=94\)) και τελικά στον στόχο \(G\) με \(g=104, f=104\). Τότε η διαδρομή είναι \(S \to A \to C \to D \to F \to G\) με κόστος \(\mathbf{104}\).

Β) Εύρεση βέλτιστης λύσης

  1. BestFS: Δεν βρίσκει τη βέλτιστη λύση, καθώς λαμβάνει υπόψη μόνο το \(h(n)\) και αγνοεί το συσσωρευμένο κόστος \(g(n)\), καταλήγοντας στη διαδρομή κόστους 108 αντί του βέλτιστου 104.
  2. \(A^*\):
  3. Η ευρετική συνάρτηση είναι παραδεκτή (admissible), καθώς δεν υπερεκτιμά πουθενά το πραγματικό ελάχιστο κόστος \(h^*(n)\) προς τον στόχο: \(h(F)=90 \le 100\), \(h(D)=99 \le 101\), \(h(E)=1 \le 102\), \(h(C)=91 \le 102\), \(h(A)=100 \le 103\), \(h(B)=2 \le 104\), \(h(S)=90 \le 104\).
  4. Όμως η ευρετική δεν είναι συνεπής (μονότονη): Για την ακμή \((A, C)\), έχουμε \(h(A) = 100 > c(A, C) + h(C) = 1 + 91 = 92\). Επίσης για την \((D, F)\), έχουμε \(h(D) = 99 > c(D, F) + h(F) = 1 + 90 = 91\).
  5. Λόγω της μη συνέπειας, σε Graph Search χωρίς επανεξέταση κλειστών κόμβων ο \(A^*\) δεν εγγυάται και δεν βρίσκει τη βέλτιστη λύση (βρίσκει το υποβέλτιστο μονοπάτι κόστους 108). Βρίσκει τη βέλτιστη λύση (κόστος 104) μόνο αν επιτρέπεται επανεξέταση κλειστών κόμβων όταν εντοπιστεί μικρότερο \(g(n)\) ή σε Tree Search.

Σύγκριση με λύσεις Α και Β: Η λύση Α υπέθεσε αποκλειστικά standard Graph Search χωρίς επανεπέκταση (καταλήγοντας σε 108 και για τον \(A^*\)), ενώ η λύση Β υπέθεσε αποκλειστικά επανεξέταση κόμβων (καταλήγοντας σε 104 για τον \(A^*\)) αναφέροντας εσφαλμένα ότι η ευρετική ίσως δεν είναι παραδεκτή (\(h(D) > h^*\)). Επειδή η συμπεριφορά εξαρτάται άμεσα από την εκδοχή του \(A^*\) (Graph Search με κλειστό σύνολο χωρίς επανεξέταση έναντι Tree Search / επανεξέτασης) και καμία από τις δύο παλαιότερες λύσεις δεν κάλυψε πλήρως και τις δύο εκδοχές με τη σωστή απόδειξη παραδεκτότητας αλλά έλλειψης συνέπειας, η παρούσα λύση αποτελεί τη συνθετική και πλήρη απάντηση.

Θέμα 2

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

Α) Σε πρόβλημα μεγιστοποίησης: αν η νέα κατάσταση είναι καλύτερη, γίνεται δεκτή με πιθανότητα 1· αλλιώς με πιθανότητα \(p=e^{\Delta E/T}\) με \(\Delta E=\text{νέα}-\text{τρέχουσα}<0\).

α/α \(\Delta E\) \(T\) \(p\)
5 \(+10\) 1000 \(1\) (βελτίωση)
4 \(-20\) 500 \(e^{-0.04}\approx 0.961\)
2 \(-70\) 500 \(e^{-0.14}\approx 0.869\)
3 \(-20\) 20 \(e^{-1}\approx 0.368\)
1 \(-70\) 20 \(e^{-3.5}\approx 0.030\)

Σειρά από το πιθανότερο στο λιγότερο πιθανό: 5, 4, 2, 3, 1. (Υπολογισμός με Python.) Λογική: οι βελτιώσεις γίνονται πάντα δεκτές, οι χειρότερες κινήσεις είναι πιθανότερες όσο μεγαλύτερη η \(T\) και όσο μικρότερη η επιδείνωση.

Β) Όταν \(T\to\infty\), \(e^{\Delta E/T}\to 1\) για κάθε \(\Delta E\): γίνεται δεκτή οποιαδήποτε κίνηση, καλή ή κακή. Ο αλγόριθμος κάνει τυχαίο περίπατο. Δεν είναι κατάβαση κλίσης (i–iii: δεχόμενες μόνο βελτιώσεις) ούτε τυχαία επανεκκίνηση (iv). Απάντηση: (v) κανένα από τα παραπάνω (τυχαίος περίπατος).

Θέμα 3

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

Α) Αντίφαση της επίλυσης

Προτάσεις: 1. \(\{\neg parent(x,z),\ \neg parent(y,k),\ \neg sibling(x,y),\ cousin(z,k)\}\) 2. \(\{parent(maria, c_0)\}\) 3. \(\{parent(giannis, kostas)\}\) 4. \(\{sibling(maria, giannis)\}\) 5. Άρνηση συμπεράσματος: \(\{\neg cousin(c_0, kostas)\}\)

Επιλύσεις: - (5)+(1), \(\{z/c_0,\ k/kostas\}\) ⇒ (6) \(\{\neg parent(x,c_0),\ \neg parent(y,kostas),\ \neg sibling(x,y)\}\) - (6)+(2), \(\{x/maria\}\) ⇒ (7) \(\{\neg parent(y,kostas),\ \neg sibling(maria,y)\}\) - (7)+(3), \(\{y/giannis\}\) ⇒ (8) \(\{\neg sibling(maria, giannis)\}\) - (8)+(4) ⇒ \(\{\}\) (κενή πρόταση)

Άρα το \(cousin(c_0, kostas)\) προκύπτει από τις (1)–(4).

Β) Prolog

parent(maria, c0).
parent(giannis, kostas).
sibling(maria, giannis).

cousin(Z, K) :- parent(X, Z), parent(Y, K), sibling(X, Y).
Το ερώτημα ?- cousin(X, Y). δίνει X = c0, Y = kostas. Επειδή το sibling είναι δηλωμένο μόνο προς τη μία κατεύθυνση, δεν βρίσκεται το cousin(kostas, c0).

Συμμετρία χωρίς άπειρη αναδρομή. Ο αφελής κανόνας cousin(X,Y) :- cousin(Y,X). προκαλεί άπειρο βρόχο (το cousin(X,Y) καλεί το cousin(Y,X) που καλεί ξανά το cousin(X,Y)...). Σωστός τρόπος: βασικό κατηγόρημα χωρίς αναδρομή και ξεχωριστό συμμετρικό περιτύλιγμα:

cousin_base(Z, K) :- parent(X, Z), parent(Y, K), sibling(X, Y).
cousin(X, Y) :- cousin_base(X, Y).
cousin(X, Y) :- cousin_base(Y, X).
(Ισοδύναμα: κάνουμε το sibling συμμετρικό με sibling_s(X,Y) :- sibling(X,Y). και sibling_s(X,Y) :- sibling(Y,X). και το χρησιμοποιούμε στο cousin.) Το ?- cousin(X,Y) τότε τερματίζει και δίνει και τα δύο ζεύγη.

Θέμα 4

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

Δεδομένα: \(x=[1,2]\), \(w=[-0.5,0.3]\), \(y=1\), \(\eta=0.1\). (Αριθμητικός έλεγχος με Python.)

Α) \(z=w_1x_1+w_2x_2=-0.5\cdot1+0.3\cdot2=0.1\). \(\hat y=\sigma(0.1)=\dfrac{1}{1+e^{-0.1}}\). Με το ανάπτυγμα: \(e^{-0.1}\approx1-0.1+0.005-0.000167=0.90483\), άρα \(\hat y\approx\dfrac1{1.90483}=\mathbf{0.525}\).

Β) \(\sigma'(z)=\hat y(1-\hat y)\approx0.525\cdot0.475=\mathbf{0.2494}\).

Γ) \(\dfrac{\partial E}{\partial\hat y}=-(y-\hat y)=-(1-0.525)=-0.475\), \(\dfrac{\partial\hat y}{\partial z}=\sigma'(z)=0.2494\), \(\dfrac{\partial z}{\partial w_1}=x_1=1\): $\(\frac{\partial E}{\partial w_1}=-0.475\cdot0.2494\cdot1\approx\mathbf{-0.1185}.\)$

Δ) \(w_1^{new}=-0.5-0.1\cdot(-0.1185)=-0.5+0.01185\approx\mathbf{-0.4882}\).

Θέμα 5

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

Στο σύνολο των 14 παραδειγμάτων: 9 yes, 5 no. Οι πιθανότητες υπολογίστηκαν και με πρόγραμμα (ακριβή κλάσματα).

Α) \(P(yes)=\dfrac9{14}\approx0.643\), \(P(no)=\dfrac5{14}\approx0.357\).

Β) Δεσμευμένες πιθανότητες

Χαρακτηριστικό τιμή \(P(\cdot\mid yes)\) \(P(\cdot\mid no)\)
Outlook sunny 2/9 3/5
overcast 4/9 0
rain 3/9 = 1/3 2/5
Temperature hot 2/9 2/5
mild 4/9 2/5
cool 3/9 = 1/3 1/5
Humidity high 3/9 = 1/3 4/5
normal 6/9 = 2/3 1/5
Windy true 3/9 = 1/3 3/5
false 6/9 = 2/3 2/5

Γ) Με την υπόθεση ανεξαρτησίας των χαρακτηριστικών δοθείσης της κλάσης: \(P(X\mid C)=P(rain\mid C)\,P(hot\mid C)\,P(high\mid C)\,P(true\mid C)\).

  • \(P(X\mid yes)=\dfrac13\cdot\dfrac29\cdot\dfrac13\cdot\dfrac13=\dfrac{2}{243}\approx0.00823\)
  • \(P(X\mid no)=\dfrac25\cdot\dfrac25\cdot\dfrac45\cdot\dfrac35=\dfrac{48}{625}=0.0768\)

Δ) Συγκρίνουμε \(P(X\mid C)P(C)\): - yes: \(0.00823\cdot\dfrac9{14}=\dfrac1{189}\approx0.00529\) - no: \(0.0768\cdot\dfrac5{14}=\dfrac{24}{875}\approx0.02743\)

Το \(no\) είναι μεγαλύτερο, άρα ο αγώνας \(X\) κατατάσσεται στην κλάση no (δεν θα πραγματοποιηθεί).

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


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