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

Kết hợp giải thuật di truyền và tìm kiếm tabu giải bài toán tối ưu

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 (1.12 MB, 69 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

TRẦN NGỌC TRƢỜNG

KẾT HỢP GIẢI THUẬT DI TRUYỀN
VÀ TÌM KIẾM TABU GIẢI BÀI TOÁN TỐI ƢU

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

THÁI NGUYÊN - 2016


ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

TRẦN NGỌC TRƢỜNG

KẾT HỢP GIẢI THUẬT DI TRUYỀN
VÀ TÌM KIẾM TABU GIẢI BÀI TOÁN TỐI ƢU
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Ngƣời hƣớng dẫn khoa học: TS. Vũ Mạnh Xuân

THÁI NGUYÊN - 2016


i



LỜI CAM ĐOAN
Tôi - Trần Ngọc Trƣờng xin cam đoan những nội dung trình bày luận văn
này là kết quả tìm hiểu, nghiên cứu của bản thân dƣới sự hƣớng dẫn của TS.
Vũ Mạnh Xuân và tham khảo từ các nhà nghiên cứu đi trƣớc. Nội dung tham
khảo, kế thừa, phát triển từ các công trình đã đƣợc công bố đƣợc trích dẫn,
ghi rõ nguồn gốc.
Nếu có gì sai phạm tôi xin hoàn toàn chịu trách nhiệm.

Ngƣời cam đoan

Trần Ngọc Trƣờng


ii

LỜI CẢM ƠN
Trong quá trình thực hiện luận văn mặc dù gặp rất nhiều khó khăn nhƣng
tôi luôn nhận đƣợc sự quan tâm, giúp đỡ từ thầy cô, đồng nghiệp bạn bè và
ngƣời thân. Đây là nguồn động lực giúp tôi hoàn thành luận văn này.
Tôi xin gửi lời chân thành cảm ơn tới TS. Vũ Mạnh Xuân đã tận tình giúp
đỡ, hƣớng dẫn và chỉ bảo trong quá trình thực hiện luận văn.
Tôi xin chân thành cảm ơn tới quý thầy, cô trƣờng Đại học Công nghệ
thông tin và Truyền thông đã tận tình chỉ bảo, truyền đạt những kiến thức qúy
báu giúp tôi hoàn thành nhiệm vụ học tập trong suốt thời gian theo học tại
trƣờng. Quý thầy cô đã giúp tôi có đƣợc những kiến thức quan trọng trong
lĩnh vực Công nghệ thông tin, là nền tảng vững chắc cho những nghiên cứu
của bản thân trong thời gian tới.
Tôi xin cảm ơn anh em, đông nghiệp đã giúp đỡ, ủng hộ tinh thần trong
thời gian tôi tham gia học tập.

Cuối cùng, tôi xin cảm ơn tất cả những ngƣời đã luôn luôn quan tâm, sẻ
chia và động viên tôi.

Thái Nguyên, ngày

tháng

năm 2016

Trần Ngọc Trƣờng


iii

MỤC LỤC

LỜI CAM ĐOAN .............................................................................................. i
LỜI CẢM ƠN ................................................................................................... ii
MỤC LỤC ........................................................................................................ iii
DANH MỤC CÁC HÌNH ................................................................................. v
MỞ ĐẦU ........................................................................................................... 1
CHƢƠNG 1: BÀI TOÁN TỐI ƢU ................................................................ 2
1.1. Giới thiệu bài toán tối ƣu tổng quát ....................................................... 2
1.2. Phân loại các bài toán tối ƣu .................................................................. 3
1.3 Ứng dụng của lý thuyết tối ƣu ................................................................ 4
1.4. Bài toán quy hoạch tuyến tính tổng quát ............................................... 6
1.5. Bài toán vận tải tuyến tính ..................................................................... 7
CHƢƠNG 2: GIẢI THUẬT DI TRUYỀN VÀ TÌM KIẾM TABU ......... 12
2.1. Giải thuật di truyền .............................................................................. 12
2.1.1. Giới thiệu ...................................................................................... 12

2.1.2. Các toán tử di truyền..................................................................... 15
2.1.2.1. Toán tử chọn lọc .................................................................... 16
2.1.2.2. Toán tử lai ghép ..................................................................... 17
2.1.2.3. Toán tử đột biến .................................................................... 18
2.1.3. Các bƣớc để áp dụng giải thuật di truyền cổ điển ......................... 19
2.1.4. Các nguyên lý trong giải thuật di truyền ...................................... 20
2.1.5. Ứng dụng giải thuật di truyền giải bài toán tối ƣu ....................... 22
2.2. Tìm kiếm tabu ...................................................................................... 26
2.2.1. Thuật toán tabu cổ điển ................................................................ 27
2.2.2. Cách sử dụng bộ nhớ trong tìm kiếm tabu ................................... 28
2.3. Kết hợp giải thuật di truyền và thuật toán Tabu ................................. 30


iv

CHƢƠNG 3: KẾT HỢP GIẢI THUẬT DI TRUYỀN VÀ TÌM KIẾM
TABU GIẢI BÀI TOÁN VẬN TẢI ............................................................. 34
3.1 Bài toán vận tải tuyến tính .................................................................... 34
3.2 Bài toán vận tải áp dụng giải thuật di truyền ........................................ 35
3.3 Bài toán vận tải áp dụng tìm kiếm Tabu ............................................... 49
3.4. Giải bài toán vận tải sử dụng thuật giải di truyền kết hợp với tìm
kiếm Tabu ................................................................................................... 54
3.5. Chƣơng trình thực nghiệm và so sánh kết quả thực nghiệm ............... 57
KẾT LUẬN .................................................................................................... 61
TÀI LIỆU THAM KHẢO ............................................................................ 62


v

DANH MỤC CÁC HÌNH

Hình 2.1. Sơ đồ của giải thuật di truyền ......................................................... 14
Hình 2.2. Đồ thị hàm f .................................................................................... 22
Hình 3.1. Các tham số của giải thuật di truyền ............................................... 48
Hình 3.2. Tham số giải thuật tìm kiếm Tabu .................................................. 51
Hình 3.3. Giá trị lời giải cho phần tử khởi tạo đầu tiên khi chạy lần 1 .......... 52
Hình 3.4. Tham số cho lần chạy đầu tiên và kết quả ...................................... 53
Hình 3.5. Kết quả với bài toán có dữ liệu đầu vào m = 7, n = 8 ..................... 59


1

MỞ ĐẦU

Giải thuật di truyền (GA) là một giải thuật tìm kiếm lời giải của bài toán
tối ƣu dựa trên sự mô phỏng quá trình tiến hóa của tự nhiên. Xuất phát từ một
quần thể (tập lời giải ban đầu), giải thuật tiến hành quá trình tiến hóa dựa trên
ba toán tử di truyền là lai ghép (crossover), đột biến (mutation) và chọn lọc
(selection) nhằm tạo ra thế hệ mới ”tốt hơn” thế hệ trƣớc đó.
Tìm kiếm Tabu (TS) là một kỹ thuật tìm kiếm dựa trên quy định về luật
cấm kết hợp đối với các cá thể có ”quan hệ gần” nhằm tránh suy thoái và tăng
tính đa dạng của quần thể.
Mục đích của đề tài này là nghiên cứu kết hợp GA và TS nhằm nâng cao
hiệu suất tính toán giải bài toán tối ƣu và ứng dụng cho một bài toán cụ thể là
bài toán vận tải tuyến tính.
Nội dung luận văn đƣợc chia làm 3 chƣơng ngoài phần Mở đầu và Kết luận.
Chƣơng 1: Bài toán tối ƣu.
Chƣơng này trình bày khái quát về các vấn đề liên quan tới các bài toán
tối ƣu đồng thời mô tả rõ bài toán vận tải.
Chƣơng 2: Giải thuật di truyền và tìm kiếm Tabu.
Nội dung chƣơng này là những nghiên cứu về giải thuật di truyền và tìm

kiếm Tabu làm cơ sở cho chƣơng 3.
Chƣơng 3: Kết hợp Giải thuật di truyền và tìm kiếm Tabu giải bài toán
vận tải.
Chƣơng này trình bày giải pháp kết hợp Giải thuật di truyền và tìm kiếm
Tabu giải bài toán vận tải đồng thời lập trình thử nghiệm trên các bài toán cụ thể.


2

CHƢƠNG 1
BÀI TOÁN TỐI ƢU
Chương này sẽ giới thiệu tổng quan về bài toán tối ưu, bài toansquy
hoạch tuyến tính tổng quát, bài toán vận tải tuyến tính. Trình bày thuật toán
thế vị giải bài toán vận tải bằng thuật và đưa ra kết quả. Các khái niệm và kết
quả trong chương này được tham khảo trong [3], [5].
1.1. Giới thiệu bài toán tối ƣu tổng quát
Lý thuyết tối ƣu là một trong lĩnh vực kinh điển của toán học có nhiều
ảnh hƣởng đến nhiều lĩnh vực khoa học công nghệ, kinh tế xã hội.
Một phƣơng án tối ƣu là một phƣơng án khả thi và tốt nhất, tức là
phƣơng án làm cho hàm mục tiêu đạt kết quả min (max) và phải thỏa mãn các
điều kiện yêu cầu của bài toán (thỏa mãn các điều kiện ràng buộc).
Trong mô hình toán học, mục tiêu của bài toán đƣợc biểu diễn bởi hàm:
f(x)  min(max)
với x là một biến hoặc vecto biến x = (x1, x2, …. , xn)
Biến x hoặc vectơ biến x = (x1, x2, …. , xn) thƣờng có yêu cầu phải thỏa
mãn một số điều kiện nào đó. Tập hợp các điều kiện của các biến thì đƣợc gọi là
điều kiện ràng buộc và đƣợc biểu diễn bởi miền D (miền ràng buộc).
Dạng tổng quát của bài toán tối ƣu:
Làm cực tiểu/cực đại một hàm mục tiêu:
f(x) min(max) (1)

Thỏa mãn các điều kiện ràng buộc:

x  D (2)

Yêu cầu:
Tìm x để thỏa mãn (2) và làm cực tiểu/ cực đại hàm mục tiêu (1) x*
(một bộ các giá trị cụ thể của (x1, x2, …. , xn)) , thỏa mãn điều kiện (1) & (2)


3

gọi là phƣơng án tối ƣu. Nếu x chỉ thỏa mãn điều kiện (2) gọi x là phƣơng án
chấp nhận đƣợc hay phƣơng án.
Ví dụ:
Tìm x sao cho : f(x) = x3 - 3x + 1  max (3)
Với: x  D = [-2,2; 1,8] (4)
Với  x  [-2,2; 1,8] là một phƣơng án  -2,2  x  1,8
- Bài toán tƣơng đƣơng bài toán tìm giá trị lớn nhất (GTLN) của f(x) khi
-2,2  x  1,8
Phƣơng pháp tìm GTLN (đã học trong giải tích 1) thực hiện nhƣ sau:
- Tìm các cực trị của f(x) , tính các giá trị cực trị, tính các giá trị tại các đầu
mút của miền D, sau đó so sánh để tìm ra giá trị lớn nhất (hay nhỏ nhất).
→ Tìm các điểm dừng f(x) = 0. Tính f(x) tại các điểm dừng
Tìm f(-2,2) ; f(1,8)
Vậy f(x) = 3x2 – 3 = 0  x =  1
f(1) = -1
f(-1) = 3
f(-2,2) = -3,048
f(1,8) = 1,432
Do đó f(x) max = 3 khi x* = -1

1.2. Phân loại các bài toán tối ƣu
Các bài toán tối ƣu chính là các bài toán qui hoạch toán học
- Bài toán tối ƣu tuyến tính: hàm mục tiêu và tất cả các ràng buộc đều có dạng
tuyến tính.


4

- Bài toán tối ƣu phi tuyến: trong đó hàm mục tiêu hoặc ít nhất một điều kiện
ràng buộc là phi tuyến (có chứa ít nhất một yếu tố phi tuyến bậc 2, logic,
mũ…).
- Bài toán tối ƣu rời rạc: khi biến hoặc giá trị hàm mục tiêu là rời rạc. Có thể
chia nhƣ sau:
Tối ƣu nguyên (quy hoạch nguyên): các biến hoặc các hàm mục tiêu
nhận các giá trị nguyên.
Tối ƣu đồ thị: là một dạng đặc biệt của bài toán tối ƣu rời rạc. Có các
đỉnh là các điểm rời rạc.
Kí hiệu: X = {A, B, C, D}. Tập cạnh E = {e1, e2, e3, …. en} hoặc D =
{(A,D); (A,B); …}. Tìm đƣờng đi ngắn nhất của đồ thị thỏa mãn điều kiện
nào đó.
- Bài toán quy hoạch động (những kết quả của bài toán ở bƣớc sau thì phụ
thuộc vào kết quả của bƣớc trƣớc).

- Bài toán tối ƣu đa mục tiêu: là bài toán trong đó có nhiều hàm mục tiêu cần
phải tối ƣu trên cùng một miền ràng buộc.
fi(x)  min(max), i = 1,2,3,….,n với x  D
Trong đó có nhiều hàm mục tiêu có thể đối lập nhau. Khi giải bài toán này
phải kết hợp hài hòa các lợi ích (giá trị) đạt đƣợc của hàm mục tiêu.
1.3 Ứng dụng của lý thuyết tối ƣu
Nhiều vấn đề thực tế, kinh tế, khoa học và xã hội đều có thể giải quyết

bằng phƣơng pháp tối ƣu toán học. Quan trọng là từ thực tế phải xây dựng


5

một mô hình toán học thích hợp. Từ đó sử dụng phƣơng pháp tối ƣu để giải
cùng với công cụ thích hợp.
Các bƣớc cần thiết khi áp dụng phƣơng pháp mô hình hóa:
Bƣớc 1: Khảo sát vấn đề thực tế, phát hiện vấn đề cần giải quyết bằng
phƣơng pháp tối ƣu.
Bƣớc 2: Phát biếu các điều kiện ràng buộc và hàm mục tiêu dƣới dạng định tính.
Bƣớc 3: Lựa chọn các biến quy định và sau đó định lƣợng hóa các điều kiện
ràng buộc và hàm mục tiêu. Từ đó xây dựng mô hình định lƣợng và mô hình
toán học (mô hình tối ƣu).
Bƣớc 4: Thu thập số liệu và lựa chọn phƣơng pháp toán học thích hợp để
giải mô hình.
Bƣớc 5: Xây dựng thuật toán và quy trình giải. Lựa chọn công cụ (giấy bút,
máy tính) có thể lập trình cho bài toán ấy.
Bƣớc 6: Đánh giá kết quả thu đƣợc. Nếu phù hợp thực tế nó cho kết quả tối ƣu
khi đó chứng tỏ mô hình chúng ta xây dựng đúng, hợp lý, vì vậy chấp nhận kết
quả. Nếu không phù hợp thực tế thì phải xem xét và điều chỉnh mô hình.
Kết luận: Cần có sự hợp tác của các chuyên gia chuyên ngành (chẳng hạn kỹ
thuật điện, điệntử…), chuyên gia về tin học, toán học để giải quyết các bài
toán thực tế.
Một số thuật ngữ trong quá trình xây dựng mô hình:
-

Toán ứng dụng (Applied Mathematic)

-


Vận trù học (Operation Research – OR)

-

Khoa học quản lý (Management Science – MS)


6

-

Ứng dụng máy tính (Computer Application)

-

Mô hình tối ƣu (Optimization models)

-

Quy hoạch (Programming)

1.4. Bài toán quy hoạch tuyến tính tổng quát
Bài toán quy hoạch tuyến tính (QHTT) tổng quát có dạng :
- Tìm cực đại (cực tiểu) của hàm:
Z = C1 x1 + C2 x2 +... + Cn xn  max / min

(5)

thỏa mãn các điều kiện ràng buộc:

a11x1 + a12x2 + … + a1nxn ≤ b1
…………………….
ai1x1 + ai2x2 + … + ainxn ≥ bi
…………………….

(6)

aj1x1 + aj2x2 + … + ajnxn = bj
…………………….
am1x1 + am2x2 + … + amnxn = bm
x+,x+,…x+ ≥ 0 với k ≤ n
Trong đó:
Z = f(X) gọi là hàm mục tiêu của bài toán, X = (x1, x2,…, xn ) là vecto n
thành phần (một bộ n giá trị hay còn gọi là một điểm trong không gian n
chiều).
Cj: Các hệ số của hàm mục tiêu (j = 1, 2, …, n)
Hệ điều kiện (6) gọi là hệ ràng buộc, trong đó một số điều kiện ràng
buộc dạng bất đẳng thức ( < ), một số ràng buộc dạng bất đẳng thức ( > ), một
số ràng buộc dạng đẳng thức (=). Các biến quyết định (có thể không phải là
tất cả) có điều kiện không âm. Miền D xác định bởi hệ ràng buộc gọi là miền
ràng buộc.


7

Ma trận của hệ ràng buộc có dạng:
a11 a12 … a1n
a21 a22 … a2n
…………….
am1 am2 … amn

Một phƣơng án (hay phƣơng án khả thi) là một vectơ X = (x1, x2,…, xn ) thỏa
mãn hệ ràng buộc (6). Rõ ràng mọi điểm (x1, x2,…, xn ) thuộc miền ràng buôc
D đều là một phƣơng án, vì vậy miền D còn gọi là tập phƣơng án.
Phƣơng án tối ƣu (optimal solution) là một phƣơng án, mà giá trị hàm
mục tiêu tại đó đạt cực đại (hay cục tiểu). Phƣơng án tối ƣu thƣờng đƣợc ký
hiệu là X* hay X-opt.
1.5. Bài toán vận tải tuyến tính
Nội dung bài toán
Giả sử cần vận chuyển một loại hàng thuần nhất (vật tƣ, lƣơng thực…)
từ m địa điểm cung cấp (điểm phát) A1, A2…Am đến n địa điểm tiêu thụ (điểm
thu) B1, B2…Bn biết rằng:
- Số lƣợng hàng có ở Ai là ai (i = 1..m)
- Số lƣợng hàng cần ở Bj là bj (j = 1..n)
- ∑ai = ∑bj (tổng số lƣợng hàng ở các điểm cung cấp bằng tổng số hàng tại
các điểm tiêu thụ).
- Chi phí vận chuyển một đơn vị hàng từ Ai đến Bj là cij (i = 1..m, j = 1..n).
Vấn đề đặt ra: Lập kế hoạch vận chuyển hàng từ các địa điểm cung cấp
đến các địa điểm tiêu thụ sao cho tổng chi phí vận chuyển là nhỏ nhất và thỏa
mãn nhu cầu thu phát. Bài toán vận tải là tuyến tính nếu chi phí tỉ lệ với số
lƣợng hàng vận tải.


8

Mô hình toán học của bài toán
Gọi xij là số lƣợng hàng cần vận chuyển từ Ai đến Bj.
Ta có:
m

n


i 1

j 1

 c
m

x
i 1

ij

xij : tổng chi phí vận chuyển

ij

: số lƣợng hàng chở đi từ Ai . i = 1..m.

ij

:số lƣợng hàng chở tới từ Bj . j = 1.. n.

n

x
j 1

Vậy mô hình toán học của bài toán là:
m


f(x) = 
i 1
n

n

c
j 1

ij

xij → min (cực tiểu tổng chi phí) với các điều kiện:

 xij = bi ;
j 1

m

x
i 1

ij

= aj

(xij > 0, i = i..m, j = 1..n)

Với mô hình toán học của bài toán trên áp dụng phƣơng pháp thế vị để
tìm ra kết quả tối ƣu.

Phương pháp thế vị:
Phƣơng án cực biên: x = {xij} là phƣơng án cực biên khi và chỉ khi tập
hợp các ô (i, j) tƣơng ứng với các thành phần dƣơng của phƣơng án không tạo
thành vòng. Một phƣơng án cực biên có tối đa m + n – 1 thành phần dƣơng.
Tập hợp m + n – 1 ô không tạo thành vòng bao hàm tập ô tƣơng ứng với các
thành phần dƣơng của phƣơng án cực biên x (xij > 0) gọi là tập ô cơ sở nó, ký
hiệu là S. Ô (i, j) ∈ S gọi là ô cơ sở, (i, j) ∉ S gọi là ô phi cơ sở. Một ô phi cơ
sở bất kỳ bao giờ cũng tạo thành một vòng duy nhất với các ô cơ sở. Một
phƣơng án cực biên không suy biến chỉ có một tập ô cơ sở duy nhất, đó chính
là tập ô tƣơng ứng với các thành phần dƣơng của phƣơng án. Một phƣơng án


9

cực biên suy biến có nhiều tập ô cơ sở khác nhau, phần chung của chúng là
tập ô ứng với các thành phần dƣơng.
Xây dựng phƣơng án cực biên Khi xác định đƣợc xij = α , ta nói là đã
phân phối cho ô (i, j) một lƣợng hàng là α. Nguyên tắc phân phối tối đa: Lấy ô
(i, j) bất kỳ của bảng và phân phối cho nó một lƣợng hàng tối đa có thể, nghĩa
là đặt xij = min{ai ,bj}.
Ba trƣờng hợp có thể xảy ra:
xij = ai , yêu cầu của trạm phát thỏa mãn, loại hàng i ra khỏi bảng, đồng
thời sửa lại yêu cầu của trạm thu: b’j = bj
aixij = b , yêu cầu của trạm thu thỏa mãn, loại cột j ra khỏi bảng, đồng
thời sửa lại yêu cầu của trạm phát: a’i = ai
bjxij = ai = bj ,yêu cầu của cả trạm thu và phát đều thỏa mãn, loại đồng
thời hàng i và cột j ra khỏi bảng.
Quá trình tiếp tục cho tới khi yêu cầu của mọi trạm thu và phát đều thoả
mãn. Các ô đƣợc phân phối có xij > 0, đặt xij = 0 với những ô không đƣợc
phân phối. Khi đó sẽ thu đƣợc một phƣơng án cực biên của bài toán. Nếu số ô

đƣợc phân phối là m + n – 1 thì phƣơng án cực biên thu đƣợc là không suy
biến, tập ô đƣợc phân phối chính là tập ô cơ sở. Nếu số ô đƣợc phân phối nhỏ
hơn m + n – 1 thì phƣơng án cực biên tƣơng ứng là suy biến. Để có đƣợc một
tập ô cơ sở cần phải bổ sung, ô bổ sung có xij = 0 và không tạo thành vòng với
những ô cơ sở đã có, bổ sung cho tới khi đủ m + n – 1 ô. Với những ô bổ sung
khác nhau ta sẽ đƣợc các tập ô cơ sở
Phương pháp thế vị giải bài toán vận tải:
Điều kiện cần và đủ để phƣơng án x = {xij} của bài toán vận tải tối ƣu
là tồn tại một hệ thống số {ui, vj} thoả mãn:
a) vj – ui ≤ cij (∀i,j)


