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

Σχετικά έγγραφα
Παραμετρικοί Αλγόριθμοι

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιµότητα. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ

Μη Ντετερμινισμός και NP-Πληρότητα

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

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

Κλάση NP, NP-Complete Προβλήματα

Μη Ντετερμινισμός και NP-Πληρότητα

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

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

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

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

Μη Ντετερμινισμός και NP-Πληρότητα

Υπολογιστική Πολυπλοκότητα Εξέταση Ιουνίου 2017 Σελ. 1 από 5

Διωνυµικοί Συντελεστές. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Δυναµικός Προγραµµατισµός 1

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

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

Γράφοι: κατευθυνόμενοι και μη

Ασκήσεις Επανάληψης. Επανάληψη Εαρινό Εξάμηνο 2019 Σελίδα 1

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

Γράφοι. Ένας γράφος ή αλλιώς γράφηµα αποτελείται απο. Εφαρµογές: Τηλεπικοινωνιακά και Οδικά ίκτυα, Ηλεκτρονικά Κυκλώµατα, Β.. κ.ά.

Προσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

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

Προσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό

NP-πληρότητα. Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων

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

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

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

Ενότητα 5: Αλγόριθμοι γράφων και δικτύων

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος

Γράφοι. Αλγόριθμοι και πολυπλοκότητα. Στάθης Ζάχος, Δημήτρης Φωτάκης

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων

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

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

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

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

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

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

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

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

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

Ασυμπτωτικός Συμβολισμός

Ουρά Προτεραιότητας: Heap

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

H Teqnikh thc Qrwmatikhc Kwdikopoihshc sto Sqediasmo Parametrikwn Algorijmwn

Πολυπλοκότητα. Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης. Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης. Προσπάθεια υλοποίησης

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

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

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

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

Μέγιστη Ροή Ελάχιστη Τομή

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

ΘΕΩΡΙΑ ΓΡΑΦΩΝ. 7 η Διάλεξη Συνεκτικότητα (Συνδεσμικότητα) Βασικές έννοιες και ιδιότητες Το θεώρημα του Merger Ισομορφισμός

Θεωρία Υπολογισμού και Πολυπλοκότητα

Ασυμπτωτικός Συμβολισμός

Σειρά Προβλημάτων 5 Λύσεις

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

Τεχνικές Αποδείξεις Κάτω Φραγμάτων

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Μέγιστη Ροή Ελάχιστη Τομή

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

Αναζήτηση Κατά Βάθος. Επιµέλεια διαφανειών:. Φωτάκης διαφάνειες για SCC: A. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

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

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

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

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

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι είναι οι γράφοι; Εφαρµογές των γράφων Γράφοι

Πρόλογος. Πρόλογος 13. Πώς χρησιμοποείται αυτό το βιβλίο 17

Πιθανοτικοί Αλγόριθμοι

Chapter 7, 8 : Completeness

Αξιολόγηση Ευριστικών Αλγορίθµων

Διάλεξη 6: Εκλογή Προέδρου σε Σύγχρονους Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

Σειρά Προβλημάτων 5 Λύσεις

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

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι είναι οι γράφοι; Εφαρµογές των γράφων Γράφοι

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

Αποθήκες εδομένων και Εξόρυξη εδομένων:

ΒΙΒΛΙΑ ΒΙΒΛΙΑ

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 8: Παίγνια πλήρους και ελλιπούς πληροφόρησης

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

Transcript:

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

Πληροφορίες Βιβλίο: e-class: MATH278

Βαθμολογία 2 Πακέτα ασκήσεων Παρουσίαση

Βαθμολογία 2 Πακέτα ασκήσεων 2 μονάδες Παρουσίαση

Βαθμολογία 2 Πακέτα ασκήσεων 2 μονάδες Ομάδες 2 ατόμων 50% σωστές στο πακέτο = 1 μονάδα Παρουσίαση

Βαθμολογία 2 Πακέτα ασκήσεων 2 μονάδες Ομάδες 2 ατόμων 50% σωστές στο πακέτο = 1 μονάδα Παρουσίαση 8 μονάδες

Βαθμολογία 2 Πακέτα ασκήσεων 2 μονάδες Ομάδες 2 ατόμων 50% σωστές στο πακέτο = 1 μονάδα Παρουσίαση 8 μονάδες Βαθμός κατανόησης / ποιότητα παρουσίασης

Μέρες και ώρες διαλέξεων?!

Μέρες και ώρες διαλέξεων?! Α. Δευτέρα 11:00-13:00 Τετάρτη 13:00-15:00 Β. Δευτέρα 11:00-14:00 * Γ. Άλλο ** * Ίσως κάποια επιπλέον μαθήματα ** Μόνο σοβαρές προτάσεις

Εισαγωγή

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

Εισαγωγή

Εισαγωγή

n-πελάτες

n-πελάτες Λίστα με τις πιθανές διενέξεις

n-πελάτες Λίστα με τις πιθανές διενέξεις Μπορούμε να διώξουμε k πελάτες

Π.χ.: n=6 k=3

Π.χ.: Α Ε Ζ Δ Β Γ n=6 k=3

Π.χ.: Α Ε Ζ Δ Β Γ n=6 k=3

Π.χ.: Α Ε Ζ Δ Β Γ n=6 k=3

Π.χ.: Α Ε Ζ Δ Β Γ n=6 k=3

Π.χ.: Α Ε Δ n=6 k=3

Π.χ.: Α Ε Ζ Δ Β Γ n=6 k=2

Π.χ.: Α Ε Ζ Δ Β Γ n=6 k=2

ΚΑΛΥΜΜΑ ΚΟΡΥΦΩΝ (VERTEX COVER)

ΚΑΛΥΜΜΑ ΚΟΡΥΦΩΝ (VERTEX COVER) Γράφημα G=(V,E) * (n-κορυφές) * Aπλό, μη-διατεταγμένο

ΚΑΛΥΜΜΑ ΚΟΡΥΦΩΝ (VERTEX COVER) Γράφημα G=(V,E) * (n-κορυφές) S V (κάλυμμα κορυφών) * Aπλό, μη-διατεταγμένο

ΚΑΛΥΜΜΑ ΚΟΡΥΦΩΝ (VERTEX COVER) Γράφημα G=(V,E) * (n-κορυφές) S V (κάλυμμα κορυφών) S k * Aπλό, μη-διατεταγμένο

KK NP-πλήρες

KK NP-πλήρες Πολυωνυμικός αλγόριθμος

