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

Μέγεθος: 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 κτλ) στην αναζήτηση. Οι προτάσεις αυτές καθορίζονται από τον ειδικό µηχανισµό αναζήτησης που εφαρµόζεται στην εφαρµογή. 1 3

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, και γεµίζουµε τον πίνακα µε τον αριθµό των 4 5 Πολλοί ερευνητές ορίζουν ως 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 σύνολο των πρότυπων αλλάζει με το χρόνο (ρεαλιστική συνθήκη).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΞΙΣΩΣΕΩΝ

ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΞΙΣΩΣΕΩΝ ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΞΙΣΩΣΕΩΝ Θα ξεκινήσουµε την παρουσίαση των γραµµικών συστηµάτων µε ένα απλό παράδειγµα από τη Γεωµετρία, το οποίο ϑα µας ϐοηθήσει στην κατανόηση των συστηµάτων αυτών και των συνθηκών

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

ιατύπωση τυπικής µορφής προβληµάτων Γραµµικού

ιατύπωση τυπικής µορφής προβληµάτων Γραµµικού Ο αλγόριθµος είναι αλγεβρική διαδικασία η οποία χρησιµοποιείται για την επίλυση προβληµάτων (προτύπων) Γραµµικού Προγραµµατισµού (ΠΓΠ). Ο αλγόριθµος έχει διάφορες παραλλαγές όπως η πινακοποιηµένη µορφή.

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

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

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

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 22 Counting sort, bucket sort και radix sort 1 / 16 Ιδιότητες αλγορίθμων ταξινόμησης ευστάθεια (stable

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

Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε σχετικά με τον έλεγχο της καπνιστικής συνήθειας 1 22 Λογισμικές εφαρμογές καταγραφής και αξιοποίησης πληροφοριών σχετικά με τον έλεγχο της καπνιστικής συνήθειας Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων

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

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

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

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

Atlantis - Νέο user interface

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

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

Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Έκδοση 0.1.

Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Έκδοση 0.1. Κομβικό Σημείο Επαφής Υπουργείου Εσωτερικών Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ Έκδοση 0.1. Νοέμβρης 2014 Περιεχόμενα 1. ΕΙΣΑΓΩΓΗ... 2 2.

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

Εφαρµογή: Σύστηµα ιαχείρισης ιαδικτυακού Περίπτερου / Ιστοσελίδας στον διαδικτυακό τόπο kalliergea.gr

Εφαρµογή: Σύστηµα ιαχείρισης ιαδικτυακού Περίπτερου / Ιστοσελίδας στον διαδικτυακό τόπο kalliergea.gr ..χτίζουµε την ιστοσελίδα σας στο Internet www.kalliergea.gr Λάουρα Π. Καζακράντε «Καλλιεργαία» Πληροφορική - Internet - ιαφήµιση - Μεταφράσεις Τηλ.: 211 0104925, 695 6118589 Email: info@kalliergea.gr

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

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

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

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

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

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

Δομές δεδομένων (2) Αλγόριθμοι Δομές δεδομένων (2) Αλγόριθμοι Παράγωγοι τύποι (struct) σύνοψη προηγουμένων Πίνακες: πολλές μεταβλητές ίδιου τύπου Παράγωγοι τύποι ή Δομές (struct): ομαδοποίηση μεταβλητών διαφορετικού τύπου struct Student

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Θέµα 1 ο Α. Να απαντήσετε τις παρακάτω ερωτήσεις τύπου Σωστό Λάθος (Σ Λ) 1. Σκοπός της συγχώνευσης 2 ή περισσοτέρων ταξινοµηµένων πινάκων είναι η δηµιουργία

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

Γραµµικός Προγραµµατισµός - Μέθοδος Simplex

Γραµµικός Προγραµµατισµός - Μέθοδος Simplex Γραµµικός Προγραµµατισµός - Μέθοδος Simplex Η πλέον γνωστή και περισσότερο χρησιµοποιηµένη µέθοδος για την επίλυση ενός γενικού προβλήµατος γραµµικού προγραµµατισµού, είναι η µέθοδος Simplex η οποία αναπτύχθηκε

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

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1 Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ.Χατζόπουλος 2 Δένδρο αναζήτησης είναι ένας ειδικός τύπος δένδρου που χρησιμοποιείται για να καθοδηγήσει την αναζήτηση μιας

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

Είναι το ηλεκτρικό ρεύµα διανυσµατικό µέγεθος;

Είναι το ηλεκτρικό ρεύµα διανυσµατικό µέγεθος; Είναι το ηλεκτρικό ρεύµα διανυσµατικό µέγεθος; Για να εξετάσουµε το κύκλωµα LC µε διδακτική συνέπεια νοµίζω ότι θα πρέπει να τηρήσουµε τους ορισµούς που δώσαµε στα παιδιά στη Β Λυκείου. Ας ξεκινήσουµε

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

η αποδοτική κατανοµή των πόρων αποδοτική κατανοµή των πόρων Οικονοµική αποδοτικότητα Οικονοµία των µεταφορών Η ανεπάρκεια των πόρων &

η αποδοτική κατανοµή των πόρων αποδοτική κατανοµή των πόρων Οικονοµική αποδοτικότητα Οικονοµία των µεταφορών Η ανεπάρκεια των πόρων & 5 η αποδοτική κατανοµή των πόρων Οικονοµική αποδοτικότητα: Η αποτελεί θεµελιώδες πρόβληµα σε κάθε σύγχρονη οικονοµία. Το πρόβληµα της αποδοτικής κατανοµής των πόρων µπορεί να εκφρασθεί µε 4 βασικά ερωτήµατα

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

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

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

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

5. Μέθοδοι αναγνώρισης εκπαίδευση χωρίς επόπτη

5. Μέθοδοι αναγνώρισης εκπαίδευση χωρίς επόπτη 5. Μέθοδοι αναγνώρισης εκπαίδευση χωρίς επόπτη Tο πρόβληµα του προσδιορισµού των συγκεντρώσεων των προτύπων, όταν δεν είναι γνωστό το πλήθος τους και η ταυτότητα των προτύπων, είναι δύσκολο και για την

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

Εργαστήριο Σημασιολογικού Ιστού

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 8: Εισαγωγή στη SPARQL Βασική Χρήση Μ.Στεφανιδάκης 3-5-2015. Η γλώσσα ερωτημάτων SPARQL Ερωτήσεις (και ενημερώσεις) σε σετ δεδομένων RDF Και σε δεδομένα άλλης μορφής

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

ΠροσδιορισµόςΒέλτιστης Λύσης στα Προβλήµατα Μεταφοράς Η µέθοδος Stepping Stone

ΠροσδιορισµόςΒέλτιστης Λύσης στα Προβλήµατα Μεταφοράς Η µέθοδος Stepping Stone ΠροσδιορισµόςΒέλτιστης Λύσης στα Προβλήµατα Μεταφοράς Η µέθοδος Stepping Stone Hµέθοδος Stepping Stoneείναι µία επαναληπτική διαδικασία για τον προσδιορισµό της βέλτιστης λύσης σε ένα πρόβληµα µεταφοράς.

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

Ανάλυση Σ.Α.Ε στο χώρο κατάστασης

Ανάλυση Σ.Α.Ε στο χώρο κατάστασης ΚΕΣ : Αυτόµατος Έλεγχος ΚΕΣ Αυτόµατος Έλεγχος Ανάλυση Σ.Α.Ε στο χώρο 6 Nicola Tapaouli Λύση εξισώσεων ΚΕΣ : Αυτόµατος Έλεγχος Βιβλιογραφία Ενότητας Παρασκευόπουλος [4]: Κεφάλαιο 5: Ενότητες 5.-5. Παρασκευόπουλος

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

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο 2015 Δοµές Δεδοµένων - Εργασία 2 Διδάσκων: E. Μαρκάκης Ταξινόµηση και Ουρές Προτεραιότητας Σκοπός της 2 ης εργασίας είναι η εξοικείωση

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

Οδηγίες Χρήσης της MySQL

Οδηγίες Χρήσης της MySQL ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Οδηγίες Χρήσης της MySQL Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Νοέμβριος 2007 1 Περιεχόμενα Εισαγωγή...2

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

QR είναι ˆx τότε x ˆx. 10 ρ. Ποιά είναι η τιµή του ρ και γιατί (σύντοµη εξήγηση). P = [X. 0, X,..., X. (n 1), X. n] a(n + 1 : 1 : 1)

QR είναι ˆx τότε x ˆx. 10 ρ. Ποιά είναι η τιµή του ρ και γιατί (σύντοµη εξήγηση). P = [X. 0, X,..., X. (n 1), X. n] a(n + 1 : 1 : 1) ΕΠΙΣΤΗΜΟΝΙΚΟΣ ΥΠΟΛΟΓΙΣΜΟΣ I (22 Σεπτεµβρίου) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ 1ο ΘΕΜΑ 1. Αφού ορίσετε ακριβώς τι σηµαίνει πίσω ευσταθής υπολογισµός, να εξηγήσετε αν ο υ- πολογισµός του εσωτερικού γινοµένου δύο διανυσµάτων

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

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

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

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

ΕΝΟΤΗΤΑ 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. Λειτουργίες που θέλουµε

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

Πληροφοριακά Συστήµατα

Πληροφοριακά Συστήµατα Nell Dale John Lewis Chapter 12 Πληροφοριακά Συστήµατα Στόχοι Ενότητας Η κατανόηση της έννοιας «Πληροφοριακό Σύστηµα» Επεξήγηση της οργάνωσης λογιστικών φύλλων (spreadsheets) Επεξήγηση της ανάλυσης δεδοµένων

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

Πρόβληµα 2 (15 µονάδες)

Πρόβληµα 2 (15 µονάδες) ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ, 2013-2014 ΔΙΔΑΣΚΩΝ: Ε. Μαρκάκης Πρόβληµα 1 (5 µονάδες) 2 η Σειρά Ασκήσεων Προθεσµία Παράδοσης: 19/1/2014 Υπολογίστε

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

Ν!=1*2*3* *(N-1) * N => N! = (Ν-1)! * N έτσι 55! = 54! * 55

Ν!=1*2*3* *(N-1) * N => N! = (Ν-1)! * N έτσι 55! = 54! * 55 ΑΝΑ ΡΟΜΗ- ΑΣΚΗΣΕΙΣ Μια µέθοδος είναι αναδροµική όταν καλεί τον εαυτό της και έχει µια συνθήκη τερµατισµού π.χ. το παραγοντικό ενός αριθµού Ν, µπορεί να καλεί το παραγοντικό του αριθµού Ν-1 το παραγοντικό

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

Κεφάλαιο 3 ο : Εισαγωγή στο δέντρο επιθεµάτων (Suffix Tree) και στις Εφαρµογές του

Κεφάλαιο 3 ο : Εισαγωγή στο δέντρο επιθεµάτων (Suffix Tree) και στις Εφαρµογές του Κεφάλαιο 3 ο : Εισαγωγή στο δέντρο επιθεµάτων (Suffix Tree) και στις Εφαρµογές του Στα πλαίσια αυτού του κεφαλαίου παρουσιάζουµε δυο ευέλικτες δενδρικές δοµές: το έντρο Επιθεµάτων (Suffix Tree) και το

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

ΑΡΧΕΣ ΟΙΚΟΝΟΜΙΚΗΣ ΘΕΩΡΙΑΣ

ΑΡΧΕΣ ΟΙΚΟΝΟΜΙΚΗΣ ΘΕΩΡΙΑΣ http://www.economics.edu.gr 1 ΑΡΧΕΣ ΟΙΚΟΝΟΜΙΚΗΣ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 1 ο : ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΣΚΗΣΕΙΣ ΥΠΟ ΕΙΓΜΑΤΑ ( τρόποι επίλυσης παρατηρήσεις σχόλια ) ΑΣΚΗΣΗ 1 Έστω ο πίνακας παραγωγικών δυνατοτήτων µιας

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

SilverPlatter WebSPIRS 4.1.

SilverPlatter WebSPIRS 4.1. WebSPIRS 4.1. Η υπηρεσία WebSPIRS από τη SilverPlatter αποτελεί ένα φιλικό εργαλείο πρόσβασης και αναζήτησης σε περιεχόμενα βάσεων δεδομένων. Η Βιβλιοθήκη και Κέντρο Πληροφόρησης του Πανεπιστημίου Θεσσαλίας

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

ΣΕΙΡΕΣ TAYLOR. Στην Ενότητα αυτή θα ασχοληθούµε µε την προσέγγιση συναρτήσεων µέσω πολυωνύµων. Πολυώνυµο είναι κάθε συνάρτηση της µορφής:

ΣΕΙΡΕΣ TAYLOR. Στην Ενότητα αυτή θα ασχοληθούµε µε την προσέγγιση συναρτήσεων µέσω πολυωνύµων. Πολυώνυµο είναι κάθε συνάρτηση της µορφής: ΣΕΙΡΕΣ TAYLOR Στην Ενότητα αυτή θα ασχοληθούµε µε την προσέγγιση συναρτήσεων µέσω πολυωνύµων Πολυώνυµο είναι κάθε συνάρτηση της µορφής: p( ) = a + a + a + a + + a, όπου οι συντελεστές α i θα θεωρούνται

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 20 Huffman codes 1 / 12 Κωδικοποίηση σταθερού μήκους Αν χρησιμοποιηθεί κωδικοποίηση σταθερού μήκους δηλαδή

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

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

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

Γραµµική Άλγεβρα. Εισαγωγικά. Μέθοδος Απαλοιφής του Gauss

Γραµµική Άλγεβρα. Εισαγωγικά. Μέθοδος Απαλοιφής του Gauss Γραµµική Άλγεβρα Εισαγωγικά Υπάρχουν δύο βασικά αριθµητικά προβλήµατα στη Γραµµική Άλγεβρα. Το πρώτο είναι η λύση γραµµικών συστηµάτων Aλγεβρικών εξισώσεων και το δεύτερο είναι η εύρεση των ιδιοτιµών και

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας

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

Περιγραφή Συστηµάτων Αυτοµάτου Ελέγχου

Περιγραφή Συστηµάτων Αυτοµάτου Ελέγχου ΚΕΣ : Αυτόµατος Έλεγχος ΚΕΣ Αυτόµατος Έλεγχος Περιγραφή Συστηµάτων Αυτοµάτου Ελέγχου ΚΕΣ : Αυτόµατος Έλεγχος Βιβλιογραφία Ενότητας Παρασκευόπουλος [5]: Κεφάλαιο 3, Ενότητες 3. 3.8 Παρασκευόπουλος [5]:

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

ΠΡΟΒΛΗΜΑΤΑ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ

ΠΡΟΒΛΗΜΑΤΑ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ ΠΡΟΒΛΗΜΑΤΑ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ Ελαχιστοποίηση κόστους διατροφής Ηεπιχείρηση ζωοτροφών ΒΙΟΤΡΟΦΕΣ εξασφάλισε µια ειδική παραγγελίααπό έναν πελάτη της για την παρασκευή 1.000 κιλών ζωοτροφής, η οποία θα πρέπει

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

EBSCOhost Research Databases

EBSCOhost Research Databases Η EBSCOhost είναι ένα online σύστημα αναζήτησης σε έναν αριθμό βάσεων δεδομένων, στις οποίες είναι συμβεβλημένο κάθε φορά το ίδρυμα. Διαθέτει πολύγλωσσο περιβάλλον αλληλεπίδρασης (interface) με προεπιλεγμένη

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

Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ. Εισαγωγή

Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ. Εισαγωγή Εισαγωγή Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ Ξεκινάµε την εργαστηριακή µελέτη της Ψηφιακής Λογικής των Η/Υ εξετάζοντας αρχικά τη µορφή των δεδοµένων που αποθηκεύουν και επεξεργάζονται οι υπολογιστές και προχωρώντας

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

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

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1 Κατακερματισμός 4/3/2009 Μ.Χατζόπουλος 1 H ιδέα που βρίσκεται πίσω από την τεχνική του κατακερματισμού είναι να δίνεται μια συνάρτησης h, που λέγεται συνάρτηση κατακερματισμού ή παραγωγής τυχαίων τιμών

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

Στατιστικό κριτήριο χ 2

Στατιστικό κριτήριο χ 2 18 Μεθοδολογία Επιστηµονικής Έρευνας & Στατιστική Στατιστικό κριτήριο χ 2 Ο υπολογισµός του κριτηρίου χ 2 γίνεται µέσω του µενού [Statistics => Summarize => Crosstabs...]. Κατά τη συγκεκριµένη διαδικασία

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

6 Εισαγωγή στο Wordpress 3.x

6 Εισαγωγή στο Wordpress 3.x Περιεχόμενα 1 Εγκατάσταση του WordPress... 11 Ελάχιστες απαιτήσεις... 11 Easy PHP... 12 Εγκατάσταση Easy PHP... 12 Βήματα εγκατάστασης EasyPHP με εικόνες... 13 Το EasyPHP στα Ελληνικά... 17 Κατέβασμα και

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

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Άσκηση 1 Αποδείξτε τη µεταβατική και τη συµµετρική ιδιότητα του Θ. Λύση Μεταβατική Ιδιότητα (ορισµός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)). Για

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

ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης Ονοµατεπώνυµο: Αριθµός Μητρώου: Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία:

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

