Προβλήματα Ικανοποίησης Περιορισμών - Προγραμματισμός με Περιορισμούς

mitemaskNetworking and Communications

Jul 13, 2012 (5 years and 1 month ago)

379 views

1
1
Προβλήματα Ικανοποίησης Περιορισμών
Προγραμματισμός με Περιορισμούς
x
1
x
2
1
ΤΜΗΜΑ ΜΠΕΣ
x
5
x
6
x
3
x
4
Προβλήματα Ικανοποίησης Περιορισμών
n
Το Πρόβλημα Ικανοποίησης Περιορισμών (Constraint
Satisfaction Problem– CSP) είναι μια σημαντική υποκατηγορία της
Τ ή Ν ύ
Τ
εχνητ
ή
ς
Ν
οημοσ
ύ
νης
g
Ένα CSP είναι ένα πρόβλημα αναζήτησης με ιδιαίτερα χαρακτηριστικά
που το διαφοροποιούν από τα γενικά προβλήματα αναζήτησης
• ο χώρος αναζήτησης είναι πεπερασμένος
• το δέντρο αναζήτησης είναι πεπερασμένο
• το ζητούμενο είναι να αναθέσουμε τιμές σε ένα σύνολο μεταβλητών ώστε
να ικανοποιούνται κάποιοι περιορισμοί
2
ΤΜΗΜΑ ΜΠΕΣ
να

ικανοποιούνται

κάποιοι

περιορισμοί

Π.χ. n-queens, χρωματισμός γράφων, χρονοπρογραμματισμός, κ.α.
• δε μας ενδιαφέρει το μονοπάτι προς τη λύση
g
Όπως θα δούμε η βασική τεχνική επίλυσης βασίζεται σε αναζήτηση
κατά βάθος!
2
2
Περιορισμοί υπάρχουν Παντού!
g
Η Αίθουσα Χαριτίνη είναι
κατειλ
ημμ
έν
η
από 16:00 ω
ς
18:00
ημμ η ς
g
Κίνηση στο Δίκτυο < 100
Gbytes/sec
g
Μισθός < 45k Ευρώ
g
Το τραίνο για Πάτρα πρέπει να φύγει
το λιγότερο 20 λεπτά πριν φτάσει το
τραίνο από Θεσσαλονίκη
3
ΤΜΗΜΑ ΜΠΕΣ
g
Δε μπορούμε να τοποθετήσουμε δύο
βασίλισσες με τέτοιο τρόπο ώστε να
επιτίθεται η μια στην άλλη…
Προγραμματισμός με Περιορισμούς
n
Η ανάπτυξη τεχνικών και συστημάτων επίλυσης CSPs οδήγησε στη
δημιουργία ενός νέου είδους προγραμματισμού
n
ȅ
προγραμματισμός με περιορισμούς
(
constraint programming
)
n
ȅ

προγραμματισμός

με

περιορισμούς
(
constraint

programming
)

είναι μια μορφή δηλωτικού προγραμματισμού (declarative
programming)
g
Δηλώστε το πρόβλημα (μεταβλητές και περιορισμούς)
g
Η μηχανή επίλυσης θα βρει μια λύση
n
Η αναπαράσταση με περιορισμούς είναι το ενδεδειγμένο μοντέλο σε
4
ΤΜΗΜΑ ΜΠΕΣ
Η

αναπαράσταση

με

περιορισμούς

είναι

το

ενδεδειγμένο

μοντέλο

σε

πολλά δύσκολα συνδυαστικά προβλήματα
g
Χρονοπρογραμματισμός
g
Δρομολόγηση οχημάτων
g
Ανάθεση πόρων...
3
3
Προβλήματα Ικανοποίησης Περιορισμών
n
Ένα πρόβλημα ικανοποίησης περιορισμών (constraint satisfaction
problem – CSP) ορίζεται από:
g
Ένα σύνολο μεταβλητών (variables) X
1
,…,X
n
• Κάθε μεταβλητή
Χ
i
έχει ένα πεδίο ορισμού (domain)
D
i
με τις πιθανές της
τιμές (values)
• Συνήθως τα πεδία ορισμού είναι πεπερασμένα
g
Ένα σύνολο περιορισμών (constraints) C
1
,…,C
m
Κάθ ό λ βά έ ύ λ βλ ώ
5
ΤΜΗΜΑ ΜΠΕΣ

