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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Γραφήματα & Επίπεδα Γραφήματα
Advertisements

Γραφήματα & Επίπεδα Γραφήματα
Πιθανοκρατικοί Αλγόριθμοι
Καθυστέρηση σε δίκτυα μεταγωγής πακέτων
Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Έχουμε αποθηκεύσει.
Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA.
Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου:
Εισαγωγή στην επιστήμη των υπολογιστών
Μια Μπεϋζιανή Μέθοδος για την Επαγωγή Πιθανοτικών Δικτύων από Δεδομένα ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧ/ΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ B. Μεγαλοοικονόμου, Χ. Μακρής.
Αλγόριθμοι και Πολυπλοκότητα
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Γραφήματα & Επίπεδα Γραφήματα
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Δυναμικός Προγραμματισμός
1 Θεματική Ενότητα Γραφήματα & Επίπεδα Γραφήματα.
Προσεγγιστικοί Αλγόριθμοι
Δυναμική Διατήρηση Γραμμικής Διάταξης Διατηρεί μια γραμμική διάταξη δυναμικά μεταβαλλόμενης συλλογής στοιχείων. Υποστηρίζει τις λειτουργίες: Έλεγχος της.
Τυχαιοκρατικοί Αλγόριθμοι TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση βάρους Κατευθυνόμενο γράφημα.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι12-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος του Prim και ο αλγόριθμος του Kruskal.
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Προσεγγιστικοί Αλγόριθμοι για NP-Δύσκολα Προβλήματα
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Συντομότερες Διαδρομές
Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης
Ο αλγόριθμος Bellman-Ford (επανεξετάζεται)
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
Αναζήτηση – Δέντρα (2 ο Μέρος) Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)
1 Βέλτιστη δρομολόγηση (optimal routing) Αντιμετώπιση της δρομολόγησης σαν «συνολικό» πρόβλημα βελτιστoποίησης. Γιατί: Η αλλαγή της δρομολόγησης μιας συνόδου.
Ελάχιστο Συνδετικό Δέντρο
Μαθηματική Επαγωγή Mathematical induction
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
1 Κατανεμημένοι αλγόριθμοι για την εύρεση γεννητικών δέντρων (spanning trees) 1.Ένας σταθερός κόμβος στέλνει ένα ‘start’ μήνυμα σε κάθε γειτονική του ακμή.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
Χρονική Πολυπλοκότητα και Μοντέλα
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον:  Τεχνικές Διδασκαλίας.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΤΕΙ Αθήνας: Σχολή ΤΕΦ: Τμήμα Ναυπηγικής Εφαρμογές Η/Υ στην Ναυπηγική ΙΙ ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ NA0703C39 Εξάμηνο Ζ’ Διδάσκων Κωνσταντίνος Β. Κώστας Παρουσίαση.
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
1 Διαχείριση Έργων Πληροφορικής Διάλεξη 7 η Διαχείριση Πόρων.
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ Άπληστη Αναζήτηση και Αναζήτηση Α* ΣΠΥΡΟΣ ΛΥΚΟΘΑΝΑΣΗΣ, ΚΑΘΗΓΗΤΗΣ.
1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ. 2 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα –Αναζήτηση κατά βάθος (Depth-first search – DFS) –Αναζήτηση κατά πλάτος (Breadth-first.
Γράφημα είναι μία διμελής σχέση επί ενός συνόλου την οποία παριστάνουμε με γραφικό τρόπο.
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ. Δυαδική αναζήτηση (Binary search) ΔΕΔΟΜΕΝΟ: ένα μεγάλο αρχείο που περιέχει τιμές z [0,1,…,n-1] ταξινομημένες.
Ηλεκτρική Οικονομία Σταμάτης Νικολόπουλος ΑΜ: 868 ΑΣΠΑΙΤΕ, 2015.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
Τι είναι «διάστημα» (1). Διαστήματα Εμπιστοσύνης α) για τη μέση τιμή (ποσοτικά) β) για ένα ποσοστό (ποιοτικά)
Επίλυση Προβλημάτων με Αναζήτηση
Προβλήματα Ικανοποίησης Περιορισμών
Δένδρα Δένδρο είναι ένα συνεκτικό άκυκλο γράφημα. Δένδρο Δένδρο Δένδρο
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Βέλτιστη δρομολόγηση (optimal routing)
Αλγόριθμοι για ανάθεση συχνοτήτων και έλεγχο αποδοχής κλήσεων σε κυψελικά ασύρματα δίκτυα (μέρος ΙIΙ)
Άραγε, γνωρίζουν οι μέλισσες μαθηματικά?
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Στοιχεία Θεωρίας Γραφημάτων
Κεφάλαιο 7: Διαδικτύωση-Internet Μάθημα 7.9: Δρομολόγηση
Συντομότερα Μονοπάτια
Ειδικά θέματα σε κινητά και ασύρματα δίκτυα
Ελαφρύτατες διαδρομές
Τι είναι «διάστημα» (1). Διαστήματα Εμπιστοσύνης α) για τη μέση τιμή (ποσοτικά) β) για ένα ποσοστό (ποιοτικά)
Μεταγράφημα παρουσίασης:

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

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

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