o AND o IF o SUMPRODUCT

o AND o IF o SUMPRODUCT Πληροφοριακά Εργαστήριο Management 1 Information Συστήματα Systems Διοίκησης ΤΕΙ Τμήμα Ελεγκτικής Ηπείρου Χρηματοοικονομικής (Παράρτημα Πρέβεζας) και Αντικείµενο: Μοντελοποίηση προβλήµατος Θέµατα που καλύπτονται:

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

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης)

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης) ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης) Καλλονιάτης Χρήστος Επίκουρος Καθηγητής Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας, Πανεπιστήμιο Αιγαίου http://www.ct.aegean.gr/people/kalloniatis

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

1.1.3 t. t = t2 - t1 1.1.4 x2 - x1. x = x2 x1 . . 1

1.1.3 t. t = t2 - t1 1.1.4  x2 - x1. x = x2 x1 . . 1 1 1 o Κεφάλαιο: Ευθύγραµµη Κίνηση Πώς θα µπορούσε να περιγραφεί η κίνηση ενός αγωνιστικού αυτοκινήτου; Πόσο γρήγορα κινείται η µπάλα που κλώτσησε ένας ποδοσφαιριστής; Απαντήσεις σε τέτοια ερωτήµατα δίνει

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

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

ΕΡΕΥΝΗΤΙΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΑΡΧΙΜΗΔΗΣ ΕΝΙΣΧΥΣΗ ΕΡΕΥΝΗΤΙΚΩΝ ΟΜΑΔΩΝ ΣΤΟ ΤΕΙ ΣΕΡΡΩΝ. Ενέργεια. 2.2.3.στ ΘΕΜΑ ΕΡΕΥΝΑΣ: ΔΙΑΡΘΡΩΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΕΧΡΩΜΩΝ ΕΓΓΡΑΦΩΝ

ΕΡΕΥΝΗΤΙΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΑΡΧΙΜΗΔΗΣ ΕΝΙΣΧΥΣΗ ΕΡΕΥΝΗΤΙΚΩΝ ΟΜΑΔΩΝ ΣΤΟ ΤΕΙ ΣΕΡΡΩΝ. Ενέργεια. 2.2.3.στ ΘΕΜΑ ΕΡΕΥΝΑΣ: ΔΙΑΡΘΡΩΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΕΧΡΩΜΩΝ ΕΓΓΡΑΦΩΝ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ (Τ.Ε.Ι.) ΣΕΡΡΩΝ Τμήμα ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΡΕΥΝΗΤΙΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΑΡΧΙΜΗΔΗΣ ΕΝΙΣΧΥΣΗ ΕΡΕΥΝΗΤΙΚΩΝ ΟΜΑΔΩΝ ΣΤΟ ΤΕΙ ΣΕΡΡΩΝ Ενέργεια. 2.2.3.στ ΘΕΜΑ ΕΡΕΥΝΑΣ: ΔΙΑΡΘΡΩΣΗ

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

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα? Κόκκινα-Μαύρα ένδρα (Red-Black Trees) Ένα κόκκινο-µαύρο δένδρο είναι ένα δυαδικό δένδρο αναζήτησης στο οποίο οι κόµβοι µπορούν να χαρακτηρίζονται από ένα εκ των δύο χρωµάτων: µαύρο-κόκκινο. Το χρώµα της

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

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

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

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ:

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ: ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: Υπολογιστικά Συστήµατα & Τεχνολογίες Πληροφορικής ΣΥΓΓΡΑΦΕΑΣ: Γιώργος Γιαννόπουλος, διδακτορικός φοιτητής

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

