1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Nikos Louloudakis Nikos Orfanoudakis Irini Genitsaridi
Advertisements

Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
Αλγόριθμοι Αναζήτησης
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
Πίνακες.
PROLOG.
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Διακριτά Μαθηματικά ΙI Δέντρα
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 9: Διανύσματα και λίστες.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Αναζήτηση (Search) ΤΜΗΜΑ ΜΠΕΣ.
1 Τμήμα Ψηφιακών Συστημάτων – Πανεπιστήμιο Πειραιώς Αναζήτηση (Search)
Αλγόριθμοι Αναζήτησης
Συνέπεια Τόξου (Arc Consistency)
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
Επισκόπηση Εισαγωγή στην Τεχνητή Νοημοσύνη, Επίλυση προβλημάτων,
Ε. ΠετράκηςΣτοίβες, Ουρές1 Στοίβες  Στοίβα: περιορισμένη ποικιλία λίστας  τα στοιχεία μπορούν να εισαχθούν ή να διαγραφούν μόνο από μια άκρη : λίστες.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων Φροντιστήριο - 30/04/2009.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
Lists– Λίστες 1. Αυτό-αναφορικές δομές Τα μέλη μίας δομής μπορεί να είναι οποιουδήποτε τύπου, ακόμα και δείκτες σε δομές του ίδιου τύπου. Χρησιμοποιώντας.
Επισκόπηση Εισαγωγή στην Τεχνητή Νοημοσύνη Επίλυση προβλημάτων
Γιάννης Σταματίου Αναδρομή και αναδρομικές σχέσεις
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο1 Μείωσε και Βασίλευε Μειώνουμε το στιγμιότυπο του προβλήματος σε ένα μικρότερο στιγμιότυπο.
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
Διαφάνειες παρουσίασης Πίνακες (συνέχεια) Αριθμητικοί υπολογισμοί Αναδρομή.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Τμ. Πληροφορικής,
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.
Δομές Δεδομένων και Αρχεία Ενότητα 10: Κυκλικά και Διπλά Συνδεδεμένη Λίστα Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I.
ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Αναζήτηση (Search) συνέχεια ΤΜΗΜΑ ΜΠΕΣ.
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΑΡΆΡΤΗΜΑ ΛΕΥΚΑΔΑΣ ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΉΤΡΙΑ Δρ. ΤΣΙΝΤΖΑ ΠΑΝΑΓΙΩΤΑ Οι παρουσιάσεις του μαθήματος βασίζονται στο.
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΑΡΆΡΤΗΜΑ ΛΕΥΚΑΔΑΣ ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΉΤΡΙΑ Δρ. ΤΣΙΝΤΖΑ ΠΑΝΑΓΙΩΤΑ Οι παρουσιάσεις του μαθήματος βασίζονται στο.
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΑΡΆΡΤΗΜΑ ΛΕΥΚΑΔΑΣ ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΉΤΡΙΑ Δρ. ΤΣΙΝΤΖΑ ΠΑΝΑΓΙΩΤΑ Οι παρουσιάσεις του μαθήματος βασίζονται στο.
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΑΡΆΡΤΗΜΑ ΛΕΥΚΑΔΑΣ ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΉΤΡΙΑ Δρ. ΤΣΙΝΤΖΑ ΠΑΝΑΓΙΩΤΑ Οι παρουσιάσεις του μαθήματος βασίζονται στο.
ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ Άπληστη Αναζήτηση και Αναζήτηση Α* ΣΠΥΡΟΣ ΛΥΚΟΘΑΝΑΣΗΣ, ΚΑΘΗΓΗΤΗΣ.
1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ. 2 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα –Αναζήτηση κατά βάθος (Depth-first search – DFS) –Αναζήτηση κατά πλάτος (Breadth-first.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
Οι Δομές Δεδομένων Ουρά και Στοίβα
Δυναμικός Κατακερματισμός
Επίλυση Προβλημάτων με Αναζήτηση
Επίλυση Προβλημάτων με Αναζήτηση
Πληροφορημένη Αναζήτηση και Εξερεύνηση
Διερεύνηση γραφήματος
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό
Βελτιστοποίηση σε τρίλιζα Καταδίωξη/διαφυγή
EPL231 – Data Structures and Algorithms
ΣΤΟΙΒΑ.
Η τακτοποίηση των κόμβων μίας δομής με μία ιδιαίτερη σειρά είναι μία πολύ σημαντική λειτουργία που ονομάζεται ταξινόμηση (sorting) ή διάταξη (ordering).
Οι Δομές Δεδομένων Ουρά και Στοίβα
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Δυναμικός Κατακερματισμός
Αναδρομή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
ΠΙΝΑΚΕΣ Δομή ΟΥΡΑΣ (queue)
Μεταγράφημα παρουσίασης:

1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση

2 ΤΜΗΜΑ ΜΠΕΣ Το 8-puzzle Αρχική Κατάσταση Στόχου Το παιχνίδι 8-puzzle αποτελείται από 8 κινητά τετραγωνίδια που το καθένα φέρει έναν αριθμό από το 1 μέχρι το 8 και είναι τοποθετημένα σε ένα πλαίσιο 3x3 όπως δείχνει το παραπάνω σχήμα Μία από τις θέσεις είναι πάντα άδεια και επιτρέπεται η κάλυψη αυτής μόνο από ένα γειτονικό τετραγωνίδιο οπότε το κενό μετατίθεται. Το πρόβλημα του puzzle είναι από μία αρχική κατάσταση να γίνουν οι κατάλληλες μετακινήσεις τετραγωνιδίων έτσι ώστε να τοποθετηθούν οι αριθμοί σε αύξουσα διάταξη σύμφωνα με τη φορά των δεικτών του ρολογιού, όπως φαίνεται στο παραπάνω σχήμα.

3 ΤΜΗΜΑ ΜΠΕΣ Εργασία 1 - Τυφλή Αναζήτηση Υλοποιήστε πρόγραμμα που κατασκευάζει ένα πλήθος από τυχαίες αρχικές καταστάσεις για το 8-puzzle. Το πλήθος αυτό n προσδιορίζεται από τον χρήστη. Για κάθε αρχική κατάσταση επιλύστε το πρόβλημα χρησιμοποιώντας τους εξής αλγόριθμους τυφλής αναζήτησης:  Αναζήτηση πρώτα κατά πλάτος (BFS) με ή χωρίς αποφυγή επαναλαμβανόμενων καταστάσεων (δική σας επιλογή)  Αναζήτηση πρώτα κατά βάθος (DFS)  Αναζήτηση πρώτα κατά βάθος με επαναληπτική εκβάθυνση (IDS). Για τον αλγόριθμο αυτό το βήμα αύξησης του ορίου αναζήτησης θα είναι 1  Αναζήτηση πρώτα κατά βάθος με αποφυγή επαναλαμβανόμενων καταστάσεων

4 ΤΜΗΜΑ ΜΠΕΣ Εργασία 1 - Τυφλή Αναζήτηση Μετά την ολοκλήρωση της εκτέλεσης κάθε αλγορίθμου να τυπώνεται το μονοπάτι της λύσης που βρέθηκε και το πλήθος των κόμβων στο μονοπάτι αυτό (αν έχει βρεθεί λύση). Μετά την επίλυση των n προβλημάτων να τυπώνεται το μέσο πλήθος κόμβων που επισκέφθηκε ο κάθε αλγόριθμος, καθώς και το πλήθος των προβλημάτων στα οποία ο κάθε αλγόριθμος βρήκε λύση.  Η υλοποίηση μπορεί να γίνει σε μια γλώσσα όπως η Java, η C, και η C++ σε ομάδες ως και τριών ατόμων. Προθεσμία παράδοσης άσκησης: 29/11/2007. Τρόπος παράδοσης: με στο και (συζευκτικό) με παρουσίαση στο εργαστήριο στις 29/11 ή σε οποιοδήποτε εργαστήριο μέχρι τότε. Να σημειωθεί ότι η παρουσίαση στο εργαστήριο είναι

5 ΤΜΗΜΑ ΜΠΕΣ Θέματα Υλοποίησης Πως θα αναπαρασταθεί η αρχική κατάσταση?  μονοδιάστατος ή δυσδιάστατος πίνακας? Πως θα αναπαρασταθούν οι υπόλοιπες καταστάσεις?  παρομοίως? Πως θα υλοποιηθεί το τεστ στόχου?  πρέπει να ελέγξετε αν η τρέχουσα κατάσταση και η κατάσταση στόχου ταυτίζονται Πως θα υλοποιηθούν οι κόμβοι του δέντρου αναζήτησης και το μέτωπο αναζήτησης?  κλάσεις? structs? ουρά Πως θα γίνει η αποφυγή επαναλαμβανόμενων καταστάσεων?

6 ΤΜΗΜΑ ΜΠΕΣ Κόμβοι του δέντρου αναζήτησης Οι κόμβοι του δέντρου αναζήτησης μπορούν γενικά να αναπαρασταθούν με μια δομή δεδομένων (κλάση ή struct) με 5 συστατικά (από τα οποία σας ενδιαφέρουν τα 4):  ΚΑΤΑΣΤΑΣΗ  η κατάσταση στην οποία αντιστοιχεί ο κόμβος (πίνακας?)  ΠΑΤΡΙΚΟΣ ΚΟΜΒΟΣ  ένας δείκτης στον κόμβο που δημιούργησε τον συγκεκριμένο κόμβο  ΕΝΕΡΓΕΙΑ η ενέργεια που εφαρμόστηκε για τη δημιουργία του κόμβου (ποια από τις 4 δυνατές?)  ΚΟΣΤΟΣ ΜΟΝΟΠΑΤΙΟΥ το κόστος του μονοπατιού από την αρχική κατάσταση ως τον συγκεκριμένο κόμβο  ΒΑΘΟΣ το πλήθος των κόμβων στο μονοπάτι από τη ρίζα ως τον συγκεκριμένο

7 ΤΜΗΜΑ ΜΠΕΣ Το Μέτωπο Αναζήτησης (fringe or frontier) Το σύνολο των κόμβων που περιμένουν επέκταση ονομάζεται μέτωπο αναζήτησης. Μπορεί να υλοποιηθεί με μια ουρά με τις παρακάτω λειτουργίες:  MakeQueue (Elements)  Δημιουργεί μια ουρά με τα δεδομένα στοιχεία  Empty? (Queue)  επιστρέφει true αν δεν υπάρχουν στοιχεία στην ουρά  RemoveFront (Queue)  βγάζει το πρώτο στοιχείο της ουράς  Queuing-Fn (Elements, Queue)  συνάρτηση που εισάγει ένα σύνολο στοιχείων στην ουρά  διαφορετικές παραλλαγές της συνάρτησης δίνουν διαφορετικούς αλγόριθμους αναζήτησης

8 ΤΜΗΜΑ ΜΠΕΣ Γενικός Αλγόριθμος Αναζήτησης function TreeSearch (problem, Queuing-Fn) returns a solution or failure fringe  MakeQueue(MakeNode(IninitialState[problem])) loop do if fringe is empty then return failure node  RemoveFront(fringe) if GoalTest[problem] applied to State[node] succeeds then return node fringe  Queuing-Fn(fringe,Expand(node, problem)) end Η συνάρτηση Expand υπολογίζει τους κόμβους που παράγονται από μια επέκταση

9 ΤΜΗΜΑ ΜΠΕΣ Γενικός Αλγόριθμος Αναζήτησης function Expand (node, problem) returns a set of nodes successors  the empty set for each in Successor-fn[problem][State[node]) do s  a new node State[s]  result Parent-Node[s]  node Action[s]  action Path-Cost[s]  Path-Cost[node] + Step-Cost(node,action,s) Depth[s]  Depth[node] + 1 add s to successors return successors

10 ΤΜΗΜΑ ΜΠΕΣ Γενικά για την Υλοποίηση Για τον BFS μπορείτε να χρησιμοποιήσετε μια fist-in-first-out ουρά Για τον DFS και τις παραλλαγές του μπορείτε να χρησιμοποιήσετε μια last-in-first-out ουρά  Ο IDS είναι DFS μέσα σε ένα loop που αυξάνει το όριο αναζήτησης  κάθε φορά που αρχίζει η εκτέλεση του loop ξεκινάει από την αρχή. Ότι πληροφορία υπήρχε από την προηγούμενη εκτέλεση χάνεται. Για τους αλγόριθμους αποφυγής επαναλαμβανόμενων καταστάσεων πρέπει  στην περίπτωση του DFS να ελέγχετε αν ο τρέχων κόμβος βρίσκεται ήδη στη μνήμη  γενικά, να κρατάτε στη μνήμη το σύνολο των καταστάσεων που έχουν ήδη επεκταθεί (κλειστή λίστα)  π.χ. χρησιμοποιώντας μια λίστα όπου τις προσθέτετε