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

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

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

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ: Μελέτη παραλλαγών του αλγόριθμου minconflicts για προβλήματα ικανοποίησης περιορισμών ΒΑΡΚΑΣ ΙΩΑΝΝΗΣ, Θεσσαλονίκη 2016 Επιβλέπων καθηγητής: Στεργίου Κωνσταντίνος 1

2 Αφιερωμένο στους γονείς μου και στον πολυαγαπημένο μου παππού Γιάννη.

3 Περίληψη Τα προβλήματα ικανοποίησης περιορισμών και οι υποκλάσεις τους όπως είναι τα MAX-CSPs είναι θεμελιώδη προβλήματα της Υπολογιστικής Θεωρίας και της Συνδυαστικής Βελτιστοποίησης. Αυτά τα προβλήματα στην γενική τους μορφή ανήκουν στην κλάση NP-complete και NP-hard αντίστοιχα όπως έχει δειχθεί και παρόλο που έχουν προταθεί συστηματικές μέθοδοι για την αντιμετώπισή τους, οι ευριστικοί μηχανισμοί τοπικής αναζήτησης έχουν αποδειχθεί ιδιαίτερα ανταγωνιστικοί. Στην παρούσα διπλωματική εργασία περιγράψαμε, αναλύσαμε και υλοποιήσαμε έναν από τους βασικότερους αλγορίθμους της οικογένειας hill climbing, τον min-conflicts, καθώς και προτείναμε μερικές παραλλαγές του για την καλύτερη απόδοση υλοποιώντας και συγκρίνοντας με αυτόν επτά νέους αλγορίθμους, οι οποίοι χρησιμοποιούν σαν βάση την λογική του min conflicts. Abstract The constraint satisfaction problem and its subclasses like MAX-CSPs, are fundamental problems in computing theory and combinatorial optimization. These problems are proved to be NP-complete and NP-hard respectively in general and although systematic methods have been proposed to address them, incomplete approaches based on local search have been shown to be very promising in this field. In this bachelor's thesis, we described, analyzed and implemented one of the most basic algorithms of the hill climbing family, the min conflicts algorithm, while we proposed some variations for better performance by implementing and comparing with the basic algorithm seven new algorithms which are using as a base the min conflicts logic. 3

4 Περιεχόμενα 1 ΕΙΣΑΓΩΓΗ Ορισμός CSP Οι αλγόριθμοι που εξετάστηκαν και τα αντίστοιχα συμπεράσματα Προβλήματα Ικανοποίησης Περιορισμών Ανάλυση αλγορίθμων Min-Conflicts Απλός min-conflicts Min-conflicts with restarts min-conflicts with restarts two variable change (simultaneous testing) min-conflicts with restarts three variable change(simultaneous testing) min-conflicts with restarts constraint violation1 (simultaneous testing) min-conflicts with restarts constraint violation2 (separate testing) min-conflicts with restarts two selected variables (separate testing) min-conflicts with restarts three selected variables (separate testing) min-conflicts with restarts four selected variables (separate testing) Κύριες Δομές Πειραματική Διαδικασία Η μορφή των CSP Μέτρα σύγκρισης Αποτελέσματα δοκιμών Συμπεράσματα δοκιμών Συμπεράσματα-Μελλοντική εργασία Βιβλιογραφία Παράρτημα

5 ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ Μια ιδιαίτερη κλάση στο πεδίο της Τεχνητής Νοημοσύνης και γενικότερα της Επιστήμης Υπολογιστών αποτελούν τα Προβλήματα Ικανοποίησης Περιορισμών (Constraint Satisfaction Problems). Τα CSPs, ο ορισμός των οποίων παρατίθεται παρακάτω, είναι θεμελιώδη για την επίλυση πολλών προβλημάτων στην Αυτοματοποιημένη Συλλογιστική, στην Μηχανική Οραση, στον σχεδιασμό VLSI, στην ρομποτική, στην σχεδίαση δικτύων υπολογιστών, στη θεωρία των γράφων καθώς και στην Επιχειρησιακή Ερευνα. Πολλά προβλήματα έχουν αναχθεί σε CSPs με μεγάλη επιτυχία όπως ο Χρωματισμός Γράφων, ο Χρονοπρογραμματισμός Διεργασιών, η Χρονοδρομολόγηση και γενικότερα προβλήματα ανάθεσης. Στόχος σε αυτά τα προβλήματα είναι να βρεθούν λύσεις που να ικανοποιούν ένα δεδομένο σύνολο περιορισμών. Στην πολύ γενική τους μορφή μπορεί να θεωρηθεί ότι ανήκουν στην κλάση NP-Complete προβλημάτων και αυτό προκύπτει εύκολα από το γεγονός ότι γνωστά NP-Complete προβλήματα έχουν αναχθεί σε αυτήν τη μορφή. Αρκετά δημοφιλείς για την αντιμετώπισή τους γίνονται ολοένα και περισσότερο οι ευρετικοί μηχανισμοί τοπικής αναζήτησης. Παρόλο που δεν είναι πλήρεις, δηλαδή δεν εγγυώνται ότι θα βρουν λύση σε κάποιο πρόβλημα, είναι ιδιαιτέρως αποδοτικοί σε σύγκριση με τις μεθόδους εξαντλητικής αναζήτησης του χώρου καταστάσεων των προβλημάτων. Το ιδιαίτερο χαρακτηριστικό τους είναι ότι επεξεργάζονται μία κατάσταση ενός προβλήματος προσπαθώντας να τη βελτιώσουν σύμφωνα με μία συνάρτηση αποτίμησης κόστους. Στην τοπική αναζήτηση συγκαταλέγεται μία πληθώρα ευρετικών μηχανισμών. Μερικοί από αυτούς τους μηχανισμούς είναι η Αναζήτηση Ταμπού (Tabu search), η Τοπική Ακτινική Αναζήτηση (Local Beam Search), και η στοχαστική εκδοχή της (Stochastic Local Beam Search), καθώς και αλγόριθμοι Αναρρίχησης Λόφου (Hill Climbing), οι οποίοι είναι και το αντικείμενο της παρούσας διπλωματικής. 1.1)Ορισμός CSP Ένα CSP αποτελείται από μια τριάδα συνόλων [1]: το σύνολο μεταβλητών X = x1,...,xn, το σύνολο πεδίων τιμών D όπου κάθε μέλος Di του D είναι το πεδίο τιμών της μεταβλητής xi και αποτελείται από τις πιθανές τιμές της xi. Και τέλος, το σύνολο των περιορισμών C. Κάθε περιορισμός Ci που ανήκει στο C αναφέρεται σε κάποιο υποσύνολο των μεταβλητών και καθορίζει τους επιτρεπτούς συνδυασμούς τιμών για το συγκεκριμένο υποσύνολο. Ένας δυαδικός περιορισμός αφορά ένα ζεύγος 5

6 μεταβλητών xi και xj. Μία κατάσταση του προβλήματος ορίζεται με ανάθεση τιμών σε μερικές ή σε όλες τις μεταβλητές. Μία ανάθεση τιμής που δεν παραβιάζει κανέναν περιορισμό, ονομάζεται συνεπής ή νόμιμη. Πλήρης ανάθεση είναι αυτή που περιλαμβάνει όλες τις μεταβλητές, και λύση ενός CSP είναι μία πλήρης ανάθεση τιμών που ικανοποιεί όλους τους περιορισμούς. Μερικά προβλήματα ικανοποίησης περιορισμών απαιτούν επίσης μία λύση που βελτιστοποιεί την τιμή μίας αντικειμενικής συνάρτησης. 1.2)Οι αλγόριθμοι που εξετάστηκαν και τα αντίστοιχα συμπεράσματα Η παρούσα διπλωματική αφορά τον μηχανισμό τοπικής αναζήτησης των Ελαχίστων συγκρούσεων (ή αλλιώς Min-conflicts), καθώς και μερικές παραλλαγές του βασικού αλγορίθμου. O αλγόριθμος αυτό είναι από τους πιο διαδεδομένους αλγορίθμους τοπικής αναζήτησης για CSPs [4]. Η λειτουργία του έχει ως εξής: Αρχικά, δίνεται μία τυχαία αρχικοποίηση τιμών, από το/τα διαθέσιμα πεδία τιμών, στις μεταβλητές που υπάρχουν στο πρόβλημα. Έπειτα, ο αλγόριθμος επιλέγει τυχαία μία μεταβλητή από αυτές που παραβιάζουν κάποιον περιορισμό και εκχωρεί σε αυτήν την τιμή από το/τα διαθέσιμα πεδία τιμών η οποία ελαχιστοποιεί τις παραβιάσεις του προβλήματος. Η διαδικασία επαναλαμβάνεται μέχρι να μηδενιστούν οι παραβιάσεις (που σημαίνει την λύση του προβλήματος), ή να κολλήσει ο αλγόριθμος σε κάποιο βέλτιστο. Καθώς αυτός ο μηχανισμός στην απλή του μορφή, όπως αυτή παρουσιάστηκε, έχει μελετηθεί ενδελεχώς και στο παρελθόν, αναλήφθηκε από εμάς η πρόκληση της μελέτης μερικών παραλλαγών του βασικού αλγορίθμου. Το βασικό θέμα μελέτης είναι παραλλαγές που εξετάζουν αλλαγές τιμών σε περισσότερες από μια μεταβλητές πριν μεταβούν από μια κατάσταση σε κάποια άλλη. Η απλούστερη από αυτές και συγχρόνως ευρέως διαδεδομένη, είναι η Min-conflicts with restarts, η οποία εισάγει την έννοια των επανεκκινήσεων (restarts) αναλύεται παρακάτω που υπάρχει σε όλες τις παραλλαγές. Πέρα από τον βασικό αλγόριθμο και την παραλλαγή του με restarts, μελετήσαμε ένα πλήθος από άλλες παραλλαγές που δεν έχουν μελετηθεί στην βιβλιογραφία. Η πρώτη από αυτές είναι η Min-conflicts with two variables, στην οποία πλέον επιλέγονται δύο μεταβλητές αντί για μία, εξετάζονται όλες οι διαθέσιμες τιμές του/των πεδίων συνδυαστικά, και τελικά αλλάζουν τιμές και οι δύο μεταβλητές. Δεύτερη, είναι η Min-conflicts with three variables που έχει την ίδια λειτουργία με την αμέσως προηγούμενη απλά διαφέρει στο γεγονός πως επιλέγονται και αλλάζουν τιμές τρεις μεταβλητές. Τρίτη στην σειρά, μελετήθηκε η παραλλαγή Min-conflicts constraint violation1, όπου πλέον επιλέγονται δύο μεταβλητές μέσω της παραβίασης κάποιου περιορισμού και αλλάζουν τιμές και οι 2

7 με τον έλεγχο των τιμών από τον αλγόριθμο να γίνεται συνδυαστικά. Τέταρτη παραλλαγή, είναι η Min-conflicts constraint violation2, όπου και πάλι επιλέγονται δύο μεταβλητές μέσω της παραβίασης περιορισμού, με την διαφορά πως εδώ αλλάζει τιμή μόνο η μία από τις δύο και ο έλεγχος των τιμών συμβαίνει ξεχωριστά,. Πέμπτος μηχανισμός που μελετήθηκε, είναι ο Min-conflicts summary two vars, όπου επιλέγονται δύο μεταβλητές που συμμετέχουν σε σύγκρουση (παραβίαση ενός η περισσότερων περιορισμών), εξετάζονται ξεχωριστά οι διαθέσιμες, από τα πεδία, τιμές, και τελικά αλλάζει μόνο μία μεταβλητή τιμή. Οι δύο επόμενες και τελευταίες παραλλαγές είναι όμοιες με την προηγούμενη, με την διαφορά πως επιλέγονται τρεις και τέσσερις μεταβλητές αντίστοιχα (Min-conflicts summary three vars και Min-conflicts summary four vars). Κεφάλαιο 2 Προβλήματα Ικανοποίησης Περιορισμών Σε αυτό το κεφάλαιο παρουσιάζονται και αναλύονται περισσότερο τα προβλήματα ικανοποίησης περιορισμών (CSPs), των οποίων ο ορισμός δόθηκε παραπάνω. Ο λόγος που λαμβάνει χώρα η εν λόγω ανάλυση έγκειται στο γεγονός ότι η συγκεκριμένη μελέτη στοχεύει στην ανεύρεση πιο αποδοτικών παραλλαγών του αλγόριθμου Min-Conflicts, οι οποίες δοκιμάστηκαν επάνω σε τέτοιου είδους προβλήματα. Η μοντελοποίηση ενός προβλήματος ως Πρόβλημα Ικανοποίησης Περιορισμών όταν αυτό είναι εφικτό- έχει πολλά σημαντικά πλεονεκτήματα [3]. Όταν αναφερόμαστε σε τοπική αναζήτηση, η αναπαράσταση των καταστάσεων σε ένα CSP γίνεται σύμφωνα με ένα καθιερωμένο πρότυπο-δηλαδή με ένα σύνολο μεταβλητών στις οποίες δίνονται τιμές με συνήθως τυχαία αρχικοποίηση- η συνάρτηση διαδόχων και ο έλεγχος των στόχων μπορούν να γράφονται με ένα γενικό τρόπο που εφαρμόζεται σε όλα τα CSP. Επίσης, μπορούν να αναπτυχθούν αποτελεσματικοί ευρετικοί μηχανισμοί, γενικής χρήσης που δεν απαιτούν καμία πρόσθετη ειδική γνώση του συγκεκριμένου πεδίου. Το απλούστερο είδος CSPs[3] χρησιμοποιεί μεταβλητές οι οποίες είναι διακριτές και έχουν πεπερασμένα πεδία τιμών. Για παράδειγμα, τέτοιου είδους είναι τα προβλήματα χρωματισμού χάρτη ή το πρόβλημα 8-Queens τα οποία αναφέρονται και αναλύονται παρακάτω. Παρ όλα αυτά, υπάρχουν αρκετά προβλήματα με διακριτές μεταβλητές που έχουν άπειρα πεδία. Με τα άπειρα πεδία, δεν είναι πλέον δυνατό να περιγράφονται οι περιορισμοί με απαρίθμηση όλων των επιτρεπτών συνδυασμών τιμών[3], άρα πρέπει να χρησιμοποιηθεί μία γλώσσα 7

