ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

Download "ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ"

Transcript

1 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Τεχνικές Σύστασης Όρων για Αναζήτηση σε Επιστηµονικές Βάσεις Δεδοµένων ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του ΠΕΤΣΙΟΥ ΘΕΟΦΙΛΟΥ Επιβλέπων : Τιμολέων Σελλής Καθηγητής Ε.Μ.Π. Αθήνα, Ιούλιος 2011

2

3 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Τεχνικές Σύστασης Όρων για Αναζήτηση σε Επιστηµονικές Βάσεις Δεδοµένων ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του ΠΕΤΣΙΟΥ ΘΕΟΦΙΛΟΥ Επιβλέπων : Τιμολέων Σελλής Καθηγητής Ε.Μ.Π. Εγκρίθηκε από την τριμελή εξεταστική επιτροπή την 11 η Ιουλίου (Υπογραφή) (Υπογραφή) (Υπογραφή) Τιμολέων Σελλής Νεκτάριος Κοζύρης Θοδωρής Δαλαμάγκας Καθηγητής Ε.Μ.Π. Αν. Καθηγητής Ε.Μ.Π. Ερευνητής Β ' ΙΠΣΥΠ/Ε.Κ "Αθηνά" Αθήνα, Ιούλιος 2011

4 (Υπογραφή)... ΠΕΤΣΙΟΣ ΘΕΟΦΙΛΟΣ Διπλωματούχος Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών Ε.Μ.Π All rights reserved

5 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Copyright -- All rights reserved Πέτσιος Θεόφιλος, Με επιφύλαξη παντός δικαιώµατος. Απαγορεύεται η αντιγραφή, αποθήκευση και διανοµή της παρούσας εργασίας, εξ' ολοκλήρου ή τµήµατος αυτής για εµπορικό σκοπό. Επιτρέπεται η ανατύπωση, αποθήκευση και διανοµή για σκοπό µη κερδοσκοπικό, εκπαιδευτικής ή ερευνητικής φύσης, υπό την προϋπόθεση να αναφέρεται η πηγή προέλευσης και να διατηρείται το παρόν µήνυµα. Ερωτήµατα που αφορούν τη χρήση της εργασίας για κερδοσκοπικό σκοπό πρέπει να απευθύνονται προς τον συγγραφέα.

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

7

8 Περίληψη Βασικός στόχος της συγκεκριµένης διπλωµατικής είναι να κατασκευαστεί ένα καλύτερο σύστηµα παροχής προτάσεων για τις εφαρµογές Ιστού DIANA. Αναπτύχθηκαν κατάλληλα εργαλεία για τη διαχείριση και την κατασκευή µηχανών αναζήτησης, µε κύρια έµφαση σε τεχνικές συντακτικής απόστασης και ευρετηρίων gram. Τα εργαλεία αυτά περιλαµβάνουν κατά κύριο λόγο προγράµµατα γραµµένα σε Perl για την κατασκευή ευρετηρίων και µία σειρά από mysql udfs που επιτελούν εργασίες συναφείς µε n-grams. Παράλληλα, έγινε χρήση της php και τεχνολογιών ajax για την τροποποίηση του γραφικού περιβάλλοντος του συστήµατος DIANA, µέσω του yii framework. Συνολικά πετύχαµε σηµαντική βελτίωση των χρόνων απόκρισης της µηχανής αναζήτησης του συστήµατος DIANA.Βελτιώθηκε η ποιότητα των παρεχόµενων αποτελεσµάτων της εφαρµογής σε επίπεδο εύρους προτάσεων καθώς και το περιβάλλον αναζήτησης της εφαρµογής. Δηµιουργήθηκαν εργαλεία κατασκευής ευρετηρίων και διαχείρισης της βάσης δεδοµένων για τους διαχειριστές τόσο της εφαρµογής DIANA όσο και οποιουδήποτε άλλου συστήµατος. Ο διαχειριστής του συστήµατος έχει τη δυνατότητα να επιλέξει την κατασκευή index µε οποιοδήποτε αριθµό grams και να καθορίσει το βάρος που θα χρησιµοποιηθεί για τα grams.τέλος, επεκτάθηκε το πακέτο λογισµικού flamingo ώστε να είναι συµβατό µε το λειτουργικό σύστηµα Mac OS X. Λέξεις Κλειδιά: << παροχή προτάσεων, αναζήτηση, συντακτική απόσταση, ευρετήρια, ταίριασµα χαρακτήρων>>

9

10 Abstract The main purpose of this thesis was the development of a better term suggestion mechanism for DIANA web applications. We developed several tools to manage search engines, focusing on edit distance and n-gram techniques. These tools mainly consist of programs written in Perl, in order to construct and maintain inverted indexes for ngram-based search engines and mysql udfs which implement operations concerning n-grams. We modified the graphic interface of the web application with the use of php and ajax, implemented in yii framework. Overall, we achieved a major improvement in time response of the average query on the web application. The options offered by the search engine where improved in terms of variety and the ease of use of the web application improved as well. We also created a series of administration tools for DIANA administrators. These tools consist of programs to manage databases which include inverted indexes for search operations, and are applicable to any operating system. The system administrator has the ability to choose the construction of indexes of variable gram length and assign an arbitrary weight to the grams used. Finally, we made changes to flamingo software installer in order for it to be applicable to Mac OS X. Keywords: <<term suggestion, edit distance, n-grams, inverted index, mysql udf, string matching, string searching >>

11

12

13 ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. Εισαγωγή Εισαγωγικά Σχόλια Αντικείµενο της Εργασίας Το σύστηµα DIANA micro-t Στόχοι Βελτίωση του χρόνου απόκρισης του συστήµατος Βελτίωση της διεπαφής Σχεδιασµός της Λύσης Συνεισφορά της Εργασίας Οργάνωση του κειµένου Θεωρητικό Υπόβαθρο Ταίριασµα Συµβολοσειρών Ακριβές ταίριασµα συµβολοσειρών Αλγόριθµος Bitap(1) Προσεγγιστικό Ταίριασµα Συµβολοσειρών On-line Αλγόριθµοι Αλγόριθµος Needleman-Wunsch Αλγόριθµος Bitap (2) Απόσταση Hamming Off-line Αλγόριθµοι N-grams & Δενδρα Προθεµάτων Grams Μεταβλητού Μεγέθους Δένδρα Επιθέµατος Ταξινόµηση και Ανεύρεση πληροφοριών Precision Recall F-measure Ταξινόµηση & Οµοιότητα Υλοποίηση Περιγραφή της λειτουργίας της εφαρµογής Το πακέτο flamingo Mysql udfs Προσθήκη µιας udf µέσω της διεπαφής της mysql Προσθήκη µιας udf στον mysqld server Δηµιουργία αποθηκευµένων διαδικασιών και συναρτήσεων Συναρτήσεις Διαδικασίες Ngram udfs C/C++ udfs Αποθηκευµένες Διαδικασίες/Συναρτήσεις Υλοποίηση του µηχανισµού αναζήτησης µε ngrams Παρουσίαση των αποτελεσµάτων σε πραγµατικό χρόνο...45

14 3.5.1 Asynchronous JavaScript and XML (AJAX) jquery Τροποποίηση της εφαρµογής µε χρήση των µεθόδων του yii framework Aξιολόγηση Περιγραφή των συνόλων δεδοµένων (datasets) Mέτρηση της αποδοτικότητας των µεθόδων που χρησιµοποιούν grams Πραγµατικό σύνολο δεδοµένων Συνθετικό σύνολο δεδοµένων Mέτρηση της ακρίβειας των µεθόδων που χρησιµοποιούν grams Πραγµατικό σύνολο δεδοµένων Συνθετικό σύνολο δεδοµένων Mέτρηση χρονικής απόκρισης για µεταβλητό µέγεθος αποτελεσµάτων Πλεονεκτήµατα και µειονεκτήµατα της κάθε µεθόδου Επιλογή των παραµέτρων αναζήτησης για το σύστηµα DIANA Επίλογος Σύνοψη Μελλοντικές Εργασίες Βιβλιογραφία...69

