16. Hoïc heuristic vôùi giaûi thuaät hoïc quy naïp
caây quyeát
ñònh :
Cho baûng döõ lieäu nhieàu haøng vaø nhieàu coät thu
thaäp ñöôïc töø thöïc nghieäm.
Ñeå giuùp giaûi thuaät hoïc nhanh vaø coù hieäu quaû,
theo lyù thuyeát thoâng tin, nhaân toá quyeát ñònh naøo
trong baûng döõ lieäu giaønh ñöôïc thoâng tin lôùn nhaát
ñoù laø nhaân toá quyeát ñònh toát nhaát ñöôïc choïn
laøm goác cuûa caây trong quaù trình hoïc.
Caùch tính thoâng tin giaønh ñöôïc cuûa caùc nhaân toá
quyeát ñònh trong baûng döõ lieäu thu thaäp ñöôïc laø nhö
sau :
Thoâng tin veà nhaân toá muoán hoïc M ñoái vôùi baûng
döõ lieäu C ñöôïc tính baèng coâng thöùc laø∑=
−=
n
i
ii mpmpCI
1
2 ))((log)()(
17. trong ñoù, mi laø giaù trò thöù i cuûa nhaân toá muoán
hoïc M vaø p(mi) laø xaùc suaát cuûa maûnh thoâng tin
mi ñoái vôùi baûng döõ lieäu C ñoù chính laø soá maãu
trong baûng döõ lieäu C chöùa maûnh thoâng tin mi chia
cho toång soá maãu trong baûng döõ lieäu C.
Neáu ta choïn Q laøm goác cuûa caây trong quaù trình
hoïc thì baûng döõ lieäu C seõ ñöôïc chia ra nhieàu
baûng döõ lieäu con Ci
trong ñoù moãi cuûa chuùng chöùa caùc maãu coù giaù
trò töông öùng với thuoäc tính Q.
Vì theá thoâng tin veà nhaân toá quyeát Q neáu choïn Q
laøm goác cuûa caây ñöôïc tính baèng coâng thöùc laø
trong ñoù, laø toång soá maãu chöùa trong baûng döõ
C
CIC
QE
n
i
ii∑=
= 1
)(
)(
18. Thoâng tin giaønh ñöôïc cuûa nhaân toá quyeát ñònh Q
neáu ta choïn Q laøm goác cuûa caây trong quaù trình
hoïc ñöôïc tính baèng coâng thöùc laø
gain(Q) = I(C) - E(Q).
Neáu nhaân toá quyeát ñònh naøo coù thoâng tin giaønh
ñöôïc laø lôùn nhaát ñoù laø nhaân toá quyeát ñònh quan
troïng nhaát ñöôïc choïn laøm goác cuûa caây trong quaù
trình hoïc. Ñôn vò cuûa thoâng tin laø bit.
Hoïc cuûng coá vaø hoïc khoâng giaùm nhờ
moâ hình cô sôû tri thöùc :
Hoïc cuûng coá :
Như ta bieát, vôùi hoïc giaùm saùt, döõ lieäu huaán luyeän mong
muoán phaûi laø chính xaùc töông öùng vôùi caùc caëp döõ lieäu
vaøo ra mong muoán.
Hoïc cuûng coá cuõng laø daïng hoïc giaùm saùt vôùi döõ lieäu
huaán luyeän vaøo laø chính xaùc nhöng döõ lieäu ra mong
muoán laø khoâng chính xaùc, heä thoáng hoïc chæ döïa vaøo
moät vaøi maûnh nhoû thoâng tin ñôn giaûn vaø tri thöùc saün
coù cuûa heä thoáng.
34. 7.4) Giaûi Thuaät Di Truyeàn (Generic
Algorithm) :
Giaûi thuaät di truyeàn döïa vaøo söï tieán hoùa cuûa
luaät di truyeàn sinh hoïc sinh saûn lai gheùp gene
giöõa cha vaø meï trong töï nhieân toàn taïi vaø phaùt
trieån töø theá heä naøy sang theá heä khaùc vôùi
theá heä môùi toàn taïi thích nghi vôùi moâi tröôøng
soáng môùi hôn theá heä cha oâng.
Quaù trình tieán hoùa sinh saûn trong töï nhieân toàn
taïi vaø phaùt trieån töø theá heä naøy sang theá heä
khaùc bao goàm choïn loïc töï nhieân (Natural
selection), lai gheùp (Cross) vaø ñoät bieán (mutation).
Choïn loïc töï nhieân :Moät quaàn theå (population)
chöùa nhieàu caù theå (individual), chæ coù nhöõng
caù theå thích nghi nhaát vôùi moâi tröôøng soáng
môùi, môùi toàn taïi trong cuoäc ñaáu tranh sinh toàn;
maët khaùc nhöõng caù theå khoâng thích nghi vôùi
35. Lai ghep : Ñôn vò di truyeàn caáp teá baøo laø
nhieãm saéc theå (Chromosome) hay coøn ñöôïc goïi
laø caù theå trong quaàn theå; trong ñoù, moãi nhieãm
saéc theå goàm nhieàu gen.
Trong qua trình lai gheùp nhieãm saéc theå cuûa cha meï bò
phaân chia vaø taïo neân nhieãn saéc theå cuûa con.
Nhö vaäy, nhieãm saéc theå cuûa con bao goàm moät soá
gen cuûa cha vaø moät soá gen cuûa meï.
Thoâng qua quaù trình lai gheùp (sinh saûn), nhöõng gen toát
nhaát cuûa cha vaø meï ñöôïc truyeàn töø ñôøi naøy sang
ñôøi khaùc.
Ñoät bieán : Moãi caù theå chöùa nhieàu gen vaø
caùc gen coù thay ñoåi moät caùch ngaãu nhieân do
loãi trong qua trình di truyeàn vôùi xaùc suaát xaûy ra
ñoät bieán trong töï nhieân raát thaáp. Quaù trình ñoät
bieán laø tìm nhöõng nhieãm saéc con thích nghi nhaát
trong moâi tröôøng soáng môùi.
Giaûi thuaät di truyeàn cô baûn (GA) ñöôïc moâ taû
36. Hoïi
tuï
Choïn loïc ngaãu nhieân tìm caùc nhieãm saéc theå trong quaàn theå coù
ñoä thích nghgi toát nhaát thoâng qua haøm thích nghi.
Khôûi taïo soá lieäu cho quaàn theå vôù n caù theå ngaãu nhieân trong
mieàn [a, b]cuûa bieán, trong ñoù a laø caän döôùi vaø b laø caän treân
cuûa bieán.
Maõ hoùa quaàn theå vôùi n caù theå baèng chuoåi nhò phaân hoaëc
chuoåi thaäp phaân
Choïn loïc : choïn caùc caù theå thích nghi trong quaàn theå, loïai boû caùc
caù theå khoâng thích nghi trong quaàn theå.
Lai gheùp : Lai gheùp nhieãm saéc theå cha meï taïo neân nhieãm saéc theå
con thoâng qua caùc gen di truyeàn töø cha meï.
Ñoät bieán : Tìm kieám nhöõng nhieãm saéc theå con thích nghi nhaát trong
moâi tröôøng soáng môùi.
Giaûi maõ : giaûi maõ nhöõng nhieãm saéc theå trong quaàn theå sang daïng
döõ lieäu thöïc soá
No Yes
Keát thuùc
37. Giaûi thuaät di truyeàn cô baûn vôùi caùc caù theå cuûa quaàn theå
maõ hoùa baèng chuoåi nhò vôùi mieàn caùc caù theå trong quaàn
theå laø [a,b] ñöôïc moâ taû toùm taét trong caùc böôùc nhö sau :
• Böôùc 0 : Khôûi taïo quaàn theå vôùi caùc caù theå cuûa quaàn
theå laø xi, i = 1, . . ,N duøng haøm ngaãu nhieân taïo ra N caù theå
trong moät quaàn theå.ø
• t = 0;
• for i = 1: N
• xi,t = random(a,b);
• end;
• Böôùc 1 : Choïn loïc ngaãu nhieân, tìm caùc caù theå trong quaàn
theå coù ñoä thích nghi toát nhaát thoâng qua haøm thích nghi
fitness.
Cho f(x) laø haøm muoán tìm cöïc ñaïi hoaëc cöïc tieåu.
Neáu f(x) laø haøm cöïc tieåu, haøm thích nghi ñöôïc thieát
laäp laø fitness(x) = 1/f(x)
Neáu f(x) laø haøm tìm cöïc ñaïi, haøm thích nghi ñöôïc thieát
laäp laø fitness(x) = f(x)
Giaûi thuaät choïn loïc ngaãu nhieân ñöôïc moâ taû laø
for i = 1:N
b = random(0,1);
k = 1;
while k < N & b <
k = k + 1; end;
x = x ;
∑ ∑= =
k
j
N
j tjtj xfitnessxfitness1 1 ,, )(/)(
38. • Böôùc 2 : Maõ hoùa caùc caù theå trong quaàn theå baèng chuoåi
nhò phaân duøng coâng thöùc laø
• for i = 1:N
• Si,t+1 = binn (round((2n – 1)(xi,t+1 – a)/(b –a)))
• end;
Trong ñoù binn laø haøm bieán ñoåi soá nguyeân thaäp phaân
sang soá nhò phaân, a laø caän döôùi, b laø caän treân cuûa
bieán caù theå trong quaàn theå vaø n laø chieàu daøi cuûa
chuoåi nhò phaân.
Haøm binn bieán ñoåi soá nguyeân döông sang chuoåi nhò
nhaân ñöôïc thieát vôùi caùc voøng laëp laø
for k = 1: n
s[k] = remainder = (num)mode(2);
num = round(num/2);
end;
for k = n : 1
s(k) = S(n – k + 1);
end;
39. • Böôùc 3 : Choïn hai nhieãm saéc theå vôùi ñoä thích nghi
toát nhaát, moät nhieãm saéc theå goïi laø parent1 vaø
moät nhieãm saéc theå khaùc goïi laø parent2, lai gheùp
caùc gen trong hai nhieãm saéc theå naøy ñeå taïo ra caùc
nhieãm saéc theå con môùi child1 vaø child2 baèng
phöông phaùp lai gheùp moät ñieåm nhò phaân ngaãu
nhieân vôùi giaûi thuaät ñöôïc moâ taû laø
• for i = 1:2:N-1
• if random(0,1) <= PC then
• pos = random{1,. . .,n-1};
• for k = pos + 1:n
• parent = si,t+1[k];
si,t+1[k] = si+1,t+1[k];
si+1,t+1[k] = parent;
end;
end;
end;
Trong ñoù, PC laø xaùc suaát lai gheùp thöôøng laø giaù
40. • Böôùc 4 : Ñoät bieán moät ñieåm, gen naøo trong nhieãn saéc theå
coù xaùc suaát ngaãu nhieân laø nhoû hôn xaùc suaát ñoät bieán
cho tröôùc PM, thì ñaûo bít gen ñoù. Giaûi thuaät ñoät bieán moät
ñieåm ngaãu nhieân nhò phaân laø
• for i = 1:N
• for k = 1: n
• if random(0,1) < PM then
invert(Si,t+1[k]); end;
• end;
• end;
• Trong ñoù haøm invert laø haøm ñaûo bit vaø PM laø xaùc suaát
ñoät bieán cho tröôùc vôùi giaù trò raát nhoû ñieån hình laø PM =
0.1.
• Böôùc 5 : Giaûi maõ, giaûi maõ chuoåi nhò phaân ñeå traû veà giaù
trò thöïc cuûa caùc caù theå trong quaàn theå duøng coâng thöùc
giaûi maõ laø
• for i = 1 : N
• xi,t+1 = a + binn
-1
(si,t+1).((b – a)/(2n – 1));
• end;
• trong ñoù, binn
-1
(s) laø haøm bieán ñoåi chuoåi nhò phaân veà daïng
soá nguyeân döông ñoù laø
•
∑=
−
−==
n
i
i
n insscsbin
0
1
2].[)()(