8 περιορισμών. Θα μπορούσε αντί για αυτό να υπάρχει μία συγκεκριμένη φόρμουλα περιγραφής περιορισμών, η οποία να αναφέρεται σε αυτούς με αλγεβρικό τρόπο. Για παράδειγμα στην περιοχή του χρονοπρογραμματισμού διεργασιών, αν η διεργασία Δ1 πρέπει να λειτουργήσει πριν την διεργασία Δ2, αυτός ο περιορισμός να μπορούσε να γραφεί ως Δ1<Δ2, με τον όρο πως όλες οι διεργασίες θα αναπαρίστανται με χρονικές ακέραιες στιγμές. Η παραπάνω ανίσωση είναι ένας δυαδικός περιορισμός, διότι σε αυτόν υπάρχουν δύο μεταβλητές. Επιπλέον, κάνουν την εμφάνισή τους n-αδικοί περιορισμοί οι οποίοι είναι δυσκολότεροι στον χειρισμό σε σχέση με τους δυαδικούς. Τα προβλήματα ικανοποίησης περιορισμών με συνεχή πεδία, είναι επίσης πολύ συνηθισμένα στον πραγματικό κόσμο και μελετώνται ιδιαίτερα στο πεδίο της Επιχειρησιακής Έρευνας [3]. Για παράδειγμα ο χρονοπρογραμματισμός των πειραμάτων στο διαστημικό τηλεσκόπιο Hubble, απαιτεί πολύ ακριβή χρονισμό των παρατηρήσεων. Πιο συγκεκριμένα, η έναρξη και η λήξη κάθε παρατήρησης ή ελιγμού, είναι μεταβλητές πραγματικών τιμών που πρέπει να υπακούουν σε μία ποικιλία περιορισμών αστρονομικών κριτηρίων, προτεραιότητας και ισχύος. Η γνωστότερη κατηγορία CSPs με συνεχή πεδία ορισμού, είναι τα προβλήματα γραμμικού προγραμματισμού, όπου όλοι οι περιορισμοί πρέπει να είναι γραμμικές ανισότητες που σχηματίζουν μία κυρτή περιοχή. Ακολουθούν μερικά προβλήματα ικανοποίησης περιορισμών για την καλύτερη κατανόηση του αναγνώστη.

9 Εικόνα 1: Το πρόβλημα 8-Queens. Θα περάσουμε σε ένα απλό και ευρέως γνωστό παράδειγμα, με όνομα 8-Queens (Εικόνα 1). Στο συγκεκριμένο πρόβλημα οι μεταβλητές που υπάρχουν είναι οι Βασίλισσες B=B1,B2,B3,B4,B5,B6,B7,B8, ενώ το πεδίο τιμών που μπορούν να πάρουν είναι το Α=1,2,3,4,5,6,7,8-όπου κάθε αριθμός αντιπροσωπεύει και μία στήλη- και οι περιορισμοί είναι πως σε κάθε στήλη πρέπει να υπάρχει μόνο και μόνο μία Βασίλισσα, δηλαδή πρακτικά, πρέπει κάθε μία από τις μεταβλητές να έχει διαφορετική τιμή. Σε αυτό το παράδειγμα, αν θέλουμε να λύσουμε το πρόβλημα με τοπική αναζήτηση, η αρχικοποίηση είναι η τυχαία εκχώρηση στήλης σε κάθε μία Βασίλισσα, και στόχος είναι η ελαχιστοποίηση της αντικειμενικής συνάρτησης (η οποία επιστρέφει τον αριθμό των παραβιάσεων εδώ). Στην παραπάνω εικόνα φαίνεται μία λύση του συγκεκριμένου παραδείγματος. Στην Εικόνα 2 φαίνονται οι κύριες πολιτείες και περιφέρειες της Αυστραλίας. Οι μεταβλητές εδώ είναι οι WA, NT, SA, Q, NSW, V, T. Το πεδίο τιμών είναι ίδιο για όλες τις μεταβλητές: Α=blue,green,red. Ο στόχος είναι να αποδοθούν χρώματα στην κάθε περιοχή ώστε καμία γειτονική περιοχή να μην έχει ίδιο χρώμα. Εικόνα 2: Graph-coloring 9

10 Εικόνα 3: Γράφημα περιορισμών Στην Εικόνα 2 φαίνονται οι κύριες πολιτείες και περιφέρειες της Αυστραλίας. Οι μεταβλητές εδώ είναι οι WA, NT, SA, Q, NSW, V, T. Το πεδίο τιμών είναι ίδιο για όλες τις μεταβλητές: Α=blue,green,red. Οι περιορισμοί απαιτούν να έχουν γειτονικές περιοχές διαφορετικό χρώμα. Για παράδειγμα, οι επιτρεπτοί συνδυασμοί για τις μεταβλητές WA και NT είναι τα ζεύγη τιμών: (κόκκινο-πράσινο), (κόκκινο-μπλε), (πράσινο-κόκκινο), (πράσινο-μπλε), (μπλεκόκκινο), (μπλε-πράσινο) (Ο περιορισμό βέβαια μπορεί να αναπαρασταθεί πιο λακωνικά με την ανισότητα WA NA εφόσον ο αλγόριθμος ικανοποίησης περιορισμών έχει κάποιον τρόπο για να αποτιμά τέτοιες παραστάσεις.) Από την άλλη όπως φαίνεται και στην εικόνα 2, υπάρχουν πολλές δυνατές λύσεις. Μία από αυτές θα μπορούσε να είναι η WA=κόκκινο, ΝΤ=πράσινο, Q=κόκκινο, NSW=πράσινο, V=κόκκινο, SA=μπλε, Τ=κόκκινο. Η δυνατή πολλαπλότητα όσον αφορά τον αριθμό των δυνατών λύσεων είναι σύνηθες φαινόμενο σε τέτοιου είδους προβλήματα και εξαρτάται από πολλούς παράγοντες οι οποίοι καθορίζονται στο πρωτόκολλο-αλγόριθμο που χρησιμοποιείται σε κάθε περίπτωση. Κάθε δυαδικό CSP μπορεί να αναπαρασταθεί ως Γράφημα Περιορισμών (Constraint Graph-Εικόνα 3). Σε ένα Γράφημα Περιορισμών, κάθε τόξο ή ακμή αποτελεί έναν περιορισμό και οι κόμβοι αντιστοιχούν σε μεταβλητές του προβλήματος. Βαθμός κόμβου καλείται το πλήθος των ακμών που πρόσκεινται στον κόμβο. Εξ ορισμού, ένα τόξο συνδέει δύο μόνο κόμβους, με αποτέλεσμα να μην είναι αυτού του είδους ο γράφος επαρκής για την αναπαράσταση ν-αδικών περιορισμών παρά μόνο

11 δυαδικών. Πολλές φορές η δομή ενός γραφήματος περιορισμών μπορεί να χρησιμοποιηθεί για την απλοποίηση της διαδικασίας επίλυσης, παρέχοντας σε μερικές περιπτώσεις εκθετική μείωση της πολυπλοκότητας. Κεφάλαιο 3 Ανάλυση αλγορίθμων Min-Conflicts Ο ευρετικός μηχανισμός των Ελάχιστων Συγκρούσεων είναι μια επισκευαστική μέθοδος που αξιοποιεί την τυχαιότητα στα πλαίσια της επιλογής μεταβλητής προς τροποποίηση με στόχο την ομαλή πλοήγηση προς την λύση. Ανήκει στην οικογένεια των hill climbing αλγορίθμων, οι οποίοι είναι αρκετά αποδοτικοί στην επίλυση των προβλημάτων ικανοποίησης περιορισμών [3]. Σε αυτό το σημείο, θα αναφερθούν ορισμένα κρίσιμα θέματα [4], τα οποία λαμβάνουν χώρα σε όλες τις παραλλαγές, και αφορούν σημαντικά ζητήματα της λειτουργίας τους. Όλες οι παραλλαγές λοιπόν, ξεκινούν με μία τυχαία, πλήρη αρχικοποίηση όλων των μεταβλητών που υπάρχουν στο πρόβλημα, με τιμές που αντιστοιχούν στα πεδία τιμών της κάθε μεταβλητής. Πριν γίνει όμως το οτιδήποτε, ο χρήστης έχει δώσει μία παράμετρο με το όνομα repeats. Αυτός ο αριθμός αντιπροσωπεύει τις επαναλήψεις-βήματα που θα γίνουν στον αλγόριθμο με σκοπό την εύρεση μίας λύσης. Πολλές φορές όμως, μπορεί κάποια παραλλαγή να κολλήσει σε τοπικό βέλτιστο. Στην επιστήμη των υπολογιστών και στα εφαρμοσμένα μαθηματικά, ένα τοπικό βέλτιστο σε κάποιο πρόβλημα βελτιστοποίησης είναι μία λύση που είναι βέλτιστη μέσα σε ένα σύνολο υποψήφιων γειτονικών λύσεων. Αυτή είναι και η διαφορά του από το ολικό βέλτιστο, το οποίο είναι η βέλτιστη λύση από όλες τις πιθανές υποψήφιες λύσεις. Μετά την επιλογή μίας η περισσότερων μεταβλητών, από το σύνολο των μεταβλητών που συμμετέχουν σε σύγκρουση, σε κάθε repeat, (ο τρόπος και ο αριθμός επιλογής των μεταβλητών διαφέρει από παραλλαγή σε παραλλαγή και εξηγείται παρακάτω), παίρνει σειρά ο έλεγχος των δυνατών τιμών που αυτή ή αυτές μπορούν να πάρουν. Σε αυτό το σημείο οι παραλλαγές επιλέγουν είτε το σύνολο των τιμών (αν πρόκειται για μία μεταβλητή), είτε συνδυασμούς τιμών (αν πρόκειται για δύο ή περισσότερες μεταβλητές), και επιλέγεται η εκχώρηση τιμών που ελαχιστοποιεί τις παραβιάσεις του κάθε προβλήματος, των οποίων το πλήθος αποτελεί και την αντικειμενική συνάρτηση (όπως αυτή αναφέρθηκε παραπάνω) η οποία πρέπει να ελαχιστοποιείται σε κάθε βήμα. Αν προκύπτει ο ίδιος ελαχιστοποιημένος αριθμός, επιλέγεται η πρώτη τιμήσυνδυασμός που έδωσε το συγκεκριμένο αποτέλεσμα. Αν καμία από τις διαθέσιμες τιμές-συνδυασμούς, δεν μετακινήσει το πρόβλημα σε καλύτερο αποτέλεσμα, τότε δεν γίνεται καμία αλλαγή, και ο αλγόριθμος προχωράει στο επόμενο βήμα-repeat. 11

