Download as pdf or txt
Download as pdf or txt
You are on page 1of 88

ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ

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

ΠΑΡΑΓΩΓΗΣ
Σηµειώσεις Μεταπτυχιακού Μαθήµατος

Βασίλης Σ. Κουϊκόγλου
Μάρτιος 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 ΕΙΣΑΓΩΓΗ

1.1 ΠΡΟΒΛΗΜΑΤΑ ΠΑΡΑΓΩΓΗΣ

Προγραµµατισµός είναι το σχέδιο εκτέλεσης ενός πλήθους δραστηριοτήτων οι οποίες


δεσµεύουν πόρους (χρήµα, χρόνο, µηχανές, συστήµατα µεταφοράς, ανθρώπινο δυναµικό
κλπ.). Στα συστήµατα παραγωγής οι δραστηριότητες περιλαµβάνουν µεταφορά
προϊόντων σε διάφορα στάδια παραγωγής, κατεργασίες που εκτελούνται από µηχανές και
εργαζόµενους, προετοιµασία µηχανών (αλλαγές εργαλείων κοπής, φόρτωση/εκφόρτωση
κοµµατιών). Στόχος του προγράµµατος παραγωγής είναι ο συνδυασµός των ακόλουθων
(α) αύξηση παραγωγικότητας
(β) ικανοποίηση πελατών - έγκαιρη παράδοση προϊόντων - ποιότητα
(γ) ελαχιστοποίηση κόστους παραγωγής
Το πρόβληµα του προγραµµατισµού περιπλέκεται λόγω του πλήθους περιορισµών
οι οποίοι συνδέουν πόρους και δραστηριότητες. Τέτοιες περιπτώσεις αποτελούν τον
κανόνα σε πραγµατικά συστήµατα και η επίλυση του προβλήµατος παρουσιάζει
αξεπέραστες µαθηµατικές δυσκολίες. Φαντασθείτε ότι αντιµετωπίζετε το εξής πρόβληµα:
Ένα εργοστάσιο παράγει δύο τύπους προϊόντων, καθένα µε διαφορετικό κόστος
παραγωγής, τιµή πώλησης, ελάχιστο επίπεδο ικανοποίησης της ζήτησης, είδη και
χρόνους κατεργασιών. Ζητούνται οι ποσότητες παραγωγής ώστε να µεγιστοποιείται το
κέρδος, να ικανοποιούνται οι ελάχιστες απαιτήσεις της ζήτησης, και οι µηχανές να έχουν
χρόνο για συντήρηση και επισκευές. Όταν η αντικειµενική συνάρτηση και οι περιορισµοί
είναι γραµµικές συναρτήσεις, η βέλτιστη παραγωγή προκύπτει από την επίλυση
προβλήµατος γραµµικού προγραµµατισµού. Μείωση του κόστους λειτουργίας και
βελτίωση της λύσης µπορεί να επιτευχθεί αν διατίθενται προβλέψεις για την ζήτηση ώστε
τα λειτουργικά χαρακτηριστικά των µηχανών οι οποίες θα εγκατασταθούν να ταιριάζουν
στη συγκεκριµένη ζήτηση. Ίσως ακόµη να ήταν προτιµότερο το σύστηµα να παρήγαγε
άλλους τύπους προϊόντων, τα οποία αποφέρουν περισσότερο κέρδος.
Αντιλαµβάνεται κανείς ότι το γενικό πρόβληµα της παραγωγής αποσυντίθενται σε
υποπροβλήµατα ή βαθµίδες. Κάθε βαθµίδα αντιµετωπίζει προβλήµατα που αναφέρονται
σε συγκεκριµένη κλίµακα και συγκεκριµένο χρονικό ορίζοντα (επιλογή προϊόντων-
σχεδίαση συστήµατος-προγραµµατισµός παραγωγής).
Βαθµίδα 1 : Μακροπρόθεσµος Σχεδιασµός (Design)
Αποφασίζονται: επέκταση του συστήµατος, χωροθέτηση τµηµάτων παραγωγής,
κύκλος ζωής του συστήµατος, τεχνολογία που θα χρησιµοποιηθεί.
Ορίζοντας : Μέχρι 5 έτη.
Βαθµίδα 2 : Μεσοπρόθεσµος Σχεδιασµός (Aggregate Planning)
Αποφασίζονται: γενικές πολιτικές προσαρµογής του συστήµατος σε εποχικές

3
µεταβολές της ζήτησης (πρόσληψη - απόλυση εποχικού προσωπικού, υπεργολαβίες µε
άλλους κατασκευαστές, µετακινήσεις πόρων από το ένα τµήµα στο άλλο, υπερωρίες).
Ορίζοντας : Μέχρι 1 έτος.
Βαθµίδα 3 : Βραχυπρόθεσµος Σχεδιασµός (Master Scheduling, MRP)
Αποφασίζονται: προγραµµατισµός απαιτήσεων τελικών προϊόντων (master
schedule) και υλικών για αυτά (material requirements planning - MRP). Εδώ γίνονται
εκτίµηση χρόνων παράδοσης για κάθε τύπο προϊόντος, υπολογισµός χρόνων παραγγελίας
πρώτων υλών και προβλέψεις.
Ορίζοντας : 1-6 µήνες.
Βαθµίδα 4 : Προγραµµατισµός
Το σύστηµα MRP έχει δώσει τις προβλέψεις. Ο ορίζοντας της προηγούµενης
βαθµίδας χωρίζεται σε περιόδους 2-6 εβδοµάδων. Ο προγραµµατισµός απαιτήσεων
επαναλαµβάνεται κάθε εβδοµάδα ή συντοµότερα έτσι ώστε να αντιµετωπίζονται
προβλήµατα απρόβλεπτων παραγγελιών, διαθεσιµότητας πόρων, και παράλληλα το
εβδοµαδιαίο πρόγραµµα να ταιριάζει µε τα προγράµµατα των επόµενων εβδοµάδων. Τα
συγκεκριµένα προβλήµατα θα αναπτυχθούν σε επόµενο εδάφιο.
Βαθµίδα 5 : Επαναπρογραµµατισµός - Έλεγχος παραγωγής
Βλάβες µηχανών, καθυστερήσεις πρώτων υλών, ακριβείς περιορισµοί σε
δραστηριότητες σε πόρους εξετάζονται λεπτοµερώς. ∆ιορθώνονται τυχόν αποκλίσεις από
την προβλεπόµενη παραγωγή, καθορίζονται προτεραιότητες σε πραγµατικό χρόνο. Ο
ορίζοντας εκτείνεται από µία βάρδια έως µερικές ηµέρες.
Ο προγραµµατισµός παραγωγής αποτελεί ένα εποχιακό πρόβληµα. Με τον όρο
προγραµµατισµό συνήθως εννοούµε τέτοιας κλίµακας προβλήµατα ή ακόµη πιο
βραχυπρόθεσµα.

1.2 ΤΟΠΟΛΟΓΙΕΣ ΣΥΣΤΗΜΑΤΩΝ ΠΑΡΑΓΩΓΗΣ

Θα περιγράψουµε τα συστήµατα στα οποία αντιµετωπίζονται προβλήµατα της Βαθµίδας


4. Ως εργασία θεωρείται η παραγωγή παρτίδας ενός τύπου προϊόντος ή η ικανοποίηση
µίας παραγγελίας. Τα προβλήµατα διαφοροποιούνται ως προς τον τρόπο εκτέλεσης
εργασιών και το είδος του συστήµατος παραγωγής.
∆ιακρίνουµε τα ακόλουθα συστήµατα.
Κλασσικό Κατάστηµα Εργασιών (Classic Job Shop). Eκτελεί πολλές εργασίες
(παράγει πολλά είδη προϊόντων). Στο σύστηµα υπάρχουν n µηχανές, µία για κάθε
κατεργασία. Κάθε εργασία (προϊόν) απαιτεί n κατεργασίες. ∆ιαφορετικές εργασίες
µπορεί να έχουν διαφορετικά µονοπάτια µέσα στο σύστηµα.

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.

2.2 ΟΜΑΛΑ ΣΤΑΤΙΚΑ ΠΡΟΒΛΗΜΑΤΑ

2.2.1 Ακριβή Αποτελέσµατα

Θα διατυπώσουµε στατικά προβλήµατα µε οµαλές αντικειµενικές συναρτήσεις και λύσεις


οι οποίες έχουν τη µορφή απλών κανόνων.
Μία τεχνική επίλυσης προβληµάτων συνδυαστικής βελτιστοποίησης είναι η
εφαρµογή επιχειρηµάτων αµοιβαίας αντιµετάθεσης ή εναλλαγής (interchange
arguments). Αν το πρόβληµα χωρίζεται σε βαθµίδες, τότε θεωρούµε µία αυθαίρετη
σύνθετη πολιτική πολλών βαθµίδων. Εξετάζουµε δύο διαδοχικές βαθµίδες και
εναλλάσσουµε τις αποφάσεις που ελήφθησαν οπότε προκύπτει µία νέα πολιτική την
οποία συγκρίνουµε µε την αρχική. Επιλέγουµε την καλύτερη και συνεχίζουµε τις
συγκρίσεις µέχρις ότου βρούµε την πολιτική η οποία δεν επιδέχεται περαιτέρω βελτίωση.
Η τεχνική αυτή έχει περιορισµένη εφαρµογή σε προβλήµατα βελτιστοποίησης. Ωστόσο,
χρησιµεύει στις αποδείξεις θεωρηµάτων όπως θα δούµε στη συνέχεια.

Πρόταση 2.1. Για το στατικό πρόβληµα min Fw η βέλτιστη πολιτική είναι να


εκτελείται η εργασία που έχει το µικρότερο [pi/wi]. Η πολιτική αυτή ονοµάζεται

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

O κανόνας WSPT διατυπώνεται και ως


p[1] p[2] p[ n ]
≤ ≤L ≤
w[1] w[2] w[ n ]
όπου [j] συµβολίζει το δείκτη της εργασίας η οποία εκτελείται j-οστή.
Αν τα βάρη είναι ίσα τότε µπορούµε χωρίς βλάβη της γενικότητας να θέσουµε
wi=1/n. Η αντικειµενική συνάρτηση ισούται µε τον µέσο χρόνο ροής, η βέλτιστη
ακολουθία είναι τέτοια ώστε p[1]≤...≤p[i]≤ ...≤p[n] και ονοµάζεται SPT (shortest processing
time).

Πρόταση 2.2. Ο κανόνας WSPT ελαχιστοποιεί τις συναρτήσεις


(α) Fw (β) Cw (γ) Lw και (δ) nw := µέσο σταθµισµένο απόθεµα ανά µονάδα
χρόνου.

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

όπου Fmax = p1 + . . . + pn . Αναλυτικά, αν S = (1, 2, . . ., n) είναι µία ακολουθία


εκτέλεσης τότε από τις (*) προκύπτει
1
nw(S) = [( w1 + w2 + ... + wn ) p1 + ( w2 + ... + wn ) p 2 + ... + wn p n ] .
Fmax
Εφαρµόζουµε αντιµετάθεση γειτονικών αποφάσεων και αποδεικνύουµε ότι ένα
πρόγραµµα δεν είναι βέλτιστο αν δεν ισχύει ο κανόνας WSPT. 4

Πρόταση 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

Πρόταση 2.4. (Αλγόριθµος Hodgson) Στατικό πρόβληµα min N (ελαχιστοποίηση


του πλήθους εκπρόθεσµων εργασιών). Αλγόριθµος :
(1) ∆ιάταξε τις εργασίες σύµφωνα µε τον κανόνα EDD.
(2) Αν δεν υπάρχουν καθυστερήσεις ή υπάρχει µόνο µία, τότε αυτή είναι η
βέλτιστη διάταξη.
(3) Σάρωσε τις εργασίες από αριστερά προς το τέλος. Βρες την πρώτη εργασία
που καθυστερεί. Έστω ότι αυτή είναι η εργασία i.
(4) Από τις εργασίες που προηγούνται της i, και της i συµπεριλαµβανοµένης,
βρες αυτήν που έχει µεγαλύτερο χρόνο εκτέλεσης. Βάλε την εργασία αυτή
τελευταία στη διάταξη, δηλαδή n-οστή.
(5) Υπολόγισε τις καθυστερήσεις και επανάλαβε το βήµα 2.
Για το βήµα 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.

Πρόταση 2.3α. Αν pj = 1 για κάθε εργασία j τότε η ακολουθία EDD ελαχιστοποιεί


το Lmax.
Aπόδειξη: Εις άτοπον απαγωγή. Υποθέστε ότι το βέλτιστο πρόγραµµα δεν είναι τύπου
EDD δηλαδή, υπάρχουν δύο (µικρο)εργασίες, έστω j και j+1, έτσι ώστε η j εκτελείται
αµέσως πριν από την j+1 και dj > dj+1. Έστω ότι ο χρόνος περάτωσης της πρώτης
εργασίας είναι Cj=C. Ο χρόνος περάτωσης της δεύτερης είναι Cj+1=C+1. Τότε
 
Lmax = max max Li , C − d j , C + 1 − d j +1 
i ≠ j , j +1 
Τώρα φτειάχνουµε ένα άλλο πρόγραµµα αντιµεταθέτοντας τις εργασίες j και j+1. Τότε
Cj+1=C και Cj=C+1, οπότε η νέα καθυστέρηση είναι
 
′ = max max Li , C − d j +1 , C + 1 − d j 
Lmax
i ≠ j , j +1 
Όµως τότε, επειδή dj > dj+1⇒ – dj+1< – dj , ο τελευταίος όρος του Lmax είναι µεγαλύτερος
′ ≤ Lmax , πράγµα άτοπο. 4
από τους C – dj, C – dj+1, C+1 – dj. Άρα Lmax

Aποδεικνύουµε τώρα την Πρόταση 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 δηλ., η λύση
στο πρόβληµα των υποεργασιών µοναδιαίας διάρκειας και η λύση του αρχικού
προβλήµατος είναι ίδιες.

Πρόταση 2.5. Σε προβλήµατα µε προθεσµίες, η ποσότητα di – pi είναι το


περιθώριο (slack) καθυστέρησης έναρξης της i ώστε να περατωθεί εγκαίρως. Η
εκτέλεση εργασιών κατα σειρά αυξανόµενων περιθωρίων µεγιστοποιεί το Lmin.
Aπόδειξη : Άσκηση.

Η πρόταση αυτή λέει ότι αν θεωρήσουµε ως "επείγουσες" εκείνες τις εργασίες που έχουν
µικρό περιθώριο και τις εκτελέσουµε πρώτες, τότε δεν βελτιστοποιούµε κανένα από τα
µέτρα απόδοσης που συνήθως ενδιαφέρουν την διοίκηση του συστήµατος.
Υποθέτουµε τώρα ότι το κόστος καθυστέρησης της εργασίας i είναι wi. Το
πρόβληµα είναι η ελαχιστοποίηση του σταθµισµένου πλήθους εργασιών που
καθυστερούν, το οποίο συµβολίζεται Nw.

