Αλγόριθµοι Brute-Force και Διεξοδική Αναζήτηση



Σχετικά έγγραφα
Αλγόριθµοι Divide-and- Conquer

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

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

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 3: Ωμή Βία. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Αλγοριθμικές Τεχνικές

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

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

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

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

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem

Αλγόριθμοι Ταξινόμησης Μέρος 1

Αλγόριθμοι και Πολυπλοκότητα

Παράλληλοι Αλγόριθμοι: Ανάλυση Εικόνας και Υπολογιστική Γεωμετρία. Πέτρος Ποτίκας CoReLab 4/5/2006

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

ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΑΠΟΙΚΙΑΣ ΜΥΡΜΗΓΚΙΩΝ ANT COLONY OPTIMIZATION METHODS

ΗΜΥ 325: Επαναληπτικές Μέθοδοι. Διδάσκων: Χρίστος Παναγιώτου

Construction heuristics

Αλγόριθµοι και Πολυπλοκότητα

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

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Δυναµικός Προγραµµατισµός (ΔΠ)

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης

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

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

Ανάλυση Αλγορίθµων. Σύντοµη επανάληψη (ΕΠΛ 035).

ΠΛΗ111. Ανοιξη Μάθηµα 9 ο. Ταξινόµηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Παναγιώτης Καρακώστας (mai1321) ΠΜΣ Εφαρμοσμένης Πληροφορικής Συστήματα Υπολογιστών Πανεπιστήμιο Μακεδονίας

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ

Διερεύνηση γραφήματος

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

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ

Προσεγγιστικοί Αλγόριθμοι

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

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

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

Εισαγωγή στον δομημένο προγραμματισμό

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

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

Αλγόριθµοι και Πολυπλοκότητα

Προγραμματισμός Ι (ΗΥ120)

Σχεδίαση και Ανάλυση Αλγορίθμων

Εργασία για το μάθημα «Γραμμικός και μη προγραμματισμός Βελτιστοποίηση»

Μοντελοποίηση προβληµάτων

Αναζήτηση και ταξινόμηση

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

Δένδρα επικάλυψης ελάχιστου κόστους και το πρόβλημα του πλανόδιου πωλητή (Traveling Salesman Problem: TSP)

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11

Προγραμματιστικές Τεχνικές

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

Θέματα Εφαρμογών Βάσεων Δεδομένων: Ιδιωτικότητα Δεδομένων

Union Find, Λεξικό. Δημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

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

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

2x 1 + x 2 x 3 + x 4 = 1. 3x 1 x 2 x 3 +2x 4 = 3 x 1 +2x 2 +6x 3 x 4 = 4

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Προγραμματισμός Ι (ΗΥ120)

Πρόβληµα (ADT) Λεξικού. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2

Εξωτερική Ταξινόμηση. Μ.Χατζόπουλος 1

Προσεγγιστικοί Αλγόριθμοι

Ταξινόμηση με συγχώνευση Merge Sort

Αλγόριθμοι ταξινόμησης

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1

Λεξικό, Union Find. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Εξωτερική Ταξινόμηση. Μ.Χατζόπουλος 1

Κλάσεις Πολυπλοκότητας

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Λεξικό, Union Find. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

4.4 Το πρόβλημα του ελάχιστου ζευγνύοντος δένδρου

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Σχεδίαση και Ανάλυση Αλγορίθμων

Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing)

Διαχείριση Εφοδιαστικής Αλυσίδας

Λεξικό, Union Find. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

Παραλλαγές του Προβλήματος Μεταφοράς Το Πρόβλημα Μεταφόρτωσης και το Πρόβλημα Αναθέσεων Γεωργία Φουτσιτζή ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

int Α[] = {4, 16, 22, 12, 9, 15, 10}; { 4, 9, 10, 12, 15, 16, 22 } Α[0]=4, Α[1]=9, Α[2]=10 { 4, 16,22, 12, 9, 15, 10} { 4, 12, 16, 22, 9, 15,16, 22 }

Αλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 4: Διαίρει και Βασίλευε. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

Θέματα Μεταγλωττιστών

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

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

Transcript:

Αλγόριθµοι Brute-Force και Διεξοδική Αναζήτηση

Περίληψη Αλγόριθµοι τύπου Brute-Force Παραδείγµατα Αναζήτησης Ταξινόµησης Πλησιέστερα σηµεία Convex hull Βελτιστοποίηση Knapsack problem Προβλήµατα Ανάθεσης (Assignment)

Αλγόριθµοι Brute-Force Σε αυτή την κατηγορία εµπίπτουν όλοι οι αλγόριθµοι οι οποίοι πηγάζουν απευθείας από τη διατύπωση του προβλήµατος και τον ορισµό των διαφόρων «εννοιών» που συνεπάγονται από τη φύση του προβλήµατος. Πλέον Γενική Μέθοδος: Τα πλείστα προβλήµατα µε λύση έχουν µια λύση που εµπίπτει σε αυτή την κατηγορία Μπορεί να είναι πολύ καλή και πρακτική µέθοδος για προβλήµατα που η είσοδος είναι µικρού ή µεσαίου µεγέθους. Συνήθως η λύση που προκύπτει χρησιµοποιώντας αυτή τη µέθοδο δεν είναι αποδοτική

