1 / 9

Προβλήματα Ικανοποίησης Περιορισμών Εργασία 2 Συνέπεια Τόξου ( Arc Consistency)

Προβλήματα Ικανοποίησης Περιορισμών Εργασία 2 Συνέπεια Τόξου ( Arc Consistency). Συνέπεια Τόξου ( Arc Consistency ).

Download Presentation

Προβλήματα Ικανοποίησης Περιορισμών Εργασία 2 Συνέπεια Τόξου ( Arc Consistency)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Προβλήματα Ικανοποίησης Περιορισμών Εργασία 2 Συνέπεια Τόξου (Arc Consistency) ΤΜΗΜΑ ΜΠΕΣ

  2. Συνέπεια Τόξου (Arc Consistency) • Μια μεταβλητή Xείναι arc consistentαν για κάθε άλλη μεταβλητή Y ισχύει το εξής: Για κάθε τιμή aτης Χ υπάρχει τουλάχιστον μια τιμή bτης Υ τέτοια ώστε η aκαι bνα είναι συμβατές • Τότε λέμε ότι η a υποστηρίζει (supports) την b • Ένας αλγόριθμος που εφαρμόζει arc consistency σβήνει τιμές από το πεδίο ορισμού μιας μεταβλητής όταν αυτές δεν υποστηρίζονται από καμία τιμή σε μια άλλη μεταβλητή • Είναι η πιο ευρέως διαδεδομένη τεχνική συνέπειας(απομακρύνει αρκετές τιμές με χαμηλό κόστος) • Επεξεργάζεται έναν-έναν τους δυαδικούς περιορισμού a b c a b c a b c Y X Z ΤΜΗΜΑ ΜΠΕΣ

  3. Εργασία 2 - Arc Consistency • Υλοποιήστε πρόγραμμα που εφαρμόζει συνέπεια τόξου σε δυαδικά προβλήματα ικανοποίησης περιορισμών χρησιμοποιώντας τον αλγόριθμο AC-3 • Τα προβλήματα ικανοποίησης περιορισμών που θα σας απασχολήσουν ανήκουν στην κατηγορία των radio links frequency assignment problems (RLFAPs) • στόχος σε ένα τέτοιο πρόβλημα είναι να ανατεθούν συχνότητες σε ένα σύνολο ραδιοφωνικών πομπών έτσι ώστε να μην υπάρχουν παρεμβολές ανάμεσα τους • Υπάρχουν δύο είδη δυαδικών περιορισμών: |x-y| > a x-y=a ,όπου aμια σταθερά ΤΜΗΜΑ ΜΠΕΣ

  4. Εργασία 2 - Arc Consistency • Το σύνολο των RLFAP προβλημάτων στα οποία θα τεστάρετε τον αλγόριθμο σας βρίσκονται στο αρχείο RLFAPs.rar (http://www.icsd.aegean.gr/lecturers/konsterg/teaching/AI/AI.html) • τα προβλήματα έχουν ονόματα όπως scen3-f11και graph8-f10. Για κάθε πρόβλημα υπάρχουν 3 αρχεία με ονόματα όπως dom3-f11, var3-f11, ctr3-11τα οποία περιέχουν τα πεδία τιμών, τις μεταβλητές, και τους περιορισμούς του προβλήματος αντίστοιχα. • Το πρόγραμμα σας πρέπει να διαβάζει τα 3 αρχεία και να αποθηκεύει τις μεταβλητές με τα πεδία τιμών τους και τους περιορισμούς σε κατάλληλες δομές δεδομένων • Σε κάθε αρχείο dom στην πρώτη γραμμή αναγράφεται το πλήθος x των διαφορετικών πεδίων τιμών που υπάρχουν. Σε κάθε μια από τις xεπόμενες γραμμές δίνεται ένα πεδίο τιμών. • Ο πρώτος αριθμός είναι ο αύξων αριθμός, μετά ακολουθεί το πλήθος των τιμών, και ακολουθούν οι τιμές. Π.χ: 4 6 142 170 240 380 408 478 τιμές 5ο πεδίο τιμών πλήθος τιμών ΤΜΗΜΑ ΜΠΕΣ

  5. Εργασία 2 - Arc Consistency • Σε κάθε αρχείο var στην πρώτη γραμμή αναγράφεται το πλήθος n των μεταβλητών που υπάρχουν στο πρόβλημα. Σε κάθε μια από τις nεπόμενες γραμμές δίνεται o αύξων αριθμός της μεταβλητής και το πεδίο τιμών της. • Π.χ: 680 0 0 1 0 2 0 3 0 4 1 5 0 6 0 7 0 ... Υπάρχουν 680 μεταβλητές. Η μεταβλητή 0 έχει πεδίο τιμών τύπου 0 (βλέπε dom αρχείο). H μεταβλητή 4 έχει πεδίο τιμών τύπου 1, κτλ. ΤΜΗΜΑ ΜΠΕΣ

  6. Εργασία 2 - Arc Consistency • Σε κάθε αρχείο ctr στην πρώτη γραμμή αναγράφεται το πλήθος e των περιορισμών που υπάρχουν στο πρόβλημα. Σε κάθε μια από τις eεπόμενες γραμμές δίνεται ένας περιορισμός. • για κάθε περιορισμό οι δύο πρώτοι αριθμοί είναι οι μεταβλητές που συμμετέχουν στον περιορισμό, το επόμενο σύμβολο είναι ο τύπος του περιορισμού (> ή =) και τέλος δίνεται η σταθερά. • Π.χ. 5 378 > 247 σταθερά ο περιορισμός είναι τύπου > συμμετέχουν οι μεταβλητές 5 και 378 Ο περιορισμός είναι ο |x5 – x378| > 247 ΤΜΗΜΑ ΜΠΕΣ

  7. Εργασία 2 - Arc Consistency • Το πρόγραμμα σας πρέπει να δέχεται ως είσοδο από τον χρήστη το όνομα ενός RLFA προβλήματος, να διαβάζει τα κατάλληλα αρχεία, και να εφαρμόζει arc consistency στο πρόβλημα. • πρέπει να μπορεί να το κάνει αυτό για όλα τα RLFAPs που σας δίνονται • Αφού ολοκληρωθεί η εφαρμογή του arc consistency σε ένα πρόβλημα πρέπει να τυπώνεται το πλήθος των τιμών που διαγράφηκαν συνολικά. Σε περίπτωση που διαγραφούν όλες οι τιμές από το πεδίο τιμών μιας μεταβλητής πρέπει να τυπώνεται μήνυμα που ενημερώνει ότι το πρόβλημα δεν έχει λύση. • Η υλοποίηση μπορεί να γίνει σε μια γλώσσα όπως η Java, η C, και η C++ σε ομάδες ως και δύο ατόμων. Προθεσμία παράδοσης άσκησης: 17/12/2008. • Τρόπος παράδοσης: με υποχρεωτική παρουσίαση σε οποιοδήποτε εργαστήριο μέχρι τις 17/12 και με email στο konsterg@aegean.gr ΤΜΗΜΑ ΜΠΕΣ

  8. Ο Arc Consistency Αλγόριθμος AC-3 procedureAC-3(a CSP) Insert inSall the (directed) arcs of the problem; whileS not empty do select and remove an arc (x,y) from S; REVISE(x,y) if REVISE(x,y) deleted at least one value from the domain of x then add to Sthe set of all arcs (z,x)of the problem (the ones that go into x); procedureREVISE(x,y) for each value a in domain of x that has not been deleteddo foreachvalue b in the domain of y that has not been deleted if the pair (a,b) is consistent with respect to the constraint (x,y) then break; if no value of y is consistent with a thendelete a from the domain of x; ΤΜΗΜΑ ΜΠΕΣ

  9. Θέματα Υλοποίησης • Η δομή Sμπορεί να υλοποιηθεί ως stack ή (καλύτερα) ως queue • Αρχικά στην Sεισάγονται όλα τα κατευθυνόμενα τόξα • Αυτό σημαίνει ότι για έναν περιορισμό (x,y) θα εισαχθούν στην Sτόσο το τόξο (x,y) όσο και το (y,x) • Γιατί γίνεται αυτό? • Τι άλλες δομές δεδομένων χρειάζεστε? • Για κάθε μεταβλητή έναν (δυναμικό) πίνακα όπου κρατάτε τις τιμές της • Ένα δυσδιάστατο (n*n) πίνακα constraintsγια τους περιορισμούς • αν στη θέση constraints[i][j] υπάρχει 0 σημαίνει ότι δεν υπάρχει περιορισμός ανάμεσα στις xi και xj. Αν υπάρχει 1 σημαίνει ότι υπάρχει περιορισμός |xi – xj|> a. Αν υπάρχει 2 τότε υπάρχειπεριορισμός |xi – xj| = a • Προσοχή στη συμμετρία του πίνακα! ΤΜΗΜΑ ΜΠΕΣ

More Related