1. Trang chủ
  2. » Công Nghệ Thông Tin

Đánh giá hiệu quả của giải thuật di truyền giải bài toán cây khung truyền thông tối ưu với các kỹ thuật mã hóa cây

86 811 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 86
Dung lượng 1,76 MB

Nội dung

12 Lời mở đầu Lý do chọn đề tài Với sự tiến bộ vượt bậc của công nghệ phần cứng của máy tính hiện nay chúng ta vẫn chưa thể tìm được lời giải tối ưu cho các bài toán có độ phức tạp cao

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

KỸ THUẬT MÃ HÓA CÂY

LUẬN VĂN THẠC SĨ KHOA HỌC Chuyên ngành Công nghệ thông tin

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Trang 3

Danh mục thuật ngữ tiếng anh 5 

Danh mục bảng vẽ 7 

Danh mục hình vẽ 8 

Lời cam đoan 10 

Lời cảm ơn 11 

Lời mở đầu 12 

Lý do chọn đề tài 12 

Mục đích nghiên cứu, đối tượng, phạm vi nghiên cứu 12 

Tóm tắt cô đọng các luận điểm cơ bản và đóng góp mới của tác giả 13 

Phương pháp nghiên cứu 14 

CHƯƠNG 1 15 

CÁC KHÁI NIỆM CƠ BẢN 15 

1.1 Khái niệm thuật toán 15 

1.2 Các đặc trưng của thuật toán: 16 

1.3 Độ phức tạp của thuật toán 18 

1.3.1 Tiêu chí đánh giá thuật toán 18 

1.3.2 Cách xác định độ phức tạp của thuật toán 19 

1.4 Các bài toán NP 24 

1.4.1 Bài toán tối ưu (Optimization Problem) 24 

1.4.2 Bài toán quyết định 26 

1.4.3 Thuật toán không đơn định và lớp P, NP 27 

1.4.4 Phép qui dẫn đa thức và lớp NP-đầy đủ 29 

Trang 4

1.4.5 Bài toán NP-khó 36 

1.5 Một số cách tiếp cận giải các bài toán NP 37 

1.5.1 Phương pháp xấp xỉ 38 

1.5.2 Phương pháp xác xuất 38 

1.5.3 Phương pháp heuristic 39 

1.5.4 Phương pháp tính toán tiến hóa 40 

CHƯƠNG 2 43 

BÀI TOÁN CÂY KHUNG TRUYỀN THÔNG TỐI ƯU 43 

2.1 Giới thiệu 43 

2.2 Các bài toán tối ưu cây khung OCST 46 

2.2.1 Bài toán MRCT 46 

2.2.2 Bài toán cây khung truyền thông tối ưu tích yêu cầu (PROCT) 48 

2.2.3 Bài toán cây khung truyền thông tối ưu tổng yêu cầu (SROCT) 49 

2.2.4 Bài toán nhiều nguồn (Multiple Source) 49 

2.3 Một số ứng dụng của bài toán cây khung truyền thông 51 

CHƯƠNG 3 53 

THUẬT TOÁN DI TRUYỀN VÀ CÁC PHƯƠNG PHÁP MÃ HÓA CÂY 53 

3.1 Giải thuật di truyền 53 

3.1.1 Tổng quan về giải thuật di truyền và các ứng dụng 53 

3.1.2 Giải thuật di truyền 53 

3.2 Một số phương pháp mã hóa cây 56 

3.2.1 Mã hóa Prufer 56 

3.2.2 Mã hóa NetKeys (Network Random Keys Encoding) 59 

3.2.3 Mã hóa NB (Node Biased Encoding) 61 

3.2.4 Mã hóa LB (Link Biased Encoding) 63 

Trang 5

3.2.5 Mã hóa LNB (Link and Node Biased Encoding) 63 

3.3 Ứng dụng của thuật toán di truyền vào kết quả thực nghiệm 66 

3.3.1 Chọn lọc cá thể 66 

3.3.2 Toán tử lai ghép 67 

3.3.3 Toán tử đột biến 68 

3.4 Mô hình lai ghép đề xuất 69 

3.5 Giải thuật di truyền đề xuất: 70 

CHƯƠNG 4 73 

KẾT QUẢ THỰC NGHIỆM 73 

4.1 Cài đặt thử nghiệm 73 

4.1.1 Dữ liệu thực nghiệm 73 

4.1.2 Các tham số cho các thử nghiệm 74 

4.2 Kết quả thực nghiệm 75 

+ Kết luận 79 

TÀI LIỆU THAM KHẢO 81 

Trang 6

Danh mục thuật ngữ tiếng anh

STT Thuật ngữ Viết tắt Đề nghị dịch tiếng Việt

1 Approximation scheme Thuật toán xấp xỉ, sơ đồ xấp xỉ

2 Bin packing problem BPP Bài toán đóng thùng

3 Crossover, Recombination Lai ghép

4 Evolutionary computation Tính toán tiến hóa

5 Evaluation function Hàm mục tiêu

6 Feasible solution lời giải chấp nhận được

12 Genetic-inspired operators Toán tử di truyền

13 K-point crossover Lai ghép tại điểm cắt k

16 Optimal Communication

Spanning Tree OCST Cây khung truyền thông tối ưu

18 Optimal Product-Requirement

Communication Spanning Tree PROCT Tối ưu tích yêu cầu

19 Optimal Sum-Requirement SROCT Tối ưu tổng yêu cầu

Trang 7

6

Communication Spanning Tree

20 Order-based crossover Lai ghép theo thứ tự

21 Probabilistic method Phương pháp xác xuất

22 Primitive operations Số phép toán cơ bản

26 Theory of computation Lý thuyết độ phức tạp tính toán

27 Uniform crossover Lai ghép đồng bộ

29 Uniform order-based crossover Lai ghép đồng bộ theo thứ tự

Trang 8

7

Danh mục bảng vẽ

Bảng 1.1- Tóm tắt một số hàm tính độ phức tạp của thuật toán 22

Bảng 1.2 - Cho biết thời gian tính toán của thuật toán có độ phức tạp thường gặp .23

Bảng 1.3- Mối tương quan giữa quá trình tiến hóa và tính toán tiến hóa 41

Bảng 2.1- Các bài toán tối ưu OCT và tỉ lệ xấp xỉ tốt nhất được biết 51

Bảng 3.1- Chuỗi NetKeys cùng nhãn của các cạnh trong đồ thị ban đầu 60

Bảng 3.2 - Chuỗi NetKeys sau khi được sắp xếp 60

Bảng 4.1 - Các bộ test chuẩn 74

Bảng 4.2 - Kết quả chạy các bộ test chuẩn sử dụng mã hóa Prufer và Netkey Encoding 76

Bảng 4.3- Kết quả chạy các bộ test chuẩn sử dụng mã hóa LB và NB 77

Bảng 4.4 - Kết quả chạy các bộ test chuẩn sử dụng mã hóa LNB 78

Trang 9

8

Danh mục hình vẽ

Hình 1.1 - Minh họa thuật toán 16

Hinh 1.2- Minh họa bài toán chọn lịch xem phim .17

Hình 1.3 Phản ví dụ của thuật toán 1 .17

Hình 1.4 - Phản ví dụ của thuật toán 2 17

Hình 1.5 - Ký hiệu O – lớn 20

Hình 1.6- Ký hiệu -lớn .20

Hình 1 7 Ký hiệu -lớn 20

Hình 1.8 - Minh họa giả thuyết về mối quan hệ giữa các lớp P, NP và NP-đầy đủ 30

Hình 1.9 - Biến đổi đa thức từ bài toán Π 1 về bài toán Π 2 31

