Ιωάννης Γ. Τόλλης Καθ. Τμήμα Επιστήμης Υπολογιστών, και Διευθυντής ΚΤΠΕ και ΕΕΔ Πανεπιστήμιο Κρήτης
Ποιος Ειμαι; 2003 - σήμερα, Καθηγητής, Τμήμα Επιστήμης Υπολογιστών (ΤΕΥ), Πανεπιστήμιο Κρήτης (ΠΚ). 1987 - 2004, Καθηγητής, Τμήμα Επιστήμης Υπολογιστών, Σχολή Μηχανικών και Επιστήμης Υπολογιστών, Πανεπιστήμιο του Τέξας (ΠΤ) στο Ντάλας (The University of Texas at Dallas), Richardson, Τέξας, ΗΠΑ.
Τι είναι ΑΛΓΟΡΙΘΜΟΣ; Ως Αλγόριθμος (και όχι λογάριθμος) ορίζεται μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Πρέπει να έχει είσοδο δεδομένων, επεξεργασία και έξοδο αποτελεσμάτων. Οι πιο κοινοί αλγόριθμοι που κυριαρχούν στην καθημερινότητά μας είναι (medium.com):
ΟΙ 10 ΑΛΓΟΡΙΘΜΟΙ ΤΗΣ ΖΩΗΣ ΜΑΣ (medium.com) Merge Sort, Quick Sort and Heap Sort Fourier Transform and Fast Fourier Transform Shortest Paths - Dijkstra’s algorithm RSA algorithm Secure Hash Algorithm Integer factorization Link Analysis Proportional Integral Derivative Algorithm Data compression algorithms Random Number Generation
Merge Sort, Quick Sort and Heap Sort
Shortest Paths -Dijkstra’s algorithm
Google uses Shortest Paths
Link Analysis
Link Analysis 2
ΕΡΕΥΝΗΤΙΚΑ ΕΝΔΙΑΦΕΡΟΝΤΑ Computer Science and Engineering Βιοιατρικά Δεδομένα και Δίκτυα Ανάλυση, Σχεδιασμός, Μοντελοποίηση και Οπτικοποίηση Δικτύων Ανάλυση και Επεξεργασία Δεδομένων BIG Data - Data & Network Science – Link Analysis Σχεδιασμός Γράφων – Graph Drawing Οπτικοποίηση Πληροφορίας Αλγόριθμοι και Εφαρμογές
Το Παιχνίδι της Μαντεψιάς (Guessing Game) Μετά από πολλές δοκιμασίες, ο παίκτης έχει φτάσει στο τελικό στάδιο: Ο υπολογιστής βρίσκει έναν τυχαίο αριθμό μεταξύ 0 και 32 Ο παίκτης καλείται να μαντέψει τον αριθμό Το έπαθλο είναι 100000 ευρώ αν τον βρει με τη πρώτη Σε κάθε μαντεψιά του παίκτη απαντά: Πάνω η Κάτω (αν δεν τον βρει) Τότε το ποσό που μπορεί να κερδίσει μένει το μισό και ξαναμαντέυει. Αν μαντέψει τον αριθμό ο παίκτης παίρνει όλα τα χρήματα που έχουν απομείνει.
Γραμμική Αναζήτηση 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Γραμμική Αναζήτηση (2) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Δυαδική Αναζήτηση 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Δυαδική Αναζήτηση (2)
Δυαδική Αναζήτηση 3 (Binary Search) Η δυαδική αναζήτηση πραγματοποιεί την πράξη findElement(k) σε ένα λεξικό υλοποιημένο ως μια ακολουθία βασισμένη σε πίνακα, ταξινομημένη ως προς το κλειδί similar to the high-low game σε κάθε βήμα, ο αριθμός των υποψήφιων αντικειμένων μειώνεται στο μισό τερματίζει μετά από ένα λογαριθμικό αριθμό βημάτων Παράδειγμα: findElement(7) 1 3 4 5 7 8 9 11 14 16 18 19 l m h 1 3 4 5 7 8 9 11 14 16 18 19 l m h 1 3 4 5 7 8 9 11 14 16 18 19 l m h 1 3 4 5 7 8 9 11 14 16 18 19 l=m =h
Ο κανόνας του 37 % (Η πότε σταματάς) Για δυο επιλογές 50-50, Για τρείς επιλογές 33%, Για 4 επιλογές 25%,… Φανταστείτε ότι ψάχνετε να βρείτε να νοικιάσετε ένα διαμέρισμα Η έναν/μια σύντροφο Η μια γραμματέα Ας υποθέσουμε ότι θέλετε να βρείτε το/την/τον απολύτως κορυφαία(ο) Πως ξέρει κανείς ότι μια επιλογή είναι κορυφαία? Ο παρακάτω αλγόριθμος την βρίσκει με πιθανότητα 37% (36,8% για την ακρίβεια): ΒΗΜΑ 1: Δείτε/δοκιμάστε το 37% των πιθανών επιλογών χωρίς να αποφασίσετε ΒΗΜΑ 2: Μετά το 37% επιλέξτε την επιλογή που είναι σαφώς καλύτερη όλων των επιλογών του βήματος 1
Ο κανόνας του 37 % (optimal stopping) 2 Για δυο επιλογές 50-50, Για τρείς επιλογές 33%, Για 4 επιλογές 25%,… For big N, we can make it even more simple: P(M,N) =~ (M/N)ln(N/M) 1/e is about 0.368. This result can be expressed simply in the following "37%" rule: Look at a fraction 1/e of the potential partners before making your choice and you'll have a 1/e chance of finding the best one!
Optimal stopping variations Αν η αποδοχή είναι 50-50 τότε η πιθανότητα πέφτει στο 25% Ο μαθηματικός/αστρονόμος Johannes Kepler (το 1611) άλλαξε τους κανόνες, επιστρέφοντας στην καλύτερη που είχε βρει, η οποία δέχτηκε! Αν είσαστε ικανοποιημένοι με κάποιον/κάποια πολύ καλή αλλά όχι υποχρεωτικά τον/την κορυφαία, τότε ο αλγόριθμος είναι λίγο διαφορετικός: ΒΗΜΑ 1: «Βλέπετε» την τετραγωνική ρίζα του αριθμού επιλογών (ν) ΒΗΜΑ 2: Μετά επιλέγετε την καλύτερη επιλογή που θα δείτε πρώτη. Για ν=10, η πιθανότητα είναι 75% (τέλειος/α), για ν=100 η πιθανότητα είναι 90% (τέλειος/α).
Optimal stopping variations 2 For example, assume an immediate proposal is a sure thing but belated proposals are rejected half the time. Then the math says you should keep looking noncommittally until you’ve seen 61% of the possibilities, and then only leap if someone in the remaining 39% of the pool proves to be the best-yet. If you’re still single after considering all the possibilities — as Kepler was — then go back to the best one that got away. The symmetry between strategy and outcome holds in this case once again, with your chances of ending up with the best person under this second-chances-allowed scenario also being 61%.
ΕΥΧΑΡΙΣΤΩ ΓΙΑ ΤΗΝ ΠΡΟΣΟΧΗ ΣΑΣ THANK YOU FOR YOUR ATTENTION