Κάθ
ε περιορισμ
ό
ς περι
λ
αμ
βά
νει
έ
να υποσ
ύ
νο
λ
ο των μετα
βλ
ητ
ώ
ν και
προσδιορίζει τους επιτρεπτούς συνδυασμούς τιμών για αυτό το υποσύνολο
• Ένας n-αδικός (n-ary) περιορισμός C σε ένα σύνολο μεταβλητών X
1
,…,X
k
είναι ένα υποσύνολο του καρτεσιανού γινομένου D
1
x…x D
k
Προβλήματα Ικανοποίησης Περιορισμών
n
Λύση προβλήματος ικανοποίησης περιορισμών
g
Ανάθεση μιας τιμής σε κάθε μεταβλητή έτσι ώστε να μην παραβιάζεται
κανένας περιορισμός
κανένας

περιορισμός
n
Στόχοι:
g
Εύρεση μιας λύσης
g
Εύρεση όλων των λύσεων
g
Εύρεση λύσης που μεγιστοποιεί (ελαχιστοποιεί) κάποια ποσότητα
g
Εύρεση μιας προσεγγιστικής λύσης
6
ΤΜΗΜΑ ΜΠΕΣ
n
Δυαδικά (binary) προβλήματα
g
περιορισμοί ανάμεσα σε το πολύ δύο μεταβλητές
n
Μη-δυαδικά (non-binary) ή n-αδικά (n-ary) προβλήματα
g
περιορισμοί ανάμεσα σε οσεσδήποτε μεταβλητές
4
4
Γράφοι και Υπεργράφοι Περιορισμών (Constraint
Graphs & Hypergraphs)
x
1
x
2
x
1
x
5
x
6
x
3
x
4
x
5
x
6
x
2
x
3
x
4
7
ΤΜΗΜΑ ΜΠΕΣ
n
μεταβλητές – κόμβοι
n
δυαδικοί περιορισμοί – ακμές
n
μεταβλητές – κόμβοι
n
n-αδικοί περιορισμοί –
υπερακμές
Απλό Παράδειγμα – Χρωματισμός Χαρτών
Θέλουμε να χρωματίσουμε κάθε
περιοχή στο χάρτη
έτσι ώστε γειτονικές περιοχές να
έχουν διαφορετικό χρώμα
n
DzȤȠȣȝİ IJȡȓĮȤȡȫȝĮIJĮ
8
ΤΜΗΜΑ ΜΠΕΣ
n
DzȤȠȣȝİ

τρία

χρώματα
牥r Ⱐ杲敥g Ⱐ扬略
5
5
Απλό Παράδειγμα – Χρωματισμός Χαρτών
n
Επίσημος Ορισμός:
n
Μεταβλητές
g
WA, NT, SA, Q, NSW, V, T
n
Πεδίο Ορισμού (ίδιο για όλες τις μεταβλητές)
g
{red, green, blue}
n
Περιορισμοί
9
ΤΜΗΜΑ ΜΠΕΣ
n
Περιορισμοί
g
C(WA,NT) = {(red,green), (red,blue), (green,red), (green,blue),
(blue, red), (blue,green)}
g
C(WA,SA) = …
Γράφος Περιορισμών
NT
WA
SA
Q
NSW
Δύο ασύνδετα
τμήματα
10
ΤΜΗΜΑ ΜΠΕΣ
V
T
Όλοι οι περιορισμοί
είναι δυαδικοί
6
6
Απλό Παράδειγμα – 8 Queens problem
11
ΤΜΗΜΑ ΜΠΕΣ
Θέλουμε να τοποθετήσουμεΘέλουμε να τοποθετήσουμε 8
8
βασίλισσεςβασίλισσες στη σκακιέραστη σκακιέρα ώστε καμία ώστε καμία
να μην επιτίθεται σε άλληνα μην επιτίθεται σε άλλη
Απλό Παράδειγμα – 8 Queens problem
n
Επίσημος Ορισμός:
n
Μεταβλητές
g
Η τιμή κάθε μεταβλητής X
i
(i=1,…,8) αντιπροσωπεύει τη στήλη στην
οποία βρίσκεται η i-th βασίλισσα στην i-th σειρά
n
Πεδίο Ορισμού
g
Αν οι στήλες αντιπροσωπεύονται με νούμερα από το 1 ως το 8 τότε το
12
ΤΜΗΜΑ ΜΠΕΣ
Αν

οι

στήλες

αντιπροσωπεύονται

με

νούμερα

από

το

1

ως

το

8

τότε

το

πεδίο ορισμού κάθε μεταβλητής X
i
είναι
D
i
= {1,2,…,8}
7
7
Απλό Παράδειγμα – 8 Queens problem
n
Περιορισμοί
g
Υπάρχει ένας δυαδικός περιορισμός C(X
i
, X
j
) για κάθε ζευγάρι
μεταβλητών. Αυτοί οι περιορισμοί μπορούν να οριστούν ως εξής:
g
Για όλες τις μεταβλητές X
i
και X
j
,X
i
≠ X
j
g
Για όλες τις μεταβλητές X
i
και X
j
,με i>j, αν X
i
= a και X
j
= b τότε
13
ΤΜΗΜΑ ΜΠΕΣ
i – j