KK NP-πλήρες Πολυωνυμικός αλγόριθμος Εκθετικός αλγόριθμος

Brute force: Ελέγχουμε όλα τα υποσύνολα του V

Brute force: Ελέγχουμε όλα τα υποσύνολα του V 2 n

Brute force: Ελέγχουμε όλα τα υποσύνολα του V 2 n Για n=1000: 2 1000 1,07 10 301

Brute force: Ελέγχουμε όλα τα υποσύνολα του V 2 n Για n=1000: 2 1000 1,07 10 301

Brute force: Ελέγχουμε όλα τα υποσύνολα του V 2 n Για n=1000: 2 1000 1,07 10 301 k < n

1 η απόπειρα: (Brute force) Ελέγχουμε όλα τα υποσύνολα του V με k κορυφές

<latexit sha1_base64="ohftvndmwh+0ilrtfjztltpiewg=">aaab8nicdzbns8mwhmztx+d8m3r0ehycp9lo6drbqbcpe5wbrgwkwbqfpuljumgugz/ciwcvr34ab34b022cij4qehief8g/vyhlvgnh+bcwlldw19zlg+xnre2d3cre/q0smcskjqutshshrrjlpk2pzqsbsoksijfonl4o+s4dkyokfqmnkqktnoq0phhpewu5d/bicexgenqvvb3b9xon/ww6ds2vn557ham7dc+fru3mvaultfqv92agcjyqrjfdsvvcj9vhjqsmmjfpocgusreeoyhpgctrqlsyz3aewmotdgaspdlcw1n6/uaoequmswqme6rh6ndxhh91vuzhxphtnmaacdx/km4y1aiwaocasoi1mxidskrmv4hhscksdaaygfd1u/i/adds33au69xm5f2crgkcginwalzqae1wbvqgdtbiwqn4as9wzj1al9brfhtjwha8ad9kvx0cthmsew==</latexit> 1 η απόπειρα: (Brute force) Ελέγχουμε όλα τα υποσύνολα του V με k κορυφές n k

<latexit sha1_base64="ohftvndmwh+0ilrtfjztltpiewg=">aaab8nicdzbns8mwhmztx+d8m3r0ehycp9lo6drbqbcpe5wbrgwkwbqfpuljumgugz/ciwcvr34ab34b022cij4qehief8g/vyhlvgnh+bcwlldw19zlg+xnre2d3cre/q0smcskjqutshshrrjlpk2pzqsbsoksijfonl4o+s4dkyokfqmnkqktnoq0phhpewu5d/bicexgenqvvb3b9xon/ww6ds2vn557ham7dc+fru3mvaultfqv92agcjyqrjfdsvvcj9vhjqsmmjfpocgusreeoyhpgctrqlsyz3aewmotdgaspdlcw1n6/uaoequmswqme6rh6ndxhh91vuzhxphtnmaacdx/km4y1aiwaocasoi1mxidskrmv4hhscksdaaygfd1u/i/adds33au69xm5f2crgkcginwalzqae1wbvqgdtbiwqn4as9wzj1al9brfhtjwha8ad9kvx0cthmsew==</latexit> 1 η απόπειρα: (Brute force) Ελέγχουμε όλα τα υποσύνολα του V με k κορυφές n k 1000 Για n=1000 και k=10: 10 ' 2.63 10 23

<latexit sha1_base64="ohftvndmwh+0ilrtfjztltpiewg=">aaab8nicdzbns8mwhmztx+d8m3r0ehycp9lo6drbqbcpe5wbrgwkwbqfpuljumgugz/ciwcvr34ab34b022cij4qehief8g/vyhlvgnh+bcwlldw19zlg+xnre2d3cre/q0smcskjqutshshrrjlpk2pzqsbsoksijfonl4o+s4dkyokfqmnkqktnoq0phhpewu5d/bicexgenqvvb3b9xon/ww6ds2vn557ham7dc+fru3mvaultfqv92agcjyqrjfdsvvcj9vhjqsmmjfpocgusreeoyhpgctrqlsyz3aewmotdgaspdlcw1n6/uaoequmswqme6rh6ndxhh91vuzhxphtnmaacdx/km4y1aiwaocasoi1mxidskrmv4hhscksdaaygfd1u/i/adds33au69xm5f2crgkcginwalzqae1wbvqgdtbiwqn4as9wzj1al9brfhtjwha8ad9kvx0cthmsew==</latexit> 1 η απόπειρα: (Brute force) Ελέγχουμε όλα τα υποσύνολα του V με k κορυφές n k 1000 Για n=1000 και k=10: 10 ' 2.63 10 23

2 η απόπειρα: (Πυρηνοποίηση) Καλοί πελάτες Κακοί πελάτες 0 αντίπαλους k+1 αντίπαλους

2 η απόπειρα: (Πυρηνοποίηση) Καλοί πελάτες Κακοί πελάτες k k-1 0 αντίπαλους k+1 αντίπαλους

2 η απόπειρα: (Πυρηνοποίηση) - Αν σταματήσουμε όλες τις διενέξεις πριν το k γίνει 0 έχουμε λύση.

Π.χ.: Α Ε Ζ Δ Β Γ n=6 k=3

Π.χ.: Α Ε Ζ Δ Β Γ n=6 k=3

Π.χ.: Α Ε Ζ Δ Β Γ n=6 k=3

Π.χ.: Α Ε Ζ Δ Β n=6 k=2

2 η απόπειρα: (Πυρηνοποίηση) - Αν σταματήσουμε όλες τις διενέξεις πριν το k γίνει 0 έχουμε λύση. - Αν δεν υπάρχουν πλέον κακοί πελάτες :

2 η απόπειρα: (Πυρηνοποίηση) - Αν σταματήσουμε όλες τις διενέξεις πριν το k γίνει 0 έχουμε λύση. - Αν δεν υπάρχουν πλέον κακοί πελάτες : Διώχνοντας έναν πελάτη σταματάμε k διενέξεις

2 η απόπειρα: (Πυρηνοποίηση) - Αν σταματήσουμε όλες τις διενέξεις πριν το k γίνει 0 έχουμε λύση. - Αν δεν υπάρχουν πλέον κακοί πελάτες : Διώχνοντας έναν πελάτη σταματάμε k διενέξεις Αν υπάρχουν >k 2 διενέξεις δεν υπάρχει λύση

2 η απόπειρα: (Πυρηνοποίηση) Θεωρούμε ότι έχουμε k 2 διενέξεις και κάθε πελάτης έχει k αντιπάλους