Ανάλυση Δεδοµένων µε χρήση του Στατιστικού Πακέτου R

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

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

4.4 Ερωτήσεις διάταξης. Στις ερωτήσεις διάταξης δίνονται:

4.4 Ερωτήσεις διάταξης. Στις ερωτήσεις διάταξης δίνονται: 4.4 Ερωτήσεις διάταξης Στις ερωτήσεις διάταξης δίνονται:! µία σειρά από διάφορα στοιχεία και! µία πρόταση / κανόνας ή οδηγία και ζητείται να διαταχθούν τα στοιχεία µε βάση την πρόταση αυτή. Οι ερωτήσεις

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

World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών

World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών Περιεχόµενα World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών Εισαγωγή Ιστορική Αναδροµή Το ιαδίκτυο και το WWW Υπερκείµενο Εντοπισµός πληροφοριών στο WWW Search Engines Portals Unicode Java Plug-Ins 1 2

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 9-1

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 9-1 Σωροί Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθµος ταξινόµησης HeapSort Παραλλαγές Σωρών ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι

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

Κεφάλαιο 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. Σωρός και Ταξινόµηση

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

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

AVL-trees C++ implementation

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

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

Η δήλωση πού δηµιουργεί αποθήκευση τών δεδοµένων ονοµαζεται ορισµός τής µεταβλητής.

