Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1

Save this PDF as:
 WORD  PNG  TXT  JPG

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1"

Transcript

1 Αναζήτηση σε Γράφους Μανόλης Κουμπαράκης ΥΣ02 Τεχνητή Νοημοσύνη 1

2 Πρόλογος Μέχρι τώρα έχουμε δει αλγόριθμους αναζήτησης για την περίπτωση που ο χώρος καταστάσεων είναι δένδρο (υπάρχει μία μόνο διαδρομή προς κάθε κατάσταση από την αρχική). Τι αλλάζει όταν ο χώρος καταστάσεων είναι γράφος; ΥΣ02 Τεχνητή Νοημοσύνη 2

3 Παράδειγμα ΥΣ02 Τεχνητή Νοημοσύνη 3

4 Επαναλαμβανόμενες Καταστάσεις Βλέπουμε ότι η κατάσταση In(Arad) είναι επαναλαμβανόμενη και παράγεται από ένα μονοπάτι που περιέχει κύκλο. Άρα το δένδρο αναζήτησης για το πρόβλημα μας είναι άπειρο αν και ο χώρος καταστάσεων έχει μόνο 20 καταστάσεις! Ευτυχώς δεν χρειάζεται οι αλγόριθμοι αναζήτησης να εξετάζουν επαναλαμβανόμενες καταστάσεις. Ένα μονοπάτι που περιέχει κύκλο έχει πάντα μεγαλύτερο κόστος από το ίδιο μονοπάτι αν αφαιρέσουμε τον κύκλο (με την υπόθεση ότι το κόστος βήματος είναι μη αρνητικό). ΥΣ02 Τεχνητή Νοημοσύνη 4

5 Περιττά Μονοπάτια Τα μονοπάτια που έχουν κύκλο είναι μια ειδική περίπτωση της πιο γενικής έννοιας των περιττών μονοπατιών. Έχουμε περιττά μονοπάτια όταν υπάρχουν περισσότεροι από ένας τρόποι για να πάμε από μια κατάσταση σε μια άλλη. Παράδειγμα: Τα μονοπάτια Arad-Sibiu (140 χιλιόμετρα) και Arad-Zerind-Oradea-Sibiu (297 χιλιόμετρα). Προφανώς το 2 ο μονοπάτι είναι περιττό. Αν θέλουμε να φτάσουμε σε μια κατάσταση στόχου, δεν υπάρχει λόγος να λαμβάνουμε υπόψη μας περιττά μονοπάτια. ΥΣ02 Τεχνητή Νοημοσύνη 5

6 Περιττά Μονοπάτια Μερικές φορές μπορούμε να ορίσουμε ένα πρόβλημα αναζήτησης με τέτοιο τρόπο ώστε να μην δημιουργούνται περιττά μονοπάτια. Παράδειγμα: το πρόβλημα των 8 βασιλισσών. Αν ορίσουμε το πρόβλημα ώστε μια βασίλισσα να καταλαμβάνει οποιοδήποτε τετραγωνάκι, τότε έχουμε περιττά μονοπάτια. Αν ορίσουμε το πρόβλημα ώστε μια βασίλισσα καταλαμβάνει ένα τετραγωνάκι στην αριστερότερη ελεύθερη στήλη, τότε δεν έχουμε περιττά μονοπάτια. ΥΣ02 Τεχνητή Νοημοσύνη 6

7 Περιττά Μονοπάτια Υπάρχουν περιπτώσεις που η ύπαρξη περιττών μονοπατιών δεν μπορεί να αποφευχθεί. Παράδειγμα: όλα τα προβλήματα για τα οποία οι ενέργειες είναι αντιστρέψιμες (π.χ., προβλήματα εύρεσης διαδρομής ή προβλήματα ολισθαινόντων πλακιδίων). ΥΣ02 Τεχνητή Νοημοσύνη 7

8 Παράδειγμα Η εύρεση διαδρομής σε ορθογώνια πλέγματα όπως το παραπάνω είναι σημαντική σε παιχνίδια υπολογιστή π.χ., Pacman. ΥΣ02 Τεχνητή Νοημοσύνη 8

9 Παράδειγμα Σε ένα τέτοιο πλέγμα κάθε κατάσταση έχει 4 διάδοχες καταστάσεις, οπότε ένα δένδρο αναζήτησης με βάθος d που περιέχει επαναλαμβανόμενες καταστάσεις έχει 4 d φύλλα. Όμως υπάρχουν μόνο περίπου 2d 2 διαφορετικές καταστάσεις σε απόσταση d βημάτων από οποιαδήποτε κατάσταση. Για d = 20, αυτό σημαίνει ένα τρισεκατομμύριο κόμβους αλλά μόνο 800 διαφορετικές καταστάσεις. ΥΣ02 Τεχνητή Νοημοσύνη 9

10 Το Εξερευνημένο Σύνολο Για να αποφύγουμε τη δημιουργία περιττών μονοπατιών, χρησιμοποιούμε μια δομή δεδομένων που λέγεται εξερευνημένο σύνολο (explored set) ή κλειστή λίστα (closed list). Η δομή αυτή «θυμάται» την κατάσταση κάθε εξερευνημένου κόμβου. ΥΣ02 Τεχνητή Νοημοσύνη 10

11 Ο Αλγόριθμος GRAPH-SEARCH function GRAPH-SEARCH(problem) returns a solution or failure initialize the frontier using the initial state of problem. initialize the explored set to be empty loop do if the frontier is empty then return failure choose a leaf node and remove it from the frontier if the node contains a goal state then return the corresponding solution add the state of the node to the explored set expand the chosen node, adding the resulting nodes to the frontier only if their state is not in the frontier or the explored set ΥΣ02 Τεχνητή Νοημοσύνη 11

12 Ο Αλγόριθμος GRAPH-SEARCH Το δένδρο αναζήτησης που κατασκευάζεται από τον αλγόριθμο GRAPH-SEARCH έχει το πολύ ένα αντίγραφο κάθε κατάστασης. Άρα μπορούμε να το απεικονίσουμε να δημιουργείται πάνω στον γράφο του χώρου καταστάσεων όπως φαίνεται στο παρακάτω παράδειγμα. ΥΣ02 Τεχνητή Νοημοσύνη 12

13 Παράδειγμα ΥΣ02 Τεχνητή Νοημοσύνη 13

14 Ο Αλγόριθμος GRAPH-SEARCH Ο αλγόριθμος GRAPH-SEARCH έχει επίσης την παρακάτω ιδιότητα: Το σύνορο διαχωρίζει τον γράφο του χώρου καταστάσεων σε μια εξερευνημένη περιοχή και σε μια ανεξερεύνητη περιοχή. Κάθε μονοπάτι από την αρχική κατάσταση σε μια ανεξερεύνητη κατάσταση περνάει υποχρεωτικά από ένα κόμβο του συνόρου. ΥΣ02 Τεχνητή Νοημοσύνη 14

15 Παράδειγμα ΥΣ02 Τεχνητή Νοημοσύνη 15

