Professional Documents
Culture Documents
10 CONSTR SAT0809 Print
10 CONSTR SAT0809 Print
ΠΕΡΙΟΡΙΣΜΩΝ
(ΜΕ ΒΑΣΗ ΤΟ ΚΕΦ. 6 ΤΟΥ ΒΙΒΛΙΟΥ «ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ» ΤΩΝ
ΒΛΑΧΑΒΑ, ΚΕΦΑΛΑ, ΒΑΣΙΛΕΙΑ∆Η, ΚΟΚΚΟΡΑ & ΣΑΚΕΛΛΑΡΙΟΥ)
Ι. ΧΑΤΖΗΛΥΓΕΡΟΥ∆ΗΣ
ΠΡΟΒΛΗΜΑΤΑ ΙΚΑΝΟΠΟΙΗΣΗΣ
ΠΕΡΙΟΡΙΣΜΩΝ
• Είναι γνωστές µερικές ιδιότητες της τελικής
κατάστασης
• Αναζητείται ένα στιγµιότυπο της τελικής
κατάστασης
• Παραδείγµατα προβληµάτων:
– Χρονοπρογραµµατισµός ενεργειών
– Σχεδίαση ενεργειών παραγωγής
– ∆ιαχείριση πόρων
ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΟΒΛΗΜΑΤΟΣ
• Ένα πρόβληµα ικανοποίησης περιορισµών (constraint
satisfaction problem) ορίζεται από:
– Ένα σύνολο n µεταβλητών V1, V2,...,Vn ,
– Ένα σύνολο n πεδίων τιµών D1, ...Dn, που
αντιστοιχούν σε κάθε µεταβλητή έτσι ώστε Vi ∈ Di ,
και
– Ένα σύνολο σχέσεων (περιορισµών) C1, C2,...Cm
όπου Ci(Vk,...,Vn) µια σχέση µεταξύ των µεταβλητών
του προβλήµατος.
• Ανάλογα µε το πόσες µεταβλητές περιλαµβάνει ένας
περιορισµός χαρακτηρίζεται ως µοναδιαίος (unary),
δυαδικός (binary) ή ανώτερης τάξης (higher order)
ΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΠΕΡΙΟΡΙΣΜΩΝ
• Λύση αποτελεί µια ανάθεση τιµών στις µεταβλητές του
προβλήµατος:
V1 = d1, V2 = d2, ... Vn = dn (όπου d1∈D1, d2∈D2,..., di∈Dn )
τέτοια ώστε να ικανοποιούνται οι περιορισµοί C1, C2, ...,
Cm
• Τα προβλήµατα µε Di διακριτών τιµών αναφέρονται ως
προβλήµατα ικανοποίησης περιορισµών, ενώ αυτά µε Di
συνεχών τιµών ως προβλήµατα επίλυσης περιορισµών.
• Η αναζήτηση λύσης στα προβλήµατα ικανοποίησης
περιορισµών οδηγεί στο φαινόµενο της συνδυαστικής
έκρηξης (combinatorial explosion). Γι’ αυτό απαιτούνται
ειδικοί αλγόριθµοι για τη µείωση του χώρου αναζήτησης.
Παράδειγµα Προβλήµατος (1)
• ∆υνατές λύσεις:
– VΑ = 4, VΒ = 2, VΓ, = 1, V∆ = 3 (Γ, Β, ∆, Α)
– VΑ = 4, VΒ = 3, VΓ, = 1, V∆ = 2 (Γ, ∆, Β, Α)
– VΑ = 4, VΒ = 3, VΓ, = 2, V∆ = 1 (∆, Γ, Β, Α)
ΠΑΡΑΓΩΓΗ ΚΑΙ ∆ΟΚΙΜΗ (1)
Περιορισµοί
V Α =3 VΑ = 4
VΓ ≠ V∆ VΒ ≠ V∆ V Β {2,3} V Β {2,3}
V Γ < V Β V Α >V ∆ V Γ {1,2} V Γ {1,2}
V ∆ {1,2,3} V ∆ {1,2,3}
Αποτυχία VΒ = 2 VΒ = 3
VΑ = 4 VΑ = 4
Περιορισµοί VΒ = 2 VΒ = 3 Περιορισµοί
VΓ ≠ V∆ VΒ ≠ V∆ V Γ {1,2} V Γ {1,2} VΒ ≠ V ∆
VΓ < V Β V ∆ {1,2,3} V ∆ {1,2,3}
VΓ = 1 VΓ = 2
Λύση V Α = 4 V Β =2V Γ =1V ∆ =3
VΑ = 4 VΑ =4
Περιορισµοί VΒ = 3 VΒ =3 Περιορισµοί
VΓ ≠ V∆ VΓ = 1 VΓ =2 VΓ ≠ V∆
VΒ ≠ V∆ V ∆ {1,2,3} V∆ {1,2,3} VΒ ≠ V∆
8
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
1
2
3. Ανάθεση τιµής στη δεύτερη βασίλισσα (Q2=3) 3
8
ΠΡΟΒΛΗΜΑ 8 ΒΑΣΙΛΙΣΣΩΝ (3)
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
1 Περαιτέρω ανάθεση τιµών που δεν οδηγεί σε
2 λύση.
3
4
5
6
7 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
8 1
2
4
5
6
7
Λύση στο πρόβληµα των 8 βασιλισσών 8
ΣΥΣΤΗΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΜΕ ΠΕΡΙΟΡΙΣΜΟΥΣ
• ∆ηµιουργία ενός νέου είδους προγραµµατισµού, του
προγραµµατισµού µε περιορισµούς (constraint programming).
• Λογικός Προγραµµατισµός µε Περιορισµούς (Constraint Logic
Programming - CLP), ως επέκταση των γλωσσών λογικού
προγραµµατισµού (π.χ. Prolog).
• Παράδειγµα τέτοιου συστήµατος είναι το CHIP µε πλήθος
βιοµηχανικών εφαρµογών:
– σύνταξη ωρολογίων προγραµµάτων κατανοµής εργασιών,
– σχεδιασµός ενεργειών (planning) για την οργάνωση γραµµών
παραγωγής.
• Άλλες γνωστές γλώσσες που υποστηρίζουν προγραµµατισµό µε
περιορισµούς: SICSTUS, ECLIPSE PROLOG, η Οz και η GNU-
PROLOG, κλπ
• Αρκετές εκδόσεις της γλώσσας Prolog υποστηρίζουν σε µεγαλύτερο
ή µικρότερο βαθµό το νέο είδος προγραµµατισµού.