12 Η διαδικασία ολοκληρώνεται είτε με το πέρας των βημάτων που έδωσε ο χρήστης, είτε με την εύρεση κάποιας λύσης. Γίνεται αντιληπτό πως στον βασικό αλγόριθμο [4], υπάρχει μόνο μία αρχικοποίηση τιμών που συμβαίνει στην αρχή. Για αυτόν τον λόγο σε όλες τις παραλλαγές που υλοποιήθηκαν, υπάρχει η έννοια του restart. Το restart είναι μία παράμετρος που δίνει ο χρήστης στην αρχή της εκτέλεσης του αλγορίθμου και αντιπροσωπεύει το πλήθος των αρχικοποιήσεων που παίρνουν μέρος σε ένα πρόβλημα. Στην αρχή του κάθε restart γίνεται μία τυχαία αρχικοποίηση τιμών όπως αυτή αναφέρθηκε παραπάνω. Κάθε restart ολοκληρώνεται είτε με το πέρας όλων των repeats που έδωσε ο χρήστης, είτε με την εύρεση λύσης σε κάποιο σημείο. Μόλις αυτό ολοκληρωθεί, ο αλγόριθμος συνεχίζει σε επόμενο restart, άρα σε νέα αρχικοποίηση τιμών. Οπότε ουσιαστικά κάθε restart αποτελεί και ένα νέο «τρέξιμο» των repeats που δίνει ο χρήστης για το πρόβλημα. Αυτό μας ωφελεί στο να έχουμε περισσότερες πιθανότητες εύρεσης λύσης σε κάθε πρόβλημα, καθώς όπως είναι λογικό για παράδειγμα με 10 restarts (αρχικοποιήσεις), υπάρχουν περισσότερες πιθανότητες για λύση από την μία αρχικοποίηση. Παρακάτω, υπάρχει ψευδοκώδικας και παραδείγματα για όλες τις παραλλαγές, αλλά και για τον απλό min-conflicts, για την καλύτερη κατανόηση της λειτουργίας από τον αναγνώστη. 3.1) Απλός min-conflicts Σε κάθε μία επανάληψη λοιπόν, εάν η τυχαία αρχικοποίηση που έγινε δεν αποτελεί λύση του προβλήματος, επιλέγεται τυχαία μία μεταβλητή που συμμετέχει σε σύγκρουση. Στην συνέχεια, δοκιμάζονται όλες οι διαθέσιμες τιμές από το πεδίο τιμών της, ενώ ο τρόπος της επιλογής (ή όχι) της νέας τιμής που θα εκχωρηθεί στην μεταβλητή, ακολουθεί το πρωτόκολλο που παρουσιάστηκε στην εισαγωγή του κεφαλαίου. Για παράδειγμα, αν υποθέσουμε πως υπάρχει το παρακάτω πρόβλημα ικανοποίησης περιορισμών: Μεταβλητές: x0,x1,x2,x3,x4,x5 Κοινό πεδίο τιμών: 0,1,2 Περιορισμοί: x0>x1, x4<x3, x0>x2, x2<x5 Με την παρακάτω αρχικοποίηση Τυχαία αρχικοποίηση: x0=1, x1=1, x2=0, x3=0, x4=1, x5=0

13 Τότε στο πρόβλημά μας υπάρχουν 3 παραβιάσεις περιορισμών. Οι μεταβλητές που συμμετέχουν σε αυτές τις παραβιάσεις προστίθενται σε ένα σύνολο (ίσως σε κάποιον πίνακα). Ο αλγόριθμος έπειτα θα πρέπει να επιλέξει τυχαία κάποια από αυτές τις μεταβλητές. Έστω ότι επιλέγει την x0. Στο συγκεκριμένο παράδειγμα υπάρχουν πολύ λίγες μεταβλητές, διαθέσιμες τιμές και περιορισμοί, για να είναι εύκολα κατανοητό. Άρα στην περίπτωση που θα επιλέγει η x0, ο αλγόριθμος θα δοκιμάσει τις διαθέσιμες τιμές για αυτή την μεταβλητή, δηλαδή την 0 και την 2 (καθώς η 1 υπάρχει στην αρχικοποίηση της μεταβλητής). Αν εκχωρήσουμε την τιμή 0, ο αριθμός των παραβιάσεων γίνεται 4. Αν εκχωρήσουμε την τιμή 2, ο αριθμός των παραβιάσεων θα γίνει 2. Άρα επιλέγεται αυτή η τιμή, εκχωρείται στην μεταβλητή x0, και ο αλγόριθμος συνεχίζει στην επόμενη επανάληψη-βήμα. Ο αλγόριθμος Min-conflicts περιγράφεται λεπτομερώς στον ψευδοκώδικα που ακολουθεί. Η αρχική πλήρης ανάθεση τιμών στις μεταβλητές γίνεται στην γραμμή 2 και συμβολίζεται με current. Το for loop που ακολουθεί (γραμμές 3-12) εκτελείται repeats φορές και σε κάθε εκτέλεση γίνεται τυχαία επιλογή μεταβλητής από τις μεταβλητές που βρίσκονται σε σύγκρουση (γραμμή 7). Έπειτα ανατίθεται μία τιμή στην μεταβλητή αυτή (γραμμή 9) η οποία ελαχιστοποιεί τις συγκρούσεις (γραμμή 8). Στην γραμμή 10 εκχωρείται η νέα ανάθεση τιμών που προέκυψε στις μεταβλητές στην αρχικοποίηση, και εκτελείται το επόμενο βήμα-επανάληψη (αν υπάρχει). 1. Function Min-conflicts (csp, repeats) returns solution/fail 2. current <- initial full assignment of values to the variables 3. For i=1 to repeats 4. If current is a solution 5. return current 6. else 7. x <- a randomly selected variable from the conflicts set (a set of variables that break one or more constraints) 8. v <- the value in Dx that minimizes the conflicts 9. assign v to x 10. current <- the new full assignment values to variables 11. end_if 13

14 12. end_for 13. return fail 3.2) Min-conflicts with restarts Ο πρώτος αλγόριθμος που υλοποιήθηκε είναι ο min-conflicts with restarts. Θα πρέπει να αναφερθεί πως επειδή είναι ίδιος αλγόριθμος σε λειτουργία με τον βασικό, έχει μελετηθεί εκτενώς και σε άλλες έρευνες. Δεν αποτελεί κάποιου είδους παραλλαγή όπως αυτές που ακολουθούν, αλλά παίζει τον ρόλο της βάσης για σύγκριση των αποτελεσμάτων από τις παραλλαγές. Εδώ εισάγεται η έννοια του restart, όπως αυτή αναλύθηκε παραπάνω. Αν παρατηρήσουμε τον παρακάτω ψευδοκώδικα, η λειτουργία της πρώτης αυτής παραλλαγής είναι ίδια με πριν, εάν προσθέσουμε και τις πολλαπλές τυχαίες αρχικοποιήσεις που προκύπτουν από τα restarts. Ο αλγόριθμος Min-conflicts with restarts περιγράφεται λεπτομερώς στον ψευδοκώδικα που ακολουθεί. Η αρχική πλήρης ανάθεση τιμών στις μεταβλητές γίνεται στην γραμμή 3 μέσα στο loop των γραμμών 2-15 και συμβολίζεται με current. Αυτό το loop εκτελείται restarts φορές και σε κάθε επανάληψή του υπάρχει μία νέα αρχικοποίηση τιμών. Το for loop που ακολουθεί (γραμμές 4-13) εκτελείται repeats φορές και σε κάθε εκτέλεση γίνεται τυχαία επιλογή μεταβλητής από τις μεταβλητές που βρίσκονται σε σύγκρουση (γραμμή 8). Έπειτα ανατίθεται μία τιμή στην μεταβλητή αυτή (γραμμή 10) η οποία ελαχιστοποιεί τις συγκρούσεις (γραμμή 9). Στην γραμμή 11 εκχωρείται η νέα ανάθεση τιμών που προέκυψε στις μεταβλητές στην αρχικοποίηση, και εκτελείται το επόμενο βήμα-επανάληψη (αν υπάρχει). 1. Function Min-conflicts with restarts (csp, repeats, restarts) returns solution/local best 2. For j=1 to restarts 3. current <- initial full assignment of values to the variables 4. For i=1 to repeats 5. If current is a solution 6. return current 7. else

15 8. x <- a randomly selected variable from the conflicts set 9. v <- The value in Dx that minimizes the conflicts 10. assign v to x 11. current <- the new full assignment values to variables 12. end_if 13. end_for(i) 14. return local best 15. end_for(j) 16. end Function 3.3) min-conflicts with restarts two variable change (simultaneous testing) Η δεύτερη παραλλαγή που υλοποιήθηκε είναι η min-conflicts with restarts two variable change (simultaneous testing). Σε κάθε repeat, επιλέγονται τυχαία δύο μεταβλητές που συμμετέχουν σε σύγκρουση, και εξετάζονται οι τιμές τους ταυτόχρονα. Δηλαδή για παράδειγμα, αν το σύνολο των δυνατών τιμών είναι 4 και για τις δύο μεταβλητές, τότε θα εξεταστούν 15 συνδυασμοί τιμών (όχι 16 γιατί ο ένας συνδυασμός υπάρχει ήδη). Ο τρόπος επιλογής (ή όχι) των νέων τιμών που θα εκχωρηθούν στις δύο, ακολουθεί το πρωτόκολλο που παρουσιάστηκε στην εισαγωγή του κεφαλαίου. Για παράδειγμα, αν υποθέσουμε πως υπάρχει το παρακάτω πρόβλημα ικανοποίησης περιορισμών: Μεταβλητές: x0,x1,x2,x3,x4,x5 Κοινό πεδίο τιμών: 0,1,2 Περιορισμοί: x0>x1, x4<x3, x0>x2, x2<x5 Με την παρακάτω αρχικοποίηση Τυχαία αρχικοποίηση: x0=1, x1=1, x2=0, x3=0, x4=1, x5=0 15

16 Τότε στο πρόβλημά μας υπάρχουν 3 παραβιάσεις περιορισμών. Οι μεταβλητές που συμμετέχουν σε αυτές τις παραβιάσεις προστίθενται σε ένα σύνολο (ίσως σε κάποιον πίνακα). Ο αλγόριθμος έπειτα θα πρέπει να επιλέξει τυχαία δύο μεταβλητές από το σύνολο. Έστω ότι επιλέγει την x0 και την x1. Άρα θα δοκιμαστούν οι εξής συνδυασμοί με τα αντίστοιχα αποτελέσματα: 1) x0=1, x1=0 conflicts=2 2) x0=1, x1=2 conflicts=3 3) x0=0, x1=0 conflicts=4 4) x0=0, x1=1 conflicts=4 5) x0=0, x1=2 conflicts=4 6) x0=2, x1=0 conflicts=2 7) x0=2, x1=1 conflicts=2 8) x0=2,x1=2 conflicts=3 Είναι προφανές πως υπάρχουν τρεις συνδυασμοί τιμών που ελαχιστοποιούν τις παραβιάσεις (1,6,7). Ο αλγόριθμος επιλέγει την πρώτη από αυτές που ελαχιστοποιούν τις παραβιάσεις. Άρα μετά από αυτό το repeat ο αλγόριθμος θα εκχωρήσει την τιμή 1 στην μεταβλητή x0, και την τιμή 0 στην μεταβλητή x1, και θα προχωρήσει στην επόμενη επανάληψη (repeat), κρατώντας τις ίδιες τιμές στις υπόλοιπες μεταβλητές. Ο αλγόριθμος Min-conflicts with restarts-two variable change (simultaneous testing) περιγράφεται λεπτομερώς στον ψευδοκώδικα που ακολουθεί. Η αρχική πλήρης ανάθεση τιμών στις μεταβλητές γίνεται στην γραμμή 3 μέσα στο loop των γραμμών 2-16 και συμβολίζεται με current. Αυτό το loop εκτελείται restarts φορές και σε κάθε επανάληψή του υπάρχει μία νέα αρχικοποίηση τιμών. Το for loop που ακολουθεί (γραμμές 4-14) εκτελείται repeats φορές και σε κάθε εκτέλεση γίνεται τυχαία επιλογή δύο μεταβλητών από τις μεταβλητές που βρίσκονται σε σύγκρουση (γραμμές 8 και 9). Έπειτα ανατίθεται από μία τιμή στις μεταβλητές αυτές (γραμμή 11) η οποίες ελαχιστοποιούν τις συγκρούσεις ταυτόχρονα (γραμμή 10). Στην γραμμή 12 εκχωρείται η νέα ανάθεση τιμών που προέκυψε στις μεταβλητές στην αρχικοποίηση, και εκτελείται το επόμενο βήμα-επανάληψη (αν υπάρχει). 1. Function min-conflicts with restarts two variable change (simultaneous testing) (csp, repeats, restarts) returns solution/local best 2. For j=1 to restarts

