Αλγόριθµοι Οπισθοδρόµησης



Σχετικά έγγραφα
Εισαγωγή στους Αλγορίθμους

ΕΠΛ 232 Φροντιστήριο 2

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

ΕΠΛ 232: Αλγόριθµοι και Πολυπλοκότητα. Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Γράφοι (συνέχεια) Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler

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

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

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

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Κεφάλαιο 1. Εισαγωγή: Ευσταθές Ταίριασμα και άλλα Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.5, 30/10/2014

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

Αλγόριθµοι Ροής σε Γράφους (CLR, κεφάλαιο 27)

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Αλγόριθµοι Τύπου Μείωσης Προβλήµατος

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

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

Ευσταθές ταίριασμα. (υλικό βασισμένο στο βιβλίο. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Προγραμματισμός Ι (ΗΥ120)

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

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

Επίλυση 1 ης Εργασίας. Παραδόθηκαν: 11/12 15%

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

ΚΕΦΑΛΑΙΟ 3 ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. nn n n

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

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

Προγραμματισμός Ι (ΗΥ120)

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

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

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

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

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

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

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

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 8

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

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

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

Υπολογιστικά & Διακριτά Μαθηματικά

Διάλεξη 04: Παραδείγματα Ανάλυσης

Κεφάλαιο 1. Εισαγωγή: Κάποια Αντιπροσωπευτικά Προβλήµατα. Έκδοση 1.3, 29/02/2012. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

Επίλυση Γραµµικών Συστηµάτων

Προγραμματισμός Ι (ΗΥ120)

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

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

Insert(K,I,S) Delete(K,S)

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

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

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

1.1 Ένα πρώτο πρόβληµα: Ευσταθές Ταίριασµα

Υπολογιστικά & Διακριτά Μαθηματικά

Κεφάλαιο : Επαναλήψεις (for, do-while)

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

Διάλεξη 11: Αιτιότητα Διάταξη Γεγονότων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Διάλεξη 21: Γράφοι II - Τοπολογική Ταξινόμηση

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

ΕΠΛ 232: Αλγόριθµοι και Πολυπλοκότητα. Κατ οίκον Εργασία 2A Σκελετοί Λύσεων

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 4 Σωροί, Γράφοι

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

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Δομές ελέγχου ροής προγράμματος

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

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

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

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Δοµές Δεδοµένων. 2η Διάλεξη Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Ε. Μαρκάκης. Βασίζεται στις διαφάνειες των R. Sedgewick K.

Λύσεις Σειράς Ασκήσεων 5

Αποτίµησηκαθολικού κατηγορήµατος

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 8

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

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

Λύσεις Σειράς Ασκήσεων 5

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

Transcript:

Αλγόριθµοι Οπισθοδρόµησης Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Η οπισθοδρόµηση στο σχεδιασµό αλγορίθµων Το πρόβληµα των σταθερών γάµων και ο αλγόριθµος των Gale-Shapley Το πρόβληµα των οκτώ βασιλισσών ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 5-1

Αλγόριθµοι Οπισθοδρόµησης ασικό χαρακτηριστικό αυτής της µεθόδου είναι η αναίρεση των αποτελεσµάτων κάποιων υπολογιστικών βηµάτων, και η οπισθοδρόµηση σε κάποιο προηγούµενο βήµα, όπου λαµβάνονται κάποιες διαφορετικές επιλογές. Η οπισθοδρόµηση δεν πρέπει να εµποδίζει τον αλγόριθµο από το να τερµατίζει. Ο αλγόριθµος δεν πρέπει να ξοδεύει χρόνο σε περιττές επαναλήψεις. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 5-2

Αλγόριθµοι οπισθοδρόµησης ιάφορα προβλήµατα µπορούν να θεωρηθούν ως γράφοι, των οποίων οι κόµβοι είναι καταστάσεις του προβλήµατος και η ύπαρξη ακµής µεταξύ δύο κόµβων δηλώνει τη δυνατότητα κίνησης µεταξύ των καταστάσεων που απεικονίζουν. Λύση του προβλήµατος µπορεί να µεταφραστεί ως την εύρεση κάποιου κόµβου, ή µονοπατιού µέσα στο γράφο, άρα µπορεί να επιτευχθεί µε µια κάταβάθος διερεύνηση του γράφου. Ξεκινούµε από τη ρίζα του γράφου, αρχικά χωρίς καµιά γνώση για τη λύση του προβλήµατος. Κατά την αναζήτηση του γράφου κτίζουµε τη λύση ως εξής: επισκεπτόµενοι κάποιο κόµβο µελετούµε τις πληροφορίες που περιέχει σχετικά µε τη λύση του προβλήµατος 1. αν αυτές είναι νόµιµες µε τη λύση τότε τις συλλέγουµε και συνεχίζουµε τη διερεύνηση, 2. διαφορετικά, τις αγνοούµε και οπισθοδροµούµε στον προηγούµενο κόµβο, από όπου συνεχίζουµε την κατά-βάθος διερεύνηση ακολουθώντας κάποια διαφορετική επιλογή. Κτίσιµο του γράφου µπορεί να γίνει δυναµικά, κατά την αναζήτηση της λύσης του προβλήµατος. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 5-3

Το Πρόβληµα των Σταθερών Γάµων εδοµένο εισόδου: ινόµαστε δύο σύνολα M, οι άνδρες, και W, οι γυναίκες, µε n στοιχεία το καθένα. Επίσης για κάθε x M W δινόµαστε µια αυστηρά διατεταγµένη λίστα προτιµήσεων που περιέχει όλα τα άτοµα του αντίθετου φύλου. ηλαδή, αν στη λίστα προτιµήσεων του ατόµου r το άτοµο p προηγείται του q τότε το r προτιµά το άτοµο p έναντι του ατόµου q. Ένα ζευγάρωµα Z είναι µια ένα-προς-ένα αντιστοίχηση µεταξύ των συνόλων M και W. Αν ο άνδρας m και η γυναίκα w ζευγαρώνονται στο Z, γράφουµε m=z(w), w=z(m). ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 5-4

Το Πρόβληµα των Σταθερών Γάµων Για ένα ζευγάρωµα Ζ, ο άντρας m και η γυναίκα w αποτελούν ένα επικίνδυνο ζευγάρι, αν ο m και η w δεν ζευγαρώνονται στο Ζ, και εντούτοις ο m προτιµά την w έναντι της Z(m) και η w προτιµά τον m έναντι του Z(w). Ένα ζευγάρωµα Ζ θα λέγεται ασταθές αν περιέχει ένα τουλάχιστον επικίνδυνο ζευγάρι, διαφορετικά θα λέγεται σταθερό. Στόχος: Με δεδοµένο εισόδου κάποιο στιγµιότυπο του προβλήµατος, να προσδιορίσουµε ένα σταθερό ζευγάρωµα. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 5-5

Παράδειγµα άνδρας λίστα προτίµησης γυναίκα λίστα προτίµησης 1 2 4 1 3 1 2 1 4 3 2 3 1 4 2 2 4 3 1 2 3 2 3 1 4 3 1 4 3 2 4 4 1 3 2 4 2 1 4 3 Είναι τα πιο κάτω ζευγαρώµατα σταθερά; {(1,1), (2,2), (3,3), (4,4)} {(1,2), (2,1), (3,3), (4,4)} {(1,4), (2,3), (3,2), (4,1)} Υπάρχουν άλλα σταθερά ζευγαρώµατα; ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 5-6

Ο αλγόριθµος των Gale-Shapley για όλα τα x M W, single[x] = True; Z = ; while(single[m]=true για κάποιο m M ){ w = πρώτη γυναίκα στη λίστα του m στην οποία ο m δεν έχει ακόµη κάνει πρόταση γάµου; if single(w) Z = Z {(m,w)}; single(m)= single(w)= False; else if (m,w) Z && η w προτιµά τον m από τον m Z = Z {(m,w)}-(m,w)}; single(m ) = True; single(m) = False; Παρατήρηση: Ο αλγόριθµος δεν else η w απορρίπτει τον m προσδιορίζει τη σειρά µε την } οποία οι άνδρες κάνουν return Z προτάσεις στις γυναίκες. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 5-7

