Download as pdf or txt
Download as pdf or txt
You are on page 1of 58

1

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


TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TT & TT

ĐÀO NGỌC TUẤT

KẾT HỢP GIẢI THUẬT DI TRUYỀN VÀ LOGIC MỜ


GIẢI BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU

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

Thái Nguyên, tháng 10 - 2012

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
2

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


TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TT& TT

ĐÀO NGỌC TUẤT

KẾT HỢP GIẢI THUẬT DI TRUYỀN VÀ LOGIC


MỜ
GIẢI BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 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, tháng 10 -2012

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Ở ĐẦU
Nhiều bài toán tối ưu trong thực tế là bài toán tối ưu đa mục tiêu, đặc biệt
là trong thiết kế. Chẳng hạn người ta muốn thiết kế sản phẩm sao cho chi phí
thấp, tiết kiệm nguyên liệu nhưng chất lượng tốt, hoặc thiết kế một bể chứa
nước với yêu cầu dung lượng lớn mà chi phí thấp…. Đã có nhiều nhà toán học
và tin học đã nghiên cứu về vấn đề này và đưa ra nhiều phương pháp giải khác
nhau. Một số những phương pháp thường được sử dụng để giải bài toán đa
mục tiêu như: phương pháp nhượng bộ dần, phương pháp tìm nghiệm có
khoảng cách ngắn nhất đến nghiệm lý tưởng, phương pháp trọng số,….
Được sự đồng ý của Hội đồng Khoa học khoa Công Nghệ Thông Tin,
cùng sự hướng dẫn của thầy giáo Vũ Mạnh Xuân, em chọn đề tài khóa
luận của mình nhằm nghiên cứu một phương pháp tiếp cận khác để giải
bài toán tối ưu đa mục tiêu là sử dụng giải thuật di truyền kết hợp logic
mờ.
Mục đích nghiên cứu: tìm hiểu một số phương pháp giải bài toán tối ưu
đa mục tiêu, giải thuật di truyền và logic mờ, trên cơ sở đó sử dụng giải thuật
di truyền kết hợp với logic mờ để giải bài toán tối ưu đa mục tiêu.
Nội dung của đề tài: gồm 3 chương
1) Chương 1. Giải thuật di truyền
2) Chương 2. Logic mờ
3) Chương 3. Kết hợp giải thuật di truyền và logic mờ giải bài toán tối ưu
đa mục tiêu
Để tiến hành nghiên cứu đề tài này, em đã sử dụng phối hợp một số
phương pháp như: phương pháp nghiên cứu tài liệu (nghiên cứu tài liệu về các
giải thuật di truyền, bài toán tối ưu đa mục tiêu, logic mờ, ngôn ngữ lập trình
matlab 7.0); phương pháp lấy ý kiến chuyên gia (giáo viên hướng dẫn, tham
khảo trên mạng).
Khi thực hiện đề tài này, bước đầu em đã tìm hiểu được một số phương
pháp giải bài toán tối ưu đa mục tiêu, một số vấn đề về giải thuật di truyền, logic
mờ. Kết quả là đã đề xuất một kỹ thuật kết hợp giải thuật di truyền với logic mờ
để giải bài toán tối ưu đa mục tiêu và đã lập trình thử nghiệm trên một số bài toán
cụ thể.

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
4

Chương 1: GIẢI THUẬT DI TRUYỀN


Chương này giới thiệu những vấn đề khái quát về giải thuật di truyền
(GA) làm cơ sở cho việc ứng dụng giải bài toán tối ưu đa mục tiêu.[2], [6]
1.1. Khái quát chung
Giải thuật di truyền GA(GENETIC ALGORITHM) do D.E. Goldberg
đề xuất, sau đó được L. Davis và Z. Michalevicz phát triển, đây cũng chính là
một trong các thuật toán tiến hóa. Thuật toán tiến hóa là các chương trình máy
tính có dùng các thuật toán tìm kiếm, tối ưu hóa dựa trên nguyên lý tiến hóa
tự nhiên.
Giải thuật di truyền được hình thành dựa trên quan niệm: quá
trình tiến hóa tự nhiên là quá trình hoàn hảo và hợp lý nhất, tự quá trình này
đã mang tính tối ưu. Quan niệm này là một tiên đề đúng, không chứng minh
được nhưng phù hợp với thực tế khách quan. Tính tối ưu của quá trình tiến
hóa thể hiện ở đặc điểm, thế hệ sau bao giờ cũng tốt hơn (phát triển hơn, hoàn
thiện hơn) thế hệ trước. Tiến hóa tự nhiên được duy trì nhờ hai quá trình cơ
bản là sinh sản và chọn lọc tự nhiên, trong suốt quá trình tiến hóa tự nhiên,
các thế hệ mới luôn được sinh ra để bổ sung thay thế thế hệ cũ. Cá thể nào
phát triển hơn, thích ứng hơn với môi trường sẽ tồn tại, cá thể nào không thích
ứng được với môi trường sẽ bị đào thải. Sự thay đổi của môi trường là động
lực thúc đẩy quá trình tiến hóa, ngược lại tiến hóa cũng tác động trở lại góp
phần thay đổi môi trường.
Giải thuật di truyền (GA-Genetic Algorithms) là giải thuật tìm kiếm,
chọn lựa các giải pháp tối ưu để giải quyết các bài toán thực tế khác nhau, dựa
trên cơ chế chọn lọc của tự nhiên: từ tập lời giải ban đầu, thông qua nhiều
bước tiến hoá, hình thành tập lời giải mới phù hợp hơn, và cuối cùng dẫn đến
lời giải tối ưu toàn cục.
Trong tự nhiên, mỗi cá thể muốn tồn tại và phát triển phải thích nghi

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
5

với môi trường, cá thể nào thích nghi hơn thì tồn tại, cá thể nào kém thích
nghi thì bị tiêu diệt. Trong mỗi cá thể, các gen liên kết với nhau theo cấu trúc
dạng chuỗi, gọi là nhiễm sắc thể (NST). Mỗi NST đặc trưng cho mỗi loài và
quyết định sự sống còn của cá thể đó. Do môi trường tự nhiên luôn biến đổi
nên cấu trúc NST cũng thay đổi để thích nghi với môi trường và thế hệ sau
luôn thích nghi hơn thế hệ trước. Cấu trúc này có được do sự trao đổi thông
tin có tính ngẫu nhiên với môi trường bên ngoài hoặc giữa các NST với nhau.
1.2. Các vấn đề cơ bản của giải thuật di truyền
1.2.1. Mã hóa

Việc mô tả di truyền cho lời giải cho bài toán gồm hai phần cơ bản:

+ Xây dựng cấu trúc gen cho mỗi lời giải của bài toán để từ mỗi lời giải ta có
thể mã hoá thành một NST (chuỗi các gen).

+ Giải mã các NST để nhận được lời giải.

Đây là vấn đề cần giải quyết trước khi giải bài toán với GA. Tuỳ thuộc vào
nội dung của mỗi bài toán mà ta có cách mã hoá khác nhau.

Sau đây là phương pháp mã hoá hay được sử dụng:

Mã hoá dạng chuỗi nhị phân: đây là phương pháp thông dụng và cơ bản nhất
được sử dụng ngay từ bước ban đầu khi nghiên cứu GA. Trong phương pháp
này mỗi NST là một chuỗi các bit 0 và 1.

Mã hoá thứ tự: được sử dụng trong bài toán có sắp xếp thứ tự. Ở đây mỗi
NST là một chuỗi các số nguyên thể hiện thứ tự phân bố lời giải của bài toán.

Mã hoá theo giá trị: được sử dụng trong các bài toán mà mỗi lời giải là tập các
giá trị (ví dụ tập số thực). Trong phương pháp này, mỗi NST là một chuỗi các
giá trị có mối quan hệ tương ứng với bài toán.

Mã hoá dạng cây: được sử dụng chủ yếu trong các biểu thức toán học, trong
phương pháp mã hoá này mỗi NST là một cây của một nhóm đối tượng nà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
6

Ví dụ: Biểu thức sau x+(y / 5) được mã hoá thành:

x /

y 5

Mã hoá số thực : Mỗi NST được mã hoá là một véc tơ trong không gian R m
chẳng hạn X = (a1, a2, ..., am) với các ai  R. Cách mã hoá này thường tự nhiên
đối với các bài toán tối ưu số và được phát triển rất mạnh trong thời gian gần
đây.

1.2.2. Tạo lập lời giải ban đầu (khởi tạo quần thể)

Tập lời giải ban đầu thường được khởi tạo ngẫu nhiên từ miền xác định của
các lời giải. Cách tạo lập tập lời giải ban đầu phụ thuộc rất nhiều vào cách mã
hoá NST.

Với phương pháp mã hoá nhị phân: xây dựng NST bằng cách tạo ngẫu nhiên
chuỗi các bit 0 hoặc 1.

Với phương pháp mã hoá thứ tự: xây dựng NST ban đầu bằng cách hoán vị
ngẫu nhiên các thứ tự.

Với phương pháp mã hoá theo giá trị: tạo ngẫu nhiên từng giá trị trong miền
xác định của lời giải để tạo ra chuỗi NST ban đầu.

Với mã hoá số thực: tạo ngẫu nhiên N véc tơ thực trong Rm.

1.2.3. Xây dựng hàm phù hợp

Hàm phù hợp đánh giá khả năng phù hợp của tập lời giải theo yêu cầu bài
toán. Hàm này được xây dựng cho từng bài toán với yêu cầu cụ thể. Thông
thường trong các bài toán tối ưu hàm này chính là hàm mục tiêu của bài toán.

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

a. Toán tử chọn lọ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
7

Trong quá trình thực hiện của giải thuật di truyền, sau mỗi lần tiến hoá ta chỉ
giữ lại các cá thể có độ phù hợp cao còn các cá thể phù hợp thấp bị loại bỏ.
Toán tử chọn lọc thường giữ lại 50% các cá thể phù hợp nhất. Tuy nhiên
người ta cũng phát triển nhiều sơ đồ chọn khác nhau nhằm là tăng tính đa dạng
của quần thể, tránh sự hội tụ sớm.

b. Toán tử lai ghép là toán tử di truyền cơ bản trong GA, tiến trình lai ghép
như sau :

Bước 1: Tạo ra tập NST để tạo sinh từ quần thể bằng cách chọn ngẫu nhiên N
NST từ M NST (M là kích cỡ quần thể).

Có nhiều cách chọn:

Chọn ngẫu nhiên theo thứ tự: lặp N lần việc tạo ngẫu nhiên ra một số nguyên i
thuộc khoảng [1, M] để chọn NST thứ i.

Chọn theo trọng số: tạo trọng số tích luỹ cho M NST theo công thức:

i
pi  (với bài toán tìm min)
k 1 k
M

M  i 1
pi  (với bài toán tìm max)

M
k 1
k

Sau khi có trọng số tích luỹ cho NST, ta lần lượt tạo các xác suất ngẫu nhiên r
và duyệt từ NST đầu tiên đến khi gặp NST có trọng số tích luỹ lớn hơn r thì
chọn nó.

Bước 2: Sau khi chọn được N NST, lần lượt lấy ra từng cặp NST để lai ghép
tạo ra hai NST mới. Một số dạng toán tử lai ghép hay dùng là :

Lai ghép 1 điểm: chọn ngẫu nhiên một vị trí sau đó hoán vị phần đứng sau vị
trí vừa chọn giữa hai NST cha và mẹ để nhận được hai NST con.

Lai ghép hai điểm: chọn ngẫu nhiên hai vị trí trong một NST, sau đó hoán vị
các giá trị đứng giữa hai điểm đã chọn của hai NST cha mẹ để nhận được hai
NST con.

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

Lai ghép mặt nạ: tạo một mặt nạ ngẫu nhiên có số bit bằng chiều dài của NST.
Ta sẽ hoán vị các giá trị của hai NST cha và mẹ ở những vị trí tương ứng với
vị trí bit 1 của mặt nạ.

c. Toán tử đột biến: Toán tử đột biến được xây dựng để tránh việc nhận được
giá trị tối ưu cục bộ. Đột biến gây ra thay đổi ngẫu nhiên trên từng bit của
NST để tạo ra một NST mới.

