You are on page 1of 43

Tr Tu Nhn To

Nguyn Nht Quang


quangnn-fit@mail.hut.edu.vn
Vin Cng ngh Thng tin v Truyn thng
Trng i hc Bch Khoa H Ni
Nm hc 2009-2010

Ni dung mn hc:

Gii thiu v Tr tu nhn to

Tc t

Gii quyt vn : Tm kim, Tha mn rng buc

Logic v suy din

Biu din tri thc

Suy din vi tri thc khng chc chn

Hc my

Lp k hoch
Tr tu nhn to

Rng
g buc

Mt rng buc (constraint) l mt quan h trn mt tp cc bin

Mt rng buc c th c biu din bng

Mi bin c (g
(gn vi)) mt tp
p cc g
gi tr c th nhn g
gi l min
gi tr (domain)
Trong mn hc ny, chng ta ch xt cc min hu hn cc gi tr
ri rc
Mt biu thc (ton hc / logic)
Mt bng lit k cc php gn gi tr ph hp cho cc bin

V d v rng buc

Tng cc gc trong mt tam gic l 180o


di ca t W l 10 k t
X nh hn Y
Tun c th tham d bui seminar vo th 4 sau 14h

Tr tu nhn to

Bi ton tha mn rng


g buc

Mt bi ton tha mn rng


buc (Constraint Satisfaction
Problem CSP) bao gm:

Mt tp hu hn cc bin X
Min gi tr (mt tp hu hn cc
gi tr) cho mi bin D
Mt tp hu hn cc rng buc C

Mt li gii (solution) ca bi ton


tha mn rng buc l mt php
gn y cc gi tr ca cc
bin sao cho tha mn tt c cc
rng buc
Mt bi ton tha mn rng buc
thng
g c biu din bng
g mt
th (graph)
Tr tu nhn to

V d:
Cc bin x1,,x6.
Min gi tr {0,1}.
Cc rng buc:
x1+x2+x6=1
X1-x3+x4=1
x4+x5-x6>0
x2+x5-x6=0
4

V d: Bi ton t mu bn (1)
Cc

bin: WA, NT, Q, NSW,


V, SA, T
Cc min gi tr: Di = {red,
green, blue}
Cc

rng buc: Cc vng lin


k nhau phi c mu khc
nhau

d:

WA NT
(WA,NT) = {(red,green),
(red,blue),
(green red)
(green,red),
(green,blue),
(blue,red),
(blue,green)}

Tr tu nhn to

V d: Bi ton t mu bn (2)

Cc li gii l cc php
gn y v chnh xc
(tha mn tt c cc rng
buc)

V d: WA=red,
NT=green, Q=red,
NSW=green,
S
V=red,
SA=blue, T=green

th cc rngg buc

i vi bi ton tha mn
rng buc nh phn (binary
CSP): Mi rng buc ch
lin quan n 2 bin

th cc rng buc
(constraint graph)

Cc nt biu din cc bin


Cc cnh biu din cc rng
buc

Tr tu nhn to

Cc kiu bi ton tha mn rngg buc

Cc bin ri rc

Cc min gi tr hu hn

Cc min gi tr v hn

Vi n bin v kch thc min gi tr d, th s lng cc php gn


y gi tr cn xt l O(dn)
V d: Cc bi ton tha mn rng buc nh phn (Boolean CSPs)
Min gi tr cc s nguyn, cc chui, ...
V d: Trong bi ton xp lch cng vic, cc bin l cc ngy bt
u v kt thc i vi mi cng
g vic

Cn mt ngn ng biu din rng buc (constraint language), v d:


StartJob1 + 5 StartJob3

Cc bin lin tc

V d: Cc mc thi gian bt u v kt thc i vi cc quan


st bng knh vin vng khng gian Hubble
Bi ton cc rng buc tuyn tnh c th gii quyt c mc
chi ph thi gian a thc bng
phng php lp trnh tuyn
tnh
Tr tu nhn to

Cc kiu rngg buc

Rng buc n (unary constraint) ch lin quan n 1


bin

Rng buc nh phn (binary constraint) lin quan n 2


bin

V d: SA green

V d: SA WA

Rng buc bc cao (higher-order constraint) lin quan


n nhiu hn 2 bin

V d: Cc rng buc trong bi ton mt m s


hc (trnh by
slide tip theo)

Tr tu nhn to

V d: Bi ton mt m s hc

Cc bin: F T U W R O X1 X2 X3 (cc nh ca cc php +)


Min gi tr: {0,1,2,3,4,5,6,7,8,9}
Cc rng buc: Gi tr ca cc bin
(F,T,U,W,R,O) khc nhau

O + O = R + 10 * X1
X1 + W + W = U + 10 * X2
X2 + T + T = O + 10 * X3
X3 = F
T0
F0
Tr tu nhn to

