Bài toán cấu trúc chuỗi nguồn là một bài toán cho các thông tin ở dạng một chuỗi của các nhiễm sắc thể hiện tại, và tìm ra được các thông tin về nhiễm sắc thể của tổ tiên.. Đã có nhiều t
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
LÊ THỊ HÀO
BÀI TOÁN CẤU TRÚC CHUỖI NGUỒN (Founder Sequences Reconstruction Problem)
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60480104
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Đỗ Đức Đông
PGS.TS Hoàng Xuân Huấn
HÀ NỘI, 2015
Trang 3LỜI CẢM ƠN
Trước hết, tôi xin gửi lời biết ơn sâu sắc đến hai người thầy TS Đỗ Đức Đông và thầy PGS.TS Hoàng Xuân Huấn, hai thầy đã dành rất nhiều thời gian và tâm huyết hướng dẫn nghiên cứu và giúp tôi hoàn thành tốt luận văn tốt nghiệp này Thầy đã mở
ra cho tôi những vấn đề khoa học rất lý thú, định hướng nghiên cứu các lĩnh vực hết sức thiết thực và vô cùng bổ ích, đồng thời tạo điều kiện thuận lợi tốt nhất cho tôi học tập và nghiên cứu
Tôi cũng xin được bày tỏ lòng biết ơn tới các thầy cô trường Đại học Công nghệ
đã tham gia giảng dạy và chia sẻ những kinh nghiệm quý báu cho tập thể và cá nhân tôi nói riêng Tôi xin cảm ơn tới các thầy và các anh chị đã thường xuyên giúp đỡ, trao đổi, góp ý về những vấn đề khoa học liên quan tới luận văn
Cuối cùng tôi cũng bày tỏ lòng biết ơn về sự giúp đỡ của các anh, chị đồng nghiệp trong Bộ môn Tin học trường Đại học Công Đoàn, cơ quan nơi tôi công tác đã tạo điệu kiện tốt nhất cho tôi về thời gian cũng như động viên tôi hoàn thành bài luận văn
Một lần nữa, tôi xin chân thành cảm ơn!
Hà Nội, tháng 7 năm 2015
Lê Thị Hào
Trang 4LỜI CAM ĐOAN
Những kiến thức trình bày trong luận văn là do tôi tìm hiểu, nghiên cứu và trình bày lại theo cách hiểu Trong quá trình làm luận văn tôi có tham khảo các tài liệu có liên quan và đã ghi rõ nguồn tài liệu tham khảo đó Tôi xin cam đoan đây là công trình nghiên cứu của tôi và không sao chép của bất kỳ ai
Hà Nội, tháng 7 năm 2015
Lê Thị Hào
Trang 5MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
DANH MỤC CÁC BẢNG BIỂU 6
DANH MỤC CÁC HÌNH VẼ 7
MỞ ĐẦU 8
CHƯƠNG I BÀI TOÁN CẤU TRÚC CHUỖI NGUỒN 10
1.1 Một số khái niệm trong sinh học 10
1.1.1 Một số khái niệm về di truyền 10
1.1.2 Quá trình đột biến DNA 11
1.1.3 Khái quát về các Haplotype được tạo từ các tái tổ hợp 13
1.2 Phát biểu bài toán cấu trúc chuỗi nguồn 15
1.3 Mô hình bài toán 15
1.3.1 Bài toán 1: tìm số điểm ngắt nhỏ nhất 15
1.3.2 Bài toán 2: tìm chuỗi nguồn 16
1.4 Các phương pháp tiếp cận để giải bài toán cấu trúc chuỗi nguồn 17
1.4.1 Phương pháp giải bài toán tìm ra số điểm ngắt nhỏ nhất 18
1.4.2 Phương pháp giải bài toán tìm số chuỗi nguồn 18
CHƯƠNG II GIỚI THIỆU VỀ THUẬT TOÁN ANT COLONY OPTIMIZATION (ACO) 21
2.1 Giới thiệu về thuật toán ACO 21
2.2 Mô hình mô phỏng của thuật toán 21
2.2.1 Kiến tự nhiên 21
2.2.2 Kiến nhân tạo 23
2.3 Trình bày giải thuật 23
2.3.1 Đồ thị cấu trúc 24
2.3.2 Trình bày về thuật toán ACO cơ bản 25
Trang 62.3.3 Thông tin Heuristic 27
2.3.4 Quy tắc cập nhật vết mùi 27
2.3.4.1 Thuật toán AS 27
2.3.4.2 Thuật toán ACS 27
2.3.4.3 Thuật toán Max-Min 28
2.3.4.4 Thuật toán Max- Min trơn 28
2.4 Ứng dụng thuật toán ACO trong việc giải quyết bài toán Người chào hàng Sale Man 29
2.4.1 Bài toán người chào hàng trong thực tế 29
2.4.2 Phát biểu bài toán người đưa hàng trên mô hình hóa đồ thị 29
2.4.3 Áp dụng thuật toán ACO giải quyết bài toán người chào hàng 29
CHƯƠNG III THUẬT TOÁN MỚI 32
3.1 Thuật toán tối ưu đàn kiến ACO 32
3.2 Xây dựng đồ thị cấu trúc 32
3.3 Xây dựng lời giải tuần tự 33
3.4 Thông tin heuristic 34
3.5 Cập nhật mùi 34
3.5.1 Thuật toán Max – Min 35
3.5.2 Thuật toán Max – Min trơn 36
3.5.3 So sánh giữa hai cách cập nhật mùi 36
3.6 Mô tả thuật toán tối ưu đàn kiến ACO tổng quát giải bài toán cấu trúc chuỗi nguồn 37
3.7 Số lượng kiến 41
3.8 Tham số bay hơi 41
CHƯƠNG IV KẾT QUẢ THỰC NGHIỆM 42
4.1 Mô tả thực nghiệm 42
4.1.1 Các thông số cài đặt 42
4.1.2 Kết quả thực nghiệm 42
4.2 So sánh các kết quả thực nghiệm 43
4.2.1 So sánh kết quả với RecBlock 43
4.2.2 So sánh kết quả với hai thuật toán cập nhật mùi khác nhau 48
Trang 7KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 51 TÀI LIỆU THAM KHẢO 52
DANH MỤC CÁC KÍ HIỆU, TỪ VIẾT TẮT
1 ACO
Ant Colony Optimization
(Tối ưu hóa đàn kiến)
Smooth-Max Min Ant System
(Hệ kiến MMAS trơn)
8 3-LAS
Three level ant system (Hệ kiến đa mức 3-LAS)
9 TSP
Travelling Salesman Problem
(Bài toán người chào hàng)
10 TƯTH Tối ưu tổ hợp
Trang 8DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1 Tập HAP tương đương với haplotype C 14
Bảng 2.1 Một số thuật toán ACO 30
Bảng 4.1 So sánh thực nghiệm với RecBlock trên bộ dữ liệu Random 44
Bảng 4.2 So sánh thực nghiệm với RecBlock trên bộ dữ liệu evo 45
Bảng 4.3 So sánh thực nghiệm với RecBlock trên bộ dữ liệu ms 47
Bảng 4.4 Kết quả thực nghiệm so sánh hai phương pháp MMAS và SMMAS với bộ dữ liệu rnd_30_60 49
Bảng 4.5 Kết quả thực nghiệm so sánh ba phương pháp ACS, MMAS và SMMAS với bộ dữ liệu evo_50_250 49
Bảng 4.6 Kết quả thực nghiệm so sánh ba phương pháp ACS, MMAS và SMMAS với bộ dữ liệu ms_50_250 50
Trang 9DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Cấu trúc nhiễm sắc thể 10
Hình 1.2 Minh họa gen trên nhiễn sắc thể 10
Hình 1.3 Một đột biến điểm xảy ra trong phân tử DNA thay thế cặp nucleotide A-T bằng cặp nucleotide G-C 11
Hình 1.4 Minh họa quá trình tiến hóa của các loài từ một tổ tiên chung 12
Hình 1.5 Quá trình đột biến giữa hai trình tự DNA 12
Hình 1.6 Ví dụ về bộ gen tái tổ hợp được tạo từ chuỗi nguồn 16
Hình 1.7 Minh họa đầu vào của bài toán 17
Hình 1.8 Minh họa đầu ra của bài toán 17
Hình 1.9 Đặc tả thuật toán Recblock 19
Hình 2.1 Một ví dụ về hoạt động của bầy kiến trong thực tế 22
Hình 2.2 Một ví dụ về đàn kiến nhân tạo 23
Hình 2.3 Đồ thị cấu trúc tổng quát cho bài toán cực trị hàm 25
Hình 2.4 Đặc tả thuật toán ACO 26
Hình 2.5 Minh họa hình ảnh bài toán người đưa hàng 29
Hình 2.6 Đặc tả thuật toán ACO cho bài toán TSP 31
Hình 3.1 Đồ thị xây dựng thuật toán ACO đối với bài toán cấu trúc chuỗi nguồn 33
Hình 3.2 Lựa chọn đỉnh tiếp theo 34
Hình 3.3 Đặc tả thuật toán ACO 38
Hình 3.4 Đồ thị cấu trúc cho bộ dữ liệu với n= 5, m= 7 39
Hình 3.5 Mô tả hành trình của một con kiến 40
Hình 3.6 Lời giải của một con kiến 40
Hình 3.7 Phân tích điểm ngắt cho lời giải của một con kiến 41
Hình 4.1 Mô tả INPFILE với bộ dữ liệu rnd_30_90 42
Hình 4.2 Mô tả OUTFILE tìm ra k =5 trên bộ dữ liệu rnd_30_90 43
Hình 4.3 Mô tả OUTFILE tìm ra điểm ngắt trong bộ dữ liệu rnd_30_90 43
Trang 10và áp dụng các phương pháp cũng như các kĩ thuật trong tin học để giải quyết các bài toán trong sinh học phân tử Tin sinh học có tính ứng dụng cao trong cuộc sống, đặc biệt trong lĩnh vực y-dược và trong lĩnh lực di truyền
Di truyền là hiện tượng chuyển những tính trạng của cha mẹ cho con cái thông qua gen của bố mẹ Trong sinh học, di truyền chuyển những đặc trưng sinh học từ một sinh vật cha mẹ đến con cái và nó đồng nghĩa với di chuyển, gen thừa nhận mang thông tin sinh học
Chính vì vậy mà ngày nay khi xã hội càng ngày càng phát triển, con người càng
có nhu cầu tìm hiểu về nguồn gốc của mình và tổ tiên xa xưa của chúng ta Bài toán cấu trúc chuỗi nguồn là một bài toán cho các thông tin ở dạng một chuỗi của các nhiễm sắc thể hiện tại, và tìm ra được các thông tin về nhiễm sắc thể của tổ tiên Đó là một bài toán lớn trong sinh học, hiện nay đang được rất nhiều người quan tâm và nghiên cứu
Đã có nhiều thuật toán nghiên cứu và công bố giải quyết bài toán cấu trúc chuỗi nguồn để tìm ra được các thông tin di truyền
Trong luận văn này, tôi trình bày khảo cứu lại các phương pháp giải quyết bài toán cấu trúc chuỗi nguồn Tôi khảo cứu và cài đặt lại thuật toán RecBlock được Andrea Roli and Christian Blum đề xuất năm 2009 là một thuật toán được coi là hoàn chỉnh nhất đến thời điểm hiện tại để giải bài toán cấu trúc chuỗi nguồn Sử dụng ý tưởng xây dựng lời giải của RecBlock, trong luận văn chúng tôi đã đề xuất một thuật toán mới đó là thuật toán tối ưu đàn kiến Ant colony optimization (ACO) để giải quyết bài toán cấu trúc chuỗi nguồn mục đích để tìm ra được chuỗi nhiễm sắc thể của tổ tiên dựa trên số lần lai ghép là ít nhất Đây là thuật toán mới và lần đầu tiên được đưa vào
để giải bài toán cấu trúc chuỗi nguồn Và trong thực nghiệm đã chỉ ra được thuật toán ACO tối ưu hơn rất nhiều so với thuật toán RecBlock Luận văn còn cài đặt với các thuật toán cập nhật mùi khác nhau trong thuật toán ACO và kết quả trả về vẫn là tối ưu hơn thuật toán trước
Ngoài phần kết luận, cấu trúc nội dung của luận văn bao gồm:
Trang 11Chương 1: Trình bày sơ lược các khái niệm sinh học, phát biểu bài toán cấu trúc chuỗi nguồn Giới thiệu một vài thuật toán giải quyết bài toán, trình bày lại thuật toán RecBlock
Chương 2: Giới thiệu thuật toán Ant colony optimization (ACO) và một vài thuật toán cập nhật mùi khác nhau trong ACO Ví dụ về bài toán người chào hàng giải quyết bằng thuật toán ACO
Chương 3: Đề xuất thuật toán mới, đó là thuật toán Ant colony optimization (ACO) để giải quyết bài toán cấu trúc chuỗi nguồn Đưa ba quy tắc cập nhật mùi khác nhau đó là ACS, MMAS, SMMAS để giải quyết bài toán
Chương 4: Đưa ra kết quả thực nghiệm của luận văn, so sánh kết quả của thuật toán ACO với các quy tắc cập nhật mùi khác nhau, so sánh kết quả của thuật toán
ACO với thuật toán RecBlock
Trang 12CHƯƠNG I BÀI TOÁN CẤU TRÚC CHUỖI NGUỒN 1.1 Một số khái niệm trong sinh học
1.1.1 Một số khái niệm về di truyền
Nhiễm sắc thể: Là một cấu trúc trong tế bào chứa hai loại thông tin gồm chuỗi
DNA và Protein Trong đó chuỗi DNA mang thông tin di truyền xác định chức năng
và đặc điểm của sinh vật, Protein quyết định đến chức năng và quá trình phát triển của sinh vật Tập hợp tất các nhiễm sắc thể của một sinh vật được gọi là hệ gen của sinh vật đó
Hình 1.1 Cấu trúc nhiễm sắc thể
Chuỗi DNA (Deoxyribonucleic Acid): Là một chuỗi cấu trúc xoắn kép gồm hai
sợi liên kết, bắt cặp với nhau (A-T, G-C) Trên mỗi một sợi được biểu diễn bởi một xâu kí tự chứa 4 loại kí tự: A,T,G,C (tên viết tắt của 4 loại nucleotide) Ví dụ, xâu kí tự
“CAGTTGACGGCGAACCGTGCGAGCAGACGGTCGTT“ là một chuỗi DNA
Gen: Là một đoạn DNA mang thông tin hướng dẫn tổng hợp protein và có một vị trí nhất định trên nhiễm sắc thể Gen chịu trách nhiệm về những đặc điểm di truyền
Hình 1.2 Minh họa gen trên nhiễn sắc thể
Alen: Các dạng khác nhau của một gen (không cùng xảy ra) nằm tại cùng một vị
trí xác định trên một nhiễm sắc thể cụ thể
Locus: Vị trí riêng biệt của một đoạn DNA mang thông tin (hay còn gọi là gen)
trên nhiễm sắc thể Nhiều locus được gọi là loci
Trang 13SNP: Được viết tắt của “single nucleotide polymorphism” được gọi là đa hình
đơn nucleotide (đọc là sờ-níp ), là những biến thể trình tự DNA xảy ra khi một đơn nucleotide (A, T, C, hoặc G) trong trình tự bộ gen bị thay đổi Được minh họa bằng hình ảnh 1.3:
Hình 1.3 Một đột biến điểm xảy ra trong phân tử DNA thay thế cặp nucleotide
A-T bằng cặp nucleotide G-C
Di truyền: là hiện tượng chuyển những tính trạng của cha mẹ cho con cái thông
qua gen của bố mẹ Trong sinh học, di truyền chuyển những đặc trưng sinh học từ một sinh vật cha mẹ đến con cái và nó đồng nghĩa với di chuyển gen, gen thừa nhận mang thông tin sinh học (hay thông tin di truyền)
Thông tin di truyền: là các thông tin được mã hóa trong các bộ nucleotide, được
di truyền từ thế hệ này sang thế hệ khác ở cấp độ phân tử thông qua các hoạt động nhân đôi DNA
Phép lai tạo: là quá trình hình thành nhiễm sắc thể (NST) mới trên cơ sở NST
cha mẹ bằng cách ghép một hay nhiều đoạn gen của hai hay nhiều NST cha mẹ với nhau
1.1.2 Quá trình đột biến DNA
Theo thuyết tiến hóa của Darwin thì các loài sinh vật đều tiến hóa từ một tổ tiên chung [4] Hệ gien của các sinh vật bị biến đổi theo thời gian trong quá trình tiến hóa dưới tác động của nhiều yếu tố khác nhau và có thể dẫn đến việc tạo ra các loài sinh vật mới
Trang 14Hình 1.4 Minh họa quá trình tiến hóa của các loài từ một tổ tiên chung
Hai trình tự tương đồng:
Hai trình tự DNA của hai sinh vật khác nhau gọi là tương đồng nếu như chúng cùng tiến hóa từ một trình tự DNA tổ tiên chung
Quá trình đột biến của các trình tự DNA: Trong quá trình tiến hóa, các nucleotit trên
trình tự DNA có thể bị đột biến Ba phép đột biến là: đột biến thay thế, đột biến mất, đột biến thêm
Hình 1.5 Quá trình đột biến giữa hai trình tự DNA
Hình 1.5 minh họa quá trình đột biến của hai trình tự X = “AGGTGGT” và Y =
“ACGGTGG” từ một trình tự DNA tổ tiên chung XY = “ACGGTGGT”
Các phép đột biến trên trình tự DNA trong quá trình tiến hóa sẽ làm cho hệ gien của các loài sinh vật khác nhau cả về nội dung cũng như độ dài Các cá thể của cùng
Trang 15một loài (ví dụ hai người) cũng có hệ gien khác nhau Tuy nhiên, sự khác biệt giữa hệ gien của hai người vào khoảng 0.1% Chính sự khác biệt 0.1% này tạo ra sự khác biệt giữa hai người khác nhau
Đột biến giữa hai trình tự prôtêin: Các đột biến nuclêotít trên các trình tự DNA
trong quá trình tiến hóa sẽ dẫn đến các đột biến trên các trình tự axít amin mà chúng
mã hóa Các đột biến giữa hai trình tự prôtêin cũng có thể xuất hiện trong quá trình tổng hợp prôtêin từ các trình tự DNA Ví dụ hai trình tự DNA X =
“CCTGAGCCAATATTGATGAA” và Y = “CCGGAGCCAACTATTGTT" sẽ mã hóa hai prôtêin tương ứng X = “PEPTIDE” và Y = “PEPTV”
1.1.3 Khái quát về các Haplotype đƣợc tạo từ các tái tổ hợp
Một haplotype của n vị trí là một chuỗi các nucleotide kích thước m Nó mô hình một đoạn nhiễm sắc thể với sự đa hình do sự thay thế nucleotide, được gọi là đa hình đơn nucleotide (SNP) SNPs trong một quần thể chỉ có hai nucleotide được quan sát thấy ở mỗi vị trí: các alen của tổ tiên và alen mới
Sự đa dạng của một Haplotype đại diện giống như một chuỗi các vị trí đa hình đơn trong trình tự DNA [12] Trong quá trình tái tổ hợp các vị trí tăng lên theo cấp số nhân Để tìm ra nguyên nhân của việc tái tổ hợp được so sánh với các vị trí đa hình và
là vô cùng khó Tuy nhiên trong bộ gen của người mỗi Haplotype đều đa dạng và có những Haplotype chiếm ưu thế dùng để đại diện cho việc tìm ra những Haplotype tổ tiên Khoảng cách giữa các thế hệ có thể giảm vì có thể tiến hành thực hiện xây dựng Một sự tái tổ hợp giữa hai haplotype X và Y có thể được mô hình hóa như một hoạt động phá vỡ và trao đổi các phần đối diện của X và Y Tức là nó là hoạt động của dạng: X5X3, Y5Y3 X5Y3, Y5X3 với X = X5X3, Y = Y5Y3 (biểu thị 5 và 3 là các phân đoạn của X và Y và X5
, Y5 cũng như Y3, X3 có độ dài là giống nhau
Trong mô hình của con người, chỉ có một trong các haplotype kết quả được truyền đi Vì vậy, một sự tái tổ hợp có thể được biểu diễn như X, Y Z, Z là 1 tái tổ hợp
Cho C = {C1, C2, …, Ch} là một tập các Haplotype chung và R là một tái tổ hợp mới Vấn đề là phải tìm một lộ trình tái tổ hợp tối thiểu (tối thiểu của chuỗi recombinations) tạo ra từ một tập hợp con CR của C Một tái tổ hợp X, Y Z trong 1
lộ trình như sau: X and/or Y trong CR hoặc được tạo từ tái tổ hợp trước đó của các phần tử CR.
R là alen với C nếu và chỉ nếu, cho vị trí bất kỳ i trong R, có tồn tại một haplotype Ck của C như vậy mà R[i] = Ck[i] Ở đây, cho bất kỳ haplotype X, X[i] biểu thị phần tử i của X Ví dụ, các haplotype:
R = C A C T T G A A C G Alen với C = {C1, C2, C3, C4, C5}:
Trang 16Như vậy chúng ta thu được một tập các Hapotype như bảng (1.1) Mỗi haplotype
là một xâu độ dài m của các ký tự {0, 1} Ký tự 0 biểu thị mã hóa alen dạng tự nhiên
và ký tự 1 biểu thị alen dạng biến dị
Bảng 1.1 Tập HAP tương đương với haplotype C
Khái niệm về điểm ngắt:
Ngoài tế bào, các nhiễm sắc thể kết hợp trong các tế bào của con người Có một NST từ bố, và một trong những NST khác từ phía của người mẹ Nhưng thế hệ của NST trong quá trình chuyển giao không phải là tĩnh Trong quá trình hình thành trứng
và tinh trùng, NST tái tổ hợp đó là sự tích tụ của các mảnh vỡ NST với nhau và trao
đổi Hai mảnh vỡ liên tiếp nhau không cùng một NST thì được gọi là điểm ngắt
Sau nhiều thế hệ, thông qua các sự kiện tái tổ hợp lặp đi lặp lại, các mảnh vỡ nhiễm sắc thể ban đầu của tổ tiên đã bị phá vỡ Một số mảnh vỡ nhiễm sắc thể của tổ tiên trong các chuỗi DNA của nhiều thế hệ con cháu xuất hiện Những phần này là haplotype, nhà di truyền học có thể sử dụng nó để tìm kiếm bệnh hoặc gen liên quan đến đặc điểm quan trọng về mặt y khoa khác
Trang 171.2 Phát biểu bài toán cấu trúc chuỗi nguồn
Trong nghiên cứu về sự tiến hóa, việc xây dựng lại cấu trúc chuỗi nguồn có một
ý nghĩa lớn với lĩnh vực sinh học Mục tiêu của bài toán là tìm ra chuỗi gen di truyền thích hợp được thiết lập để đạt được chuỗi di truyền của cá thể Việc thiết lập các chuỗi gen này được xem là mô hình của bài toán cấu trúc chuỗi nguồn, trong đó phải tìm ra bộ chuỗi gen mà mỗi cá thể của nó đều đạt được từ việc tái tạo chuỗi gen và giảm thiểu số lượng lai ghép Bài toán mang tên bài toán cấu trúc chuỗi nguồn Tìm ra lời giải của bài toán này có thể giúp phần hiểu rõ thêm về nguồn gốc đặc điểm kiểu gen cụ thể
Bài toán được phát biểu như sau:
Cho tập C gồm n tái tổ hợp C={C 1 ,….,C n }; mỗi tái tổ hợp C i là một chuỗi chiều dài m trên chữ cái đã cho, nghĩa là C i ci1c i2c im với c ij , = {0,1} và một số
k cố định Yêu cầu của bài toán là tìm ra tập F gồm k chuỗi nguồn F= {F 1 ,…, F k } mỗi chuỗi nguồn F i có chuỗi chiều dài m trên chữ cái : F i f i1f i2f im với f ij j
sao cho mỗi tái tổ hợp được thiết lập từ chuỗi nguồn với số điểm ngắt là nhỏ nhất
Ký hiệu 0 và 1 thể hiện mã alen ở dạng đồng hợp tử, ký tự 0 biểu thị mã hóa Alen dạng tự nhiên và ký tự 1 biểu thị alen dạng biến dị (bảng 1.1)
Lời giải F là một lời giải tiềm năng nếu tập tái tổ hợp C có thể được thiết lập từ
F Đây là trường hợp khi mỗi C iC có thể được phân tích thành chuỗi các đoạn pi ≤
m (nghĩa là các chuỗi) Fri1 Fri2… Frip, như vậy mỗi đoạn Fr ij xuất hiện ở cùng vị trí trong ít nhật một tập nguồn Bằng cách trên, việc phân tích liên quan đến lời giải tiềm năng được gọi là giảm xuống nếu hai đoạn liên tiếp không xuất hiện trong cùng một
tập nguồn Mục tiêu tối ưu hóa trong bài toán nhằm tìm ra một lời giải hợp lý F * , với
số tập nguồn cố định đã cho k j , tối thiếu hóa số điểm ngắt
1.3 Mô hình bài toán
Để giải quyết bài toán cấu trúc chuỗi nguồn chúng ta tập trung vào hai bài toán
đó là “bài toán tìm số điểm ngắt nhỏ nhất” (1) và “bài toán tìm ra k chuỗi nguồn sao cho tổng số điểm ngắt nhỏ nhất”(2) Bài toán (1) sẽ dùng để tính chi phí cho bài toán (2)
1.3.1 Bài toán 1: tìm số điểm ngắt nhỏ nhất
Bài toán cho các tập n tái tổ hợp và cho k chuỗi nguồn, mong muốn xây dựng các tập tái tổ hợp từ các chuỗi nguồn sao cho số lai ghép là nhỏ nhất
Input
Cho tập C gồm n tái tổ hợp C={C1,…,Cn} Mỗi tái tổ hợp C i có chiều dài m
trên chữ cái , nghĩa là C i ci1c i2c im với c ij , = {0,1}
Trang 18 Cho tập F gồm k chuỗi nguồn F= {F1,…, Fk} Mỗi chuỗi nguồn Fi có chiều dài
m trên chữ cái : F i f i1f i2f im với f ij , = {0,1}
Hình 1.6 Ví dụ về bộ gen tái tổ hợp đƣợc tạo từ chuỗi nguồn
Trong ví dụ trên, phía bên trái tập C được trình bày dưới dạng ma trận Giả định số lượng chuỗi nguồn cố định là 3, lời giải hợp lý đối với ma trận của 3 chuỗi nguồn được trình bày ở phần giữa Ký hiệu chuỗi nguồn đầu tiên là a, chuỗi nguồn thứ hai là b và chuỗi nguồn thứ ba là c, việc phân tích ma trận gen tái tổ hợp thành từng đoạn lấy từ chuỗi nguồn được trình bày ở phía bên phải Điểm ngắt được đánh dấu bằng gạch thẳng đứng Đây là sự phân tích với 8 điểm ngắt, là giá trị nhỏ nhất đối với ví dụ này
1.3.2 Bài toán 2: tìm chuỗi nguồn
Bài toán cho các tập tái tổ hợp và cho một số cố định k Yêu cầu tìm ra được đúng k chuỗi nguồn sao cho các tập tái tổ hợp được thiết lập từ chuỗi nguồn có số lai ghép là nhỏ nhất
Input
Cho tập C gồm n tái tổ hợp C={C1,…,Cn} Mỗi tái tổ hợp C i có chiều dài m
trên chữ cái , nghĩa là C i ci1c i2c im với c ij , = {0,1}
Một số k là cố định
Trang 19Ví dụ: Đầu vào của bài toán được biểu diễn dưới dạng ma trận như sau:
Hình 1.7 Minh họa đầu vào của bài toán
Output
Tìm giải pháp hợp lý F * đưa ra k chuỗi nguồn mà có số điểm ngắt là nhỏ nhất
Đầu ra của bài toán được biểu diễn dưới dạng sau:
Hình 1.8 Minh họa đầu ra của bài toán 1.4 Các phương pháp tiếp cận để giải bài toán cấu trúc chuỗi nguồn
Như ở trên đã phân tích bài toán cấu trúc chuỗi nguồn được chia làm hai bài toán nhỏ Bài toán thứ nhất là tìm ra số điểm ngắt nhỏ nhất, bài toán thứ hai là tìm ra số chuỗi nguồn sao cho số tái tổ hợp con được tạo ra từ các chuỗi nguồn là nhỏ nhất Bài toán 1 dùng để làm hàm mục tiêu cho bài toán 2 Bài toán 2 là bài toán chính để giải quyết bài toán cấu trúc chuỗi nguồn
Trang 201.4.1 Phương pháp giải bài toán tìm ra số điểm ngắt nhỏ nhất
Bài toán được phát biểu trong mục 1.3.1 Với bài toán này sử dụng thuật toán tham lam để giải quyết bài toán
hàng của chuỗi nguồn F => tìm xem tái tổ hợp C1 được phân tích từ chuỗi nguồn nào
là dài nhất thì tiến hành chọn chuỗi nguồn đó Nếu tồn tại chuỗi nguồn trùng với tái tổ hợp C1 => chuyển sang bước 3
Bước 2: Xét các vị trí còn lại trong C1: tiến hành xét với vị trí còn lại từ các chuỗi nguồn còn lại (trừ chuỗi nguồn vừa chọn) và lặp lại bước 1 Cứ tiếp tục cho đến khi hết độ dài m
1.4.2 Phương pháp giải bài toán tìm số chuỗi nguồn
Đây là bài toán chính của bài toán cấu trúc chuỗi nguồn Đã có rất nhiều phương pháp đưa ra để giải quyết bài toán Một thuật toán dựa trên phương pháp quy hoạch động lần đầu tiên được đề xuất bởi Ukkonen [9] Tuy nhiên, phương pháp này không hiệu quả khi số chuỗi nguồn và độ dài của tái tổ hợp lớn Một thuật toán quy hoạch động khác được Rastas và Ukkonen đưa ra [17] Lyngso và Song [18] đã đưa ra thuật
Trang 21toán branch-and-bound (thuật toán cận và nhánh) Mặc dù đầy triển vọng nhưng phương pháp này chỉ được đánh giá trong mức chuỗi nguồn và tập các tái tổ hợp nhỏ Bài toán cấu trúc chuỗi nguồn được nghiên cứu rộng rãi và nó liên quan đến nhiều vấn đề khác El-Mabrouk và Labuda [15] đã tập trung vào vấn đề tái cấu trúc dễ điều khiển và đơn giản hơn nhiều: đưa ra bộ gen chuỗi nguồn và gen tái tổ hợp Họ muốn tìm kiếm một chất phân hủy tối thiểu cho gen tái tổ hợp Một ma trận gen tái tổ hợp được đưa ra, việc phân chia các điểm liên tục gọi là khối, được xác định theo một
số quy tắc và mỗi gen tái tổ hợp được chia phù hợp vào các chuỗi con haplotype Mục đích là để phân chia, với mỗi khối một màu sắc khác nhau đối với các chuỗi con haplotype riêng biệt trong một khối, như là tổng số màu sắc thay đổi giữa hai chuỗi con haplotype liền kề trong cùng một gen tái tổ hợp là tối thiểu Vấn đề màu sắc của mỗi khối có thể được mã hóa thành một phiên bản của bài toán kết hợp phân chia có điều chỉnh Trong phần này luận văn trình bày lại thuật toán RecBlock
Thuật toán
Thuật toán Recblock
1 Input: Cho tập C gồm n các tái tổ hợp có độ dài m
k: số lượng chuỗi nguồn
7 output: Lời giải F với tổng số điểm ngắt nbp
Hình 1.9 Đặc tả thuật toán Recblock
Xây dựng lời giải
Trang 22Coi lời giải F như một ma trận F[k * m], hàng i đại diện cho chuỗi nguồn i, i = 1,
…, k
Tập các tái tổ hợp C là 1 ma trận C[n * m]
Khởi tạo F là một ma trận , từng bước xây dựng để làm đầy các cột trống bên cạnh, bắt đầu từ cột đầu tiên
Bước 1: Xây dựng cột đầu tiên của ma trận F
- Gọi p là số các phần từ 0 trong cột đầu tiên của ma trận F
- Sử dụng hai bộ đếm n0: đếm số phần tử 0 và n1: đếm số phần tử 1 trong cột đầu tiên
- Ban đầu khởi tạo n0 = 1 và n1 = 1 để đảm bảo có ít nhật một phần tử 0 và một phần tử 1 trong cột đầu tiên
- Sau k – 2 lần rút ra một số ngẫu nhiên q[0,1] nếu q p tăng n0 lên một giá trị và ngược lại Như vậy cột đầu tiên được tạo bao gồm n0 phần tử 0 và n1 phần tử 1
- Đối với mỗi hàng i của ma trận C đặt biến cpi lưu trữ vị trí các điểm dừng cuối cùng Ban đầu khởi tạo cpi = 0 vì chưa có điểm dừng tồn tại cụ thể hơn cpi = 0 (i = 1,
2, …, m) Hơn nữa đặt biến repi lưu trữ các chỉ số của tập nguồn đại diện cho dòng i của cột C sau điểm ngắt cpi cuối cùng
Bước 2: Xây dựng cho các cột còn lại
- Giả sử cột cần điền là cột j, các vị trí của cột j được điền kế tiếp nhau bắt đầu từ hàng 1 Đối với vị trí fij đếm n0, n1 của hàng i trong ma trận C và kết hợp với phần tử
n0, n1 của hàng i-1 trong ma trận F
- Trong trường hợp no > n1 thiết lập fij = 0 Trường hợp no < n1 thiết lập fij = 1 Ngược lại no = n1 chọn fij đồng nhất một cách ngẫu nhiên
- Cứ tiếp tục như vậy cho đến khi xây dựng xong hết các cột của ma trận F Đối với thuật toán RecBlock đi đến cột nào tìm ra được số điểm ngắt và xây dựng được cột tiếp theo của ma trận F, nên thuật toán RecBlock chỉ cần chạy một lần là cho ra kết quả
Trang 23CHƯƠNG II GIỚI THIỆU VỀ THUẬT TOÁN ANT COLONY
OPTIMIZATION (ACO) 2.1 Giới thiệu về thuật toán ACO
Bài toán tối ưu hóa tổ hợp (Combinatorial Optimization Problems) là bài toán hấp dẫn và thú vị phần lớn chúng đều dễ để hình dung nhưng khó tìm ra lời giải Nhiều bài toán tối ưu hóa tổ hợp là các bài toán NP – khó và chúng không thể giải được trong thời gian đa thức Trên thực tế người ta thường giải quyết các bài toán này bằng các phương pháp xấp xỉ, chúng có nghiệm gần tối ưu và thời gian chạy khá ngắn Các thuật toán thuộc loại này thường được gọi là các thuật toán heuristic, chúng được sử dụng để giải quyết các bài toán cụ thể Mở rộng của chúng là các bài toán metaheuristic có thể giải quyết được cả một lớp các bài toán rộng lớn Phương pháp tối ưu hóa đàn kiến (Ant Colony Optimization – ACO) là một phương pháp theo hướng tiếp cận như thế
ACO là một mô hình để thiết kế các thuật toán metaheuristic cho việc giải quyết bài toán tối ưu hóa tổ hợp
ACO – phương pháp tối ưu hóa đàn kiến [1] mô phỏng hành vi của bầy kiến trong tự nhiên nhằm tìm kiếm đường đi ngắn nhất giữa tổ kiến và nguốn thức ăn dựa trên mật độ mùi (Pheromone) mà các con kiến để lại trên đường đi Thuật toán này lần đầu tiên được ứng dụng giải bài toán phân loại các trạm làm việc vào năm 1991 Sau
đó, rất nhiều các biến thể của thuật toán dựa trên các nguyên lý cơ bản của nó được giới thiệu Đặc điểm chủ yếu của thuật toán ACO là sự kết hợp của các thông tin về cấu trúc của lời giải triển vọng với thông tin về cấu trúc của các lời giải tốt trước đó Hiệu quả nổi trội của thuật toán ACO đã được thể hiện khi so sánh với một số thuật toán nổi tiếng khác như thuật toán di truyền (GA), Tabu-Search, Local Search,
… Người ta đã áp dụng rất thành công các thuật toán kiến trong một số các bài toán tối
ưu thường gặp như: bài toán người chào hàng, bài toán người đưa thư, bài toán gán, bài toán tô màu đồ thị, bài toán lập lịch, …
2.2 Mô hình mô phỏng của thuật toán
Trang 24Hình 2.1 Một ví dụ về hoạt động của bầy kiến trong thực tế
Ví dụ trên là hành trình của bầy kiến Trong (hình a) cho thấy bầy kiến đi từ tổ E đến nơi chứa thức ăn A và ngược lại Một cản trở xuất hiện trên đường tại vị trí B hoặc
D, bầy kiến phải quyết định rẽ phải hoặc rẽ trái (hình b) Sự lựa chọn sẽ bị tác động lớn khi xuất hiện mùi hương thu hút của các con khác để lại trên đường đi
Nếu mùi hương thu hút từ bên phía phải càng lớn sẽ tạo cho bầy kiến một động lực mạnh mẽ hơn và do đó xác suất rẽ phải sẽ lớn hơn Con kiến đầu đàn đến điểm B (hoặc D) sẽ có xác suất rẽ phải như rẽ trái (vì không có mùi hương thu hút trước đó trên cả hai tuyến) Bởi vì tuyến B – C – D ngắn hơn B – H – D, con kiến đầu đàn sau
đó sẽ đến điểm D trước khi con kiến đầu đàn đi theo tuyến B – H – D (hình c)
Kết quả là một con kiến đi từ E đến D sẽ tìm thấy mùi hương thu hút trên tuyến
D – C – B và làm cho một nửa con kiến còn lại quyết định đi theo hướng D – C – B –
A và do đó bầy kiến đã đi qua D – C – B Do vậy số các con kiến đi theo tuyến D – C – B theo đơn vị thời gian sẽ càng nhiều hơn so với số các con kiến đi theo tuyến B –
H – D
Nếu mùi hương thu hút trên tuyến đi ngắn hơn lớn hơn sẽ thúc đẩy việc di chuyển nhanh hơn so với tuyến dài hơn, do đó xác suất chọn tuyến ngắn hơn là lớn hơn
Trang 252.2.2 Kiến nhân tạo
Từ thực nghiệm trên cho thấy đàn kiến tự nhiên có thể sử dụng luật di chuyển theo xác suất, dựa trên thông tin địa phương để tìm được đường đi ngắn nhất giữa hai địa điểm Vết mùi của đàn kiến cho phép liên tưởng tới cách học tăng cường (reinforcement learning) trong bài toán chọn tác động tối ưu [1], gợi mở mô hình mô phỏng cho bài toán tìm đường đi ngắn nhất giữa hai nút (tương ứng là tổ và nguồn thức ăn) trên đồ thị
Do sử dụng mô hình bầy kiến nhân tạo như là một phương pháp tối ưu, nên hệ thống sẽ có một vài điểm khác so với cơ chế hoạt động của bầy kiến trong thực tế
Bầy kiến nhân tạo có một vài bộ nhớ/ ký ức nhất định
Chúng không hoàn toàn mù, tức cũng có một vài tri thức nhất định trong việc quan sát, đánh giá các thay đổi của môi trường
Chúng sẽ sống trong môi trường mà miền thời gian là rời rạc
Hình 2.2 Một ví dụ về đàn kiến nhân tạo
Một ý tưởng được đưa ra là nếu tại một điểm đó, một con kiến chọn một đường
đi từ tập các đường đi khác nhau, nó sẽ lựa chọn đường đi có khả năng đạt tới đích cao nhất Hơn nữa đường đi đó cũng có nghĩa là đường đi ngắn nhất
2.3 Trình bày giải thuật
Khi áp dụng ACO cho các bài toán cụ thể, có bốn yếu tố quyết định hiệu quả của thuật toán:
- Xây dựng đồ thị cấu trúc thích hợp: Tùy thuộc vào đặc thù của bài toán
- Xây dựng lời giải tuần tự: Tùy thuộc vào đặc thù của bài toán
Trang 26- Chọn thông tin heuristic: Thông tin heuristic tốt sẽ làm tăng hiệu quả của thuật
toán Tuy nhiên có nhiều bài toán không có thông tin này thì có thể đánh giá chúng như nhau
- Chọn quy tắc cập nhật mùi: Quy tắc cập nhật mùi thể hiện chiến lược học của
thuật toán Hai yếu tố đầu: Đồ thị cấu trúc và thông tin heuristic phụ thuộc vào bài toán cụ thể, còn quy tắc cập nhật mùi là yếu tố phổ dụng và thường dùng làm tên để phân biệt cho các thuật toán ACO
2.3.1 Đồ thị cấu trúc
Bài toán tối ưu tổ hợp tổng quát
Mỗi bài toán tối ưu tổ hợp tổng quát ứng với một bộ ba trong đó S là tập hữu hạn các trạng thái (lời giải tiềm năng hay phương án), f là hàm mục tiêu xác định trên S, còn Ω là tập các ràng buộc Mỗi phương án thỏa mãn các ràng buộc gọi là phương án chấp nhận được Mục tiêu của chúng là tìm ra phương án tối ưu hóa toàn cục đối với hàm mục tiêu , nói cách khác chính là tìm phương án sao cho
với mọi Đối với bài toán này ta có 3 cách giải quyết đó là: vét cạn, kỹ thuật ăn tham hoặc phương pháp tối ưu trong lĩnh vực NP-khó
Các tập C, S, Ω có đặc tính như sau[1,tr.31-32]:
1) Ký hiệu X là tập các vectơ trong C độ dài không quá h: X =
Khi đó, mỗi phương án s trong S được xác định bởi ít nhất một vectơ trong X (như ở điểm 2)
2) Tồn tại tập con X* của X và ánh xạ từ X* lên S sao cho không rỗng với S, trong đó tập X* có thể được xây dựng từ tập con C0của C nhờ mở rộng tuần tự (điểm 3 dưới đây)
3) Từ C0 ta mở rộng tuần tự thành X* như sau:
i) Ta xem x0 = là mở rộng được với
ii) Giả sử là mở rộng được và chưa thuộc vào X* Từ tập ràng buộc Ω, xác định tập con của C, sao cho thì
Trang 27Thông thường, đối với các bài toán thuộc loại NP-khó, người ta đưa ra các phương pháp heuristic tìm lời giải đủ tốt cho bài toán Các thuật toán ACO kết hợp thông tin heuristic này với phương pháp học tăng cường, mô phỏng hành vi của đàn kiến, để tìm lời giải tốt hơn
Ta gọi đồ thị là đồ thị cấu trúc của bài toán tối ưu tổ hợp, trong
đó V là tập đỉnh, E là tập cạnh, H là vectơ các trọng số heuristic của cạnh và là vectơ biểu thị các thông tin học tăng cường Từ các cạnh ta xây dựng tập X* nhờ mở rộng tập theo thủ tục tuần tự Nếu không có thông tin heuristics thì ta xem H có các thành phần như nhau và bằng 1
Trường hợp tổng quát, là đồ thị đầy đủ.Tuy nhiên, tùy theo ràng buộc của bài toán, các cạnh có thể lược bớt để giảm miền tìm kiếm lời giải theo thủ tục mở rộng tuần tự Chẳng hạn, với bài toán tìm cực trị của hàm giải tích , vớithuộc tập giá trị hữu hạn , đồ thị cấu trúc có tầng, tầng chứa các đỉnh thuộc tập , còn tập cạnh chỉ gồm các cạnh nối các đỉnh thuộc tầng với các đỉnh thuộc tầng
như trong hình 2.3 Khi đó tập là tập , mỗi mở rộng tuần
tự của lời giải sẽ được xây dựng từ một đỉnh thuộc tập này
Hình 2.3 Đồ thị cấu trúc tổng quát cho bài toán cực trị hàm
2.3.2 Trình bày về thuật toán ACO cơ bản
Tiến hành sử dụng m con kiến để xây dựng lời giải trên đồ thị cấu trúc Quá trình tìm kiếm lời giải trên đồ thị kết thúc theo số bước lặp hoặc giới hạn thời gian chạy
Xây dựng lời giải
Lời giải trên đồ thị cấu trúc như sau: Khởi tạo với m con kiến, tại mỗi lần lặp kiến sẽ chọn ngẫu nhiên một đỉnh để làm khởi tạo ban đầu x0 = với
Sau đó các con kiến sẽ đi xây dựng lời giải theo thủ tục bước ngẫu nhiên