Προβλήµατα Αναζήτησης Είσοδος: Λίστα A[0,,n-1], Κλειδί Κ Έξοδος: Η θέση του κλειδιού στη λίστα (εάν υπάρχει) Search(A[], K) i=0 While i<n and A[i]!= K i=i+1; If i<n return i; return -1; Search2(A[], K) i=0 A[n]= K; While A[i]!= K i=i+1; If i<n return i; return -1; Καλύτερη Περίπτωση: Χειρότερη Περίπτωση:

Προβλήµατα Ταξινόµησης Είσοδος: Λίστα A[0,,n-1] Έξοδος: Ταξινοµηµένη λίστα A[0,,n-1] sort(a[]) for i=0 to n-2 min= i; for j=i+1 to n-1 if A[j] < A[min] min= j; swap(a[i],a[min]);

Selection Sort sort(a[0 n-1]) for i=0 to n-2 min= i; for j=i+1 to n-1 if A[j] < A[min] min= j; swap(a[i],a[min]); 89 45 68 90 29 34 17 17 29 68 90 45 34 89 17 29 34 90 45 68 89 17 29 34 45 90 68 89 17 29 34 45 68 90 89 17 29 34 45 68 89 90

Απόδοση Selection Sort sort(a[0 n-1]) for i=0 to n-2 min= i; for j=i+1 to n-1 if A[j] < A[min] min= j; swap(a[i],a[min]); Τι να υπολογίσουµε; Καλύτερη, χειρότερη ή µέση περίπτωση;

Αναζήτηση σειράς χαρακτήρων (string) Είσοδος: Λίστες T[0,,n-1], s[0,,k-1], k<n Έξοδος: Θέση στην οποία εµφανίζεται το s στην T stringmatch(t[0 n-1],s[0,,k-1]) for i=0 to n-k j=0; while (j<k && s[j]=t[i+j]) j=j+1; if j=k return i; return -1; Χειρότερη περίπτωση;

Πρόβληµα εύρεσης των δύο πλησιέστερων σηµείων Δεδοµένης µιας λίστας µε n σηµεία {P 0,,P n-1 } βρείτε ποια δύο σηµεία έχουν την µικρότερη απόσταση. Απόσταση µεταξύ δύο σηµείων σε χώρο D διαστάσεων: ( ) = x a,i x b,i d P a, P b D i=1 ( ) 2 Για παράδειγµα σε δυσδιάστατο χώρο, d ( P a, P b ) = ( x a,1 x ) 2 b,1 + ( x a,2 x ) 2 b,2 = ( x a x b ) 2 + ( y a y b ) 2

Πλησιέστερα Σηµεία ClosestPoints(P[0 n-1]) dmin= infinity; for i=0 to n-2 for j=i+1 to n-1 d= sqrt((x i -x j ) 2 +(y i -y j ) 2 ); if d < dmin return p1, p2; dmin= d; p1=i, p2=j;

Πρόβληµα εύρεσης του κυρτού χώρου που εµπερικλείει ένα σύνολο από σηµεία Κυρτός (convex) χώρος: Ένας χώρος είναι κυρτός εάν για κάθε δύο σηµεία που ανήκουν στον χώρο, όλα τα σηµεία που βρίσκονται στο τµήµα της ευθείας που ενώνει τα δύο σηµεία ανήκει επίσης στον χώρο Για παράδειγµα σε δυσδιάστατο χώρο, Κυρτός χώρος Μη Κυρτός χώρος

Πρόβληµα εύρεσης του κυρτού χώρου που εµπερικλείει ένα σύνολο από σηµεία Δεδοµένης µιας λίστας µε n σηµεία {P 1,,P n } βρείτε το µικρότερο κυρτό χώρο που εµπερικλείει όλα τα σηµεία {P 1,,P n } (convex hull). Θεώρηµα: Το convex hull ενός συνόλου από σηµεία {P 1,,P n } (n>2) είναι ένα πολύγωνο του οποίου οι γωνίες είναι κάποιο από τα σηµεία του συνόλου {P 1,,P n }. Για παράδειγµα σε δυσδιάστατο χώρο,

Convex Hull ConvexHall(P[1 n]) for i=1 to n-1 for j=i+1 to n findline(p i,p j ); k=1; P=getNextPoint; while (k<n-2) and sameside(p); k=k+1; P=getNextPoint; if k=n-2 (P i,p j ) on boundary;

Γεωµετρία

Βελτιστοποίηση Λύστε το πιο κάτω πρόβληµα βελτιστοποίησης

Βελτιστοποίηση minimize(f,x0,x1,y0,y1,n) d=(x1-x0)/(n-1); e=(y1-y0)/(n-1); min= infinity; for i=0 to n-1 for j=0 to n-1 if f(x0+i*d, y0+j*e)<min; min= f(x0+i*d, y0+j*e); xm=x0+i*d; ym= y0+j*e; return min, xm, ym;