Πρόταση 2.6. α. Για το πρόβληµα min Nw ο αλγόριθµος υποβέλτιστης ακολουθίας


είναι:
Βήµα 1: ∆ιάταξη κατα EDD.
Βήµα 2: Aν δεν υπάρχουν καθυστερήσεις τότε ΤΕΛΟΣ.
Βήµα 3: Βρές την πρώτη εργασία που θα καθυστερήσει µε αυτό το πρόγραµµα
και ονόµασέ την άκρη της αλυσίδας.
Βήµα 4: Παρατήρησε τις εργασίες της αλυσίδας εργασιών από την πρώτη
µέχρι την άκρη της αλυσίδας. Προσδιόρισε µία "κατάλληλη
εργασία" για να µπει στο τέλος της ακολουθίας. Ως κατάλληλες
εργασίες θεωρούνται η άκρη της αλυσίδας, ή κάποια ενδιάµεση
εργασία j που ευρίσκεται µεταξύ της πρώτης εργασίας που εκτελείται

12
και της άκρης της αλυσίδας, τέτοια ώστε να µην υπάρχει άλλη
εργασία i της αλυσίδας η οποία να έχει ταυτόχρονα µεγαλύτερη
διάρκεια pi και µικρότερο βάρος wi από τις αντίστοιχες ποσότητες της
"κατάλληλης εργασίας".
Βήµα 5: Bάλε µία από τις κατάλληλες εργασίες στο τέλος της ακολουθίας και
υπολόγισε τους νέους χρόνους περάτωσης. Αν τώρα υπάρχει εργασία
που καθυστερεί, τότε ονόµασέ την άκρη της αλυσίδας και επανάλαβε
το βήµα 4.
Βήµα 6: Όλες οι εργασίες που έχουν µεταφερθεί στο τέλος θεωρούνται
εκπρόθεσµες. Υπολόγισε πάλι τους χρόνους εκτέλεσης και τις
καθυστερήσεις. Πήγαινε στο βήµα 2.
Η απόδειξη παραλείπεται.

2.2.2 Ασκήσεις (Σειρά 1)

1 (35%). Αποδείξατε την Πρόταση 2.5.


2 (50%). Υποθέσατε ότι µε την ακολουθία EDD µία µόνον εργασία περατώνεται
εκπρόθεσµα. Θεωρώντας ένα γενικό πρόβληµα µε n εργασίες, αποδείξατε τα "γιατί" της
Πρότασης 2.4 και ότι δεν υπάρχει άλλη ακολουθία µε την οποία όλες οι εργασίες
εκτελούνται εµπρόθεσµα.
3 (15%). Το κόστος περάτωσης της εργασίας i την χρονική στιγµή Fi ισούται µε
∫0Fi Ai e − Bt dt , µε Ai, B>0. Εύρετε το έναν αλγόριθµο για την ελαχιστοποίηση του κόστους
εκτέλεσης n εργασιών µε διάρκειες pi, i=1, ..., n.

2.3 ΜΕΘΟ∆ΟΙ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Μέχρι τώρα έχουµε εξετάσει προβλήµατα τα οποία λύνονται µε επιχειρήµατα


αντιµετάθεσης γειτονικών πολιτικών (adjacent interchange arguments), και την τεχνική
διακοπτόµενων µικροεργασιών. Στην παράγραφο αυτή περιγράφουµε µεθόδους επίλυσης
γενικότερων προβληµάτων. Οι περισσότερες από αυτές είναι προσεγγιστικές.

2.3.1 Τοπική (Γειτονική) Έρευνα - Neighborhood (Local) Search

Tα βήµατα της µεθόδου είναι :


(α) Ξεκίνησε από ένα αρχικό πρόγραµµα εκτέλεσης
(β) Βρες όλα τα παρόµοια (γειτονικά) προγράµµατα
(γ) Επίλεξε το καλύτερο βάσει κάποιου κριτηρίου

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

2.3.2 ∆υναµικός Προγραµµατισµός - Dynamic Programming

O δυναµικός προγραµµατισµός είναι µία µέθοδος βελτιστοποίησης συστηµάτων στα


οποία οι αποφάσεις λαµβάνονται διαδοχικά ή κατά βαθµίδες. Αναπτύχθηκε στη δεκαετία
του '50 από τον µαθηµατικό Richard Bellman, αν και είχε χρησιµοποιηθεί κατα την
προηγούµενη δεκαετία χωρίς, ωστόσο, να της δοθεί ιδιαίτερη σηµασία.
Την κεντρική ιδέα της µεθόδου αποτελεί η αρχή του βελτίστου (principle of
optimality) σύµφωνα µε την οποία σε ένα πρόβληµα λήψης διαδοχικών αποφάσεων, η
βέλτιστη ακολουθία αποφάσεων πρέπει να περιέχει µόνον βέλτιστες υπακολουθίες
αποφάσεων. Συγκεκριµένα, η βέλτιστη στρατηγική λήψης Ν διαδοχικών αποφάσεων
είναι τέτοια ώστε, για κάθε αρχική απόφαση και κάθε αρχικό σύνολο επιτρεπτών
αποφάσεων, οι επόµενες αποφάσεις να συνιστούν µία βέλτιστη ακολουθία Ν – 1
αποφάσεων για ένα νέο πρόβληµα παρόµοιο µε (αλλα µικρότερο από) το αρχικό. Η αρχή
του βελτίστου περιγράφεται στο επόµενο παράδειγµα.

Παράδειγµα 1. Η συντοµότερη διαδροµή από την πόλη α στην πόλη ε είναι τέτοια ώστε
αν περιλαµβάνει τον δρόµο α → β, τότε περιλαµβάνει και τη συντοµότερη διαδροµή από
την β προς την ε.
β γ

α ε
δ
Π.χ. αν α → β → δ → ε είναι η συντοµότερη διαδροµή (δηλαδή µικρότερη από τις α → β
→ γ → ε, α→β→γ→δ→ε, και α → δ → ε) , τότε η µικρότερη διαδροµή από την πόλη β

15
προς τον προορισµό είναι η β→δ→ε. Αν δεν συνέβαινε αυτό και πχ. η β→γ→ε ήταν
µικρότερη, τότε θα έπρεπε και η α → β → γ → ε να είναι η µικρότερη αρχική διαδροµή
(άτοπο).

Η αρχή του βελτίστου είναι µάλλον προφανής (ρωτήστε τους ταξιτζήδες). Η


εφαρµογή της είναι λιγότερο προφανής. Στη γενική περίπτωση το πρόβληµα είναι να
ρυθµίσει κανείς την εξέλιξη ενός συστήµατος εκτελώντας µία σειρά ελέγχων, έτσι ώστε
να βελτιστοποιηθεί κάποιο µέτρο απόδοσης. Η επίλυση του προβλήµατος γίνεται
εξετάζοντας διαδοχικά όλο και µεγαλύτερα προβλήµατα µέχρις ότου φθάσουµε στο
αρχικό. Κάθε πρόβληµα χρησιµοποιεί τις βέλτιστες λύσεις που έχουν ευρεθεί σε
προηγούµενα (υπο)προβλήµατα.
Θεωρούµε το πρόβληµα του βέλτιστου ελέγχου ενός συστήµατος το οποίο
εξελίσσεται στο χρόνο. Υποθέτουµε ότι ο χρόνος είναι διακριτός (π.χ. µεταβάλλεται κατά
ηµέρες, εβδοµάδες, κλπ) και λαµβάνει τιµές n = 1, 2, ..., Ν. Η εξέλιξη του συστήµατος
περιγράφεται από τις καταστάσεις sn που έχει το σύστηµα τις χρονικές στιγµές 1, 2, . . .,
n, . . ., N. Η κατάσταση ορίζεται ως ένα σύνολο µεταβλητών οι οποίες παρέχουν
πληροφορίες για
• την περιγραφή του συστήµατος
• το σύνολο δυνατών αποφάσεων που µπορεί να ληφθούν τη χρονική στιγµή n
(=περιορισµοί).
Αν τη χρονική στιγµή n η κατάσταση του συστήµατος είναι sn και εφαρµοσθεί ο
έλεγχος xn, τότε την επόµενη στιγµή (n+1) η κατάσταση θα είναι sn+1 = g(sn, xn). Εξίσωση
αυτή ονοµάζεται εξίσωση καταστάσεως (state equation). Το κόστος που συνεπάγεται
µία τέτοια απόφαση είναι d(sn, xn).
Υποθέστε ότι η αρχική κατάσταση s1 είναι γνωστή, και ότι επιθυµούµε να
ελέγξουµε το σύστηµα έτσι ώστε να ελαχιστοποιηθεί το συνολικό κόστος λειτουργίας
στο διάστηµα µεταξύ της χρονικής στιγµής 1 και της Ν. Έστω Κn το κόστος λειτουργίας
του συστήµατος από τη στιγµή n µέχρι το τέλος. Το συνολικό κόστος ισούται µε το Κ1,
δηλ. το κόστος λειτουργίας από τη στιγµή 1 µέχρι το τέλος, και µπορεί να γραφεί ως
άθροισµα
Κ1(s1, x1, … sN, xN )= d(s1, x1)+d(s2, x2)+…+ d(sN, xN ).
Κατ' ανάλογο τρόπο µπορούµε να θεωρήσουµε και άλλα υποπροβλήµατα για το κόστος
από τη στιγµή 2 µέχρι το τέλος, ή, γενικά, από τη στιγµή n µέχρι το τέλος:
Κ2(s2, x2, … sN, xN )= d(s2, x2)+…+ d(sN, xN )
= κόστος λειτουργίας από την 2 µέχρι τη Ν
και, γενικότερα,
Κn(sn, xn, … sN, xN )= d(sn, xn)+…+ d(sN, xN )
= κόστος λειτουργίας από τη στιγµή n µέχρι τη N

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(sn) το άγνωστο ελάχιστο κόστος µετάβασης από κάποια


κατάσταση sn της βαθµίδας n στην βαθµίδα Ν. Αν ληφθεί η απόφαση xn, τότε η επόµενη
κατάσταση θα είναι η sn+1 = g(sn, xn) για την οποία το κόστος υποτίθεται οτι είναι γνωστό.
Eπειδή το fn+1 είναι, εξ ορισµού, ελάχιστο θα είναι και ≤ Κn+1 για κάθε sn+1. Συνεπώς
K n ( s n ,x n ,...,s N ,x N ) = d ( s n ,x n ) + K n +1 [ g ( s n ,x n ),x n +1 ,K,s N ,x N ]
≥ d ( s n , x n ) + f n +1 [ g ( s n , x n )] ,

H τελευταία ανισότητα ≥ γίνεται ισότητα όταν η xn συµβεί να είναι η βέλτιστη απόφαση


για την κατάσταση sn. Εποµένως,
f n ( s n ) = min{d ( s n ,x n ) + f n +1 [ g ( s n ,x n )]} , n=1, 2, ..., N. (2.3)
xn

Η εξίσωση (3) είναι η µαθηµατική έκφραση της Αρχής του Βελτίστου:

"Η βέλτιστη διαδροµή µήκους fn περιέχει βέλτιστη υποδιαδροµή µήκους fn+1 , η fn+1
περιέχει βλετιστη υποδιαδροµή µήκους fn+2 , κ.ο.κ."

Το πρόβληµα, έτσι όπως το περιγράψαµε, ταιριάζει σε συστήµατα αυτοµάτου


ελέγχου περισσότερο, παρά σε προβλήµατα προγραµµατισµού. Στον προγραµµατισµό,
αντί για χρονικές στιγµές n, έχουµε βαθµίδες αποφάσεων. Ο προγραµµατισµός
εργασιών, για παράδειγµα, περιλαµβάνει την απόφαση για την εργασία που θα
εκτελεσθεί πρώτη (στη βαθµίδα 1), κατόπιν την απόφαση για τη δεύτερη (στη βαθµίδα
2), κ.ο.κ. Γι' αυτό το λόγο η µεταβλητή n θα αναφέρεται συχνά ως βαθµίδα και όχι
χρονική στιγµή.
Παρατηρείστε τώρα ότι η εξίσωση του δυναµικού προγραµµατισµού (2.3) δίδει το
ελάχιστο κόστος µίας βαθµίδας όταν κανείς γνωρίζει το ελάχιστο κόστος της επόµενης
βαθµίδας. Εποµένως η λύση του προβλήµατος προχωρά αντίστροφα :

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

και βρίσκουµε την απόφαση x1 που την ελαχιστοποιεί.


Βήµα 0 Βέλτιστος συνδυασµός αποφάσεων. Ανασύρουµε τα ζεύγη (sk,xk):

s1⇒ x1 s2=g(s1,x1) s2⇒ x2 s3=g(s2,x2) s3⇒ x3

Στο επόµενο παράδειγµα περιγράφεται η µέθοδος σε ένα πρόβληµα


προγραµµατισµού και η χρήση των µεταβλητών καταστάσεων sn.

Παράδειγµα 2. Τέσσερις εργασίες 1, 2, 3, 4 εκτελούνται περιοδικά από µία µηχανή και


συνθέτουν τον κύκλο παραγωγής µίας µονάδας προϊόντος. Όταν η µηχανή περατώνει µία
εργασία χρειάζεται κάποιο χρόνο προετοιµασίας για να αναλάβει µία άλλη. Οι εργασίες
µπορεί να γίνουν µε οιαδήποτε σειρά ή να υπάρχουν προτεραιότητες. Έστω d(i, j) ο
χρόνος προετοιµασίας της µηχανής από την εργασία i στην j.
Ζητάµε τη βέλτιστη σειρά εκτέλεσης εργασιών ώστε να ελαχιστοποιείται ο
συνολικός χρόνος αδράνειας (προετοιµασίας) της µηχανής µέχρις ότου οι εργασίες
ολοκληρωθούν και η µηχανή προετοιµασθεί για να τις επαναλάβει.
Αυτό είναι ίδιο µε το πρόβληµα του περιπλανώµενου πωλητή (traveling salesman

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 η οποία θα εκτελεσθεί αµέσως µετά. Συνολικά:

Βαθµίδα, n Πιθανές Καταστάσεις, (i,An)


 πλήθος εργασιών  σύνολο εργασιών που πρέπει 
που υπολείπονται  να εκτελεσθούν µετά από την i
0 (2, ∅) (3, ∅) (4, ∅)
1 (2, {3}) (2, {4}) (3, {2}) (3, {4}) (4, {2}) (4, {3})
2 (2, {3,4}) (3, {2,4}) (4, {2,3})
3 (1 → {2, 3, 4} → 1)
Την τελευταία βαθµίδα τη συµβολίζουµε διαφορετικά για λόγους πληρότητας. Ξεκινάµε
από το τέλος, όταν δηλαδή αποµένει µία µόνον εργασία πρίν καταλήξουµε στην 1.
Κατόπιν λύνουµε το πρόβληµα µε 2 υπολειπόµενες εργασίες, κοκ. Γενικά στη βαθµίδα n
και µία από τις πιθανές καταστάσεις της (i, An). Έστω fn(i, An) o min συνολικός χρόνος
προετοιµασίας που αποµένει προκειµένου µετά την εργασία i να εκτελέσουµε τις n
εργασίες του συνόλου Αn και τέλος να προετοιµάσουµε τη µηχανή για την εργασία 1
(προκειµένου να αρχίσει το επόµενο προϊόν). Από την αρχή του βελτίστου προκύπτει
f n (i ,An ) = min[d (i , j ) + f n −1 ( j ,An − { j})]
j∈An

όπου j = xn (η απόφαση) και d(i,j) ο χρόνος προετοιµασίας από την i → j.


Bαθµίδα 0
f0(2, ∅) = d(2, 1)
f0(3, ∅) = d(3, 1)
f0(4, ∅) = d(4, 1)
Bαθµίδα 1

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})]
Η βέλτιστη ακολουθία βρίσκεται παρατηρώντας τις βέλτιστες υπακολουθίες στα βήµατα.

