Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών Σχεδιασμός & Χρονοπρογραμματισμός Ενεργειών Χειμερινό Εξάμηνο 2006-2007
Κεφάλαιο 1 - Εισαγωγή Εισαγωγή στις Ερευνητικές Περιοχές Εφαρμογές Ιστορικά Στοιχεία
Σχεδιασμός Ενεργειών: Ορισμοί Η διαδικασία εύρεσης μιας ακολουθίας ενεργειών (actions) οι οποίες όταν εκτελεστούν από κάποιο πράκτορα (agent), οδηγούν στην επίτευξη κάποιων στόχων (goals). Χρονοπρογραμματισμός: Η διαδικασία ανάθεσης ενός συνόλου από εργασίες (tasks) σε ένα σύνολο από μηχανές (machines) ώστε να βελτιστοποιείται κάποιο κριτήριο (π.χ. Χρόνος, κόστος). Ικανοποίηση Περιορισμών Η διαδικασία ανάθεσης τιμών σε ένα σύνολο από μεταβλητές, με τέτοιο τρόπο ώστε να ικανοποιείται ένα σύνολο από περιορισμούς.
Παραδείγματα Σχεδιασμός Ενεργειών Καθοδήγηση Ρομπότ Αυτόματη οδήγηση οχημάτων Χρονοπρογραμματισμός Ωρολόγιο πρόγραμμα μαθημάτων & εξετάσεων Βάρδιες υπαλλήλων Ικανοποίηση Περιορισμών Σχεδιασμός Ενεργειών Χρονοπρογραμματισμός Άλλες (Διάταξη κιβωτίων σε χώρο,σχεδιασμός VLSI κυκλωμάτων)
Α) Προβλήματα Σχεδιασμού Ενεργειών Ένα πρόβλημα Σχεδιασμού Ενεργειών P αναπαριστάται με μία τριάδα <I, G,A>, όπου: Το I αποτελεί μία περιγραφή της αρχικής κατάστασης του κόσμου Το G είναι το σύνολο των επιθυμητών στόχων Το A αποτελεί το σύνολο των ενεργειών που μπορεί να εκτελέσει οπράκτορας Μία ακολουθία ενεργειών π= {A 1,A 2,..,A L }: A i A ονομάζεται πλάνο (plan) Το L, ο αριθμός δηλαδή των ενεργειών στο π, ονομάζεται και μήκος του πλάνου π Ένα πλάνο που εφαρμόζεται στην I καιπετυχαίνειτοg αποτελεί λύση στο πρόβλημα P.
ΈναπρόβλημαΣχεδιασμού Αρχική Κατάσταση I {at(rob,b) at(ball1,a) free (Rob)} Δυνατές Ενέργειες A Move_from_A_to_B Move_from_B_to_A Pick_Ball1_at_A Pick_Ball1_at_B Drop_Ball1_at_A Drop_Ball1_at_B Στόχοι G {at(ball1,b), at(rob,α)} Βall1 Room A Rob Room B
Λύση Βall1 Πλάνο π = 1) Move_from_B_to_A 2) Pick_Ball1_at_A 3) Move_from_A_to_B 4) Drop_Ball1_at_B 5) Move_from_B_to_A Room A Rob Room B
Κατηγορίες Σχεδιασμού Ενεργειών Σχεδιασμός Κίνησης και Μονοπατιού (Motion and Path Planning) Ασχολείται με την εύρεση της τροχιάς που οδηγεί ένα αντικείμενο (π.χ. όχημα) από μία αρχική θέση στο χώρο σε μία άλλη Σχεδιασμός Αντίληψης (Perception Planning) Ασχολείται με τις απαραίτητες ενέργειες για την απόκτηση πληροφορίας (επιλογή αισθητήρων, έλεγχος εγκυρότητας, διαχείριση πληροφορίας) Σχεδιασμός Καθοδήγησης (Navigation Planning) Συνδυάζει τα πρώτα δύο και εφαρμόζεται σε αυτόνομα συστήματα (π.χ. Ρομπότ παρακολούθησης) Σχεδιασμός Χειρισμού (Manipulation Planning) Ασχολείται με τον χειρισμό εργαλείων και αντικειμένων και εφαρμόζεται σε αυτόνομους μηχανισμούς (π.χ. γερανοί) Σχεδιασμός Επικοινωνίας (Communication Planning) Χρησιμοποιείται σε διαλόγους ανάμεσα σε πράκτορες και ασχολείται με θέματα όπως το πότε να κάνουν μία ερώτηση ή πως να απαντήσουν Αστικός Σχεδιασμός (Urban Planning) Ασχολείται με την οργάνωση υποδομών πόλεων (μέσα μεταφοράς, σχολεία, νοσοκομεία) για την καλύτερη ικανοποίηση των αναγκών
Β) Προβλήματα Χρονοπρογραμματισμού Ένα πρόβλημα Χρονοπρογραμματισμού Χ αναπαριστάται με μία τετράδα <M,J,C,F>, όπου: Το M={Μ 1,Μ 2,..Μ m } είναι ένα σύνολο από μηχανές Το J={J 1,J 2,..J n } είναι ένα σύνολο από εργασίες Το C είναι ένα σύνολο από περιορισμούς που καθορίζουν για κάθε J k την καταλληλότητα των μηχανών και τον χρόνο έναρξης Το F είναι μία συνάρτηση κόστους (cost function) Ένα χρονοπρόγραμμα (Schedule) είναι μία ανάθεση του J στο M, τέτοια ώστε να ικανοποιείται το C Ένα χρονοπρόγραμμα ονομάζεται εφικτό (feasible) αν δεν περιέχει επικαλύψεις εργασιών στην ίδια μηχανή Ένα χρονοπρόγραμμα ονομάζεται βέλτιστο (optimal) αν ελαχιστοποιεί το F
Ένα πρόβλημα Χρονοπρογραμματισμού Έστω ένα εξεταστικό κέντρο με 2 αίθουσες Α, Β και ένα εργαστήριο Ε. M = {Α,Β,Ε} Μαθήματα: 2 εργαστηριακά Μ 1, Μ 2, και 3 θεωρητικά Μ 3, Μ 4, Μ 5. ΗδιάρκειαD των Μ 1, Μ 3, Μ 5, είναι 3 ώρες και των άλλων 2 ώρες J = {Μ 1, Μ 2, Μ 3, Μ 4, Μ 5 }, D 1 =D 3 =D 5 =3, D 2 =D 4 = 2 Υπάρχει κοινός εξεταστής στα {Μ 1 - Μ 4 } και {Μ 3 - Μ 5 } και η καταλληλότητα μ των αιθουσών εξαρτάται από το είδος του μαθήματος (θεωρία ή εργαστήριο) C = {S(Μ 1 )>E(Μ 4 ) ή E(Μ 1 )<S(Μ 4 ), S(Μ 3 )>E(Μ 5 ) ή E(Μ 3 )<S(Μ 5 ), μ 1 =μ 2 ={Ε}, μ 3 =μ 4 =μ 5 ={Α,Β}} Το κριτήριο είναι η συνολική χρονική διάρκεια (makespan) F= max(e(j k )), j k J
Λύση A Μ4 B Μ3 Μ5 E Μ2 Μ1 0 2 4 6 8
Κατηγορίες Χρονοπρογραμματισμού Μία Μηχανή (One Machine), m=1 Προ-εκτοπιστικά (Preemptive): Οι εργασίες μπορούν να διακοπούν Μη Προ-εκτοπιστικά (Non Preemptive): Οι εργασίες δεν διακόπτονται πριν την ολοκλήρωση τους Παράλληλες Μηχανές (Parallel Machines), m>1 Πανομοιότυπες (Identical): Οι εργασίες εκτελούνται σε οποιαδήποτε μηχανή. Ομοιόμορφα Σχετιζόμενες (Uniformly Related): Οι μηχανές έχουν διαφορετική ταχύτητα επεξεργασίας Μη Σχετιζόμενες (Unrelated): Οι μηχανές έχουν διαφορετική ταχύτητα επεξεργασίας που εξαρτάται και από την εργασία Κατάστημα (Shop), m>1 και κάθε εργασία αποτελείται από λειτουργίες που χρειάζονται διαφορετική μηχανή Ανοικτό (Open): Σειριακή εκτέλεση χωρίς διάταξη των λειτουργιών Εργασιών (Job): Σειριακή εκτέλεση Πλήρης διάταξη των λειτουργιών Ροής (Flow): Εργασιών και υπάρχει μία λειτουργία για κάθε μηχανή.
Γ) Προβλήματα Ικανοποίησης Περιορισμών Ένα πρόβλημα Ικανοποίησης Περιορισμών I αναπαριστάται με μία τριάδα <X,D,C>, όπου: Το X={Χ 1,Χ 2,..Χ m } είναι ένα σύνολο από μεταβλητές Το D={D 1,D 2,..D m } περιλαμβάνει τα πεδία τιμών του X Το C ={C 1,C 2,..C n } είναι ένα σύνολο από περιορισμούς που καθορίζουν τους έγκυρους συνδυασμούς τιμών για το X Λύση στο I είναι μία ανάθεση τιμών (Assignment) στο X από το D τέτοια ώστε να ικανοποιούνται όλοι οι περιορισμοί στο C
ΈναπρόβλημαΙκανοποίησηςΠεριορισμών Έστω το κρυπτόλεξο, όπου κάθε γράμμα πρέπει να αντιστοιχηθεί σε ένα ψηφίο (0..9) έτσι ώστε να ισχύει η εξίσωση: send + more = money Οι μεταβλητές του προβλήματος είναι τα γράμματα, οπότε: X ={s,e,n,d,m,o,r,y} Τα πεδία τιμών για όλες τις μεταβλητές είναι όλα τα ψηφία εκτός από τα πρώτα γράμματα των λέξεων που δεν μπορούν να είναι 0: D s =D m ={1,2,3,4,5,6,7,8,9}, D e = =D y ={0,1,2,3,4,5,6,7,8,9} Τα γράμματα πρέπει να εναι διαφορετικά μεταξύ τους και θα πρέπει να ισχύει και η εξίσωση, οπότε: C={ s e,s n,s d,s m,s o,s r,s y,,e n,e d,..,r y, 10 3 *s+10 2 *e+10*n+d+10 3 *m+10 2 *o+10*r+e=10 4 *m+10 3 *o+10 2 *n+10*e+y}
s = 9 e = 5 n = 6 d = 7 m = 1 o = 0 r = 8 y = 2 Λύση send + more = money 9567 + 1085 = 10652
Κατηγορίες Ικανοποίησης Περιορισμών Πεπερασμένων Πεδίων (Finite Domains) Σε αυτή την κατηγορία ανήκουν όλα τα κλασσικά προβλήματα ικανοποίησης περιορισμών. Τα πεδία τιμών D k σε αυτή την κατηγορία περιέχουν πεπερασμένο αριθμό στοιχείων Λογικά Προβλήματα (Boolean Problems) Τα πεδία τιμών περιέχουν 2 μόνο τιμές (π.χ. 0 και 1) Όλα τα προβλήματα πεπερασμένων πεδίων μπορούν να μετατραπούν σε λογικά προβλήματα Δυαδικά Προβλήματα (Binary Problems) Προβλήματα στα οποία υπάρχουν μόνο δυαδικοί και μοναδιαίοι περιορισμοί στο C Μη Πεπερασμένων Πεδίων (Not Finite Domains)
Συστήματα Επίλυσης Σχεδιαστές (planners) είναι συστήματα τα οποία επιλύουν προβλήματα σχεδιασμού P k Σχεδιαστής Πλάνο Χρονοπρογραμματιστές (schedulers) είναι συστήματα που επιλύουν προβλήματα χρονοπρογραμματισμού Χ k Χρονοπρογραμματιστής Χρονοπρόγραμμα Επιλυτές Περιορισμών (Constraint Solvers) είναι συστήματα που επιλύουν προβλήματα περιορισμών Ι k Επιλυτής Περιορισμών Ανάθεση τιμών
Α) Σχεδιαστές και Επιλυτές Περιορισμών Οι σχεδιαστές συνήθως εμπεριέχουν αλγόριθμους επίλυσης περιορισμών για την αντιμετώπιση: περιορισμών διάταξης των ενεργειών Χρονικών περιορισμών και περιορισμών καταναλώσιμων πόρων P k Σχεδιαστής Περιορισμοί (διάταξης, πόρων) Λύση περιορισμών Επιλυτής Περιορισμών Πλάνο Τα προβλήματα Σχεδιασμού μπορούν να μετατραπούν σε προβλήματα επίλυσης περιορισμών Επιλυτής Ανάθεση P k Τ Ι k Πλάνο τιμών Τ -1 Περιορισμών
Β) Χρονοπρογραμματιστές και Επιλυτές Περιορισμών Τα προβλήματα Χρονοπρογραμματισμού μπορούν να μετατραπούν σε προβλήματα επίλυσης περιορισμών Η πρακτική αυτή αποτελεί μια συνήθη τεχνική επίλυσης προβλημάτων χρονοπρογραμματισμού Υπάρχει στενή σχέση ανάμεσα στις περιοχές του Χρονοπρογραμματισμού και της Επίλυσης Περιορισμών Επιλυτής Ανάθεση Χ k Τ Ι k Χρονοπρόγραμμα Περιορισμών τιμών Τ -1
Γ) Σχεδιαστές και Χρονοπρογραμματιστές Τα προβλήματα Σχεδιασμού Ενεργειών μπορούν να διασπαστούν σε ένα τμήμα σχεδιασμού και ένα τμήμα χρονοπρογραμματισμού Το κύριο μέλημα στο σχεδιασμό είναι η εύρεση των ενεργειών Ο χρονοπρογραμματιστής ασχολείται με την χρονική διάταξη των ενεργειών, την ανάθεση των πόρων και την επίλυση των περιορισμών Τι πρέπει να γίνει Πως και πότε P k Σχεδιαστής Χ k Χρονοπρογραμματιστής Πλάνο
Κεφάλαιο 1 - Εισαγωγή Εισαγωγή στις Ερευνητικές Περιοχές Εφαρμογές Ιστορικά Στοιχεία
Μη επανδρωμένα Διαστημόπλοια NASA Πείραμα Απομακρυσμένου Πράκτορα Αυτόνομο Σύστημα Ελέγχου Βασίστηκε σε Τεχνικές Σχεδιασμού & Χρονοπρογραμματισμού Χρησιμοποιήθηκε το Μάιο του 1998 στο σκάφος Deep Space 1 Mars rover Αυτόνομο όχημα καθοδηγούμενο από συστήματα Σχεδιασμού Ενεργειών και Χρονοπρογραμματισμού
Ρομποτική Hilare Αυτόνομο ρομπότ με μορφή αυτοκινήτου Χρησιμοποιεί Σχεδιασμό Ενεργειών Κίνηση οχήματος στο χώρο Αποφυγή εμποδίων PEARL Αναπτύχθηκε στα πλαίσια του NurseBot Παρέχει βοήθεια σε άτομα τρίτης ηλικίας με προβλήματα μνήμης HRP Ανθρωποειδές Ρομπότ Αυτόνομη. Ελεγχόμενη λειτουργία
Βιομηχανικές Κατασκευές Σχεδιασμός Κατασκευαστικών Διεργασιών Τα μηχανήματα της εταιρείας Amada America Inc., για τη μορφοποίηση μεταλλικών πλακών χρησιμοποιούν Σχεδιασμό Ενεργειών IMACS Είναι ένα σύστημα λογισμικού που αναλύει τις δυνατότητες σχεδίασης και κατασκευής μηχανικών τμημάτων συσκευών
Παιχνίδι Bridge Computer bridge: Bridge Baron Χρησιμοποίησε Τεχνικές Σχεδιασμού Ενεργειών Το Σύστημα κέρδισε το πρωτάθλημα Bridge μέσω Η/Υ το1997 Αποτελεί πλέον εμπορικό προϊόν έχοντας ήδη αρκετές χιλιάδες πωλήσεων Q 9 J 7 6 5 North A A K 9 5 3 West 6 2 8 Q South East
Εφοδιαστική Συστήματα Διαχείρισης Ανθρώπινων και Υλικών πόρων Χρησιμοποιούν εκτενώς τεχνικές Σχεδιασμού Ενεργειών και Χρονοπρογραμματισμό Πληθώρα Εμπορικών εργαλείων για βέλτιστη διαχείριση Προϊόντων Οχημάτων Μεταφοράς Προσωπικού
Κεφάλαιο 1 - Εισαγωγή Εισαγωγή στις Ερευνητικές Περιοχές Εφαρμογές Ιστορικά Στοιχεία
Σχεδιασμός Ενεργειών Το πρώτο σύστημα σχεδιασμού στη βιβλιογραφία είναι ο GPS (1963), ένας γενικός επιλυτής που βασίστηκε σε μελέτες Ψυχολογίας Το σημείο αναφοράς είναι το σύστημα STRIPS (1971). Ομώνυμο μοντέλο αναπαράστασης (Κατηγορηματική Λογική 1 ης τάξης) Κατά την κλασσική περίοδο ( 60 90) ο Σχεδιασμός αντιμετωπίστηκε ως πρόβλημα αναζήτησης: Χώρος Καταστάσεων (QA3 1963, STRIPS 1971, HACKER 1974) Χώρος Πλάνων (TWEAK 1987, SNLP 1991, UCPOP 1992, ZENO 1994) Ιεραρχία Επιπέδων (ABSTRIPS 1974, NOAH 1975, ABTWEAK 1991) Κατά την νεοκλασική περίοδο ( 90 σήμερα) χρησιμοποιήθηκαν διαφορετικοί τρόποι αντιμετώπισης των προβλημάτων Σχεδιασμού: Γράφοι Σχεδιασμού (GRAPHPLAN1995) Ικανοποίηση Προτασιακής Λογικής (SATPLAN 1992, BLACKBOX 1998) Η Μετατροπή σε άλλου είδους προβλήματα (CSP, Model Checking, MDP) Αυτόματη Εξαγωγή Ευριστικών Μηχανισμών (UNPOP 96, HSP 97, GRT 99)
Χρονοπρογραμματισμός Η περιοχή απασχόλησε σοβαρά τη βιομηχανία από τις αρχές του 1900 με την εργασία του Henry Gantt και άλλων επιστημόνων Οι πρώτες δημοσιεύσεις όμως εμφανίστηκαν αρκετά αργότερα (μέσα 50) στο περιοδικό Naval Research Logistics Quarterly Τη δεκαετία του 60 προτάθηκαν τεχνικές Δυναμικού Προγραμματισμού και Προγραμματισμού Ακεραίων Μετά την φημισμένη εργασία του Richard Karp στην Θεωρία της Πολυπλοκότητας ηέρευνατηνδεκαετίατου 70 επικεντρώθηκε στην μελέτη της πολυπλοκότητας των διαφόρων αλγορίθμων Την δεκαετία του 80 ακολουθήθηκαν διάφορες κατευθύνσεις με κυρίαρχη αυτή του Στοχαστικού Χρονοπρογραμματισμού Τα τελευταία χρόνια τα συστήματα Χρονοπρογραμματισμού αποτελούν αναπόσπαστο κομμάτι των περισσότερων βιομηχανικών εφαρμογών και υπάρχει πολύ μεγάλος αριθμός ερευνητών από τους χώρους της Πληροφορικής, της Επιχειρησιακής Έρευνας και των Μηχανολόγων Μηχανικών
Ικανοποίηση Περιορισμών Οι απαρχές του πεδίου τοποθετούνται στις δεκαετίες του 60 και 70 σε έρευνα της ΤΝ και Γραφικών και ειδικότερα: ταυτοποίηση ακμών στην αναγνώριση 3D αντικειμένων (edge labelling) (Waltz algorithm, 1975) αλληλεπιδραστικά γραφικά (Sketchpad, Sutherland-1963, Thinklab Boring-1981) επίλυση προβλημάτων (ALICE, Laurier 1998) Τις τελευταίες δεκαετίες φάνηκε ότι οι ιδέες που χρησιμοποιήθηκαν στα παραπάνω, μπορούν να χρησιμοποιηθούν για την δημιουργία μιας νέας σχολής προγραμματισμού, που θα ήταν ιδιαίτερα εφαρμόσιμη σε μεγάλα βιομηχανικά προβλήματα.