10

b) vj – ui = cij nếu xij > 0
ui, vj gọi là các thế vị hàng và cột.
Có thể xem ui là giá trị của một đơn vị hàng hoá ở nơi sản xuất Ai, còn
vj là giá trị của nó tại nơi tiêu thụ Bj.
Điều kiện b) có nghĩa là trong mọi phƣơng án vận chuyển tối ƣu nếu
hàng hoá đƣợc đƣa từ trạm phát Ai đến trạm thu Bj thì giá trị của nó tại nơi
tiêu thụ Bj phải bằng giá trị tại nơi cấp Ai cộng thêm chi phí vận chuyển cij.
Điều kiện a) có nghĩa là chênh lệch của giá trị hàng hoá giữa nơi tiêu
thụ và nơi sản xuất bất kỳ đều không vƣợt quá chi phí.
Thuật toán của phương pháp thế vị:
Giả sử đã biết một phƣơng án cực biên x với tập ô cơ sở S.
Bƣớc 1: Xây dựng hệ thống thế vị {ui , vj}:
Lấy một hàng i bất kỳ, cho nó một thế vị ui tùy ý. Các thế vị còn lại đƣợc xác
định theo quy tắc:
- Nếu hàng i đã có ui và (i, j)∈S thì thế vị của cột j đƣợc tính bởi: vj = ui + cij.
- Nếu cột j đã có vj và (i, j)∈S thì thế vị của hàng i đƣợc tính bởi: ui = vj − cij.