15 1 Εισαγωγή 1.1 Εισαγωγικά Σχόλια Τις τελευταίες δεκαετίες, η εξέλιξη του παγκοσµίου ιστού ήταν τέτοια που κατέστησε αναγκαία την εύρεση αποδοτικών µηχανισµών για τη διαχείριση του τεραστίου όγκου της πληροφορίας που διακινούνταν στο Διαδίκτυο αλλά και εσωτερικά στους µεγάλους οργανισµούς. Αυξήθηκε δραµατικά η ανάγκη για περισσότερο εξειδικευµένες αναζητήσεις εικόνων, video, δηµοσιεύσεων κ.ά. καθώς και για αποτελεσµατική ταξινόµηση και επεξεργασία των δεδοµένων, ενώ ταυτόχρονα, έγινε µία προσπάθεια να βελτιωθεί η ποιότητα των παρεχόµενων αποτελεσµάτων και να προσαρµοστεί η αναζήτηση στις ατοµικές ανάγκες των χρηστών. Ο πιο γνωστός και διαδεδοµένος τρόπος αναζήτησης υλικού είναι η αναζήτηση που πραγµατοποιείται µε βάση λέξεις-κλειδιά (keyword search). Σε αυτό τον τύπο αναζήτησης, ο χρήστης καθορίζει ένα πλήθος λέξεων-κλειδιών, ο οποίος χαρακτηρίζει το υλικό που τον ενδιαφέρει. Η µηχανή αναζητήσεων βασίζεται σε αυτές τις λέξεις-κλειδιά προκειµένου να επιστρέψει τα αντίστοιχα αποτελέσµατα. Ένα γνωστό πρόβληµα σε αυτού του τύπου τις αναζητήσεις είναι ότι ο χρήστης θα πρέπει να γνωρίζει επακριβώς ποιές λέξεις κλειδιά να χρησιµοποιήσει. Συνήθως κάτι τέτοιο δεν είναι δυνατό διότι υπάρχουν διάφορες παραλλαγές που µπορεί κανείς να χρησιµοποιήσει και η µηχανή αναζήτησης δεν µπορεί να λαµβάνει υπ'όψιν τις όλες αυτές τις εναλλακτικές. Επιπρόσθετα, είναι πολύ συνηθισµένο κατά τη διάρκεια της πληκτρολόγησης οι χρήστες να εισάγουν λάθη στο σύνολο των λέξεων-κλειδιών. Αυτού του είδους τα προβλήµατα, µπορούν να περιορίσουν τα αποτελέσµατα που θα επέστρεφε η µηχανή αναζήτησης προς τους χρήστες και κάποιο σηµαντικό υλικό να αγνοηθεί. Προκειµένου να εξαλειφθούν τέτοιου είδους προβλήµατα, ξεκίνησαν να εµφανίζονται στο προσκήνιο µηχανισµοί παροχής προτάσεων. Αυτοί οι µηχανισµοί, προσπαθούν να προβλέψουν τη λέξη κλειδί που ενδεχοµένως επιθυµούσε να πληκτρολογήσει ο χρήστης (αλλά δεν το έκανε) βάσει συγκεκριµένων κριτηρίων συνάφειας µε το 1

16 αντικείµενο της αναζήτησης. Η χρησιµότητά τους αναδεικνύεται εντονότερα σε εφαρµογές µεγάλου όγκου πληροφοριών µε οριζόντια ή κατακόρυφη κατάτµηση, όπου οι συνδέσεις µεταξύ των κατηγοριών και τύπων δεδοµένων είναι µη προφανείς και οι χρήστες είναι περισσότερο πιθανό να πραγµατοποιήσουν κάποιο σφάλµα. Τα συστήµατα παροχής προτάσεων, έχουν ενσωµατωθεί στην πλειοψηφία των διαδικτυακών εφαρµογών και ιστοσελίδων προκειµένου να διευκολύνονται οι χρήστες κατά τις αναζητήσεις τους. Στο παρακάτω στιγµιότυπο, παρουσιάζεται ένα σύνολο προτάσεων για τον όρο 'britn', που πληκτρολογεί ο χρήστης στην µηχανή αναζήτησης της Google: Τα κριτήρια ταξινόµησης των αποτελεσµάτων, η φύση των προτάσεων και η ταχύτητα απόκρισης στα ερωτήµατα του χρήστη είναι τα βασικά σηµεία που καθορίζουν την ποιότητα και την απόδοση των διαφόρων µηχανών αναζήτησης. Το αντικείµενο της συγκεκριµένης διπλωµατικής είναι η επέκταση ενός µηχανισµού παροχής προτάσεων για ένα σύνολο υπαρχουσών διαδικτυακών εφαρµογών σχετικών µε τις βιοεπιστήµες. Στις επόµενες παραγράφους, αναλύουµε σε µεγαλύτερη λεπτοµέρεια το αντικείµενο της εργασίας. 2

17 1.2 Αντικείµενο της εργασίας Το σύστηµα DIANA micro-t Το σύστηµα DIANA micro-t είναι µια εφαρµογή Ιστού, που έχει αναπτυχθεί από το ΙΠΣΥΠ για το Ερευνητικό Κέντρο Βιοϊατρικών Επιστηµών Αλέξανδρος Φλέµινγκ, το οποίο διεξάγει έρευνα µεταξύ άλλων και στο πεδίο των micrornas. Τα micrornas είναι βιοµόρια πολύ µικρού µήκους, τα οποία έχουν στόχους (targets) σε γονίδια. Η ύπαρξη στόχου ενός µορίου microrna σε κάποιο γονίδιο συνεπάγεται στην παρεµπόδιση της παραγωγής της αντίστοιχης πρωτεΐνης. Η πληροφορία αυτή είναι ιδιαίτερα πολύτιµη για την εξαγωγή συµπερασµάτων σχετικά µε τα αίτια ασθενειών. Η εφαρµογή micro-t παρέχει στους βιολόγους ερευνητές τη δυνατότητα να αναζητήσουν microrna στόχους και σχετικές µε αυτούς πληροφορίες. Οι στόχοι έχουν προβλεφθεί µε βάση υπολογιστικές τεχνικές της ερευνητικής οµάδας του "Αλέξανδρος Φλέµινγκ" και στη συνέχεια έχουν αποθηκευτεί σε µία σχεσιακή βάση δεδοµένων. Η αναζήτηση των microrna στόχων γίνεται από τους χρήστες µέσω του προσδιορισµού λέξεων-κλειδιών (keywords), οι οποίες χαρακτηρίζουν είτε κάποιο γονίδιο, είτε κάποιο µόριο microrna, είτε και τα δύο µαζί. Επίσης οι λέξεις-κλειδιά, µπορεί να προσδιορίζουν κάποια σχετική µε τους στόχους πληροφορία (π.χ. παράγοντες µεταγραφής, συµµετοχή αντίστοιχου γονιδίου σε βιολογικά µονοπάτια κτλ) Στόχοι Στη µηχανή αναζήτησης της εφαρµογής DIANA micro-t 1 υπάρχει µία φόρµα αναζήτησης που συµπληρώνεται από το χρήστη µε λέξεις-κλειδιά. Όταν ο χρήστης συµπληρώνει µια λέξη-κλειδί, και η λέξη ταυτίζεται µε κάποιο στοιχείο της βάσης δεδοµένων της εφαρµογής, τότε το σύστηµα την αναγνωρίζει και παρέχει στο χρήστη διάφορες επιλογές. Σε αντίθετη περίπτωση, το σύστηµα παρέχει µία λίστα µε προτάσεις για το ποιά λέξη-κλειδί ενδεχοµένως θα ήθελε χρήστης να πληκτρολογήσει. Για παράδειγµα, στο στιγµιότυπο που ακολουθεί, ο χρήστης πληκτρολογεί προς αναζήτηση τη συµβολοσειρά mir. Ωστόσο το σύστηµα δεν την αναγνωρίζει και παρέχει εναλλακτικά αποτελέσµατα (τις συµβολοσειρές mio, micr, vir κτλ) στην αναζήτηση. Οι προτάσεις αυτές καθορίζονται από τον ειδικό µηχανισµό αναζήτησης που εφαρµόζεται στην εφαρµογή