d. Tạo sinh: Chọn các cá thể từ quần thể hiện thời làm quần thể mới cho lần
lặp kế tiếp.

1.3. Thuật toán di truyền


Giải thuật di truyền giải một bài toán cần có các thành phần sau:
1. Một cấu trúc dữ liệu biểu diễn không gian lời giải của bài toán
2. Cách khởi tạo quần thể ban đầu
3. Hàm định nghĩa độ thích nghi eval(), đóng vai trò môi trường
4. Các phép toán di truyền ( phép lai, phép đột biến, phép tái sinh và phép
chọn)
5. Các tham số được giải thuật di truyền sử dụng (kích thước quần thể,
xác suất lai, đột biến...)
Sơ đồ cấu trúc giải thuật di truyền tổng quát như sau:
Begin
1. t:=0; Khởi tạo P(t);
2. Tính độ thích nghi cho các cá thể thuộc P(t);
3. Khi (điều kiện dừng chưa thỏa mãn) lặp
t:=t+1;
Tái sinh P‟(t) từ P(t)
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)
Kết thúc lặp
Cá thể tốt nhất P(t) là lời giải cần tìm
End.

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

1.4. Giải thuật di truyền mã hóa số thực


1.4.1. Mã hóa RCGA
Trong phần này ta quan tâm tới giải thuật di truyền mã hóa số thực
(RCGA) để giải các bài toán tối ưu giá trị thực trong không gian R n và không
có các ràng buộc đặc biệt.
Một cách tổng quát, bài toán tối ưu số thực có thể xem là một cặp (S,f),
trong đó S  Rn và f : S  R là một hàm n biến. Bài toán đặt ra là tìm véctơ
x=(x1,x2,... , xn)  S sao cho f(x) đạt giá trị cực tiểu trên S. Nghĩa là với mọi
yS phải có f(x)  f(y). Hàm f ở đây có thể không liên tục nhưng cần bị chặn
trên S (đối với các bài toán tìm cực đại có thể chuyển về cực tiểu một cách
đơn giản).
Trong GA mã hoá số thực, mỗi cá thể được biểu diễn như một véc tơ
thực n chiều: b = (x1 , x2, ... , xn), xi  R.
Như vậy một quần thể kích cỡ m là một tập hợp có m véctơ trong R n. Ta
cũng có thể xem một quần thể kích cỡ m như một ma trận thực cấp (mxn), đây
là cách mã hoá tự nhiên và thuận tiện trong việc thực hiện các toán tử tiến hóa.
Sau đây ta sẽ xem xét cụ thể hơn các toán tử này trong giải thuật di truyền mã
hoá số thực.
1.4.2. Các toán tử của RCGA
a. Toán tử lai ghép
GA mã hoá số thực cũng áp dụng các toán tử lai ghép như GA cổ điển
bao gồm lai ghép 1 điểm, lai ghép nhiều điểm, lai ghép mặt nạ. Ngoài ra, do
cách mã hóa quần thể, người ta còn nghiên cứu và đề xuất nhiều dạng khác
nhau của toán tử lai ghép trong RCGA. Dưới đây là một số dạng toán tử lai
ghép thường dùng với giả thiết cặp cá thể cha mẹ đã chọn để tiến hành lai
ghép là X  ( x1 , x 2 ,..., x m ) và Y  ( y1 , y 2 ,..., y m ) .

 Lai số học (Arithmetic Crossover)

Phép lai này chọn một số thực a (0<a<1); các con X' và Y' được tính bởi:

x'i = a*xi + (1-a)*yi ;

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

y'i = a*yi + (1-a)*xi

 Lai ghép Heuristic

Giả sử với cặp bố mẹ (X, Y) đã chọn, trong đó cá thể X có độ thích nghi


(giá trị hàm mục tiêu) tốt hơn cá thể Y thì toán tử này tạo một con duy nhất X'
từ cặp X, Y bởi:

x'i = *(xi - yi) + xi với 0<<1


b. Toán tử đột biến
Toán tử đột biến trong RCGA được giới thiệu đa dạng hơn trong GA cổ
điển. Sau đây sẽ giới thiệu một số dạng điển hình:
Đột biến đều: Với một gen i được chọn ngẫu nhiên để đột biến từ cá thể
b  ( x1 , x 2 ,..., x N ) , thành phần x i được thay thế bởi một số ngẫu nhiên trong

khoảng xác định l i , u i  của x i .


Đột biến biên: Từ cá thể cha đã chọn đột biến x và vị trí chọn đột biến k,
thành phần thứ k (xk) của x được thay bởi lk hay uk trong đó [lk , uk] là khoảng
xác định của xk. Trong những bài toán mà biên của các biến không lớn và giải
pháp cần tìm nằm gần biên thì phép đột biến này tỏ ra rất hữu ích.
Đột biến không đều:
Giả sử tmax là một số cực đại định nghĩa trước, thành phần xi được thay
thế bởi một trong 2 giá trị tính theo các công thức sau :
x‟i = xi + (t, bi – xi) x”i = xi - (t, xi – ai)
Việc chọn giá trị nào được tiến hành tuỳ theo giá trị ngẫu nhiên khởi
tạo với xác suất 1/2. Biến ngẫu nhiên (t, x) xác định một bước đột biến trong
khoảng [0, x] theo công thức sau :
(1 t )
(t, x )  x.(1   ) tmax

Trong công thức này,  thường là số ngẫu nhiên phân bố đều trong
khoảng đơn vị. Tham số  xác định ảnh hưởng của lần tạo sinh thứ t trên phân
bố của đột biến trong miền [0, x].
1.5. Mô hình Markov của giải thuật di truyề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
11

Trong giải thuật di truyền, mỗi quần thể được tạo sinh có đặc trưng là
chỉ phụ thuộc theo xác suất vào quần thể trước đó, do vậy GA có thể được mô
hình hóa bởi một xích Markov. Các tính chất của quần thể hữu hạn, chẳng hạn
như xu hướng di truyền có thể được khảo sát cẩn thận sử dụng xích Markov
hữu hạn. Không giống như nhiều phương pháp mô phỏng khác, xích Markov
có thể mô tả chính xác và chi tiết cho mỗi lớp đặc biệt. Từ năm 1992, Nix và
Vose đã mô hình hóa GA kinh điển (biểu diễn chuỗi nhị phân chiều dài cố
định, lai ghép một điểm, chọn lọc tỷ lệ) như một xích Markov trong đó mỗi
trạng thái là một quần thể. Vose đã mở rộng mô hình này đến mô hình “tìm
kiếm ngẫu nhiên Heuristic” trong đó mỗi cá thể của lần tạo sinh kế tiếp được
chọn theo một phân bố xác suất trên các cá thể của không gian tìm kiếm.
Suzuki đã giới thiệu mô hình của một lớp giải thuật di truyền ưu tú và đưa ra
kết quả về số lần tạo sinh cần thiết để hội tụ dựa trên xác suất đột biến. Năm
1996, Aytug và Koehler đưa ra chặn trên cho số lần tạo sinh cần thiết đối với
GA kinh điển để hội tụ đến quần thể có chứa chuỗi tối ưu dựa trên xác suất đột
biến.

Phần dưới đây trình bày vắn tắt mô hình xích Markov của giải thuật di
truyền đơn giản
1.5.1. Tính Markov

 Một hệ vật lý hoặc hệ trạng thái nào đó gọi là có tính Markov nếu sự
tiến triển của hệ trong tương lai chỉ phụ thuộc vào hiện tại và độc lập với
quá khứ. VD sự tăng dân số.

 Ký hiệu E là không gian trạng thái của X(t); nếu X(t) có tính Markov
và E là tập đếm được thì X(t) gọi là xích Markov. Nếu giá trị của thời điểm
t là 0, 1, … thì ta nói xích Markov với thời gian rời rạc. Nếu t  [0, ] thì
ta có xích Markov với thời gian liên tục.

 ĐN: Ta nói X(t) có tính Markov nếu:

P {X(tn+1) = j | X(t0) = i0, …, X(tn) = i} = P {X(tn+1) = j | X(tn) = i}

với bất kỳ t0 < t1 < … < tn < tn+1 < … ; i0, … , in, j  E

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

 Đặt p(s,i,t,j) = P {X(t) = j | X(s) = i} (s<t) là xác suất có điều kiện để hệ tại
thời điểm s ở trạng thái i, đến thời điểm t chuyển đến trạng thái j và gọi là
xác suất chuyển của hệ. Nếu xác suất này chỉ phụ thuộc vào t-s hay
p(s,i,t,j) = p(s+h, i, t+h, j) thì hệ là thuần nhất theo thời gian.

 Ký hiệu pij = P {Xn+1 = j | Xn = i} và ma trận [pij] gọi là ma trận xác


suất chuyển sau 1 bước. Theo công thức xác suất đầy đủ ta có

0  pij  1 và j pij = 1 (ma trận ngẫu nhiên)

 Xác suất chuyển sau n bước :

pij(n) = P {Xn+m = j | Xm = i} = P {Xn = j | X0 = i}

Khi đó pij(1) = pij . Quy ước pij(0) = 1 ( i=j) và là 0 với i<> j


Đặt Pn = (pij(n) ) là ma trận xác suất chuyển sau n bước.

 Ta có phương trình Chapman-Kolmogorov

pij( n  m )  p
kE
n
ik p njk
(1.1)
 Một ví dụ về GA được mô hình hóa bởi một xích Markov: Ta bắt đầu bằng
mô hình đơn tử (haploid model) của sự tái tạo ngẫu nhiên, khi không xét
đến những tác nhân đột biến và thiên hướng chọn lọc (mutation pressures
and selective forces). Giả sử ta xét cỡ loài cố định gồm 2N gene kết hợp từ
các cá thể loại a và loại A. Sự hình thành thế hệ sau được xác định bởi 2N
phép thử nhị thức độc lập như nhau: Nếu loài bố mẹ có j a-gene và (2N - j)
A-gene thì mỗi phép thử có kết quả là a hay A với xác suất tương ứng là
j j
pj  và q j  1
2N 2N
Các chọn lọc được lặp lại và được tiến hành có thay thế. Bằng cách
này ta có xích Markov { X n } trong đó Xn là số a-gene ở thế hệ thứ n trong
cỡ loài không đổi gồm 2N cá thể. Không gian trạng thái E = {0,1,2, ..., 2N}
gồm 2N + 1 giá trị. Ma trận xác suất chuyển P = (pjk) tính theo phân phối nhị
thức là:

pjk = PX n1  k X n  j  C2 N p j q j


k k 2 N k
(j, k = 0, 1, ..., 2N) (1.2)

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
13

Chú ý rằng các trạng thái Xn = 0 (hoặc 2N) là hấp thụ hoàn toàn theo
nghĩa khi Xn = 0 (hoặc 2N) thì Xn+k = 0 (hoặc 2N, tương ứng) với mọi k  0.
Một trong những vấn đề thú vị là xác định xác suất để loài sẽ đạt tới
fixation (nghĩa VN) với điều kiện X0 = i, tức là nó sẽ trở thành một quần thể
thuần chủng chỉ có a-gene hoặc A-gene. Việc xác định tốc độ đạt tới fixation
cũng là điều đáng quan tâm. Ta sẽ nghiên cứu những vấn đề như thế trong
phân tích tổng quát về xác suất hấp thụ.
Một mô hình đầy đủ hơn phải tính đến những mutation pressures (tác
nhân đột biến). Ta giả sử rằng trước khi hình thành thế hệ mới, mỗi gene có
xác suất đột biến, tức là xác suất chuyển thành gene của loại kia. Đặc biệt, ta
giả sử rằng đối với mỗi gene hiện tượng đột biến a  A xảy ra với xác suất x1
và hiện tượng đột biến A  a xảy ra với xác suất x2.
Một lần nữa ta lại giả sử rằng sự hình thành của thế hệ sau được xác
định bởi 2N phép thử nhị thức. Các giá trị liên quan của pj và qj khi loài cha
mẹ có j a-gene lúc này có dạng:

1  x1   1   x2
j j
pj 
2N  2N 
(1.3)
j  j 
Vµ q j  x1  1   1  x2 
2N  2N 
Lập luận như sau: các tác nhân đột biến hoạt động đầu tiên, sau đó một
gene mới được chọn bằng cách chọn lọc ngẫu nhiên từ loài. Bây giờ xác suất
của chọn lọc một a-gene sau khi tác nhân đột biến hoạt động chính là 1/2N lần
số a-gene hiện có. Vì vậy xác suất trung bình (lấy trung bình đối với những
đột biến có thể) là 1/2N lần số trung bình của a-gene sau đột biến. Nhưng số
trung bình này rõ ràng là j(1-x1) + (2N - j)x2. Từ đó dẫn đến công thức (1.3).
Xác suất chuyển của xích Markov tương ứng được tính bởi công thức
(1.2) ở trên với các pj, qj được tính bởi công thức (1.3) vừa viết.
Nếu x1, x2 > 0 thì fixation sẽ không xảy ra ở bất cứ trạng thái nào. Thay
vào đó, khi n   hàm phân phối của Xn sẽ tiến đến phân phối trạng thái vững
của biến ngẫu nhiên  trong đó P{=k}=k; k = 0, 1, ..., 2N (k = 1, k > 0).
Hàm phân phối của  được gọi là phân phối tần số gene tại trạng thái vữ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
14

Ta trở lại mô hình giao phối (mating model) ngẫu nhiên đơn giản và
bàn về khái niệm thiên hướng chọn lọc, hoạt động về a-gene chẳng hạn. Giả
sử muốn đặt một ưu tiên chọn lọc cho a-gene đối với A-gene sao cho số con
sinh ra có kỳ vọng với tỉ lệ (1+ s) và 1 tương ứng, trong đó s là nhỏ và dương.
j j (1  s) j
Ta thay pj = và qj = 1 bằng pj = và qj = 1 - pj rồi xây dựng
2N 2N 2 N  sj
thế hệ sau theo mẫu nhị thức như trước.
Nếu thế hệ cha mẹ có j a-gene, thì ở thế hệ sau cỡ loài trung bình của a-
gene và A-gene tương ứng là

2N
1  s  j và 2N
2 N  j  .
2 N  sj 2 N  sj
Tỷ số các cỡ loài trung bình của a-gene đối với A-gene tại thế hệ thứ
(n + 1) là:
1 s j  1  s   Sè a - gene ë thÕ hÖ thø n 
   
1 2 N  j  1   sè A - gene ë thÕ hÖ thø n 

Điều này giải thích ý nghĩa của sự chọn lọc.


1.5.2. Một số kết quả

- Phân phối của hệ tại thời điểm n cho bởi công thức

pj(n) = P(Xn = j) ; n = 0, 1, 2, …; j  E

Đặt (n) = {pj(n) ; jE) và gọi  = (0) là phân phối ban đầu của hệ.

- Phân phối ban đầu gọi là dừng nếu (n) không phụ thuộc vào n
nghĩa là  = (n) .

- Một mô hình xích Markov rời rạc và thuần nhất là bộ ba (Xn,  , P)


trong đó Xn là dãy đại lượng ngẫu nhiên rời rạc;  là phân phối ban
đầu; P là ma trận xác suất chuyển.

- Vấn đề là phân phối dừng có tồn tại không? có duy nhất không?
cách tìm 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
15

- Định nghĩa phân phối dừng: Giả sử P = (pij) là ma trận chuyển của
xích Markov (Xn) có không gian trạng thái hữu hạn E = {1, 2, ..., N}, nghiệm
không âm (1, ...,N) của phương trình:
xj = x
kE
k p kj ; j  E

sao cho j = 1 được gọi là phân phối dừng (hay bất biến) của xích
Markov với ma trận xác suất chuyển P = (pij).
Ý nghĩa: Nếu ta lấy (1, ...,N) là phân phối ban đầu của xích Markov,
tức là j = P(X0 = j); j = 1, 2, ..., N. Khi đó: j(1) = P(X1=j)=   k pkj   j
k

Tổng quát ta có: j(n) P(Xn = j) = j, tức là: X0, X1, ..., Xn, ... có phân phối
xác suất như nhau, ta có thể chứng minh phân phối đồng thời của các biến ngẫu
nhiên Xk, Xk+1, ..., Xk+m không phụ thuộc vào k đối với mọi m. Quá trình có tính
chất như thế được gọi là quá trình dừng. Viết dưới dạng ma trận thì phân phối
dừng là véctơ cột bất biến đối với ma trận chuyển vị của P, nghĩa là:
 p11 p21 ... pN 1    1   1 
    
 p12 p22 ... pN 2    2    2 .
 ... ... ... ...   ...   ... 
    
 p1N p2 N ... pNN    N   N 

1.5.3. Xích Markov trong GA

Xét bài toán: Cho một hàm f : J  R+ và JL là tập rời rạc hóa J. Cần tìm một
phần tử i  JL sao cho f(i) = max{f(j) | j  JL }

Gọi r là số cá thể hợp lệ thì r = |JL| = L , trong đó  là số phần tử của


bảng ký hiệu sử dụng rời rạc hóa. Chẳng hạn với mã hóa nhị phân thì  = 2.

Gọi tập tất cả các quần thể hợp lệ là S và giả thiết ta xét quần thể với
kích cỡ cố định M (M = |k| với k  S). Khi đó số các quần thể hợp lệ là:

N | S | C Mr 1r 1 (số các tổ hợp chập r-1 của M+r-1).

Ta xét giải thuật di truyền đơn giản với các toán tử như sau:

- Toán tử chọn lọc tỷ lệ, chọn cá thể i trong quần thể k với xác suấ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
16

f (i) * Z (i, k )
pik 

r
h 0
f (h) * Z (h, k )

trong đó Z(i,k) là biến cố xảy ra khi cá thể i thuộc vào quần thể k.

- Toán tử lai ghép một điểm.

- Toán tử đột biến là phép đảo bit tại vị trí đột biến.

Với giải thuật này, GA có thể được mô hình hóa như một xích Markov
thời gian rời rạc, mỗi quần thể xem như một trạng thái của xích. Rõ ràng là
trạng thái hiện tại chỉ phụ thuộc vào một trạng thái ngay trước nó, vì nếu ký
hiệu Xn là quần thể tại lần tạo sinh thứ n thì với n = 1,2,... ta có:

P(Xn = k | X0 = k0 , X1 = k1, ..., Xn-1 = kn-1) = P(Xn = k | Xn-1 = kn-1)

nghĩa là Xn thỏa tính chất của xích Markov. Ký hiệu ma trận chuyển của xích
Markov này là Q.

Rudolph đã chỉ ra rằng giải thuật di truyền đơn giản như trên không hội
tụ đến tối ưu toàn cục. Sự hội tụ của giải thuật di truyền được định nghĩa theo
Rudolph như sau:

Định nghĩa 1: Giả sử Bt = max{f(i) | Z(i, Xi)  0, i = 0,1, ..., r-1} là chuỗi biến
ngẫu nhiên của độ thích nghi cao nhất trong một quần thể biểu diễn trạng thái
Xt tại bước thứ t. Giải thuật di truyền là hội tụ đến tối ưu toàn cục nếu và chỉ
nếu lim P( Bt  f *)  1 , ở đây f* = max{f(j) | j  JL } là lời giải tối ưu của bài
t 

toán nêu trên.


Do các toán tử của GA độc lập với nhau nên có thể biểu diễn ma trận
chuyển là Q = SCM trong đó S, C, M theo thứ tự là ma trận chuyển của các
phép chọn lọc, lai ghép và đột biến.

Định nghĩa 2: Khoảng cách Hamming giữa hai chuỗi bit là số vị trí bit không
trùng nhau của hai chuỗi đó (chẳng hạn H(„0100‟, „0001‟) = 2). Đặt Hij là
tổng khoảng cách Hamming giữa các cá thể trong quần thể i và j:
M 1
H ij   H (ih , jh )
h 0

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

ở đây ih là một cá thể trong quần thể i, jh là một cá thể trong quần thể j với
h=0, ..., M-1; i,j = 1, ..., N và H(ih, jh) là khoảng cách Hamming giữa ih và jh.

Định nghĩa 3 : Ma trận A gọi là nguyên sơ nếu tồn tại số tự nhiên k sao cho
ma trận Ak là ma trận dương (ma trận mà mọi phần tử đều là số dương).

Bổ đề 1 : Ma trận chuyển của giải thuật di truyền đơn giản với xác suất đột
biến pm  (0, 1), sử dụng lai ghép và chọn lọc tỷ lệ là ma trận nguyên sơ.

Từ những ký hiệu và kết quả trên Rudolph đã chứng minh định lý sau:

Định lý 1: Giả sử hàm thích nghi không ấn định một giá trị thích nghi cho mỗi
cá thể, giải thuật di truyền đơn giản với các giả thiết như trong bổ đề trên
không hội tụ đến lời giải tối ưu.

Tuy nhiên để tăng hiệu lực của GA, De Jong đã đề xuất một chiến lược
ưu tú, Suzuki ([9]) đã chứng minh sự hội tụ đến lời giải toàn cục của GA với
chiến lược ưu tú sửa đổi. Cụ thể như sau: Giả sử số cá thể M của quần thể là
một số lẻ, i* là cá thể có giá trị thích nghi cao nhất của quần thể hiện tại.
Chiến lược ưu tú được sửa đổi là: quần thể kế tiếp luôn chứa i* .
Với chiến lược này, toán tử tạo sinh phần tử i* luôn được thực hiện đầu
tiên tại mỗi bước của quá trình. Sau đó M-1 cá thể còn lại được sinh ra theo
các toán tử di truyền thông thường. Dưới đây ta giả thiết là bài toán chỉ có một
lời giải tối ưu toàn cục.

Với mỗi quần thể k (k = 1,2,..., N), ký hiệu i*(k) là cá thể có độ thích nghi cao
nhất trong quần thể. Đặt N(i) là số các quần thể mà trong quần thể đó, i là cá
thể có độ thích nghi cao nhất (i = 0,1,...,r-1). Ta gán nhãn cho mỗi cá thể i =
0,1,..., r-1 theo thứ tự f(i) giảm dần sử dụng một quy tắc luân phiên tiền định
nào đó đối với các cá thể có cùng độ thích nghi. Ta cũng gán nhãn cho mỗi
quần thể k = 1,2,...,N theo thứ tự giảm dần của i*(k) theo một quy tắc luân
phiên tiền định nào đó cho những quần thể có cùng i*(k). Giả sử các trạng thái
trong tập K = {1, 2, ..., N(0)} là các trạng thái tối ưu toàn cục.

Với các ký hiệu trên, điều kiện hội tụ của GA có thể phát biểu là:

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

Giải thuật di truyền hội tụ tới tối ưu toàn cục nếu và chỉ nếu lim X t  K
t 

Ma trận chuyển Q+ đối với chiến lược ưu tú sửa đổi như sau:

Q0 0 0 0 
0 Q1 0 0 

 ... 
 
0 0 0 Qr 1 

Q+ gồm r ma trận con Q0, Q1, ..., Qr-1 , mỗi ma trận có phần trên đường
chéo chính bằng 0. Kích cỡ của Qi là N(i)xN(i). Có thể thấy N(i) tính được là
số tổ hợp chập (r-i-1) của (r-i+M-2).

Dựa trên các ký hiệu trên, Suzuki đã đưa ra công thức tính xác suất
chuyển từ trạng thái k đến trạng thái v là:

 r 1
1
 ( M  1)! r ( j , k ) Y ( j ,v ) i * ( k )  i * (v )
qkv   j 0 Y ( j , v )!
0 i * ( k )  i * (v )

trong đó
 Z ( j, k ) j  i * (k )