16 Υλοποίηση του GRAPH-SEARCH Για κάθε κόμβο n του δένδρου αναζήτησης, θα έχουμε μια δομή που περιέχει τα ακόλουθα πεδία: n.state: η κατάσταση του κόμβου. n.parent: ο κόμβος του δένδρου αναζήτησης που παρήγαγε τον n. n.action: η ενέργεια που εφαρμόστηκε στον πατέρα του κόμβου για να δημιουργηθεί ο n. n.path-cost: το κόστος του μονοπατιού από την αρχική κατάσταση μέχρι τον n. Το μονοπάτι ορίζεται από τους δείκτες στον πατέρα κάθε κόμβου. ΥΣ02 Τεχνητή Νοημοσύνη 16

17 Η Δομή Δεδομένων για Ένα Κόμβο ΥΣ02 Τεχνητή Νοημοσύνη 17

18 Σχόλια Παρατηρήστε ότι οι δείκτες PARENT σχηματίζουν τη δομή του δένδρου. Οι ίδιοι δείκτες μας επιτρέπουν να κατασκευάσουμε τη λύση όταν βρούμε ένα κόμβο στόχου. Χρησιμοποιούμε τη συνάρτηση SOLUTION η οποία επιστρέφει μια ακολουθία ενεργειών ακολουθώντας δείκτες PARENT πίσω στην ρίζα. ΥΣ02 Τεχνητή Νοημοσύνη 18

19 Υλοποίηση του GRAPH-SEARCH Η παρακάτω συνάρτηση παίρνει ένα κόμβο-πατέρα και μια ενέργεια και δημιουργεί τον αντίστοιχο κόμβο-παιδί: function CHILD-NODE(problem, parent, action) returns a node return a node with STATE = problem.result(parent.state, action) PARENT = parent ACTION = action PATH-COST = parent.path-cost + problem.step-cost(parent.state, action) ΥΣ02 Τεχνητή Νοημοσύνη 19

20 Η Δομή Δεδομένων για την Ουρά Όπως και στην περίπτωση του TREE-SEARCH, θα έχουμε μια ουρά (queue) η οποία υλοποιεί το σύνορο. Οι λειτουργίες της ουράς είναι οι παρακάτω: EMPTY?(queue): ελέγχει αν η ουρά queue είναι άδεια. POP(queue): αφαιρεί το πρώτο στοιχείο από την ουρά queue και το επιστρέφει. INSERT(element, queue): εισάγει το στοιχείο element στην ουρά queue και επιστρέφει την ουρά που προκύπτει. ΥΣ02 Τεχνητή Νοημοσύνη 20

21 Τύποι Ουράς Ουρά FIFO (first-in first-out). Εξάγει το στοιχείο της ουράς που εισήχθηκε πρώτο (ουρά αναμονής). Ουρά LIFO (last-in first-out). Εξάγει το στοιχείο της ουράς που εισήχθηκε τελευταίο. Λέγεται επίσης στοίβα (stack). Ουρά προτεραιότητας (priority queue). Εξάγει το στοιχείο της ουράς που έχει τη μεγαλύτερη προτεραιότητα με βάση μια συνάρτηση διάταξης των στοιχείων. ΥΣ02 Τεχνητή Νοημοσύνη 21

22 Ερώτηση Πως υλοποιούμε μια ουρά αναμονής, μια στοίβα ή μια ουρά προτεραιότητας σε Python; ΥΣ02 Τεχνητή Νοημοσύνη 22

23 Απάντηση Εύκολα! (φροντιστήριο και Εργασία 0). ΥΣ02 Τεχνητή Νοημοσύνη 23

24 Ερώτηση Πως υλοποιούμε το εξερευνημένο σύνολο στην Python; ΥΣ02 Τεχνητή Νοημοσύνη 24

25 Απάντηση Το εξερευνημένο σύνολο μπορεί να υλοποιηθεί με τη δομή σύνολο (set) της Python. Τα σύνολα υλοποιούνται εσωτερικά με πίνακες κατακερματισμού (hash tables) οπότε το να βρούμε αν μια κατάσταση είναι στοιχείο ενός συνόλου γίνεται πολύ αποδοτικά (χρονική πολυπλοκότητα Ο(1)). ΥΣ02 Τεχνητή Νοημοσύνη 25

26 Αλγόριθμοι Ας δούμε τώρα πως μπορούμε να υλοποιήσουμε τους παρακάτω αλγόριθμους στην περίπτωση που ο χώρος καταστάσεων είναι γράφος: Αναζήτηση πρώτα κατά πλάτος (breadth-first search) Αναζήτηση ομοιόμορφου κόστους (uniform cost search) Αναζήτηση πρώτα κατά βάθος (depth-first search) Οι υπόλοιποι αλγόριθμοι που μελετήσαμε για την περίπτωση της αναζήτησης σε δένδρο υλοποιούνται με παρόμοιο τρόπο. ΥΣ02 Τεχνητή Νοημοσύνη 26

27 Αναζήτηση Πρώτα κατά Πλάτος function BREADTH-FIRST-SEARCH(problem) returns a solution or failure node a node with STATE=problem.INITIAL-STATE, PATH-COST=0 if problem.goal-test(node.state) then return SOLUTION(node) frontier a FIFO queue with node as the only element explored an empty set loop do if EMPTY?(frontier) then return failure node POP(frontier) add node.state to explored for each action in problem.actions(node.state) do child CHILD-NODE(problem, node, action) if child.state is not in explored or frontier then if problem.goal-test(child.state) then return SOLUTION(child) frontier INSERT(child, frontier) ΥΣ02 Τεχνητή Νοημοσύνη 27

28 Αναζήτηση Πρώτα κατά Πλάτος Ο προηγούμενος αλγόριθμος διαφέρει από τους γενικούς αλγόριθμους TREE-SEARCH και GRAPH-SEARCH επειδή ελέγχει αν ένας κόμβος είναι κόμβος στόχου όταν ο κόμβος παράγεται και όχι όταν ο κόμβος αφαιρείται από το σύνορο. Όπως και ο GRAPH-SEARCH, ο αλγόριθμος απορρίπτει κάθε μονοπάτι που οδηγεί σε μία κατάσταση που είναι ήδη στο εξερευνημένο σύνολο ή στο σύνορο. Κάθε τέτοιο μονοπάτι έχει κόστος τουλάχιστον όσο κάποιο μονοπάτι που έχουμε βρει ήδη, άρα μπορούμε να το απορρίψουμε. ΥΣ02 Τεχνητή Νοημοσύνη 28

29 Ερώτηση Ποια είναι η χρονική πολυπλοκότητα του αλγόριθμου BREADTH-FIRST-SEARCH τώρα; ΥΣ02 Τεχνητή Νοημοσύνη 29

30 Χρονική Πολυπλοκότητα Υποθέστε ότι κάνουμε αναζήτηση σε ένα ομοιόμορφο δένδρο όπου κάθε κατάσταση έχει b διάδοχες καταστάσεις (b είναι ο παράγοντας διακλάδωσης). Η ρίζα του δένδρου παράγει b κόμβους στο πρώτο επίπεδο, καθένας από τους οποίους παράγει b κόμβους στο δεύτερο επίπεδο. Άρα στο δεύτερο επίπεδο έχουμε συνολικά b 2 κόμβους. Με όμοιο τρόπο βλέπουμε ότι στο 3 ο επίπεδο έχουμε συνολικά b 3 κόμβους κ.ο.κ. Τώρα υποθέστε ότι η λύση βρίσκεται σε βάθος d. Στην χειρότερη περίπτωση, θα είναι ο τελευταίος κόμβος που παράγεται σε αυτό το επίπεδο. Άρα ο συνολικός αριθμός κόμβων που παράγεται στη χειρότερη περίπτωση είναι 1 + b + b 2 + b b d = O(b d ) Άρα η πολυπλοκότητα χρόνου στην χειρότερη περίπτωση είναι Ο(b d ). ΥΣ02 Τεχνητή Νοημοσύνη 30