Quá trình tiếp tục cho tới khi xác định đƣợc toàn bộ hệ thống thế vị.
Bƣớc 2: Kiểm tra tiêu chuẩn tối ƣu:
Tính đại lƣợng ∆ịj = vj – ui – cij đối với các ô phi cơ sở ((i, j) ∉ S).
- Nếu ∆ịj ≤ 0, ∀(i, j)∉S thì phƣơng án tƣơng ứng là tối ƣu.
- Nếu tồn tại ∆ịj > 0, (ta gọi là các ô vi phạm) thì phải điều chỉnh phƣơng án.
Bƣớc 3: Điều chỉnh phƣơng án:
Giả sử max ∆ ij = ∆rk , ô (r, k) đƣợc lấy làm ô điều chỉnh. ∆ ij > 0 Tìm
vòng V tạo bởi ô điều chỉnh với các ô cơ sở. Trên vòng đánh dấu lẻ chẵn các
ô với ô điều chỉnh (r, k) là ô lẻ. Ký hiệu Vl , Vc tƣơng ứng là tập ô lẻ, chẵn
trên vòng. Xác định q = min { xij }, (i, j) ∈ Vc .


11

Thực hiện phép biến đổi trên vòng:
xij , (i, j ) ∉ V
xij = xij − q , (i, j ) ∈ Vc
xij + q , (i, j ) ∈ Vl
Kết quả của quá trình biến đổi ta đƣợc phƣơng án cực biên mới x’ tốt
hơn x. Sau điều chỉnh ô điều chỉnh trở thành ô cơ sở, ô ứng với q sẽ trở thành
ô phi cơ sở. Đối với x’ quay trở lại bƣớc 1, quá trình lặp lại sau một số hữu
hạn bƣớc sẽ tìm đƣợc phƣơng án cực biên tối ƣu.
Ví dụ:
Với bài toán vận tải đầu vào là số địa điểm cung cấp m = 3, số địa điểm
tiêu thụ là n = 4, số lƣợng cung cấp của địa điểm 1 là 170, số lƣợng cung cấp
của địa điểm 2 là 200, của địa điểm 3 là 180. Trong khi đó, số lƣợng tiêu thụ
của địa điểm 1 là 130, của địa điểm 2 là 160, của địa điểm 3 là 120 và địa
điểm 4 là 140.
Ma trận chi phí cij đƣợc cho bởi bảng sau:
20


