(2 ο ) Από τα προβλήματα του κόσμου, στου κόσμου τα προβλήματα Τα «πρακτικά» προβλήματα και μια «θεωρητική» (μαθηματική) διατύπωσή τους. Ας δούμε μια σειρά από παραδείγματα (αλγοριθμικών) προβλημάτων που θα μας απασχολήσουν, με τον ένα ή τον άλλο τρόπο. Θα τα παραθέσουμε επίτηδες με τα λιγότερα δυνατά σχόλια και θα δούμε στη συνέχεια ποιές είναι οι πιθανές προελεύσεις τους, πώς είναι δυνατόν, δηλαδή, να «πέφτουμε» πάνω σε τέτοιους είδους προβλήματα (και να επιθυμούμε μια αλγοριθμική επίλυσή τους). ΖΗΤΕΙΤΑΙ: ΩΣΤΕ: «ΒΡΑΧΥΤΕΡΗ ΔΙΑΔΡΟΜΗ» α) Ένα σύνολο V «τοποθεσιών», και ένα σύνολο Ε διατεταγμένων ζευγών (κ,λ) τα οποία συνδέονται με «κατ ευθείαν» διαδρομή μήκους δ(κ,λ), β) Δύο διακεκριμμένοι κόμβοι, α, τ, ως «αφετηρία» και «τερματισμός». Μια ακολουθία τοποθεσιών γ = <u0, u1,..., un> α) οι διαδοχικές τοποθεσίες uκ 1 uκ, να συνδέονται μεταξύ τους. β) να οδηγεί από την αφετηρία στον τερματισμό, δηλαδή u0 = α, un = τ. n γ) το συνολικό μήκος της διαδρομής γ, δ( u 1 k 1, uk) k =, να είναι το ελάχιστο δυνατόν. «ΠΡΟΤΙΜΟΤΕΡΗ/ΜΕΓΙΣΤΟΒΑΡΗΣ ΔΙΜΕΡΗΣ ΑΝΤΙΣΤΟΙΧΙΣΗ» α) Ένα σύνολο V από «στοιχεία» αποτελούμενο από δύο μέρη Α και Β, (ξένα μεταξύ τους). β) Ένα σύνολο Ε Α Β, συσχετίσεων (κ, λ), από το 1 ο μέρος Α στο 2 ο μέρος Β. γ) Ένα βάρος («προτίμησης») w(α,β) Ν για κάθε συσχέτιση (α,β) Ε. ΖΗΤΕΙΤΑΙ: Ένα σύνολο συσχετίσεων, Μ Ε. ΩΣΤΕ: α) να είναι «ανεξάρτητες» μεταξύ τους, δηλαδή εάν (α, β), (α, β ) Μ, τότε α α, β β. β) το συνολικό βάρος w(μ) = w( αβ, ), να είναι το μέγιστο δυνατόν. ( αβ, ) M ΖΗΤΕΙΤΑΙ: ΩΣΤΕ: «ΒΡΑΧΥΤΕΡΟΣ ΚΥΚΛΟΣ HAMILTON» Ένα σύνολο V «τοποθεσιών», και ένα σύνολο Ε διατεταγμένων ζευγών (κ, λ) τα οποία συνδέονται με «κατ ευθείαν» διαδρομή μήκους δ(κ, λ), Μια ακολουθία γ που περιέχει όλες τις τοποθεσίες u1, u2,..., u V α) οι διαδοχικές τοποθεσίες uκ 1 uκ, να συνδέονται μεταξύ τους κυκλικά, (δηλαδή και η τελευταία με την πρώτη). β) να περιέχει τις τοποθεσίες από ακριβώς μία φορά την κάθε μία. V 1 γ) το συνολικό μήκος της γ = δ( u, 1 k uk 1 ) δ( u V, u1) k = + +, να είναι το ελάχιστο δυνατόν. «ΒΕΛΤΙΣΤΟΣ ΧΡΩΜΑΤΙΣΜΟΣ» α) Ένα σύνολο V «στοιχείων», και ένα σύνολο Ε V V ζευγών συσχετίσεων (i, j). β) Έναν φυσικό k (δείτε τον ως πλήθος «χρωμάτων»). ΖΗΤΕΙΤΑΙ: Μια συνάρτηση χ: V {1,..., k} ΩΣΤΕ: Να αποδίδει διαφορετικές τιμές χ(i) («χρώματα») στα στοιχεία που σχετίζονται μεταξύ τους, δηλαδή εάν (i, j) Ε είναι συσχετισμένα, τότε θα πρέπει χ(i) χ(j). «ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ» α) Μια σειρά Μ γραμμικών ανισώσεων, αi,1 x1 + αi,2 x2 +... + αi,ν xν di β) Ένα διάνυσμα Ν «αξιών» C = (c1, c2,..., cn) (οι αριθμοί αi,j, di, cj θεωρούνται εδώ ρητοί αριθμοί) Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών Γ.Φ. Γεωργακόπουλος ver: 20/3/2012 1
ΖΗΤΕΙΤΑΙ: Ένα διάνυσμα τιμών των μεταβλητών X = (x1, x2,..., xn), ΩΣΤΕ: α) το διάνυσμα X να είναι θετικό: xi 0, i = 1,..., N. β) να ικανοποιεί τις Μ ανισώσεις, και γ) η συνολική αξία του, C x = c1 x1 + c2 x2 +... + cν xν, να είναι η μέγιστη δυνατή. Τα παραπάνω προβλήματα ένα ασήμαντο αριθμητικά δείγμα εξ όσων χρειάζεται να αντιμετωπίσουμε έχουν όλα την μορφή που τους επιτρέπει να φιλοδοξούν να χαρακτηριστούν ως «αλγοριθμικά»: τα εκάστοτε δεδομένα τους είναι πεπερασμένα, τα εκάστοτε ζητούμενα είναι επίσης πεπερασμένα, και η συνθήκη που εκφράζει αν μια «υποψήφια» απάντηση είναι αποδεκτή ή όχι επιδέχεται και αυτή μια πεπερασμένη (λογικο μαθηματική) περιγραφή. Είναι, μάλιστα, δυνατόν να αναπαραστήσουμε τα (εκάστοτε) δεδομένα και τις (εκάστοτε) απαντήσεις, γραπτά, ως «λέξεις», ως συμβολοσειρές με σύμβολα από οποιδήποτε αλφάβητο μας βολεύει. Από πού όμως εξαιρώντας προσωρινά, την ελεύθερη ή/και αυθαίρετη φαντασία μας μπορεί να προέρχονται τέτοιου είδους προβλήματα; Θα δούμε αμέσως μετά μια σειρά παραδειγμάτων από «φυσικά» προβλήματα της πιο καθημερινής ζωής μας, και θα εξηγήσουμε πως αυτά μετασχηματίζονται στα τυπικά «φορμαλιστικά» προβλήματα που παραθέσαμε προηγουμένως: «Διατηρώ ένα ταξιωτικό γραφείο, και έχω στη διάθεσή μας τις απαραίτητες πληροφορίες για δρομολόγια πλοίων, αεροπλάνων κττ. Θέλω να μπορώ να βρίσκω για τους πελάτες μου οικονομικές διαδρομές αλλά οι δυνατοί συνδυασμοί δρομολογίων μου φαίνονται πάρα πολλοί. Πώς μπορώ να το κάνω αυτό συστηματικά και γρήγορα;» Η συμβουλή μας θα ήταν η εξής: συλλέξτε όλα τα δρομολόγια της περιόδου που ενδιαφέρει τον πελάτη σας να ταξιδέψει και θεωρείστε κάθε αναχώρηση (λ.χ. «αεροδρόμιο Βενιζέλος 10.15πμ, 12/3/2012»), και κάθε άφιξη ως μια «τοποθεσία». Θεωρείστε επίσης δύο ακόμα «τοποθεσίες»: μια (αφετηριακή) τοποθεσία την άφιξη του πελάτη σας στον τόπο αναχώρησης, και μια (τερματική) τοποθεσία την άφιξη του πελάτη σας στον τόπο προορισμού. Χαρακτηρείστε κάθε δρομολόγιο (αεροπλάνου, πλοίου, τρένου, κοκ) ως μια σύνδεση ανάμεσα στην αντίστοιχη αναχώρηση και άφιξη, και θεωρείστε ως μήκος αυτής της σύνδεσης το αντίστοιχο κόστος εισιτηρίου. Χαρακτηρείστε κάθε αναμονή (δηλαδή την στάση από μια άφιξη μέχρι μια αναχώρηση από τον ίδιο τόπο) με μια σύνδεση το «μήκος» της οποίας μπορεί να είναι απλά μηδέν, (ή «τόσα ανά ώρα» κατά την κρίση σας). Συνδέστε παρομοίως την αφετηριακή τοποθεσία του πελάτη σας με όσες αναχωρήσεις έχει στη διάθεσή του, και συνδέστε όσες αφίξεις συμβαίνουν στον προορισμό του πελάτη σας με την τερματική τοποθεσία. Μετά από όλα αυτά αρκεί να αναζητήσετε την βραχύτερη διαδρομή από την αφετηριακή τοποθεσία στην τερματική. Θα έχετε, με αυτόν τον τρόπο μετασχηματίσει το πρόβλημά σας στο πρόβλημα της «ΒΡΑΧΥΤΕΡΗΣ ΔΙΑΔΡΟΜΗΣ». «Χειριζόμαστε ένα τηλεπικοινωνιακό δίκτυο με διάφορους ενδιάμεσους τηλεπικοινωνιακούς κόμβους. Πρέπει να στήσουμε μια σύνδεση από τον χώρο Α στον χώρο Β για μια μετάδοση που θέλουμε να έχει την καλύτερη δυνατή ποιότητα. Γνωρίζουμε ως ποσοστό 0% 100% την ποιότητα κάθε σύνδεσης και η ποιότητα δύο διαδοχικών συνδέσεων είναι το γινόμενο των ποιοτήτων των επιμέρους συνδέσεων. Πώς μπορούμε να βρούμε την καλύτερη δυνατή σύνδεση από τον Α στον Β;» Η συμβουλη μας θα ήταν η εξής: Θεωρείστε κάθε χώρο, (αφετηριακό, τερματικό ή ενδιάμεσο) ως μια «τοποθεσία». Χαρακτηρείστε το «μήκος» κάθε εφικτής σύνδεσης ανάμεσα σε δύο από αυτές (κ, λ), με τον (θετικό) αριθμό δ(κ,λ) = log(pκ, λ), 0 pκ, λ 1, όπου pκ, λ παριστά την ποιότητα της σύνδεσης. (Εδώ θα πρέπει να κάνετε μια προσεγγιστική ακεραιοποίηση των αριθμών που προκύπτουν). Τέλος, αναζητείστε την βραχύτερη διαδρομή σύνδεσης από τον χώρο Α στον χώρο Β αυτή θα έχει την καλύτερη «ποιότητα» αφού ελαχιστοποιώντας το συνολικό «μήκος» log( pκ 1, κ) μεγιστοποιείτε την συνολική ποιότητα log( ). Θα έχετε λοιπόν μετασχηματίσει το πρόβλημά σας σε εκείνο της «ΒΡΑΧΥΤΕΡΗΣ ΔΙΑΔΡΟΜΗΣ», pκ 1, κ (για άλλη μια φορά!) Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών Γ.Φ. Γεωργακόπουλος ver: 20/3/2012 2
«Η τάξη διδασκαλίας μου έχει 12 αγόρια και 12 κορίτσια. Άλλα συμπαθούνται περισσότερο, άλλα λιγότερο, άλλα δεν συμπαθιούνται καθόλου. Θέλω να τα βάλω σε 12 θρανία, αγόρι με κορίτσι, ώστε να αποφύγω όσο γίνεται περισσότερο να καθίσουν μαζί παιδιά που δεν συμπαθιούνται. Τί να κάνω;» Θα μπορούσατε να κάνετε το εξής: Θεωρείστε τους μαθητές ως ένα σύνολο «στοιχείων», και τα αγόρια ως το μέρος Α και τα κορίτσια ως το μέρος Β. Βαθμολόγείστε (ρωτώντας τα ίδια τα πρόσωπα), κάθε πιθανό «ζεύγος» (α, κ) με ένα δείκτη αμοιβαίας συμπάθειας, λ.χ. με 0 για την απόλυτη αντιπάθεια και με 100 για την απόλυτη συμπάθεια. Οι συμπάθειες/αντιπάθειες ανά ζεύγος δεν θα είναι (αρκετά) συμμετρικές οπότε θα πρέπει να κάνετε κάποιο συμβιβασμό λ.χ. να πάρετε τον ελάχιστο βαθμό ή τον μέσο όρο. Έτσι η τοποθέτηση των μαθητών στα θρανία δεν θα είναι παρά μια «αντιστοίχιση» δηλαδή ένα σύνολο ανεξάρτητων συσχετίσεων, και ένα μέτρο της επιτυχίας είναι το συνολικό άθροισμα των βαθμών συμπάθειας. Θα έχετε, με αυτόν τον τρόπο μετασχηματίσει το πρόβλημά σας στο πρόβλημα της «ΠΡΟΤΙΜΟΤΕΡΗΣ ΔΙΜΕΡΟΥΣ ΑΝΤΙΣΤΟΙΧΙΣΗΣ». «Έχω δύο εικόνες αεροφωτογραφίες. Θέλω ένα σύστημα που να μπορεί να κρίνει πόσο μοιάζουν (λ.χ. ότι περιλαμβάνουν τα ίδια τρία σπίτια). Πώς θα μπορούσε να γίνει κάτι τέτοιο;» Μια καλή ιδέα είναι η εξής: Κατατμήσατε τις δύο εικόνες σε επί μέρους στοιχεία, πού λόγω γεωμετρίας, υφής, χρωματισμού, ή όποιο άλλο λόγο, παριστάνουν πιθανώς ομοειδή αντικείμενα, (λ.χ. δρόμους, στέγες, πορτοπαράθυρα, δένδρα, εδάφη ή βράχους, κττ). Συσχετίστε τα στοιχεία της 1 ης φωτό με εκείνα της 2 ης, και βαθμολογείστε αυτή την συσχέτιση με τον βαθμό ομοιότητας που έχουν τα επί μέρους στοιχεία. Δεν χρειάζεται πια παρά να αναζητήσετε εκείνη την αντιστοίχιση ανάμεσα στα δύο σύνολα στοιχείων, με τον μεγαλύτερο αθροιστικά βαθμό ομοιότητας. Θα έχετε με αυτόν τον τρόπο μετασχηματίσει, (για μια δεύτερη φορά), το πρόβλημά σας σε εκείνο της «ΠΡΟΤΙΜΟΤΕΡΗΣ ΔΙΜΕΡΟΥΣ ΑΝΤΙΣΤΟΙΧΙΣΗΣ». «Η εταιρεία μας θα καλέσει 30 συνεργάτες της από όλη την Ελλάδα για μια συνεδρίαση στρογγυλής τραπέζης. Γνωρίζουμε στο περίπου τις συμπάθειες και τις αντιπάθειες μεταξύ τους, και θα θέλαμε να τους βάλουμε στο τραπέζι της συνάντησης έτσι ώστε ο καθένας να έχει και δεξιά του και αριστερά, του πρόσωπα που «συμπαθεί» όσο γίνεται περισσότερο. Ποιός είναι ο καλύτερος τρόπος να καθίσουν στο τραπέζι;» Θεωρείστε τα πρόσωπα ως τοποθεσίες και βαθμολογείστε κάθε συσχέτιση μεταξύ τους (όσες γνωρίζετε) με έναν βαθμό που να εκφράζει την «αμοιβαία» συμπάθεια ή αντιπάθεια. Εδώ θα ήταν προτιμότερο το 0 να εκφράζει την συμπάθεια και το 100 την αντιπάθεια. Μια τοποθέτηση των προσώπων σε μια «στρογγυλή τράπεζα» δεν είναι παρά μια κυκλική διαδρομή που περιλαμβάνει τα προσωπα τοποθεσίες ακριβώς μία φορά το καθένα, οπότε θα έχετε μετασχηματίσει το πρόβλημά σας σε εκείνο του «ΒΡΑΧΥΤΕΡΟΥ ΚΥΚΛΟΥ HAMILTON». «Στη υπό σχεδίαση γραμμή παραγωγής ένα αυτόματο ρομποτικό τρυπάνι θα ανοίγει τρύπες σε μια υπό συναρμολόγηση συσκευή. Για να κινηθεί το τρυπάνι από την μια θέση σε μια άλλη χρειάζεται κάποιος χρόνος. Πώς να βρούμε τον ταχύτερο τρόπο για να επαναλαμβάνεται αυτή η σειρά των ενεργειών;» Και σε αυτή την περίπτωση μπορείτε να μετασχηματίσετε το πρόβλημά σας στο «ΒΡΑΧΥΤΕΡΟ ΚΥΚΛΟ HAMILTON: Οι «τοποθεσίες» είναι τα σημεία που πρέπει το ρομποτικό εργαλείο μας να επισκεφθεί, και οι «αποστάσεις» μεταξύ τους είναι ο χρόνος που αυτό χρειάζεται για να μετακινηθεί από το ένα σημείο στο άλλο. Μια κυκλική διαδρομή που περνά από όλα τα σημεία εργασίας μία φορά, μας δίνει φυσικά ένα επαναλαμβανόμενο πρόγραμμα εργασιών της μηχανής μας και το βραχύτερο από αυτά είναι προφανώς το προτιμότερο. «Διατηρώ μια μικρή ξενοδοχειακή μονάδα των 30 δωματίων. Έχω στη διάθεσή μου τις κρατήσεις ( = από τότε έως τότε ) που ενδιαφέρονται να κάνουν οι υποψήφιοι πελάτες μου αλλά δεν βλέπω πώς μπορώ να ικανοποιήσω όλες τις κρατήσεις. Πώς μπορώ να είμαι βέβαιος ότι έχω κάνει ότι καλύτερο δυνατόν;» Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών Γ.Φ. Γεωργακόπουλος ver: 20/3/2012 3
Η πρότασή μας είναι η εξής: Συγκεντρώστε τις κρατήσεις που έχουν δηλώσει οι μελλοντικοί επισκέπτες σας, και θεωρείστε αυτές ως τα «στοιχεία» που θα συσχετίσετε. Θα συσχετίσουμε δύο κρατήσεις εάν και μόνο τα χρονικά διαστήματα που αντιστοιχούν σε αυτές «τέμνονται», δηλαδή συμπίπτουν έστω και κατά μία ημέρα. Με αυτόν τον τρόπο το πρόβλημά σας μετασχηματίζεται στο πρόβλημα της «ΒΕΛΤΙΣΤΟΥ ΧΡΩΜΑΤΙΣΜΟΥ»: ένας χρωματισμός με k χρώματα σας αποκαλύπτει ότι οι κρατήσεις αυτές μπορούν να ικανοποιηθούν με k δωμάτια (και αντιστρόφως). «Διαχειριζόμαστε την αποθήκευση πολλών ειδών εμπορευμάτων ενός πολυκαταστήματος. Για διάφορους όμως λόγους θέλουμε διάφορα είδη να μην αποθηκεύονται στον ίδιο χώρο λ.χ. τρόφιμα με χημικά, ή ξυλεία με εύφλεκτα υλικά, ή εύθραστα υλικά με άλλα βαρέα και ογκώδη, κοκ. Πόσους το πολύ αποθηκευτικούς χώρους χρειαζόμαστε;» Το παραπάνω πρόβλημα μετασχηματίζεται, επίσης, στο πρόβλημα της «ΒΕΛΤΙΣΤΟΥ ΧΡΩΜΑΤΙΣΜΟΥ»: τα «στοιχεία» μας εδώ είναι τα διάφορα είδη αποθηκεύσιμων ειδών που διαθέτουμε, και οι συσχετίσεις μεταξύ τους είναι εκείνες που αναπαριστούν την ασυμβατότητα αποθήκευσης στον ίδιο χώρο. Ένας χρωματισμός με k χρώματα μας δίνει έναν τρόπο συμβατής αποθήκευσης όλων των ειδών σε k αποθηκευτικούς χώρους (και αντιστρόφως). «Διατηρώ ένα αρτοποιείο ζαχαροπλαστείο. Για την εβδομαδιαία τροφοδοσία μου μπορώ να βρώ σε καλές τιμές 1500kg αλεύρι, 500kg ζάχαρη, 2000 αυγά, και 300kg βούτυρο. Μπορούμε να φτιάξουμε ψωμί (με τιμή πώλησης 1 /kg), τσουρέκια (με τιμή 5 /kg), και μπισκότα (με τιμή 2.5 /kg) ). Τί ποσότητες από κάθε είδος πρέπει να φτιάχνουμε για να έχουμε το καλύτερο αποτέλεσμα;». Η ιδέα για την αντιμετώπιση αυτού του προβλήματος είναι η ανάλυση των παραγωγικών απαιτήσεων. Εξετάζουμε δηλαδή για μια παραγωγή x1 kg ψωμί, x2 kg τσουρέκια και x3 kg kg μπισκότα, πόσα υλικά θα χρειαστούν. Λ.χ. για x2 kg τσουρέκια χρειάζονται (στο περίπου) 0.400 gr αλεύρι, 0.250 gr ζάχαρη, 10 αυγά, και 0.250 gr βούτυρο. Για ψωμί οι αντίστοιχοι αριθμοί είναι ενδεικτικά <1.0, 0, 0, 0>, και για μπισκότα <0.650, 0.200, 6, 0.100>. Οι αριθμοί αυτοί θα εμφανιστούν ως συντελεστές στις παρακάτω ανισώσεις: αλεύρι 1.0 x1 + 0.400 x2 + 0.650 x3 kg, που πρέπει να είναι... 1500 kg ζάχαρη 0.0 x1 + 0.250 x2 + 0.200 x3 kg, που πρέπει να είναι... 500 kg αυγά 0 x1 + 10 x2 + 6 x3 τεμάχια, που πρέπει να είναι... 2000 βούτυρο 0.0 x1 + 0.250 x2 + 0.100 x3 kg, που πρέπει να είναι... 300 kg Στη 1 η ανίσωση προσθέτουμε τις ανάγκες σε αλεύρι από κάθε είδος και φυσικά ζητάμε η συνολική πορόστητα να μην υπερβαίνει την διαθέσιμη (1500kg). Τα ανάλογα ισχύουν για τις υπόλοιπες τρείς ανισώσεις. Για μια παραγωγή <x1, x2, x3>, περιμένουμε να εισπράξουμε 1.0 x1 + 5.0 x2 + 2.5 x3 σε ευρώ, ποσότητα που θα θέλαμε να είναι όσο γίνεται μεγαλύτερη. Τα προηγούμενα αποτελούν κατά φανερό τρόπο ένα μετασχηματισμό του προβλήματoς αυτού στο πρόβλημα του «ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ». Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών Γ.Φ. Γεωργακόπουλος ver: 20/3/2012 4
Δεν είμαστε σε θέση εδώ να αναπτύξουμε μια μεθοδολογία για την «μαθηματικοποίηση» των φυσικών καθημερινών προβλημάτων εξ άλλου δεν είναι αυτό το αντικείμενό μας. Είναι όμως καλό να παραθέσουμε (βλ. παρακάτω) τα συστατικά στοιχεία αυτής της διαδικασίας, και να υπενθυμίσουμε στον αναγνώστη να μην παραλείψει να εξασκηθεί και στις δύο κατευθύνσεις: τόσο στο να προχωρεί αφαιρετικά (ώστε να αναγάγει τα φυσικά προβλήματα στην όποια μαθηματική τους μορφη), όσο και στο να εξειδικεύει τα αφηρημένα προβλήματα (ώστε να ανακαλύπτει τις πρακτικές τους δυνατότητες). αριθμοί: Οι αριθμοί είναι ο φυσικός τρόπος για να παραστήσουμε πλήθη αντικειμένων, φυσικά μεγέθη (όπως μήκος, βάρος, θερμοκρασία κττ), και οικονομικά μεγέθη (όπως αξία, κόστη, τιμές κττ). σύνολα: Τα σύνολα είναι ο προφανής τρόπος για να αναπαραστήσουμε οποιοδήποτε τρόπο ομαδοποίησης αντικειμένων τα παραδείγματα περιττεύουν εδώ... σχέσεις: γενικού τύπου: Η χρήση σχέσεων (και ιδίως οι διμελείς εξ αυτών) είναι από τα πιο θεμελιακά εργαλεία που έχουμε στη διάθεσή μας για την παράσταση των πολύμορφων σχέσεων που έχουν τα αντικείμενα των πρακτικών εφαρμογών. Να θυμίσουμε εδώ ότι το σχεσιακό πρότυπο των βάσεων δεδομένων είναι το κυρίαρχο εδώ και 10ετίες. διατάξεις: Με τις διατάξεις μπορούμε να παραστήσουμε σχέσεις προτίμησης, εξάρτησης, αξιολόγησης, συνεπαγωγής, αιτιότητας, προτεραιότητας, μεγέθους, και πλήθος άλλων. συναρτήσεις: Οι συναρτήσεις είναι ο φυσικός τρόπος απόδοσης ιδιοτήτων και χαρακτηριστικών στα σχετικά αντικείμενα. Λέμε λ.χ. «το βάρος του x», «η μητέρα της y», «η τιμή του x», «το όνομα της y», «ο αριθμός μητρώου του x», «το κόστος της y», κοκ. Ανακεφαλαίωση και τα επόμενα βήματα: Είδαμε λοιπόν το πώς τα μύρια προβλήματα των πρακτικών εφαρμογών αποκρυσταλλώνονται σε πολλη αφηρημένα «μαθηματικά» προβλήματα, για τα οποία πολύ θα θέλαμε να έχουμε μια αλγοριθμική λύση. Είναι τελικά η επινόηση ενός αλγορίθμου τόσο δύσκολο ζήτημα; Για να δούμε από πιο κοντά αυτό το ζήτημα και να διευκρινίσουμε με περισσότερη λεπτομέρεια τους στόχους μας, θα εξετάσουμε στα επόμενα δύο κεφάλαια το θέμα της «εξαντλητικής αναζήτησης». Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών Γ.Φ. Γεωργακόπουλος ver: 20/3/2012 5