Παράδειγµα 3. Εξετάζουµε πάλι το πρόβληµα ελαχιστοποίησης του αριθµού Ν


εκπρόθεσµων εργασιών του Εδαφίου 2.1.
i 1 2 3 4 5
pi 1 5 3 9 7
di 2 7 8 13 11
Εδώ το πρόβληµα είναι απλούστερο. Οι βαθµίδες περιγράφουν τον αριθµό των εργασιών
που έχουν εκτελεσθεί. Συµβολίζουµε sn ένα σύνολο n εργασιών που εκτελούνται πρώτες
και fn(sn) το µικρότερο αριθµό εκπρόθεσµων από αυτές (=min κόστος) ο οποίος
αντιστοιχεί στη βέλτιστη διάταξη του sn. Eπίσης, συµβολίζουµε Cn(sn) το χρόνο
εκτέλεσης όλων των εργασιών του συνόλου sn και Ι(x) την ενδεικτική συνάρτηση που
ισούται µε 1, αν η πρόταση x είναι αληθής, και 0 διαφορετικά.
Σε κάθε βαθµίδα n και για κάθε πιθανό σύνολο sn υπολογίζουµε
• το χρόνο συµπλήρωσης των εργασιών Cn(sn) και
• το µικρότερο δυνατό πλήθος εκπρόθεσµων, χρησιµοποιώντας προηγούµενα
αποτελέσµατα, και την Cn(sn)
Tα πιθανά σύνολα sn προκύπτουν από τα sn – 1 προσθέτοντας µία ακόµη εργασία.
Βαθµίδα 1

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

Όµοια εξετάζουµε τις καταστάσεις {4} και {5}

Βαθµίδα 2

C2(1,2) = C1(1)+p2 = C1(2)+p1 = 6


f2(1,2) = min[ f1 (2 )+ I [C 2 (1,2 ) > d1 ], f1 (1)+ I [C 2 (1,2) > d 2 ]]
= min (0+1,0+0) =0
Άρα για τις {1, 2} η σειρά 1→2 είναι προτιµότερη από την 2→1(*)

C2(1,3) = C1(1)+p3 = 1+3 = 4


f2(1,3) = min[ f1 (3)+ I [C 2 (1,3) > d1 ], f1 (1)+ I [C 2 (1,32) > d 3 ]]
= min (0+1,0+0) =0
Άρα η σειρά 1→3 είναι προτιµότερη (*).

Όµοια εξετάζουµε τις καταστάσεις {1,4} , {1,5} , {2,3} , …, {4,5}

Βαθµίδα 3

C 3 (1,2 ,3) = C 2 (1,2 )+ p 3 =9 για όλες τις εναλλακτικές διατάξεις


f 3(1, 2 , 3) = min[ f 2 ( 2 , 3) + I [ C3(1, 2 , 3) > d1] ,
f 2 (1, 3) + I [ C3(1, 2 , 3) > d2 ] ,
f 2 (1, 2) + I [ C3(1, 2 , 3) > d3]]
=min (0+1, 0+1, 0+1)=1,
Άρα οποιαδήποτε από τις 1, 2, 3 µπορεί να εκτελεσθεί στην τρίτη θέση (οι δύο
πρώτες αποφασίζονται στη βαθµίδα 2). (*)

Όµοια για τις {1,2,4},{1,2,5},{1,3,4},{1,3,5},{1,4,5},{2,3,4},{2,3,5},{2,4,5},{3,4,5}

Βαθµίδα 4

Όµοια εξετάζουµε τις {1,2,3,4}, {1,2,3,5}, {1,2,4,5}, {1,3,4,5}, {2,3,4,5}

Βαθµίδα 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
και λαµβάνοντας µία από τις βέλτιστες ακολουθίες (*) σε κάθε βαθµίδα.

2.3.3 Αλγόριθµος ∆ιακλάδωσης και Φράγµατος - Branch and Bound

H µέθοδος διακλάδωσης και φράγµατος (∆Φ) εφαρµόζεται σε πολλούς τύπους


συνδυαστικών προβληµάτων. Η ιδέα της διακλάδωσης είναι να δει κανείς το πρόβληµα
σαν δένδρο αποφάσεων. Κάθε κόµβος του δέντρου αντιστοιχεί σε µία σειρά ειληµµένων
αποφάσεων. Από κάθε κόµβο αναφύονται νέα κλαδιά που αντιστοιχούν σε απλές
αποφάσεις, και οδηγούν σε κατάντεις κόµβους που αντιστοιχούν σε πιο πλήρεις σειρές
αποφάσεων. Η απαρίθµηση όλων των κόµβων θα ισοδυναµούσε µε την εξέταση όλων
των δυνατών αποφάσεων και αυτό θα είχε µεγάλο υπολογιστικό κόστος. Εκεί ακριβώς
εφαρµόζεται η διαδικασία φραγµού η οποία προσδιορίζει τις αποφάσεις "που δεν θα
έχουν καλή τύχη" και επιταχύνει τους υπολογισµούς.
P∅

P1 Pj Pn

P2 1 Pn 1 P1 j Pk j Pn j P1 n Pn–1 n

...................................

...................................
Θα περιγράψουµε τη µέθοδο µε ένα παράδειγµα προγραµµατισµού n εργασιών ώστε
να ελαχιστοποιείται η σταθµισµένη καθυστέρηση Z = ∑ in=1 wi Ti . Μία σχηµατική
παράσταση της διαδικασίας ∆Φ φαίνεται στο σχήµα. Έστω P∅ το αρχικό πρόβληµα στο
οποίο το σύνολο εργασιών που έχουν τοποθετηθεί είναι κενό, ∅. Το πρόβληµα
αποσυντίθεται σε n προβλήµατα P1, P2, ..., Pn. Στο Pj η εργασία j έχει τοποθετηθεί στο
τέλος (διακλάδωση) και ζητάµε τη βέλτιστη σειρά των άλλων εργασιών.
Σε κάθε ένα από αυτά τα προβλήµατα µπορούµε να υπολογίσουµε την σταθµισµένη
καθυστέρηση των εργασιών που είναι τελευταίες. Π.χ. για το Pj,

Ζj = wjTj = wj max(Cj – dj, 0) = wj max [(∑ n


i =1
)
p i − d j ,0 ]
H Zj είναι ένα κάτω φράγµα του Ζ για το πρόβληµα Pj , γιατί, αφού δεν έχουν
καθορισθεί οι άλλες εργασίες, το άθροισµα Z = ∑ in=1 wi Ti θα υπερβαίνει το Zj.
Στη συνέχεια επιλέγουµε κάπως ένα από τα προβλήµατα αυτά, έστω Pσ, και το
διακλαδίζουµε σε υποπροβλήµατα Piσ . Στο Piσ η εργασία i είναι προτελευταία και η σ
τελευταία. Σε κάθε ένα από αυτά τα υποπροβλήµατα υπολογίζουµε ένα νέο κάτω φράγµα

22
Ziσ που προκύπτει προσθέτοντας στο προηγούµενο Zσ έναν νέο όρο wiTi .
Yπάρχουν δύο κριτήρια επιλογής του Pσ το οποίο θα διακλαδιστεί. Με το πρώτο
επιλέγουµε το πρόβληµα Pσ το οποίο έχει καλύτερο Ζσ, και ονοµάζεται έρευνα βελτίστου
(best first search ή jumptracking). Το δεύτερο ονοµάζεται έρευνα εις βάθος (depth first
search ή backtracking), και ψάχνει το καλύτερο Ζ στα προβλήµατα Pσ που έχουν ήδη τις
περισσότερες αποφάσεις (µεγαλύτερο βάθος).
Στη συνέχεια το σ συµβολίζει µία σειρά από εργασίες που εκτελούνται τελευταίες.
Κατά την εκτέλεση του αλγορίθµου θα πληθαίνουν οι εργασίες που µπορεί κάποιο
πρόβληµα Pσ να έχει εξαντληθεί, δηλαδή η ακολουθία σ να έχει όλες τις εργασίες. Τότε η
Ζσ ονοµάζεται δόκιµη λύση (trial solution). Αν κάποιο άλλο ηµιτελές πρόβληµα Ps έχει
Ζs>Zσ, τότε δεν υπάρχει λόγος να το διακλαδίσουµε περαιτέρω γιατί θα δώσει ακόµη
µεγαλύτερο κόστος και το διαγράφουµε (fathom). Αυτό είναι το υπολογιστικό κέρδος
της µεθόδου ∆Φ.

α. Αλγόριθµος ∆Φ µε έρευνα βελτίστου για το πρόβληµα ∑in=1 wi Ti


(Αρχή) Θέσε σ=∅. Βάλε το πρόβληµα Pσ σε λίστα µε τιµές Ζσ=0 και Cσ = ∑i =1 pi . To
n
1)
Cσ είναι ο χρόνος περάτωσης της τελευταίας εργασίας από εκείνες που, ακόµη,
δεν έχουν καθοριστεί στο Pσ .
2) Από τη λίστα βρες το πρόβληµα Pσ µε το µικρότερο Ζσ. Αν ο συνδυασµός σ έχει n
εργασίες τότε αυτός είναι ο βέλτιστος και τέλος, αλλιώς
3) Βγάλε το Pσ από τη λίστα και βάλε στη θέση του νέα προβλήµατα βάζοντας κάποια
εργασία j να εκτελεσθεί πριν από τις σ. Συµβόλισε τα νέα προβλήµατα Pjσ και
υπολόγισε: Z jσ = Zσ + w j max( Cσ − d j , 0) και τον χρόνο περάτωσης Cjσ των πρώτων
εργασιών που δεν έχουν διαταχθεί ακόµη, C jσ = Cσ − p j . Πήγαινε στο βήµα (2).

β. Αλγόριθµος ∆Φ µε έρευνα εις βάθος για το πρόβληµα ∑in=1 wi Ti


1) Ίδιο
2) Βρες τα προβλήµατα Pσ που έχουν µεγαλύτερο βάθος, δηλ. το σ έχει τις πιο πολλές
εργασίες. Από αυτά διάλεξε ένα µε το µικρότερο φράγµα Ζσ. Αν ο συνδυασµός σ
έχει n εργασίες τότε το Ζσ αποτελεί τη νέα δόκιµη λύση (τη βέλτιστη ως τώρα).
∆ιάγραψε όλα τα προβλήµατα Ps για τα οποία Zs>Zσ. Αν έχει µείνει µόνο το Pσ στη
λίστα τότε ο συνδυασµός σ είναι ο βέλτιστος και ΤΕΛΟΣ, αλλιώς 3.
3. Ίδιο.
Ο αλγόριθµος ∆Φ είναι σχετικά απλός σε προβλήµατα µίας µηχανής. Στην εργασία
J. D. C. Little, K. G. Murty, D. W. Sweeny and C. Karel, "An algorithm for the
travelling salesman problem," Operations Research, 11, 972-989, 1963
προτάθηκε η εφαρµογή του αλγορίθµου για το πρόβληµα του περιπλανώµενου πωλητή

23
την οποία περιγράφουµε στη συνέχεια µε ένα παράδειγµα.

γ. Αλγόριθµος ∆Φ για το πρόβληµα του περιπλανώµενου πωλητή


Πρέπει να βρούµε την µικρότερη διαδροµή µέσω 5 πόλεων η οποία καταλήγει στην
πόλη από όπου ξεκινά. ∆ίνεται ο πίνακας αποστάσεων dij από την i στην j.

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.

Πρόβληµα P21 Eλαττωµένος πίνακας P21

- 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.

Η συνέχεια είναι παρόµοια. ∆ιαγράφεται το αρχικό πρόβληµα, επιλέγεται ένα


πρόβληµα από τα P21 και P21. Υιοθετώντας έρευνα βελτίστου θα πρέπει να επιλέξουµε το
P21 που έχει µικρότερο φράγµα, και για την έρευνα εις βάθος πάλι το P21 γιατί έχει τα
περισσότερα ∞ στοιχεία και φαίνεται ότι είναι πιό κοντά στην εύρεση εφικτής λύσης.
Στον ελαττωµένο πίνακα P21 υπάρχουν πολλά στοιχεία 02 που µπορούν να επιλεγούν και

25
αυθαίρετα επιλέγεται το (5,4). Το πρόβληµα P21 διαγράφεται και στη λίστα ηµιτελών
προβληµάτων εισάγονται τα P21,54 και P21,54 . Από τα προβλήµατα P21, P21,54 και P21,54
επιλέγεται το κατάλληλο για διακλάδωση και η διαδικασία συνεχίζεται µέχρις ότου
κάποιος πίνακας έχει τόσα στοιχεία ίσα µε ∞, ώστε η λύση να προκύπτει µονοσήµαντα
(δηλ να υπάρχει µία µόνον σειρά εκτέλεσης εργασιών). Αν αυτή η λύση είναι µικρότερη
από κάποια φράγµατα των ηµιτελών προβληµάτων της λίστας τότε τα προβλήµατα
εκείνα αφαιρούνται γιατί πιθανή διακλάδωσή των θα έδινε χειρότερες λύσεις. Επίσης, αν
η λύση αυτή είναι µικρότερη από κάποια άλλη εφικτή λύση που υπάρχει στη λίστα, τότε
αφαιρείται και εκείνη. Αν η λύση αυτή έχει εκτοπίσει όλες τις άλλες λύσεις και όλα τα
κάτω φράγµατα, τότε είναι και η βέλτιστη. ∆ιαφορετικά επιλέγεται ένα ηµιτελές
υποπρόβληµα διαγράφεται από τη λίστα, και από αυτό προκύπτουν 2 ακόµη τα οποία
µελετώνται όπως τα P21 και P21.

Η βέλτιστη λύση είναι 4-1-2-3-5-4 µε µήκος 25.

P∅
20

P21
P21−
24
25
P21,54 P21,−54 −−
P21− ,23
P21,23
26 25
26 29

P21,54,43 P21,54 ,−43


26 P21− ,23,12

P21− ,23 ,12
29 31 25

− − −
P21,23 ,12 ,54 P21,23 ,12 ,54
29 25

2.3.4 Ασκήσεις (Σειρά 2)

1. Θεωρήστε το πρόβληµα του περιπλανώµενου πωλητή για την ελαχιστοποίηση της