10

Cc bi ton CSP trongg thc t

Cc bi ton giao nhim v

V d
d: Gio
G o vin
no
o dy lp
p no?
o

Cc bi ton lp thi kha (gian) biu

V d: Lp hc no c dy vo thi gian no v u?

Cc bi ton lp lch vn ti (giao hng) ca cc


cng ty

Cc bi ton lp lch sn xut ca cc nh my

Lu : Nhiu bi ton thc t lin quan n cc


bin c gi tr thc (lin tc)

Tr tu nhn to

11

Tm kim bng
g kim th (1)
( )

L phng php gii quyt vn tng qut nht

Phng php gii quyt bng kim th (Generate and


Test)

Sinh ra mt kh nng (candidate) ca li gii

Kim tra xem kh nng ny c thc s l mt li gii

dng
p
d
phng
h
php
h kim
ki th i vi
i bi ton
t CSP

Bc 1. Gn cc gi tr cho tt c cc bin
Bc 2. Kim tra xem tt c cc rng
g buc
c
tha mn hay
y
khng
Lp li 2 bc ny cho n khi tm c mt php gn tha mn

Tr tu nhn to

12

Tm kim bng
g kim th (2)
( )

im yu nghim trng ca phng php tm kim bng


kim th l vic phi xt qu nhiu cc kh nng gn
(hin nhin) khng tha mn cc rng buc

V d

Cc bin X,Y,Z ly cc gi tr {1,2}

Cc rng b
buc:
c X=Y,
X Y XZ,
X Z Y>Z

Cc php (kh nng) gn: (1,1,1); (1,1,2); (1,2,1);


(1 2 2); (2
(1,2,2);
(2,1,1);
1 1); (2
(2,1,2);
1 2); (2,2,1)
(2 2 1)

Tr tu nhn to

13

Tm kim bng
g kim th (3)
( )

Lm th no ci thin phng php kim th?

Sinh
Si
h ra cc
kh nng
(cc
( php
h gn
gi
i ttr)
) mt
t cch
h
thng minh hn
Khng theo th t tun t
S dng cc kt qu (thng tin) thu c t bc
kim tra (bc 2)
Pht hin sm (t trc) cc mu thun
Cc rng buc c kim tra ngay sau khi mi bin
c gn gi tr (ch khng phi i n khi tt c
cc bin c gn gi tr)

Tr tu nhn to

14

Tm kim q
quay
y lui (1)
( )

Tm kim quay lui (backtracking) l gii thut tm kim


c s dng ph bin nht trong CSP

Da trn gii thut tm kim theo chiu su (depth-first search)