18

22

25

15

25

30

15

45

30

40

35

Sau khi dùng phƣơng pháp thế vị ta thu đƣợc kết quả nhƣ sau
0

160

10


0

130

0

0

70

0

0

110

70

Tổng chi phí vận chuyển nhỏ nhất ở dây là: 12950


12

CHƢƠNG 2
GIẢI THUẬT DI TRUYỀN VÀ TÌM KIẾM TABU
Chương này sẽ giới thiệu tổng quan về giải thuật di truyền, tìm kiếm Tabu:
Các khái niệm, toán tử, mô hình tiến hóa,thuật toán Tabu cổ điển.. . Các khái
niệm trong chương này được tham khảo trong [1], [2], [4].
2.1. Giải thuật di truyền
2.1.1. Giới thiệu

Giải thuật di truyền cổ điển là các kỹ thuật tìm kiếm và tối ƣu hóa các
giải pháp cho vấn đề phỏng theo quá trình thích nghi tiến hóa của các
quần thể sinh học dựa trên học thuyết Darwin. GA là một giải thuật, mục
tiêu không nhằm đƣa ra lời giải chính xác tối ƣu mà là đƣa ra lời giải
tƣơng đối tối ƣu.
 Các thành phần của GA
Một thuật giải di truyền, giải một bài toán đƣợc cho phải có năm thành
phần sau:
- Một cấu trúc dữ liệu I biểu diễn không gian lời giải của bài toán.
- Phƣơng pháp khởi tạo quần thể ban đầu P(0).
- Hàm định nghĩa độ thích nghi eval() đóng vai trò môi trƣờng.
- Các phép toán di truyền: Lai ghép, đột biến, chọn lọc.
- Các tham số thuật giải di truyền sử dụng ( kích thƣớc quần thể, xác
suất lai, đột biến …)
- Điều kiện dừng của bài toán.
 Cấu trúc của GA