18 To συγκεκριµένο σύστηµα αναζήτησης, εµφανίζει διάφορα προβλήµατα, το κυριότερο των οποίων είναι η µεγάλη καθυστέρηση κατά την παρουσίαση των αποτελεσµάτων. Στα πλαίσια αυτά, δεν παρέχονται αποτελέσµατα σε πραγµατικό χρόνο, καθώς ο χρήστης πληκτρολογεί και σε ορισµένες περιπτώσεις παρουσιάζονται αστοχίες ως προς την ποιότητα των αποτελεσµάτων. Στόχος µας είναι η βελτίωση αυτού του συστήµατος προτάσεων, η οποία µπορεί να προσανατολιστεί στις εξής κατευθύνσεις: 1. Βελτίωση του χρόνου απόκρισης 2. Βελτίωση της διεπαφής (interface) Αναλύουµε συνοπτικά το κάθε ένα από αυτά: Βελτίωση του χρόνου απόκρισης του συστήµατος Το υπάρχον σύστηµα παροχής προτάσεων χρησιµοποιεί την συνάρτηση levenshtein της PHP προκειµένου να υπολογίσει την συντακτική απόσταση (edit distance) κάποιας λέξης-κλειδιού σε σχέση µε τους αποθηκευµένους όρους στη βάση. Η µέθοδος αυτή οδηγεί σε µεγάλες χρονικές καθυστερήσεις κατά την παρουσίαση των αποτελεσµάτων στο χρήστη, κυρίως λόγω των παρακάτω παραγόντων: Όλες οι εγγραφές στη βάση πρέπει να διατρέχονται σε κάθε ερώτηµα. Όλες οι εγγραφές της βάσης πρέπει να µεταφερθούν από τη MySQL στην PHP προκειµένου να υπολογιστεί η συντακτική απόσταση. Σκοπός µας είναι µε την παρούσα εργασία να µελετηθούν εναλλακτικοί τρόποι υπολογισµού οµοιότητας µεταξύ συµβολοσειρών, οι οποίοι θα δίδουν καλύτερα χρονικά αποτελέσµατα Βελτίωση της διεπαφής Στα πλαίσια της παροχής καλύτερων αποτελεσµάτων προς το χρήστη, εφαρµόζουµε ορισµένες τροποποιήσεις στο µηχανισµό παροχής προτάσεων, προκειµένου να µην έχουµε µία απλή φόρµα αναζήτησης αλλά να παρέχονται προτάσεις στο χρήστη κατά την πληκτρολόγηση (προτάσεις που θα προσαρµόζονται δηλαδή στη συµβολοσειρά που ο χρήστης έχει εισάγει σε µία δεδοµένη χρονική στιγµή). Τη δυνατότητα παροχής προτάσεων σε πραγµατικό χρόνο µας εξασφαλίζουν οι βελτιώσεις αποδοτικότητας που εφαρµόζονται στην µηχανή αναζήτησης και οδηγούν σε σηµαντική µείωση του µέσου χρόνου απάντησης στα ερωτήµατα των χρηστών Σχεδιασµός της Λύσης Προκειµένου να υλοποιήσουµε τα παραπάνω, αρχικά επιδιώκουµε να επιλύσουµε τα προβλήµατα που εισάγονται στο σύστηµα λόγω των χρονικών καθυστερήσεων που εισάγει η επικοινωνία µεταξύ MySQL και PHP. Προς τούτο, χρησιµοποιούµε, σε πρώτο στάδιο, το πακέτο λογισµικού flamingo. Πρόκειται για ένα σύνολο προγραµµάτων γραµµένων σε C++ αλλά και udf συναρτήσεων, που επιτελούν λειτουργίες προσεγγιστικού ταιριάσµατος αλφαριθµητικών (approximate string matching). Ενσωµατώνοντας τις παρεχόµενες από το flamingo udf συναρτήσεις στη βάση δεδοµένων, τροποποιούµε τη µηχανή 4

19 αναζήτησης, προκειµένου οι αναγκαίοι υπολογισµοί να πραγµατοποιούνται κατά το δυνατόν από τη βάση, και όχι από την εφαρµογή. H προηγούµενη λύση βελτιώνει σηµαντικά το χρόνο της µέσης αναζήτησης (περίπου 10 φορές σε σχέση µε την αρχική έκδοση της εφαρµογής), ωστόσο, όπως αναφέρθηκε και στην προηγούµενη ενότητα, απαιτεί να εξετάζουµε κάθε φορά ολόκληρη τη βάση δεδοµένων. Συνεπώς δεν είναι αποδοτική όσο µεγαλώνει ο αριθµός των εγγραφών και ως εκ τούτου, εξετάζουµε διαφορετικούς αλγορίθµους για την υλοποίηση string matching, προκειµένου να επιλέξουµε την καταλληλότερη λύση για την εφαρµογή µας. Το επίκεντρο της µελέτης µας εστιάζεται σε τεχνικές που χρησιµοποιούν n-grams. Με τον όρο n-gram, εννοούµε µία υπακολουθία µήκους n, µίας δεδοµένης συµβολοσειράς s. Στα πλαίσια της παρούσης εργασίας, επιλέξαµε να υλοποιήσουµε την τελική λύση µας, κατασκευάζοντας µία αντεστραµµένη λίστα µε grams σταθερού µήκους. Υλοποιήσαµε συναρτήσεις udf προκειµένου να γίνεται η επεξεργασία των ερωτηµάτων σχεδόν εξολοκλήρου από τη βάση δεδοµένων. Τα κυριότερα σηµεία της µεθόδου που ακολουθήσαµε είναι τα εξής: Για κάθε δεδοµένο της βάσης παράγουµε όλα τα πιθανά grams σταθερού µεγέθους n. Τα grams αυτά τα εισάγουµε σε ένα πίνακα, ο οποίος θα αποτελεί και τον inverted index µας. Ο πίνακας αυτός έχει τη µορφή [<gram>,<term>,..] και ως εκ τούτου, για κάθε ζευγάρι gramterm (το gram και ο όρος από τον οποίο προέρχεται), υπάρχει και η αντίστοιχη εγγραφή στη βάση. Όταν ο χρήστης εισάγει µία συµβολοσειρά προς αναζήτηση στην εφαρµογή, παράγουµε όλα τα πιθανά grams της συµβολοσειράς. Ακολούθως προτείνουµε στο χρήστη τους όρους εκείνους µε τους οποίους η συµβολοσειρά έχει τα περισσότερα κοινά grams, βάσει του inverted index. Προκειµένου να βελτιώσουµε την ποιότητα των παρεχόµενων αποτελεσµάτων, εξετάζουµε εναλλακτικές τεχνικές από τον κλάδο της ανεύρεσης πληροφοριών (Information Retrieval). Aξιολογούµε διαφορετικές µεθόδους υπολογισµού tfxidf βαρών για τα grams του inverted index και πραγµατοποιούµε µετρήσεις για τα µεγέθη recall και precision που πετυχαίνουν οι µέθοδοι αυτοί. Τέλος, για την παροχή προτάσεων σε πραγµατικό χρόνο, χρησιµοποιήθηκαν οι διαφορετικές δυνατότητες των τεχνολογιών ajax και JQuery, προκειµένου αυτές να ενσωµατωθούν στην εφαρµογή Συνεισφορά Της Εργασίας Τα εργαλεία που αναπτύχθηκαν στα πλαίσια αυτής της διπλωµατικής εργασίας, ήταν κατά κύριο λόγο προσανατολισµένα στην εφαρµογή ιστού DIANA, ωστόσο είναι δυνατό να χρησιµοποιηθούν και σε οποιοδήποτε άλλο σύστηµα. Η κυριότερη συνεισφορά της παρούσης εργασίας συνίσταται στα εξής βασικά σηµεία: Σηµαντική βελτίωση των χρόνων απόκρισης της µηχανής αναζήτησης του συστήµατος DIANA Βελτίωση της ποιότητας των αποτελεσµάτων της εφαρµογής. 5

20 Βελτίωση του περιβάλλοντος αναζήτησης για τους χρήστες οι οποίοι πλέον λαµβάνουν αποτελέσµατα ενώ πληκτρολογούν. Δηµιουργία εργαλείων κατασκευής inverted index και διαχείρισης της βάσης δεδοµένων για τους διαχειριστές τόσο της εφαρµογής DIANA όσο και οποιουδήποτε άλλου συστήµατος. Ο διαχειριστής του συστήµατος έχει τη δυνατότητα να επιλέξει την κατασκευή index µε οποιοδήποτε αριθµό grams και να την επιλογή του tfxidf βάρους που θα χρησιµοποιηθεί για τα grams. Δηµιουργία ποικιλίας mysql udf για approximate string matching µε τεχνικές n-grams. Προσαρµογή του πακέτου λογισµικού flamingo ώστε να είναι συµβατό µε το λειτουργικό σύστηµα Mac OS X. 1.3 Οργάνωση του κειµένου Η συγγραφή της παρούσας διπλωµατικής εργασίας έχει οργανωθεί µε τέτοιο τρόπο ώστε να παρουσιάζονται αναλυτικά οι επιµέρους φάσεις της ανάλυσης, της υλοποίησης και της δοκιµής του συστήµατος. Συνοπτικά: Στο 2 ο κεφάλαιο γίνεται σύντοµη περιγραφή των δηµοφιλέστερων αλγορίθµων και τεχνικών που έχουν αναπτυχθεί γύρω από τα πεδία της αναζήτησης και του ταιριάσµατος χαρακτήρων. Στο 3 ο κεφάλαιο παρουσιάζονται τα επιµέρους υποσυστήµατα που απαρτίζουν την εφαρµογή, και παρατίθενται τα βήµατα των διαφορετικών υλοποιήσεων µηχανισµών αναζήτησης που εφαρµόσαµε επί της εφαρµογής. Στο 4 ο κεφάλαιο αξιολογούνται τα χαρακτηριστικά των υλοποιήσεων που αναπτύχθηκαν στην ενότητα 3 µέσα από τις ανάλογες πειραµατικές διαδικασίες. Στο 5 ο κεφάλαιο παρουσιάζονται οι αποφάσεις που ελήφθησαν για την τελική επιλογή των παραµέτρων της εφαρµογής, αναλύονται τα πλεονεκτήµατα και τα µειονεκτήµατα των διαφόρων τεχνικών, και παρατίθενται επιπλέον πληροφορίες συναφείς µε τις εργασίες που επιτελέστηκαν. 6