17 3. current <- initial full assignment of values to the variables 4. For i=1 to repeats 5. If current is a solution 6. return current 7. else 8. x1 <- a randomly selected variable from the conflicts set 9. x2 <- a randomly selected variable from the conflicts set 10. v1,v2 <- the values in Dx1 and Dx2 that minimize the conflicts simultaneous 11. assign v1 to x1 and v2 to x2 12. current <- the new full assignment values to variables 13. end_if 14. end_for(i) 15. return local best 16. end_for(j) 17. end Function 3.4) min-conflicts with restarts three variable change (simultaneous testing) Η επόμενη προς εξέταση παραλλαγή έχει το όνομα min-conflicts with restarts three variable change (simultaneous testing). Ο τρόπος που λειτουργεί αυτή η παραλλαγή είναι όμοιος με την προηγούμενη. Στο μόνο που διαφέρουν είναι πως εδώ, ο αλγόριθμος επιλέγει τυχαία τρεις μεταβλητές, από αυτές που συμμετέχουν σε σύγκρουση, και εξετάζει ταυτόχρονα τους συνδυασμούς τιμών που μπορούν να προκύψουν για αυτές. Για παράδειγμα, αν το σύνολο των δυνατών τιμών που μπορούν να πάρουν οι μεταβλητές από τα πεδία τιμών τους είναι 4, τότε θα 17

18 προκύψουν 63 συνδυασμοί τιμών (όχι 64 διότι ο ένας συνδυασμός υπάρχει ήδη). Ο τρόπος της επιλογής (ή όχι) των νέων τιμών που θα εκχωρηθούν στις τρεις, ακολουθεί το πρωτόκολλο που παρουσιάστηκε στην εισαγωγή του κεφαλαίου. Για παράδειγμα, αν υποθέσουμε πως υπάρχει το παρακάτω πρόβλημα ικανοποίησης περιορισμών: Μεταβλητές: x0,x1,x2,x3,x4,x5 Κοινό πεδίο τιμών: 0,1,2 Περιορισμοί: x0>x1, x4<x3, x0>x2, x2<x5 Με την παρακάτω αρχικοποίηση Τυχαία αρχικοποίηση: x0=1, x1=1, x2=0, x3=0, x4=1, x5=0 Τότε στο πρόβλημά μας υπάρχουν 3 παραβιάσεις περιορισμών. Οι μεταβλητές που συμμετέχουν σε αυτές τις παραβιάσεις προστίθενται σε ένα σύνολο (ίσως σε κάποιον πίνακα). Ο αλγόριθμος έπειτα θα πρέπει να επιλέξει τυχαία τρεις μεταβλητές από το σύνολο. Έστω ότι επιλέγει την x0, την x1 και την x2. Άρα θα δοκιμαστούν οι εξής συνδυασμοί με τα αντίστοιχα αποτελέσματα: 1) x0=1, x1=0, x2=0 conflicts=2 2) x0=1, x1=2, x2=0 conflicts=3 3) x0=0, x1=0, x2=0 conflicts=4 4) x0=0, x1=1, x2=0 conflicts=4 5) x0=0, x1=2, x2=0 conflicts=4 6) x0=2, x1=0, x2=0 conflicts=2 7) x0=2, x1=1, x2=0 conflicts=2 8) x0=2, x1=2, x2=0 conflicts=3 9) x0=1, x1=0, x2=1 conflicts=3 10) x0=1, x1=2, x2=1 conflicts=4 11) x0=0, x1=0, x2=1 conflicts=4 12) x0=0, x1=1, x2=1 conflicts=4 13) x0=0, x1=2, x2=1 conflicts=4 14) x0=2, x1=0, x2=1 conflicts=2

19 15) x0=2, x1=1, x2=1 conflicts=2 16) x0=2, x1=2, x2=1 conflicts=3 17) x0=1, x1=1, x2=1 conflicts=4 18) x0=1, x1=0, x2=2 conflicts=3 19) x0=1, x1=2, x2=2 conflicts=4 20) x0=0, x1=0, x2=2 conflicts=4 21) x0=0, x1=1, x2=2 conflicts=4 22) x0=0, x1=2, x2=2 conflicts=4 23) x0=2, x1=0, x2=2 conflicts=3 24) x0=2, x1=1, x2=2 conflicts=3 25) x0=2,x1=2, x2=2 conflicts=4 26) x0=1, x1=1, x2=2 conflicts=4 Είναι προφανές πως υπάρχουν πέντε συνδυασμοί τιμών που ελαχιστοποιούν τις παραβιάσεις (1,6,7,14,15). Ο αλγόριθμος επιλέγει την πρώτη από αυτές που ελαχιστοποιούν τις παραβιάσεις. Άρα μετά από αυτό το repeat ο αλγόριθμος θα εκχωρήσει την τιμή 1 στην μεταβλητή x0, τιμή 0 στην μεταβλητή x1 και την τιμή 0 στην μεταβλητή x0 και θα προχωρήσει στην επόμενη επανάληψη (repeat), κρατώντας τις ίδιες τιμές στις υπόλοιπες μεταβλητές. Ο αλγόριθμος Min-conflicts with restarts-three variable change (simultaneous testing) περιγράφεται λεπτομερώς στον ψευδοκώδικα που ακολουθεί. Η αρχική πλήρης ανάθεση τιμών στις μεταβλητές γίνεται στην γραμμή 3 μέσα στο loop των γραμμών 2-17 και συμβολίζεται με current. Αυτό το loop εκτελείται restarts φορές και σε κάθε επανάληψή του υπάρχει μία νέα αρχικοποίηση τιμών. Το for loop που ακολουθεί (γραμμές 4-15) εκτελείται repeats φορές και σε κάθε εκτέλεση γίνεται τυχαία επιλογή τριών μεταβλητών από τις μεταβλητές που βρίσκονται σε σύγκρουση (γραμμές 8-10). Έπειτα ανατίθεται από μία τιμή στις μεταβλητές αυτές (γραμμή 12) η οποίες ελαχιστοποιούν τις συγκρούσεις ταυτόχρονα (γραμμή 11). Στην γραμμή 13 εκχωρείται η νέα ανάθεση τιμών που προέκυψε στις μεταβλητές στην αρχικοποίηση, και εκτελείται το επόμενο βήμα-επανάληψη (αν υπάρχει). 1. Function min-conflicts with restarts three variable change (simultaneous testing) (csp, repeats, restarts) returns solution/local best 19

20 2. For j=1 to restarts 3. current <- initial full assignment of values to the variables 4. For i=1 to repeats 5. If current is a solution 6. return current 7. else 8. x1 <- a randomly selected variable from the conflicts set 9. x2 <- a randomly selected variable from the conflicts set 10. x3 <- a randomly selected variable from the conflicts set 11. v1,v2,v3 <- the values in Dx1, Dx2, Dx3 that minimize the conflicts simultaneous 12. assign v1 to x1, v2 to x2 and v3 to x3 13. current <- the new full assignment values to variables 14. end_if 15. end_for(i) 16. return local best 17. end_for(j) 18. end Function 3.5) min-conflicts with restarts constraint violation1 (simultaneous testing) H επόμενη παραλλαγή του βασικού αλγορίθμου που υλοποιήθηκε, έχει το όνομα min-conflicts with restarts constraint violation1 (simultaneous testing). Αυτή η παραλλαγή διαφέρει από τις υπόλοιπες που παρουσιάστηκαν μέχρι τώρα, ως προς

21 την εκχώρηση των μεταβλητών, που είναι υποψήφιες για αλλαγή τιμής, στο αντίστοιχο σύνολο. Πιο συγκεκριμένα, πλέον σε κάθε βήμα-repeat, οι μεταβλητές επιλέγονται με βάση την παραβίαση κάποιου περιορισμού. Δηλαδή αν για παράδειγμα υπάρχει, μεταξύ άλλων, ο περιορισμός x0>x1, ενώ x0=0 και x1=1, καταχωρούνται και οι δύο στο σύνολο των υποψήφιων προς επιλογή μεταβλητών. Και εδώ όμως, όπως και σε όλες τις παραλλαγές, η αντικειμενική συνάρτηση που πρέπει να ελαχιστοποιηθεί, είναι οι παραβιάσεις των περιορισμών. Επίσης, όπως είναι λογικό, από την τυχαία επιλογή θα πρέπει να επιλεγεί ένα ζεύγος μεταβλητών που παραβιάζει περιορισμό. Για παράδειγμα, αν υπάρχουν στο σύνολο των υποψήφιων μεταβλητών οι x0,x1,x4,x7,x8,x12, και το ζεύγος x0, x4, δεν παραβιάζει περιορισμό, τότε δεν θα επιλεγούν ποτέ μαζί αυτές οι δύο μεταβλητές. Πρέπει να αναφερθεί, πως σε αυτή την παραλλαγή, μία μεταβλητή θα υπάρχει στο σύνολο των μεταβλητών προς επιλογή, όσες φορές εμφανίζεται σε περιορισμό που παραβιάζεται. Αυτό βέβαια συμβαίνει μόνο σε αυτή και στην επόμενη παραλλαγή. Σε όλες τις υπόλοιπες κάθε μεταβλητή υπάρχει μόνο μία φορά στο σύνολο, ώστε κάθε μία να έχει την ίδια πιθανότητα να επιλεγεί από τον αλγόριθμο. Οι δοκιμές των τιμών και εδώ γίνονται ταυτόχρονα. Δηλαδή αν το πεδίο τιμών και για τις 2 μεταβλητές που θα επιλεγούν, διακατέχει 5 αριθμούς, θα γίνουν δοκιμές για 24 συνδυασμούς τιμών (όχι 25 γιατί ο ένας υπάρχει ήδη), ενώ ο τρόπος της επιλογής (ή όχι) των νέων τιμών που θα εκχωρηθούν στις δύο, ακολουθεί το πρωτόκολλο που παρουσιάστηκε στην εισαγωγή του κεφαλαίου. Ακολουθεί ένα παράδειγμα εφαρμογής αυτής της παραλλαγής, σε ένα απλό πρόβλημα ικανοποίησης περιορισμών. Μεταβλητές: x0,x1,x2,x3,x4,x5 Κοινό πεδίο τιμών: 0,1,2 Περιορισμοί: x0>x1, x4<x3, x0>x2, x2<x5 Με την παρακάτω αρχικοποίηση Τυχαία αρχικοποίηση: x0=1, x1=1, x2=1, x3=0, x4=1, x5=0 Οι αρχικές παραβιάσεις του προβλήματος είναι 4. Οπότε το αντίστοιχο σύνολο των μεταβλητών προς επιλογή θα είναι το x0,x1,x3,x4,x0,x2,x2,x5. Αν παρατηρήσουμε καλύτερα, θα δούμε πως οι μεταβλητές του συνόλου ανά δύο σχηματίζουν έναν περιορισμό που παραβιάζεται. Αν υποθέσουμε πως μετά την τυχαία επιλογή του περιορισμού που παραβιάζεται επιλέγονται οι μεταβλητές x0 και x1, τότε θα εξετασθούν οι παρακάτω συνδυασμοί τιμών με τις αντίστοιχες παραβιάσεις: 1) x0=1, x1=0 conflicts=3 2) x0=1, x1=2 conflicts=4 21

22 3) x0=0, x1=0 conflicts=4 4) x0=0, x1=1 conflicts=4 5) x0=0, x1=2 conflicts=4 6) x0=2, x1=0 conflicts=2 7) x0=2, x1=1 conflicts=2 8) x0=2,x1=2 conflicts=3 Από τους παραπάνω συνδυασμούς τιμών και τις αντίστοιχες παραβιάσεις, φαίνεται πως οι συνδυασμοί 6 και 7 αποδίδουν τις λιγότερες, οπότε με το πέρας αυτής της επανάληψης θα καταχωρηθεί η τιμή 2 στην μεταβλητή x0, η τιμή 0 στην μεταβλητή x1 ενώ οι υπόλοιπες μεταβλητές θα διατηρήσουν τις τιμές που έχουν. Ο αλγόριθμος έπειτα θα συνεχίσει στο επόμενο βήμα. Ο αλγόριθμος Min-conflicts with restarts-constraint violation1 (simultaneous testing)περιγράφεται λεπτομερώς στον ψευδοκώδικα που ακολουθεί. Η αρχική πλήρης ανάθεση τιμών στις μεταβλητές γίνεται στην γραμμή 3 μέσα στο loop των γραμμών 2-15 και συμβολίζεται με current. Αυτό το loop εκτελείται restarts φορές και σε κάθε επανάληψή του υπάρχει μία νέα αρχικοποίηση τιμών. Το for loop που ακολουθεί (γραμμές 4-13) εκτελείται repeats φορές και σε κάθε εκτέλεση γίνεται τυχαία επιλογή κάποιου περιορισμού που παραβιάζεται (γραμμή 8). Έπειτα ανατίθεται από μία τιμή στις μεταβλητές αυτές (γραμμή 10) η οποίες ελαχιστοποιούν τις συγκρούσεις ταυτόχρονα (γραμμή 9). Στην γραμμή 11 εκχωρείται η νέα ανάθεση τιμών που προέκυψε στις μεταβλητές στην αρχικοποίηση, και εκτελείται το επόμενο βήμα-επανάληψη (αν υπάρχει). 1. Function min-conflicts with restarts constraint violation1 (simultaneous testing) (csp, repeats, restarts) returns solution/local best 2. For j=1 to restarts 3. current <- initial full assignment of values to the variables 4. For i=1 to repeats 5. If current is a solution 6. return current 7. else