13

Trong GA các cá thể (hay còn gọi là các NST) đƣợc mã hóa bởi
các chuỗi nhị phân, mỗi vị trí trên chuỗi nhị phân chỉ nhận một trong hai giá
trị “0” hoặc “1”. Một NST trong GA có dạng nhƣ sau:
1011001001
GA cổ điển đƣợc J. H Holland giới thiệu để giải bài toán tối ƣu:
max {f (x)/x ∈A},
Trong đó A là một miền trong không gian n-chiều, f (x) > 0 với mọi x
∈ A.
Cấu trúc của GA cổ điển nhƣ sau:
Procedure Genetic_Algorithm;

Begin
t  0;
Khởi tạo P(t);
Tính độ thích nghi cho các cá thể thuộc P(t);
While ( điều kiện dừng chƣa thỏa ) do
t  t+1;
Tái sinh P’(t) từ P(t-1) ;
Lai Q(t) từ P(t-1) ;
Đột biến R(t) từ P(t-1) ;
Chọn lọc P(t) từ P(t-1)

Q(t)

R(t)

P’(t) ;

End ;
End;
Trong đó :
- t : vị trí của thế hệ.
- P(t) : Quần thể ban đầu/ quần thể sau khi chọn lọc.


14

- P’(t) : Quần thể đƣợc tái sinh từ thế hệ trƣớc.
- Q(t) : Quần thể đƣợc lai ghép từ thế hệ trƣớc.
- R(t) : Quần thể đƣợc đột biến từ thế hệ trƣớc.
Quá trình tiến hóa đƣợc diễn ra trong vòng lặp while, tại thế hệ thứ t,

