1. Problem Formulation as a CSP
: ๋ฌธ์ ์ํฉ์ ํํํ๋ ๋ฐฉ๋ฒ ์ค์์๋ factored represetation์ด ์๋ค. ์ด๋ค ๋ฌธ์ ๊ฐ ์ด๋ค ์ ํ์ฌํญ, ์กฐ๊ฑด๋ค(Constraint)๋ฅผ ๋ง์กฑ์์ผ์ผ ํ๋ฆฐ๋ค๊ณ ํด๋ณด์. Factored representation์ ๊ฐ states๋ฅผ variable์ ํ์ฉํด ํํํ๋ ๊ฒ์ด๊ณ (goal state ๋ํ ๊ทธ๋ ๋ค), ์ด variable์ ํ ๋น๋ value๊ฐ์ด constraint์ ๋ง์กฑํ๋ ๊ฐ์ผ ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๊ณ ๋งํ๋ ๊ฒ์ด๋ค.
์ฆ, ์ด๋ค ๊ฐ์ ํ ๋นํ ์ ์๋ variable๊ณผ ๋ ผ๋ฆฌ์ฐ์ฐ์๋ฅผ ์ด์ฉํด ์ด๋ค ๋ฌธ์ ์ํฉ์ ํํํ๋ค๊ณ ํ ๋, ์ด๋ฐ ๋ฌธ์ ๋ค์ Constraint Satisfaction Problem์ด๋ผ๊ณ ํ๋ค.
( ์ง๊ธ๊น์ง๋ autonomic representation์ ์ฌ์ฉํ์๋๋ฐ, ์ด์ ๋ถํฐ๋ state์ ๋ด๋ถ๋ฅผ ๋ค์ฌ๋ค ๋ด ๋ด๋ถ ์ ๋ณด์ ์ ๊ทผํ ๊ฒ์ด๋ค.)
CSP search algorithms์ structure of states์์ ์ด์ ์ ๊ฐ์ง๊ณ , ๋ฌธ์ ๋ณ๋ก ๋ค๋ฅธ heuristic์ ์ฌ์ฉํ๋ ๋์ ์ผ๋ฐ์ ์ธ general heuristics์ ์ฌ์ฉํด ๋ณต์กํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. constraints๋ฅผ ๋ง์กฑํ์ง ์๋ variable/value ์ ์กฐํฉ๋ค์ ์์๋ด, search space์ ๋ง์ ๋ถ๋ถ์ ํ๊บผ๋ฒ์ pruningํ์ฌ ์์ฐ์ผ๋ก์จ search space๋ฅผ ํ ๋ฒ์ ํ ์ค์ผ ์ ์๋ค.
CSP์ components์๋ X, D, C๊ฐ ์๋ค
โ X๋ ๋ณ์๋ค variables์ ์งํฉ์ด๋ค. {X1, X2, ... , XN}
โก D๋ ๊ฐ ๋ณ์๋ค๋ง๋ค ์ ์๋๋ domains์ ์งํฉ์ด๋ค.(์ ์์ญ) {D1, D2, ... , DN}
ํ ๋ณ์๋ Domain ์์ ๊ฐ๋ค ์ค์์ ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
โข C๋ constraints์ ์งํฉ์ผ๋ก, ํ์ฉ ๊ฐ๋ฅํ value๋ค์ ์กฐํฉ์ ๋งํ๋ค. ์ฆ ๋ณ์๋ค์ด ์ด๋ค ๊ฐ์ ๊ฐ์ ธ์ผ ํ๋์ง์ ๋ํ ์กฐ๊ฑด์ ๋งํ๋ค.
constraint๋ <Scope, rel> ์ ํ ์์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ฐ, scope ๋ ์กฐ๊ฑด์ ๊ตฌ์ฑํ๋ ๋ณ์๋ค์ ์งํฉ์ด๊ณ , rel์ ๊ทธ ๋ณ์๋ค์ด ๊ฐ์ง ์ ์๋ ๊ฐ๋ค์ด ์ด๋ค ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๋์ง์ ๋ํ relation ์ด๋ค. ์ฆ ์กฐ๊ฑด์ด๋ค.
ex) <(X1,X2) , X1 = X2 >
๋ํ์ ์ธ CSP๋ ๋ฐ๋ก ์ด ์์น ๋ฌธ์ ์ด๋ค. (b) ๊ทธ๋ํ์์ ์ธ์ ํ ๋ ์ ์ ์๋ ์๋ก ๋ค๋ฅธ value๋ฅผ ํ ๋นํ๋ ๋ฌธ์ ์ธ ๊ฒ์ด๋ค.
CSP๋ฌธ์ ๋ constraint graph๋ก ๋ณด๊ธฐ ํธํ๊ฒ ๋ฐ๊พธ๊ณค ํ๋ค. node๊ฐ ๊ฐ๊ฐ problem์ variable์ด ๋๊ณ , ๊ฐ์ ์ constraint์ ์กด์ฌํ๋ ๋ variable์ ์ด์ด์ค๋ค.
์ ๋ฌธ์ ๋ฅผ CSP๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
X = { WA, SA, V, NSW, Q, NT, T }
D = { D1, ..., D7 } , Di = {red, green, blue} // ๊ฐ variable์ red, green, blue์ ๊ฐ์ ๊ฐ์ง ์ ์๋ค. ๊ทธ๋ฐ variable์ด ์ด 7๊ฐ
C = { SA ≠ WA , SA ≠ NT ..., NSW ≠V} // ์ธ์ ํ ๋ ์ ์ ์ ์์ด ๋ฌ๋ผ์ผ ํ๋ค
๊ทธ๋์ ๊ฐ Variable์ ์ด๋ ํ value๋ฅผ ํ ๋นํ๋ ๊ฒ์ด CSP์์์ state์ด๋ค.
ex) {Xi = vi , Xj = vj , ... }
์ด๋ ๊ฒ ๋ชจ๋ variable์ ๊ฐ์ด ํ ๋น๋์๋ค๋ฉด complete assignment, variable์ ์ผ๋ถ์๋ง value๊ฐ์ด ํ ๋น๋์๋ค๋ฉด partial assignment๋ผ๊ณ ํ๋ค. ๋ํ assignment๊ฐ ์ด๋ ํ constraints๋ ์ด๊ธฐ์ง ์์๋ค๋ฉด ์ด๊ฒ์ consistent ๋๋ Legal assignment๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ฐ๋ผ์ CSP์์์ solution์ consistentํ๊ณ complete ํ asignment๊ฐ ๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋ฌธ์๋ก ๋ ๋ฌธ์ ๋ฅผ CSP๋ก ๋ํ๋ผ ์ ์์ด์ผ ํ๋ค.
EX) ์ฐจ์ ๋ถํ์ ๊ฒฐํฉํ์ : ์ , ๋ค ๋ฐํด ์ถ์ ๋ฌ๊ณ , ๋ค๊ฐ์ ๋ฐํด๋ฅผ ๊ณ ์ ์ํค๊ณ , ๊ฐ ๋ฐํด์ ๋ํธ๋ฅผ ๊ณ ์ ์ํค๊ณ , ๋ง๊ฐ์ฒ๋ฆฌ๋ฅผ ํด์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก ์ ํฉ์ณ์ก๋์ง ํ์ธํด์ผ ํ๋ค. ์ถ์ ๋ค๋๋ฐ๋ 10๋ถ, ๋ฐํด๋ค๋๋ฐ๋ 1๋ถ, ๋์ฌ์กฐ์ด๋๋ฐ๋ 2๋ถ์ด ๊ฑธ๋ฆฌ๊ณ ๋ง๊ฐ์ 3๋ถ์ด ๊ฑธ๋ฆฐ๋ค. ๋ํ ์ถ->๋ฐํด->๋์ฌ->๋ง๊ฐ ์์ผ๋ก ์งํ๋์ด์ผ ํ๋ค. 30๋ถ ์์ ์กฐ๋ฆฝํด๋ณด์.
X = { axles_f, axles_b, wheel_fr, wheel_fl, wheel_br, wheel_bl, nut_fr, nut_fl, nut_br, nut_bl, cap_fl, cap_fr, cap_bl, cap_br, inspect }
D = { D1, D2, ... , D15 } , Di = { 1, ... ,27 } // ๋ง์ง๋ง 3๋ถ์ ์ ๊ฒํ๋๋ฐ ์จ์ผํด์ ๋ฐ๋ผ์ ์ ๋จ๊ณ๊น์ง 27๋ถ ์ปท ํด์ผํจ
C = {
axles_f + 10 <= wheel_fr, axles_f + 10 <= wheel_fl,
(๋ฐํด ์ค์นํ๊ธฐ ์์ํ๋ ์๊ฐ์ ์ฐจ์ถ ์ค์นํ๊ณ ๋์ ์ต์ํ 10๋ถ์ด ํ๋ฅธ ๋ค์ด์ผ ํจ)
axles_b + 10 <= wheel_br, axles_b + 10 <= wheel_bl,
wheel_fr + 1 <= nut_fr, wheel_fl +1 <= nut_fl, wheel_br +1 <= nut_br, wheel_bl + 1 <= nut_bl,
nut_fr + 2 <= cap_fr,...
(axles_f + 10 <= axles_b) or (axles_b + 10 <= axles_f)}
∩ {X != Inspect | X + dx <= inspect }
๋ํ ์ซ์ ์ํธ ์ญ์ CSP๋ก ํ ์ ์๋ค.
X = { F, T, U, W, R, O, C3, C2, C1}
D = {D1,...,D9}, Di = {0,...9}
C = { F!=T!=U!=W!=R, O+O = 10*C1 + R, W+W+C1 = U + 10*C2, T+T+C2 = O+10*C3, C3 = F, F != 0 }
์ด ์ธ์๋ Sudoku, 8-queens ๋ฌธ์ ๋ฑ์ ํด๊ฒฐํ ์ ์๋ค.
Advantage of CSP
- CSP๋ ๋งค์ฐ ๋ค์ํ๊ณ ๋ง์ ๋ฌธ์ ๋ค์ ์์ฐ์ด์ฒ๋ผ naturalํ๊ฒ ํํํ ์ ์๋ค.
- ๊ทธ๋์ ๋ค๋ฅธ search technique์ ์ฌ์ฉํด ์ค๊ณํ๋ ๊ฒ๋ณด๋ค ๋ฌธ์ ์์ฒด๋ฅผ ํ์ฉํด ํด๊ฒฐํ๋ ๊ฒ์ด ๋ ์ฌ์ด ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
- CSP๋ก ๋ฌธ์ ๋ฅผ ํ๋ฉด ๋ค๋ฅธ state-space searchers๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๋ค. ์๋๋ฉด CSP ๋ generalํ ๋ฌธ์ ํ์ด ๋ฐฉ๋ฒ์ด ์์ด์ search space๋ฅผ ๋น ๋ฅด๊ฒ ์์ ๋๊ฐ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. CSP๋ฅผ ํตํด solution์ด ์๋ ๊ฒ, ์ฆ constraint๋ฅผ ์๋ฐฐํ๋ partial assignment๋ค์ ๋น ๋ฅด๊ฒ pruning ํด๋๊ฐ ์ ์๋ค!
'๐ก๐ธ๐ธ๐ถ5: ๐ฆ๐๐๐๐ถ ๐ฐ๐๐พ๐ > Artificial Intelligence(COSE361)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ธ๊ณต์ง๋ฅ] 7. Propositional logic - 2 (1) | 2021.04.25 |
---|---|
[์ธ๊ณต์ง๋ฅ] 7. Propositional logic - 1 (0) | 2021.04.24 |
[์ธ๊ณต์ง๋ฅ] 5. Adversarial Search(์ ๋์ ํ์) (0) | 2021.04.24 |
[์ธ๊ณต์ง๋ฅ] 4. Beyond Classical Search - 2 (0) | 2021.04.24 |
[์ธ๊ณต์ง๋ฅ] 4. Beyond Classical Search - 1 (0) | 2021.04.24 |