21 2 Θεωρητικό Υπόβαθρο Στο κεφάλαιο αυτό, παρουσιάζεται το αναγκαίο θεωρητικό υπόβαθρο για την κατανόηση των µεθόδων που υλοποιούν το βελτιωµένο σύστηµα παροχής προτάσεων για την εφαρµογή DIANA micro-t. Αναφερόµαστε στο ταίριασµα συµβολοσειρών και στους κυριότερους αλγορίθµους που το υλοποιούν. Αρχίζοντας µε τη συντακτική απόσταση, αναλύουµε διαφόρους αλγορίθµους που υλοποιούν ακριβές και µερικό ταίριασµα, όπως ο αλγόριθµος Needleman-Wunsch και οι παραλλαγές τους αλγορίθµου bitap. Ακολούθως, αναλύουµε τις κυριότερες τεχνικές ευρετηρίου, όπως να n-grams και τα v-grams. 2.1 Ταίριασµα Συµβολοσειρών Μία βασική τεχνική που χρησιµοποιείται σε µηχανές αναζήτησης εφαρµογών ιστού είναι αυτή του ταιριάσµατος συµβολοσειρών (string matching). Η µέθοδος είναι γνωστή εδώ και αρκετές δεκαετίες και βρίσκει διάφορες εφαρµογές, όπως η αναγνώριση φωνής, η αναπαράσταση οµιλίας, η αναγνώριση µοριακών τύπων και άλλων ακολουθιών, η κρυπτογραφία κ.ά. Το ταίριασµα συµβολοσειρών µπορεί να είναι απόλυτο (exact string matching) ή προσεγγιστικό (approximate string matching).στο απόλυτο ταίριασµα αναζητούµε και επιστρέφουµε ως αποτέλεσµα συµβολοσειρές οι οποίες ταυτίζονται ακριβώς µε τη συµβολοσειρά που πληκτρολόγησε ο χρήστης. Στο προσεγγιστικό ταίριασµα χαρακτήρων αντίθετα, αναζητούµε και επιστρέφουµε συµβολοσειρές οι οποίες παρουσιάζουν ένα βαθµό «οµοιότητας» µε τη συµβολοσειρά που εισήγαγε ο χρήστης. Η οµοιότητα αυτή δεν είναι αναγκαία ταύτιση, όπως συµβαίνει µε το απόλυτο ταίριασµα, χωρίς ωστόσο κάτι τέτοιο να αποκλείεται. 7

22 2.1.1 Ακριβές ταίριασµα συµβολοσειρών Ουσιαστικά πρόκειται για την αναζήτηση µιας συµβολοσειράς (string searching) και όχι τόσο για ταίριασµα, όπως εξηγήθηκε και προηγουµένως. Έχουν αναπτυχθεί διάφοροι αλγόριθµοι για την αναζήτηση συµβολοσειρών, ορισµένοι από τους οποίους αναφέρονται παρακάτω µαζί µε τα χαρακτηριστικά τους 2 : Αλγόριθµος Bitap(1) Ο αλγόριθµος bitap 3, γνωστός επίσης και ως shift-or ή shift-and ή Baeza-Yates-Gonnet µπορεί να χρησιµοποιηθεί για exact string matching κάνοντας πρακτικά approximate string matching. Συγκεκριµένα, αν δύο συµβολοσειρές έχουν λιγότερα από k διαφορετικά στοιχεία, ο αλγόριθµος τις θεωρεί ίδιες. Για τον υπολογισµό, υπολογίζει bitmasks που περιέχουν ένα bit για κάθε στοιχείο του string και ακολούθως χρησιµοποιεί πράξεις σε επίπεδο bit (bitwise operations) που επιταχύνουν ιδιαίτερα τη διαδικασία. Περισσότερο αναλυτικά, έστω ότι R είναι ένας bit array µεγέθους m (το pattern το οποίο αναζητούµε µέσα σε µία µεγαλύτερη συµβολοσειρά text). Το διάνυσµα R j είναι η τιµή του πίνακα R αφού έχουµε επεξεργαστεί τον χαρακτήρα y[j] της text,σύµφωνα µε την παρακάτω εικόνα:

23 Ουσιαστικά, περιέχει πληροφορίες για όλα τα προθέµατα του x που τελειώνουν στη θέση j µέσα στο text (που στην παραπάνω εικόνα αναπαριστούµε µε j), για 0<i<=m-1. Aν οι αντίστοιχες συµβολοσειρές ταυτίζονται τότε χρησιµοποιούµε την τιµή 0 αλλιώς χρησιµοποιούµε την τιµή 1, δηλαδή ισχύει ότι R j [i]= 0!"! 0,1 =!!!,! 1!"h!"#$%! Προκειµένου να υπολογίσουµε τo διάνυσµα R j+1 από το R j, στις θέσεις όπου έχουµε ταίριασµα χαρακτήρα (δηλαδή ισχύει R j [i]=0) έχουµε: R j+1 [i+1]= 0!"!! + 1 =!! + 1, 1!"h!"#$%! και R j+1 [0]= 0!"! 0 =!! + 1, 1!"h!"#$%! Αν R j+1 [m+1]=0 τότε έχουµε απόλυτο ταίριασµα. Η µετάβαση από το R j στο R j+1 µπορεί να υπολογιστεί αποδοτικά ως εξής: Για κάθε χαρακτήρα c που ανήκει σε ένα αλφάβητο Σ, έστω S c ένας bit array µεγέθους m τέτοιος ώστε για κάθε i [0,m-1) να ισχύει S c [i]=0 ανν x[i]=c. O πίνακας S c υποδεικνύει τις θέσεις του χαρακτήρα c µέσα στο pattern x. Κάθε S c µπορεί να υποστεί επεξεργασία πριν την αναζήτηση. Ο υπολογισµός του R j+1 ανάγεται σε δύο βασικές λειτουργίες, την shift και την or: R j+1 =SHIFT(R j ) OR S y[j+1]. Παραθέτουµε τον κώδικα για την υλοποίηση του αλγορίθµου σε C: Αλγόριθµος bitap για exact string matching #include <stdlib.h> #include <string.h> typedef char BIT; /* needs only to hold the values 0 and 1 */ const char *bitap_search(const char *text, const char *pattern) { const char *result = NULL; int m = strlen(pattern); BIT *R; int i, k; if (pattern[0] == '\0') return text; /* Initialize the bit array R */ R = malloc((m+1) * sizeof *R); R[0] = 1; for (k=1; k <= m; ++k) R[k] = 0; 9

24 for (i=0; text[i]!= '\0'; ++i) { /* Update the bit array. */ for (k=m; k >= 1; --k) R[k] = R[k-1] && (text[i] == pattern[k-1]); } if (R[m]) { result = (text+i - m) + 1; break; } } free(r); return result; Ένα παράδειγµα της χρήσης του αλγορίθµου είναι το εξής: Έστω ότι αναζητούµε τη συµβολοσειρά gca µέσα στην tsgcag. Τα βήµατα είναι τα εξής: Αρχή: 1) tsgcag transition: 111.t -> 111 2) tsgcag transition: 111.s -> 111 3) tsgcag transition: 111.g -> 011 4) tsgcag (εντοπίστηκε το g) transition: 011.c -> 101 5) tsgcag (εντοπίστηκε το c) transition: 101.a -> 110 6) tsgcag transition: 110.g -> 011 tsgcag (εντοπισµός της ακολουθίας) Επειδή ο αλγόριθµος κάνει αναγκαστικά χρήση δοµών δεδοµένων, αποδίδει καλύτερα σε συµβολοσειρές µικρότερες από ένα καθορισµένο όριο (το µήκος του pattern πρέπει να µην είναι µεγαλύτερο από το µέγεθος της µνήµης για κάθε λέξη της µηχανής στην οποία εκτελείται ο αλγόριθµος). Μόλις εφαρµοστεί µία φορά για µία δοσµένη αλφάβητο και ένα µήκος λέξης m, η χρονική πολυπλοκότητα είναι Ο(mn), ανεξαρτήτως της δοµής δεδοµένων που χρησιµοποιήθηκε. Τέλος, αξίζει να σηµειωθεί ότι ο αλγόριθµος αυτός είναι η καρδιά της λειτουργίας agrep του Unix. 10

25 2.1.2 Προσεγγιστικό Ταίριασµα Συµβολοσειρών Το προσεγγιστικό ταίριασµα συµβολοσειρών 4 (approximate string matching), που αναφέρεται συχνά και ως fuzzy string searching, ουσιαστικά εισάγει την ανάγκη ύπαρξης µίας µετρικής για την «οµοιότητα» µεταξύ δύο ή περισσότερων συµβολοσειρών. Οι αλγόριθµοι που αναπτύχθηκαν για τον υπολογισµό αυτό χωρίζονται γενικά σε δύο ευρείες κατηγορίες: τους αλγορίθµους που τρέχουν εκ του µηδενός (on-line) και αυτών που απαιτούν µία προεργασία επί των δεδοµένων στα οποία θα κάνουµε την αναζήτηση (offline). Οι on-line αλγόριθµοι συνηθέστερα χρησιµοποιούν δυναµικό προγραµµατισµό αξιοποιώντας µία µετρική, ενώ οι offline χρησιµοποιούν µία σύνθετη δοµή αποθήκευσης δεδοµένων προκειµένου να καταστήσουν γρηγορότερη την αναζήτηση στα δεδοµένα. Ακολούθως παραθέτουµε ορισµένους χαρακτηριστικούς αλγορίθµους για κάθε κατηγορία Οn-line Αλγόριθµοι Αυτή η οµάδα αλγορίθµων βασίζεται συνήθως σε παραλλαγές χρήσης της συντακτικής απόστασης (edit distance) µεταξύ δύο συµβολοσειρών, την οποία ορίζουµε ως τον ελάχιστο αριθµό εισαγωγών, διαγραφών και αντικαταστάσεων (οι τρείς αυτές λειτουργίες καλούνται πρωταρχικές primitive 5 -), που απαιτούνται, προκειµένου οι δύο συµβολοσειρές να ταυτίζονται. Με τον όρο εισαγωγή (insertion), εννοούµε την εισαγωγή ενός χαρακτήρα στην υπάρχουσα συµβολοσειρά, π.χ. hi -> hit. Με τον όρο διαγραφή (deletion), εννοούµε την διαγραφή ενός χαρακτήρα από την υπάρχουσα συµβολοσειρά, π.χ. hi->h. Με τον όρο αντικατάσταση (substitution), εννοούµε την αντικατάσταση ενός χαρακτήρα από την υπάρχουσα συµβολοσειρά, π.χ. pitcher->picher. Ανάλογα µε τις πράξεις που χρησιµοποιούνται κάθε φορά ως βασικές, έχουµε διαφοροποιήσεις στον παραπάνω ορισµό και στον τρόπο υπολογισµού. Στο σηµείο αυτό, οφείλουµε να σηµειώσουµε ότι πολλοί ερευνητές αναφέρονται στην συντακτική απόσταση µε τον όρο Levenshtein distance, εννοώντας την edit distance.ορισµένοι χαρακτηριστικοί αλγόριθµοι που κάνουν χρήση της edit distance αναφέρονται ακολούθως: Αλγόριθµος Needleman-Wunsch Ο αλγόριθµος αυτός είναι και ο πιο δηµοφιλής, µε αποτέλεσµα να αναφερόµαστε σε αυτή την τεχνική προκειµένου να υπολογίσουµε την απόσταση Levenshtein (edit distance). Πρόκειται για υπολογισµό βάσει του ορισµού που δόθηκε στην προηγούµενη ενότητα ( ). Προκειµένου να κατανοήσουµε τη λειτουργία του αλγορίθµου σχηµατίζουµε ένα πίνακα που έχει στην πρώτη γραµµή και στήλη τις λέξεις των οποίων θέλουµε να υπολογίσουµε την edit distance, και γεµίζουµε τον πίνακα µε τον αριθµό των Πολλοί ερευνητές ορίζουν ως primitive operation και την μετάβαση (transposition) όπου δύο γράμματα μίας λέξης εναλλάσσουν τη θέση τους. 11

26 πρωταρχικών λειτουργιών (primitive operations) που απαιτούνται προκειµένου να καταλήξουµε από τη µία συµβολοσειρά στην άλλη. Για παράδειγµα, στον παρακάτω πίνακα, τα strings S και Sa έχουν απόσταση 1, καθώς απαιτείται µία µόλις πρωταρχική λειτουργία για να µεταβούµε από το ένα στο άλλο (στοιχείο [1,2] του πίνακα), ενώ τα S και S απόσταση 0 (στοιχείο [1,1]). Ακολούθως παραθέτουµε τον αλγόριθµο αναλυτικότερα (straightforward implementation). Η λύση βασίζεται σε δυναµικό προγραµµατισµό 6. Θεωρούµε ότι για κάθε i,j του πίνακα d που περιέχει τις αποστάσεις Levenshtein, το d[i,j] θα περιέχει την Levenshtein Distance ανάµεσα στους πρώτους i χαρακτήρες του string s και τους πρώτους j χαρακτήρες του string t. Η απόσταση Levenshtein των δύο συµβολοσειρών θα δίνεται από το στοιχείο d[n 1, n 2 ], όπου n 1 το µήκος της συµβολοσειράς 1 και n 2 το µήκος της συµβολοσειράς 2, δηλαδή από το τελευταίο στοιχείο της διαγωνίου του πίνακα. Στο παραπάνω παράδειγµα, η απόσταση Levenshtein των συµβολοσειρών Saturday και Sunday θα είναι 3. Πράγµατι, η λέξη Saturday προκύπτει έπειτα από τις παρακάτω πράξεις: n->r (αντικατάσταση): Surday Εισαγωγή του a: Saurday Εισαγωγή του t: Saturday Αντίστροφα προκύπτει και η λέξη Sunday από την Saturday. Για να υπολογίσουµε το τελευταίο στοιχείο της κύριας διαγωνίου εργαζόµαστε ως εξής: Αρχικά εισάγουµε στην πρώτη γραµµή και στήλη των αριθµό των βηµάτων που απαιτούνται προκειµένου να φτάσουµε στο αντίστοιχο σηµείο της συµβολοσειράς, που ταυτίζεται µε τον αριθµό του στοιχείου στο οποίο βρισκόµαστε. Στο παραπάνω παράδειγµα, το πρώτο στοιχείο του πίνακα περιέχει το 0 καθώς δεν έχουµε εισάγει κάποιο χαρακτήρα, το δεύτερο στοιχείο της πρώτης γραµµής και στήλης τον αριθµό 1 καθώς εισάγαµε ένα χαρακτήρα στην γραµµή και τη στήλη αντίστοιχα κοκ. Ακολούθως, διασχίζουµε όλο τον πίνακα ως εξής: Αν στη θέση [i,j] οι χαρακτήρες των αντιστοίχων συµβολοσειρών ταυτίζονται, τότε η edit distance δεν µεταβάλλεται σε σχέση µε την προηγούµενη θέση στην οποία βρισκόµαστε και συνεπώς ισχύει d[i, j] := d[i-1, j-1]. Σε αντίθετη περίπτωση προκειµένου να υπολογίσουµε την edit distance d[i, j], εξετάζουµε ποιός τρόπος µε 6 Για bottom- up υλοποίηση, βλ. 1974, The String- to- string correction problem των Robert A. Wagner και Michael J. Fischer. 12

