Προβλήματα Εκχώρησης (Assigmet Problems) Παραδείγματα Δικτυακή Διατύπωση Λύση Hugaria Algorithm Προβλήματα Εκχώρησης (Assigmet Problems) Παραδείγματα Εκχώρηση ατόμων στην εκτέλεση μίας δραστηριότητας Κατανομή εργατών σε μηχανές Κατανομή πωλητών σε περιοχές Κατανομή πληρωμάτων σε δρομολόγια Κλπ, κλπ, κλπ... Σημαντικό χαρακτηριστικό Ακεραιότητα (δεν μπορούμε να κατανέμουμε ½ άτομο!)
Προϋποθέσεις Προβλημάτων Εκχώρησης Ο αριθμός των ατόμων (assigees) και ο αριθμός των δραστηριοτήτων (assigmets or tasks) είναι ίσοι με Κάθε άτομο εκχωρείται στην εκτέλεση μίας μόνο δραστηριότητας Κάθε δραστηριότητα εκτελείται από ένα μόνο άτομο Υπάρχει κόστος c ij εάν το άτομο i, (i=,,) εκτελέσει τη δραστηριότητα j (j=,,) Ο στόχος είναι να βρεθεί η άριστη κατανομή που να ελαχιστοποιεί το συνολικό κόστος. Job Shop Compay Η εταιρεία αγόρασε 3 νέες μηχανές Οι μηχανές μπορούν να εγκατασταθούν σε 4 διαφορετικές τοποθεσίες (L, L2, L3 L4) Ο πιο κάτω πίνακας δείχνει το κόστος εγκατάστασης της μηχανής i στην τοποθεσία j. Βρείτε την τοποθεσία που πρέπει να εγκατασταθεί η κάθε μηχανή έτσι που να ελαχιστοποιηθεί το συνολικό κόστος Τοποθεσία ηχανή L L2 L3 L4 M M2 M3 3 5 5 6-7 2 3 2 6 2
A i Διατύπωση του προβλήματος σαν Πρόβλημα εταφοράς Προβλήματα Εκχώρησης Άτομα (Assigees) A T Διαδικασίες (Tasks) [s i =] T j [-d j =-] A T 3
Προβλήματα Εκχώρησης: Διατύπωση Γραμμικού Προγραμματισμού Subject to: Miimize x ij j= i= x ij Z = i= j= =, i =,..., xij =, j =,..., x ij, i =,..., ; j =,..., c ij x ij if assigee i performs task j = otherwise Προβλήματα Εκχώρησης: Ιδιότητα Ακέραιης Λύσης Παραβιάζει μία από τις προϋποθέσεις του ΓΠ x ij if assigee i performs task j = otherwise Ιδιότητα Α: Γιαπροβλήματαμεταφοράς, και κατά συνέπεια προβλήματα εκχώρησης, όπου κάθε s i και d j έχουν ακέραιες τιμές, όλες οι βασικές μεταβλητές σε κάθε βασική εφικτή λύση παίρνουν ακέραιες τιμές. 4
Better Products Co. Η εταιρεία Better Products Co. παράγει 4 προϊόντα σε 3 εργοστάσια και το κόστος παραγωγής φαίνεται στον πιο κάτω πίνακα. Εργοστάσιο F F2 F3 Ρυθμός Παραγωγής P 4 4 37 2 Κόστος Παραγωγής P2 27 29 3 3 P3 28-27 3 P4 24 23 2 4 Παραγωγ. Δυνατότητα 75 75 45 Ζητείται: το πρόγραμμα παραγωγής έτσι ώστε να ελαχιστοποιηθεί το συνολικό κόστος παραγωγής εάν:. Επιτρέπουμε την παραγωγή ενός προϊόντος σε περισσότερα από ένα εργοστάσια 2. Υποχρεώνουμε ολόκληρη την παραγωγή ενός προϊόντος να γίνει μόνο σε ένα εργοστάσιο. Better Products Co Επιλογή F P F2 F3 4 29 23 37 3 2 27 P2 P3 P4 5
Better Products Co. Εργοστάσιο F F2 F3 Ρυθμός Παραγωγής P 4 4 37 2 Κόστος Παραγωγής P2 27 29 3 3 P3 28-27 3 P4 24 23 2 4 Παραγωγ. Δυνατότητα 75 75 45 Επιλογή 2: Υποχρεώνουμε ολόκληρη την παραγωγή ενός προϊόντος να γίνει μόνο σε ένα εργοστάσιο. Better Products Co. Επιλογή 2 Fa P Fb F2a F2b F3 8 92 87 8 87 92 74 9 8 84 P2 P3 P4 6
Επίλυση Προβλημάτων Εκχώρησης Προσθέτοντας μία σταθερά q σε μία στήλη ή σειρά του πίνακα κόστους απλά ισοδυναμεί στη πρόσθεση της σταθεράς q στη τιμή της αντικειμενικής συνάρτησης του αρχικού προβλήματος, δηλαδή Απόδειξη: Z = cx = Z+ q= cx + q ij ij ij ij i= j= i= j= Επίλυση Προβλημάτων Εκχώρησης Παρατήρηση: Για προβλήματα εκχώρησης όπου όλοι οι συντελεστές κόστους c ij, ηελάχιστηδυνατήτιμήτης αντικειμενικής συνάρτησης δεν μπορεί να είναι μικρότερη από. Παρατήρηση: Ένα πρόβλημα εκχώρησης έχει μηδενικό κόστος εάν οι συντελεστές κόστους c ij = για όλες τις μεταβλητές x ij = έθοδος Επίλυσης Προβλημάτων Εκχώρησης: Σε κάθε βήμα, μετασχηματίζουμε τον πίνακα κόστους του προβλήματος (προσθέτοντας σταθερές στις στήλες και σειρές του πίνακα κόστους) μέχρις ότου να βρούμε ένα πρόβλημα εκχώρησης του οποίου η ελάχιστη τιμή είναι. 7
Παράδειγμα: Job Shop Compay (JS Co.) Πίνακας Κόστους L L2 L3 L4 M M2 M3 4 3 5 5 6-7 2 3 2 6 Ουγγρικός Αλγόριθμος: Παράδειγμα 8 8 6 6 6 6 9 3 3 2 2 8 8 5 5 3 3-3 -3-3 3 3 6-3 9 9 5 5-3 -3-3 -3-3. Καλύψτε όλα το 2. Από όλες τις στήλες και σειρές αφαιρέστε το ελάχιστο μη καλυμμένο κόστος c * 3. Για κάθε καλυμμένη στήλη και γραμμή, ξαναπροσθέστε το c * 5 5 3 3 6 6 2 9 9 5 5 8
Ουγγρικός Αλγόριθμος: Παράδειγμα 5 5 3 3 6 6 2 9 9 5 5 2 2 6 6 5 3 6 6 2 2. Καλύψτε όλα το 2. Από όλες τις στήλες και σειρές αφαιρέστε το ελάχιστο μη καλυμμένο κόστος c * 3. Για κάθε καλυμμένη στήλη και γραμμή, ξαναπροσθέστε το c * 9