23 8. x1,x2 <- randomly selected constraint from the set 9. v1,v2 <- the values in Dx1 and Dx2 that minimize the conflicts simultaneous 10. assign v1 to x1 and v2 to x2 11. current <- the new full assignment values to variables 12. end_if 13. end_for(i) 14. return local best 15. end_for(j) 16. end Function 3.6) min-conflicts with restarts constraint violation2 (separate testing) Σειρά έχει η παραλλαγή με όνομα min-conflicts with restarts constraint violation2 (separate testing). Σε αυτή την περίπτωση, η επιλογή των μεταβλητών γίνεται ακριβώς με τον ίδιο τρόπο με την παραλλαγή που παρουσιάστηκε στην ενότητα 3.5. Αυτές οι δύο, είναι οι μοναδικές από το σύνολο των παραλλαγών που υλοποιήθηκαν, οι οποίες εκχωρούν τις υποψήφιες για αλλαγή τιμής μεταβλητές, κατά αυτόν τον τρόπο, δηλαδή σύμφωνα με παραβίαση περιορισμού. Όλες οι υπόλοιπες λειτουργούν με τον προκαθορισμένο τρόπο, όσον αφορά στο συγκεκριμένο θέμα υλοποίησης, που σημαίνει πως μία μεταβλητή είναι υποψήφια για επιλογή και αλλαγή τιμής αν απλά παραβιάζει κάποιον περιορισμό. Για να γίνει αντιληπτή η διαφορά στους δύο αυτούς τρόπους, θα αναφερθεί ένα παράδειγμα. Έστω πως υπάρχουν μεταξύ άλλων οι περιορισμοί x0>x1 και x0=x2 με τις τιμές x0=1, x1=3 και x2=2. Στην περίπτωση των constraint violation παραλλαγών, η εκχώρηση των μεταβλητών στο σύνολο των υποψηφίων προς επιλογή, θα είναι x0,x1,x0,x2. Παρατηρείται δηλαδή πως οι μεταβλητές μπαίνουν με την μορφή των περιορισμών στο σύνολο, και επιλέγονται για αλλαγή ανά ζεύγη περιορισμών. Στον προκαθορισμένο τρόπο λειτουργίας από την άλλη η εκχώρηση θα είναι x0,x1,x2. Η διαφορά μεταξύ των παραλλαγών 3.5 και 3.6, έγκειται στο γεγονός πως οι δοκιμές των τιμών για την ελαχιστοποίηση της αντικειμενικής συνάρτησης γίνονται 23

24 ξεχωριστά, και αλλάζει τιμή μόνο μία από τις δυο μεταβλητές. Δηλαδή αν για παράδειγμα το πεδίο των διαθέσιμων τιμών για τις μεταβλητές περιέχει 5 δυνατές επιλογές, τότε θα γίνουν 8 δοκιμές τιμών, ενώ ο τρόπος της επιλογής (ή όχι) της νέας τιμής που θα εκχωρηθεί, ακολουθεί το πρωτόκολλο που παρουσιάστηκε στην εισαγωγή του κεφαλαίου. Ακολουθεί ένα παράδειγμα εφαρμογής αυτής της διαδικασίας σε ένα απλό πρόβλημα ικανοποίησης περιορισμών, για την καλύτερη κατανόηση από τον αναγνώστη: Μεταβλητές: x0,x1,x2,x3,x4,x5 Κοινό πεδίο τιμών: 0,1,2 Περιορισμοί: x0>x1, x4<x3, x0>x2, x2<x5 Με την παρακάτω αρχικοποίηση Τυχαία αρχικοποίηση: x0=1, x1=1, x2=1, x3=0, x4=1, x5=0 Οι αρχικές παραβιάσεις του προβλήματος είναι 4. Οπότε το αντίστοιχο σύνολο των μεταβλητών προς επιλογή θα είναι το x0,x1,x3,x4,x0,x2,x2,x5. Αν παρατηρήσουμε καλύτερα, θα δούμε πως οι μεταβλητές του συνόλου ανά δύο σχηματίζουν έναν περιορισμό που παραβιάζεται. Αν υποθέσουμε πως μετά την τυχαία επιλογή του περιορισμού που παραβιάζεται επιλέγονται οι μεταβλητές x0 και x1, τότε θα εξετασθούν οι παρακάτω δοκιμές τιμών με τις αντίστοιχες παραβιάσεις: x0=1=constant, 1) x1=0 conflicts=3 2) x1=2 conflicts=4 x1=1=constant. 3) x0=0 conflicts=4 4) x0=2 conflicts=2 Παρατηρούμε πως το πεδίο των διαθέσιμων τιμών για τις δύο μεταβλητές καθορίζεται από τρεις τιμές και έγιναν 4 δοκιμές όχι 6 γιατί οι δύο υπάρχουν ήδη. Από αυτές τις 4, η τέταρτη ελαχιστοποιεί την αντικειμενική συνάρτηση, άρα μετά από αυτό το βήμα-repeat, ο αλγόριθμος θα εκχωρήσει την τιμή 2 στην μεταβλητή x0 και θα συνεχίσει στο επόμενο, ενώ οι υπόλοιπες μεταβλητές θα διατηρήσουν τις τιμές που είναι εκχωρημένες σε αυτές. Ο αλγόριθμος Min-conflicts with restarts-constraint violation2 (separate testing)περιγράφεται λεπτομερώς στον ψευδοκώδικα που ακολουθεί. Η αρχική πλήρης ανάθεση τιμών στις μεταβλητές γίνεται στην γραμμή 3 μέσα στο loop των

25 γραμμών 2-14 και συμβολίζεται με current. Αυτό το loop εκτελείται restarts φορές και σε κάθε επανάληψή του υπάρχει μία νέα αρχικοποίηση τιμών. Το for loop που ακολουθεί (γραμμές 4-12) εκτελείται repeats φορές και σε κάθε εκτέλεση γίνεται τυχαία επιλογή κάποιου περιορισμού που παραβιάζεται (γραμμή 8). Έπειτα ανατίθεται μία τιμή σε μία από τις δύο μεταβλητές (γραμμή 10)η οποία ελαχιστοποιεί τις συγκρούσεις (γραμμή 9). Στην γραμμή 11 εκχωρείται η νέα ανάθεση τιμών που προέκυψε στις μεταβλητές στην αρχικοποίηση, και εκτελείται το επόμενο βήμα-επανάληψη (αν υπάρχει). 1. Function min-conflicts with restarts constraint violation2 (separate testing) (csp, repeats, restarts) returns solution/local best 2. For j=1 to restarts 3. current <- initial full assignment of values to the variables 4. For i=1 to repeats 5. If current is a solution 6. return current 7. else 8. x1,x2 <- a randomly selected constraint from the set 9. v1 v2 <- the value in Dx1 OR the value in Dx2 that minimizes the conflicts 10. assign v1 to x1 OR v2 to x2 11. current <- the new full assignment values to variables end_if 12. end_for(i) 13. return local best 14. end_for(j) 15. end Function 25

26 3.7) min-conflicts with restarts two selected variables (separate testing) Συνεχίζοντας στην παρουσίαση και στην ανάλυση των παραλλαγών που υλοποιήθηκαν σε αυτή την διπλωματική, φτάνουμε στον αλγόριθμο min-conflicts with restarts two selected variables (separate testing). Σε αυτή την περίπτωση, η διαδικασία έχει ως εξής. Μία μεταβλητή επιλέγεται να μπει στο σύνολο με τις υποψήφιες προς επιλογή μεταβλητές σύμφωνα με τον προκαθορισμένο τρόπο. Σε κάθε νέο βήμα, επιλέγονται δύο από αυτές τις μεταβλητές και έπειτα ελέγχεται και πάλι η αλλαγή που πρέπει να γίνει για την ελαχιστοποίηση της αντικειμενικής συνάρτησης. Όπως και πριν, έτσι και εδώ, η δοκιμές των τιμών από τα πεδία τιμών που αντιστοιχούν στις μεταβλητές, γίνεται ξεχωριστά. Άρα για παράδειγμα αν υποθέσουμε πως επιλέχθηκαν οι μεταβλητές x0 και x1, ενώ το -κοινό- πεδίο τιμών διαθέτει 5 τιμές για κάθε μία από αυτές, θα γίνουν 8 έλεγχοι (οι δύο συνδυασμοί υπάρχουν ήδη). Θα επιλεγεί η μεταβλητή της οποίας μία τιμή ελαχιστοποιεί το πρόβλημα περισσότερο από όλες τις υπόλοιπες τιμές για αυτήν, αλλά και από όλες τις τιμές της άλλης μεταβλητής. Από την άλλη βέβαια, το αν θα γίνει η εν λόγω αλλαγή τιμής ή όχι, ελέγχεται από τις συνθήκες που περιγράφηκαν στην αρχή του κεφαλαίου. Ακολουθεί μία εφαρμογή ενός προβλήματος ικανοποίησης περιορισμών σε αυτήν την παραλλαγή: Μεταβλητές: x0,x1,x2,x3,x4,x5 Κοινό πεδίο τιμών: 0,1,2,3 Περιορισμοί: x0>x1, x4<x3, x0>x2, x2<x5 Με την παρακάτω αρχικοποίηση Τυχαία αρχικοποίηση: x0=2, x1=3, x2=1, x3=0, x4=1, x5=0 Σε αυτό το σημείο του βήματος, υπάρχουν στο πρόβλημα 3 παραβιάσεις περιορισμών. Παραβιάζονται οι 1,2,4 περιορισμοί, άρα το σύνολο των διαθέσιμων μεταβλητών για επιλογή και αλλαγή θα είναι το x0,x1,x2,x3,x4,x5. Το σύνολο των διαθέσιμων τιμών είναι 4 και για τις δύο μεταβλητές, άρα θα γίνουν 6 έλεγχοι. Αν υποθέσουμε πως επιλέγονται τυχαία οι μεταβλητές x0,x2 τότε θα προκύψουν οι παρακάτω έλεγχοι με τα αντίστοιχα αποτελέσματα: x0=2=constant, 1) x2=0 conflicts=3 2) x2=2 conflicts=4

27 3) x2=3 conflicts=4 x2=1=constant. 4) x0=0 conflicts=4 5) x0=1 conflicts=4 6) x0=3 conflicts=3 Βλέπουμε σε αυτό το σημείο πως ο οι συνδυασμοί 1,6 αποδίδουν το ίδιο καλύτερα από τους υπόλοιπους συνδυασμούς. Άρα, θα επιλεγεί ο πρώτος συνδυασμός που ελαχιστοποιεί τις συγκρούσεις. Μετά από αυτό το βήμα η μεταβλητή x2 θα πάρει την τιμή 0, ενώ όλες οι υπόλοιπες μεταβλητές παραμένουν αμετάβλητες, και ο αλγόριθμος θα προχωρήσει στο επόμενο βήμα. Ο αλγόριθμος Min-conflicts with restarts two selected variables (separate testing) περιγράφεται λεπτομερώς στον ψευδοκώδικα που ακολουθεί. Η αρχική πλήρης ανάθεση τιμών στις μεταβλητές γίνεται στην γραμμή 3 μέσα στο loop των γραμμών 2-16 και συμβολίζεται με current. Αυτό το loop εκτελείται restarts φορές και σε κάθε επανάληψή του υπάρχει μία νέα αρχικοποίηση τιμών. Το for loop που ακολουθεί (γραμμές 4-14) εκτελείται repeats φορές και σε κάθε εκτέλεση γίνεται τυχαία επιλογή δύο μεταβλητών από τις μεταβλητές που βρίσκονται σε σύγκρουση (γραμμές 8 και 9). Έπειτα ανατίθεται μία τιμή σε μία από τις δύο μεταβλητές (γραμμή 11)η οποία ελαχιστοποιεί τις συγκρούσεις (γραμμή 10). Στην γραμμή 12 εκχωρείται η νέα ανάθεση τιμών που προέκυψε στις μεταβλητές στην αρχικοποίηση, και εκτελείται το επόμενο βήμα-επανάληψη (αν υπάρχει). 1. Function min-conflicts with restarts two selected variables (separate testing) (csp, repeats, restarts) returns solution/local best 2. For j=1 to restarts 3. current <- initial full assignment of values to the variables 4. For i=1 to repeats 5. If current is a solution 6. return current 7. else 8. x1 <- a randomly selected variable from the set 27

