Εργασία για το μάθημα «Γραμμικός και μη προγραμματισμός Βελτιστοποίηση»

Σχετικά έγγραφα
ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1

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

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

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

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

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

2. dim(p ) = n rank(a = )

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

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

ΚΕΦΑΛΑΙΟ 4. Ακέραια Πολύεδρα

ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΑΠΟΙΚΙΑΣ ΜΥΡΜΗΓΚΙΩΝ ANT COLONY OPTIMIZATION METHODS

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

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

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

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

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

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

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

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

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

για NP-Δύσκολα Προβλήματα

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

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

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

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

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

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

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

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

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

Ευρετικές Μέθοδοι. Ενότητα 3: Ευρετικές μέθοδοι αρχικοποίησης και βελτίωσης για το TSP. Άγγελος Σιφαλέρας. Μεταπτυχιακό Εφαρμοσμένης Πληροφορικής

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

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

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

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

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

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

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

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

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

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

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

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

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

Διάλεξη 4: Θεωρία Γραφημάτων Γραφέας: Σ. Κ. Διδάσκων: Σταύρος Κολλιόπουλος συνεκτικά γραφήματα (συνέχεια) Πρόταση 4.1 Δύο μπλοκ ενός

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

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

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

Chapter 9: NP-Complete Problems

z = c 1 x 1 + c 2 x c n x n

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Θεωρία Αλγόριθμοι Γραμμικής Βελτιστοποίησης 3/4/2012. Lecture08 1

3 η ΕΝΟΤΗΤΑ ΜΗ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ ΚΡΙΤΗΡΙΟΥ

x 3 = 0 x 6 = 0 x 4 = 0 x 5 = 0 x 2 = 0 x 1 = 0 aff(p )

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

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

ΕΠΙΛΥΣΗ ΕΚΦΥΛΙΣΜΕΝΩΝ ΚΑΙ ΓΕΝΙΚΩΝ ΓΡΑΜΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ. 4.1 Επίλυση Εκφυλισμένων Γραμμικών Προβλημάτων

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

Κεφάλαιο 6. Μέθοδοι επίλυσης προβλημάτων ακέραιου προγραμματισμού

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

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

Ασκήσεις μελέτης της 8 ης διάλεξης

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

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX

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

Συντομότερες Διαδρομές

Διάλεξη 4: Απόδειξη: Για την κατεύθυνση, παρατηρούμε ότι διαγράφοντας μια κορυφή δεν μπορούμε να διαχωρίσουμε τα u και v. Αποδεικνύουμε

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

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

ΜΑΘΗΜΑΤΑ ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ

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

είναι πρόβλημα μεγιστοποίησης όλοι οι περιορισμοί είναι εξισώσεις με μη αρνητικούς του σταθερούς όρους όλες οι μεταβλητές είναι μη αρνητικές

Ευρετικές Μέθοδοι. Ενότητα 1: Εισαγωγή στις ευρετικές μεθόδους. Άγγελος Σιφαλέρας. Μεταπτυχιακό Εφαρμοσμένης Πληροφορικής ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΙ

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

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

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

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

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

4.3. Γραµµικοί ταξινοµητές

4.4 Το πρόβλημα του ελάχιστου ζευγνύοντος δένδρου

Συνοπτική Θεωρία Μαθηματικών Α Γυμνασίου

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

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

Ανάκληση Πληποφοπίαρ. Διδάζκων Δημήηριος Καηζαρός

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

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ. Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

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

Δυναμικός Προγραμματισμός

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Transcript:

Εργασία για το μάθημα «Γραμμικός και μη προγραμματισμός Βελτιστοποίηση» Διδάσκων: Ε. Χαρμανδάρης Θέμα: «Το πρόβλημα του περιπλανώμενου πωλητή, ακριβείς, ευριστικές και ενδιαφέρουσες λύσεις» Φώτογλου Ιωακείμ, 3452, Τμήμα Μαθηματικών Χειμερινό Εξάμηνο 2013-2014

1 Περιεχόμενα Το πρόβλημα του περιπλανώμενου πωλητή Τύποι αλγορίθμων για την επίλυση του προβλήματος o Ακριβείς αλγόριθμοι Ο αλγόριθμος του τετμημένου επιπέδου (cutting-plane algorithm) Ο αλγόριθμος εύρεσης όψεων (facet-finding algorithm) o Ευριστικοί (heuristic) αλγόριθμοι Ο άπληστος αλγόριθμος (greedy algorithm) Ο αλγόριθμος 2-opt Απόδειξη ύπαρξης λύσης σε πεπερασμένο αριθμό βημάτων Άλλες ενδιαφέρουσες λύσεις και η μαθηματική τους μοντελοποίηση o Η λύση της αποικίας μυρμηγκιών (ant colony) o Η brute-force λύση Πηγές