31 Χρονική Πολυπλοκότητα Έχουμε δει ήδη ότι, αν ο αλγόριθμος ελέγχει ότι ένας κόμβος είναι κόμβος στόχου όταν ο κόμβος αυτός βγαίνει από το σύνορο και όχι όταν δημιουργείται, τότε η πολυπλοκότητα χρόνου είναι O b d+1. Άρα ο προηγούμενος αλγόριθμος είναι πιο αποδοτικός. ΥΣ02 Τεχνητή Νοημοσύνη 31

32 Χωρική Πολυπλοκότητα Με όμοιο τρόπο μπορούμε να δούμε ότι το εξερευνημένο σύνολο και το σύνορο θα έχουν Ο(b d ) κόμβους. Άρα η πολυπλοκότητα χώρου είναι επίσης Ο b d. ΥΣ02 Τεχνητή Νοημοσύνη 32

33 Άλλες Ιδιότητες Ο αλγόριθμος αναζήτησης πρώτα κατά πλάτος στην περίπτωση που ο χώρος αναζήτησης είναι γράφος, έχει τις ίδιες καλές ιδιότητες που είδαμε στην περίπτωση του Tree-Search: Είναι πλήρης (με την υπόθεση ότι ο παράγοντας διακλάδωσης b είναι πεπερασμένος). Είναι βέλτιστος (με την υπόθεση ότι όλες οι ενέργειες έχουν το ίδιο μη αρνητικό κόστος). ΥΣ02 Τεχνητή Νοημοσύνη 33

34 Αναζήτηση Ομοιόμορφου Κόστους Όταν όλα τα κόστη βήματος είναι σταθερά, ο αλγόριθμος αναζήτησης πρώτα κατά πλάτος είναι βέλτιστος και βρίσκει την πιο αβαθή λύση. Μπορούμε εύκολα να επεκτείνουμε αυτό τον αλγόριθμο στην περίπτωση που έχουμε οποιαδήποτε συνάρτηση κόστους βήματος. Αντί να επεκτείνει τον πιο αβαθή κόμβο, ο αλγόριθμος αναζήτησης ομοιόμορφου κόστους επεκτείνει τον κόμβο n με το μικρότερο κόστος μονοπατιού g(n). Στην περίπτωση αυτή το σύνορο υλοποιείται σαν μια ουρά προτεραιότητας με συνάρτηση g. ΥΣ02 Τεχνητή Νοημοσύνη 34

35 Αναζήτηση Ομοιόμορφου Κόστους function UNIFORM-COST-SEARCH(problem) returns a solution or failure node a node with STATE=problem.INITIAL-STATE, PATH-COST=0 frontier a priority queue ordered by PATH-COST, with node as the only element explored an empty set loop do if EMPTY?(frontier) then return failure node POP(frontier) if problem.goal-test(node.state) then return SOLUTION(node) add node.state to explored for each action in problem.actions(node.state) do child CHILD-NODE(problem, node, action) if child.state is not in explored or frontier then frontier INSERT(child, frontier) else if child.state is in frontier with higher PATH-COST then replace that frontier node with child ΥΣ02 Τεχνητή Νοημοσύνη 35

36 Αναζήτηση Ομοιόμορφου Κόστους Παρατηρήστε τις διαφορές με τον αλγόριθμο αναζήτησης πρώτα κατά πλάτος: Χρησιμοποιείται ουρά προτεραιότητας με συνάρτηση g αντί για ουρά αναμονής. Ο έλεγχος στόχου εφαρμόζεται όταν ένας κόμβος επιλέγεται από το σύνορο για να επεκταθεί και όχι όταν δημιουργείται (όπως και στον γενικό αλγόριθμο GRAPH-SEARCH). Ελέγχουμε αν έχουμε βρει ένα καλύτερο μονοπάτι προς ένα κόμβο που ήδη βρίσκεται στο σύνορο. Όλες αυτές οι διαφορές είναι απαραίτητες όπως φαίνεται στο παρακάτω παράδειγμα. ΥΣ02 Τεχνητή Νοημοσύνη 36

37 Παράδειγμα ΥΣ02 Τεχνητή Νοημοσύνη 37

38 Ιδιότητες Ο αλγόριθμος αναζήτησης ομοιόμορφου κόστους που παρουσιάσαμε έχει τις ίδιες ιδιότητες με την περίπτωση του TREE-SEARCH (πληρότητα, βέλτιστη συμπεριφορά, υπολογιστική πολυπλοκότητα χώρου και χρόνου). ΥΣ02 Τεχνητή Νοημοσύνη 38

39 Ερώτηση Πως υλοποιούμε αποδοτικά τη δομή για το σύνορο σε Python για την περίπτωση της αναζήτησης ομοιόμορφου κόστους; ΥΣ02 Τεχνητή Νοημοσύνη 39

40 Υλοποίηση Η δομή δεδομένων για το σύνορο πρέπει να υποστηρίζει αποδοτικά τις λειτουργίες της ουράς προτεραιότητας και την λειτουργία του ελέγχου αν ένα στοιχείο ανήκει στο σύνορο. Μια τέτοια δομή είναι η υλοποίηση της ουράς προτεραιότητας με σωρό (heap). Για την δομή αυτή έχουμε τις εξής πολυπλοκότητες (n είναι ο αριθμός των στοιχείων της ουράς): Εισαγωγή στοιχείου: Ο(log n) Εξαγωγή στοιχείου με τη μεγαλύτερη προτεραιότητα: Ο(log n) Έλεγχος αν ένα στοιχείο ανήκει στην ουρά: O(n). Αυτή η πολυπλοκότητα μπορεί να γίνει O(1) αν κρατάμε παράλληλα ένα πίνακα κατακερματισμού που χρησιμοποιείται μόνο για αυτό τον έλεγχο. Έτσι όμως ξοδεύουμε διπλό χώρο. ΥΣ02 Τεχνητή Νοημοσύνη 40

41 Υλοποίηση σε Python Μέρος της Εργασίας 0. ΥΣ02 Τεχνητή Νοημοσύνη 41

42 Αναζήτηση Πρώτα Κατά Βάθος Ο αλγόριθμος αναζήτησης πρώτα κατά βάθος μπορεί να υλοποιηθεί όπως ο γενικός αλγόριθμος GRAPH-SEARCH χρησιμοποιώντας μια στοίβα για την υλοποίηση του συνόρου. ΥΣ02 Τεχνητή Νοημοσύνη 42

