"ΜΟΝΤΕΛΑ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΓΙΑ ΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΠΕΡΙΟΔΕΥΟΝΤΟΣ ΠΩΛΗΤΗ" Διπλωματική Εργασία της. Τσαρακλίδου Μαρίνα Άννα (ΑΕΜ:94)

Σχετικά έγγραφα
Θεωρία Παιγνίων και Αποφάσεων. Ενότητα 5: Εύρεση σημείων ισορροπίας σε παίγνια μηδενικού αθροίσματος. Ε. Μαρκάκης. Επικ. Καθηγητής

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem

ΤΕΙ Χαλκίδας Σχολή Διοίκησης και Οικονομίας Τμήμα Διοίκησης Επιχειρήσεων

Προσεγγιστικοί Αλγόριθμοι

Προσεγγιστικοί Αλγόριθμοι

2 η ΕΝΟΤΗΤΑ ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1

Δομές Δεδομένων & Αλγόριθμοι

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση

Συστήματα Παραγωγής ΠΑΡΑΔΕΙΓΜΑ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

ΕΦΑΡΜΟΓΕΣ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ

1. ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Αλγόριθμοι και Πολυπλοκότητα

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ακέραιος Γραμμικός Προγραμματισμός

Πληροφοριακά Συστήματα Διοίκησης. Εισαγωγή στον Γραμμικό Προγραμματισμό

α n z n = 1 + 2z 2 + 5z 3 n=0

Ε Π Ι Χ Ε Ι Ρ Η Σ Ι Α Κ Η Ε Ρ Ε Υ Ν Α

Επιχειρησιακή Έρευνα Θεωρητική Θεμελίωση της Μεθόδου Simplex

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεωρία Παιγνίων και Αποφάσεων Διδάσκων: Ε. Μαρκάκης, Εαρινό εξάμηνο 2015

Αλγοριθμικές Τεχνικές

Μοντελοποίηση προβληµάτων

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Δομές Δεδομένων και Αλγόριθμοι

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΑΘΗΜΑ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Β ΛΥΚΕΙΟΥ

ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΜΕΘΟΔΟΣ SIMPLEX, διαλ. 3. Ανωτάτη Σχολή Παιδαγωγικής και Τεχνολογικής Εκπαίδευσης 29/4/2017

Υπολογιστικό Πρόβληµα

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX

Γραµµικός Προγραµµατισµός (ΓΠ)


Ε Π Ι Χ Ε Ι Ρ Η Σ Ι Α Κ Η Ε Ρ Ε Υ Ν Α

3.7 Παραδείγματα Μεθόδου Simplex

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Γραφική Λύση & Πρότυπη Μορφή Μαθηματικού Μοντέλου

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

Πληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων/ γραφήματα. Τι έχουμε δει μέχρι τώρα. Ισομορφισμός γράφων: Μία σχέση ισοδυναμίας μεταξύ γράφων.

Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π

Πρακτική δραστηριότητα: Το πρόβλημα της λασπωμένης πόλης (σελ. 80) Πλακάκια ή τετράγωνα κομματάκια από χαρτόνι (περίπου 40 για κάθε παιδί)

Επιχειρησιακή Έρευνα. Εισαγωγική Διάλεξη

Fermat, 1638, Newton Euler, Lagrange, 1807

Μ Α Θ Η Μ Α Τ Ι Κ Ο Σ Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Ι Σ Μ Ο Σ

Γραμμικός Προγραμματισμός

Επιχειρησιακή Έρευνα I

Κλάσεις Πολυπλοκότητας

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr

Συνδυαστική Βελτιστοποίηση Εισαγωγή στον γραμμικό προγραμματισμό (ΓΠ)

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Εισαγωγή στο Γραμμικό Προγραμματισμό. Χειμερινό Εξάμηνο

Αλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα

Επιχειρησιακή Έρευνα I

Υπολογιστική Πολυπλοκότητα

Ακέραιος Γραμμικός Προγραμματισμός

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

Παραδείγματα Ιδιοτιμές Ιδιοδιανύσματα