Πρόβληµα του Περιοδεύων Πωλητή (Traveling Salesman Problem (TSP)) Ένας πωλητής θέλει να επισκεφτεί n πόλεις και να επιστρέψει στο σηµείο από όπου ξεκίνησε µε το πιο «γρήγορο» τρόπο. Δεν πρέπει να επισκεφτεί µια πόλη περισσότερες από µια φορές Βρείτε το πιο σύντοµο Hamiltonian Circuit. Hamiltonian Circuit: είναι ένα µονοπάτι το οποίο επισκέπτεται όλους τους κόµβους του γράφου από µία φορά και επιστρέφει στο σηµείο από όπου ξεκίνησε. Α 2 Β 5 8 7 3 C 1 D

Πρόβληµα του Περιοδεύων Πωλητή (Traveling Salesman Problem (TSP)) Βρέστε όλα τα πιθανά µονοπάτια Κρατήστε εκείνο µε το χαµηλότερο κόστος Α 2 Β 5 8 7 3 C 1 D 5 1 3 2 Α C D B Α C=11 7 3 8 5 Α D B C Α C=23 5 8 3 7 Α C B D Α C=23 7 1 8 2 Α D C B Α C=18

Πρόβληµα του Περιοδεύων Πωλητή (Traveling Salesman Problem (TSP)) Πιθανή λύση: Πλεονεκτικός (greedy) αλγόριθµος Σε κάθε κόµβο επιλέγω την ακµή µε το µικρότερο κόστος! Α 4 3 7 Β 5 1 E 1 5 C 8 D Στη γενική περίπτωση, ο αλγόριθµος ΔΕΝ βρίσκει τη βέλτιστη λύση.

Knapsack Problem Ένας ορειβάτης προγραµµατίζει την επόµενη του περιπέτεια. Στο σακίδιο του µπορεί να µεταφέρει µέχρι n κιλά. Υπάρχουν m αντικείµενα τα οποία µπορεί να του χρησιµεύσουν Κάθε αντικείµενο ζυγίζει w i κιλά Η «χρησιµότητα» του κάθε αντικειµένου δίνεται από ένα δείκτη y i. Βοηθήστε τον ορειβάτη να βρει πώς να γεµίσει το σακίδιο του έτσι ώστε να µεγιστοποιήσει τη συνολική «χρησιµότητα» όλων των αντικειµένων που θα πάρει µαζί του. Παραδείγµατα στα οποία το πιο πάνω πρόβληµα εφαρµόζει

Knapsack Problem: Παράδειγµα Το σακίδιο µπορεί να χωρέσει 10 κιλά Υπάρχουν 4 αντικείµενα 1. Βάρος= 7, χρησιµότητα= 42 2. Βάρος= 3, χρησιµότητα= 12 3. Βάρος= 4, χρησιµότητα= 40 4. Βάρος= 5, χρησιµότητα= 25 Όλοι οι πιθανοί συνδυασµοί: Συνδυασµός Βάρος Τιµή Συνδυασµός Βάρος Τιµή {Άδειο} 0 0 {1,4} 12 - {1} 7 42 {2,3} 7 52 {2} 3 12 {2,4} 8 37 {3} 4 40 {3,4} 9 65 {4} 5 25 {1,2,3}, {1,2,4} - {1,2} 10 54 {1,3,4}, {2,3,4} - {1,3} 11 - {1,2,3,4} -

Πρόβληµα Ανάθεσης (Assignment) Υπάρχουν n φοιτητές και n προβλήµατα. Για την καλύτερη κατανοµή του φόρτου εργασίας ο κάθε φοιτητής θα λύσει ένα από τα προβλήµατα. Εάν ο φοιτητής i επιχειρήσει το πρόβληµα j τότε θα πάρει b ij βαθµούς Πως πρέπει να κατανεµηθούν τα προβλήµατα έτσι ώστε να µεγιστοποιηθεί ο βαθµός ολόκληρης της τάξης; Άλλα παραδείγµατα στα οποία εφαρµόζει αυτό το πρόβληµα

Παράδειγµα Προβλήµατος Ανάθεσης Υποθέστε πως υπάρχουν 4 φοιτητές και 4 προβλήµατα και οι βαθµοί φαίνονται πιο κάτω. Φοιτ. 1 Φοιτ. 2 Φοιτ. 3 Φοιτ. 4 Πρόβ.1 10 0 5 5 Πρόβ.2 9 7 3 8 Πρόβ.3 8 0 0 0 Πρόβ.4 9 10 8 0 Το διάνυσµα [φ 1, φ 2, φ 3, φ 4 ] αντιπροσωπεύει το φοιτητή που θα λύσει το πρόβληµα 1, 2, 3, και 4 αντίστοιχα Βρείτε όλες τις πιθανές αναθέσεις (permutations) και υπολογίστε το συνολικό βαθµό Πόσες οι πιθανές αναθέσεις υπάρχουν;