Hình 1.10 - Sơ đồ quy dẫn giữa các bài toán .33

Hình 1.11 - Giả thuyết về quan hệ giữa các lớp NP, NP-đầy đủ và NP-khó 37

Hình 2.1- Minh họa cây khung trong bài toán OCST 44

Hình 2.2 - Minh họa bài toán SROCT và PROCT 45

Hình 2.3 - Mối quan hệ của những bài toán cây khung truyền thông tối ưu 46

Hình 2.4- Minh họa độ trễ của cặp đỉnh 47

Hình 2.5 - Một cây khung 3-star, trong đó B,C,E là các nút trong và A,D,E,F,G,H,I là các nút lá .48

Hình 3.1- Mô tả nhiễm sắc thể ( chromosome), allele, gen 54

Hình 3.2 - Mô tả sơ đồ chung của thuật toán di truyền 55

Hình 3.3- Cây khung được mã hóa thành chuỗi Prufer 2565 57

Hình 3.4 - Cây thu được theo mã hóa NetKeys 61

Hình 3.5 - Mô tả một cây được mã hóa NB .63

Hình 3.6 - Cây khung thu được từ mã hóa LNB .65

Hình 3.7- Mô tả phương pháp chọn lọc theo vòng quay Roulette 66

Trang 10

9

Hình 3.8- Minh họa phương pháp lai ghép một điểm cắt 67 Hình 3.9 - Minh họa phương pháp lai ghép đồng bộ 68 Hình 3.10 - Chỉ ra phép đột biến tại vị trí thứ 4 .68 Hình 4.1 - Biểu đồ kết quả tốt nhất tìm được của 5 phương pháp mã hóa trên bộ dữ liệu Raidl50 79

Trang 11

10

Lời cam đoan

Tôi cam đoan kết quả của luận văn là chính tôi thực hiện, các số liệu thực nghiệm là theo đúng kết quả của chương trình Nếu sai tôi xin chịu hoàn toàn trách nhiệm

Trang 12

11

Lời cảm ơn

Tác giả đã nhận được sự hướng dẫn nhiệt tình, chu đáo, nghiêm khắc và đầy khoa học của PGS.TS Nguyễn Đức Nghĩa trong suốt thời gian học tập, nghiên cứu và hoàn thành đề tài Tác giả xin bày tỏ lòng biết ơn chân thành và kính trọng sâu sắc đối với Thầy

Nhân dịp này tác giả cũng xin chân thành gởi lời cảm ơn đến quý thầy, cô trong

và ngoài Viện Công nghệ Thông tin và Truyền thông, Viện Đào tạo Sau đại học Đại học Bách khoa Hà Nội đã dày công giảng dạy trong suốt khóa học và tạo điều kiện thuận lợi cho tác giả hoàn thành luận văn này

Tác giả xin chân thành cảm ơn các bạn cùng lớp Cao học Tin khóa 1 đã đùm bọc giúp đỡ nhau trong học tập và sinh hoạt

Mặc dù luận văn đã được thực hiện với sự nổ lực cố gắng hết sức của bản thân song do hạn chế về trình độ và sự hiểu biết nên khó tránh khỏi những sai lầm thiếu sót Đồng thời tác giả cũng nhận thức được rằng còn rất nhiều vấn đề mở đặt ra chưa giải quyết được Tác giả rất mong nhận được những góp ý, phê bình quý báu của quý thầy

cô và các bạn đọc quan tâm

Trang 13

12

Lời mở đầu

Lý do chọn đề tài

Với sự tiến bộ vượt bậc của công nghệ phần cứng của máy tính hiện nay chúng

ta vẫn chưa thể tìm được lời giải tối ưu cho các bài toán có độ phức tạp cao trong thời gian ngắn Vì vậy, tìm kiếm lời giải đủ tốt cho các bài toán trong thời gian phù hợp là vấn đề được các nhà khoa học trong lĩnh vực tin học rất quan tâm Mục đích chính của các thuật toán tìm kiếm, là tìm ra lời giải tốt nhất cho bài toán trong thời gian nhỏ nhất Các thuật toán tìm kiếm như: vét cạn ( tìm kiếm trên danh sách, trên cây hoặc đồ thị), tìm có thông tin sử dụng heurictics để áp dụng các tri thức về cấu trúc của không gian tìm kiếm nhằm giảm thời gian cần thiết cho việc tìm kiếm được sử dụng nhiều nhưng chỉ hiệu quả với không gian tìm kiếm nhỏ và không hiệu quả khi tìm kiếm trong không gian tìm kiếm lớn Tuy nhiên, trong thực tế có rất nhiều bài toán tối ưu với không gian tìm kiếm rất lớn cần phải giải quyết

Do đó để giải quyết vấn đề này trong thực tế thì hiện nay người ta thường sử dụng phương pháp giải gần đúng Các phương pháp giải gần đúng thường dùng là: các thuật toán tìm kiếm cục bộ (local search), các sơ đồ xấp xỉ (approximation schemes), các phương pháp xác xuất (probabilistic methods), tính toán tiến hóa (evolutionary computation), thuật toán di truyền (genetic algorithm), …

Mục đích nghiên cứu, đối tượng, phạm vi nghiên cứu

Mục đích của luận văn này là khảo sát các đặc tính của thuật toán di truyền với các kỹ thuật mã hóa cây để giải bài toán cây khung truyền thông tối ưu (Optimal

Communication Spanning Tree - OCST), là một trong những bài toán tối ưu trên đồ thị

Trang 14

13

thuộc lớp NP-khó có ứng dụng trong nhiều lĩnh vực của thực tế như: mô hình mạng, trí

tuệ nhân tạo, thiết kế vi mạch…

Đối tượng nghiên cứu là các kỹ thuật mã hóa cây với phạm vi là năm kỹ thuật

mã hóa cây: Prufer, Netkey Encoding, LinkBiased Encoding, NodeBiased Encoding, The Link and Node Biased Encoding

Thuật toán với các kỹ thuật mã hóa cây khác nhau đã được chạy thử nghiệm trên các bộ dữ liệu thường dùng bởi các nhà khoa học để đánh giá hiệu quả các thuật toán

giải của bài toán OCST

Tóm tắt cô đọng các luận điểm cơ bản và đóng góp mới của tác giả

Luận văn được trình bày trong 4 chương và lời kết luận

Chương 1 trình bày các khái niệm cơ bản của lý thuyết độ phức tạp tính toán, định

nghĩa lớp bài toán NP-khó

Chương 2 trình bày tổng quan về bài toán cây khung truyền thông tối ưu

Chương 3 trình bày thuật toán di truyền và một số phương pháp mã hóa cây

Chương 4 trình bày kết quả thực nghiệm thu được khi sử dụng thuật toán di truyền đề

xuất để giải bài toán cây khung truyền thông tối ưu với các kỹ thuật mã hóa cây khác nhau Phân tích kết quả đạt được của thuật toán di truyền với năm phương pháp mã hóa cây khung

Về đóng góp mới của tác giả: Đưa ra kết quả so sánh giữa các kỹ thuật mã hóa cây khác nhau Để từ đó có thể chọn được kỹ thuật mã hóa cây cho kết quả tốt trong bài toán cây khung truyền thông

Trang 15

14

Phương pháp nghiên cứu

Nghiên cứu lý thuyết về thuật toán di truyền và bài toán tối ưu cây khung truyền thông

Nghiên cứu các kỹ thuật mã hóa cây

Xây dựng và cài đặt chương trình cho các kỹ thuật mã hóa cây

So sánh kết quả đạt được của các kỹ thuật mã hóa cây

Kết luận và hướng phát triển