Y ( j, k )  
Z ( j , k )  1 j  i * (k )
ỏ đây Z(j,k) là xác suất để cá thể j thuộc vào quần thể k; r(j,k) là xác suất để cá
thể j được tạo lập bởi các toán tử di truyền từ quần thể k. Nếu p m > 0 thì r(j,k)
> 0. Bởi vậy qkv > 0 với k, v  K vì i*(k) = i*(v). Điều này cũng có nghĩa là
Q0 là ma trận dương và là nguyên sơ. Tuy nhiên cấu trúc của ma trận không
thể suy ra nhờ trực giác bằng sự nghiên cứu mỗi toán tử di truyền. Toán tử
chọn lọc không thể tạo cá thể mới và cũng không thể làm tăng i*(k). Toán tử
lai ghép và đột biến đều tạo cá thể mới và có xác suất dương khi chuyển đến
quần thể mới có cá thể cao hơn i*(k).
Định lý 2: Giải thuật di truyền với chiến lược ưu tú sửa đổi như trên và
pm  (0, 1) hội tụ đến tối ưu toàn cục.
Chứng minh: Từ những phân tích trên, ta có Q+ là không phân ly được
và Q0 là ma trận nguyên sơ. Theo lý thuyết xích Markov, ta có
 lim Q0k 0
Q  lim(Q )   k  
  k 
0 

n 
 R
trong đó R là ma trận ngẫu nhiên chứa các xác suất chuyển từ trạng thái
không tối ưu toàn cục đến trạng thái tối ưu toàn cục. Điều này cho thấy xá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
19

suất sống sót của trạng thái không tối ưu toàn cục có khuynh hướng giảm dần
đến 0 còn xác suất sống sót của trạng thái tối ưu toàn cục hội tụ về 1.
Như vậy, định lý này cho thấy giải thuật di truyền có khả năng hội tụ về
tối ưu toàn cục sau quá trình tiến hoá.
Việc mô hình GA qua xích Markov có ý nghĩa quan trọng. Nó vừa chứng tỏ
được sự hội tụ của giải thuật một cách chính xác, vừa là mô hình toán học để
có thể tính toán chi tiết các yếu tố ảnh hưởng đến khả năng và tốc độ hội tụ
của giải thuật. Tuy nhiên, thực hiện thuật toán qua xích Markov sẽ gặp khó
khăn rất lớn do không gian trạng thái cần xét đến là rất lớn. Vì vậy mô hình
này thường chỉ được phát triển về phương diện lý luận.
Kết Luận: phần trên giới thiệu những vấn đề khái quát về giải thuật di truyền
(GA) làm cơ sở cho việc ứng dụng giải bài toán tối ưu đa mục tiêu.

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
20

Chương 2: LOGIC MỜ

Chương này giới thiệu những vấn đề khái quát về logic mờ làm cơ sở cho
việc ứng dụng giải bài toán tối ưu đa mục tiêu.[1]
2.1. Tập mờ
2.1.1. Định nghĩa tập con mờ
Một tập con cổ điển A của X được định nghĩa bởi một hàm đặc trưng
 A lấy giá trị 0 đối với những phần tử của X không thuộc A và lấy giá trị 1
với những phần tử X thuộc A:
 A : X  0,1
Định nghĩa 2.1: Một tập con mờ A của X được định nghĩa bởi một hàm
thuộc, gán cho mỗi phần tử x của X, độ thuộc fA(x), nằm giữa 0 và 1, theo đó
x thuộc A:
f A : X  0,1
Trường hợp đặc biệt, trong đó fA chỉ lấy những giá trị bằng 0 hay 1, tập
con mờ A là một tập con cổ điển của X. Vậy một tập con cổ điển là một
trường hợp riêng của tập con mờ.
Từ nay về sau, ta sẽ ký hiệu F(X) là tập tất cả các tập con mờ của X. Ký
pháp sau đây vẫn được dùng để biểu diễn tập con mờ A, mặ dù nó không liên
quan gì đến ý lấy tổng hoặc láy tích phân. Nó chỉ ra với mọi phần tử x của X,
độ thuộc fA(x) của nó vào A:
 A   xX f A ( x) / x

Ký pháp:  A  f ( x) / x


x A
2.1.2. Các đặc trưng của một tập con mờ

Những đặc trưng hữu ích nhất của một tập con mờ A của X để mô tả nó
là những đặc trưng chỉ rõ nó khác với một tập con thông thường của X ở điểm
nào.

Đặc trưng thứ nhất là giá của A, là tập những phần tử của X ít nhất có
thuộc A một chú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
21

Định nghĩa 2.2: Giá của A, ký hiệu supp(A), là bộ phận của X trên đó
hàm thuộc của A khác không:

Supp(A)= x  X / f A ( x)  0

Đặc trưng thứ hai của A là chiều cao của nó, ký hiệu h(A), là độ thuộc
lớn nhất mà một phần tử của X thuộc A.

Định nghĩa 2.3: Chiều cao, ký hiệu h(A), của tập con mờ A của X là giá
trị lớn nhất mà hàm thuộc có thể lấy được:

h(A)= sup xX f A ( x)

Người ta thường dùng các tập con mờ được chuẩn hóa, có nghĩa với
chúng có ít nhất một phần tử của X thuộc tuyệt đối (với độ thuộc 1) vào A.
Nói riêng, lý thuyết khả năng cần tới những tập con mờ được chuẩn hóa.

Định nghĩa 2.4: Tập con mờ A của X là được chuẩn hóa nếu chiều cao
h(A) của nó bằng 1.

Một tập con mờ được chuẩn hóa giả định có tồn tại những phần tử của
X điển hình cho tính chất được liên kết với nó. Đó là những phần tử thuộc A
tuyệt đối và tập những phần tử đó được gọi là hạt nhân của A.

Định nghĩa 2.5: Hạt nhân của A, ký hiệu ker(A), là tập các phần tử của
X tại đó hàm thuộc của A có giá trị 1:

Ker(A)= x  X / f A ( x)  1

Khi tập X là hữu hạn, ta cón đặc trưng tập con mờ A của X bởi lực
lượng của nó, chỉ rõ độ thuộc tổng thể mà các phần tử của X thuộc A.

Định nghĩa 2.6: Lực lượng của tập con mờ A của X được định nghĩa
bởi:

|A|=  xX
f A ( x)

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
22

Nếu A là tập con thông thường của X, chiều cao của nó bằng 1; nó
được chuẩn hóa và đồng nhất với giá và hạt nhân của nó; lực lượng của nó
chính là số phần tử của tập theo định nghĩa cổ điển.

2.1.3. Các phép toán trên các tập con mờ

a. Sự bằng nhau và sự bao hàm (chứa nhau) của các tập con mờ

Định nghĩa 2.7: Hai tập con mờ A và B của X là bằng nhau nếu các
hàm thuộc của chúng lấy cùng giá trị với mọi phần tử của X:

x  X : f A ( x)  f B ( x)

Định nghĩa 2.8: Cho hai tập con mờ A và B của X, ta nói rằng A bao
hàm trong B, ký hiệu A  B , nếu các hàm thuộc của chúng thỏa điều kiện

x  X : f A ( x)  f B ( x)

b. Giao và hợp của các tập con mờ

Định nghĩa 2.9: Giao của hai tập con mờ A và B của X là tập con mờ C,
ký hiệu A  B , sao cho:

x  X : f C ( x)  min( f A ( x), f B ( x)) ,

Min ký hiệu toán tử lấy cực tiểu

Định nghĩa 2.10: Hợp của hai tập con mờ A và B của X là tập con mờ
D, ký hiệu là A  B sao cho:

x  X : f D ( x)  max( f A ( x), f B ( x)) ,

Max ký hiệu toán tử lấy cực đại.

Tính chất 1:

 Tính kết hợp của  và  ;

 Tính giao hoán của  và  ;

 A  X  A, A    

 A   A, A  X  X

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
23

 A B  A  A B

 A  ( B'B' ' )  ( A  B' )  ( A  B' ' )

 A  (B'B' ' )  ( A  B' )  ( A  B' ' )

 A  B  A B  A B

c. Phần bù của một tập con mờ

Định nghĩa 2.11: Phần bù AC của một tập con mờ A của X được định
nghĩa là tập con mờ của X với hàm thuộc:

x  X : f A ( x)  1  f A ( x)

Tính chất 2:

 Các luật De Morgan: ( A  B) c  A c  B c , ( A  B) c  Ac  B c

 ( Ac ) c  A

 c  X

 Xc 

 A  Ac  X

Tính chất 3: Giá và hạt nhân của A và phần bù của nó nghiệm đúng:

(supp(Ac))c=ker(A), (ker(Ac))c= supp(A).

d. Tích Descartes của các tập con mờ

Định nghĩa 2.12: Cho các tập con mờ A1, A2, …, Ar được xác định
tương ứng trên X1,X2, …, Xr, ta định nghĩa tích Descartes của chúng
A=A1*A2*…*Ar như một tập con mờ của X có hàm thuộc:

x  ( x1 , x2 ,..., xr )  X , f A ( x)  min( f A1 ( x1 ),... f Ar ( xr ))

e. Hình chiếu của một tập con mờ

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
24

Định nghĩa 2.13: Hình chiếu trên X1 của tập con mờ A của X1*X2 là tập
con mờ Pr ojX ( A) của X1, với hàm thuộc được xác định bởi:
1

x1  X 1 , f Pr oj X ( A) ( x1 )  sup x2X 2 f A (( x1 , x2 ))


1

Hình chiếu của A trên X2 cũng được định nghĩa tương tự.
Định nghĩa 2.14: hình chiếu trên Xa*Xb*….*Xk của tập con mờ A của
X1*X2*…Xr là tập con mờ Proj(A) của Xa*Xb*…*Xk với hàm thuộc được
định nghĩa là:

xa  X a ,...., xk  X k ,

f Pr oj ( A) ( xa ,..., xk )  supi / 1ir ,i a ,...,i k  f A ((....xi ,...))


f. Khuếch trụ của một tập con mờ

Định nghĩa 2.15: Khuếch trụ của một tập con mờ B của Xa*Xb*…*Xk
trên X= X1*X2*…Xr được định nghĩa là:

x  ( x1 ,..., x a ,..., xk ,..., xr )  X , f B ( x)  f B ( xa ,..., xk )


c

2.2. Quan hệ mờ
Quan hệ mờ đóng vai trò quan trọng trong Logic mờ và lập luận xấp xỉ.
Khái niệm quan hệ mờ là sự tổng quát hoá trực tiếp của khái niệm quan hệ
(quan hệ rõ). Trước hết ta nhắc lại về khái niệm quan hệ .

Giả sử U và V là hai tập . Một quan hệ R từ U đến V (sẽ được gọi là


quan hệ 2 ngôi, hoặc quan hệ nhị nguyên ) là một tập con của tích đề các UV.
Trong trường hợp U = V, ta nói R là quan hệ trên U. Chẳng hạn, tập R bao
gồm tất cả các cặp người (a, b) trong đó a là chồng của b, xác định quan hệ
“vợ _ chồng” trên tập người nào đó.

Khi U và V là các tập hữu hạn, chúng ta sẽ biểu diễn quan hệ R từ U


đến V bởi ma trận, trong đó các dòng được đánh dấu bởi các phần tử x  U và
các cột được đánh dấu bởi các phần tử y  V. Phần tử của ma trận nằm ở dòng
x, cột y là R(x,y)

1 nếu (x,y) R
R(x,y) =
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
25

0 nếu (x,y) R

Ví dụ 1: Giả sử U = {1,2,3} và V = {a,b,c,d} giả sử R là quan hệ từ U đến V


như sau:
R = {(1,a), (1,d), (2,a), (2,b), (3,c), (3,d)}
Chúng ta biểu diễn quan hệ R bởi ma trận sau:

1 0 0 1 1

R= 1 1 0 0 2

0 0 1 1 3

a b c d

Bây giờ ta xét quan hệ “anh em họ gần” trên một tập người U nào đó.
Quan hệ này không thể đặc trưng bởi tập rõ của tích UU. Một cách hợp lý
nhất là xác định quan hệ này bởi một tập mờ R trên UU.

Chẳng hạn R(a,b) = 1 nếu a là anh em ruột của b; R(a,b) = 0,9 nếu a là
anh em con chú con bác của b; R(a,b) = 0,75 nếu a là anh em cháu cô, cháu
cậu của b;...

Một quan hệ mờ từ U đến V là một tập mờ trên tích đề các UV. Tổng
quát, một quan hệ mờ n ngôi là một tập R trong không gian tích đề các của n
không gian U1x U2 x … x Un.