43 Πληρότητα Όταν ο αλγόριθμος αναζήτησης πρώτα κατά βάθος υλοποιείται ώστε να ελέγχουμε ότι κάθε νέα κατάσταση δεν περιέχεται στο εξερευνημένο σύνολο, τότε, για πεπερασμένους χώρους καταστάσεων, είναι πλήρης σε αντίθεση με την υλοποίηση με TREE-SEARCH. Η χρήση του εξερευνημένου συνόλου όμως αλλάζει την γραμμική πολυπλοκότητα χώρου του αλγόριθμου. Μια καλύτερη ιδέα (που δεν αλλάζει την πολυπλοκότητα χώρου) είναι να ελέγχουμε αν κάθε νέα κατάσταση δεν περιέχεται στο σύνολο των καταστάσεων που έχουμε συναντήσει στο μονοπάτι από τη ρίζα μέχρι τον τωρινό κόμβο. Κάθε κατάσταση που έχει επεκταθεί μπορεί να βγαίνει από τη μνήμη εφόσον όλοι οι απόγονοι της έχουν εξερευνηθεί πλήρως. Παράδειγμα: στην επόμενη διαφάνεια, μόνο οι γκρίζοι κόμβοι χρειάζεται να παραμένουν στη μνήμη. ΥΣ02 Τεχνητή Νοημοσύνη 43

44 Παράδειγμα ΥΣ02 Τεχνητή Νοημοσύνη 44

45 Πληρότητα Για άπειρους χώρους καταστάσεων και οι δύο εκδόσεις είναι μη πλήρεις (όταν συναντήσουν ένα άπειρο μονοπάτι που δεν περιέχει κατάσταση στόχου). ΥΣ02 Τεχνητή Νοημοσύνη 45

46 Παράδειγμα Το παρακάτω πρόβλημα αναζήτησης έχει άπειρο χώρο καταστάσεων: Καταστάσεις: Θετικοί και αρνητικοί ακέραιοι. Αρχική κατάσταση: Ο αριθμός 0. Ενέργειες: Προσθέστε 1 ή αφαιρέστε 1 από τον ακέραιο στο οποίο βρισκόμαστε. Κατάσταση στόχου: Ένας δοσμένος ακέραιος. ΥΣ02 Τεχνητή Νοημοσύνη 46

47 Παράδειγμα Ο ακέραιος 5 προκύπτει ως εξής: (((( ) + 1) + 1) + 1) Άπειρο μονοπάτι προκύπτει αν για την παραπάνω κατάσταση στόχου επιλέγουμε να χρησιμοποιούμε πάντα πρώτη την πράξη της αφαίρεσης. ΥΣ02 Τεχνητή Νοημοσύνη 47

48 Παράδειγμα Το παρακάτω πρόβλημα αναζήτησης που προτάθηκε από τον Knuth έχει άπειρο χώρο καταστάσεων: Καταστάσεις: Θετικοί ακέραιοι. Αρχική κατάσταση: Ο αριθμός 4. Ενέργειες: Εφαρμόστε τις πράξεις παραγοντικό (για ακεραίους μόνο), τετραγωνική ρίζα ή κατώφλι. Κατάσταση στόχου: Ένας δοσμένος ακέραιος. ΥΣ02 Τεχνητή Νοημοσύνη 48

49 Παράδειγμα Μπορούμε να φτάσουμε στην κατάσταση στόχου 5 ως εξής: 4!! = 5 Άπειρο μονοπάτι προκύπτει αν για την παραπάνω κατάσταση στόχου επιλέγουμε να χρησιμοποιούμε πάντα πρώτη την πράξη του παραγοντικού. ΥΣ02 Τεχνητή Νοημοσύνη 49

50 Άπειροι Χώροι Καταστάσεων Άπειροι χώροι καταστάσεων συναντιούνται συχνά σε προβλήματα που αφορούν μαθηματικές εκφράσεις, αποδείξεις, κυκλώματα, προγράμματα και άλλα αντικείμενα που ορίζονται αναδρομικά. ΥΣ02 Τεχνητή Νοημοσύνη 50

51 Βέλτιστη Συμπεριφορά Και στις δύο περιπτώσεις (πεπερασμένος ή άπειρος χώρος καταστάσεων), η αναζήτηση πρώτα κατά βάθος δεν είναι βέλτιστη. Παράδειγμα: στην επόμενη διαφάνεια αν οι καταστάσεις J και C είναι καταστάσεις στόχου. Ο αλγόριθμος θα επιστρέψει το μονοπάτι προς τη μη βέλτιστη κατάσταση J. ΥΣ02 Τεχνητή Νοημοσύνη 51

52 Παράδειγμα ΥΣ02 Τεχνητή Νοημοσύνη 52

53 Πολυπλοκότητα Η χρονική πολυπλοκότητα του αλγόριθμου αναζήτησης πρώτα κατά βάθος στην περίπτωση της αναζήτησης σε γράφο είναι φραγμένη από το μέγεθος του χώρου καταστάσεων (που μπορεί να είναι μικρότερο από το φράγμα O(b m ) που αποδείξαμε για την περίπτωση του TREE-SEARCH). Η χωρική πολυπλοκότητα είναι γραμμική όπως και για την περίπτωση του TREE-SEARCH. Η καλή πολυπλοκότητα χώρου της αναζήτησης πρώτα κατά πλάτος είναι υπεύθυνη για τη χρήση της σε πολλές περιοχές της Τεχνητής Νοημοσύνης π.χ., προβλήματα ικανοποίησης περιορισμών, λογικός προγραμματισμός, ικανοποιησιμότητα στη προτασιακή λογική κλπ. ΥΣ02 Τεχνητή Νοημοσύνη 53

54 Υλοποίηση Οι αλγόριθμοι που παρουσιάσαμε σε αυτές τις διαφάνειες είναι αυτοί που θα υλοποιήσετε στο Pacman project P1. ΥΣ02 Τεχνητή Νοημοσύνη 54

55 Μελέτη Βιβλίο ΑΙΜΑ, 3 η έκδοση (δεν υπάρχει μεταφρασμένο στα Ελληνικά). Κεφάλαιο 3 ΥΣ02 Τεχνητή Νοημοσύνη 55

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 2: Δένδρο αναζήτησης. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 2: Δένδρο αναζήτησης. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 2: Δένδρο αναζήτησης Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου

Διαβάστε περισσότερα

Αλγόριθμοι Τυφλής Αναζήτησης

Αλγόριθμοι Τυφλής Αναζήτησης Τεχνητή Νοημοσύνη 04 Αλγόριθμοι Τυφλής Αναζήτησης Αλγόριθμοι Τυφλής Αναζήτησης (Blind Search Algorithms) Εφαρμόζονται σε προβλήματα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει αξιολόγηση των καταστάσεων.

Διαβάστε περισσότερα

Ε ανάληψη. Καταβολές. Ιστορική αναδροµή. Πράκτορες. Περιβάλλοντα. συνεισφορά άλλων επιστηµών στην ΤΝ. 1956 σήµερα

Ε ανάληψη. Καταβολές. Ιστορική αναδροµή. Πράκτορες. Περιβάλλοντα. συνεισφορά άλλων επιστηµών στην ΤΝ. 1956 σήµερα ΠΛΗ 405 Τεχνητή Νοηµοσύνη Α ληροφόρητη Αναζήτηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Καταβολές συνεισφορά άλλων επιστηµών στην ΤΝ Ιστορική αναδροµή 1956