a– b και i – j

b– a
Απλό Παράδειγμα – Κρυπταριθμητική
n
Επίσημος Ορισμός:
n
Μεταβλητές και Πεδία Ορισμού
g
F, T, U, W, R, O ∈ {0,1,2,3,4,5,6,7,8,9}
g
X
1
, X
2
, X
3
∈ {0,1}
n
Περιορισμοί
g
alldifferent(F, T, U, W, R, O)
g
O
+
O
=
R
+10
X
1
T W O
+ T W O
F O U R
14
ΤΜΗΜΑ ΜΠΕΣ
g
O
+

O

R
+

10

X
1
g
X
1
+ W+ W= U + 10 X
2
g
X
2
+ T + T = O + 10 X
3
g
X
3
= F
8
8
Απλό Παράδειγμα – Κρυπταριθμητική
T W O
+ T W O
F O U R
15
ΤΜΗΜΑ ΜΠΕΣ
Προβλήματα Περιορισμών
n
Χρονική Συλλογιστική (Temporal Reasoning)
n
Timetabling
n
Scheduling
g
job-shop, aircrew
n
Δρομολόγηση Οχημάτων (Vehicle Routing)
n
Κατανομή Πόρων (Resource allocation)
n
Σχεδιασμός Ενεργειών (Planning)
Κ ή Σ ή
(
䙁 i t
)

ΤΜΗΜΑ ΜΠΕΣ
n
Κ
ατανο
μή

Σ
υ
χ
νοτ
ή
των
(
F
requency
A
ss
i
gnmen
t
)
n
Χωρική Συλλογιστική (Spatial Reasoning)
n
Ακέραιος, γραμμικός και μη-γραμμικός προγραμματισμός
(integer, linear and non-linear programming)
9
9
Επίλυση Προβλημάτων Περιορισμών
n
Υποθέτοντας ότι έχουμε αναπαραστήσει ένα πρόβλημα ως CSP
g
πως μπορούμε να βρούμε μια λύση (αν υπάρχει)?
g
πως μπορούμε να βρούμε όλες τις λύσει
ς
?
g
πως μπορούμε να παράγουμε καινούργια γνώση?
• π.χ. καινούργιους περιορισμούς
n
Τεχνικές που μπορούν να χρησιμοποιηθούν
g
“Πα
ρήγ
α
γ
ε κι ε
ξ
έτασε”
(g
enerate and test
)
17
ΤΜΗΜΑ ΜΠΕΣ
ρήγ γ ξ
(g )
g
Αλγόριθμοι οπισθοδρόμησης (backtracking search algorithms)
g
Αλγόριθμοι τοπικής αναζήτησης (local search algorithms)
g
Αλγόριθμοι διάδοσης περιορισμών (constraint propagation algorithms)
Generate & Test
n
Η πιο γενική μέθοδος
n
Αλ
γ
ό
ρ
ιθ
μ
ο
ς
:
γ ρ μ ς
δ ώ σ ε από μια τιμή σε όλες τις μεταβλητές
έλεγξε αν είναι λύση
Μειονεκτήματα:Βελτιώσεις:
Τυ
φ
λ
ή

γ
ενν
ή
τ
ρ
ια αναθέσεων τι
μ
ών έ
ξ
υπν
η

γ
ενν
ή
τ
ρ
ια
18
ΤΜΗΜΑ ΜΠΕΣ
φ ή γ ή ρ μ
ξ η γ ή ρ
--> τοπική αναζήτηση
Αργή ανακάλυψη έλεγχος περιορισμών κατά τη
ασυνεπειών διάρκεια της ανάθεσης
--> αναζήτηση οπισθοδρόμησης
10
10
Αλγόριθμοι Αναζήτησης για CSPs
n
Γενικός Αλγόριθμος Αναζήτησης για CSPs
n
Αρχική Κατάσταση
g
Δεν έχει ανατεθεί τιμή σε καμία μεταβλητή
n
Ενέργειες
g
Δώσε σε μια μεταβλητή X
i
(που δεν έχει τιμή) μια τιμή από το D
i
n
Τεστ Στόχου
g
Έχει γίνει ανάθεση τιμών σε όλες τις μεταβλητές και όλοι οι περιορισμοί
ικανοποιούνται