Ορθότητα του Αλγόριθµου Θεώρηµα: 1. O αλγόριθµος Gale-Shapley τερµατίζει. 2. Όταν τερµατίσει ο αλγόριθµος Gale-Shapley παράγει ένα σταθερό ζευγάρωµα. Απόδειξη της πρότασης 1 Αρχικά παρατηρούµε ότι δεν είναι δυνατό κάποιος άνδρας να απορριφθεί από όλες τις γυναίκες: Έστω ότι είναι. Μια γυναίκα µπορεί να απορρίψει ένα άνδρα όταν είναι ζευγαρωµένη και εφόσον µια γυναίκα παντρευτεί δεν ξαναγίνεται ελεύθερη. Έτσι όταν ένα άντρας απορριφθεί από την τελευταία γυναίκα στη λίστα, τότε όλες οι γυναίκες πρέπει να είναι ήδη παντρεµένες. Άρα και όλοι οι άνδρες. Αντίφαση! Άρα κάθε άντρας γίνεται τελικά δεκτός από κάποια γυναίκα. Αφού κάθε επανάληψη του αλγόριθµου εµπεριέχει µια µόνο πρόταση γάµου, και κανένας άνδρας δεν κάνει πρόταση για δεύτερη φορά στην ίδια γυναίκα, ο αριθµός των επαναλήψεων είναι το πολύ n². Εποµένως ο αλγόριθµος τερµατίζει. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 5-8

