Tải bản đầy đủ (.pdf) (87 trang)

Thuật toán phỏng bầy kiến giải bài toán K Median

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (928.78 KB, 87 trang )

Trần Trung hiếu

bộ giáo dục và đào tạo
trường đại học bách khoa hà nội
---------------------------------------

luận văn thạc sĩ khoa học

công nghệ hothông tin

ngành : công nghệ Thông tin

Thuật toán phỏng bầy kiến
giải bài toán k-median

Trần Trung Hiếu

2005-2007
Hà Nội
2007

Hà Nội 2007


Lời cảm ơn
Với tất cả lịng kính trọng và biết ơn sâu sắc, em xin gửi lời cảm ơn
chân thành tới thầy giáo PGS TS Nguyễn Đức Nghĩa, người đã tận tình dạy
dỗ và hướng dẫn em trong quá trình hoàn thành luận văn. Em cũng xin gửi lời
cảm ơn chân thành tới các Thầy Cô Khoa Công nghệ Thông tin, Trường Đại
học Bách Khoa Hà nội, những người đã tận tình giảng dạy, truyền cho chúng
em những kiến thức căn bản trong suốt quá trình học tập tại trường để tạo cơ


sở hoàn thành bài luận văn này.


3

MỤC LỤC
Trang
CÁC THUẬT NGỮ VIẾT TẮT ____________________________ 6
LỜI NÓI ĐẦU ___________________________________________ 7
Chương 1. Tổng quan về các hệ thống tính toán phỏng sinh học __ 9
1.1 Giới thiệu ________________________________________ 9
1.2 Di truyền và sự tiến hố _____________________________ 9
1.3 Các khơng gian tìm kiếm, đặc tả và các hàm phù hợp ______ 12
1.3.1 Khơng gian tìm kiếm__________________________ 12
1.3.2 Các đặc tả di truyền ___________________________ 12
1.3.3 Các hàm phù hợp ____________________________ 13
1.4 Phân loại các thuật toán phỏng sinh học _________________ 13
1.4.1 Các ứng dụng trong quy hoạch __________________ 14
1.4.2 Các ứng dụng trong thiết kế ____________________ 16
1.4.3 Các ứng dụng trong mô phỏng và nhận dạng _______ 17
1.4.4 Các ứng dụng trong điều khiển __________________ 17
1.5 Nguyên lý cơ bản của các thuật toán phỏng sinh học _______ 19
Chương 2. Thuật toán phỏng bầy kiến _______________________ 21
2.1 Giới thiệu ________________________________________ 21
2.2 Mơ hình mơ phỏng của thuật tốn _____________________ 23
2.3 Trình bày giải thuật _________________________________ 25
2.3.1 Một số định nghĩa ban đầu _____________________ 25
2.3.2 Trình bày thuật tốn __________________________ 26
2.4 Một số ứng dụng ___________________________________ 29
2.4.1 Giải thuật ACO cho bài toán TSP ________________ 29

2.4.2 Bài toán SMTWTP ___________________________ 31
2.4.3 Bài toán GAP _______________________________ 32
2.4.4 Bài toán SCP ________________________________ 34


4

2.4.5 Bài toán định tuyến mạng ______________________ 35
2.5 Đánh giá ảnh hưởng các tham số ______________________ 38
2.5.1 Xác định các vệt mật độ mùi ____________________ 38
2.5.2 Cân nhắc các thăm dị và khai thác _______________ 39
2.5.3 ACO và tìm kiếm cục bộ_______________________ 40
2.5.4 Tầm quan trọng của các thông tin tri thức _________ 41
2.5.5 Số lượng các con kiến _________________________ 42
2.5.6 Danh sách các ứng cử viên _____________________ 42
2.6 Kết luận __________________________________________ 43
Chương 3. Bài toán k-median ______________________________ 44
3.1 Phát biểu bài toán __________________________________ 44
3.2 Các ứng dụng thực tế _______________________________ 46
3.3 Tổng quan về các phương pháp giải ___________________ 46
3.3.1 Thuật toán vét cạn ____________________________ 48
3.3.2 Thuật toán Local Search _______________________ 49
3.3.3 Thuật toán Tabu Search _______________________ 50
3.3.4 Thuật toán GRASP ___________________________ 51
Chương 4. Giải thuật phỏng bầy kiến giải bài toán k-median ____ 53
4.1 Một số định nghĩa __________________________________ 53
4.2 Xây dựng các tham số _______________________________ 54
4.3 Lưu đồ thuật toán __________________________________ 55
4.3.1 Thủ tục InitData _____________________________ 55
4.3.2 Thủ tục AntSystemInitialize ____________________ 56

4.3.3 Thủ tục SimulateAnts _________________________ 57
4.3.4 Thủ tục UpdateTrails _________________________ 57
4.3.5 Nguyên tắc chung của thuật toán ________________ 58
4.3.6 Điều kiện dừng của thuật toán __________________ 59
4.4 Đánh giá độ phức tạp tính tốn ________________________ 59


5

Chương 5. Kết quả thực nghiệm ____________________________ 61
5.1 Mô tả thực nghiệm _________________________________ 61
5.1.1 Đặc điểm các bộ dữ liệu _______________________ 61
5.1.2 Thiết kế chương trình _________________________ 62
5.2 Kết quả thực nghiệm ________________________________ 64
5.2.1 Xác định các tham số _________________________ 64
5.2.2 Các kết quả tính tốn __________________________ 68
5.3 Đánh giá kết quả thực nghiệm ________________________ 75
5.3.1 Đánh giá về chất lượng thuật toán _______________ 75
5.3.2 Đánh giá về thời gian thực hiện _________________ 76
5.3.3 Đánh giá về độ ổn định ________________________ 77
Kết luận và hướng phát triển_______________________________ 78
Tài liệu tham khảo _______________________________________ 79
Phụ lục: Cấu trúc dữ liệu và các modul chương trình __________ 81


6

CÁC THUẬT NGỮ VIẾT TẮT
Các tính tốn phỏng sinh
học

EA
Evolutionary Algorithm
Các thuật toán phỏng sinh
học
ACO
Ant Colony Optimize
Bài toán tối ưu phỏng bầy
kiến
AS
Ant System
Hệ thống phỏng bầy kiến
GA
Genetic Algorithms
Thuật toán di truyền
TSP
Traveling Salesman Problem
Bài toán người bán hàng
di động
QAP
Quadratic Assignment Problem
Bài toán phương trình bậc
hai
JSP
Job-shop Scheduling Problem
Bài tốn lập lịch bán hàng
GBAS
Graph-Based Ant System
Hệ thống Ant dựa trên đồ
thị
SMTWTP Single Machine Total Weighted Bài toán lập lịch sản xuất

Tardiness Scheduling Problem
trên một máy đơn.
GAP
Generalized Assignment Problem Bài toán lập lịch tổng quát
SCP
Set Covering Problem
Bài toán phủ đỉnh
EC

Evolutionary Computation


7

LỜI NĨI ĐẦU
Các hệ thống cơng nghệ thơng tin ngày nay càng phát triển, lối tư duy,
cơ chế tính tốn, suy diễn ngày càng tiến gần hơn với kiểu tư duy logic của
con người. Cùng với nó, các hệ thống tính tốn mơ phỏng theo các cơ chế
hoạt động sinh học của các thực thể trong cuộc sống cũng ngày càng được
nghiên cứu sâu hơn, chi tiết hơn. Các bài toán trong thực tế cũng được các
nhà nghiên cứu nắm bắt và giải quyết dễ dàng hơn thông qua các mối liên hệ
tồn tại và không ngừng phát triển của các thực thể sinh học. Các hệ thống tính
tốn như vậy được nghiên cứu dưới tên gọi các hệ thống tính tốn phỏng sinh
học.
Một trong các hệ thống tính tốn phỏng sinh học đã vận dụng rất tốt lối
tư duy này vào các bài tốn tối ưu tổ hợp, đó chính là mơ hình giải thuật
phỏng bầy kiến, mơ phỏng lối di chuyển trong đời sống thực tế bầy đàn của
các con kiến.
Các vấn đề phục vụ và năng lực phục vụ của các trạm dịch vụ đối với
các yêu cầu của khách hàng ngày nay trở thành một mảng đề tài khá nóng. Do

phải tiếp nhận số lượng lớn các yêu cầu từ các khách hàng và vẫn tiếp tục
tăng lên mà các trạm dịch vụ nhiều khi quá tải do năng lực phục vụ không đáp
ứng. Đặc biệt, trong một số loại hình dịch vụ mang tính khẩn cấp, các yêu cầu
cần phục vụ với thời gian nhanh nhất, thì vấn đề cài đặt các trạm dịch vụ một
cách hợp lý sao cho khả năng đáp ứng là tốt nhất có thể được lại trở nên hết
sức quan trọng. Bài tốn k-median, một bài tốn điển hình đáp ứng các kiểu
mơ hình trên đã được triển khai với nhiều nghiên cứu chuyên sâu.


8

Với mục tiêu đi sâu nghiên cứu về hệ thống giải thuật phỏng bầy kiến,
cũng như ứng dụng nó để giải một lớp bài tốn tối ưu tổ hợp đó là bài toán kmedian, luận văn này sẽ cố gắng tìm hiểu mơ hình cơ bản nhất của hệ thống
giải thuật phỏng bầy kiến, bài toán k-median và ứng dụng giải thuật phỏng
bầy kiến để giải bài toán này.
Luận văn gồm 5 chương:
• Chương 1 Giới thiệu tổng quan về các hệ thống phỏng sinh học,
các phương pháp tính tốn phỏng sinh học, cũng như nguyên lý
cơ bản của một hệ thống thuật tốn phỏng sinh học.
• Chương 2 Giới thiệu tổng quan về thuật tốn phỏng bầy kiến.
• Chương 3 Giới thiệu tổng quan về bài toán k-median cũng như
một số phương pháp giải đã được áp dụng đối với bài tốn này.
• Chương 4 Trình bày giải thuật phỏng bầy kiến giải bài tốn kmedian.
• Chương 5 Trình bày một số kết quả thực nghiệm đã đạt được,
cùng một số đánh giá về giải thuật.
Thuật toán phỏng bầy kiến cũng như bài toán k-median thực tế đã được
nghiên cứu nhiều. Tuy nhiên việc áp dụng thuật toán phỏng bầy kiến vào giải
bài tốn k-median cịn chưa được nghiên cứu sâu sắc. Chính vì vậy, trong q
trình nghiên cứu, tìm hiều, chắc chắn các vấn đề tơi đề cập cịn có nhiều thiếu
sót, khiếm khuyết. Do vậy rất mong nhận được sự đóng góp, chỉ dạy của các

thầy cơ, các bạn học có quan tâm tới vấn đề này.


9

CHƯƠNG I.

TỔNG QUAN VỀ CÁC HỆ THỐNG TÍNH TỐN
PHỎNG SINH HỌC

1.1 Giới thiệu
Các kỹ thuật tính tốn phỏng sinh học (EC) [10] được nghiên cứu cho
thấy chúng hoàn toàn phù hợp với các phương pháp tính, giải các bài tốn tổ
hợp. Nguyên lý chung của các kỹ thuật này đều dựa trên các hiện tượng sinh
học tự nhiên. Các tính toán này bao gồm lớp các thuật toán phỏng sinh học
(EA), trong đó chứa các giải thuật tìm kiếm dựa trên các tri thức kinh nghiệm.
Các tri thức này có thể được sử dụng để tìm kiếm các lời giải tốt cho các bài
tốn khó (chứ khơng phải các lời giải tối ưu). Các tính tốn đó ln tìm cách
để suy diễn ra các lời giải tốt hơn từ các lời giải trước đó và đặc biệt phù hợp
với các dạng bài tốn khơng tồn tại các giải thuật hiệu quả (là giải thuật có
thời gian tính tốn đa thức). Các giải thuật này thường là đơn giản, mang tính
tổng quát và có thể được ứng dụng trong lớp các bài tốn tìm kiếm và tối ưu.
Tất nhiên, để có một sự đánh giá đúng về việc tại sao và làm thế nào
các thuật tốn có thể làm việc, cần có các hiểu biết cơ bản về di truyền và sự
tiến hoá.

1.2 Di truyền và sự tiến hoá
Trong sinh học, sự khác biệt được tạo ra giữa kiểu gen và kiểu hình của
sinh vật. Kiểu gen là tổ hợp các gen mã hóa sinh vật, đặc biệt là các phân tử
DNA có trong mỗi tế bào của cơ thể sinh vật (cho dù đó là vi khuẩn, nấm,



10

thực vật hay động vật). Các phân tử DNA này có chứa các gen, đó là các đoạn
nhỏ của phân tử DNA mã hóa cho các đặc điểm riêng của sinh vật (cịn gọi là
tính trạng), ví dụ như da hoặc màu lơng, số lượng chi, kích thước sọ, … Một
cách chính xác hơn, các gen (hoặc các đoạn DNA) này được dịch mã thành
các protein tạo nên các phần của cơ thể, và tạo nên các chức năng cần thiết
cho sự tồn tại (chuyển hóa, vận động cơ, bảo vệ chống lại bệnh tật, …). Sự
hình thành sinh vật cùng với các chức năng hoặc hành vi của nó tạo nên kiển
hình, hay sinh vật thực thể khi sống trong thế giới thực. Nói tóm lại, có q
trình 1 chiều mà thông tin về gen (kiểu gen) xác định (cùng với tác động của
mơi trường) hình dạng và chức năng (kiểu hình) của sinh vật.
Khi hai sinh vật cùng loài sống cùng nhau và sinh con, các thay đổi ở
mức gen như sau: sao lại các phân tử DNA của cả bố lẫn mẹ và kết hợp với
nhau, và kiểu gen của con nhận được một phần gen từ bố, một phần gen từ
mẹ. Nói cách khác, kiểu gen của từng cá thể con là tổ hợp (một cách ngẫu
nhiên) kiểu gen của bố mẹ, mỗi cá thể con có tổ hợp gen khác nhau. Q trình
này được gọi là lai. Hơn nữa, trong q trình sao chép thơng tin gen từ bố mẹ
cho con đơi khi có lỗi sao chép, đó được gọi là đột biến. Hiện tượng này hiếm
khi xảy ra, nhưng nó (có thể) tạo ra các thay đổi mới ở gen. Kết quả của hiện
tượng lai và đột biến này các cá thể con (thế hệ tiếp theo) sẽ có các thay đổi
so với bố mẹ của chúng. Một số tính trạng của thế hệ tiếp theo có từ bố, và
một số từ mẹ. Hơn nữa, các đột biến ngẫu nhiên này có thể biểu hiện hồn
tồn ở một số tính trạng nhất định. Tóm lại, mỗi thay đổi đều có nguồn gốc,
xuất phát từ mức độ kiểu gen (qua lai và đột biến) và biểu hiện ở mức độ kiểu
hình.
Trong thế giới sinh vật, không phải tất cả các cá thể được sinh ra đều
tồn tại và tiếp tục sinh sản. Ví như ở quần thể chuột, đa số chuột con chết



11

trước khi trưởng thành; chúng có thể bị chết bởi thú ăn thịt, chúng phải tranh
thức ăn với các chuột khác, hoặc chúng có thể phải chống chọi với các mối đe
dọa từ tự nhiên hoặc bất ngờ khác trước khi chúng có thể sinh sản. Hậu quả là
chỉ có một phần nhỏ mỗi thế hệ chuột sẽ sinh sản, và truyền các thông tin di
truyền cho thế hệ sau. Đặc biệt, những con chuộc có kiểu hình tốt, như có thể
chạy nhanh hoặc có màu lơng cho phép chúng lẩn trốn được trong các bụi để
tránh được thú ăn thịt, mới sống sót và sinh sản. tuy nhiên, các con chuột có
kiểu hình khơng tốt sẽ chết, và do đó khơng thể sinh sản được. Q trình này,
được tổng kết bằng thành ngữ “tồn tại dành cho kẻ mạnh nhất” được gọi là
chọn lọc tự nhiên: các đặc tính (hoặc các biến đổi) có lợi nhìn chung sẽ được
bảo tồn và phát triển trong quần thể, và các đặc tính (hoặc các biến đổi) bất
lợi sẽ nhìn chung biến mất, vì khơng truyền đến được thế hệ sau. Hậu quả là
qua thời gian, quần thể nói chung sẽ thay đổi dần dần, hoặc tiến hóa dựa trên
các biến đổi về gen, và thích nghi tốt hơn với các thay đổi của mơi trường qua
chọn lọc tự nhiên.
Điều đó chính là hình thức diễn ra của tiến hóa và chọn lọc tự nhiên
trong thế giới. Tất nhiên đó là một hình ảnh được đơn giản hóa, nhưng điều
quan trọng chính là các nguyên lý chủ yếu này. Một cách nhìn đặc biệt về tiến
hóa đã trở nên phổ biến là tiến hóa chính là cách phân tích bài tốn. Bài tốn
ở đây chính là sự tồn tại và sinh sản, và sự tiến hóa qua chọn lọc tự nhiên
chính là một kỹ thuật phân tích bài tốn. Nói cách khác, tiến hố sẽ tìm kiếm
trong khơng gian các phần tử DNA (kiểu gen) để mã hố các thành các kiểu
hình có thể đảm bảo tồn tại và phát triển. Những kiểu gen mã hóa các kiểu
hình thành cơng sẽ, một cách tương đối, được sử dụng để tạo ra các kiểu gen
(qua biến đổi gen) để duy trì giống nịi. Theo cách này, qua nhiều thế hệ kế



12

tiếp, các cá thể trong quần thể sẽ trở nên ngày càng thành cơng trong việc
“phân tích bài tốn”.

1.3 Các khơng gian tìm kiếm, đặc tả và các hàm phù hợp
Để có thể sử dụng các ngun lý tiến hố sinh học trong việc xây dựng
các thuật tốn tìm kiếm, đầu tiên ta cần tìm hiểu các khái niệm khơng gian tìm
kiếm, các đặc tả di truyền và các hàm phù hợp.
1.3.1. Khơng gian tìm kiếm
Khơng gian tìm kiếm của một bài tốn đơn giản chính là khơng gian
của tất cảc các lời giải có thể có để giải bài tốn. Chẳng hạn với bài tốn tính
tổng: Đưa ra một tập gồm n số x i , thì có tồn tại hay không một tập con S các
số này mà tổng của chúng không vượt quá một số m cho trước? Khi đó tập
các lời giải cho bài tốn này (khơng gian tìm kiếm) là tập tất cả các tập con có
thể của n số, là 2n. Một ví dụ khác là bài toán người bán hàng di động (TSP).
Đối tượng cần tìm một hành trình ngắn nhất đi qua n thành phố sao cho mỗi
thành phố chỉ được thăm đúng một lần. Ở đây khơng gian tìm kiếm chính là
tập tất cả các hành trình có thể qua n thành phố này, chính là n!.
1.3.2. Các đặc tả di truyền
Đôi khi các đặc tả này là các cách mô tả các lời giải cho một vài bài
toán theo nguyên tắc đơn giản, thuận tiện để tính tốn, chẳng hạn thơng qua
các xâu ký tự. Ví dụ trong bài tốn tính tổng con trên, mỗi lời giải có thể được
mơ tả bởi một chuỗi bit có độ dài n. Đưa ra một chuỗi bít, lời giải tương ứng
được định nghĩa bằng cách thêm vào một giá trị x i trong tập con lời giải nếu
bit giá trị thứ i trong chuỗi bit bằng 1. Tương tự trong bài toán TSP, mỗi bộ
lời giải có thể được mơ tả bởi một hoán vị của n số tự nhiên từ 1 đến n. Mỗi



13

hoán vị này xác định cách thăm các thành phố trong lời giải tương ứng hay
còn gọi là một hành trình.
Các cách mơ tả các lời giải này làm cho bài tốn tương tự như mơ tả
kiểu gen/kiểu hình trong các hiện tượng sinh học tự nhiên. Các mô tả (các
chuỗi bit, các hoán vị) là các kiểu gen và các lời giải tương ứng là các kiểu
hình. Khi đó khơng gian tìm kiếm có thể được mơ tả như là không gian của
các chuỗi bit hay là không gian của các hoán vị.
1.3.3. Các hàm phù hợp
Để áp dụng một thuật toán phỏng sinh học vào một bài toán, ta cần có
một vài cách đánh giá các lời giải. Điều này có thể được thực hiện thơng qua
các hàm phù hợp. Một hàm phù hợp là một hàm mà đầu vào là các mô tả (hay
các kiểu gen), dịch các mô tả này ra các lời giải tương ứng (hay các kiểu
hình), kiểm tra các lời giải này trên bài tốn đặt ra, sau đó trả về một giá trị
đánh giá mức độ tốt của lời giải.
Chẳng hạn trong bài toán TSP, đầu vào là một hoán vị, được tính thành
hành trình tương ứng qua các thành phố, và độ dài của hành trình này sẽ được
tính ra.
Xem xét với một bài tốn tìm cực đại, sự phù hợp nên là cực đại, hàm
phù hợp khi đó được cấu trúc sao cho giá trị phù hợp càng cao thì lời giải sẽ
càng tốt.

1.4 Phân loại các thuật toán phỏng sinh học
Các ứng dụng của các hệ thống tính tốn phỏng sinh học hết sức rộng
rãi [12]. Việc phân loại nhiều khi chỉ mang tính chất tương đối. Tuy nhiên, về
cơ bản có thể phân loại các thuật tốn phỏng sinh học dựa theo các ứng dụng


14


trong thực tế của các thuật tốn đó. Để thuận tiện, có thể phân chia thành các
dạng ứng dụng tiêu biểu như sau:
• Các ứng dụng quy hoạch
• Các ứng dụng thiết kế
• Các ứng dụng mơ phỏng và nhận dạng
• Các ứng dụng điều khiển
Việc phân loại này chỉ mang tính chất tương đối. Có thể có một vài bài
tốn cụ thể nào đó đúng trong đồng thời nhiều dạng ứng dụng.
1.4.1 Các ứng dụng trong quy hoạch
1.4.1.1 Bài toán định tuyến
Một trong các bài toán nổi tiếng trong hệ thống các bài toán tối ưu tổ
hợp dạng này chính là bài tốn người bán hàng di động (TSP) . Một người
bán hàng cần phải đi qua một số thành phố, và sau đó trở về nhà. Điều kiện
đặt ra là anh ta phải đi qua tất cả các thành phố với khả năng tối thiểu hoá
quãng đường đi.
Một bài toán khác dạng này là bài toán vận chuyển (Transportation
Problem). Trong bài toán này, hàng hoá cần được lấy từ một số kho hàng và
phân phối cho một số khách hàng. Vậy đâu sẽ là giải pháp đảm bảo tối ưu chi
phí?
Bài tốn dẫn đường cho các rơbốt cũng là một dạng trong nhóm bài
tốn này. Đường được chọn cần khả thi và an toàn (chẳng hạn đường cần đảm
bảo thoả mãn các ràng buộc điều khiển của rôbốt) và đặc biệt phải tránh được
các va chạm. Trong một vùng không gian mà rôbốt chưa biết hoặc một môi


15

trường không đồng nhất, khi một yêu cầu xử lý trực tuyến được đặt ra, các
rôbốt phải đưa ra tức thì các di chuyển phù hợp.

1.4.1.2 Bài tốn lập lịch
Các vấn đề lập lịch chủ yếu tập trung phân tích các kế hoạch đặt ra để
thực hiện một số yêu cầu trong một khoảng thời gian nào đó, trong đó các yêu
cầu là có giới hạn, các ràng buộc thay đổi và sẽ có một số đối tượng được tối
ưu.
Bài tốn lập lịch cơng việc bán hàng là một dạng bài toán NP đầy đủ.
Khung cảnh đặt ra là một nhà máy sản xuất, với các kiểu máy công cụ khác
nhau. Có một số cơng việc cần được hồn thành, mỗi công việc bao gồm một
tập các nhiệm vụ. Mỗi nhiệm vụ yêu cầu một máy riêng thực hiện trong một
khoảng thời gian xác định, và các nhiệm vụ cho mỗi cơng việc cần được hồn
thành theo u cầu. Làm sao để lịch đưa ra có thể thực hiện tất cả các nhiệm
vụ với chi phí tối ưu?
Một dạng bài toán lập lịch khác là đặt ra một thời gian có thể cho một
tập các bài kiểm tra, các bài giảng, hoặc một thể loại tương tự.
Trong tính tốn, các bài tốn lập lịch cịn bao gồm cả bài tốn phân
phối các cơng việc một cách có hiệu quả cho từng bộ xử lý trong một hệ
thống rất nhiều bộ xử lý.
1.4.1.3 Bài tốn đóng gói
Các thuật tốn phỏng sinh học được ứng dụng trong rất nhiều các bài
tốn đóng gói, mà đơn giản nhất là bài tốn balơ rỗng một chiều (Zero-One
Knapsack Problem). Đưa ra một ba lô rỗng và một tập các đồ vật, mỗi đồ vật


16

có kích thước và giá trị xác định. Tìm tập các đồ vật với giá trị lớn nhất có thể
chứa được trong balơ đó. Có nhiều bài tốn thực tế có cùng kiểu này, chẳng
hạn bài tốn cấp phát các kênh truyền thơng cho khách hàng với chi phí cho
các kênh là khác nhau.
Có rất nhiều dạng bài tốn đóng gói hai chiều. Khi việc sản xuất các đồ

vật được thực hiện từ nhiều vật liệu khác nhau, mong muốn đặt ra là tìm một
dải phù hợp nhất các loại vật liệu, sao cho tối thiểu số lượng các vật liệu thừa.
Một bài toán tương tự trong lĩnh vực thiết kế mạch điện tử tích hợp, đó là làm
thế nào các mạch điện được sắp xếp để tối thiểu hoá tổng số lượng linh kiện
và đường mạch dẫn được sử dụng.
1.4.2 Các ứng dụng trong thiết kế
Việc thiết kế các hệ thống lọc trong điện tử nhận được nhiều sự quan
tâm. Các thuật toán phỏng sinh học thường được sử dụng để thiết kế các hệ
thống điện tử hoặc hệ thống số, được thực hiện tại tần số trả lời mong muốn.
Các thuật toán phỏng sinh học cũng đồng thời được sử dụng trong vấn
đề tối ưu các thiết kế của các hệ thống xử lý tín hiệu và trong thiết kế mạch
tích hợp.
Các kỹ thuật tính tốn phỏng sinh học được sử dụng rộng rãi trong các
mạng Nơron nhân tạo, cả trong thiết kế giao thức mạng cũng như trong tìm
kiếm các tập trọng số tối ưu.
Có rất nhiều các ứng dụng kỹ thuật trong tính tốn phỏng sinh học:
thiết kế cấu trúc, thay thế các suy hao trong các không gian cấu trúc, thiết kế
máy gia tốc tuyến tính, thiết kế hộp số, thiết kế lị phản ứng hoá học …


17

1.4.3. Các ứng dụng trong mô phỏng và nhận dạng
Quá trình mơ phỏng phân tích một thiết kế hoặc một mơ hình cho một
hệ thống, xác định làm thế nào hệ thống có thể vận hành. Trong một vài
trường hợp, khả năng vận hành là không chắc chắn, trong khi ở một số trường
hợp khác khả năng này là chắc chắn. Tuy nhiên ta muốn kiểm tra độ chính
xác của mơ hình.
Các tính tốn phỏng sinh học được ứng dụng trong các bài toán khác
nhau trong hoá học cũng như sinh học. Roosen và Meyer (1992) [12] sử dụng

chiến lược phỏng sinh học để xác định trạng thái cân bằng trong các hệ thống
hoá học, bằng cách xác định chất entanpi dư thừa tối thiểu trong phân tích.
Việc xác định cấu trúc 3 chiều của các protein, đưa ra các chuỗi các amino
axít cũng được thực hiện theo các tính tốn phỏng sinh học.
Trong lĩnh vực kinh tế, các tính tốn phỏng sinh học cũng được sử
dụng để mơ hình hố các thành phần kinh tế trong thị trường.
Q trình nhận dạng ngược với q trình mơ phỏng. Nó phân tích, xác
định một thiết kế của hệ thống đưa ra là vận hành được.
Rất nhiều hệ thống có thể được mơ tả thơng qua các mơ hình, đảm bảo
đưa ra các giá trị đầu ra dựa trên một hoặc một số giá trị đầu vào.
1.4.4 Các ứng dụng trong điều khiển
Có hai kiểu xử lý khác nhau sử dụng các tính tốn phỏng sinh học trong
điều khiển: online và offline. Xử lý online sử dụng một thuật toán phỏng sinh
học như là một phần kích hoạt của việc xử lý điều khiển. Với xử lý offline,
khơng có một phỏng sinh học nào được ứng dụng.


18

Một vài nhà nghiên cứu đã tìm kiếm, sử dụng các hệ thống thích nghi
có chất lượng của các thuật toán phỏng sinh học để xây dựng các bộ điều
khiển trực tuyến cho các hệ thống động. Thuận lợi của một bộ điều khiển
phỏng sinh học là nó có thể phù hợp trong phạm vi hệ thống khi các đặc tính
bị thay đổi theo thời gian với các thay đổi có thể là từ từ hoặc đột biến. Hầu
hết các nhà nghiên cứu đưa ra các cách tiếp cận offline cho các điều khiển đối
với các hệ thống không đổi.
Fonseca và Fleming (1993) [12] sử dụng các thuật toán phỏng sinh học
để thiết kế một bộ điều khiển cho các máy bơm ga. Một hệ thống điều khiển
sẽ tối ưu khả năng đốt cháy trong các lò đa sợi đốt và làm sơi. Các tính tốn
phỏng sinh học đồng thời cũng được thiết lập cho phần hướng dẫn điều khiển

và hệ thống dẫn đường.
Ngoài các cách phân loại như đã trình bày ở trên, có thể phân loại các
thuật tốn phỏng sinh học dựa theo các mơ hình phỏng sinh học trong thực tế.
• Dựa trên nguyên lý di truyền học, có các thuật tốn di truyền.
• Dựa trên ngun lý chuyển động của bầy kiến, ta có các thuật
tốn phỏng bầy kiến.
• Dựa trên ngun lý trèo đồi có thuật tốn trèo đồi (Hill Climbing
Algorithm).
• …
Trong phạm vi luận văn này, ta sẽ nghiên cứu về thuật toán phỏng bầy
kiến và ứng dụng thuật toán để giải bài toán k-median.


19

1.5. Nguyên lý cơ bản của các thuật toán phỏng sinh học
Các thuật toán phỏng sinh học là một dạng tìm kiếm và tối ưu thơng
qua các q trình tích luỹ tri thức dựa cơ bản trên các nguyên lý phỏng sinh
học và được thực hiện trên các máy tính trong hầu hết các trường hợp.
Nguyên tắc cơ bản là nếu một lời giải được sinh ra nằm trong tập lời giải có
triển vọng và các lời giải khác là khơng triển vọng thì lời giải được sinh ra sẽ
hội tụ tốt nhất trong tập lời giải triển vọng. Nếu một lời giải chưa hồn chỉnh
được thêm vào, q trình tạo lời giải sẽ thăm dị khơng gian tìm kiếm và
chuyển tới vùng lời giải có khả năng tăng các lựa chọn và kế thừa các thuộc
tính của lời giải trước đó. Các q trình này dựa trên các luật cơ bản của
nguyên lý phỏng sinh học Darwinistic.
Để phân tích bài toán tối ưu với các tri thức phỏng sinh học, các lời giải
phải mô tả phù hợp với các đặc điểm của bài toán đưa ra và các lựa chọn có
thể là tập tương ứng về số lượng các lời giải được mô tả.
Số lượng các lời giải được mô tả được gọi là hàm phù hợp φ. Các ký

hiệu A, B, C mô tả các tập riêng lẻ hay các lời giải. Tình trạng hiện tại của
một xử lý phỏng sinh học được xác định bởi tham số s. Một phần tử riêng lẻ
với chỉ số i trong tập lời giải A(s) được ký hiệu là a i (s). Xác suất lựa chọn
a i (s) ký hiệu là p i . Khi một mô tả cho một lời giải có thể của tập bao gồm n
phần tử, phần tử thứ i định dạng lời giải có thể sẽ có thuộc tính x i . Tức là một
tập riêng lẻ bao gồm một vài thuộc tính x và sẽ mơ tả một lời giải có thể thơng
qua các thuộc tính của nó.


20

Khi đó, một thuật tốn phỏng sinh học cơ bản được mô tả như sau:
Procedure EvolutionaryAlgorithm
<Khởi tạo một tập lời giải ngẫu nhiên A(s=0)>
Repeat
<Đánh giá sự phù hợp của mọi a i trong A(s)>
B(s) của A(s)>
<Tái tạo các con cháu C(s) từ B(s)>
<A(s+1)=C(s)>
Until <Điều kiện tiêu chuẩn thoả mãn>
End; //Kết thúc thủ tục


21

CHƯƠNG II

THUẬT TOÁN PHỎNG BẦY KIẾN


2.1 Giới thiệu
ACO - Thuật tốn phỏng bầy kiến [16, 17, 18] mơ phỏng hành vi của
bầy kiến trong tự nhiên nhằm tìm kiếm đường đi ngắn nhất giữa tổ kiến và
nguồn thức ăn dựa trên mật độ mùi (Pheromone) mà các con kiến để lại trên
đường đi. Thuật toán này lần đầu được ứng dụng giải bài toán phân loại các
trạm làm việc vào năm 1991. Sau đó, rất nhiền các biến thể của thuật tốn dựa
trên các ngun lý cơ bản của nó đã được giới thiệu. Đặc điểm chủ yếu của
một thuật tốn ACO là sự kết hợp của các thơng tin về cấu trúc của lời giải
triển vọng với thông tin về cấu trúc của các lời giải tốt trước đó.
Hiệu quả của thuật toán ACO đã được thể hiện khi so sánh với một số
thuật toán nổi tiếng khác như thuật toán di truyền (GA), Simulated Annealing,
Tabu-Search, Local Search... Người ta áp dụng rất thành cơng các thuật tốn
kiến trong một số các bài toán tối ưu thường gặp như: bài tốn người đưa thư,
bài tốn gán, bài tốn tơ mầu đồ thị, bài toán lập lịch...
Tuy nhiên về mặt lý thuyết, có rất ít các cơng trình nghiên cứu nhằm
đưa ra các đánh giá về hiệu quả của thuật tốn. Tình hình này đã được thay
đổi khi lần đầu tiên, năm 2000, W.J Gutjahz chứng minh được tính hội tụ của
một thuật toán ACO, thuật toán GBAS [19, 20]. Gutjahz chứng minh rằng
trong một số điều kiện nhất định GBAS hội tụ đến lời giải tối ưu với xác suất
tiệm cận đến 1 với độ chính xác tuỳ ý. Tuy nhiên GBAS chưa có một áp dụng
cụ thể nào trên thực tế nên các kết quả này thuần tuý chỉ có ý nghĩa lý thuyết.


22

Năm 2002 M.Dorigo và T.Stüzle đã chứng minh được tính hội tụ của
hai biến thể quan trọng nhất của ACO, đó là thuật tốn Max – Min và ASC
[21]. Điều này đã khiến cho ACO có một cơ sở lý thuyết vững vàng và mở ra
một loạt các nghiên cứu đầy hứa hẹn về các tham số điều khiển trong ACO.
Thuật tốn ACO là một mơ hình thuật tốn thiết kế cho các siêu tri thức

để giải các bài toán tối ưu tổ hợp. Đây là dạng thuật toán mà để tìm kiếm lời
giải tối ưu, ta cần có một vài tri thức cơ bản: một vài tri thức suy diễn từ lời
giải ban đầu, thêm vào một số phần tử để có thể xây dựng một lời giải hồn
chỉnh tốt; hoặc là thực hiện một tìm kiếm tri thức địa phương bắt đầu từ lời
giải hoàn chỉnh, sửa đổi một vài phần tử để có được một lời giải tốt hơn. Phần
siêu tri thức cho phép xuất phát từ các tri thức cấp thấp có thể thu được các lời
giải tốt hơn. Các siêu tri thức này mang một số đặc điểm sau:
• Tính linh hoạt/ đa năng: Có nghĩa là nó có thể áp dụng mở rộng
cho nhiều bài tốn khác nhau có một số điểm tương đồng. Ví dụ
như có thể mở rộng dễ dàng từ bài toán bán hàng di động sang
bài toán bán hàng di động bất đối xứng …
• Có tính thích nghi cao: Có thể được áp dụng với chỉ những thay
đổi nhỏ tới những bài toán tổ hợp tối ưu, chẳng hạn bài tốn
phương trình bậc hai (QAP) hay bài tốn lập lịch cơng việc bán
hàng (JSP).
• Có tính phổ biến: Điều này là khá thú vị vì nó cho phép khai thác
các khả năng quay lui trong các kỹ thuật tìm kiếm. Nó đồng thời
cũng tạo ra một hệ thống có thể thực hiện các xử lý song song.


23

2.2 Mơ hình mơ phỏng của thuật tốn
Mơ hình được diễn tả dưới đây [22] dựa trên thực tế hoạt động của đàn
kiến trong trong tự nhiên . Ta gọi hệ thống đó là hệ thống Ant (AS).

Hình 2.1: Một ví dụ về hoạt động của bầy kiến trong thực tế.

Hình 2.1 là ví dụ về hành trình của bầy kiến. Hình 2.1a cho thấy bầy
kiến đi từ điểm A là nơi có thực phẩm thẳng tới tổ là điểm E và ngược lại.

Bỗng nhiên một cản trở xuất hiện trên đường tại vị trí B. Do đó tại B hoặc D,
bầy kiến phải quyết định rẽ phải hoặc rẽ trái (Hình 2.1b). Sự lựa chọn sẽ bị tác
động lớn khi xuất hiện mùi hương thu hút của một con khác giới.
Nếu mùi hương thu hút từ bên phía phải càng lớn sẽ tạo cho bầy kiến
một động lực mạnh mẽ hơn và do đó xác suất rẽ phải sẽ lớn hơn. Con kiến
đầu đàn đến điểm B (hoặc D) sẽ có xác suất rẽ phải như rẽ trái (vì khơng có
mùi hương thu hút trước đó trên cả hai tuyến). Bởi vì tuyến B-C-D ngắn hơn


24

B-H-D, con kiến đầu đàn sau đó sẽ đến điểm D trước khi con kiến đầu đàn đi
theo tuyến B-H-D (Hình 2c).
Kết quả là một con kiến đi từ E đến D sẽ tìm thấy mùi hương thu hút
trên tuyến D-C-B và làm cho một nửa đàn kiến còn lại quyết định vượt qua
rào cản theo tuyến D-C-B-A và do đó bầy kiến đã đi qua B-C-D. Do vậy, số
các con kiến đi theo tuyến B-C-D theo đơn vị thời gian sẽ nhiều hơn so với số
các con kiến đi theo tuyến B-H-D.
Nếu mùi hương thu hút trên tuyến đi ngắn hơn lớn hơn sẽ thúc đẩy việc
di chuyển nhanh hơn so với tuyến dài hơn, do đó xác suất chọn tuyến ngắn
hơn là lớn hơn.
Tuy nhiên, do sử dụng mơ hình bầy kiến nhân tạo như là một phương
pháp tối ưu, nên hệ thống sẽ có một vài điểm khác so với cơ chế hoạt động
của bầy kiến trong thực tế:
• Bầy kiến nhân tạo có một vài bộ nhớ/ ký ức nhất định.
• Chúng khơng hồn tồn mù, tức cũng có một vài tri thức nhất
định trong việc quan sát, đánh giá các thay đổi của mơi trường.
• Chúng sẽ sống trong môi trường mà miền thời gian là rời rạc.
Hình dưới mơ tả một dạng mơ hình của bầy kiến nhân tạo.



25

Hình 2.2: Một ví dụ về đàn kiến nhân tạo

Một ý tưởng được đưa ra là nếu tại một điểm nào đó, một con kiến
chọn một đường đi từ tập các đường đi khác nhau, nó sẽ lựa chọn đường đi có
khả năng đạt tới đích cao nhất. Hơn nữa đường đi đó cũng có nghĩa là đường
đi ngắn nhất.

2.3 Trình bày giải thuật
2.3.1 Một số định nghĩa ban đầu
Cho một bộ (S, f, Ω), trong đó:
• S: tập hợp các lời giải triển vọng
• f: hàm đánh giá f: S->R
• Ω: các điều kiện ràng buộc
• Cần tìm lời giải tối ưu S* thoả f(S*) → min
Trong ACO, bài toán tối ưu tổ hợp (S, f, Ω) được giải quyết qua sơ đồ
gồm các thành phần sau:


×