Η δήλωση πού δηµιουργεί αποθήκευση τών δεδοµένων ονοµαζεται ορισµός τής µεταβλητής. Από το βιβλίο C: Βήµα-Πρός-Βήµα, Κεφάλαιο 3ο Συγγραφείς: Οµάδα Waite, Mitchell Waite και Stephen Prata Εκδότης: Μ. Γκιούρδας Ανατύπωση σε ηλεκτρονική µορφή: Αλέξανδρος Στεφανίδης 3.4 Τύποι εδοµένων τής

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

Εθνική Υποδομή ΓΕωχωρικών Πληροφοριών

Εθνική Υποδομή ΓΕωχωρικών Πληροφοριών Εθνική Υποδομή ΓΕωχωρικών Πληροφοριών Οργανισμός Κτηματολογίου & Χαρτογραφήσεων Ελλάδας Διαδικτυακές Υπηρεσίες Αναζήτησης και Απεικόνισης ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ Διεύθυνση Γεωπληροφορικής Δεκέμβριος 2012 Περιεχόμενα

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

ΟΜΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ... 3 ΕΡΩΤΗΣΕΙΣ... 5 ΕΡΕΥΝΕΣ... 8

ΟΜΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ... 3 ΕΡΩΤΗΣΕΙΣ... 5 ΕΡΕΥΝΕΣ... 8 Εγχειρίδιο Χρήσης Συστήµατος Έρευνες Στατιστικών Στοιχείων ΠΕΡΙΕΧΟΜΕΝΑ ΟΜΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ... 3 Λογική Ανάλυση Χρήσης Εφαρµογής... 3 ΕΡΩΤΗΣΕΙΣ... 5 ΠΡΟΣΘΗΚΗ ΕΡΩΤΗΣΗΣ... 6 Επεξεργασία Ερώτησης... 7 ιαγραφή

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 18 Dijkstra s Shortest Path Algorithm 1 / 12 Ο αλγόριθμος εύρεσης της συντομότερης διαδρομής του Dijkstra

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ Διάλεξη 2 Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 2 Internal

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

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