Διαβάστε περισσότερα

Ε ανάληψη. Ορισµοί της Τεχνητής Νοηµοσύνης (ΤΝ) Καταβολές. Ιστορική αναδροµή. Πράκτορες. Περιβάλλοντα. κριτήρια νοηµοσύνης

Ε ανάληψη. Ορισµοί της Τεχνητής Νοηµοσύνης (ΤΝ) Καταβολές. Ιστορική αναδροµή. Πράκτορες. Περιβάλλοντα. κριτήρια νοηµοσύνης ΠΛΗ 405 Τεχνητή Νοηµοσύνη Αναζήτηση Search Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Ορισµοί της Τεχνητής Νοηµοσύνης (ΤΝ) κριτήρια νοηµοσύνης Καταβολές συνεισφορά

Διαβάστε περισσότερα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Τεχνητή Νοημοσύνη. Ενότητα 2: Αναζήτηση (Search)

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Τεχνητή Νοημοσύνη. Ενότητα 2: Αναζήτηση (Search) Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Τεχνητή Νοημοσύνη Ενότητα 2: Αναζήτηση (Search) Αν. καθηγητής Στεργίου Κωνσταντίνος kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

Διαβάστε περισσότερα

Επίλυση Προβλημάτων. Αποτελεί ένα από τα βασικά χαρακτηριστικά γνωρίσματα της νοημοσύνης.

Επίλυση Προβλημάτων. Αποτελεί ένα από τα βασικά χαρακτηριστικά γνωρίσματα της νοημοσύνης. Επίλυση Προβλημάτων Αποτελεί ένα από τα βασικά χαρακτηριστικά γνωρίσματα της νοημοσύνης. Τεχνητή Νοημοσύνη = Αναπαράσταση Γνώσης + Αλγόριθμοι Αναζήτησης Κατηγορίες Προβλημάτων Aναζήτησης Πραγματικά και

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

Διαβάστε περισσότερα

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

Διαβάστε περισσότερα

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Κεφάλαιο 3 Αλγόριθµοι Τυφλής Αναζήτησης Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Αλγόριθµοι Τυφλής Αναζήτησης Οι αλγόριθµοι τυφλής αναζήτησης (blind

Διαβάστε περισσότερα

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

6η Διάλεξη Διάσχιση Γράφων και Δέντρων ΘΕΩΡΙΑ ΓΡΑΦΩΝ 6 η Διάλεξη Διάσχιση Γράφων και Δέντρων Αλγόριθμος αναζήτησης σε Βαθος Αλγόριθμος αναζήτησης κατά Πλάτος Αλγόριθμοι για Δένδρα Εύρεση ελαχίστων Γεννητορικών (Επικαλύπτοντα) Δένδρων Διάσχιση

Διαβάστε περισσότερα

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο 2014-2015 Πρώτη Σειρά Ασκήσεων (Υποχρεωτική, 25% του συνολικού βαθμού στο μάθημα) Ημερομηνία Ανακοίνωσης: 22/10/2014 Ημερομηνία Παράδοσης: Μέχρι 14/11/2014 23:59

Διαβάστε περισσότερα

Επίλυση προβληµάτων µε αναζήτηση

Επίλυση προβληµάτων µε αναζήτηση Επίλυση προβληµάτων µε αναζήτηση Πράκτορες επίλυσης προβληµάτων (1/2) ιατύπωση στόχου: Σύνολο καταστάσεων του κόσµου ιατύπωση προβλήµατος Επιλογή επιπέδου λεπτοµέρειας (αφαίρεση) 3-2 Πράκτορες επίλυσης

Διαβάστε περισσότερα

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ισαγωγή στην πιστήμη των Υπολογιστών 2015-16 λγόριθμοι και ομές εδομένων (IΙ) (γράφοι και δένδρα) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης φηρημένες

Διαβάστε περισσότερα

ΠΛΗ 405 Τεχνητή Νοηµοσύνη

ΠΛΗ 405 Τεχνητή Νοηµοσύνη ΠΛΗ 405 Τεχνητή Νοηµοσύνη Πληροφορηµένη Αναζήτηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Πράκτορας ε ίλυσης ροβληµάτων πράκτορας µε στόχο Αναζήτηση διατύπωση

Διαβάστε περισσότερα

Θεωρία Λήψης Αποφάσεων

Θεωρία Λήψης Αποφάσεων Θεωρία Λήψης Αποφάσεων Ενότητα 4: Επίλυση προβλημάτων με αναζήτηση Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.)

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 3η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 3η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 3η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 14 Στοίβες 1 / 14 Στοίβες Η στοίβα είναι μια ειδική περίπτωση γραμμικής λίστας στην οποία οι εισαγωγές

Διαβάστε περισσότερα

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη

Διαβάστε περισσότερα

Αντισταθμιστική ανάλυση

Αντισταθμιστική ανάλυση Αντισταθμιστική ανάλυση Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή δεδομένων Δ : Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Παράδειγμα: Θυμηθείτε το πρόβλημα

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

Διαβάστε περισσότερα

Επίλυση Προβλημάτων 1

Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων Περιγραφή Προβλημάτων Αλγόριθμοι αναζήτησης Αλγόριθμοι τυφλής αναζήτησης Αναζήτηση πρώτα σε βάθος Αναζήτηση πρώτα σε πλάτος (ΒFS) Αλγόριθμοι ευρετικής αναζήτησης

Διαβάστε περισσότερα

Πληρότητα της μεθόδου επίλυσης

Πληρότητα της μεθόδου επίλυσης Πληρότητα της μεθόδου επίλυσης Λήμμα: Αν κάθε μέλος ενός συνόλου όρων περιέχει ένα αρνητικό γράμμα, τότε το σύνολο είναι ικανοποιήσιμο. Άρα για να είναι μη-ικανοποιήσιμο, θα πρέπει να περιέχει τουλάχιστον