Phần kết luận chung đánh giá tổng quan lại những kết quả đã thực hiện được trong luận văn, những hạn chế của luận văn và một số vấn đề mở cần tiếp tục giải quyết sau này

Trang 16

15

CHƯƠNG 1

CÁC KHÁI NIỆM CƠ BẢN

Chương này trình bày tổng quan về các khái niệm thuật toán và các thuật ngữ cơ

sở được sử dụng trong luận văn Các khái niệm và thuật ngữ này được trình bày dựa trên tài liệu [4]

1.1 Khái niệm thuật toán

Khái niệm thuật toán (Algorithm) xuất phát từ tên nhà toán học Arập Abu Ja’far

Mohamed ibn, thường được gọi là al’Khwarizmi Ông là tác giả một cuốn sách về số học, trong đó ông dùng phương pháp mô tả rất rõ ràng, mạch lạc cách giải các bài toán Sau này phương pháp mô tả cách giải của ông đã được xem là một chuẩn mực và được nhiều nhà toán học tuân theo Thuật ngữ "algorithm" ra đời từ đó dựa theo cách phiên

âm tên của ông Cùng với thời gian khái niệm thuật toán được hoàn chỉnh dần và khái niệm hình thức chính xác của thuật toán được định nghĩa thông qua mô hình máy Turing Với máy Turing lý thuyết độ phức tạp tính toán (Theory of computation complexity) có một sự tiến triển mới, giúp chúng ta hiểu rõ được bản chất của thuật toán, độ phức tạp của một thuật toán, nó cắt nghĩa cho ta “độ khó” của một bài toán cho trước

Định nghĩa 1.1 Thuật toán giải bài toán đặt ra là một hệ thống chặt chẽ và rõ

ràng các quy tắc xác định một dãy các thao tác trên những đối tượng sao cho sau một

số hữu hạn bước thực hiện các thao tác ta thu được đầu ra đối với đầu vào cho trước của bài toán

Trang 17

16

Hình 1.1 - Minh họa thuật toán

1.2 Các đặc trưng của thuật toán:

y Đầu vào (Input): là tập các dữ liệu cần cung cấp thuật toán từ lúc đầu để xử lý

y Đầu ra (Output): với mỗi một bộ dữ liệu vào, thuật toán sẽ cho ra bộ các dữ liệu

ra tương ứng với lời giải của bài toán cho bộ dữ liệu vào

y Hữu hạn: với mọi đầu vào thì thuật toán vẫn cần phải đưa được đầu ra sau một

số hữu hạn (có thể rất lớn) bước thực hiện

y Tính xác định: Thuật toán yêu cầu ở mỗi bước các thao tác phải hết sức rõ ràng, không gây nên sự nhập nhằng, lẫn lộn Khi thực hiện thuật toán trong cùng một điệu kiện phải cho cùng một kết quả

y Tổng quát: Tức là thuật toán có thể áp dụng để giải mọi bài toán có dạng đã cho

y Tính hiệu quả: Với dữ liệu vào, sau một số hữu hạn bước thực hiện thuật toán sẽ dừng và cho đúng kết quả mong muốn với thời gian chấp nhận được

Hai tính chất quan trọng nhất của thuật toán là tính xác định và tính hiệu quả Tính xác định của thuật toán không phải lúc nào cũng dễ thấy

- Ví dụ: Bài toán chọn lịch xem phim

Đầu vào: Một tập G gồm thời gian chiếu trong ngày của n bộ phim

Đầu ra: Tập con của G chứa số bộ phim lớn nhất có thể xem (không được

chồng lên nhau về thời gian)

Chúng ta có thể biểu diễn các bộ phim dưới dạng các đoạn thẳng không giao

nhau như hình bên dưới Trong đó P1, P2 và P3 là các phòng chiếu

Input (Đầu vào) Algorithm(thuật toán ) Output (Đầu ra)

Trang 18

17

Hinh 1.2- Minh họa bài toán chọn lịch xem phim

+ Thuật toán 1: Chọn lần lượt bộ phim chiếu sớm nhất trong G mà không chồng với

các bộ phim đã chọn trước đó Lặp lại cho đến khi không thể chọn thêm

Với thuật toán 1 ta có thể đưa ra một phản ví dụ (có nghĩa là tìm được một cách khác để có thể xem nhiều bộ phim hơn) để chứng minh Thuật toán 1 cho kết quả

không chính xác

- Ví dụ 1:

Hình 1.3 Phản ví dụ của thuật toán 1

Với Thuật toán 1 thì theo ví dụ 1 chúng ta sẽ chọn P1 để xem phim vì phim ở

P1 được chiếu đầu tiên Nhưng nếu là như vậy chúng ta chỉ xem được một bộ phim

Nếu ta chọn P2 để xem thì ta có thể xem 3 bộ phim

+ Thuật toán 2: Chọn bộ phim có thời gian chiếu ngắn nhất trong G mà không trùng

với các bộ phim đã chọn trước Lặp lại cho đến khi không chọn thêm được

Tương tự với Thuật toán 2 thì một ta cũng tìm được một phản ví dụ như hình

vẽ

- Ví dụ 2:

Hình 1.4- Phản ví dụ của thuật toán 2

Trang 19

18

+ Thuật toán 3: Duyệt toàn bộ: duyệt tập con của tập n bộ phim trong G Chọn ra

tập con nào có số lượng phần tử lớn nhất Đảm bảo thu được kết quả tối ưu Thuật toán chạy rất chậm, vì với thì số tập con là 220

+ Thuật toán 4: Sắp xếp các lịch chiếu phim theo thứ tự tăng theo thời gian kết thúc

(thuật toán tối ưu) Lần lượt xem xét các phim trong danh sách đã sắp xếp, bổ sung vào danh sách xem bộ phim đang xét nếu nó không chồng lên các bộ phim đã có trong danh sách xem

Để chỉ ra thuật toán là không cho lời giải đúng ta chỉ cần đưa ra một phản ví dụ của thuật toán Tuy nhiên chưa chỉ ra được một phản ví dụ của thuật toán không có nghĩa là thuật toán luôn cho lời giải đúng Để chứng minh một thuật toán là cho lời giải đúng thì ta phải chứng minh bằng toán học

Chú ý rằng có những bài toán còn không có thuật toán để giải, chẳng hạn bài toán về tính dừng của thuật toán

1.3 Độ phức tạp của thuật toán

1.3.1 Tiêu chí đánh giá thuật toán

Để đánh giá hiệu quả của một thuật toán người ta thường đánh giá độ phức tạp thời gian thực hiện của thuật toán như là hàm theo kích thước của dữ liệu đầu vào Kích thước của dữ liệu đầu vào (the size of the input) thường tùy thuộc vào từng bài toán cụ thể, có thể là tổng số bit cần thiết để biểu diễn nhị phân của dữ liệu

(chẳng hạn, bài toán xác định tính nguyên tố của số tự nhiên n, thì kích thước dữ liệu đầu vào không phải là n, mà là số chữ số của n hay tổng số bit cần thiết trong biểu diễn nhị phân của n) Đối với bài toán sắp xếp tăng dần dãy n phần tử a1, a2, a3,…,

a n cho trước thì kích thước dữ liệu đầu vào n

Kích thước của một tập cơ sở dữ liệu (database) có thể được xem là số record của nó Ta hiểu, thời gian thực hiện (running time) của một thuật toán là số phép

Trang 20

19

toán cơ bản (primitive operations) hoặc “các bước” (steps) nhiều nhất cần thực hiện

để nhận được lời giải của bài toán với mọi dữ liệu đầu vào cho trước (kể cả trường hợp xấu nhất)