t

t

t

giải thuật duy trì một tập lời giải P (t) = {x 1, …, x n}. Mỗi lời giải x i đƣợc
đánh giá “độ thích nghi”. Một tập lời giải mới đƣợc xây dựng bằng cách
“chọn lọc” các cá thể có độ thích nghi cao hơn, ta đƣợc một tập lời giải trung
gian. Tiếp theo, một số cá thể trong tập lời giải này đƣợc biến đổi bằng
phƣơng pháp “lai ghép và “đột biến” để tạo thành các lời giải mới cho thế
hệ t+1.
Sơ đồ sau minh họa hoạt động của giải thuật di truyền.
Khởi tạo quần
thể

Xác định độ
thích nghi của
từng cá thể

Kiểm tra điều
kiện dừng

Bắt đầu
Lai tạo

Đột biến

Chọn lọc


Xây dựng quần
thể mới

Hình 2.1: Sơ đồ tổng quan của giải thuật di truyền

Trình
bày lời


15

Điều kiện kết thúc:
Thoát ra quá trình tiến hóa quần thể, dựa vào bài toán mà có các cách
kết thúc vấn đề khác nhau một khi đạt đến mức yêu cầu. Điều kiện kết thúc
vòng lặp có thể là một số thế hệ đủ lớn nào đó, hoặc độ thích nghi của các cá
thể tốt nhất trong các thế hệ kế tiếp nhau khác nhau không đáng kể. Khi thuật
toán dừng, cá thể tốt nhất trong thế hệ cuối cùng đƣợc chọn làm nghiệm cần
tìm. Một vài trƣờng hợp thông thƣờng nhƣ sau:
- Kết thúc theo kết quả: một khi đạt đến mức giá trị yêu cầu thì chấm dứt ngay
quá trình thực hiện.
- Kết thúc dựa vào số thế hệ: chọn số thế hệ, quá trình sẽ dừng đúng ngay số
thế hệ đã qui định trƣớc, không cần biết kết quả nhƣ thế nào.
- Tính theo thời gian: không cần biết đã bao nhiêu thế hệ hay kết quả nào, chỉ
dựa vào số giờ qui định mà kết thúc.
- Tổ hợp: dùng nhiều phƣơng án khác nhau cho vấn đề, chẳng hạn nhƣ: chạy
theo số thế hệ xong sau đó đánh giá cho chạy theo kết quả, hoặc ngƣợc lại.
2.1.2. Các toán tử di truyền
Trong thuật giải di truyền, các cá thể mới liên tục đƣợc sinh ra trong
quá trình tiến hoá nhờ sự lai ghép ở thế hệ cha-mẹ. Một cá thể mới có thể
mang những tính trạng của cha-mẹ (di truyền), cũng có thể mang những tính