Απόδειξη της πρότασης 2 Ορθότητα του Αλγόριθµου Προφανώς όταν τερµατίσει ο αλγόριθµος παράγει κάποιο ζευγάρωµα, Ζ. Αν ο άνδρας m προτιµά τη γυναίκα w έναντι της Z(w) τότε θα πρέπει η w να έχει απορρίψει τον m. Αυτό µπορεί να έχει συµβεί είτε επειδή η w ήταν παντρεµένη µε κάποιο άνδρα που προτιµούσε έναντι του m όταν ο m της έκανε πρόταση, είτε επειδή η w ήταν παντρεµένη µε τον m αλλά τον χώρισε όταν κάποιος άνδρας που προτιµούσε έναντι του m της έκανε πρόταση. Και στις δύο περιπτώσεις, η w στην τελική κατάσταση βρίσκεται παντρεµένη µε κάποιον άνδρα τον οποίο προτιµά έναντι του m. Εποµένως το ζευγάρι (m,w) δεν είναι επικίνδυνο για το Ζ. Αφού αυτό ισχύει για όλα τα ζευγάρια (m,w), το Ζ είναι σταθερό ζευγάρωµα. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 5-9

Παράδειγµα Εφαρµόστε τον αλγόριθµο στο πιο κάτω στιγµιότυπο, υποθέτοντας ότι σε κάθε επανάληψη του βρόχου διαλέγεται ο ελεύθερος άνδρας µε τον πιο µικρό αριθµό. άνδρας λίστα προτίµησης γυναίκα λίστα προτίµησης 1 2 4 1 3 1 2 1 4 3 2 1 3 4 2 2 2 3 4 1 3 4 1 2 3 3 4 2 1 3 4 1 2 3 4 4 4 3 2 1 ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 5-10

