M C L C
L I NÓI Đ U
Vi kh năng hi n nay, y tính đã giúp gii được r t nhi u bài toán k trước
đây thường bó tay. M c v y v n m t s ln c bài toán thú v chưa
gi i thu t hp lý đ gi i chúng. Trong đó các bài toán t i ưu là nhngi toán
thưng g p trong thc ti n.
i toán t i ưu hóa t h p th xem như bài toán m kiếm gi i pháp t t nh t
trong không gian vô cùng ln c gi i pháp. Khi không gian tìm kiếm nh , nhng
phương pháp c đi n như trên cũng đ thích hp, nhưng khi không gian tìm kiếm
ln ph i dùng k thu t trí tu nhân t o đ c bi t. Thu t gi i di truyn (GA) là m t
trong nhng k thu t đó.
Gi i thu t di truy n m t k thu t c a khoa h c máy tính nh m tìm ki m gi i pp ế
thích h p cho các bài toán t i u t h p ( ư combinatorial optimization). Gi i thu t di
truy n là m t phân ngành c a gi i thu t ti n hóa ế v n d ng các nguyênc a ti nế
a như di truy n, đ t bi n ế , ch n l c t nhiên , và trao đ i chéo.
Ngày nay, gi i thu t di truy n đ c dùng ph bi n trong m t s ngành nh ượ ế ư tin sinh
h c, khoa h c y tính, trí tu nhân t o , i chínhm t s ngành khác.
i toán x p baế (m t s sách ghi là i toán cái túi) là m t bài toán t i u hóa t ư
h p. Bài toán đ c đ t tên t v n đ ch n nh ng gì quan tr ng có th nhét v a vàoượ
trong m t cái túi (v i gi i h n kh i l ng) đ mang theo trong m t chuy n đi. Các ượ ế
i toán t ng t th ng xu t hi n trong kinh doanh,ươ ườ toán t h p , lý thuy t đ ph cế
t p tính toán, m t h c toán ng d ng .
Chính ng d ng l n c a gi i thu t di truy n( GA) và bài toán x p ba, v i s ế
giúp đ c a th y Tr n Thanh Hùng giáo viên b n Gi i thu t di truy n, chúng
em ti n hành đi tìm hi u v gi i thu t di truy n và ng d ng c a gi i thu t di truy nế
trong bài toán x p ba lô v i đ tài “ế Tìm hi u và ng d ng c a thu t gi i di truy n
trong bài toán x p ba lô”.ế
Sinh viên th c hi n:
Tr n Quang H p.
MSSV: 0441060068.
L p: KHMT1-K4 i h c công nghi p Hà N i(Haui).
Email: hauiquanghop@gmail.com
Môn Gi i thu t di truy n và ng d ng.
CH NG IƯƠ - T NG QUAN V GI I THU T DI TRUY N
1. Khái ni m
Gi i thu t di truy n m t k thu t c a khoa h c máy tính nh m tìm ki m gi i ế
pháp thích h p cho các bài toán t i u t h p ( ư combinatorial optimization). Gi i thu t
di truy n là m t phân ngành c a gi i thu t ti n hóa ế v n d ng các nguyên lý c a ti nế
a như di truy n, đ t bi n ế , ch n l c t nhiên , và trao đ i chéo.
Ngày nay, gi i thu t di truy n đ c dùng ph bi n trong m t s ngành nh ượ ế ư tin sinh
h c, khoa h c y tính, trí tu nhân t o , i chínhm t s ngành khác.
Tư tưởng c a thu t toán di truy nmô phng các hi n tượng t nhiên: K ếtha
đ u tranh sinh t n đ cái ti nế li gi i và kh o sát không gian li gi i khái ni m
kế tha và đ u tranh sinh t n được gi i tch qua thí d v s ti nế hóa c a m t
qu n th th như sau:
Có m t qu n th th , trong đó m t s con nhanh nh n và thông minh hơn nhng
con khác. Nhng chú th nhanh nh nthông minh có xác su t b ch n cáo ăn th t
nh hơn, do đó cũng t n t i d m nhng t t nh t th : T o thêm nhi u
th t t. nhiên, m t s th chm ch p đ n đ n cũng sng sót vì may m n.
Qu n th nhng chú th còn sng sót s b t đ u sinh s n. Vi c sinh s n này s
t o ra m t h n hp t t v "nguyên li u di truy n th". M t s th ch m ch p có
con vi nhng con th nhanh, m t s nhanh nh n có con vi th nhanh nh n, mt
s thông minh vi th đ n đ n… trên t t c thiên nhiên l i m o m t con th
"hoang dã" bng cách làm đ t bi nế nguyên li u di truy n th . Nhng chú th con do
k tế qu này s nhanh hơn và thông minh hơn nhng con th trong qun th g c
nhi u b m nhanh nh n và thông minh hơn đã thoát ch tế kh i ch n cáo.
Khi tìm ki mế li gi i t i ưu , thu t toán di truy n cũng thc hi n c bước tương
ng vi câu chuy n đ u tranh sinh t n c a loài th .
Thu t toán di truy n s dng các thu t ng vay mượn c a di truy n h c. Ta th
i v các th (hay ki u gen, c u trúc) trong m t qu n th , nhng th này
cũng còn được g ichu i hay các nhi m s c th.
M i ki u gen (ta g im t nhim s c th ) s bi u di n m t li gi i c a bài toán
đang gi i tưởng c a m t nhim s c th c th được ngưi s dng c đ nh
trước), m t tiến trình ti nế hóa được thc hi n trên m t qu n th các nhim s c th
tương ng vi m t quá trình tìm kiếm li gi i trong không gian li gii. Tìm kiếm
đó cn cân đ i hai m c tiêu: Khai tc nhng li gi i t t nh t kh o sát không
gian tìm kiếm. Leo đ i m t d v chi nế lược cho pp khai thác và c i thi n
li gi i t t nh t hi n hành nhưng leo đ i l i b qua vi c kh o t không gian tìm
kiếm. Ngược l i,m kiếm ngu nhiên là m t ví d đi n hình c a chi nế lược kh o
sát không gian m kiếm không chú ý đ nế vi c khai thác nhng vùng đ y ha
h n c a không gian. Thu t toán di truy n (GA) là phương pháp tìm kiếm c lp
mi n) t o được s cân đ i đáng k gia vi c khai thác và kh ot không gian tìm
kiếm.
Thc ra, GA thu c lpc thu t gi i xu t s c, nhưng l i r t khác nhng thu t gi i
ng u nhiên chúng k tế hp các ph n t tìm kiếm trc ti pế ng u nhiên. Kc
bi t quan trng gia tìm kiếm c a GA và các phương pháp tìm kiếm khác là GA
duy trì xm t tp các li gi i (ta g i là m t qu n th )
Theo đ xu t c a giáo sư John Holland, m t v n đ bài toán đ t ra s đ ược mã hóa
thành các chu i vi chi u dài bit c đ nh. Nói m t cách chính c là các thông s
c a i toán s được chuy n đ i và bi u di n l i dưới dngc chu i nh phân.
c thông s này có th là các bi nế c a m tm ho c h s ca m t bi u thc
toán h c. Người ta g i các chu i bít này genome ng vi m i th , các
genome đ u cùng chi u dài. i ngn g n, m t li gi i s đ ưc bi u din
bng m t chu i bít, cũng như m i cá th đ u được quy đnh bng gen c a th đó
v y. Như v y, đ i vi thut gi i di truy n, m t th ch có m t gen duy nh t
m t gen cũng ch ph c v cho m t th duy nhât. Do đó, gen chính là th và cá
th chính là gen.
Ban đ u, ta s phát sinh m t s lượng ln, gii h n các cá th có gen ngu nhiên -
nghĩa là phát sinh m t t p hp các chu i bit ng u nhiên. T p các cá th này được
g i qu n th ban đ u (initial population). Sau đó, da trên m t hàmo đó, ta s
c đ nh được m t giá tr đ thích nghi - Fitness. Giá tr này, đ đ ơn gi n cho đơn
gi n chính là đ "t t" c a li gi i hay đ cao trong tìm kiếm theo ki u leo đ i.
phát sinh ng u nhiên nên đ "t t" c a li gi i hay tính thích nghi c a th trong
qu n th ban đ u là không xác đ nh.
Đ c i thi n tính thích nghi c a qu n th người ta tìm cách t o ra qu n th mi.
hai cách thao tác thc hi n trên thế h hi n t i đ t o ra m t thế h khác vi đ
thích nghi t t hơn.
Thao c đ u tiên là sao chép nguyên m u mt nhómc cá th t t t thế h tr ước
r i đưa sang thế h sau (selection). Thao tác này đm b o đ thích nghi c a thế
h sau luôn được gi m t mc đ hp lý. Các cá th được ch n thông thường là
c cá th có đ thích nghi cao nh t.
Thao tác th hai t o ra th mi b ng cách thc hi n các thao tác sinh s n
trên m t s cá th được ch n t thế h trưc, thông thường cũng là nhng cá th
đ thích cao. Có hai lo i thao tác sinh s n: m t là thao c lai t o (crossover), hai là
đ t bi nế (mutalion). Trong thao tác lai t o, t gen c a hai cá th được ch n trong
thế h trước s được phi hp vi nhau (theo m t quy tác nào đó) đ t o thành hai
gen mi.
Thao tác chn l c lai t o giúp t o ra thế h sau. Tuy nhiên, nhi u khi do thế h
khi t o ban đ u có đ c tính chưa phong pvà chưa phù hp nên c cá th không
r i đ u được không gian c ai toán (tương t như trường hp leo đ i, các người
leo đ i t p trung d n vào m t c trên vùng đ t). T đó, khó có th m ra li gi i
t i ưu cho bài toán. Thao tác đ t bi nế s giúp gi i quy tế được v n đ này. Đó
s bi nế đ i ng u nhiên m t ho c nhi u thành ph n gen c a m t cá th thế h
trước t o ra m t th hn toàn mi thế h sau. Nhưng thao tác này ch được
phép xy ra vi t n su t r t th p (thường dưi 0.01), vì thao c này có th gây
o tr n làm m t đi nhngth ch n l c lai t o có tính thích nghi cao, d n
đ nế thu t toán không còn hi u qu .
Thế h mi được t o ra l i được x lý như thế h trước cho đ nế khi có m t th
đ t được gi i pháp mong mu n ho c đ t đ nế thi gian gii h n
nh 1. S đ gi i thu t di truy nơ
C u trúc c a gi i thu t di truy n như sau:
T=0
Initialize P(t)
evaluate structures in P(t)
While not end do
T= t + 1
Select C(t) from P(t - 1)
Recombine structures in C(t) forming C'(t)
Mutate structures in C' (t) forming C'' (t)
Evaluate structures in C''(t)
Replace P(t) from C''(t) and/or P (t - 1)
2. Các b c c a gi i thu t di truy nướ
2.1. Kh i t o qu n th (initialize )
Qu n th đ u tiên được khi t o m t ch ngu nhiên t t p hp nhng th
riêng l . ch c c a qu n th đ u tiên ph thuc vào y uế t t nhiên c a bài toán,
nhưng nhìn chung thì m t bài toán có đ nế hàng trăm hay hàng nghìn gi i pháp hp lý.
T p hp nhng gi i pháp hp lý cho v n đ được g ikhông gian tìm ki mế
(search space). Trước m t bài toán áp d ng thu t toán di truy n, ta c n ph i xác đ nh
rõ nhi m s c th và cá th cho v n đ , thông thường đó s là k tế qu cu i
cùng. Vi c phân ch s da trên k tế qu c ơ b n t t nht.
Ví d :
v1: 1 0 0 0 1 1 1