trạng hoàn toàn mới (đột biến). Di truyền và đột biến là hai cơ chế có vai trò
quan trọng nhƣ nhau trong tiến trình tiến hoá, dù rằng đột biến xảy ra với xác
xuất nhỏ hơn rất nhiều so với hiện tƣợng di truyền. Các thuật toán tiến hoá,
tuy có những điểm khác biệt, nhƣng đều mô phỏng ba toán tử cơ bản: Chọn
lọc, lai ghép, đột biến.


16

2.1.2.1. Toán tử chọn lọc
Toán tử chọn lọc là một quá trình loại bỏ các NST kém thích nghi
trong quần thể. Có các toán tử chọn lọc sau:
* Toán tử chọn lọc tỷ lệ: Đƣợc sử dụng thƣờng xuyên nhất trong GA.
Xác suất lựa chọn của mỗi cá thể tỷ lệ thuận với giá trị độ thích hợp của nó,
đƣợc tính theo công thức:
Pi = f (vi) /F
(i = 1..pop-size – kích cỡ của quần thể) gọi là xác suất chọn cho mỗi
nhiễm sắc thể vi.
Trong đó: f (vi) là hàm thích nghi của mỗi cá thể vi.
F là tổng của các giá trị thích nghi của quần thể.
Việc chọn lọc cá thể nào phụ thuộc vào vị trí xác suất q i của mỗi nhiễm
sắc thể vi đƣợc tính nhƣ sau: qi = ∑
Tiến trình chọn lọc đƣợc thực hiện bằng cách quay bánh xe Roulete
pop- size lần; mỗi lần chọn một nhiễm sắc thể từ quần thể hiện hành vào
quần thể mới theo cách sau:
- Phát sinh ngẫu nhiên một số r trong khoảng [0..1]
- Nếu r < qi thì chọn nhiễm sắc thể đầu tiên (vi ); ngƣợc lại thì chọn
nhiễm sắc thể thứ i , vi ( 2

) sao cho