Το πρόβληµα των 8 βασιλισσών Στόχος: Να τοποθετήσουµε 8 βασίλισσες σε µια σκακιέρα έτσι ώστε καµιά από τις βασίλισσες να µην απειλεί οποιαδήποτε άλλη. (Μια βασίλισσα απειλεί κάποια άλλη αν βρίσκονται και οι δύο στην ίδια σειρά, ή στην ίδια στήλη, ή στην ίδια διαγώνιο.) Εξαντλητικός αλγόριθµος: δοκιµάζουµε όλες τις δυνατές τοποθετήσεις. Υπάρχουν 64 = 4,426,165,368. 8 ελτίωση 1: Τοποθετούµε το πολύ µια βασίλισσα σε κάθε σειρά. Άρα οποιαδήποτε τοποθέτηση µπορεί να απεικονιστεί ως ένα 8-διάνυσµα, π.χ. το διάνυσµα (3,1,4,5,2,5,8,7) αντιστοιχεί στην τοποθέτηση βασιλισσών => Οαριθµός των δυνατών τοποθετήσεων είναι 8 8 =16,777,216. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 5-11

Το πρόβληµα των 8 βασιλισσών ελτίωση 2: Τοποθετούµε το πολύ µια βασίλισσα σε κάθε σειρά και το πολύ µια βασίλισσα σε κάθε στήλη. Άρα οποιαδήποτε τοποθέτηση µπορεί να απεικονιστεί ως ένα 8-διάνυσµα στο οποίο κάθε αριθµός από τους 1..8, παρουσιάζεται ακριβώς µια φορά, π.χ. το διάνυσµα (3,1,4,5,2,6,8,7) αντιστοιχεί στην τοποθέτηση βασιλισσών => Αριθµός πιθανών τοποθετήσεων 8!=40320. Μειονέκτηµα των πιο πάνω µεθόδων: δηµιουργούν ολόκληρη την τοποθέτηση προτού ελέγξουν κατά πόσο είναι νόµιµη. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 5-12

Αλγόριθµος Οπισθοδρόµησης Ένα διάνυσµα [1..k], 0 k 8 θα λέγεται k-υποσχόµενο αν, τοποθετώντας k βασίλισσες στις θέσεις (i, [i]), τότε καµιά από αυτές δεν απειλεί καµιά άλλη. Μαθηµατικά αυτό µπορεί να εκφραστεί ως εξής: για κάθε 1 i,j k, i j, [i]- [j] {i-j, 0, j-i}. Λύση στο πρόβληµα είναι όλα τα 8-υποσχόµενα διανύσµατα. Θεωρώντας ότι ξεκινούµε µε το 0-υποσχόµενο διάνυσµα είναι δυνατό να κτίσουµε όλα τα 1-υποσχόµενα διανύσµατα, 2-υποσχόµενα διανύσµατα, και ούτω καθ εξής. Με δεδοµένο ένα i-υποσχόµενο διάνυσµα υπάρχουν δύο περιπτώσεις 1. είτε αυτό µπορεί να γίνει (i+1)-υποσχόµενο διάνυσµα µε την προσθήκη κατάλληλης τιµής στη θέση [i+1], 2. είτε έχουµε φτάσει σε αδιέξοδο, δηλαδή σε µια τοποθέτηση στην οποία οποιαδήποτε προσθήκη βασίλισσας στην i+1 σειρά, συνεπάγεται απειλή µιας από τις βασίλισσες στις σειρές 1..i. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 5-13

Ο Αλγόριθµος Η διαδικασία queens() υπολογίζει και επιστρέφει ένα 8-υποσχόµενο διάνυσµα. queens(){ i=1; k = 1; while ( i 8 ) found = false; while (k 8 or found == false) D[i] = k; k++; if (D είναι i-υποσχόµενο) found = true; i++; k=1; if (found == false) i--; k = D[i]+1 return D[8]; } Ο αλγόριθµος είναι ορθός: 1. τερµατίζει, και 2. υπολογίζει κάποιο 8-υποσχόµενο διάνυσµα. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 5-14