Tổ chức dữ liệu cho các thuật toán quay lui

59 307 0
Tổ chức dữ liệu cho các thuật toán quay lui

Đ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

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ ĐẠI HỌC THÁI NGUN TRƢỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN VÀ TRUYỀN THƠNG NGUYỄN QUANG TRÌNH TỔ CHỨC DỮ LIỆU CHO LỚP CÁC THUẬT TỐN QUAY LUI LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH THÁI NGUN - 2013 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ ĐẠI HỌC THÁI NGUN TRƢỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN VÀ TRUYỀN THƠNG NGUYỄN QUANG TRÌNH TỔ CHỨC DỮ LIỆU CHO LỚP CÁC THUẬT TỐN QUAY LUI Chun 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: PGS.TSKH Nguyễn Xn Huy THÁI NGUN - 2013 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ i LỜI CAM ĐOAN Học viên xin cam đoan, kết quả của luận văn hồn tồn là kết quả của tự bản thân học viên tìm hiểu, nghiên cứu và thực hiện theo sự hƣớng dẫn khoa học của PGS.TSKH. Nguyễn Xn Huy. Các tài liệu tham khảo đƣợc trích dẫn và chú thích đầy đủ. Thái Ngun, ngày 10 tháng 10 năm 2013 Học viên Nguyễn Quang Trình Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ ii LỜI CẢM ƠN Học viên xin đƣợc bày tỏ lòng biết ơn chân thành và sâu sắc nhất đến thầy giáo PGS.TSKH. Nguyễn Xn Huy, ngƣời đã tận tình hƣớng dẫn và tạo mọi điều kiện tốt nhất để học viên có thể hồn thành luận văn này. Xin chân thành cảm ơn các thầy giáo, cơ giáo Trƣờng Đại học Cơng nghệ thơng tin và Truyền thơng - Đại học Thái Ngun, Viện Cơng nghệ Thơng tin - Viện Khoa học và Cơng nghệ Việt Nam đã trực tiếp giảng dạy, giúp đỡ và tạo mọi điều kiện thuận lợi trong q trình học tập và nghiên cứu. Cảm ơn các thầy cơ giáo, các bạn học viên lớp cao học Khoa học máy tính CK10C, gia đình và các đồng nghiệp đã ln quan tâm, hỗ trợ, khuyến khích trong suốt thời gian học tập và thực hiện đề tài. Xin chân thành cám ơn! Học viên Nguyễn Quang Trình Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ iii MỤC LỤC TRANG BÌA LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC HÌNH v MỞ ĐẦU 1 1. Lí do chọn đề tài 1 2. Đối tƣợng và phạm vi nghiên cứu 1 3. Hƣớng nghiên cứu của đề tài 1 4. Những nội dung nghiên cứu chính 1 5. Phƣơng pháp nghiên cứu 2 6. Ý nghĩa khoa học của đề tài 2 Chƣơng 1. TỔNG QUAN THUẬT TỐN QUAY LUI 3 1.1. Giới thiệu chung 3 1.2. Ý tƣởng của thuật tốn [1], [2], [3], [5] 3 1.3. Kết luận 7 Chƣơng 2. XÂY DỰNG THUẬT TỐN QUAY LUI VÀ TỔ CHỨC DỮ LIỆU CHO MỘT SỐ BÀI TỐN KINH ĐIỂN 8 2.1. Bài tốn từ chuẩn [2] 8 2.1.1. Giới thiệu bài tốn 8 2.1.2. Tổ chức dữ liệu và chƣơng trình 8 2.1.3. Nhận xét 11 2.2. Bài tốn xếp hậu [1], [2] 12 2.2.1. Giới thiệu bài tốn 12 2.2.2. Tổ chức dữ liệu và chƣơng trình 13 2.2.3. Nhận xét 20 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ iv 2.3. Bài tốn đa giác 21 2.3.1. Giới thiệu bài tốn 21 2.3.2. Tổ chức dữ liệu và chƣơng trình 23 2.3.3. Nhận xét 29 2.4. Bài tốn ơ số Sudoku 30 2.4.1. Giới thiệu bài tốn 30 2.4.2. Tổ chức dữ liệu và chƣơng trình 32 2.4.3. Nhận xét 36 2.5. Kết luận 36 Chƣơng 3. CÀI ĐẶT CHƢƠNG TRÌNH 37 3.1. Cài đặt cho bài tốn từ chuẩn 37 3.1.1. Giới thiệu chƣơng trình 37 3.1.2. Thử nghiệm chƣơng trình 41 3.2. Cài đặt cho bài tốn xếp hậu 42 3.2.1. Giới thiệu chƣơng trình 42 3.2.2. Thử nghiệm chƣơng trình 43 3.3. Cài đặt cho bài tốn đa giác 45 3.3.1. Giới thiệu chƣơng trình 45 3.3.2. Thử nghiệm chƣơng trình 47 3.4. Cài đặt cho bài tốn ơ số Sudoku 48 3.4.1. Giới thiệu chƣơng trình 48 3.4.2. Thử nghiệm chƣơng trình 49 KẾT LUẬN 53 TÀI LIỆU THAM KHẢO 54 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ v DANH MỤC CÁC HÌNH Hình 1.1 Cây tìm kiếm lời giải theo thuật tốn quay lui 7 Hình 2.1 Cây tìm kiếm lời giải cho bài tốn từ chuẩn 11 Hình 2.2 Lời giải 1 với N = 4 15 Hình 2.3 Lời giải 2 với N = 4 16 Hình 2.4 Cây lời giải bài tốn xếp hậu với N = 4 17 Hình 2.5 Các đƣờng chéo chính 18 Hình 2.6 Các đƣờng chéo phụ 18 Hình 2.7 Nghiệm v1 = (2, 4, 1, 3) 20 Hình 2.8 Trò chơi Instant Insanity 21 Hình 2.9 Đáp án đạt đƣợc sau khi xoay mỗi khối sang trái 1 góc 90 o 21 Hình 2.10 Bài tốn đa giác với m = 4, n = 6 22 Hình 2.11 Đáp án của bài tốn đa giác với m = 4, n = 6 23 Hình 2.12 Cách tìm nghiệm id = {1,5,6,3} 29 Hình 2.13 Đề bài 1 31 Hình 2.14 Đáp án đề bài 1 31 Hình 2.15 Đề bài 2 32 Hình 2.16 Đáp án đề bài 2 32 Hình 3.1 Giao diện chƣơng trình TUCHUAN 41 Hình 3.2 Tìm 1 nghiệm với n = 7 41 Hình 3.3 Tìm 1 nghiệm với n = 100 41 Hình 3.4 Tìm 1 nghiệm với n = 1000 42 Hình 3.5 Giao diện chƣơng trình XEPHAU 42 Hình 3.6 20 nghiệm đầu tiên 43 Hình 3.7 Các nghiệm 68 → 92 43 Hình 3.8 20 nghiệm đầu tiên 44 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ vi Hình 3.9 Các nghiệm 699 → 724 44 Hình 3.10 Chƣơng trình XEPHAU cải tiến 45 Hình 3.11 Giao diện chƣơng trình DAGIAC 46 Hình 3.12 Thử nghiệm chƣơng trình với M = 4, N = 6 47 Hình 3.13 Thử nghiệm chƣơng trình với M = 10, N = 20 47 Hình 3.14 Thử nghiệm chƣơng trình với M = 40, N = 40 48 Hình 3.15 Giao diện chƣơng trình SUDOKU 49 Hình 3.16 Đọc đề bài từ tệp input de1 50 Hình 3.17 Đáp án de1 bằng phƣơng án 1 50 Hình 3.18 Đáp án de1 bằng phƣơng án 2 51 Hình 3.19 Đọc đề bài từ tệp input de2 52 Hình 3.20 Đáp án de2 bằng phƣơng án 1 52 Hình 3.21 Đáp án de2 bằng phƣơng án 2 52 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ 1 MỞ ĐẦU 1. Lí do chọn đề tài Để giải một bài tốn thơng thƣờng có nhiều cách tiếp cận. Mỗi cách tiếp cận khác nhau cho kết quả với độ tối ƣu khác nhau. Với nhiều bài tốn việc tìm ra giải thuật tối ƣu khơng phải việc đơn giản, do đó một kĩ năng cần thiết để giải đƣợc một bài tốn hồn chỉnh là phải giải đƣợc bài tốn ở kích thƣớc dữ liệu vừa phải. Đây sẽ là những bộ dữ liệu thử mang tính định hƣớng chiến lƣợc cho việc giải bài tốn. Với phƣơng pháp này có thể giải ngay bằng cách duyệt tồn bộ hoặc có thể giải đƣợc một phần lớn của bài tốn. Một thuật tốn giúp duyệt tồn bộ hiệu quả, nhanh chóng là thuật tốn quay lui. Việc áp dụng và cài đặt thuật tốn quay lui cho các bài tốn thƣờng khá trừu tƣợng và khó hiểu. Và khó hơn là việc kết hợp thuật tốn quay lui với nhánh cận để giúp q trình duyệt đƣợc hiệu quả hơn. Do đó học viên thấy việc phân tích, đánh giá và định hƣớng cách tiếp cận một bài tốn bằng thuật tốn quay lui là rất cần thiết. Trong khn khổ luận văn thạc sỹ, học viên chọn đề tài nghiên cứu: “Tổ chức dữ liệu cho lớp các thuật tốn quay lui” 2. Đối tƣợng và phạm vi nghiên cứu Tìm hiểu một số đặc trƣng của lớp các bài tốn đòi hỏi duyệt các khả năng. Ứng dụng để giải một số bài tốn liệt kê và tìm phƣơng án tối ƣu. 3. Hƣớng nghiên cứu của đề tài Tìm hiểu các kỹ thuật và quy trình duyệt dữ liệu. Cài đặt chƣơng trình cho một số bài tốn. 4. Những nội dung nghiên cứu chính Chƣơng 1. Tổng quan thuật tốn quay lui Chƣơng này giới thiệu một số vấn đề liên quan đến đặc điểm, ý tƣởng và nội dung của thuật tốn quay lui. Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ 2 Chƣơng 2. Xây dựng thuật tốn quay lui và tổ chức dữ liệu cho một số lớp bài tốn kinh điển.  Bài tốn từ chuẩn  Bài tốn xếp hậu  Bài tốn đa giác  Bài tốn ơ số Sudoku Chƣơng 3. Cài đặt chƣơng trình cho các bài tốn ở Chƣơng 2 và thử nghiệm. 5. Phƣơng pháp nghiên cứu Phân tích, liệt kê, đối sánh, nghiên cứu tài liệu, tổng hợp các kết quả của các nhà nghiên cứu liên quan đến lĩnh vực nghiên cứu. 6. Ý nghĩa khoa học của đề tài Vận dụng tốt thuật tốn quay lui, giúp chúng ta có thể dễ dàng giải đƣợc các bài tốn liệt kê, tối ƣu. Xây dựng cơ sở khoa học cho các bài tốn tìm kiếm. [...]... tất cả các bài tốn tìm nghiệm, liệt kê hay tối ƣu Do đó, khi áp dụng thuật tốn, đơi khi ta phải kết hợp thêm nhiều kĩ thuật, thuật tốn khác thì mới có thể đem lại kết quả tốt nhất Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ 8 Chƣơng 2 XÂY DỰNG THUẬT TỐN QUAY LUI VÀ TỔ CHỨC DỮ LIỆU CHO MỘT SỐ BÀI TỐN KINH ĐIỂN Chƣơng 2 sẽ trình bày cách tổ chức dữ liệu để có thế áp dụng thuật tốn quay lui cho. ..3 Chƣơng 1 TỔNG QUAN THUẬT TỐN QUAY LUI Chƣơng này giới thiệu một số vấn đề liên quan đến đặc điểm, ý tƣởng và nội dung của thuật tốn quay lui 1.1 Giới thiệu chung Thuật tốn duyệt tồn bộ bằng cách sử dụng các vòng lặp lồng nhau có thể áp dụng cho các bài tốn có kích thƣớc của các tập nghiệm cố định Với những bài tốn mà kích thƣớc của nghiệm phụ thuộc vào dữ liệu đầu vào hoặc một số điều... false; Số hóa bởi Trung tâm Học liệu else Lùi; until false; http://lrc.tnu.edu.vn/ 7 Q trình tìm kiếm lời giải theo thuật tốn quay lui có thể mơ tả bởi cây tìm kiếm lời giải sau đây: Start 1 2 3 Quay lui từ Bƣớc 4 về Bƣớc 3 4 … Xét tiếp các khả năng của Bƣớc 3 8 … 5 6 7 Hình 1.1 Cây tìm kiếm lời giải theo thuật tốn quay lui 1.3 Kết luận Thuật tốn quay lui, cũng nhƣ nhiều thuật tốn khác nó chỉ mang tính... kiện nào khác thì việc sử dụng các vòng lặp lồng nhau là bất khả thi Lúc này, chỉ có thuật tốn quay lui là có thể thực hiện duyệt qua đƣợc tất cả các bộ nghiệm của bài tốn Thuật tốn quay lui là chiến lƣợc tìm nghiệm bài tốn bằng cách xét tất cả các phƣơng án có thể Đây là một thuật tốn có thể áp dụng để giải rất nhiều bài tốn với kích thƣớc dữ liệu thích hợp Ƣu điểm của thuật tốn là đảm bảo tìm ra nghiệm... của các đa giác đều tạo thành các tổ hợp X, D, T, V Hình 2.11 Đáp án của bài tốn đa giác với m = 4, n = 6 2.3.2 Tổ chức dữ liệu và chương trình Phương án 1 Vét (Xây dựng phƣơng án vét với m = 4, n = 6) Ta mã số các màu : Xanh = 1, Đỏ = 2, Tím = 3 và Vàng = 4 Sử dụng mảng kiểu ngun c gồm n phần tử để đánh dấu các màu đã tơ trên mỗi cạnh các đa giác Sử dụng bảng a lƣu giá trị màu của các cạnh trên các. .. những lớp bài tốn có thể giải bằng thuật tốn quay lui 1.2 Ý tƣởng của thuật tốn [1], [2], [3], [5] Giả sử ta phải tìm trong một tập dữ liệu D cho trƣớc một dãy dữ liệu: v = (v[1], v[2], , v[n]) thoả đồng thời hai tính chất P và Q Trƣớc hết ta chọn một trong hai tính chất đã cho để làm nền, tính chất thứ hai tạm gác bỏ, giả sử ta chọn tính chất P Sau đó ta thực hiện các bƣớc sau đây: Bƣớc 1 (Khởi trị)... hậu cách lƣu trữ này tỏ ra thiếu hiệu quả và tốn dữ liệu Với cách tổ chức lƣu trữ dữ liệu bằng mảng 1 chiều sẽ giảm bớt độ phức tạp của bài tốn xuống còn n! Đồng thời, còn tiện cho việc kiểm tra đƣờng chéo Mỗi khi tìm vị trí đặt hậu thứ k trên bàn cờ ta cần kiểm tra xem hậu k đó có đụng độ với tất cả (k-1) hậu đặt trƣớc đó khơng Thời gian chi phí tập trung ở chính điểm này Số hóa bởi Trung tâm Học liệu. .. ngun tố, sẽ có nghiệm với cách giải riêng cho bài tốn 2.2.2 Tổ chức dữ liệu và chương trình Phương án 1 Sử dụng mảng 1 chiều Sử dụng mảng 1 chiều x[1 n] lƣu vị trí đặt các qn hậu Phần tử x[i] của mảng x cho biết phải đặt Hậu thứ i tại cột i và dòng x[i] Giả sử ta có 1 cách xếp hậu chính xác (khơng con hậu nào ăn nhau) thì tất cả N con hậu mỗi con phải nằm trên 1 hàng và 1 cột Cách lƣu bàn cờ nhƣ đã giới... tìm kiếm lời giải cho bài tốn từ chuẩn 2.1.3 Nhận xét Độ phức tạp của bài tốn là hàm mũ MN , tuy nhiên với bài tốn tìm 1 nghiệm thì có thể giải trong thời gian tƣơng đối nhanh Với việc tổ chức dữ liệu sử dụng kiểu dữ liệu mảng có: Ƣu điểm: Truy nhập vào phần tử của mảng đƣợc thực hiện trực tiếp dựa vào địa chỉ tính đƣợc nên tốc độ nhanh, đồng đều đối với mọi phần tử Nhƣợc điểm: Kiểu dữ liệu mảng bị hạn... (v[1], , v[i]) nào đó của các phần tử trong D sao cho v thoả P Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ 4 Bƣớc 2 Nếu v thoả Q ta dừng thuật tốn và thơng báo kết quả là dãy v, ngƣợc lại ta thực hiện Bƣớc 3 Bƣớc 3 Tìm tiếp một phần tử v[i + 1] để bổ sung cho v sao cho v = (v[1], , v[i], v[i + 1]) thoả P Có thể xảy ra các trƣờng hợp sau đây: 3.1 Tìm đƣợc phần tử v[i + 1]: quay lại bƣớc 2 3.2 Khơng . Chƣơng 1. TỔNG QUAN THUẬT TỐN QUAY LUI 3 1.1. Giới thiệu chung 3 1.2. Ý tƣởng của thuật tốn [1], [2], [3], [5] 3 1.3. Kết luận 7 Chƣơng 2. XÂY DỰNG THUẬT TỐN QUAY LUI VÀ TỔ CHỨC DỮ LIỆU CHO MỘT. hƣớng cách tiếp cận một bài tốn bằng thuật tốn quay lui là rất cần thiết. Trong khn khổ luận văn thạc sỹ, học viên chọn đề tài nghiên cứu: Tổ chức dữ liệu cho lớp các thuật tốn quay lui 2 … Quay lui từ Bƣớc 4 về Bƣớc 3 Xét tiếp các khả năng của Bƣớc 3 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ 8 Chƣơng 2 XÂY DỰNG THUẬT TỐN QUAY LUI VÀ TỔ CHỨC DỮ LIỆU CHO

Ngày đăng: 17/08/2015, 11:09

Từ khóa liên quan

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

Tài liệu liên quan