2 η απόπειρα: (Πυρηνοποίηση) Θεωρούμε ότι έχουμε k 2 διενέξεις και κάθε πελάτης έχει k αντιπάλους Οι πελάτες είναι 2k 2

<latexit sha1_base64="+gfxpi7vamecadu75e9vuoen8ny=">aaaclhicbvdlsgmxfm34rpvvdekmwarxzwyopnyvxbisyg2h05zmetugzizjkhhkmod3upfxrhbrxa3fyfpqtpxahcm555lc40eckw3bq2thcwl5ztwzll3f2nzazu3s3iorswovkriqnz8o4cyeimaaqy2sqakfq9xvx4z86j1ixur4owcrnalsdvmhuakn1mpdjm6/6xq0j4qc3e89dnc4mujbaozytrd/e46deoofxnylbvenkdjhasuxtwv2ghieofosr1ouw7kxry1ohecoksdk1r070o2esm0ohztrxqoiqvukc3vdqxkaaitja1n8ajq27ghpjtr4rp7eseig1cdwttiguqdmvzh4n1epdee0kbawijwedpjqj+zyczyqdrezbkr5wbbcjtn/xbrhjkhafjw1jtizj8+tils4k9jxxxzp/ghsrgbtown0hbx0gkrocpvrbvh0ij7rel1zt9ar9w59tkil1rtbpfqh1ucxwuomva==</latexit> 2 η απόπειρα: (Πυρηνοποίηση) Θεωρούμε ότι έχουμε k 2 διενέξεις και κάθε πελάτης έχει k αντιπάλους Οι πελάτες είναι 2k 2 Brute force: 2k 2 k apple 2 10 2 10 ' 2.24 10 16

<latexit sha1_base64="+gfxpi7vamecadu75e9vuoen8ny=">aaaclhicbvdlsgmxfm34rpvvdekmwarxzwyopnyvxbisyg2h05zmetugzizjkhhkmod3upfxrhbrxa3fyfpqtpxahcm555lc40eckw3bq2thcwl5ztwzll3f2nzazu3s3iorswovkriqnz8o4cyeimaaqy2sqakfq9xvx4z86j1ixur4owcrnalsdvmhuakn1mpdjm6/6xq0j4qc3e89dnc4mujbaozytrd/e46deoofxnylbvenkdjhasuxtwv2ghieofosr1ouw7kxry1ohecoksdk1r070o2esm0ohztrxqoiqvukc3vdqxkaaitja1n8ajq27ghpjtr4rp7eseig1cdwttiguqdmvzh4n1epdee0kbawijwedpjqj+zyczyqdrezbkr5wbbcjtn/xbrhjkhafjw1jtizj8+tils4k9jxxxzp/ghsrgbtown0hbx0gkrocpvrbvh0ij7rel1zt9ar9w59tkil1rtbpfqh1ucxwuomva==</latexit> 2 η απόπειρα: (Πυρηνοποίηση) Θεωρούμε ότι έχουμε k 2 διενέξεις και κάθε πελάτης έχει k αντιπάλους Οι πελάτες είναι 2k 2 Brute force: 2k 2 k apple 2 10 2 10 ' 2.24 10 16

3 η απόπειρα: (Πυρηνοποίηση) Καλοί πελάτες Κακοί πελάτες Καλούτσικοι πελάτες 0 αντίπαλους k+1 αντίπαλους 1 αντίπαλο

3 η απόπειρα: (Πυρηνοποίηση) Καλοί πελάτες Κακοί πελάτες Καλούτσικοι πελάτες k k-1 0 αντίπαλους k+1 αντίπαλους 1 αντίπαλο (Εφόσον δεν υπάρχουν πια κακοί πελάτες)

3 η απόπειρα: (Πυρηνοποίηση)

3 η απόπειρα: (Πυρηνοποίηση) Θεωρούμε ότι έχουμε k 2 διενέξεις και κάθε πελάτης έχει k αντιπάλους

3 η απόπειρα: (Πυρηνοποίηση) Θεωρούμε ότι έχουμε k 2 διενέξεις και κάθε πελάτης έχει k αντιπάλους Οι πελάτες είναι k 2

3 η απόπειρα: (Πυρηνοποίηση) Θεωρούμε ότι έχουμε k 2 διενέξεις και κάθε πελάτης έχει k αντιπάλους Οι πελάτες είναι k 2 Brute force: k 2 k apple 100 10 ' 1.73 10 13

3 η απόπειρα: (Πυρηνοποίηση) Θεωρούμε ότι έχουμε k 2 διενέξεις και κάθε πελάτης έχει k αντιπάλους Οι πελάτες είναι k 2 Brute force: k 2 k apple 100 10 ' 1.73 10 13

<latexit sha1_base64="2akt/bthu0tyh8wcwlo2nqocarc=">aaacexicdzblswmxfiuzvq2vqks3wslozsiuap2d4salgtvcp5zmetugzibtjcouoea/confcencxa07d/4b04egogcch+/cknwtjojrq8ihmzu9mzs3v7cyw1pewv3lr29capkqbhumhvtvkgoqpiak4uzanvfao1davdg9gezxn6a0l/gf6sdqj2g75i3oqlgokd/lutdfhlcolbpwdxai6ohmi+qlewqqab5br5evehefwbuxcuu+7x+wj8y/wj5lriqgic4a+fegkvkaqwyyofrxpjkyekav4uzaibekghlkurqnnwtjgoguz6ovbnjhkizuswvpbpcifr+r0ujrfhtayyiajv6ddeffws01rcn6xumknrcz8uotvgaj8baf3oqkmbf9ayht3p4vsw5vlbnbys6w8lup/t9uiq7vkvns4ej4dtzgatpc22gxeaimjtapokmvxnadekbp6nm5dx6df+d1pdrltbrcrd/kvh0czrmdlq==</latexit> 3 η απόπειρα: (Πυρηνοποίηση) Θεωρούμε ότι έχουμε k 2 διενέξεις και κάθε πελάτης έχει k αντιπάλους Οι πελάτες είναι k 2 Brute force: k 2 k apple 100 10 '