διαδροµής από µία πόλη προς όλες τις άλλες και προς την αρχική πάλι, µε δεδοµένα

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. Λύστε το ίδιο πρόβληµα µε δυναµικό προγραµµατισµό.

2.4 ∆ΥΝΑΜΙΚΑ KΑΙ ΣΤΟΧΑΣΤΙΚΑ ΠΡΟΒΛΗΜΑΤΑ

2.4.1 Ακριβή Αποτελέσµατα

Θεωρούµε τώρα ότι στην αρχή δεν έχουµε όλες τις παραγγελιες για τις εργασίες.
Αντίθετα, καθώς ο χρόνος περνά φθάνουν νέες παραγγελίες. Έστωσαν r1, r2, ..., ri, ... οι
χρόνοι άφιξης των παραγγελιών για την εκτέλεση των εργασιών 1, 2, ..., i, ... .
Υπόθεση. Η εκτέλεση µίας εργασίας µπορεί να διακοπεί προκειµένου να αρχίσει µία
άλλη εργασία. Τότε, η πρώτη εργασία θα εκτελεσθεί αργότερα, και θα συνεχισθεί από το
στάδιο που διεκόπη. Σε κάθε χρονική στιγµή η ποσότητα pi΄ ισούται µε τον υπολειπόµενο
χρόνο περάτωσης της εργασίας i.
Για την δυναµική περίπτωση ισχύει η αντίστοιχη της Πρότασης 2.2:

Πρόταση 2.2΄. Αν, κάθε φορά που µία εργασία περατώνεται ή µία νέα παραγγελία
φθάνει, επιλέγεται εργασία σύµφωνα µε τον κανόνα SPT των υπολειπόµενων
χρόνων περάτωσης, τότε ελαχιστοποιείται ο µέσος χρόνος ροής.
Απόδειξη : Άσκηση.

Ανάλογη της Πρότασης 2.3 είναι η επόµενη

Πρόταση 2.3΄. Για το δυναµικό πρόβληµα µε προθεσµίες παράδοσης d1, d2, ..., dn
η πολιτική ενωρίτερων προθεσµιών (EDD), d[1]≤ d[2]≤ ...≤ d[n] ελαχιστοποιεί τη
µέγιστη βραδύτητα.
Απόδειξη : Άσκηση.

Για τα στατικά προβλήµατα µε στοχαστικές διάρκειες εργασιών και στοχαστικές


προθεσµίες, συµβολίζουµε Ε(pi) και Ε(di) τις µέσες τιµές των αντίστοιχων µεγεθών της

27
εργασίας i. Από τη θεωρία πιθανοτήτων1 αποδεικνύεται (άσκηση) ότι για στοχαστικά
προβλήµατα ισχύει η Πρόταση 2.2(α) ενώ η Πρόταση 2.3 ισχύει για τη µέγιστη
βραδύτητα µόνον.

2.4.2 Ασκήσεις (Σειρά 3)

1. Αποδείξατε τις Προτάσεις 2.2΄, 2.3΄ για δυναµικά προβλήµατα µε αιτιοκρατικούς


χρόνους.
2. Αποδείξατε τις Προτάσεις 2.2(α), 2.3 για στατικά στοχαστικά προβλήµατα. ∆ίνονται οι
µέσες διάρκειες εκτέλεσης Ε(pi) οι µέσες προθεσµίες Ε(di) και ζητείται η ακολουθία που
ελαχιστοποιεί το µέσο αναµενόµενο κόστος σε κάθε περίπτωση, δηλ. κόστος =
(αναµενόµενος µέσος χρόνος ροής) για την 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.2 ΠΑΡΑΛΛΗΛΕΣ ΜΗΧΑΝΕΣ

3.2.1 Συνολικός Χρόνος Περάτωσης

Υποθέστε ότι n εργασίες πρόκειται να εκτελεσθούν. Κάθε εργασία µπορεί να εκτελεσθεί


σε οιαδήποτε από m πανοµοιότυπες µηχανές. Ενώ επιτρέπεται η διακοπή µιας εργασίας
προκειµένου να αρχίσει η εκτέλεση άλλης δεν επιτρέπεται η ταυτόχρονη εκτέλεση µίας
εργασίας από 2 ή περισότερες µηχανές.
Εξετάζουµε δύο τύπους διακοπής:
∆Ε= Τύπος ∆ιακοπής και Επανάληψης (Preempt-Repeat mode) όταν διακοπείσα
εργασία επαναλαµβάνεται από την αρχή και απαιτεί χρόνο pi , δηλ. ίσο µε τον αρχικό.
∆Σ= Τύπος ∆ιακοπής και Συνέχισης (Preempt-Resume mode) όταν διακοπείσα εργασία
επαναλαµβάνεται από το στάδιο που διεκόπη µε υπολειπόµενο χρόνο εκτέλεσης pi΄ < pi .
Yποθέτουµε ότι όλες οι εργασίες µπορούν να αρχίσουν τη στιγµή 0 (χρόνοι άφιξης
παραγγελιών ri=0). Έστωσαν Cmax=Fmax ο (άγνωστος) χρόνος περάτωσης της τελευταίας
εργασίας (=συνολική διάρκεια εκτέλεσης όλων των εργασιών), pi η διάρκεια της
εργασίας i και pmax = maxi pi η µέγιστη διάρκεια. Μπορεί να αποδειχθεί ότι:

Πρόταση 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)
και εκτελώντας τις µε τη σειρά του σχήµατος. Άλλος τρόπος είναι να αναθέτουµε την
επόµενη εργασία στη µηχανή µε το µικρότερο ως τώρα άθροισµα χρόνων.

Μηχανή 1 εργ 1 εργ 2m

Μηχανή 2 εργ 2 εργ 2m-1

Μηχανή m εργ m εργ m+1

Η περίπτωση ∆Ε είναι η πλέον δυσµενής. Εδώ είναι προτιµότερο να αποφεύγονται


οι διακοπές γιατί µόνον επιβαρύνουν το Fmax (Άσκηση).

3.2.2 Μέσος Χρόνος Περάτωσης

Μας ενδιαφέρει η ελαχιστοποίηση του µέσου χρόνου παραµονής εργασιών σε σύστηµα


m παράλληλων και ίδιων µηχανών όταν δεν επιτρέπονται διακοπές. Χρησιµοποιούµε
κάπως διαφορετικό συµβολισµό. Έστω ότι έχουµε βρεί το πρόγραµµα εκτέλεσης και,
σύµφωνα µε αυτό, η µηχανή k θα εκτελέσει nk εργασίες µε διάρκειες p1k , p2k , . . ., pnk k. Η
αρίθµηση εργασιών και διαρκειών γίνεται σύµφωνα µε τη σειρά εκτέλεσής των στην
µηχανή k. Συγκεκριµένα, pjk είναι η διάρκεια της j-οστής εργασίας που θα γίνει στη
µηχανή k, οπότε το pjk είναι κάποιο από τα pi της προηγούµενης παραγράφου, µόνο που
εδώ δεν ξέρουµε ούτε ποιές είναι οι nk εργασίες ούτε και µε ποιά σειρά θα εκτελεσθούν
στην µηχανή k.

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ετά την αντιστοίχιση εργασιών σε µηχανές, αντιστρέφουµε την σειρά
εκτέλεσης σε κάθε µηχανή (Άσκηση).

3.2.3 Ασκήσεις (Σειρά 4)

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 ΚΑΤΑΣΤΗΜΑΤΑ ΡΟΗΣ

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).

3.3.2 Αλγόριθµος Johnson

Θεωρούµε το πρόβληµα min Fmax για κατάστηµα 2 µηχανών µε ∞ αποθήκη. Η διάρκεια


κατεργασίας του προϊόντος i στην µηχανή j είναι pij. Λόγω της Ιδιότητας 1, το βέλτιστο
πρόγραµµα είναι κοινό και για τις 2 µηχανές και δίδεται από την ακόλουθη

Πρόταση 3.2. ΑΛΓΟΡΙΘΜΟΣ JOHNSON:


1. Το σύνολο των προίόντων χωρίζεται σε δύο διατεταγµένα σύνολα Α και Β. Το
σύνολο Α περιλαµβάνει τα προϊόντα i µε pi1≤pi2, ενώ το υποσύνολο Β
περιλαµβάνει τα προϊόντα i µε pi1> pi2.
2. Το Α διατάσσεται κατα SPT pi1 (µικρότεροι χρόνοι ⇒ πρώτες εργασίες) και το
Β κατα LPT pi2 (µεγαλύτεροι χρόνοι ⇒ πρώτες εργασίες).

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 µηχανών.

3.3.3 Αλγόριθµος ∆Φ των Ignall-Schrage και Lomnicki