ΤΜΗΜΑ ΜΠΕΣ
ικανοποιούνται
n
Η σειρά εκτέλεσης των ενεργειών δεν έχει σημασία
g
Μπορούμε να το εκμεταλλευτούμε αυτό!
Ο Χώρος Αναζήτησης των CSPs
n
Το μέγεθος του χώρου αναζήτησης είναι πεπερασμένο
n
Το βάθος του δέντρου αναζήτησης είναι συγκεκριμένο
g
Ίσο με το πλήθος των μεταβλητών
n
Οι λύσεις βρίσκονται πάντα στα φύλλα του δέντρου αναζήτησης
20
ΤΜΗΜΑ ΜΠΕΣ
Φύλλα
11
11
Αλγόριθμοι Αναζήτησης για CSPs
n
Ποιος αλγόριθμος αναζήτησης φαίνεται να ταιριάζει σε CSPs ?
n
Breadth-First Search ?
g
Όχι! Η BFS δε θα είναι αποτελεσματική γιατί οι λύσεις βρίσκονται στα
φύλλα
n
Depth-First Search ?
g
Καλύτερη από την BFS. Αλλά συχνά θα σπαταλάει χρόνο αναζητώντας
ενώ έχουν ήδη παραβιαστεί περιορισμοί
21
ΤΜΗΜΑ ΜΠΕΣ
n
Hill Climbing ?
g
Ναι όταν μας ενδιαφέρει κυρίως η ταχύτητα
Αλγόριθμοι Αναζήτησης για CSPs
n
Θα μελετήσουμε παραλλαγές του DFS ειδικά για CSPs.
g
Οι αλγόριθμοι αυτοί βασίζονται στην ιδέα της αναζήτησης με
θ δ ό
(
b k ki h)
οπισ
θ
ο
δ
ρ
ό
μηση
(
b
ac
k
trac
ki
ng searc
h)
n
Simple or Chronological Backtracking (BT)
n
Backjumping (BJ)
n
Forward Checking (FC)
n
Maintaining Arc Consistency (MAC)
22
ΤΜΗΜΑ ΜΠΕΣ
n
Επίσης μια παραλλαγή του hill climbing
g
Min-conflicts
12
12
Chronological Backtracking (ΒΤ)
n
Η βασική ιδέα σε όλους τους αλγόριθμους οπισθοδρόμησης είναι να
ξεκινάμε με μια μερική λύση (δηλ. μερική ανάθεση μεταβλητών) και
ίζ θέ έ ά
λή λύ
να συνεχ
ίζ
ουμε τις ανα
θέ
σεις μ
έ
χρι να φτ
ά
σουμε σε π
λή
ρη
λύ
ση
n
Ο ΒΤ ακολουθεί αυτή την τεχνική
g
Αν φτάσει σε αδιέξοδο (dead end) οπισθοδρομεί στην αμέσως
προηγούμενη επιλογή του
• Αδιέξοδο έχουμε όταν δε μπορούμε να κάνουμε ανάθεση τιμής σε
βλ ή ί β ί ά ό