<latexit sha1_base64="2akt/bthu0tyh8wcwlo2nqocarc=">aaacexicdzblswmxfiuzvq2vqks3wslozsiuap2d4salgtvcp5zmetugzibtjcouoea/confcencxa07d/4b04egogcch+/cknwtjojrq8ihmzu9mzs3v7cyw1pewv3lr29capkqbhumhvtvkgoqpiak4uzanvfao1davdg9gezxn6a0l/gf6sdqj2g75i3oqlgokd/lutdfhlcolbpwdxai6ohmi+qlewqqab5br5evehefwbuxcuu+7x+wj8y/wj5lriqgic4a+fegkvkaqwyyofrxpjkyekav4uzaibekghlkurqnnwtjgoguz6ovbnjhkizuswvpbpcifr+r0ujrfhtayyiajv6ddeffws01rcn6xumknrcz8uotvgaj8baf3oqkmbf9ayht3p4vsw5vlbnbys6w8lup/t9uiq7vkvns4ej4dtzgatpc22gxeaimjtapokmvxnadekbp6nm5dx6df+d1pdrltbrcrd/kvh0czrmdlq==</latexit> 3 η απόπειρα: (Πυρηνοποίηση) Προεπεξεργασία Θεωρούμε ότι έχουμε k 2 διενέξεις και κάθε πελάτης έχει k αντιπάλους Οι πελάτες είναι k 2 Brute force: k 2 k apple 100 10 '

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Β

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Β k k-1

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Β k k-1 Υπάρχει λύση (για k-1) αν διώξουμε τον Α;

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Β k k-1 Υπάρχει λύση (για k-1) αν διώξουμε τον Α; ΝΑΙ

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Β k k-1 Υπάρχει λύση (για k-1) αν διώξουμε τον Α; ΝΑΙ ΟΧΙ

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Β k k-1 Υπάρχει λύση (για k-1) αν διώξουμε τον Β;

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Β k k-1 Υπάρχει λύση (για k-1) αν διώξουμε τον Β; ΝΑΙ

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Β k k-1 Υπάρχει λύση (για k-1) αν διώξουμε τον Β; ΝΑΙ ΟΧΙ

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Ε Ζ Δ Β Γ k=3

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Ε Α vs Β Ζ Δ Β Γ k=3

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Ε Α Α vs Β Β Ζ Β vs Γ Γ vs Δ Δ Β Γ k=3

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Ε Α Α vs Β Β Ζ Β vs Γ Γ vs Δ Δ Β Γ k=3

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Ε Α Α vs Β Β Ζ Β vs Γ Γ vs Δ Δ Β Γ Β Γ Γ vs Δ Β vs Δ k=3

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Ε Α Α vs Β Β Ζ Β vs Γ Γ vs Δ Δ Β Γ Γ Γ vs Δ Β vs Δ k=3

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Ε Α Α vs Β Β Ζ Β vs Γ Γ vs Δ Δ Β Γ Γ Δ Γ Γ vs Δ Β vs Δ Ζ vs Ε Γ vs Ζ k=3

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Ε Α Α vs Β Β Ζ Β vs Γ Γ vs Δ Δ Β Γ Γ Δ Γ vs Δ Β vs Δ Ζ vs Ε Γ vs Ζ k=3 Γ Δ Β Δ Ζ Ε Γ Ζ

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Ε Α Α vs Β Β Ζ Β vs Γ Γ vs Δ Δ Β Γ Γ Δ Γ vs Δ Β vs Δ Ζ vs Ε Γ vs Ζ k=3 Γ Δ Β Δ Ζ Ε Γ Ζ Χρόνος:

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Ε Α Α vs Β Β Ζ Β vs Γ Γ vs Δ Δ Β Γ Γ Δ Γ vs Δ Β vs Δ Ζ vs Ε Γ vs Ζ k=3 Γ Δ Β Δ Ζ Ε Γ Ζ Χρόνος: 2 k ανδρομικές κλήσεις

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Ε Α Α vs Β Β Ζ Β vs Γ Γ vs Δ Δ Β Γ Γ Δ Γ vs Δ Β vs Δ Ζ vs Ε Γ vs Ζ k=3 Γ Δ Β Δ Ζ Ε Γ Ζ Χρόνος: 2 k ανδρομικές κλήσεις O(n+m)

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Ε Α Α vs Β Β Ζ Β vs Γ Γ vs Δ Δ Β Γ Γ Δ Γ vs Δ Β vs Δ Ζ vs Ε Γ vs Ζ k=3 Γ Δ Β Δ Ζ Ε Γ Ζ Χρόνος: 2 k ανδρομικές κλήσεις O(n+nk/2) 2 η απόπειρα

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Ε Α Α vs Β Β Ζ Β vs Γ Γ vs Δ Δ Β Γ Γ Δ Γ vs Δ Β vs Δ Ζ vs Ε Γ vs Ζ k=3 Γ Δ Β Δ Ζ Ε Γ Ζ Χρόνος: 2 k n k < 2 10 1000 10 = 10240000

4 η απόπειρα: (Φραγμένο δέντρο αναζήτησης) Α Ε Α Α vs Β Β Ζ Β vs Γ Γ vs Δ Δ Β Γ Γ Δ Γ vs Δ Β vs Δ Ζ vs Ε Γ vs Ζ k=3 Γ Δ Β Δ Ζ Ε Γ Ζ Χρόνος: 2 k n k < 2 10 1000 10 = 10240000

4 η απόπειρα 1 η απόπειρα O(2 k n k ) O(n k )

4 η απόπειρα 1 η απόπειρα O(2 10 n 10 ) O(n 10 )

4 η απόπειρα 1 η απόπειρα O(2 10 1000 10 ) O(1000 10 )

4 η απόπειρα 1 η απόπειρα O(2 10 1000 10 ) O(1000 10 )

4 η απόπειρα 1 η απόπειρα O(2 10 1000 10 ) O(1000 10 )

4 η απόπειρα 1 η απόπειρα O(2 k n k ) O(n k )

4 η απόπειρα 1 η απόπειρα O(f(k) n c ) O(f(k) n g(k) )

4 η απόπειρα 1 η απόπειρα O(f(k) n c ) O(f(k) n g(k) ) FPT

4 η απόπειρα 1 η απόπειρα O(f(k) n c ) O(f(k) n g(k) ) FPT XP

4 η απόπειρα 1 η απόπειρα O(f(k) n c ) O(f(k) n g(k) ) FPT XP Παράμετρος k : ένα δευτερεύων μέτρο που αντιπροσωπεύει κάποια πτυχή της εισόδου

Σχεδίαση Παραμετρικών Αλγορίθμων

Σχεδίαση Παραμετρικών Αλγορίθμων Πυρηνοποίηση

Σχεδίαση Παραμετρικών Αλγορίθμων Πυρηνοποίηση Φραγμένα δέντρα αναζήτησης