28 9. x2 <- a randomly selected variable from the set 10. v1 v2 <- the value in Dx1 OR the value in Dx2 that minimizes the conflicts 11. assign v1 to x1 OR v2 to x2 12. current <- the new full assignment values to variables 13. end_if 14. end_for(i) 15. return local best 16. end_for(j) 17. end Function 3.8) min-conflicts with restarts three selected variables (separate testing) Η επόμενη και προτελευταία παραλλαγή που μελετήθηκε έχει το όνομα minconflicts with restarts three selected variables (separate testing). Έχει ακριβώς ίδια λειτουργία με την προηγούμενη παραλλαγή (3.8) με την μόνο διαφορά, πως αντί για δύο μεταβλητές επιλέγονται τρεις. Αν για παράδειγμα το διαθέσιμο σύνολο τιμών για τις μεταβλητές περιέχει 6 τιμές, θα γίνουν 15 δοκιμές τιμών (οι 3 από τους 18 υπάρχουν ήδη). Η επιλογή ή όχι κάποιας αλλαγής τιμής, εξαρτάται από τους ελέγχους που περιγράφηκαν στην αρχή του κεφαλαίου. Ακολουθεί μία εφαρμογή ενός CSP σε αυτή την παραλλαγή: Μεταβλητές: x0,x1,x2,x3,x4,x5 Κοινό πεδίο τιμών: 0,1,2,3 Περιορισμοί: x0>x1, x4<x3, x0>x2, x2<x5 Με την παρακάτω αρχικοποίηση Τυχαία αρχικοποίηση: x0=2, x1=3, x2=1, x3=0, x4=1, x5=0 Σε αυτό το σημείο του βήματος, υπάρχουν στο πρόβλημα 3 παραβιάσεις περιορισμών. Παραβιάζονται οι 1,2,4 περιορισμοί, άρα το σύνολο των διαθέσιμων

29 μεταβλητών για επιλογή και αλλαγή θα είναι το x0,x1,x2,x3,x4,x5. Το σύνολο των διαθέσιμων τιμών είναι 4 και για τις δύο μεταβλητές, άρα θα γίνουν 9 έλεγχοι. Αν υποθέσουμε πως επιλέγονται τυχαία οι μεταβλητές x0,x2 και x3 τότε θα προκύψουν οι παρακάτω έλεγχοι με τα αντίστοιχα αποτελέσματα: x0=2=constant x2=1=constant 1) x3=1 conflicts=3 2) x3=2 conflicts=2 3) x3=3 conflicts=2 x0=2=constant x3=0=constant 4) x2=0 conflicts=3 5) x2=2 conflicts=4 6) x2=3 conflicts=4 x2=1=constant x3=0=constant 7) x0=0 conflicts=4 8) x0=1 conflicts=4 9) x0=3 conflicts=3 Από τις παραπάνω δοκιμές που παίρνουν χώρα σε αυτό το βήμα του αλγορίθμου, φαίνεται πως υπάρχουν δύο αλλαγές τιμής που ελαχιστοποιούν το ίδιο την αντικειμενική συνάρτηση (η οποία όπως είπαμε επιστρέφει τις συγκρούσεις που υπάρχουν στο πρόβλημα). Αυτές οι αλλαγές είναι οι 2,3. Ο αλγόριθμος θα επιλέξει την 2 γιατί είναι η πρώτη που συναντάει, η οποία ελαχιστοποιεί τις συγκρούσεις. Άρα στο επόμενο βήμα του τρεξίματος, η μεταβλητή x3 θα έχει την τιμή 2, ενώ όλες οι υπόλοιπες μεταβλητές θα διατηρήσουν τις τιμές τους. Ο αλγόριθμος Min-conflicts with restarts three selected variables (separate testing) περιγράφεται λεπτομερώς στον ψευδοκώδικα που ακολουθεί. Η αρχική πλήρης ανάθεση τιμών στις μεταβλητές γίνεται στην γραμμή 3 μέσα στο loop των γραμμών 2-17 και συμβολίζεται με current. Αυτό το loop εκτελείται restarts φορές και σε κάθε επανάληψή του υπάρχει μία νέα αρχικοποίηση τιμών. Το for loop που ακολουθεί (γραμμές 4-15) εκτελείται repeats φορές και σε κάθε εκτέλεση γίνεται τυχαία επιλογή δύο μεταβλητών από τις μεταβλητές που βρίσκονται σε σύγκρουση (γραμμές 8-10). Έπειτα ανατίθεται μία τιμή σε μία από τις τρεις μεταβλητές (γραμμή 12) η οποία ελαχιστοποιεί τις συγκρούσεις (γραμμή 11). Στην γραμμή 13 29

30 εκχωρείται η νέα ανάθεση τιμών που προέκυψε στις μεταβλητές στην αρχικοποίηση, και εκτελείται το επόμενο βήμα-επανάληψη (αν υπάρχει). 1. Function min-conflicts with restarts three selected variables (separate testing) (csp, repeats, restarts) returns solution/local best 2. For j=1 to restarts 3. current <- initial full assignment of values to the variables 4. For i=1 to repeats 5. If current is a solution 6. return current 7. else 8. x1 <- a randomly selected variable from the set 9. x2 <- a randomly selected variable from the set 10. x3 <- a randomly selected variable from the set 11. v1 v2 v3 <- the value in Dx1 OR the value in Dx2 Or the value in Dx3 that minimizes the conflicts 12. assign v1 to x1 OR v2 to x2 OR v3 to x3 13. current <- the new full assignment values to variables 14. end_if 15. end_for(i) 16. return local best 17. end_for(j) 18. end Function

31 3.9) min-conflicts with restarts four selected variables (separate testing) Η τελευταία παραλλαγή που υλοποιήθηκε και μελετήθηκε στην παρούσα διπλωματική εργασία, έχει το όνομα min-conflicts with restarts four selected variables (separate testing). Και αυτός ο αλγόριθμος λοιπόν έχει ίδια λειτουργία με τις προηγούμενες δύο που παρουσιάστηκαν (3.7, 3.8) με την μόνη διαφορά πως επιλέγονται πλέον τέσσερις μεταβλητές. Αξίζει να αναφερθεί πως και στις τρεις τελευταίες παραλλαγές που παρουσιάζονται εδώ, καθώς και σε όλες τις παραλλαγές που υποστηρίζουν separate testing, στο τέλος του κάθε βήματος αλλάζει το πολύ μόνο μία τιμή μεταβλητής. Η παραπάνω τοποθέτηση θα πρέπει να έχει παρατηρηθεί από τον αναγνώστη από όλα τα παραδείγματα που συνοδεύονται από τον ψευδοκώδικα σε κάθε μία παραλλαγή. Άρα, αν επιλεγούν 4 μεταβλητές των οποίων το πεδίο τιμών είναι κοινό και περιέχει 5 δυνατές τιμές, θα γίνουν 12 έλεγχοι με σκοπό την ομαλή κίνηση προς την λύση. Βέβαια το αν θα γίνει κάποια αλλαγή ή όχι σε μία μεταβλητή, εξαρτάται από το πρωτόκολλο που παρουσιάστηκε στην αρχή του κεφαλαίου. Καθώς αυτή η παραλλαγή είναι ίδια σε λειτουργία με τις προηγούμενες δύο δεν ακολουθεί παράδειγμα. Ο αλγόριθμος Min-conflicts with restarts four selected variables (separate testing) περιγράφεται λεπτομερώς στον ψευδοκώδικα που ακολουθεί. Η αρχική πλήρης ανάθεση τιμών στις μεταβλητές γίνεται στην γραμμή 3 μέσα στο loop των γραμμών 2-18 και συμβολίζεται με current. Αυτό το loop εκτελείται restarts φορές και σε κάθε επανάληψή του υπάρχει μία νέα αρχικοποίηση τιμών. Το for loop που ακολουθεί (γραμμές 4-16) εκτελείται repeats φορές και σε κάθε εκτέλεση γίνεται τυχαία επιλογή τεσσάρων μεταβλητών από τις μεταβλητές που βρίσκονται σε σύγκρουση (γραμμές 8-11). Έπειτα ανατίθεται μία τιμή σε μία από τις τέσσερις μεταβλητές (γραμμή 13) η οποία ελαχιστοποιεί τις συγκρούσεις (γραμμή 12). Στην γραμμή 14 εκχωρείται η νέα ανάθεση τιμών που προέκυψε στις μεταβλητές στην αρχικοποίηση, και εκτελείται το επόμενο βήμα-επανάληψη (αν υπάρχει). 1. Function min-conflicts with restarts four selected variables (separate testing) (csp, repeats, restarts) returns solution/local best 2. For j=1 to restarts 3. current <- initial full assignment of values to the variables 4. For i=1 to repeats 5. If current is a solution 31

32 6. return current 7. else 8. x1 <- a randomly selected variable from the set 9. x2 <- a randomly selected variable from the set 10. x3 <- a randomly selected variable from the set 11. x4 <- a randomly selected variable from the set 12. v1 v2 v3 v4<- the value in Dx1 OR the value in Dx2 Or the value in Dx3 OR the value in Dx4 that minimizes the conflicts 13. assign v1 to x1 OR v2 to x2 OR v3 to x3 OR v4 to x4 14. current <- the new full assignment values to variables 15. end_if 16. end_for(i) 17. return local best 18. end_for(j) 19. end Function 3.10) Κύριες Δομές Σε αυτό το σημείο του κεφαλαίου, και πριν προχωρήσουμε στην επεξήγηση του τρόπου με τον οποίο έγιναν οι δοκιμές μερικών προβλημάτων επάνω σε όλες τις παραλλαγές, θα ήταν χρήσιμο να αναφερθούν μερικές κύριες δομές-πίνακες που οι οποίες παίζουν κομβικό ρόλο στην υλοποίηση όλων των συναρτήσεων-παραλλαγών που αναφέρθηκαν παραπάνω. pinakas_timwn: Δύο διαστάσεων πίνακας ο οποίος περιέχει για κάθε διαθέσιμο πεδίο που υπάρχει στο πρόβλημα, το αντίστοιχο σύνολο τιμών. Στις γραμμές αντιστοιχεί κάθε ένα πεδίο, ενώ στις στήλες εμφανίζονται οι τιμές του κάθε πεδίου.

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Ικανοποίηση Περιορισμών Κατηγορία προβλημάτων στα οποία είναι γνωστές μερικές

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

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 6: Προβλήματα ικανοποίησης περιορισμών. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 6: Προβλήματα ικανοποίησης περιορισμών. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 6: Προβλήματα ικανοποίησης περιορισμών Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

Επίλυση Προβλημάτων 1

Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων Περιγραφή Προβλημάτων Αλγόριθμοι αναζήτησης Αλγόριθμοι τυφλής αναζήτησης Αναζήτηση πρώτα σε βάθος Αναζήτηση πρώτα σε πλάτος (ΒFS) Αλγόριθμοι ευρετικής αναζήτησης

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

Πρόβληµα ικανοποίησης περιορισµών

Πρόβληµα ικανοποίησης περιορισµών Προβλήµατα ικανοποίησης περιορισµών Constraint Satisfaction Problems Πρόβληµα ικανοποίησης περιορισµών Μεταβλητές: X 1, X 2,, X n, Πεδία ορισµού: D 1, D 2, D n Περιορισµοί: C 1, C 2,, C m Ανάθεση τιµών:

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Μοντελοποίηση προβληµάτων

Μοντελοποίηση προβληµάτων Σχεδιασµός Αλγορίθµων Ακέραιος προγραµµατισµός Αποδοτικοί Αλγόριθµοι Μη Αποδοτικοί Αλγόριθµοι Σχεδιασµός Αλγορίθµων Ακέραιος προγραµµατισµός Αποδοτικοί Αλγόριθµοι Μη Αποδοτικοί Αλγόριθµοι Θεωρία γράφων

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

(50 μον.) πάντοτε Διατυπώστε

(50 μον.) πάντοτε Διατυπώστε ΑΣΚΗΣΗ 1 Α. (50 μον.) Σας δίνεται ο ακόλουθος γράφος, το οποίο πρέπει να χρωματίσετε χρησιμοποιώντας 3 χρώματα (R,G,B), ώστε δύο γειτονικές κορυφές να μην έχουν το ίδιο χρώμα. Θεωρείστε ότι ο χρωματισμός

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

Ε ανάληψη. Α ληροφόρητη αναζήτηση

Ε ανάληψη. Α ληροφόρητη αναζήτηση ΠΛΗ 405 Τεχνητή Νοηµοσύνη Το ική Αναζήτηση Local Search Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Α ληροφόρητη αναζήτηση σε πλάτος, οµοιόµορφου κόστους, σε βάθος,

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Συναίνεση χωρίς την παρουσία σφαλμάτων Κατανεμημένα Συστήματα Ι 4η Διάλεξη 27 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 4η Διάλεξη 1 Συναίνεση χωρίς την παρουσία σφαλμάτων Προηγούμενη

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

ΠΛΗ 405 Τεχνητή Νοηµοσύνη