1.3.2 Cách xác định độ phức tạp của thuật toán

Ta nói rằng, thuật toán có độ phức tạp thời gian tính hay độ phức tạp tính toán là

f(n) khi và chỉ khi với mọi dữ liệu đầu vào kích thước n, thuật toán sẽ dừng và cho kết

quả sau nhiều nhất f(n) bước tính toán

Thuật toán có độ phức tạp thời gian đa thức, gọi tắt là thuật toán đa thức, nếu

như f(n) là một đa thức với bậc cố định theo n Việc xác định chính xác f(n) thường

rất khó và không có ý nghĩa vì tính hiệu quả của một thuật toán phải được đánh giá

trên lớp các dữ liệu đủ lớn Vì vậy, thay cho việc tính chính xác f (n) người ta đưa ra

các ký hiệu tiệm cận được dùng để đánh giá độ phức tạp của thuật toán trong thực tế như sau

• : nếu tồn tại hằng số và số tự nhiên sao cho với mọi Ta nói là giới hạn trên của

• : nếu tồn tại hằng số và số tự nhiên sao cho với mọi Ta nói là giới hạn dưới của

• : nếu tồn tại hằng số và và số sao cho và

với mọi Ta nói là giới hạn chặt của

Trang 21

20

Hình 1 7 Ký hiệu -lớn

Trang 22

21

Ví dụ: f(n) = n2 + 4n + 2 Ta có

f(n) = n 2 + 4n + 2 ≤ n2 + 4n 2 + 2n2 = 7n2 với mọi n ≥ 1

Nghĩa là tồn tại c= 8, n0 = 1 Do đó n2+4n+2=O(n2)

Tổng quát : a k n k +a k-1 n k-1 +…+a0=O(n k ) (giả thiết a k >0)

Chú ý rằng, 2n không có bậc của một đa thức, vì mọi số nguyên dương k và mọi số dương C > 0, chúng ta có 2 n > với n đủ lớn

O-lớn nhóm các hàm thành các lớp hàm, các hàm thuộc hai lớp khác nhau

có quan hệ theo các ký hiệu tiệm cận khác nhau Còn các hàm thuộc cùng 1 lớp hàm thì có quan hệ theo

+ Một số hàm tính độ phức tạp tính toán thường gặp của thuật toán:

Các hàm 1, logn, n, n k , được xếp vào hàm đa thức Các hàm còn lại n logn , a n , n!

được xếp vào loại hàm mũ Những thuật toán có độ phức tạp tính toán cấp loại hàm

Trang 23

Bảng 1.1- Tóm tắt một số hàm tính độ phức tạp của thuật toán

Lưu ý thêm, với mọi x >-1, Vì vậy hàm log b (n) tăng trưởng

chậm hơn hàm đa thức n a với a, b là các số thực dương Với a>1, hàm mũ a n là đơn

điệu tăng theo n Với hằng số k nguyên dương bất kỳ, ta có hay n k =O(a n)

Như vậy các hàm đa thức tăng chậm hơn các hàm mũ Hơn nữa, với mọi số tự nhiên n,

n! , do đó n!=O(n n)

Bảng sau đây cho ta khái niệm tăng trưởng về thời gian thực hiện một số thuật toán có độ phức tạp tính toán thường gặp (đơn vị thời gian là 0,001 giây, nếu không có ghi chú khác)

Trang 24

23

Bảng 1.2 - Cho biết thời gian tính toán của thuật toán có độ phức tạp thường gặp

Nếu hai thuật toán giải cùng một bài toán, thuật toán A có độ phức tạp

tính toán O(g1(n)), thuật toán B có độ phức tạp O(g2(n)) mà g2(n) có cấp cao hơn

Ví dụ 1: Giả sử thuật toán A có độ phức tạp tính toán là f(n)=4n3- n +1 Khi đó

g(n)=n3 Vì vậy độ phức tạp tính toán của thuật toán A là O(n3)

Ví dụ 2: Bài toán sắp xếp dãy phần tử a[1], a[2], …, a[n] tăng dần bởi thuật

toán Bouble sort:

Input: a[1], a[2],…,a[n]

Output: dãy tăng dần

+ Thuật toán:

Trang 25

Output (a[1], a[2], …a[n]);

Với mỗi i ( ) thuật toán phải thực hiện n-i phép so sánh Vì vậy số phép

so sánh là (n-1)+(n-2)+…+1= Vì vậy kích thước đầu vào của thuật toán là n

và độ phức tạp tính toán của thuật toán là O(n2)

1.4 Các bài toán NP

1.4.1 Bài toán tối ưu (Optimization Problem)

Bài toán tối ưu yêu cầu xác định lời giải sao cho hàm mục tiêu đạt giá trị cực đại (cực tiểu) Mô hình toán học của bài toán tối ưu tổ hợp tổng quát được phát biểu như sau:

Tìm min / max{ f ( x), x D}, trong đó D ={x= ( x1, x2, , x n ) A1 × A2 × ×

A n và A1, …, A n là các tập hữu hạn

Hàm f(x) được gọi là hàm mục tiêu (objective function) Mỗi phần tử x D được

gọi là một phương án hay lời giải chấp nhận được (feasible solution) Tập hữu hạn

phương án D còn được gọi là tập ràng buộc Một phương án x* D làm hàm mục

tiêu đạt cực tiểu (hay cực đại), cụ thể là:

f(x * ) f(x), ∀x ∈ D, đối với bài toán min,

f(x*) f(x),  ∀x ∈ D, đối với bài toán max,

Trang 26

a) miền ràng buộc (tập phương án) của bài toán là rỗng: D = ;

b) cực tiểu (cực đại) của f trên D bằng - (+ ), không bị chặn dưới (trên); c) f đạt cực tiểu (cực đại) hữu hạn trên D, nghĩa là tồn tại phương án tối ưu, giá trị

tối ưu

Sau đây là một số bài toán tối ưu tổ hợp điển hình

+ Bài toán cái túi (Knapsack Problem) Giả sử một cái túi có trọng lượng b (là

số nguyên dương) và n loại đồ vật, các đồ vật lần lượt có trọng lượng là a1, a2,…,

a n và giá trị sử dụng là c1, c2,…c n Cần xếp các đồ vật nào, với số lượng bao nhiêu vào túi sao cho giá trị sử dụng các đồ vật là lớn nhất

Gọi x = ( x 1 , x 2 , , x n ) là phương án mang đồ vật trong đó x i số lượng đồ vật

loại i cần mang theo Chúng ta có mô hình toán học của bài toán cái túi:

+ Bài toán đóng thùng (Bin Packing) Giả sử có một số lượng các thùng có kích

thước 1, và n vật có kích thước tương ứng s 1 , s 2 , , s n , 0 <s i 1 Xác định số

thùng tối thiểu để có thể chứa hết các vật

+ Bài toán tô màu đồ thị (Graph coloring) Tô màu một đồ thị G(V,E) là một

Trang 27

26

ánh xạ C : , trong đ ó S là một tập hợp hữu hạn (tập các màu cần sử dụng), sao cho nếu uv E thì C (u) C (v) ; nói một cách khác các đỉnh kề nhau được gán các màu khác nhau Sắc số của G, ký hiệu bởi χ(G), là số màu tối thiểu cần thiết để

tô màu cho G Bài toán đặt ra là: Cho trước đồ thị G, cần xác định χ(G)

1.4.2 Bài toán quyết định

Trong lý thuyết độ phức tạp tính toán thường xét trên lớp các bài toán quyết định Mỗi bài toán quyết định thường được mô tả theo hình thức gồm dữ kiện (instance) và câu hỏi (question)