Σχεδίαση Παραμετρικών Αλγορίθμων Πυρηνοποίηση Φραγμένα δέντρα αναζήτησης Επαναλαμβανόμενη συμπίεση

Σχεδίαση Παραμετρικών Αλγορίθμων Πυρηνοποίηση Φραγμένα δέντρα αναζήτησης Επαναλαμβανόμενη συμπίεση Μέθοδοι τυχαιοποίησης

Σχεδίαση Παραμετρικών Αλγορίθμων Πυρηνοποίηση Φραγμένα δέντρα αναζήτησης Επαναλαμβανόμενη συμπίεση Μέθοδοι τυχαιοποίησης Φραγμένο δεντροπλάτος και Δυναμικός Προγραμματισμός

Σχεδίαση Παραμετρικών Αλγορίθμων Πυρηνοποίηση Φραγμένα δέντρα αναζήτησης Επαναλαμβανόμενη συμπίεση Μέθοδοι τυχαιοποίησης Φραγμένο δεντροπλάτος και Δυναμικός Προγραμματισμός Σημαντικοί διαχωριστές

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

n-πελάτες Λίστα με τις πιθανές διενέξεις

n-πελάτες Λίστα με τις πιθανές διενέξεις k-μπαρ Δεν διώχνουμε κανέναν

n-πελάτες Λίστα με τις πιθανές διενέξεις k-μπαρ Δεν διώχνουμε κανέναν (Χωρίζουμε τους πελάτες στα μπαρ ώστε σε κάθε μπαρ να μην υπάρχουν διενέξεις)

ΧΡΩΜΑΤΙΣΜΟΣ ΚΟΡΥΦΩΝ (VERTEX COLORING) Γράφημα G=(V,E) * (n-κορυφές) * Aπλό, μη-διατεταγμένο

ΧΡΩΜΑΤΙΣΜΟΣ ΚΟΡΥΦΩΝ (VERTEX COLORING) Γράφημα G=(V,E) * (n-κορυφές) f:v {1,,k} * Aπλό, μη-διατεταγμένο

ΧΡΩΜΑΤΙΣΜΟΣ ΚΟΡΥΦΩΝ (VERTEX COLORING) Γράφημα G=(V,E) * (n-κορυφές) f:v {1,,k} {u,v} E (f(u) f(v)) * Aπλό, μη-διατεταγμένο

Π.χ.: Α Ε Ζ Δ Β Γ n=6 k=3

Π.χ.: Α Ε Ζ Δ Β Γ n=6 k=3

Π.χ.: Α Ε Ζ Δ Β Γ n=6 k=3

XK NP-πλήρες Πολυωνυμικός αλγόριθμος

3-XK NP-πλήρες Πολυωνυμικός αλγόριθμος

3-XK NP-πλήρες Πολυωνυμικός αλγόριθμος Όχι αλγόριθμος με χρόνο O(f(k) n c ), για k 3

3-XK NP-πλήρες Πολυωνυμικός αλγόριθμος Όχι αλγόριθμος με χρόνο O(f(k) n c ), για k 3 Ούτε με χρόνο O(f(k) n g(k) ), για k 3

Όχι FPT αλγόριθμοι για κάθε πρόβλημα

Γιατί; Όχι FPT αλγόριθμοι για κάθε πρόβλημα

Όχι FPT αλγόριθμοι για κάθε πρόβλημα NP-C Γιατί;. P P P P 4 3 2 1 k ΚΑΛΥΜΜΑ ΚΟΡΥΦΩΝ

Όχι FPT αλγόριθμοι για κάθε πρόβλημα NP-C NP-C Γιατί;. P P P P 4 3 2 1 k. NP-C NP-C P P 4 3 2 1 k ΚΑΛΥΜΜΑ ΚΟΡΥΦΩΝ ΧΡΩΜΑΤΙΣΜΟΣ ΚΟΡΥΦΩΝ

NP-Πληρότητα?!

Αν διώξουμε ένα πελάτη μας επιτίθενται όλοι οι φίλοι του

Αν διώξουμε ένα πελάτη μας επιτίθενται όλοι οι φίλοι του

Αν διώξουμε ένα πελάτη μας επιτίθενται όλοι οι φίλοι του Μπορούμε να διαχειριστούμε μέχρι (k-1)-πελάτες

Αν διώξουμε ένα πελάτη μας επιτίθενται όλοι οι φίλοι του Μπορούμε να διαχειριστούμε μέχρι (k-1)-πελάτες Υπάρχει ομάδα k-πελατών όπου όλοι είναι φίλοι με όλους;

k-κλικα (k-clique) (Φιλίες) Γράφημα G=(V, E ) * (n-κορυφές) * Aπλό, μη-διατεταγμένο

k-κλικα (k-clique) (Φιλίες) Γράφημα G=(V, E ) * (n-κορυφές) S V, {u,v} S ({u,v} E) * Aπλό, μη-διατεταγμένο

k-κλικα (k-clique) (Φιλίες) Γράφημα G=(V, E ) * (n-κορυφές) S V, {u,v} S ({u,v} E) S k * Aπλό, μη-διατεταγμένο

Π.χ.: Α Ε Ζ Δ Β Γ n=6 k=3

Π.χ.: Α Ε Ζ Δ Β Γ n=6 k=3

Brute force: Ελέγχουμε όλα τα υποσύνολα του V με k κορυφές

<latexit sha1_base64="ohftvndmwh+0ilrtfjztltpiewg=">aaab8nicdzbns8mwhmztx+d8m3r0ehycp9lo6drbqbcpe5wbrgwkwbqfpuljumgugz/ciwcvr34ab34b022cij4qehief8g/vyhlvgnh+bcwlldw19zlg+xnre2d3cre/q0smcskjqutshshrrjlpk2pzqsbsoksijfonl4o+s4dkyokfqmnkqktnoq0phhpewu5d/bicexgenqvvb3b9xon/ww6ds2vn557ham7dc+fru3mvaultfqv92agcjyqrjfdsvvcj9vhjqsmmjfpocgusreeoyhpgctrqlsyz3aewmotdgaspdlcw1n6/uaoequmswqme6rh6ndxhh91vuzhxphtnmaacdx/km4y1aiwaocasoi1mxidskrmv4hhscksdaaygfd1u/i/adds33au69xm5f2crgkcginwalzqae1wbvqgdtbiwqn4as9wzj1al9brfhtjwha8ad9kvx0cthmsew==</latexit> Brute force: Ελέγχουμε όλα τα υποσύνολα του V με k κορυφές n k

