Tải bản đầy đủ

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

ĐẠI HỌC THÁI NGUYÊN

THÔNG

PHÙNG DƯƠNG HOÀNG

MỘT SỐ THUẬT TOÁN GIẢI BÀI TOÁN PHỦ
ĐỈNH

L

Thái Nguyên - 20
Số hóa bởi Trung tâm Học liệu – Đại học T hái Ngu yên

http://www.lrc-tnu.edu.vn/


i

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

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

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


3

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
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


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


1

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,


2

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!


3

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ễ.
1.1.2. Lớp bài toán NP
Ta gọi lớp NP là lớp các bài toán quyết định có thể giải được bằng
máy tính Turing không đơn định trong khoảng thời gian đa thức.
Một cách không hình thức, chúng ta nói một ngôn ngữ L thuộc lớp NP
nếu tồn tại một máy tính Turing không đơn định M và một độ phức tạp thời
gian T(n) sao cho L = L(M) và khi M được cho một nguyên liệu có độ dài n
thì nó sẽ kiểm nhận sau không quá T(n) bước chuyển.
Để 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
mô phỏng sau:

NP
P

NP. Từ đó ta có mô hình


4

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
được biến đổi thành một chuỗi x

L có chiều dài n

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


5

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ì
ta có P = NP.
Chứng minh: Giả sử có bài toán Q NP-C và Q

P. Thế thì mọi ngôn

ngữ L trong NP đều thu được về Q trong thời gian đa thức. Nếu Q
P. Như vậy NP

P thì L

P. Kết hợp với điều hiển nhiên là P NP ta được P = NP.

Nhận xét: Chúng ta vẫn tin tưởng rằng nhiều bài toán thuộc NP nhưng không
thuộc P nên chúng ta sẽ xem việc chứng minh một bài toán là NP-C có giá trị
ngang với việc chứng minh rằng nó không thể giải được trong thời gian đa
thức, và vì thế không có lời giải đúng nào bằng máy tính (và ta sẽ chỉ đi tìm
lời giải gần đúng).
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.
Thí dụ: Đồ thị trong hình 1.2 sau có tập độc lập gồm các đỉnh {1, 4}.
Đó cũng là tập độc lập cực đại.

1

Số hóa bởi Trung tâm Học liệu – Đại học Th3ái Nguyên

2

http://ww4w.lrc-tnu.edu.vn/


6

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’
V2 → V’ sao cho

V, E’
(u, v)

E thỏa |V’| = |V2|, |E’| = |E2| và một song ánh f :
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.

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/


7

- 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)
+

Z và một số nguyên dương k
- Hỏi có tồn tại một hoán vị π trên {1, 2, …, n} sao cho:
n−1
∑ d(Cπ(i), Cπ(i+1)) + d(Cπ(m), Cπ(1)) ≤ k hay không?
i=1
1.2.8. Bài toán TSP
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 =

( xi x j ) 2

(di

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)

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/


8

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ỏ).

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/


9

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

b
1 nÕu chän vËt
i
0 nÕu kh¸c

Khi đó bài toán được phát biểu như sau:
Tìm vector x = (x1, x2, ..., xn), xi
ràng buộc

n

{0, 1} sao cho

n
i 1

pi xi

max với

wi xi W

i 1

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.
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/


10

+ 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 đó.

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/


11

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

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/


12

đó, 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
Chọn S từ tập A.
Tính chất tham lam của thuật toán định hướng bởi hàm Chọn.
+ Khởi động S = Ø
+ Trong khi A ≠ Ø:
- Chọn phần tử tốt nhất của A gán vào x : x = Chọn (A);
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/


13

- Cập nhật các đối tượng để chọn: A = A - { x };
- Nếu S U { x } thoả mãn yêu cầu bài toán thì
Cập nhật lời giải: S = S U { x };
Thủ tục thuật toán tham lam có thể cài đặt như sau:
Input: A [ 1.. n ]
Output: S là lời giải;
Greedy ( A, n ) ≡
S = Ø;
While ( A ≠ Ø )
{ x = Chọn (A);
A=A-{x}
If ( S U { x } chấp nhận được )
S = S U { x };
}
return S;
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.
- Ý tưởng:
Đây là bài toán tìm chu trình có trọng số nhỏ nhất trong một đơn đồ
thị có hướng có trọng số.
Thuật toán tham lam cho bài toán là chọn thành phố có chi phí nhỏ nhất
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/


14

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
Mô tả:
TOUR := 0; COST := 0; v:= u; // Khởi tạo
mọi k := 1 → n : // Thăm tất cả các thành phố
// Chọn cạnh kế
+ Chọn < v, w > là đoạn nối 2 thành phố có chi phí nhỏ nhất tính từ
thành phố v đến các thành phố chưa qua.
+ 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,
2

nên T(n) = V(n ).
- 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

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/


15

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

while ( i < n )
{
mini = VC;
for ( k = 1; k < = n; k ++ )
if (! daxet [ k ] )
if ( mini > a [ v ] [ k ] )
{
mini = a [ v ] [ k ];
w = k;
}
v = w;
i + +;
TOUR [ i ] = v;
daxet [ v ] = 1;
COST + = mini;
}
COST + = a [ v ] [ Ddau ];
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/


16

return COST;
}
1.4.1.4. Đánh giá
Bài toán được giải quyết bằng thuật toán tham lam (thường là các bài
toán tối ưu) nếu như nó có hai đặc điểm sau:
- 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 nơron hoàn thiện hơn đã được đưa ra như: mô hình Perceptron của Rosenblatt
(1958), Adaline của Widrow (1962).
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/


17

+ 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 10

10

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 nơ-ron sinh học có thể mô tả tóm tắt như sau: Mỗi nơ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
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:

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/


18

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:
out

f net

1 nÕu net
0 nÕu
net

(1.1)

ở đây là ngưỡng.
(ii) Hàm McCuloch-Pitts trễ:
out

f net

1 nÕu
UTP
net
LTP
0 nÕu
net
f net nÕu
kh¸c

(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ộ.

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/


19

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

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ài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×