+ Bài toán số nguyên tố:

Instance: Cho một số nguyên dương n

Question: n có phải là số nguyên tố hay không?

+ Bài toán HC (chu trình Hamilton):

Instance: Cho một đồ thị hữu hạn, đơn và vô hướng G

Question: G có tồn tại hay không một chu trình Hamilton?

Dễ thấy rằng, một bài toán tối ưu có thể chuyển đổi về dạng của bài toán quyết định tương ứng bằng cách so sánh giá trị có được từ lời giải của bài toán với một cận được cung cấp làm đầu vào cho bài toán quyết định

- Ví dụ:

+ Bài toán tô màu đồ thị (Graph-coloring)

Instance: Cho đồ thị G và số nguyên dương k

Question: Có tồn tại hay không một phép tô màu cho G sử dụng nhiều nhất k

màu?

Cho bài toán quyết định Π với tập các dữ kiện I Câu trả lời của Π phụ thuộc

Trang 28

27

vào từng dữ kiện cụ thể Tập các dữ kiện cho câu trả lời "Yes" được gọi là tập dữ kiện-Yes và ký hiệu là I Y Tập dữ kiện cho câu trả lời "No" được gọi là tập dữ kiện-

No và ký hiệu là I N Khi đó, I = I Y I N , I Y I N =

Ví dụ: với bài toán HC, đồ thị đầy đủ là một dữ kiện-Yes

1.4.3 Thuật toán không đơn định và lớp P, NP

Thuật toán đơn định (Deterministic Algorithm) là thuật toán có tính đơn trị của mỗi phép toán trong thuật toán, với mỗi đầu vào cụ thể nó luôn cho kết quả tương

tự Liên quan đến các bài toán mà được gọi là bài toán NP (Non-Deterministic

Polynomial), chúng ta có khái niệm thuật toán không đơn định (Non-Deterministic Algorithm), một mở rộng của thuật toán đơn định Khác với thuật toán đơn định, mỗi

phép toán trong thuật toán không đơn định là các phép toán đa trị (một tập hợp các giá trị)

Định nghĩa 1.1: Một bài toán quyết định được gọi là thuộc lớp P, nếu tồn

tại một thuật toán đơn định thời gian đa thức để giải bài toán này

Trong tin học và toán rời rạc chúng ta thường gặp các bài toán quen thuộc (không ở dạng bài toán quyết định) như: Bài toán sắp xếp dãy tăng dần, bài toán xác định cây khung nhỏ nhất, bài toán tìm đường đi ngắn nhất, bài toán luồng cực đại,

Các bài toán này đều thuộc lớp P

Thuật toán không đơn định gồm hai phần tách biệt: Phần phỏng đoán và phần

kiểm tra (guess-and-check) Với mỗi dữ kiện x của bài toán đã cho, phần thứ nhất là phỏng đoán một cấu trúc y nào đó Sau đó cung cấp cả x và y như một dữ liệu vào

cho phần thứ hai, phần này xử lý và tính toán theo kiểu đơn định thông thường và

cho kết quả "Yes" hoặc "No" hoặc không bao giờ dừng Máy Turing không đơn

định là hình thức hóa khái niệm thuật toán không đơn định

Một thuật toán không đơn định "giải" một bài toán quyết định Π nếu hai

Trang 29

28

tính chất sau đây xảy ra với mọi dữ kiện x I của Π :

1) Nếu x I Y , thì tồn tại cấu trúc y nào đó mà khi được phỏng đoán cho x, sẽ

chuyển sang phần kiểm tra để trả lời "Yes" cho x và y

2) Nếu x I N , thì không tồn tại cấu trúc y sao cho, khi được phỏng đoán cho x, sẽ

chuyển sang phần kiểm tra để trả lời "No" cho x và y

Định nghĩa 1.2: Một thuật toán không đơn định giải một bài toán Π được gọi

là thực hiện trong thời gian đa thức nếu tồn tại một đa thức p sao cho với mọi dữ kiện

x I Y , tồn tại một phỏng đoán y nào đó để trả lời "Yes" cho x và y trong thời gian

p(| x |), với | x | là kích thước của x

Định nghĩa 1.3: Lớp NP chứa tất cả các bài toán giải được bởi thuật toán

không đơn định thời gian đa thức

Như vậy, việc giải một bài toán quyết định chính là việc kiểm chứng dữ

kiện-Yes của bài toán Việc kiểm chứng dữ kiện-kiện-Yes x của bài toán Π là tìm một phỏng

đoán y nào đó xem như một chứng cứ để khẳng định rằng x là dữ kiện-Yes của Π Ta

Trang 30

29

có thể nói, lớp NP gồm các bài toán mà bất kỳ dữ kiện-Yes của chúng được kiểm

chứng bởi một thuật toán không đơn định thời gian đa thức Với các bài toán được

kiểm chứng bởi thuật toán đơn định thời gian đa thức, chúng là bài toán thuộc lớp P

Điều này cũng cho thấy trong định nghĩa của NP, P NP

Trong phần phỏng đoán ta cần đến tính chất "không đơn định" của thuật toán

Lý do trực quan là, một thuật toán không đơn định thời gian đa thức mới có khả năng phỏng đoán một số lượng lớn hàm mũ các lời giải cho một bài toán và kiểm tra

"song song" mỗi lời giải trong thời gian đa thức

Trong toán học và tin học chúng ta thường gặp các bài toán thuộc lớp NP điển

hình như: Bài toán xác định tính nguyên tố của một số nguyên, bài toán chu trình

Hamilton, bài toán cái túi, bài toán đóng thùng, bài toán xếp hậu, bài toán người du

lịch, … Các bài toán này chỉ có thể được giải quyết bởi các thuật toán đơn định thời gian mũ

1.4.4 Phép qui dẫn đa thức và lớp NP-đầy đủ

Hiển nhiên P NP Tuy vậy, cho đến nay người ta vẫn chưa tìm được một

bài toán thuộc lớp NP nhưng không thuộc lớp P Có nghĩa là câu hỏi " P = NP?" chưa có lời giải Mặc dù vậy, nhiều nhà khoa học cho rằng P ≠ NP

Có lẽ lý do hấp dẫn lý giải tại sao các nhà khoa học luôn tin rằng P ≠ NP, đó là

Trang 31

30

sự tồn tại của một lớp các bài toán trong NP\P được gọi là lớp NP -đầy đủ

(NP-Complete hay gọn hơn NP-C) Lớp này có tính chất gây kinh ngạc rằng, nếu một bài

toán trong lớp này có thể giải được bởi một thuật toán đơn định thời gian đa thức, thì

mọi bài toán trong lớp NP cũng giải được bởi một thuật toán đơn định thời gian tương

tự, nghĩa là P = NP (!)

Hình 1.8 - Minh họa giả thuyết về mối quan hệ giữa các lớp P, NP và NP-đầy đủ

Định nghĩa 1.4: Một bài toán thuộc lớp NP được gọi là NP -đầy đủ nếu nó giải

được bởi một thuật toán đơn định thời gian đa thức, thì P = NP

Liên quan trực tiếp đến khái niệm phức tạp này đó là, trong lớp NP -đầy đủ bao gồm các bài toán được xem là "khó nhất và khó tương đương" trong NP và mọi bài toán khác trong NP đều có thể biến đổi chúng về trong thời gian đa thức Phép biến

đổi như vậy được gọi là phép biến đổi đa thức (polynomial transformation) hay phép quy dẫn đa thức (polynomial reduction)

Định nghĩa 1.5: Giả sử Π 1 và Π 2 là hai bài toán quyết định với tập dữ kiện là I 1

và I 2 tương ứng Ta nói, ánh xạ T: I 1 I 2 là một phép biến đổi đa thức từ bài toán Π 1 về

bài toán Π 2 nếu :

1) T thực hiện được bởi một thuật toán đơn định thời gian đa thức, và 2) Với mọi x I 1 , x , khi và chỉ khi T(x)

Khi đó ta nói, Π 1 được biến đổi đa thức về Π 2 và ký hiệu Π 1 Π 2 Ta lưu ý rằng,

Trang 32

31

yêu cầu 2) trong định nghĩa trên có nghĩa là, câu trả lời "Yes" cho bài toán Π2 trên

T( x) phải tương tự với câu trả lời "Yes" cho Π 1 trên x

Hình 1.9 - Biến đổi đa thức từ bài toán Π 1 về bài toán Π 2

Phép biến đổi đa thức là một phát hiện bất ngờ trong thế kỉ 20 của lý thuyết

NP -đầy đủ nói riêng và của lý thuyết toán học nói chung Với một phép biến đổi đa

thức từ bài toán thứ nhất Π 1 về bài toán thứ hai Π2 nó cho phép ta thay thế việc giải

bài toán Π 1 bằng việc giải bài toán Π 2 Phương pháp thay thế này thực ra đã quen thuộc với việc giải toán, nhưng điều lưu ý ở đây là việc thay thế này phải thực hiện được không quá phức tạp chỉ với một thuật toán đơn định thời gian đa thức mà thôi

Dễ dàng nhận thấy rằng, nếu Π 1 Π 2 và tồn tại thuật toán giải cho bài toán

Π 2 thì ta cũng có thuật toán giải cho bài toán Π 1 (Hình 1.9) Hơn nữa, nếu bài toán

Π 2 có thuật toán thời gian đa thức để giải, thì bài toán Π 1 cũng có thuật toán thời gian đa thức để giải

Ngoài ra, trong lớp các bài toán quyết định, phép biến đổi đa thức có tính bắc

cầu Một đặc điểm của phép biến đổi đa thức là, bài toán Π 2 "khó để giải" ít nhất như bài toán Π1 với một thừa số thời gian đa thức

Trang 33

32

Ta có định nghĩa tương đương cho bài toán là NP -đầy đủ:

Định nghĩa 1.6: Bài toán Π được gọi là bài toán NP -đầy đủ nếu Π NP và Π'

Π, với mọi bài toán Π' trong NP

Bài toán đầu tiên được chứng minh là NP -đầy đủ đó là bài toán SAT (Circuit

Satisfiability Problem – bài toán về tính thực hiện của mạch logic- do Stephen A Cook

đưa ra từ 1971 [5]), bằng cách biến đổi đa thức các bài toán NP về SAT Người ta cũng chứng minh được rằng mọi bài toán NP -đầy đủ đều có thể được biến đổi đa thức từ bài toán 3SAT [6]

Định lý 1.1: Giả sử Π 1 và Π 2 là các bài toán thuộc NP Khi đó, nếu Π 1 là

NP-đầy đủ, và Π 1 Π 2 thì Π 2 là NP -đầy đủ

Từ Định nghĩa 1.5 và Định lý 1.1 cho thấy rằng, khi đã biết một bài toán là

NP-đầy đủ thì việc chứng minh một bài toán nào đó là NP -đầy đủ sẽ dễ dàng hơn

nhiều Thật vậy, để chứng minh một bài toán là NP -đầy đủ ta chỉ cần chỉ ra rằng:

1) nó thuộc NP và

Trang 34

33

2) có một bài toán NP -đầy đủ có thể biến đổi đa thức về nó

Bài toán đầu tiên được chứng minh NP-đầy đủ đó là bài toán SAT (bởi Cook, 1971[5]) và sau đó là sáu bài toán NP-đầy đủ cơ bản trong danh sách các bài toán NP-đầy đủ đã được biết nhờ phép qui dẫn đa thức (xem sơ đồ trên Hình 1.10)

Hình 1.10 - Sơ đồ quy dẫn giữa các bài toán

Sau đây là một số bài toán NP -đầy đủ điển hình

- Bài toán 3SAT (3-satisfiability)

Instance: Cho C = {c 1 , c 2 , , c m } gồm các mệnh đề trên tập hữu hạn U của các biến

mà |c i | = 3 với 1 ≤ i ≤ m

Question: Tồn tại phép gán giá trị cho các biến trong U thoả mãn tất cả các mệnh

đề trong C hay không?

- Bài toán 3DM (3-Dimentional Matching)

Instance: Giả sử W, X, Y là ba tập rời nhau với số phần tử bằng nhau |W| = |X|

= |Y| = q và T W × X × Y

Trang 35

34

Question: Tồn tại hay không tập M T sao cho |M|=q và hai phần tử khác biệt

bất kỳ (w,x,y), (w’,x’,y’) luôn có w w’, x x’, y y’?

- Bài toán VC ( Vertex Cover)

Instance: Cho trước một đồ thị G = (V, E ) và một số tự nhiên k ≤ | V |

Question: T ồn tại hay không một tập hợp S không quá k đỉnh sao cho mỗi cạnh của đồ thị đều có ít nhất một đầu mút trong S?

- Bài toán HC (Hamiltonian Circuit)

Instance: Cho đồ thị vô hướng G

Question: Có tồn tại chu trình Hamilton không?

- Bài toán DHC (Directed Hamiltonian Circuit)

Instance: Cho đồ thị có hướng G

Question: Có tồn tại chu trình Hamilton có hướng không?

- Bài toán Clique

Instance: Cho đồ thị vô hướng G = (V, E ) và số tự nhiên k ≤ |V|

Question: Tồn tại hay không một đồ thị con đầy đủ k đỉnh trong G ?

- Bài toán GC (Graph-coloring)

Instance: Cho đồ thị G và số nguyên dương k

Question: Tồn tại một phép tô màu cho G sử dụng không quá k màu không?

- Bài toán SS (Subset Sum)

Trang 36

35

Instance: Cho dãy số nguyên L = (a 1 , a 2 , , a n ) và số nguyên S

Question: Tồn tại hay không một tập con I {1,2, , n} sao cho

- Bài toán IS (Independent Set)

Instance: Cho trước một đồ thị G = (V, E ) và một số tự nhiên k ≤ | V |

Question: Tồn tại hay không một tập gồm k đỉnh sao cho không có hai đỉnh

nào kề nhau?

- Bài toán TSP (Traveling Salesman Problem):

Một người đi du lịch muốn tham quan n thành phố 1, 2, 3, , n Xuất phát từ

một thành phố nào đó, người du lịch muốn đi tham quan tất cả các thành phố còn lại mỗi thành phố đúng một lần rồi quay trở về thành phố ban đầu Ta gọi cách đi

như vậy là hành trình của người du lịch Biết c ij là chi phí đi từ thành phố i đến thành phố j (i, j =1,2, , n) Hãy xác định một hành trình cho người du lịch sao cho tổng

chi phí là nhỏ nhất Bài toán TSP được phát biểu bằng đồ thị:

Instance: Cho một đồ thị đầy đủ K n với trọng số các cạnh là các số nguyên

dương và số dương C

Question: Tồn tại hay không một chu trình Hamilton trong K n có tổng trọng

số không vượt quá C?

- Bài toán KB (Knapsack Problem)

Instance: Cho b là trọng lượng túi, n loại đồ vật có trọng lượng a 1 , a 2 , , an và giá trị sử dụng c 1 , c 2 ,…, c n

Trang 37

36

Question: Có tồn tại hay không một tập con gồm các đồ vật chất đầy trong túi