Quan hệ mờ 2 ngôi R(u,v) gọi là:

1. Đối xứng nếu: R(u, v) = R(v, u)

2. Phản xạ nếu: R(u, u) = 1, u  U

3. Phản phản xạ nếu: R(u, u) = 0 , u  U

4. Bắc cầu Max_Min nếu R(u, v)  { R(u, w)  R(w, v): wW}

5. Bắc cầu Min_Max nếu R(u, v)  { R(u, w)  R(w, v): wW}

6. Phép hợp thành RS với RU W, S W U được định nghĩa như sau:

 RS (u, v) = { R(u, w)  S(w, v): wW}.


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
26

R được gọi là quan hệ tương tự ( quan hệ tương đương mờ) nếu nó có các
tính chất:

 Phản xạ.

 Đối xứng.

 Bắc cầu.

R được gọi là quan hệ không tương tự nếu nó là phần bù của một quan hệ
tương tự hay một các tương đương, nó thỏa mãn các tính chất:

 Phản phản xạ.

 Phản đối xứng.

 Bắc cầu Min_Max

Ký hiệu dR(u, v) = R(u, v). Khi đó chúng ta thấy nó có các tính chất sau:

a. dR(u, v)  0.
b. dR(u, v) = dR(v, u).
c. dR(u, v) = dR(u, w)  dR(w, v).
Như vậy dR(u, v) có các tính chất tương tự như khoảng cách trong
không gian hình học và được gọi là khoảng cách Min_Max.

R là quan hệ giống nhau nếu nó thỏa mãn:

 Phản xạ.

 Đối xứng.

R là quan hệ không giống nhau nếu nó là phần bù của quan hệ giống


nhau, tức là:

 Phản phản xạ

 Đối xứng

Như vậy bao đóng bắc cầu R^ của quan hệ giống nhau là quan hệ tương
tự. R^ được tính theo công thức:

R^ = R1  R2 .... Rk ....

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
27

Trong đó:

R2 = RR với  RS (u, v) = { R(u, w)  S(w, v): wW} .

Rk = Rk-1R.

Để tính R^ ta thường dùng các kết quả sau :

1. Nếu có n mà Rn =Rn+1 thì R^ = R1R2....Rn


2. Nếu U hữu hạn và U  =n thì R^ = R1R2....Rn
Nếu R là quan hệ mờ tương tự thì tập mức  ,R = {u, v U: R (u, v) 
} của R là quan hệ tương đương kinh điển và do đó phân hoạch U thành các
lớp tương đương.
Ký hiệu R là phần bù của R tức là R = CR thì R là quan hệ không
tương tự và R1- = {u,v U : R(u, v)=dR(u, v) 1-} = R.
Nói cách khác, khoảng cách giữa hai phần tử bất kỳ trong cùng một lớp
tương đương không vượt quá 1-.
Tương tự như trường hợp quan hệ rõ, khi cả U và V là các tập hữu hạn,
chúng ta sẽ biểu diễn quan hệ mờ R bởi ma trận trong đó phần tử nằm ở dòng
xU, cột yV là mức độ thuộc của (x,y) vào tập mờ R.
Ví dụ : Chúng ta giả sử U = {1,2,3}, V = {a,b,c} và R là quan hệ mờ từ
U đến V như sau:

0,5 1 0 0,3 0,75 0,8 0,9 0 0,42


R=        
(1, a) (1, b) (1, c) (2, a) (2, b) (2, c) (3, a) (3, b) (3, c)

Quan hệ mờ trên được biểu diễn bởi ma trận:

0,5 1 0 1

R= 0,3 0,75 0,8 2

0,9 0 0,42 3

a b c
Kết luận: phần trên giới thiệu những vấn đề khái quát về logic mờ làm cơ sở
cho việc ứng dụng giải bài toán tối ưu đa mục tiêu

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
28

Chương 3: KẾT HỢP GIẢI THUẬT DI TRUYỀN VÀ LOGIC MỜ


GIẢI BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU

Chương này trình bày những vấn đề ứng dụng cơ sở lý thuyết để giải
bài toán tối ưu đa mục tiêu
3.1 . Bài toán tối ưu đa mục tiêu
Trong nhiều ứng dụng thực tế gắn liền với việc thiết kế và kế hoạch hóa
trong các ngành kinh tế - kĩ thuật, điều khiển các hoạt động sản xuất, chúng
ta thường gặp những bài toán liên quan đến việc phân tích, lựa chọn
phương án tốt nhất thoả mãn nhiều mục tiêu khác nhau. Đó là bài toán tối
ưu đa mục tiêu.

3.1.1. Phát biểu bài toán

Y ( X )  max(min)

X  D  Rn
Trong đó: Y ( X )  (Y1 ( X ),..., Yk ( X ))  R k gọi là vectơ mục tiêu.

X gọi là phương án. D gọi là tập các phương án.


Y1 ,..., Yk gọi là các hàm mục tiêu.

Các bài toán tối ưu đa mục tiêu thường có nhiều hàm mục tiêu với các
ràng buộc khác nhau và các lời giải khác nhau. Các lời giải này thưòng không
so sánh được với nhau. Vì vậy người ta đưa ra tập lời giải tối ưu Pareto.
Lời giải trội( phương án trội): Lời giải X được gọi là trội hơn lời giải Y
nếu i ta đều có: Fi ( X )  Fi (Y ) , còn Y được gọi là phương án bị trội bởi X.
Phương án Pareto tối ưu: Một phương án X được gọi là phương án
Pareto tối ưu nếu X không thể bị trội bởi bất kì phương án nào khác thuộc
miền giới hạn.
Nếu bài toán tối ưu đa mục tiêu có nghiệm được gọi là tối ưu theo một
cách định nghĩa nào đó thì không phụ thuộc vào cách định nghĩa đã chọn,
nghiệm tối ưu đó phải là một phương án Pareto tối ưu.
3.1.2. Một số phương pháp giải
Có nhiều phương pháp để giải bài toán tối ưu đa mục tiêu như: phương
pháp nhượng bộ dần, phương pháp tìm nghiệm có khoảng cách ngắn nhất đế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
29

nghiệm lý tưởng, phương pháp giải theo dãy mục tiêu đã được sắp xếp,
phương pháp trọng số...nhưng trong phạm vi nghiên cứu của đề tài chỉ trình
bày một số phương pháp giải sau:
3.1.2.1 Phương pháp trọng số
Trong phương pháp này hàm lợi ích U tuyến tính theo các giá trị phương
án
k
U (Y ( X ))  p , Y ( X )   piYi ( X )
i 1

Bài toán QHĐMT viết ở dạng này là:


k
max  piYi ( X ) (1.1)
i 1

X D (1.2)
Về mặt thực tiễn pi có thể xem là tỉ lệ quy đổi thứ nguyên của mục tiêu
thứ i. Chẳng hạn ta quy đổi tất cả các mục tiêu về dạng tiền tệ, khi đó pi biểu
diễn rằng: Một đơn vị mục tiêu thứ i có thể được thay thế bởi pi đơn vị tiền tệ.
Bài toán (1.1), (1.2) là một bài toán quy hoạch đơn chỉ phụ thuộc tham
số. Đặc biệt nếu mọi Yi(i=1,…,k) là các hàm tuyến tính thì ta có một bài toán
quy hoạch tuyến tính phụ thuộc tham số ở hàm mục tiêu.
Ở đây quan hệ , ~ được rút ra thông qua việc so sánh hàm mục tiêu
(1.1).
3.1.2.2 . Phương pháp tìm nghiệm có khoảng cách ngắn nhất đến nghiệm
lý tưởng
Nghiệm lý tưởng ta là một nghiệm (nói chung không nhất thiết là phương án
chấp nhận được), mà tại đó giá trị của mỗi hàm mục tiêu riêng rẽ đều đạt cực
đại.
Ở đây giá trị hàm lợi ích tỉ lệ với khoảng cách từ phương án X  D đến cái gọi
là nghiệm lý tưởng. Phương án X 1  X 2 khi và chi khi X1 gần nghiệm lý
tưởng hơn X2.
Giả sử X1, X2  Rn. Khoảng cách giữa hai điểm X1, X2 là một số dα xác
định bởi:

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
30


 n 
dα =  X i  X i 
1 2

 i 1 

Với X1= (X11,…, X1n); X2 = (X21,…, X2n)


α là tham số (α >=1)
Số dα có tính chất: d∞  dα  d1
Với d∞ = lim d∞= max
Bài toán tối ưu đa mục tiêu
Max Y(X)
XD
X* là nghiệm lý tưởng.
Giả sử Y* là các giá trị tối ưu của từng mục riêng rẽ (Y*i = maxY(X)).
Khi đó giá trị của hàm mục tiêu Y tại X* là : (Y*1,…,Y*k) và khoảng cách từ
một phương án X đến nghiệm lý tưởng xác định bởi:
 k  
d=  Yi ( X )  Yi * 
 i 1 
Bài toán cực tiểu khoảng cách đến nghiệm lý tưởng là:
 k  
minα  Yi ( X )  Yi *  (1.3)
 i 1 
XD (1.4)
Ở đây vấn đề xác định α nói chung phụ thuộc vào các bài toán cụ thể và
các kết quả về mặt lý thuyết để tìm ra một thuật toán giải bài toán quy hoạch
(1.3) và (1.4).
Với trường hợp α=1 việc cực tiểu hoá :

k
* 
Mindi = min   Y X   Y1 i
X D X D i 1

k
Tương đương với tìm: max Y ( X ) i
X D i 1

k k
Và X 1  X 2   Yi ( X 1 )   Yi ( X 2 ) .
i 1 i 1

Trường hợp α = ∞:

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
31

Bài toán : mind  = min  max Y * i  Yi ( X )


X D X D 1  i  k
Còn có thể viết dưới dạng :
min W (1.5)

Y*1-Yi(X)  W i = 1,k
X D (1.6)
Nếu X* là nghiệm của (1.5), (1.6) thì nó là nghiệm thoả hiệp tốt nhất
theo nghĩa  X  D: X*  X hoặc X hoặc X* ~ X (trường hợp sau xảy ra khi
X cũng là nghiệm tối ưu).
Ở đây 1 = Y* 1 - W ta hiểu là nhượng bộ của mục tiêu thứ 1, như thế
quan điểm nhượng bộ ở đây là dựa trên nhượng bộ đồng đều theo tất cả các
chỉ tiêu, phương án X* là trội nhất nếu nhượng bộ “đều ” của nó là nhỏ nhất.
Trong trường hợp chung, tập các nghiệm của (1.3), (1.4) là tập các nghiệm
thoả hiệp tốt nhất. Người ta cũng chứng minh được rằng tập các nghiệm thỏa hiệp
tốt nhất là một tập con của tập các nghiệm không cải tiến được.
Zeleny (1974) đã chứng minh: Tập các nghiệm thoả hiệp ứng với
dα(1  α  ∞) nằm trong khoảng nghiệm ứng với d1 và dα.
Còn trong trường hợp α = ∞ Xalucvatde có nêu ra một thuật toán thoả
hiệp. Ở đây các quan hệ  , ~ được dựa trên các metric dα:
 k    k  
X1  X2   Y *i Yi ( X 1 )  <  Y *i Yi ( X 2 ) 
 i 1   i 1 

 k    k  
X1 ~ X2   Y *i Yi ( X 1 )  <  Y *i Yi ( X 2 ) 
 i 1   i 1 

3.2. Thuật toán đề xuất


Bước 1: Khởi tạo
Khởi tạo quần thể QT gồm M (=Size) cá thể một cách ngẫu nhiên
Tính các giá trị hàm mục tiêu Fi(x) với mỗi x  QT.
Độ phù hợp của mỗi cá thể được tính bởi a1F1(x) + … + akFk(x)
trong đó các ai khởi tạo ngẫu nhiên sao cho: ai  [0,1] và a1 + … + ak =
1. Thông thường việc gán các giá trị ai được cho trước bởi các chuyên gia, tuy

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
32

