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

Σχετικά έγγραφα
ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

Εισαγωγή στους Αλγόριθμους

Αλγόριθμοι για ανάθεση συχνοτήτων και έλεγχο αποδοχής κλήσεων σε κυψελικά ασύρματα δίκτυα. (μέρος Ι)

Ειδικά θέματα σε κινητά και ασύρματα δίκτυα

Αλγόριθμοι για ανάθεση συχνοτήτων και έλεγχο αποδοχής κλήσεων σε κυψελικά ασύρματα δίκτυα. (μέρος ΙΙ)

Διδάσκων: Παναγιώτης Ανδρέου

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

Αλγόριθμοι για ανάθεση συχνοτήτων και έλεγχο αποδοχής κλήσεων σε κυψελικά ασύρματα δίκτυα

Το πρόβλημα μονοδρόμησης (The One-Way Street Problem)

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

Αλγόριθμοι εύρεσης ελάχιστων γεννητικών δέντρων (MST)

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι;

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37

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

Αναζήτηση Κατά Πλάτος

Θεωρία Γραφημάτων 5η Διάλεξη

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

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

Εισαγωγή στους Αλγορίθμους

Κατανεμημένα Συστήματα Ι

Θεωρία Γραφημάτων 6η Διάλεξη

Αναζήτηση Κατά Πλάτος

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

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

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

Θεωρία Γραφημάτων 5η Διάλεξη

Αλγόριθμοι και πολυπλοκότητα Τα συντομότερα μονοπάτια(shortest Paths)

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

Ελάχιστο Συνδετικό Δέντρο

Σημειωματάριο Δευτέρας 4 Δεκ. 2017

Ελάχιστο Συνδετικό έντρο

Το Πρόβλημα της Πινακοθήκης (The Art Gallery Problem)

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Το Πρόβλημα της Πινακοθήκης (The Art Gallery Problem)

Δρομολόγηση Και Πολύχρωματισμός. Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026

Δρομολόγηση μιας οντότητας ανάμεσα σε δύο σημεία ενός δικτύου έτσι ώστε να ελαχιστοποιήσουμε ένα κόστος, μια διάρκεια, κτλ.

Δρομολόγηση μιας οντότητας ανάμεσα σε δύο σημεία ενός δικτύου έτσι ώστε να ελαχιστοποιήσουμε ένα κόστος, μια διάρκεια, κτλ.

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

Αναζήτηση Κατά Πλάτος

Κατανεμημένα Συστήματα Ι

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

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

Αναζήτηση Κατά Πλάτος

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

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

Κατανεμημένα Συστήματα Ι

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

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

(n + r 1)! (n 1)! (n 1)!

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

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

Εισαγωγή στους Αλγόριθμους

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

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

Το πρόβλημα του σταθερού γάμου

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Τυχαιοκρατικοί Αλγόριθμοι

Ελάχιστο Συνδετικό Δέντρο

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

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

Εισαγωγή στους Αλγορίθμους Ενότητα 10η

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

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

Θεωρία Γραφημάτων: Ορολογία και Βασικές Έννοιες

Ελάχιστο Συνδετικό Δέντρο

Φροντιστήριο 11 Λύσεις

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

Στοιχεία Θεωρίας Γράφων (Graph Theory)

ροµολόγηση πακέτων σε δίκτυα υπολογιστών

Αλγόριθµοι Γραφηµάτων

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

Ελάχιστα Γεννητορικά ένδρα

Αλγόριθμοι Γραφημάτων

ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

u v 4 w G 2 G 1 u v w x y z 4

Βασικές Έννοιες Θεωρίας Γραφημάτων

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 9: Άπληστοι Αλγόριθμοι. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

Θεωρία Γραφημάτων 2η Διάλεξη

Outline. 6 Edit Distance

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

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

Ελάχιστο Συνδετικό έντρο

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

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

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

Άσκηση 1. Ψευδοκώδικας Kruskal. Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα.

3η Σειρά Γραπτών Ασκήσεων

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

Συντομότερα Μονοπάτια για Όλα τα Ζεύγη Κορυφών

