Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Διαχείριση Έργων Πληροφορικής Χρονοπρογραμματισμός (scheduling) Ηλίας Σακελλαρίου
Χρονοπρογραμματισμός Τι είναι χρονοπρογραμματισμός; Παραδείγματα Εργασίες, πόροι, περιορισμοί, κριτήρια βελτιστοποίησης Ορισμός και είδη προβλημάτων χρονοπρογραμματισμού μηχανών Επίλυση προβλημάτων χρονοπρογραμματισμού
Παράδειγμα: Ανάθεση εργασιών Σε ένα έργο πληροφορικής υπάρχουν 10 εργασίες και 10 ομάδες. Κάθε ομάδα είναι ικανή να εκτελέσει ένα υποσύνολο από τα διαθέσιμα έργα. Σε κάθε ομάδα πρέπει να ανατεθεί μια εργασία. Οι ομάδες εκτελούν τις εργασίες με διαφορετικό κόστος. Δηλαδή αν η ομάδα 1 εκτελέσει την εργασία 5 τότε το κόστος είναι 10, ενώ αν η ομάδα 2 εκτελέσει το εργασία 5 το κόστος είναι 60. Ποια είναι η ανάθεση εργασιών στις ομάδες που ελαχιστοποιεί το κόστος;
Εύρεση Χρόνου Εκτέλεσης Εργασιών Υπάρχουν 10 εργασίες και 3 ομάδες προγραμματιστών. Κάθε εργασία έχει μια προκαθορισμένη διάρκεια. απαιτεί για την υλοποίησής της μια συγκεκριμένη ομάδα. Υπάρχουν περιορισμοί διάταξης (μερικής) μεταξύ των εργασιών. Κάθε ομάδα μπορεί να εκτελέσει μια εργασία σε κάθε χρονική στιγμή. Ποιοι είναι οι χρόνοι έναρξης των εργασιών ώστε να ελαχιστοποιείται η διάρκεια του συνολικού έργου;
Παράδειγμα: Ελαχιστοποίηση Χρόνου Ένα έργο πληροφορικής αποτελείται από 10 εργασίες (tasks), κάθε μια από τις οποίες έχει μια καθορισμένη διάρκεια. Υπάρχουν περιορισμοί διάταξης, πχ. η εργασία 1 πρέπει να εκτελεστεί πριν από τις εργασίες 2 και 3, η 7 μετά την 5, κοκ. Δεν υπάρχουν περιορισμοί ανάμεσα σε όλες τις εργασίες (μερική διάταξη). Διαθέσιμες είναι 4 ομάδες προγραμματιστών, όμως κάθε ομάδα είναι ικανή να υλοποιήσει ένα υποσύνολο από τις διαθέσιμες εργασίες. Ποια είναι η ανάθεση εργασιών στις ομάδες ώστε να ελάχιστη η διάρκεια του συνολικού έργου;
Παραλλαγές Οι εργασίες έχουν μεταβλητή διάρκεια ανάλογα με ποια ομάδα τις εκτελεί (εμπειρία ομάδας). Οι ομάδες έχουν διαφορετικό κόστος απασχόλησης ποιο είναι το ελάχιστο κόστος ολοκλήρωσης του έργου; Οι ομάδες έχουν προτιμήσεις ως προς το ποια εργασία θα εκτελέσουν (keep employees happy) Μερικές εργασίες μπορούν να ξεκινήσουν μετά από μια καθορισμένη ημερομηνία (n χ.μ. μετά την έναρξη)....
Προγραμματισμένο Πλάνο Εργασιών Η επιτυχής ολοκλήρωση ενός έργου απαιτεί τον καθορισμό ενός προγραμματισμένου πλάνου εργασιών (scheduled plan), που περιλαμβάνει: Την εύρεση της ακολουθίας ενεργειών οι οποίες είναι απαραίτητες για την επίτευξη του στόχου (ολοκλήρωση έργου). Σχετίζεται και το τι απαιτείται να γίνει. Σχεδιασμός ενεργειών Την εύρεση του πότε και με χρήση ποιών πόρων οι παραπάνω ενέργειες θα εκτελεστούν. Σχετίζεται με το πως θα γίνουν οι ενέργειες που απαιτούνται. Χρονοπρογραμματισμός. Συνήθως τα δύο παραπάνω είναι αλληλένδετα.
Πρόβλημα του Χρονοπρογραμματισμού Γενικό πρόβλημα που συναντάται σχεδόν σε όλες τις (ενδιαφέρουσες) βιομηχανικές εφαρμογές. Συνδυαστικό πρόβλημα (combinatorial problem), NP-Hard. Η πολυπλοκότητα του αυξάνει μη γραμμικά με την αύξηση του μεγέθους του προβλήματος. Δεν υπάρχουν αποδοτικοί αλγόριθμοι επίλυσης τους. Συνήθως χρησιμοποιούνται: Ευρετικοί αλγόριθμοι Κλασική ΤΝ Αναζήτηση
Χρονοπρογραμματισμός Εισαγωγή
Χρονοπρογραμματισμός (1/2) Διαδικασία ανάθεσης πόρων (resources) σε εργασίες (jobs) σε ένα χρονικό διάστημα, δεδομένων κάποιων περιορισμών και ενός κριτηρίου στόχου (Μη-αυστηρός ορισμός). Παραδείγματα Εργασιών: διεργασίες υλοποίησης IT έργων, διεργασίες κατασκευής προϊόντων, εκτέλεση προγραμμάτων, μαθήματα, απογειώσεις / προσγειώσεις κλπ. Παραδείγματα Πόρων: ομάδες προγραμματιστών, μηχανές παραγωγής, υπολογιστικοί πόροι,αίθουσες, αεροδιάδρομοι, κλπ
Χρονοπρογραμματισμός (2/2) Παραδείγματα Περιορισμών: περιορισμοί διάταξης των διεργασιών, καταληκτική ημερομηνία, κλπ Παραδείγματα Κριτηρίων: ελαχιστοποίηση συνολικού χρόνου εκτέλεσης, ελαχιστοποίηση συνολικού χρόνου αργοπορίας σε σχέση με καταληκτικές ημερομηνίες, ολοκλήρωση διεργασιών εντός των ορίων της καταληκτικής ημερομηνίας, κλπ
Ελαχιστοποίηση Χρόνου Ένα έργο πληροφορικής αποτελείται από 10 εργασίες (tasks), κάθε μια από τις οποίες έχει μια καθορισμένη διάρκεια. Υπάρχουν περιορισμοί διάταξης, πχ. η εργασία 1 πρέπει να εκτελεστεί πριν από τις εργασίες 2 και 3, η 7 μετά την 5, κοκ. Δεν υπάρχουν περιορισμοί ανάμεσα σε όλες τις εργασίες (μερική διάταξη). Διαθέσιμες είναι 4 ομάδες προγραμματιστών, όμως κάθε ομάδα μπορεί να υλοποιήσει ένα υποσύνολο από τις διαθέσιμες εργασίες. Ποια είναι η ανάθεση εργασιών στις ομάδες ώστε να ελάχιστη η διάρκεια του συνολικού έργου; Εργασίες Περιορισμοί Πόροι Περιορισμοί Κριτήριο
Βιομηχανικές Εφαρμογές Χρονοπρογραμματισμού Χρονοπρογραμματισμός επιτελεί σημαντικό ρόλο σε πλήθος βιομηχανικών εφαρμογών. Μεγάλη αλληλεπίδραση με άλλες διεργασίες της επιχείρησης Μέρος ενός ERP συστήματος το οποίο τροφοδοτεί με τρέχοντα δεδομένα τον χρονοπρογραμματιστή. Παραγωγή Σύνδεση με διαχείριση παραγγελιών, ικανοποίηση παραγγελιών μεγάλης προτεραιότητας, διαχείριση αποθεμάτων πρώτων υλών, κλπ Υπηρεσίες Σύνδεση με διαχείριση διαθέσιμων πόρων (ανθρώπινων και μη), συστήματα λήψης απόφασης κλπ
Εργοστάσιο Κατασκευής Χάρτινων Σακουλών Πρώτη ύλη: ρολά χαρτιού Στάδια Παραγωγής: Εκτύπωση βιομηχανικού σήματος, επικόλληση της μιας πλευράς συρραφή των άκρων των σακουλών Μηχανές: Για κάθε εργασία υπάρχει μια ή περισσότερες μηχανές που διαφέρουν στον τύπο / μέγεθος σακουλών που μπορούν να διαχειριστούν, την ταχύτητα παραγωγής, κλπ Παραγγελίες: ορίζουν την ποσότητα, το είδος και την ημερομηνία παράδοσης. Στόχοι προγράμματος: Καθυστέρηση στην παραγγελία επιφέρει "ποινές" στόχος η ελαχιστοποίηση των ποινών. Αλλαγή τύπου κατασκευαζόμενης σακούλας σε μια μηχανή απαιτεί χρόνο που εξαρτάται από τις διαφορές στην κατασκευή των δύο τύπων Στόχος η ελαχιστοποίηση του χρόνου αυτού.
Διαχείριση Πυλών σε Αεροδρόμιο Πόροι: Πύλες (gates) με διαφορετικά χαρακτηριστικά συνδεδεμένες με αίθουσες αναμονής Κάθε αεροπλάνο που προσγειώνεται θα πρέπει να κατευθύνεται στην κατάλληλη πύλη. Διεργασίες: αποβίβαση επιβατών, εξυπηρέτηση αεροσκάφους από προσωπικό εδάφους, επιβίβαση επιβατών, κλπ Πτήσεις λαμβάνουν χώρα βάσει προγράμματος, το οποίο όμως επηρεάζεται από πολλούς παράγοντες πχ. καιρικές συνθήκες. Στόχοι: κατάλληλη πύλη βάσει τύπου αεροσκάφους ελαχιστοποίηση εργασιών προσωπικού εδάφους ελαχιστοποίηση καθυστερήσεων στις πτήσεις
Χαρακτηριστικά Εργασιών Απαιτήσεις σε πόρους ποιους πόρους και σε τι ποσότητα Χρόνος εκκίνησης s i, χρόνος ολοκλήρωσης c i, διάρκεια d i δίνονται συνήθως ως κλειστά (χρονικά) διαστήματα s i ανήκει στο [s i min, s i max ] c i ανήκει στο [c i min, c i max ] η διάρκεια είναι δυνατό να εξαρτάται από τον τύπο του πόρου που ανατέθηκε στην εργασία (χρόνος επεξεργασίας-processing time p ij ) Βάρος w i της εργασίας, που δηλώνει την σημασία της σε σχέση με άλλες εργασίες του προβλήματος.
Είδη Εργασίων Μη προεκτοπιστικές (non-preemptive) : δεν μπορούν να διακοπούν d i = c i - s i Προεκτοπιστικές (preemptive): μπορούν να διακοπούν και να επανεκκινήσουν. d i = Σ(d kι ) c i - s i k in I} Μπορούν να υπάρχουν περιορισμοί στα παραπάνω διαστήματα (πχ. εργασία λαμβάνει χώρα μόνο μέρα).
Πόροι (1/3) Επαναχρησιμοποιήσιμοι πόροι r δεσμεύονται για ένα χρονικό διάστημα από την εργασία και έπειτα ελευθερώνονται πχ. πύλες αεροδρομίου, εργαλεία, αίθουσες, ομάδες κλπ. συνολική χωρητικότητα Q r, μπορεί να παίρνει συνεχείς ή διακριτές τιμές τρέχον επίπεδο z r (t) ανήκει στο [0,Q r ] πχ. πέντε πύλες αεροδρομίου Q r = 5, και 5 z r (t) 0 αν μια εργασία απαιτεί ποσότητα q του πόρου r, τότε μειώνεται το z r κατά q όταν η εργασία ξεκινήσει (s i ), και αυξάνεται κατά q μετά την ολοκλήρωση της (c i ).
Πόροι (2/3) Πόροι που καταναλώνονται r καταναλώνονται (ή παράγονται) από μια εργασία μετά το πέρας της εργασίας το τρέχον επίπεδο του πόρου δεν επανέρχεται στην αρχική τιμή του πχ. καύσιμα αεροσκαφών, πολλά χαρτιού κλπ. συνολική χωρητικότητα Q r τρέχον επίπεδο z r (t) ανήκει στο [0,Q r ]
Πόροι (3/3) Οι απαιτήσεις σε πόρους μιας εργασίας μπορεί να είναι μια σύζευξη consume(a,r j,q j ) & consume(a,r κ,q κ ) ή διάζευξη αν η εργασία μπορεί να "καταναλώσει" εναλλακτικούς πόρους consume(a,r j,q j ) v consume(a,r m,q m )
Περιορισμοί Χρονικά όρια χρόνος ανακοίνωσης ( r i release date), η εργασία δεν μπορεί να ξεκινήσει πριν από αυτό το όριο άφιξη αεροσκάφους χρόνος παράδοσης (due date δ i ) εργασία μπορεί να παραδοθεί μετά τον παραπάνω χρόνο με κάποια ποινή. Περιορισμοί διάταξης μια εργασία πρέπει να λάβει χώρα πριν από μια άλλη πχ. αποβίβαση πριν επιβίβαση επιβατών επόμενης πτήσης Περιορισμοί καταλληλότητας πόρων μια εργασία μπορεί/πρέπει να καταναλώσει συγκεκριμένους πόρους περιορισμοί διαθεσιμότητας πόρων χρόνοι αρχικοποίησης (setup) πόρων ανάμεσα σε δύο εργασίες...και διάφοροι άλλοι περιορισμοί
Συναρτήσεις Βελτιστοποίησης Ελαχιστοποίηση των ακόλουθων μεγεθών (c i δηλώνει το χρόνο ολοκλήρωσης- completion time δ i χρόνο παράδοσης -due date, deadline) χρόνος ολοκλήρωσης χρονοπρογράμματος (makespan) max(c 1,..,c j ) σταθμισμένο άθροισμα όλων των χρόνων ολοκλήρωσης (total weighted completion time) Σ(w i c i ) μέγιστη αργοπορία (lateness): max(l 1,..,l i ) αργοπορία l i =c i - δ i Μπορεί να πάρει και αρνητικές τιμές μέγιστη καθυστέρηση (tardiness): max(τ i ) τ i =max(0, c i -δ i ) σταθμισμένο άθροισμα καθυστέρησης (total weighted tardiness) Στ i συνολικός αριθμός καθυστερημένων εργασιών συνολικό κόστος (σε σχέση με πόρους) σταθμισμένο άθροισμα εργασιών που καθυστέρησαν (weighted sum of late jobs)...
Πώς μπορούν να εκφραστούν τυποκρατικά (formally) όλα τα προηγούμενα;
Χρονοπρογραμματισμός Μηχανών Machine Scheduling
Χρονοπρογραμματισμός Μηχανών Έχει συγκεντρώσει ερευνητικό ενδιαφέρον από την δεκαετία του 50. Ανάθεση εργασιών σε μηχανές που αντιπροσωπεύουν πόρους. Μηχανές έχουν χωρητικότητα 1 μπορούν να επεξεργαστούν μια μόνο εργασία την φορά. Εργασίες (jobs) αποτελούνται (συνήθως) από ένα αριθμό διεργασιών (tasks/operations) πχ. J i αποτελείται από O ij διεργασίες Δύο διεργασίες της ίδιας εργασίας δεν μπορούν να εκτελεστούν ταυτόχρονα (μια εργασία δεν μπορεί ταυτόχρονα να εκτελείται σε δύο μηχανές) Δύο διεργασίες διαφορετικών εργασιών είναι ανεξάρτητες, δηλ. μπορούν να εκτελεστούν με οποιαδήποτε σειρά.
Ορισμός Προβλήματος Χρονοπρογραμματισμού Μηχανών (1/2) Ένα πρόβλημα Χρονοπρογραμματισμού Μηχανών Χ αναπαριστάται με μία τετράδα <M,J,C,F>, όπου: Το M={Μ 1,Μ 2,..Μ m } είναι ένα σύνολο από μηχανές (machines) Το J={J 1,J 2,..J n } είναι ένα σύνολο από εργασίες (jobs) Το C είναι ένα σύνολο από περιορισμούς που καθορίζουν για κάθε J k την καταλληλότητα των μηχανών και τον χρόνο έναρξης καθώς και διάφορα άλλα χαρακτηριστικά Το F είναι μία συνάρτηση κόστους (cost function)
Ορισμός Προβλήματος Χρονοπρογραμματισμού Μηχανών (2/2) Ένα χρονοπρόγραμμα (Schedule) είναι μία ανάθεση του J στο M, τέτοια ώστε να ικανοποιείται το C. Ένα χρονοπρόγραμμα ονομάζεται εφικτό (feasible) αν: δεν περιέχει επικαλύψεις εργασιών στην ίδια μηχανή, κάθε διεργασία μιας εργασίας δεν επικαλύπτεται από μια άλλη, και ικανοποιούνται όλοι οι υπόλοιποι περιορισμοί. Ένα χρονοπρόγραμμα ονομάζεται βέλτιστο (optimal) αν ελαχιστοποιεί την F.
Χρονοπρογραμματισμός μηχανών ενός σταδίου (1/2) Κάθε εργασία αποτελείται από μια διεργασία, η οποία μπορεί να εκτελεστεί σε οποιαδήποτε μηχανή Single stage machine scheduling 1: Μιας μηχανής: υπάρχει μόνο μια μηχανή Pm: Πανομοιότυπων Παράλληλων Μηχανών (Identical Parallel Machines) Οι εργασίες εκτελούνται στον ίδιο χρόνο σε οποιαδήποτε μηχανή ή σε κάποιο υποσύνολο τους. Μπορεί να χρησιμοποιηθεί για μοντελοποίηση πόρων με χωρητικότητα μεγαλύτερη του ένα.
Χρονοπρογραμματισμός μηχανών ενός σταδίου (2/2) Qm: Ομοιόμορφα Σχετιζόμενων Παράλληλων Μηχανών (Uniformly Related Parallel Machines) Οι μηχανές έχουν διαφορετική ταχύτητα επεξεργασία, κοινή για όλες τις διεργασίες. Χρόνος εκτέλεσης της εργασίας p j /u i (u i ταχύτητα μηχανης/p j χρόνος επεξεργασίας εργασίας) Rm: Μη Σχετιζόμενων Παράλληλων Μηχανών (Unrelated Parallel Machines) Οι μηχανές έχουν διαφορετική ταχύτητα επεξεργασίας η οποία είναι συνάρτηση της εκάστοτε εκτελούμενης εργασίας.
Χρονοπρογραμματισμός μηχανών πολλαπλών σταδίων (1/2) Κάθε εργασία αποτελείται από περισσότερες της μίας διεργασίες Κάθε διεργασία έχει μια μόνο μηχανή στην οποία εκτελείται Multiple-stage scheduling problems Fm: Προβλήματα Ροής Καταστημάτων (flow-shop problems): κάθε εργασία j έχει ακριβώς m διεργασίες {Ο ji i = 1,, m} Κάθε Ο ji πρέπει να εκτελεστεί στην μηχανή i οι εργασίες πρέπει να εκτελεστούν με την σειρά Ο j1, Ο j2,, Ο jm (ίδια σειρά για όλες τις εργασίες) Οι ουρές (queues) των μηχανών είναι FIFO
Χρονοπρογραμματισμός μηχανών πολλαπλών σταδίων (2/2) Om: Προβλήματα Ανοικτών Καταστημάτων (open-shop problems) παρόμοιο με το πρόβλημα ροής αλλά χωρίς διάταξη ανάμεσα στις διεργασίες μιας εργασίας. Jm: Προβλήματα Καταστημάτων Εργασιών (jobshop problems) γενική περίπτωση των προβλημάτων ροής οι διεργασίες μιας εργασίας πρέπει να εκτελεστούν με την συγκεκριμένη σειρά Ο j1, Ο j2,, Ο jm κάθε διεργασία εκτελείται σε συγκεκριμένη μηχανή O ij (m k ) και γενικά k j.
Σημειογραφία Προβλημάτων Χρονοπρογραμματισμού α β γ α = κατηγορία προβλήματος : P (πανομοιότυπες), U (ομοιόμορφα σχετιζόμενων), R (μη σχετιζόμενων) παράλληλων μηχανών F (ροής), O (ανοικτά), J (εργασιών) καταστημάτων β = χαρακτηριστικά εργασιών (καταληκτικές ημερομηνίες, χρόνοι αρχικοποίησης, περιορισμοί διάταξης), κενό αν δεν υπάρχουν περιορισμοί. γ = η συνάρτηση βελτιστοποίησης Παραδείγματα: Pm δ j Σ j w j c j m πανομοιότυπες παράλληλες μηχανές, deadlines on jobs, ελαχιστοποίηση σταθμισμένου αθροίσματος ολοκλήρωσης εργασιών J prec makespan πρόβλημα καταστήματος εργασιών με τυχαίο αριθμό μηχανών και περιορισμούς διάταξης μεταξύ εργασιών με στόχο την ελαχιστοποίηση συνολικού χρόνου ολοκλήρωσης εργασιών.
Παράδειγμα Κατάστημα εργασιών, μηχανές m 1, m 2, m 3, εργασίες j 1,, j 5. j 1 : <m 2 (3), m 1 (3), m 3 (6)> m 2 και m 1 για 3 μονάδες χρόνου, m 3 για 6 μονάδες χρόνου j 2 : <m 2 (2), m 1 (5), m 2 (2), m 3 (7)> j 3 : <m 3 (5), m 1 (7), m 2 (3)> j 4 : <m 2 (4), m 3 (6), m 1 (7), m 2 (4)> j 5 : <m 2 (6), m 3 (2)>
Ένα πρόβλημα Χρονοπρογραμματισμού P Mj, prec makespan Έστω δύο ομάδες αναλυτών Α, Β και μια ομάδα προγραμματιστών Π. M = {Α,Β,Π} Υποέργα: Προγραμματισμός components Μ 1, Μ 2, και Ανάλυση components Μ 3, Μ 4, Μ 5. Η διάρκεια D των Μ 1, Μ 3, Μ 5, είναι 3 μηνες και των άλλων 2 μήνες J = {Μ1, Μ2, Μ3, Μ4, Μ5}, D1=D3=D5=3, D2=D4= 2
Ένα πρόβλημα Χρονοπρογραμματισμού Υπάρχει κοινός manager στα υποέργα {Μ 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(ck), jk J
Λύση A Μ4 B Μ3 Μ5 EΠ Μ2 Μ1 0 2 4 6 8
Πολυπλοκότητα Τα περισσότερα προβλήματα είναι NP-hard P - identical parallel machines U - uniform parallel machines R - unrelated parallel machines F - flow shop O - open shop J - job shop
Μέθοδοι Επίλυσης
Κατηγορίες Αλγορίθμων Επίλυσης 1/2 Γενικό πρόβλημα χρονοπρογραμματισμού μηχανών έχει μεγάλη πολυπλοκότητα (NP) Απλούστερες μορφές του προβλήματος επιλύονται σε πολυωνυμικό χρόνο 1 max-tardiness σε χρόνο O(nlogn) 1 Σw i c i μπορεί να λυθεί βέλτιστα με κατάλληλη αύξουσα διάταξη εργασιών ως προς τον λόγο p j /w j (χρόνος εκτέλεσης / βάρος εργασίας i) Πολύ γνωστός κανόνας WSPT (Weighted Shortest Processing Time first). O(nlog(n)) πολυπλοκότητα Υπάρχουν και άλλες διατάξεις οι οποίες επιλύουν ανάλογα (απλά) προβλήματα.
Κατηγορίες Αλγορίθμων Επίλυσης 2/2 Κανόνες Διεκπεραίωσης (dispatching rules) Μαθηματικές Μέθοδοι Μέθοδοι Τοπικής Αναζήτησης Ικανοποίηση Περιορισμών
Κανόνες Διεκπεραίωσης Είναι κανόνες επιλογής της επόμενης εργασίας που θα εκτελεστεί από μια μηχανή. Διάφοροι κανόνες έχουν προταθεί στην βιβλιογραφία, που επιλύουν τα προβλήματα με στόχο την βελτιστοποίηση κάποιου κριτηρίου.
Κανόνες Διεκπεραίωσης J0 J1 J2
Κανόνες Διεκπεραίωσης J0 J1 J2
Κανόνες Διεκπεραίωσης J0 J1 J2
Κανόνες Διεκπεραίωσης J0 J1 J2
Κανόνες Διεκπεραίωσης J0 J1 J2
Κανόνες Διεκπεραίωσης J0 J1 J2
Κανόνες Διεκπεραίωσης J0 J1 J2
Κανόνες Διεκπεραίωσης J0 J1 J2
Κανόνες Διεκπεραίωσης Κατηγοριοποίηση ως προς την χρονική μεταβολή των κριτηρίων Στατικοί κανόνες (static), που βασίζονται σε κριτήρια μη χρονικά μεταβαλλόμενα (πχ. καταληκτική ημερομηνία διεργασιών) Δυναμικοί κανόνες (dynamic), που βασίζονται σε χρονικά μεταβαλλόμενα κριτήρια (πχ. περιθώριο για εκκίνηση εργασίας) Κατηγοριοποίηση ως προς την πληροφορία Τοπικοί (local), που βασίζονται σε πληροφορία η οποία αφορά την συγκεκριμένη ουρά ή μηχανή για την οποία γίνεται η επιλογή. Καθολικοί κανόνες (global), που συνδυάζουν πληροφορίες για τη γενικότερη κατάσταση και άλλων μηχανών.
Παραδείγματα Κανόνων Διεκπεραίωσης Συντομότερη Καταληκτική Ημερομηνία (EDD-Earliest Due Date) Ταξινόμηση εργασιών σε αύξουσα σειρά ως προς την καταληκτική ημερομηνία τους 1 max-lateness Μικρότερος Χρόνος Εκτέλεσης (SPT Shortest Processing Time) Ταξινόμηση (αύξουσα σειρά) ως προς τον χρόνο εκτέλεσης Ελαχιστοποιεί το άθροισμα των χρόνων ολοκλήρωσης Μεγαλύτερος Χρόνος Εκτέλεσης (LPT Longest Processing Time) Ταξινόμηση (φθίνουσα σειρά) ως προς τον χρόνο εκτέλεσης Load balancing (παράλληλες μηχανές) Μικρότερος Σταθμισμένος Χρόνος Εκτέλεσης (WSPT - Weighted Shortest Processing Time) Ταξινόμηση σε αύξουσα σειρά βάσει του λόγου βάρους εργασίας προς χρόνο εκτέλεσης (p j /w j ) 1 Σw i c i
Μαθηματικές Μέθοδοι Γραμμικός Προγραμματισμός (linear programming) Ορισμός Προβλήματος δεδομένων των ακόλουθων a 11 x 1 +a 12 x 2 +...+a 1n x n b 1 a 21 x 1 +a 22 x 2 +...+a 2n x n b 2 a 31 x 1 +a 32 x 2 +...+a 3n x n b 3 x i 0 να ελαχιστοποιηθεί η ποσότητα c 1 x 1 +c 2 x 2 +...+c n x n Επίλυση Simplex,κλπ. Ακέραιος Προγραμματισμός (Integer Programming) Χ ακέραιες τιμές Mixed Integer Programming.
Γραμμικός Προγραμματισμός Πρόβλημα Qm p j =1 Σh j (C j ) m ομοιόμορφα σχετιζόμενες μηχανές p j =1 για κάθε εργασία ο χρόνος εκτέλεσης είναι 1. ελαχιστοποίηση h j (C j ) x ijk εργασία j στην μηχανή i στην σειρά k. 1 εκτέλεση, 0 μη-εκτέλεση c ijk =h j (C j ) = h j (k/u i ) κόστος (συνεισφορά στην τελική λύση) κάθε εργασία σε μια μόνο μηχανή και καταλαμβάνει μια σχισμή κάθε σχισμή (i,k) το πολύ μια εργασία μη αρνητικές τιμές min x i j ijk x k m i= 1 j= 1 k = 1 ijk x 0 n ijk n c = 1, j 1, i, k ijk x ijk
Ακέραιος Προγραμματισμός 1 prec Σw j C j Αναπαράσταση σε ακέραιο προγραμματισμό x kj = 1 εργασία k είναι πριν την j. Εργασία j ολοκληρώνεται σε χρόνο Σp k x kj + p j Επίλυση cutting plane branch and bound min j x + x kj n j k kj = 1 k = 1 j= 1 jk n = 1 w p x + n w j p j x jl + x lk + x kj 1 x jk {0,1} x jj = 0
Δυναμικός Προγραμματισμός Τεχνική απαρίθμησης Επιλύει βέλτιστα υποπροβλήματα ολοένα και μεγαλύτερης τάξης μέχρι να βρεθεί η λύση στο αρχικό πρόβλημα. Κάθε υποπρόβλημα μεγαλύτερης τάξης βασίζεται σε πληροφορίες και προηγούμενη λύση. Απαιτούνται μια αρχική συνθήκη μια αναδρομική σχέση συνάρτηση βέλτιστης τιμής
Πρόβλημα 1 Σh j (C j ) Αρχική Συνθήκη V({j})=h j (P j ) Παράδειγμα Αναδρομική σχέση V(J)=min(V(J-{j}) + h j (Σp k )) Συνάρτηση βέλτιστης τιμής V({1,2,...n}) i.e. V(J)=Σ j J h j (C j ) Εργασίες 1 2 3 p j 4 3 6 h j (C j ) C 1 +C 1 2 3+C 2 3 8*C 3
Παράδειγμα (συνέχεια) Βήμα 1: Υπολογισμός κόστους αν το χρονοπρόγραμμα είχε μόνο μια εργασία: V({1}=h 1 (p 1 )=4+4*4=20 V({2}=h 2 (p 2 )=3+3 3 =30 V({3})=h 3 (p 3 )=6*8=48 Βήμα 2: Υπολογισμός αν υπήρχαν μόνο δύο εργασίες V({1,2})=min(V({1})+h 2 (p 1 +p 2 ),V({2})+h 1 (p 1 +p 2 ))=min(366,86)=86. που σημαίνει ότι η β' λύση είναι η καλύτερη άρα 2 εργασία πριν την 1, αν υποθέσουμε ότι οι 1 και 2 τελικά μπαίνουν πριν την 3. V({1,3})=100, V({2,3})=102 Βήμα 3: 3 εργασίες V({1,2,3})=min(V({1,2})+h 3 (p 1 +p 2 +p 3 ),V({2,3})+h 1 (p 1 +p 2 +p 3 ), V({1,3}) +h 2 (p 1 +p 2 +p 3 )) = min(190,284,2300) Άρα 3 είναι η τελευταία εργασία, 1 η προηγούμενη και 2 η πρώτη. Βέλτιστη Λύση (2,1,3) σε τρία βήματα.
Μέθοδοι Τοπικής Αναζήτησης Μέθοδοι τοπικής αναζήτησης (local search), έχουν εφαρμοστεί με μεγάλη επιτυχία. Δεν εγγυώνται ότι η λύση που θα επιστρέψουν είναι και η βέλτιστη. Κλασικό μειονέκτημα στοχαστικών μεθόδων Παραδείγματα Μεθόδων Προσομοιωμένη Ανόπτυση (Simulated Annealing) Αναζήτηση Tabu (tabu search) Γενετικοί Αλγόριθμοι
Απαιτήσεις Αλγορίθμων Τοπικής Αναζήτησης Κατάλληλη αναπαράσταση του χρονοπρογράμματος για την κάθε μέθοδο. Τελεστές με τους οποίους προκύπτει η γειτονία της λύσης. Η διαδικασία αναζήτησης Κριτήρια αποδοχής απόρριψης της λύσης/τερματισμού. Παράδειγμα: χρονοπρογραμματισμός μιας μηχανής Αναπαράσταση: σειρά εργασιών πχ. [J 1,J 3,J 4,J 5 ] Δημιουργία γειτονιάς: ανταλλαγή θέσεων [J 1,J 4,J 3,J 5 ] Διαδικασία αναζήτησης (tabu/simulating annealing) Ν βήματα, όριο στην ποιότητα πλάνου, κλπ.
(Εύλογες) Απαιτήσεις για την επίλυση των Προβλημάτων Πλήρεις λύσεις Αν υπάρχει λύση να επιστραφεί από την μέθοδο. Βέλτιστη λύση να επιστρέφεται η βέλτιστη λύση Εύρεση λύσης σε εύλογο χρονικό διάστημα Εύκολη μοντελοποίηση προβλημάτων Φυσική αναπαράσταση του προβλήματος Μεγάλη εκφραστική ικανότητα Εύκολη συντήρηση Ευκολία στην αλλαγή των χαρακτηριστικών του προβλήματος Μικρό μέγεθος κώδικα Λιγότερα προβλήματα, μικρός χρόνος ανάπτυξης, κλπ
Προγραμματισμός με Υποστήριξη Περιορισμών Constraint Programming. Πεδίο με ιδιαίτερο ενδιαφέρον τα τελευταία χρόνια. Εύκολη αναπαράσταση του προβλήματος. Με "φυσικό" τρόπο, δηλώνοντας τους περιορισμούς. Αποδοτικοί αλγόριθμοι επίλυσης. Πλήθος βιομηχανικών εφαρμογών. ILOG Solver CHIP ECLiPSe Prolog
Ανακεφαλαίωση Τι είναι χρονοπρογραμματισμός; Παραδείγματα Εργασίες, πόροι, περιορισμοί, κριτήρια βελτιστοποίησης Ορισμός και είδη προβλημάτων χρονοπρογραμματισμού μηχανών Επίλυση προβλημάτων χρονοπρογραμματισμού Κανόνες Διεκπεραίωσης Μαθηματικές Μέθοδοι Μέθοδοι τοπικής Αναζήτησης Ικανοποίηση Περιορισμών