1. Trang chủ
  2. » Luận Văn - Báo Cáo

Một số thuật toán giải bài toán phủ đỉnh

65 7 0

Đ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 65
Dung lượng 1,32 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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/LỜI CAM ĐOAN Tôi xin cam đoan rằng, đây là công trình nghiên cứu của tôi trong đó có sự giúp đỡ tận tình củ

Trang 1

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/

Trang 2

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/

LỜI CAM ĐOAN

Tôi xin cam đoan rằng, đây là công trình nghiên cứu của tôi trong đó có

sự giúp đỡ tận tình của thầy giáo hướng dẫn và các thầy cô tại Viện CNTT, các thầy, cô giáo Trường Đại học Công nghệ Thông tin và Truyền thông, sự

hỗ trợ của các đồng nghi Các nội dung nghiên cứu và kết quả trong

đề tài này là hoàn toàn trung thực

Trong luận văn, tôi có tham khảo đến một số tài liệu của một số tác giả

đã được liệt kê tại phần Tài liệu tham khảo ở cuối luận văn

Thái Nguyên, tháng 6 năm 2014

Tác giả

Phùng Dương Hoàng

Trang 3

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/

LỜI CẢM ƠN

Để hoàn thành chương trình cao học và viết luận văn này, tôi đã nhận được sự hướng dẫn, giúp đỡ và góp ý nhiệt tình của quý thầy cô trường Đại học Công nghệ Thông tin và Truyền thông - Đại học Thái Nguyên

Trước hết, tôi xin chân thành cảm ơn đến quý thầy cô trường Đại học Công nghệ thông tin và truyền thông - Đại học Thái Nguyên, các thầy cô Viện CNTT, đặc biệt là những thầy cô đã tận tình dạy bảo cho tôi trong suốt thời gian học tập tại trường

Tôi xin gửi lời biết ơn sâu sắc đến GS.TS Đặng Quang Á đã dành rất nhiều thời gian và tâm huyết hướng dẫn nghiên cứu và giúp tôi hoàn thành luận văn tốt nghiệp

Nhân đây, tôi xin chân thành cảm ơn Ban giám hiệu 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 rất nhiều điều kiện để tôi học tập và hoàn thành tốt khóa học

Mặc dù tôi đã có nhiều cố gắng hoàn thiện luận văn bằng tất cả sự nhiệt tình và năng lực của mình, tuy nhiên không thể tránh khỏi những thiếu sót, tôi rất mong nhận được những đóng góp quí báu của quý thầy cô và các bạn

Lời cảm ơn sau cùng tôi xin dành cho gia đình và những người bạn đã hết lòng quan tâm và tạo điều kiện tốt nhất để tôi hoàn thành luận văn tốt nghiệp này!

Tôi xin chân thành cảm ơn!

Thái Nguyên, tháng 6 năm 2014

Học viên thực hiện

Phùng Dương Hoàng

Trang 4

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/

MỤC LỤC

Trang Trang bìa phụ

Lời cam đoan i

Lời cảm ơn ii

Mục lục iii

Danh mục các hình v

LỜI NÓI ĐẦU 1

Chương 1: CÁC PHƯƠNG PHÁP HEURISTIC GIẢI CÁC BÀI TOÁN NP-C 3

1.1 Giới thiệu chung về bài toán NP-C 3

1.1.1 Lớp bài toán P 3

1.1.2 Lớp bài toán NP 3

1.1.3 Lớp bài toán NP-đầy đủ (NP-Complete) 4

1.2 Một số bài toán NP-C trong lý thuyết đồ thị, trong quy hoạch nguyên 5

1.3 Khái niệm chung về các phương pháp Heuristic 8

1.4 Một số phương pháp Heuristic giải các bài toán NP-C 9

1.4.1 Thuật toán tham lam 9

1.4.1.1 Giới thiệu chung 9

1.4.1.2 Thuật toán cho phương pháp tham lam 10

1.4.1.3 Ví dụ áp dụng 11

1.4.1.4 Đánh giá 14

1.4.2 Giới thiệu về mạng nơ-ron 14

1.4.2.1 Lịch sử phát triển 14

1.4.2.2 Mô hình mạng nơ-ron nhân tạo 15

1.4.2.3 Phạm vi ứng dụng của mạng nơ-ron 17

1.4.2.4 Mạng nơ-ron Hopfield 18

Trang 5

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/

Chương 2: BÀI TOÁN PHỦ ĐỈNH VÀ MỘT SỐ THUẬT TOÁN GIẢI

BÀI TOÁN PHỦ ĐỈNH 26

2.1 Giới thiệu bài toán phủ đỉnh 26

2.2 Một số thuật toán giải bài toán phủ đỉnh 27

2.2.1 Thuật toán tham 27

2.2.2 Thuật toán mới của Dharwadker 32

Chương 3: MÔ PHỎNG SỐ 39

3.1 Lựa chọn phương pháp sử dụng 39

3.2 Xây dựng chương trình 39

3.3 Phân tích và đánh giá kết quả 46

KẾT LUẬN 58

TÀI LIỆU THAM KHẢO 59

Trang 6

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/

DANH MỤC CÁC HÌNH

Trang

Hình 1.1: Mối quan hệ giữa lớp P và NP 4

Hình 1.2 Hình bài toán về tập độc lập 6

Hình 1.3: Mô hình mạng Hopfield 19