<latexit sha1_base64="ypmt0cc4dr+/cu942ld2tq5rdv4=">aaacehicdzbns8mwhmzt351vu49egkoyl9lo6badiaritqwnwjphmqvbajqujbvgkfgjvphvvhhq8errm9/gdfnq0qccd8/zd8n/58emku0479by+mtk1ptmbgfufmfxqbi8cq5eijfpysgevpsrioxy0trum3izs4iin5elpzzi+4trihuv/ewpytkoui/tggkktdqpllmopdwxqheyzrvh3j7tlb1aipzyqzblw6tklmebnwljsrv1wq2xdr270qhu7drzu3vrdre6tjnucxzqpfn887ocjxhhgjokvmt1yt1okdqum5ivvesrgoeq9ujlwi4iotrpckmmbpikcwmhzeeadtpvn1iuktwifdmzid1xv7s8/ktrjtqot1pk40qtjkcpbqmdwsacd+xssbbma2mqltt8fei+mji0gvgwel42hf+bzsvu2m5ptbr3edoimqpwwdooaxfuwb44aiegctc4bffgetxzd9ad9wy9jebhre+cq+chrncp5gmdtw==</latexit> Brute force: Ελέγχουμε όλα τα υποσύνολα του V με k κορυφές n k n k = O k 2

<latexit sha1_base64="ypmt0cc4dr+/cu942ld2tq5rdv4=">aaacehicdzbns8mwhmzt351vu49egkoyl9lo6badiaritqwnwjphmqvbajqujbvgkfgjvphvvhhq8errm9/gdfnq0qccd8/zd8n/58emku0479by+mtk1ptmbgfufmfxqbi8cq5eijfpysgevpsrioxy0trum3izs4iin5elpzzi+4trihuv/ewpytkoui/tggkktdqpllmopdwxqheyzrvh3j7tlb1aipzyqzblw6tklmebnwljsrv1wq2xdr270qhu7drzu3vrdre6tjnucxzqpfn887ocjxhhgjokvmt1yt1okdqum5ivvesrgoeq9ujlwi4iotrpckmmbpikcwmhzeeadtpvn1iuktwifdmzid1xv7s8/ktrjtqot1pk40qtjkcpbqmdwsacd+xssbbma2mqltt8fei+mji0gvgwel42hf+bzsvu2m5ptbr3edoimqpwwdooaxfuwb44aiegctc4bffgetxzd9ad9wy9jebhre+cq+chrncp5gmdtw==</latexit> <latexit sha1_base64="bzccnnqursqylsywbytlb0gmc5k=">aaab8nicbzblswmxfiuzpmt9vv26crahbspmedrdqrb3vnbsotowtcbthmasibkjlflwv7hxoelwx+pof2p6wgjrgcdhotfk5ksz4azc99tzwl5zxvsvbbq3t7z3dkt7+/dg5zoynyqhdcsihgkumq8cbgtlmpe0eqwz9s/heforacovvinbxskudcvpocvgrscgsqj8u+k/1e46pbjbdsfci+dnoixmanrkx0gsaj4ycvqqy9qem0e4jbo4fwxudhldmkl7pmvafivjmqmhk51h+ng6mu6utkccnri/bwxjaswgjexksqbn5rox+v/wzie5d4dczjkwsacpjbnaopc4abxzzsiigqvcnbe7ytojmlcwnrvtcd78lxfbr1uvqu7tabl+9trto4ao0rgqia+dotq6rg3ki4oy9ixe0zutoy/ou/mxhv1yzg0eod9ypn8aiiircg==</latexit> Brute force: Ελέγχουμε όλα τα υποσύνολα του V με k κορυφές n k n k = O k 2 O(k 2 )

<latexit sha1_base64="ypmt0cc4dr+/cu942ld2tq5rdv4=">aaacehicdzbns8mwhmzt351vu49egkoyl9lo6badiaritqwnwjphmqvbajqujbvgkfgjvphvvhhq8errm9/gdfnq0qccd8/zd8n/58emku0479by+mtk1ptmbgfufmfxqbi8cq5eijfpysgevpsrioxy0trum3izs4iin5elpzzi+4trihuv/ewpytkoui/tggkktdqpllmopdwxqheyzrvh3j7tlb1aipzyqzblw6tklmebnwljsrv1wq2xdr270qhu7drzu3vrdre6tjnucxzqpfn887ocjxhhgjokvmt1yt1okdqum5ivvesrgoeq9ujlwi4iotrpckmmbpikcwmhzeeadtpvn1iuktwifdmzid1xv7s8/ktrjtqot1pk40qtjkcpbqmdwsacd+xssbbma2mqltt8fei+mji0gvgwel42hf+bzsvu2m5ptbr3edoimqpwwdooaxfuwb44aiegctc4bffgetxzd9ad9wy9jebhre+cq+chrncp5gmdtw==</latexit> <latexit sha1_base64="bzccnnqursqylsywbytlb0gmc5k=">aaab8nicbzblswmxfiuzpmt9vv26crahbspmedrdqrb3vnbsotowtcbthmasibkjlflwv7hxoelwx+pof2p6wgjrgcdhotfk5ksz4azc99tzwl5zxvsvbbq3t7z3dkt7+/dg5zoynyqhdcsihgkumq8cbgtlmpe0eqwz9s/heforacovvinbxskudcvpocvgrscgsqj8u+k/1e46pbjbdsfci+dnoixmanrkx0gsaj4ycvqqy9qem0e4jbo4fwxudhldmkl7pmvafivjmqmhk51h+ng6mu6utkccnri/bwxjaswgjexksqbn5rox+v/wzie5d4dczjkwsacpjbnaopc4abxzzsiigqvcnbe7ytojmlcwnrvtcd78lxfbr1uvqu7tabl+9trto4ao0rgqia+dotq6rg3ki4oy9ixe0zutoy/ou/mxhv1yzg0eod9ypn8aiiircg==</latexit> Brute force: Ελέγχουμε όλα τα υποσύνολα του V με k κορυφές n k n k = O k 2 O(k 2 ) Χρόνος: Ο(n k )