Διαβάστε περισσότερα

ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (pat

ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (pat ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (path) o Πρόγονος απόγονος (ancestor, descendant)

Διαβάστε περισσότερα

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035). Βασικές Δοµές Δεδοµένων Σύντοµη επανάληψη (ΕΠΛ 035). Περίληψη Γραµµικές Δοµές Δεδοµένων Πίνακες Λίστες Στοίβες Ουρές Γράφοι Δέντρα Γραµµικές Δοµές Πίνακας (array) A[0] A[1] A[2] A[ ] A[n-1] Προκαθορισµένη

Διαβάστε περισσότερα

Αλγόριθµοι Τύπου Μείωσης Προβλήµατος

Αλγόριθµοι Τύπου Μείωσης Προβλήµατος Αλγόριθµοι Τύπου Μείωσης Προβλήµατος Περίληψη Αλγόριθµοι Τύπου Μείωσης Προβλήµατος ( Decrease and Conquer ) Μείωση κατά µια σταθερά (decrease by a constant) Μείωση κατά ένα ποσοστό (decrease by a constant

Διαβάστε περισσότερα

Επίλυση προβληµάτων. Αλγόριθµοι Αναζήτησης

Επίλυση προβληµάτων. Αλγόριθµοι Αναζήτησης Επίλυση προβληµάτων! Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης Παιχνίδια δύο αντιπάλων Προβλήµατα ικανοποίησης περιορισµών Γενικά " Τεχνητή

Διαβάστε περισσότερα

ιαφάνειες παρουσίασης #11

ιαφάνειες παρουσίασης #11 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

Διαβάστε περισσότερα

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά ΕΠΛ231 Δομές Δεδομένων

Διαβάστε περισσότερα

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε μία αναδρομική συνάρτηση που θα παίρνει ως παράμετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθμό του

Διαβάστε περισσότερα

Αναζήτηση (Search) Τµήµα Ψηφιακών Συστηµάτων Πανεπιστήµιο Πειραιώς

Αναζήτηση (Search) Τµήµα Ψηφιακών Συστηµάτων Πανεπιστήµιο Πειραιώς Αναζήτηση (Search) 1 Αλγόριθµοι και Πολυπλοκότητα n Ας υποθέσουµε ότι έχουµε δύο διαφορετικούς αλγόριθµους για την επίλυση ενός προβλήµατος. Πως θα βρούµε ποιος είναι ο καλύτερος? g Ποιος τρέχει πιο γρήγορα?

Διαβάστε περισσότερα

Θεωρία Λήψης Αποφάσεων

Θεωρία Λήψης Αποφάσεων Θεωρία Λήψης Αποφάσεων Ενότητα 5: Πληροφορημένη Αναζήτηση και Εξερεύνηση Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.)

Διαβάστε περισσότερα

Alternative to Balanced Trees, Comms of the ACM, 33(6), June 1990,

Alternative to Balanced Trees, Comms of the ACM, 33(6), June 1990, ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Πληροφορικής & Τηλεπικοινωνιών Μια σημείωση από τον Α. Δελή για το άρθρο: W. Pugh, Skip Lists: A Probabilistic Alternative to Balanced Trees, Comms of the ACM, 33(), June 10,

Διαβάστε περισσότερα

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 3: Αλγόριθμοι πληροφορημένης αναζήτησης. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 3: Αλγόριθμοι πληροφορημένης αναζήτησης. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 3: Αλγόριθμοι πληροφορημένης αναζήτησης Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

Στοίβες - Ουρές. Στοίβα (stack) Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής

Στοίβες - Ουρές. Στοίβα (stack) Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής Στοίβες - Ουρές Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής οµές εδοµένων 1 Στοίβα (stack) οµή τύπουlifo: Last In - First Out (τελευταία εισαγωγή πρώτη εξαγωγή) Περιορισµένος

Διαβάστε περισσότερα

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ Περιεχόμενα Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23 Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ 1. Επαναληπτικοί αλγόριθμοι: Μέτρα προόδου και αναλλοίωτες συνθήκες.....................................................29

Διαβάστε περισσότερα

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1 Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Τεχνητή Νοημοσύνη, 2016 17 Διδάσκων: Ι. Ανδρουτσόπουλος Ασκήσεις μελέτης της 4 ης διάλεξης 4.1. (α) Αποδείξτε ότι αν η h είναι συνεπής, τότε h(n

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 6η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 6η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 6η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

Διαβάστε περισσότερα

Βασικές Έννοιες Δοµών Δεδοµένων

Βασικές Έννοιες Δοµών Δεδοµένων Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες

Διαβάστε περισσότερα

(elementary graph algorithms)

(elementary graph algorithms) (elementary graph algorithms) Παύλος Εφραιμίδης περιεχόμενα αναπαραστάσεις οριζόντια διερεύνηση καθοδική διερεύνηση αναπαράσταση δύο καθιερωμένοι τρόποι: πίνακας γειτνίασης συλλογή από καταλόγους γειτνίασης

Διαβάστε περισσότερα

Στοίβες με Δυναμική Δέσμευση Μνήμης

Στοίβες με Δυναμική Δέσμευση Μνήμης ΕΠΛ 231 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ 10/02/10 Παύλος Αντωνίου Στοίβες με Δυναμική Δέσμευση Μνήμης Στοίβα: Στοίβα είναι μια λίστα που έχει ένα επιπλέον περιορισμό. Ο περιορισμός είναι ότι οι εισαγωγές

Διαβάστε περισσότερα

Κεφάλαιο 3. Γραφήματα. v1.3 ( ) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 3. Γραφήματα. v1.3 ( ) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 3 Γραφήματα v1.3 (2014-01-30) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 3.1 Βασικοί Ορισμοί και Εφαρμογές γραφήματα γράφημα G: ένας τρόπος κωδικοποίησης των σχέσεων

Διαβάστε περισσότερα

ΠΛΗ 405 Τεχνητή Νοηµοσύνη

ΠΛΗ 405 Τεχνητή Νοηµοσύνη ΠΛΗ 405 Τεχνητή Νοηµοσύνη Σύγχρονοι Αλγόριθµοι Σχεδιασµού Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Σχεδιασµός το πρόβληµα του σχεδιασµού γλώσσα αναπαράστασης

Διαβάστε περισσότερα

Υλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Υλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Υλοποίηση Λιστών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμές Απλά και Διπλά Συνδεδεμένες Λίστες Κυκλικές Απλά και Διπλά Συνδεδεμένες Λίστες Τεχνικές Μείωσης Μνήμης ΕΠΛ 231 Δομές

Διαβάστε περισσότερα

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00 Χρήστος. Ζαρολιάγκης Τεχνολογίες Υλοποίησης Αλγορίθµων : Άσκηση 1 1 Ασκηση 1 [16.03.2016] Παράδοση : Τετάρτη 13.04.2016, 13:00 Η παρούσα άσκηση αφορά στον έλεγχο διµερότητας ενός γραφήµατος. Σκοπός της

Διαβάστε περισσότερα

Αναζήτηση στους γράφους. - Αναζήτηση η κατά βάθος Συνεκτικές Συνιστώσες - Αλγόριθμος εύρεσης συνεκτικών συνιστωσών

Αναζήτηση στους γράφους. - Αναζήτηση η κατά βάθος Συνεκτικές Συνιστώσες - Αλγόριθμος εύρεσης συνεκτικών συνιστωσών Αναζήτηση στους γράφους Βασικός αλγόριθμος λό - Αναζήτηση κατά πλάτος - Αναζήτηση η κατά βάθος Συνεκτικές Συνιστώσες - Αλγόριθμος εύρεσης συνεκτικών συνιστωσών Διάσχιση (αναζήτηση ) στους γράφους Φεύγοντας

Διαβάστε περισσότερα

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή

Διαβάστε περισσότερα

Τυπικός ορισμός και επίλυση προβλημάτων με την χρήση του search.py (Ιεραπόστολοι & Κανίβαλοι) Γαρμπής Γιώργος

Τυπικός ορισμός και επίλυση προβλημάτων με την χρήση του search.py (Ιεραπόστολοι & Κανίβαλοι) Γαρμπής Γιώργος Τυπικός ορισμός και επίλυση προβλημάτων με την χρήση του search.py (Ιεραπόστολοι & Κανίβαλοι) Γαρμπής Γιώργος ggarbis@di.uoa.gr 21 Νοεμβρίου 2011 Πως ορίζουμε τυπικά ένα πρόβλημα; Αρχική Κατάσταση: Από

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Δέντρα Αναζήτησης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Αναζήτηση Θέλουμε να διατηρήσουμε αντικείμενα με κλειδιά και να μπορούμε εκτός από

Διαβάστε περισσότερα

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Ενότητα 9 (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή ισχύει ότι S i S j =, για κάθε i,j µε i j και S 1 S k = U. Λειτουργίες q MakeSet(X): επιστρέφει

Διαβάστε περισσότερα

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην άδεια χρήσης Creative Commons και

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη Ι. Ενότητα 3: Επίλυση Προβλημάτων με Αναζήτηση

Τεχνητή Νοημοσύνη Ι. Ενότητα 3: Επίλυση Προβλημάτων με Αναζήτηση Τεχνητή Νοημοσύνη Ι Ενότητα 3: Επίλυση Προβλημάτων με Αναζήτηση Μουστάκας Κωνσταντίνος Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Επίλυση προβλημάτων με

Διαβάστε περισσότερα

Συλλογές, Στοίβες και Ουρές

Συλλογές, Στοίβες και Ουρές Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει

Διαβάστε περισσότερα

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο Ουρές προτεραιότητας Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο αριθμός είναι μεγάλος, τόσο οι πελάτες

Διαβάστε περισσότερα

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, ορισμοί, πράξεις και αναπαράσταση στη μνήμη ΔυαδικάΔένδρακαιΔυαδικάΔένδραΑναζήτησης ΕΠΛ 231 Δομές

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 8: C++ ΒΙΒΛΙΟΗΚΗ STL, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές

Διαβάστε περισσότερα

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα Αναζήτηση κατά βάθος (Depth-first search DFS) Αναζήτηση κατά πλάτος (Breadth-first search BFS) 2 Γράφημα (graph) Αναπαράσταση συνόλου

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη Ι. Εργαστηριακή Άσκηση 4-6. Σγάρμπας Κυριάκος. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστων

Τεχνητή Νοημοσύνη Ι. Εργαστηριακή Άσκηση 4-6. Σγάρμπας Κυριάκος. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστων Τεχνητή Νοημοσύνη Ι Εργαστηριακή Άσκηση 4-6 Σγάρμπας Κυριάκος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστων ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ

Διαβάστε περισσότερα

Διάλεξη 9: Αφηρημένοι Τύποι Δεδομένων. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 9: Αφηρημένοι Τύποι Δεδομένων. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 9: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) -Οι ΑΤΔ Στοίβα και Ουρά -Υλοποίηση των ΑΤΔ Στοίβα και Ουρά με Στατική

Διαβάστε περισσότερα

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Ορισμοί και πράξεις Αναπαράσταση δενδρικών δομών

Διαβάστε περισσότερα

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η διαδικασία PercolateDown, Δημιουργία Σωρού O Αλγόριθμος Ταξινόμησης HeapSort Υλοποίηση, Παραδείγματα

Διαβάστε περισσότερα

Αλγόριθμοι Γραφημάτων

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων 1. Διερεύνηση Πρώτα σε Βάθος (DFS) 2. Τοπολογική Ταξινόμηση Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Depth-First Search Πρώτα σε Βάθος διερεύνηση (Depth-First Search) είναι

Διαβάστε περισσότερα

ΤΕΧΝΗΤΉ ΝΟΗΜΟΣΎΝΗ ΚΑΙ ΕΜΠΕΙΡΑ ΣΥΣΤΉΜΑΤΑ

ΤΕΧΝΗΤΉ ΝΟΗΜΟΣΎΝΗ ΚΑΙ ΕΜΠΕΙΡΑ ΣΥΣΤΉΜΑΤΑ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «ΠΛΗΡΟΦΟΡΙΚΗ» ΤΕΧΝΗΤΉ ΝΟΗΜΟΣΎΝΗ ΚΑΙ ΕΜΠΕΙΡΑ ΣΥΣΤΉΜΑΤΑ Σημειώσεις Διδασκαλίας Θεμιστοκλής Ν. Παναγιωτόπουλος Καθηγητής Τμήμα Πληροφορικής Πανεπιστήμιο Πειραιά Δρ. Γ. Αναστασάκης

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND)

ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND) ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND) Ένωση Ξένων Συνόλων (Disjoint Sets with Union) S 1,, S k : ξένα υποσύνολα ενός συνόλου U δηλ., S i S j =, αν i j, και S 1 S k = U. Λειτουργίες που θέλουµε