Mi ln gn, ch lm vic (gn gi tr) cho mt bin
(T kim
(Tm
ki b
bng ki
kim th
th: mi
i l
ln gn
xc

nh
h cc
gi
i ttr cho
h tt
c cc bin)

Phng php tm kim quay lui i vi bi ton CSP

Gn gi tr ln lt cho cc bin Vic gn gi tr ca bin ny


ch c lm sau khi hon thnh vic gn gi tr ca bin khc
Sau mi
S
php
gn
gi
tr cho mt
bin
no
,
kim
tra cc
rng

buc c c tha mn bi tt c cc bin c gn gi tr


cho n thi im hin ti Quay lui (backtrack) nu c li
(khng tha mn cc rng buc)
Tr tu nhn to

15

Tm kim q
quay
y lui (2)
( )

Cc yu t nh hng n phng php tm kim quay


lui

Th t c xt ca cc bin?

u tin xt trc cc bin c t gi tr (min gi tr nh)

u tin xt trc cc bin tham gia vo nhiu rng buc

u tin cc bin quan trng hn (c nh ngha ty vo bi


ton c th)

Vi mi bin, th t c xt ca cc gi tr?

Th
t u ttin
ca cc g
gi
ttr vi
mi
b
bin
c
nh ngha
g a ty
thuc vo bi ton c th

Tr tu nhn to

16

Gii thut tm kim qquay lui

Tr tu nhn to

17

Tm kim qquay lui V d (1)

Tr tu nhn to

18

Tm kim qquay lui V d (2)

Tr tu nhn to

19

Tm kim qquay lui V d (3)

Tr tu nhn to

20

Tm kim qquay lui V d (4)

Tr tu nhn to

21

Tm kim quay lui Cc vn (1)

Lp i lp li li

L d
do: B i (kh
(khng kh
khaii th
thc)) l d
do ca
mu
th
thun

V d:
Cc
C bi
bin A
A,B,C,D,E
B C D E l
ly cc
gi
i ttr trong
t
min
i 1..10
1 10
Rng buc: A>E
Phng php tm kim quay lui th tt c cc kh
nng gn gi tr cho cc bin B,C,D cho n khi
pht hin ra rng A1
Gii php: Phng php Backjumping (chuyn n
xt t ch sinh ra li)
Tr tu nhn to

22

Tm kim quay lui Cc vn (2)

Cc thao tc (kim tra) khng cn thit

Lp li cc kim tra rng buc khng cn thit


V d:
Cc bin
A,B,C,D,E ly
cc gi tr trong min
1..10
Cc rng buc: B+8<D; C=5*E
Khi gn gi tr cho cc bin C
C,E,
E th cc gi tr 1..9
1 9
c kim tra (lp i lp li) i vi bin D
Gii php: Phng php Backchecking (lu gi / nh
li cc php gn tt v khng tt)

Tr tu nhn to

23

Tm kim quay lui Cc vn (3)

Pht hin mun cc mu thun (vi phm rng buc)

Cc vi phm rng buc ch c pht hin sau khi cc


gi tr c gn
V d:
d
Cc bin A,B,C,D,E ly cc gi tr trong min 1..10
Rng buc: A=3
A=3*E
E
Ch n khi gn gi tr cho bin E th mi pht hin
ra rng A>2
Gii php: Phng php Forward checking (kim tra
trc cc rng buc)
Tr tu nhn to

24

Tm kim quay lui Ci thin

Hiu qu ca phng php tm kim quay lui trong CSP


c th c ci thin bng

Th t xt cc bin ( gn gi tr)

Th tt xt
t (gn)
( ) cc
gi
i ttr i vi
i mi
i bi
bin

Pht hin sm cc li (vi phm rng buc) s xy ra

Tr tu nhn to

25

Bin b rngg buc nhiu nht

Quy tc la chn th t xt cc bin: u tin bin b


rng buc nhiu nht (most constrained variable)

Chn bin c s lng cc gi tr hp l t nht


V d:
d Ti
T ib
bc
S2, bin
bi NT c

chn
h v n
c
s

lng cc gi tr hp l t nht (2)


(S2)

Cn c gi l quy tc u tin cc bin c tp gi tr


hp l nh nht (Minimum Remaining Values MRV)
Tr tu nhn to

26

Bin rng buc cc bin khc nhiu nht

Khi c >=2 bin c nh nhau s lng gi tr hp l t


nht th chn bin no?
nht,

V d: Trong v d trc, 2 bin NT va SA c cng s lng gi


tr hp l t nht (2)

Chn bin rng buc (khng ch) cc bin khc (cha


c gn gi tr) nhiu nht

V d: Ti bc S2, tuy cng mc b rng buc,


buc nhng bin
SA nn c xt trc bin NT v SA rng buc 5 bin khc,
cn NT ch rng buc 3 bin khc
S2

Tr tu nhn to

27

Gi tr rngg buc cc bin khc t nht

i vi mt bin, cc gi tr c xt ( gn) theo th


t no?

Chn gi tr rng buc (khng ch) cc bin khc (cha

c
gn
gi
i ttr)
) t nht
ht

Gi tr ny gy ra hn ch ti thiu i vi cc kh nng
gn g
g
gi tr ca cc bin khc

Tr tu nhn to

28

Kim tra tin (Forward checking)


g

Mc ch: Trnh cc tht bi, bng kim tra trc cc


rng buc

Kim tra tin m bo s ph hp (consistency) gia


bin ang c xt gn gi tr v cc bin khc c lin
quan (rng buc) trc tip vi n

tng:

mi bc gn gi tr, theo di cc gi tr hp l (c th c
gn) i vi cc bin cha c gn gi tr
Loii b (dng)
L
(d ) hng
h t
tm kim
ki hin
hi ti
t i khi c
bt k mt
t bin
bi
(cha c gn gi tr) no khng cn gi tr hp l

Tr tu nhn to

29

Kim tra tin V d (1)

Tr tu nhn to

30

Kim tra tin V d (2)

Tr tu nhn to

31

Kim tra tin V d (3)

Tr tu nhn to

32

Kim tra tin V d (4)

Tr tu nhn to

33

Lan truyn cc rngg buc

Kim tra tin gip lan truyn thng tin (rng buc) t cc bin
c gn gi tr n cc bin cha c gn gi tr
Nhng: Phng php kim tra tin khng th pht hin
trc (ngn chn) c tt c cc tht bi

V d: NT v SA khng th cng l mu xanh!

Lan truyn cc rng buc ch m bo tnh ph hp cc b


(local consistency) ca cc rng buc
Tr tu nhn to

34

Ph hp cnh trong th rng buc (1)

Trong th rng buc, mt cnh (X Y) c gi l ph