27 τον οποίο µπορούµε να οδηγηθούµε σε αυτή την κατάσταση έχει το ελάχιστο κόστος. Δηλαδή, επιλέγουµε την ελάχιστη από τις τιµές (d[i-1, j] + 1, d[i-1, j-1] + 1, d[i, j-1] + 1). Ο ψευδοκώδικας έχει ως εξής: int LevenshteinDistance(char s[1..m], char t[1..n]) int LevenshteinDistance(char s[1..m], char t[1..n]) { declare int d[0..m, 0..n] for i from 0 to m d[i, 0] := i // the distance of any first string to an empty second str/ for j from 0 to n d[0, j] := j // the distance of any second string to an empty first str. for j from 1 to n{ for i from 1 to m { if s[i] = t[j] then d[i, j] := d[i-1, j-1] // no operation required else d[i, j] := minimum ( d[i-1, j] + 1, // a deletion d[i, j-1] + 1, // an insertion d[i-1, j-1] + 1 // a substitution ) } } return d[m,n] } Πολυπλοκότητα: Εάν εφαρµόσουµε ορισµένες βελτιστοποιήσεις, ο αλγόριθµος έχει χωρική πολυπλοκότητα O(min(n,m)) καθώς µόνο η προηγούµενη και η τρέχουσα σειρά κάθε φορά χρειάζεται να αποθηκευτούν. Αντίστοιχα, αν χρησιµοποιήσουµε οκνηρή αποτίµηση και εξετάσουµε µόνο τις διαγώνιες αντί για τις σειρές, η χρονική πολυπλοκότητα είναι O(m(1+d)), όπου d η Levenshtein distance.αν µας ενδιαφέρει αποκλειστικά η edit distance να είναι µικρότερη από ένα δοσµένο όριο k, η χρονική πολυπλοκότητα µπορεί να γίνει O(kl) όπου l το µήκος του µικρότερου string. 13

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Τεχνικές κατασκευής δένδρων επιθεµάτων πολύ µεγάλου µεγέθους και χρήσης

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

Μηχανισµοί & Εισαγωγή στο Σχεδιασµό Μηχανών Ακαδηµαϊκό έτος: Ε.Μ.Π. Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών - 3.

Μηχανισµοί & Εισαγωγή στο Σχεδιασµό Μηχανών Ακαδηµαϊκό έτος: Ε.Μ.Π. Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών - 3. ΜΗΧΑΝΙΣΜΟΙ & ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΧΕ ΙΑΣΜΟ ΜΗΧΑΝΩΝ - 3.1 - Cpright ΕΜΠ - Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών - 2012. Με επιφύλαξη παντός δικαιώµατος. All rights reserved. Απαγορεύεται

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

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Το Πιθανοκρατικό Μοντέλο Κλασικά Μοντέλα Ανάκτησης Τρία είναι τα, λεγόμενα, κλασικά μοντέλα ανάκτησης: Λογικό (Boolean) που βασίζεται στη Θεωρία Συνόλων Διανυσματικό (Vector) που βασίζεται στη Γραμμική

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

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

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

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Εναλλακτικές Τεχνικές Εντοπισµού Θέσης Όνοµα: Κατερίνα Σπόντου Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο της διπλωµατικής Ο εντοπισµός

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

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΕΠΛ 035 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΗΛΕΚΤΡΟΛΟΓΟΥΣ ΜΗΧΑΝΙΚΟΥΣ ΚΑΙ ΜΗΧΑΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΤΩΝ Ακαδηµαϊκό έτος 2017-2018 Υπεύθυνος εργαστηρίου: Γεώργιος

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

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

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

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

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

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #05 Ακρίβεια vs. Ανάκληση Extended Boolean Μοντέλο Fuzzy Μοντέλο 1 Άδεια χρήσης Το παρόν εκπαιδευτικό

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε

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

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον Δανάη Κούτρα Eργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Εθνικό Μετσόβιο Πολυτεχνείο Θέματα Σκοπός της διπλωματικής

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

Φροντιστήριο 4. Άσκηση 1. Λύση. Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών HY463 - Συστήµατα Ανάκτησης Πληροφοριών Εαρινό Εξάµηνο

Φροντιστήριο 4. Άσκηση 1. Λύση. Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών HY463 - Συστήµατα Ανάκτησης Πληροφοριών Εαρινό Εξάµηνο Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών HY463 - Συστήµατα Ανάκτησης Πληροφοριών 2007-2008 Εαρινό Εξάµηνο Άσκηση 1 Φροντιστήριο 4 Θεωρείστε ένα έγγραφο με περιεχόμενο «αυτό είναι ένα κείμενο και

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

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών 1 Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ της Κωτσογιάννη Μαριάννας Περίληψη 1. Αντικείµενο- Σκοπός Αντικείµενο της διπλωµατικής αυτής εργασίας

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Εξαγωγή γεωγραφικής πληροφορίας από δεδομένα παρεχόμενα από χρήστες του

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

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #11 Suffix Arrays Φοίβος Μυλωνάς fmylonas@ionio.gr Ανάκτηση Πληροφορίας 1 Άδεια χρήσης Το παρόν

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

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ανάκτηση Πληροφορίας Το μοντέλο Boolean Το μοντέλο Vector Ταξινόμηση Μοντέλων IR Ανάκτηση Περιήγηση Κλασικά Μοντέλα Boolean Vector Probabilistic Δομικά Μοντέλα Non-Overlapping Lists Proximal Nodes Browsing

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

ΘΕΑΝΩ ΕΡΙΦΥΛΗ ΜΟΣΧΟΝΑ ΣΥΜΠΛΗΡΩΜΑΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ

ΘΕΑΝΩ ΕΡΙΦΥΛΗ ΜΟΣΧΟΝΑ ΣΥΜΠΛΗΡΩΜΑΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΘΕΑΝΩ ΕΡΙΦΥΛΗ ΜΟΣΧΟΝΑ ΣΥΜΠΛΗΡΩΜΑΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ Πρόβληµα µεταφοράς Η ανάπτυξη και διαµόρφωση του προβλήµατος µεταφοράς αναπτύσσεται στις σελίδες 40-45 του βιβλίου των

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

Το εσωτερικό ενός Σ Β

Το εσωτερικό ενός Σ Β Επεξεργασία Ερωτήσεων 1 Εισαγωγή ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL) ηµιουργία/κατασκευή Εισαγωγή εδοµένων

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

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

Επίλυση Γραµµικών Συστηµάτων