Hình 1.4: Lời giải tốt và xấu của bài toán sánh cặp có trọng 24

Hình 2.1: Thí dụ về phủ đỉnh 26

Hình 2.2: Thí dụ về bài toán phủ đỉnh theo phương pháp tham (n=7) 28

Hình 2.3: Thí dụ về bài toán phủ đỉnh theo phương pháp tham (n=13) 30

Hình 2.4: Thí dụ về bài toán phủ đỉnh theo Dharwadker (n=12) 34

Hình 3.1: Chương trình tìm phủ đỉnh của một đồ thị n=12 45

Hình 3.2: Phủ đỉnh của đồ thị n=4 47

Hình 3.3: Phủ đỉnh của đồ thị n=6 49

Hình 3.4: Phủ đỉnh của đồ thị n=6 50

Hình 3.5: Phủ đỉnh của đồ thị n=7 51

Hình 3.6: Phủ đỉnh của đồ thị n=8 53

Hình 3.7: Phủ đỉnh của đồ thị n=8 54

Hình 3.8: Phủ đỉnh của đồ thị n=10 56

Hình 3.9: Phủ đỉnh của đồ thị n=11 57

Trang 7

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/

LỜI NÓI ĐẦU

Trong thực tế có rất nhiều bài toán phức tạp thuộc lớp bài toán NP- C

và bài toán tối ưu có ràng buộc, cũng có nhiều công trình nghiên cứu để giải quyết các bài toán đó, trong đó có nhiều bài toán của lý thuyết đồ thị như: bài toán phủ đỉnh, bài toán tập độc lập, bài toán tô mầu đồ thị, bài toán người bán hàng rong, bài toán phẳng hóa đồ thị, nhiều bài toán quy hoạch nguyên như: bài toán ba lô, bài toán đóng thùng, Vì các bài toán loại NP-C có độ phức tạp hàm mũ nên khi dữ liệu đầu vào lớn nên nói chung người ta không thể thu được lời giải đúng của bài toán và buộc phải tìm lời giải gần đúng Có nhiều thuật toán heuristic với thời gian đa thức để tìm nghiệm xấp xỉ của các bài toán NP-C Những năm gần đây trên thế giới đã đưa ra một số phương pháp

và thuật giải nhằm giải quyết các bài toán tối ưu thuộc lớp NP-C và được áp dụng rộng rãi trong lĩnh vực Công nghệ thông tin Việc nghiên cứu và áp dụng những thành tựu mới vào việc phân tích, thiết kế, giải quyết một số bài toán là một trong những vấn đề nóng đang rất được quan tâm

Nhận thức được vấn đề đó và có sự gợi ý, định hướng của GS.TS Đặng

Quang Á em đã mạnh dạn nghiên cứu đề tài: "Một số thuật toán giải bài

toán phủ đỉnh" Nội dung cơ bản của luận văn gồm có ba chương:

Chương một giới thiệu chung về bài toán NP-C; một số bài toán NP-C trong lý thuyết đồ thị, trong quy hoạch nguyên; giới thiệu một số phương pháp Heuristic giải các bài toán NP-C

Chương hai giới thiệu bài toán phủ đỉnh và một số phương pháp giải bài toán phủ đỉnh

Chương ba ứng dụng

Qua luận văn này em xin chân thành cảm ơn: GS.TS Đặng Quang Á - Viện Công nghệ Thông tin đã tận tình giúp đỡ, động viên, định hướng,

Trang 8

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/

hướng dẫn em nghiên cứu và hoàn thành luận văn Em xin cảm ơn các thầy

cô giáo trong viện Công nghệ thông tin, các thầy cô giáo Trường Đại học Công nghệ Thông tin và Truyền thông - Đại học Thái Nguyên, đã giảng dạy

và giúp đỡ em trong hai năm học vừa qua, cảm ơn sự giúp đỡ nhiệt tình của các bạn đồng nghiệp

Xin chân thành cảm ơn!

Trang 9

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/

Chương 1 CÁC PHƯƠNG PHÁP HEURISTIC GIẢI CÁC BÀI TOÁN NP-C

1.1 Giới thiệu chung về bài toán NP-C

1.1.1 Lớp bài toán P

Định nghĩa 1.1: Ta gọi lớp P là lớp những bài toán quyết định giải

được bằng máy tính Turing đơn định trong thời gian đa thức

Một ngôn ngữ L thuộc lớp P nếu có một hàm đa thức T(n) sao cho L=L(M) với một máy Turing đơn định nào đó có độ phức tạp thời gian T(n)

Như vậy, lớp P gần như tương ứng với lớp các bài toán quyết định giải được trong thời gian đa thức, về mặt lý thuyết, có thể xem là lớp các bài toán dễ

Để nói về mối quan hệ giữa lớp P và lớp NP ta thấy do máy tính Turing đơn định là trường hợp đặc biệt của máy tính Turing không đơn định nên các bài toán thuộc lớp P sẽ thuộc lớp NP

Tuy P NP là rất hiển nhiên song ta vẫn chưa biết P = NP hay không, nhưng hầu hết các nhà nghiên cứu đều tin rằng P NP Từ đó ta có mô hình

mô phỏng sau:

NP

P

Trang 10

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/

Hình 1.1 Mối quan hệ giữa lớp P và NP

1.1.3 Lớp bài toán NP-đầy đủ (NP-Complete)