Διαβάστε περισσότερα

Ενότητα 10 Γράφοι (ή Γραφήµατα)

Ενότητα 10 Γράφοι (ή Γραφήµατα) Ενότητα 10 Γράφοι (ή γραφήµατα) ΗΥ240 - Παναγιώτα Φατούρου 1 Γράφοι (ή Γραφήµατα) Ένας γράφος αποτελείται από ένα σύνολο από σηµεία (που λέγονται κόµβοι) και ένα σύνολο από γραµµές (που λέγονται ακµές)

Διαβάστε περισσότερα

Δομές Δεδομένων. Λουκάς Γεωργιάδης.

Δομές Δεδομένων. Λουκάς Γεωργιάδης. Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή Δεδομένων: Μέθοδος αποθήκευσης

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 17 Σωροί (Heaps) έκδοση 10 1 / 19 Heap Σωρός Ο σωρός είναι μια μερικά ταξινομημένη δομή δεδομένων που υποστηρίζει

Διαβάστε περισσότερα

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 14: Δέντρα IV B Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2 3 Δένδρα, Εισαγωγή και άλλες πράξεις Άλλα Δέντρα: Β δένδρα, Β+ δέντρα, R δέντρα Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ231

Διαβάστε περισσότερα

Επίλυση Προβλημάτων 1

Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων Περιγραφή Προβλημάτων Αλγόριθμοι αναζήτησης Αλγόριθμοι τυφλής αναζήτησης Αναζήτηση πρώτα σε βάθος Αναζήτηση πρώτα σε πλάτος (ΒFS) Αλγόριθμοι ευρετικής αναζήτησης

Διαβάστε περισσότερα

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή

Διαβάστε περισσότερα

(elementary graph algorithms)

(elementary graph algorithms) (elementary graph algorithms) Παύλος Εφραιμίδης 1 περιεχόμενα γραφήματα αναπαραστάσεις οριζόντια διερεύνηση καθοδική διερεύνηση 2 ΓΡΑΦΉΜΑΤΑ 3 αναπαράσταση δύο καθιερωμένοι τρόποι: πίνακας γειτνίασης συλλογή

Διαβάστε περισσότερα

Ενότητα 7 Ουρές Προτεραιότητας

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα Ουρές Προτεραιότητας ΗΥ4 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type). Έστω

Διαβάστε περισσότερα

Αλγόριθµοι Γραφηµάτων

Αλγόριθµοι Γραφηµάτων Αλγόριθµοι Γραφηµάτων Παύλος Σπυράκης Πανεπιστήµιο Πατρών Τοµέας Θεµελιώσεων και Εφαρµογών της Επιστήµης των Υπολογιστών Ερευνητικό Ακαδηµαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών Γραφήµατα Μοντελοποίηση

Διαβάστε περισσότερα

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007 Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007 Πρόβλημα 1 Το πρώτο πρόβλημα λύνεται με τη μέθοδο του Δυναμικού Προγραμματισμού. Για να το λύσουμε με Δυναμικό Προγραμματισμό

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 10β: Αλγόριθμοι Γραφημάτων-Γραφήματα- Αναπαράσταση Γραφημάτων- Διερεύνηση Πρώτα σε Πλάτος (BFS) Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το

