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

Μέγεθος: 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 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Επίλυση Γραµµικών Συστηµάτων Κεφάλαιο 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Week. 6: Java Collections

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λύσεις Παλιών Θεµάτων. Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης

Λύσεις Παλιών Θεµάτων. Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης Λύσεις Παλιών Θεµάτων Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης Θέµα Φεβρουάριος 2003 1) Έστω ένας υπερκύβος n-διαστάσεων. i. Να βρεθεί ο αριθµός των διαφορετικών τρόπων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Atlantis - Νέο user interface

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Εξωτερική Αναζήτηση και Β-δέντρα Κεφάλαιο 16. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Εξωτερική Αναζήτηση και Β-δέντρα Κεφάλαιο 16. Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Εξωτερική Αναζήτηση και Β-δέντρα Κεφάλαιο 16 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Ακολουθιακή πρόσβαση Β-δέντρα Υλοποίηση πίνακα συµβόλων µε Β-δέντρα Αναζήτηση Εισαγωγή Δοµές Δεδοµένων

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

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

1 Ορισµός ακολουθίας πραγµατικών αριθµών

1 Ορισµός ακολουθίας πραγµατικών αριθµών ΜΑΣ 02. Απειροστικός Λογισµός Ι Ορισµός ακολουθίας πραγµατικών αριθµών Ορισµός.. Ονοµάζουµε ακολουθία πραγµατικών αριθµών κάθε απεικόνιση του συνόλου N των ϕυσικών αριθµών, στο σύνολο R των πραγµατικών

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

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

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

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

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 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. Λειτουργίες που θέλουµε

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

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,... KΕΦΑΛΑΙΟ ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ Βασικές έννοιες διαιρετότητας Θα συµβολίζουµε µε, τα σύνολα των φυσικών αριθµών και των ακεραίων αντιστοίχως: {,,3,,, } { 0,,,,, } = = ± ± ± Ορισµός Ένας φυσικός αριθµός

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Δεδομένων Ενότητα 1 - Εισαγωγή Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αντικείμενο μαθήματος Δομές Δεδομένων (ΔΔ): Στην επιστήμη υπολογιστών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing) Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ανασκόπηση Προβλήματος και Προκαταρκτικών Λύσεων Bit Διανύσματα Τεχνικές Κατακερματισμού & Συναρτήσεις

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

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

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

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

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

ΑΠΟΤΙΜΗΣΗ ΤΟΥ ΕΡΓΟΥ ΤΟΥ ΤΜΗΜΑΤΟΣ ΣΤΟΧΟΙ ΓΙΑ ΤΗΝ ΠΕΡΙΟΔΟ ΠΑΡΑΡΤΗΜΑ ΧΙ ΕΘΝΙΚΟΝ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟΝ ΠΑΝΕΠΙΣΤΗΜΙΟΝ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΑΠΟΤΙΜΗΣΗ ΤΟΥ ΕΡΓΟΥ ΤΟΥ ΤΜΗΜΑΤΟΣ ΣΤΟΧΟΙ ΓΙΑ ΤΗΝ ΠΕΡΙΟΔΟ 2008-2013 ΠΑΡΑΡΤΗΜΑ ΧΙ ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ

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

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα Βάσεις

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

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

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

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

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2 Ε. Μαρκάκης Επικ. Καθηγητής Περίληψη Εµπειρική ανάλυση αλγορίθµων Μαθηµατική ανάλυση αλγορίθµων Αύξηση συναρτήσεων Συµβολισµός µεγάλου όµικρον Παραδείγµατα

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

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

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

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

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

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

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

Η χρήση του MOODLE από την οπτική γωνία του ιαχειριστή

Η χρήση του MOODLE από την οπτική γωνία του ιαχειριστή Ανοικτή και Εξ Αποστάσεως Εκπαίδευση Χρησιµοποιώντας το Εκπαιδευτικό Περιβάλλον του MOODLE. Open and Distance Learning Using MOODLE Learning Environment Αθανάσιος Ι. Μάργαρης, Ευθύµιος. Κότσιαλος Πανεπιστήµιο

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

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με

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

SilverPlatter WebSPIRS 4.1.

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

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

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

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

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

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

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

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

Κεφάλαιο 3β. Ελεύθερα Πρότυπα (µέρος β)

Κεφάλαιο 3β. Ελεύθερα Πρότυπα (µέρος β) Κεφάλαιο 3β Ελεύθερα Πρότυπα (µέρος β) Ο σκοπός µας εδώ είναι να αποδείξουµε το εξής σηµαντικό αποτέλεσµα. 3.3.6 Θεώρηµα Έστω R µια περιοχή κυρίων ιδεωδών, F ένα ελεύθερο R-πρότυπο τάξης s < και N F. Τότε

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

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

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

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

οµή δικτύου ΣΧΗΜΑ 8.1

οµή δικτύου ΣΧΗΜΑ 8.1 8. ίκτυα Kohonen Το µοντέλο αυτό των δικτύων προτάθηκε το 1984 από τον Kοhonen, και αφορά διαδικασία εκµάθησης χωρίς επίβλεψη, δηλαδή δεν δίδεται καµία εξωτερική επέµβαση σχετικά µε τους στόχους που πρέπει

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

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

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

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

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

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

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

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

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

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

Ακρότατα υπό συνθήκη και οι πολλαπλασιαστές του Lagrange

Ακρότατα υπό συνθήκη και οι πολλαπλασιαστές του Lagrange 64 Ακρότατα υπό συνθήκη και οι πολλαπλασιαστές του Lagrage Ας υποθέσουµε ότι ένας δεδοµένος χώρος θερµαίνεται και η θερµοκρασία στο σηµείο,, Τ, y, z Ας υποθέσουµε ότι ( y z ) αυτού του χώρου δίδεται από

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

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων ..?????? Εργαστήριο ΒΑΣΕΙΣ????????? ΔΕΔΟΜΕΝΩΝ Βάσεων Δεδομένων?? ΙΙ Εισαγωγικό Μάθημα Βασικές Έννοιες - . Γενικά Τρόπος Διεξαγωγής Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα

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

EBSCOhost Research Databases

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

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

Ν!=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 το παραγοντικό

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πεδί α

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πεδί α ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Βάση δεδομένων είναι συσχετισμένα μεταξύ τους δεδομένα, οργανωμένα σε μορφή πίνακα. Οι γραμμές του πίνακα αποτελούν τις εγγραφές και περιλαμβάνουν τις πληροφορίες για μια οντότητα. Οι

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

ΕΠΛ 002: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Μηχανές αναζήτησης

ΕΠΛ 002: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Μηχανές αναζήτησης ΕΠΛ 002: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Μηχανές αναζήτησης Στόχοι 1 Να εξηγήσουμε για ποιον λόγο μας είναι απαραίτητες οι μηχανές αναζήτησης στον Παγκόσμιο Ιστό. Να περιγράψουμε κάποιους από τους

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

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. Αφού ορίσετε ακριβώς τι σηµαίνει πίσω ευσταθής υπολογισµός, να εξηγήσετε αν ο υ- πολογισµός του εσωτερικού γινοµένου δύο διανυσµάτων

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

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

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΑ 3 και 9 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΕΣ Δεδομένα αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της δηλαδή.

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