Định nghĩa 1.2: Ta nói L là bài toán thuộc loại NP-complete nếu các

khẳng định sau đều đúng:

1) L thuộc NP

2) Với mọi ngôn ngữ L'

NP có một phép thu thời gian đa thức L' về L Bài toán NP-complete đầu tiên chúng ta sẽ xét là bài toán thỏa SAT (Boolean satisfiability) Chúng ta sẽ chứng tỏ rằng ngôn ngữ của mọi máy Turing không đơn định (NTM) thời gian đa thức đều có một phép thu thời gian đa thức về SAT Khi đã có được một số bài toán thuộc NP-complete (NP-C) chúng ta có thể chứng minh một bài toán mới thuộc NP-C bằng cách thu một bài toán đã biết là NP-C về bài toán đó nhờ một phép thu thời gian đa thức [1]

Định lý dưới đây cho biết vì sao một phép thu như thế chứng minh được bài toán đích là NP-C

Định lý 1.1: Nếu bài toán P1 là NP-C, P2 là NP và có một phép thu thời gian đa thức từ P1 về P2 thì P2 cũng là NP-C

Chứng minh: Ta cần chứng tỏ rằng mỗi ngôn ngữ L thuộc NP đều thu được P2 trong thời gian đa thức Khi đó theo định nghĩa P2 sẽ thuộc NP-C

Thật vậy vì P1 là NP-C nên có một phép thu đa thức L về P1 Giả sử thời gian của phép thu này là P(n) Vì thế một chuỗi W L có chiều dài n được biến đổi thành một chuỗi x P1 có chiều dài tối đa là P(n) Ta cũng biết rằng có một phép thu đa thức từ P1 về P2 Giả sử thời gian của phép thu này

là q(m) Thế thì phép thu này biến đổi chuỗi x P1 về một chuỗi y nào đó thuộc P2 với thời gian tối đa là q(p(n)) Vì thế phép biến đổi W L về y P2

Trang 11

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/

mất thời gian tối đa là p(n) + q(p(n)) đây cũng là một đa thức Như vậy, ta kết luận rằng L có thể thu về P2 trong thời gian đa thức

Định lý 1.2: Nếu có một bài toán nào đó là NP-C mà lại thuộc lớp P thì

1.2 Một số bài toán NP-C trong lý thuyết đồ thị, trong quy hoạch nguyên

Các lớp bài toán NP-Complete là rất rộng Hầu hết các bài toán nổi tiếng mà chúng ta đã biết như bài toán người bán hàng, bài toán balô, các bài toán tổ hợp, phân tích ra thừa số… đều là các bài toán khó Sau đây là một số bài toán khó thuộc lớp NP-Complete trong lý thuyết đồ thị, trong quy hoạch nguyên

1.2.1 Bài toán về tập độc lập (Independent set)

Cho G là một đồ thị vô hướng Ta nói tập con I của các đỉnh thuộc G là một tập độc lập nếu không có hai đỉnh nào của I được nối bởi một cạnh của G (tức là I là tập các đỉnh mà không có 2 đỉnh nào liền kề nhau) Một tập độc lập là cực đại nếu nó có nhiều nút nhất trong số các tập độc lập

Trang 12

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/

Hình 1.2 Hình bài toán về tập độc lập

1.2.2 Bài toán phủ đỉnh (Vertex-Cover)

Bài toán được phát biểu như sau:

- Cho đồ thị G = (V, E) và số k N* sao cho k ≤ |V|

- Hỏi tồn tại hay không một tập con V’ của V sao cho |V’| < k và mỗi cạnh {u, e} E thì một trong 2 đỉnh u hoặc e (hoặc cả đỉnh u và e ) phải thuộc V’

1.2.3 Bài toán đồ thị con đủ (Clique Problem)

Bài toán được phát biểu như sau:

- Cho đồ thị G = (V, E) và k N* thoả mãn k ≤ |V|

- Hỏi tồn tại hay không một tập con V’ của V sao cho |V'| k mà mọi cặp đỉnh trong V’ đều được nối bởi 1 cạnh trong E

1.2.4 Bài toán về tô màu đồ thị

Phép tô màu đồ thị bằng gán màu cho các đỉnh sao cho hai đỉnh liền kề được tô bởi hai màu khác nhau

Sắc số của đồ thị: là số màu ít nhất cần dùng để tô màu đồ thị

1.2.5 Bài toán đồ thị con đẳng cấu (Subgraph Isomorphism)

- Cho hai đồ thị: G1 = (V1, E1) và G2 = (V2, E2)

- Hỏi G1 có chứa đồ thị con G’ = (V’, E’) đẳng cấu với đồ thị G2, tức tồn tại tập con V’ V, E’ E thỏa |V’| = |V2|, |E’| = |E2| và một song ánh f :

V2 → V’ sao cho (u, v) E2 khi và chỉ khi {f(u), f(v)} E’

1.2.6 Bài toán chu trình Hamilton (Hamilton Cycle)

Chu trình Hamilton là chu trình sơ cấp đi qua tất cả các đỉnh của đồ thị Bài toán được phát biểu như sau:

- Cho đồ thị G = (V, E) có chu trình Hamilton H

Trang 13

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/

- Tìm trong đồ thị G một chu trình Hamilton đúng bằng chu trình H đã cho