Εδώ θα εξετάσουµε µία ακριβή λύση του γενικότερου προβλήµατος αλλά πάλι θα
περιοριστούµε σε ακολουθίες που είναι ίδιες για όλες τις µηχανές. Έστω Ν το σύνολο
των προϊόντων Ν={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

Με αυτή τη διαδικασία βρίσκονται τα φράγµατα σε κάθε διακλάδωση. Προφανώς,


άν σε κάποιο υποπρόβληµα Ρσ έχουµε σ =Ν και Fσ =min, τότε έχουµε φθάσει στο τέλος
και min Fmax = Fσ.
Για τον υπολογισµό των Cσk λαµβάνουµε υπ' όψιν τα ακόλουθα. Αν από το Ρσ, του
οποίου τα Cσk είναι γνωστά, προκύψει ένα άλλο υποπρόβληµα Ρσ΄ µε µία ακόµη εργασία i
στο τέλος του προγράµµατος σ, δηλ. σ΄ = (σ,i), τότε τα νέα Cσ΄ k προκύπτουν ώς εξής:
Cσ΄ 1= Cσ1+pi1 , Cσ΄ 2= max {Cσ΄ 1,Cσ2} +pi2 , ... (3.5)

3.3.4 Ασκήσεις (Σειρά 5)

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

Στη συνέχεια περιγράφουµε τους περιορισµούς του προβλήµατος.


α. Ακολουθία Mηχανών ενός Προϊόντος
Ο χρόνος έναρξης κατεργασίας προϊόντος i στην µηχανή k πρέπει να είναι αργότερος του
χρόνου παραγωγής από την προηγούµενη µηχανή:
Cik – pik ≥ Cih , όπου h=h(i,k) (3.6α)
Αν η k είναι η πρώτη µηχανή, τότε h(i,k)=0 µία ψευδοµηχανή µε Ci0=0.
β. Προτεραιότητες Προϊόντων σε µία Μηχανή
Επειδή δεν επιτρέπεται η ταυτόχρονη κατεργασία δύο προϊόντων από µία µηχανή, πρέπει
να καθορισθούν προτεραιότητες. Αν το προϊόν i προηγείται του j, ο χρόνος έναρξης του j
πρέπει να είναι αργότερος του χρόνου παραγωγής του i από την µηχανή k, άρα
Cjk – pjk≥Cik. (3.6β)
∆ιαφορετικά, αν το j προηγείται του i τότε
Cik – pik≥Cjk. (3.6γ)
Εδώ υπάρχουν δύο εναλλακτικές επιλογές, και γι' αυτό ως µεταβλητές αποφάσεως

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 ΕΙΣΑΓΩΓΗ

Στα προηγούµενα κεφάλαια είδαµε ότι ο προγραµµατισµός παραγωγής γίνεται


πολύπλοκος όταν το πλήθος των µηχανών και εργασιών αυξάνεται. Τα υπάρχοντα
συστήµατα παραγωγής είναι αρκετά σύνθετα ώστε το πρόβληµα αυτό είναι αδύνατο να
λυθεί µε ακρίβεια. Στις περιπτώσεις αυτές κανείς αναζητά βολικές προσεγγίσεις οι οποίες
διευκολύνουν την επίλυση και εγγυώνται ότι οι λύσεις είναι ικανοποιητικές, µε την
έννοια ότι η απόδοση του συστήµατος προσεγγίζει τη βέλτιστη απόδοση.
Μία τέτοια προσέγγιση βασίζεται στην αποσύνθεση του προβλήµατος σε
υποπροβλήµατα τα οποία επιλύονται διαδοχικά. Τα υποπροβλήµατα αυτά είναι:
1. Έλεγχος ροής (flow control). Προσδιορίζεται ο ρυθµός παραγωγής για κάθε τύπο
προϊόντος, ώστε να ικανοποιούνται απαιτήσεις της διοίκησης, όπως µεγιστοποίηση του
κέρδους και ικανοποίηση της ζήτησης.
2. Έλεγχος δροµολόγησης (routing control). Σε περιπτώσεις κατά τις οποίες
διατίθενται πολλές µηχανές για την ίδια κατεργασία, καθορίζεται το ποσοστό του
συνολικού πλήθους κοµµατιών το οποίο αντιστοιχεί σε κάθε µηχανή µε σκοπό να
επιτυγχάνονται οι ρυθµοί παραγωγής του προβλήµατος 1 µε τα µικρότερα δυνατά
αποθέµατα ηµικατεργασµένων κοµµατιών.
3. Έλεγχος ακολουθίας (sequence control). Καθορίζεται η σειρά µε την οποία κάθε
µηχανή παράγει τα (διαφορετικά) προϊόντα που βρίσκονται στις αποθήκες της ώστε να
ικανοποιούνται οι συνθήκες των 1 και 2, και να παραδίδονται τα προϊόντα εντός
καθορισµένων προθεσµιών.
Μέχρι τώρα µελετήσαµε προβλήµατα που αναφέρονται κυρίως στον έλεγχο
ακολουθίας. Ο έλεγχος ακολουθίας καθορίζει την ακριβή κατάσταση του συστήµατος
κάθε χρονική στιγµή και εφαρµόζεται συνεχώς. Ένα πρόβληµα ελέγχου δροµολόγησης
και ακολουθίας το µελετήσαµε στον προγραµµατισµό παράλληλων µηχανών του
Κεφάλαιο 3.
Στο κεφάλαιο αυτό θα µελετήσουµε τα προβλήµατα ροής και δροµολόγησης µαζί,
εφαρµόζοντας µεθόδους βελτιστοποίησης δικτύων. Η εξέταση θα γίνει µακροσκοπικά,
θεωρώντας τους ρυθµούς παραγωγής και ζήτησης προϊόντων στη µόνιµη κατάσταση. Για
περιπτώσεις περιοδικής και γενικά χρονικά µεταβαλλόµενης ζήτησης, τα προβλήµατα
αυτά επιλύονται σε τακτά χρονικά διαστήµατα.
Σήµερα, οι βιοµηχανίες εγκαταλείπουν το µοντέλο µαζικής παραγωγής και µικρής
ποικιλίας προϊόντων και εγκαθιστούν ευέλικτα συστήµατα παραγωγής (flexible
manufacturing systems - FMS) µε σκοπό την ταυτόχρονη παραγωγή πολλών ειδών
προϊόντων κατα παρτίδες µεσαίου µεγέθους. Ένα FMS αποτελείται από σταθµούς

38
παραγωγής, που έχουν δυνατότητα να επιτελούν πολλές κατεργασίες, συνδεδεµένους µε
ένα σύστηµα µεταφοράς κοµµατιών (material handling system - MHS). Τα κοµµάτια
φορτώνονται σε παλλέτες ή µεταφορικές ταινίες του συστήµατος µεταφοράς, και
υπόκεινται σε σειρά κατεργασιών, µέχρις ότου µετατραπούν σε προϊόντα και
µεταφερθούν στο σταθµό εκφόρτωσης. Ο έλεγχος ακολουθίας πραγµατοποιείται συνεχώς
από κεντρικό υπολογιστή.

Μηχανουργείο 1

Σταθµός
φόρτωσης-
εκφόρτωσης

Μηχανουργείο 2

Σχήµα 1. FMS µε δύο σταθµούς παραγωγής και έναν σταθµό φόρτωσης-εκφόρτωσης.

Τα προβλήµατα ροής και δροµολόγησης διατυπώνονται ως προβλήµατα


µεγιστοποίησης της απόδοσης του συστήµατος υπό περιορισµούς. Η απόδοση του
συστήµατος εξαρτάται από τα έσοδα από πώληση προϊόντων (και, εποµένως, από τους
ρυθµούς παραγωγής και τις τιµές πώλησής των), τις δυνατότητες των µηχανών
(ονοµαστικοί ρυθµοί παραγωγής), την ικανοποίηση της ζήτησης, τις αναγκαστικές
διακοπές του συστήµατος λόγω βλαβών ή συντήρησης, κλπ. Για την µαθηµατική
διατύπωση του προβλήµατος, το σύστηµα περιγράφεται ως δίκτυο µε κόµβους οι οποίοι
συνδέονται µε τόξα. Οι κόµβοι παριστάνουν σταθµούς παραγωγής. Κάθε τόξο
παριστάνει µία διαδροµή του συστήµατος διαχείρισης υλικών από κάποιο σταθµό
παραγωγής σε έναν άλλο σταθµό. Υποθέτουµε ότι ένα τόξο µεταφέρει ένα είδος
προϊόντος µε συγκεκριµένο ρυθµό ροής, ο οποίος αντιστοιχεί στο µέσο ρυθµό µε τον
οποίο κοµµάτια του προϊόντος οδηγούνται σε κάποιο κόµβο. Σε κάθε τόξο αντιστοιχεί
µία αποθήκη η οποία περιέχει έναν αριθµό κοµµατιών που αναµένουν κατεργασία από το
σταθµό.
Το πρόβληµα που συναντά κανείς συνήθως είναι η µαθηµατική έκφραση των µέσων
αποθεµάτων συναρτήσει των ρυθµών ροής στα τόξα. Αποδεικνύεται ότι, στη µόνιµη
κατάσταση, όταν οι χρόνοι µεταφοράς και κατεργασίας είναι σταθεροί και το σύστηµα
είναι ροϊκό (δηλαδή στο σύστηµα κυκλοφορεί υγρό παρά διακριτά κοµµάτια), τα
αποθέµατα είναι 0 ή ∞. Όταν οι χρόνοι είναι τυχαίοι, αυτό δεν ισχύει. Για να επιλύσουµε

39
το πρόβληµα βελτιστοποίησης, είναι απαραίτητο να αναλύσουµε το σύστηµα παραγωγής.
Η επόµενη παράγραφος ασχολείται µε το πρόβληµα της ανάλυσης χρησιµοποιώντας
εργαλεία από τη θεωρία ουρών αναµονής (queueing theory).

4.2 ANAΛΥΣΗ ∆ΙΚΤΥΩΝ ΑΝΑΜΟΝΗΣ

4.2.1 Βασικές Έννοιες

Θεωρούµε ένα σύστηµα µε Μ κόµβους (σταθµούς παραγωγής) που συµβολίζονται


i=1,...,M. Εµπρός από κάθε κόµβο υπάρχει µία αποθήκη. Ποιά είναι η κατάσταση του
συστήµατος κάποια χρονική στιγµή t; Κατάσταση είναι το µέγεθος το οποίο καθορίζει σε
κάποιο βαθµό την µελλοντική εξέλιξη του συστήµατος. Είναι, µε άλλα λόγια, αυτό που
κάνει δύο συστήµατα µε ίδιες µηχανές να έχουν διαφορετική εξέλιξη. Για το δίκτυο που
εξετάζουµε, κατάσταση είναι ένα διάνυσµα το οποίο αποτελείται από τις στάθµες ni(t)
των αποθηκών τη στιγµή t, και συµβολίζεται n(t)=[n1(t),…, nΜ(t)]. H εξέλιξη της n(t) στο
χρόνο επηρεάζεται από τυχαίους παράγοντες (τυχαίοι χρόνοι παραγωγής), γι' αυτό η n(t)
είναι µία στοχαστική διαδικασία. Η πιο απλή, αναλυτικά, στοχαστική διαδικασία
ικανοποιεί την ακόλουθη :
Ιδιότητα Markov: Αν τ και Τ είναι δύο χρονικές στιγµές τέτοιες ώστε η τ είναι πιο
πρόσφατη και t είναι κάποια µελλοντική χρονική στιγµή (t>τ≥Τ) τότε για να
προβλέψουµε την n(t) αρκεί η γνώση της n(τ) και είναι άχρηστη η πληροφορία σχετικά
µε την n(Τ).
Αν η n(t) ικανοποιεί την ιδιότητα αυτή, τότε ονοµάζεται διαδικασία Markov. H ιδιότητα
διατυπώνεται µαθηµατικά ως εξής :
P[n(t)=j | n(τ)=i, n(T)=k, τ≥T] = P[n(t)=j | n(τ)=i]
Παρατηρείστε ότι για το σύστηµα παραγωγής που αναφέραµε, η κατάσταση n(t)=j
αντιστοιχεί σε κάποιο συνδυασµό τιµών του διανύσµατος n(t)=[n1(t),…, nΜ(t)] και,
εποµένως, είναι διάνυσµα. Οµοίως τα j, i, k συµβολίζουν διανύσµατα και είναι µερικές
από τις πιθανές καταστάσεις στις οποίες µπορεί να ευρίσκεται το σύστηµα.
Έστω Ν το σύνολο των πιθανών καταστάσεων µίας διαδικασίας Markov n(t). Το
πρόβληµα που µας απασχολεί είναι η εκτίµηση των ποσοτήτων Pj = lim P[n(t) = j], εφ’
t →∞
όσον τα όρια, υπάρχουν που ονοµάζονται πιθανότητες µόνιµης κατάστασης. Από αυτές
µπορούµε στη συνέχεια να εκτιµήσουµε τις µέσες στάθµες των αποθηκών. Για τον
υπολογισµό των πιθανοτήτων ορίζουµε τις ποσότητες

Pij(τ,t) = πιθανότητα να ευρεθούµε στην j ξεκινώντας από την i
= P[n(t)=j| n(τ)=i], τ ≤ t (4.1)
η qi(t) , για κάθε i∈N, ορίζεται από τη σχέση:
πιθανότητα εξόδου από την i στο διάστηµα (t,t+∆t) =

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

Λύνοντας το σύστηµα αυτών των εξισώσεων µαζί µε την ∑ Pi = 1 προκύπτουν τα Pi.


i

Mπορεί να αποδειχθεί ότι για µία διαδικασία Markov

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 µε τους χρόνους
παραγωγής ή, ανάλογα, τους ρυθµούς παραγωγής (ροής) των µηχανών ενός δικτύου
παραγωγής.

4.2.2 Απλά Συστήµατα Αναµονής

Το απλούστερο σύστηµα αναµονής είναι το Μ/Μ/1 στο οποίο υπάρχει ένας εξυπηρετών
µε εκθετικούς χρόνους εξυπηρέτησης µέσης τιµής 1/µ και τροφοδοτείται από ένα
σύστηµα αφίξεων. Το διάστηµα µεταξύ δύο διαδοχικών αφίξεων είναι εκθετικά
κατανεµηµένα µε µέση τιµή 1/λ. Έτσι, µ είναι ο µέσος ρυθµός εξυπηρέτησης και λ ο
µέσος ρυθµός άφιξης πελατών από έξω.

λ µ

Σχήµα 2. Το σύστηµα Μ/Μ/1.

Η κατάσταση n του συστήµατος ισούται µε το πλήθος πελατών στο σύστηµα


(ουρά+εξυπηρέτηση). Από την κατάσταση n πηγαίνουµε στην n+1 µε µία άφιξη, και
στην n – 1 µε εξυπηρέτηση. Θα βρούµε τώρα τη σχέση των λ, µ µε τα qij. Ξεκινάµε µε το
λ. Η πιθανότητα να συµβεί µία άφιξη στο διάστηµα [t, t+x] δοθέντος ότι θα συµβεί σε
χρόνο ≥t είναι
P ( άφιξη στο [ t ,t + x] KAI άφιξη σε ≥ t )
P( άφιξη στο [ t ,t + x] άφιξη σε ≥ t ) = =
P( άφιξη σε ≥ t )

P( άφιξη στο [ t ,t + x] ) P ( άφιξη σε ≥ t ) − P( άφιξη σε ≥ t + x)


= =
P( άφιξη σε ≥ t ) P( άφιξη σε ≥ t )

=
[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!

Το µέσο πλήθος στην ουρά είναι



ρ
Nq = ∑( n − m) Pn = ⋅ Pm (4.7β)
n=m (1 − ρ ) 2
Από το Νq και τα λ, 1/µ, εφαρµόζοντας το νόµο του Little στην ουρά και κατόπιν σε όλο
το σύστηµα, µπορεί κανείς να υπολογίσει τα W , T, N. Τέλος, ο µέσος ρυθµός
παραγωγής του συστήµατος είναι
µσυστ . = λ = (µέσος ρυθµός αφίξεων), (4.7γ)
αφού σε ∞ χρόνο όσοι πελάτες αφιχθούν θα φύγουν εκτός ίσως από πεπερασµένο πλήθος
που θα είναι στην ουρά (πεπερασµένο επειδή P∞=(4.7α)=0).
Eξετάζουµε το σύστηµα Μ/Μ/1/Κ µε πεπερασµένη χωρητικότητα αποθήκης = Κ – 1.
Το σύστηµα αποθήκη+εξυπηρετών χωρά Κ πελάτες.Τότε αν ρ= λ/µ ≠1
1− ρ
P0 = , και Pn = P0 ρn, 0≤n≤K (4.8α)
1− ρ K +1

ενώ αν ρ=1 , Pn=1/(K+1) για όλα τα n. Ο µέσος αριθµός πελατών στο σύστηµα είναι

 ρ 1 − ((1K−+ρ1))(1ρ− ρ+ K ρ)
K K +1

K +1
αν ρ≠1
N= (4.8β)
K
 2 , αν ρ=1

Τέλος, παραθέτουµε χρήσιµους τύπους για συστήµατα ενός εξυπηρετούντος, όταν οι


κατανοµές των χρόνων εξυπηρέτησης και αφίξεων είναι γενικές. Τα συστήµατα αυτά
συµβολίζονται G/G/1.
Έστωσαν
1/λ: µέση τιµή του χρόνου µεταξύ αφίξεων
σt2: διασπορά του χρόνου µεταξύ αφίξεων ( για εκθετική κατανοµή ⇒ σt2=1/λ2)
1/µ : µέση τιµή χρόνου εξυπηρέτησης,
σx2 διασπορά του χρόνου εξυπηρέτησης ( για εκθετική κατανοµή ⇒ σx2=1/µ2)

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).

4.2.3 ∆ίκτυα Jackson

Ένα δίκτυο Jackson αποτελείται από Μ κόµβους εξυπηρέτησης, i=1,2,...,M. Ο κόµβος i


έχει mi ίδιους εξυπηρετούντες και ∞ αποθήκη. Η τροφοδοσία της αποθήκης γίνεται από
(α) έξω, µε αφίξεις κατα Poisson και µέσο ρυθµό γi ,
(β) άλλους κόµβους j, ή και από τον ίδιο µε ανατροφοδότηση (feedback, πχ.
επανακατεργασία).
Έστω Pji η πιθανότητα ώστε ένας πελάτης που φεύγει από τον j να πάει στην
αποθήκη του κόµβου i. Οι πιθανότητες Pj0 αντιστοιχούν σε πελάτες που φεύγουν από το
σύστηµα (0=κόµβος που συµβολίζει την έξοδο). Οι πιθανότητες ικανοποιούν τη σχέση
M

∑ 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 είναι ανοικτά, διότι τροφοδοτούνται από/τροφοδοτούν το
περιβάλλον τους. Στη συνέχεια εξετάζουµε κλειστά συστήµατα.

4.2.4 Κλειστά ∆ίκτυα

Φαντασθείτε ένα ανοικτό δίκτυο στο οποίο, όταν ένας πελάτης φεύγει (προϊόν
παράγεται) τότε και µόνον τότε ένας άλλος πελάτης εισέρχεται στο σύστηµα. Aυτό στην
πράξη συµβαίνει όταν σε ένα σύστηµα παραγωγής οι πρώτες ύλες εισέρχονται στο
σύστηµα µόνον όταν υπάρχει ζήτηση. Τα συστήµατα αυτά ονοµάζονται συστήµατα
έλξης (pull systems) ή παραγωγής κατά παραγγελίες (make-to-order). Για τη
µοντελοποίηση τέτοιων συστηµάτων θεωρούµε τη σαν µία µηχανή του συστήµατος η
οποία τροφοδοτε'ιται από την αποθήκη έτοιµων προϊόντων και τροφοδοτεί την αποθήκη
πρώτων υλών.

Ανοικτό Σύστηµα = Κλειστό σύστηµα

Zήτηση Zήτηση

Σχήµα 3. Ισοδυναµία ανοικτού συστήµατος τύπου έλξης µε κλειστό σύστηµα.

Στην περίπτωση αυτή το δίκτυο ισοδυναµεί µε ένα κλειστό σύστηµα όπως φαίνεται στο
σχήµα. Στο κλειστό σύστηµα, το συνολικό πλήθος πελατών οι οποίοι ευρίσκονται στους
κόµβους εξυπηρέτησης είναι σταθερό: Ν = 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

xi = ∑ x j Pji , i = 2 ,..., M , και


j =1
M (4.11γ)
x1 = 1 − ∑ x j
j =2

Το σύστηµα αυτό αποτελείται από Μ γραµµικώς ανεξάρτητες εξισώσεις µε Μ


αγνώστους. Οι λύσεις xi των (4.11γ) ικανοποιούν και την x1 = ∑ Mj =1 x j Pj1 .
∆ιατυπώνουµε τώρα το ακόλουθο
Θεώρηµα των Gordon-Newell Στο κλειστό σύστηµα, οι πιθανότητες µόνιµης
κατάστασης δίδονται από τις σχέσεις
n
 xi  i
M  
1  µi 
P( n) = P( n1 , n2 , ..., n M ) = ⋅∏ (4.12α)
G( N ) i =1 bi ( ni )
όπου
n
 xi  i
M  
 µi 
G( N ) = ∑ ∏ (4.12β)
για κάθε συνδυασµό i =1 bi ( ni )
( n1 ,..., n M ) : n1 + ... + n M = N

και xi είναι οποιεσδήποτε λύσεις του συστήµατος (4.11β).


Προφανώς, τα xi που προκύπτουν από τις (4.11γ) ικανοποιούν το θεώρηµα. Η
ποσότητα

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

H ποσότητες (λi/λ) ονοµάζονται φορτίσεις των σταθµών.


Το µέσο πλήθος κοµµατιών στην αποθήκη i ενός κλειστού δικτύου παραγωγής είναι
N q ,i = ∑( ni − mi )P (ni ). (4.13β)
για καθε συνδυασµο
ni ≥ mi

Προφανώς, οι υπολογισµοί που απαιτούν οι ανωτέρω σχέσεις είναι πάρα πολλοί. Θα


εξετάσουµε στη συνέχεια απλούστερες περιπτώσεις όπως συστήµατα στα οποία κάθε
κόµβος αποτελείται από µία µηχανή ή συστήµατα µε κόµβους των οποίων οι σχετικές
χρησιµοποιήσεις είναι ίσες.
Όταν ισχύει η τελευταία ιδιότητα, το σύστηµα ονοµάζεται ισορροπηµένο
(balanced). Σε ισορροπηµένα συστήµατα, όλες οι πιθανότητες µόνιµης κατάστασης είναι
ίσες µε
1 ( M − 1)! N !
= (4.13γ)
 N + M − 1 ( N + M − 1)!
 
 N 
και οι πελάτες ισοκατανέµονται κατα µέσον όρο ανάµεσα στους σταθµούς. Το µέσο
πλήθος πελατών σε κάθε σταθµό (εξυπηρέτηση+αναµονή) είναι Ν/Μ.
Μπορεί να αποδειχθεί ότι όταν οι σταθµοί παραγωγής αποτελούνται από µία µηχανή
οι µέσοι ρυθµοί εισροής/εκροής δίδονται από τις σχέσεις
G( N −1)
λi= xi . (4.13δ)
G( N )
H ποσότητα xi ισούται µε την φόρτιση της µηχανής i.

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

Τα προβλήµατα βελτιστοποίησης που θα χρειαστεί να επιλύσουµε έχουν την ακόλουθη


µορφή. Έστω y=[y1 ... yn]T το διάνυσµα του συνόλου N ( =το σύνολο των πραγµατικών
αριθµών) µε τις µεταβλητές αποφάσεως και f(y) η συνάρτηση κέρδους. Στα προβλήµατα
προγραµµατισµού παραγωγής η συνάρτηση κέρδους αναφέρεται στο ρυθµό µε τον
οποίον η επιχείρηση συσσωρεύει κέρδη. Περιλαµβάνει συνήθως έσοδα από τις πωλήσεις
προϊόντων ανά µονάδα χρόνου, κόστος λειτουργίας, κόστος ηµιτελών προϊόντων στις
αποθήκες (βλ. Παράγραφο 2.1) κλπ. Στις µεταβλητές αποφάσεως περιλαµβάνονται οι
ρυθµοί παραγωγής κάθε προϊόντος, οι φορτίσεις των µηχανών, οι χωρητικότητες των
αποθηκών, οι εναλλακτικές διαδροµές των κοµµατιών κλπ. Λόγω φυσικών ή άλλων
περιορισµών το διάνυσµα y πρέπει να ανήκει σε κάποιο υποσύνολο Γ του συνόλου n.
Για παράδειγµα αν ένα σύστηµα διαθέτει χώρο αποθηκών το πολύ ίσο µε Α και υπάρχουν
δύο αποθήκες µε χωρητικότητες y1 και y2 τότε Γ={(y1, y2)  y1+y2≤Α}. Tο γενικό
πρόβληµα διατυπώνεται ως εξής
max f(y) όταν y∈Γ όπου Γ⊂ n. (4.14)

4.3.1 Bελτιστοποίηση µε περιορισµούς ισότητας

Εξετάζουµε πρώτα την περίπτωση όπου δεν υπάρχουν περιορισµοί, δηλαδή τα yi


λαµβάνουν τιµές σε όλο το R.. Αν η συνάρτηση f(y) είναι κοίλη ως προς το διάνυσµα y
τότε οι συνθήκες
∂f ( y)
S ( yi ) := = 0 για κάθε i=1, . . .,n
∂yi
είναι ικανές και αναγκαίες ώστε το y=[y1 ... yn]T να είναι σηµείο ολικού µεγίστου της f.
Τα yi προσδιορίζονται επιλύοντας τις ανωτέρω εξισώσεις. Ορίζουµε τώρα το διάνυσµα
S(y) ίσο προς το [S(y1) . . . S(yn)]T. Συχνά το σύστηµα εξισώσεων είναι µη γραµµικό και
δεν επιλύεται αναλυτικά και κανείς αρκείται σε αριθµητικές µεθόδους διαδοχικών
προσεγγίσεων της λύσης. Μία από αυτές είναι η ακόλουθη:

Eπαναληπτικό σχήµα µέγιστης ανόδου (steepest ascent technique)


0. ∆ιάλεξε µία ακολουθία βηµάτων (Jk) ώστε
∞ ∞

lim J k = 0, ∑ Jk = ∞, ∑ Jk2 < ∞ .


k →∞ k =1 k =1

Τέτοια ακολουθία είναι η 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 και µπορεί να είναι πολύ αργή.
Ως εναλλακτικό σχήµα προτείνεται συνήθως το ακόλουθο:

0. ∆ιάλεξε ένα σταθερό µήκος βήµατος J


1. (ίδιο)
2. (ίδιο)
3. Βελτιστοποίησε τη συνάρτηση φ(j) = f[y(k) + j S(y(k))] ως προς j∈(0,J) εφαρµόζοντας
την τεχνική της χρυσής τοµής:
i) A=0, B=J. Θεώρησε το ευθύγραµµο τµήµα ΑΒ.
ii) Σηµεία χρυσής τοµής L=A+0.382(B – A) U= A+0.618(B – A)
iii) Αν φ(U)>φ(L) τότε Α=L, B=ίδιο, αν φ(U)≤φ(L), τότε Α=ίδιο Β=U. Eπανάλαβε
το βήµα (ii). Μετά από ορισµένες επαναλήψεις προσδιορίζεται η βέλτιστη τιµή
J*= L ή U που µεγιστοποιεί την φ, και υπολογίζεται η νέα εκτίµηση
yi (k+1) = yi(k) + J* S(yi(k)) , i=1, . . ., n.