nhiên để đảm bảo độ phù hợp nhất của mỗi cá thể ta lựa chọn ai tại mỗi bước
lặp ai có giá trị lớn nhất. Và cá thể phù hợp nhất sẽ được giữ lại cho bước tiến
hóa (ở đây là tư tưởng dùng tính mờ của độ phù hợp mỗi cá thể kết hợp với
thuật toán di truyền tại mỗi bước lặp trong thuật toán di truyền. Bởi thực chất
ra thuật toán di truyền cũng là giải thuật toán xác xuất, vì thế ta dùng việc lựa
chọn ai như trên để đánh giá và lựa chọn cá thể phù hợp nhất tại mỗi bước lặp).
Bước 2: Tiến hóa
Trong quần thể QT, ta thực hiện:
2.1: Chọn ngẫu nhiên 2 cá thể cha mẹ. Lai ghép tạo ra 2 cá thể con mới.
2.2: Thực hiện đột biến (với xác suất đột biến là pm) một trong hai cá
thể con vừa tạo ra.
2.3: Tính độ phù hợp của mỗi cá thể vừa tạo.
2.4: So sánh các cá thể cha mẹ với các con vừa tạo. Cá thể nào có độ
phù hợp tốt hơn thì được đưa vào quần thể kế tiếp.
Bước 3: Nếu chưa thỏa mãn điều kiện dừng thì chuyển về B2.
Bước 4: Đưa ra quần thể cuối cùng cho người dùng lựa chọn
Tiêu chuẩn để so sánh 2 cá thể là
Cá thể x “tốt hơn” y nếu
a1F1(x) + … + akFk(x) < a1F1(y) + … + akFk(y)
trong đó các ai khởi tạo ngẫu nhiên sao cho a1 + … + ak = 1.

3.3. Thử nghiệm


3.3.1 Bài toán thử nghiệm
3.3.1.1 Bài toán 1 [10]
 3
1 2
 F1(x) = 1 - exp(-  (x i - ) )  Min
 i 1 3
 1 2
F2(x) = 1 - exp(- (x i  ) )  Min
 3
 xi   4,4, i  1,2,3
 n3

a. Mã hóa
Bài toán này gồm có 2 hàm mục tiêu đều tiến đến Min, mỗi hàm bao
gồm 3 biến. Vì vậy, mỗi cá thể (lời giải của bài toán) được mã hóa là mộ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
33

véctơ thực 6 chiều. Trong đó 6 thành phần đầu biểu diễn các giá trị biến xi
(i=1,…,3); thành phần thứ 4, thứ 5 để ghi giá trị các hàm mục tiêu f1, f2 ứng
với cá thể này. Thành phần thứ 6 để ghi giá trị hàm tổ hợp các mục tiêu của cá
thể khi sử dụng giải thuật đề xuất, và để ghi giá trị độ thích nghi của từng cá
thể khi sử dụng GA nhằm đánh giá trong việc chọn các cá thể đưa vào quần
thể mới .
b. Các toán tử lai, đột biến:

Toán tử lai: Toán tử SBX (Simulated Binary Crossover)

Giả sử x = (x1, x2 , ... xn) và y = (y1, y2 , ..., yn) là hai cá thể cha mẹ đã
chọn để tạo sinh. Khi đó hai cá thể con c1 = (c11, ... , c1n) và c2 = (c21, ... , c2n )
được sinh ra theo công thức:

c1i = 0.5*((1 + ) * xi + (1 - ) * yi) (2.4)

c2i = 0.5*((1 - ) * xi + (1 + ) * yi) (2.5)

trong đó  được tính bởi công thức:

 1
 1

 (2 * u ) if u  0.5
  1 (2.6)
1  1
( ) otherwise

 2 * (1  u )

với u là số ngẫu nhiên trong [0, 1];  là tham số điều khiển.

Thủ tục lai ghép như sau:


%lai ghep
i1=1+fix(m*rand);
i2=1+fix(m*rand);
y(1,:)=x2(i1,:);
y(2,:)=x2(i2,:);
for v2=1:n;
lamda=2;
u=rand;
beta=lamda*exp(-lamda*u);

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
34

yy1=0.5*((1+beta)*y(1,v2)+(1-beta)*y(2,v2));
yy2=0.5*((1+beta)*y(2,v2)+(1-beta)*y(1,v2));
if (yy1>=left)&(yy1<=righ);
y(1,v2)=yy1;
else;
y(1,v2)=u*x2(i1,v2)+(1-u)*x2(i2,v2);;
end;
if (yy2>=left)&(yy2<=righ);
y(2,v2)=yy2;
else;
y(2,v2)=(1-u)*x2(i1,v2)+u*x2(i2,v2);;
end;
end;
Toán tử đột biến: sử dụng đột biến đều, với một gen i được chọn ngẫu
nhiên để đột biến từ cá thể b = (x1 , x2, ... , xN), thành phần xi được thay thế
bởi một số ngẫu nhiên trong khoảng xác định [li, ui] của xi .
Thủ tục đột biến như sau:
%Dot bien
vd=1+fix(n*rand); %vi tri dot bien
if rand<pm; %dot bien
if rand<0.5;
db=left+rand*(righ-left);
y(1,vd)=db;
else
db=left+rand*(righ-left);
y(2,vd)=db;
end;
end;
c. Các tham số :
Các tham số được sử dụng trong bài toán này là:
 Kích thước quần thể: 30

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
35

 Xác suất lai 1, đột biến 0.1.


 Chương trình thực hiện tiến hoá sau 1000 thế hệ.
d. Thuật toán
Khi sử dụng GA:
Bước 1: Khởi tạo quần thể QT gồm M(=Size) cá thể một cách ngẫu nhiên
Tính các giá trị hàm mục tiêu F1(x), F2(x); với mỗi x  QT
Bước 2: Tính MT1  minF1 ( x) | x  QT 
MT 2  minF2 ( x) | x  QT 
Dem:=1;
Bước 3: Trong các cá thể trong quần thể QT, ta thực hiện:
Bước 3.1: Chọn ngẫu nhiên 2 cá thể cha mẹ
Bước 3.2: Lai ghép tạo ra 2 cá thể con mới.
Bước 4: Với 2 cá thể con vừa sinh ra trong phép lai ghép trên, ta thực hiện đột
biến (nếu xác suất đột biến là 0.1) và đột biến tại một trong hai cá thể này tùy
thuộc vào giá trị ngẫu nhiên tạo ra.
Bước 5: Tính giá trị các hàm mục tiêu của 2 cá thể sau khi đột biến, từ đó tính độ
thích nghi của chúng. So sánh chúng với cha mẹ để chọn cá thể đưa vào quần thể
sau.
Nếu độ thích nghi của cá thể con tốt hơn độ thích nghi của cha mẹ thì thay
cha mẹ bởi các con tương ứng và xác suất ngẫu nhiên có thể chọn các cá thể con
này là 0.1.
Bước 6: Dem= Dem+1;
Bước 7: Nếu Dem = 80 thì quay về bước 2, nếu không thì chuyển đến B8.
Bước 8: Nếu chưa thỏa mãn điều kiện dừng thì chuyển về B3.
Khi sử dụng GA kết hợp FL:
Bước 1: Khởi tạo quần thể QT gồm M(=Size) cá thể một cách ngẫu nhiên
Tính các giá trị hàm mục tiêu F1(x), F2(x); với mỗi x  QT
Bước 2: Trong các cá thể trong quần thể QT, ta thực hiện:
Bước 2.1: Chọn ngẫu nhiên 2 cá thể cha mẹ
Bước 2.2: Lai ghép tạo ra 2 cá thể con mới.

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
36

Bước 3:Với 2 cá thể con vừa sinh ra trong phép lai ghép trên, ta thực hiện đột
biến (nếu xác suất đột biến là 0.1) và đột biến tại một trong hai cá thể này tùy
thuộc vào giá trị ngẫu nhiên tạo ra.
Bước 4: Tính giá trị các hàm mục tiêu của 2 cá thể sau khi đột biến, từ đó tính giá
trị tổ hợp các mục tiêu của chúng. So sánh chúng với cha mẹ để chọn cá thể đưa
vào quần thể sau.
Bước 5: Nếu chưa thỏa mãn điều kiện dừng thì chuyển về B2.
e. Kết quả được cho trong bảng sau:
Lần thử thứ 1 Lần thử thứ 35 Lần thử thứ 100
GA GA+FL GA GA+FL GA GA+FL
x1 0.53317 0.54056 0.52367 0.54489 0.51699 0.52863
x2 0.52933 0.54953 0.52627 0.54569 0.51106 0.52954
x3 0.52571 0.53832 0.53282 0.55695 0.50434 0.54802
0.00690 0.00364 0.01327 0.00550
f1 0.007445 0.002469
1 4 9 5
f2 0.97464 0.97682 0.97434 0.97779 0.97134 0.97564
Giá trị
0.4908 0.4902 0.4909 0.4903 0.4924 0.4906
trung bình

Bảng 3.1: Một số lời giải sử dụng GA và GA kết hợp FL của bài toán 1.
Trong bảng trên, cột GA là kết quả quá trình tiến hóa quần thể gồm 30 cá
thể sau 1000 thế hệ và sau 100 lần lặp thì cập nhật lại giá trị lý tưởng sử dụng độ
thích nghi đế đánh giá và chọn lọc cá thể, còn cột GA + FL là kết quả quá trình
tiến hóa quần thể gồm 30 cá thể sau 1000 thế hệ sử dụng giá trị tổ hợp các mục
tiêu để đánh giá và chọn lọc cá thể.
 1 1 
Theo tác giả [10], các hàm mục tiêu đạt giá trị tốt nhất khi x  , .
 3 3

Kết quả ở bảng trên cũng hoàn toàn phù hợp với kết quả này, giá trị các hàm
mục tiêu càng tiến dần tới Min khi giá trị của các xi xấp xỉ bằng nhau và
 1 1 
x  ,  . Việc sử dụng giải thuật GA và giải thuật đề xuất có những ưu
 3 3

nhược điểm nhất định, tùy vào mục đích yêu cầu của người sử dụng mà ta 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
37

thể chọn phương pháp giải cho bài toán cho phù hợp. Trong hai giải thuật này
thì giải thuật đề xuất cho kết quả mà giá trị trung bình của các hàm mục tiêu
nhỏ hơn, nghĩa là các cá thể được chọn đến quần thể cuối cùng trong giải thuật
này có tính đồng đều hơn.

3.3.1.2 Bài toán 2 [5]


 1
 f 1  2 * x1 * (1  g )  Min

 f 2  1 * (1  x ) * (1  g )  Min
 2
1



 g  100 * 5   (( xi  0.5) 2  cos(2 * ( xi  0.5)))
6

  
 2 


 xi  0,1, i  1,...n


n  6

a. Mã hóa
Bài toán này gồm có 2 hàm mục tiêu đều tiến đến Min, mỗi hàm bao
gồm 6 biến. Vì vậy, mỗi cá thể (lời giải của bài toán) được mã hóa là một
véctơ thực 9 chiều. Trong đó 6 thành phần đầu biểu diễn các giá trị biến xi
(i=1,…,6); thành phần thứ 7, thứ 8 để ghi giá trị các hàm mục tiêu f 1, f2 ứng
với cá thể này; thành phần thứ 9 để ghi giá trị hàm tổ hợp các mục tiêu của cá
thể khi sử dụng giải thuật đề xuất, và để ghi giá trị độ thích nghi của từng cá
thể khi sử dụng GA nhằm đánh giá trong việc chọn các cá thể đưa vào quần
thể mới .
b. Các toán tử lai, toán tử đột biến, các tham số và thuật toán của bài toán 2
đều tương tự như bài toán 1.
c. Kết quả được cho trong bảng sau:
Lần thử thứ 1 Lần thử thứ 35 Lần thử thứ 100
GA GA+FL GA GA+FL GA GA+FL

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
38

x1 0.90684 0.55335 0.41262 0.53912 0.29618 0.54436