Κατευθυνόμενα και μη κατευθυνόμενα γραφήματα

Διάλεξη 13: D Σχήμα 13.2: Ενδεικτική αναπαράσταση δίσκου D που ορίζει ο στην εμβάπτιση Γ. Σχήμα 13.3: Σχηματική επεξήγηση περιπτώσεων πο

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8

Χρωματισμός γραφημάτων

Θεωρία Γραφημάτων: Ορολογία και Βασικές Έννοιες

Transcript:

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

Εύρεση ελάχιστων μονοπατιών Αλγόριθμος του ijkstra

Θέματα μελέτης Πρόβλημα εύρεσης ελάχιστων μονοπατιών σε γραφήματα (shortest path problem) Αλγόριθμος του ijkstra

Αλγόριθμος του ijkstra Απόσταση μιας κορυφής v από μία κορυφή s = μήκος συντομότερου μονοπατιού μεταξύ των s και v Ο αλγόριθμος του ijkstra υπολογίζει τις ελάχιστες αποστάσεις όλων των κορυφών από δοσμένη αρχική κορυφή s με τις εξής υποθέσεις: Το γράφημα είναι συνεκτικό (μπορώ από οποιαδήποτε κορυφή να φτάσω σε οποιαδήποτε άλλη) Οι ακμές είναι μη κατευθυνόμενες Τα βάρη στις ακμές είναι μη αρνητικά Αν τα βάρη σε όλες τις ακμές είναι ίδια είναι ο αλγόριθμος S dsger Wybe ijkstra 193-

Αλγόριθμος του ijkstra Φτιάχνουμε σταδιακά σύννεφο από κορυφές, ξεκινώντας από την s και τελικά καλύπτοντας όλες τις κορυφές Αποθηκεύουμε με κάθε κορυφή v μια ετικέτα d(v) που δείχνει την απόσταση της v από την s στο υπογράφημα που αποτελείται από το σύννεφο και τις γειτονικές του κορυφές Σε κάθε βήμα Προσθέτουμε στο σύννεφο την εκτός του σύννεφου κορυφή u με τη μικρότερη απόσταση d(u) Ενημερώνουμε τις ετικέτες των κορυφών που είναι γειτονικές στη u

Απλούστευση για τις ακμές Έστω μια ακμή e = (u,z) τέτοια ώστε u είναι η κορυφή που προστέθηκε τελευταία στο σύννεφο s d(u) = u e 1 d(z) = 7 z z είναι κορυφή έξω από το σύννεφο Η απλούστευση για την ακμή e ενημερώνει την απόσταση d(z) ως εξής: d(z) min{d(z),d(u) + weight(e)} s d(u) = u e 1 d(z) = 6 z

Παράδειγμα εκτέλεσης του αλγορίθμου του ijkstra 7 1 Αρχικά δίνεται το γράφημα και τα βάρη των ακμών δηλ., οι αποστάσεις των κορυφών?? 7 1?? Δίνεται η αρχική κορυφή (Α) και η ετικέτα της (με τιμή ) και υπολογίζουμε τις ετικέτες των άλλων κορυφών του γραφήματος?

Παράδειγμα εκτέλεσης του αλγορίθμου του ijkstra Αρχικά, αναθέτουμε ετικέτες στις κορυφές που δείχνουν την άμεση απόστασή τους από την αρχική κορυφή. Κορυφή v με τιμή ετικέτας : δεν υπάρχει ακμή από την αρχική κορυφή (Α) προς τη v. Μετά, αρχίζουμε να δημιουργούμε το «σύννεφο» ξεκινώντας από την αρχική κορυφή. 7 1 7 1

Παράδειγμα εκτέλεσης του αλγορίθμου του ijkstra 7 1 7 1 11 3 Προσθέτουμε στο «σύννεφο» την κορυφή που μπορούμε να φτάσουμε από την αρχική (Α) με το μικρότερο κόστος Από την Α, μπορούμε να φτάσουμε -- την Β με κόστος -- την με κόστος -- την με κόστος Επιλέγουμε την κορυφή Μετά, ενημερώνουμε τις ετικέτες των κορυφών έξω από το «σύννεφο» ώστε να δείχνουν την ελάχιστη απόστασή τους από αυτό