ΠΛΗ 405 Τεχνητή Νοηµοσύνη ΠΛΗ 405 Τεχνητή Νοηµοσύνη Ικανο οίηση Περιορισµών Constraint Satisfaction Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Το ική αναζήτηση αναρρίχηση λόφων προσοµοιωµένη

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

Κεφάλαιο 6. Ικανοποίηση Περιορισµών. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Κεφάλαιο 6. Ικανοποίηση Περιορισµών. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Κεφάλαιο 6 Ικανοποίηση Περιορισµών Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Ικανοποίηση Περιορισµών Ένα πρόβληµα ικανοποίησης περιορισµών (constraint

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

===========================================================================

=========================================================================== =========================================================================== Α. (50 µον.) Σας δίνεται ο ακόλουθος γράφος, το οποίο πρέπει να χρωµατίσετε χρησιµοποιώντας 4 χρώµατα (R,G,B,Υ), ώστε δύο γειτονικές

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

Μεταβλητες: Q, NSW, V, T, SA, WA, NT. Πεδίο Ορισμού: Για κάθε μεταβλητη το ίδιο. D i ={R, G, B} όπου i= Q, NSW,., NT.

Μεταβλητες: Q, NSW, V, T, SA, WA, NT. Πεδίο Ορισμού: Για κάθε μεταβλητη το ίδιο. D i ={R, G, B} όπου i= Q, NSW,., NT. 1. Στην άσκηση μας, μας έχει δωθεί ένας γράφος, ο οποίος αντιπροσωπεύει ένα χάρτη και μάλιστα αυτόν της Αυστραλίας. Στον γράφο αυτό υπάρχουν και κόμβοι, οι οποίοι αφορούν με τη σειρά τους τις διάφορες

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου 11η Διάλεξη 12 Ιανουαρίου 2017 1 Ανεξάρτητο σύνολο Δοθέντος ενός μη κατευθυνόμενου γραφήματος G = (V, E), ένα ανεξάρτητο σύνολο (independent set) είναι ένα

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

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 5: Παραδείγματα. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 5: Παραδείγματα. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 5: Παραδείγματα Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας

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

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Μη γραμμικός προγραμματισμός: βελτιστοποίηση χωρίς περιορισμούς Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών ΤμήμαΠληροφορικής Διάλεξη 7-8 η /2017 Τι παρουσιάστηκε

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

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

ΕΘΝΙΚΟ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΕΘΝΙΚΟ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Καθηγητής : Κουμπαράκης Μανόλης Ημ/νία παράδοσης: 11/01/2011 Ονομ/μο φοιτητή : Μπεγέτης Νικόλαος Α.Μ.:

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

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1 ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1 1 Βελτιστοποίηση Στην προσπάθεια αντιμετώπισης και επίλυσης των προβλημάτων που προκύπτουν στην πράξη, αναπτύσσουμε μαθηματικά μοντέλα,

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

Ακέραιος Γραμμικός Προγραμματισμός

Ακέραιος Γραμμικός Προγραμματισμός Τμήμα Μηχανικών Πληροφορικής ΤΕ 2017-2018 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος Γραμμικός Προγραμματισμός Όταν για

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

Κεφάλαιο 5ο: Ακέραιος προγραμματισμός

Κεφάλαιο 5ο: Ακέραιος προγραμματισμός Κεφάλαιο 5ο: Ακέραιος προγραμματισμός 5.1 Εισαγωγή Ο ακέραιος προγραμματισμός ασχολείται με προβλήματα γραμμικού προγραμματισμού στα οποία μερικές ή όλες οι μεταβλητές είναι ακέραιες. Ένα γενικό πρόβλημα

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

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

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

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

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Μη γραμμικός προγραμματισμός: μέθοδοι μονοδιάστατης ελαχιστοποίησης Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών ΤμήμαΠληροφορικής Διάλεξη 6 η /2017 Τι παρουσιάστηκε

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

On line αλγόριθμοι δρομολόγησης για στοχαστικά δίκτυα σε πραγματικό χρόνο

On line αλγόριθμοι δρομολόγησης για στοχαστικά δίκτυα σε πραγματικό χρόνο On line αλγόριθμοι δρομολόγησης για στοχαστικά δίκτυα σε πραγματικό χρόνο Υπ. Διδάκτωρ : Ευαγγελία Χρυσοχόου Επιβλέπων Καθηγητής: Αθανάσιος Ζηλιασκόπουλος Τμήμα Μηχανολόγων Μηχανικών Περιεχόμενα Εισαγωγή

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

Ακέραιος Γραμμικός Προγραμματισμός

Ακέραιος Γραμμικός Προγραμματισμός Τμήμα Μηχανικών Πληροφορικής ΤΕ 2016-2017 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος Γραμμικός Προγραμματισμός Όταν για

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

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ ) Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,

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

Γραµµικός Προγραµµατισµός (ΓΠ)

Γραµµικός Προγραµµατισµός (ΓΠ) Γραµµικός Προγραµµατισµός (ΓΠ) Περίληψη Επίλυση δυσδιάστατων προβληµάτων Η µέθοδος simplex Τυπική µορφή Ακέραιος Προγραµµατισµός Προγραµµατισµός Παραγωγής Προϊόν Προϊόν 2 Παραγωγική Δυνατότητα Μηχ. 4 Μηχ.

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

Ακέραιος Γραμμικός Προγραμματισμός

Ακέραιος Γραμμικός Προγραμματισμός Τμήμα Πληροφορικής & Τηλεπικοινωνιών Πανεπιστήμιο Ιωαννίνων 2018-2019 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος- Γεωργία Φουτσιτζή Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος

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

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX Θεμελιώδης αλγόριθμος επίλυσης προβλημάτων Γραμμικού Προγραμματισμού που κάνει χρήση της θεωρίας της Γραμμικής Άλγεβρας Προτάθηκε από το Dantzig (1947) και πλέον

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

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αλγόριθμοι Τοπικής Αναζήτησης στον Προγραμματισμό με Περιορισμούς Γεώργιος Καστρίνης

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

Ε ανάληψη. Πληροφορηµένη αναζήτηση µε εριορισµό µνήµης. Ευρετικές συναρτήσεις. Το ική αναζήτηση

Ε ανάληψη. Πληροφορηµένη αναζήτηση µε εριορισµό µνήµης. Ευρετικές συναρτήσεις. Το ική αναζήτηση ΠΛΗ 405 Τεχνητή Νοηµοσύνη Ικανο οίηση Περιορισµών Constraint Satisfaction Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Πληροφορηµένη αναζήτηση µε εριορισµό µνήµης

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

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΚΟΥΛΙΝΑΣ ΓΕΩΡΓΙΟΣ Δρ. Μηχανικός Παραγωγής & Διοίκησης ΔΠΘ ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ o ΔΙΑΛΕΞΕΙΣ ΜΑΘΗΜΑΤΟΣ ΔΕΥΤΕΡΑ 16.00-19.00 (Εργ. Υπ. Μαθ. Τμ. ΜΠΔ) oτρόπος

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

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

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

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

ΙΚΑΝΟΠΟΙΗΣΗ ΠΕΡΙΟΡΙΣΜΩΝ

ΙΚΑΝΟΠΟΙΗΣΗ ΠΕΡΙΟΡΙΣΜΩΝ ΙΚΑΝΟΠΟΙΗΣΗ ΠΕΡΙΟΡΙΣΜΩΝ (ΜΕ ΒΑΣΗ ΤΟ ΚΕΦ. 6 ΤΟΥ ΒΙΒΛΙΟΥ «ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ» ΤΩΝ ΒΛΑΧΑΒΑ, ΚΕΦΑΛΑ, ΒΑΣΙΛΕΙΑ Η, ΚΟΚΚΟΡΑ & ΣΑΚΕΛΛΑΡΙΟΥ) Ι. ΧΑΤΖΗΛΥΓΕΡΟΥ ΗΣ ΠΡΟΒΛΗΜΑΤΑ ΙΚΑΝΟΠΟΙΗΣΗΣ ΠΕΡΙΟΡΙΣΜΩΝ Είναι γνωστές µερικές

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

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1 Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Τεχνητή Νοημοσύνη, 2016 17 Διδάσκων: Ι. Ανδρουτσόπουλος Ασκήσεις μελέτης της 4 ης διάλεξης 4.1. (α) Αποδείξτε ότι αν η h είναι συνεπής, τότε h(n

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

z = c 1 x 1 + c 2 x c n x n

z = c 1 x 1 + c 2 x c n x n Τεχνολογικό Εκπαιδευτικό Ιδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Γραμμικός Προγραμματισμός & Βελτιστοποίηση Δρ. Δημήτρης Βαρσάμης Καθηγητής Εφαρμογών Δρ. Δημήτρης Βαρσάμης Μάρτιος

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

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Διπλωματική Εργασία Μεταπτυχιακού Προγράμματος στην Εφαρμοσμένη Πληροφορική Κατεύθυνση: Συστήματα Υπολογιστών

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Αναζήτηση Δοθέντος ενός προβλήματος με περιγραφή είτε στον χώρο καταστάσεων

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Τελικές εξετάσεις Πέμπτη 27 Ιουνίου 2013 10:003:00 Έστω το πάζλ των οκτώ πλακιδίων (8-puzzle)

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

Θεωρία Λήψης Αποφάσεων

Θεωρία Λήψης Αποφάσεων Θεωρία Λήψης Αποφάσεων Ενότητα 6: Αλγόριθμοι Τοπικής Αναζήτησης Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.)

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 4: Εισαγωγή / Σύνολα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 4: Εισαγωγή / Σύνολα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 4: Εισαγωγή / Σύνολα Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

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

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Μη γραμμικός προγραμματισμός: βελτιστοποίηση με περιορισμούς Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής Διάλεξη 9-10 η /2017 Τι παρουσιάστηκε

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

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης Επίλυση προβληµάτων Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης! Παιχνίδια δύο αντιπάλων Προβλήµατα ικανοποίησης περιορισµών Γενικά " Ντετερµινιστικά

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

Construction heuristics

Construction heuristics Μια υπολογιστική μελέτη ευρετικών μεθόδων αρχικοποίησης διαδρομών για το πρόβλημα του πλανόδιου πωλητή Λαζαρίδης Αλέξανδρος Πανεπιστήμιο Μακεδονίας, ΠΜΣ Εφαρμοσμένης Πληροφορικής Συστήματα Υπολογιστών

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

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΚΟΥΛΙΝΑΣ ΓΕΩΡΓΙΟΣ Δρ. Μηχανικός Παραγωγής & Διοίκησης ΔΠΘ ΠΛΕΟΝΕΚΤΙΚΟΙ ΚΑΤΑΣΚΕΥΑΣΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ GREEDY CONSTRUCTIVE HEURISTICS Βασικό μειονέκτημα: οι αποφάσεις που

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

ΑΚΕΡΑΙΟΣ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΑΚΕΡΑΙΟΣ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΑΚΕΡΑΙΟΣ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ολοκληρωμένη μαθηματική τεχνική βελτιστοποίησης Ευρύτατο φάσμα εφαρμογών Εισαγωγή ακέραιων/λογικών/βοηθητικών μεταβλητών Δυνατότητα γραμμικοποίησης με 0-1 μεταβλητές

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

3.7 Παραδείγματα Μεθόδου Simplex

3.7 Παραδείγματα Μεθόδου Simplex 3.7 Παραδείγματα Μεθόδου Simplex Παράδειγμα 1ο (Παράδειγμα 1ο - Κεφάλαιο 2ο - σελ. 10): Το πρόβλημα εκφράζεται από το μαθηματικό μοντέλο: max z = 600x T + 250x K + 750x Γ + 450x B 5x T + x K + 9x Γ + 12x

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

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 4η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται κυρίως στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β.

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Περιγραφή Προβλημάτων Διαισθητικά, σε ένα πρόβλημα υπάρχει μια δεδομένη κατάσταση

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

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης.

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης. Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης. Ένα από τα γνωστότερα παραδείγματα των ΕΑ είναι ο Γενετικός

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

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems Ημερομηνία Παράδοσης: 0/1/017 την ώρα του μαθήματος ή με email: mkarabin@csd.uoc.gr Γενικές Οδηγίες α) Επιτρέπεται η αναζήτηση στο Internet και στην βιβλιοθήκη

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

Τεχνητή Νοημοσύνη. 5η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 5η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 5η διάλεξη (2017-18) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

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

Chapter 9: NP-Complete Problems

Chapter 9: NP-Complete Problems Θεωρητική Πληροφορική Ι: Αλγόριθμοι και Πολυπλοκότητα Chapter 9: NP-Complete Problems 9.3 Graph-Theoretic Problems (Συνέχεια) 9.4 Sets and Numbers Γιώργος Αλεξανδρίδης gealexan@mail.ntua.gr Κεφάλαιο 9:

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