<latexit sha1_base64="ypmt0cc4dr+/cu942ld2tq5rdv4=">aaacehicdzbns8mwhmzt351vu49egkoyl9lo6badiaritqwnwjphmqvbajqujbvgkfgjvphvvhhq8errm9/gdfnq0qccd8/zd8n/58emku0479by+mtk1ptmbgfufmfxqbi8cq5eijfpysgevpsrioxy0trum3izs4iin5elpzzi+4trihuv/ewpytkoui/tggkktdqpllmopdwxqheyzrvh3j7tlb1aipzyqzblw6tklmebnwljsrv1wq2xdr270qhu7drzu3vrdre6tjnucxzqpfn887ocjxhhgjokvmt1yt1okdqum5ivvesrgoeq9ujlwi4iotrpckmmbpikcwmhzeeadtpvn1iuktwifdmzid1xv7s8/ktrjtqot1pk40qtjkcpbqmdwsacd+xssbbma2mqltt8fei+mji0gvgwel42hf+bzsvu2m5ptbr3edoimqpwwdooaxfuwb44aiegctc4bffgetxzd9ad9wy9jebhre+cq+chrncp5gmdtw==</latexit> <latexit sha1_base64="bzccnnqursqylsywbytlb0gmc5k=">aaab8nicbzblswmxfiuzpmt9vv26crahbspmedrdqrb3vnbsotowtcbthmasibkjlflwv7hxoelwx+pof2p6wgjrgcdhotfk5ksz4azc99tzwl5zxvsvbbq3t7z3dkt7+/dg5zoynyqhdcsihgkumq8cbgtlmpe0eqwz9s/heforacovvinbxskudcvpocvgrscgsqj8u+k/1e46pbjbdsfci+dnoixmanrkx0gsaj4ycvqqy9qem0e4jbo4fwxudhldmkl7pmvafivjmqmhk51h+ng6mu6utkccnri/bwxjaswgjexksqbn5rox+v/wzie5d4dczjkwsacpjbnaopc4abxzzsiigqvcnbe7ytojmlcwnrvtcd78lxfbr1uvqu7tabl+9trto4ao0rgqia+dotq6rg3ki4oy9ixe0zutoy/ou/mxhv1yzg0eod9ypn8aiiircg==</latexit> Brute force: Ελέγχουμε όλα τα υποσύνολα του V με k κορυφές n k n k = O k 2 O(k 2 ) Χρόνος: Ο(n k ) XP

<latexit sha1_base64="ypmt0cc4dr+/cu942ld2tq5rdv4=">aaacehicdzbns8mwhmzt351vu49egkoyl9lo6badiaritqwnwjphmqvbajqujbvgkfgjvphvvhhq8errm9/gdfnq0qccd8/zd8n/58emku0479by+mtk1ptmbgfufmfxqbi8cq5eijfpysgevpsrioxy0trum3izs4iin5elpzzi+4trihuv/ewpytkoui/tggkktdqpllmopdwxqheyzrvh3j7tlb1aipzyqzblw6tklmebnwljsrv1wq2xdr270qhu7drzu3vrdre6tjnucxzqpfn887ocjxhhgjokvmt1yt1okdqum5ivvesrgoeq9ujlwi4iotrpckmmbpikcwmhzeeadtpvn1iuktwifdmzid1xv7s8/ktrjtqot1pk40qtjkcpbqmdwsacd+xssbbma2mqltt8fei+mji0gvgwel42hf+bzsvu2m5ptbr3edoimqpwwdooaxfuwb44aiegctc4bffgetxzd9ad9wy9jebhre+cq+chrncp5gmdtw==</latexit> <latexit sha1_base64="bzccnnqursqylsywbytlb0gmc5k=">aaab8nicbzblswmxfiuzpmt9vv26crahbspmedrdqrb3vnbsotowtcbthmasibkjlflwv7hxoelwx+pof2p6wgjrgcdhotfk5ksz4azc99tzwl5zxvsvbbq3t7z3dkt7+/dg5zoynyqhdcsihgkumq8cbgtlmpe0eqwz9s/heforacovvinbxskudcvpocvgrscgsqj8u+k/1e46pbjbdsfci+dnoixmanrkx0gsaj4ycvqqy9qem0e4jbo4fwxudhldmkl7pmvafivjmqmhk51h+ng6mu6utkccnri/bwxjaswgjexksqbn5rox+v/wzie5d4dczjkwsacpjbnaopc4abxzzsiigqvcnbe7ytojmlcwnrvtcd78lxfbr1uvqu7tabl+9trto4ao0rgqia+dotq6rg3ki4oy9ixe0zutoy/ou/mxhv1yzg0eod9ypn8aiiircg==</latexit> Brute force: Ελέγχουμε όλα τα υποσύνολα του V με k κορυφές n k n k = O k 2 O(k 2 ) Χρόνος: Ο(n k ) FPT?

<latexit sha1_base64="ypmt0cc4dr+/cu942ld2tq5rdv4=">aaacehicdzbns8mwhmzt351vu49egkoyl9lo6badiaritqwnwjphmqvbajqujbvgkfgjvphvvhhq8errm9/gdfnq0qccd8/zd8n/58emku0479by+mtk1ptmbgfufmfxqbi8cq5eijfpysgevpsrioxy0trum3izs4iin5elpzzi+4trihuv/ewpytkoui/tggkktdqpllmopdwxqheyzrvh3j7tlb1aipzyqzblw6tklmebnwljsrv1wq2xdr270qhu7drzu3vrdre6tjnucxzqpfn887ocjxhhgjokvmt1yt1okdqum5ivvesrgoeq9ujlwi4iotrpckmmbpikcwmhzeeadtpvn1iuktwifdmzid1xv7s8/ktrjtqot1pk40qtjkcpbqmdwsacd+xssbbma2mqltt8fei+mji0gvgwel42hf+bzsvu2m5ptbr3edoimqpwwdooaxfuwb44aiegctc4bffgetxzd9ad9wy9jebhre+cq+chrncp5gmdtw==</latexit> <latexit sha1_base64="bzccnnqursqylsywbytlb0gmc5k=">aaab8nicbzblswmxfiuzpmt9vv26crahbspmedrdqrb3vnbsotowtcbthmasibkjlflwv7hxoelwx+pof2p6wgjrgcdhotfk5ksz4azc99tzwl5zxvsvbbq3t7z3dkt7+/dg5zoynyqhdcsihgkumq8cbgtlmpe0eqwz9s/heforacovvinbxskudcvpocvgrscgsqj8u+k/1e46pbjbdsfci+dnoixmanrkx0gsaj4ycvqqy9qem0e4jbo4fwxudhldmkl7pmvafivjmqmhk51h+ng6mu6utkccnri/bwxjaswgjexksqbn5rox+v/wzie5d4dczjkwsacpjbnaopc4abxzzsiigqvcnbe7ytojmlcwnrvtcd78lxfbr1uvqu7tabl+9trto4ao0rgqia+dotq6rg3ki4oy9ixe0zutoy/ou/mxhv1yzg0eod9ypn8aiiircg==</latexit> Brute force: Ελέγχουμε όλα τα υποσύνολα του V με k κορυφές n k n k = O k 2 O(k 2 ) Χρόνος: Ο(n k ) FPT? Σταθερό k Πολυωνυμικός αλγόριθμος