Παράδειγμα εκτέλεσης του αλγορίθμου του ijkstra 7 1 7 1 11 3 7 1 Από τις κορυφές έξω από το «σύννεφο» -- η Β έχει απόσταση -- η Ε έχει απόσταση -- η έχει απόσταση 11 -- η έχει απόσταση 3 Επιλέγουμε να προσθέσουμε στο «σύννεφο» την κορυφή Μετά, ενημερώνουμε τις ετικέτες των κορυφών έξω από το «σύννεφο» ώστε να δείχνουν την ελάχιστη απόστασή τους από αυτό Συνεχίζουμε όμοια μέχρι να μην υπάρχουν κορυφές έξω από το «σύννεφο» 3

Παράδειγμα εκτέλεσης του αλγορίθμου του ijkstra 7 1 3 3 7 1 9 3 7 1 3 7 7 1

Παράδειγμα εκτέλεσης του αλγορίθμου του ijkstra 7 7 1 3 7 7 1 3

Αλγόριθμος του ijkstra Ο αλγόριθμος του ijkstra είναι παράδειγμα άπληστου (greedy) αλγόριθμου: προσθέτει κορυφές με αυξανόμενη απόσταση (ή διαφορετικά σε κάθε βήμα προσθέτει την κορυφή που αυξάνει όσο το δυνατό λιγότερο τη συνολικό μήκος μονοπατιού) Άπληστοι αλγόριθμοι για ένα πρόβλημα βασίζονται στην ιδέα: σε κάθε βήμα κάνω ό,τι καλύτερο μπορώ με βάση τα ζητούμενα του προβλήματος Αν θέλω να πάω από το Αγρίνιο στη Θεσσαλονίκη όσο πιο γρήγορα γίνεται, θα μεταφερθώ προς τους συντομότερους ενδιάμεσους προορισμούς Αν θέλω να πάω από το Αγρίνιο στη Θεσσαλονίκη όσο πιο φθηνά γίνεται, θα μεταφερθώ προς ενδιάμεσους προορισμούς που διασφαλίζουν κάθε φορά το φθηνότερο εισιτήριο

Αλγόριθμος του ijkstra: ορθότητα Ισχυριζόμαστε ότι ο αλγόριθμος προσθέτει κάθε φορά στο σύννεφο (άπληστα) την κορυφή με τη μικρότερη απόσταση από αυτό Υποθέτουμε ότι ΔΕΝ βρήκε όλες τις μικρότερες αποστάσεις και έστω η πρώτη λάθος κορυφή που επέλεξε ο αλγόριθμος Όταν ο αλγόριθμος ασχολήθηκε με την προηγούμενη κορυφή στο πραγματικά συντομότερο μονοπάτι η απόσταση της ήταν σωστή Αλλά έγινε απλούστευση για την ακμή (,) τότε! Επομένως, αφού ισχύει ότι d() d(), η απόσταση της δεν μπορεί να είναι λάθος

Αλγόριθμος του ijkstra: χρόνος εκτέλεσης Για κάθε κορυφή, διαλέγω τη γειτονική της με τη μικρότερη ετικέτα Αν οι κορυφές είναι αποθηκευμένες σε μη ταξινομημένη λίστα βρίσκω τη γειτονική κορυφή με τη μικρότερη ετικέτα σε Ο( V ) βήματα Αν οι κορυφές είναι αποθηκευμένες σε ταξινομημένη λίστα βρίσκω τη γειτονική κορυφή με τη μικρότερη ετικέτα σε Ο(log V ) βήματα Πόσες φορές μπορεί να χρειαστεί να κάνω το παραπάνω; Το πολύ τόσες φορές όσες είναι οι ακμές στο γράφημα, δηλ., Ο( Ε ) φορές Συνολικά: απαιτείται χρόνος Ο( V * ) ή Ο( *log V ) αν χρησιμοποιηθούν ειδικές δομές αποθήκευσης (που καλούνται σωροί-heaps) ή Ο( + V *log V ) με χρήση ειδικών σωρών (ibonacci heaps) (redman & Tarjan, 19)