Διαβάστε περισσότερα

Αλγόριθμοι Γραφημάτων

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων. Γραφήματα. Αναπαράσταση Γραφημάτων 3. Διερεύνηση σε Πρώτα σε Πλάτος (BFS) Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Γράφημα Ορισμός: Ένα γράφημα G είναι το διατεταγμένο ζεύγος

Διαβάστε περισσότερα

Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής και Τηλεπικοινωνιών. Παραλληλία. Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής και Τηλεπικοινωνιών. Παραλληλία. Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών Αλγόριθµοι-Προγραµµατισµός /2 Παραλληλία οµές εδοµένων Παραλληλία (Parallelism) Παραλληλία, ταυτοχρονισµός Παράλληλος αλγόριθµος - σειριακός αλγόριθµος Παράδειγµα : υπολογισµός κέρδους module σειριακό_κέρδος(λ_α,

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα

Διαβάστε περισσότερα

Μαθηματική Λογική και Λογικός Προγραμματισμός

Μαθηματική Λογική και Λογικός Προγραμματισμός Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων- Σημειώσεις έτους 2007-2008 Καθηγητής Γεώργιος Βούρος Μαθηματική Λογική και Λογικός Προγραμματισμός Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών

Διαβάστε περισσότερα

Αναζήτηση Κατά Πλάτος

Αναζήτηση Κατά Πλάτος Αναζήτηση Κατά Πλάτος ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Γραφήματα Μοντελοποίηση πολλών σημαντικών προβλημάτων (π.χ. δίκτυα συνεκτικότητα,

Διαβάστε περισσότερα

8.6 Κλάσεις και αντικείμενα 8.7 Δείκτες σε γλώσσα μηχανής

8.6 Κλάσεις και αντικείμενα 8.7 Δείκτες σε γλώσσα μηχανής ΚΕΦΑΛΑΙΟ 8: Αφαιρετικές έννοιες δεδομένων 8.1 Βασικές έννοιες δομών δεδομένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δομών δεδομένων 8.4 Μια σύντομη μελέτη περίπτωσης 8.4 Προσαρμοσμένοι τύποι δεδομένων 8.6

Διαβάστε περισσότερα

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που

Διαβάστε περισσότερα

AVL-trees C++ implementation

AVL-trees C++ implementation Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ AVL-trees C++ implementation Δομές Δεδομένων Μάριος Κενδέα 31 Μαρτίου 2015 kendea@ceid.upatras.gr Εισαγωγή (1/3) Δυαδικά Δένδρα Αναζήτησης:

Διαβάστε περισσότερα

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ Καθηγητής Πληροφορικής Απαγορεύεται η αναπαραγωγή των σημειώσεων χωρίς αναφορά στην πηγή Οι σημειώσεις, αν και βασίζονται στο διδακτικό πακέτο, αποτελούν προσωπική θεώρηση της σχετικής ύλης και όχι επίσημο

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 10γ: Αλγόριθμοι Γραφημάτων- Διερεύνηση Πρώτα σε Βάθος (DFS)- Τοπολογική Ταξινόμηση Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ουρά Προτεραιότητας (priority queue)

Ουρά Προτεραιότητας (priority queue) Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει τις ακόλουθες λειτουργίες PQinsert : εισαγωγή στοιχείου PQdelmax : επιστροφή του στοιχείου με το μεγαλύτερο* κλειδί και διαγραφή του

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Συμβολοσειρές. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Συμβολοσειρές. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Συμβολοσειρές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Συμβολοσειρές Συμβολοσειρές και προβλήματα που αφορούν συμβολοσειρές εμφανίζονται τόσο συχνά που

Διαβάστε περισσότερα

Αλγόριθµοι Οπισθοδρόµησης

Αλγόριθµοι Οπισθοδρόµησης Αλγόριθµοι Οπισθοδρόµησης Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Η οπισθοδρόµηση στο σχεδιασµό αλγορίθµων Το πρόβληµα των σταθερών γάµων και ο αλγόριθµος των Gale-Shapley Το πρόβληµα

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο

Διαβάστε περισσότερα

Φροντιστήριο 4 Σκελετοί Λύσεων

Φροντιστήριο 4 Σκελετοί Λύσεων Φροντιστήριο 4 Σκελετοί Λύσεων Άσκηση 1 Υποθέτουμε πως οι λίστες είναι υλοποιημένες χρησιμοποιώντας τις πιο κάτω δομές. typedef struct Node{ type data; struct node *next; node; node *top; list; Υλοποιούμε

Διαβάστε περισσότερα

ιαφάνειες παρουσίασης #6 (α)

ιαφάνειες παρουσίασης #6 (α) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ουρές Προτεραιότητας. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ουρές Προτεραιότητας. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Ουρές Προτεραιότητας Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρά Προτεραιότητας Το πρόβλημα Έχουμε αντικείμενα με κλειδιά και θέλουμε ανά πάσα στιγμή

Διαβάστε περισσότερα

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr.

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr. Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δοµών δεδοµένων 8.4 Μια σύντοµη µελέτη περίπτωσης 8.5 Προσαρµοσµένοι τύποι δεδοµένων 1 Βασικές δοµές

Διαβάστε περισσότερα

Μαθηματικά των Υπολογιστών και των Αποφάσεων Τεχνητή Νοημοσύνη 1η Σειρά Ασκήσεων

Μαθηματικά των Υπολογιστών και των Αποφάσεων Τεχνητή Νοημοσύνη 1η Σειρά Ασκήσεων Π Π Τ Μ Τ Μ Η/Υ Π Δ Μ Π Μαθηματικά των Υπολογιστών και των Αποφάσεων Τεχνητή Νοημοσύνη 1η Σειρά Ασκήσεων Φοιτητής: Ν. Χασιώτης (AM: 0000) Καθηγητής: Ι. Χατζηλυγερούδης 22 Οκτωβρίου 2010 ΑΣΚΗΣΗ 1. Δίνεται

Διαβάστε περισσότερα

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010 Κεφάλαιο 2 Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση., 2/05/200 Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Σωρός και Ταξινόµηση

Διαβάστε περισσότερα

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Αναζήτηση και Ταξινόµηση Χειµερινό Εξάµηνο 2014

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Αναζήτηση και Ταξινόµηση Χειµερινό Εξάµηνο 2014 ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Αναζήτηση και Ταξινόµηση Χειµερινό Εξάµηνο 2014 Αναζήτηση και Ταξινόµηση Βασικές λειτουργίες σε προγράµµατα Αναζήτηση (searching): Βρες ένα ζητούµενο στοιχείο σε µια

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 3 1. Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή 2. Δυναμικές είναι οι δομές που αποθηκεύονται σε συνεχόμενες θέσεις μνήμης 3. Ένας πίνακας

Διαβάστε περισσότερα

Δομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη

Δομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Επίλυση προβληµάτων Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης! Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης Παιχνίδια δύο αντιπάλων Προβλήµατα ικανοποίησης περιορισµών Αλγόριθµοι τυφλής

Διαβάστε περισσότερα