2 Το πρόβλημα του περιπλανώμενου πωλητή Ένα απο τα κατ εξοχήν πρακτικά προβλήματα των μαθηματικών με επεκτάσεις σε πολλούς άλλους τομείς. Ορίζεται απο την Oxford Dictionary σαν «Ένα μαθηματικό πρόβλημα στο οποίο πρέπει να βρεθεί ποιά είναι η συντομότερη διαδρομή που διασχίζει ένα σύνολο απο σημεία με έναν και μόνο έναν τρόπο» [1] Ο ορισμός του προβλήματος του περιπλανώμενου πωλητή δώθηκε τον 19 ο αιώνα απο τον Ιρλανδό μαθηματικό William R. Hamilton και τον Άγγλο μαθηματικό Thomas P. Kirkman. Στην δεκαετία του 20, ο μαθηματικός και οικονομολόγος Karl Menger το έφερε στο προσκήνιο ανάμεσα στους συναδέλφους του στη Βιέννη. Κατα την δεκαετία του 1930 το πρόβλημα επανήλθε στο προσκύνιο στους μαθηματικούς κύκλους του Princeton ενώ το 40 μελετήθηκε απο στατιστικούς στα πλαίσια της πρακτικής εφαρμογής του στην αγροτική παραγωγή [2] Το πρόβλημα αυτό είναι ένα απο τα εμβληματικότερα προβλήματα στην συνδιαστική βελτιστοποίηση (combinatorial optimization), την επιχειρησιακή έρευνα και την επιστήμη των υπολογιστών με πολύ σημαντικές οικονομικές και πρακτικές προεκτάσεις. Η εύρεση βέλτιστων λύσεων αποτελεί αντικείμενο μεγάλου ενδιαφέροντος απο επιχειρήσεις οι οποίες είναι αναγκασμένες να διατηρούν ένα μεγάλο δίκτυο διανομής καθώς η εξεύρεση καλύτερων λύσεων οδηγεί σε σημαντική οικονομία σε καύσιμα και ελαχιστοποίηση των χρόνων διανομής. Υπολογιστικά, το πρόβλημα του περιπλανώμενου πωλητή, είναι ένα πρόβλημα NP-hard (Non-deterministic Polynomial-time hard). Τα προβλήματα αυτού του τύπου ονομάζονται έτσι γιατί οι αλγόριθμοι για την επίλυσή τους μπορούν να μεταφραστούν σε αλγόριθμους για τη λύση οποιουδήποτε NP προβλήματος. Πρακτικά αυτό σημαίνει πως τα προβλήματα NP-hard είναι εξίσου, αν όχι περισσότερο, δύσκολα απο οποιοδήποτε πρόβλημα NP. Η ιδιαιτερότητα τέτοιου τύπου προβλημάτων είναι η ραγδαία αύξηση του χρόνου επίλυσης με κάθε προσθήκη. Με τον αλγόριθμο brute-force που

3 αναλύουμε παρακάτω, αν δεχτούμε πως ένα πρόβλημα περιπλανώμενου πωλητή με 20 πόλεις χρειάζεται ένα δευτερόλεπτο για να επιλυθεί απο έναν ηλεκτρονικό υπολογιστή τότε ένα πρόβλημα με 22 πόλεις θα απαιτούσε περίπου 7 λεπτά (420 δευτερόλεπτα, με 121.645.100.408.832.000 υπολογισμούς το δευτερόλεπτο). Αν οι πόλεις αυξηθούν μόλις σε 30, δηλαδή γίνουν μόνο 50% περισσότερες απο τις αρχικές ο υπολογισμός θα απαιτήσει 8.841.761.993.739.701.954.543.616.000.000 που με τον ίδιο υπολογιστή θα ολοκληρωθούν σε... 72.684.900.288.000 δευτερόλεπτα ή σε πιο κατανοητά απο τον άνθρωπο πλαίσια σε μόλις... 2,3 εκατομμύρια χρόνια. Αν το πρόβλημα λυθεί με χρήση δυναμικού προγραμματισμού ο χρόνος που απαιτείται μειώνεται δραστικά, αλλά ακόμη και οι καλύτερες προσεγγίσεις απαιτούν εκθετικό χρόνο (2 n ). Έτσι στις παραπάνω συνθήκες με χρήση δυναμικού προγραμματισμού το πρόβλημα με τις 30 πόλεις μπορεί να λυθεί σε περίπου 10 λεπτά αντί για 2,3 εκατομμύρια χρόνια. Όσο εντυπωσιακή και αν είναι αυτή η μείωση όμως, αν συνεχίσουμε να αυξάνουμε τον αριθμό των πόλεων πολύ σύντομα οι χρόνοι επίλυσης γίνονται και πάλι τεράστιοι για την ανθρώπινη κλίμακα. Ένα πρόβλημα 60 πόλεων για παράδειγμα θα απαιτήσει 35.000 χρόνια για την επίλυση του.[8]