Hiển nhiên, có thể sẽ có một só nhiễm sắc thể đƣợc chọn nhiều lần.
Điều này phù hợp với lý thuyết sơ đồ (Nguyễn Đình Thúc, [4]): các nhiễm
sắc thể tốt nhất có nhiều bản sao hơn, các nhiễm sắc thể trung bình không
thay đổi, các nhiễm sắc thể kém nhất thì chết đi.
* Toán tử chọn lọc cạnh tranh: Mỗi lần chọn lọc ta tiến hành chọn
ngẫu nhiên t cá thể từ quần thể hiện tại. Bản sao của cá thể tốt nhất trong t cá


17

thể kể trên đƣợc sao chép vào quần thể bố mẹ.Tiến hành N lần chọn nhƣ vậy
ta thu đƣợc quần thể bố mẹ. Giá trị t đƣợc gọi là kích cỡ cạnh tranh.
* Toán tử chọn lọc xếp hạng: Các cá thể của quần thể hiện tại đƣợc
sắp xếp theo thứ tự giảm dần của giá trị độ thích nghi. Cá thể tốt nhất đƣợc
xếp thứ nhất và cá thể tồi nhất xếp cuối cùng.
2.1.2.2. Toán tử lai ghép
Toán tử lai ghép là quá trình tạo NST mới trên cơ sở các NST cha mẹ bằng cách ghép một đoạn trên NST cha mẹ với nhau. Toán tử lai ghép
đƣợc gán với một xác suất pc. Quá trình đƣợc mô tả nhƣ sau:
- Chọn ngẫu nhiên một cặp NST (để làm cha mẹ) trong quần thể. Giả sử,
NST cha mẹ có cùng độ dài m.
- Tạo một số ngẫu nhiên trong khoảng từ 1 đến m - 1 (gọi là điểm lai
ghép). Điểm lai ghép chia NST cha mẹ thành hai chuỗi con có độ dài m1, m2.

Ví dụ
Cha: 101101100
Mẹ: 000011100
Thì việc trao đổi chéo các NST sau gen thứ 5 sẽ tạo ra hai con:
Con 1: 101111100
Con 2: 000001100

Có một số dạng toán tử lai ghép nhƣ:
* Lai ghép một điểm (One-point Crossover)
Lai ghép một điểm là loại lai ghép đơn giản nhất, đƣợc sử dụng cả
trong GA mã hoá nhị phân lẫn GA mã hoá số thực. Với cặp cha mẹ X, Y
là các vectơ m chiều, toán tử lai ghép 1 điểm chọn ngẫu nhiên một vị trí k (1
k

m) rồi sinh ra 2 cá thể con theo công thức.


18

X’ = (x1,..., xk, yk+1,..., ym )
Y’ = (y1,..., yk, xk+1,..., xm )
* Lai ghép đa điểm (Multi-point Crossover)
Toán tử lai ghép đa điểm đƣợc mô tả nhƣ sau:
Chọn ngẫu nhiên k điểm j1,..., jk (1 <= j1 < j2 <... < jk < m), lai
ghép đa điểm tạo ra cặp con (X', Y') bằng cách đánh số các đoạn [jt, jt+1] từ
0 trở đi, sau đó.
x'i lấy bằng xi tại những đoạn có số hiệu chẵn và bằng yi tại những
đoạn có số hiệu lẻ.
y'i lấy bằng xi tại những đoạn có số hiệu lẻ và bằng yi tại những
đoạn có số hiệu chẵn.
* Lai ghép đều hay lai ghép mặt nạ (Uniform Crossover)
Trong lai ghép đều, ta chọn ngẫu nhiên k vị trí 1 < i1 < i2 <... < ik < m.
Các cá thể con X', Y' đƣợc lập nhƣ sau:
{





{




2.1.2.3. Toán tử đột biến
Đột biến là hiện tƣợng NST con mang một số đặc tính không có
trong mã di truyền của cha-mẹ. Toán tử đột biến đƣợc gán xác suất pm
(nhỏ hơn nhiều so với xuất suất lai ghép pc). Điều này đƣợc suy diễn bởi
trong tự nhiên, đột biến gen thƣờng rất ít xảy ra. Phép đột biến đƣợc mô tả
nhƣ sau:
- Chọn ngẫu nhiên một NST trong quần thể.
- Tạo một số ngẫu nhiên k trong khoảng từ 1 tới m, 1 ≤ k ≤ m.


×