Παράδειγµα
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
του αλγορίθµου µέγιστης ανόδου.

-----Steepest Ascent Iteration: 1 ------


y= .00000 3.00000
dF= 44.0000000 -24.0000000

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

-----Steepest Ascent Iteration: 2 ------


y= 3.21033 1.24891
dF= -8.5170160 2.8500159
F(y)= -2.6535759
k L φ(L) U φ(U)
1 .1910000 -4.041887 .3090000 -17.628818
2 .1180380 -.934242 .1910000 -4.041887
3 .0729620 -.225775 .1180380 -.934242

-----Steepest Ascent Iteration: 3 ------


y= 2.58891 1.45685
dF= -.1673685 -1.2992011
F(y)= -.2257754
k L φ(L) U φ(U)
1 .1910000 -.115682 .3090000 -.265084
2 .1180380 -.106367 .1910000 -.115682
3 .0729620 -.132345 .1180380 -.106367

-----Steepest Ascent Iteration: 4 ------


y= 2.56915 1.30350
dF= -.6617852 -.1513837
F(y)= -.1063667
k L φ(L) U φ(U)
1 .1910000 -.049753 .3090000 -.039819
2 .3090000 -.039819 .3819620 -.040636
3 .2639475 -.041800 .3090000 -.039819

-----Steepest Ascent Iteration: 5 ------


y= 2.36466 1.25672
dF= .1035961 -.5951296
F(y)= -.0398195
k L φ(L) U φ(U)
1 .1910000 -.031517 .3090000 -.087769
2 .1180380 -.020193 .1910000 -.031517
3 .0729620 -.022153 .1180380 -.020193
....................................................................

-----Steepest Ascent Iteration: 56 ------


y= 2.11447 1.05688
dF= -.0074214 .0028438
F(y)= -.0001722
k L φ(L) U φ(U)
1 .1910000 -.000167 .3090000 -.000169
2 .1180380 -.000167 .1910000 -.000167
3 .1910000 -.000167 .2360525 -.000167

-----Steepest Ascent Iteration: 57 ------


y= 2.11305 1.05742
dF= -.0021936 -.0071715
F(y)= -.0001666

51
Bλέπουµε ότι το y είναι πολύ κοντά στο ακρότατο (οι παράγωγοι ≈0, η συνάρτηση≈0).

Στη συνέχεια εξετάζουµε προβλήµατα βελτιστοποίησης µε περιορισµούς ισότητας.


Έστω το πρόβληµα µη γραµµικού προγραµµατισµού
max f(y)
µε τους περιορισµούς gj(y)=bj, j=1,…,m.
Αποδεικνύεται ότι το πρόβληµα αυτό ισοδύναµεί µε το πρόβληµα
 m

max  f ( y ) − ∑ λj [ g j ( y) − b j ] 
 j =1 
χωρίς περιορισµούς, για κάποιους θετικούς αριθµούς λj που ονοµάζονται
πολλαπλασιαστές Lagrange. Aν η f(y) είναι κοίλη και οι gj(y) κυρτές συναρτήσεις και
διαθέτουν συνεχείς µερικές παραγώγους, τότε η λύση του προβλήµατος είναι το σηµείο y
αν και µόνο αν υπάρχουν πολλαπλασιαστές Lagrange λj≥0 , j=1, ..., m τέτοιοι ώστε
∂f ( y ) m
∂g j ( y)
= ∑ λj , i = 1, ..., n ,.
∂yi j =1 ∂yi
Αν το ανωτέρω σύστηµα εξισώσεων είναι αδύνατο, τότε κάποια yi είναι 0. Θα δούµε στη
συνέχεια δύο µεθόδους για τις περιπτώσεις όπου οι περιορισµοί είναι ισότητες και
ανισότητες.

4.3.2 Συνθήκες Kuhn-Tucker

Έστω το πρόβληµα µη γραµµικού προγραµµατισµού


max f(y) (4.15a)
µε τους περιορισµούς gj(y)≤bj, j=1,…,m. (4.15b)
Aν η f(y) είναι κοίλη και οι gj(y) κυρτές συναρτήσεις και έχουν συνεχείς µερικές
παραγώγους, τότε η λύση του προβλήµατος είναι το σηµείο y αν και µόνο αν
ικανοποιούνται οι ακόλουθες
Συνθήκες Kuhn-Tucker : Υπάρχουν αριθµοί λj≥0 , j=1, ..., m, τέτοιοι ώστε
∂f ( y ) m
∂g j ( y)
− ∑ λj = 0 , i = 1, ..., n , (4.16a)
∂yi j =1 ∂yi
λj[gj(y) – bj]=0, j=1,…,m (4.16b)
και ισχύουν οι περιορισµοί (4.15b).

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.

4.3.3 Mέθοδος Συναρτήσεως Ποινής (Penalty Function Method)

Εδώ µετατρέπουµε τους περιορισµούς του προβλήµατος (15a, b) σε συνάρτηση ποινής,


και προκύπτει το πρόβληµα χωρίς περιορισµούς. Θεωρούµε το νέο πρόβληµα :
 m

max f ( y) − λ ∑ h j ( y)  = F ( y ,λ) (4.18)
 j =1 
όπου hj(y) είναι οι συναρτήσεις ποινών
[ max{ 0, g j ( y) − b j }] 2 αν έχουµε περιορισµό ανισότητας j ≤ k
h j ( y) =  (4.19)
 [ g j ( y) − b j ] 2 αν έχουµε περιορισµό ισότητας j ≥ k +1
Οι παράγωγοι των hj είναι
 ∂g j ( y)
 2[ max( 0, g j ( y) − b j )] αν έχουµε περιορισµό ανισότητας j ≤ k
∂h j ( y)  ∂yi
= (4.20)
∂yi  2[ g j ( y) − b j ] ∂g j ( y) αν έχουµε περιορισµό ισότητας j ≥ k +1
 ∂yi
Aλγόριθµος
Βήµα 0: Θεωρούµε µία ακολουθία αριθµών λm ≥ 0 που τείνει στο ∞ και είναι αύξουσα.
Τέτοια ακολουθία είναι η λm= β λm – 1 όπου β>1. Ξεκινάµε µε m=1, κάποιο λ1,
και ένα αυθαίρετο αρχικό διάνυσµα µεταβλητών αποφάσεως y(0).
Βήµα m: Ορίζουµε τη συνάρτηση F(y,λm). Αρχίζοντας από το βέλτιστο διάνυσµα y(m – 1)
του προηγούµενου βήµατος (m – 1), εφαρµόζουµε κάποιο επαναληπτικό
αλγόριθµο βελτιστοποίησης της F (π.χ. µέγιστης ανόδου, Παράγραφος 4.3.1).
Ο αλγόριθµος δίδει ένα νέο βέλτιστο διάνυσµα y(m). Aν το y(m) ικανοποιεί τους
περιορισµούς (4.15b) µε ικανοποιητική ακρίβεια τότε σταµατάµε. ∆ιαφορετικά,
θέτουµε m:=m+1 , λm= βλm – 1 και επαναλαµβάνουµε το βήµα m.
Παρατήρηση: Κάθε βήµα m περιλαµβάνει τη λύση ενός προβλήµατος max F(y,λm).
Aυτό επιτυγχάνεται µε τον αλγόριθµο µέγιστης ανόδου. Ο αλγόριθµος αυτός εκτελείται
µε µία σειρά επαναληπτικών βηµάτων τα οποία διαδοχικά προσεγγίζουν το ακρότατο
y=y(m). Συνεχίζοντας, κάθε βήµα του αλγορίθµου αυτού περιλαµβάνει ένα ορισµένο
πλήθος διχοτοµήσεων για την έρευνα χρυσής τοµής. Η διαδικασία συγκλίνει ευκολότερα
αν το πλήθος διχοτοµήσεων αυξάνεται καθώς αυξάνεται το m. Αυτό φαίνεται στον
κώδικα του αλγορίθµου σε γλώσσα FORTRAN 77 που ακολουθεί.

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.

------MAIN LOOP= 1 LAGRANGE MULTIPLIER lm=.10E+01 ------


-----Steepest Ascent Iteration: 1 ------
y= .00000 3.00000
dF= 44.0000000 -30.0000000
F(y,lm)= -61.0000000
k L F(L) U F(U)
1 .0764000 -119.420481 .1236000 -1103.888753
2 .0472152 -8.652945 .0764000 -119.420481
3 .0291848 -9.278614 .0472152 -8.652945
4 .0472152 -8.652945 .0583638 -28.684118
…………………………………………………………………………………………………………………………………………………………………………………………………

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

Προκύπτουν οι τιµές y1=0.94565 και y2=0.89255 οι οποίες ικανοποιούν τις συνθήκες