ΑΝΑΖΗΤΗΣΗ ΣΕ ΗΛΕΚΤΡΟΝΙΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ

ΑΝΑΖΗΤΗΣΗ ΣΕ ΗΛΕΚΤΡΟΝΙΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ ΑΝΑΖΗΤΗΣΗ ΣΕ ΗΛΕΚΤΡΟΝΙΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ Μία από τις πιο σηµαντικές υπηρεσίες που προσφέρει το διαδίκτυο στην επιστηµονική κοινότητα είναι η αποµακρυσµένη πρόσβαση των χρηστών σε ηλεκτρονικές βιβλιοθήκες

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

Σχέσεις. Διμελής Σχέση. ΣτοΊδιοΣύνολο. Αναπαράσταση

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

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

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

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

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

Κ. Ι. ΠΑΠΑΧΡΗΣΤΟΥ. Τοµέας Φυσικών Επιστηµών Σχολή Ναυτικών οκίµων ΟΡΙΖΟΥΣΕΣ. Ιδιότητες & Εφαρµογές

Κ. Ι. ΠΑΠΑΧΡΗΣΤΟΥ. Τοµέας Φυσικών Επιστηµών Σχολή Ναυτικών οκίµων ΟΡΙΖΟΥΣΕΣ. Ιδιότητες & Εφαρµογές Κ Ι ΠΑΠΑΧΡΗΣΤΟΥ Τοµέας Φυσικών Επιστηµών Σχολή Ναυτικών οκίµων ΟΡΙΖΟΥΣΕΣ Ιδιότητες & Εφαρµογές ΠΕΙΡΑΙΑΣ 2013 ΟΡΙΖΟΥΣΕΣ Έστω 2 2 πίνακας: a b A= c d Όπως γνωρίζουµε, η ορίζουσα του Α είναι ο αριθµός a

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Γραφήματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Γραφήματα Κατευθυνόμενο Γράφημα Ένα κατευθυνόμενο γράφημα G είναι ένα ζευγάρι (V, E) όπου V είναι ένα

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

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία

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