NP-C. P P P P 4 3 2 1 k k-κλικα

NP-C. P P P P 4 3 2 1 k k-κλικα Κι όμως

NP-C. P P P P 4 3 2 1 k k-κλικα Κι όμως k-κλικα W[1]-C

NP-C. P P P P 4 3 2 1 k k-κλικα Κι όμως k-κλικα W[1]-C δεν έχει FPT αλγόριθμο

FPT vs XP NP-Πληρότητα?!

FPT vs XP NP-Πληρότητα?!

Παραμετρική Πολυπλοκότητα

Παραμετρική Πολυπλοκότητα Παραμετρικές αναγωγές

Παραμετρική Πολυπλοκότητα Παραμετρικές αναγωγές Κλάσεις Πολυπλοκότητας (π.χ. FPT, W[1], XP)

Παραμετρική Πολυπλοκότητα Παραμετρικές αναγωγές Κλάσεις Πολυπλοκότητας (π.χ. FPT, W[1], XP) W-ιεραρχία κλάσεων προβλημάτων

Παραμετρική Πολυπλοκότητα Παραμετρικές αναγωγές Κλάσεις Πολυπλοκότητας (π.χ. FPT, W[1], XP) W-ιεραρχία κλάσεων προβλημάτων Κάτω φράγματα (ETH) Βέλτιστοι αλγόριθμοι

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

Αν διώξουμε ένα πελάτη μας επιτίθενται όλοι οι φίλοι του Μπορούμε να διαχειριστούμε μέχρι (k-1) πελάτες Υπάρχει ομάδα k-πελατών όπου όλοι είναι φίλοι με όλους;

Αν διώξουμε ένα πελάτη μας επιτίθενται όλοι οι φίλοι του Μπορούμε να διαχειριστούμε μέχρι (k-1) πελάτες Υπάρχει ομάδα k-πελατών όπου όλοι είναι φίλοι με όλους;

Αν διώξουμε ένα πελάτη μας επιτίθενται όλοι οι φίλοι του Μπορούμε να διαχειριστούμε μέχρι (k-1) πελάτες Υπάρχει ομάδα k-πελατών όπου όλοι είναι φίλοι με όλους; Παράμετρος: μέγιστος αριθμός φίλων

k-κλικα (k-clique) (Φιλίες) Γράφημα G=(V, E ) * (n-κορυφές) S V, {u,v} S ({u,v} E) S k * Aπλό, μη-διατεταγμένο

k-κλικα (k-clique) (Φιλίες) Γράφημα G=(V, E ) * (n-κορυφές) S V, {u,v} S ({u,v} E) S k Παράμετρος: Δ (μέγιστος βαθμός) * Aπλό, μη-διατεταγμένο

Brute force: Μαντεύουμε μια κορυφή της k-κλίκας, κοιτάμε για κάθε ένα υποσύνολο της γειτονιάς της αν είναι κλίκα.

Brute force: Μαντεύουμε μια κορυφή της k-κλίκας, κοιτάμε για κάθε ένα υποσύνολο της γειτονιάς της αν είναι κλίκα. Έχει η μεγαλύτερη κλίκα k κορυφές;

Brute force: Χρόνος: Μαντεύουμε μια κορυφή της k-κλίκας, κοιτάμε για κάθε ένα υποσύνολο της γειτονιάς της αν είναι κλίκα. Έχει η μεγαλύτερη κλίκα k κορυφές;

Brute force: Χρόνος: Μαντεύουμε μια κορυφή της k-κλίκας, Ο(n) κοιτάμε για κάθε ένα υποσύνολο της γειτονιάς της αν είναι κλίκα. Έχει η μεγαλύτερη κλίκα k κορυφές;

Brute force: Χρόνος: Μαντεύουμε μια κορυφή της k-κλίκας, Ο(n) κοιτάμε για κάθε ένα υποσύνολο της γειτονιάς της Ο(2 Δ ) αν είναι κλίκα. Έχει η μεγαλύτερη κλίκα k κορυφές;

Brute force: Χρόνος: Μαντεύουμε μια κορυφή της k-κλίκας, Ο(n) κοιτάμε για κάθε ένα υποσύνολο της γειτονιάς της Ο(2 Δ ) αν είναι κλίκα. Ο(Δ 2 ) Έχει η μεγαλύτερη κλίκα k κορυφές;

Brute force: Χρόνος: Μαντεύουμε μια κορυφή της k-κλίκας, Ο(n) κοιτάμε για κάθε ένα υποσύνολο της γειτονιάς της Ο(2 Δ ) αν είναι κλίκα. Ο(Δ 2 ) Έχει η μεγαλύτερη κλίκα k κορυφές; Ο(1)

Brute force: Χρόνος: Μαντεύουμε μια κορυφή της k-κλίκας, Ο(n) κοιτάμε για κάθε ένα υποσύνολο της γειτονιάς της Ο(2 Δ ) αν είναι κλίκα. Ο(Δ 2 ) Έχει η μεγαλύτερη κλίκα k κορυφές; Ο(1) Ο(2 Δ Δ 2 n)

Brute force: Χρόνος: Μαντεύουμε μια κορυφή της k-κλίκας, Ο(n) κοιτάμε για κάθε ένα υποσύνολο της γειτονιάς της Ο(2 Δ ) αν είναι κλίκα. Ο(Δ 2 ) Έχει η μεγαλύτερη κλίκα k κορυφές; Ο(1) Ο(f(Δ) n)

k-κλικα παράμετρος k FPT k-κλικα παράμετρος Δ FPT

Παράμετρος

Παράμετρος k (παράμετρος) n (είσοδος)

Παράμετρος k (παράμετρος) n (είσοδος) FPT: O(f(k) n c )

Παράμετρος k (παράμετρος) n (είσοδος) FPT: O(f(k) n c )

Παράμετρος k (παράμετρος) n (είσοδος) FPT: O(f(k) n c )