Αλγόριθμος του Dijkstra Απόσταση μιας κορυφής v από μία κορυφή s = μήκος συντομότερου μονοπατιού μεταξύ των s και v Ο αλγόριθμος του Dijkstra υπολογίζει τις ελάχιστες αποστάσεις όλων των κορυφών από δοσμένη αρχική κορυφή s με τις εξής υποθέσεις: Το γράφημα είναι συνεκτικό (μπορώ από οποιαδήποτε κορυφή να φτάσω σε οποιαδήποτε άλλη) Οι ακμές είναι μη κατευθυνόμενες Τα βάρη στις ακμές είναι μη αρνητικά Αν τα βάρη σε όλες τις ακμές είναι ίδια είναι ο αλγόριθμος BFS Edsger Wybe Dijkstra 1930-2002 https://www.youtube.com/watch?v=xT5o1QCeWS8

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

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

Παράδειγμα εκτέλεσης του αλγορίθμου του Dijkstra A 4 A 4 8 8 2 2 ? ? 7 1 7 1 B C D B C D ? 3 9 3 9 5 2 5 2 E F E F ? ? Δίνεται η αρχική κορυφή (Α) και η ετικέτα της (με τιμή 0) και υπολογίζουμε τις ετικέτες των άλλων κορυφών του γραφήματος Αρχικά δίνεται το γράφημα και τα βάρη των ακμών δηλ., οι αποστάσεις των κορυφών

Παράδειγμα εκτέλεσης του αλγορίθμου του Dijkstra C B A E D F 4 2 8  7 1 3 9 5 C B A E D F 4 2 8  7 1 3 9 5 Αρχικά, αναθέτουμε ετικέτες στις κορυφές που δείχνουν την άμεση απόστασή τους από την αρχική κορυφή. Κορυφή v με τιμή ετικέτας : δεν υπάρχει ακμή από την αρχική κορυφή (Α) προς τη v. Μετά, αρχίζουμε να δημιουργούμε το «σύννεφο» ξεκινώντας από την αρχική κορυφή.

Παράδειγμα εκτέλεσης του αλγορίθμου του Dijkstra C B A E D F 4 2 8  7 1 3 9 5 Προσθέτουμε στο «σύννεφο» την κορυφή που μπορούμε να φτάσουμε από την αρχική (Α) με το μικρότερο κόστος Από την Α, μπορούμε να φτάσουμε -- την Β με κόστος 8 -- την C με κόστος 2 -- την D με κόστος 4 Επιλέγουμε την κορυφή C Μετά, ενημερώνουμε τις ετικέτες των κορυφών έξω από το «σύννεφο» ώστε να δείχνουν την ελάχιστη απόστασή τους από αυτό C B A E D F 3 2 8 5 4 7 1 11 9

Παράδειγμα εκτέλεσης του αλγορίθμου του Dijkstra C B A E D F 3 2 8 5 4 7 1 9 C B A E D F 4 2 8  7 1 3 9 5 Από τις κορυφές έξω από το «σύννεφο» -- η Β έχει απόσταση 8 -- η Ε έχει απόσταση 5 -- η F έχει απόσταση 11 -- η D έχει απόσταση 3 Επιλέγουμε να προσθέσουμε στο «σύννεφο» την κορυφή D Μετά, ενημερώνουμε τις ετικέτες των κορυφών έξω από το «σύννεφο» ώστε να δείχνουν την ελάχιστη απόστασή τους από αυτό Συνεχίζουμε όμοια μέχρι να μην υπάρχουν κορυφές έξω από το «σύννεφο» C B A E D F 3 2 8 5 4 7 1 11 9

Παράδειγμα εκτέλεσης του αλγορίθμου του Dijkstra C B A E D F 4 2 8  7 1 3 9 5 C B A E D F 3 2 7 5 4 8 1 9

Παράδειγμα εκτέλεσης του αλγορίθμου του Dijkstra C B A E D F 3 2 7 5 4 8 1 9 C B A E D F 3 2 7 5 4 8 1 9

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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