και είναι παραγωγισιμη στο σημειο αυτό, τότε : f ( x 0

Στοχαστικές Στρατηγικές. διαδρομής (1)

Αλγόριθμοι και Πολυπλοκότητα

Παραλλαγές του Προβλήματος Μεταφοράς Το Πρόβλημα Μεταφόρτωσης και το Πρόβλημα Αναθέσεων Γεωργία Φουτσιτζή ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα

Διπλωματική εργασία Μοντέλα Γραμμικού Προγραμματισμού για το Πρόβλημα του Περιοδεύοντος Πωλητή. Νενεκούμη Άννα Α.Μ. 106

Υπολογιστική Πολυπλοκότητα

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο

Ακέραιος Γραμμικός Προγραμματισμός

HY118-Διακριτά Μαθηματικά. Τι είδαμε την προηγούμενη φορά. Θεωρία γράφων / γραφήματα. 25 -Γράφοι. ΗΥ118, Διακριτά Μαθηματικά Άνοιξη 2017

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι έχουµε δει µέχρι τώρα. Υπογράφηµα Γράφοι

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθµοι Brute-Force και Διεξοδική Αναζήτηση

Γραμμικός Προγραμματισμός και θεωρία Παιγνίων

Γραµµικός Προγραµµατισµός - Μέθοδος Simplex

Αναζητάμε το εβδομαδιαίο πρόγραμμα παραγωγής που θα μεγιστοποιήσει 1/20

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

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

να είναι παραγωγίσιμη Να ισχύει ότι f Αν μια από τις τρεις παραπάνω συνθήκες δεν ισχύουν τότε δεν ισχύει και το θεώρημα Rolle.

A. ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ Επιστήμη των Αποφάσεων, Διοικητική Επιστήμη

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

Στοχαστικές Στρατηγικές

Η γραφική μέθοδος επίλυσης προβλημάτων Γραμμικού Προγραμματισμού

Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΜΑΘΗΜΑΤΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΒΛΗΜΑΤΩΝ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΛΓΟΡΙΘΜΟΙ Ενότητα 10

A. ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ

Παραδείγματα Διανυσματικοί Χώροι Ι. Λυχναρόπουλος

Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ

Διαχείριση Εφοδιαστικής Αλυσίδας ΙΙ

Συνθήκες Θ.Μ.Τ. Τρόπος αντιμετώπισης: 1. Για να ισχύει το Θ.Μ.Τ. για μια συνάρτηση f σε ένα διάστημα [, ] (δηλαδή για να υπάρχει ένα τουλάχιστον (, )

Σχεδίαση & Ανάλυση Αλγορίθμων

1 Εισαγωγή στις Συνδυαστικές Δημοπρασίες - Combinatorial Auctions

Θεωρία Δυαδικότητας ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου. Επιχειρησιακή Έρευνα

Αλγόριθµοι και Πολυπλοκότητα

Θεωρία Παιγνίων Δρ. Τασσόπουλος Ιωάννης

Γραμμικός Προγραμματισμός

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Ποσοτικές Μέθοδοι στη Διοίκηση Έργων (Y100)

ΑΛΓΕΒΡΑ Β ΛΥΚΕΙΟΥ Κεφ. 1 - Συστήματα 1

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «ΔΙΟΙΚΗΣΗ LOGISTICS» "ΜΟΝΤΕΛΑ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΓΙΑ ΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΠΕΡΙΟΔΕΥΟΝΤΟΣ ΠΩΛΗΤΗ" Διπλωματική Εργασία της Τσαρακλίδου Μαρίνα Άννα (ΑΕΜ:94) Εξεταστική Επιτροπή: Επιβλέπων: Αλέξανδρος Διαμαντίδης Μέλη: Χρυσολέων Παπαδόπουλος Χρήστος Ζηκόπουλος ΘΕΣΣΑΛΟΝΙΚΗ ΙΑΝΟΥΑΡΙΟΣ 2015

1

ΕΥΧΑΡΙΣΤΙΕΣ Ολοκληρώνοντας την παρούσα μελέτη, θα ήθελα να ευχαριστήσω θερμά τον κ. Αλέξανδρο Διαμαντίδη για την ευκαιρία που μου έδωσε να συνεργαστούμε όλον αυτόν τον καιρό αλλά και για την εμπιστοσύνη που μου έδειξε. Οι πολύτιμες συμβουλές του αλλά και η αμέριστη βοήθεια και στήριξη του ήταν οι βασικοί παράγοντες ώστε να ολοκληρωθεί η διπλωματική αυτή εργασία. Επιπλέον θα ήθελα να ευχαριστήσω την εταιρία Παπαστράτος για τα στοιχεία τα οποία μου διέθεσε έτσι ώστε να πραγματοποιηθεί αυτή η εργασία. Τέλος, θα ήθελα να ευχαριστήσω την οικογένειά μου και τους φίλους μου καθώς και τον σύντροφό μου Γιώργο για την ηθική και ψυχολογική συμπαράσταση που μου προσέφεραν τόσο κατά τη διάρκεια των σπουδών μου, όσο και κατά τη διάρκεια αυτής της έρευνας. 2

3

ΠΕΡΙΛΗΨΗ Στο γνωστικό αντικείμενο της επιχειρησιακής έρευνας η εμφάνιση μαθηματικών εργαλείων για την επίλυση οικονομικών προβλημάτων είναι πολύ συχνή. Ο γραμμικός προγραμματισμός τη σημερινή εποχή αποτελεί αναμφίβολα το δημοφιλέστερο μοντέλο στο χώρο της επιχειρησιακής έρευνας αλλά και της διοικητικής επιστήμης γενικότερα. Η παρούσα μεταπτυχιακή διπλωματική εργασία ασχολείται με τα μοντέλα γραμμικού προγραμματισμού στο πρόβλημα του περιοδεύοντος πωλητή. Στόχος της εργασίας είναι ο εντοπισμός των βέλτιστων δρομολογίων που πρέπει να κάνει καθημερινά ένας επιθεωρητής πωλήσεων της εταιρίας Παπαστράτος στην ευρύτερη περιοχή των Ιωαννίνων. Κάθε επιθεωρητής πωλήσεων έχει ένα συγκεκριμένο σημείο εκκίνησης (αντιπροσωπεία καπνικών προϊόντων), καθώς και κάποια συγκεκριμένα σημεία λιανικής πώλησης που θα πρέπει να επισκεφτεί. Με τη βοήθεια της γλώσσας προγραμματισμού Lindo/Lingo, κωδικοποιήσαμε τα μοντέλα γραμμικού προγραμματισμού και βρήκαμε λύσεις στο πρόβλημα του περιοδεύοντος πωλητή. Έτσι, βρήκαμε τη συνολική βέλτιστη απόσταση που χρειάζεται να κάνει ένας επιθεωρητής πωλήσεων της εταιρίας Παπαστράτος, από το σημείο εκκίνησής του(αντιπροσωπεία καπνικών προϊόντων), στα επισκεπτόμενα σημεία λιανικής πώλησης, και πάλι πίσω στο σημείο εκκίνησής του. Τέλος, η σημαντικότερη συνεισφορά της παρούσας έρευνας, είναι τόσο η μείωση του χρόνου των καθημερινών δρομολογίων των επιθεωρητών πωλήσεων στην περιοχή των Ιωαννίνων, όσο και αύξηση της αποδοτικότητάς τους. Η εργασία χωρίζεται σε 5 κεφάλαια. Στο πρώτο κεφάλαιο, αναφέρουμε τον ορισμό του προβλήματος του περιοδεύοντος πωλητή όπως και την ιστορία του προβλήματος. Κάνουμε μια εισαγωγή στο πρόβλημα του περιοδεύοντος πωλητή παρουσιάζοντας κάποια στοιχεία για την πολυπλοκότητα του προβλήματος. Επίσης αναφέρουμε τα βασικά μαθηματικά εργαλεία, και συγκεκριμένα την 4

θεωρία γραφημάτων, τα οποία θέτουν το πρόβλημα του περιοδεύοντος πωλητή σε ένα αυστηρό μαθηματικό πλαίσιο. Επιπλέον παρουσιάζουμε αναλυτικά τρείς αλγορίθμους επίλυσης του προβλήματος. Μέσα από την επίλυση των αλγορίθμων, ο TSP έχοντας και την σύγκριση των αποτελεσμάτων παρατηρεί ότι και οι τρείς αλγόριθμοι που παρουσιάζουμε έχουν διαφορετική προσέγγιση. Με τη βοήθεια των αλγορίθμων μπορούμε και βγάζουμε χρήσιμα συμπεράσματα για τους τρόπους επίλυσης μεγάλων (σε χρονική ή χωρική πολυπλοκότητα ) προβλημάτων. Στο δεύτερο κεφάλαιο, κάνουμε μια εισαγωγή στον γραμμικό προγραμματισμό. Ο γραμμικός προγραμματισμός, είναι ένας κλάδος των Μαθηματικών με πολλές εφαρμογές στην μοντελοποίηση οικονομικών προβλημάτων ή προβλημάτων της αγοράς εργασίας. Αναφέρουμε και εδώ κάποια ιστορικά στοιχεία και δίνουμε τον ορισμό του προβλήματος σε κανονική μορφή. Έπειτα παρουσιάζουμε διάφορα προβλήματα γραμμικού προγραμματισμού και τα επιλύουμε με τον κώδικα Lingo Lindo. Στο τρίτο κεφάλαιο, συνθέτουμε όλα τα προηγούμενα και μοντελοποιούμε το πρόβλημα του περιοδεύοντος πωλητή σαν πρόβλημα γραμμικού προγραμματισμού. Δίνουμε δύο παραδείγματα το συμμετρικό πρόβλημα και το μη συμμετρικό. Επίσης παρουσιάζουμε την μοντελοποίηση τους αλλά και τον τρόπο επίλυσης (κώδικα) στον Lingo- Lindo. Στο τέταρτο κεφάλαιο, που είναι και το ερευνητικό συγκρίνουμε τρείς διαφορετικούς αλγορίθμους επίλυσης του προβλήματος με την χρήση του Lingo- Lindo έτσι ώστε να βρούμε τα δρομολόγια εκείνα τα οποία θα μας δώσουν τη βέλτιστη χιλιομετρική απόσταση μεταξύ των σημείων λιανικής πώλησης που επισκέπτεται καθημερνά ένας περιοδεύων πωλητής. Στο πέμπτο κεφάλαιο, παρουσιάζονται τα συμπεράσματα μας και προτείνονται κάποια θέματα για περαιτέρω έρευνα 5

ABSTRACT In operations research, it is really common to use mathematical tools in order to solve economic problems. Nowadays, linear programming is the most popular model in the field of operations research and management. This master thesis deals with many linear programming models while it studies the travelling salesman problem (TSP). The aim of this research is to identify the best possible routes of a sales inspector of Papastratos Company in the region of Ioannina. Every day, each sales inspector has to make a standard route from a specific starting point (warehouse of the tobacco products) to some different retail locations. In order to find the solution of the travelling salesman problem, we used the Lindo/Lingo programming language and we encoded the linear programming models. So, with the help of Lindo/Lingo, we found the optimal overall distance that a Papastratos sales inspector should travel each day. This optimal route, counts the distance from the tobacco warehouse of Ioannina to the retail locations, and back to its starting point. In conclusion, the contribution of this research is, not only to decrease the time of the everyday routes of the sales inspectors of Papastratos Company, but also to increase their productivity. 6

7

ΠΕΡΙΕΧΟΜΕΝΑ ΕΥΧΑΡΙΣΤΙΕΣ... 2 ΠΕΡΙΛΗΨΗ... 4 ABSTRACT... 6 ΠΙΝΑΚΑΣ ΠΙΝΑΚΩΝ... 11 ΠΙΝΑΚΑΣ ΣΧΗΜΑΤΩΝ... 13 Κεφάλαιο 1.Εισαγωγή στο πρόβλημα του Περιοδεύοντος Πωλητή... 14 1.1Εισαγωγή στη θεωρία γραφημάτων... 14 1.2 Ιστορία του προβλήματος... 17 1.3 Το πρόβλημα του περιοδεύοντος πωλητή (TSP)... 20 1.3.1 Κορυφές, Ακμές και Μονοπάτια... 20 1.4 Μέθοδοι Επίλυσης Προβληματων TSP... 24 1.4.1 Μέθοδος Brute Force.... 24 1.4.2 Ο Αλγόριθμος του Πλησιέστερου Γείτονα... 32 1.4.3 Ο άπληστος Αλγόριθμος... 36 1.4.4 Το πρόβλημα του κινέζου ταχυδρόμου (CPP)... 38 Κεφάλαιο 2.Γραμμικός Προγραμματισμός... 40 2.1 Τι είναι ο γραμμικός προγραμματισμός... 40 2.2 Ιστορία του Γραμμικού Προγραμματισμού... 42 2.3 Η Χρησιμότητα του Γραμμικού Προγραμματισμού... 43 2.4 Κατανόηση Τρόπου Μοντελοποίησης... 44 2.4.1 Πρόβλημα 1 - Πολιτική δανειοδοτήσεων... 44 2.4.2 Πρόβλημα γραμμικού προγραμματισμού με δυο μεταβλητές... 47 2.4.3 Πρόβλημα μέγιστου κέρδους... 54 2.4.3.1 Επίλυση του προβλήματος με το λογισμικό LINGO LINDO... 55 2.4.4 Πρόβλημα ελαχίστου κέρδους... 57 8

2.4.4.1 Επίλυση του προβλήματος με το λογισμικό LINGO LINDO... 59 Κεφάλαιο 3.Το πρόβλημα του περιοδεύοντος πωλητή και Γραμμικός Προγραμματισμός... 60 3.1 Το συμμετρικό πρόβλημα του περιοδεύοντος πωλητή... 60 3.1.1 Μοντελοποίηση του συμμετρικού προβλήματος... 62 3.2 Το μη συμμετρικό πρόβλημα.... 63 3.2.1 Παράδειγμα επίλυσης ενός μη συμμετρικού προβλήματος με τη χρήση του Lingo- Lindo 65 Κεφάλαιο 4. Μελέτη Περίπτωσης TSP ΙΩΑΝΝΙΝΑ... 68 4.1 Έρευνα TSP Παπαστράτος Α.Β.Ε.Σ... 68 4.2 Μοντέλο Γραμμικού Προγραμματισμού Μη Συμμετρικό πρόβλημα TSP Ιωάννινα.. 69 4.2.1 Δρομολόγιο 1... 70 4.2.2 Δρομολόγιο 2... 71 4.2.3 Δρομολόγιο 3... 73 4.2.4 Δρομολόγιο 4... 75 4.2.5 Δρομολόγιο 5... 77 4.3 Μοντέλο Γραμμικού Προγραμματισμού - Συμμετρικό πρόβλημα TSP Ιωάννινα... 79 4.3.1 Δρομολόγιο 1... 80 4.3.2 Δρομολόγιο 2... 82 4.3.3 Δρομολόγιο 3... 85 4.3.4 Δρομολόγιο 4... 87 4.3.5 Δρομολόγιο 5... 89 4.4 Μοντέλο Γραμμικού Προγραμματισμού Μη Συμμετρικό πρόβλημα TSP Ιωάννινα με Ενδιάμεσες Στάσεις... 92 4.4.1 Δρομολόγιο 1... 93 4.4.2 Δρομολόγιο 2... 95 4.4.3 Δρομολόγιο 3... 97 9

4.4.4 Δρομολόγιο 4... 99 4.4.5 Δρομολόγιο 5... 101 Κεφάλαιο 5. Συμπεράσματα... 103 5.1 Τα συμπεράσματα της εργασίας... 103 5.2 Περαιτέρω Έρευνα... 104 ΒΙΒΛΙΟΓΡΑΦΙΑ... 105 ΠΑΡΑΡΤΗΜΑΤΑ... 107 ΠΑΡΑΡΤΗΜΑ Α... 107 ΠΑΡΑΡΤΗΜΑ Β... 114 10

ΠΙΝΑΚΑΣ ΠΙΝΑΚΩΝ Πίνακας 1.1: Η εξέλιξη του TSP σε σχέση με το πλήθος των κόμβων.... 19 Πίνακας 1.2: Χρόνος και Brute Force μέθοδος...31 Πίνακας 1.3 Ομοιότητες και διαφορές TSP και CPP 38 Πίνακας 3.1: Ο Κώδικας σε Lingo...67 Πίνακας 4.1: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 1 μη συμμετρικό πρόβλημα..70 Πίνακας 4.2: Αποτελέσματα Lingo Δρομολογίου 1 μη συμμετρικό πρόβλημα...71 Πίνακας 4.3: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 2 μη συμμετρικό πρόβλημα...72 Πίνακας 4.4: Αποτελέσματα Lingo Δρομολογίου 2 μη συμμετρικό πρόβλημα...73 Πίνακας 4.5: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 3 μη συμμετρικό πρόβλημα...74 Πίνακας 4.6: Αποτελέσματα Lingo Δρομολογίου 3 μη συμμετρικό πρόβλημα... 75 Πίνακας 4.7: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 4 μη συμμετρικό πρόβλημα.. 76 Πίνακας 4.8: Αποτελέσματα Lingo Δρομολογίου 4 μη συμμετρικό πρόβλημα..77 Πίνακας 4.9: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 5 μη συμμετρικό πρόβλημα..78 Πίνακας 5.10: Αποτελέσματα Lingo Δρομολογίου 5 μη συμμετρικό πρόβλημα....79 Πίνακας 4.11: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 1 συμμετρικό πρόβλημα..80 Πίνακας 4.12: Αποτελέσματα Lingo Δρομολογίου 1 συμμετρικό πρόβλημα.. 82 Πίνακας 4.13: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 2 συμμετρικό πρόβλημα..83 Πίνακας 4.14: Αποτελέσματα Lingo Δρομολογίου 2 συμμετρικό πρόβλημα..84 Πίνακας 4.15: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 3 συμμετρικό πρόβλημα..85 Πίνακας 4.16: Αποτελέσματα Lingo Δρομολογίου 3 συμμετρικό πρόβλημα.. 86 Πίνακας 4.17: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 4 συμμετρικό πρόβλημα.87 Πίνακας 4.18: Αποτελέσματα Lingo Δρομολογίου 4 συμμετρικό πρόβλημα. 89 11

Πίνακας 4.19: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 5 συμμετρικό πρόβλημα...90 Πίνακας 4.20: Αποτελέσματα Lingo Δρομολογίου 5 συμμετρικό πρόβλημα...91 Πίνακας 4.21: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 1 Ενδιάμεσες Στάσεις... 93 Πίνακας 4.22: Αποτελέσματα Lingo Δρομολογίου 1 Ενδιάμεσες Στάσεις....94 Πίνακας 4.23: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 2 Ενδιάμεσες Στάσεις...95 Πίνακας 4.24: Αποτελέσματα Lingo Δρομολογίου 2 Ενδιάμεσες Στάσεις....96 Πίνακας 4.25: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 3 Ενδιάμεσες Στάσεις... 97 Πίνακας 4.26: Αποτελέσματα Lingo Δρομολογίου 3 Ενδιάμεσες Στάσεις....98 Πίνακας 4.27: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 4 Ενδιάμεσες Στάσεις...99 Πίνακας 4.28: Αποτελέσματα Lingo Δρομολογίου 4 Ενδιάμεσες Στάσεις..100 Πίνακας 4.29: Χιλιομετρική απόσταση μεταξύ των ΣΛΠ του Δρομολογίου 5 Ενδιάμεσες Στάσεις.101 Πίνακας 4.30: Αποτελέσματα Lingo Δρομολογίου 5 Ενδιάμεσες Στάσεις..102 12

ΠΙΝΑΚΑΣ ΣΧΗΜΑΤΩΝ Σχήμα 1.1: Απλό μη κατευθυνόμενο γράφημα..15 Σχήμα 1.2: Απλό κατευθυνόμενο γράφημα...15 Σχήμα 1.3:Κύκλος Χάμιλτον. 16 Σχήμα 1.4: To παιχνίδι Icosian..17 Σχήμα 1.5: Δίκτυο με 4 πόλεις και 6 δρόμους...20 Σχήμα 1.6: Ακμές συναρτήσει κορυφών σε ένα πλήρες γράφημα 22 Σχήμα 1.7:Πλήθος κύκλων Χάμιλτον συναρτήσει των ακμών σε ένα πλήρες γράφημα.23 Σχήμα 3.1: Γράφημα συμμετρικού προβλήματος. 61 Σχήμα 3.2: Γράφημα μη συμμετρικού προβλήματος 63 Σχήμα 3.3: Γράφημα μη συμμετρικού προβλήματος 65 Σχήμα 4.1: Η γεωγραφική θέση των ΣΛΠ στα Ιωάννινα..68 Σχήμα 4.2 : Γράφημα Δρομολογίου 1 μη συμμετρικό πρόβλημα...70 Σχήμα 4.3: Γράφημα Δρομολογίου 2 μη συμμετρικό πρόβλημα...72 Σχήμα 4.4: Γράφημα Δρομολογίου 3 μη συμμετρικό πρόβλημα...74 Σχήμα 4.5: Γράφημα Δρομολογίου 4 μη συμμετρικό πρόβλημα 76 Σχήμα 4.6: Γράφημα Δρομολογίου 5 μη συμμετρικό πρόβλημα...78 Σχήμα 4.7: Γράφημα Δρομολογίου 1 συμμετρικό πρόβλημα...81 Σχήμα 4.8: Γράφημα Δρομολογίου 2 συμμετρικό πρόβλημα...83 Σχήμα 4.9: Γράφημα Δρομολογίου 3 συμμετρικό πρόβλημα.85 Σχήμα 4.10: Γράφημα Δρομολογίου 4 συμμετρικό πρόβλημα...88 Σχήμα 4.11: Γράφημα Δρομολογίου 5 συμμετρικό πρόβλημα... 90 Σχήμα 4.12: Γράφημα Δρομολογίου 1 Ενδιάμεσες Στάσεις...93 Σχήμα 4.13: Γράφημα Δρομολογίου 2 Ενδιάμεσες Στάσεις...95 Σχήμα 4.14: Γράφημα Δρομολογίου 3 Ενδιάμεσες Στάσεις...97 Σχήμα 4.15: Γράφημα Δρομολογίου 4 Ενδιάμεσες Στάσεις...99 Σχήμα 4.16: Γράφημα Δρομολογίου 5 Ενδιάμεσες Στάσεις.101 13

Κεφάλαιο 1.Εισαγωγή στο πρόβλημα του Περιοδεύοντος Πωλητή Υποθέστε ότι ένας πωλητής πρέπει να ταξιδέψει από μια πόλη σε όλες τις άλλες πόλεις ακριβώς μια φορά για να πουλήσει τα προϊόντα του και να επιστρέψει πίσω στην πόλη από πού άρχισε. Θέλει να κάνει αυτό διανύοντας την ελάχιστη συνολική απόσταση. Πώς μπορεί να κάνει αυτό; Το πρόβλημα αυτό είναι γνωστό με την ονομασία, το πρόβλημα του περιοδεύοντος πωλητή (TSP). Το TSP εμφανίζεται σαν ένα πρόβλημα επιχειρησιακής έρευνας αλλά δεν είναι τίποτε άλλο από ένα, απλό σε διατύπωση, πρόβλημα της Θεωρίας Γραφημάτων. Για να κατανοήσουμε αυτό το οποίο αναφέρουμε είναι σημαντικό να αναφέρουμε κάποια στοιχεία της Θεωρίας Γραφημάτων. 1.1Εισαγωγή στη θεωρία γραφημάτων Η θεωρία γραφημάτων είναι εκείνη η θεωρία που μελετά πεπερασμένες μαθηματικές δομές που λέγονται γραφήματα. Η θεωρία γραφημάτων και τα πορίσματα της χρησιμοποιούνται πολύ συχνά για να λυθούν προβλήματα στους κλάδους των θεωρητικών μαθηματικών, της θεωρητικής πληροφορικής, και άλλων επιστημονικών περιοχών όπως τα οικονομικά (κτλ)[1]. Η θεωρία γραφημάτων, όπως αναφέραμε και πιο πριν, αυτό το οποίο μελετά είναι βασικές ιδιότητες των γραφημάτων. Εδώ είναι σημαντικό να αναφέρουμε ότι δεν υπάρχει ένα μόνο είδος από γραφήματα αλλά αρκετά και διαφορετικά. Για παράδειγμα όταν αναφέρουμε ένα απλό μη κατευθυνόμενο γράφημα εννοούμε το εξής: ΟΡΙΣΜΟΣ : Έστω V ένα πεπερασμένο σύνολο τότε σαν απλό μη κατευθυνόμενο γράφημα ορίζουμε G V, E με E {{ x, y} x, y V} 14

Συνήθως τα γραφήματα μπορούμε και τα αναπαριστούμε γραφικά. Για παράδειγμα το γράφημα G V, E με V { a1, a2, a3, a4} και E {{ a1, a3},{ a2, a4},{ a1, a4}} είναι το γράφημα με 4 κορυφές και τρείς ακμές, όπως φαίνεται παρακάτω: Α Σχήμα 4.1: Απλό μη κατευθυνόμενο γράφημα Φυσικά υπάρχουν και άλλα γραφήματα όπως το κατευθυνόμενο γράφημα του οποίου ο ορισμός είναι : ΟΡΙΣΜΟΣ : Έστω V ένα πεπερασμένο σύνολο τότε σαν κατευθυνόμενο γράφημα ορίζουμε G V, E με E V V. Π.χ. το κατευθυνόμενο γράφημα G V, E με V { a1, a2, a3, a4} και ακμές το σύνολο E { a, a, a, a, a, a, a, a, a, a }, οι ακμές του οποίου τις σχεδιάζουμε 1 2 2 3 3 4 3 2 4 3 σαν κατευθυνόμενα βέλη, είναι το παρακάτω. Α Σχήμα 1.5: Απλό κατευθυνόμενο γράφημα Πλέον μπορούμε να υποψιαστούμε πως η θεωρία γραφημάτων βοηθάει στην μοντελοποίηση διάφορων προβλημάτων. Αρκεί να εμπλουτίσουμε την υπάρχουσα δομή μας (τα γραφήματα) με μια επιπλέον ιδιότητα, αυτή του βάρους στις ακμές. Δηλαδή στο ήδη υπάρχον γράφημα προσθέτουμε ακόμα μια ιδιότητα αυτή των βαρών των ακμών. Τότε αυτή η επιπλέον δομή, δηλαδή ένα γράφημα με 15

ακμές στις οποίες υπάρχουν βάρη όσο απλή και αν φαίνεται είναι τόσο σημαντική για την μοντελοποίηση πραγματικών προβλημάτων. Είναι σημαντικό να τονίσουμε ότι αυτή η ιδιότητα έρχεται μετά τον ορισμό των γραφημάτων και όχι ταυτόχρονα. Υπάρχουν πολλά διαφορετικά προβλήματα στη θεωρία γραφημάτων που έχουν προσελκύσει πολλή προσοχή. Ένα τέτοιο πρόβλημα είναι το πρόβλημα του περιοδεύοντος πωλητή (TSP), το οποίο αναφέρεται σε έναν πωλητή που θέλει να βρει το πιο σύντομο πιθανό μονοπάτι έτσι ώστε να επισκέπτεται κάθε πόλη ακριβώς μία φορά και επιστρέφει στην πόλη από την οποία άρχισε. Από την άποψη της θεωρίας γραφημάτων, λαμβάνοντας υπόψη ότι οι πόλεις αντιστοιχούν στις ακμές του γραφήματος και οι αποστάσεις στις ακμές με βάρη (ή κόστη ), στόχος είναι να βρεθεί το μονοπάτι με αρχή και τέλος την ίδια κορυφή (ένα τέτοιο μονοπάτι αναφέρεται σαν κύκλος ) με το μικρότερο βάρος. έτσι ώστε κάθε κόμβος (εκτός από τον αρχικό) να εμφανίζεται ακριβώς μία φορά. Όταν λέμε βάρος του μονοπατιού εννοούμε το άθροισμα των βαρών της κάθε ακμής που υπάρχει στο μονοπάτι Δεδομένου ότι ο αρχικός κόμβος και ο τελικός είναι ίδιοι ο κυκλος αυτός λέγεται Hamiltonian κύκλος ή κύκλος Χάμιλτον. Αλλά ας δούμε τον αυστηρό ορισμό του κύκλου Χάμιλτον (Hamiltonian)[1]. Ορισμός (Κύκλος Χάμιλτον) Ένας κύκλος σε γράφημα Γ καλείται κύκλος του Hamilton (Hamilton cycle) εάν περιέχει κάθε κορυφή του γραφήματος ακριβώς μια φορά (με εξαίρεση βέβαια την αρχική και τη τελική κορυφή που συμπίπτουν). Από εδώ και στο εξής στα προβλήματα μας θα αναφερόμαστε με τον όρο ταξίδι για έναν τέτοιο κύκλο. Σχήμα 1.6:Κύκλος Χάμιλτον 16

1.2 Ιστορία του προβλήματος Σε αυτήν την ενότητα θα δούμε τις απαρχές του προβλήματος και τις σύγχρονες εξελίξεις του. Τα μαθηματικά προβλήματα σχετικά με την θεωρία γραφημάτων και μελετήθηκαν περίπου το 1800 από τον Ιρλανδό μαθηματικό Sir William Rowan Hamilton και από το βρετανικό μαθηματικό Thomas Penyngton ([2] σελίδα 32). Μάλιστα δημιούργησαν ένα παιχνίδι, το Icosian το 1857, που απαιτεί από έναν παίκτη για να ολοκληρώσει έναν γύρο να χρησιμοποιήσει μόνο τις διαδρομές (ακμές) μέσω 20 σημείων περνώντας μόνο μια φορα από κάθε σημείο. (κάτω εικόνα) [3] Σχήμα 1.4: To παιχνίδι Icosian Μετά από μισό περίπου αιώνα έκανε την εμφάνιση του το πρόβλημα του περιοδεύοντος πωλητή γνωστό. Το TSP μελετήθηκε αρχικά το 1930 από το μαθηματικό και τον οικονομολόγο Karl Menger ο οποίος ήταν καθηγητής στη Βιέννη και στο Χάρβαρντ ([4] σελίδα 2). Το συγκεκριμένο πρόβλημα απασχόλησε και τους Hassler Whitney ([4] σελίδα 36) και Merrill Flood ([4] σελίδα 7) από το Princeton. Φυσικά δεν ήταν οι μόνοι, αργότερα, το 1940, το πρόβλημα του περιοδεύοντος πωλητή, μελετήθηκε από τους στατιστικούς Mahalanobis ([4] σελίδα 39), Eli Marks ([4] σελίδα 41) δείχνοντας την σχέση του προβλήματος με γεωμετρικές εφαρμογές. 17

Οι διάφορες μέθοδοι λύσης TSP άρχισαν να εμφανίζονται σε επιστημονικά άρθρα τα μέσα του 1950. Αν και το TSP είναι εύκολο να το κατανοήσει κάποιος, είναι πολύ δύσκολο να το λύσει. Αλλά τι εννοούμε δύσκολο να το λύσει; Όπως θα δούμε και στην συνέχεια κάθε πρόβλημα περιοδεύοντος πωλητή είναι επιλύσιμο, δηλαδή μπορούμε να αποφασίσουμε αν υπάρχει κύκλος Χάμιλτον και ποιος από όλους είναι αυτός με το μικρότερο βάρος- κόστος. Όμως αυτό δεν σημαίνει ότι μπορεί να επιλυθεί σε ένα εύλογο χρονικό διάστημα αντιθέτως μάλιστα, η μαθηματική κοινότητα έχει αποδείξει ότι το πρόβλημα TSP ανήκει σε μια κατηγορία προβλημάτων τα οποία είναι τόσο χρονοβόρα στην επίλυση τους που τα κάνει μη επιλύσημα στην πράξη. Οι μέθοδοι επίλυσης του TSP έχουν γίνει περίπλοκες και οι ζητούμενες περιπτώσεις όπου ζητάμε την επίλυση τους απαιτούν όλο και μεγαλύτερο αριθμό κόμβων. Οι Dantzig, Fulkerson, και Johnson δημοσίευσαν μια περιγραφή μιας μεθόδου για το TSP και επεξήγησαν τη δύναμη αυτής της μεθόδου με την επίλυση μιας περίπτωσης με 49 πόλεις το 1954. Δημιούργησαν αυτήν την περίπτωση με την επιλογή μιας πόλης από κάθε μία από τις 49 πολιτείες της Αμερικής για το πρόβλημα διανομής ρεύματος στις ΗΠΑ.[4],[5] Ο Karp έλυσε TSP χρησιμοποιώντας 64 πόλεις το 1971. Αργότερα το 1975, οι Camerini, Fratta, και Maffioli έλυσαν TSP με 67 πόλεις. Το 1977, o Grotschel έλυσε TSP χρησιμοποιώντας 120 πόλεις σε έναν παράδειγμα από πόλεις της Γερμανίας [4]. Συνοπτικά η παρακάτω λίστα μας δείχνει την πρόοδο της επίλυσης σε σχέση με το πλήθος των πόλεων (κορυφών του γραφήματος) [6]. ΕΤΟΣ ΕΡΕΥΝΗΤΙΚΗ ΟΜΑΔΑ ΜΕΓΕΘΟΣ 1954 G. Dantzig, R. Fulkerson, and S. Johnson 49 πόλεις 1971 M. Held and R.M. Karp 64 πόλεις 1975 P.M. Camerini, L. Fratta, and F. Maffioli 67 πόλεις 18

1977 M. Grötschel 120 πόλεις 1980 H. Crowder and M.W. Padberg 318 πόλεις 1987 M. Padberg and G. Rinaldi 532 πόλεις 1987 M. Grötschel and O. Holland 666 πόλεις 1987 M. Padberg and G. Rinaldi 2,392 πόλεις 1994 D. Applegate, R. Bixby, V. Chvátal, and W. Cook 7,397 πόλεις 1998 D. Applegate, R. Bixby, V. Chvátal, and W. Cook 13,509 πόλεις 2001 D. Applegate, R. Bixby, V. Chvátal, and W. Cook 15,112 πόλεις 2004 D. Applegate, R. Bixby, V. Chvátal, W. Cook, 24,978 πόλεις and K. Helsgaun Πίνακας 1.1: Η εξέλιξη του TSP σε σχέση με το πλήθος των κόμβων 19

1.3 Το πρόβλημα του περιοδεύοντος πωλητή (TSP) 1.3.1 Κορυφές, Ακμές και Μονοπάτια Το να λύσεις ένα πρόβλημα TSP ουσιαστικά είναι βρεις τον Χαμιλτονιανό κύκλο με το ελάχιστο κόστος. Παρόλο που το να καταλάβουμε το πρόβλημα είναι εύκολο το να το λύσουμε είναι δύσκολο στην γενική του περίπτωση, μάλιστα πολλές φορές δεν υπάρχει λύση. Μονοπάτι σε ένα σε ένα μη κατευθυνόμενο γράφο G V, E ονομάζεται μία ακολουθία P από κόμβους V1, V2,..VK-1, VK με την ιδιότητα ότι κάθε διαδοχικό ζευγάρι Vi, Vi+1 συνδέονται με μία ακμή στο Ε. Απλό ονομάζεται το μονοπάτι στο οποίο δεν εμφανίζεται ένας κόμβος πάνω από μία φορά [1]. Αν υποθέσουμε ότι έχουμε ένα πλήρες γράφημα του οποίου οι κορυφές αντιπροσωπεύουν τις πόλεις και οι ακμές τους δρόμου των πόλεων. Το παρακάτω σχήμα αντιπροσωπεύει ένα δίκτυο με 4 πόλεις και 6 δρόμους. Σχήμα 1.5: Δίκτυο με 4 πόλεις και 6 δρόμους 20

Σε συνέχεια αυτών που αναφέραμε στο προηγούμενο κεφάλαιο, είναι σημαντικό να δείξουμε στον αναγνώστη δεδομένου ότι ο αριθμός κορυφών αυξάνεται, ο αριθμός των δυνατών λύσεων αυξάνεται επίσης. Ο παρακάτω πίνακας είναι χαρακτηριστικός του τι γίνεται με την αύξηση των δυνατών επιλογών που έχουμε και μας δίνει μια εξήγηση γιατί είναι πολύ δύσκολο στο πρόβλημα του περιοδεύοντος πωλητή να βρούμε την βέλτιστη μας λύση αν και εφόσον υπάρχει. Για ένα πλήρες γράφημα με n το πλήθος από κορυφές τότε το πλήθος των ακμών είναι ενώ οι δυνατοί κύκλοι Χάμιλτον είναι στον παρακάτω πίνακα. n! 2 21 nn ( 1) 2 [1], η διαφορά στην αύξηση του πληθυσμού φαίνεται Κορυφές Ακμές Αριθμός Κύκλων Χάμιλτων 6 15 60 7 21 360 8 28 2,520 9 36 20,160 10 45 181,440 11 55 1, 814, 400 12 66 19, 958, 400 13 78 239, 500, 800 14 91 3, 113, 510, 400 15 105 43, 589, 145, 600 16 120 653, 837, 184, 000 17 136 1.04613949 10 13 18 153 1.77843714 10 14 19 171 3.20118685 10 15

20 190 6.08225502 10 16 Για να καταλάβουμε το πρόβλημα που προκύπτει για τον υπολογισμό των επιθυμητών μας κύκλων Χάμιλτον παρουσιάζουμε δύο πίνακες με δύο γραφικές παραστάσεις. Η μια γραφική παράσταση μας δείχνει πως αυξάνονται οι ακμές σε σχέση με τις κορυφές και η δεύτερη γραφική παράσταση μας δείχνει πως αυξάνονται οι κύκλοι (τα ταξίδια μας) σε σχέση με τις κορυφές. 180 160 140 120 100 80 60 40 20 0 0 5 10 15 20 Σχήμα 1.6: Ακμές συναρτήσει κορυφών σε ένα πλήρες γράφημα 22

Chart Title 5E+10 4,5E+10 4E+10 3,5E+10 3E+10 2,5E+10 2E+10 1,5E+10 1E+10 5E+09 0 0 2 4 6 8 10 12 14 16 Σχήμα 1.7:Πλήθος κύκλων Χάμιλτον συναρτήσει των ακμών σε ένα πλήρες γράφημα Μπορούμε να δούμε την διαφορά, και οι δυο γραφικές παραστάσεις απεικονίζουν συναρτήσεις γνησίως αύξουσες, απλά στη πρώτη περίπτωση έχουμε μια αύξηση με πολυωνυμικό ρυθμό μεταβολής ενώ στη δεύτερη εκθετικό. nn ( 1) Ο πολυωνυμικός βαθμός φαίνεται από την σχέση Vn ( ), αν θεωρήσουμε Vn ( ) την 2 συνάρτηση που μας δίνει τον αριθμό των ακμών ενός πλήρους γραφήματος με n κορυφές, ενώ ( n 1)! η Hn ( ) που μας δίνει τους δυνατούς κύκλους Hamilton είναι μια συνάρτηση η οποία 2 αυξάνει με εκθετικό αριθμό Η σύγκριση αυτή μας λέει ότι όσο ανεβαίνει το πλήθος των κόμβων τόσο πιο δύσκολο είναι να απαριθμήσουμε όλα τα δυνατά αποτελέσματα, αυτό συνεπάγεται ότι η πολυπλοκότητα του προβλήματος είναι πολύ μεγάλη για να λυθεί με απλή απαρίθμηση όλων των λύσεων. 23

1.4 Μέθοδοι Επίλυσης Προβληματων TSP Σε συνέχεια της προηγούμενης ενότητας θα δούμε κάποιες μεθόδους επίλυσης του προβλήματος και πως αυτό συνδέεται με το πλήθος των κορυφών. Κάποιοι από τους πιο απλούς αλγόριθμους επίλυσης είναι οι παρακάτω: Η μέθοδος Brute Force Ο Αλγόριθμος του Πλησιέστερου Γείτονα Ο λεγόμενος Greedy Approach. 1.4.1 Μέθοδος Brute Force. Όταν κάποιος σκέφτεται την επίλυση του TSP, η πρώτη φυσιολογική μέθοδος που μπορεί να τον απασχολήσει είναι μια μέθοδος εντελώς απλή και πιθανώς χρονοβόρα άλλα σίγουρα κάποια στιγμή θα έχει βρει την λύση πού ψάχνει. Η μέθοδος Brute-force ([7] σελίδα 7) είναι να παραχθούν απλά όλα τα πιθανά ταξίδια του πωλητή και να υπολογιστούν οι αποστάσεις τους. Το πιο σύντομο ταξίδι είναι έτσι το βέλτιστο ταξίδι που αναζητούμε. Για να λύσει κάποιος το TSP που χρησιμοποιεί τη μέθοδο Brute-Force ακλουθεί τα παρακάτω βήματα: Βήμα 1 : Υπολογίζει όλα τα δυνατά ταξίδια. Βήμα 2 : Σχεδιάζει και κάνει μια λίστα με όλα τα δυνατά ταξίδια. Βήμα 3: Υπολογίζει την απόσταση (συνολικό βάρος) κάθε ταξιδιού Βήμα 4: Διαλέγει το πιο σύντομο ταξίδι. Παράδειγμα 1 Επίλυσης με την μέθοδο Brute Force Υποθέτουμε ότι θέλουμε να λύσουμε το παρακάτω πρόβλημα TSP με την μέθοδο Brute- force. 24

Βήμα 1 : Όλα τα δυνατά ταξίδια είναι 3 συνολικά. Βήματα 2-3: Ταξίδι 1 για το πρόβλημα 4 πόλεων. Tαξίδι 1: A B C D A με συνολικό κόστος 3+5+10+7 = 25. 25

Ταξίδι 2 για το πρόβλημα 4 πόλεων. Tαξίδι 2: A B D C A με συνολικό κόστος 3+1+10+4 = 18.. Ταξίδι 3 για το πρόβλημα 4 πόλεων. Tαξίδι 3 A C B D A με συνολικό κόστος για 4+5+1+7 = 17. Bήμα 4: Αναλύοντας τα προηγούμενα καταλήγουμε ότι το ζητούμενο βέλτιστο ταξίδι είναι το Ταξίδι 3: A C B D A με το βέλτιστο κόστος ταξιδιού 17. Παράδειγμα 2 Επίλυσης με την μέθοδο Brute Force Θέλουμε να υπολογίσουμε το ταξίδι με το μικρότερο (βέλτιστο ) κόστος για ένα πλήρες γράφημα με 5 κορυφές και 10 ακμές. 26

Βήμα 1 : Υπολογισμός όλων των δυνατών ταξιδιών: 12 το πλήθος Βήματα 2 και 3 : Βρίσκουμε όλα τα δυνατά ταξίδια, τα σχεδιάζουμε και κάνουμε μια λίστα από αυτά: 27

28

29

30

Βήμα 4 : Αναλύοντας τους προηγούμενους πίνακες καταλήγουμε στο συμπέρασμα ότι το βέλτιστο ταξίδι μας θα είναι το Ταξίδι 1 με συνολικό κόστος 47. Το συμπέρασμα είναι ότι η μέθοδος Brute-force λειτουργεί πάντα εάν δίνεται αρκετός χρόνος, άλλα όπως είδαμε και στον πίνακα κορυφών-ταξιδιών τα ταξίδια αυξάνονται με εκθετικό ρυθμό. Λόγω της φύσης του αλγορίθμου, είναι κατάλληλος για σχετικά μικρό αριθμό κορυφών (πόλεων). Είδαμε ότι στο πρώτο παράδειγμα είχαμε μόνο 3 υποψήφιους κύκλους Χαμιλτον ενώ μόνο με το να αυξήσουμε κατά μία την κορυφή μας (παράδειγμα 2), οι κύκλοι που έπρεπε να ψάξουμε αυξήθηκαν στους 12. Προκύπτει φυσιολογικά το συμπέρασμα ότι η χρησιμοποίηση της μεθόδου Brute-force για να λύσει TSP με έναν μεγάλο αριθμό πόλεων μπορεί πάρει έτη ή και αιώνες μέχρι να λυθεί το πρόβλημα όπως φαίνεται και στον παρακάτω πίνακα: Ακμές Αριθμός Ταξιδιών Αναμενόμενος Χρόνος Επίλυσης 15 43,589,145,600 50 μέρες 16 653,837,184,000 2 χρόνια 20 6.082255 10 16 193,000 χρόνια Πίνακας 1.2: Χρόνος και Brute Force μέθοδος 31

1.4.2 Ο Αλγόριθμος του Πλησιέστερου Γείτονα Μπορούμε φυσικά να προσεγγίσουμε το πρόβλημα και με άλλες μεθόδους, όπως είναι η μέθοδος του πλησιέστερου γείτονα [8], η οποία είναι μια απλή τακτική για την επίλυση του προβλήματος του περιοδεύοντος πωλητή. Για να λύσουμε το πρόβλημα με αυτόν τον αλγόριθμο κάνουμε κάτι πολύ απλό. Σε κάθε βήμα αυτό το οποίο κάνει ο αλγόριθμος είναι να διαλέγει την πιο κοντινή πόλη (κορυφή) μέχρι να τελειώσουν οι διαφορετικές κορυφές και να γυρίζει στην αρχική πόλη (κορυφή). Άρα τα βήματα του κάνει ο αλγόριθμος είναι τα εξής: Βήμα 1: Διαλέγει μια αρχική κορυφή Βήμα 2: Κοιτά όλες τις γειτονικές κορυφές και από αυτή στην οποία βρίσκεται και διαλέγει την πιο κοντινή (φθηνή). Βήμα 3: Επαναλαμβάνει την διαδικασία μέχρι να έχει επισκεφτεί όλες τις κορυφές ακριβώς μια φορά Βήμα 4: Τσεκάρει αν όντως επισκέφθηκε όλες τις κορυφές και μας δίνει σαν έξοδο το κύκλο (Ταξίδι) Βήμα 5 : Σχεδιάζει το βέλτιστο Ταξίδι και μας δίνει το συνολικό κόστος αυτού. Παράδειγμα 1 με τον αλγόριθμο του πλησιέστερου γείτονα Ας δούμε πάλι το πρόβλημα

Βήμα 1 : Υποθέτουμε ότι η αρχική μας κορυφή είναι η Α. Βήμα 2: Υπάρχουν τρείς δυνατές επιλογές η κορυφή Β, η κορυφή C και η κορυφή D. Πρώτη επιλογή είναι η ακμή A B με συνολικό κόστος 3, δεύτερη είναι η ακμή A C με συνολικό κόστος 4, και Τρίτη επιλογή είναι η ακμή A D με συνολικό κόστος για 7. Ο αλγόριθμος μας θα διαλέξει την ακμή (διαδρομή) A B με συνολικό κόστος 3. Επόμενη λοιπόν πόλη είναι B. Βήμα 3 : Τώρα από την κορυφή Β έχουμε πάλι τρείς επιλογές αλλά δεν μπορούμε να ξαναπάμε στην πόλη Α μιας και δεν έχουμε περάσει από όλες τις κορυφές. Άρα εδώ έχουμε δύο επιλογές, να πάμε προς την κορυφή C ή προς την κορυφή D. Προφανώς θα δουλέψουμε όπως και στον προηγούμενο βήμα και θα διαλέξουμε την ακμή Β D με συνολικό κόστος 1.Τώρα από την κορυφή D δεν μπορούμε να επισκεφτούμε τις κορυφές Β και Α άρα μας μένει ουσιαστικά μόνο μια επιλογή η C άρα ο αλγόριθμος μας διαλέγει την ακμή D C με συνολικό κόστος για 10. 33

Βήμα 4 : Αφού έχουμε διαλέξει (επισκεφτεί) όλες τις κορυφές αναγκαστικά από την κορυφή C πρέπει να πάμε στην A με συνολικό κόστος 4. Bήμα 5: Γνωρίζοντας από την προηγούμενη ενότητα ότι η βέλτιστη λύση είναι άλλο μονοπάτι με συνολικό κόστος 17, διαπιστώνουμε ότι αυτός ο αλγόριθμος δεν μας δίνει πάντα την πιο φθηνή διαδρομή. Ταξίδι: A B D C A Συνολικό κόστος: 3+1+10+4 = 18. Παράδειγμα 2 με τον αλγόριθμο του πλησιέστερου γείτονα Ας υποθέσουμε ότι θέλουμε να λύσουμε το πρόβλημα των 5 πόλεων : 34

Βήμα 1: Ας υποθέσουμε ότι ξεκινάμε από την κορυφή Α Βήμα 2: Υπάρχουν 4 επιλογές από την κορυφή Α, η πρώτη είναι η ακμή A B με συνολικό κόστος 7, δεύτερη είναι η ακμή A C με συνολικό κόστος 36, Τρίτη είναι η ακμή A D με συνολικό κόστος 11, και τέταρτη είναι η ακμή A E με συνολικό κόστος 9.Άρα η πιο κοντινή κορυφή από την Α είναι η Β με βάρος ακμής 7. Βήμα 3: Κάνοντας την ίδια διαδικασία για την κορυφή Β βλέπουμε ότι η πιο κοντινή κορυφή είναι η C κόστος 13.Τώρα από την κορυφή C η πιο κοντινή είναι η κορυφή D με κόστος 8 έπειτα από την D είναι η Ε με κόστος 10. Bήμα 4: Τέλος πρέπει να γυρίσουμε στην Α από την Ε με κόστος 9. Βήμα 5: Σε αντίθεση με το προηγούμενο παράδειγμα εδώ βλέπουμε ότι ο αλγόριθμος αυτός έδωσε την βέλτιστη λύση που είχαμε βρει και στην προηγούμενη ενότητα. Ταξίδι με το λιγότερο κόστος A B C D E A Συνολικό κόστος: 7+13+8+10+9=47 35

Ενώ ο αλγόριθμος στο πρώτο παράδειγμα δεν μας έδωσε την βέλτιστη λύση, σε αντίθεση με το δεύτερο που την έδωσε, πολλές φορές χρησιμοποιείται αυτός και όχι ο αλγόριθμος με την μέθοδο Brute Force (B-F). Eίναι παράδοξο η επιλογή του; Όχι γιατί είναι αρκετά πιο γρήγορος από τον αλγόριθμο B- F, και ταυτόχρονα δίνει μια λύση που αν δεν είναι η βέλτιστη είναι πολύ κοντά στην τιμή της. Μην ξεχνάμε ότι τα πραγματικά προβλήματα αφορούν προβλήματα της αγοράς εργασίας άρα ο χρόνος είναι χρήμα και πρέπει να τον συνυπολογίζουμε στην αποδοτικότητα του αλγορίθμου μας. 1.4.3 Ο άπληστος Αλγόριθμος Τέλος, ο άπληστος αλγόριθμος δουλεύει ως εξής: Από την κορυφή στην οποία βρισκόμαστε διαλέγουμε τις ν (το πλήθος) πιο φθηνές ακμές, αν αυτές δημιουργούν ένα Χαμιλτονιανό κύκλο τότε έχουμε μια βέλτιστη λύση. Πρέπει να αναφέρουμε εδώ ότι ενώ μπορεί να έχουμε λύση ο άπληστος αλγόριθμος μας να μην μας δώσει τη βέλτιστη λύση. Βήμα 1 : Κοιτά όλες τις ακμές με τα μικρότερα βάρη Βήμα 2: Διαλέγει τις ν το πλήθος (όσο θα είναι το μήκους του κύκλου που επιθυμώ) πιο φθηνές Βήμα 3 : Κάνει μια λίστα με τα βάρη των ακμών αύξουσα λίστα Βήμα 4: Τσεκάρει αν σχηματίζουν Χαμιλτονιανό κύκλο. Βήμα 5: Αν ναι τότε έχουμε μια βέλτιστη λύση (και μάλιστα την πιο φθηνή) που επιθυμούμε Ας δούμε το πρόβλημα των τεσσάρων πόλεων 36

Bήμα 1: Οι 4 ακμές με τις λιγότερες αποστάσεις είναι οι DB, BA, AC και CB. Βήμα 2: Διαλέγουμε τις 4 οι οποίες είναι προφανώς οι DB, BA, AC, και CB. Βήμα 3: Το μήκος της DB είναι 1, η επόμενη επιλογή είναι η BA με μήκος 3, επόμενη είναι η ακμή AC με μήκος 4 και τέλος η CΒ με μήκος 5. Βήματα 4 και 5:. Εδώ βλέπουμε ότι ο αλγόριθμος ενώ είναι ο πιο γρήγορος από τους τρείς, δεν μας έδωσε την βέλτιστη λύση και μάλιστα δεν μας έδωσε καν κύκλο, άρα δεν είναι ένας αποδοτικός αλγόριθμος για το πρόβλημα μας 37

1.4.4 Το πρόβλημα του κινέζου ταχυδρόμου (CPP) Θα κλείσουμε αυτή την ενότητα παρουσιάζοντας μια παραλλαγή του TSP, το λεγόμενο πρόβλημα του κινέζου ταχυδρόμου. Υποθέστε ότι ένας ταχυδρόμος πρέπει να παραδώσει τις επιστολές σε μια ορισμένη γειτονιά. Θέλει να βρει μια διαδρομή στη γειτονιάς που δουλεύει, με τη λιγότερη πιθανή συνολική απόσταση, και να επιστρέφει στην αφετηρία του με την προυπόθεση να πρέπει να ταξιδέψει μέσω κάθε δρόμου στη διαδρομή αυτή του τουλάχιστον μία φορά, αλλά να αποφύγει τις πολλές επικαλύψεις. Από την πλευρά της θεωρίας γραφημάτων το πρόβλημα αυτό είναι η εύρεση του κύκλου εκείνου που περνάει από τις ακμές ακριβώς μια φορά. Πράγματι κάτι τέτοιο είναι η βέλτιστη λύση (εφόσον υπάρχει) στο πρόβλημα του κινέζου ταχυδρόμου. Αυτό το πρόβλημα προτάθηκε και μελετήθηκε αρχικά από τον κινεζικό μαθηματικό Mei-Ku Kwan το 1962 [10]. Το κινεζικό πρόβλημα ταχυδρόμων έχει άμεση σχέση με την εύρεση ενός κύκλου Euler [1] σε ένα γράφημα. Όπως και το TSP έτσι και το CPP έχει πολλές πρακτικές εφαρμογές στην αγορά εργασίας όπως στην εύρεση της βέλτιστης διαδρομής Λεωφορείων, συλλογής απορριμμάτων κ.α. Υπάρχουν διάφορες ομοιότητες αλλά και διάφορες μεταξύ των προβλημάτων TSP και CPP, μερικές από τις οποίες παρουσιάζουμε στον παραπάνω πίνακα: Ομοιότητες TSP Η αρχική και τελική κορυφή είναι η ίδια CPP Η αρχική και τελική κορυφή είναι η ίδια Εύρεση συντομότερου κύκλου Εύρεση συντομότερου κύκλου Διαφορές Περνάει από κάθε κορυφή ακριβώς μια φορά Περνάει από κάθε ακμή ακριβώς μια φορά Είναι πρόβλημα NP Είναι πρόβλημα Ρ Πίνακας 1.3 Ομοιότητες και διαφορές TSP και CPP 38

39

Κεφάλαιο 2.Γραμμικός Προγραμματισμός 2.1 Τι είναι ο γραμμικός προγραμματισμός Γραμμικός προγραμματισμός (LP) είναι μια μέθοδος για να επιτύχει κάποιος την βέλτιστη λύση (όπως το μέγιστο κέρδος ή το χαμηλότερο κόστος) σε ένα μαθηματικό μοντέλο του οποίου εξισώσεις αντιπροσωπεύονται από γραμμικές σχέσεις. Ο γραμμικός προγραμματισμός είναι μια ειδική περίπτωση του μαθηματικού προγραμματισμού (μαθηματική βελτιστοποίηση). Πιο συγκεκριμένα, ο γραμμικός προγραμματισμός είναι μια τεχνική για τη βελτιστοποίηση μιας γραμμικής αντικειμενικής συνάρτησης (συνήθως λέγεται αναφέρεται σαν συνάρτηση κόστους), υπό τον όρο να υπάρχει μεταβλητών και οι περιορισμοί να είναι γραμμικοί. γραμμική σχέση μεταξύ των Η εφικτή περιοχή της λύσης μας είναι ένα κυρτό πολύεδρο, το οποίο είναι ένα σύνολο που ορίζεται ως τομή πολλών χωρίων στον R n κάθε ένα από τα οποία καθορίζεται από μια γραμμική ανισότητα. Η αντικειμενική συνάρτηση συνάρτηση και ψάχνουμε τις τιμές της σε αυτό το κυρτό πολύεδρο. είναι μια πραγματική Ένας αλγόριθμος γραμμικού προγραμματισμού συνήθως αυτό το οποίο κάνει είναι να εξετάζει αν υπάρχει σημείο της εφικτής περιοχής λύσεων το οποίο μας δίνει την βέλτιστη λύση. Τα γραμμικά μοντέλα είναι προβλήματα που μπορούν να εκφραστούν στην λεγόμενη κανονική μορφή: εγιστοποίησε την Με περιορισμούς και x 0 T cx Ax b 40

Όπου T c x είναι μια πιο συμπαγής μορφή για την αντικειμενική μας συνάρτηση που θέλουμε να μεγιστοποιήσουμε ή να ελαχιστοποιήσουμε. Η αντικειμενική μας συνάρτηση θα πρέπει να είναι γραμμική ως προς τις μεταβλητές τις, δηλαδή να έχει την μορφή z f ( x1,, xn ) ck x με k c k σταθερές. Οπότε πολλές φορές n k 1 επιλέγουμε την μορφή z T c x όπου 1 x ( x, x n ) το διάνυσμα των μεταβλητών μας και c T c1 το διάνυσμα των σταθερών συντελεστών. c n Ανάλογα και οι γραμμικοί μας περιορισμοί γράφονται στη μορφή πίνακα διανύσματος. Π.χ. αν είχαμε δύο μεταβλητές και περιορισμούς x y 1 x y 2 Tότε η συμπαγής μορφή είναι: 1 1 x 1 1 1 y 2 Tέλος το x σημαίνει ότι όλες οι μεταβλητές μου είναι μη αρνητικοί πραγματικοί αριθμοί. Ο γραμμικός προγραμματισμός μπορεί να εφαρμοστεί σε διάφορους τομείς των επιστημών. Χρησιμοποιείται στην επιχειρησιακή έρευνα και τα οικονομικά, αλλά μπορεί επίσης να χρησιμοποιηθεί για μερικά προβλήματα εφαρμοσμένης μηχανικής. Οι βιομηχανίες που χρησιμοποιούν τα μοντέλα γραμμικού για την επίλυση προβλημάτων στον τομέα της ενέργειας, στις τηλεπικοινωνίες, στην κατασκευή περίπλοκων οικονομικών δομών κ.α. 41

2.2 Ιστορία του Γραμμικού Προγραμματισμού Η μέθοδος του γραμμικού προγραμματισμού αναπτύχθηκε αρχικά από Leonid Kantorovich το 1937. [11]Το ανέπτυξε κατά τη διάρκεια του Δεύτερου Παγκόσμιου Πολέμου ως με σκοπό να μειωθούν οι δαπάνες του στρατού από τις οι απώλειες που υπέστησαν αλλά και να αυξηθούν οι απώλειες των εχθρικών δυνάμεων. Η μέθοδος κρατήθηκε μυστική μέχρι το 1947 όταν δημοσίευσε ο George Β. Dantzig [12] ένα άρθρο του και ο John von Neumann ανέπτυξε τη θεωρία του δυαδικού προβλήματος σαν λύση βελτιστοποίησης σε προβλήματα γραμμικού προγραμματισμού, Επίσης είναι σημαντικό να αναφέρουμε ότι το άρθρο του John von Neumann χρησιμοποιήθηκε για να λύσει προβλήματα της Θεωρία Παιγνίων. Έτσι δημιουργήθηκε ένας άλλος κλάδος των Μαθηματικών που βρήκε πολλές εφαρμογές στα οικονομικά, η περίφημη Θεωρία Λήψης Αποφάσεων. Μεταπολεμικά, όπως ήταν φυσικό πολλές βιομηχανίες βρήκαν τη χρήση του γραμμικού προγραμματισμού στον καθημερινό προγραμματισμό τους. Το αρχικό παράδειγμα του Dantzig ήταν να βρεθεί η καλύτερη ανάθεση 70 ανθρώπων σε 70 εργασίες. Ο πραγματικός χρόνος που απαιτείται για να εξετάσει κάποιος (υπολογιστής πιθανόν) όλες τις πιθανές λύσεις και να επιλέξει την καλύτερη από αυτές είναι τεράστιος, είναι αυτό που θα λέγαμε άπειρος, για να καταλάβουμε το μέγεθος των δυνατών λύσεων αρκεί να κάνουμε την εξής σύγκριση: ο αριθμός πιθανών λύσεων υπερβαίνει τον αριθμό μορίων στον αισθητό κόσμο. Εντούτοις, διαρκεί πολύ λίγο για να βρει κάποιος τη βέλτιστη λύση με την μοντελοποίηση του προβλήματος ως μοντέλο γραμμικού προγραμματισμού και την εφαρμογή του αλγορίθμου του Dantzig. Δηλαδή η μεθοδολογία που αναπτύσσουμε στο γραμμικό προγραμματισμό μειώνει δραστικά τον αριθμό πιθανών βέλτιστων λύσεων που πρέπει να ελεγχθούν. 42

2.3 Η Χρησιμότητα του Γραμμικού Προγραμματισμού Ο γραμμικός προγραμματισμός είναι ένας σημαντικός και νέος σχετικά τομέας της βελτιστοποίησης προβλημάτων. Πολλά πρακτικά προβλήματα στην έρευνα (είτε αυτή είναι επιχειρησιακή είτε σε άλλο κλάδο των Μαθηματικών και των Οικονομικών) μπορούν να εκφραστούν ως γραμμικά προβλήματα προγραμματισμού. Ορισμένες ειδικές περιπτώσεις του γραμμικού προγραμματισμού, όπως τα προβλήματα ροής δικτύων θεωρούνται αρκετά σημαντικές λόγω των άμεσων εφαρμογών τους στην αγορά εργασίας. Είναι φυσιολογικό λοιπόν να θεωρείται στην Μαθηματική κοινότητα και ιδίως στον τομέα της θεωρητικής πληροφορικής και αλγορίθμων σημαντικό η εύρεση αποδοτικών αλγορίθμων επίλυσης. Επίσης κάτι σημαντικό είναι ότι σε γενικότερα προβλήματα που συναντάνε οι ερευνητές είναι πολύ συνηθισμένο αλγόριθμοι για άλλους τύπους προβλημάτων βελτιστοποίησης να λειτουργούν με την επίλυση των προβλημάτων LP ως υπόπροβλήματα. Ιστορικά, οι ιδέες από το γραμμικό προγραμματισμό έχουν εμπνεύσει πολλές από τις κεντρικές έννοιες της θεωρίας βελτιστοποίησης, όπως η δυαδικότητα, και η σημασία της κυρτότητας και των γενικεύσεών της. Επιπλέον, ο γραμμικός προγραμματισμός χρησιμοποιείται σαν εργαλείο επίλυσης στη μικροοικονομία και λήψης αποφάσεων σε επιχειρήσεις, για την επίλυση προβλημάτων όπως ο καθημερινός προγραμματισμός, η γραμμή παραγωγής, η μεταφορά προϊόντων και άλλα ζητήματα. Αν και τα σύγχρονα διοικητικά ζητήματα είναι συνεχώς μεταβαλλόμενα, οι περισσότερες επιχειρήσεις θα επιθυμούσαν να μεγιστοποιήσουν τα κέρδη ή να ελαχιστοποιήσουν τις δαπάνες με περιορισμένους φυσικούς πόρους. Επομένως, πολλά ζητήματα μπορούν να χαρακτηριστούν ως μοντέλα γραμμικού προγραμματισμού. 43

2.4 Κατανόηση Τρόπου Μοντελοποίησης Για να καταλάβουμε ακριβώς τι σημαίνει μοντελοποίηση των μαθηματικών προβλημάτων στο γραμμικό προγραμματισμό θα αρχίσουμε με ένα παράδειγμα, το πρόβλημα της πολιτικής των δανειοδοτήσεων μιας τράπεζας. Έπειτα θα παρουσιάσουμε τέσσερα προβλήματα γραμμικού προγραμματισμού, θα τα μοντελοποιήσουμε και έπειτα θα τα λύσουμε με το λογισμικό LINGO LINDO. 2.4.1 Πρόβλημα 1 - Πολιτική δανειοδοτήσεων To παρακάτω πρόβλημα θα μας βοηθήσει στην κατανόηση του τρόπου με τον οποίο μπορούμε να μοντελοποιήσουμε ένα πρόβλημα, στα πλαίσια της θεωρία του γραμμικού προγραμματισμού. Η διατύπωση του προβλήματος είναι η παρακάτω: Μία Τράπεζα παρέχει στους πελάτες της τεσσάρων ειδών δάνεια με το ακόλουθο ετήσιο επιτόκιο ανά κατηγορία: Στεγαστικά πρώτης κατοικίας 14%, Στεγαστικά δεύτερης κατοικίας 20%, για επισκευή κατοικίας 20%, προσωπικά-καταναλωτικά 10%. Το ποσό που διαθέτει ετησίως και για τα τέσσερα είδη δανείων ανέρχεται στα 500.000.000, περιορίζεται όμως από τις ακόλουθες πολιτικές: Το ποσό που χορηγείται για στεγαστικά δάνεια πρώτης κατοικίας πρέπει να είναι τουλάχιστον το 55% του συνολικού ποσού που δίδεται για στεγαστικά δάνεια (των δύο πρώτων κατηγοριών) και τουλάχιστον το 25% του συνόλου των δανείων (όλων των κατηγοριών) που εκδίδονται. 44

Τα στεγαστικά δάνεια δεύτερης κατοικίας δεν μπορεί να υπερβαίνουν το 25% του συνόλου των δανείων που εκδίδονται (σε ). Το μέσο ετήσιο επιτόκιο, υπολογιζόμενο στο σύνολο των δανείων, δεν πρέπει να ξεπερνά το 15%. Μέσα στο παραπάνω πλαίσιο, η τράπεζα ενδιαφέρεται για ένα πρόγραμμα δανειοδότησης (κατανομή του συνολικού προϋπολογισμού στις επιμέρους κατηγορίες δανείων) το οποίο θα τις επιφέρει τα μέγιστα έσοδα από τους τόκους των δανείων. Μοντελοποίηση του προβλήματος Αφού λοιπόν διαβάσουμε και κατανοήσουμε τι μας ζητάει, επόμενος στόχος μας είναι να βρούμε την κατάλληλη συνάρτηση που θέλουμε να μεγιστοποιήσουμε ή να ελαχιστοποιήσουμε. Άρα θα πρέπει να βρούμε τις μεταβλητές και να διατυπώσουμε με σαφήνεια τον τύπο της συνάρτησης. Οι μεταβλητές αυτές λέγονται μεταβλητές απόφασης. Μεταβλητές απόφασης x 1 : το ποσό που θα διατεθεί για στεγαστικά δάνεια πρώτης κατοικίας x 2 : το ποσό που θα διατεθεί για στεγαστικά δάνεια δεύτερης κατοικίας x 3 : το ποσό που θα διατεθεί για δάνεια επισκευής κατοικίας x 4 : το ποσό που θα διατεθεί για προσωπικά-καταναλωτικά δάνεια Προφανώς η συνάρτηση που θέλουμε να μεγιστοποιήσουμε είναι η z 0.14x 0.2x 0.2x 0.1x 1 2 3 4 Το επόμενο βήμα πριν την επίλυση του προβλήματος είναι μοντελοποίηση των περιορισμών, όπως φαίνονται και συγκεντρωτικά στον παρακάτω πίνακα: 45

Αντικειμενική Συνάρτηση : Περιορισμοί z 0.14x 0.2x 0.2x 0.1x 1 2 3 4 Από συνολικό διατιθέμενο ποσό x1 x2 x3 x4 500 Από την πολιτική (1) x 0.55( x x ) 1 1 2 x 0.25( x x x x ) 1 1 2 3 4 Από την πολιτική (2) x2 0.25( x1 x2 x3 x4) Από την πολιτική (3) 0.14x1 0.2x2 0.2x3 0.1x 4 0.15( x1 x2 x3 x4) x1, x2, x3, x4 0 ΜΟΡΦΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ {max z 0.14x 0.2x 0.2x 0.1 x } 1 2 3 4 0.45x 0.55x 0x 0x 0 1 2 3 4 0.75x 0.25x 0.25x 0.25x 0 1 2 3 4 0.25x 0.75x 0.25x 0.25x 0 1 2 3 4 0.01x 0.05x 0.05x 0.05x 4 0 1 2 3 x1 x2 x3 x4 500 x1, x2, x3, x4 0 Εδώ θα αναφερθούμε σε μια άλλη μορφή του προβλήματος που μπορεί να πάρει, τοποθετώντας εμείς μεταβλητές που δεν εμφανίζονται άμεσα στην εκφώνηση της άσκησης. Π.χ. αν ψάχνουμε να βρούμε τις ακέραιες θετικές λύσεις του προβλήματος x y 20είναι ισοδύναμο με το να ψάχνουμε να βρούμε τις λύσεις του προβλήματος της εξίσωσης x y z 20. Έτσι το προηγούμενο πρόβλημα μπορούμε να το γράψουμε ως εξής: 46

Αντικειμενική Συνάρτηση : Περιορισμοί z 0.14x 0.2x 0.2x 0.1x 1 2 3 4 Από συνολικό διατιθέμενο ποσό x1 x2 x3 x4 500 Από την πολιτική (1) x 0.55( x x ) 1 1 2 x 0.25( x x x x ) 1 1 2 3 4 Από την πολιτική (2) x2 0.25( x1 x2 x3 x4) Από την πολιτική (3) 0.14x1 0.2x2 0.2x3 0.1x 4 0.15( x1 x2 x3 x4) x1, x2, x3, x4 0 ΚΑΝΟΝΙΚΗ ΜΟΡΦΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ {max z 0.14x 0.2x 0.2x 0.1 x } 1 2 3 4 0.45x 0.55x 0x 0x s 0 1 2 3 4 1 0.75x 0.25x 0.25x 0.25x s 0 1 2 3 4 2 0.25x 0.75x 0.25x 0.25x s 0 1 2 3 4 3 0.01x 0.05x 0.05x 0.05x s 0 1 2 3 4 4 x1 x2 x3 x4 s5 500 x1, x2, x3, x4 0 2.4.2 Πρόβλημα γραμμικού προγραμματισμού με δυο μεταβλητές Τώρα θα παρουσιάσουμε ένα πρόβλημα γραμμικού προγραμματισμού στο οποίο η αντικειμενική μας συνάρτηση θα έχει δύο μεταβλητές. Αυτό το κάνουμε γιατί όταν η αντικειμενική μας συνάρτηση έχει μόνο δύο μεταβλητές τότε μπορούμε να λύσουμε το πρόβλημα γραφικά. Κάτι το οποίο έχει νόημα είτε όταν έχουμε λίγους σχετικά περιορισμούς είτε όταν θέλουμε για παιδαγωγικούς και διδακτικούς λόγους να παρουσιάσουμε αυτή τη μέθοδο επίλυσης. 47

Έστω ότι έχουμε το παρακάτω πρόβλημα μεγιστοποίησης Αντικειμενική Συνάρτηση : z max{12 x1 9 x2} x1 1000 x2 1500 Περιορισμοί x1 x2 1750 4x 2x 4800 1 2 x1, x2 0 Γραφική επίλυση Η γραφική επίλυση εκμεταλλεύεται θεωρήματα από τον τομέα της ανάλυσης έτσι ώστε να καταφέρουμε στις περιπτώσεις που η αντικειμενική συνάρτης έχει δυο μεταβλητές να μπορούμε γραφικά να δούμε αν υπάρχει λύση και αν ναι ποια είναι αυτή. Το σκεπτικό πίσω από την μέθοδο της γραφικής λύσης είναι σχετικά απλό. Αν η αντικειμενική μας συνάρτηση είναι μια συνάρτηση δύο μεταβλητών τότε το πεδίο ορισμού της είναι το επίπεδο. Οι περιορισμοί λοιπόν μας δίνουν ένα χωρίο στο οποίο θα ψάξουμε την βέλτιστη λύση. Αν αυτό το χωρίο είναι ένα πολύγωνο τότε η θεωρία μας λέει ότι μία από τις κορυφές του θα είναι και η βέλτιστη λύση. Υπάρχουν φυσικά και άλλες περιπτώσεις τις οποίες δεν θα εξετάσουμε εμείς αυτή τη στιγμή. Άρα αρχίζουμε σχεδιάζοντας τα χωρία των περιορισμών μας. 48

Περιορισμός 1 Περιορισμός 2 49

Περιορισμός 3 50

Περιορισμός 4 Διαπιστώνουμε λοιπόν ότι το χωρίο ΟΕΓΙΒΘ είναι το θεμελιώδες χωρίο λύσεων. Εισαγωγή της αντικειμενικής συνάρτησης Η αντικειμενική συνάρτηση πιάνει την μέγιστη τιμή στο σημείο Ι, η οποία μέγιστη τιμή είναι ίση με το A της ευθείας 12x 9y και επειδή περνάει από το Α έπεται ότι Α=17700 51

Βέλτιστη Λύση από γραφική επίλυση Φυσικά μπορούμε και να υπολογίσουμε την μέγιστη τιμή βρίσκοντας το σημείο τομής των δύο ευθειών και να το αντικαταστήσουμε στην αντικειμενική συνάρτηση και όλο αυτό έχοντας λιγότερη γεωμετρική εποπτεία. Το κοινό σημείο των ευθειών x y 1750, 4x 2y 4800, λύνοντας το σύστημα προκύπτει ότι x 650, y 1100 2.4.2.1 Επίλυση του προβλήματος με το λογισμικό LINGO LINDO Φυσικά στόχος μας είναι το αποτέλεσμα που βγάλαμε από την θεωρία να είναι το ίδιο με χρησιμοποιώντας το λογισμικό LINGO LINDO 52

Το πρώτο πράγμα που κάνουμε είναι να θέσουμε το πρόβλημα όπως κάναμε και στο θεωρητικό κομμάτι. MAX 12 X + 9 Y ST X < 1000 Y < 1500 X + Y < 1750 4 X + 2 Y < 4800 END ΤΟ ΠΡΟΒΛΗΜΑ ΣΤΗ ΓΛΩΣΣΑ LINGO/LINDO Τα αποτελέσματα του προβλήματος εμφανίζονται στο Παράρτημα Α -1 Κανονική μορφή του προβλήματος Μπορούμε να λύσουμε το ίδιο πρόβλημα φέρνοντας στο στην κανονική του μορφή Αντικειμενική Συνάρτηση : z max{12 x1 9 x2} x 1 s1 1000 x 2 s2 1500 Περιορισμοί x1 x2 s3 1750 4x 2x s 4800 1 2 4 x1, x2 0 53

MAX 12 X + 9 Y ST X + A = 1000 Y + B = 1500 X + Y + G = 1750 4 X + 2 Y + K = 4800 END ΤΟ ΠΡΟΒΛΗΜΑ ΣΤΗ ΓΛΩΣΣΑ LINGO/LINDO Τα αποτελέσματα του προβλήματος εμφανίζονται στο Παράρτημα Α -2 2.4.3 Πρόβλημα μέγιστου κέρδους Μια φαρμακευτική εταιρεία παρασκευάζει στο εργοστάσιο της τριών ειδών φάρμακα 1, 2, 3 Για το καθένα χρησιμοποιούνται τρία υλικά Y1, Y2, Y 3 στις παρακάτω αναλογίες Y 1 Y 2 Y 3 0.2 0.4 0.4 1 0.1 0.5 0.4 2 0.3 0.2 0.5 3 Oι διαθέσιμες ποσότητες σε κιλά των υλικών Y1, Y2, Y 3 είναι 8, 12 και 11 αντίστοιχα, κάθε μέρα. Το κέρδος σε χιλιάδες είναι ευρώ ανά κιλό για τα φάρμακα 1, 2, 3 είναι 15,20 και 30 αντίστοιχα. Οι απαιτήσεις της αγοράς είναι απεριόριστες. Να προγραμματιστεί η ημερήσια παραγωγή έτσι ώστε να μεγιστοποιηθεί το κέρδος της εταιρείας. 54

Μοντελοποίηση του προβλήματος Αντικειμενική Συνάρτηση : 15x 20x 30x 1 2 3 0.2x 0.1x 0.3x 8 1 2 3 Περιορισμοί 0.4x 0.5x 0.2x 12 1 2 3 0.4x 0.4x 0.5x 11 1 2 3 x1, x2, x3 0 ΜΟΡΦΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ {max z 15x 20x 30 x } 1 2 3 1 2 3 0.2x 0.1x 0.3x 8 0.4x 0.5x 0.2x 12 1 2 3 0.4x 0.4x 0.5x 11 1 2 3 x1, x2, x3 0 2.4.3.1 Επίλυση του προβλήματος με το λογισμικό LINGO LINDO ΤΟ ΠΡΟΒΛΗΜΑ ΣΤΗ ΓΛΩΣΣΑ LINGO/LINDO MAX 15 X + 20 Y + 30 Z ST 0.2 X + 0.1Y + 0.3 Z < 8 0.4 X + 0.5 Y + 0.2 Z < 12 0.4 X + 0.4 Y + 0.5 Z < 11 END 55

Τα αποτελέσματα του προβλήματος εμφανίζονται στο Παράρτημα Α -3 Το πρόβλημα στην κανονική μορφή Αντικειμενική Συνάρτηση : 15x 20x 30x 1 2 3 0.2x 0.1x 0.3x 8 1 2 3 Περιορισμοί 0.4x 0.5x 0.2x 12 1 2 3 0.4x 0.4x 0.5x 11 1 2 3 x1, x2, x3 0 ΚΑΝΟΝΙΚΗ ΜΟΡΦΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ {max z 15x 20x 30 x } 1 2 3 0.2x 0.1x 0.3x s 8 1 2 3 0.4x 0.5x 0.2x s 12 1 2 3 2 0.4x 0.4x 0.5x s 11 1 2 3 3 x1, x2, x3 0 1 56

ΤΟ ΠΡΟΒΛΗΜΑ ΣΤΗ ΓΛΩΣΣΑ LINGO/LINDO MAX 15 X + 20 Y + 30 Z ST 0.2 X + 0.1Y + 0.3 Z + W = 8 0.4 X + 0.5 Y + 0.2 Z + R = 12 0.4 X + 0.4 Y + 0.5 Z + T = 11 END Τα αποτελέσματα του προβλήματος εμφανίζονται στο Παράρτημα Α - 4 2.4.4 Πρόβλημα ελαχίστου κέρδους Μια εταιρεία θέλει να στείλει 10 τόνους στάρι από την πόλη 1 στις τέσσερις πόλεις 2,3,4 και 5. Το κόστος μεταφοράς ανά τόνο από μια πόλη σε άλλη δίνεται στο παρακάτω διάγραμμα. Στους κύκλους είναι γραμμένες οι πόλεις και στα τρίγωνα οι ποσότητες που πρέπει να πάνε σε κάθε πόλη. Τα βέλη δείχνουν προς ποια πόλη μπορεί να γίνει η μεταφορά. Να βρεθεί ένα σχέδιο μεταφοράς που να ελαχιστοποιεί το συνολικό κόστος. 57

Μοντελοποίηση του προβλήματος Αντικειμενική Συνάρτηση : 50x 20x 40x 30x 40x 10x 50x 12 14 23 25 43 45 53 Περιορισμοί x 12 x14 10 x12 x23 x25 1 x23 x43 x53 6 x14 x43 x45 0 x25 x45 x53 3 xi, j 0 ΚΑΝΟΝΙΚΗ ΜΟΡΦΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ min{z 50x 20x 40x 30x 40x 10x 50 x } x 12 x14 10 x12 x23 x25 1 x23 x43 x53 6 x14 x43 x45 0 x25 x45 x53 3 xi, j 0 12 14 23 25 43 45 53 58

2.4.4.1 Επίλυση του προβλήματος με το λογισμικό LINGO LINDO ΤΟ ΠΡΟΒΛΗΜΑ ΣΤΗ ΓΛΩΣΣΑ LINGO/LINDO MIN 50 X + 20 Y + 40 Q + 30 W + 40 E + 10 R + 50 T ST X + Y =10 X - Q -W = 1 Q + E + T = 6 Y -E - R = 0 Q + R - T= 3 END Τα αποτελέσματα του προβλήματος εμφανίζονται στο Παράρτημα Α -5 59

Κεφάλαιο 3.Το πρόβλημα του περιοδεύοντος πωλητή και Γραμμικός Προγραμματισμός Το πρόβλημα του περιοδεύοντος πωλητή είναι ένα πρόβλημα το οποίο αν και άρχισε από την θεωρία Γραφημάτων έχει πάρα πολλές εφαρμογές. Μια απλή και αρχική διατύπωση του προβλήματος είναι η εξής: Έστω ότι έχουμε ένα δίκτυο από πόλεις που συνδέονται μεταξύ τους με δρόμους, το ζητούμενο είναι να περάσουμε από όλες τις πόλεις, έτσι ώστε να κάνουμε την λιγότερη διαδρομή, αρχίζοντας από μια δεδομένη πόλη. Ο προσεκτικός αναγνώστης θα καταλάβει άμεσα, ότι παρόλο που αρχικά φαίνεται ως ένα απλοϊκό πρόβλημα, μπορεί να βρει πολλές εφαρμογές(από τα δίκτυα συγκοινωνιών, μέχρι τα δίκτυα ύδρευσης κτλ.). Το ζητούμενο λοιπόν, είναι να βρούμε μια εύκολη, αν γίνεται, μέθοδο μοντελοποίησης του προβλήματος και να την εφαρμόσουμε ώστε να λύσουμε το πρόβλημα μας. Με τη βοήθεια του γραμμικού προγραμματισμού, το πρόβλημα του περιοδεύοντος πωλητή μπορεί να μοντελοποιηθεί πολύ εύκολα. Πριν συνεχίσουμε είναι σημαντικό να σημειώσουμε την πληθώρα των διαφορετικών παραλλαγών που έχει το πρόβλημα, αλλά και το πώς μοντελοποιείται το κάθε πρόβλημα στα πλαίσια του γραμμικού προγραμματισμού. 3.1 Το συμμετρικό πρόβλημα του περιοδεύοντος πωλητή Έστω ότι είμαστε μέλη του διοικητικού συμβουλίου του Ταχυδρομικού Ταμιευτήριου, και θα πρέπει να αποφασίσουμε ποια διαδρομή θα πρέπει να δώσουμε στους ταχυδρόμους να ακολουθήσουν με το αυτοκίνητο τους, ώστε να έχουμε την λιγότερη κατανάλωση από καύσιμα. Οι ταχυδρόμοι θα έχουν τον περιορισμό να περάσουν από κάθε σημείο ακριβώς μια φορά. 60

Ας υποθέσουμε επίσης, ότι ο ταχυδρόμος θα πρέπει να περάσει από 5 σημεία. Τότε, θα μπορούσαμε να αναπαραστήσουμε το πρόβλημα μας με ένα απλό μη κατευθυνόμενο γράφημα ως εξής: Το γράφημα μας θα έχει 6 κορυφές (το αρχικό σημείο εκκίνησης και τα υπόλοιπα 5). Δηλαδή V { a, b1, b2, b3, b4, b5}, επίσης οι ακμές του γραφήματος υπάρχουν, αν και μόνο αν, υπάρχει δρόμος από το ένα σημείο στο άλλο. Το γράφημα αυτό, μπορούμε να το δούμε στο παρακάτω σχήμα. Σχήμα 3.1 : Γράφημα συμμετρικού προβλήματος Επιπλέον θα δώσουμε και σε κάθε ακμή ένα βάρος, δηλαδή σε κάθε δρόμο θα δώσουμε και ένα κόστος, το κόστος της διαδρομής. Επειδή το πρόβλημα μας το μοντελοποιήσαμε σε απλό μη κατευθυνόμενο γράφημα, αυτό σημαίνει, ότι αν κοστίζει 12 μονάδες να πάμε από την πόλη Α στην πόλη Β, τότε και η αντίστροφη διαδρομή έχει το ίδιο κόστος. 61

3.1.1 Μοντελοποίηση του συμμετρικού προβλήματος Στόχος μας λοιπόν είναι να ελαχιστοποιήσουμε το κόστος των καυσίμων. Άρα πρέπει να φτιάξουμε την συνάρτηση που μας δίνει το κόστος των καυσίμων. Για αυτό το λόγο έχουμε τις εξής μεταβλητές : x ij, η μεταβλητή παίρνει 0 ή 1 και μας λέει αν πήγαμε από την πόλη i στην πόλη j. (θέτουμε 0 για την α και 1,2,3,4,5 για τις μεταβλητές. cij το κόστος της διαδρομής από την πόλη i στην πόλη j. Από τα προηγούμενα έπεται ότι η συνάρτηση κόστους είναι η bi αντίστοιχα). Άρα έχουμε 30 01 01 02 02 54 54 5 5 z c x c x c x c x c x ij ij ij ij i j i 0 j 0 0 i, j 5 Στη συνέχεια, ακολουθούν οι περιορισμοί. Στόχος μας λοιπόν, είναι να περάσει ο ταχυδρόμος από κάθε σημείο ακριβώς μια φορά. Αυτό σημαίνει ότι αν ο ταχυδρόμος περάσει από την πόλη Α στην πόλη Β δεν επιτρέπεται σε επόμενο βήμα να περάσει από την Β στην Α. Αυτό συνεπάγεται τους παρακάτω περιορισμούς x x i, j ij ji με x 0 ή 1 ij 5 j 0 x ij 2 0 i 5. 62

3.2 Το μη συμμετρικό πρόβλημα. Το παρακάτω σχήμα είναι αναπαράσταση ενός υποθετικού προβλήματος που έχουμε να επιλύσουμε. Σχήμα 3.2: Γράφημα μη συμμετρικού προβλήματος Το παρόν πρόβλημα δεν είναι το ίδιο με το προηγούμενο ως προς την μοντελοποίηση του στα πλαίσια του γραμμικού προγραμματισμού. Καταρχάς το πρόβλημα αυτό χρησιμοποιεί την έννοια του κατευθυνόμενου γραφήματος. Όπως φαίνεται και στο παραπάνω σχήμα οι δρόμοι που μπορούμε να επιλέξουμε να πάμε έχουν κατεύθυνση. Ενώ μπορώ να πάω από την Αθήνα στην Πάτρα, το αντίστροφο δεν γίνεται. Για να το επιλύσουμε αυτό το πρόβλημα με τη χρήση γραμμικού προγραμματισμού, θα πρέπει να το μοντελοποιήσουμε όπως και το προηγούμενο. Η διαφορετικότητα των δύο αυτών προβλημάτων θα φανεί στους περιορισμούς. Οπότε εργαζόμαστε ως εξής: 1. Για την αντικειμενική μας συνάρτηση, στόχος μας είναι να βρούμε την ελάχιστη διαδρομή για τον πωλητή μας. Η ελάχιστη διαδρομή μπορεί να μην έχει να κάνει με 63

την απόσταση, αλλά με το ελάχιστο χρηματικό κόστος. Σε κάθε περίπτωση και χωρίς να μας προκαλεί σύγχυση θα αναφέρουμε είτε το χρηματικό κόστος είτε κάτι διαφορετικό σαν απόσταση. Αφού ψάχνουμε λοιπόν το ελάχιστο κόστος θα πρέπει να ελαχιστοποιούμε την παρακάτω συνάρτηση: 10 10 z c x n 1 n 1 nm nm όπου c nm είναι το κόστος να πάμε από την πόλη n στην πόλη m x nm παίρνουν τιμές 0 ή 1 και δηλώνουν αν πήγα από την πόλη n στην πόλη m. Στο παράδειγμα μας ισχύει ότι : cnm cmn για κάθε nm, 2. Όπως είπαμε πριν τα x nm είναι δυαδικά δηλαδή παίρνουν τιμές 0 ή 1 μόνο άρα οι περιορισμοί που πρέπει να βάλουμε είναι οι εξής: 10 xnm 1 για 1 n 10 και m 1 10 m 1 x nm 1 για 1 m 10 Εδώ βλέπουμε και μια διαφορά στους περιορισμούς με πριν, είναι διότι δεν έχουμε συμμετρικότητα στο πρόβλημα μας. 3. Τέλος ο περιορισμός που πρέπει να μπει (λόγω του ότι είναι κατευθυνόμενο) είναι ο εξής: t t nx n 1 2 i, j n i j ij όπου n 10 64

3.2.1 Παράδειγμα επίλυσης ενός μη συμμετρικού προβλήματος με τη χρήση του Lingo-Lindo Μπορούμε να υποθέσουμε ότι έχουμε το παρακάτω πρόβλημα του περιοδεύοντος πωλητή. Έχουμε ένα δίκτυο από 6 πόλεις που όλες συνδέονται μεταξύ τους. Για το λόγο αυτό η γραφική αναπαράσταση γίνεται από ένα πλήρες γράφημα. Στο παρακάτω γράφημα έχουμε σημειώσει πάνω σε κάθε ακμή το αντίστοιχο κόστος βάρος. Το ζητούμενο είναι να αρχίσουμε από την πόλη 1 και να περάσουμε από όλες ακριβώς μια φορά με το ελάχιστο κόστος. Εδώ είναι σημαντικό να αναφέρουμε ότι μπορεί να ζητάμε να περάσουμε από όλες τις πόλεις ακριβώς μια φορά, αλλά υπάρχουν γραφήματα στα οποία αυτό είναι αδύνατο. Σχήμα 3.3 : Γράφημα μη συμμετρικού προβλήματος 6 πόλεων 65

Ακολουθεί ο κώδικας σε γλώσσα προγραμματισμού lingo του παραπάνω μη συμμετρικού προβλήματος. Ο ΚΩΔΙΚΑΣ σε LINGO! TSP Στο πρόβλημα του περιοδεύοντος πωλητή έχουμε ένα δίκτυο από πόλεις οι οποίες συνδέονται με δρόμους Στόχος μας είναι να βρούμε μια διαδρομή η οποία θα περνάει από κάθε πόλη ακριβώς μια φορά και θα έχει το ελάχιστο κόστος ή την ελάχιστη διαδρομή. ; MODEL:! Το πρόβλημα του περιοδεύοντος πωλητή για τις πόλεις του προηγούμενου γραφήματος. SETS: CITY / 1.. 5/: U;! U( I) =μια αρίθμηση των πόλεων; LINK( CITY, CITY): DIST,! Ο πίνακας των <<αποστάσεων>>; X;! X( I, J) = 1 if we use link I, J; ENDSETS DATA:!Ο πίνακας των αποστάσεων, ο οποίος δεν χρειάζεται να είναι συμμετρικός; DIST = 0 702 454 842 2396 702 0 324 1093 2136 454 324 0 1137 2180 842 1093 1137 0 1616 2396 2136 2180 1616 0 ; ENDDATA!The model:ref. Desrochers & Laporte,OR Letters, Feb. 91; N = @SIZE( CITY); MIN = @SUM( LINK: DIST * X); @FOR( CITY( K):! It must be entered; 66

@SUM( CITY( I) I #NE# K: X( I, K)) = 1;! It must be departed; @SUM( CITY( J) J #NE# K: X( K, J)) = 1;! Weak form of the subταξίδι breaking constraints;! These are not very powerful for large problems; @FOR( CITY( J) J #GT# 1 #AND# J #NE# K: U( J) >= U( K) + X ( K, J) ( N 2) * ( 1 X( K, J)) + ( N 3) * X( J, K) ); );! Make the X s 0/1; @FOR( LINK: @BIN( X));! For the first and last stop we know ; @FOR( CITY( K) K #GT# 1: U( K) <= N 1 ( N 2) * X( 1, K); U( K) >= 1 + ( N 2) * X( K, 1) ); END Πίνακας 3.1 : Ο Κώδικας σε Lingo του προβλήματος 5 πόλεων Τα αποτελέσματα του παραπάνω προβλήματος, δίνονται στο Παράρτημα Β - 1 της παρούσας μεταπτυχιακής εργασίας. 67

Κεφάλαιο 4. Μελέτη Περίπτωσης TSP ΙΩΑΝΝΙΝΑ 4.1 Έρευνα TSP Παπαστράτος Α.Β.Ε.Σ Η εταιρία Παπαστράτος Α.Β.Ε.Σ., θυγατρική εταιρεία της Philip Morris International στην Ελλάδα απασχολεί πάνω από 800 άτομα εκ των οποίων ένα ποσοστό της τάξεως του 25% είναι επιθεωρητές πωλήσεων. Οι επιθεωρητές πωλήσεων έχουν την ευθύνη μίας γεωγραφικής περιοχής π.χ. Δυτική Θεσσαλονίκη, η οποία αποτελείται από περίπου 500 έως 600 Σημεία Λιανικής Πώλησης ΣΛΠ (περίπτερα/ψιλικά). Οι επιθεωρητές πωλήσεων έχουν σε καθημερινή βάση να επισκέπτονται πελάτες με σκοπό την ενημέρωση, εκπαίδευση και σύναψη συμφωνιών με τα ΣΛΠ και ίδιους τους Λιανοπωλητές. Οι καθημερινές δραστηριότητες απαιτούν πολύ καλή οργάνωση και φυσικά τη δημιουργία δρομολογίων έτσι ώστε να επισκέπτονται τον απαιτούμενο αριθμό ΣΛΠ μία φορά μέσα στη μέρα από το σημείο έναρξης (εταιρία / αντιπροσωπεία) μέχρι πάλι πίσω. Στην εταιρία Παπαστράτος, ο κάθε επιθεωρητής πωλήσεων έχει υπό την επίβλεψη του περίπου 20 ΣΛΠ. Παρακάτω, ακολουθεί ο χάρτης των Ιωαννίνων όπου με κόκκινο χρώμα είναι το σημείο έναρξης της ΒΙΠΕ (αντιπροσωπεία Παπαστράτος Ιωαννίνων ) και με μαύρο χρώμα τα επισκεπτόμενα ΣΛΠ. Σχήμα 4.1: Η γεωγραφική θέση των ΣΛΠ στα Ιωάννινα 68