sao cho tổng giá trị sử dụng ít nhất bằng b ?

- Bài toán BP (Bin Packing)

Instance: Cho k là số nguyên dương

Question: Hỏi có tồn tại hay không một cách xếp đặt (đóng gói) các đồ vật

vào k thùng?

1.4.5 Bài toán NP-khó

Nhận xét rằng, giả sử hai bài toán Π 1 và Π 2 là NP-đầy đủ Theo định nghĩa Π 1

qui dẫn đa thức về Π 2 và Π 2 qui dẫn đa thức về Π 1 Điều này cho thấy mỗi bài toán

NP-đầy đủ qui dẫn đa thức về mọi bài toán NP-đầy đủ khác (tính đối xứng và bắc cầu

của phép qui dẫn đa thức) Vì thế mọi bài toán NP-đầy đủ có cùng độ phức tạp tính

toán

Bài toán tối ưu của bài toán quyết định tương ứng thuộc lớp NP-đầy đủ được gọi là một bài toán NP-khó (NP-hard) Bài toán NP-khó (mà không thuộc NP) được qui dẫn đa thức từ một bài toán trong lớp NP, vì thế mọi bài toán NP-đầy đủ đều là NP-khó Các bài toán NP-khó là khó không kém những bài toán “khó nhất” trong lớp NP Các bài toán sau đây là NP-khó, nhưng không biết có thuộc NP hay không: Bài toán k tập con nặng nhất, Bài toán cái túi, Bài toán đóng thùng,

Lớp bài toán NP-khó rộng hơn lớp bài toán NP-đầy đủ, vì nó bao gồm các bài toán thuộc lớp NP, cũng như các bài toán không thuộc lớp NP Bài toán cái túi được xem là “dễ nhất” trong các bài toán NP-khó Cùng với khái niệm NP-khó, người ta còn nêu ra khái niệm strongly NP-hard (NP-cực khó) nếu mọi dữ liệu của bài toán Π là nguyên và bài toán thu hẹp của Π trên các bộ dữ liệu bị chặn bởi một đa thức là NP-

khó Người ta chứng minh được rằng không có thuật toán giải thời gian đa thức cho

các bài toán NP-cực khó, trừ khi N= NP Bài toán qui hoạch nguyên tuyến tính được

Trang 38

37

biết là NP-cực khó

Khi nghiên cứu giải quyết các bài toán thực tế, việc xác định nó thuộc lớp nào trong số các lớp bài toán kể trên không chỉ có ý nghĩa lý thuyết mà còn có ý nghĩa ứng dụng quan trọng Nếu bài toán đang xét được xác nhận là thuộc một trong các

lớp NP, NP-đầy đủ, NP-khó thì ít có hy vọng tìm được thuật toán hiệu quả để giải

nó Vì vậy, tốt hơn hết là hãy hướng tới việc xây dựng những thuật toán xấp xỉ cho các bài toán như thế

Hình 1.11 - Giả thuyết về quan hệ giữa các lớp NP, NP-đầy đủ và NP-khó

1.5 Một số cách tiếp cận giải các bài toán NP

Như ta đã biết, các bài toán NP-khó (trong đó có NP-đầy đủ) hiện vẫn chưa có

thuật toán hiệu quả để giải Do đó người ta hướng tới các phương pháp giải gần đúng

và các phương pháp dùng tính toán tiến hóa để giải các bài toán này

+ Một số phương pháp giải các bài toán NP-khó thường gặp là:

Trang 39

38

1.5.1 Phương pháp xấp xỉ

Phương pháp xấp xỉ là phương pháp cho đảm bảo rằng sẽ tìm ra một lời giải gần đúng sai khác với lời giải đúng không quá một sai số tuyệt đối cho trước (hoặc một sai

số tỉ lệ cho trước) trong thời gian đa thức

Tuy nhiên phương pháp xấp xỉ không phải lúc nào cũng đảm bảo được tính chất

này với mọi bài toán NP-khó, nghĩa là có những bài toán (ví dụ như bài toán đóng

thùng – bin packing) thì người ta đã xây dựng được những phương án xấp xỉ trong thời

gian đa thức (polynomial time approximation schemes – PTAS) cho phép đạt tới kết

quả sai khác với kết quả đúng không quá một sai số cho trước bất kì Tuy nhiên với một số bài toán thì không thể làm được điều này, thậm chí không thể xấp xỉ kết quả tới một giá trị sai khác với lời giải đúng một sai số hoặc một tỉ số đa thức

Một hạn chế khác của phương pháp xấp xỉ là chúng chỉ có thể được áp dụng để giải những bài toán tối ưu hóa mà không áp dụng để giải những bài toán dạng quyết định thuần túy được (tuy nhiên người ta có thể chuyển đổi qua lại giữa dạng tối ưu hóa

và dạng quyết định của những bài toán như vậy)

1.5.2 Phương pháp xác xuất

Phương pháp xác xuất (probabilistic methods) hay còn gọi là phương pháp ngẫu nhiên (randomized) sử dụng các bộ sinh giá trị ngẫu nhiên như là đầu vào, phụ giúp thuật toán định hướng xử lí và hy vọng thuật toán sẽ có hiệu quả hoạt động cao trong tình huống trung bình Với phương pháp này thì khả năng thuật toán hoạt động tồi vẫn

có thể xảy ra, nhưng xác suất xảy ra là nhỏ

Phương pháp xác suất được ứng dụng nhiều trong lĩnh vực bảo mật Tuy nhiên đôi khi người ta cũng áp dụng phương pháp này (như là một thủ tục hỗ trợ) cho các

phương pháp khác để giải các bài toán NP-khó Điều đó là bởi vì hiện nay các thuật toán đơn định vẫn chưa thể giải các bài toán NP-khó một cách hiệu quả, vì vậy người ta

Trang 40

sử dụng các phương pháp như: vét cạn có thêm tri thức đi kèm, tối ưu cục bộ, nguyên

lý hướng đích, nguyên lý sắp thứ tự

Ta hãy xét bài toán tìm đường đi ngắn nhất làm ví dụ Trong quá trình tìm kiếm đường đi ngắn nhất, người ta thường sử dụng một hàm , là một hàm số định nghĩa

trên các nút trên cây tìm kiếm, để ước đoán chi phí nhỏ nhất từ nút là đối số của hàm

đó tới nút đích Thông tin heuristic này sẽ được các thuật toán tìm kiếm đã biết khác như thuật toán tìm kiếm tham lam Best-First Search hay thuật toán A* sử dụng để lựa chọn nút tiếp theo trên đường đi Thuật toán tham lam Best-First Search thì lựa chọn nút có chi phí thấp nhất theo hàm heuristic , trong khi đó A* chọn nút có chi phí

thấp nhất theo hàm trong đó là chi phí chính xác của đường đi từ

trạng thái đầu tới nút đang xét Nếu h(n) là một hàm dự đoán tốt thì hiển nhiên A* cũng

có nhiều khả năng tìm ra lời giải tốt, trong đó có thể có lời giải tối ưu Vấn đề thực sự giờ đây nằm ở chỗ lựa chọn hàm như thế nào để hỗ trợ tìm kiếm hiệu quả Có

nhiều cách để xây dựng heuristic cho bài toán

• Sử dụng hàm chi phí của các bài toán con làm heuristic, vì chi phí của bài toán

tổng được tổ hợp từ chi phí của bài toán con, tất nhiên có thể hàm tổ hợp đó rất phức tạp, nhưng những thông tin về chi phí các bài toán con là rất hữu ích cho việc ước đoán chi phí của bài toán tổng, đặc biệt nếu ta có nhiều kinh nghiệm tiếp xúc với dạng bài toán này Để tiết kiệm thời gian tính toán thì người ta thường hay sử dụng một cơ sở dữ liệu mẫu (pattern database) lưu trữ lại lời giải đúng của mọi bài toán con