1.2.7 Bài toán người bán hàng (Traveling Salesman)

Cho đồ thị G và một số k nguyên, mỗi cạnh e của G có một trọng số nguyên C(e) Vấn đề đặt ra là có tồn tại một chu trình đi qua tất cả các đỉnh của G (mỗi đỉnh đúng một lần) mà tổng trọng số các cạnh đã đi qua không vượt quá k?

Ta phát biểu lại bài toán như sau:

- Cho tập n thành phố C = {C1, C2, …, Cn} với khoảng cách d(Ci, Cj)

Mục đích: xây dựng thuật toán hiệu quả cho kết quả gần đúng

Xét ma trận cỡ n x n các khoảng cách [dij ], dij > 0 Như thường lệ ta giả thiết dij = dji và dii = 0 Ta nói ma trận (dij) thỏa mãn bất đẳng thức tam giác nếu

dij + djk dik 1 i, j, k n

Bất đẳng thức này thỏa mãn nếu dij là khoảng cách thông thường giữa 2 điểm (xi, yi) và (xj , yj):

dij = (x i x j)2 (d i d j)2

Có thể có các ma trận (dij) khác thỏa mãn bất đằng thức tam giác

1.2.9 Bài toán ba lô nguyên (0-1)

Giả sử ba lô có dung lượng là W Có các vật b1, , bn với dung lượng

wi và giá trị pi (profit) Xếp các vật vào ba lô sao cho đạt tổng giá trị lớn nhất (giả thiết là các vật không thể chia nhỏ)

Trang 14

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/

Ký hiệu xi là biến quyết định (loại 0-1):

xi =

0

i b

1 nÕu chän vËt nÕukh¸c

Khi đó bài toán được phát biểu như sau:

Tìm vector x = (x1, x2, , xn), xi {0, 1} sao cho i n1p x i i max với

1.3 Khái niệm chung về các phương pháp Heuristic

- Heuristic là một sự mở rộng khái niệm thuật toán Nó thể hiện cách giải bài toán với các đặc tính sau:

+ Thườ ợc lời giải tốt (nhưng không chắc là lời giải tốt nhất) + Thường dễ dàng và nhanh chóng đưa ra kết quả hơn so với giải thuật tối ưu, vì vậy chi phí thấp hơn

+ Thường thể hiện khá tự nhiên, gần gũi với cách suy nghĩ và hành động của con người

- Có nhiều phương pháp để xây dựng một thuật giải Heuristic, trong đó người ta thường dựa vào một số nguyên lý cơ bản như sau:

+ Nguyên lý vét cạn thông minh: Trong một bài toán tìm kiếm nào đó, khi không gian tìm kiếm lớn, ta thường tìm cách giới hạn lại không gian tìm kiếm hoặc thực hiện một kiểu dò tìm đặc biệt dựa vào đặc thù của bài toán để nhanh chóng tìm ra mục tiêu

+ Nguyên lý tham lam (Greedy): Lấy tiêu chuẩn tối ưu (trên phạm vi toàn cục) của bài toán để làm tiêu chuẩn chọn lựa hành động cho phạm vi cục

bộ của từng bước (hay từng giai đoạn) trong quá trình tìm kiếm lời giải

+ Nguyên lý thứ tự: Thực hiện hành động dựa trên một cấu trúc thứ tự hợp lý của không gian khảo sát nhằm nhanh chóng đạt được một lời giải tốt

Trang 15

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/

+ Hàm Heuristic: Trong việc xây dựng các thuật giải Heuristic, người

ta thường dùng các hàm Heuristic Đó là các hàm đánh giá thô, giá trị của hàm phụ thuộc vào trạng thái hiện tại của bài toán tại mỗi bước giải Nhờ giá trị này, ta có thể chọn được cách hành động tương đối hợp lý trong từng bước của thuật giải

1.4 Một số phương pháp Heuristic giải các bài toán NP-C

1.4.1 Thuật toán tham lam

1.4.1.1 Giới thiệu chung

Định nghĩa 1.3: Giải thuật tham lam là một thuật toán giải quyết một

bài toán theo kiểu metaheuristic để tìm kiếm lựa chọn tối ưu ở mỗi bước đi với hy vọng tìm được tối ưu toàn cục

Giải thuật tham lam có 5 thành phần:

a) Một tập hợp các ứng viên để từ đó tạo ra lời giải;

b) Một hàm lựa chọn để lựa chọn ứng viên tốt nhất để bổ sung vào lời giải; c) Một hàm khả thi dùng để quyết định một ứng viên có thể là một lời giải; d) Một hàm mục tiêu để ấn định giá trị lời giải hoặc một lời giải chưa hoàn chỉnh;

e) Một hàm đánh giá để chỉ ra khi nào ta tìm ra một lời giải hoàn chỉnh

- Hai thành phần quyết định nhất tới quyết định tham lam:

+ Tính chất lựa chọn tham lam: Chúng ta có thể lựa chọn giải pháp nào được cho là tốt nhất ở thời điểm hiện tại và sau đó giải bài toán con nảy sinh

từ việc thực hiện lựa chọn vừa rồi Lựa chọn của thuật toán tham lam có thể phụ thuộc vào các lựa chọn trước đó

Thuật toán tiến triển theo kiểu thực hiện các chọn lựa theo một vòng lặp, cùng lúc đó thu nhỏ bài toán đã cho về một bài toán con nhỏ hơn Giải thuật tham lam lựa chọn sớm và thay đổi đường đi thuật toán theo lựa chọn