Επίλυση Γραµµικών Συστηµάτων Κεφάλαιο 3 Επίλυση Γραµµικών Συστηµάτων 31 Εισαγωγή Αριθµητική λύση γενικών γραµµικών συστηµάτων n n A n n x n 1 b n 1, όπου a 11 a 12 a 1n a 21 a 22 a 2n A [a i j, x a n1 a n2 a nn x n, b b 1 b 2 b n

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

4.3. Γραµµικοί ταξινοµητές

4.3. Γραµµικοί ταξινοµητές Γραµµικοί ταξινοµητές Γραµµικός ταξινοµητής είναι ένα σύστηµα ταξινόµησης που χρησιµοποιεί γραµµικές διακριτικές συναρτήσεις Οι ταξινοµητές αυτοί αναπαρίστανται συχνά µε οµάδες κόµβων εντός των οποίων

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

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #10 εικτοδότηση και Αναζήτηση Φοίβος Μυλωνάς fmylonas@ionio.gr Ανάκτηση Πληροφορίας 1 Άδεια

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

Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών. Καθηγητής: Ν. Μ. Μισυρλής 29 Μαΐου / 18

Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών. Καθηγητής: Ν. Μ. Μισυρλής 29 Μαΐου / 18 Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής 29 Μαΐου 2017 1 / 18 Βέλτιστα (στατικά) δυαδικά δένδρα αναζήτησης Παράδειγµα: Σχεδιασµός προγράµµατος

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

Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη

Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη Όνοµα: Νικολαΐδης Αντώνιος Επιβλέπων: Τ. Σελλής Περίληψη ιπλωµατικής Εργασίας Συνεπιβλέποντες: Θ. αλαµάγκας, Γ. Γιαννόπουλος

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων Ενότητα 4 Επεξεργασία πινάκων 36 37 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε

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

Κεφάλαιο 5 ο : Αλγόριθµοι Σύγκρισης Ακολουθιών Βιολογικών εδοµένων

Κεφάλαιο 5 ο : Αλγόριθµοι Σύγκρισης Ακολουθιών Βιολογικών εδοµένων Κεφάλαιο 5 ο : Αλγόριθµοι Σύγκρισης Ακολουθιών Βιολογικών εδοµένων Σε αυτό το κεφάλαιο παρουσιάζουµε 2 βασικούς αλγορίθµους σύγκρισης ακολουθιών Βιολογικών εδοµένων τους BLAST & FASTA. Οι δυο αλγόριθµοι

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

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD Σε ορισµένες περιπτώσεις είναι ιδιαίτερα χρήσιµη η δηµιουργία ιστοσελίδων ενηµερωτικού περιεχοµένου οι οποίες στη συνέχεια µπορούν να δηµοσιευθούν σε κάποιο τόπο

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

Ανάκτηση Πληροφορίας (Information Retrieval IR) ιδακτικό βοήθηµα 2. Πανεπιστήµιο Θεσσαλίας Πολυτεχνική Σχολή Τµήµα Μηχ. Η/Υ, Τηλ/νιών & ικτύων

Ανάκτηση Πληροφορίας (Information Retrieval IR) ιδακτικό βοήθηµα 2. Πανεπιστήµιο Θεσσαλίας Πολυτεχνική Σχολή Τµήµα Μηχ. Η/Υ, Τηλ/νιών & ικτύων Ανάκτηση Πληροφορίας (Information Retrieval IR) Πανεπιστήµιο Θεσσαλίας Πολυτεχνική Σχολή Τµήµα Μηχ. Η/Υ, Τηλ/νιών & ικτύων Ακαδηµαϊκό Έτος 2005-2006 ιδακτικό βοήθηµα 1 Καλύπτει το 60% του 510 σελίδες 1η

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

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

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

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

Ανάκτηση Πληροφορίας (Information Retrieval IR)

Ανάκτηση Πληροφορίας (Information Retrieval IR) Ανάκτηση Πληροφορίας (Information Retrieval IR) Πανεπιστήµιο Θεσσαλίας Πολυτεχνική Σχολή Τµήµα Μηχ. Η/Υ, Τηλ/νιών & ικτύων Ακαδηµαϊκό Έτος 2005-2006 ιδακτικό βοήθηµα 1 Καλύπτει το 60% του αντικειµένου

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

Insert (P) : Προσθέτει ένα νέο πρότυπο P στο λεξικό D. Delete (P) : Διαγράφει το πρότυπο P από το λεξικό D

Insert (P) : Προσθέτει ένα νέο πρότυπο P στο λεξικό D. Delete (P) : Διαγράφει το πρότυπο P από το λεξικό D Dynamic dictionary matching problem Έχουμε ένα σύνολο πρότυπων D = { P1, P2,..., Pk } oπου D το λεξικό και ένα αυθαίρετο κειμενο T [1,n] To σύνολο των πρότυπων αλλάζει με το χρόνο (ρεαλιστική συνθήκη).

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

Ανάκληση Πληποφοπίαρ. Information Retrieval. Διδάζκων Δημήηριος Καηζαρός

Ανάκληση Πληποφοπίαρ. Information Retrieval. Διδάζκων Δημήηριος Καηζαρός Ανάκληση Πληποφοπίαρ Information Retrieval Διδάζκων Δημήηριος Καηζαρός Διάλεξη 4η: 04/03/2017 1 Phrase queries 2 Ερωτήματα φράσεως Έστω ότι επιθυμούμε ν απαντήσουμε ερωτήματα της μορφής stanford university

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

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

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

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

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

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

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ ΑΓΩΓΟΙ & ΙΑΝΥΣΜΑΤΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΣΥΓΚΡΟΥΣΕΙΣ ΣΕ ΑΓΩΓΟΥΣ & ΜΕΓΙΣΤΟΠΟΙΗΣΗ ΠΑΡΑΓΩΓΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΨΗΛΩΝ

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

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Εισαγωγή ΣΔΒΔ Σύνολο από προγράµµατα για τη διαχείριση της ΒΔ Αρχεία ευρετηρίου Κατάλογος ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ Αρχεία δεδοµένων συστήµατος Σύστηµα Βάσεων Δεδοµένων (ΣΒΔ)

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

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ ΜΕΡΟΣ ΤΡΙΤΟ Πολίτη Όλγα Α.Μ. 4528 Εξάµηνο 8ο Υπεύθυνος Καθηγητής Λυκοθανάσης

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n.

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n. Πρώτο Σύνολο Ασκήσεων 2014-2015 Κατερίνα Ποντζόλκοβα, 5405 Αθανασία Ζαχαριά, 5295 Ερώτημα 1 Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n. Ο αλγόριθμος εύρεσης

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

11 Το ολοκλήρωµα Riemann

11 Το ολοκλήρωµα Riemann Το ολοκλήρωµα Riem Το πρόβληµα υπολογισµού του εµβαδού οποιασδήποτε επιφάνειας ( όπως κυκλικοί τοµείς, δακτύλιοι και δίσκοι, ελλειπτικοί δίσκοι, παραβολικά και υπερβολικά χωρία κτλ) είναι γνωστό από την

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

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #06 Πιθανοτικό Μοντέλο 1 Άδεια χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Εισαγωγή στον Προγραμματισμό

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

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

«Μηχανή Αναζήτησης Αρχείων» Ημερομηνία Παράδοσης: 30/04/2015, 09:00 π.μ.

«Μηχανή Αναζήτησης Αρχείων» Ημερομηνία Παράδοσης: 30/04/2015, 09:00 π.μ. ΕΡΓΑΣΙΑ 4 «Μηχανή Αναζήτησης Αρχείων» Ημερομηνία Παράδοσης: 30/04/2015, 09:00 π.μ. Στόχος Στόχος της Εργασίας 4 είναι να η εξοικείωση με την αντικειμενοστρέφεια (object oriented programming). Πιο συγκεκριμένα,

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

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

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

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

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

Γ. Κορίλη Αλγόριθµοι ροµολόγησης - Γ. Κορίλη Αλγόριθµοι ροµολόγησης http://www.seas.upenn.edu/~tcom50/lectures/lecture.pdf ροµολόγηση σε ίκτυα εδοµένων Αναπαράσταση ικτύου µε Γράφο Μη Κατευθυνόµενοι Γράφοι Εκτεταµένα έντρα Κατευθυνόµενοι

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

Παλαιότερες ασκήσεις

Παλαιότερες ασκήσεις Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών HY6 - Συστήµατα Ανάκτησης Πληροφοριών Παλαιότερες ασκήσεις η Σειρά Ασκήσεων (Αξιολόγηση της Αποτελεσµατικότητας της Ανάκτησης) Άσκηση ( η σειρά ασκήσεων

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

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.

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

Σηµειώσεις στις σειρές

Σηµειώσεις στις σειρές . ΟΡΙΣΜΟΙ - ΓΕΝΙΚΕΣ ΕΝΝΟΙΕΣ Σηµειώσεις στις σειρές Στην Ενότητα αυτή παρουσιάζουµε τις βασικές-απαραίτητες έννοιες για την µελέτη των σειρών πραγµατικών αριθµών και των εφαρµογών τους. Έτσι, δίνονται συστηµατικά

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

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

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

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες

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

3 Αναδροµή και Επαγωγή

3 Αναδροµή και Επαγωγή 3 Αναδροµή και Επαγωγή Η ιδέα της µαθηµατικής επαγωγής µπορεί να επεκταθεί και σε άλλες δοµές εκτός από το σύνολο των ϕυσικών N. Η ορθότητα της µαθηµατικής επαγωγής ϐασίζεται όπως ϑα δούµε λίγο αργότερα

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΑΝΑΠΤΥΞΗ ΕΙΚΟΝΙΚΗΣ ΠΛΑΤΦΟΡΜΑΣ ΠΡΟΣΟΜΟΙΩΣΗΣ ΤΗΣ ΠΑΡΑΜΟΡΦΩΣΗΣ ΑΝΘΡΩΠΙΝΟΥ ΗΠΑΤΟΣ ΜΕ ΤΗ ΧΡΗΣΗ ΑΠΤΙΚΟΥ ΜΕΣΟΥ Δηµήτρης Δούνας

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

Σχήµα 3.1: Εισαγωγή shift register σε βρόγχο for-loop.

Σχήµα 3.1: Εισαγωγή shift register σε βρόγχο for-loop. Η δοµή «Shift register» 1. Η δοµή «Shift register» εισάγεται στο βρόγχο for-loop αλλά και σε άλλους βρόγχους που θα δούµε στη συνέχεια, όπως ο βρόγχος «While loop». Ο τρόπος εισαγωγής και λειτουργίας της

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

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to Κεφάλαιο 2 Δοµές Δεδοµένων Ι Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Δοµές Δεδοµένων Ι Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

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

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

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort 1, c 3, a 3, b 7, d 7, g 7, e B 0 1 3 4 5 6 7 8 9 1 BucketSort (Ταξινόμηση Κάδου) - Αρχικά θεωρείται ένα κριτήριο κατανομής με βάση το οποίο

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

Ημερομηνία Παράδοσης: 4/4/2013

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

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

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοηµοσύνη Ι» 7ο Φροντιστήριο 15/1/2008

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοηµοσύνη Ι» 7ο Φροντιστήριο 15/1/2008 Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοηµοσύνη Ι» 7ο Φροντιστήριο 5//008 Πρόβληµα ο Στα παρακάτω ερωτήµατα επισηµαίνουµε ότι perceptron είναι ένας νευρώνας και υποθέτουµε, όπου χρειάζεται, τη χρήση δικτύων

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

υναµική Μηχανών Ι Ακαδηµαϊκό έτος : Ε. Μ. Π. Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών ΥΝΑΜΙΚΗ ΜΗΧΑΝΩΝ Ι - 22.

υναµική Μηχανών Ι Ακαδηµαϊκό έτος : Ε. Μ. Π. Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών ΥΝΑΜΙΚΗ ΜΗΧΑΝΩΝ Ι - 22. υναµική Μηχανών Ι Ακαδηµαϊκό έτος: 0-0 ΥΝΑΜΙΚΗ ΜΗΧΑΝΩΝ Ι -. - υναµική Μηχανών Ι Ακαδηµαϊκό έτος: 0-0 Cprigh ΕΜΠ - Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών - 0. Με επιφύλαξη παντός

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

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι

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

Week. 6: Java Collections

Week. 6: Java Collections Week 6: Java Collections Συλλογές δεδοµένων [collections] Εβδοµάδα 6: Συλλογές δεδοµένων στην Java Οι συλλογές [collections] (αναφέρονται και ως «υποδοχείς δεδοµένων» [containers]) είναι κλάσεις που χρησιµοποιούνται

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

Ανάκτηση πληροφορίας

Ανάκτηση πληροφορίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ανάκτηση πληροφορίας Ενότητα 6: Ο Αντεστραμμένος Κατάλογος Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Ανάκτηση Δεδομένων (Information Retrieval)

Ανάκτηση Δεδομένων (Information Retrieval) Ανάκτηση Δεδομένων (Information Retrieval) Παύλος Εφραιμίδης Βάσεις Δεδομένων Ανάκτηση Δεδομένων 1 Information Retrieval (1) Βάσεις Δεδομένων: Περιέχουν δομημένη πληροφορία: Πίνακες Ανάκτηση Πληροφορίας

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

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

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

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

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

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Περίληψη Επίλυση προβληµάτων χρησιµοποιώντας Greedy Αλγόριθµους Ελάχιστα Δέντρα Επικάλυψης Αλγόριθµος του Prim Αλγόριθµος του Kruskal Πρόβληµα Ελάχιστης Απόστασης

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

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 1 /

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

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί);

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί); Μοντελοποίηση του Υπολογισµού Στοιχεία Θεωρίας Υπολογισµού (): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ποιές οι θεµελιώδεις δυνατότητες

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

