Professional Documents
Culture Documents
Scheduling
Scheduling
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΠΑΡΑΓΩΓΗΣ
Σηµειώσεις Μεταπτυχιακού Μαθήµατος
Βασίλης Σ. Κουϊκόγλου
Μάρτιος 2004
Copyright: Βασίλης Σ. Κουϊκόγλου, 2003
ΠΕΡΙΕΧΟΜΕΝΑ
1 ΕΙΣΑΓΩΓΗ ...........................................................................................................................3
1.1 ΠΡΟΒΛΗΜΑΤΑ ΠΑΡΑΓΩΓΗΣ...................................................................................3
1.2 ΤΟΠΟΛΟΓΙΕΣ ΣΥΣΤΗΜΑΤΩΝ ΠΑΡΑΓΩΓΗΣ .........................................................4
2 ΜΙΑ ΜΗΧΑΝΗ ....................................................................................................................6
2.1 ΠΡΟΒΛΗΜΑΤΑ ...........................................................................................................6
2.2 ΟΜΑΛΑ ΣΤΑΤΙΚΑ ΠΡΟΒΛΗΜΑΤΑ .........................................................................7
2.2.1 Ακριβή Αποτελέσµατα...........................................................................................7
2.2.2 Ασκήσεις (Σειρά 1) ..............................................................................................13
2.3 ΜΕΘΟ∆ΟΙ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ ..............................................................13
2.3.1 Τοπική (Γειτονική) Έρευνα - Neighborhood (Local) Search...............................13
2.3.2 ∆υναµικός Προγραµµατισµός - Dynamic Programming .....................................15
2.3.3 Αλγόριθµος ∆ιακλάδωσης και Φράγµατος - Branch and Bound.........................22
2.3.4 Ασκήσεις (Σειρά 2) ..............................................................................................26
2.4 ∆ΥΝΑΜΙΚΑ KΑΙ ΣΤΟΧΑΣΤΙΚΑ ΠΡΟΒΛΗΜΑΤΑ ................................................27
2.4.1 Ακριβή Αποτελέσµατα.........................................................................................27
2.4.2 Ασκήσεις (Σειρά 3) ..............................................................................................28
3 ΠΕΡΙΣΣΟΤΕΡΕΣ ΜΗΧΑΝΕΣ............................................................................................29
3.1 ΠΡΟΒΛΗΜΑΤΑ .........................................................................................................29
3.2 ΠΑΡΑΛΛΗΛΕΣ ΜΗΧΑΝΕΣ......................................................................................29
3.2.1 Συνολικός Χρόνος Περάτωσης ............................................................................29
3.2.2 Μέσος Χρόνος Περάτωσης..................................................................................30
3.2.3 Ασκήσεις (Σειρά 4) ..............................................................................................31
3.3 ΚΑΤΑΣΤΗΜΑΤΑ ΡΟΗΣ............................................................................................31
3.3.1 Εισαγωγή..............................................................................................................31
3.3.2 Αλγόριθµος Johnson ............................................................................................32
3.3.3 Αλγόριθµος ∆Φ των Ignall-Schrage και Lomnicki..............................................34
3.3.4 Ασκήσεις (Σειρά 5) ..............................................................................................35
3.4 ΚΑΤΑΣΤΗΜΑΤΑ ΕΡΓΑΣΙΩΝ...................................................................................36
4 ΕΛΕΓΧΟΣ ΡΟΗΣ ΚΑΙ ∆ΡΟΜΟΛΟΓΗΣΗΣ ΣΕ ∆ΙΚΤΥΑ ΠΑΡΑΓΩΓΗΣ .......................38
4.1 ΕΙΣΑΓΩΓΗ ..................................................................................................................38
1
4.2 ANAΛΥΣΗ ∆ΙΚΤΥΩΝ ΑΝΑΜΟΝΗΣ .......................................................................40
4.2.1 Βασικές Έννοιες...................................................................................................40
4.2.2 Απλά Συστήµατα Αναµονής ................................................................................42
4.2.3 ∆ίκτυα Jackson.....................................................................................................45
4.2.4 Κλειστά ∆ίκτυα....................................................................................................46
4.3 ΑΛΓΟΡΙΘΜΟΙ ΜΗ ΓΡΑΜΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ......................................49
4.3.1 Bελτιστοποίηση µε περιορισµούς ισότητας.........................................................49
4.3.2 Συνθήκες Kuhn-Tucker........................................................................................52
4.3.3 Mέθοδος Συναρτήσεως Ποινής (Penalty Function Method)................................55
4.4 ΠΡΟΒΛΗΜΑΤΑ ΡΟΗΣ ΚΑΙ ∆ΡΟΜΟΛΟΓΗΣΗΣ.....................................................59
4.4.1 Αιτιοκρατικοί Χρόνοι Κατεργασιών....................................................................59
4.4.2 Στοχαστικοί Χρόνοι Κατεργασιών - Περιορισµοί Αποθέµατος ..........................61
4.4.3 Ασκήσεις (Σειρά 6) ..............................................................................................64
5 ΕΥΣΤΑΘΕΙΑ ΣΥΣΤΗΜΑΤΩΝ ΠΑΡΑΓΩΓΗΣ .................................................................65
5.1 ΕΙΣΑΓΩΓΗ ..................................................................................................................65
5.2 ΜΙΑ ΜΗΧΑΝΗ ...........................................................................................................65
5.3 ΥΠΟΒΕΛΤΙΣΤΗ ΠΟΛΙΤΙΚΗ ΕΛΕΓΧΟΥ ΑΠΟΘΗΚΩΝ .........................................70
5.4 ΣΥΣΤΗΜΑΤΑ ΓΕΝΙΚΟΤΕΡΗΣ ΓΕΩΜΕΤΡΙΑΣ .......................................................74
5.4.1 'Ακυκλα ∆ίκτυα....................................................................................................75
5.4.2 Μη Ακυκλα ∆ίκτυα..............................................................................................77
5.4.3 Ασκήσεις (Σειρά 7) ..............................................................................................83
5.5 ΕΡΓΑΣΙΑ .....................................................................................................................83
6 BΙΒΛΙΟΓΡΑΦΙΑ.................................................................................................................86
2
1 ΕΙΣΑΓΩΓΗ
3
µεταβολές της ζήτησης (πρόσληψη - απόλυση εποχικού προσωπικού, υπεργολαβίες µε
άλλους κατασκευαστές, µετακινήσεις πόρων από το ένα τµήµα στο άλλο, υπερωρίες).
Ορίζοντας : Μέχρι 1 έτος.
Βαθµίδα 3 : Βραχυπρόθεσµος Σχεδιασµός (Master Scheduling, MRP)
Αποφασίζονται: προγραµµατισµός απαιτήσεων τελικών προϊόντων (master
schedule) και υλικών για αυτά (material requirements planning - MRP). Εδώ γίνονται
εκτίµηση χρόνων παράδοσης για κάθε τύπο προϊόντος, υπολογισµός χρόνων παραγγελίας
πρώτων υλών και προβλέψεις.
Ορίζοντας : 1-6 µήνες.
Βαθµίδα 4 : Προγραµµατισµός
Το σύστηµα MRP έχει δώσει τις προβλέψεις. Ο ορίζοντας της προηγούµενης
βαθµίδας χωρίζεται σε περιόδους 2-6 εβδοµάδων. Ο προγραµµατισµός απαιτήσεων
επαναλαµβάνεται κάθε εβδοµάδα ή συντοµότερα έτσι ώστε να αντιµετωπίζονται
προβλήµατα απρόβλεπτων παραγγελιών, διαθεσιµότητας πόρων, και παράλληλα το
εβδοµαδιαίο πρόγραµµα να ταιριάζει µε τα προγράµµατα των επόµενων εβδοµάδων. Τα
συγκεκριµένα προβλήµατα θα αναπτυχθούν σε επόµενο εδάφιο.
Βαθµίδα 5 : Επαναπρογραµµατισµός - Έλεγχος παραγωγής
Βλάβες µηχανών, καθυστερήσεις πρώτων υλών, ακριβείς περιορισµοί σε
δραστηριότητες σε πόρους εξετάζονται λεπτοµερώς. ∆ιορθώνονται τυχόν αποκλίσεις από
την προβλεπόµενη παραγωγή, καθορίζονται προτεραιότητες σε πραγµατικό χρόνο. Ο
ορίζοντας εκτείνεται από µία βάρδια έως µερικές ηµέρες.
Ο προγραµµατισµός παραγωγής αποτελεί ένα εποχιακό πρόβληµα. Με τον όρο
προγραµµατισµό συνήθως εννοούµε τέτοιας κλίµακας προβλήµατα ή ακόµη πιο
βραχυπρόθεσµα.
4
Οι παραγγελίες είναι συγκεκριµένες και κάθε κατεργασία αφορά προϊόν που προορίζεται
για συγκεκριµένο πελάτη. Εποµένως, τα βέλη που περιγράφουν τη ροή µίας εργασίας
έχουν µία αρχή και ένα τέλος (δεν υπάρχουν διακλαδώσεις). Ειδική περίπτωση
αποτελούν καταστήµατα στα οποία οι παραγγελίες είναι µοναδικές και ανεπανάληπτες
(έργα - projects).
Aνοικτό Κατάστηµα Εργασιών (Open Job Shop). Οι παραγγελίες ίδιου τύπου
προϊόντος ή παρόµοιων είναι συχνές. Μπορεί να γίνονται διαφορετικές κατεργασίες σε
µία µηχανή. Ανάλογα µε τις προτεραιότητες που έχουν καθοριστεί, µία εργασία ή µέρος
της δύναται να αλλάξει προορισµό από έναν πελάτη προς άλλον. Για την αντιµετώπιση
εκτάκτων παραγγελιών του ίδιου προϊόντος υπάρχουν αποθέµατα σε ενδιάµεσα στάδια
της παραγωγής, καθώς και απόθεµα τελικού προϊόντος. Όταν ο βαθµός οµοιότητας των
εργασιών (τελικών προϊόντων) είναι µεγάλος, τότε η ροή διά µέσου του συστήµατος
είναι οµοιόµορφη και συµφέρει η κατεργασία ανά παρτίδες παρά ανά κοµµάτι (π.χ.
κλωστοϋφαντουργία).
Κατάστηµα Ροής (Flow Shop). Η ακολουθία εκτέλεσης εργασιών είναι σταθερή και
κάθε κοµµάτι επισκέπτεται έναν σταθµό κατεργασίας µία µόνον φορά. Κάθε σταθµός
µπορεί να αποτελείται από παράλληλες µηχανές οι οποίες εκτελούν την ίδια κατεργασία.
Στη συνέχεια εξετάζουµε προβλήµατα προγραµµατισµού παραγωγής σε συστήµατα
µίας µηχανής.
5
2 ΜΙΑ ΜΗΧΑΝΗ
2.1 ΠΡΟΒΛΗΜΑΤΑ
Εξετάζουµε συστήµατα που αποτελούνται από µία µόνο µηχανή, η οποία εκτελεί
διάφορες εργασίες. Οι "εργασίες" αυτές µπορεί να περιγράφουν παραγγελίες ή πρώτες
ύλες που πρέπει να υποστούν κατεργασία. Αυτές µπορεί να είναι διαθέσιµες στην αρχή
(τη στιγµή 0) ή να έρχονται σε µελλοντικούς χρόνους. Ορίζουµε τις ακόλουθες
ποσότητες :
pi : διάρκεια εκτέλεσης εργασίας i (processing time)
ri : χρόνος άφιξης της εργασίας (παραγγελίας) i στο σύστηµα, (ready time)
di : προθεσµία, µέγιστος επιτρεπτός χρόνος παράδοσης (due date)
Είναι δυνατόν να έχουµε πλήρη πληροφορία σχετικά µε τις ποσότητες αυτές ή µερική
πληροφορία µε τη µορφή µέσων τιµών (E(pi) = γνωστή, …) ή πιθανοτήτων (P(pi =
x) = γνωστή για κάθε x, …) . Στην πρώτη περίπτωση, έχουµε αιτιοκρατικούς χρόνους
και στη δεύτερη έχουµε στοχαστικούς.
Το πρόβληµα είναι η εύρεση της σειράς (ακολουθίας) εκτέλεσης των εργασιών ώστε
να ικανοποιείται κάποιο µέτρο απόδοσης. Συνήθη µέτρα απόδοσης περιλαµβάνουν τις
εξής ποσότητες:
Ci : χρόνος συµπλήρωσης (παράδοσης) της εργασίας i (completion time)
Fi=Ci – ri : χρόνος ροής = συνολικός χρόνος αναµονής της i στο σύστηµα (flow
time)
Li=Ci – di : θετική ή αρνητική απόκλιση από την προθεσµία παράδοσης, βραδύτητα
(lateness)
Ti=max{Li, 0}: υπέρβαση της προθεσµίας, καθυστέρηση (tardiness)
Ei=max{ – Li, 0}: αρνητική απόκλιση από την προθεσµία, "ενωρίτητα" (earliness)
N: πλήθος εργασιών που καθυστέρησαν
Στόχοι : Ελαχιστοποίηση της αντικειµενικής συνάρτησης Ζ. Η Ζ εκφράζει το κόστος
λειτουργίας το οποίο µπορεί να αναλυθεί ως:
• Κόστος εξ αιτίας καθυστερήσεων (ποινικές ρήτρες). Όταν το Ci είναι µεγαλύτερο
από την προθεσµία di τότε οι καθυστερήσεις Li, Ti είναι θετικές και υπάρχουν Ν>0
εκπρόθεσµες εργασίες.
• Κέρδος εξ αιτίας ενωρίτερου χρόνου παράδοσης όταν το Ei είναι µεγάλο.
• Κόστος αναµονής ή αποθέµατος Fi. Όταν το προϊόν είναι ηµιτελές, δεν προσφέρεται
στον αγοραστή και δεν υπάρχουν έσοδα από αυτό. Αν η τιµή του προϊόντος είναι 100
6
δρχ και το επιτόκιο τραπέζης είναι 12% ανά έτος=1% ανά µήνα, τότε µείωση του
χρόνου Fi κατα 1 µήνα συνεπάγεται κέρδος 1 δρχ από την αποταµίευση 100 δραχµών
επι 1 µήνα στην τράπεζα. Συχνά, επίσης, υπάρχει κόστος συντήρησης που είναι
ανάλογο του χρόνου παραµονής Fi (πχ. σε γαλακτοκοµικά προϊόντα).
• Σταθµισµένο άθροισµα : Fw = ∑i wi Fi , σταθµισµένο πλήθος καθυστερήσεων µε
wi=βάρος=κόστος ανά µονάδα χρόνου αναµονής, και αντίστοιχα oρίζονται τα Lw, Tw.
Θεωρούµε ότι τα wi είναι ≥0 και εκφράζουν κάποιο συντελεστή κόστους ή ποινής.
• Σταθµισµένο πλήθος καθυστερήσεων: Νw = ∑i wi I (Ti > 0 ) όπου Ι(x)=1 αν x=αληθής,
και 0 αν x=ψευδής είναι η ενδεικτική συνάρτηση. Όταν wi=1 , τότε Νw=Ν.
• Συναρτήσεις των ανωτέρω : Z = ∑i f i (Ci ) Z = ∑i (wi Ti + u i E i )
Σε προβλήµατα µε στοχαστικούς χρόνους, η αντικειµενική συνάρτηση εκφράζεται
µε τη µορφή της µέσης τιµής. Ε(Ζ).
Τα προβλήµατα χαρακτηρίζονται ως:
• στατικά, αν οι παραγγελίες είναι από την αρχή καθορισµένες, οπότε ri=0 ⇒ Ci=Fi, ή
δυναµικά αν οι χρόνοι αφίξεων παραγγελιών διαφέρουν
• µη διακοπτόµενων (non preemptive) εργασιών, αν µία εργασία δεν δύναται να διακοπεί
προτού περατωθεί, ή διακοπτόµενων (preemptive) εργασιών, αλλιώς.
• οµαλά (regular), αν η συνάρτηση Ζ είναι αύξουσα ως προς Ci.
7
σταθµισµένος µικρότερος χρόνος κατεργασίας (weighted shortest processing
time, WSPT).
Απόδειξη : Εις άτοπον απαγωγή. Yποθέστε ότι η βέλτιστη ακολουθία εκτέλεσης των n
εργασιών είναι η S=(1, 2, ..., i, i+1, ..., n) και επί πλέον ότι o κανόνας WSPT δεν ισχύει.
Εκτελούµε αντιµετάθεση των εργασιών i και (i+1) και προκύπτει η ακολουθία S΄=(1, 2,
..., i+1, i, ..., n). Υπολογίζουµε τους σταθµισµένους χρόνους ροής Fw(S) και Fw(S΄) για
κάθε ακολουθία. Eπειδή η S είναι η βέλτιστη ακολουθία, προφανώς θα πρέπει Fw(S)<
Fw(S΄). Έχουµε
Χρόνοι ροής:
S : F1 , ..., Fi – 1, Fi=Fi – 1+pi , Fi+1=Fi – 1+pi+pi+1 , Fi+2 ,..., Fn (*)
S΄: F1΄=F1 , ..., Fi – 1΄= Fi – 1 , Fi+1΄ =Fi – 1+pi+1, Fi΄ =Fi – 1+pi+1+pi= Fi+1 , Fi+2΄=Fi+2 ,..., Fn΄=Fn
Συνάρτηση κόστους:
i −1 n
Fw(S) = ∑ w j F j + wi ( Fi −1 + p i ) + wi +1 ( Fi −1 + p i + p i +1 ) + ∑ w j F j
j =1 j =i + 2
i −1 n
Fw(S΄) = ∑ w j F j + wi +1 ( Fi −1 + p i +1 ) + wi ( Fi −1 + p i +1 + p i ) + ∑ w j F j
j =1 j =i + 2
Τώρα, από τη σχέση Fw(S)< Fw(S΄) προκύπτει
p i p i +1
wi+1 pi+1< wi pi ⇔ <
wi w i +1
Η σχέση αυτή ικανοποιεί τον κανόνα WSPT. Επί πλέον αυτό πρέπει να ισχύει για κάθε
i. Εποµένως η αρχική υπόθεση είναι άτοπη. 4
8
Απόδειξη: Οι (β) και (γ) εκφράζονται συναρτήσει της (α) και ο κανόνας WSPT προκύπτει
από την Πρόταση 2.1 .Έστω C(t) = σύνολο εργασιών που δεν έχουν εκτελεσθεί τη
χρονική στιγµή t. Η συνάρτηση Ii∈C(t) είναι η ενδεικτική συνάρτηση της πρότασης "η i δεν
έχει εκτελεσθεί τη στιγµή t". Αν η i δεν έχει εκτελεσθεί τότε ευρίσκεται αποθηκευµένη.
∑i =1 I i∈C (t ) εργασίες
n
Τη στιγµή t υπάρχουν συνολικά που αποµένουν να εκτελεσθούν.
Λαµβάνοντας υπ' όψιν και τα βάρη κάθε εργασίας η (δ) προκύπτει ως εµβαδόν:
Fmax
1
nw(S) =
Fmax
∫ [∑ in=1 wi I i∈C (t ) ]dt ,
0
Πρόταση 2.3. Για το στατικό πρόβληµα µε προθεσµίες παράδοσης d1, d2, ..., dn η
πολιτική ενωρίτερων προθεσµιών (earliest due date - EDD), d[1]≤...≤d[i]≤ ...≤d[n]
ελαχιστοποιεί τη µέγιστη βραδύτητα Lmax και τη µέγιστη καθυστέρηση Tmax.
Απόδειξη : Απο Γ. Φίλη "Συστήµατα Παραγωγής", σηµειώσεις µαθήµατος. Εις άτοπον
απαγωγή. Υποθέτουµε ότι η βέλτιστη λύση είναι η (1,..., i, i+1, ...n) αλλά δεν είναι τύπου
EDD. Εκτελούµε αντιµετάθεση των εργασιών i και (i+1). Για να είναι το νέο πρόγραµµα
χειρότερο από το βέλτιστο πρέπει να ισχύει ο EDD. Άτοπο. 4
9
∆εν θα αποδείξουµε την Πρόταση 2.4. Θα δόσουµε µία διαισθητική αιτιολόγηση.
Φαντασθείτε το πρόγραµµα EDD: (1, 2, 3, 4, 5) όπου οι εργασίες 2 και 4 παραβιάζουν τις
προθεσµίες τους. Το πρόγραµµα αυτό δεν είναι το βέλτιστο. Μπορούµε αντί αυτού να
ακολουθήσουµε το (1, 3, 4, 5, 2) στο οποίο η εργασία 2 έχει µεταφερθεί στο τέλος και
είναι εκπρόθεσµη επίσης. Όµως οι υπόλοιπες εργασίες τελειώνουν συντοµότερα.
Υπάρχει λοιπόν πιθανότητα η 4 να γίνει εµπρόθεσµη. Υπάρχει καλύτερη ακολουθία; Αν
ο χρόνος εκτέλεσης της 1 ήταν µεγαλύτερος από το χρόνο εκτέλεσης της 2, P1>P2, τότε
αντί της 2 συµφέρει να στείλουµε την 1 στο τέλος. Πράγµατι, επειδή το πρόγραµµα (1, 2,
3, 4, 5) είναι EDD ⇒ d1 ≤ d2 ≤ ... ≤ d5. Εκτελώντας την 1 τελευταία, την κάνουµε
εκπρόθεσµη (γιατί;) αλλά η 2 γίνεται εµπρόθεσµη (γιατί;). Τώρα το πρόγραµµα είναι (2,
3, 4, 5, 1). Η εργασία 4 έχει ακόµη µεγαλύτερη πιθανότητα να γίνει εµπρόθεσµα,
επειδή η 1 που έχει µεγάλο χρόνο εκτέλεσης έπεται, ενώ στο προηγούµενο βελτιωµένο
πρόγραµµα (1, 3, 4, 5, 2) η 1 προηγείται της 4.
Παράδειγµα i 1 2 3 4 5 6 7
pi 2 4 6 8 10 12 14
di 6 12 30 19 12 18 24 min N= ;
Θα εφαρµόσουµε έναν ισοδύναµο αλγόριθµο µε εκείνον του Hodgson, µε τη διαφορά ότι
στο βήµα 4 αντί να τοποθετούµε την εργασία στο τέλος, θα την τοποθετούµε σε ένα
σύνολο (όχι διατεταγµένο) Ε των εκπρόθεσµων εργασιών. Στην αρχή οι εργασίες
τοποθετούνται µε τη σειρά EDD και σχηµατίζεται το διατεταγµένο σύνολο Α των
αταξινόµητων εργασιών. Στο βήµα 5 εξετάζουµε το σύνολο Α µόνον.
(1) Α = (1-2-5-6-4-7-3) Ε=∅
Ci= (2-6-16-28-36-50-56)
(2) Εκπρόθεσµες 5, 6, 4, 7, 3
(3),(4) Αφαιρείται η 5 από το Α : Α = (1-2-6-4-7-3) Ε = {5}
(5) Ci= (2-6-18-26-40-46)
(2) Eκπρόθεσµες 4, 7, 3
(3),(4) Αφαιρείται η 6 από το Α : Α = (1-2-4-7-3) Ε = {5, 6}
(5) Ci= (2-6-14-28-34)
(2) Eκπρόθεσµες 7, 3
(3),(4) Αφαιρείται η 7 : Α = (1-2-4-3) Ε = {5, 6, 7}
(5) Ci= (2-6-14-20)
Οι εργασίες του Α είναι εµπρόθεσµες. Το βέλτιστο πρόγραµµα είναι (1-2-4-3-{5, 6, 7})
και οι εργασίες 5, 6, 7 του συνόλου Ε µπορούν να εκτελεσθούν µε αυθαίρετη σειρά. Ν =
3.
10
Μία άλλη τεχνική επίλυσης προβληµάτων µε προθεσµίες και ακέραιους χρόνους
εφαρµόζει την λεγόµενη unit preemption την οποία θα µετέφραζα ως ελευθερία
επιλογής µονάδας έργου. Κάθε εργασία i διάρκειας pi αποσυντίθεται σε pi
µικροεργασίες διάρκειας 1 µονάδας χρόνου, οι οποίες µπορούν να εκτελεσθούν
διάσπαρτα. Αντί του αρχικού προβλήµατος :
min Z
δοθέντος ότι κάθε µία από τις εργασίες i = 1, ..., n εκτελείται χωρίς διακοπή (δηλαδή
αποκλειστικά)
λύνεται το πρόβληµα
min Z
δοθέντος ότι οι µικροεργασίες εκτελούνται µε οιαδήποτε σειρά.
Στο δεύτερο πρόβληµα οι περιορισµοί είναι λιγότερο αυστηροί γιατί µία εργασία
µπορεί να διακοπεί και να παρεµβληθούν άλλες µικροεργασίες. Εποµένως, η τιµή min Z
στο δεύτερο πρόβληµα θα είναι καλύτερη (=µικρότερη) από την τιµή min Z του πρώτου
προβλήµατος. Η τεχνική αυτή ανήκει στην κατηγορία των µεθόδων χαλάρωσης
(relaxation methods) οι οποίες δίδουν κάτω όρια σε προβλήµατα βελτιστοποίησης. Εδώ
θα µελετήσουµε περιπτώσεις όπου η λύση του χαλαρού προβλήµατος είναι ίδια µε τη
λύση του αυστηρού-αρχικού. Εξετάζουµε το πρόβληµα ελαχιστοποίησης της µέγιστης
καθυστέρησης min Lmax της Πρότασης 2.3.
11
εργασιών είναι ακέραιοι αριθµοί. Γενικά οι διάρκειες εργασιών είναι διαφορετικές.
Χωρίζουµε την εργασία i σε pi υποεργασίες (i, j) διάρκειας 1, και για κάθε µία θέτουµε
προθεσµία dij = di. Η ακολουθία που ελαχιστοποιεί τη µέγιστη καθυστέρηση υποεργασίας
(i, j), min Lmaxij , είναι τύπου EDD. Επειδή έχουµε ίδιες προθεσµίες στις υποεργασίες κάθε
εργασίας, η λύση θα έχει τη µορφή
(1, 1) - (1, 2) - ... - (1, p1) - (2, 1) - ... - (2, p2) - ....
αν και µόνο αν οι προθεσµίες είναι d11 = d12 =...= d1 p1 ≤ d 21 =...= d 2 p2 ≤....
Αυτό είναι συνέπεια της Πρότασης 2.3α. Παρατηρούµε ότι, αν και οι υποεργασίες
δύνανται να εκτελεσθούν µε αυθαίρετη σειρά, στη βέλτιστη ακολουθία διατάσσονται
διαδοχικά. Από τις p1 πρώτες υποεργασίες, η τελευταία (1, p1) έχει την µεγαλύτερη
βραδύτητα L1p1= d1 – p1= L1 . Από τις p2 επόµενες, η τελευταία (2, p2) έχει την
µεγαλύτερη βραδύτητα L2p2=d2 – (p1+p2)=L2, κ.ο.κ. Άρα Lmaxij=max Li=Lmax δηλ., η λύση
στο πρόβληµα των υποεργασιών µοναδιαίας διάρκειας και η λύση του αρχικού
προβλήµατος είναι ίδιες.
Η πρόταση αυτή λέει ότι αν θεωρήσουµε ως "επείγουσες" εκείνες τις εργασίες που έχουν
µικρό περιθώριο και τις εκτελέσουµε πρώτες, τότε δεν βελτιστοποιούµε κανένα από τα
µέτρα απόδοσης που συνήθως ενδιαφέρουν την διοίκηση του συστήµατος.
Υποθέτουµε τώρα ότι το κόστος καθυστέρησης της εργασίας i είναι wi. Το
πρόβληµα είναι η ελαχιστοποίηση του σταθµισµένου πλήθους εργασιών που
καθυστερούν, το οποίο συµβολίζεται Nw.
12
και της άκρης της αλυσίδας, τέτοια ώστε να µην υπάρχει άλλη
εργασία i της αλυσίδας η οποία να έχει ταυτόχρονα µεγαλύτερη
διάρκεια pi και µικρότερο βάρος wi από τις αντίστοιχες ποσότητες της
"κατάλληλης εργασίας".
Βήµα 5: Bάλε µία από τις κατάλληλες εργασίες στο τέλος της ακολουθίας και
υπολόγισε τους νέους χρόνους περάτωσης. Αν τώρα υπάρχει εργασία
που καθυστερεί, τότε ονόµασέ την άκρη της αλυσίδας και επανάλαβε
το βήµα 4.
Βήµα 6: Όλες οι εργασίες που έχουν µεταφερθεί στο τέλος θεωρούνται
εκπρόθεσµες. Υπολόγισε πάλι τους χρόνους εκτέλεσης και τις
καθυστερήσεις. Πήγαινε στο βήµα 2.
Η απόδειξη παραλείπεται.
13
(δ) Αποφάσισε αν αυτό το πρόγραµµα είναι ικανοποιητικό και περάτωσε τη διαδικασία,
αλλιώς εύρε νέα γειτονιά µε προγράµµατα και πήγαινε στο (γ).
Τα βήµατα (β) και (δ) έχουν διάφορες παραλλαγές. Αν το τρέχον πρόγραµµα είναι
(1, 2, 3, ..., n) ως γειτονικά προγράµµατα µπορούν να εξετασθούν εκείνα που
προκύπτουν από αντιµεταθέσεις γειτονικών εργασιών :
(2, 1, 3, ..., n)
(1, 3, 2, ..., n)
...
(1, 2, 3, ..., n, n – 1).
∆ιαφορετική γειτονιά προκύπτει θεωρώντας όλες τις δυνατότητες για την εργασία που θα
εκτελεσθεί πρώτη, αφήνοντας τις υπόλοιπες µε την σειρά που είχαν στην αρχή :
(2, 1, 3, ..., n – 1, n)
(3, 1, 2, ..., n – 1, n)
...
(n, 1, 2, 3, ..., n – 1).
Οι δύο ανωτέρω διαδικασίες παράγουν γειτονιές (n – 1) προγραµµάτων στο βήµα (β).
Για το βήµα (δ) υπάρχουν διάφορες δυνατότητες. Η οικονοµικότερη είναι να
υπολογίζουµε την αντικειµενική συνάρτηση για κάθε γειτονικό πρόγραµµα µέχρις ότου
κάποιο πρόγραµµα βρεθεί να είναι καλύτερο από το αρχικό. Τότε περατώνουµε τη
διαδικασία χωρίς να εξετάσουµε τα υπόλοιπα, και θεωρούµε αυτό σαν αρχικό πρόγραµµα
για την επόµενη επανάληψη (β). Εναλλακτικά, υπολογίζουµε όλα τα προγράµµατα της
γειτονιάς. Αν βρεθεί κάποιο καλύτερο πηγαίνουµε στο βήµα (β) θεωρώντας αυτό ως
αρχικό. ∆ιαφορετικά, είτε περατώνουµε την βελτιστοποίηση, είτε διευρύνουµε τη
γειτονιά (βρίσκουµε γειτονιές των γειτονικών σηµείων). Η µέθοδος αυτή αποδίδει
περισσότερη πληροφορία αλλά είναι υπολογιστικά ακριβότερη.
Παράδειγµα i 1 2 3 4 5
pi 1 5 3 9 7
di 2 7 8 13 11
Ζητάµε το πρόγραµµα που ελαχιστοποιεί το πλήθος Ν εκπρόθεσµων εργασιών.
Αλγόριθµος
(α) Πρόγραµµα SPT
(β) Γειτονιά από αντιµεταθέσεις γειτονικών εργασιών
(γ) Εύρεση βελτίστου
(δ) Τέλος, αν δεν υπάρχει βελτίωση.
14
Επανάληψη 1
Αρχικό : 1-3-2-5-4 Ν=3
Γειτονιά : 3-1-2-5-4 Ν=4
1-2-3-5-4 Ν=3
1-3-5-2-4 Ν=2 βέλτιστο
1-3-2-4-5 Ν=3
Επανάληψη 2
Αρχικό : 1-3-5-2-4 Ν=2
Γειτονιά : 3-1-5-2-4 Ν=3
1-5-3-2-4 Ν=3
1-3-2-5-4 Ν=3
1-3-5-4-2 Ν=2
Παράδειγµα 1. Η συντοµότερη διαδροµή από την πόλη α στην πόλη ε είναι τέτοια ώστε
αν περιλαµβάνει τον δρόµο α → β, τότε περιλαµβάνει και τη συντοµότερη διαδροµή από
την β προς την ε.
β γ
α ε
δ
Π.χ. αν α → β → δ → ε είναι η συντοµότερη διαδροµή (δηλαδή µικρότερη από τις α → β
→ γ → ε, α→β→γ→δ→ε, και α → δ → ε) , τότε η µικρότερη διαδροµή από την πόλη β
15
προς τον προορισµό είναι η β→δ→ε. Αν δεν συνέβαινε αυτό και πχ. η β→γ→ε ήταν
µικρότερη, τότε θα έπρεπε και η α → β → γ → ε να είναι η µικρότερη αρχική διαδροµή
(άτοπο).
16
Oι αντικειµενικές συναρτήσεις των προβληµάτων αυτών συνδέονται µε τις σχέσεις
Κn(sn, xn, … sN, xN )= d(sn, xn)+ Κn+1 (sn+1 , xn+1, … sN, xN ) n=1, 2,…, N – 1 (2.1)
Παρατηρείστε ότι η συνάρτηση Κn είναι αύξουσα ως προς την Κn+1.
Κάθε κατάσταση sn συνδέεται µε τις προηγούµενες καταστάσεις και αποφάσεις:
s2 = g(s1, x1),
s3 = g(s2, x2) = g[g(s1, x1), x2], ….
sn+1 = g(sn, xn) = g{g… g[g(s1, x1)]…}
Έστω ότι, από κάθε πιθανή κατάσταση sn+1 της βαθµίδας (n+1), το ελάχιστο
κόστος µετάβασης στην βαθµίδα Ν έχει υπολογισθεί και ισούται µε
f n +1 (s n +1 ) = min K n +1 (s n +1 ,x n +1 ,K,s N ,x N ) . (2.2)
xn +1 ,...x N
"Η βέλτιστη διαδροµή µήκους fn περιέχει βέλτιστη υποδιαδροµή µήκους fn+1 , η fn+1
περιέχει βλετιστη υποδιαδροµή µήκους fn+2 , κ.ο.κ."
17
Βήµα Ν Προσδιορίζουµε τις δυνατές (ή πιθανές) καταστάσεις του προβλήµατος στην
βαθµίδα Ν. Για κάθε µία sN από αυτές, ανεξάρτητα από το αν είναι βέλτιστη η όχι,
εφαρµόζουµε την (2.3)
f N ( s N ) = min[d ( s N ,x N ) + f N +1 ]
xN
όπου όµως εδώ ίσως η fN+1 αλλα ακόµη και η d να είναι 0 γιατί στην τελική κατάσταση Ν
δεν υπάρχει άλλη απόφαση ούτε µετάβαση. Αντιστοιχίζουµε σε κάθε πιθανή κατάσταση
sN την βέλτιστη απόφαση xN και το ελάχιστο κόστος fN(sN).
Βήµα n = Ν – 1, Ν – 2, …, 2 Εδώ γνωρίζουµε τα fn+1 καθώς και τις βέλτιστες αποφάσεις
xn+1 που πρέπει να ληφθούν σε κάθε πιθανή κατάσταση sn+1 της επόµενης βαθµίδας.
Προσδιορίζουµε τις δυνατές καταστάσεις sn στην n και εφαρµόζουµε την (2.3)
f n ( sn ) = min{d ( sn ,xn )+ f n +1 [ g ( sn ,xn )]} ,
xn
για κάθε sn. Αντιστοιχίζουµε σε κάθε sn την βέλτιστη απόφαση xn και το ελάχιστο κόστος
fn(sn).
Bήµα 1 Εδώ γνωρίζουµε τα ελάχιστα κόστη f2(s2) της βαθµίδας 2 για κάθε πιθανή
κατάσταση s2. Επίσης η αρχική κατάσταση s1 είναι γνωστή εξ υποθέσεως. Άρα
f 1(s1)= ελάχιστο κόστος = min{d (s1 ,x1 )+ f 2 [g (s1 ,x1 )]}
x1
18
problem), όπου αντί για εργασίες εξετάζονται πόλεις και αντί για χρόνους προετοιµασίας
έχουµε κόστος/χρόνους µετακίνησης (σηµειώστε ότι d(i,j)≠ d(j,i) γιατί η πρώτη διαδροµή
µπορεί να είναι κατηφορική και ευκολοδιάβατη ενώ η δεύτερη ανηφορική) .
Λόγω περιοδικότητας µπορούµε αυθαίρετα να θεωρήσουµε ότι η εργασία 1
εκτελείται πρώτη. Το πρόβληµα είναι να βρούµε τη συντοµότερη διαδροµή που ξεκινά
από την "πόλη" 1, διανύει τις {2, 3, 4} και καταλήγει πάλι στην 1 (για να συνεχίσει η
παραγωγή του επόµενου προϊόντος). Όταν δεν υπάρχουν προτεραιότητες και οι χρόνοι
προετοιµασίας είναι γνωστοί, το πρόβληµα λύνεται ως εξής.
Οι βαθµίδες του προβλήµατος ορίζονται ως εξής. Ο αριθµός της βαθµίδας δηλώνει
το πλήθος των εργασιών οι οποίες αποµένουν να εκτελεσθούν πριν φθάσουµε στην
τελευταία εργασία 1. Η κατάσταση sn του συστήµατος στη βαθµίδα n είναι ένα ζεύγος
που περιέχει την εργασία i που έχει εκτελεσθεί πιο πρόσφατα και ένα σύνολο Αn των
εργασιών οι οποίες αποµένουν να εκτελεσθούν (εκτός της 1). Έτσι στη βαθµίδα 0
υπολείπονται 0 εργασίες και εποµένως το σύνολο υπολειπόµενων εργασιών είναι πάντοτε
∅. Οι πιθανές καταστάσεις είναι (2, ∅), (3, ∅), (4, ∅). Τέλος, ώς απόφαση xn θεωρούµε
την εργασία του συνόλου Αn η οποία θα εκτελεσθεί αµέσως µετά. Συνολικά:
19
f1(2, {3}) = d(2, 3) + f0(3, ∅)
f1(2, {4}) = d(2, 4) + f0(4, ∅)
f1(3, {2}) = d(3, 2) + f0(2, ∅)
f1(3, {4}) = d(3, 4) + f0(4, ∅)
f1(4, {2}) = d(4, 2) + f0(2, ∅)
f1(4, {3}) = d(4, 3) + f0(3, ∅)
Bαθµίδα 2
f2(2, {3, 4}) = min [d(2, 3) + f1(3, {4}), d(2, 4) + f1(4, {3})]
f2(3, {2, 4}) = min [d(3, 2) + f1(2, {4}), d(3, 4) + f1(4, {2})]
f2(4, {2, 3}) = min [d(4, 2) + f1(2, {3}), d(4, 3) + f1(3, {2})]
Βαθµίδα 3
f3 (1 → {2, 3, 4} → 1) = min[d1(1, 2) + f2(2, {3, 4}),
d1(1, 3) + f2(3, {2, 4}),
d1(1, 4) + f2(4, {2, 3})]
Η βέλτιστη ακολουθία βρίσκεται παρατηρώντας τις βέλτιστες υπακολουθίες στα βήµατα.
20
C1(1)=p1=1 f1(1)=I[C1(1)>d1]=0
C1(2)=p2=5 f1(2)=I[C1(2)>d2]=0
C1(3)=p3=3 f1(3)=I[C1(3)>d3]=0
Βαθµίδα 2
Βαθµίδα 3
Βαθµίδα 4
Βαθµίδα 5
C 5 (1,2,3,4 ,5 ) = C 4 (1,2,3,4 ) + p 5 = 25
f 5 (1,2 ,3,4 ,5) = min[ f 4 (2 ,3,4 ,5) + I (25 > d 1 ), f 4 (1,3,4,5) + I (25 > d 2 ),....]
Η βέλτιστη ακολουθία βρίσκεται παρατηρώντας τις βαθµίδες από το τέλος προς την αρχή
21
και λαµβάνοντας µία από τις βέλτιστες ακολουθίες (*) σε κάθε βαθµίδα.
P1 Pj Pn
P2 1 Pn 1 P1 j Pk j Pn j P1 n Pn–1 n
...................................
Pσ
...................................
Θα περιγράψουµε τη µέθοδο µε ένα παράδειγµα προγραµµατισµού n εργασιών ώστε
να ελαχιστοποιείται η σταθµισµένη καθυστέρηση Z = ∑ in=1 wi Ti . Μία σχηµατική
παράσταση της διαδικασίας ∆Φ φαίνεται στο σχήµα. Έστω P∅ το αρχικό πρόβληµα στο
οποίο το σύνολο εργασιών που έχουν τοποθετηθεί είναι κενό, ∅. Το πρόβληµα
αποσυντίθεται σε n προβλήµατα P1, P2, ..., Pn. Στο Pj η εργασία j έχει τοποθετηθεί στο
τέλος (διακλάδωση) και ζητάµε τη βέλτιστη σειρά των άλλων εργασιών.
Σε κάθε ένα από αυτά τα προβλήµατα µπορούµε να υπολογίσουµε την σταθµισµένη
καθυστέρηση των εργασιών που είναι τελευταίες. Π.χ. για το Pj,
22
Ziσ που προκύπτει προσθέτοντας στο προηγούµενο Zσ έναν νέο όρο wiTi .
Yπάρχουν δύο κριτήρια επιλογής του Pσ το οποίο θα διακλαδιστεί. Με το πρώτο
επιλέγουµε το πρόβληµα Pσ το οποίο έχει καλύτερο Ζσ, και ονοµάζεται έρευνα βελτίστου
(best first search ή jumptracking). Το δεύτερο ονοµάζεται έρευνα εις βάθος (depth first
search ή backtracking), και ψάχνει το καλύτερο Ζ στα προβλήµατα Pσ που έχουν ήδη τις
περισσότερες αποφάσεις (µεγαλύτερο βάθος).
Στη συνέχεια το σ συµβολίζει µία σειρά από εργασίες που εκτελούνται τελευταίες.
Κατά την εκτέλεση του αλγορίθµου θα πληθαίνουν οι εργασίες που µπορεί κάποιο
πρόβληµα Pσ να έχει εξαντληθεί, δηλαδή η ακολουθία σ να έχει όλες τις εργασίες. Τότε η
Ζσ ονοµάζεται δόκιµη λύση (trial solution). Αν κάποιο άλλο ηµιτελές πρόβληµα Ps έχει
Ζs>Zσ, τότε δεν υπάρχει λόγος να το διακλαδίσουµε περαιτέρω γιατί θα δώσει ακόµη
µεγαλύτερο κόστος και το διαγράφουµε (fathom). Αυτό είναι το υπολογιστικό κέρδος
της µεθόδου ∆Φ.
23
την οποία περιγράφουµε στη συνέχεια µε ένα παράδειγµα.
i→j 1 2 3 4 5
1 - 4 8 6 8
2 5 - 7 11 13
3 11 6 - 8 4
4 5 7 2 - 2
5 10 9 7 5 -
Γνωρίζουµε ότι έτσι κι αλλιώς η βέλτιστη διαδροµή θα περνά από κάθε πόλη i, προς
κάποια κατεύθυνση. Εποµένως, η βέλτιστη διαδροµή δεν αλλάζει αν µειώσουµε τις
αποστάσεις της πόλης i από τις υπόλοιπες κατά τόσο ώστε κάποια απόσταση dij να γίνει
0. Το κάνουµε αυτό για όλες τις γραµµές i του πίνακα.
Γνωρίζουµε επίσης ότι έτσι κι αλλιώς η βέλτιστη διαδροµή θα περνά από κάθε πόλη
j, εισερχόµενη από κάποια άλλη πόλη. Εποµένως, η βέλτιστη διαδροµή δεν αλλάζει αν
από τα στοιχεία της στήλης j αφαιρέσουµε µήκος ίσο προς την ελάχιστη απόσταση, και
έτσι προκύψει µία απόσταση i→j ίση µε 0.
Ο νέος ελαττωµένος πίνακας [di j] είναι
- 0 4 2 4 ( – 4) µείωση γραµµής
0 - 2 6 8 ( – 5) " "
7 2 - 4 0 ( – 4) " "
3 5 0 - 0 ( – 2) " "
5 4 2 0 - ( – 5) " "
Μετά την µείωση γραµµών, εκτελούµε ανάλογη διαδικασία µειώσεων στις στήλες.
Για το παράδειγµα που εξετάζουµε δεν χρειάζεται να µειωθούν τα στοιχεία κάποιας
στήλης γιατί µετά τις µειώσεις γραµµών, οι στήλες που προκύπτουν έχουν από ένα 0
τουλάχιστον. Το άθροισµα των µειώσεων είναι 20 και αυτό αποτελεί ένα κάτω φράγµα
της βέλτιστης διαδροµής. Θεωρούµε το πρόβληµα P∅ που αντιστοιχεί στον ελαττωµένο
πίνακα, και προχωράµε στη διακλάδωση. Απο το πρόβληµα αυτό, δύο πιθανές
διακλαδώσεις προκύπτουν αν θεωρήσουµε µία στοιχειώδη διαδροµή i→j εντός ή εκτός
της συνολικής διαδροµής. Συµβολίζουµε τα προβλήµατα αυτά Pi j και P i j αντίστοιχα.
Επειδή υπάρχουν πολλές υποψήφιες διαδροµές i→j, διαλέγουµε εκείνη η οποία αν
θεωρηθεί απαγορευµένη (εκτός), τότε η λύση του προβλήµατος P i j έχει, πιθανότατα,
µεγάλο µήκος.
Ένας τρόπος να γίνει αυτό είναι να διαλέξουµε ένα µηδενικό στοιχείο dij του
ελαττωµένου πίνακα για το οποίο το άθροισµα του ελάχιστου στοιχείου της γραµµής
στην οποία ανήκει και του ελάχιστου στοιχείου της στήλης στην οποία ανήκει,
24
εξαιρουµένου του dij, να είναι το µεγαλύτερο δυνατόν. Στον πίνακα φαίνονται τα
αθροίσµατα αυτά ως εκθέτες.
- 04 4 2 4
05 * - 2 6 8
7 2 - 4 02
3 5 02 - 00
5 4 2 04 -
Επιλέγουµε το στοιχείο d21 : 05(*). Προκύπτουν τα υποπροβλήµατα P21 και P21.
Πρέπει να δούµε ποιό από τα δύο συµφέρει να διακλαδωθεί.
Στο πρόβληµα P21 η διαδροµή 2→1 είναι υποχρεωτική. Εποµένως απογορεύονται οι
διαδροµές (α) 2 → j για j ≠ 1, (β) i → 1 για i ≠ 2, και (γ) η διαδροµή 1 → 2. Οι
απαγορεύσεις αυτές εκφράζονται θέτοντας ∞ αποστάσεις. Κατόπιν ελαττώνουµε τον
πίνακα όπως πριν και διαλέγουµε νέα στοιχειώδη διαδροµή k → l µε τη διαδικασία των
εκθετών που περιγράψαµε.
Πρόβληµα P21 Eλαττωµένος πίνακας P21
- ∞ 4 2 4 - ∞ 2 02 2 ← ( – 2)
0 - ∞ ∞ ∞ 0 - ∞ ∞ ∞
∞ 2 - 4 0 ∞ 02 - 4 00
∞ 5 0 - 0 ∞ 3 02 - 00
∞ 4 2 0 - ∞ 2 2 02 -
↑( – 2)
Το άθροισµα των µειώσεων είναι 4 και το κάτω φράγµα για το P21 γίνεται 24.
Περνάµε τώρα στο πρόβληµα P21. Εδώ απαγορεύεται η διαδροµή 2 → 1.
- 0 4 2 4 - 04 4 2 4
∞ - 2 6 8 ∞ - 04 4 6 ←( – 2)
7 2 - 4 0 4 2 - 4 02
3 5 0 - 0 02 5 00 - 00
5 4 2 0 - 2 4 2 04 -
↑( – 3)
Το άθροισµα των µειώσεων είναι 5 και το κάτω φράγµα για το P21 γίνεται 25.
25
αυθαίρετα επιλέγεται το (5,4). Το πρόβληµα P21 διαγράφεται και στη λίστα ηµιτελών
προβληµάτων εισάγονται τα P21,54 και P21,54 . Από τα προβλήµατα P21, P21,54 και P21,54
επιλέγεται το κατάλληλο για διακλάδωση και η διαδικασία συνεχίζεται µέχρις ότου
κάποιος πίνακας έχει τόσα στοιχεία ίσα µε ∞, ώστε η λύση να προκύπτει µονοσήµαντα
(δηλ να υπάρχει µία µόνον σειρά εκτέλεσης εργασιών). Αν αυτή η λύση είναι µικρότερη
από κάποια φράγµατα των ηµιτελών προβληµάτων της λίστας τότε τα προβλήµατα
εκείνα αφαιρούνται γιατί πιθανή διακλάδωσή των θα έδινε χειρότερες λύσεις. Επίσης, αν
η λύση αυτή είναι µικρότερη από κάποια άλλη εφικτή λύση που υπάρχει στη λίστα, τότε
αφαιρείται και εκείνη. Αν η λύση αυτή έχει εκτοπίσει όλες τις άλλες λύσεις και όλα τα
κάτω φράγµατα, τότε είναι και η βέλτιστη. ∆ιαφορετικά επιλέγεται ένα ηµιτελές
υποπρόβληµα διαγράφεται από τη λίστα, και από αυτό προκύπτουν 2 ακόµη τα οποία
µελετώνται όπως τα P21 και P21.
P∅
20
P21
P21−
24
25
P21,54 P21,−54 −−
P21− ,23
P21,23
26 25
26 29
− − −
P21,23 ,12 ,54 P21,23 ,12 ,54
29 25
26
i/j 1 2 3 4
1 - 4 F 6
2 5 - 7 11
3 L 6 - 8
4 5 7 2 -
Λύστε το µε τη µέθοδο ∆Φ. Ως F, L θα χρησιµοποιήσετε τους αριθµούς που προκύπτουν
αθροίζοντας τα δύο πρώτα γράµµατα: F =του ονόµατος, L =του επωνύµου σας (για την
περίπτωσή µου είναι F=ΒΑ=2+1=3, L=ΚΟ=10+15=25).
2. Λύστε το ίδιο πρόβληµα µε δυναµικό προγραµµατισµό.
Θεωρούµε τώρα ότι στην αρχή δεν έχουµε όλες τις παραγγελιες για τις εργασίες.
Αντίθετα, καθώς ο χρόνος περνά φθάνουν νέες παραγγελίες. Έστωσαν r1, r2, ..., ri, ... οι
χρόνοι άφιξης των παραγγελιών για την εκτέλεση των εργασιών 1, 2, ..., i, ... .
Υπόθεση. Η εκτέλεση µίας εργασίας µπορεί να διακοπεί προκειµένου να αρχίσει µία
άλλη εργασία. Τότε, η πρώτη εργασία θα εκτελεσθεί αργότερα, και θα συνεχισθεί από το
στάδιο που διεκόπη. Σε κάθε χρονική στιγµή η ποσότητα pi΄ ισούται µε τον υπολειπόµενο
χρόνο περάτωσης της εργασίας i.
Για την δυναµική περίπτωση ισχύει η αντίστοιχη της Πρότασης 2.2:
Πρόταση 2.2΄. Αν, κάθε φορά που µία εργασία περατώνεται ή µία νέα παραγγελία
φθάνει, επιλέγεται εργασία σύµφωνα µε τον κανόνα SPT των υπολειπόµενων
χρόνων περάτωσης, τότε ελαχιστοποιείται ο µέσος χρόνος ροής.
Απόδειξη : Άσκηση.
Πρόταση 2.3΄. Για το δυναµικό πρόβληµα µε προθεσµίες παράδοσης d1, d2, ..., dn
η πολιτική ενωρίτερων προθεσµιών (EDD), d[1]≤ d[2]≤ ...≤ d[n] ελαχιστοποιεί τη
µέγιστη βραδύτητα.
Απόδειξη : Άσκηση.
27
εργασίας i. Από τη θεωρία πιθανοτήτων1 αποδεικνύεται (άσκηση) ότι για στοχαστικά
προβλήµατα ισχύει η Πρόταση 2.2(α) ενώ η Πρόταση 2.3 ισχύει για τη µέγιστη
βραδύτητα µόνον.
1
Σύνοψη θεωρίας πιθανοτήτων. Ένα πείραµα τύχης ορίζεται από το σύνολο Ω των δυνατών
εξαγοµένων του ω και µία συνάρτηση P η οποία σε κάθε υποσύνολο του Ω αντιστοιχίζει µία
πιθανότητα. Τα υποσύνολα του Ω ονοµάζονται ενδεχόµενα ή γεγονότα. Για παράδειγµα, η ρίψη
ενός ιδανικού ζαριού έχει Ω = {1, 2, 3, 4, 5, 6} και Ρ(i) = 1/6 για κάθε εξαγόµενο. Το σύνολο
Α = {ω: ω = άρτιος αριθµός} = {2, 4, 6} είναι ένα ενδεχόµενο. Η ένωση αυθαίρετου αριθµού
ενδεχοµένων αποτελεί επίσης ενδεχόµενο. Η ένωση εκφράζει το ενδεχόµενο Α1∪Α2∪… = "το
αποτέλεσµα ανήκει είτε στο σύνολο Α1, είτε στο Α2, είτε …". Το συµπληρωµατικό ενός
ενδεχοµένου Α είναι επίσης ένα ενδεχόµενο που απαρτίζεται από τα στοιχεία του Ω τα οποία δεν
ανήκουν στο Α. Ο Kolmogorov έδωσε τον αυστηρό ορισµό ενός πειράµατος τύχης µε τα
Αξιώµατα θεωρίας πιθανοτήτων: (1) Για κάθε ενδεχόµενο Α, έχουµε Ρ(Α) ≥ 0. (2) Ρ(Ω) = 1.
(3) Η ένωση ενδεχοµένων που δέν έχουν κοινά στοιχεία, ικανοποιεί την Ρ(Α1∪Α2∪…) =
Ρ(Α1) + Ρ(Α2) + … Παράδειγµα: Για τη ρίψη ζαριού, το ενδεχόµενο "άρτιο αποτέλεσµα"
γράφεται {2, 4, 6} = {2}∪{4}∪{6} και έχει πιθανότητα 1/6 + 1/6 + 1/6 = 0.5.
Mία τυχαία µεταβλητή (τ.µ.) X µε πραγµατικές τιµές είναι µία συνάρτηση Χ( ω) ενός πειράµατος
τύχης τέτοια ώστε P[Χ(ω) = −∞] = P[Χ(ω) = ∞] = 0 και η Χ να είναι µετρήσιµη (measurable)
συνάρτηση ήτοι το σύνολο {ω: Χ(ω) ≤ x} να αποτελεί ενδεχόµενο για κάθε πραγµατικό αριθµό x.
Για µία τ.µ. Χ ορίζουµε την συνάρτηση κατανοµής FX(x) = P(X ≤ x), για κάθε x∈(−∞, ∞). Αν η
τ.µ. λαµβάνει διακεκριµένες τιµές x1, x2, … µε πιθανότητες pi = P(X = xi), τότε η µέση ή
αναµενόµενη τιµή της ορίζεται Ε(Χ ) = x1 p1 + … Αν η τ.µ. είναι συνεχής στο διάστηµα (−∞, ∞)
και επί πλέον η FX είναι παραγωγίσιµη σε κάθε σηµείο x, τότε ορίζουµε και την συνάρτηση
πυκνότητας πιθανότητας fX(x) = dFX(x)/dx. Τότε η µέση τιµή της Χ υπολογίζεται από τον τύπο
∞
Ε(Χ ) = ∫−∞ xf X ( x) dx . Μία συνάρτηση g(X) της τ.µ. Χ µπορεί να θεωρηθεί τυχαία µεταβλητή, µε
∞
Ε[g(Χ )] = g(x1) p1 + … ή ∫−∞ g ( x) f X ( x ) dx . Ο τελεστής Ε είναι γραµµικός, ήτοι για κάθε
σταθερές α, β, και γ και τ.µ. Χ και Υ έχουµε Ε(αX + βΥ + γ) = αΕ(X ) + βΕ(Υ ) + γ.
Iσχυρός Νόµος Μεγάλων Αριθµών (Kolmogorov): Έστωσαν Χ1, ..., Xn, ..., ανεξάρτητες ισόνοµες
τ.µ. (δηλ. µε ίδιες συναρτήσεις κατανοµής), µε αναµενόµενη τιµή µ < ∞. Οι δειγµατικές µέσες
τιµές (Χ1 + ... + Xn)/n, n=1, 2, είναι επίσης τ.µ. οι οποίες για n→∞ συγκλίνουν στο µ µε
πιθανότητα 1.
28
3 ΠΕΡΙΣΣΟΤΕΡΕΣ ΜΗΧΑΝΕΣ
3.1 ΠΡΟΒΛΗΜΑΤΑ
Πρόταση 3.1. Για ∆Σ ο ελάχιστος δυνατός χρόνος Fmax δίδεται από τη σχέση
1 n
min Fmax = max ∑i =1 pi , pmax (3.1)
m
H απόδειξη βασίζεται στα εξής:
α) Η εργασία µε τη µεγαλύτερη διάρκεια pmax πρέπει να εκτελεσθεί από µία µηχανή η
περισσότερες µηχανές. Ακόµη και αν µόνο µία µηχανή εκτελέσει την εργασία αυτή και
καµία άλλη, ο Fmax δεν µπορεί να είναι µικρότερος από pmax. Αν η εργασία διακοπεί και
επανεκκινήσει αργότερα, τότε πάλι ισχύει το ίδιο.
β) Με ∆Σ, ο πρώτος όρος της αγκύλης µας δηλώνει ότι µπορούµε να ισοµοιράσουµε το
29
χρόνο σε όλες τις µηχανές, αφού επιτρέπεται διακοπή και συνέχιση. Πράγµατι, το
πρόβληµα ισοδυναµεί µε το πρόβληµα προγραµµατισµού µίας µηχανής και n εργασιών µε
χρόνους pi/m. Αλλά τότε το Fmax είναι καθορισµένο.
Ο αλγόριθµος ελαχιστοποίησης του Fmax προκύπτει από την πρόταση αυτή (Άσκηση).
Όταν δεν επιτρέπονται διακοπές, τότε ο χρόνος περάτωσης είναι µεγαλύτερος από
εκείνον που προκύπτει µε ∆Σ. Πράγµατι, τα δύο προβλήµατα έχουν την ίδια
αντικειµενική συνάρτηση min Fmax αλλά το ∆Σ έχει λιγότερο αυστηρούς περιορισµούς
και, εποµένως, µικρότερη τιµή Fmax. Ένα ευρετικό πρόγραµµα προκύπτει διατάσσοντας
τις εργασίες σύµφωνα µε την µεγαλύτερη διάρκεια (Longest Processing Time - LPT)
και εκτελώντας τις µε τη σειρά του σχήµατος. Άλλος τρόπος είναι να αναθέτουµε την
επόµενη εργασία στη µηχανή µε το µικρότερο ως τώρα άθροισµα χρόνων.
30
O µέσος χρόνος περάτωσης (ισούται µε τον µέσο χρόνο ροής-παραµονής στο
σύστηµα γιατί δεν γίνονται αφίξεις), ισούται µε
1 m nk 1 m nk
F= ∑ ∑
n k =1 j =1
F jk = ∑ ∑ (n k − j + 1) p jk
n k =1 j =1
(3.2)
όπου η δεύτερη ισότητα προκύπτει από τις σχέσεις Fj k = F(j – 1) k + pj k , για τον χρόνο
περάτωσης της j-οστής εργασίας, µε F0 k =0=αρχή µέτρησης του χρόνου. Οι όροι µέσα
στο άθροισµα είναι γινόµενα δύο ακολουθιών. Η πρώτη ακολουθία είναι η nk, nk – 1, ...,
1, ενώ η δεύτερη είναι η p1 k, p2 k, . . ., pnk k. Για να έχουµε ελάχιστο πρέπει η µία
ακολουθία να είναι φθίνουσα ενώ η άλλη αύξουσα. Άρα p1 k ≤ p2 k ≤ . . .≤ pnk k ⇒ SPT
(shortest processing times). Αν λάβουµε υπ όψιν ότι υπάρχουν παράλληλες µηχανές (και
άρα πολλά τέτοια ζευγάρια ακολουθιών) τότε η διαδικασία εκτέλεσης των εργασιών
προκύπτει διατάσσοντας όλες τις εργασίες κατα φθίνουσες διάρκειες εκτέλεσης
(longest processing times first - LPT) και την διάταξη του σχήµατος του προηγούµενου
εδαφίου. Mετά την αντιστοίχιση εργασιών σε µηχανές, αντιστρέφουµε την σειρά
εκτέλεσης σε κάθε µηχανή (Άσκηση).
1. Αποδείξατε την Πρόταση 3.1, επινοήστε έναν αλγόριθµο ελαχιστοποίησης του Fmax µε
πρωτόκολλο ∆Σ. Αποδείξατε ότι ο αλγόριθµος πράγµατι ελαχιστοποιεί το Fmax.
2. Θεωρήστε ένα πρόγραµµα εκτέλεσης εργασιών µε πρωτόκολλο ∆Ε και µερικές
εργασίες που διακόπτονται. Αποδείξατε ότι για min Fmax είναι προτιµότερο να µην γίνεται
διακοπή.
3. Για το πρόβληµα min Fmax χωρίς διακοπές µε διαφορετικές µηχανές διατυπώστε το
πρόγραµµα γραµµικού 0-1 ακεραίου προγραµµατισµού. Στις µεταβλητές αποφάσεως
συµπεριλαµβάνονται οι xi k =1 αν η εργασία i εκτελείται από την µηχανή k ή 0 αν δεν
εκτελείται σε αυτήν. ∆ίνονται τα pi k.
4. Εύρετε και εξηγήστε τον αλγόριθµο ελαχιστοποίησης του F σε παράλληλες και ίδιες
µηχανές.
3.3.1 Εισαγωγή
Στο απλό κατάστηµα ροής (flow shop) κάθε προϊόν περνά από κάθε µηχανή µία και
µόνον µία φορά και η σειρά κατεργασιών είναι ίδια για όλα τα προϊόντα. Αν υπάρχει
προϊόν που δεν χρειάζεται κατεργασία από µία µηχανή τότε θεωρούµε µία φανταστική
εργασία διάρκειας 0.
31
Συστήµατα όπου κάποιο κοµµάτι επισκέπτεται πολλές φορές την ίδια µηχανή και όχι
κατ' ανάγκην διαδοχικά (πχ. συστήµατα κατασκευής ηλεκτρονικών συσκευών,
βιοµηχανία ηµιαγωγών) ονοµάζονται καταστήµατα ροής µε επανεισόδους (reentrant
flow shops) και η µελέτη τους είναι δύσκολη.
Τέλος, σειριακά συστήµατα µε σταθµούς παράλληλων µηχανών (αντί για απλές
µηχανές) ονοµάζονται σύνθετα καταστήµατα ροής (compound flow shops).
Αν οι µηχανές είναι συνδεδεµένες χωρίς ενδιάµεσες αποθήκες, τότε κάθε χρονική
στιγµή όλες οι µηχανές της γραµµής θα πρέπει να συγχρονίζουν την παραγωγή τους
σύµφωνα µε την εργασία η οποία καθυστερεί περισσότερο εκείνη τη στιγµή. Επειδή αυτό
επιφέρει µεγάλες καθυστερήσεις, τοποθετούνται ενδιάµεσες αποθήκες µεταξύ των
µηχανών. Όταν οι αποθήκες είναι µεγάλες, σε σχέση µε το πλήθος n των εργασιών που
εκτελούνται, θεωρούµε ότι οι χωρητικότητές τους είναι άπειρες.
Εξετάζουµε στη συνέχεια την περίπτωση καταστήµατος µε m µηχανές και (m – 1)
αποθήκες άπειρης χωρητικότητας. Θεωρήστε την πρώτη µηχανή ενός καταστήµατος
ροής και τα n προϊόντα, και υποθέστε ότι η βέλτιστη σειρά εκτέλεσης από τη µηχανή
είναι 1, 2, . . ., n. Μπορεί να δειχθεί ότι, εν γένει, η ακολουθία αυτή δεν είναι η βέλτιστη
και για τις άλλες µηχανές. Εποµένως για την δεύτερη, τρίτη, κλπ, µηχανές πρέπει να
δοκιµάζουµε πάλι όλες τις δυνατές µεταθέσεις (=συνδυασµούς). Το πλήθος των
µεταθέσεων n αντικειµένων είναι n!. Το πλήθος των εναλλακτικών λύσεων είναι (n!)m .
Στη συνέχεια διατυπώνουµε δύο ιδιότητες των οµαλών προβληµάτων προγραµµατισµού
καταστηµάτων ροής (θυµηθείτε: το πρόβληµα min Z είναι οµαλό άν η Z είναι αύξουσα
συνάρτηση των χρόνων περάτωσης των εργασιών).
Ιδιότητα 1. Η βέλτιστη ακολουθία εκτέλεσης εργασιών στην πρώτη µηχανή είναι
η ίδια µε την βέλτιστη ακολουθία για την δεύτερη µηχανή.
Ιδιότητα 2. Η βέλτιστη ακολουθία για την τελευταία µηχανή m είναι η ίδια µε την
βέλτιστη ακολουθία για την προτελευταία µηχανή (m – 1).
32
3. Εκτελείται πρώτα το Α και µετά το Β.
Η απόδειξη είναι αρκετά περίπλοκη και παραλείπεται.
Για τρείς µηχανές ισχύει ο ίδιος αλγόριθµος όταν ο µέγιστος χρόνος εργασίας στη
µηχανή 2 είναι µικρότερος από τον ελάχιστο χρόνο εργασίας είτε στην µηχανή 1 ή στην
µηχανή 3. Στην περίπτωση αυτή σχηµατίζουµε δύο ψευδοµηχανές 1΄=1+2 και 2΄=2+3 µε
χρόνους pi1΄ = pi1+pi2 και pi2΄ = pi2+pi3. Η εκτέλεση του αλγορίθµου δίδει τη βέλτιστη
ακολουθία εκτέλεσης εργασιών. Για τον υπολογισµό του Fmax κατασκευάζουµε το
διάγραµµα Gantt. Το διάγραµµα Gantt περιέχει έναν άξονα χρόνου για κάθε µηχανή. Σε
κάθε άξονα σηµειώνεται η αρχή και το τέλος κάθε εργασίας σύµφωνα µε τη βέλτιστη
ακολουθία που έχει προσδιορισθεί. Ο χρόνος ροής Fmax ισούται µε το χρόνο περάτωσης
της τελευταίας εργασίας από την µηχανή 3.
∆υστυχώς δεν υπάρχει αναλυτικό αποτέλεσµα για >3 µηχανές. Στις περιπτώσεις
αυτές κανείς δοκιµάζει διάφορα προγράµµατα και συγκρίνει τους χρόνους Fmax που
προκύπτουν από διαγράµµατα Gantt. Στη συνέχεια παρουσιάζονται διάφορες ευρετικές
τεχνικές επίλυσης προβληµάτων, µε την προϋπόθεση κοινής ακολουθίας για όλες τις
µηχανές (permutation schedule).
ΜΕΘΟ∆ΟΣ CAMPELL-DUDEK-SMITH
Bήµα 1. Αλγόριθµος Johnson για το πρόβληµα δύο µηχανών 1 και m (οι υπόλοιπες
παραλείπονται).
Bήµα 2. Αλγόριθµος Johnson για το πρόβληµα δύο ψευδοµηχανών: της 1+2 και της
(m – 1)+m.
Bήµα k. Αλγόριθµος Johnson για το πρόβληµα δύο ψευδοµηχανών 1+...+k και (m –
k+1)+...+m.
Bήµα m – 1 . Το τελευταίο βήµα, µε ψευδοµηχανές 1+...+(m – 1) και 2+...+m.
Συγκρίνονται τα προγράµµατα κάθε βήµατος και προτείνεται το βέλτιστο από αυτά.
ΜΕΘΟ∆ΟΣ PALMER
Για κάθε προϊόν i υπολογίζονται οι συντελεστές προτεραιότητας πi= – (m – 1)pi1 –
(m – 3)pi2 – (m – 5)pi3 . . . +(m – 3)pi(m – 1)+(m – 1)pim. ∆ίδεται προτεραιότητα στα
προϊόντα µε τα µεγαλύτερα πi.
ΜΕΘΟ∆ΟΣ GUPTA
Θέτουµε ei=1, αν pi1<pim, αλλιώς ei=0 και συντελεστές προτεραιότητας
ei
πi = .
min { pik + pi( k +1) }
k =1,...( m−1)
33
Στη συνέχεια παρουσιάζεται ένας αλγόριθµος διακλάδωσης και φράγµατος (∆Φ) για
το πρόβληµα m µηχανών.
Εδώ θα εξετάσουµε µία ακριβή λύση του γενικότερου προβλήµατος αλλά πάλι θα
περιοριστούµε σε ακολουθίες που είναι ίδιες για όλες τις µηχανές. Έστω Ν το σύνολο
των προϊόντων Ν={1, 2,…, n}. Έστω ότι µελετάµε ένα ενδιάµεσο πρόβληµα του
αλγορίθµου ∆Φ, στο οποίο κάποια προϊόντα παράγονται πρώτα και µε καθορισµένη
σειρά η οποία περιγράφεται από το διατεταγµένο σύνολο σ. Αν σ=(σ1, σ2, …) τότε το
προϊόν σ1 θα παραχθεί πρώτο το σ2 δεύτερο, κοκ. Το σύνολο Ν – σ περιέχει τα υπόλοιπα
προϊόντα τα οποία θα παραχθούν µετά από το σ αλλά η σειρά τους δεν είναι γνωστή.
Συµβολίζουµε Ρσ το πρόβληµα αυτό. H λύση του Ρσ συµβολίζεται min Fmax(Pσ) και
είναι ο ελάχιστος χρόνος περάτωσης της τελευταίας εργασίας από εκείνες που
ανήκουν στο µή διατεταγµένο σύνολο Ν – σ. Συµβολίζουµε Fσ ένα κάτω φράγµα της
λύσης του Ρσ δηλ. Fσ ≤ min Fmax(Pσ). Το φράγµα αυτό προκύπτει από (α) τους
πραγµατικούς χρόνους περάτωσης των προϊόντων που έχουν ήδη διαταχθεί και (β) από
αισιόδοξες εκτιµήσεις (κάτω φράγµατα) των χρόνων παραγωγής των προϊόντων που δεν
έχουν ακόµη διαταχθεί. ∆οκιµάζουµε κάθε προϊόν i του συνόλου Ν – σ ως υποψήφιο
προϊόν που θα παραχθεί αµέσως µετά από το πρόγραµµα σ και προκύπτουν αντίστοιχα
υποπροβλήµατα Pσ,i (διακλάδωση). ∆ιαγράφουµε το πρόβληµα Ρσ και στη θέση του
τοποθετούµε τα υποπροβλήµατα που προκύπτουν από τη διακλάδωση. Για κάθε
υποπρόβληµα διακλάδωσης, υπολογίζουµε ένα κάτω φράγµα Fσ,i για το Fmax. Απο τα
υποπροβλήµατα διακλάδωσης αλλα και από εκείνα που υπήρχαν µαζί µε το Ρσ
επιλέγουµε εκείνο που έχει το µικρότερο κάτω φράγµα (έρευνα βελτίστου - best first
search ή jumptracking) και εκτελούµε διακλάδωση. Η διαδικασία περατώνεται όταν το
πρόβληµα µε το µικρότερο κάτω φράγµα είναι πλήρες, δηλ. σ=Ν. Το "φράγµα" του
προβλήµατος αυτού θα προκύψει µόνον από τους πραγµατικούς χρόνους παραγωγής και,
συγχρόνως, θα έχει τον µικρότερο Fmax από όλα τα (ηµιτελή) προβλήµατα της λίστας,
οπότε θα ισούται µε το min Fmax .
Ο υπολογισµός του κάτω φράγµατος Fσ του χρόνου παραγωγής όλων των προϊόντων
για το πρόβληµα Ρσ περιγράφεται στη συνέχεια.
Θεωρούµε ένα κατάστηµα µε m µηχανές. Για το πρόβληµα Ρσ, τα πρώτα προϊόντα
που θα παραχθούν δίδονται από το διατεταγµένο σύνολο σ. Έστωσαν Cσk οι χρόνοι
περάτωσης του τελευταίου προϊόντος του σ από τις µηχανές k=1, 2, 3, . . .m. Επειδή το σ
είναι καθορισµένο, οι χρόνοι αυτοί µπορούν να υπολογισθούν. Το Fmax ισούται µε τον
χρόνο περάτωσης του τελευταίου προϊόντος από την µηχανή m. Ωστόσο το σύνολο Ν –
σ δεν είναι διατεταγµένο ακόµη και συνεπώς το τελευταίο προϊόν δεν είναι γνωστό. Η
πλέον ευνοϊκή περίπτωση θα ήταν η ακόλουθη:
Ι) Για κάθε µηχανή k = 1, 2, . . ., m συνέβαιναν τα ακόλουθα:
34
α) Τη στιγµή Cσk , η µηχανή k έχει περατώσει την κατεργασία των σ και δεν
χρειάζεται να περιµένει για να ξεκινήσει το πρώτο προϊόν του συνόλου Ν – σ. Αυτό
δεν συµβαίνει πάντα γιατί η µηχανή (k – 1) µπορεί να καθυστερήσει την παραγωγή
του προϊόντος αυτού πέραν της στιγµής Cσk. Επίσης το ίδιο επιθυµούµε να συµβεί και
για όλα τα υπόλοιπα προϊόντα του Ν – σ και για το τελευταίο προϊόν (που δεν είναι
γνωστό). Αν αυτό συµβεί, τότε ο χρόνος παραγωγής όλων των προϊόντων από την k
είναι Cσk + ∑ pik .
i ∈ N −σ
β) Μετά την παραγωγή και του τελευταίου προϊόντος του Ν – σ από την k, θα
ήµασταν τυχεροί αν αυτό το προϊόν εύρισκε ελεύθερες όλες τις επόµενες µηχανές
j = k+1, …, m. Από αυτό ευρίσκουµε ένα κάτω όριο Fσk του Fmax
m
Fσk = Cσk + ∑ pik + min ∑ pij (3.3α)
i∈N −σ i∈N −σ j = k +1
Ένα µεγαλύτερο (=ακριβέστερο) φράγµα προκύπτει αν στην (3.3α) το Cσk
αντικατασταθεί από το
max{Cσk, Cσ (k – 1) +mini∈Ν – σ {pi(k – 1)}} (3.3β)
II) Ως αυστηρότερο (=ακριβέστερο) κάτω φράγµα του Fmax για το πρόβληµα Ρσ
επιλέγεται το µεγαλύτερο:
Fσ = max { Fσk } ≤ Fmax (3.4)
k =1,...,m
1. Αποδείξατε ότι αν στην (3.3α) αντικαταστήσουµε το Cσk µε την ποσότητα (3.3β), τότε
προκύπτει πράγµατι κάτω φράγµα του Fmax για το πρόβληµα Ρσ.
2. Αποδείξατε τις εξισώσεις (3.5). ∆ώστε την εξίσωση για το Cσ΄ k.
1 n
3. Φαντασθείτε έναν αλγόριθµο ∆Φ για το πρόβληµα min F = ∑ C im (όπου
n i =1
Cim=Fim= χρόνος περάτωσης του i στην τελευταία µηχανή m). ∆είξατε µόνον κάποια
µέθοδο υπολογισµού του φράγµατος Fσ για το υποπρόβληµα Ρσ.
35
3.4 ΚΑΤΑΣΤΗΜΑΤΑ ΕΡΓΑΣΙΩΝ
Τα συστήµατα αυτά αποτελούνται από πολλές µηχανές. Στη γενική περίπτωση κάθε
µηχανή µπορεί να εκτελέσει όλων των ειδών τις κατεργασίες, αλλα µε διαφορετικό χρόνο
εκτέλεσης. Αν κάποιες είναι αδύνατες τότε ο χρόνος τίθεται ίσος µε ∞ και οι κατεργασίες
θεωρούνται και πάλι εφικτές. Το πρόβληµα εδώ είναι να προσδιορίσουµε
1) ποιές µηχανές θα επισκεφθεί το προϊόν i προκειµένου να γίνουν διάφορες εργασίες σε
αυτό και
2) µε ποιά σειρά θα εκτελέσει µία µηχανή k τις εργασίες που της ανατίθενται.
Για απλούστευση υποθέτουµε ότι η σειρά εκτέλεσης των εργασιών για κάθε προϊόν
είναι καθορισµένη και ότι ένα προϊόν περνά το πολύ µία φορά από µία µηχανή. Θα
εξετάσουµε το πρόβληµα ελαχιστοποίησης του µέσου σταθµισµένου χρόνου παραµονής
Fw στο σύστηµα. Συµβολίζουµε i=1, ..., n τα προϊόντα, k=1, . . ., m τις µηχανές και pik τη
διάρκεια κατεργασίας του i στην µηχανή k. Θα διατυπώσουµε ένα πρόβληµα µικτού
ακεραίου προγραµµατισµού. Για την µαθηµατική διατύπωση του προβλήµατος
συµβολίζουµε Μ(i) την µηχανή απο την οποία θα εξέλεθει τελικά το προϊόν i ενώ µε
h(i,k) θα συµβολίζουµε τη µηχανή η οποία στέλνει το προϊόν i στην k (δηλ. την αµέσως
προηγούµενη της k). Στις µεταβλητές αποφάσεως περιλαµβάνονται οι χρόνοι περάτωσης
της κατεργασίας κάθε προϊόντος i από κάθε µηχανή k την οποία αυτό επισκέπτεται και
συµβολίζονται Cik. Αυτές οι µεταβλητές δεν χρειάζεται να είναι ακέραιες.
Η αντικειµενική συνάρτηση είναι
n
Fw = ∑ wi C i M (i ) .
i =1
36
θεωρούµε ακόµη τους δείκτες προτεραιότητας yijk που είναι 1 αν το i εισέρχεται πριν
από το j στην k ή 0 αν συµβαίνει το αντίθετο. Σηµειώνουµε ότι το ∞ παριστάνεται στον
υπολογιστή µε έναν πολύ µεγάλο αριθµό, έστω Η. Εισάγοντας τον µεγάλο αριθµό Η στον
υπολογιστή αντί του ∞, οι προηγούµενες ανισότητες γίνονται
Cjk – Cik+H (1 – yijk) ≥ pjk (3.6δ)
Cik – Cjk+H yijk ≥ pik (3.6ε)
Για την ψευδοµηχανή 0, όλες οι µεταβλητές yij0 είναι ίσες µε 1.
Το πρόβληµα µικτού ακεραίου προγραµµατισµού διατυπώνεται ως εξής:
min Fw ως προς Cik, yijk
όταν ισχύουν: οι (3.6α-γ) ή, ισοδύναµα, οι (3.6α,δ,ε)
και oι Cik≥0, yijk∈{0, 1}.
Επειδή η λύση τέτοιων προβληµάτων παρουσιάζει συνδυαστικές δυσκολίες
περιγράφουµε µία άλλη µέθοδο. Η επίλυση του προγράµµατος µε τον αλγόριθµο ∆Φ
ακολουθεί τα εξής βήµατα.
α. Λύνεται το πρόβληµα γραµµικού προγραµµατισµού χωρίς τους περιορισµούς
(3.6β,γ), ή τους ισοδύναµους (3.6δ,ε). Αυτό σηµαίνει ότι επιτρέπουµε σε µία
µηχανή να εκτελεί 2 ή περισσότερες εργασίες ταυτοχρόνως. Αν, εν τούτοις, η
λύση ικανοποιεί τους (3.6β,γ), δηλ. δεν έχει επικαλύψεις, τότε αυτή είναι η
βέλτιστη. Αν όχι, τότε υπάρχουν πολλά ζεύγη προϊόντων i, j, τα οποία τους
παραβιάζουν, δηλαδή υφίστανται κατεργασία στη µηχανή, έστω, k ταυτόχρονα.
β. Απο κάθε ζεύγος προκύπτουν 2 υποπροβλήµατα. Στο Pi,j,k θεωρούµε τον (3.6β)
και στο Pj,i,k τον (3.6γ) και εφαρµόζουµε πάλι γραµµικό προγραµµατισµό. Οι
λύσεις των υποπροβληµάτων χρησιµοποιούνται ως κάτω φράγµατα.
γ. Η διαδικασία συνεχίζεται µέχρις ότου κάποιο υποπρόβληµα έχει λύση µικρότερη
από τις λύσεις των υπόλοιπων και ταυτοχρόνως ικανοποιούνται οι (3.6β,γ).
37
4 ΕΛΕΓΧΟΣ ΡΟΗΣ ΚΑΙ ∆ΡΟΜΟΛΟΓΗΣΗΣ ΣΕ
∆ΙΚΤΥΑ ΠΑΡΑΓΩΓΗΣ
4.1 ΕΙΣΑΓΩΓΗ
38
παραγωγής, που έχουν δυνατότητα να επιτελούν πολλές κατεργασίες, συνδεδεµένους µε
ένα σύστηµα µεταφοράς κοµµατιών (material handling system - MHS). Τα κοµµάτια
φορτώνονται σε παλλέτες ή µεταφορικές ταινίες του συστήµατος µεταφοράς, και
υπόκεινται σε σειρά κατεργασιών, µέχρις ότου µετατραπούν σε προϊόντα και
µεταφερθούν στο σταθµό εκφόρτωσης. Ο έλεγχος ακολουθίας πραγµατοποιείται συνεχώς
από κεντρικό υπολογιστή.
Μηχανουργείο 1
Σταθµός
φόρτωσης-
εκφόρτωσης
Μηχανουργείο 2
39
το πρόβληµα βελτιστοποίησης, είναι απαραίτητο να αναλύσουµε το σύστηµα παραγωγής.
Η επόµενη παράγραφος ασχολείται µε το πρόβληµα της ανάλυσης χρησιµοποιώντας
εργαλεία από τη θεωρία ουρών αναµονής (queueing theory).
40
= 1−Pii(t, t+∆t) = qi(t)∆t+o(∆t) (4.2)
η qij(t) , για κάθε i,j∈N µε i≠j, ορίζεται από τη σχέση:
πιθανότητα µετάβασης από την i στην j στο διάστηµα (t,t+∆t) =
= Pij(t, t+∆t) = qij(t)∆t+o(∆t) (4.3)
όπου o(∆t) είναι µία συνάρτηση που ικανοποιεί την ιδιότητα
o( ∆t )
lim =0
∆t → 0 ∆ t
Υποθέτουµε τώρα ότι για τη διαδικασία Markov n(t) οι ποσότητες qi και qij είναι
ανεξάρτητες του χρόνου t. Υποθέτουµε επίσης ότι 0 είναι η αρχή του χρόνου και η
αρχική κατάσταση n(0)=k είναι καθορισµένη. Στο εξής θα συµβολίζουµε Pi(t) την
πιθανότητα η διαδικασία να ευρεθεί στην κατάσταση i δοθέντος ότι ξεκίνησε από την k,
την οποία είχαµε συµβολίσει Pki(0,t). Τότε, η εξέλιξη της διαδικασίας n(t) περιγράφεται
από την ευθεία εξίσωση Chapman-Kolmogorov (C-K):
dPi (t )
= − q i Pi (t )+ ∑ q ji Pj (t ) (4.4α)
dt j ≠i
ή, για απλούστευση,
P&i = −qi Pi + ∑ q ji Pj . (4.4β)
j ≠i
Η εξίσωση C-K δηλώνει ότι ο ρυθµός µεταβολής της πιθανότητας ώστε το σύστηµα
να ευρίσκεται στην κατάσταση i ισούται µε το ρυθµό εισόδου στην κατάσταση αυτή από
άλλες καταστάσεις µείον το ρυθµό εξόδου του συστήµατος από την i προς άλλες
καταστάσεις. Τα qi, qij συνδέονται µε τη σχέση (βλ. Εξ. (4.2),(4.3))
qi = ∑ qij . (4.5)
j ≠i
Θυµηθείτε ότι µας ενδιαφέρει συνήθως η µόνιµη κατάσταση : t→∞. Τότε πρέπει
να ισχύει το ακόλουθο
dPi ( t ) Pi ( t + ∆t ) − Pi ( t )
lim = lim lim
t →∞ dt t →∞ ∆t → 0 ∆t
όταν επιτρέπεται lim Pi ( t + ∆t ) − lim Pi ( t )
= lim t →∞ t →∞
= 0,
εναλλαγή των lim ∆t →∞ ∆t
οπότε οι διαφορικές εξισώσεις C-K γίνονται αλγεβρικές
qi Pi = ∑ q ji Pj , ∀i ∈ N , (4.6)
j ≠i
41
(i) αν j και k είναι δύο διακεκριµένες καταστάσεις τότε δεν µπορεί να συµβούν
ταυτοχρόνως δύο µεταβάσεις i→j και j→k,
(ii) ο συνολικός χρόνος παραµονής στην κατάσταση i είναι τ.µ. x που ακολουθεί την
εκθετική κατανοµή µε F(x)=1 – e – qix, σ.π.π f(x)=dF/dx= qie – qix και µέση τιµή
Ε{x}=1/qi,
(iii) αν γνωρίζουµε ότι xi ≥ b και α ≥ b τότε P(xi ≥ a | xi ≥ b) = P(xi ≥ a – b | xi ≥ 0) (αυτή η
ιδιότητα ονοµάζεται έλλειψη µνήµης).
Στα επόµενα εδάφια θα δούµε πως συνδέονται οι ποσότητες qij µε τους χρόνους
παραγωγής ή, ανάλογα, τους ρυθµούς παραγωγής (ροής) των µηχανών ενός δικτύου
παραγωγής.
Το απλούστερο σύστηµα αναµονής είναι το Μ/Μ/1 στο οποίο υπάρχει ένας εξυπηρετών
µε εκθετικούς χρόνους εξυπηρέτησης µέσης τιµής 1/µ και τροφοδοτείται από ένα
σύστηµα αφίξεων. Το διάστηµα µεταξύ δύο διαδοχικών αφίξεων είναι εκθετικά
κατανεµηµένα µε µέση τιµή 1/λ. Έτσι, µ είναι ο µέσος ρυθµός εξυπηρέτησης και λ ο
µέσος ρυθµός άφιξης πελατών από έξω.
λ µ
=
[1− F (t )]−[1− F (t + x )] = 1− e− λ( t + x) = 1 − e− λ x
1− F (t ) e− λ t
42
− λe− λx x=0
=(…ανάπτυγµα Taylor) = 1 − 1 + x +o( x) = λ x + o(x).
1!
Συγκρίνοντας µε την (3), προκύπτει ότι το λ είναι το qn(n+1), και ανάλογα προκύπτει
µ=qn(n – 1). Η αλγεβρική εξίσωση C-K (6) γίνεται
λ Ρ0= µ Ρ1
γιατί όταν υπάρχουν n=0 πελάτες δεν γίνονται εξυπηρετήσεις. Οι υπόλοιπες εξισώσεις
C-K είναι
(λ+µ) Ρn= λΡn – 1 + µ Ρn+1, n>0
Από αυτές και την ∑ Pi = 1 προκύπτει ότι, αν το συστηµα είναι ευσταθές, δηλ. ο ρυθµός
i
εισόδου πελατών στο σύστηµα είναι µικρότερος από τον ρυθµό εξυπηρέτησης (λ<µ),
τότε
n
λ λ λ
Pn = 1 − = (1 − ρ ) ρ n , ρ = (4.6α)
µ µ µ
Αν η συνθήκη ευστάθειας δεν ισχύει, τότε Ρ∞=1, Pn=0 ∀n<∞. Στη συνέχεια
εστιαζόµαστε σε ευσταθή συστήµατα.
To µέσο πλήθος πελατών στο σύστηµα είναι
∞ ∞
ρ
N= ∑nPn = (1 − ρ ) ∑nρ n = . (4.6β)
n=0 n=0 1− ρ
Σε κάθε αναµονητικό σύστηµα ισχύει ο νόµος του Little :
(µέσο πλήθος πελατών)=(µέσος ρυθµός εισόδου)(µέσος χρόνος παραµονής)
Για το Μ/Μ/1, όπου δεν υπάρχει περιορισµός στην ουρά, ο µέσος ρυθµός αφίξεων
πελατών λ ισούται µε το µέσο ρυθµό εισόδου (όσοι φθάνουν, γίνονται πάντα δεκτοί από
το σύστηµα). Κατα συνέπειαν, ο µέσος χρόνος παραµονής στο σύστηµα
(ουρά+εξυπηρέτηση) Τ ισούται µε Ν/λ. Ο µέσος χρόνος αναµονής στην ουρά µόνον είναι
W=T – 1/µ. Εφαρµόζοντας το νόµο του Little για το σύστηµα "ουρά" προκύπτει το µέσο
πλήθος πελατών στην ουρά Nq
ρ2
Nq=λ W = (4.6γ)
1− ρ
Στα συστήµατα παραγωγής, το Nq ισοδυναµεί µε την µέση στάθµη στην αποθήκη.
O µέσος ρυθµός παραγωγής του συστήµατος ισούται µε το µέσο ρυθµό
εξυπηρέτησης όταν το σύστηµα δεν είναι άδειο
λ
µσυστ . = (1 − P0 ) µ = 1 − 1 − µ = λ (4.6δ)
µ
43
Εξετάζουµε το ίδιο σύστηµα αλλά µε m ίδιους εξυπηρετούντες, που συµβολίζεται
Μ/Μ/m και περιγράφει έναν σταθµό παραγωγής που αποτελείται από m παράλληλες
µηχανές. Ορίζουµε την ποσότητα ρ=λ/(mµ). Αν ρ<1, τότε από τις εξισώσεις C-K
προκύπτουν τελικά
( mρ ) n
P0 , n≤m
1 n!
P0 = και Pn = (4.7α)
m −1
( mρ ) n
( mρ ) m P ρ m ,
n m
1+ ∑ + 0 n≥m
n =1 n! m! ( 1 − ρ ) m!
ενώ αν ρ=1 , Pn=1/(K+1) για όλα τα n. Ο µέσος αριθµός πελατών στο σύστηµα είναι
ρ 1 − ((1K−+ρ1))(1ρ− ρ+ K ρ)
K K +1
K +1
αν ρ≠1
N= (4.8β)
K
2 , αν ρ=1
44
Σε µερικές περιπτώσεις οι χρόνοι µεταξύ αφίξεων t ικανοποιούν τη σχέση
1
E{t − t o t > t 0 } ≤ = E{t} (4.9α)
λ
Η σχέση (4.9α) λέγει ότι, αν γνωρίζουµε ότι έχει περάσει χρόνος tο ή και περισσότερος
από τότε που έγινε µία άφιξη, τότε η επόµενη άφιξη θα γίνει µετά από χρόνο που είναι
κατά µέσον όρο µικρότερος ή ίσος από το µέσο χρόνο µεταξύ διαδοχικών αφίξεων. Η
εκθετική κατανοµή ικανοποιεί την (4.9α) ως ισότητα. Άλλες κατανοµές που ικανοποιούν
την (4.9α), είναι η οµοιόµορφη, βήτα, κλπ.. Αν ισχύει η (4.9α) και το σύστηµα είναι
ευσταθές, λ/µ<1, τότε
( )
λ 2 σ t2 + σ x2 1 − ρ
− ≤ Nq ≤
(
λ 2 σ t2 + σ x2 )
. (4.9β)
1− ρ 2 2(1 − ρ )
και
µσυστ . = λ . (4.9γ)
Αν δεν ισχύει η (9a) τότε ικανοποιείται µόνον η δεξιά ανισότητα της (9b).
∑ Pji = 1 (4.10α)
i=0
Οι µέσοι ρυθµοί εισόδου λi στους κόµβους i προκύπτουν από τη λύση του γραµµικού
συστήµατος
M
λi = γ i + ∑ λj Pji (4.10β)
j =1
για i=1,…, M. Οι χρόνοι άφιξης και εξυπηρέτησης είναι εκθετικοί. Η κατάσταση του
συστήµατος συµβολίζεται n=(n1, n2, ..., nM) και αποτελείται από τις στάθµες των κόµβων.
Το θεώρηµα που ακολουθεί, αποτελεί το εργαλείο ανάλυσης του συστήµατος:
45
Θεώρηµα Jackson Για το δίκτυο που ορίσθηκε πριν, οι αλγεβρικές εξισώσεις C-K
έχουν λύση:
P( n1 ,..., n M ) = Pn1 (1) Pn2 (2 ) ⋅ ⋅ ⋅ PnM ( M )
όπου Pni(i) είναι η πιθανότητα ώστε ο κόµβος i να έχει ni πελάτες και υπολογίζεται
από την (4.7α) θεωρώντας τον κόµβο i ως σύστηµα Μ/Μ/mi µε ρυθµούς λi, µi .
Από το θεώρηµα αυτό και την (4.7β) βρίσκουµε και τις µέσες στάθµες σε κάθε
αποθήκη. Ο µέσος ρυθµός ροής κοµµατιών (πελατών) από τον κόµβο j στον i ισούται µε
λjPji. Εποµένως, έχουµε εύρει τη σχέση µεταξύ ροών και αποθεµάτων η οποία είναι
απαραίτητη για τη διατύπωση του προβλήµατος βελτιστοποίησης, όπως αναφέρθηκε
στην Εισαγωγή.
Τα συστήµατα Jackson είναι ανοικτά, διότι τροφοδοτούνται από/τροφοδοτούν το
περιβάλλον τους. Στη συνέχεια εξετάζουµε κλειστά συστήµατα.
Φαντασθείτε ένα ανοικτό δίκτυο στο οποίο, όταν ένας πελάτης φεύγει (προϊόν
παράγεται) τότε και µόνον τότε ένας άλλος πελάτης εισέρχεται στο σύστηµα. Aυτό στην
πράξη συµβαίνει όταν σε ένα σύστηµα παραγωγής οι πρώτες ύλες εισέρχονται στο
σύστηµα µόνον όταν υπάρχει ζήτηση. Τα συστήµατα αυτά ονοµάζονται συστήµατα
έλξης (pull systems) ή παραγωγής κατά παραγγελίες (make-to-order). Για τη
µοντελοποίηση τέτοιων συστηµάτων θεωρούµε τη σαν µία µηχανή του συστήµατος η
οποία τροφοδοτε'ιται από την αποθήκη έτοιµων προϊόντων και τροφοδοτεί την αποθήκη
πρώτων υλών.
Zήτηση Zήτηση
Στην περίπτωση αυτή το δίκτυο ισοδυναµεί µε ένα κλειστό σύστηµα όπως φαίνεται στο
σχήµα. Στο κλειστό σύστηµα, το συνολικό πλήθος πελατών οι οποίοι ευρίσκονται στους
κόµβους εξυπηρέτησης είναι σταθερό: Ν = n1+…+nM .
Ορίζουµε τις ποσότητες bi(ni) οι οποίες εξαρτώνται από τον κόµβο i και το πλήθος
πελατών στην ουρά και εξυπηρέτησή του :
46
ni! , ni ≤ mi
bi ( ni ) = (4.11α)
mi! mi ni − mi , ni ≥ mi
Έστωσαν λi οι µέσοι ρυθµοί αφίξεων στις ουρές των κόµβων i. Τότε, οι εξισώσεις
διατήρησης πελατών παίρνουν τη µορφή
M
λi = ∑ λ j Pji ,i =1,...,M (4.11β)
j =1
η οποία είναι ίδια µε την (4.10β) µε γi=0. Το σύστηµα (4.11β) είναι γραµµικό, αλλά δεν
έχει µοναδική λύση γιατί ο πίνακας [Pij] δεν είναι αντιστρέψιµος. Θεωρούµε αντί των λi,
λi
τις µεταβλητές xi = , όπου λ = ∑ iM=1 λ i . Είναι εύκολο να αποδείξουµε ότι το ακόλουθο
λ
σύστηµα είναι ισοδύναµο του (4.11β):
M
47
xi
mi µi
ui =
M xj
∑
j =1 m j µ j
είναι η σχετική χρησιµοποίηση του σταθµού i. Ο σταθµός που έχει max ui ονοµάζεται
συνωστισµένος (bottleneck), και οι µηχανές του εργάζονται περισσότερο χρόνο από τις
µηχανές των υπόλοιπων. Οι µέσοι ρυθµοί εισροής/εκροής σε κάθε σταθµό είναι
λi = µ i ∑ P(n ) + 2 µ i ∑ P (n ) + ... + mi µ i ∑ P(n ) (4.13α)
για καϑε συνδυασµο: για καϑε συνδυασµο: για καϑε συνδυασµο:
ni =1και ∑ n j = N − ni ni = 2 και ∑ n j = N − ni ni ≥ mi και ∑ n j = N − ni
j ≠i j ≠i j ≠i
48
4.3 ΑΛΓΟΡΙΘΜΟΙ ΜΗ ΓΡΑΜΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ
Τέτοια ακολουθία είναι η Jk=J/k, δηλ. η J, J/2, J/3, J/4, . . ., όπου J είναι ένας θετικός
αριθµός που καθορίζει το µήκος βηµάτων προς την κατεύθυνση της λύσης και θα
αναλυθεί στη συνέχεα.
1. Θέσε k=0. Επίλεξε αρχικό διάνυσµα y(0)=[y1(0). . ..yn(0)].
49
2. Υπολόγισε την τιµή f(y(k)) της συνάρτησης και τις µερικές παραγώγους S(yi(k)). Στο
n
βέλτιστο σηµείο πρέπει S(yi)=0. Aν η ποσότητα ∑ S( yi( k ) ) είναι µικρότερη από το
i =1
όριο σύγκλισης (µικρός θετικός αριθµός) τοτε περάτωσε την βελτιστοποίηση στο
βήµα αυτό. Αλλιώς πήγαινε στο (3).
3. Υπολόγισε το νέο διάνυσµα y(k+1) µε στοιχεία
yi (k+1) = yi(k) + Jk+1 S(yi(k)) , i=1, . . ., n,
Θέσε k:=k+1 και πήγαινε στο Bήµα (2).
H σύγκλιση της µεθόδου εξαρτάται από την ακολουθία Jk και µπορεί να είναι πολύ αργή.
Ως εναλλακτικό σχήµα προτείνεται συνήθως το ακόλουθο:
Παράδειγµα
min (y1 – 2)4 +(y1 – 2y2)2
ή ισοδύναµα max – (y1 – 2)4 – (y1 – 2y2)2
H τελευταία συνάρτηση έχει µέγιστο 0 στο σηµείο (2,1).
Θέτουµε αρχικές τιµές y1=0 y2=3, όριο σύγκλισης το 0.01, J=0.5, και θεωρούµε 3
επαναλήψεις του αλγορίθµου χρυσής τοµής σε κάθε βήµα k του αλγορίθµου µέγιστης
ανόδου. Tα αποτελέσµατα αντιστοιχούν στα βήµατα k=1,2,3,4,5 και στο τελευταίο k=56
του αλγορίθµου µέγιστης ανόδου.
50
F(y)= -52.0000000
k L φ(L) U φ(U)
1 .1910000 -1815.831005 .3090000 -18584.443312
2 .1180380 -127.645297 .1910000 -1815.831005
3 .0729620 -2.653576 .1180380 -127.645297
51
Bλέπουµε ότι το y είναι πολύ κοντά στο ακρότατο (οι παράγωγοι ≈0, η συνάρτηση≈0).
52
Οι λj είναι οι πολλαπλασιαστές Lagrange. Aν οι περιορισµοί j=1,...,k είναι ανισότητες ≤
ενώ οι υπόλοιποι j=k+1,...,m είναι ισότητες, τότε οι συνθήκες Kuhn-Tucker έχουν τη
µορφή:
∂f ( y ) m
∂g j ( y)
− ∑ λj = 0 , i = 1, ..., n , (4.17a)
∂yi j =1 ∂yi
λj[gj(y) – bj]=0, j=1,…,k (4.17b)
λj≥0, j=1,…,k (4.17c)
gj(y) – bj≤0, j=1,…,k (4.17d)
gj(y) – bj=0, j=k+1,…,m (4.17e)
Αλγόριθµος
0. Αγνοούµε τους περιορισµούς ανισότητας, και θέτουµε λj=0, j=1,...,k.
1. Επιλύουµε τις (4.17e) και (4.17a) ως προς τις µεταβλητές yi και λj i=1,...,n και
j=k+1,...,m (αν το σύστηµα είναι αδύνατο, τότε διερευνούµε την πιθανότητα ώστε
κάποια yi=0). Αν η λύση ικανοποιεί τους περιορισµούς (17d), τότε αποτελεί λύση του
προβλήµατος. ∆ιαφορετικά, εκτελούµε το βήµα 2.
2. Βρίσκουµε τους περιορισµούς (4.17d) οι οποίοι παραβιάζονται από τις µεταβλητές yj
στο βήµα 1, και τους µετατρέπουµε σε περιορισµούς ισότητας. Τους τοποθετούµε στις
(4.17e) και τους αφαιρούµε από τις (4.17d). Eπαναλαµβάνουµε το βήµα 1.
Παράδειγµα
min f'(y)=2y12 + 2y22 – 4y1 – 6y2 + 2y1 y2
περιορισµοί: y1+2y2≤2, y1≥0, y2≥0 ...(4.17d)
To πρόβληµα γράφεται ισοδύναµα
max f(y)= – 2y12 – 2y22 + 4y1 + 6y2 – 2y1 y2
περιορισµοί (17d)
Συνθήκες Kuhn Tucker :
– 4y1 + 4 – 2y2 – λ1 + λ2 = 0
– 4y2 + 6 – 2y1 – 2λ1 + λ3 = 0 ...(4.17a)
λ1 (y1+2y2 – 2) = 0
λ2 ( – y1) = 0
λ3 ( – y2) = 0 ...(4.17b)
λ1, λ2, λ3 ≥0 ...(4.17c)
53
και περιορισµοί (4.17d,e).
Εφαρµογή Αλγορίθµου:
0. λ1= λ2=λ3 = 0
1. Το σύστηµα (17a) γράφεται 4y1 +2y2 = 4 και 4y2 +2y1 = 6. Η λύση του είναι y1=1/3
και y2 = 4/3. Ο περιορισµός y1+2y2 ≤2 παραβιάζεται.
2. Θέτουµε y1+2y2=2 και λ1≠0 και έχουµε έναν περιορισµό ισότητας τύπου (4.17e), ενώ
αφαιρείται η πρώτη ανισότητα από τoυς περιορισµούς (4.17d).
1. Έχουµε το νέο σύστηµα (4.17a) και (4.17e)
– 4y1 +4 – 2y2 – λ1 = 0
– 4y2 +6 – 2y1 – 2λ1 = 0
y1+2y2=2
Aντικαθιστάµε την τρίτη εξίσωση στη δεύτερη οπότε ⇒ λ1 = 1. Απο αυτήν, την πρώτη
εξίσωση του συστήµατος και την τρίτη ⇒ y1=2/6 και y2=5/6. Οι ανισότητες y1≥0, y2≥0
ικανοποιούνται. Άρα το σηµείο (2/6, 5/6) είναι ακρότατο. Για να είναι µέγιστο, πρέπει η
συνάρτηση f(y) να είναι κοίλη ως προς y1 και y2, κάτι που θα δείξουµε στη συνέχεια.
Έλεγχος 1
Η f(y) είναι κοίλη, εξ ορισµού, αν και µόνο αν για κάθε θ∈(0,1) και κάθε ζεύγος σηµείων
x=(x1, x2) και y=(y1, y2) ισχύει ότι f[θx+(1 – θ)y] ≥ θ f(x) +(1 – θ) f(y). Ο έλεγχος αυτός
απαιτεί αρκετούς υπολογισµούς. Aντ' αυτού θα εφαρµόσουµε έναν άλλο έλεγχο που δεν
δίδει πάντα απάντηση στο ερώτηµα της κοιλότητας αλλά είναι υπολογιστικά
οικονοµικότερος.
Έλεγχος 2
Αν υπάρχει ο πίνακας Hess της f(y) και έχει ιδιοτιµές ≤0 (≥0) τότε η συνάρτηση είναι
κοίλη (κυρτή).
∂ 2 f ∂ 2 f
2
∂y ∂y1∂y 2
∂ ∂ 1 − 4 − 2
Πίνακας Hess: Α= f ( y ) = =
∂y ∂y
i j
ij − 2 − 4
∂ f ∂ f
2 2
∂y ∂y 2
2 1 ∂y 2
Έχουµε την ορίζουσα ιδιοτιµών =0 :
λ+4 −2 λ+2 = 0
λI − A = = (λ+ 4 − 2⋅2 = (λ+ 4
)2 )2 − 22 =0⇒
2 λ+4 λ+6 = 0
54
Κάθε ιδιοτιµή είναι αρνητική ⇒ f = κοίλη ⇒ f(y1, y2) = max = 4.16.
55
program steep
C--------------------------------------------------------------------C
C APPLICATION OF THE PENALTY FUNCTION METHOD C
C USING A STEEPEST ASCENT WITH GOLDEN SECTION SEARCH C
C TEST PROBLEM C
C ------------ C
C maximize f(x)=-(x(1)-2)**4-(x(1)-2*x(2))**2 C
C subject to (*) x(1)**2-x(2)=0 C
C To run other instances, simply replace f and df(.) C
C in subroutine evalf() with the desired functions C
C (*) NOTE: input lm=0. to solve the UNCONSTRAINED prolem C
C--------------------------------------------------------------------C
C Hierarchy of loops: C
C Main loop (penalty functions): C
C Do 17 m=1,...,max C
C Set (new lm)=beta*(previous lm) C
C Steepest ascent loop 2: C
C Do 16 k=1,....until Sum of |df/dx| < tol C
C Golden section loop 3: C
C Do 12 it=1,...,iter C
C perform golden section iterations for J* C
C 12 Continue C
C Update x using the best J* C
C 16 Continue C
C 17 Continue C
C--------------------------------------------------------------------C
c n = number of decision variables c
c maxm = max. number of penalty iterations, m=1,...,maxm c
c termination condition : if m>maxm => STOP c
c lm = lambda multiplier (unconstrained maximization=0)c
c beta = growth rate of lm, i.e., lm=beta*lm, beta>1 c
c tol = termination condition 2: df/dx=0 c
c here: if [sum of |df/dx|] < tol => next penalty c
c x = updated vector c
c y = auxiliary vector for line search c
c iter = n. of golden section iterations it=1,...,iter c
c J = initial line length for golden section c
c iterations (this is the constant step size) c
c evalf = subroutine for the evaluation of f and df c
c (depend on the particular test problem) c
c--------------------------------------------------------------------c
C INPUT FILE= "STEEP" C
C For unconstrained optimization, the input file STEEP is C
C 2 0.01 0.5 4 0 0 1 C
C initial x1 0 C
C initial x2 3 C
C For constrained optimization, the input file STEEP is C
C 2 0.01 0.5 4 1 1.5 18 C
C 0 C
C 3 C
C--------------------------------------------------------------------C
C OUTPUT FILE= "STEEP.OUT" C
C--------------------------------------------------------------------C
double precision f,df,x,y,tol,gl,gu,sumdf,a,b,L,U,lm,beta,J
dimension df(100),x(100),y(100)
open (5,file='steep', status='old')
read(5,*) n,tol,J,iter,lm,beta,maxm
56
do 10 i=1,n
10 read(5,*) x(i)
close(5)
open (5,file='steep.out', status='new')
do 17 m=1,maxm
c increase golden section iterations each time lm is increased
c for better convergence
if (m.gt.1) iter=iter+1
write(5,'(16h------MAIN LOOP=i2,
+26h LAGRANGE MULTIPLIER lm=,e7.2,7h ------)')m,lm
j1=1
16 write(5,'(32h -----Steepest Ascent Iteration:,i3,7h ------)')j1
call evalf(f,df,x,lm,1)
sumdf=0.
do 9 i=1,n
sumdf=sumdf+dabs(df(i))
9 continue
write(5,'(1x,4hy= ,10(f12.5,1x))')(x(i),i=1,n)
write(5,'(1x,4hdF= ,10(f12.7,1x))')(df(i),i=1,n)
write(5,'(1x,8hF(y,lm)=,f15.7)')f
if (sumdf.lt.tol) then
c convergence is achieved;
c now if lm=0 then we have an unconstrained problem =>STOP
c else we multiply lm by beta
if (lm.lt.1.d-20) stop
lm=lm*beta
write(5,*)' '
goto 17
endif
write(5,'(3x,1hk,9x,1hL,12x,4hF(L),14x,1hU,12x,4hF(U))')
a=0.
b=J
L=a+.382*(b-a)
U=a+.618*(b-a)
do 12 it=1,iter
if ((it.eq.1).or.(ibest.eq.2)) then
do 11 i=1,n
11 y(i)=x(i)+L*df(i)
call evalf(gl,df,y,lm,0)
endif
if ((it.eq.1).or.(ibest.eq.1)) then
do 13 i=1,n
13 y(i)=x(i)+U*df(i)
call evalf(gu,df,y,lm,0)
endif
write(5,'(3x,i2,2(3x,f12.7,1x,f15.6))')it,L,gl,U,gu
if (gu.gt.gl) then
ibest=1
if (it.eq.iter) goto 14
a=L
L=U
gl=gu
U=a+.618*(b-a)
else
ibest=2
b=U
U=L
57
gu=gl
if (it.eq.iter) goto 14
L=a+.382*(b-a)
endif
12 continue
14 do 15 i=1,n
15 x(i)=x(i)+U*df(i)
write(5,*)' '
j1=j1+1
goto 16
17 continue
stop
end
subroutine evalf(f,df,x,lm,i)
double precision f,x(100),df(100),lm
f=-(x(1)-2)**4-(x(1)-2*x(2))**2-lm*(x(1)**2-x(2))**2
if (i.eq.0) return
df(1)=-4*(x(1)-2)**3-2*(x(1)-2*x(2))
+ -lm*2*(x(1)**2-x(2))*2*x(1)
df(2)=4*(x(1)-2*x(2))+lm*2*(x(1)**2-x(2))
return
end
Παράδειγµα
max f(y)= – (y1 – 2)4 – (y1 – 2y2)2
περιορισµός : y12 – y2=0
Ο περιορισµός µπορεί να χρησιµοποιηθεί για να απαλείψουµε την y2 και τότε προκύπτει
πρόβληµα χωρίς περιορισµούς. Όµως για την περιγραφή της µεθόδου προχωράµε
σύµφωνα µε τον αλγόριθµο.
Βήµα 0. Θέτουµε y(0)=(3,0), β=1.5 και λ1=1. Θεωρούµε ως όριο σύγκλισης του
αλγορίθµου µέγιστης ανόδου το 0.01 (βλ. Παράγραφο 4.3.1).
Βήµα 1. F(y,λ1)= – (y1 – 2)2 – (y1 – 2y2)2 – 1(y12 – y2)2. Στον επόµενο πίνακα
παρατίθενται τα αποτελέσµατα 18 επαναλήψεων του αλγορίθµου µέγιστης ανόδου µε
µέγιστο βήµα J=0.2. Στην πρώτη επανάληψη εφαρµόζουµε έρευνα 4 διχοτοµήσεων µε
χρυσή τοµή για τον εντοπισµό του µέγιστου της συνάρτησης F[y+J* S(y), λ1=1 ], J*∈(0,J).
Στη n-οστή εκτελούµε n+4 – 1 διχοτοµήσεις και λn =1.0 × (1.5)n – 1.
58
………………………………………………………………………………………………………………………………………………………………………………………
-----Steepest Ascent Iteration: 18------
y= .94564 .89255
dF= .0998826 -.0439939
F(y,lm)= -1.9433120
k L F(L) U F(U)
1 .0764000 -2.257176 .1236000 -2.769005
2 .0472152 -2.062671 .0764000 -2.257176
3 .0291848 -1.988713 .0472152 -2.062671
4 .0180362 -1.960553 .0291848 -1.988713
5 .0111486 -1.949845 .0180362 -1.960553
6 .0068898 -1.945775 .0111486 -1.949845
7 .0042588 -1.944233 .0068898 -1.945775
8 .0026319 -1.943652 .0042588 -1.944233
9 .0016268 -1.943434 .0026319 -1.943652
10 .0010054 -1.943354 .0016268 -1.943434
11 .0006215 -1.943325 .0010054 -1.943354
12 .0003841 -1.943315 .0006215 -1.943325
13 .0002374 -1.943312 .0003841 -1.943315
14 .0001467 -1.943311 .0002374 -1.943312
15 .0000907 -1.943311 .0001467 -1.943311
16 .0000560 -1.943311 .0000907 -1.943311
17 .0000907 -1.943311 .0001121 -1.943311
18 .0001121 -1.943311 .0001253 -1.943311
19 .0001039 -1.943311 .0001121 -1.943311
20 .0001121 -1.943311 .0001171 -1.943311
21 .0001090 -1.943311 .0001121 -1.943311
y= .94565 .89255
dF= .0023364 .0075261
F(y,lm)= -1.9433113
59
διασυνδέσεις µηχανών είναι καθορισµένες έτσι ώστε να µην επιτρέπονται κάποιες
διαδροµές. Αυτό περιορίζει την ελευθερία επιλογής της επόµενης µηχανής για κάποιο
προϊόν.
Για παράδειγµα, θεωρείστε ένα σύστηµα µε δύο µηχανές, και δύο προϊόντα.
Μ1
Πρώτες ύλες
Τελικά προϊόντα
Μ2
Το προϊόν 1 απαιτεί µία κατεργασία και το 2 απαιτεί δύο. Η σειρά εκτέλεσης των
κατεργασιών είναι αυθαίρετη. Οι χρόνοι κατεργασιών δίδονται στον επόµενο πίνακα.
Μηχανές j
1 2
Κατεργασία (p,k)
5 6
(1,1), προϊόν 1
(2,1), προϊόν 2
7 ∞
(2,2), προϊόν 2 ∞ 8
60
κατεργασιών Κp, και, τελικά, θα ισούται µε το συνολικό ρυθµό παραγωγής του προϊόντος
p (**).
Οι µεταβλητές αποφάσεως είναι οι ρυθµοί εκτέλεσης κατεργασιών (p,k) από κάθε
µηχανή j, και συµβολίζονται xpkj. ∆ιατύπωση του προβλήµατος:
x = διάνυσµα [xpkj]
P M
max F(x)= ∑ C p ∑ x p1 j ..... (λόγω **) (4.21a)
p =1 j =1
M M
∑ x p1 j = ∑ x pkj ,∀p=1,...,P ..... (λόγω **) (4.21b)
j =1 j =1
P Kp
∑ ∑ x pkj t pkj ≤ 1 , ∀j=1,...,M ..... (λόγω *) (4.21c)
p =1 k =1
Όταν οι χρόνοι κατεργασιών είναι τυχαίοι δηµιουργούνται ουρές µπροστά από τις
µηχανές. Το πρόβληµα βελτιστοποίησης είναι η µεγιστοποίηση του αναµενόµενου
ρυθµού κέρδους υπό την προϋπόθεση το µέσο πλήθος κοµµατιών στο σύστηµα να είναι
µικρότερο από ένα κατώφλι Q. Ο περιορισµός αυτός επιβάλλει ένα όριο στη συνολική
ροή έτσι ώστε να µην υπάρχει συνωστισµός στο σύστηµα.
Το µέσο πλήθος κοµµατιών στο σύστηµα ισούται µε το άθροισµα του µέσου
πλήθους κοµµατιών που µεταφέρονται και του µέσου πλήθους κοµµατιών που
βρίσκονται στις µηχανές. Θα εξηγήσουµε τη διατύπωση του προβλήµατος µε το
παράδειγµα του Σχ. 5. Εδώ τα tpkj συµβολίζουν τους µέσους χρόνους κατεργασιών.
Υποθέστε ότι το σύστηµα διαχείρισης υλικών του σχήµατος αποτελείται από
παλλέτες και ότι ο µέσος χρόνος τον οποίο απαιτεί µία παλλέτα προκειµένου να διασχίσει
61
ένα τόξο είναι τ. Αν ο ρυθµός εισόδου σε ένα τόξο είναι x τότε το µέσο πλήθος
µεταφερόµενων κοµµατιών δια του τόξου δίδεται από το νόµο του Little:
(µέσο πλήθος) = x τ (4.22)
Μ1
Πρώτες ύλες
Τελικά προϊόντα
Μ2
Για το προϊόν 1, οι µεταβλητές αποφάσεως είναι x111 = ροή µέσω µηχανής 1 και
x112=ροή µέσω µηχανής 2. Ο µέσος χρόνος µεταφοράς και στις δύο περιπτώσεις είναι 9τ
και προκύπτει µετρώντας τα βέλη.
Για το προϊόν 2, υπάρχει ελευθερία σχετικά µε την σειρά εκτέλεσης των εργασιών.
Θεωρούµε ως διαδροµή α εκείνην που ακολουθείται για την εκτέλεση κατεργασιών µε τη
σειρά Μ1→Μ2 και ως διαδροµή β αυτήν που απαιτείται για τη σειρά Μ2→Μ1. Στις
µεταβλητές αποφάσεως περιλαµβάνεται και η y η οποία δηλώνει το κλάσµα της
παραγωγής προϊόντος 2 που ακολουθεί τη διαδροµή α. Έτσι οι ρυθµοί ροής γίνονται, για
την πρώτη εναλλακτική δροµολόγηση, yx211 (πρώτα η κατεργασία 1 από µηχανή 1) =
yx222 (κατόπιν η κατεργασία 2 από µηχανή 2) και, για την δεύτερη εναλλακτική
δροµολόγηση, (1 – y)x222 (πρώτα η κατεργασία 2 από µηχανή 2) = (1 – y)x211 (κατόπιν η
κατεργασία 1 από µηχανή 1). Ο µέσος χρόνος µεταφοράς για την πρώτη δροµολόγηση
είναι 11τ. Για την εκτέλεση της δεύτερης δροµολόγησης τα κοµµάτια πρέπει να κάνουν
δύο πλήρεις περιστροφές προκειµένου να επισκεφθούν την µηχανή 2 πρώτα και κατόπιν
την 1, πριν φύγουν. Έτσι ο µέσος χρόνος µεταφοράς είναι 17τ.
Τώρα θα υπολογίσουµε το µέσο πλήθος κοµµατιών που ευρίσκονται σε κάθε
µηχανή χρησιµοποιώντας το Θεώρηµα Jackson της θεωρίας συστηµάτων αναµονής. Αν
και µία µηχανή απαιτεί διαφορετικούς µέσους χρόνους για διαφορετικές κατεργασίες
(στο Θ. Jackson υποτίθενται ίσοι), εδώ θα πρέπει να προσαρµόσουµε τα δεδοµένα του
προβλήµατος επειδή η θεωρία δεν παρέχει τα εργαλεία ανάλυσης τέτοιων περιπτώσεων.
Ορίζουµε τον µέσο ρυθµό άφιξης λj στην µηχανή j ως το άθροισµα των xpkj :
P Kp
λj = ∑ ∑ x pkj . (4.23a)
p =1k =1
62
P Kp
∑ ∑ x pkj t pkj
p =1k =1
1/ µj = . (4.23b)
λj
Η ανωτέρω δικαιολογείται ως εξής. Ο µέσος χρόνος εξυπηρέτησης αναφέρεται στη µέση
διάρκεια κατεργασίας ενός κοµµατιού. Σε µία µονάδα χρόνου η µηχανή δέχεται λj
κοµµάτια από προϊόντα πολλών τύπων για διάφορες κατεργασίες. Ο αριθµητής της
(4.23β) ισούται µε το συνολικό χρόνο κατεργασίας λj κοµµατιών και εποµένως το
κλάσµα εκφράζει τον "µέσον όρο".
Tώρα το σύστηµα περιγράφεται από ένα δίκτυο Jackson. Το παράδειγµα
περιλαµβάνει δύο κόµβους M/M/1. Το µέσο πλήθος στην µηχανή j δίδεται από τη σχέση
(4.6b):
P Kp
ρj
Nj = , όπου ρj= λj / µ j = ∑ ∑ x pkj t pkj . (4.24)
1− ρ j p =1k =1
Θυµηθείτε επίσης ότι έχουµε εισάγει και την µεταβλητή y. Για απλούστευση αλλάζουµε
το συµβολισµό του παραδείγµατος
x1= x111 , x2=x112, x3=yx211=yx222 x4=(1 – y)x211=(1 – y)x222.
Με δεδοµένους τους µέσους χρόνους κατεργασίας (από τον πίνακα της Παραγρ. 4.4.1),
διατυπώνουµε το πρόβληµα ως εξής:
max F(x)= C1 (x1+x2) + C2 (x3+x4)
µε περιορισµούς
- διαθεσιµότητας µηχανών 5x1 + 7(x3+x4) ≤ 1
6x2 + 8(x3+x4) ≤ 1
5x1 + 7( x3 + x4 ) 6 x2 + 8( x3 + x4 )
- χωρητικότητας 9τ(x1+x2)+11τx3+17τx4 + + ≤Q
1 − [5x1 + 7( x3 + x4 )] 1 − [ 6x2 + 8( x3 + x4 )]
- και επιτρεπτών τιµών x1 , x2 , x3 , x4 ≥ 0.
Το πρόβληµα λύνεται µε κάποιον αλγόριθµο µη γραµµικής βελτιστοποίησης.
Παρατηρήσεις:
1. Η βέλτιστη λύση θα έχει x4=0 (Άσκηση).
2. Λαµβάνοντας υπ' όψιν και την 1., ο νέος περιορισµός χωρητικότητας είναι κυρτή
συνάρτηση του διανύσµατος x=(x1,x2,x3) και εποµένως µπορούµε να εφαρµόσουµε
γνωστούς αλγορίθµους βελτιστοποίησης (Ασκηση).
3. Αν τ=0, τότε ο περιορισµός χωρητικότητας γίνεται ισότητα (Άσκηση).
63
4.4.3 Ασκήσεις (Σειρά 6)
64
5 ΕΥΣΤΑΘΕΙΑ ΣΥΣΤΗΜΑΤΩΝ ΠΑΡΑΓΩΓΗΣ
5.1 ΕΙΣΑΓΩΓΗ
Θεωρούµε, στην αρχή, ένα σύστηµα που αποτελείται από µία µόνο µηχανή, και παράγει
προϊόντα τύπων i=1,2,...,P για τα οποία η ζήτηση είναι σταθερή, di (κοµµάτια/µονάδα
χρόνου). Ο ρυθµός άφιξης πρώτων υλών στις αποθήκες είναι ίσος µε τη ζήτηση.
Εστωσαν τi η διάρκεια κατεργασίας ενός κοµµατιού τύπου i, και δ ο χρόνος
προετοιµασίας της µηχανής προκειµένου να διακόψει την παραγωγή προϊόντος τύπου i,
να αλλάξει εργαλεία και να αρχίσει την παραγωγή προϊόντος τύπου j. Στο διάστηµα [0,t]
η συνολική ζήτηση προϊόντος i είναι tdi. Συµβολίζουµε yi(t) τη συνολική παραγωγή της
µηχανής µέχρι τη στιγµή t και xi(t) τη στάθµη της αποθήκης πρώτων υλών τη στιγµή t.
Τότε, xi(t)=tdi – yi(t), και η συνθήκη ευστάθειας εκφράζεται ως
"η µέγιστη τιµή της xi(t), t∈[o,∞), είναι φραγµένη", ή
65
sup xi ( t ) ≤ Mi (5.1α)
t
Η τελευταία δηλώνει ότι η συνολική παραγωγή yi(t) δεν πρέπει να υπολείπεται της
συνολικής ζήτησης περισσότερο από µία σταθερά Mi. Αναγκαία συνθήκη ευστάθειας
του συστήµατος είναι η µηχανή να έχει αρκετή ταχύτητα ώστε στο διάστηµα [0,t] να
"προλαβαίνει" τη ζήτηση κάθε προϊόντος, και να της περισσεύει χρόνος για
προετοιµασίες ή ακόµη και χρόνος αδράνειας:
P
ή, απαλοίφοντας το t,
P
ρ = ∑ ρi < 1. (5.2β)
i =1
Το ρ ονοµάζεται συνολικό φορτίο της µηχανής και ρi=τidi είναι το φορτίο για το προϊόν i.
Αν στο διάστηµα [0, t] η µηχανή αφιερώνει ni(t) υποδιαστηµατα για την παραγωγή
προϊόντος i, τότε στην (5.2α) πρέπει να λάβουµε υπ' όψιν και τους χρόνους
προετοιµασίας. Η αναγκαία συνθήκη γίνεται
∑i ni ( t ) 1
∑i [τ i ( tdi ) + ni ( t )δ ] < t ⇒ µέση συχνότητα αλλαγών n = < (1 − ρ ) ,
t δ
η οποία είναι και ικανή συνθήκη ώστε το σύστηµα να είναι ευσταθές. Η συνθήκη αυτή
επιβάλλει ένα άνω όριο (1 – ρ)/δ στη συχνότητα αλλαγής του τύπου παραγωγής.
Εξετάζουµε τώρα την ακόλουθη εξαντλούσα πολιτική. Αρχικά n=0, Τ0=0.
Επιλέγουµε έναν αριθµό ε, 0<ε≤1. Τη στιγµή Τn βρίσκουµε ποιών προϊόντων η στάθµη
ξεπερνά την τιµή εΣixi(Tn). Επιλέγουµε ένα από αυτά, έστω το j, και προετοιµάζουµε τη
µηχανή για να αρχίσει να το παράγει. Η παραγωγή αρχίζει µετα από χρόνο δ και
συνεχίζεται µέχρι τη στιγµή Τn+1 κατά την οποία η στάθµη xj(Tn+1) γίνεται 0.
Επαναλαµβάνουµε τη διαδικασία µε n=n+1. Η πολιτική αυτή ονοµάζεται εξάντληση
κλάσµατος (Clear-A-Fraction policy, CAF), επειδή µε αυτόν τον τρόπο τη στιγµή Τn
αρχίζουµε την διαδικασία εξάντλησης (µηδενισµού) της στάθµης εκείνης η οποία
υπερβαίνει το κλάσµα ε της συνολικής στάθµης,
xi(Tn) ≥ εΣixi(Tn), (ε≤1) (5.3)
Ειδική περίπτωση της CAF αποτελεί η επιλογή του προϊόντος µε την µεγαλύτερη
στάθµη και ονοµάζεται εξάντληση της µέγιστης αποθήκης (Clear-the-Largest-Buffer,
CLB). Έστω ότι στο διάστηµα (Τn,Τn+1) η µηχανή παράγει το προϊόν j. Αποδεικνύεται
ότι, για κάθε εξαντλούσα πολιτική, οι χρόνοι Τn και Τn+1 συνδέονται µε τη σχέση
66
x j ( Tn ) + δd j δ + τ j x j ( Tn )
Tn +1 = Tn + δ + = Tn + (γιατί ;) (5.4)
(1 / τ j ) − d j 1− ρ j
(*) Σηµείωση: Θεωρείστε µία συνάρτηση f(t) που ορίζεται στο διάστηµα [0,∞). Ορίζουµε το
σύνολο Φ(t)={f(x), x≥t} το οποίο περιλαµβάνει όλες τις τιµές της f από το σηµείο t και µετά. Αν
t1<t2 τότε το σύνολο Φ(t2) είναι υποσύνολο του Φ(t1), και εποµένως τα άνω φράγµατα (≈µέγιστες
τιµές) των συνόλων ικανοποιούν την ανισότητα sup{Φ(t1)} ≥ sup{Φ(t2)}.
Καθώς λοιπόν το t αυξάνεται το sup{Φ(t)} µειώνεται. Για λόγους απλότητας το sup{Φ(t)} =
sup{f(x), x≥t} το συµβολίζουµε supx≥t f(x).
Το limt→∞ [supx≥t f(t)] ονοµάζεται ασυµπτωτικά άνω όριο της f και ορίζεται ως το µικρότερο
από τα άνω φράγµατα των συνόλων Φ(t) όταν t→∞. Συµβολικά limt→∞ [supx≥t f(t)]=
inft≥0 [supx≥t f(t)].
Αν οι t λαµβάνουν ακέραιες τιµές, τότε η f(t) είναι ακολουθία και ισχύουν τα ίδια.
f(t)
t1 t2
67
Απόδειξη: Για κάθε στιγµή t, oρίζουµε το αποθηκευµένο έργο w(t) στην µηχανή ως τον
συνολικό χρόνο εργασίας που θα απαιτείτο ώστε η µηχανή να εξαντλήσει όλα τα
αποθέµατα αν δεν έρχονταν νέες παραγγελίες. Ητοι w(t)=Σi τi xi(t). Αν j είναι ο τύπος
προϊόντων που παράγονται κατα τον κύκλο [Τn,Tn+1), τότε
w(Tn+1)=Σi τi xi(Tn+1)= Σi≠ j τi xi(Tn+1) ...αφού xj(Tn+1)=0
ε a( j) b( i )
g n +1 ≤ g n 1 − + a ( j ) + 1 − max b( j )
τ b( j ) i a ( i )
Ο όρος µέσα στην τελευταία αγκύλη είναι ≤ 0 ενώ a( j) ≥ mini a( i). Συνεπώς
ε
g n +1 ≤ g n 1 − + ⋅ min a (i )
τ i
Αφού ο συντελεστής του gn ανήκει στο (0,1) προκύπτει ότι gn+1<gn και gn→0, οπότε η
ακολουθία w(Tn) γίνεται φραγµένη όταν n→ ∞ :
τ+ b(i )
lim w(Tn ) ≤ max
n →∞ ε i a(i )
Τώρα θα αποδείξουµε οτι η ανισότητα αυτή ισχύει και µέσα στα διαστήµατα
[Τn,Tn+1). Στο χρονικό διάστηµα [Τn,Tn+δ), η µηχανή µένει αδρανής και το αποθηκευµένο
έργο αυξάνεται µε ρυθµό ρ. Στη συνέχεια, µέχρι τη στιµή Τn+1 το έργο µειώνεται, λόγω
της συνθήκης ευστάθειας (5.2β):
dw/dt=Σi[τi(dxi/dt)]=[Σi≠j τidi] – τj(1/τj)= [Σi≠j ρi] – 1<0.
Η w(t) είναι κατά τµήµατα γραµµική συνάρτηση και
68
w(t)≤ w(Tn+δ) = w(Tn) + ρδ για κάθε t∈(Τn,Tn+1) (5.7)
Από τις (5.6) και (5.7) προκύπτει ότι
τ+ b(i ) δτ + ( ρ − ρi )
lim w(t ) ≤ max +δρ = δρ + max
t →∞ ε i a(i ) (1 − ρ)ε i τi
οπότε
1 1 δρ δτ + ( ρ − ρi )
∑i xi ( t ) ≤ ∑iτ i xi ( t ) = w( t ) ≤ + max (ii) (5.8)
τ − τ− τ − (1 − ρ)ετ − i τi
⇒(i).
Για το (iii) του θεωρήµατος, παρατηρούµε ότι ισχύει η ανισότητα
1 b( i )
∑i xi ( 0) ≤ max
ε i a( i )
οπότε,
τ+ b( i )
w(T0)=Σi τi xi(0)≤ τ+ Σi xi(0)≤ max
ε i a( i )
Εφαρµόζοντας την (5.6) διαδοχικά για n=0,1,... προκύπτει
τ+ b(i )
sup w(Tn ) ≤ max
n ε i a (i )
και από τις (5.7) και (5.8) προκύπτει η (iii).
Ενδιαφέρουσα περίπτωση των πολιτικών CAF είναι η πολιτική εξάλειψης του
µέγιστου αποθηκευµένου έργου (Clear-the-Largest-Work, CLW) δια της οποίας
επιλέγεται ο τύπος j όταν τjxj(Tn)= maxi τixi(Tn).
και κατόπιν να ακολουθηθεί παρόµοια διαδικασία όπως εκείνη της απόδειξης του
Θεωρήµατος 5.1. Η δεύτερη ανισότητα του Θεωρήµατος 5.2 οφείλεται στην σχέση (1 –
ρ)2≥0⇒ – ρ≥ – 1+ρ – ρ2.
69
5.3 ΥΠΟΒΕΛΤΙΣΤΗ ΠΟΛΙΤΙΚΗ ΕΛΕΓΧΟΥ ΑΠΟΘΗΚΩΝ
Εχουµε αποδείξει ότι οι πολιτικές CAF εγγυώνται την ευστάθεια του συστήµατος όταν
ισχύει η (5.2β). Το ερώτηµα που θα µας απασχολήσει εδώ είναι πόσο καλές είναι οι
πολιτικές αυτές. Το πρόβληµα της ελαχιστοποίησης του µέσου κόστους αποθέµατος σε
ένα πεπερασµένο διάστηµα λειτουργίας [0,Τ], απαιτεί την επίλυση ενός προβλήµατος
µικτού ακεραίου προγραµµατισµού µε πολλές µεταβλητές αποφάσεως και πολλούς
περιορισµούς.
Η διαδικασία επίλυσης είναι επαναληπτική: Λύνεται πρώτα το πρόβληµα όταν δεν
επιτρέπεται καµµία αλλαγή (δηλ. εµφανίζεται συνολικά ένας κύκλος παραγωγής) στο
διάστηµα [0,Τ] και υπολογίζεται το ελάχιστο κόστος αποθέµατος. Κατόπιν επιλύεται το
πρόβληµα για µία αλλαγή (δύο κύκλοι παραγωγής). Αν προκύψει µικρότερο κόστος,
τότε λύνεται το πρόβληµα µε δύο αλλαγές, κοκ. Οι λύσεις κάθε προβλήµατος µειώνονται
στην αρχή και κατόπιν αυξάνουν, οπότε περατώνεται η διαδικασία. Σε κάθε πρόβληµα,
υπολογίζονται οι βέλτιστες τιµές χρόνων έναρξης κάθε περιόδου, Tn, και τα αντίστοιχα
προϊόντα που θα παράγονται.
Τα ανωτέρω προβλήµατα είναι δύσκολα και γι' αυτό θα απαντήσουµε στο ερώτηµα
εµµέσως. Συγκεκριµένα, θα εύρουµε το µικρότερο δυνατό κόστος που µπορούµε να
επιτύχουµε εφαρµόζοντας πολιτικές CAF. Θεωρούµε τις ποσότητες γi≥0 που εκφράζουν
το κόστος διατήρησης µίας µονάδας αποθηκευµένου έργου για µία µονάδα χρόνου
(=κόστος καθυστέρησης παραγγελίας ή συντήρησης πρώτων υλών).
Θεώρηµα 5.3. Για κάθε ευσταθή πολιτική το µέσο κόστος αποθηκευµένου έργου
ανά µονάδα χρόνου έχει κάτω φράγµα:
1 t
lim − inf ∫o [∑ i γ iτ i xi (s )]ds ≥ δ [∑ i
γ i ρ i (1 − ρ i ) ]
2
t →∞ t 2(1 − ρ )
και την προηγούµενη ανισότητα ορίζοντας C:= Σi cτi προκύπτει ότι τα ni είναι oι
ακέραιοι αριθµοί που ικανοποιούν την
70
δΣi ni ≤ δ + Τ – Σiti ≤ δ + (1 – ρ)Τ +C. (5.11)
Το ζητούµενο φράγµα θα προκύψει εκτελώντας δύο βήµατα. Στο πρώτο βήµα θα
εστιασθούµε σε ένα προϊόν, π.χ. το προϊόν i, και θα κατασκευάσουµε µία "ιδανική"
γραµµή αποθέµατος Xi(t) η οποία έχει ίσο ή µικρότερο πλήθος περιόδων αρνητικής
κλίσης (παραγωγής i) µε το ni και ίση ή µικρότερη διάρκεια αρνητικής κλίσης µε την ti,
αλλά, παρ' όλα αυτά, έχει µικρότερο εµβαδόν (µέσο απόθεµα–κόστος):
∫oTX i ( s) ds ≤ ∫o xi ( s) ds. Στο δεύτερο βήµα, θα θεωρήσουµε όλους τους τύπους προϊόντων
T
xi(t)
(α)
(β): Χi(t)
0 Α Τ
(β) Στο διάστηµα (0,Α) προεκτείνουµε τις καθόδους της νέας γραµµής και στο διάστηµα
(Α,∞) τις ανόδους µέχρις ότου αγγίξουν τον οριζόντιο άξονα. Προκύπτει η τεθλασµένη
γραµµή β: Χi(t). Τα σηµεία τοµής µε τον οριζόντιο άξονα θεωρούνται ως τα πέρατα
περιόδων παραγωγής προϊόντος i, αντί των πραγµατικών. Παρατηρούµε ότι στην xi(t), ο
συνολικός χρόνος παραγωγής του προϊόντος i (= άθροισµα διαστηµάτων στα οποία η xi(t)
έχει αρνητική κλίση) είναι ίσος µε τον αντίστοιχο χρόνο στην Χi(t) (βλ. τα
παραλληλογραµµα στο ανωτέρω σχήµα). Προκύπτει µία γραµµή που θυµίζει τη µορφή
του αποθέµατος όταν εφαρµόζεται εξαντλούσα πολιτική ελέγχου. Η διακεκοµµένη
γραµµή Χi(t) έχει µικρότερο εµβαδόν από όλες τις άλλες και ταυτόχρονα το ίδιο πλήθος
ni και συνολική διάρκεια παραγωγής ίση µε ti.
(γ) Σχεδιάζουµε πάλι την προκύπτουσα γραµµή. Η γραµµή αυτή έχει ni σηµεία τοµής µε
τον άξονα (0,Τ), από τα οποία σχηµατίζονται (ni+1) σχήµατα. Το πρώτο και το τελευταίο
είναι ηµιτελή τρίγωνα ενώ τα ενδιάµεσα είναι πλήρη τρίγωνα επειδή περιλαµβάνουν µία
πλήρη περίοδο µη παραγωγής και µία πλήρη περίοδο παραγωγής του προϊόντος i. Τα
τρίγωνα αυτά είναι όµοια.
71
(β): Χi(t)
ηµιτελές τρίγωνο
1ο τρίγωνο ηµιτελές τρίγωνο
Β Α1 Α2 . . . Αni T
72
Τώρα το πρόβληµα έχει έναν περιορισµό ισότητας και Ρ περιορισµούς ανισότητας (5.16),
και επιλύεται εφαρµόζοντας τις συνθήκες των Kuhn-Tucker. Εχουµε:
∂f
∂ni
+λ
∂
∂ni
[δ ∑i ni − [(1− ρ )T +δ + C ]]− µ i = 0,i = 1,...,P
όπου λ και µi είναι οι πλλαπλασιαστές Lagrange των περιορισµών (5.15α) και (5.16).
Aγνοούµε τους (5.16) και βρίσκουµε το ακρότατο της f για ni≥0. Τότε
ni = k γ i ρ i (1− ρ i ) (5.17α)
όπου k =
(1− ρ )T + δ + C (5.17β)
δ ∑i γ i ρ i (1− ρ i )
Το ακρότατο είναι ελάχιστο επειδή η f είναι κυρτή συνάρτηση και ni≥0. Αντικαθιστώντας
τις σχέσεις (5.17) στην (5.13) προκύπτει
[∑ γ i ρi ( 1 − ρi ) ]
2
1 ( T − C ) 2δ
∫0 ∑i γ iτ i xi ( s) ds ≥
T i
.
T 2 T [ ( 1 − ρ ) T + δ + C]
Το lim-inf της ανωτέρω όταν Τ→∞ δίδει το κάτω φράγµα του Θεωρήµατος 5.3.
Από την απόδειξη του προηγούµενου θεωρήµατος προκύπτουν τα εξής:
(1) Η βέλτιστη πολιτική ελέγχου είναι εξαντλούσα (Βήµα 1, (β)).
(2) Η βέλτιστη πολιτική ελέγχου είναι περιοδική, εκτός ίσως από κάποια µεταβατική
περίοδο προσαρµογής (Βήµα 2, ισχυρισµός για τα ίσα τρίγωνα, εκτός από το πρώτο
ηµιτελές τρίγωνο). Το τελευταίο ηµιτελές τρίγωνο δεν υπάρχει αφού Τ→∞).
Μια τυπική µορφή των "ιδανικών" σταθµών Xi(t) φαίνεται στο επόµενο σχήµα, όπου
υποθέτουµε ότι παράγονται µόνο δύο προϊόντα.
X1(t)
X2(t)
δ δ δ δ δ
Τ1 Τ2 Τ3 Τ4 Τ5 Τ6
73
ανάλογο του Τ, (από τις σχέσεις (5.17α,β)) και γνωστό. Αυτό σηµαίνει ότι οι βάσεις των
τριγώνων για κάθε προϊόν i έχουν σταθερό µήκος, που καθορίζεται από τον περιορισµό
χρόνου Τ, τους χρόνους προετοιµασίας δ, και τα ni. Εποµένως, το εµβαδόν τους
εξαρτάται από τα ύψη τους Xi(Tn+δ). Από τις σχέσεις (5.12) και (5.17) προκύπτει ότι τα
1 − ρi
ύψη είναι ευθέως ανάλογα προς τις ποσότητες di . Προσπαθώντας να
γ i ρi
ταυτιστούµε µε την ιδανική πολιτική, πρέπει να µην επιτρέπουµε στα ύψη xi(Tn+δ) των
τριγώνων του πραγµατικού αποθέµατος να γίνονται µεγάλα σε σχέση µε τα ύψη του
ιδανικού.
ΠΟΛΙΤΙΚΗ: Τη στιγµή Tn επίλεξε το προϊόν j που αποκλίνει από την ιδανική του
εξέλιξη περισσότερο, ήτοι
xi ( Tn ) + δdi xi ( Tn ) + δdi
j= arg max = arg max (5.18)
i X i ( Tn + δ ) i d 1 − ρi
i γ ρ
i i
Σηµειώστε ότι αυτή η πολιτική δεν είναι τύπου CAF ακριβώς εξ αιτίας του
αθροιστικού όρου δdi. Με επιχειρήµατα ανάλογα του Θεωρήµατος 5.1 αποδεικνύεται οτι
είναι ευσταθής.
74
5.4.1 'Ακυκλα ∆ίκτυα
Ισχύουν και εδώ όσα αναφέραµε για την περίπτωση της µίας µηχανής και ακόµη, ότι ο
χρόνος µεταφοράς ενός κοµµατιού από µια µηχανή σε µία άλλη είναι ≤σ. Ενα άκυκλο
δίκτυο παραγωγής φαίνεται στο σχήµα.
d1
1 2 3 4 5
d2
Το προϊόν 1 εισρέει στην αποθήκη της µηχανής µε ρυθµό d1 και στη συνέχεια
µεταφέρεται διαδοχικά στις µηχανές 2,4 και 5. Ανάλογα, το προϊόν 2 διέρχεται από τις
µηχανές 2,3 και 4. Συµβολισµοί:
uim(t): = σύνολο προϊόντων τύπου i που εισήλθαν στην αποθήκη της µηχανής m στο
διάστηµα [0,t]
yim(t): = συνολική παραγωγή προϊόντων τύπου i από την m στο [0,t]
xim(t): = απόθεµα προϊόντων i στην αποθήκη της µηχανής m τη χρονική στιγµή t=
(αρχικό απόθεµα) + (εισροή στο διάστηµα [0, t]) − (εκροή στο [0, t])
yi(t): = συνολική εκροή προϊόντων τύπου i από το σύστηµα (δηλ. από την τελευταία
µηχανή) στο διάστηµα [0,t]
τim: = διάρκεια κατεργασίας ενός κοµµατιού τύπου i στην µηχανή m.
Το σύστηµα παραγωγής ονοµάζεται ευσταθές αν ισχύει η (5.1β), δηλ. αν η συνολική
εκροή υπολείπεται της εισροής κατά µία φραγµένη ποσότητα κάθε στιγµή t και για κάθε
προϊόν. Αποδεικνύεται ότι η (5.1β) είναι ισοδύναµη µε τη συνθήκη
supt xim(t)<∞ για κάθε i, m (5.19)
που δηλώνει ότι όλες οι στάθµες είναι φραγµένες. Αναγκαία συνθήκη ευστάθειας είναι
∑ τ imdi <1 , σε κάθε µηχανή m (5.20)
για όλα τα προϊόντα i
που επισκέπτονται την m
Θεωρούµε και πάλι τις πολιτικές CAF σύµφωνα µε τις οποίες, τη στιγµή Tn, η µηχανή m
προετοιµάζεται για κάποιο από τα προϊόντα j τα οποία ικανοποιούν την
xjm(Tn)≥εmΣixim(Tn) για κάποια σταθερά εm∈(0,1) και, µετά την προετοιµασία, η
παραγωγή συνεχίζεται έως ότου εξαντληθεί το απόθεµα: xjm(Tn+1)=0. Οι πολιτικές αυτές
είναι κατανεµηµένες, αφού χρησιµοποιούν µόνο τοπική πληροφορία: την σταθερά εm της
µηχανής και τις στάθµες των γειτονικών αποθηκών xim.
75
Θεώρηµα 5.4. Αν ισχύει η (5.20), τότε οι κατανεµηµένες CAF πολιτικές
σταθεροποιούν τα άκυκλα δίκτυα παραγωγής.
Απόδειξη: Το θεώρηµα θα προκύψει µε δύο βήµατα απόδειξης. Στο πρώτο βήµα θα
αποδείξουµε ότι µία µηχανή αποµονωµένη είναι ευσταθής ακόµη και για αλλοιωµένη
(σχεδόν) γραµµική εισροή προϊόντων. Στο δεύτερο βήµα θα αποσυνθέσουµε το σύστηµα
σε αποµονωµένες µηχανές και θα εφαρµόσουµε εκεί το αποτέλεσµα του πρώτου
βήµατος.
Βήµα 1. Θεωρήστε τη µηχανή m σε αποµόνωση, όπου ισχύουν όλα όσα συναντήσαµε
στην Παράγραφο 5.2 εκτός από το ότι η συνολική εισροή uim στο [0,t] είναι φραγµένη ως
εξής:
tdi+γ ≥ uim(t) ≥ tdi – γ.
Υποθέστε ότι ισχύει η (5.20). Εστω j ο τύπος προϊόντος που παράγεται στο διάστηµα
[Τn,Tn+1). Τότε
0 = xjm(Tn+1)= xjm(Tn)+{εισροή στο [Τn,Tn+1)} – {εκροή στο [Τn+δ, Tn+1)}
= xjm(Tn)+[ujm(Tn+1) – ujm(Tn)] – [(Tn+1 – Tn – δ)/τjm]
≤ xjm(Tn)+[Tn+1dj +γ – (Tndj – γ)] – [(Tn+1 – Tn – δ)/τjm]
Από αυτήν την ανισότητα λύνοντας ως προς (Tn+1 – Tn) προκύπτει
τ jm x jm (Tn ) + 2γ τ jm + δ
(Tn +1 − Tn ) ≤ (*)
1 − τ jm d j
Εργαζόµαστε οµοίως µε το Θεώρηµα 5.1, ορίζοντας ρim:=τimdi, ρm:=Σi ρim και wm(t) :=Σi
τim xim(t) οπότε έχουµε:
wm ( Tn +1) = ∑τ im xim ( Tn+1 ) = ∑[τ im xim ( Tn ) + τ im [ uim ( Tn+1 ) − uim ( Tn )]]
i≠ j i≠ j
≤ [ wm ( Tn ) − τ jm x jm ( Tn )] + [( ρm − ρ jm )( Tn +1 − Tn ) + 2γ ∑i τ im ]
ρm − ρ jm ( 2γτ jm + δ )( ρm − ρ jm )
≤ wm ( Tn ) − τ jm x jm ( Tn )1 − + + 2γ ∑i τ im ,
1 − ρ jm 1 − ρ jm
όπου η τελευταία προέκυψε από την (*). Επειδή xjm(Tn)≥εmΣixim(Tn), εξ ορισµού της
πολιτικής CAF, για κάποιο εm∈(0,1), προκύπτει τελικά
( 2γτ jm + δ )( ρm − ρ jm )
wm ( Tn +1) ≤ (1 − ε m ) wm ( Tn ) + + 2γ ∑i τ im .
1 − ρ jm
Ο συντελεστής της wm(Tn) είναι <1, και όµοια µε το Θεώρηµα 5.1 αποδεικνύεται ότι το
έργο wm(t) είναι φραγµένο, όπως και οι στάθµες xim(t).
Βήµα 2. Επειδή το σύστηµα είναι άκυκλο, υπάρχει πάντοτε µία µηχανή η οποία δεν
τροφοδοτείται από άλλες, αλλά δέχεται πρώτες ύλες. Στο σύστηµα του σχήµατος, η
76
µηχανή αυτή είναι η 1. Οι εισροές στη µηχανή αυτή είναι γραµµικές, tdi, και εποµένως
από το Θεώρηµα 5.1 έχουµε supt xi1(t)<∞. Επαγωγικά, έστω ότι οι στάθµες των µηχανών
2, ..., m–1 είναι φραγµένες. Θα αποδείξουµε το ίδιο για την m. Εδώ αριθµούµε µε 2 τη
µηχανή που δέχεται προϊόντα µόνον από έξω ή/και από την 1 και, εν γένει, µε m τη
µηχανή που δέχεται µόνο από έξω ή/και από τις 1, 2, ..., ή (το πολύ) m−1. Αν και το
προϊόν i δεν είναι υποχρεωτικό να περνά από όλες τις µηχανές 1, ...,(m – 1), m, αλλά από
κάποιο υποσύνολο αυτών, εν τούτοις, µπορούµε να θεωρήσουµε ότι: για µία µηχανή n
την οποία δεν επισκέπτεται ισχύουν τin=0, και οι χρόνοι µεταφοράς του από την n στην
αποθήκη της µηχανής n+1 είναι 0 (αντί σ). Επειδή µερικά κοµµάτια τύπου i µπορεί τη
m −1
στιγµή t να είναι υπό µεταφοράν, ∑ xin (t ) = (συνολική είσοδος στο σύστηµα) –
n =1
(συνολική είσοδος στην αποθήκη της m) – (µεταφερόµενα κοµµάτια 1→2→3...(m –
1)→m). Από το νόµο του Little Ν=λΤ προκύπτει
max(πλήθος µεταφερόµενων κοµ. από n→n+1)
≤ max (ρυθµός εξόδου από την n)× max(χρόνος µεταφοράς)
1
⇒(µεταφερόµενα κοµµ. 1→...→m) ≤ ∑ σ = Aim
για τις µηχανές n τ in
τις οποίες το i επισκέπτεται
m−1
Εποµένως ∑ xin ( t ) = tdi − uim( t ) − (κοµµάτια υπό µεταφορά)
n =1
m−1
⇒uim(t)=tdi − ∑ xin ( t ) − (κοµµάτια υπό µεταφορά)
n =1
Η τελευταία λόγω ευστάθειας, xim(t)<∞, δίδει tdi – γim ≤ uim(t)< tdi όπου γim≥0 κατάλληλη
σταθερά που εξαρτάται από την Αim. Αρα για την µηχανή m µπορούµε να γράψουµε
tdi – γim ≤ uim(t)≤ tdi+γim
που είναι ικανή συνθήκη ευστάθειας όπως προκύπτει από το Βήµα 1. Επαγωγικά,
προκύπτει ότι όλο το σύστηµα είναι ευσταθές.
Στο εδάφιο αυτό, εξετάζουµε την ευστάθεια δικτύων στα οποία οι διαδροµές των
προϊόντων µπορεί να περιέχουν κύκλους.
Συγκεκριµένα, όπως δείχνει το σχήµα, ένα προϊόν µπορεί να επισκέπτεται µία
µηχανή διαδοχικά (προϊόν 1 στην µηχανή 4) ή οι διαδροµές ενός ή περισσοτέρων
προϊόντων να σχηµατίζουν κύκλο (κύκλος: 1,2,3,4,1, από τις διαδροµές προϊόντων 1 και
2. Προσέξτε ότι αν θεωρήσουµε µόνο το προϊόν 1 ή µόνο το 2, τότε δεν συµπληρώνεται ο
κύκλος).
77
d1
1 d2 2 3 4 5
Για κάθε προϊόν i υποθέτουµε ότι η συνολική εισροή στο σύστηµα από έξω, ui(t),
ικανοποιεί τη σχέση
ui(t) – ui(τ) ≤ (t – τ)di + γ1 ∀t≥τ (5.21)
όπου γ1 θετική σταθερά. Εισροές που περιγράφονται από τη σχέση αυτή ονοµάζονται
εισροές µε φραγµένες εκρήξεις και αποτελούν ειδική περίπτωση της σχεδόν γραµµικής
εισροής την οποία συναντήσαµε κατά την απόδειξη του Θεωρήµατος 5.4. Κατά τα άλλα,
η λειτουργία του συστήµατος είναι ίδια µε εκείνη των άκυκλων δικτύων του
προηγούµενου εδαφίου. Εδώ όµως, ο συµβολισµός τim για τους χρόνους κατεργασίας δεν
είναι κατάλληλος, επειδή ένα προϊόν i µπορεί να επισκέπτεται µία µηχανή m πολλές
φορές. Στη συνέχεια εισάγεται νέος συµβολισµός και παρουσιάζονται κάποιες έννοιες
από τη θεωρία δικτύων που θα µας βοηθήσουν στην ανάλυση.
(1) Για κάθε προϊόν i, συµβολίζουµε ni το πλήθος των µηχανών τις οποίες επισκέπτεται
και h=1,2,...,ni είναι οι κατεργασίες του, µε τη σειρά που εκτελούνται. Η µηχανή m η
οποία εκτελεί την κατεργασία (i,h) συµβολίζεται m=µi,h. Η αποθήκη κοµµατιών τύπου i
που αναµένουν την κατεργασία h εµπρός από την m συµβολίζεται bih. Οι χρόνοι
προετοιµασίας δih της µηχανής m είναι διαφορετικοί για κάθε κατεργασία (i,h) και
φραγµένοι: δih≤δm. Το απόθεµα στην αποθήκη bih τη στιγµή t συµβολίζεται xih(t).
(2) Η διάρκεια της h – οστής κατεργασίας του προϊόντος i συµβολίζεται τih.
(3) Συµβολίζουµε µε Μ το σύνολο των µηχανών. Οι διασυνδέσεις των µηχανών
σχηµατίζουν κύκλους. Στη συνέχεια θα περιγράψουµε µία διαδικασία αποσύνθεσης του
συνόλου Μ σε υποσύνολα, τέτοια ώστε: (α) διασυνδέσεις µέσα σε ένα υποσύνολο
σχηµατίζουν κύκλους και (β) οι διασυνδέσεις µεταξύ των υποσυνόλων είναι άκυκλες.
(4) Μία µηχανή m' ονοµάζεται προσιτή (reachable) από την m αν υπάρχουν διαδοχικές
διασυνδέσεις, ανεξαρτήτως τύπων προϊόντων, που σχηµατίζουν µονοπάτι από την m
στην m'. Π.χ. στο σχήµα 1→2. Συµβολικά, m→m'. Αν m→m' και m'→m, τότε οι µηχανές
m και m' ονοµάζονται αµφισυνδεµένες (biconnected): και συµβολίζονται m↔m΄. Στο
σχήµα, 1→2→3→4→1, οι µηχανές αυτές είναι αµφισυνδεδεµένες).
(5) Ξεκινώντας από µία µηχανή m του συνόλου Μ µπορούµε να βρούµε όλες τις
µηχανές m′ οι οποίες είναι αµφισυνδεδεµένες µε την m. Το σύνολο αυτών των µηχανών
µαζί µε την m αποτελεί ένα υποσύνολο Μr. Είναι φανερό ότι κάθε µηχανή m ανήκει σε
κάποιο τέτοιο υποσύνολο, αλλά ποτέ σε δύο (γιατί;). Ετσι το Μ χωρίζεται σε R
υποσύνολα Mr (r=1,…,R) αµφισυνδεδεµένων µηχανών. Αν µία µηχανή δεν είναι
78
αµφισυνδεδεµένη µε άλλες, τότε αποτελεί η ίδια ένα υποσύνολο. Προφανώς
α. M1∪M2∪…∪MR=M
β. Μr∩Ms=∅, για r≠s
Επί πλέον, είναι δυνατόν να αριθµήσουµε τα R υποσύνολα µε τέτοιο τρόπο ώστε:
γ. Για κάθε Mr, ισχύουν τα εξής:
i. Αν r=1 τότε δεν υπάρχουν µηχανές σε άλλο υποσύνολο οι οποίες τροφοδοτούν το
Μ1. Το Μ1 τροφοδοτείται από την είσοδο ή αφ' εαυτού και ονοµάζεται ελάσσον.
ii. Αν η µηχανή m ανήκει στο Mr και είναι προσιτή από µία άλλη m' που ανήκει στο
Ms, τότε s<r.
iii. Αν οι µηχανές του Μr τροφοδοτούνται είτε από την είσοδο είτε µεταξύ τους, τότε
οι µηχανές κάθε ενός από τα προηγούµενα υποσύνολα M1,M2,...,Mr – 1
τροφοδοτούνται επίσης είτε από την είσοδο είτε µεταξύ τους. Τα υποσύνολα Μs,
1≤s≤r είναι όλα ελάσσονα.
Για το δίκτυο του σχήµατος, Μ1={1,2,3,4} και Μ2={5} και ικανοποιούνται οι α-γ της
παραδοχής (5).
(6) Θεωρούµε µία µηχανή m και την ακόλουθη πολιτική εξάντλησης κλάσµατος:
"Τη στιγµή Τn κατά την οποία εξαντλείται το απόθεµα κάποιου προϊόντος,
προετοιµάζουµε τη µηχανή για κάποια από τις αποθήκες εκείνες των οποίων τα
αποθέµατα ικανοποιούν τη συνθήκη
x jk ( Tn ) ≥ ε m ∑ xih ( Tn ) − Km (5.22)
bih : µi ,h = m
όπου εm>0 και Km είναι προεπιλεγµένες σταθερές".
Η (5.22) αποτελεί γενίκευση των κατανεµηµένων πολιτικών CAF , λόγω της
σταθεράς Κm.
(7) Το προϊόν i δύναται να επισκέπτεται την µηχανή m πολλές φορές και διαδοχικά,
πριν διοχετευθεί προς άλλη µηχανή. Για κάθε κατεργασία (i,h) συµβολίζουµε nih το
πλήθος των διαδοχικών φορών που το κοµµάτι θα πρέπει επανεισαχθεί στην ίδια µηχανή
πριν πάει σε άλλη, συµπεριλαµβανοµένης και της επίσκεψης h, (άρα nih≥1). Έστω ότι η
µi,k είναι η τελευταία διαφορετική µηχανή που τροφοδοτεί την µi,h µε κοµµάτια τύπου i
για την κατεργασία h, δηλ. k<h και µi,k ≠µi,h . H ποσότητα Dih ονοµάζεται επαγόµενος
ρυθµός τροφοδοσίας της µi,h ορίζεται ίση µε
1/τik, αν µi,k ↔ µi,h , δηλ. ανήκουν στο ίδιο υποσύνολο
di, αν οι µi,k και µi,h δεν ανήκουν στο ίδιο υποσύνολο, ή η µi,h τροφοδοτείται από
έξω.
Χρησιµοποιώντας τους επαγόµενους ρυθµούς τροφοδοσίας θα διατυπώσουµε µία ικανή
συνθήκη ευστάθειας των πολιτικών CAF που είναι ανάλογη της (5.2α) ή (5.2b).
79
Θεώρηµα 5.5. Αν ισχύει ο αυστηρός περιορισµός
ρm′ = ∑ Dih τ ih < 1, για όλες τις µηχανές m, (5.23)
∀ i , h: µ i ,h = m
80
Tο έργο wm(Tn) είναι ο συνολικός χρόνος που πρέπει να απασχοληθεί η µηχανή m για να
εξαντλήσει τα τρέχοντα αποθέµατα, χωρίς τους χρόνους προετοιµασίας. Συµβoλίζουµε τ+
τον µέγιστο συνολικό χρόνο κατεργασιών ενός κοµµατιού πρίν αυτό φύγει από την m και
τ – τον ελάχιστο:
τ + = max [τ ih +L+τ i( nih −1 )] και τ − = min [τ ih +L+τ i( nih −1 )]
i ,h: i ,h:
µih = m µih = m
81
όπου Γm, gm είναι κατάλληλες µή αρνητικές σταθερές, κοινές για όλα τα (j,k) της µηχανής
m. Το Γm δύναται να ανήκει είτε στο [0,1) είτε στο [1,∞). Αν ανήκει στο δεύτερο
διάστηµα, τότε 1 – Γm ≤ 0 και
wm(Tn+1)≤ gm (5.30α)
Aν ανήκει στο πρώτο διάστηµα, τότε 0<1 – Γm≤1 και, εφαρµόζοντας διαδοχικά την
(5.27),
1 − (1 − Γ m ) n
wm(Tn+1)≤ (1 − Γ m ) n wm ( T1 ) + gm
1 − (1 − Γ m )
gm
≤ wm ( T1) + για κάθε Tn . (5.30β)
Γm
Οι σχέσεις (5.30α, β) δηλώνουν ότι τις χρονικές στιγµές Τn το αποθηκευµένο έργο είναι
φραγµένο. Από την (5.27β) προκύπτει ότι και οι στάθµες των αποθηκών είναι φραγµένες:
Σi,h xih(Tn)≤ wm(Tn) / τ –
≤ [max {gm, wm(T1)+ gm/Γm}] / τ –
(5.31)
Λόγω των (5.25) και (5.31), τα µήκη των διαστηµάτων (Τn+1 – Tn) είναι φραγµένα, και οι
εισροές στις αποθήκες στο διάστηµα [Τn, t), όπου t≤Tn+1, είναι επίσης φραγµένες. Tελικά,
υπάρχει ένα άνω φράγµα Χ1 στην στάθµη κάθε αποθήκης του υποσυστήµατος Μ1 :
xih(t)≤ Χ1 για κάθε i,h, (5.32)
άρα το υποσύστηµα Μ1 είναι ευσταθές.
Μ2: Θεωρούµε τώρα δύο τυχαίες χρονικές στιγµές τ και t ≥ τ και την µηχανή m'∈M1, η
οποία τροφοδοτεί την m∈M2, δηλ. m'→m. Εστω ότι η m' εκτελεί την κατεργασία (h – 1)
σε κοµµάτια τύπου i και τροφοδοτεί την m η οποία εκτελεί την κατεργασία h. Στο
διάστηµα [τ,t], η εισροή στην αποθήκη bih της m δεν µπορεί να υπερβεί το άθροισµα της
xi(h – 1)(τ), που είναι η στάθµη της αποθήκης bi(h – 1) , και της εισροής στην bi(h – 1) στο
διάστηµα [τ,t]. Οµοίως, αν η m' τροφοδοτείται από άλλη µηχανή m'' τότε η εισροή στην
bi(h – 1) δεν µπορεί να υπερβεί το άθροισµα της στάθµης αποθήκης bi(h – 2) , και της εισροής
στην bi(h – 2) στο διάστηµα [τ,t]. Συνεχίζοντας καταλήγουµε στη σχέση
(εισροή στην bih στο [τ,t])≤ xi (h – 1)(τ) +…+xi1(τ) +(εισροή πρώτων υλών στο [τ,t])
≤(h – 1)X1+di(t – τ)+γ1
και θεωρώντας το γ2 := γ1 + Χ1max(h – 1)
(εισροή στην bih στο [τ,t])≤γ2+di(t – τ) = γ2+Dih(t – τ). (5.33)
Εποµένως, όταν µία µηχανή m του υποσυστήµατος Μ2 δέχεται προϊόν από µηχανή m'
που δεν ανήκει στην Μ2, τότε η συνολική εισροή είναι της µορφής (5.24δ). Αν τώρα
m'∈Μ2, τότε ισχύει πάλι η (5.33) µε Dih=1/τi(h – 1). Η (5.33) εκφράζει και πάλι εισροές µε
φραγµένες εκρήξεις και µε ανάλογο τρόπο αποδεικνύεται η ευστάθεια στο υποσύστηµα
Μ 2:
82
xih(t)≤ Χ2 για κάθε i,h στο υποσύστηµα Μ2.
Μn: Συνεχίζουµε επαγωγικά. Άν τα Μ1, ..., Μn – 1 είναι ευσταθή, τότε είναι και το Mn
ευσταθές.
1 τ4 τ5
d1=1/τ1 τ2 τ3
τ8 τ7 d2=1/τ 6 3
τ 10 τ9 2
5.5 ΕΡΓΑΣΙΑ
83
ονοµατεπωνύµου σας δια του 500. Υπολογίσατε τα αποθέµατα xi(T) τη στιγµή Τ.
Υπόδειξη:
I.. Οι διασυνδέσεις αποθηκεύονται µε κατάλληλο συµβολισµό. Πχ. ορίζεται ο πίνακας
Ε(i) επόµενου δείκτη ο οποίος σε κάθε δείκτη κατεργασίας i (i=1, ..., 10) αντιστοιχεί και
τον επόµενο δείκτη: Ε(1)=2, Ε(2)=3, ..., Ε(5)=έξοδος=0, Ε(6)=7, ...., Ε(10)=0 .
Σε κάθε µηχανή υπάρχει ο πίνακας δεικτών κατεργασιών και ένας δείκτης της τρέχουσας
κατεργασίας. Ο τελευταίος δείκτης γίνεται 0 όταν οι αποθήκες είναι άδειες και η µηχανή
αδρανής.
Σε κάθε δείκτη κατεργασίας i αντιστοιχεί µία αποθήκη µε στάθµη X(i)
II. Ο αλγόριθµος παρατηρεί την εµφάνιση των εξής γεγονότων
Τέλος κατεργασίας i και αναχώρηση κοµµατιού από µηχανή.
Είσοδος ακατέργαστου κοµµατιού από έξω.
Παρατηρούνται οι µηχανές και τα σηµεία εισόδου πρώτων υλών. Καταγράφονται όλες οι
αναχωρήσεις και όλες οι είσοδοι µε την σειρά που λαµβάνουν χώρα. Συνολικά υπάρχουν
4 µηχανές και 2 σηµεία εισόδου, και άρα 6 υποψήφια γεγονότα. Έστω t ο τρέχων χρόνος.
Α. Όταν σηµειώνεται το τέλος κατεργασίας i και αναχώρηση κοµµατιού από µηχανή m
τότε:
1. Μειώνεται το απόθεµα των κοµµατιών x(i) κατα 1
2. Προστίθεται 1 στο απόθεµα x(E(i)) της αποθήκης στην οποία πηγαίνει το κοµµάτι. Αν
η µηχανή m΄ εκείνης της αποθήκης συµβεί να είναι αδρανής, τότε ενεργοποιείται
ακαριαία και προετοιµάζεται (αν το τελευταίο κοµµάτι που είχε κατεργασθεί ήταν από
άλλη αποθήκη), και κατόπιν αρχίζει την κατεργασία. Υπολογίζεται ο χρόνος αναχώρησης
αυτού του κοµµατιού από την m΄: t+τE(i)+ δ (αν χρειαστεί να γίνει προετοιµασία) .
3. (i) Αν το υπόλοιπο απόθεµα κοµµατιών στην m είναι > 0 τότε η µηχανή m συνεχίζει µε
ίδιες κατεργασίες i. Προγραµµατίζεται η επόµενη αναχώρηση από την m σε χρόνο t+τi.
(ii) Αν το υπόλοιπο απόθεµα κοµµατιών στην m είναι 0 τότε
α) επιλέγεται άλλη αποθήκη µε το µεγαλύτερο απόθεµα x(j). H µηχανή m
προετoιµάζεται και προγραµµατίζεται η επόµενη αναχώρηση τύπου j από την m σε χρόνο
t+δ+τj .
β) αν όλες οι αποθήκες της m είναι άδειες η µηχανή m µένει αδρανής και
προγραµµατίζεται η επόµενη αναχώρηση τη στιγµή ∞ (πχ. τη χρονική στιγµή
2000+1=2001)
Β. Όταν σηµειώνεται άφιξη σε σηµείο εισροής τότε αυξάνεται το απόθεµα µίας
αποθήκης (Χ(2) ή Χ(7) ανάλογα) κατα 1. Προγραµµατίζεται η επόµενη άφιξη σε επόµενο
χρόνο.
ΙΙΙ. Για κάθε σηµείο εισροής και µηχανή έχει υπολογισθεί ο χρόνος επόµενου γεγονότος.
84
Βρίσκεται το γεγονός που θα γίνει στο συντοµότερο χρόνο ο οποίος είναι ο νέος χρόνος t.
Aν t≤2000 τότε εκτελείται η διαδικασία Α ή Β. Αν t>2000 τότε ΤΕΛΟΣ.
ΙV. Στην αρχή t=0. Oι µηχανές 3,4 είναι αδρανείς ενώ οι 1, 2 προετοιµάζονται και
αρχίζουν κατεργασίες µε χρόνους περάτωσης (επόµενων γεγονότων): t+δ+τi ,i=2,7.
Προγραµµατίζονται 2 νέες αφίξεις µία γα κάθε σηµείο άφιξης πρώτων υλών.
85
6 BΙΒΛΙΟΓΡΑΦΙΑ
Κεφάλαια 1,2.3
Κ. Baker, Introduction to Sequencing and Scheduling, Wiley, New York, 1974.
R. W. Conway, W. L. Maxwell, and L. W. Miller, Theory of Scheduling, Addison
Wesley, Reading, MA, 1967.
S. French, Sequencing and Scheduling: An Introduction to the Mathematics of the Job –
Shop, Ellis Horwood, Chichester, England, 1982.
T. Morton and D. Pentico, Heuristic Scheduling Systems, Wiley, New York, 1993.
Kεφάλαιο 4
M. S. Bazaraa, H. D. Sherali, and C. M. Shetty, Nonlinear Programming, 2nd ed., Wiley,
New York, 1993.
J. G. Kimemia and S. B. Gershwin, "Multicommodity network flow optimization of a
flexible manufacturing system," M.I.T. LIDS Report ESL-FR-834-2, 1981.
L. Kleinrock, Queueing Systems, Vol. I: Theory, Wiley, New York, 1975.
∆. Ξηρόκωστα, Επιχειρησιακή Έρευνα: Μη Γραµµικός και ∆υναµικός Προγραµµατισµός,
Ε.Μ.Π., Αθήνα, 1984.
Kεφάλαιο 5
P. R. Kumar and T. I. Seidman, "Dynamic instabilities and stabilization methods in
distributed real-time scheduling of manufacturing systems," IEEE Transactions on
Automatic Control, 35(3), 289-298, 1990.
J. R. Perkins and P. R. Kumar, "Stable, distributed, real-time scheduling of flexible
manufacturing/assembly/disassembly systems," IEEE Transactions on Automatic
Control, 34(2), 139-148, 1989.
86