Ngày đăng: 27/07/2017, 20:26

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[3] F. Rothlauf (2006), “Representations for Genetic and Evolutionary Algorithms”, 2 nd edition, Springer Sách, tạp chí
Tiêu đề: Representations for Genetic and Evolutionary Algorithms
Tác giả: F. Rothlauf
Năm: 2006
[4] C.H. Papadimitriou and M. Yannakakis (1991), “Optimization, approximation, and complexity classes”, J. Comput. Syst. Sci., vol.43, pp.425–440 Sách, tạp chí
Tiêu đề: Optimization, approximation, and complexity classes”, "J
Tác giả: C.H. Papadimitriou and M. Yannakakis
Năm: 1991
[5] Lawler,E.L.and Kan, J.K. (1985), "The travelingSalesman Problem: A Guided Tour of Combinatorial Optimazation", John Wiley Sách, tạp chí
Tiêu đề: The travelingSalesman Problem: A Guided Tour of Combinatorial Optimazation
Tác giả: Lawler,E.L.and Kan, J.K
Năm: 1985
[6] Michael R. Garey and David S. Johnson (1978), Computers and Intractability, Freeman and Company San Francisco Sách, tạp chí
Tiêu đề: J
Tác giả: Michael R. Garey and David S. Johnson
Năm: 1978
[7] Palmer, C. C. and A. KersheNBaum (1994), “Representing trees in genetic algorithms”, In Proceedings of the First IEEE Conference on Evolutionary Computation, Volume 1, Piscataway, NJ, pp. 379–384 Sách, tạp chí
Tiêu đề: Representing trees in genetic algorithms”, In Proceedings of the First IEEE Conference on Evolutionary Computation, Volume 1, Piscataway, N"J
Tác giả: Palmer, C. C. and A. KersheNBaum
Năm: 1994
[8] Alon, N., Karp, R. M., Peleg, D., &amp; West, D. A (1995), Graph theoretic game and its application to the k-server problem. SIAM Journal on Computing, 78-100 Sách, tạp chí
Tiêu đề: J
Tác giả: Alon, N., Karp, R. M., Peleg, D., &amp; West, D. A
Năm: 1995
[9] Bartal, Y. (1996), "Probabilistic approximation of metric spaces and its algorithmic applications". In Proc. 37th IEEE Symp. on Foundations of Computer Science (pp. 184-193) Sách, tạp chí
Tiêu đề: Probabilistic approximation of metric spaces and its algorithmic applications
Tác giả: Bartal, Y
Năm: 1996
[10] Bartal, Y. (1998), "On approximating arbitrary metrics by tree metrics". In Proc. 30th Anual ACM Symp. on Theory of Computer Science (pp. 161-168) Sách, tạp chí
Tiêu đề: On approximating arbitrary metrics by tree metrics
Tác giả: Bartal, Y
Năm: 1998
[11] S. Arora, C. Lund, R. Motwani, M. Sundan, and M. Szegedy (1998), “Proof varification and the hardness of approximation problems,” Colloquium on Computational Complexity Report TR98-008, Univ. of Trier Sách, tạp chí
Tiêu đề: Proof varification and the hardness of approximation problems
Tác giả: S. Arora, C. Lund, R. Motwani, M. Sundan, and M. Szegedy
Năm: 1998
[12] C.C. Palmer and A. KersheNBaum (1995), “An approach to a problem in network design using genetic algorithms”, Networks, vol.26, pp.151–163 Sách, tạp chí
Tiêu đề: An approach to a problem in network design using genetic algorithms
Tác giả: C.C. Palmer and A. KersheNBaum
Năm: 1995
[13] C.H. Papadimitriou and M. Yannakakis (1991), “Optimization, approximation, and complexity classes,” J. Comput. Syst. Sci., vol.43, pp.425–440 Sách, tạp chí
Tiêu đề: Optimization, approximation, and complexity classes,” "J
Tác giả: C.H. Papadimitriou and M. Yannakakis
Năm: 1991
[15] C. Papadimitriou and M. Yannakakis (1988), “Optimization, approximation, and complexity classes”, In STOC ’88: Proceedings of the twentieth annual ACM symposium on Theory of computing, pp. 229–234, New York, NY, USA,. ACM Press Sách, tạp chí
Tiêu đề: Optimization, approximation, and complexity classes
Tác giả: C. Papadimitriou and M. Yannakakis
Năm: 1988
[16] C. Tzoppe, F. Rothlauf, and H.J. Pesch (Jan. 2004), “The edge-set encoding revisited: On the bias of a direct representation for trees” Working Paper in Information Systems, Univ. of Mannheim Sách, tạp chí
Tiêu đề: J". Pesch ("J"an. 2004), “The edge-set encoding revisited: On the bias of a direct representation for trees
[17] D. E. Boyce, A. Farhi and R.Weischedel (1973), “Optimal Network Problem, A Branch and Bound Algorithm”, Environ. Plan. 5, pp. 519-533 Sách, tạp chí
Tiêu đề: Optimal Network Problem, A Branch and Bound Algorithm
Tác giả: D. E. Boyce, A. Farhi and R.Weischedel
Năm: 1973
[18] F. Rothlauf, J. Gerstacker, and A. Heinzl (2003), “On the optimal communication spanning tree problem” Working Paper 10/2003, Univ. of Mannheim Sách, tạp chí
Tiêu đề: J". Gerstacker, and A. Heinzl (2003), “On the optimal communication spanning tree problem
Tác giả: F. Rothlauf, J. Gerstacker, and A. Heinzl
Năm: 2003
[19] F. Rothlauf, D.E. Goldberg, and A. Heinzl (2002), “Network random keys—A tree network representation scheme for genetic and evolutionary algorithms”, Evol.Comput., vol.10, no.1, pp.75–97 Sách, tạp chí
Tiêu đề: Network random keys—A tree network representation scheme for genetic and evolutionary algorithms
Tác giả: F. Rothlauf, D.E. Goldberg, and A. Heinzl
Năm: 2002
[20] Garey,M.R., Johnson, D.S. (1979), “Computers and Intractability: A Guide to the Theory of NP-Completeness”, W. H. Freeman, San Francisco, CA, USA Sách, tạp chí
Tiêu đề: J"ohnson, D.S. (1979), “Computers and Intractability: A Guide to the Theory of "NP"-Completeness
Tác giả: Garey,M.R., Johnson, D.S
Năm: 1979
[21] G. Gallo (1981), “A new Branch and Bound Algorithm for the Network Design Problem”, Report L 81-1, Instituto Di Elaborazione Dell Informazione, Pisa, Italy Sách, tạp chí
Tiêu đề: A new Branch and Bound Algorithm for the Network Design Problem
Tác giả: G. Gallo
Năm: 1981
[23] H. H. Hoang (1973), “A Computational Approach to Selection of an Optimal Network”, Mgmt. Sci. 19, pp. 488-498 Sách, tạp chí
Tiêu đề: A Computational Approach to Selection of an Optimal Network
Tác giả: H. H. Hoang
Năm: 1973
[24] Holland, J. H. (1975), “Adaptation in Natural and Arti cial Systems”, University of MichigaNPress, Ann Arbor, MI Sách, tạp chí
Tiêu đề: J". H. (1975), “Adaptation in Natural and Arti cial Systems”, University of Michiga"NP
Tác giả: Holland, J. H
Năm: 1975

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w