4 Τύποι αλγορίθμων για την επίλυση του προβλήματος Μπορούμε να διαχωρίσουμε τις προσεγγίσεις των λύσεων στο πρόβλημα του περιπλανώμενου πωλητή σε δύο είδη: Ακριβείς αλγόριθμοι: Οι αλγόριθμοι που είναι βέβαιο πως βρίσκουν την ακριβή λύση του προβλήματος. Συνήθως απαιτούν εξαιρετικά μεγάλη επεξεργαστική ισχύ ώστε να καταλήξουν σε λύση μέσα σε φυσιολογικά χρονικά πλαίσια. Ευριστικοί (heuristic) αλγόριθμοι: Αλγόριθμοι οι οποίοι βρίσκουν καλές λύσεις στο πρόβλημα, όμως δεν εγγυώνται ότι θα βρεθούν ακριβείς (βέλτιστες) λύσεις. Ακριβείς Αλγόριθμοι Δύο πολύ αποτελεσματικοί ακριβείς αλγορίθμοι είναι ο αλγόριθμος του τετμημένου επιπέδου (cutting-plane algorithm) και ο αλγόριθμος εύρεσης όψεων (facet-finding algorithm) [4]. Μια εξίσου ενδιαφέρουσα, αν και όχι τόσο πρωτότυπη, λύση είναι ο αλγόριθμος brute-force που βρίσκει λύσεις στο πρόβλημα αθροίζοντας όλες τις αποστάσεις και στη συνέχεια επιλέγει τη μικρότερη. Οι δύο πρώτοι αλγόριθμοι θα αναφερθούν περιγραφικά μιας και η υλοποιησή τους είναι εξαιρετικά σύνθετη και ξεφεύγει κατα πολύ απο τα πλαίσια αυτής της εργασίας, ο τρίτος οστόσο αναλύεται σε παρακάτω ενότητα με λεπτομέρεια. ο αλγόριθμος του τετμημένου επιπέδου (cutting-plane algorithm) Ο αλγόριθμος τετμημένου επιπέδου (γνωστός και ως Dantzig, Fulkerson, and Johnson's Cutting-Plane Method) είναι μια προσέγγιση με χρήση γραμμικού προγραμματισμού που εφευρέθηκε το 1954 απο τους George Dantzig, Ray Fulkerson και Selmer Johnson. Η υλοποίησή τους [5] ακολουθεί παρακάτω: Κάθε αντικείμενο ΠΠΠ με n πόλεις μπορεί να οριστεί σαν ένα διάνυσμα με μήκος n(n-1)/2 (του οποίου οι συνιστώσες, κατανεμημένες απο τις άκρες του πλήρους γραφήματος, ορίζουν το κόστος) και κάθε διαδρομή μέσα απο τις

5 n πόλεις μπορεί να αναπαρασταθεί σαν διεύθυνση διανύσματος μήκους n(n- 1)/2 (με κάθε συνιστώσα ορισμένη στο 1 αν η αντίστοιχη άκρη είναι μέρος της διαδρομής και 0 αλλιώς). Αν το c T δηλώνει το διάνυσμα κόστους (σαν διάνυσμα γραμμής) και αν το S υποδηλώνει το σύνολο των φορέων (σαν στήλη διανυσμάτων πρόσπτωσης) όλων των διαδρομών, τότε το πρόβλημα είναι: ελαχιστοποίηση του c T x υποκείμενο σε x S (1) Οι Dantzig, Fulkerson, και Johnson αντί να ξεκινήσουν με το πρόβλημα που ήθελαν να λύσουν, ξεκίνησαν με το παρακάτω πρόβλημα που μπορούσαν να λύσουν: ελαχιστοποίηση του c T x υποκείμενο σε Ax b (2) με κάποιο κατάλληλα επιλεγμένο σύστημα Ax τα x στο S. b που ικανοποιείται από όλα Δεδομένου οτι το (2) είναι relaxation του (1) με την έννοια πως κάθε εφικτή λύση στο (1) είναι εφικτή λύση του (2), η βέλτιστη λύση του (2) επιστρέφει ένα κάτω φράγμα στην βέλτιστη λύση του (1). Η ιδέα των Dantzig, Fulkerson, και Johnson είναι πως η επίλυση του (2) μπορεί να βοηθήσει στην επίλυση του (1) με έναν πολύ πιο ουσιαστικό τρόπο απο το να παρέχει απλά ένα κάτω φράγμα: Είναι χαρακτηριστικό της μεθόδου simplex πως η λύση x* που βρίσκει είναι ένα ακραίο σημείο του πολύεδρου που ορίζεται απο το Ax b, για την ακρίβεια αν το x* δεν είναι ένα απο τα σημεία στο S τότε βρίσκεται έξω απο το κυρτό κέλυφος του S. Σε αυτή την περίπτωση το x* μπορεί να χωριστεί απο το S με ένα υπερεπίπεδο (hyperplane): κάποια γραμμική ανίσωση που ικανοποιείται απο όλα τα σημεία στο S και παραβιάζεται από το x*. Μια τέτοια ανίσωση λέγεται τετμημένο επίπεδο (cutting plane) ή τομή (cut). Έχοντας βρεί μια τομή, αυτή μπορεί να προστεθεί στο σύστημα Ax b, μέσω της μεθόδου simplex να λυθεί η tighter relaxation που προκύπτει και στη συνέχεια αυτή η διαδικασία να επαναληφθεί μέχρι να βρεθεί μια relaxation του (2) με μια βέλτιστη λύση στο S.

6 ο αλγόριθμος εύρεσης όψεων (facet-finding algorithm) Για να γίνει κατανοητή αυτή η προσέγγιση της λύσης στο πρόβλημα του περιπλανώμενου πωλητή είναι αναγκαίο να γίνει μια εισαγωγή στην έννοια των όψεων (facets) ώστε να μπορέσει να γίνει κατανοητή η εφαρμογή τους ενώ ταυτόχρονα, προκειμένου να εξηγήσουμε την έννοια της όψης, είναι απαραίτητο να εισάγουμε πολύ επιφανειακά, την έννοια του πολύτοπου (polytope). Ένα πολύτοπο λοιπόν, είναι ένα γεωμετρικό αντικείμενο, με επίπεδες πλευρές, που υπάρχει σε οποιονδήποτε γενικό αριθμό n διαστάσεων. Μια όψη (facet) είναι η ( n 1) όψη (face) ενός n-διάστατου πολύτοπου [6]. Όταν οι εφικτές λύσεις ενός προβλήματος συνδυαστικής βελτιστοποίησης κωδικοποιηθούν σαν σημεία 0/1 στον χώρο R d αποδίδουν ένα πολύτοπο που είναι το κυρτό κέλυφος (convex hull) των αποδιδόμενων σημείων. Η λύση μιας υπόστασης (instance) του προβλήματος τότε, αντιστοιχεί στην βελτιστοποίηση μιας γραμμικής αντικειμενικής συνάρτησης (linear objective function) πάνω απο αυτό το πολύτοπο [7, p1.1 From Problems to Polytopes ]. Με δεδομένα τα παραπάνω, το σύνολο των εφικτών λύσεων στο πρόβλημα του περιπλανώμενου πωλητή, μπορούν να απεικονιστούν σαν το κυρτό κέλυφος όλων των σημείων n 2 x {0,1} που αντιστοιχούν σε έναν Χαμιλτονιανό κύκλο στο πλήρες n-vertex γράφημα K n.

7 Ευριστικοί (heuristic) αλγόριθμοι Όπως είδαμε στην εισαγωγή, το πρόβλημα του περιπλανώμενου πωλητή είναι ένα πρόβλημα το οποίο απαιτεί εξαιρετικά αυξημένη υπολογιστική ισχύ για να βρεθούν ακριβείς λύσεις σε λογικά χρονικά διαστήματα. Ωστόσο, οι ακριβείς λύσεις δεν είναι πάντα αναγκαίες, σε κάποιες περιπτώσεις ακόμα και λύσεις αρκετά κοντά στην βέλτιστη μας δίνουν μια επαρκώς καλή διαδρομή με σαφώς μικρότερο κόστος σε υπολογιστική ισχύ και χρόνο. Τέτοιοι αλγόριθμοι που βρίσκουν καλές λύσεις αλλά δεν εγγυώνται οτι θα βρεθούν ακριβείς (βέλτιστες) λύσεις ονομάζονται ευριστικοί αλγόριθμοι. Παρακάτω, αναλύουμε δύο απο αυτούς, τον άπληστο αλγόριθμο (greedy algorithm) και τον αλγόριθμο 2-opt. Εξετάζουμε τις προσεγγίσεις τους στο πρόβλημα, τις λύσεις που παρέχουν αλλά και τις απαιτήσεις τους σε υπολογιστική ισχύ. ο άπληστος αλγόριθμος (greedy algorithm) Η λογική του άπληστου αλγόριθμου βασίζεται στη λήψη της βέλτιστης λύσης για κάθε ξεχωριστό στάδιο[9]. Σε ότι αφορά το πρόβλημα του περιπλανώμενου πωλητή αυτό εντοπίζεται κυρίως στην επιλογή της πόλης με την μικρότερη απόσταση απο την τρέχουσα. Έτσι, ο αλγόριθμος θα ξεκινήσει απο την πρώτη πόλη, θα επιλέξει την πλησιέστερη και θα «κατευθυνθεί» εκεί. Στη συνέχεια θα επιλέξει την πλησιέστερη σε αυτή πόλη, εξαιρουμένων όσων πόλεων έχει επισκεφτεί ήδη, και επαναλαμβάνοντας αυτή την διαδικασία θα καταλήξει σε μια αρκετά καλή λύση του προβλήματος. Είναι αρκετά εύκολο να υπολογίσουμε το κόστος του άπληστου αλγόριθμου: Αν υποθέσουμε πως αναφερόμαστε σε ένα σύνολο n πόλεων τότε αρχικά θα εξεταστούν οι αποστάσεις απο την πρώτη πόλη προς την κάθε μια απο τις επόμενες πάντα σε ευθεία γραμμή. Αυτό μας δίνει να συγκρίνουμε (n-1) αποστάσεις και να επιλέξουμε την ελάχιστη εξ αυτών. Μπορούμε να το εκφράσουμε μοντελοποιημένα ως εξής: D1 : min d2, d3,..., dn

8 Όπου με D 1 ορίζουμε την ελάχιστη απόσταση της πρώτης πόλης απο την αμέσως επόμενη και με d i συμβολίζουμε την απόσταση της πόλης i απο την τρέχουσα πόλη. Να σημειωθεί πως εδώ ο όρος i-οστή πόλη είναι συμβολικός και δεν έχει σχέση με την ονοματοδοσία των πόλεων (δηλαδή για παράδειγμα η d 2 δεν συμβολίζει κάποια προκαθορισμένη «2 η πόλη» αλλά συμβολίζει την απόσταση απο την 2 η πόλη στην οποία θα κατευθυνθούμε στη συνέχεια). Έχοντας υπολογίσει την ελάχιστη απόσταση μέχρι την επόμενη πόλη, ο αλγόριθμος κάνει το ίδιο και για την πόλη που αντιστοιχεί στην ελάχιστη αυτή απόσταση: D2 d3 d4 d n : min{,,..., } Βρίσκοντας έτσι την πόλη πλησιέστερα στην δεύτερη που επιλέξαμε πριν. O αλγόριθμος ολοκληρώνεται στην D n-1 επανάληψη έχοντας βρεί την τελική πόλη ή στην n επανάληψη αν θέλουμε το τελικό αποτέλεσμα να εμπεριέχει και την διαδρομή απο την τελική προς την αρχική πόλη. Το τελικό κόστος σε πράξεις λοιπόν είναι: n 1 n ( n 1) ( n 2)... 2 1 k n( n 1) 2 Που για παράδειγμα μπορεί να υπολογίσει μια αρκετά καλή διαδρομή 60 πόλεων σε μερικά μόλις κλάσματα του δευτερολέπτου (1.830 υπολογισμοί), σε πολύ λιγότερο δηλαδή απο ότι οι ακριβείς αλγόριθμοι που περιγράψαμε παραπάνω και ο brute-force αλγόριθμος που ακολουθεί σε επόμενη ενότητα. k 1 ο αλγόριθμος 2-opt Ένας ακόμη ευριστικός αλγόριθμος, με μια τελείως διαφορετική προσέγγιση απο τον άπληστο είναι ο λεγόμενος αλγόριθμος 2-opt (2-opt algorithm). Η προσέγγιση που ακολουθεί για την εύρεση καλών λύσεων στο πρόβλημα του περιπλανώμενου πωλητή είναι η εξής: Αρχικά, επιλέγεται ένα μονοπάτι που ικανοποιεί τις προϋποθέσεις του προβλήματος, δηλαδή ξεκινάει απο μια αρχική πόλη, περνάει απο όλες τις πόλεις ακριβώς μια φορά και αφού τις διασχίσει όλες καταλήγει πάλι στην αρχική πόλη. Το μονοπάτι αυτό μπορεί να είναι ένα τυχαίο, σε περίπτωση που ο αλγόριθμος 2-opt εφαρμόζεται αποκλειστικά, ή ένα ήδη υπολογισμένο καλό

9 μονοπάτι σε περίπτωση που συνδυάζεται με μια ήδη υπολογισμένη καλή λύση απο άλλον αλγόριθμο (λχ τον άπληστο αλγόριθμο που είδαμε παραπάνω). Γενικά στην περίπτωση που έχουμε ήδη ένα καλό μονοπάτι ο αλγόριθμος 2- opt βρίσκει καλές λύσεις πολύ πιο γρήγορα από ότι αν ξεκινήσει με μια τυχαία επιλογή διαδρομής. Στη συνέχεια, ο αλγόριθμος εναλλάσει ζευγάρια συνδέσμων ανα δύο (εξ ου και η ονομασία του το 2-opt), προσαρμόζει κατάλληλα την διαδρομή, μιας και στις περιπτώσεις που δύο μονοπάτια τέμνονται είναι πολύ πιθανό η πορεία να χρειαστεί να αλλάξει διεύθυνση και ακολούθως υπολογίζει αν η απόσταση μειώθηκε. Δυστυχώς δεν υπάρχει εύκολος τρόπος να υπολογιστεί το πλήθος των πράξεων που απαιτούνται για να βρεθεί μια καλή λύση με την προσέγγιση αυτή. Θεωρητικά αν ο αλγόριθμος αφεθεί να τρέξει θα καταλήξει να δοκιμάσει όλες τις δυνατές εναλλαγές ανα ζεύγη αλλά αυτό θα απαιτήσει πολυωνυμικό χρόνο κάνοντας την μέθοδο αυτή άχρηστη. Οστόσο, με μικρότερο χρόνο εκτέλεσης προκύπτουν επαρκώς καλές λύσεις. Γενικά οι μέθοδοι k-opt δίνουν λύσεις που εκτιμάται πως βρίσκονται απο 2-5% κοντά στο φράγμα Held-Karp [10]. Ένα απλό παράδειγμα εναλλαγής ζυγών της μεθόδου 2-opt φαίνεται στο παρακάτω σχήμα, για το οποίο πρέπει να σημειωθεί πως η φορά της διαδρομής αλλάζει μετά την εναλλαγή των κόμβων [11]:

10 Απόδειξη ύπαρξης λύσης σε πεπερασμένο αριθμό βημάτων Για n πεπερασμένο πλήθος πόλεων, θδο πεπερασμένο πλήθος διαδρομών μεταξύ των πόλεων. Πράγματι, μπορούμε δίχως βλάβη της γενικότητας να θεωρήσουμε πως οι πόλεις είναι σημεία σε ένα επίπεδο του χώρου 2, κάθε σημείο (πόλη) αυτού του χώρου μπορεί να συνδεθεί με άπειρους τρόπους με ένα άλλο σημείο ο συντομότερος απο τους οποίους είναι η ευθεία. Εύκολα παρατηρούμε πως όταν έχουμε περισσότερες πόλεις, οι δυνατοί συνδυασμοί ευθείων διαδρομών μεταξύ τους ώστε να έχουμε διέλευση απο όλες τις πόλεις μόνο μια φορά και τελικά να επιστρέψουμε στην αρχική πόλη είναι: Πόλεις (πλήθος) n Δυνατές διαδρομές κ 2 2! (2) 3 3! (6) 4 4! (24) 5 5! (120)...... n n! Έχουμε δηλαδή μια παραγοντική αύξηση των διαδρομών. Γενικά, με δεδομένο πως θα περάσουμε απο κάθε πόλη μόνο μια φορά, και πως θα ξεκινήσουμε και θα καταλήξουμε στην αρχική πόλη τότε ξεκινώντας απο την πρώτη πόλη έχουμε (n-1) διαθέσιμες επιλογές, όταν επιλέξουμε μία και κατευθυνθούμε εκεί πλέον υπάρχουν (n-2) διαθέσιμες διαδρομές, στη συνέχεια (n-3) μέχρι τελικά να έχουμε εξαντλήξει τις πόλεις και η μόνη διαδρομή που να απομένει να είναι προς την αρχική πόλη.

11 Η άνωθεν παρατήρηση είναι γνωστή απο την συνδυαστική ως ο κανόνας του γινομένου (rule of product). Εφαρμόζοντας αυτόν τον κανόνα και με επαγωγή θα αποδείξουμε τον παραπάνω ισχυρισμό, ότι δηλαδή για n πλήθος πόλεων υπάρχουν n! διαδρομών που τις συνδέουν: Ελέγχω οτι ισχύει για 1 πόλη (σημ. 1 πόλη εδώ σημαίνει 1 πόλη πέραν της αρχικής δηλαδή δύο πόλεις): 21 2 2! Υποθέτω οτι ισχύει για x πόλεις, ότι δηλαδή: x ( x 1) ( x 2)... 21 x! Θα αποδείξω ότι ισχύει για x+1 πόλεις, ότι δηλαδή: ( x 1) x ( x 1) ( x 2)... 21 ( x 1)! Πράγματι: ( x 1) x ( x 1)... 21 ( x 1)! ( x 1) x( x 1) ( x 2)... 21 ( x 1) x! x ( x 1) ( x 2)... 21 x! Που ισχύει λόγω του 2 ου βήματος. Αφού υπάρχει πεπερασμένο πλήθος διαδρομών, υπάρχει τουλάχιστον μία διαδρομή min i i min και άρα το πρόβλημα έχει τουλάχιστον μία άριστη λύση.

12 Ενδιαφέρουσες λύσεις και η μαθηματική τους μοντελοποίηση Η λύση της αποικίας μυρμηγκιών (ant colony) Μια απο τις πιο προτότυπες λύσεις του προβλήματος είναι αυτή που έχουν εφαρμόσει τα μυρμήγκια για την εύρεση της βέλτιστης διαδρομής απο την φωλιά τους προς τα σημεία που βρίσκεται τροφή. Αυτός ο τρόπος επίλυσης έχει μοντελοποιηθεί απο τον ερευνητή τεχνητής νοημοσύνης Marco Dorigo και τον Luca Maria Gambardell οι οποίοι το 1997 περιέγραψαν μια μέθοδο παραγωγής καλών ευριστικών (heuristic) λύσεων στο πρόβλημα του περιπλανόμενου πωλητή χρησιμοποιώντας μια εξομοίωση αποκίας μυρμήγκιών[3]. Η μοντελοποίηση βασίζεται στην εξομοίωση της συμπεριφοράς πραγματικών μυρμήγκιών τα οποία ακολουθούν τις φερορμόνες που εκκρίνουν άλλα μυρμήγκια για να φτάσουν στην τροφή. Η διαδικασία με την οποία γίνεται αυτό είναι καλύτερα κατανοητή αν εξηγήσουμε πως εφαρμόζεται αυτή η προσέγγιση πάνω στο ελάχιστο μονοπάτι (shortest path): Τα μυρμήγκια διασπείρονται σε αναζήτηση τροφής, όταν ένα μυρμήγκι φεύγει απο τη φωλιά αφήνει ένα ίχνος (μονοπάτι) απο φερορμόνη η ένταση της οποίας εξασθενεί με το χρόνο. Όταν το μυρμήγκι εντοπίσει μια εστία τροφής επιστρέφει στη φωλιά συνεχίζοντας να εκκρίνει τη φερορμόνη. Η ίδια εστία τροφής εντοπίζεται και απο άλλα μυρμήγκια τα οποία επίσης επιστρέφουν στη φωλιά. Καθώς το πλήθος των μυρμηγκιών που κατευθύνεται προς την τροφή αυξάνεται, η συντομότερη διαδρομή διασχίζεται συχνότερα και άρα η συγκέντρωση της φερορμόνης σε εκείνο το μονοπάτι γίνεται ισχυρότερη. Επειδή τα μυρμήγκια έχουν αναπτύξει την φυσική τάση να ακολουθούν την φερορμόνη που εναποτίθεται απο άλλα μυρμήγκια, το πλήθος των μυρμηγκιών που ακολουθεί αυτή τη συντομότερη διαδρομή συνεχώς αυξάνεται μέχρι που τελικά σχηματίζεται ένα μονοπάτι απο μυρμήγκια που κινούνται απο και προς την ίδια κατεύθυνση. Τα παρακάτω σχήματα δίνουν μια γραφική εξέλιξη της προσέγγισης αυτής:

13

14

15 Η εφαρμογή αυτής της προσέγγισης στο πρόβλημα του περιπλανώμενου πωλητή έχει παρόμοιο υπόβαθρο. Ωστόσο αντί για τις σχετικά πιο απλές διαδρομές απο μια εστία τροφής προς την φωλιά των μυρμηγκιών έχουμε πλέον πολλούς κόμβους (πόλεις) ενώ αντί για εκκίνηση απο ένα μοναδικό αρχικό σημείο (ισοδύναμο της φωλιάς στο παραπάνω παράδειγμα) τα μυρμήγκια διασπείρονται σε τυχαίες πόλεις και αφήνονται να χαράξουν τα μονοπάτια προς μια πόλη που ορίζεται σαν αρχική-τελική. Συμπληρωματικά, ρυθμίζονται παράμετροι όπως ο ρυθμός έκκρισης και εξάτμησης του φερορμονικού ίχνους, το μέγεθος του πληθυσμού, μέχρι και ενδεχομένως κάποια εμπόδια τα οποία πρέπει να προσπεραστούν. Αυτό το τελευταίο μάλιστα έχει και ενδιαφέρουσες πρακτικές εφαρμογές καθώς το ισοδύναμο τέτοιων εμποδίων στην πραγματικότητα μπορεί να είναι φαράγγια, λίμνες ή άλλα φυσικά εμπόδια που εμποδίζουν την μετακίνηση σε ευθείες γραμμές όπως πολλές φορές υποθέτουμε στα θεωρητικά μοντέλα. Αξίζει να σημειωθεί μια ακόμη ενδιαφέρουσα πλοκή που αφορά τη μέθοδο βελτιστοποίησης αποικίας μυρμηγκιών: υπάρχει η δυνατότητα ρύθμισης της προτεραιότητας κάποιων κόμβων έναντι άλλων με χρήση συντελεστών βαρύτητας κάτι το οποίο θα απαιτούσε εξαιρετικά αυξημένο υπολογιστικό κόστος για να ενσωματωθεί σε κάποιον απο τους προαναφερθέντες ακριβείς τρόπους επίλυσης, αλλά επηρεάζει πολύ λιγότερο αυτήν τη μέθοδο. Αυτό το σημείο εμπλέκει τη λύση του προβλήματος του περιπλανώμενου πωλητή με ένα άλλο σημαντικό πρόβλημα της συνδυαστικής βελτιστοποίησης, το λεγόμενο πρόβλημα του σακιδίου (knapsack problem)

16 Η brute-force λύση H πιο κοινότυπη, αλλά και υπολογιστικά πολυδάπανη προσέγγιση που όμως -εφόσον ολοκληρωθεί σε λογικό χρονικό διάστημα- επιστρέφει πάντα την άριστη λύση. Βασίζεται στον υπολογισμό όλων των αποστάσεων σε όλες τις δυνατές διαδρομές και τη σύγκριση μεταξύ τους. Ένας τρόπος να μοντελοποιήσουμε την brute-force διαδικασία είναι ο εξής: Αν θεωρήσουμε i το συνολικό μήκος της i διαδρομής τότε για n πλήθος κόμβων το min min{ 1, 2,..., n }, το οποίο βέβαια σημαίνει πως θα πρέπει να υπολογίσουμε όλες τις αποστάσεις στο σχήμα. Ένα παράδειγμα της διαδικασίας για το παρακάτω σχήμα: Αφού η αρχική πόλη (Α) είναι και η τελική πόλη, όλοι οι συνδυασμοί θα είναι της μορφής ΑxxxA, με αναδιατάξεις στο ενδιάμεσο, οι συνδυασμοί που περιέχουν εσωτερικά όλες τις πόλεις Β,Γ και Δ είναι θεμιτοί όμως κάποιοι

17 συνδυασμοί είναι ίδιοι με άλλους (λχ η διαδρομή ΑΒΓΔΑ είναι ίδια με την διαδρομή ΑΔΓΒΑ), οπότε, εφαρμόζοντας αυτά που γνωρίζουμε απο τις πιθανότητες σχετικά με την διάταξη αντικειμένων, εύκολα συμπεραίνουμε πως ο τύπος που περιγράφει την συγκεκριμένη διάταξη είναι (τύπος) Οπότε αν έχουμε τις εξής τρείς διαδρομές που φαίνονται στο παραπάνω σχήμα (με d συμβολίζεται η μετρική της απόστασης): 1 d(, ) d(, ) d(, ) d(, ) (κόκκινη διαδρομή) 2 d(, ) d(, ) d(, ) d(, ) (μπλέ διαδρομή) 3 d(, ) d(, ) d(, ) d(, ) (πράσινη διαδρομή) Όμως με την μέθοδο brute-force θα υπολογιστούν και οι διπλές διαδρομές οπότε θα έχουμε και: d(, ) d(, ) d(, ) d(, ) 4 2 d(, ) d(, ) d(, ) d(, ) 5 3 d(, ) d(, ) d(, ) d(, ) 6 1 Τα οποία παρότι είναι ισοδύναμα με τα αντίστοιχα ii, 1,2,3 παραπάνω, οστόσο υπολογίζονται κανονικά. Έτσι, το υπολογιστικό κόστος της μεθόδου brute-force, μπορεί να υπολογιστεί εύκολα σε σχέση με το πλήθος των πόλεων: για 3 πόλεις χωρίς την αρχική απαιτείται ο υπολογισμός 6 διαδρομών, για 4 πόλεις χωρίς την αρχική έχουμε 24 συνδυασμούς (απο τους οποίους όμως μόνο οι 12 είναι μοναδικοί) και ανάγκη για υπολογισμό 24 διαδρομών κλπ. Γενικά, για n πόλεις συνολικά, απαιτείται ο υπολογισμός ( n 1)! διαδρομών. Οστόσο το υπολογιστικό κόστος δεν περιορίζεται μόνο απο το πλήθος i των διαδρομών, καθώς η αύξηση των πόλεων υποχρεώνει και σε επιπρόσθετο υπολογισμό των αποστάσεων d που συνθέτουν την κ i. Στο άνωθεν παράδειγμα λόγου χάρη, η κάθε διαδρομή είχε 4 μετρικές απόστασης, αν ο αριθμός των πόλεων ανέβει αντίστοιχα προστίθεται επιπλέον αποστάσεις και έτσι αν είχαμε 5 πόλεις η αντίστοιχη διαδρομή θα είχε 5 αποστάσεις (λχ την ΑΒ-ΒΓ-ΓΔ-ΔΕ-ΕΑ).

18 Μπορούμε λοιπόν να συμπεράνουμε πως όταν ο αριθμός των πόλεων μεταβάλλεται, το κόστος υπολογισμού της βέλτιστης διαδρομής αλλάζει ως εξής: Το πλήθος των αναγκαίων διαδρομών κ που πρέπει να υπολογιστούν, το οποίο αυξάνεται παραγοντικά για κάθε επιπλέον πόλη Το πλήθος των αποστάσεων d της κάθε διαδρομής, το οποίο αυξάνεται κατα μια επιπλέον πράξη σε κάθε μία απο τις διαδρομές. Έχοντας κάνει τις εξής παρατηρήσεις, μπορούμε λοιπόν να υπολογίσουμε το υπολογιστικό κόστος της μεθόδου brute-force: Για n πλήθος πόλεων απαιτείται ο υπολογισμός n αποστάσεων για κάθε διαδρομή και ( n 1)! διαδρομών. Συνολικά λοιπόν, το υπολογιστικό κόστος της μεθόδου brute-force είναι n( n 1)! n! πράξεις. Ο παραπάνω ορισμός οστόσο δεν λαμβάνει υπόψη του το υπολογιστικό κόστος που προκύπτει απο τις επιπλέον προσθέσεις του d σε κάθε διαδρομή, ούτε τις επιπλέον πράξεις που απαιτούνται για τον υπολογισμό του min.

19 Πηγές [1] travelling salesman problem: definition of travelling salesman problem in Oxford dictionary (British & World English) ελήφθη στις 30 Δεκεμβρίου 2013 από http://www.oxforddictionaries.com/definition/english/travellingsalesman-problem [2] On the Solution of Traveling Salesman Problems: David Applegate, Robert Bixby, Vasek Chvatal, William Cook ελήφθη στις 30 Δεκεμβρίου 2013 από http://www.mathunion.org/icm/icm1998.3/main/17/cook.man.ocr.pdf [3] Ant colonies for the traveling salesman problem: Marco Dorigo, Luca Maria Gambardell ελήφθη στις 30 Δεκεμβρίου 2013 από http://www.idsia.ch/~luca/acs-bio97.pdf [4] Keld Helsgaun: An Effective Implementation of the Lin-Kernighan Traveling Salesman Heuristic ελήφθη στις 9 Ιανουαρίου 2014 από http://www.akira.ruc.dk/~keld/research/lkh/lkh-2.0/doc/lkh_report.pdf [5] Dantzig, Fulkerson, and Johnson's Cutting-Plane Method ελήφθη στις 12 Ιανουαρίου 2014 από http://www.math.uwaterloo.ca/tsp/methods/dfj/ [6] Weisstein, Eric W. "Facet." From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/facet.html [7] Linear vs. Semidefinite Extended Formulations: Exponential Separation and Strong Lower Bounds: Fiorini et al. ελήφθη στις 14 Ιανουαρίου 2014 από http://homepages.cwi.nl/~rdewolf/publ/qc/stoc130-fiorini.pdf [8] NP-Complete - A Rough Guide ελήφθη στις 18 Ιανουαρίου 2014 από http://www.mathsisfun.com/sets/np-complete.html

20 [9] Greedy algorithm. M. Hazewinkel (originator), Encyclopedia of Mathematics. URL: http://www.encyclopediaofmath.org/index.php?title=greedy_algorithm&oldid= 11679 [10] The Traveling Salesman Problem (TSP) ελήφθη στις 24 Ιανουαρίου 2014 από http://www.seas.gwu.edu/~simhaweb/champalg/tsp/tsp.html [11] Four Heuristic Solutions to the Traveling Salesperson Problem : Page 3, ελήφθη στις 26 Ιανουαρίου 2014 από http://www.devx.com/dotnet/article/33574/0/page/3