Κατηγορίες αλγορίθμων

Online vs offline Φανταστείτε ότι καλείστε σε συνέντευξη και γνωρίζετε εκ των προτέρων τις ερωτήσεις που θα σας τεθούν Έχετε τη δυνατότητα να μελετήσετε από πριν το σύνολο των ερωτήσεων και να δώσετε τις καλύτερες δυνατές απαντήσεις χωρίς να γνωρίζετε εκ των προτέρων τις ερωτήσεις που θα σας τεθούν Πρέπει να απαντάτε αμέσως σε κάθε ερώτηση Χωρίς να γνωρίζετε τις επόμενες ερωτήσεις (Συνήθως) δεν μπορείτε να αναιρέσετε ό,τι ήδη είπατε

Online vs offline Φανταστείτε ότι καλείστε σε συνέντευξη [OLIN] και γνωρίζετε εκ των προτέρων τις ερωτήσεις που θα σας τεθούν Έχετε τη δυνατότητα να μελετήσετε από πριν το σύνολο των ερωτήσεων και να δώσετε τις καλύτερες δυνατές απαντήσεις χωρίς να γνωρίζετε εκ των προτέρων τις ερωτήσεις που θα σας τεθούν [ONLIN] Πρέπει να απαντάτε αμέσως σε κάθε ερώτηση Χωρίς να γνωρίζετε τις επόμενες ερωτήσεις (Συνήθως) δεν μπορείτε να αναιρέσετε ό,τι ήδη είπατε

Online vs offline αλγόριθμοι OLIN: Γνωρίζουν το σύνολο της εισόδου μπορούν να κάνουν βέλτιστες επιλογές ONLIN: Π.χ., δρομολόγηση σε παράλληλο υπολογιστή Η είσοδος τους αποκαλύπτεται σταδιακά πρέπει σε κάθε βήμα να λαμβάνουν απόφαση (συνήθως μη αναστρέψιμη) χωρίς να γνωρίζουν το μέλλον, έχοντας μόνο πλήρη ή μερική γνώση του παρελθόντος Ανάθεση συχνοτήτων σε χρήστες κυψελικού δικτύου

Ντετερμινιστική vs πιθανοτική προσέγγιση Υπάρχουν 7 ντουλαπάκια και ένα ζάρι με 7 όψεις Διαλέγετε πάντα το κόκκινο ντουλαπάκι με ετικέτα 1 Διαθέτετε πολλές επιλογές και εσείς προτιμάτε πάντα (δηλ., με πιθανότητα= 1) μία συγκεκριμένη επιλογή (ΝΤΕΤΕΡΜΙΝΙΣΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ) Ρίχνετε το ζάρι και ανάλογα με το τι θα φέρει διαλέγετε ντουλαπάκι με την αντίστοιχη ετικέτα Διαθέτετε πολλές επιλογές και προτιμάτε όποια σας υποδεικνύει μια πηγή τυχαιότητας, π.χ., ένα ζάρι (ΠΙΘΑΝΟΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ) Αν το ζάρι «φέρνει» υποδεικνύει πάντα την ίδια επιλογή ΝΤΕΤΕΡΜΙΝΙΣΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ 1 3 6 7

Ντετερμινιστικοί vs πιθανοτικοί αλγόριθμοι Ντετερμινιστικοί αλγόριθμοι: όποτε καλούνται να αποφασίσουν μεταξύ διαφορετικών επιλογών, προτιμούν σίγουρα μια συγκεκριμένη επιλογή Επιλέγω πάντα το μικρότερο από τα k στοιχεία ενός συνόλου αριθμών Πιθανοτικοί αλγόριθμοι: όποτε καλούνται να αποφασίσουν μεταξύ διαφορετικών επιλογών, προτιμούν ό,τι τους υποδεικνύει κάποια πηγή τυχαιότητας Επιλέγω ισοπίθανα κάποιο από τα k στοιχεία ενός συνόλου αριθμών 1 3 6 7