Kuhn-Tucker µε ικανοποιητική ακρίβεια:
λ=985>0 και
∂F/∂y ≈0⇒16(a) , ∂F/∂λ≈0 ⇒ y12≈y2 ⇒16(b).

4.4 ΠΡΟΒΛΗΜΑΤΑ ΡΟΗΣ ΚΑΙ ∆ΡΟΜΟΛΟΓΗΣΗΣ

4.4.1 Αιτιοκρατικοί Χρόνοι Κατεργασιών

Στο εδάφιο αυτό, εξετάζουµε τό πρόβληµα ροής µακροσκοπικά θεωρώντας


αιτιοκρατικούς χρόνους παραγωγής. Θεωρούµε ένα σύστηµα µε Μ µηχανές το οποίο
παράγει Ρ τύπους προϊόντων. Κάθε προϊόν τύπου p απαιτεί Κp κατεργασίες k=1, . . , Kp .
Κάθε κατεργασία (p,k) µπορεί να γίνει σε διάφορες µηχανές και έστω tpkj ο χρόνος
εκτέλεσής της στη µηχανή j. Το σύστηµα διαθέτει ένα σύστηµα διαχείρισης (µεταφοράς)
υλικού για την κυκλοφορία κοµµατιών από τη µία µηχανή στην άλλη. Συχνά οι

59
διασυνδέσεις µηχανών είναι καθορισµένες έτσι ώστε να µην επιτρέπονται κάποιες
διαδροµές. Αυτό περιορίζει την ελευθερία επιλογής της επόµενης µηχανής για κάποιο
προϊόν.
Για παράδειγµα, θεωρείστε ένα σύστηµα µε δύο µηχανές, και δύο προϊόντα.

Μ1

Πρώτες ύλες

Τελικά προϊόντα

Μ2

Σχήµα 4. Ένα σύστηµα µε δύο σταθµούς παραγωγής.

Το προϊόν 1 απαιτεί µία κατεργασία και το 2 απαιτεί δύο. Η σειρά εκτέλεσης των
κατεργασιών είναι αυθαίρετη. Οι χρόνοι κατεργασιών δίδονται στον επόµενο πίνακα.

Μηχανές j
1 2
Κατεργασία (p,k)
5 6
(1,1), προϊόν 1
(2,1), προϊόν 2
7 ∞

(2,2), προϊόν 2 ∞ 8

Για το προϊόν 1, οι εναλλακτικές πολιτικές παραγωγής είναι δύο (κατεργασία στην


µηχανή 1 ή στην 2). Οµοίως, για το προϊόν 2 είναι πάλι δύο (κατεργασία 1→ κατεργασία
2, ή κατεργασία 2→ κατεργασία 1).
Συµβολίζουµε Cp το κέρδος από την παραγωγή µίας µονάδας προϊόντος p. Το
πρόβληµα είναι να εύρουµε τις ποσότητες που θα παράγονται από κάθε µηχανή ώστε να
µεγιστοποιείται το κέρδος ανά µονάδα χρόνου και συγχρόνως το πρόγραµµα παραγωγής
να συµβιβάζεται µε την διαθεσιµότητα των µηχανών (*).
Στη µόνιµη κατάσταση, για κάθε τύπο προϊόντος p, ο ρυθµός εκτέλεσης
κατεργασιών 1 θα ισούται µε τον το ρυθµό εκτέλεσης κατεργασιών 2, ..., και µε το ρυθµό

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

Αυτό είναι πρόβληµα γραµµικού προγραµµατισµού.


Σε κάθε µονάδα χρόνου, η ποσότητα xpkj δεσµεύει την µηχανή j για xpkj tpkj (< 1)
µονάδες χρόνου. Στους περιορισµούς του προβλήµατος δεν περιλάβαµε την
διαθεσιµότητα του συστήµατος διαχείρισης υλικών. Για το σκοπό αυτό πρέπει σε κάθε
ποσότητα xpkj να αντιστοιχίσουµε και ένα χρόνο απασχόλησης του συστήµατος αυτού.
Αυτό γίνεται καθορίζοντας το χρόνο που θα απαιτηθεί ώστε µία µονάδα κατεργασµένου
προϊόντος p να µεταφερθεί από την µηχανή j στην µηχανή η οποία θα κάνει την επόµενη
κατεργασία. Στο σχήµα 4 µπορούµε να εύρουµε το χρόνο µεταφοράς αν γνωρίζουµε τα
µήκη των βελών, την ταχύτητα του συστήµατος µεταφοράς και την χωρητικότητά του.
Προφανώς η διαδικασία αυτή είναι πολύπλοκη γιατί, εκτός των προηγουµένων
δυσκολιών, οι ποσότητες xpkj µετά από την j δεν µεταφέρονται πάντα στην ίδια µηχανή.
Αν µε κάποιο τρόπο υπολογισθεί o χρόνος αυτός και ευρεθεί ίσος, έστω, µε tpk0 , τότε
στις σχέσεις (4.21 b,c) θεωρούµε το σύστηµα διαχείρισης ως µηχανή j=0.

4.4.2 Στοχαστικοί Χρόνοι Κατεργασιών - Περιορισµοί Αποθέµατος

Όταν οι χρόνοι κατεργασιών είναι τυχαίοι δηµιουργούνται ουρές µπροστά από τις
µηχανές. Το πρόβληµα βελτιστοποίησης είναι η µεγιστοποίηση του αναµενόµενου
ρυθµού κέρδους υπό την προϋπόθεση το µέσο πλήθος κοµµατιών στο σύστηµα να είναι
µικρότερο από ένα κατώφλι 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

Επίσης ο µέσος χρόνος εξυπηρέτησης 1/µj ορίζεται από τη σχέση

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)

1. Αποδείξατε τις Παρατηρήσεις 1, 2, 3. ∆ιατυπώστε το νέο πρόβληµα του


παραδείγµατος για τ = 0 και γράψτε τις συνθήκες Kuhn-Tucker που πρέπει να ικανοποιεί
η λύση.
2. Θεωρείστε το νέο πρόβληµα µε τ=0, C1=1, C2=3 και Q=γνωστός αριθµός. Εύρετε τη
λύση του θεωρητικά εφαρµόζοντας τις συνθήκες Kuhn-Tucker.
3. Λύστε την Άσκηση 2 αριθµητικά για Q=2. Eκτελέσατε στο χαρτί δύο βήµατα κάποιου
αλγόριθµου βελτιστοποίησης. Ξεκινήστε µε αυθαίρετες αρχικές τιµές για το διάνυσµα x.

64
5 ΕΥΣΤΑΘΕΙΑ ΣΥΣΤΗΜΑΤΩΝ ΠΑΡΑΓΩΓΗΣ

5.1 ΕΙΣΑΓΩΓΗ

Στο κεφάλαιο αυτό εξετάζουµε συστήµατα σύνθετης γεωµετρίας τα οποία αποτελούνται


από διαφορετικούς τύπους µηχανών και παράγουν διαφορετικούς τύπους προϊόντων. Για
κάθε προϊόν απαιτούνται κατεργασίες οι οποίες θα εκτελεσθούν σε διάφορες µηχανές.
Μια µηχανή δύναται να εκτελέσει κατεργασίες για προϊόντα διαφορετικών τύπων. Τα
κοµµάτια του ίδιου τύπου αποθηκεύονται σε µία αποθήκη µπροστά από τη µηχανή
περιµένοντας κατεργασία. Αφού φύγουν από τη µηχανή, αποθηκεύονται σε άλλη
αποθήκη που βρίσκεται µπροστά από την επόµενη µηχανή και αναµένουν περαιτέρω
κατεργασίες. Επειδή µια µηχανή δεν µπορεί να κατεργάζεται πολλά κοµµάτια
ταυτοχρόνως, παράγει έναν τύπο προϊόντος για κάποιο χρονικό διάστηµα, στη συνέχεια
διακόπτει την παραγωγή του και αρχίζει να παράγει προϊόν άλλου τύπου, κ.ο.κ. Η
στάθµη της αποθήκης τροφοδοσίας κοµµατιών τα οποία παράγονται σε κάποιο διάστηµα
µειώνεται, ενώ οι στάθµες των αποθηκών των άλλων τύπων προϊόντων αυξάνονται. Το
πρόβληµα είναι ο καθορισµός των διαστηµάτων παραγωγής για κάθε τύπο προϊόντος και
κάθε µηχανή έτσι ώστε το σύστηµα να είναι ευσταθές ήτοι,
οι στάθµες των αποθηκών να είναι φραγµένες (≤Μ) κάθε χρονική στιγµή.
∆ιαισθητικά, κανείς µπορεί να οδηγηθεί στην εξής πολιτική ελέγχου για µια µηχανή:
"Αρχισε να παράγεις ένα προϊόν κάποιου τύπου και όταν η αποθήκη τροφοδοσίας ενός
άλλου τύπου φθάσει κοντά στο Μ άρχισε να παράγεις εκείνον". Μια άλλη πολιτική είναι:
"Επίλεξε έναν τύπο προϊόντων και άρχισε να τα παράγεις έως ότου η αποθήκη
τροφοδοσίας εξαντληθεί. Κατόπιν επίλεξε άλλον τύπο και επανάλαβε". Η πολιτική αυτή
ονοµάζεται εξαντλούσα (clearing policy).

5.2 ΜΙΑ ΜΗΧΑΝΗ

Θεωρούµε, στην αρχή, ένα σύστηµα που αποτελείται από µία µόνο µηχανή, και παράγει
προϊόντα τύπων 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

⇒ sup ( tdi − yi ( t ) ) ≤ Mi (5.1β)


t

Η τελευταία δηλώνει ότι η συνολική παραγωγή yi(t) δεν πρέπει να υπολείπεται της
συνολικής ζήτησης περισσότερο από µία σταθερά Mi. Αναγκαία συνθήκη ευστάθειας
του συστήµατος είναι η µηχανή να έχει αρκετή ταχύτητα ώστε στο διάστηµα [0,t] να
"προλαβαίνει" τη ζήτηση κάθε προϊόντος, και να της περισσεύει χρόνος για
προετοιµασίες ή ακόµη και χρόνος αδράνειας:
P

t > ∑τ i ( tdi ) , (5.2α)


i =1

ή, απαλοίφοντας το 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

Θεώρηµα 5.1. Ιδιότητες των πολιτικών CAF:


(i) είναι ευσταθείς, και συγκεκριµένα
(ii) αν τ – =mini{τi} και τ+=maxi{τi} τότε
δρ δτ +  ρ − ρi 
(*): lim − sup ∑i xi ( t ) ≤ + max 
t →∞ τ− ετ − (1 − ρ ) i  τ i 
(iii) αν τη στιγµή Τ0=0 ικανοποιείται η σχέση
δ  ρ − ρi 
∑i xi ( 0) ≤ max ,
ε (1− ρ ) i  τ i 
τότε
δρ δτ +  ρ − ρi 
∑é xi ( t ) ≤ + max  , για κάθε t ≥ 0.
τ− ετ − ( 1 − ρ ) i  τ i 
Εποµένως, οι πολιτκές CAF µπορούν να εφαρµοσθούν όταν διατίθενται σταθερές
και πεπερασµένες χωρητικότητες αποθηκών.

(*) Σηµείωση: Θεωρείστε µία συνάρτηση 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)

f(t) sup f (x)


x≥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

= Σi≠ j τi [xi(Tn)+di(Tn+1 – Tn)]


= w(Tn) – a(j) xj(Tn) + b(j), ...από την (5.4),
όπου γένει a(j) = (1 – ρj) – 1(1 – ρ)τj και b(j) = (1 – ρj) – 1(ρ – ρj)δ. Τότε, η (5.3)
συνεπάγεται
a(j) xj(Tn)≥ a(j) εΣixi(Tn)= a(j) εΣi [xi(Tn)τi/ τi]

≥ a(j) (ε/τ+) Σi τi xi(Tn) (5.5)


Αρα,
 ε 
w( Tn +1) ≤ 1 − a( j ) w( Tn ) + b( j ) (5.6)
 τ+ 
Ορίζουµε τώρα την ακολουθία
τ+ b(i )
g n = w(Tn ) − max .
ε i a (i )
Συγκρίνουµε τους όρους gn+1 και gn και η (5.6) συνεπάγεται

 ε   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.2. Για την πολιτική CLW και P τύπους προϊόντων


δ ( P −1)   δρ ( P − ρ )
lim−sup w(t )≤  ρ − min τ i di  + δρ ≤
t →∞ 1− ρ i 1− ρ
Απόδειξη: Η απόδειξη της πρώτης ανισότητας βασίζεται στο ότι η ανισότητα (5.5 )
µπορεί να βελτιωθεί ως εξής:
a( j ) a( j )
a(j) xj(Tn)= a(j) xj(Tn) τj/τj ≥ ∑i τ i xi ( Tn ) = w( Tn ) ,
( P − 1)τ j ( P − 1)τ j

και κατόπιν να ακολουθηθεί παρόµοια διαδικασία όπως εκείνη της απόδειξης του
Θεωρήµατος 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 − ρ )

Απόδειξη: Λόγω ευστάθειας ισχύει η (5.1α) και απ' αυτήν


c=maxi Mi ≥ supi xi(t) για κάθε i=1,...,Ρ και t∈[0,∞). (5.9)
Η σταθερά c δεν είναι γνωστή. Θεωρήστε τώρα το διάστηµα παραγωγής [0,Τ]. Εστωσαν
ni το πλήθος των περιόδων παραγωγής προϊόντων τύπου i, και ti ο συνολικός χρόνος
παραγωγής προϊόντων τύπου i χωρίς τους χρόνους προετοιµασίας. Το συνολικό πλήθος
προετοιµασιών είναι ( ∑i ni ) − 1 αφού για το προϊόν που παράγεται τη στιγµή 0 δεν
χρειάζεται προετοιµασία.Τότε xi(T)=xi(0) + (συνολική είσοδος) – (συνολική
παραγωγή)=xi(0)+Tdi – ti/τi. Από την (5.9):
c – xi(0) ≥ xi(T) – xi(0) =Tdi – ti/τi ⇒ Σi τiTdi – Σi ti ≤ Σi cτi
Από τον περιορισµό χρόνου παραγωγής
Σiti + δ[(Σi ni) – 1] ≤ T (5.10)

και την προηγούµενη ανισότητα ορίζοντας 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

από κοινού και θα προσπαθήσουµε να βρούµε τα ni για κάθε i=1,...,P τα οποία


ελαχιστοποιούν το άθροισµα των εµβαδών µε βάρη γiτi. Η ελάχιστη τιµή θα είναι το
ζητούµενο κάτω φράγµα.
Βήµα 1. Παρατηρούµε το απόθεµα xi(t) του τύπου i. Κατασκεάζουµε µια φανταστική
συνάρτηση Χi(t) ως εξής:
(α) Μετατοπίζουµε την xi(t) προς τα κάτω µέχρις ότου κάποια τιµή της αγγίξει το 0. (βλ.
σηµείο Α στο σχήµα).

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