Ενότητα 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): επιστρέφει

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

Αναδρομή Ανάλυση Αλγορίθμων

Αναδρομή Ανάλυση Αλγορίθμων Αναδρομή Ανάλυση Αλγορίθμων Παράδειγμα: Υπολογισμός του παραγοντικού Ορισμός του n! n! = n x (n - 1) x x 2 x 1 Ο παραπάνω ορισμός μπορεί να γραφεί ως n! = 1 αν n = 0 n x (n -1)! αλλιώς Παράδειγμα (συνέχ).

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 18/12/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 18/12/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2012-2013 Προθεσµία: 18/12/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης 1 Οδηγίες αποστολής άσκησης Διαδικαστικά Η εργασία

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

Οι βασικές πράξεις που ορίζουν τον ΑΤ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

Οι βασικές πράξεις που ορίζουν τον ΑΤ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες: υαδικά έντρα Αναζήτησης (Binary Search Trees) Ορισµός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόµενα στο αριστερό υποδέντρο του t είναι

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 1 Αλγόριθμοι Ταξινόμησης Μέρος 1 Μανόλης Κουμπαράκης 1 Το Πρόβλημα της Ταξινόμησης Το πρόβλημα της ταξινόμησης (sorting) μιας ακολουθίας στοιχείων με κλειδιά ενός γνωστού τύπου (π.χ., τους ακέραιους ή τις

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

Λύση (από: Τσιαλιαμάνης Αναγνωστόπουλος Πέτρος) (α) Το trie του λεξιλογίου είναι

Λύση (από: Τσιαλιαμάνης Αναγνωστόπουλος Πέτρος) (α) Το trie του λεξιλογίου είναι Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών HY463 - Συστήματα Ανάκτησης Πληροφοριών 2006-2007 Εαρινό Εξάμηνο 3 η Σειρά ασκήσεων (Ευρετηρίαση, Αναζήτηση σε Κείμενα και Άλλα Θέματα) (βαθμοί 12: όποιος

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 4 Αλγόριθμοι Ταξινόμησης Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές 1 Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Οι αλγόριθμοι ταξινόμησης που είδαμε μέχρι τώρα αποφασίζουν πώς να

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μέρος Β (Οργάνωση Υπολογιστών)

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μέρος Β (Οργάνωση Υπολογιστών) ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΥΠΟΛΟΓΙΣΤΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μέρος Β (Οργάνωση Υπολογιστών)

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

an:3 are:6 a:10

an:3 are:6 a:10 Άσκηση 1 Προγραμματισμός Συστήματος Προθεσμία: 18 Μαΐου 2014 Σ αυτή την άσκηση θα υλοποιήσετε ένα σύστημα auto-complete κατά τη διάρκεια πληκτρολόγησης. Ο πυρήνας του συστήματος είναι μια δομή trie (απλό

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 3 η Είσοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

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

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

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

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Αριθµητική Ανάλυση 1 εκεµβρίου / 43 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 1 / 43 Κεφ.5. Αριθµητικός Υπολογισµός Ιδιοτιµών και Ιδιοδιανυσµάτων ίνεται ένας πίνακας A C n n και Ϲητούνται να προσδιορισθούν οι

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

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

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ ) Ενδεικτικές Λύσεις ΕΡΓΑΣΙΑ η Ηµεροµηνία Αποστολής στον Φοιτητή: Ιανουαρίου 6 Ηµεροµηνία Παράδοσης της Εργασίας από

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

Q 12. c 3 Q 23. h 12 + h 23 + h 31 = 0 (6)

Q 12. c 3 Q 23. h 12 + h 23 + h 31 = 0 (6) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Πολιτικών Μηχανικών Τοµέας Υδατικών Πόρων Μάθηµα: Τυπικά Υδραυλικά Έργα Μέρος 2: ίκτυα διανοµής Άσκηση E0: Μαθηµατική διατύπωση µοντέλου επίλυσης απλού δικτύου διανοµής

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

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

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

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

Multimedia IR. εικτοδότηση και Αναζήτηση. Ανάκτηση Πληροφορίας

Multimedia IR. εικτοδότηση και Αναζήτηση. Ανάκτηση Πληροφορίας Multimedia IR εικτοδότηση και Αναζήτηση 1 Εισαγωγή Μεγάλες ποσότητες πληροφορίες υπάρχουν σε αρχεία εικόνων, ήχου, video. Οι τυπικές µέθοδοι ανάκτησης κειµένου δεν µπορούν να εφαρµοστούν άµεσα στην περίπτωση

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

Atlantis - Νέο user interface

Atlantis - Νέο user interface New Desktop 1 Atlantis - Νέο user interface ATLANTIS - ΝΕΟ USER INTERFACE...2 ΓΕΝΙΚΗ ΠΑΡΟΥΣΙΑΣΗ...3 ΓΡΑΜΜΗ ΣΥΣΤΗΜΑΤΟΣ...4 ΜΠΑΡΑ ΧΡΗΣΤΗ (USER TOOLBAR)...5 ΚΕΝΤΡΙΚΟ ΜΕΝΟΥ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ...6 Κεντρικό μενού

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

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

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

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

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 1 ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Επεξεργασία Ερωτήσεων Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL)

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

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

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης. Γενικές Παρατηρήσεις Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα () Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Υπάρχουν µη κανονικές γλώσσες, π.χ., B = { n n n }. Αυτό

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

ΙΙ ιαφορικός Λογισµός πολλών µεταβλητών. ιαφόριση συναρτήσεων πολλών µεταβλητών

ΙΙ ιαφορικός Λογισµός πολλών µεταβλητών. ιαφόριση συναρτήσεων πολλών µεταβλητών 54 ΙΙ ιαφορικός Λογισµός πολλών µεταβλητών ιαφόριση συναρτήσεων πολλών µεταβλητών Ένας στέρεος ορισµός της παραγώγισης για συναρτήσεις πολλών µεταβλητών ανάλογος µε τον ορισµό για συναρτήσεις µιας µεταβλητής

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

Κεφ.11: Ευρετήρια και Κατακερματισμός

Κεφ.11: Ευρετήρια και Κατακερματισμός Κεφ.11: Ευρετήρια και Κατακερματισμός Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Κεφ. 11: Ευρετήρια-Βασική θεωρία Μηχανισμοί ευρετηρίου χρησιμοποιούνται για την επιτάχυνση

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

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ 1 Αριθµητικό Σύστηµα! Ορίζει τον τρόπο αναπαράστασης ενός αριθµού µε διακεκριµένα σύµβολα! Ένας αριθµός αναπαρίσταται διαφορετικά σε κάθε σύστηµα,

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