Συστήματα Επιχειρηματικής Ευφυίας. Ενδεικτική επίλυση του προβλήματος school timetabling με PSO

Συστήματα Επιχειρηματικής Ευφυίας. Ενδεικτική επίλυση του προβλήματος school timetabling με PSO Συστήματα Επιχειρηματικής Ευφυίας Ενδεικτική επίλυση του προβλήματος school timetabling με PSO Έκτη Διάλεξη Περιεχόμενα (1) Συνοπτική παρουσίαση του προβλήματος school timetabling Ορισμός του προβλήματος

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

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

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

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

ΣΗΜΕΙΩΣΕΙΣ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ «ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ»

ΣΗΜΕΙΩΣΕΙΣ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ «ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ» ΣΗΜΕΙΩΣΕΙΣ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ «ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ» Κωνσταντίνος Π. Φερεντίνος Διδάσκων ΠΔ 407/80 Οι σημειώσεις αυτές αναπτύχθηκαν στα πλαίσια του προγράμματος «ΕΠΕΑΕΚ 2 Πρόγραμμα Αναβάθμισης

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

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

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

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

ΥΛΟΠΟΙΗΣΗ ΚΑΙ ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ BREAK OUT

ΥΛΟΠΟΙΗΣΗ ΚΑΙ ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ BREAK OUT ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΥΛΟΠΟΙΗΣΗ ΚΑΙ ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ BREAK OUT ΜΠΑΤΣΟΥ ΜΑΡΙΑ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΔΡ. ΚΩΣΤΑΝΤΙΝΟΣ ΣΤΕΡΓΙΟΥ ΚΟΖΑΝΗ ΙΟΥΝΙΟΣ 2016 1 2 Περίληψη Στην εργασία αυτή, υλοποιούνται

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

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» 2 ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Προβλήματα ελάχιστης συνεκτικότητας δικτύου Το πρόβλημα της ελάχιστης

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

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

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

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

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ Μαθηματικά Πληροφορικής 4ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης.

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

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

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Α.Μ. 123/04 ΕΠΙΒΛΕΠΩΝ: ΣΑΜΑΡΑΣ ΝΙΚΟΛΑΟΣ ΘΕΣΣΑΛΟΝΙΚΗ, ΙΟΥΝΙΟΣ 2007 Περιεχόμενα

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

Τυχαιοκρατικοί Αλγόριθμοι

Τυχαιοκρατικοί Αλγόριθμοι Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης περίπτωσης Μελέτα τη συμπεριφορά ενός αλγορίθμου σε μια «μέση» είσοδο (ως προς κάποια κατανομή) Τυχαιοκρατικός αλγόριθμος Λαμβάνει τυχαίες αποφάσεις καθώς επεξεργάζεται

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

Υπολογιστικά & Διακριτά Μαθηματικά

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

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

Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος. Διαχείριση Υδατικών Πόρων

Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος. Διαχείριση Υδατικών Πόρων Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος Διαχείριση Υδατικών Πόρων Βελτιστοποίηση Μέρος b: Συμβατικές Μέθοδοι συνέχεια Σύνοψη προηγούμενου μαθήματος Στόχος βελτιστοποίησης: Εύρεση

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

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

Β Ομάδα Ασκήσεων Λογικού Προγραμματισμού Ακαδημαϊκού Έτους Page 1 of 10 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2018-19 Οι ασκήσεις της ομάδας αυτής πρέπει

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

Approximation Algorithms for the k-median problem

Approximation Algorithms for the k-median problem Approximation Algorithms for the k-median problem Ζακυνθινού Λυδία Παυλάκος Γεώργιος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Θεωρία Υπολογισμού 2011-2012 Το πρόβλημα

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 9 P vs NP 1 / 13 Δυσκολία επίλυσης υπολογιστικών προβλημάτων Κάποια προβλήματα είναι εύκολα να λυθούν με

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

Βελτιστοποίηση κατανομής πόρων συντήρησης οδοστρωμάτων Πανεπιστήμιο Πατρών - Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών

Βελτιστοποίηση κατανομής πόρων συντήρησης οδοστρωμάτων Πανεπιστήμιο Πατρών - Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών Βελτιστοποίηση κατανομής πόρων συντήρησης οδοστρωμάτων Πανεπιστήμιο Πατρών - Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών Πάτρα 17 - Μαΐου - 2017 Παναγιώτης Τσίκας Σκοπός του προβλήματος Σκοπός του προβλήματος,

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

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

Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π Περιορισμοί Αλγοριθμικής Ισχύος Κατηγοριοποίηση πολυπλοκοτήτων Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός

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

Ανάπτυξη του Τεχνικού Κειμένου Η Αρχική Σύνταξη

Ανάπτυξη του Τεχνικού Κειμένου Η Αρχική Σύνταξη Ανάπτυξη του Τεχνικού Κειμένου Η Αρχική Σύνταξη Ενότητες και υποενότητες Εισαγωγή - Δομικές μηχανές - Τύποι, ταξινομήσεις και χρήσεις Γενική θεωρία δομικών μηχανών Χαρακτηριστικά υλικών Αντιστάσεις κίνησης

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

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

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

Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος. Τεχνολογία Συστημάτων Υδατικών Πόρων

Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος. Τεχνολογία Συστημάτων Υδατικών Πόρων Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος Τεχνολογία Συστημάτων Υδατικών Πόρων Βελτιστοποίηση Μέρος b: Συμβατικές Μέθοδοι συνέχεια Σύνοψη προηγούμενου μαθήματος Στόχος βελτιστοποίησης:

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

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο 2010-2011 Πρώτη Σειρά Ασκήσεων (20% του συνολικού βαθμού στο μάθημα, Άριστα = 390 μονάδες) Ημερομηνία Ανακοίνωσης: 6/10/2010 Ημερομηνία Παράδοσης: 15/11/2010 σύμφωνα

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

ΕΦΑΡΜΟΓΕΣ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ

ΕΦΑΡΜΟΓΕΣ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΕΦΑΡΜΟΓΕΣ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Dr. Christos D. Tarantilis Associate Professor in Operations Research & Management Science http://tarantilis.dmst.aueb.gr/ ΕΦΑΡΜΟΓΕΣ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Ι - 1- ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

min f(x) x R n b j - g j (x) = s j - b j = 0 g j (x) + s j = 0 - b j ) min L(x, s, λ) x R n λ, s R m L x i = 1, 2,, n (1) m L(x, s, λ) = f(x) +

min f(x) x R n b j - g j (x) = s j - b j = 0 g j (x) + s j = 0 - b j ) min L(x, s, λ) x R n λ, s R m L x i = 1, 2,, n (1) m L(x, s, λ) = f(x) + KΕΦΑΛΑΙΟ 4 Κλασσικές Μέθοδοι Βελτιστοποίησης Με Περιορισµούς Ανισότητες 4. ΠΡΟΒΛΗΜΑΤΑ ΜΕ ΠΕΡΙΟΡΙΣΜΟΥΣ ΑΝΙΣΟΤΗΤΕΣ Ζητούνται οι τιµές των µεταβλητών απόφασης που ελαχιστοποιούν την αντικειµενική συνάρτηση

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 18: Επίλυση Γενικών Γραμμικών Προβλημάτων Σαμαράς Νικόλαος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Τεχνητή Νοημοσύνη. 6η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 6η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 6η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

4 η ΕΝΟΤΗΤΑ ΜΕΤΑΕΥΡΕΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ ΕΝΟΣ ΚΡΙΤΗΡΙΟΥ

4 η ΕΝΟΤΗΤΑ ΜΕΤΑΕΥΡΕΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ ΕΝΟΣ ΚΡΙΤΗΡΙΟΥ ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΕΙΣΑΓΩΓΗ ΣΤΗN ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ 4 η ΕΝΟΤΗΤΑ ΜΕΤΑΕΥΡΕΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ ΕΝΟΣ ΚΡΙΤΗΡΙΟΥ Μ. Καρλαύτης Ν. Λαγαρός Άδεια Χρήσης Το παρόν εκπαιδευτικό

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

ΗΜΥ 325: Επαναληπτικές Μέθοδοι. Διδάσκων: Χρίστος Παναγιώτου

ΗΜΥ 325: Επαναληπτικές Μέθοδοι. Διδάσκων: Χρίστος Παναγιώτου ΗΜΥ 325: Επαναληπτικές Μέθοδοι Διδάσκων: Χρίστος Παναγιώτου ΗΜΥ 325: Επαναληπτικές Μέθοδοι. A. Levitin, Introduction to the Design and Analysis of Algorithms, 2 nd Ed. Περίληψη µαθήµατος Επιπρόσθετες Πληροφορίες

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

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ Tel.: +30 2310998051, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Φυσικής 541 24 Θεσσαλονίκη Καθηγητής Γεώργιος Θεοδώρου Ιστοσελίδα: http://users.auth.gr/theodoru ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

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

Γραφική Λύση & Πρότυπη Μορφή Μαθηματικού Μοντέλου

Γραφική Λύση & Πρότυπη Μορφή Μαθηματικού Μοντέλου ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Επιχειρησιακή Έρευνα Γραφική Λύση & Πρότυπη Μορφή Μαθηματικού Μοντέλου Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου Περιεχόμενα Παρουσίασης 1. Προϋποθέσεις Εφαρμογής

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

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

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

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

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

ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ ΜΕΡΟΣ ΙΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ 36 ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ Πολλές από τις αποφάσεις

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 9: Ελαχιστοποίηση και Κωδικοποίηση Καταστάσεων, Σχεδίαση με D flip-flop, Σχεδίαση με JK flip-flop, Σχεδίαση με T flip-flop Δρ. Μηνάς

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

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1 Αναζήτηση σε Γράφους Μανόλης Κουμπαράκης ΥΣ02 Τεχνητή Νοημοσύνη 1 Πρόλογος Μέχρι τώρα έχουμε δει αλγόριθμους αναζήτησης για την περίπτωση που ο χώρος καταστάσεων είναι δένδρο (υπάρχει μία μόνο διαδρομή

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

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Ασάφεια (Fuzziness) Ποσοτικοποίηση της ποιοτικής πληροφορίας Οφείλεται κυρίως

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

Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας

Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας Κρυπτογραφία Έλεγχος πρώτων αριθών-παραγοντοποίηση Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ Κρυπτογραφία

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

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Εισαγωγικές Έννοιες ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Κουτσιούμπας Αχιλλέας U. Adamy, C. Ambuehl, R. Anand, T. Erlebach

Κουτσιούμπας Αχιλλέας U. Adamy, C. Ambuehl, R. Anand, T. Erlebach Κουτσιούμπας Αχιλλέας ΕΛΕΓΧΟΣ ΚΛΗΣΕΩΝ ΣΕ ΑΚΤΥΛΙΟ U. Adamy, C. Ambuehl, R. Anand, T. Erlebach ΜΠΛΑ 1 Δομή παρουσίασης Γενικά Ορισμός προβλήματος Σχετιζόμενη δουλειά Εισαγωγικά Αλγόριθμος Παράδειγμα εκτέλεσης

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

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ. Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ. Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού 1 Σχέση γραμμικού και ακέραιου προγραμματισμού Ενα πρόβλημα ακέραιου προγραμματισμού είναι

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Η γλώσσα προγραμματισμού

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

Ε ανάληψη. Ε αναλαµβανόµενες καταστάσεις. Αναζήτηση µε µερική ληροφόρηση. Πληροφορηµένη αναζήτηση. µέθοδοι αποφυγής

Ε ανάληψη. Ε αναλαµβανόµενες καταστάσεις. Αναζήτηση µε µερική ληροφόρηση. Πληροφορηµένη αναζήτηση. µέθοδοι αποφυγής ΠΛΗ 405 Τεχνητή Νοηµοσύνη Πληροφορηµένη Αναζήτηση II Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Ε αναλαµβανόµενες καταστάσεις µέθοδοι αποφυγής Αναζήτηση µε µερική

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

Τμήμα Μηχανικών Πληροφορικής ΤΕ Η μέθοδος Simplex. Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα. τελευταία ενημέρωση: 19/01/2017

Τμήμα Μηχανικών Πληροφορικής ΤΕ Η μέθοδος Simplex. Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα. τελευταία ενημέρωση: 19/01/2017 Τμήμα Μηχανικών Πληροφορικής ΤΕ 2016-2017 Η μέθοδος Simplex Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 19/01/2017 1 Πλεονεκτήματα Η μέθοδος Simplex Η μέθοδος Simplex είναι μια

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

Επίλυση Προβλημάτων 1

Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων Περιγραφή Προβλημάτων Αλγόριθμοι αναζήτησης Αλγόριθμοι τυφλής αναζήτησης Αναζήτηση πρώτα σε βάθος Αναζήτηση πρώτα σε πλάτος (ΒFS) Αλγόριθμοι ευρετικής αναζήτησης

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

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους

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