ΤΜΗΜΑ ΜΠΕΣ
μετα
βλ
ητ
ή
χωρ
ί
ς να παρα
β
ιαστε
ί
κ
ά
ποιος περιορισμ
ό
ς
g
και δοκιμάζει μια άλλη τιμή για τη συγκεκριμένη μεταβλητή
Chronological Backtracking (ΒΤ)
προηγούμενες μεταβλητές
μεταβλητή 0
μεταβλητή 1
μεταβλητή 2
(τρέχουσα μεταβλητή)
μ
ετα
β
λ
η
τ
ή
3
τ
ρ
έ
χ
ουσα ανάθεσ
η
{
{
a
b
a
a
a
a
a a
a
b
b
bb
b
b
24
ΤΜΗΜΑ ΜΠΕΣ
λύση
μ β η ή
μεταβλητή 4
ρ χ η
{
μελλοντικές μεταβλητές
a
b
b
13
13
Chronological Backtracking (ΒΤ)
25
ΤΜΗΜΑ ΜΠΕΣ
Chronological Backtracking (ΒΤ)
n
Αξιολόγηση
n
Πλήρης ?
Ν
g
Ν
α
ι
n
Χρόνος:Ο(δ
n
e)
g
όπου δ το μέγιστο μέγεθος πεδίου ορισμού, n το πλήθος των
μεταβλητών, και e το πλήθος των περιορισμών
n
Χώρος:Ο(nδ)
g
ο χώρος που απαιτείται για την αποθήκευση των πεδίων ορισμού όλων
των μεταβλητών

ΤΜΗΜΑ ΜΠΕΣ
των

μεταβλητών
n
Οι πολυπλοκότητες ισχύουν υποθέτοντας ότι οι περιορισμοί
αποθηκεύονται σε σταθερή ποσότητα χώρου και οι έλεγχοι
περιορισμών γίνονται σε σταθερό χρόνο
14
14
Backtracking example
27
Backtracking example
28
15
15
Backtracking example
29
Backtracking example
30
16
16
GT & BT – Παράδειγμα 1
n
Πρόβλημα:
X::{1,2}, Y::{1,2}, Z::{1,2}
X Y
X
Z Y > Z
X
=
Y
,
X

Z
,
Y

>

Z

generate & test backtracking
X Y Z test
1 1 1 fail
1 1 2 fail
1 2 1 fail
1
2
2
f il
X Y Z test
1 1 1 fail
2 fail
2 fail
2
1
f il
31
ΤΜΗΜΑ ΜΠΕΣ
1
2
2
f
a
il
2 1 1 fail
2 1 2 fail
2 2 1 passed
2
1
f
a
il
2 1 passed
GT & BT 4-queen πρόβλημα
Place 4 queens so that no two queens are
in attack.
1
2
3
Q
1
Q
2
Q
3
Q
4
3
4
Q
i
: line number of queen in column i, for 1≤i≤4
Q
1
, Q
2
, Q
3
, Q
4
∈ {1, 2, 3, 4}
Q
1
≠Q
2
, Q
1
≠Q
3
, Q
1
≠Q
4
,
Q
2
≠Q
3
, Q
2
≠Q
4
, Q
3
≠Q
4
,
Q
Q
1 Q
Q
+1 Q
Q
2 Q
Q
+2
32
ΤΜΗΜΑ ΜΠΕΣ
Q
1

Q
2
-
1
,
Q
1

Q
2
+1
,
Q
1

Q
3
-
2

Q
1

Q
3

,
Q
1
≠Q
4
-3, Q
1
≠Q
4
+3,
Q
2
≠Q
3
-1, Q
2
≠Q
3
+1, Q
2
≠Q
4
-2, Q
2
≠Q
4
+2,
Q
3
≠Q
4
-1, Q
3
≠Q
4
+1
17
17
4-queen πρόβλημα
1
2
Q
1
Q
2
Q
3
Q
4
3
4
Υπάρχουν συνολικά 256 δυνατές αναθέσεις τιμών
Ο GT αλγόριθμος θα παράγει
64
?.???.?????1?0???"???0
Q
=1;
33
ΤΜΗΜΑ ΜΠΕΣ
64
αναθέσεις

με
Q
1
㴱=
⬴8 αναθέσεις με Q
1
=2, 1≤Q
2
≤3;
+ 3 αναθέσεις με Q
1
=2, Q
2
=4, Q
3
=1;
= 115 αναθέσεις μέχρι να βρει
την πρώτη λύση
4-queen πρόβλημα, BT αλγόριθμος
1
2
3
Q
1
Q
2
Q
3
Q
4
1
2
3
Q
1
Q
2
Q
3
Q
4
3
4
3
4
1
2
3
4
Q
1
Q
2
Q
3
Q
4
34
ΤΜΗΜΑ ΜΠΕΣ
1
2
3
4
Q
1
Q
2
Q
3
Q
4
1
2
3
4
Q
1
Q
2
Q
3
Q
4
18
18
Έξυπνο Backtracking
n
O ΒΤ υποφέρει από το φαινόμενο του thrashing
g
επισκέπτεται ξανά και ξανά τις ίδιες περιοχές του δέντρου αναζήτησης
δή έ λύ ή ό βλή
επει
δή

έ
χει πο
λύ
τοπικ
ή
εικ
ό
να του προ
βλή
ματος
n
Ένας τρόπος απαλοιφής του προβλήματος είναι οι αλγόριθμοι
έξυπνης οπισθοδρόμησης (intelligent backtracking)
n
Ο backjumping (BJ) διαφέρει από τον ΒΤ στο εξής:
g
Όταν φτάνει σε αδιέξοδο, ο BJ δεν οπισθοδρομεί στην αμέσως
35
ΤΜΗΜΑ ΜΠΕΣ
προηγούμενη μεταβλητή. Αλλά οπισθοδρομεί στην πιο βαθιά μεταβλητή
στο δέντρο αναζήτησης που είναι σε αντίθεση με την τρέχουσα
μεταβλητή
Απλό Παράδειγμα – Χρωματισμός Χαρτών
Θέλουμε να χρωματίσουμε κάθε
περιοχή στο χάρτη
έτσι ώστε γειτονικές περιοχές να
έχουν διαφορετικό χρώμα
n
DzȤȠȣȝİ IJȡȓĮȤȡȫȝĮIJĮ
36
ΤΜΗΜΑ ΜΠΕΣ
n
DzȤȠȣȝİ

τρία

χρώματα
牥r Ⱐ杲敥g Ⱐ扬略
19
19
BJ vs. BT
n
Ας σκεφτούμε τι κάνει ο ΒΤ στο πρόβλημα χρωματισμού χάρτη
g
Υποθέτουμε ότι η ανάθεση μεταβλητών γίνεται με τη σειρά Q, NSW, V,
T
SA
WA
NT
T
,
SA
,
WA
,
NT
g
Ας υποθέσουμε ότι έχουμε φτάσει στη μερική ανάθεση τιμών
Q = red, NSW= green, V = blue, T = red
g
Όταν δοκιμάσουμε να δώσουμε τιμή στην επόμενη μεταβλητή SA,
βλέπουμε ότι όλες οι τιμές παραβιάζουν κάποιον περιορισμό
37
ΤΜΗΜΑ ΜΠΕΣ
• Αδιέξοδο!
g
Ο ΒΤ μας λεει τώρα να οπισθοδρομήσουμε και να δοκιμάσουμε μια νέα
τιμή για την Τ!
• Not a good idea!
BJ vs. BT
n
O BJ έχει μια πιο έξυπνη προσέγγιση στην οπισθοδρόμηση
g
Μας λεει να γυρίσουμε πίσω σε μια από τις μεταβλητές που είναι
υπεύθυνες για το αδιέξοδο
υπεύθυνες

για

το

αδιέξοδο
g
Το σύνολο αυτό μεταβλητών ονομάζεται σύνολο συγκρούσεων (conflict
set)
g
Το conflict set για την SA είναι {Q, NSW, V}
g
O BJ οπισθοδρομεί στην πιο βαθιά μεταβλητή του conflict set της
μεταβλητής όπου συναντήσαμε αδιέξοδο
38
ΤΜΗΜΑ ΜΠΕΣ
• πιο βαθιά = αυτή που επισκεφτήκαμε πιο πρόσφατα
n
O BJ ανήκει στην οικογένεια αλγορίθμων οπισθοδρόμησης που
ονομάζονται lookback αλγόριθμοι
20
20
Forward Checking
n
O Forward Checking (FC) ανήκει στην οικογένεια αλγορίθμων
οπισθοδρόμησης που ονομάζονται lookahead αλγόριθμοι
g
Η βασική ιδέα του lookahead είναι ότι μόλις ανατεθεί μια τιμή σε μια
μεταβλητή το μέγεθος του προβλήματος ελαττώνεται μέσω της
διάδοσης περιορισμών (constraint propagation)
• Η διάδοση περιορισμών ορίζεται διαφορετικά για κάθε lookahead
αλγόριθμο
n
O FC
???????0???2? ?0?????":
39
ΤΜΗΜΑ ΜΠΕΣ
n
O

FC

κάνει

το

εξής:
g
Μόλις μια μεταβλητή x πάρει μια τιμή v, για κάθε μελλοντική
μεταβλητή y που εμφανίζεται σε περιορισμό μαζί με τη x αφαιρούνται
από το D
y
όλες οι τιμές που δεν είναι συμβατές με τη v
Forward Checking
n
Αν το πεδίο ορισμού κάποιας μεταβλητής μείνει άδειο τότε
απορρίπτεται η τιμή v για τη x και δοκιμάζουμε την επόμενη
n
Η λειτουργία του FC έχει ως αποτέλεσμα να ισχύει το εξής σε κάθε
βήμα της αναζήτησης:
g
Όλες οι τιμές κάθε μελλοντικής μεταβλητής (Όλες οι τιμές κάθε μελλοντικής μεταβλητής (future variablefuture variable) είναι ) είναι
συμβατές με όλες τις τιμές που έχουν ανατεθεί σε προηγούμενες συμβατές με όλες τις τιμές που έχουν ανατεθεί σε προηγούμενες
μεταβλητές (μεταβλητές (past variables)past variables)
40
ΤΜΗΜΑ ΜΠΕΣ
n
O FC διατηρεί μια περιορισμένη μορφή συνέπειας τόξου (arc
consistency)
21
21
O FC σε λειτουργία
R G B R G B R G B R G B R G B R G B R G B
WA
NT
Q
NSW
V
T
SA
Αρχικά πεδία τιμών
41
ΤΜΗΜΑ ΜΠΕΣ
R G B R G B R G B R G B G B R G B
R B G R B R G B B R G B
R B G R B R G B
Μετά από WA=R
Μετά από Q=G
Μετά από V=B
Constraint Propagation
n
Ο

διαδίδει την πληροφορία από τις μεταβλητές που έχουν

n
Ο


διαδίδει

την

πληροφορία

από

τις

μεταβλητές

που

έχουν

ανατεθεί τιμές σε αυτές που δεν έχουν ακόμα ανατεθεί τιμές
n
Δεν εντοπίζει έγκαιρα όλες τις αποτυχημένες αναθέσεις τιμών
ΤΜΗΜΑ ΜΠΕΣ
22
22
Consistency Techniques (Τεχνικές Συνέπειας)
n
Διαγράφουν μη-συνεπείς τιμές από τα πεδία ορισμού των
μεταβλητών
g
Μπορούν να εφαρμοστούν πριν ή κατά τη διάρκεια της
αναζήτησης
n
Για δυαδικά CSPs:
g
Συνέπεια κόμβου (node consistency - NC)
g
Συνέπεια τόξου
(
arc consistency
-
AC)
A
A>5
A≠B
A<C
43
ΤΜΗΜΑ ΜΠΕΣ
Συνέπεια

τόξου

(
慲a

捯湳楳瑥湣c
䅃A
g
Συνέπεια μονοπατιού (path consistency - PC)
g
k-συνέπεια (k-consistency)
B
C
B=C
Συνέπεια Κόμβου (Node Consistency)
n
Μια μεταβλητή X είναι node consistent αν κάθε τιμή a της Χ είναι
συνεπής με κάθε μοναδιαίο (unary) περιορισμό στη Χ
n
Π.χ. D(X) = {0,1,2,3,4}
X > 1
X ≠ 4
Η εφαρμογή του node consistency θα δώσει D(X) = {2,3}
n
Αυτ
ή

η
τε
χ
νικ
ή

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

Υ
τέτοια

ώστε

η

a
και

b
να

είναι

συμβατές

• Τότε λέμε ότι η a υποστηρίζει (supports) την b
• Ένας αλγόριθμος που εφαρμόζει arc consistency σβήνει τιμές από το
πεδίο ορισμού μιας μεταβλητής όταν αυτές δεν υποστηρίζονται από
καμία τιμή σε μια άλλη μεταβλητή
a
a
a
n
Είναι η πιο ευρέως
διαδεδομένη τεχνική
συνέπειας
(
απομακρύνει

ΤΜΗΜΑ ΜΠΕΣ
a
b
c
a
b
c
X
Y
a
b
c
Z
συνέπειας
(
απομακρύνει

αρκετές τιμές με χαμηλό
κόστος)
n
Επεξεργάζεται έναν-έναν
τους δυαδικούς
περιορισμούς
Arc Consistency - Παράδειγμα
NT
WA
SA
Q
NSW
{
B
}
{R,B}
Δεν είναι arc consistent
(B δεν έχει υποστήριξη
στη SA)
46
ΤΜΗΜΑ ΜΠΕΣ
V
T
{
}
24
24
AC - Παράδειγμα
n
Πρόβλημα:
X::{1,2}, Y::{1,2}, Z::{1,2}
X
=
Y,
X

娬 Y
>
Z
X


X




Y

Z
1 2
1 2
1 2
1 2
X
X
Y
47
ΤΜΗΜΑ ΜΠΕΣ
1 2
1 2
Y
Z
Y
Z
AC - Παράδειγμα
n
Πρόβλημα:
X::{1,2}, Y::{1,2}, Z::{1,2}
X = Y,X ≠ Z, Y > Z
X Y Z action result
1 labelling
{1} {}
A
C propagatio
n
fail
2 labelling
{2} {1}
A
C propagatio
n
solution
48
ΤΜΗΜΑ ΜΠΕΣ
generate & test - 7 steps
backtracking - 5 steps
AC propagation - 2 steps
25
25
Είναι το AC αρκετό για πληρότητα?
n
Πρόβλημα:
X::{1,2}, Y::{1,2}, Z::{1,2}
X ≠ Y,X ≠ Z, Y ≠ Z
1 2
1 2
X
ΟΧΙ!
49
ΤΜΗΜΑ ΜΠΕΣ
1 2
Y
Z
Διάδοση Περιορισμών
n
Απλή συστηματική αναζήτηση => μη αποδοτική
n
Απλή εφαρμογή τεχνικών συνέπειας => μη πλήρης
n
ȈȣȞįȣĮıȝȩȢ ĮȞĮȗȒIJȘıȘȢ
(
? ?Œ???1??? ?/?!?)?????1???"
)
???0?2?0?$?????????"?1?#?????Œ?0???.?"
n
ȈȣȞįȣĮıȝȩȢ

αναζήτησης
(
οπισθοδρόμησης
)

με

τεχνικές

συνέπειας
n
Μέθοδοι:
g
look back (αντίδραση σε συγκρούσεις)
g
look ahead (αποτροπή συγκρούσεων)
look back
look ahead
50
ΤΜΗΜΑ ΜΠΕΣ
Σειρά μεταβλητών
26
26
AC-3
51
n
Χρονική πολυπλοκότητα O(n
2
d
3
)
ΤΜΗΜΑ ΜΠΕΣ
Arc Consistency
n
Arc consistency εφαρμόζουμε:
g
Ως προ-επεξεργαστικό (preprocessing) βήμα πριν ξεκινήσει η
ζή
ανα
ζή
τηση
• μειώνεται το μέγεθος του δέντρου αναζήτησης
g
Κατά τη διάρκεια της αναζήτησης μετά από κάθε ανάθεση τιμής σε
μεταβλητή
• constraint propagation →γρήγορη ανακάλυψη αδιεξόδων
52
ΤΜΗΜΑ ΜΠΕΣ
g
Ο αλγόριθμος αναζήτησης που εφαρμόζει arc consistency μετά από κάθε
ανάθεση τιμής σε μεταβλητή ονομάζεται MAC (maintaining arc
consistency)
27
27
Ευρετικές Μέθοδοι για CSPs
n
Οι αλγόριθμοι αναζήτησης μπορούν να γίνουν πολύ
αποτελεσματικοί αν μπορέσουμε να απαντήσουμε στα παρακάτω:
1)
1)
Ποια θα είναι η επόμενη μεταβλητή ?
2)
Ποια τιμή να της δώσω ?
n
Ευρετικές μέθοδοι βοηθούν τους αλγόριθμους να παίρνουν σωστές
αποφάσεις
53
ΤΜΗΜΑ ΜΠΕΣ
Ποια μεταβλητή να διαλέξω;
n
Διάλεξε την μεταβλητή με τις λιγότερες δυνατές τιμές
n
minimum remaining values (MRV) heuristic
n
Αν υπάρχουν πολλές?
g
Διάλεξε μια στην τύχη
g
Διάλεξε τη μεταβλητή με το μεγαλύτερο βαθμό στον αρχικό γράφο
περιορισμών
g
Διάλεξε τη μεταβλητή με το μεγαλύτερο μελλοντικό βαθμό (δηλ. αυτή που
εμπλέκεται στους περισσότερους περιορισμούς με μελλοντικές μεταβλητές)
54
28
28
Ποια μεταβλητή να διαλέξω;
n
Διάλεξε την μεταβλητή με τους πιο πολλούς περιορισμούς στις
εναπομείναντες μεταβλητές
55
Ποια τιμή της μεταβλητής να επιλέξω;
n
Διάλεξε την λιγότερο περιοριστική τιμή:
g
Αυτήν που αποκλείει τις λιγότερες τιμές από τις υπόλοιπες μεταβλητές
56
29
29
Τοπική Αναζήτηση για Προβλήματα Περιορισμών
n
Οι αλγόριθμοι τοπικής αναζήτησης (Hill-climbing, simulated
annealing) χρησιμοποιούν πλήρη αναπαράσταση
g
Κατάστασ
η
: Όλε
ς
οι
μ
ετα
β
λ
η
τέ
ς
έ
χ
ουν
μ
ία ανάθεσ
η
η ς μ β η ς χ μ η
n
Για να εφαρμοστούν σε προβλήματα περιορισμών:
g
Επέτρεψε καταστάσεις με περιορισμούς που δεν ικανοποιούνται
g
Σε κάθε βήμα ανατίθεται διαφορετική τιμή σε κάποια μεταβλητή
n
Επιλογή μεταβλητής: διάλεξε τυχαία οποιαδήποτε μεταβλητή που
συ
μμ
ετέ
χ
ει σε πε
ρ
ιο
ρ
ισ
μ
ό που δεν ικανοποιείτα
ι
57
ΤΜΗΜΑ ΜΠΕΣ
μμ χ ρ ρ μ
n
Επιλογή τιμής με το min-conflicts heuristic:
g
Διάλεξε την τιμή που παραβιάζει τους λιγότερους περιορισμούς
g
hill-climbing με h(n) = αριθμός περιορισμών που παραβιάζονται
Παράδειγμα
n
Από μία τυχαία αρχική κατάσταση, μπορεί να επιλύσει το πρόβλημα
n-
q
ueens σε σ
χ
εδόν σταθε
ρ
ό
χρ
όνο
γ
ια αυθαί
ρ
ετο n
μ
ε
μ
ε
γ
άλ
η

58
q
χ ρ χρ γ ρ
μ μ γ η
πιθανότητα (π.χ., n = 10.000.000)
ΤΜΗΜΑ ΜΠΕΣ
30
30
Σύγκριση Αλγορίθμων
n
Μέσο πλήθος ελέγχων συνέπειας που απαιτούνται για την επίλυση
του κάθε προβλήματος
59
ΤΜΗΜΑ ΜΠΕΣ