Thuật toán xác định cha chung gần nhất của hai nút trong cây ứng dụng phân tích đa dạng loại vi sinh vật

77 666 0
Thuật toán xác định cha chung gần nhất của hai nút trong cây ứng dụng phân tích đa dạng loại vi sinh vật

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG NINH QUANG TRUNG THUẬT TOÁN XÁC ĐỊNH CHA CHUNG GẦN NHẤT CỦA HAI NÚT TRONG CÂY ỨNG DỤNG PHÂN TÍCH ĐA DẠNG LOÀI VI SINH VẬT Chuyên ngành: Khoa học máy tính Mã số: 60.48.01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên, năm 2014 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ ii BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG NINH QUANG TRUNG CÁC PHƢƠNG PHÁP XÁC ĐỊNH CHA CHUNG GẦN NHẤT CỦA HAI NÚT TRONG CÂY, ỨNG DỤNG PHÂN TÍCH ĐA DẠNG LOÀI VI SINH VẬT Chuyên ngành: Khoa học máy tính Mã số: 60.48.01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Ngƣời hƣớng dẫn khoa học: TS. Nguyễn Cƣờng iii LỜI CAM ĐOAN Tôi xin cam đoan: Luận văn này là công trình nghiên cứu thực sự của cá nhân, đƣợc thực hiện dƣới sự hƣớng dẫn khoa học của Tiến sĩ Nguyễn Cường. Các số liệu, những kết luận nghiên cứu đƣợc trình bày trong luận văn này trung thực và chƣa từng đƣợc công bố dƣới bất cứ hình thức nào. Tôi xin chịu trách nhiệm về nghiên cứu của mình. Học viên Ninh Quang Trung iv LỜI CẢM ƠN Lời đầu tiên, tôi xin chân thành cảm ơn Tiến sĩ Nguyễn Cường ngƣời đã trực tiếp huớng dẫn tôi hoàn thành luận văn. Với những lời chỉ dẫn, những tài liệu, sự tận tình hƣớng dẫn và những lời động viên của Thầy đã giúp tôi vƣợt qua nhiều khó khăn trong quá trình thực hiện luận văn này. Tôi cũng xin cảm ơn quý Thầy (Cô) giảng dạy chƣơng trình cao học “Khoa học máy tính” đã truyền dạy những kiến thức quý báu, những kiến thức này rất hữu ích và giúp tôi nhiều khi thực hiện nghiên cứu. Xin cảm ơn các quý Thầy (Cô) công tác tại Trƣờng Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã tạo điều kiện cho tôi đƣợc tham gia và hoàn thành khóa học. Tôi xin chân thành cảm ơn. Học viên Ninh Quang Trung v MỤC LỤC LỜI CAM ĐOAN ......................................................................................... 1 LỜI CẢM ƠN .............................................................................................. iv MỤC LỤC ..................................................................................................... v DANH MỤC CÁC HÌNH ẢNH ................................................................. vii DANH MỤC CÁC BẢNG BIỂU .............................................................. viii DANH MỤC CÁC TỪ VIẾT TẮT-THUẬT NGỮ .................................... ix MỞ ĐẦU ....................................................................................................... 1 CHƢƠNG I: LÝ THUYẾT ĐỒ THỊ VÀ CÂY ............................................ 6 1.1 Các khái niệm cơ bản về đồ thị ........................................................... 6 1.1.1 Định nghĩa đồ thị (Graph) ............................................................ 6 1.1.2 Các khái niệm............................................................................... 6 1.1.3 Các thuật toán tìm kiếm trên đồ thị .............................................. 8 1.1.4 Độ phức tạp tính toán của BFS và DFS ..................................... 15 1.2 Các khái niệm cơ bản về cây đồ thị .................................................. 15 1.2.1 Định nghĩa và các tính chất cơ bản: ............................................ 15 1.2.2 Một số khái niệm ........................................................................ 16 CHƢƠNG II: CÁC PHƢƠNG PHÁP XÁC ĐỊNH CHA CHUNG GẦN NHẤT CỦA HAI NÚT TRONG CÂY....................................................... 17 2.1 Giới thiệu bài toán LCA .................................................................... 17 2.2 Mối quan hệ giữa LCA và RMQ ...................................................... 19 2.3 Các phƣơng pháp tiếp cận ................................................................. 42 2.3.1 Bài toán hà tiện ......................................................................... 43 2.3.2 Một số phƣơng pháp giải bài toán LCA ................................... 45 2.4 Lựa chọn phƣơng án cài đặt thuật toán cho bài toán LCA ............. 515 CHƢƠNG III: KẾT QUẢ CÀI ĐẶT VÀ ĐÁNH GIÁ .............................. 54 3.1 Cây phân loài và ứng dụng bài toán phân tích đa dạng loài vi sinh vật .............................................................................................................. 548 vi 3.2 Cài đặt phần mềm............................................................................. 59 3.3 Đánh giá chất lƣợng dữ liệu trình tự ................................................ 63 3.4 Lắp ráp trình tự................................................................................. 65 3.5 Dự đoán gen ..................................................................................... 66 3.6 Phân tích đa dạng loài vi sinh .......................................................... 67 KẾT LUẬN ................................................................................................. 70 TÀI LIỆU THAM KHẢO ........................................................................... 67 vii DANH MỤC CÁC HÌNH ẢNH Hình 1.1: Ví dụ về mô hình đồ thị ................................................................ 6 Hình 1.2: Ví dụ về phân loại đồ thị .............................................................. 7 Hình 1.3 Ví dụ về thuật toán tìm kiếm DFS ................................................. 9 Hình 1.4 Xác định đỉnh kề trong thuật toán DFS ....................................... 11 Hình 1.5 Đƣờng đi bắt đầu từ A và kết thúc tại G ...................................... 12 Hình 1.6 Bắt đầu từ A nhƣng đi theo trình tự tập các cạnh đã thăm .......... 12 Hình 1.7 Duyệt các đỉnh trong cây ............................................................. 13 Hình 1.8 Ví dụ thuật toán tìm kiếm theo chiều sâu .................................... 14 Hình 1.9 Cây đồ thị ..................................................................................... 16 Hình 2.1 Vị trí của các phần tử trong bài toán RQM .................................. 19 Hình 2.2 Ví dụ về bài toán RQM ................................................................ 21 Hình 2.3: Cấu trúc cây phân đoạn ............................................................... 23 Hình 2.4 Hình cây của thuật toán LCA ....................................................... 29 Hình 2.5 Phân chia đoạn trong bài toán LCA ............................................. 30 Hình 2.6 Chuyển từ bài toán LCA về bài toán RQM ................................. 35 Hình 2.8 Ví dụ đƣa vài toán từ RQM về bài toán LCA .............................. 37 Hình 2.9 Cây tiến hóa.................................................................................. 43 Hình 3.1 Quy trình phân tích và xử lý dữ liệu ............................................ 55 Hình 3.2 Chất lƣợng tính theo vị trí trình tự ............................................... 59 Hình 3.3 Chất lƣợng theo từng đoạn trình tự .............................................. 60 Hình 3.4 Cây phân loài................................................................................ 63 Hình 3.5 Biểu đồ thể hiện sự đa dạng sinh vật trong mẫu dữ liệu .............. 63 Hình 3.6 Số lƣợng các đoạn ORF có liên quan đến các quy trình chyển hóa ..................................................................................................................... 65 viii DANH MỤC CÁC BẢNG BIỂU Bảng 1.1 Bảng lập lịch duyệt các đỉnh trong cây ....................................... 14 Bảng 3.1 Kết quả lắp ráp trình tự ................................................................ 61 Bảng 3.2 Tổng quan kết quả dự đoán gen................................................... 61 Bảng 3.4 Đa dạng loài đã đƣợc đinh tên theo từng cấp độ khác nhau........ 64 Bảng 3.5 Kết quả phân loại theo cơ sở dữ liệu KEGG ............................... 64 ix DANH MỤC CÁC TỪ VIẾT TẮT-THUẬT NGỮ Cụm từ viết tắt Cụm từ chi tiết ASCII American Standard Code for Information Interchange BFS Breadth First Search Bp Basepair DFS Depth – First – Search DNA Deoxyribo Nucleic Acid E Edges G Graph GA Genome Analyzer HGP Human Genome Project LCA Lowest Common Ancestor MEGAN MetaGenomeANalyzer MGA MetaGeneAnnotator NCBI National Center for Biotechnology Information NGS Next Genration Sequencing PCR Polymerase chain reaction RMQ Range-Minimum Query 1 MỞ ĐẦU Lý thuyết đồ thị là ngành khoa học xuất hiện từ rất lâu nhƣng lại có nhiều ứng dụng hiện đại. Những ý tƣởng cơ bản của nó đƣợc đƣa ra từ thế kỷ thứ 18 bởi nhà toán học Thụy Sĩ Leonhard Euler. Ông đã dùng đồ thị để giải quyết bài toán cây cầu Konigsberg nổi tiếng. Từ đó lý thuyết đồ thị ngày càng khẳng định đƣợc vị trí quan trọng của mình trong việc áp dụng để giải quyết bài toán thực tế nhờ vào việc tìm ra ngày càng nhiều của các định lý, công thức và thuật toán. Đặc biệt trong những năm trở lại đây, cùng với sự ra đời của máy tính điện tử và sựphát triển nhanh chóng của Tin học, Lý thuyết đồ thị càng đƣợc quan tâm đến nhiều hơn. Đặc biệtlà các thuật toán trên đồ thị đã có nhiều ứng dụng trong nhiều lĩnh vực khác nhau nhƣ: Mạng máy tính, Lý thuyết mã, Tối ƣu hoá, Kinh tế học, tìm đƣờng đi ngắn nhất, bài toán luồng cực đại, bài toán vận chuyển, bài toán luồng tổng quát và bài toán xác định cha chung gần nhất của hai nút trong câycũng là một ứng dụng trong lý thuyết đồ thị. Hiện nay, lý thuyết đồ thị là một trong những kiến thức cơ sở của bộ môn khoa học máy tính. Trong phạm vi một đề tài không thể nói kỹ và nói hết những vấn đề của lý thuyết đồ thị. Luận văn này trình bày lý thuyết đồ thị dƣới góc độ khảo sát những thuật toán cơ bản nhất có thể cài đặt đƣợc trên máy tính một số ứng dụng của nó. Trong khuôn khổ luận văn học viên ứng dụng lý thuyết đồ thị để giải bài toán xác định cha chung gần nhất của hai nút trong cây nhằm mục đích phân tích đa dạng loài vi sinh sử dụng công nghệ đọc trình tự thế hệ mới. Ngày nay thông tin về trình tự gen rất hữu ích trong những nghiên cứu về sinh học phân tử và trong nhiều lĩnh vực ứng dụng nhƣ chuẩn đoán, sinh học pháp y, hệ thống sinh học…Quá trình đọc trình tự hay giải trình tự 2 gen (DNA sequencing) là việc xác định thứ tự các nucleotide gắn kết với nhau dọc theo chiều dài của gen (DNA) và trình tự gắn kết nhau của các nucleotide đƣợc gọi là trình tự gen. Từ những năm đầu của thập niên 70 của thế kỷ trƣớc, các nhà khoa học đã thu đƣợc thành công đầu tiên về trình tự gen bằng phƣơng pháp thủ công. Cho đến năm 1990, dự án giải mã toàn bộ hệ genome ngƣời (HGP) đã đƣợc khởi động nhằm tìm hiểu cơ sở di truyền bệnh, kết quả của dự án là một hệ genngƣời với độ chính xác cao. Ngày nay, các công ty thƣơng mại đã cho ra đời các thế hệ máy đọc trình tự dựa trên nhiều công nghệ mới. Các kỹ thuật đọc trình tự gen đã trở nên đơn giản và nhanh chóng hơn nhiều nhờ sự ứng dụng huỳnh quang phân tích tự động [36]. Tuy nhiên tại thời điểm đó, đọc trình tự DNA gặp phải vấn đề là các thiết bị chi phí quá đắt đỏ và mất thời gian để đọc nguyên vẹn hệ gen. Chúng chỉ phù hợp cho kiểm tra các gen riêng lẻ, một số xét nghiệm phân tử, di truyền dƣợc học, bệnh về máu và vi sinh. Với mong muốn hiểu chi tiết về gen, các nhà nghiên cứu luôn mong muốn giải trình tự hoàn chỉnh các DNA hoặc gen của nhiều loài trong cuộc sống. Thiết bị đọc trình tự thế hệ mới (Next Genration Sequencing - NGS) là một bƣớc tiến vƣợt bậc về công nghệ đọc trình tự. Từ khả năng đọc trình tự đoạn ngắn 1500bp (Sanger) hay 100 bp (pyrosequencing), thiết bị đọc trình tự thế hệ mới cho phép đọc đƣợc từ 8Gb đến 600Gb, có nghĩa là cho phép đọc trình tự nguyên bộ gen với số lần rất lớn từ 10 cho đến 500 lần. Vì thế, đọc trình tự thế hệ mới còn đƣợc gọi là đọc trình tự bộ gen (whole genome sequencing). Đọc trình tự thế hệ mới là công cụ mạnh nhất để phát hiện tác nhân gây bệnh, vì với khả năng đọc hàng trăm ngàn đoạn DNA có trong mẫu thử công nghệ này dễ dàng phát hiện bất cứ một trình tự nucleic acid của bất cứ tác nhân gì có mặt trong mẫu thử lấy từ vật chủ hay bệnh nhân. 3 Với các thiết bị đọc trình tự thế hệ mới, các phân tử DNA sẽ đƣợc cắt nhỏ bằng các enzyme đặc thù tạo lên các phân đoạn có độ dài từ 50 cho đến 200 cặp trình tự (basepair - bp). Các phân đoạn ngắn này sẽ đƣợc đƣa vào thiết bị khuếch đại lên hàng trăm lần rồi tiến hành đọc trình tự bởi thiết bị đọc trình tự thế hệ mới. Do đó, dữ liệu thu đƣợc là một tập với số lƣợng lớn, có thể lên tới hàng trăm triệu các đoạn trình tự ngắn có độ dài từ 50bp cho đến 200bp. Để có thể tiến hành các phân tích dữ liệu nhƣ dự đoán gen, chú giải gen, tìm đột biến SNP… Sự ra đời của thiết bị đọc trình tự gen thế hệ mới đã đánh dấu một bƣớc tiến vƣợt bậc trong nghiên cứu phân tử, y sinh, pháp y, nhân chủng học với hàng loạt các dự án giải mã toàn bộ hệ gen động thực vật nhƣ ngƣời, chó, khỉ, gà, khoai tây, lúa… Cùng với các quy trình chuẩn đoán bệnh hƣớng tới cá nhân cụ thể (personalized treament). Bên cạnh đó, các thiết bị đọc trình tự gen thế hệ mới cũng bắt đầu đƣợc áp dụng vào nghiên cứu tính đa dạng loài và phân tích chức năng của các hệ vi sinh vật có trong môi trƣờng nhƣ trong ruột ngƣời bị bệnh [5], hệ vi sinh trong dạ dày bò [8], ruột gà [7], trong môi trƣờng đất [7]… Phân tích tính đa dạng loài và chức năng của hệ vi sinh vật từ dữ liệu trình tự là một trong những đề tài nóng hiện nay trên thế giới. Nhận thấy tính thiết thực của vấn đề và với sự định hƣớng của giáo viên hƣớng dẫn, tôi chọn đề tài “Các phương pháp xác định cha chung gần nhất của hai nút trong cây, ứng dụng trong phân tích đa dạng loài vi sinh vật”. Đề tài này sẽ xây dựng quy tình phân tích dữ liệu trình tự hệ gen vi sinh vật và chƣơng trình đánh giá mức độ đa dạng loài. 4 Nội dung chính của luận văn đƣợc chia làm 3 chƣơng. - Chƣơng I: Lý thuyết đồ thị và cây: Trình bày các khái niệm cơ bản nhất về lý thuyết đồ thị và cây ứng dụng trong việc giải quyết một số bài toán trong lý thuyết đồ thị . - Chƣơng II: Các phƣơng pháp xác định cha chung gần nhất của hai nút trong cây: Trình bày mối liên hệ giữa các bài toán xác định hai nút trong cây và các phƣơng pháp giải bài toán. - Chƣơng III: Kết quả cài đặt và đánh giá: Trình bày quy trình và các yêu cầu cần thiết của các chƣơng trình đƣợc sử dụng thí nghiệm. 1. Đối tượng và phạm vi nghiên cứu: - Nghiên cứu lý thuyết đồ thị và cây. - Nghiên cứu các thuật toán xác định cha chung gần nhất của hai nút trong cây ứng dụng trong phân tích đa dạng loài vi sinh sử dụng công nghệ đọc trình tự thế hệ mới. - Nghiên cứu quy trình phân tích dữ liệu trình tự hệ gen vi sinh vật và đánh giá đa dạng loài.. 2. Hướng nghiên cứu của đề tài 1. Nghiên cứu về lý thuyết đồ thị. 2. Nghiên cứu thuật toán xác định cha chung gần nhất của hai nút trong cây Lowest Common Ancestor (LCA) ứng dụng trong phân tích đa dạng loài vi sinh sử dụng công nghệ đọc trình tự thế hệ mới. 3. Nghiên cứu phƣơng pháp phân tích dữ liệu trình tự hệ gen vi sinh vật và đánh giá đa dạng loài. 5 3. Phương pháp nghiên cứu - Nghiên cứu các nội dung về lý thuyết đồ thị. - Nghiên cứu lý thuyết thuật toán xác định cha chung gần nhất của hai nút trong cây Lowest Common Ancestor (LCA) ứng dụng trong phân tích đa dạng loài vi sinh sử dụng công nghệ đọc trình tự thế hệ mới.. - Thiết kế, đặc tả, xây dựng chƣơng trình xử lý, phân tích dữ liệu trình tự và đánh giá đa dạng loài. 4. Ý nghĩa khoa học của đề tài Đề tài nghiên cứu thuật toán xác định cha chung gần nhất của hai nút trong cây Lowest Common Ancestor (LCA) ứng dụng trong phân tích đa dạng loài vi sinh sử dụng công nghệ đọc trình tự thế hệ mới. Cung cấp công cụ đánh giá đa dạng loài vi sinh vật giúp cho các nhà sinh học tiến hành các nghiên cứu đánh giá sự đa dạng loại vi sinh vật có trong môi trƣờng sống nhƣ đất, nƣớc,... cũng nhƣ trong các mẫu bệnh phẩm của bệnh nhân nhƣ ruột ngƣời, màng nhầy, … 6 CHƢƠNG I: LÝ THUYẾT ĐỒ THỊ VÀ CÂY 1.1 Các khái niệm cơ bản về đồ thị 1.1.1 Định nghĩa đồ thị (Graph) Là một cấu trúc rời rạc gồm các đỉnh và các cạnh nối các đỉnh đó. Đƣợc mô tả hình thức:G = (V, E) V gọi là tập các đỉnh (Vertices) và E gọi là tập các cạnh (Edges). Có thể coi E là tập các cặp (u, v)với u và v là hai đỉnh của V. Một số hình ảnh của đồ thị: Sơ đồ giao thông Mạng máy tính Hình 1.1: Ví dụ về mô hình đồ thị 1.1.2 Các khái niệm Nhƣ trên định nghĩa đồ thị G = (V, E) là một cấu trúc rời rạc, tức là các tập V và E hoặc là tập hữu hạn, hoặc là tập đếm đƣợc, có nghĩa là ta có thể đánh số thứ tự 1, 2, 3... cho các phần tử của tậpV và E. Hơn nữa, đứng trên phƣơng diện ngƣời lập trình cho máy tính thì ta chỉ quan tâm đến cácđồ thị hữu hạn (V và E là tập hữu hạn) mà thôi, chính vì vậy từ đây về sau, nếu không chú thích gì thêm thì khi nói tới đồ thị, ta hiểu rằng đó là đồ thị hữu hạn. Có thể phân loại đồ thị theo đặc tính và số lƣợng của tập các cạnh E: Chođồ thị G = (V, E). Ta có một số khái niệm sau: - Đơn đồ thị: G đƣợc gọi là đơn đồ thị nếu giữa hai đỉnh u, v của V có 7 nhiều nhấtlà 1 cạnh trong E nối từ u tới v. - Đa đồ thị: G đƣợc gọi là đa đồ thị nếu giữa hai đỉnh u, v của V có thể có nhiều hơn 1 cạnh trong E nối từ u tới v. - Đồ thị vô hƣớng: G đƣợc gọi là đồ thị vô hƣớng nếu các cạnh trong E là không định hƣớng, tức là cạnh nối hai đỉnh u, v bất kỳ cũng là cạnh nối hai đỉnh v, u. Hay nói cách khác, tập E gồm các cặp (u, v) không tính thứ tự (u, v) (v, u) - Đồ thị có hƣớng: G đƣợc gọi là đồ thị có hƣớng nếu các cạnh trong E là có định hƣớng, có thể có cạnh nối từ đỉnh u tới đỉnh v nhƣng chƣa chắc đã có cạnh nốitừ đỉnh v tới đỉnh u. Hay nói cách khác, tập E gồm các cặp (u, v) có tính thứ tự:(u, v) ≠ (v, u). Trong đồ thị có hƣớng, các cạnh đƣợc gọi là các cung. Đồ thị vôhƣớng cũng có thể coi là đồ thị có hƣớng nếu nhƣ ta coi cạnh nối hai đỉnh u, vbất kỳ tƣơng đƣơng với hai cung (u, v) và (v, u). Ví dụ: 3 1 2 5 4 Vô hƣớng Có hƣớng Vô hƣớng Có hƣớng Vô hƣớng Đa đồ thị Hình 1.2: Ví dụ về phân loại đồ thị Đối với đồ thị vô hƣớng G = (V, E). Xét một cạnh e E, nếu e=(u,v) thìta nói hai đỉnh u và v là kề nhau (adjacent) và cạnh e này liên thuộc (incident)với đỉnh u và đỉnh v. Với một đỉnh v trong đồ thị, ta định nghĩa bậc (degree) của v, ký hiệu deg(v) là số cạnh liên thuộc với v. Dễ thấy rằng trên đơn đồ thị thì 8 số cạnh liên thuộc với v cũng là số đỉnh kề với v. Đối với đồ thị có hƣớng G = (V, E). Xét một cung e E, nếu e=(u,v) thìta nói u nối tới v và v nối từ u, cung e là đi ra khỏi đỉnh u và đi vào đỉnh v.Đỉnh u khi đó đƣợc gọi là đỉnh đầu, đỉnh v đƣợc gọi là đỉnh cuối của cung e. Với mỗi đỉnh v trong đồ thị có hƣớng, ta định nghĩa: Bán bậc ra của v kýhiệu deg+(v) là số cung đi ra khỏi nó; bán bậc vào ký hiệu deg-(v) là số cung đi vàođỉnh đó. - Đƣờng đi: Một đƣờng đi độ dài k từ đỉnh u đến đỉnh v là dãy (u=x0, x1,..., xk = v) thoả mãn (xi, xi+1) E (là 1 cạnh của đồ thị) với i:(0 ≤ i ≤ k).Đỉnhu gọi là đỉnh xuất phát, v gọi là đỉnh kết thúc của đƣờng đi. Đƣờng đi không cócạnh nào đi qua hơn 1 lần gọi là đƣờng đi đơn. - Chu trình: Đƣờng đi có đỉnh xuất phát trùng với đỉnh kết thúc gọi là chu trình. Tƣơng tự ta có khái niệm chu trình đơn. 1.1.3 Các thuật toán tìm kiếm trên đồ thị a. Thuật toán tìm kiếm theo chiều sâu DFS (Depth – First – Search) Là một thuật toán duyệt hoặc tìm kiếm trên một cây hoặc một đồ thị. Thuật toán khởi đầu tại gốc (hoặc chọn một đỉnh nào đó coi nhƣ gốc) và phát triển xa nhất có thể theo mỗi nhánh. Thông thƣờng, DFS là một dạng tìm kiếm thông tin không đầy đủ mà quá trình tìm kiếm đƣợc phát triển tới đỉnh con đầu tiên của nút đang tìm kiếm cho tới khi gặp đƣợc đỉnh cần tìm hoặc tới một nút không có con. Khi đó giải thuật quay lui về đỉnh vừa mới tìm kiếm ở bƣớc trƣớc. Trong dạng không đệ quy, tất cả các đỉnh chờ đƣợc phát triển đƣợc bổ sung vào một ngăn xếp Last In First Ount (LIFO). 9 Ví dụ: Hình 1.3 Ví dụ về thuật toán tìm kiếm DFS Tìm kiếm ƣu tiên chiều sâu bắt đầu thăm đỉnh A, đi theo cạnh trái, tiếp tục tìm kiếm xong ở cây con trái mới chuyển sang tìm kiếm ở cây con phải. Thứ tự thăm viếng các đỉnh là: A, B, D, F, E, C, G. Quá trình viếng thăm các đỉnh diễn ra nhƣ sau: Sau khi thăm đỉnh A, vì B chƣa đƣợc thăm nên theo cạnh AB ta thăm B, tiếp tục theo cạnh BD tới viếng thăm D. Từ D không thể tiếp tục đi xa hơn, ta quay lại B. Từ B, theo BF đến thăm F, từ F đến thăm E. Từ E vì A đã viếng thăm nên ta quay lại F, rồi quay lại B. Tại B vì tất cả các khả năng từ B đã xem xét nên ta quay lại A. Từ A, quá trình tiếp tục với các đỉnh C và G. Kết quả của thuật toán: - Duyệt các đỉnh:Có thể dùng giải thuật này để tạo một danh sách tuyến tính các đỉnh của một đồ thị (hoặc cây). Có ba cách hiện thực phƣơng pháp này:  Duyệt tiền thứ tự (preordering): Tạo ra một danh sách mà trong đó các đỉnh xuất hiện theo đúng trật tự nó đƣợc thăm đến khi chạy thuật toán. Đây chính là biểu diễn tự nhiên của quá trình thực hiện giải thuật tìm kiếm theo chiều sâu. Một biểu thức ở dạng tiền thứ tự đƣợc gọi là ký pháp tiền tố.  Duyệt hậu thứ tự (postordering): Tạo ra một danh sách mà trong đó các đỉnh xuất hiện theo thứ tự của lần duyệt đến sau cùng khi thực hiện giải 10 thuật. Một lần duyệt hậu thứ tự một cây biểu thức sẽ cho ra một ký pháp hậu tố.  Duyệt đảo hậu thứ tự (reverse postordering): Kết quả của cách duyệt này là sự đảo ngƣợc lại thứ tự trong kết quả duyệt hậu thứ tự. Thông thƣờng, khi duyệt cây, cách này cho ra cùng kết quả với duyệt tiền thứ tự, nhƣng xét tổng quát, khi duyệt một đồ thị, tiền thứ tự và đảo hậu thứ tự cho ra kết quả khác nhau. Với các đồ thị có hƣớng và không có vòng, cách duyệt đảo hậu thứ tự cho ra một trât tự tô-pô của đồ thị đó. Thuật toán tìm kiếm theo chiều sâu của đồ thị vô hướng: - Ý tƣởng thuật toán:DFS trênđồ thị vô hƣớng cũng giống nhƣ khám phá mê cung với một cuộn chỉ và một thùng sơn đỏ để đánh dấu, tránh bị lạc. Trong đó mỗi đỉnh s trong đồ thị tƣợng trƣng cho một cửa trong mê cung. Ta bắt đầu từ đỉnh s, buộc đầu cuộn chỉ vào s và đánh đấu đỉnh này này "đã thăm". Sau đó ta đánh dấu s là đỉnh hiện hành u.  Bây giờ, nếu ta đi theo cạnh (u,v) bất kỳ.  Nếu cạnh (u,v) dẫn chúng ta đến đỉnh "đã thăm" v, ta quay trở về u.  Nếu đỉnh v là đỉnh mới, ta di chuyển đến v và lăn cuộn chỉ theo. Đánh dấuv là "đã thăm". Đặt v thành đỉnh hiện hành và lặp lại các bƣớc.  Cuối cùng, ta có thể đi đến một đỉnh mà tại đó tất cả các cạnh kề với nó đều dẫn chúng ta đến các đỉnh "đã thăm". Khi đó, ta sẽ quay lui bằng cách cuộn ngƣợc cuộn chỉ và quay lại cho đến khi trở lại một đỉnh với một đỉnh còn chƣa đƣợc khám phá. Lại tiếp tục quy trình khám phá nhƣ trên.  Khi chúng ta trở về s và không còn cạnh nào kề với nó chƣa bị khám phá là lúc DFS dừng. - Độ phức tạp của thuật toán:  DFS đƣợc gọi đúng 1 lần ứng với mỗi đỉnh.  Mỗi cạnh đƣợc xem xét đúng 2 lần, mỗi lần từ một đỉnh kề với nó. 11  Với ns đỉnh và ms cạnh thuộc thành phần liên thông chứa s, một phépDFS bắt đầu tại s sẽ chạy với thời gian O(ns + ms) nếu:  Đồ thị đƣợc biểu diễn bằng cấu trúc dữ liệu dạng danh sách kề.  Đặt nhãn cho một đỉnh là "đã thăm" và kiểm tra xem một đỉnh "đã thăm chƣa tốn chi phí O(degree).  Bằng cách đặt nhãn cho các đỉnh là "đã thăm", ta có thể xem xét một cách hệ thống các cạnh kề với đỉnh hiện hành nên ta sẽ không xem xét một cạnh quá 1 lần. - Xác định đỉnh kề trong DFS  Kết quả của DFS phụ thuộc vào cách ta chọn đỉnh kế tiếp Hình 1.4 Xác định đỉnh kề trong thuật toán DFS  Nếu ta bắt đầu tại A và thử cạnh nối đến F, sau đó đến B, rồi đến E, C, cuối cùng là G ta đƣợc: 12 Hình 1.5 Đường đi bắt đầu từ A và kết thúc tại G  Nếu cũng bắt đầu từ A nhƣng đi theo trình tự, tập các cạnh đã thăm,backedge và các điểm đệ quy sẽ khác trƣớc. Hình 1.6 Bắt đầu từ A nhƣng đi theo trình tự tập các cạnh đã thăm b. Thuật toán tìm kiếm theo chiều rộng Tìm kiếm theo chiều rộngBreadth First Search (BFS) là một thuật toán tìm kiếm trong đồ thị trong đó việc tìm kiếm chỉ bao gồm 2 thao tác: (a) thăm một đỉnh của đồ thị; (b) thêm các đỉnh kề với đỉnh vừa thăm vào danh sách có thể thăm trong tƣơng lai. Có thể sử dụng thuật toán tìm kiếm theo chiều rộng cho hai mục đích: tìm kiếm đƣờng đi từ một đỉnh gốc cho trƣớc tới một đỉnh đích, và tìm kiếm đƣờng đi từ đỉnh gốc tới tất cả các đỉnh khác. Trong đồ thị không có trọng số, thuật toán tìm kiếm theo chiều rộng luôn tìm ra đƣờng đi ngắn nhất có thể. Thuật toán BFS bắt đầu từ đỉnh gốc và lần lƣợt thăm các đỉnh kề với đỉnh gốc. Sau đó, với mỗi đỉnh trong số đó, thuật toán lại lần lƣợt thăm các đỉnh kề với nó mà chƣa đƣợc thăm trƣớc đó và lặp lại. Trong thuật tìm kiếm theo chiều sâu, trong đó cũng sử dụng 2 thao tác trên nhƣng có trình tự thăm các đỉnh khác với thuật toán tìm kiếm theo chiều rộng. 13 - Cài đặt bằng hàng đợi: Cơsởcủaphƣơngphápcàiđặtnàylà"lậplịch"duyệtcácđỉnh.Việcthămmộ tđỉnhsẽlênlịch duyệtcácđỉnhkềnósaochothứtựduyệtlàƣutiênchiềurộng(đỉnhnàogầnShơnsẽ đƣợcduyệt trƣớc).Vídụ:BắtđầutathămđỉnhS.ViệcthămđỉnhSsẽphátsinhthứtựduyệtnhữn gđỉnh(x1,x2,...,xp)kềvớiS(nhữngđỉnhgầnSnhất).Khithămđỉnhx1 sẽlạiphátsinhyêucầuduyệtnhữngđỉnh(u1,u2 ...,uq)kềvớix1.Nhƣngrõràngcácđỉnhunày"xa"Shơnnhữngđỉnhxnênchúngchỉ đƣợcduyệtkhitất cảnhữngđỉnhx đãduyệtxong.Tứclàthứtựduyệt đỉnhsaukhiđãthămx1 sẽlà:(x2, x3..., xp, u1, u2, ..., uq). Hình 1.7 Duyệt các đỉnh trong cây Giảsửtacómộtdanhsáchchứanhữngđỉnhđang"chờ"thăm.Tạimỗibƣớc,tat hămmộtđỉnhđầu danhsáchvàchonhữngđỉnhchƣa"xếphàng"kềvớinóxếphàngthêmvàocuốidanhsá ch.Chínhvìnguyêntắcđónêndanhsáchchứanhữngđỉnhđangchờsẽđƣợctổchứcdƣ ớidạnghàngđợi(Queue). Ta sẽ dựng giải thuật như sau: Bƣớc 1: Khởi tạo: - Các đỉnh đều ở trạng thái chƣa đánh dấu, ngoại trừ đỉnh xuất phát S là đã đánh dấu. - Mộthàngđợi(Queue),banđầuchỉcómộtphầntửlàS.Hàngđợidùngđểchứacác đỉnhsẽ đƣợc duyệt theo thứ tự ƣu tiên chiều rộng. 14 Bƣớc 2: Lặp các bƣớc sau đến khi hàng đợi rỗng: - Lấy u khỏi hàng đợi, thông báo thăm u (Bắt đầu việc duyệt đỉnh u). - Xét tất cả những đỉnh v kề với u mà chƣa đƣợc đánh dấu, với mỗi đỉnh v đó: 1. Đánh dấu v. 2. Ghi nhận vết đƣờng đi từ u tới v (Có thể làm chung với việc đánh dấu). 3. Đẩy v vào hàng đợi (v sẽ chờ đƣợc duyệt tại những bƣớc sau). Bƣớc 3: Truy vết tìm đƣờng đi: Ví dụ: Xét đồ thị dƣới đây, Đỉnh xuất phát S = 1. Hình 1.8 Ví dụ thuật toán tìm kiếm theo chiều sâu Cơ sở của thuật toán tìm kiếm theo chiều rộng là lập lịch duyệt cácđỉnh.Việc thăm một đỉnh sẽ lên lịch duyệt tất cả các đỉnh kề của nósao cho thứ tự duyệt là ƣu tiên chiều rộng (nghĩa là đỉnh nào gần Shơn sẽ đƣợc duyệt trƣớc). Bảng 1.1 Bảng lập lịch duyệt các đỉnh trong cây Đỉnh u Hàng đợi Hàng đợi Các đỉnh v Hàng đợi sau (Lấy ra từ hàng (Sau khi lấy u kề u mà chƣa khi đẩy những đợi) ra) lên lịch đỉnh vào 2,3 (2,3) (1) 1 (2,3) 2 (3) 4 (3,4) (3,4) 3 (4) 5 (4,5) 15 (4,5) 4 (5) 6 (5,6) (5,6) 5 (6) Không có (6) (6) 6 Không có Đểýthứtựcácphầntửlấyrakhỏihàngđợi,tathấytrƣớchếtlà1;sauđóđến2,3;r ồimớitới4,5;cuốicùnglà6.RõrànglàđỉnhgầnShơnsẽđƣợcduyệttrƣớc.Vànhƣvậy ,tacónhậnxét:nếukết hợplƣuvếttìmđƣờngđithìđƣờngđitừStớiFsẽlàđƣờngđingắnnhất(theonghĩaqua ítcạnh nhất) 1.1.4Độ phức tạp tính toán của BFS và DFS Quátrìnhtìmkiếmtrênđồthịbắtđầutừmộtđỉnhcóthểthămtấtcảcácđỉnhcònlại ,khiđócách biểu diễn đồ thị có ảnh hƣởng lớn tới chi phí về thời gian thực hiện giải thuật: - Trong trƣờng hợp ta biểu diễn đồ thị bằng danh sách kề, cả hai thuật toán BFS vàDFSđềucóđộ phức tạp tính toán là O(n + m) = O(max(n, m)).Đây là cách cài đặt tốt nhất. - Nếu ta biểu diễn đồ thị bằng ma trận kề nhƣ ở trên thì độ phức tạp tính toán trong trƣờng hợp này là O(n + n2) = O(n2). - Nếu ta biểu diễn đồ thị bằng danh sách cạnh, thao tác duyệt những đỉnh kề với đỉnh u sẽ dẫn tới việc phải duyệt qua toàn bộ danh sách cạnh, đây là cài đặt tồi nhất, nó có độ phức tạp tính toán là O(n.m). 1.2 Các khái niệm cơ bản về cây đồ thị 1.2.1 Định nghĩa và các tính chất cơ bản: Cây là một đồthịmà trong đó hai đỉnh bất kì đều đƣợc nối với nhau bằng đúng một đƣờng đi. Nói cách khác một đồ thị vô hƣớng liên thông không chứa chu trình là một cây. Rừng là hợp (disjoint union) của các cây. 16 Ví dụ: c b m i d a f g h e j l k n Hình 1.9 Cây đồ thị 1.2.2Một số khái niệm Cho T là một cây có gốc, v là một đỉnh khác gốc của T. - Cha của v là đỉnh u từ u T sao cho có một cạnh có hƣớng duy nhất v. Khi đó, u đƣợc gọi là cha của v; v là con của u. - Các đỉnh có cùng cha đƣợc gọi là anh em. - Tổ tiên của một đỉnh khác gốc là các đỉnh trên đƣờng đi từ gốc đến đỉnh đó. - Con cháu của v là các đỉnh có v là tổ tiên. - Các đỉnh của cây không có con đƣợc gọi là lá. - Các đỉnh có con đƣợc gọi là đỉnh trong. - Trong một cây, cho a là một đỉnh. Cây con với gốc a là đồ thì con của cây đang xét, bao gồm a và các con cháu của nó cùng tất cả các cạnh liên thuộc với các con cháu của a. - Mức của một đỉnh v trong một cây có gốc T là khoảng cách từ gốc đến v. - Mức lớn nhất của một đỉnh bất kỳ trong cây gọi là chiều cao của cây. 17 CHƢƠNG II: CÁC PHƢƠNG PHÁP XÁC ĐỊNH CHA CHUNG GẦN NHẤT CỦA HAI NÚT TRONG CÂY 2.1 Giới thiệu bài toán LCA Tìm kiếm tổ tiên chung thấp nhất Lowest Common Ancestor (LCA) của hai nút trong cây đã đƣợc nghiên cứu, ứng dụng từ những năm của thế kỷ 20 và ngày nay đƣợc ứng dụng rộng rãi trong lý thuyết đồ thị. Đây là vấn đề thú vị không chỉ cho các thuật toán phức tạp để giải quyết nó mà còn đối với nhiều ứng dụng trong xử lý chuỗi và sinh học tính toán. Bài toán LCA và bài toán RMQ - Range Minimum Query là hai bài toán cổ điển nhƣng những nghiên cứu mới về mở rộng của hai bài toán này vẫn đƣợc phát triển bởi phạm vi ứng dụng rộng rãi trong lý thuyết cũng nhƣ trong thực tế. Tầm quan trọng của bài toán LCA và RMQ thể hiện ở 3 điểm: (1) Những thuật toán kinh điển giải quyết bài toán LCA và RMQ đều là những thuật toán mẫu mực về tính hiệu quả, đƣợc chứng minh và đánh giá rõ ràng trong các giáo trình cấu trúc dữ liệu và giải thuật; (2) Rất nhiều thuật toán và ứng dụng thực tế khác cần trả lời truy vấn LCA và RMQ bên trong để tiền xử lý dữ liệu hoặc sử dụng kết quả để xử lý tiếp, việc tăng tốc thuật toán LCA và RMQ sẽ làm tăng tốc thuật toán tổng thể; (3) Có phƣơng pháp quy dẫn tuyến tính từ bài toán LCA sang bài toán RMQ và ngƣợc lại, cho phép phát triển những thuật toán chung cho cả hai bài toán. Bài toán tìm tổ tiên chung gần nhất (Lowest Common Ancestors LCA) phát biểu nhƣ sau: Cho một cây có gốc và một loạt các truy vấn. Mỗi truy vấn nhận vào một cặp nút (u,v) và trả về nút tổ tiên chung của cả u và v có độ sâu lớn nhất. Bài toán LCA đƣợc đề xuất đầu tiên bởi Aho, Hopcroft và Ullman. Rất nhiều thuật toán đã đƣợc phát triển với thời gian tiền xử lý tuyến tính, và trả lời mỗi truy vấn trong thời gian hằng số. Đặc biệt, Omer Berkman và Uzi Vishkin đã chỉ ra rằng nếu xây dựng một chu trình Euler trên phiên bản 18 có hƣớng của cây rồi liệt kê các nút theo đúng thứ tự đƣợc thăm trong một danh sách, khi đó tiền bối chung gần nhất của hai nút bất kỳ sẽ là đỉnh có độ sâu nhỏ nhất nằm giữa hai nút trong danh sách. Lúc này, truy vấn LCA trở thành truy vấn tìm giá trị nhỏ nhất trong một phạm vi (Range-Minimum Query - RMQ). Bài toán RMQ quản lý một danh sách A gồm n phần tử và trả lời một loạt các truy vấn. Mỗi truy vấn có dạng RMQ(i, j) nhận vào một cặp số (i,j) là chỉ số của hai phần tử trong mảng và trả về chỉ số của phần tử nhỏ nhất trong mảng con A[i..j]. Trong thuật toán quy dẫn từ bài toán LCA về bài toán RMQ sử dụng chu trình Euler, mỗi bài toán LCA tổng quát sẽ đƣợc quy dẫn về một trƣờng hợp hạn chế của bài toán RMQ - khi danh sách là số nguyên mà hai phần tử liên tiếp hơn kém nhau đúng 1 đơn vị. Gabow, Bentley và Tarjan lại đề xuất phép quy dẫn tuyến tính theo hƣớng ngƣợc lại - từ bài toán RMQ về bài toán LCA - bằng cách sử dụng một cấu trúc dữ liệu là cây. Trƣớc khi có kết quả này, hầu hết các thuật toán RMQ nhƣ sử dụng bảng thƣa (sparse tables) hay cây quản lý đoạn (segment trees) đều không đạt đƣợc yêu cầu: Thời gian tiền xử lý O(n) và thời gian trả lời mỗi truy vấn O(1). Kết quả của Gabow, Bentley và Tarjan cho phép quy dẫn tuyến tính bài toán RMQ về bài toán LCA, sau đó bài toán LCA lại có thể quy dẫn tuyến tính về một trƣờng hợp hạn chế của bài toán RMQ bằng chu trình Euler. Nhƣ vậy ngƣời ta chỉ cần phát triển các thuật toán RMQ trong trƣờng hợp hạn chế và đã có những thuật toán trả lời truy vấn RMQ trong thời gian O(1) sau một phép tiền xử lý trong thời gian O(n). Để hiểu rõ hơn nữa ta cùng đi tìm hiểu mối quan hệ giữa LCA và RMQ. 19 2.2 Mối quan hệ giữa LCA và RMQ Bài toán LCA ( Least Common Ancestor ) : Đầu vào : 1 cây với n đỉnh. Bài toán: với 2 nút u, v bất kỳ của cây T, chất vấn LCA(u,v) cho biết cha chung gần nhất của 2 đỉnh u,v trong cây T, tức là cho biết đỉnh xa gốc nhất là cha của cả u, v. Bài toán RMQ (Range Minimum Query ) : Đầu vào: 1 mảng A với n số. Chất vấn: Với 2 chỉ số i và j, chất vấn RMQ(i,j) cho biết chỉ số của phần tử nhỏ nhất trong mảng con A[i…j]. Giả sử rằng một thuật toán có thời gian tiền xử lý f(n) và thời gian truy vấn g(n). Các ký hiệu cho sự phức tạp tổng thể cho các thuật toán là . Nút xa nhất từ gốc là tổ tiên của cả u và v trong một số cây bắt nguồn từ T là LCAT (u,v). Bài toán Range Minimum Query (RMQ) đƣợc phát biểu nhƣ sau: Cho một mảng A[0,N-1] tìm vị trí của các phần tử có giá trị nhỏ nhất giữa hai chỉ số nhất định. Hình 2.1 Vị trí của các phần tử trong bài toán RQM Đối với mỗi cặp chỉ số (i,j) lƣu giữ những giá trị của RMQA(i,j) trong một bảng M[0,N-1] [0,N-1]. Độ phức tạp của thuật toán sẽ là . Tuy nhiên, bằng cách sử dụng phƣơng pháp tiếp cận động dễ dàng chúng ta có thể giảm bớt sự phức tạp . Các chức năng tiền xử lý sẽ đƣợc viết nhƣ sau: 20 void process1(int M[MAXN][MAXN], int A[MAXN], int N) { int i, j; for (i =0; i < N; i++) M[i][i] = i; for (i = 0; i < N; i++) for (j = i + 1; j < N; j++) if (A[M[i][j - 1]] < A[j]) M[i][j] = M[i][j - 1]; else M[i][j] = j; } Tuy nhiên thuật toán này thực hiện khá chậm và sử dụng O (N2) bộ nhớ, vì vậy nó sẽ không làm việc đƣợc cho trƣờng hợp lớn. Nhƣng là một giải pháp khắc phục đƣợc trƣờng hợp trên. Một ý tƣởng tốt hơn là phân chia các vector trong sqrt(N). Chúng sẽ tiếp tục trong một vector M[0, sqrt (N) -1] vị trí cho các giá trị tối thiểu cho từng phần. M có thể dễ dàng xử lý trƣớc trong O (N). Dƣới đây là một ví dụ: Hình 2.1 Ví dụ về phân chia đoạn trong bài toán RQM Bây giờ làm thế nào chúng ta có thể tính toán RMQA(i, j). Ý tƣởng là để có đƣợc tối thiểu chung từ sqrt (N) phần nằm bên trong các khoảng phần tử cuối và đầu tiên. Để có đƣợc RMQA(2,7) trong ví dụ trên, chúng ta nên so sánh A[2], A[M [1]], A[6] và A[7] và có đƣợc vị trí của các giá trị tối thiểu. 21 Thật dễ dàng để thấy rằng thuật toán này không làm cho hơn 3*sqrt (N) hoạt động trên truy vấn. Ƣu điểm của phƣơng pháp này là mã hóa nhanh và có thể thay đổi các yếu tố của các mảng giữa các truy vấn. Một cách tiếp cận tốt hơn là để xử lý trƣớc RMQ cho mảng phụ của chiều dài 2k sử dụng lập trìnhđộng. Ta sẽ giữ một mảng M[0,N-1] [0,logN] nơi M [i] [j] là chỉ số của các giá trị tối thiểu trong các mảng tiểu bắt đầu từ i có độ dài 2j. Dƣới đây là một ví dụ: Hình 2.2 Ví dụ về bài toán RQM Đối với máy tính M[i][j], chúng phải tìm kiếm các giá trị tối thiểu trong nửa đầu tiên và thứ hai của khoảng. Rõ ràng rằng các mảnh nhỏ có 2j- 1 chiều dài, vì vậy sự tái phát là: Hàm sử lý sẽ đƣợc mô tả nhƣ sau: void process2(int M[MAXN][LOGMAXN], int A[MAXN], int N) { int i, j; //initialize M for the intervals with length 1 for (i = 0; i < N; i++) M[i][0] = i; //compute values from smaller to bigger intervals for (j = 1; 1 [...]... và cây - Nghiên cứu các thuật toán xác định cha chung gần nhất của hai nút trong cây ứng dụng trong phân tích đa dạng loài vi sinh sử dụng công nghệ đọc trình tự thế hệ mới - Nghiên cứu quy trình phân tích dữ liệu trình tự hệ gen vi sinh vật và đánh giá đa dạng loài 2 Hướng nghiên cứu của đề tài 1 Nghiên cứu về lý thuyết đồ thị 2 Nghiên cứu thuật toán xác định cha chung gần nhất của hai nút trong cây. .. (LCA) ứng dụng trong phân tích đa dạng loài vi sinh sử dụng công nghệ đọc trình tự thế hệ mới 3 Nghiên cứu phƣơng pháp phân tích dữ liệu trình tự hệ gen vi sinh vật và đánh giá đa dạng loài 5 3 Phương pháp nghiên cứu - Nghiên cứu các nội dung về lý thuyết đồ thị - Nghiên cứu lý thuyết thuật toán xác định cha chung gần nhất của hai nút trong cây Lowest Common Ancestor (LCA) ứng dụng trong phân tích đa dạng. .. gần nhất của hai nút trong cây, ứng dụng trong phân tích đa dạng loài vi sinh vật Đề tài này sẽ xây dựng quy tình phân tích dữ liệu trình tự hệ gen vi sinh vật và chƣơng trình đánh giá mức độ đa dạng loài 4 Nội dung chính của luận văn đƣợc chia làm 3 chƣơng - Chƣơng I: Lý thuyết đồ thị và cây: Trình bày các khái niệm cơ bản nhất về lý thuyết đồ thị và cây ứng dụng trong vi c giải quyết một số bài toán. .. dụng trong phân tích đa dạng loài vi sinh sử dụng công nghệ đọc trình tự thế hệ mới - Thiết kế, đặc tả, xây dựng chƣơng trình xử lý, phân tích dữ liệu trình tự và đánh giá đa dạng loài 4 Ý nghĩa khoa học của đề tài Đề tài nghiên cứu thuật toán xác định cha chung gần nhất của hai nút trong cây Lowest Common Ancestor (LCA) ứng dụng trong phân tích đa dạng loài vi sinh sử dụng công nghệ đọc trình tự thế... là một đỉnh Cây con với gốc a là đồ thì con của cây đang xét, bao gồm a và các con cháu của nó cùng tất cả các cạnh liên thuộc với các con cháu của a - Mức của một đỉnh v trong một cây có gốc T là khoảng cách từ gốc đến v - Mức lớn nhất của một đỉnh bất kỳ trong cây gọi là chiều cao của cây 17 CHƢƠNG II: CÁC PHƢƠNG PHÁP XÁC ĐỊNH CHA CHUNG GẦN NHẤT CỦA HAI NÚT TRONG CÂY 2.1 Giới thiệu bài toán LCA Tìm... sinh vật có trong môi trƣờng nhƣ trong ruột ngƣời bị bệnh [5], hệ vi sinh trong dạ dày bò [8], ruột gà [7], trong môi trƣờng đất [7]… Phân tích tính đa dạng loài và chức năng của hệ vi sinh vật từ dữ liệu trình tự là một trong những đề tài nóng hiện nay trên thế giới Nhận thấy tính thiết thực của vấn đề và với sự định hƣớng của giáo vi n hƣớng dẫn, tôi chọn đề tài “Các phương pháp xác định cha chung gần. .. tổ tiên chung thấp nhất Lowest Common Ancestor (LCA) của hai nút trong cây đã đƣợc nghiên cứu, ứng dụng từ những năm của thế kỷ 20 và ngày nay đƣợc ứng dụng rộng rãi trong lý thuyết đồ thị Đây là vấn đề thú vị không chỉ cho các thuật toán phức tạp để giải quyết nó mà còn đối với nhiều ứng dụng trong xử lý chuỗi và sinh học tính toán Bài toán LCA và bài toán RMQ - Range Minimum Query là hai bài toán cổ... quyết một số bài toán trong lý thuyết đồ thị - Chƣơng II: Các phƣơng pháp xác định cha chung gần nhất của hai nút trong cây: Trình bày mối liên hệ giữa các bài toán xác định hai nút trong cây và các phƣơng pháp giải bài toán - Chƣơng III: Kết quả cài đặt và đánh giá: Trình bày quy trình và các yêu cầu cần thiết của các chƣơng trình đƣợc sử dụng thí nghiệm 1 Đối tượng và phạm vi nghiên cứu: - Nghiên... của bài toán RMQ, và có nhiều ứng dụng trong các lĩnh vực và phạm vi tìm kiếm Bổ đề: Nếu có 1 thuật toán với độ phức tạp là cho bài toán LCA thì sẽ có 1 thuật toán với độ phức tạp là cho bài toán RMQ Chứng minh: Giả sử ta có mảng A[1…n] là mảng đầu vào của bài toán RMQ Ta sẽ xây dựng 1 cây theo cách sau: gốc của cây sẽ tƣơng ứng với phần tử nhỏ nhất của mảng A; sau khi loại. .. khoảng gán cho nút đầu tiên là [0, N-1] Ta có thể thấy rằng bất kỳ truy vấn đƣợc thực hiện trong O(log N) Thuật toán dừng lại chúng tiếp cận hoàn toàn cây, vì vậy đƣờng đi của chúng trong cây đƣợc chia một lần duy nhất Sử dụng cây phân đoạn có độ phức tạp của thuật toán là Cây phân đoạn đang đƣợc sử dụng rất phổ biến, không chỉ bởi vì chúng có thể đƣợc sử dụng cho bài toán RMQ Chúng ... sát thuật toán cài đặt đƣợc máy tính số ứng dụng Trong khuôn khổ luận văn học vi n ứng dụng lý thuyết đồ thị để giải toán xác định cha chung gần hai nút nhằm mục đích phân tích đa dạng loài vi sinh. .. vấn đề với định hƣớng giáo vi n hƣớng dẫn, chọn đề tài “Các phương pháp xác định cha chung gần hai nút cây, ứng dụng phân tích đa dạng loài vi sinh vật Đề tài xây dựng quy tình phân tích liệu... TIN & TRUYỀN THÔNG NINH QUANG TRUNG CÁC PHƢƠNG PHÁP XÁC ĐỊNH CHA CHUNG GẦN NHẤT CỦA HAI NÚT TRONG CÂY, ỨNG DỤNG PHÂN TÍCH ĐA DẠNG LOÀI VI SINH VẬT Chuyên ngành: Khoa học máy tính Mã số: 60.48.01

Ngày đăng: 15/10/2015, 14:33

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan