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

Tiểu luận môn Thuật Toán và Phương Pháp Giải Quyết Vấn Đề PHƯƠNG PHÁP HUERISTIC VÀ BÀI TOÁN NGƯỜI ĐƯA THƯ TRUNG HOA

37 930 5

Đ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 37
Dung lượng 367,14 KB

Nội dung

Với mục đích tìm hiểu sâu hơn những kiến thức được truyền đạt trên lớp, học viên quyết định thực hiện tiểu luận trình bày kết quả tìm hiểu về một thuật giải heuristic để giải quyết một v

Trang 1

PHÒNG ĐT SĐH-KHCN&QHĐN

TIỂU LUẬN MÔN THUẬT TOÁN

VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ

PHƯƠNG PHÁP HUERISTIC VÀ BÀI TOÁN

NGƯỜI ĐƯA THƯ TRUNG HOA

Giảng viên: PGS.TS ĐỖ VĂN NHƠN Học viên thực hiện: ĐẶNG BẢO ÂN

Khóa: CAO HỌC KHÓA 08

Mã số học viên: CH1301077

Trang 2

Em xin gửi lời cảm ơn chân thành đến PGS.TS Đỗ Văn Nhơn, Thầy đã

tâm quyết truyền đạt những kiến thức quý báu không chỉ là lý thuyết mà còn

hướng dẫn cách thức tìm hiểu, phân tích và vận dụng lý thuyết cụ thể Em xin

chân thành cảm ơn Thầy vì sự hướng dẫn của Thầy trong quá trình thực hiện tiểu

luận này

Em xin chân thành cảm ơn Phòng Đào tạo sau Đại học đã tạo mọi điều

kiện để em hoàn thành tiểu luận này

Xin chân thành cảm ơn sự giúp đỡ của các anh chị, bạn bè và những người

đã thường xuyên trao đổi, thảo luận và đóng góp ý kiến cho tôi về các vấn đề liên

quan trong thời gian qua

Một lần nữa xin chân thành cảm ơn đến tất cả những người đã quan tâm

đến tiểu luận của em Tuy nhiên, trong quá trình làm việc không thể tránh khỏi

những sai sót, rất mong sự đóng góp ý kiến nhiệt tình của Thầy và các bạn

Học viên thực hiện Đặng Bảo Ân

Trang 3

MỤC LỤC

I BÀI TOÁN NGƯỜI ĐƯA THƯ TRUNG HOA 6

1.1 Phát biểu bài toán 6

1.2 Ý nghĩa bài toán 6

II CƠ SỞ LÝ THUYẾT 7

2.1 Khái niệm về lớp bài toán P và NP 7

2.1.1 Khái niệm các loại thời gian tính 7

2.1.2 Bằng chứng ngắn gọn dễ kiểm tra 8

2.1.3 Khái niệm quy dẫn 9

2.1.4 Lớp bài toán P 9

2.1.5 Lớp bài toán NP 9

2.1.6 Lớp bài toán Co- NP 9

2.1.7 Lớp bài toán NP- đầy đủ (NP- complete) 10

2.1.8 Lớp bài toán NP-khó (NP- Hard) 10

2.2 Mở rộng khái niệm thuật giải 12

2.3 Khái niệm Heuristic và MetaHeuristic 13

2.3.1 Hueristic 13

2.3.2 MetaHeuristic 13

2.4 Thuật giải Heuristic 13

2.5 Thuật giải di truyền 14

2.5.1 Giới thiệu 14

2.5.2 Các khái niệm 15

2.5.3 Mô hình giải thuật 17

2.5.4 Các tham số 18

2.5.5 Các cách mã hóa NST 18

2.5.6 Khởi tạo quần thể 20

2.5.7 Các toán tử di truyền 20

2.6 Thuật giải đàn kiến 23

2.6.1 Giới thiệu 23

Trang 4

III ỨNG DỤNG HEURISTIC GIẢI QUYẾT BÀI TOÁN NGƯỜI ĐƯA THƯ

TRUNG HOA 26

3.1 Phát biểu bài toán 26

3.2 Mô hình hóa 26

3.3 Cách giải quyết 27

3.4 Thiết kế thuật toán 27

3.4.1 Ý tưởng 27

3.4.2 Thuật toán 28

3.5 Cài đặt thuật toán 29

3.6 Chứng minh tính đúng 31

3.7 Tính độ phức tạp của thuật toán 31

3.8 Hiệu chỉnh, cải tiến thuật toán 32

IV THỰC NGHIỆM 33

LỜI KẾT LUẬN 35

TÀI LIỆU THAM KHẢO 36

DANH MỤC HÌNH Hình 1: Mô hình phân lớp các bài toán 11

Hình 2: Mô hình giải thuật 17

Hình 3: Luồng đi của đàn kiến 24

Hình 4: Sơ đồ thuật toán đàn kiến 25

Hình 5: Giao diện console của chương trình 34

Hình 6: Giao diện đồ họa của chương trình 34

Trang 5

LỜI NÓI ĐẦU

Heuristic là các kỹ thuật dựa trên kinh nghiệm để giải quyết vấn đề, học

hỏi hay khám phá nhằm đưa ra một giải pháp mà không được đảm bảo là tối ưu

Với việc nghiên cứu khảo sát không có tính thực tế, các phương pháp heuristic

được dùng nhằm tăng nhanh quá trình tìm kiếm với các giải pháp hợp lý thông

qua các suy nghĩ rút gọn để giảm bớt việc nhận thức vấn đề khi đưa ra quyết

định

Với nghĩa chính xác hơn, heuristic là các chiến lược sử dụng thông tin với

cách tiếp cận dễ dàng mặc dù được áp dụng lỏng lẻo để kiểm soát việc giải quyết

vấn đề giữa con người và máy móc

Với mục đích tìm hiểu sâu hơn những kiến thức được truyền đạt trên lớp,

học viên quyết định thực hiện tiểu luận trình bày kết quả tìm hiểu về một thuật

giải heuristic để giải quyết một vấn đề trong thực tế đó là “Bài toán Người Đưa

Thư Trung Hoa”.

Tiểu luận được trình bày gồm bốn phần chính:

- Bài toán “Người đưa thư Trung Hoa”: phát biểu bài toán

- Cơ sở lý thuyết: trình bày cơ sở lý thuyết vận dụng

- Ứng dụng Heuristic giải quyết bài toán “Người đưa thư Trung Hoa”

- Thực nghiệm: cài đặt và mô phỏng thuật giải

Cuối cùng, em xin chân thành cảm ơn Thầy Đỗ Văn Nhơn đã tận tình

giảng dạy và hướng dẫn để em hoàn tất bài tiểu luận này Chúc Thầy được nhiều

sức khỏe

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

Trang 6

I BÀI TOÁN NGƯỜI ĐƯA THƯ TRUNG HOA

1.1 Phát biểu bài toán

Bài toán người đưa thư Trung Hoa (tiếng Anh: Chinese postman problem)

phát biểu rằng: “Một người đưa thư xuất phát từ bưu điện phải đến một số con

đường để phát thư rồi quay trở về điểm xuất phát, hỏi người đó phải đi như thế

nào để số đường đi là ít nhất”.

Tên gọi "bài toán người đưa thư Trung Hoa" được Alan Goldman của Cục

Tiêu chuẩn quốc gia Hoa Kỳ (U.S National Bureau of Standards) đặt, vì nó được

nhà toán học Trung Hoa Quản Mai Cốc nêu ra đầu tiên vào năm 1962

Bài toán có thể phát biểu lại như sau: Cho một đồ thị đầy đủ, có trọng số

dương, tìm đường đi ngắn nhất qua tất cả các đỉnh của đồ thị rồi trở về đỉnh ban

đầu (mỗi đỉnh đi qua đúng một lần)

1.2 Ý nghĩa bài toán

Bài toán tìm đường đi ngắn nhất là bài toán quan trọng trong Lý thuyết đồ

thị, nó được áp dụng để giải quyết rất nhiều bài toán trong thực tế như điều khiển

tối ưu, giao thông vận tải, mạng viễn thông , đặc biệt "bài toán người đưa thư

Trung Hoa" là một đề tài khá hay, nó bắt nguồn từ nhu cầu thực tiễn trong ngành

bưu chính viễn thông – cần tìm một lộ trình ngắn nhất có thể của người đưa thư

cần đi qua một số con đường ít nhất một lần bắt đầu ở Sở bưu điện và trở về đó

Ứng dụng của bài toán là vô cùng thiết thực đối với ngành bưu chính, và còn

được mở rộng để giải quyết nhiều vấn đề phức tạp trong đời sống chẳng hạn:

“Xây dựng ứng dụng tìm kiếm lộ trình thu gom rác tối ưu trên địa bàn Thành

phố Hồ Chí Minh” Do vậy, việc nghiên cứu "bài toán người đưa thư Trung Hoa"

là rất cần thiết

Trang 7

II CƠ SỞ LÝ THUYẾT

Trong thực tiễn có nhiều trường hợp người ta chấp nhận các cách giải

thường cho kết quả tốt (nhưng không phải lúc nào cũng tốt) mà ít phức tạp và

hiệu quả Chẳng hạn nếu giải một bài toán bằng thuật toán tối ưu đòi hỏi máy

tính thực hiện nhiều năm thì chúng ta có thể sẵn lòng chấp nhận một giải pháp

gần tối ưu mà chỉ cần máy tính chạy trong vài ngày hoặc vài giờ

Các cách giải chấp nhận được nhưng không hoàn toàn đáp ứng đầy đủ các

tiêu chuẩn của thuật toán thường được gọi là thuật giải Khái niệm mở rộng này

của thuật toán đã mở của cho chúng ta trong việc tìm kiếm phương pháp để giải

quyết các bài toán được đặt ra Một trong những thuật giải thường được đề cập

đến và sử dụng là giải thuật Heuristic

Trong phần này sẽ đi sâu vào tìm hiểu về giải thuật Heuristic và sử dụng

giải thuật để giải quyết vấn đề NP

2.1 Khái niệm về lớp bài toán P và NP

2.1.1 Khái niệm các loại thời gian tính

Thời gian tính tốt nhất: là thời gian tính tối thiểu cần thiết để thực hiện

thuật toán với mọi bộ dữ liệu đầu vào kích thước n

Thời gian tính tồi nhất: là thời gian tính tối đa cần thiết để thực hiện thuật

toán với mọi bộ dữ liệu đầu vào có kích thước n

Thời gian tính trung bình: là thời gian tính cần thiết để thực hiện thuật

toán trên một tập hữu hạn các bộ dữ liệu đầu vào có kích thước n Thời

gian tính trung bình được tính theo công thức sau:

 Thời gian tính trung bình=(Tổng thời gian tính tất cả các bộ dữ liệu có

thể)/ Số bộ dữ liệu

Trang 8

Đối với một bài toán quyết định, có những bộ dữ liệu vào cho ra câu trả

lời(đầu ra) là ‘yes’, chúng ta gọi đây là bộ dữ liệu ‘yes’, nhưng cũng có những bộ

dữ liệu vào cho ra câu trả lời là ‘no’, chúng ta gọi những bộ dữ liệu này là bộ dữ

liệu ‘no’

2.1.2 Bằng chứng ngắn gọn dễ kiểm tra

Rất nhiều các bài toán quyết định có một đặc điểm chung, đó là để xác

nhận câu trả lời ‘yes’ đối với bộ dữ liệu vào ‘yes’ của chúng, chúng ta có thể đưa

ra bằng chứng ngắn gọn dễ kiểm tra xác nhận câu trả lời ‘yes’ cho bộ dữ liệu

vào ‘yes’ đó Tính ngắn gọn dễ kiểm tra ám chỉ việc thời gian kiểm tra để đưa ra

kết quả chỉ mất thời gian đa thức Ví dụ về những bài toán quyết định kiểu này

rất nhiều, sau đây là một số ví dụ:

 Bài toán kiểm tra tính hợp số: “Có phải số n là hợp số?”, để xác nhận câu

trả lời ‘yes’ cho đầu vào n, chúng ta có thể đưa ra một ước số b (1<b<n)

của n Để kiểm tra xem b có phải là ước số của n chúng ta có thể thực hiện

phép chia n cho b sau thời gian đa thức Trong ví dụ này , b là bằng chứng

ngắn gọn (vì b<n) và dễ kiểm tra (có thuật toán đa thức để kiểm tra b đúng

là ước số của n không)

 Đối với bài toán Hamilton, để xác nhận câu trả lời là ‘yes’ cho đồ thị đã

cho G, chúng ta có thể đưa ra một chu trình Hamilton của đồ thị:

v1, v2, v3 vn, v1

 Việc kiểm tra dãy đỉnh nói trên có là chu trình Hamilton của đồ thị đã cho

hay không có thể thực hiện sau thời gian đa thức Khi đó chúng ta nói dãy

đỉnh nói trên là bằng chứng ngắn gọn dễ kiểm tra để xác nhận câu trả lời

‘yes’ của bài toán Hamilton

Một cách tương tự, có thể đưa ra khái niệm bằng chứng ngắn gọn dễ kiểm

tra để xác nhận câu trả lời ‘no’ Đối với một số bài toán, việc đưa ra bằng chứng

ngắn gọn dễ kiểm tra để xác nhận câu trả lời ‘no’ là dễ hơn so với việc đưa ra

bằng chứng ngắn gọn xác định câu trả lời là ‘yes’

Trang 9

2.1.3 Khái niệm quy dẫn

Định nghĩa Giả sử chúng ta có hai bài toán quyết định A và B Chúng ta

nói A có thể quy dẫn về B nếu như sau một thời gian tính đa thức nếu tồn tại một

thuật toán thời gian đa thức R cho phép biến đổi bộ dữ liệu x của A thành bộ dữ

liệu vào R(x) của B sao cho x là bộ dữ liệu yes của A khi và chỉ khi R(x) là dữ

liệu vào yes của B.

Nếu A quy dẫn về được B sau thời gian đa thức và B có thể giải được sau

thời gian đa thức thì A cũng có thể giải được sau thời gian đa thức

2.1.4 Lớp bài toán P

Định nghĩa Chúng ta gọi P là lớp các bài toán có thể giải được trong

thời gian đa thức.

Ví dụ: Bài toán cây khung nhỏ nhất giải được nhờ thuật toán Prim với

thời gian 0(n2) thuộc lớp bài toán P

2.1.5 Lớp bài toán NP

Định nghĩa Ta gọi NP là lớp các bài toán quyết định mà để xác nhận câu

trả lời ‘yes’ của nó ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra.

Ví dụ: Bài toán kiểm tra tính hợp số: “Có phải n là hợp số không?”, để

xác nhận câu trả lời ‘yes’ cho đầu vào n ta có thể đưa ra một ước số b (1< b < n)

của n Để kiểm tra xem b có phải là ước số của n hay không ta có thể thực hiện

phép chia n cho b sau thời gian đa thức Trong ví dụ này dễ thấy b là bằng chứng

ngắn gọn (b<n) và dễ kiểm tra (có thuật toán thời gian tính đa thức để kiểm tra

xem b có là ước số của n)

2.1.6 Lớp bài toán Co- NP

Trang 10

Định nghĩa Ta gọi Co-NP là lớp các bài toán quyết định mà để xác nhận

câu trả lời ‘no’ của nó ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra.

Ví dụ: Bài toán kiểm tra tính nguyên tố: “Có phải n là số nguyên tố

không?”, để đưa ra bằng chứng ngắn gọn dễ kiểm tra xác nhận câu trả lời ‘no’

cho đầu vào n ta có thể đưa ra một ước số b của n

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

Định nghĩa Một bài toán quyết định A được gọi là NP-đầy đủ

(NP-Complete) nếu như:

A là một bài toán trong NP.

Mọi bài toán trong NP đều có thể quy dẫn về A.

Bổ đề Giả sử bài toán A là NP-đầy đủ, bài toán B thuộc NP, và bài toán

A qui dẫn được về bài toán B Khi đó bài toán B cũng là NP-đầy đủ

2.1.8 Lớp bài toán NP-khó (NP- Hard)

Một cách ngắn gọn có thể hiểu bài toán NP-khó là bài toán mà không có

thuật toán thời gian tính đa thức để giải nó trừ khi P = NP, mà chỉ có các thuật

toán giải trong thời gian hàm mũ Sau đây là định nghĩa chính thức của bài toán

NP-khó.

Định nghĩa Một bài toán A được gọi là NP- khó (NP-hard) nếu như sự

tồn tại thuật toán đa thức để giải nó kéo theo sự tồn tại thuật toán đa thức để

giải mọi bài toán trong NP.

Một số bài toán NP-khó tiêu biểu như:

Bài toán bè cực đại (MaxClique): Cho một đồ thị vô hướng G = (V, E) V

là tập các đỉnh, E là tập các cạnh tương ứng các đỉnh trong V Cần tìm bè lớn

nhất của G Bè là tập các đỉnh trong đồ thị mà đôi một có cạnh nốivới nhau (là

một đồ thị con đầy đủ trong đồ thị G)

Trang 11

Bài toán tập độc lập (Independent set): Cho đồ thị vô hướng G = (V, E) và

số nguyên K, hỏi có thể tìm được tập độc lập S với |S| ≥ K Tập độc lập là tập các

đỉnh trong đồ thị mà chúng đôi một không có cạnh nối với nhau

Bài toán phủ đỉnh (Vertex cover): Ta gọi một phủ đỉnh của đồ thị vô

hướng G = (V, E) là một tập con các đỉnh của đồ thị S V sao cho mỗi cạnh của

đồ thị có ít nhất một đầu mút trong S Bài toán đặt ra là: Cho đồ thị vô hướng G =

(V, E) và số nguyên k Hỏi G có phủ đỉnh với kích thước k hay không?

Một cách không hình thức, có thể nói rằng nếu ta có thể giải được một

cách hiệu quả một bài toán NP-khó cụ thể, thì ta cũng có thể giải hiệu quả bất kỳ

bài toán trong NP bằng cách sử dụng thuật toán giải bài toán NP-khó như một

chương trình con

Từ định nghĩa bài toán NP-khó có thể suy ra rằng mỗi bài toán NP-đầy

đủ đều là khó Tuy nhiên một bài toán khó không nhất thiết phải là

NP-đầy đủ.

Cũng từ bổ đề nêu trên, ta có thể suy ra rằng để chứng minh một bài toán

A nào đó là khó, ta chỉ cần chỉ ra phép qui dẫn một bài toán đã biết là

NP-khó về nó Sau đây là mô hình phân lớp các bài toán đã nêu trên.

Trang 12

Hình 1: Mô hình phân lớp các bài toán.

Từ phần trình bày trên, ta thấy có rất nhiều bài toán ứng dụng quan trọng

thuộc vào lớp NP-khó, và vì thế khó hy vọng xây dựng được thuật toán đúng

hiệu quả để giải chúng Do đó, một trong những hướng phát triển thuật toán giải

các bài toán như vậy là xây dựng các thuật toán gần đúng

2.2 Mở rộng khái niệm thuật giải

Trong quá trình nghiên cứu giải quyết các vấn đề - bài toán, người ta đã

đưa ra những nhận xét như sau :

 Có nhiều bài toán cho đến nay vẫn chưa tìm ra một cách giải theo kiểu

thuật toán và cũng không biết là có tồn tại thuật toán hay không

 Có nhiều bài toán đã có thuật toán để giải nhưng không chấp nhận được vì

thời gian giải theo thuật toán đó quá lớn hoặc các điều kiện cho thuật toán

khó đáp ứng

 Có những bài toán được giải theo những cách giải vi phạm thuật toán

nhưng vẫn chấp nhận được

Trang 13

Từ những nhận định trên, người ta thấy rằng cần phải có những đổi mới

cho khái niệm thuật toán Người ta đã mở rộng hai tiêu chuẩn của thuật toán :

tính xác định và tính đúng đắn Việc mở rộng tính xác định đối với thuật toán đã

được thể hiện qua các giải thuật đệ quy và ngẫu nhiên Tính đúng của thuật toán

bây giờ không còn bắt buộc đối với một số cách giải bài toán, nhất là các cách

giải gần đúng Trong thực tiễn, có nhiều trường hợp người ta chấp nhận các cách

giải thường cho kết quả tốt (nhưng không phải lúc nào cũng tốt) nhưng ít phức

tạp và hiệu quả Chẳng hạn nếu giải một bài toán bằng thuật toán tối ưu đòi hỏi

máy tính thực hiện nhiều năm thì chúng ta có thể sẵn lòng chấp nhận một giải

pháp gần tối ưu mà chỉ cần máy tính chạy trong vài ngày hoặc vài giờ

Các cách giải chấp nhận được nhưng không hoàn toàn đáp ứng đầy đủ

các tiêu chuẩn của thuật toán thường được gọi là các thuật giải Khái niệm mở

rộng này của thuật toán đã mở rộng cửa cho chúng ta trong việc tìm kiếm phương

pháp để giải quyết các bài toán được đặt ra

Một trong những thuật giải thường được đề cập đến và sử dụng trong khoa

học trí tuệ nhân tạo là các cách giải theo kiểu Heuristic.

2.3 Khái niệm Heuristic và MetaHeuristic

2.3.1 Hueristic

 Hueristic là những tri thức được rút tỉa từ những kinh nghiệm, “trực giác”

của con người (mẹo)

 Hueristic có thể là những tri thức “đúng” hay “sai”

 Hueristic là những meta knowledge và thường “đúng”

Hueristic thường được dùng trong các bài toán tìm kiếm trong trường hợp:

 Vấn đề có thể không có nghiệm chính xác do các mệnh đề không phát

biểu chặt chẽ hay thiếu dữ liệu để khẳng định kết quả

Trang 14

Hueristic giúp tìm kiếm đạt kết quả với chi phí thấp hơn.

2.3.2 MetaHeuristic

Meta hueristic là các thủ tục mang tính hướng dẫn Meta heuristic là loại

heuristic tổng quát có thể áp dụng cho nhiều lớp bài toán Gần đây meta heuristic

là một lãnh vực nghiên cứu phát triển mạnh mẽ, với sự ra đời của nhiều meta

heuristic như:- giải thuật di truyền (GA) - giải thuật mô phỏng luyện kim (SA) –

giải thuật kiến (ACO)

2.4 Thuật giải Heuristic

Thuật giải 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ường tìm được lời giải tốt (nhưng không chắc là lời giải tốt nhất)

 Giải bài toán theo thuật giải Heuristic 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

 Thuật giải Heuristic 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ơ sở 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

 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

2.5 Thuật giải di truyền

2.5.1 Giới thiệu

Giải thuật di truyền là một kỹ thuật của khoa học máy tính nhằm tìm kiếm

giải pháp thích hợp cho các bài toán tối ưu tổ hợp (combinatorial optimization).

Giải thuật di truyền là một phân ngành của giải thuật tiến hóa vận dụng các

nguyên lý của tiến hóa như di truyền, đột biến, chọn lọc tự nhiên, và trao đổi

chéo

Giải thuật di truyền thường được ứng dụng nhằm sử dụng ngôn ngữ máy

tính để mô phỏng quá trình tiến hoá của một tập hợp những đại diện trừu tượng

(gọi là những nhiễm sắc thể) của các giải pháp có thể (gọi là những cá thể) cho

bài toán tối ưu hóa vấn đề Tập hợp này sẽ tiến triển theo hướng chọn lọc những

giải pháp tốt hơn

Giải thuật di truyền (Genetic Algorithm - GA): Dựa vào quá trình di

truyền trong tự nhiên để cải tiến lời giải qua các thế hệ bắt nguồn từ một tập các

lời giải ban đầu

Giải thuật di truyền cũng như các thuật toán tiến hoá đều được hình thành

dựa trên một quan niệm được coi là một tiên đề phù hợp với thực tế khách quan

Đó là quan niệm "Quá trình tiến hoá tự nhiên là quá trình hoàn hảo nhất, hợp lý

nhất và tự nó đã mang tính tối ưu" Quá trình tiến hoá thể hiện tính tối ưu ở chỗ

thế hệ sau bao giờ cũng tốt hơn thế hệ trước

Trang 16

Ngày nay giải thuật di truyền càng trở nên quan trọng, đặc biệt là trong

lĩnh vực tối ưu hoá, một lĩnh vực có nhiều bài toán thú vị, được ứng dụng nhiều

trong thực tiễn nhưng thường khó và chưa có giải thuật hiệu quả để giải

2.5.2 Các khái niệm

a Cá thể, nhiễm sắc thểMột cá thể trong giải thuật di truyền, biểu diễn một giải pháp của bài toán

Tuy nhiên không giống với trong tự nhiên, một cá thể có nhiều nhiễm sắc thể

(NST),có 1 thì gọi là thể đơn bội ,còn nếu có nhiều thì là thể đa bội, ở đây để giới

hạn trong giải thuật di truyền ta quan niệm một cá thể có một nhiễm sắc thể Do

đó khái niệm cá thể và nhiễm sắc thể trong giải thuật di truyền coi như là tương

đương

Một NST được tạo thành từ nhiều gen, mỗi gen có thể có các giá trị khác

nhau để quy định một tính trạng nào đó Trong GA, một gen được coi như một

phần tử trong chuỗi NST

b Quần thểQuần thể là một tập hợp các cá thể có cùng một số đặc điểm nào đấy

Trong giải thuật di truyền ta quan niệm quần thể là một tập các lời giải của một

bài toán

c Các toán tử di truyền

Chọn lựa: Trong tự nhiên, quá trình chọn lọc và đấu tranh sinh tồn đã làm

thay đổi các cá thể trong quần thể Những cá thể tốt, thích nghi được với

điều kiện sống thì có khả năng đấu tranh lớn hơn, do đó có thể tồn tại và

sinh sản Các cá thể không thích nghi được với điều kiện sống thì dần mất

đi Dựa vào nguyên lý của quá trình chọn lọc và đấu tranh sinh tồn trong

tự nhiên, chọn lựa các cá thể trong GA chính là cách chọn các cá thể có

độ thích nghi tốt để đưa vào thế hệ tiếp theo hoặc để cho lai ghép, với mục

đích là sinh ra các cá thể mới tốt hơn Có nhiều cách để lựa chọn nhưng

Trang 17

cuối cùng đều nhằm đáp ứng mục tiêu là các cá thể tốt sẽ có khả năng

được chọn cao hơn

Lai ghép: Lai ghép trong tự nhiên là sự kết hợp các tính trạng của bố mẹ

để sinh ra thế hệ con Trong giải thuật di truyền, lai ghép được coi là một

sự tổ hợp lại các tính chất (thành phần) trong hai lời giải cha mẹ nào đó để

sinh ra một lời giải mới mà có đặc tính mong muốn là tốt hơn thế hệ cha

mẹ Đây là một quá trình xảy ra chủ yếu trong giải thuật di truyền

Đột biến: Đột biến là một sự biến đổi tại một ( hay một số ) gen của nhiễm

sắc thể ban đầu để tạo ra một nhiễm sắc thể mới Đột biến có xác suất xảy

ra thấp hơn lai ghép Đột biến có thể tạo ra một cá thể mới tốt hơn hoặc

xấu hơn cá thể ban đầu Tuy nhiên trong giải thuật di truyền thì ta luôn

muốn tạo ra những phép đột biến cho phép cải thiện lời giải qua từng thế

hệ

2.5.3 Mô hình giải thuật

Trang 18

Nhận các tham số của bài toán

Khởi tạo quần thể ban đầu

Kết thúc

Bắt đầu

Lựa chọn giải pháp tốt nhất

Hình 2: Mô hình giải thuật

[Bắt đầu ] Nhận các tham số cho thuật toán.

[Khởi tạo ] Sinh ngẫu nhiên một quần thể gồm n cá thể ( là n lời giải cho bài

toán)

[Quần thể mới ] Tạo quần thể mới bằng cách lặp lại các bước sau cho đến khi

quần thể mới hoàn thành

a.[Thích nghi] Ước lượng độ thích nghi eval(x) của mỗi cá thể.

b.[Kiểm tra ] Kiểm tra điều kiện kết thúc giải thuật

c.[Chọn lọc] Chọn hai cá thể bố mẹ từ quần thể cũ theo độ thích nghi

của chúng (cá thể có độ thích nghi càng cao thì càng có nhiều khả

năng được chọn)

d.[Lai ghép] Với một xác suất lai ghép được chọn, lai ghép hai cá thể

bố mẹ để tạo ra một cá thể mới

e.[Đột biến] Với một xác suất đột biến được chọn, biến đổi cá thể mới

[Chọn kết quả] Nếu điều kiện dừng được thỏa mãn thì thuật toán kết thúc và trả

về lời giải tốt nhất trong quần thể hiện tại

Ngày đăng: 24/05/2015, 09:20

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