Trang 16

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/

đó, và không bao giờ xét lại các lựa chọn cũ Đối với một số bài toán, đây có thể là một thuật toán không chính xác

+ Cấu trúc con tối ưu: Một bài toán được gọi là "có cấu trúc tối ưu", nếu một lời giải tối ưu của bài toán con chứa lời giải tối ưu của bài toán lớn hơn

- Ý tưởng của phương pháp tham lam:

+ Phương pháp tham lam là kỹ thuật thiết kế thường được dùng để giải các bài toán tối ưu Phương pháp được tiến hành theo nhiều bước Tại mỗi bước, theo một lựa chọn nào đó (xác định bằng một hàm chọn), sẽ tìm một lời giải tối ưu cho bài toán nhỏ tương ứng Lời giải của bài toán được bổ sung dần từng bước từ lời giải của các bài toán con Các lời giải tìm được bằng phương pháp tham lam thường chỉ là chấp nhận theo điều kiện nào đó, chưa chắc là tối ưu

+ Cho trước một tập A gồm n đối tượng, ta cần phải chọn một tập con

S của A Với một tập con S được chọn ra thoả mãn các yêu cầu của bài toán,

ta gọi là một nghiệm chấp nhận được Một hàm mục tiêu gắn mỗi nghiệm chấp nhận được với một giá trị Nghiệm tối ưu là nghiệm chấp nhận được mà tại đó hàm mục tiêu đạt giá trị nhỏ nhất (lớn nhất)

+ Đặc trưng tham lam của phương pháp thể hiện bởi: trong mỗi bước việc xử lý sẽ tuân theo một sự lựa chọn trước, không kể đến tình trạng không tốt có thể xảy ra khi thực hiện lựa chọn lúc đầu

1.4.1.2 Thuật toán cho phương pháp tham lam

Trang 17

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/

1.4.1.3 Ví dụ áp dụng

- Bài toán:

Một người du lịch muốn tham quan n thành phố T1, …, Tn Xuất phát

từ một thành phố nào đó, người du lịch muốn đi qua tất cả các thành phố còn lại, mỗi thành phố đi qua đúng một lần rồi quay trở lại thành phố đã xuất phát

Gọi C ij là chi phí đi từ thành phố Ti đến Tj Hãy tìm một hành trình thoả yêu cầu bài toán sao cho tổng chi phí là nhỏ nhất

Trang 18

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/

tính từ thành phố hiện thời đến các thành phố chưa qua

- Thuật toán

Input: C = ( Ci j )

Output: TOUR // Hành trình tối ưu,

COST; // Chi phí tương ứng

+ TOUR := TOUR + < v, w >; // Cập nhật lời giải

+ COST := COST + Cv w ; // Cập nhật chi phí

// chuyến đi hoàn thành

TOUR := TOUR + < v, u >;

COST := COST + C v u ;

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

Thao tác chọn đỉnh thích hợp trong n đỉnh được tổ chức bằng một vòng lặp để duyệt Nên chi phí cho thuật toán xác định bởi 2 vòng lặp lồng nhau, nên T(n) = V(n2)

- Cài đặt:

Int GTS ( mat a, int n, int TOUR [ max ], int Ddau )