x2 0.50682 0.50601 0.49908 0.49969 0.51565 0.50846
x3 0.46392 0.5006 0.50634 0.50023 0.51017 0.50211
x4 0.50353 0.50017 0.5002 0.50396 0.51134 0.50308
x5 0.48758 0.50112 0.50341 0.49889 0.49086 0.50028
x6 0.50382 0.50167 0.52386 0.50036 0.48621 0.50327
f1 1.8867 0.29993 0.47198 0.27919 0.37851 0.32652
f2 0.19384 0.24209 0.67188 0.23867 0.89945 0.2733
Giá trị trung bình 1.0408 0.2716 0.5737 0.2595 0.6422 0.3024
Thời gian chạy 0.092 0.196 0.109 0.218 0.12 0.237

Bảng 3.2: Một số lời giải sử dụng GA và GA kết hợp FL của bài toán 2.

Trong bảng trên, cột GA là kết quả quá trình tiến hóa quần thể gồm 30 cá
thể sau 1000 thế hệ và sau 100 lần lặp thì cập nhật lại giá trị lý tưởng sử dụng độ
thích nghi đế đánh giá và chọn lọc cá thể, còn cột GA + FL là kết quả quá trình
tiến hóa quần thể gồm 30 cá thể sau 1000 thế hệ sử dụng giá trị tổ hợp các mục
tiêu để đánh giá và chọn lọc cá thể.
Theo tác giả [5], các hàm mục tiêu đạt giá trị tốt nhất khi x=0.5. Kết quả
ở bảng trên cũng hoàn toàn phù hợp với kết quả này, giá trị các hàm mục tiêu
càng tiến dần tới Min khi giá trị của các xi xấp xỉ bằng nhau và x  0.5. Trong
hai giải thuật này thì giải thuật đề xuất cho kết quả mà giá trị trung bình của
các hàm mục tiêu nhỏ hơn. Tuy nhiên, giá trị mục tiêu thì trong mỗi lần chạy
lại cho những kết quả không cố định nên tùy vào yêu cầu của người nhận lời
giải mà chọn phương pháp phù hợp.

3.3.1.3. Bài toán 3 [10]

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
39


 F1(x)  x 1  min

 F2(x)  g(x) * (1 - (x1 /g(x)))  min

 n

g(x) = 1 + 9 * ( x i )/(n - 1)
 i2

 x  [0,1]; i  1..30
 n  30

a. Mã hóa
Bài toán này gồm có 2 hàm mục tiêu đều tiến đến Min, mỗi hàm bao
gồm 30 biến. Vì vậy, mỗi cá thể (lời giải của bài toán) được mã hóa là một
véctơ thực 33 chiều. Trong đó 30 thành phần đầu biểu diễn các giá trị biến xi
(i=1,…,30); thành phần thứ 31, thứ 32 để ghi giá trị các hàm mục tiêu f 1, f2
ứng với cá thể này; thành phần thứ 33 để ghi giá trị hàm tổ hợp các mục tiêu
của cá thể khi sử dụng giải thuật đề xuất, và để ghi giá trị độ thích nghi của
từng cá thể khi sử dụng GA nhằm đánh giá trong việc chọn các cá thể đưa vào
quần thể mới.
b. Các toán tử lai, toán tử đột biến, các tham số và thuật toán của bài toán 3
đều tương tự như bài toán 1.
c. Kết quả được cho trong bảng sau:

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
40

Lần thử thứ 1 Lần thử thứ 35 Lần thử thứ 100

GA GA+FL GA GA+FL GA GA+FL

x1 0.15482 0.084058 0.62662 0.18499 0.51478 0.084101

x2 0.16585 0.12662 0.10642 0.5028 0.33008 0.26395

x3 0.26327 0.29386 0.22727 0.11887 0.081155 0.22197

x4 0.15009 0.077826 0.2944 0.36481 0.43089 0.097028

x5 0.63224 0.30424 0.11755 0.46638 0.42374 0.15209

x6 0.34625 0.26004 0.34936 0.17919 0.1877 0.1981

x7 0.29794 0.81561 0.17381 0.09913 0.38651 0.013321

x8 0.28267 0.25818 0.48224 0.11706 0.22452 0.39959

x9 0.44043 0.44251 0.18435 0.44914 0.31189 0.071752

x10 0.19174 0.12697 0.30965 0.15359 0.38772 0.22791

x11 0.20197 0.31449 0.17657 0.15663 0.43363 0.3182

x12 0.083901 0.26798 0.34444 0.3536 0.61304 0.43493

x13 0.55726 0.2706 0.30772 0.22121 0.27541 0.20517

x14 0.49689 0.024928 0.65522 0.24375 0.14927 0.11059

x15 0.44053 0.32172 0.49138 0.15509 0.32192 0.023817

x16 0.47128 0.40979 0.61357 0.60229 0.32644 0.2227

x17 0.20155 0.096655 0.09922 0.31347 0.099068 0.38282

x18 0.11034 0.16986 0.56066 0.34096 0.2856 0.14097

x19 0.082088 0.20184 0.78217 0.32699 0.20936 0.13578

x20 0.35177 0.44851 0.34502 0.20571 0.60769 0.67773

x21 0.20732 0.18577 0.084859 0.14799 0.61583 0.30763

x22 0.28223 0.41607 0.18523 0.080261 0.1953 0.61245

x23 0.44567 0.144 0.11284 0.34933 0.37708 0.32425

x24 0.078637 0.1561 0.15885 0.15292 0.18368 0.2292

x25 0.12173 0.64318 0.49164 0.3942 0.2147 0.098754


41

x26 0.3834 0.53869 0.43095 0.21492 0.16024 0.76411

x27 0.18261 0.21196 0.44294 0.1206 0.059399 0.18899

x28 0.35402 0.17371 0.13455 0.31471 0.36455 0.64891

x29 0.24522 0.12535 0.29752 0.16653 0.41993 0.42386

x30 0.19819 0.10525 0.082369 0.32897 0.27481 0.19759

f1 0.15482 0.084058 0.62662 0.18499 0.51478 0.084101

f2 5.0285 4.9424 4.8976 4.7289 4.9685 5.0342

Giá trị trung bình 2.602948 2.553414 2.777312 2.515 2.747602 2.626977

Bảng 3.3: Một số lời giải sử dụng GA và GA kết hợp FL của bài toán 3.
Trong bảng trên, cột GA là kết quả quá trình tiến hóa quần thể gồm 30 cá thể
sau 1000 thế hệ và sau 100 lần lặp thì cập nhật lại giá trị lý tưởng sử dụng độ thích
nghi đế đánh giá và chọn lọc cá thể, còn cột GA + FL là kết quả quá trình tiến hóa
quần thể gồm 30 cá thể sau 1000 thế hệ sử dụng giá trị tổ hợp các mục tiêu để đánh
giá và chọn lọc cá thể.
Theo tác giả [10], các hàm mục tiêu đạt giá trị tốt nhất khi x1  [0,1] và
xi=0. Kết quả khi chạy chương trình cũng tương đối phù hợp với kết quả này.
Việc sử dụng giải thuật GA và giải thuật đề xuất có những ưu nhược điểm nhất
định, tùy vào mục đích yêu cầu của người sử dụng mà ta có thể chọn phương
pháp giải cho bài toán cho phù hợp.
3.3.2. Bài toán tối ưu đa mục tiêu điều khiển mức H trong bình khuấy trộn liên
tục

3.3.2.1. Bài toán.


Bài toán đặt ra là có hai dòng dung dịch độc lập, một là hỗn hợp dòng
nhiên liệu gồm: đường, chất phụ gia, hương liệu... và dòng thứ hai là nước tinh
khiết cùng được điều chỉnh lưu lượng Q1, Q2 qua van khí nén đổ vào bể trộn
khuấy liên tục. Đầu ra của bình trộn là lưu lượng dung dịch Q3 thay đổi liên tục
và phụ thuộc vào sự vận hành nhanh hay chậm của các công đoạn tiếp theo trong
42

dây truyền. Sự thay đổi liên tục của Q3 làm cho mức dung dịch H thay đổi theo.
Do vậy trong quá trình sản xuất thì mức dung dịch H liên tục biến động, nên vấn
đề giữ cho mức H ổn định nhanh chóng và chính xác được quan tâm. Từ sơ đồ
cấu trúc của dây truyền ta đưa ra hai hàm mục tiêu nhằm đáp ứng tối ưu các vấn
đề trên như sau:
+ Mục tiêu 1: Để ổn định mức dung dịch H chính xác nhất (tức là sai lệch
tĩnh e(t) là nhỏ nhất) ta sử dụng phiếm hàm:

J1   E 2 (t )dt  min (3.1)

+ Mục tiêu 2: Để mức dung dịch H ổn định nhanh nhất (tức là thời gian
quá độ bé nhất) ta sử dụng phiếm hàm:

J2   E (t )dt  min (3.2)

Từ đó dùng giải thuật di truyền giải bài toán hai mục tiêu tối ưu trên với ẩn
bài toán là bộ thông số của bộ điều khiển (có thể là cả 3 hệ số: KP; KI; KD của bộ
điều khiển PID). Sau đó lấy nghiệm của bài toán tối ưu hai mục tiêu trên lắp vào
bộ điều khiển từ đó mô phỏng kết quả điều khiển mức dung dich H trên Matlab
Simulink và quan sát và đánh giá kết quả.
3.3.2.2. Tính toán hai hàm mục tiêu.
Từ sơ đồ khối điều khiển mức dung dịch H trong bình trộn (hình 3.1), giả sử
bộ điều khiển với luật điều khiển là PD ta có hàm truyền của bộ điều khiển như
sau: WBDK (s)  KP  KD s.
43

U(s)

E(s) Q1 1 H
Uđk
PD K W1 s 1

(-)

H(s
+ )

1
K W2 s
Q2 H
2

WH

Hình 3.1 Sơ đồ khối điều khiển mức bình trộn


với bộ điều khiển PD

Nếu khoảng giá trị của các hệ số KD và KP được chọn như sau:
 25  K P  100

 1,35  K D  50
thì nghiệm của phương trình đặc trưng là:
44

 1,4 K D  1  1,4 K  1  0,084.K P


2

 k1  1,4 K D  1    D

 0.03 0.03

 1,4 K D  1   1,4 K D  1  1,4 K  1  0,084.K P
2

 k2  
D

 0.03 0.03
Khi đó nghhiệm của phương trình vi phân (1) như sau:

E (t )  C1e k1t  C2e k2t .


Trong đó, C1 và C2 là hằng số. Không mất tính tổng quát chọn C1=C2= 1, ta có
một nghiệm riêng của phương trình vi phân (3.1) là:

E (t )  e k1t  e k2t .

Thay E (t )  e 1  e 2 vào các hàm mục tiêu như sau:


kt k t

+ Mục tiêu 1: Để ổn định mức dung dịch H chính xác nhất (tức là sai lệch
tĩnh E(t) là nhỏ nhất) ta sử dụng phiếm hàm:

J1   E 2 (t )dt  min

 J1    ek1t  ek2t  dt
2
 min


 J1   e 2 k1t  2e k1  k2 t  e 2 k2t  dt  min
2

1 2 k1t 2 1 2 k 2t
 J1  e  e k1  k2 t  e  min
2k1 k1  k2 2k 2

+ Mục tiêu 2: Để mức dung dich H ổn định nhanh nhất (tức là thời gian
quá độ bé nhất) ta sử dụng phiếm hàm:

J2   E (t )dt  min
 e k1t e k2t 
 J2      min
 k1 k2 
Trong đó:
45

 1,4 K D  1  1,4 K  1  0,084.K P


2

 k1  1,4 K D  1    D

 0.03 0.03

 1,4 K D  1   1,4 K D  1  1,4 K  1  0,084.K P
2

 k2  
D

 0.03 0.03
Sau khi thay t = 3(s) và chọn  = 0,03 vào các hàm mục rút ra được bài toán điều
khiển tối ưu đa mục tiêu cho bình khuấy trộn liên tục với các ràng buộc như sau:
 1 2 k1t 2 1 2 k2t
 J1  e  e k1  k2 t  e  min
2k1 k1  k2 2k 2

  ek1t ek2t 
 J2      min
  k1 k2 
 25  K P  100

 1,35  K D  50
46

3.3.2.3. Lưu đồ thuật toán

Bắt đầu

Khởi tạo các tham số:


Số lần lặp,
Xác suất đột biến

Khởi tạo quần thể


ban đầu (ngẫu nhiên)

Dem = 1