Συνόψεις για Δεδομένα XML με Ετερογενές Περιεχόμενο

Συνόψεις για Δεδομένα XML με Ετερογενές Περιεχόμενο are needed to see this picture. Συνόψεις για Δεδομένα XML με Ετερογενές Περιεχόμενο Άλκης Πολυζώτης UC Santa Cruz Μίνως Γαροφαλάκης Intel Research, Berkeley Ανακεφαλαίωση QuickTime and a Ησυνόψιση είναι

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

Εγχειρίδιο Χρήσης Slide Recorder

Εγχειρίδιο Χρήσης Slide Recorder Εγχειρίδιο Χρήσης Slide Recorder Αναπτύχθηκε στο Κέντρο Λειτουργίας Διαχείρισης Δικτύου, Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Προγραμματιστής: Γιώργος Φράγκος Περιεχόμενα Εγχειρίδιο Χρήσης Slide

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

ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗΣ ΑΝΑΛΥΣΗΣ Ι (2006-07)

ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗΣ ΑΝΑΛΥΣΗΣ Ι (2006-07) ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗΣ ΑΝΑΛΥΣΗΣ Ι (2006-07) Επιµέλεια Σηµειώσεων : Βασιλειάδης Γεώργιος Καστοριά, εκέµβριος 2006

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αλφαριθμητικά Αλφαριθμητικά (strings) Ένα αλφαριθμητικό είναι μια ακολουθία αλφαβητικών

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

Social Network : Programming on FACEBOOK

Social Network : Programming on FACEBOOK Social Network : Programming on FACEBOOK Συντελεστές: Παύλος Τούλουπος Ευθυμία Παπαδοπούλου Ξάνθη Μάρκου Κοινωνικά Δίκτυα Κοινωνικό δίκτυο προέρχεται από την ψυχολογία αφορά μια κοινωνική δομή ατόμων τα

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

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

Δομές Δεδομένων Εργαστηριακή Άσκηση 2012-2013. Γκόγκος Νίκος Α.Μ.: 4973 Έτος: 3 ο Email: gkogkos@ceid.upatras.gr. Εισαγωγικά:

Δομές Δεδομένων Εργαστηριακή Άσκηση 2012-2013. Γκόγκος Νίκος Α.Μ.: 4973 Έτος: 3 ο Email: gkogkos@ceid.upatras.gr. Εισαγωγικά: Δομές Δεδομένων Εργαστηριακή Άσκηση 2012-2013 Γκόγκος Νίκος Α.Μ.: 4973 Έτος: 3 ο Email: gkogkos@ceid.upatras.gr Εισαγωγικά: Η υλοποίηση του project έχει γίνει σε python [2.7]. Τα python modules είναι αυτόνομα

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