{

int v, // Dinh dang xet

k, // Duyet qua n dinh de chon

w, // Dinh duoc chon trong moi buoc

int mini; // Chon min cac canh ( cung ) trong moi buoc

Trang 19

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/

int COST; // Trong so nho nhat cua chu trinh

int daxet [ max ]; // Danh dau cac dinh da duoc su dung

for ( k = 1; k < = n; k ++ )

daxet [ k ] = 0; // Chua dinh nao duoc xet

COST = 0; // Luc dau, gia tri COST = = 0

int i; // Bien dem, dem tim du n dinh thi dung

v = Ddau; // hon dinh xuat phat la 1

i = 1

TOUR [ i ] = v; // Dua v vao chu trinh

daxet [ v ] = 1; // Dinh v da duoc xet

Trang 20

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/

- Tính lựa chọn tham lam (greedy choice property): Một nghiệm tối ưu

có thể nhận được bằng cách thực hiện các lựa chọn có vẻ như tốt nhất tại mỗi thời điểm mà không cần quan tâm tới các gợi ý của nó đối với các nghiệm của các bài toán con Hay nói một cách khác là nghiệm tối ưu của bài toán có thể nhận được bằng cách thực hiện các lựa chọn tối ưu cục bộ

- Cấu trúc con tối ưu (optimal substructure): Một nghiệm tối ưu có thể nhận được bằng cách gia tăng các nghiệm thành phần đã được xây dựng với một nghiệm tối ưu của bài toán con còn lại Có nghĩa là một nghiệm tối

ưu sẽ chứa các nghiệm tối ưu đối với các bài toán con kích thước nhỏ hơn

1.4.2 Giới thiệu về mạng nơ-ron

1.4.2.1 Lịch sử phát triển

Quá trình nghiên cứu và phát triển mạng nơ-ron nhân tạo có thể chia thành bốn giai đoạn như sau:

+ Giai đoạn một: Có thể tính từ nghiên cứu của William (1890) về tâm

lý học với sự liên kết các nơ-ron thần kinh Năm 1940, MeCulloch và Pitts đã cho biết: nơ-ron có thể được mô hình hoá như thiết bị ngưỡng (giới hạn) để thực hiện các phép tính logic và mô hình mạng nơ-ron của Mc Culloch-Pitts cùng với giải thuật huấn luyện mạng của Hebb ra đời năm 1943

+ Giai đoạn hai: Vào khoảng gần những năm 1960, một số mô hình ron hoàn thiện hơn đã được đưa ra như: mô hình Perceptron của Rosenblatt (1958), Adaline của Widrow (1962)

Trang 21

nơ-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/

+ Giai đoạn ba: Có thể tính vào khoảng đầu thập niên 80 Những đóng góp lớn cho mạng nơ-ron trong giai đoạn này phải kể đến Grossberg, Kohonen, Rumelhart và Hopfield Trong đó đóng góp lớn của Hopfield gồm hai mạng phản hồi: mạng rời rạc năm 1982 và mạng liên tục năm 1984 Đặc biệt, ông đã dự kiến nhiều khả năng tính toán lớn của mạng mà một nơ-ron không có khả năng đó

+ Giai đoạn bốn: Tính từ năm 1987 đến nay, rất nhiều công trình được nghiên cứu để ứng dụng mạng nơ-ron vào các lĩnh vực, ví dụ như: kỹ thuật tính, tối ưu, sinh học, y học, thống kê, giao thông, hoá học… Cho đến nay, mạng nơ-ron đã tìm được và khẳng định được vị trí của mình trong rất nhiều ứng dụng khác nhau

1.4.2.2 Mô hình mạng nơ-ron nhân tạo

a Nơ-ron sinh học

Hệ thần kinh ở người có khoảng 1010 tế bào thần kinh được gọi là các nơ-ron Mỗi nơ-ron gồm có ba phần: Thân nơ-ron với nhân ở bên trong (soma), một đầu thần kinh ra (axon) và một hệ thống hình cây thần kinh (dendrite) Có nhiều loại nơ-ron khác nhau về kích thước và khả năng thu phát tín hiệu Tuy nhiên, chúng có cấu trúc và nguyên lý hoạt động chung

Hoạt động của ron sinh học có thể mô tả tóm tắt như sau: Mỗi ron nhận tín hiệu vào từ các tế bào thần kinh khác Chúng tích hợp các tín hiệu vào, khi tổng tín hiệu vượt quá một ngưỡng nào đó chúng tạo tín hiệu ra

nơ-và gửi tín hiệu này tới các nơ-ron khác thông qua dây thần kinh Các nơ-ron liên kết với nhau thành mạng Mức độ bền vững của các liên kết này xác định một hệ số gọi là trọng số liên kết

b Nơ-ron nhân tạo

+ Trọng số và tổng tín hiệu đầu vào:

Trang 22

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/

Mô phỏng nơ-ron sinh học, ta có nơ-ron nhân tạo Mỗi nơ-ron có rất nhiều dây thần kinh vào, nghĩa là mỗi nơ-ron có thể tiếp nhận đồng thời nhiều tín hiệu

+ Hàm kích hoạt:

Hàm biến đổi tín hiệu đầu vào net cho tín hiệu đầu ra out được gọi là hàm kích hoạt Hàm này có đặc điểm là không âm và bị chặn Có nhiều dạng hàm kích hoạt, người ta thường sử dụng một hàm kích hoạt chung cho toàn mạng

Một số hàm kích hoạt thường được sử dụng:

(i) Hàm McCuloch-Pitts:

net

net net

net f

LTP net

UTP net net

f

1

(1.2)

ở đây UTP>LTP Trong đó:

UTP là ngưỡng trên (Upper Trip Point)

LTP là ngưỡng dưới (Lower Trip Point)

c Mạng nơ-ron

Mạng nơ-ron nhân tạo (Artificial Neural Network) là một cấu trúc mạng được hình thành nên bởi một số lượng các nơ-ron nhân tạo liên kết với nhau Mỗi nơ-ron có các đặc tính đầu vào, đầu ra và thực hiện một chức năng tính toán cục bộ

Với việc giả lập các hệ thống sinh học, các cấu trúc tính toán, mạng ron có thể giải quyết được các lớp bài toán nhất định, như: Bài toán xếp loại, bài toán lập lịch, bài toán tìm kiếm, bài toán nhận dạng mẫu Các bài toán

Trang 23

nơ-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/

phức tạp cao, không xác định Tuy nhiên, sự liên kết giữa một bài toán bất kỳ trong thực tế với một giải pháp mạng nơ-ron lại là một việc không dễ dàng

Xét một cách tổng quát, mạng nơ-ron là một cấu trúc xử lý song song thông tin phân tán mang các đặc tính nổi bật sau:

- Là mô hình toán học dựa trên bản chất của nơ-ron

- Bao gồm một số lượng rất lớn các nơ-ron liên kết với nhau

- Mạng nơ-ron có khả năng học, khái quát hoá tập dữ liệu học thông qua việc gán và hiệu chỉnh các trọng số liên kết

- Tổ chức theo kiểu tập hợp mang lại cho mạng nơ-ron khả năng tính toán rất lớn, trong đó không có nơ-ron nào mang thông tin riêng biệt [2]

1.4.2.3 Phạm vi ứng dụng của mạng nơ-ron

a Những bài toán thích hợp

Mạng nơ-ron được coi như là hộp đen biến đổi véc-tơ đầu vào m biến thành véc-tơ đầu ra n biến Tín hiệu ra có thể là các tham số thực, (tốt nhất nằm trong khoảng [0,1], hoặc [-1,1]), số nhị phân 0,1, hay số lưỡng cực -1;+1

Số biến của véc-tơ vào ra không bị hạn chế xong sẽ ảnh hưởng tới thời gian tính và tải nguyên liệu của máy tính Nói chung, các lớp bài toán áp dụng cho nơ-ron có thể được phân chia thành bốn loại:

- Phân lớp (classification)

- Mô hình hoá (modeling)

- Biến đổi, thực hiện ánh xạ từ một không gian đa biến vào không gian

đa biến khác tương ứng (transformation and mapping)

- Liên kết và kỹ thuật dịch chuyển cửa sổ (association and moving window)

b Các lĩnh vực ứng dụng mạng nơ-ron

Khó có thể thống kê đầy đủ các ứng dụng của mạng nơ-ron Tuy nhiên,

có thể nêu một số ứng dụng như sau:

Trang 24

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/

- Giải các bài toán tối ưu: Vấn đề chính là tìm những thuật toán huấn

luyện mạng để góp phần tìm nghiệm cho nhiều lớp bài toán tối ưu toàn cục

c Ưu và nhược điểm của mạng nơ-ron

Trang 25

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/

Mạng Hopfield được bắt đầu nghiên cứu từ năm 1982 Đây là mạng một lớp với thông tin và quá trình xử lý có nối ngược Chính công trình của Hopfield được tìm thấy rất nhiều ứng dụng, đặc biệt trong bộ nhớ liên kết và trong các bài toán tối ưu

Giả sử mạng được xây dựng dưới dạng mạng một lớp, mỗi nơ-ron được truyền ngược lại làm tín hiệu vào cho các nơ-ron khác nhưng bản thân các nơ-ron không tự liên kết với chính nó Khi đó mô hình mạng Hopfield được biểu diễn như hình 1.3

Tín hiệu ra của nơ-ron thứ j nào đó được truyền ngược lại làm tín hiệu vào cho các nơ-ron khác trong mạng một cách đầy đủ thông qua các trọng số tương ứng

Hình 1.3 Mô hình mạng Hopfield

Ký hiệu Wij là liên kết giữa hai nơ ron i và j (wij wji), Vi là đầu ra của nơron i Ta coi véc tơ (V1, V2, Vn) là trạng thái của mạng Tại mỗi thời điểm t mỗi nơron i tổng hợp các tín hiệu Vj từ các nơron khác và tín hiệu từ bên ngoài (bias) iÞ j( ) i.

Mạng đạt trạng thái cân bằng nếu Vi(t+1) = Vi(t) , i

Ta định nghĩa hàm năng lượng của mạng là:

Trang 26

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/

i i n i j i ij n

j i j

n i

V V

E

E

1 1

1 1

2

1 ) , ,

Trường hợp mạng nhận các giá trị nhị phân {0, 1}:

Hàm kích hoạt được xác định như sau:

fi f

nÕu kh c

net nÕu net

f

¸0

01

)(

(1.4) Việc cho hàm kích hoạt (1.4) tương đương với quy tắc chuyển trạng thái của mạng Vi(t+1) = Vi(t) + Vi ;

Định lý: Giả sử Wii =0 (i i,n) Khi đó với quy tắc chuyển trạng thái như trên và cập nhật không đồng bộ thì năng lượng của mạng không tăng (tức

là giảm hoặc giữ nguyên)

Chứng minh: Giả sử nơ ron k thay đổi trạng thái từ thời điểm t đến t+1

Khi đó mạng sẽ thay đổi năng lượng và

k j

kj V t I V

Trang 27

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/

Mạng Hopfield liên tục là mạng mà trạng thái của nó được mô tả bởi phương trình động học trong đó fi là hàm kích hoạt

dU

Sự hội tụ của mạng Hopfield liên tục cho bởi định lý sau:

Định lý: Nếu fi(Ui) (i 1 ,n) là các hàm khả vi và không giảm thì:

0

dV

do đó 0

dt dE

Với tư cách là hàm kích hoạt người ta thường chon hàm Sigmoid:

)) 2 tanh(

1 ( 2

1 1

1 )

U λ i

e U

Sigmoid

V

i

, (1.6) trong đó >0 là tham số xác định độ dốc của hàm

Với hàm kích hoạt Sigmoid thì cực tiểu địa phương của hàm năng lượng buộc xảy ra với các giá trị của Vi bằng 0 hoặc 1 Chính vì vậy mạng Hopfield được sử dụng cho các bài toán tối ưu tổ hợp {0, 1}

Hàm kích hoạt sigmoid được định nghĩa là một hàm nén (squashing function) trong dải [0, 1] và vì thế thích hợp cho các bài toán tối ưu {0, 1}

i i

i i

i

dV V

E dt

dU dU

dV V

E dt

dE

.2

Trang 28

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/

Nếu cần giải bài toán tố ưu {-1, 1} càn sử dụng hàm nén trong dải [-1, 1], chẳng hạn, hàm tanh( x)

Hàm kích hoạt sigmoid được định nghĩa bởi (1.6) là một hàm nén (squashing function) trong dải [0, 1] và vì thế thích hợp cho các bài toán tối

ưu {0, 1} Nếu cần giải bài toán tố ưu {-1, 1} càn sử dụng hàm nén trong dải [-1, 1], chẳng hạn, hàm tanh( x)

Chú ý: Không có phương pháp ánh xạ trực tiếp các bài toán tối ưu có ràng buộc lên mạng nơ ron Cho nên phải thêm vào hàm mục tiêu các thành phần phạt khi các ràng buộc bị phá vỡ Khi đó hàm năng lượng được biểu diễn như tổng của hàm mục tiêu và các thành phần phạt

c Mạng Hopfield với bài toán tối ưu

Sau công trình của Hopfield và Tank (1985) mạng Hopfield đã được sử dụng nhiều vào việc giải bài toán tối ưu tổ hợp

Như đã biết, mạng Hopfield sẽ đạt tới trạng thái cân bằng khi hàm năng lượng của nó đạt tới giá trị cực tiểu Vì vậy, từ bài toán cho trước, ta xây dựng một hàm mục tiêu F nào đó (đã được xử lý các ràng buộc) và đặt F = E (E là hàm năng lượng), sau đó tìm mối liên hệ giữa các biến của chúng Chính vì vậy mà mạng Hopfield rất phù hợp với các bài toán tối ưu tổ hợp, đặc biệt là đối với một số bài toán thuộc lớp bài toán NP - đầy đủ như bài toán người bán hàng, bài toán sánh cặp có trọng v.v

Tuy nhiên, khi sử dụng mạng Hopfield vào việc giải các bài toán tối ưu trong thực tế còn gặp một số hạn chế sau:

- Mạng Hopfield không đảm bảo cho hội tụ toàn cục Để khắc phục, người ta đã kết hợp mạng Hopfield với một số giải thuật khác, ví dụ như giải thuật di truyền v.v , hoặc đưa vào phương trình động học một số hạng đặc biệt gọi là số hạng leo đồi Từ đó hàm năng lượng của mạng có thể thay đổi

Trang 29

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/

đến một trạng thái cao hơn, tránh được hội tụ địa phương và tiến tới hội tụ toàn cục

- Việc chọn hệ số của hàm mục tiêu và hệ số của hàm ràng buộc để nhận được một lời giải tốt là hết sức khó khăn Cho đến nay, việc chọn nó vẫn chủ yếu dựa vào kinh nghiệm Hiện nay, đã có một số phương pháp điều khiển các hệ số này bằng cách dùng điều khiển mờ [7]

Một cách tổng quát, có thể xây dựng một số bước cần phải thực hiện khi sử dụng mạng Hopfield vào việc giải bài toán tối ưu như sau (ánh xạ bài toán tối ưu lên mạng nơ ron [8]:

1 Lập sơ đồ biểu diễn các đầu ra của mạng sao cho nó có thể giải mã thành nghiệm của bài toán tối ưu

2 Tạo hàm năng lượng sao cho giá trị cực tiểu của nó ứng với nghiệm tốt nhất của bài toán cần ánh xạ

3 Gán giá trị cho các tham số của hàm năng lượng, điều này xác định các trọng số tương đối gán cho các thành phần khác nhau của hàm năng lượng

4 Đưa ra phương trình động học cho các nơ ron

5 Khởi tạo các giá trị đầu vào

Ví dụ: Xét bài toán sánh cặp có trọng

Phát triển bài toán: Cho n điểm i = 1 ,n khoảng cách giữa hai điểm i và j

là dij Phải nối các điểm thành từng cặp, mỗi điểm chỉ nối với đúng một điểm khác sao cho tổng độ dài của đường nối là nhỏ nhất

Hình vẽ dưới đây chỉ là ví dụ khi n = 6

(a) Lời giải tốt (b) Lời giải xấu

Trang 30

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/

Hình 1.4 Lời giải tốt và xấu của bài toán sánh cặp có trọng

Ánh xạ bài toán lên mạng nơ ron:

Ta gán cho mỗi cặp điểm (i,j) với i<j một nơ ron ij với đầu ra là V ij Như vậy cần tất cả

2

1

n n

nơ ron Mỗi phương án của bài toán ứng với một

trạng thái của mạng với

kh¸c nÕu

nèivíi nÕu

1

0

j i

ij

ij V d

ij j

ij

d E

2

,

1 2 2

γ V V V

E dt

dU

ij k ik ij

ij

Có thể chọn hàm kích hoạt là hàm McCulloch – Pitts hay hàm Sigmoid

Và như vậy ta đã ánh xạ được bài toán sánh cặp có trọng lên mạng nơ ron

nhân tạo

Trang 31

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/

Trang 32

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/

Chương 2 BÀI TOÁN PHỦ ĐỈNH VÀ MỘT SỐ THUẬT TOÁN

GIẢI BÀI TOÁN PHỦ ĐỈNH

2.1 Giới thiệu bài toán phủ đỉnh

Bài toán phủ đỉnh (vertex-cover):

Phủ đỉnh của một đồ thị là tập các đỉnh sao cho mỗi cạnh liên thuộc với

Bài toán phủ đỉnh bé nhất (thuộc NP-C)

Input: Đồ thị vô hướng G = (V, E)

Ngày đăng: 23/03/2021, 21:46

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

TÀI LIỆU LIÊN QUAN

w