Αποδεικνύεται ότι στη θέση των ενδιάµεσων (ni – 1) τριγώνων µπορούµε να


τοποθετήσουµε (ni – 1) ίσα τρίγωνα. Τα τρίγωνα αυτά είναι όµοια µε τα αρχικά (έχουν
ίσες γωνίες), ίση συνολική διάρκεια παραγωγής προϊόντος i, αλλά ακόµη µικρότερο
εµβαδόν. Συµβολίζουµε πάλι Χi(t) την νέα "ιδανική" γραµµή αποθέµατος που προκύπτει.
Το εµβαδόν της Χi(t) είναι κάτω φραγµένο από
( T − C ) 2 di ( 1 − ρi )
∫oT X i ( s) ds ≥ = εµβαδόν που καλύπτουν τα ίσα τρίγωνα (5.12)
2ni
όπου τώρα ορίζουµε C:=max{3c/di , 3c/(τi – 1 – di)}.
Βήµα 2: Εξετάζουµε τώρα όλα τα προϊόντα από κοινού. Το µέσο κόστος αποθηκευµένου
έργου έχει κάτω φράγµα (από την (5.12) µε ρi=τidi)
1 1 γ i ( T − C) 2 ρi ( 1 − ρi )
∫0 [ ∑i γ iτ i xi ( s)] ds ≥ ∫0 [ ∑i γ iτ i X i ( s) ds] ≥ ∑i
T T
(5.13)
T T 2Tni
Θεωρούµε τώρα το εξής πρόβληµα βελτιστοποίησης
P
γ i ( T − C) 2 ρi (1 − ρi )
min f ( n1 ,n2 ,...,nP ):= ∑ (5.14)
i =1 2Tni
όταν δΣini ≤ (1 – ρ)T+δ+C, (5.15)
και ni = πραγµατικοί αριθµοί ≥0, για i=1,2,...,P. (5.16)
Η (5.15) είναι ο ίδιος περιορισµός µε τον (5.11), ωστόσο εδώ τα ni δεν είναι απαραίτητα
ακέραιοι, αλλά µη αρνητικοί πραγµατικοί αριθµοί. Εποµένως η ποσότητα (5.14) θα
αποτελεί ένα κάτω φράγµα του µέσου κόστους αποθηκευµένου έργου, γιατί οι
περιορισµοί της είναι πιο χαλαροί. Η τεχνική αυτή είναι γνωστή σε προβλήµατα
βελτιστοποίησης ως µέθοδος χαλάρωσης (relaxation method). Κατ' αρχάς παρατηρούµε
ότι η συνάρτηση f(n1,...,nP) µειώνεται όταν τα ni αυξάνονται. Αυτό σηµαίνει ότι τα ni
πρέπει να είναι όσο το δυνατόν µεγαλύτερα. Αρα, µπορούµε να αντικαταστήσουµε την
(5.15) µε περιορισµό ισότητας. Ετσι έχουµε:
δΣini – [(1 – ρ)T+δ+C] =0. (5.15α)

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

Εδώ η βέλτιστη πολιτική είναι απλή: "Εξάντλησε το απόθεµα του 1, κατόπιν


προετοίµασε την µηχανή και εξάντλησε το απόθεµα του 2, κατόπιν του 1 κ.ο.κ ". Για την
γενική περίπτωση, θα επινοήσουµε µία πολιτική που, διαισθητικά, φαίνεται ότι δίδει
µικρά εµβαδά.
Κατ' αρχάς παρατηρούµε ότι το πλήθος των τριγώνων ni στο διάστηµα (0,Τ) είναι

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 αποδεικνύεται οτι
είναι ευσταθής.

5.4 ΣΥΣΤΗΜΑΤΑ ΓΕΝΙΚΟΤΕΡΗΣ ΓΕΩΜΕΤΡΙΑΣ

Εξετάζουµε τώρα σύνθετα συστήµατα. ∆ιακρίνουµε δύο κατηγορίες δικτύων παραγωγής:


'Ακυκλο είναι το δίκτυο όταν οι µηχανές τις οποίες επισκέπτεται ένα προϊόν είναι
διαφορετικές, δηλ. το µονοπάτι του δεν περιέχει κύκλους (π.χ. κατάστηµα ροής). Επί
πλέον αν κάποιο προϊόν επισκέπτεται την µηχανή m πρίν από τη µηχανή m', τότε δεν
υπάρχει προϊόν για το οποίο η επίσκεψη στην m' προηγείται της m.
Μη άκυκλο είναι το δίκτυο στο οποίο υπάρχουν µονοπάτια που περιέχουν κύκλους (π.χ.
κατάστηµα εργασιών), ή ακόµη και µηχανές µε διαφορετική σειρά επίσκεψης από
διαφορετικά προϊόντα. Λόγω της ύπαρξης πολλών µηχανών, ο έλεγχος µιας µηχανής
επηρεάζει και τις γειτονικές της µηχανές, οι οποίες µε τη σειρά τους επηρεάζουν την
πρώτη. Εποµένως, για την εύρεση των βέλτιστων πολιτικών σε κάθε µηχανή του δικτύου
πρέπει να ληφθούν υπ' όψιν όλες οι αλληλεπιδράσεις και αυτό είναι ένα πρόβληµα
πρακτικά άλυτο. Αντί αυτού, θα αποδείξουµε ότι το σύστηµα είναι ευσταθές όταν
εφαρµόζεται µία παραλλαγή των πολιτικών CAF σε κάθε µηχανή για την οποία
απαιτείται τοπική πληροφορία. Στην περίπτωση αυτή οι πολιτικές ονοµάζονται
κατανεµηµένες πολιτικές εξάντλησης κλάσµατος (distributed CAF policies).

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. Επαγωγικά,
προκύπτει ότι όλο το σύστηµα είναι ευσταθές.

5.4.2 Μη Ακυκλα ∆ίκτυα

Στο εδάφιο αυτό, εξετάζουµε την ευστάθεια δικτύων στα οποία οι διαδροµές των
προϊόντων µπορεί να περιέχουν κύκλους.
Συγκεκριµένα, όπως δείχνει το σχήµα, ένα προϊόν µπορεί να επισκέπτεται µία
µηχανή διαδοχικά (προϊόν 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

τότε οι πολιτικές CAF (5.22) είναι ευσταθείς.


Απόδειξη: Το θεώρηµα θα αποδειχθεί επαγωγικά για τα υποσύνολα Μ1,...,ΜR.
M1: Εξετάζουµε µία µηχανή m του Μ1. Υποθέτουµε ότι τη στιγµή Τn η στάθµη xjk(Tn)
ικανοποιεί την (5.22). Η µηχανή m αρχίζει την προετοιµασία της για κατεργασίες τύπου k
του προϊόντος j. Θεωρήστε τώρα µία χρονική στιγµή t>Tn. Στο διάστηµα [Τn,t] η εισροή
στην αποθήκη bjk είναι φραγµένη ως εξής
(εισροή στην bjk στο [Τn,t)) ≤ (t – Tn) Djk+γ1 (5.24α)
όπου το Djk ορίζεται στην Παραδοχή (7) και το γ1 είναι το φράγµα εκρήξεων της (5.21).
Για τις υπόλοιπες αποθήκες bih της ίδιας µηχανής διακρίνουµε τις εξής περιπτώσεις:
(i) Η bih δέχεται προϊόντα τύπου i από την m. Αν η αποθήκη bih είναι η αµέσως επόµενη
µετά την bjk τότε bih=bj(k+1) και µj, k+1=m και
(εισροή στην bj(k+1) στο [Τn,t))=(εκροή από bjk στο [Tn,t]) (5.24β)
(ii) H bih ανήκει σε αλυσίδα (njk – 1) αποθηκών της ίδιας µηχανής m τις οποίες το j
επισκέπετεται διαδοχικά. Αν η bih είναι κάποια από τις bj(k+2), bj(k+3), ..., ή bj(njk – 1), τότε
στην αποθήκη bih δεν εισέρχονται κοµµάτια επειδή η µηχανή τροφοδοτεί µόνον την
bj(k+1). Εποµένως
(εισροή στην bih στο [Tn,t))=0 (5.24γ)
(iii) H bih δεν είναι ούτε (i) ούτε (ii). Αν (i,h)≠(j,k), (j,k+1), (j,k+2),...,(j,njk – 1) τότε η bih
είτε τροφοδοτείται από άλλη µηχανή του υποσυνόλου Μ1 είτε από την είσοδο, οπότε
(εισροή στην bih στο [Tn,t)) ≤ (t – Tn)Dih+γ1 (5.24δ)
ή, ακόµη, µπορεί και να µην τροφοδοτείται καθόλου, οπότε η (5.24δ) ισχύει πάλι.
Εστω Τn+1 o χρόνος εξάντλησης της xjk(Tn), και δjk η διάρκεια προετοιµασίας. Τότε από
τις (5.24α), την δjk≤δm, και την x(Tn+1)=0 µπορεί να αποδειχθεί ότι
γ jk + x jk ( Tn )
Tn+1 – Tn≤ (5.25)
1
− D jk
τ jk
όπου γjk>0 µία σταθερά που εξαρτάται από τα δm, γ1 και τjk. Ο παρονοµαστής της (5.25)
είναι >0. Πράγµατι, τjkDjk< 1 εξ αιτίας του αυστηρού περιορισµού (5.21).
Ορίζουµε το αποθηκευµένο έργο στην µηχανή m τη χρονική στιγµή t:
wm (t ) = ∑ xih (t )[τ ih + τ i ( h+1 ) + ... + τ i( n
ih −1 )
] (5.26)
∀i ,h:
µih =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

Τότε η (5.26) συνεπάγεται,


wm(t)≤ τ+Σi,h xih(t) (5.27α)

wm(t)≥ τ – Σi,h xih(t). (5.27β)


Αν το αποθηκευµένο έργο είναι φραγµένο, τότε οι σχέσεις αυτές εγγυώνται ότι και το
απόθεµα είναι φραγµένο. Ξεκινάµε ευρίσκοντας φράγµατα για το έργο τη στιγµή Tn+1 .
wm(Tn+1)= Σi,h xih(Tn+1)[τih+τi(h+1)+…+τi(nih – 1)]=Σi,h [xih(Tn1) +εισροή – εκροή][τih+τi(h+1)+…]

= wm(Tn) + Σi,h [εισροή – εκροή][τih+ τi(h+1)+…]


Απο το άθροισµα απαλείφονται οι αποθήκες τύπου (ii), που ορίσαµε στην προηγούµενη
σελίδα. Επειδή η bjk εξαντλείται, απαλείφεται και το xjk(Tn) και οι ειροές/εκροές σε αυτήν
και το έργο µειώνεται κατά xjk(Tn+1)[τjk+ τj(k+1)+…]. Για την περίπτωση (i), επειδή όλο το
απόθεµα xjk(Tn) της bjk πηγαίνει στην bj(k+1), το έργο µειώνεται κατα τjk xjk(Tn). Οι
υπόλοιπες αποθήκες είναι τύπου (iii) και δεν έχουν εκροές. Συνοψίζοντας
wm(Tn+1)= wm(Tn) + ∑ [ εισροή] [τ ih + τ i( h+1) +L] – τjk xjk(Tn)
( i ,h ) ≠( j ,k ) ,( j ,k +1) ,,..

(24δ)⇒≤wm(Tn)+[Tn+1 – Tn][Σ(i,h)≠... Dih (τih+ τi(h+1)+..)]+[Σ(i,h)≠... γ1(τih+τi(h+1)+..)] – τjk xjk(Tn)


γ jk + x jk ( Tn )
(25)⇒≤wm(Tn)+
1
[Σ(i,h)≠...Dih(τih+τi(h+1)+..)]+[Σ(i,h)≠...γ1(τih+τi(h+1)+..)] – τjk xjk(Tn)
− D jk
τ jk
Μετά από άλγεβρα, και παρατηρώντας ότι η παράσταση στον αριθµητή του κλάσµατος
είναι αρνητική λόγω του αυστηρού περιορισµού (5.23), προκύπτει
wm(Tn+1)≤ wm(Tn) – Γjk xjk(Tn) + gjk (5.28)
όπου gjk , Γjk είναι κάποιοι θετικοί αριθµοί. Από την (5.22) έχουµε – xjk(Tn)
 
≤ −ε m ∑ xih ( Tn )  + Km , ενώ από την (5.27α) προκύπτει – Σi,h xih(Tn)≤ – wm(Tn)/τ+ .
bih : µi ,h = m 
Οι δύο τελευταίες ανισότητες µαζί µε την (5.28) δίνουν,
 εm Km 
wm(Tn+1)≤ wm(Tn) – Γjk  wm ( Tn ) −  + gjk
τ + τ+ 
≤ [1 – Γm] wm(Tn) + gm (5.29)

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
ευσταθές.

5.4.3 Ασκήσεις (Σειρά 7)

1. Αποδείξατε τις σχέσεις (5.4) και (5.25).


2. ∆ιατυπώσατε το πρόβληµα µικτού ακεραίου προγραµµατισµού (βλ. αρχή Παραγ. 5.3)
για την εύρεση των χρονικών στιγµών αλλαγής κατεργασίας Tn µίας µηχανής, και του
τύπου προϊόντος σε κάθε διάστηµα παραγωγής ώστε να ελαχιστοποιείται το µέσο κόστος
αποθηκευµένου έργου σε µία περίοδο [0,Τ].
3. Θεωρήσατε το σύστηµα του σχήµατος

1 τ4 τ5
d1=1/τ1 τ2 τ3
τ8 τ7 d2=1/τ 6 3
τ 10 τ9 2

στο οποίο τα τi , i ≠ 1, 6 συµβολίζουν τις διάρκειες των κατεργασιών και τα d1=1/τ1 ,


d2=1/τ6 τους ρυθµούς εισροής. Εύρετε τις ικανές συνθήκες µεταξύ των τi και dk οι οποίες
εγγυώνται την ευστάθεια των πολιτικών CAF.

5.5 ΕΡΓΑΣΙΑ

(10% στο συνολικό βαθµό). Aναπτύξατε έναν αλγόριθµο προσοµοίωσης του


προηγούµενου συστήµατος για ένα διάστηµα παραγωγής [0,Τ]. Σε κάθε µηχανή
εφαρµόζεται η πολιτική
"Τ1 =0 . Τη στιγµή Τn επιλέγεται η αποθήκη bj µε το µεγαλύτερο απόθεµα από όλες τις
αποθήκες της µηχανής. Σε περίπτωση ισότητας σταθµών επιλέγεται αυτή µε το
µεγαλύτερο j."
∆ίδονται Τ=2000, χρ. προετοιµασίας δ=0.1, τ2=(1/3) – ε, τ3=τ4=(1/9) – (ε/3), τ5=0.9,
τ7=(1/6) – ε, τ8=τ9=(1/18) – (ε/3), τ10=0.4, d1=1/τ1=1 , d2=1/τ6=2, αρχικές στάθµες x2=2,
x7=2, και οι υπόλοιπες 0. Το ε ισούται µε το πηλίκο του πλήθους των γραµµάτων του

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

You might also like