hp (consistent) v rng buc, khi v ch khi i vi mi gi
tr x ca bin
X u
c mt gi tr y ca bin
Y sao cho rng
buc gia 2 bin X v Y c tha mn

h ngha
nh
h v
ph
h h
hp cnh
h kh
khng c
t
tnh
h i xng

(X Y) l ph hp khng c ngha l (Y X) l ph hp!

V d: ((SA NSW)) l ph
p hp,
p nhng
g ((NSW SA)) khng
g

Tr tu nhn to

35

Ph hp cnh trong th rng buc (2)

cnh (X Y) l ph hp rng buc, th cn loi b


bt k gi tr x ca bin X m khng c gi tr y no
ca bin Y lm cho rng buc gia 2 bin X v Y c
tha mn

cnh (NSW SA) l ph hp rng buc, th cn


phi

loi b gi tr mu xanh (blue) khi danh sch cc gi tr


hp l i vi bin NSW

Tr tu nhn to

36

Ph hp cnh trong th rng buc (3)

Sau khi loi b mt gi tr x khi danh sch cc gi tr hp l


ca bin X,, th cn xt li
tt c cc cnh
rng
g buc
trc
tip
p
ti bin X: xt li mi cnh ( X)

V d: Sau khi loi b gi tr mu xanh (blue) ca bin NSW, th


cn xt li cc cnh (V NSW),
NSW) (SA NSW) v (Q NSW)
cnh (V NSW) l ph hp rng buc, th cn loi b gi
tr mu (red) ca bin V

Tr tu nhn to

37

Ph hp cnh trong th rng buc (4)

Phng php ph hp cnh (Arc consistency) pht hin


c cc tht bi sm hn so vi phng php kim tra
tin (Forward checking)

Kim tra ph hp cnh c th c s dng trc hoc


sau mi php gn gi tr ca mt bin

Tr tu nhn to

38

Gii thut ph hp cnh AC-3

Tr tu nhn to

39

Tm kim cc b cho CSP (1)

Mc ch: s dng cc phng php tm kim cc


b (v d: hill-climbing,
hill climbing simulated annealing) cho bi ton
tha mn rng buc

Mi trng thi (ca khng gian tm kim) ng vi mt


php gn y gi tr cho tt c cc bin

Khng
gg
gian tm kim bao g
gm c cc trng
g thi trong
g cc rng
g
buc b vi phm
Dch chuyn trng thi = Gn gi tr mi cho cc bin

Trng thi ch = Trng thi trong tt c cc


rng buc c tha mn
Tr tu nhn to

40

Tm kim cc b cho CSP (2)

Qu trnh tm kim

La chn bin

gn gi tr mi? Chn ngu nhin
mt bin m gi tr ca n vi phm cc rng buc
i vi mt bin,
bin la chn gi tr mi? Da theo chin
lc min-conflicts: chn gi tr m n vi phm t nht cc
rng buc

V d: p dng phng php tm kim cc b Hillclimbing, vi hm c lng h(n) = tng s cc rng


b b vii phm
buc
h

Trng thi (ln cn) tip theo chuyn n (c xt) l trng thi
g vi gi
g tr hm h(n)
( ) tt hn ((=t rng
g buc
b vi p
phm
hn))
ng
Tr tu nhn to

41

V d bi ton 4 qqun hu

Cc trng thi: ng vi v tr ca 4 qun hu nm 4 ct

Ch c duy nht mt qun hu mi ct


Khng gian trng thi gm tng cng (4x4x4x4=) 256 trng thi

Cc hnh ng: di chuyn ca mt qun hu (no )


trong mt ct (ca n)
Trng thi ch: khng c qun hu no n nhau
Hm c lng: h(n) = tng s cc cp hu n nhau

Tr tu nhn to

42

Tha mn rngg buc Tngg kt

Trong mt bi ton tha mn rng buc (CSP) :

Mi trng thi tng ng vi mt php gn gi tr cho cc bin


Kim
tra trng thi ch = Kim
tra tp cc rng buc i
vi cc gi tr
ca cc bin

Phng php quay lui (Backtracking) = Tm kim theo chiu su


(Depth-first
(Depth
first search) vi mi nt tng ng vi mt php gn gi tr
cho mt bin
Cc chin lc chn th t xt cc bin v th t xt cc gi tr i
vi mt bin s nh hng quan trng n hiu qu ca qu trnh
tm li gii
Phng php tm kim tin (Forward checking) cho php ngn chn
cc php gn gi tr a n cc tht bi sau
Lan truyn rng buc (v d: phng php ph hp cnh Arc
consistency) cho php gii hn hn na cc gi tr hp l v cho
php pht hin cc mu thun
Phng php tm kim cc b s dng chin lc Min-conflicts
thng hiu qu trong nhiu bi ton thc t
Tr tu nhn to

43

You might also like