Άπληστοι (greedy) αλγόριθμοι Κάνουν τη βέλτιστη επιλογή σε κάθε βήμα ελπίζοντας ότι αυτό θα οδηγήσει σε βέλτιστη λύση στο μέλλον Παράδειγμα: Έχουμε Μ UR για να αγοράσουμε γλυκά Υπάρχουν Ν τεμάχια γλυκών και το καθένα έχει κάποιο κόστος Ταξινομούμε τα γλυκά από το φθηνότερο στο ακριβότερο και αγοράζουμε από την αρχή προς το τέλος της λίστας μέχρι να τελειώσουν χρήματα Αν κάθε φορά αγοράζουμε το φθηνότερο, ελπίζουμε πως συνολικά θα αγοράσουμε τα περισσότερα δυνατά γλυκά με βάση τον προϋπολογισμό μας

Online αλγόριθμοι Αλγόριθμοι που πρέπει να λάβουν αποφάσεις χωρίς πλήρη γνώση της εισόδου Διαθέτουν πλήρη (ή μερική) γνώση του παρελθόντος αλλά καμία (ή μερική) γνώση του μέλλοντος Για τέτοιου είδους προβλήματα σχεδιάζονται αλγόριθμοι που είναι ανταγωνιστικοί σε σχέση με κάποιον βέλτιστο offline αλγόριθμο, δηλ., τον αλγόριθμο που έχει πλήρη γνώση του μέλλοντος

Το πρόβλημα του σακιδίου (the knapsack problem) Ποια κουτιά θα διαλέγατε για να συγκεντρώσετε το μέγιστο χρηματικό ποσό και να μην ξεπεράσετε τη χωρητικότητα της τσάντας σας; Το πρόβλημα αυτό συχνά ανακύπτει σε προβλήματα ανάθεσης (κατανομής) πόρων Είναι ένα δύσκολο πρόβλημα, δηλ., δεν έχει βρεθεί αλγόριθμος καλύτερος από το να ψάξουμε όλες τις πιθανές λύσεις

Το πρόβλημα του σακιδίου (the knapsack problem) Άπληστος (προσεγγιστικός) αλγόριθμος Διάταξε τα αντικείμενα σε φθίνουσα σειρά χρηματικής αξίας: κίτρινο (1), πράσινο (), μπλε/γκρι (), πορτοκαλί (1) Χρηματική αξία ίδια; Διάταξε τα αντικείμενα σε αύξουσα σειρά βάρους: κίτρινο (1), πράσινο (), γκρι (,1), μπλε (,), πορτοκαλί (1) Πάρε όσα περισσότερα αντικείμενα μπορείς με βάση την παραπάνω λίστα ώστε να μην ξεπεράσεις τη χωρητικότητα του σακιδίου: Υπάρχουν πολλά τεμάχια από κάθε αντικείμενο; Υπάρχει ένα τεμάχιο ανά αντικείμενο;

Το πρόβλημα του σακιδίου (the knapsack problem) Υπάρχουν πολλά τεμάχια από κάθε αντικείμενο Κίτρινο (1,), Κίτρινο (1,), Κίτρινο (1,), Γκρι (,1), Γκρι (,1), Γκρι (,1): 36$,1kg Πετυχαίνουμε πάντα τουλάχιστον % από το καλύτερο που θα μπορούσε να γίνει Υπάρχει ένα τεμάχιο από κάθε αντικείμενο Κίτρινο (1,), Γκρι (,1), Μπλε (,), Πορτοκαλί (1,1): 1$,kg 1kg, 36$

Το πρόβλημα του σακιδίου (the knapsack problem) Υπάρχουν πολλά τεμάχια από κάθε αντικείμενο Κίτρινο (1,), Κίτρινο (1,), Κίτρινο (1,), Γκρι (,1), Γκρι (,1), Γκρι (,1): 36$,1kg Πετυχαίνουμε πάντα τουλάχιστον % από το καλύτερο που θα μπορούσε να γίνει Υπάρχει ένα τεμάχιο από κάθε αντικείμενο Κίτρινο (1,), Γκρι (,1), Μπλε (,), Πορτοκαλί (1,1): 1$,kg kg, 36$