1. Chọn ngẫu nhiên 2 cá thể x1, x2


2. Lai ghép tạo 2 con y1, y2
3. Đột biến y1 tuỳ theo xác suất đột biến pm
4. Nếu y1 “tốt hơn” x1 thì thay x1 bởi y1
Nếu y2 “tốt hơn” x2 thì thay x2 bởi y2
5. Dem = Dem +1

Dem <= Số lần lặp

Ghi nhận quần thể cuối cùng

Kết thúc

Hình 3.2 Lưu đồ thuật toán


47
48

Ghi chú:
* Việc đánh giá cá thể “tốt hơn” như sau:
1) Trong 200 lần tiến hoá đầu tiên tiêu chí đánh giá dựa trên hàm mục tiêu f1
2) Trong 200 lần tiến hoá tiếp theo tiêu chí đánh giá dựa trên hàm mục tiêu f2
3) Trong 200 lần tiến hoá cuối cùng tiêu chí đánh giá dựa trên cả hai hàm
mục tiêu với trọng số f1, f2
Các tham số này hoàn toàn có thể thay đổi tuỳ theo ý của người sử dụng.
Các tham số dùng trong thuật toán này:
 Kích cỡ quần thể: 30.
 Xác suất lai ghép = 1.
 Xác suất đột biến pm = 0,1.
 Toán tử lai ghép là lai số học.
 Toán tử đột biến là đột biến đều.
 Số lần tiến hoá: 600.
3.3.2.4. Kết quả chạy chương trình tính toán bằng giải thuật.

STT KP KD J1 J2
1 25.895 18.995 -0.00014 -0.01473
2 25.895 19.113 -0.00015 -0.01517
3 25.895 18.759 -0.00013 -0.01387
4 25.895 18.887 -0.00014 -0.01433
5 25.895 19.195 -0.00016 -0.01548
6 25.895 18.824 -0.00013 -0.01411
7 25.895 19.445 -0.00017 -0.01646
8 25.895 18.956 -0.00014 -0.01458
9 25.895 18.349 -0.00011 -0.01246
10 25.895 19.456 -0.00017 -0.0165
11 25.895 18.52 -0.00011 -0.01304
12 25.895 19.112 -0.00015 -0.01517
13 25.895 19.331 -0.00017 -0.01601
49

14 25.895 18.915 -0.00014 -0.01443


15 25.895 19.111 -0.00015 -0.01516
16 25.895 19.009 -0.00014 -0.01478
17 25.895 19.226 -0.00016 -0.0156
18 25.895 18.37 -0.00011 -0.01253
19 25.895 19.389 -0.00017 -0.01623
20 25.895 19.372 -0.00017 -0.01617
21 25.895 19.346 -0.00017 -0.01606
22 25.895 18.946 -0.00014 -0.01455
23 25.895 19.408 -0.00017 -0.01631
24 25.895 19.2 -0.00016 -0.0155
25 25.895 19.24 -0.00016 -0.01565
26 25.895 19.325 -0.00017 -0.01598
27 25.895 19.397 -0.00017 -0.01626
28 25.895 18.957 -0.00014 -0.01459
29 25.895 19.283 -0.00016 -0.01582
30 25.895 19.026 -0.00014 -0.01484

Bảng 3.2 Kết quả chạy chương trình giải thuật di truyền
50

3.3.3. Kết quả mô phỏng trên Matlab Simulink.


Thay bộ giá trị tối ưu KD và KP vào thông số của bộ điều khiển PD, sau đó
mô phỏng sơ đồ khối điều khiển mức dung dịch H như sau:

Hình 3.3 Sơ đồ mô phỏng điều khiển mức H trên Simulink

*) Kết quả mô phỏng (với bộ thông sô thứ 9 trong bảng 3.2).

Hình 3.4 Kết quả mô phỏng với bộ giá trị thứ 9


của KD và KP trong bảng 3.2
51

*) So sánh kết quả mô phỏng (với bộ thông số khác KP =25.895 và KD = 30)

Hình 3.5 So sánh kết quả mô phỏng với 2 bộ giá trị


thứ 9 và bộ số khác của KP và KD
52

Nhận xét:
Qua kết quả mô phỏng trên Matlab Simulink với các bộ giá trị của (KP và
KD) lấy từ tập nghiệm của thuật toán giải thuật di truyền, ta có thể tìm thấy một
bộ nghiệm tối ưu mà ở đó ta thấy chất lượng điều khiển mức dung dịch H tăng rõ
rệt, độ sai lệch và thời gian quá độ đều nhỏ hơn so với các bộ giá trị khác.
Kết luận: phần trên trình bày những vấn đề ứng dụng cơ sở lý thuyết để giải bài
toán tối ưu đa mục tiêu điều khiển mức H trong bình khuấy trộn liên tục
53

KẾT LUẬN

Sau khi tìm hiểu đề tài: “Kết hợp logic mờ và giải thuật di truyền giải bài
toán tối ưu đa mục tiêu.”, em đã hiểu được một số vấn đề sau:
- Những nội dung cơ bản về giải thuật di truyền nhất là giải thuật di truyền
mã hoá số thực và logic mờ.
- Một số phương pháp giải bài toán tối ưu đa mục tiêu.
- Bước đầu nắm được kỹ thuật sử dụng giải thuật di truyền kết hợp với logic
mờ để giải bài toán tối ưu đa mục tiêu trong hai bài toán cụ thể.
- Biết xây dựng được chương trình bằng ngôn ngữ lập trình matlab 7.0.
Hướng phát triển
- Áp dụng cho lớp các bài toán khác phức tạp hơn.
- Phát triển thuật toán hoặc tích hợp với các kỹ thuật khác như mạng nơron
làm tăng hiệu suất tính toán và xử lý mềm dẻo hơn.
Do thời gian và trình độ còn hạn chế nên đề tài chỉ dừng lại ở mức đơn giản,
chương trình ứng dụng còn hạn chế, vì vậy đề tài không tránh khỏi những thiếu
sót cần bổ sung sửa chữa. Em mong nhận được sự nhận xét và góp ý của các thầy,
cô giáo và các bạn để đề tài được hoàn thiện hơn.

Thái Nguyên, tháng 09 năm 2012


Học viên

Đào Ngọc Tuất


54

TÀI LIỆU THAM KHẢO


Tiếng Việt

1. Hồ Thuần, Đặng Thanh Hà, “Logic mờ và ứng dụng”, NXB ĐHQGHN, 2007.

2. Nguyễn Đình Thúc, “Lập trình tiến hoá”, NXB KH&KT, 2003.

3. Bùi Minh Trí, “Quy hoạch toán học”, NXB KHKT, 2006.

4. Vũ Mạnh Xuân, “Một số giải pháp ứng dụng giải thuật di truyền trong tối ưu
đa mục tiêu”.

Tiếng Anh

5. C. Grosan and A. Abraham (2007), “Hybrid Line Search for Multiobjective


Optimization”.

6. Goldberg, D.E. (1989), “Genetic algorithms in search, optimization and


machine learning”, Addison-Wesley, Reading, MA.

7. K. Deb (1998), “Non-linear Goal Programming Using Multi-Objective Genetic


Algorithms”, Technical Report, No.CI-60/98.

8. K. Deb (1999), “Multi-Objective Genetic Algorithms: Problem Difficulties


and Construction of Test Problems”, Evolutionary Computation, 7(3),
205-230.

9. K.Deb (1999), “Multi-Objective Evolutionary Algorithms: Introducing Bias


Among Pareto-Optimal Solution”, KanGAL, Report No. 99002.

10. Kalyanmoy Deb, Associate Member, IEEE, Amrit, Sameer Agarwal, and T.
Meyarivan, A Fast and Elitist Multiobjective Genetic Algorithm: NSGA
– II.
55

PHỤ LỤC

Chương trình tính toán bài toán tối ưu đa mục tiêu điều khiển mức
dung dịch H của bình khuấy trộn liên tục bằng giải thuật di truyền.

1. Khai báo hệ số k1.


%Tinh cac he so
function ff1=k1(kp,kd);
ff1=((-1.4*kd)-1-sqrt((1.4*kd+1)^2-0.084*kp))/0.03;
%end;

2. Khai báo hệ số k2.


function ff2=k2(kp,kd);
ff2=((-1.4*kd)-1+sqrt((1.4*kd+1)^2-0.084*kp))/0.03;
return;
%end;

3. Khai báo hàm mục tiêu J1.


function mt1=f1(kp,kd);
kk1=k1(kp,kd); kk2=k2(kp,kd);
mt1=(1/(2*kk1)*exp(6*kk1))+(1/(2*kk2)*exp(6*kk2))+(2/(kk1+kk2))*exp(3*(kk
1+kk2));
return;
%end;

4. Khai báo hàm mục tiêu J2.


function mt2=f2(kp,kd);
kk1=k1(kp,kd); kk2=k2(kp,kd);
mt2=(exp(3*kk1))/kk1+(exp(3*kk2))/kk2;
return;
%end;
56

5. Chương trình giải bài toán tối ưu hai mục tiêu J1, J2.
%chuong trinh bai toan điều khiển mức
clear; format long g;
left1=25; righ1=100;
left2=1.35; righ2=50;
lap=600; %so lan lap
pm=0.1;
m=30; n=4; %m: kich co QT; n: chieu;
pm=0.1; % xac suat dot bien
x=zeros(m,n); %Khoi tao quan the x; x(1): kp; x(2): kd; x(3):f1; x(4): f2
xx=x;
mt=zeros(1,2);
y=zeros(2,n); %cac ca the con
t1=clock;
%khoi tao
for v1=1:m;
kp=left1+rand*(righ1-left1);
kd=left2+rand*(righ2-left2);
x(v1,1)=kp;
x(v1,2)=kd;
x(v1,3)=f1(kp,kd);
x(v1,4)=f2(kp,kd);
end;
m1=min(x(:,3))
m2=min(x(:,4))
mt(1)=m1; mt(2)=m2; %muc tieu ly tuong
xx=x;
for v1=1:lap;
57

if rem(v1,100)==0;
mt(1)=min(xx(:,3));
elseif rem(v1,200)==0;
mt(2)=min(xx(:,4));
end;
%lai ghep
i1=1+fix(m*rand);
i2=1+fix(m*rand);
kp1=xx(i1,1); kp2=xx(i2,1); %lai 1 diem
kd1=xx(i1,2); kd2=xx(i2,2);
r=rand;
kpm=r*kp1+(1-r)*kp2; %Lai so hoc
kdm=r*kd1+(1-r)*kd2;
%kpm=kp2;kdm=kd1;
y(1,1)=kpm; y(1,2)=kdm;
y(1,3)=f1(kpm,kdm); y(1,4)=f2(kpm,kdm);
%kpm=(1-r)*kp1+r*kp2; kdm=(1-r)*kd1+r*kd2;
kpm=kp1; kdm=kd2;
if rand<pm; %dot bien
if rand<0.5;
kpm=left1+rand*(righ1-left1);
else
kdm=left2+rand*(righ2-left2);
end;
end;
y(2,1)=kpm; y(2,2)=kdm;
y(2,3)=f1(kpm,kdm); y(2,4)=f2(kpm,kdm);
if v1<200;
58

if (xx(i1,3)>y(1,3));
xx(i1,:)=y(1,:);
end;
if (xx(i2,3)>y(2,3));
xx(i2,:)=y(2,:);
end;
elseif v1<400;
if (xx(i1,4)>y(1,4));
xx(i1,:)=y(1,:);
end;
if (xx(i2,4)>y(2,4));
xx(i2,:)=y(2,:);
end;
else
if (xx(i1,3)*0.4+xx(i1,4)*0.6>y(1,3)*0.4+y(1,4)*0.6);
xx(i1,:)=y(1,:);
end;
if (xx(i2,3)*0.4+xx(i2,4)*0.6>y(2,3)*0.4+y(2,4)*0.6);
xx(i2,:)=y(2,:);
end;
end;
end;
t2=etime(clock,t1) %tinh thoi gian chay
%200 lan lap dau toi uu theo f2; 200 lan sau theo f1
%cac lan lap cuoi toi uu theo trong so tu bien doi

You might also like