Tài liệu Luận án Một giải thuật di truyền giải bài toán cắt vật tư một chiều với nhiều kích cỡ vật liệu thô: BỘ GIÁO DỤC & ĐÀO TẠO VIỆN KH & CN VIỆT NAM
VIỆN CÔNG NGHỆ THÔNG TIN
PHAN THỊ HOÀI PHƯƠNG
MỘT GIẢI THUẬT DI TRUYỀN
GIẢI BÀI TOÁN CẮT VẬT TƯ MỘT CHIỀU
VỚI NHIỀU KÍCH CỠ VẬT LIỆU THÔ
LUẬN ÁN TIẾN SĨ TOÁN HỌC
Hà Nội – 2011
BỘ GIÁO DỤC & ĐÀO TẠO VIỆN KH & CN VIỆT NAM
VIỆN CÔNG NGHỆ THÔNG TIN
PHAN THỊ HOÀI PHƯƠNG
MỘT GIẢI THUẬT DI TRUYỀN
GIẢI BÀI TOÁN CẮT VẬT TƯ MỘT CHIỀU
VỚI NHIỀU KÍCH CỠ VẬT LIỆU THÔ
Chuyên ngành: Đảm bảo toán học cho máy tính
và hệ thống tính toán
Mã số: 62 46 35 01
LUẬN ÁN TIẾN SĨ TOÁN HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC :
1. PGS.TS. LƯƠNG CHI MAI
2. TS. NGUYỄN VĂN HÙNG
Hà Nội – 2011
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi. Các kết quả được viết
chung với các tác giả khác đã được sự nhất trí của đồng tác giả khi đưa vào luận án.
Các kết quả nêu trong luận án là trung thực và chưa từng được ai công bố trong bất kỳ
công trình nào.
Tác giả
Phan Thị Hoài Phương
LỜI CẢM ƠN
Luận án được thực hiện và hoàn thành dưới sự ...
92 trang |
Chia sẻ: haohao | Lượt xem: 1300 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Luận án Một giải thuật di truyền giải bài toán cắt vật tư một chiều với nhiều kích cỡ vật liệu thô, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
BỘ GIÁO DỤC & ĐÀO TẠO VIỆN KH & CN VIỆT NAM
VIỆN CÔNG NGHỆ THÔNG TIN
PHAN THỊ HOÀI PHƯƠNG
MỘT GIẢI THUẬT DI TRUYỀN
GIẢI BÀI TOÁN CẮT VẬT TƯ MỘT CHIỀU
VỚI NHIỀU KÍCH CỠ VẬT LIỆU THÔ
LUẬN ÁN TIẾN SĨ TOÁN HỌC
Hà Nội – 2011
BỘ GIÁO DỤC & ĐÀO TẠO VIỆN KH & CN VIỆT NAM
VIỆN CÔNG NGHỆ THÔNG TIN
PHAN THỊ HOÀI PHƯƠNG
MỘT GIẢI THUẬT DI TRUYỀN
GIẢI BÀI TOÁN CẮT VẬT TƯ MỘT CHIỀU
VỚI NHIỀU KÍCH CỠ VẬT LIỆU THÔ
Chuyên ngành: Đảm bảo toán học cho máy tính
và hệ thống tính toán
Mã số: 62 46 35 01
LUẬN ÁN TIẾN SĨ TOÁN HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC :
1. PGS.TS. LƯƠNG CHI MAI
2. TS. NGUYỄN VĂN HÙNG
Hà Nội – 2011
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi. Các kết quả được viết
chung với các tác giả khác đã được sự nhất trí của đồng tác giả khi đưa vào luận án.
Các kết quả nêu trong luận án là trung thực và chưa từng được ai công bố trong bất kỳ
công trình nào.
Tác giả
Phan Thị Hoài Phương
LỜI CẢM ƠN
Luận án được thực hiện và hoàn thành dưới sự hướng dẫn của PGS.TS Lương Chi
Mai và TS. Nguyễn Văn Hùng. Trước hết, tôi xin bày tỏ lòng biết ơn sâu sắc đến cô
Lương Chi Mai và thầy Nguyễn Văn Hùng, những ng ười thầy đã tận tình hướng dẫn,
chỉ bảo, giúp đỡ tôi học tập và nghiên cứu.
Xin trân trọng cảm ơn Ban lãnh đạo Viện Công nghệ thông tin và bộ phận quản lý
nghiên cứu sinh đã nhiệt tình giúp đỡ và tạo điều kiện thuận lợi để tôi hoàn thành luận
án này.
Tôi xin trân trọng cảm ơn Ban lãnh đạo Học Viện Công nghệ Bưu chính viễn th ông
đã tạo điều kiện cho tôi học tập, nghiên cứu và thực hiện luận án.
Tôi cũng xin cảm ơn Bộ phận kỹ thuật Nhà máy ống thép Việt -Đức đã cho phép tôi
thu thập số liệu và triển khai mô hình thử nghiệm ứng dụng giải bài toán cắt vật tư.
Cuối cùng tôi xin dành tặng luận án này cho những người thân yêu: bố mẹ, chồng,
con gái và con trai của tôi như muốn nói một lời cảm ơn chân thành nhất vì sự giúp
đỡ, sự động viên không giới hạn đối với tôi. Họ chính là nơi khơi nguồn và cũng là
đích hướng tới trong học tập và nghiên cứu của tôi.
iMỤC LỤC
MỞ ĐẦU ........................................................................................................................1
Chương 1. CÁC KIẾN THỨC CƠ SỞ LIÊN QUAN ...............................................9
1.1. Bài toán cắt vật tư một chiều với một loại vật liệu thô và thuật giải ..............9
1.1.1. Mô hình Gilmore-Gomory.....................................................................10
1.1.2. Mô hình Arc-flow của Valerio de Carvalho ..........................................13
1.2. Giải thuật di truyền........................................................................................19
1.3. Kết luận .........................................................................................................25
Chương 2. BÀI TOÁN CẮT VẬT TƯ MỘT CHIỀU VỚI NHIỀU KÍCH THƯỚC
VẬT LIỆU THÔ: MÔ HÌNH VÀ GIẢI PHÁP ...........................................................26
2.1. Phát biểu bài toán cắt vật tư một chiều với nhiều kích thước vật liệu thô theo
Gilmore và Gomory..................................................................................................26
2.2. Phát biểu mới của bài toán OneDCSP_M .....................................................28
2.3. Giải thuật di truyền lai ghép giải bài toán OneDCSP_M ..............................32
2.4. Kết quả tính toán ...........................................................................................40
2.5. Kết luận .........................................................................................................50
Chương 3. HỆ THỐNG ĐA TÁC TỬ GMAS-OneDCSP_M GIẢI BÀI TOÁN
OneDCSP_M . .........................................................................................................52
3.1. Yêu cầu của hệ thống GMAS-OneDCSP_M ................................................54
3.2. Thiết kế hệ thống GMAS-OneDCSP_M .......................................................55
3.2.1. Kiến trúc hệ thống GMAS-OneDCSP_M .............................................55
3.2.2. Thiết kế chi tiết hệ thống GMAS-OneDCSP_M ...................................58
3.3. Đánh giá tính hiệu quả của hệ thống GMAS-OneDCSP_M .........................65
3.4. Kết luận .........................................................................................................67
KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO ............................................68
DANH MỤC CÁC CÔNG TRÌNH CỦA TÁC GIẢ...................................................70
TÀI LIỆU THAM KHẢO............................................................................................71
PHỤ LỤC .....................................................................................................................78
ii
DANH MỤC THUẬT NGỮ
Thuật ngữ tiếng Việt Thuật ngữ tiếng Anh
Bài toán chủ Master Problem – MP
Bài toán chủ giới hạn Restricted Master Problem – RMP
Bài toán con định giá Subproblem – pricing problem
Điểm cực Extreme point
Giải thuật di truyền Genetic Algorithm – GA
Giá suy giảm Reduced cost
Lập trình tiến hóa Evolutionary Programming-EP
Nới lỏng tuyến tính liên tục Linear continuous relaxation
Nới lỏng tuyến tính liên tục mạnh Strong linear continuous relaxation
Nới lỏng tuyến tính liên tục yếu Weak linear continuous relaxation
Phương pháp nhánh cận Branch and Bound – B&B
Phương pháp phân nhánh và định giá Branch and Price – B&P
Phương pháp phân nhánh, định giá và
cắt
Branch and Price and Cut
Phương pháp tạo sinh cột Column Generation
Tia cực Extreme ray
Tính chất làm tròn nguyên Integer Round-Up Property – IRUP
Tính chất làm tròn nguyên cải biên Modified Integer Round-Up Property –
MIRUP
Tính toán tiến hóa Evolutionary Computation
Thuật toán tiến hóa Evolutionary Algorithm- EA
iii
DANH MỤC CÁC KÝ HIỆU, CỤM TỪ VIẾT TẮT
Ký hiệu Thuật ngữ
AF Thuật toán dựa trên mô hình luồng cung (Arc-Flow model) của
Carvalho giải bài toán OneDCSP_S
A-Team Asynchronous Team- Kiến trúc không đồng bộ sử dụng trong hệ
đa tác tử
C&P Cutting and Packing – Cắt vật tư và đóng hàng
CSP Cutting Stock Problem -Bài toán cắt vật tư
FIPA Foundation for Intelligent Physical Agents
GA-AF Genetic Algorithm- Arc-Flow Model – Thuật toán lai ghép giải
thuật di truyền và thuật toán AF
GMAS-
OneDCSP_M
Genetic Multi Agent System- Hệ thống gen đa tác tử giải bài toán
OneDCSP_M
JADE Java Agent DEvelopment Framework
LP Linear Programming – Quy hoạch tuyến tính
OneDCSP One Dimension Cutting Stock Problem-Bài toán cắt vật tư một
chiều
OneDCSP_M One Dimensional Cutting Stock Problem with Multiple Stock
Sizes -Bài toán cắt vật tư một chiều với nhiều kích thước vật liệu
thô
OneDCSP_M-
Solver
Tác tử giải bài toán OneDCSP_M
OneDCSP_S One Dimensional Cutting Stock Problem with Single Stock Sizes
-Bài toán cắt vật tư một chiều với một loại kích thước vật liệu thô
OneDCSP_SLP Nới lỏng tuyến tính của bài toán OneDCSP_S
OneDCSP_S-
Solver
Tác tử giải bài toán OneDCSP_S
iv
DANH MỤC CÁC BẢNG BIỂU
Bảng 2.1 Tổng kết chất lượng nghiệm so với kết quả của Belov -Scheithauer ............ 44
Bảng 2.2 Kết quả tính toán của Silvio A. Araujo và đồng sự ...................................... 45
Bảng 2.3 Phân bố độ chênh lệch nghiệm so với kết quả của Belov -Scheithauer ........ 46
Bảng 2.4 Thống kê thời gian tính toán ......................................................................... 48
Bảng 2.5 Thống kê phân bố thời gian tính toán ........................................................... 49
vDANH MỤC CÁC HÌNH VẼ
Hình 0.1 Sơ đồ các cách tiếp cận giải bài toán cắt vật tư một chiều…………………. 6
Hình 1-1 Các phương án cắt trong bài toán OneDCSP_S ........................................... 10
Hình 1-2 Ví dụ về mạng lưới và phương án cắt với L=9 và các li {4,3,2} ............... 13
Hình 1-3 Một thế hệ mới được hình thành qua pha chọn lọc và pha tái tổ hợp. ......... 22
Hình 2-1 Các phương án cắt trong bài toán OneDCSP_M .......................................... 27
Hình 2-2 Biểu đồ thống kê độ chênh lệch so với kết quả của Belov -Scheithauer....... 47
Hình 2-3 Biểu đồ thống kê phân bổ thời gian tính toán ............................................... 50
Hình 3-1 Kiến trúc của A-Team................................................................................... 53
Hình 3-2 Biểu đồ tương tác giữa người dùng và hệ thống GMAS -OneDCSP_M....... 55
Hình 3-3 Kiến trúc hệ thống GMAS-OneDCSP_M..................................................... 56
Hình 3-4 Cấu trúc bộ nhớ chung tương ứng với mỗi bài toán OneDCSP_M .............. 59
Hình 3-5 Biểu đồ Use Case của hệ thống GMAS-OneDCSP_M ................................ 63
1MỞ ĐẦU
Dân số thế giới tăng nhanh và đời sống vật chất của con người không ngừng
nâng cao. Điều đó dẫn tới nhu cầu về tài nguyên thiên nhiên ngày càng lớn. Chúng
ta đã và đang chứng kiến sự cạn kiệt của tài nguyên thiên nhiên, nhất là những
nguồn tài nguyên không tái tạo được như khoáng sản. Để phát triển bền vững, việc
sử dụng tài nguyên một cách hiệu quả luôn là vấn đề thời sự của toàn nhân loại.
Trong các ngành kinh tế như chế tạo máy, xây dựng, dệt may… việc sử dụng hiệu
quả tài nguyên thể hiện bởi việc sử dụng hiệu quả các loại vật liệu thô phục vụ cho
mục đích kinh tế.
Lĩnh vực cắt vật tư và đóng hàng (Cutting & Packing-C&P) bao gồm nhiều bài
toán tổ hợp, hình học, các mô hình và thuật toán lý thuyết cũng như thực tiễn liên
kết với nhau. Mục tiêu chính của lĩnh vực này là sắp xếp một cách hiệu quả các đối
tượng được mô tả bằng ngôn ngữ hình học trong một miền lớn hơn. Các bài toán
sau đây là các bài toán điển hình cho chủ đề này: Cắt vật tư và bài toán phế thải, xếp
thùng (bin packing), bài toán sắp ba lô (knapsack), cân bằng luồng (line balancing),
bài toán phân phối bộ nhớ và lập lịch cho bộ đa xử lý (memory allocation and
multiprocessor scheduling problem)… Các bài toán cắt vật tư và đóng hàng được
phát biểu và xử lý trong nhiều ngành khoa học khác nhau như khoa học quản lý,
khoa học kỹ thuật, khoa học máy tính và công nghệ thông tin, toán học và vận trù
học. Chúng là các bài toán thực tế đặt ra cho các ngành công nghiệp như công
nghiệp kính, thép, giấy, da, may mặc, vận tải và hậu cần.
Từ giữa thế kỷ trước đã có nhiều cá ch tiếp cận giải các bài toán cắt vật tư và
đóng hàng được đề xuất. Công trình khởi nguồn cho chủ đề này do
L.V.Kantorovich đưa ra năm 1939 khi ông đề xuất áp dụng các mô hình toán học để
2tổ chức và lập kế hoạch sản xuất. Các mô hình này được phát biểu dướ i dạng các
bài toán Quy hoạch nguyên và được chỉ ra thuộc lớp các bài toán NP-hard. Mô hình
có một số nhược điểm như có nới lỏng liên tục yếu và tính đối xứng nên việc áp
dụng nó trong các bài toán thực tiễn tỏ ra không hiệu quả.
Để khắc phục nhược điểm củ a mô hình trên, một mô hình khác cùng với kỹ thuật
giải hiệu quả bài toán cắt vật tư một chiều được Gilmore và Gomory đề xuất vào
những năm 60 thế k ỷ trước. Trong kỹ thuật này, các tác giả sử dụng công cụ quy
hoạch tuyến tính để giải bài toán nới lỏng liên tục dẫn xuất từ bài toán quy hoạch
nguyên. Nghiệm của bài toán quy hoạch nguyên ban đầu sẽ nhận được bằng các kỹ
thuật làm tròn nghiệm của bài toán nới lỏng liên tục khi bài toán đảm bảo tính chất
làm tròn nguyên (Integer Round-Up Property-IRUP). Đề xuất của Gilmore và
Gomory đặc biệt hiệu quả khi giải các bài toán cắt vật tư nhờ kỹ thuật tạo sinh cột
với việc giải Bài toán xếp ba lô như một bài toán con. Sau này kỹ thuật tạo sinh cột
trở thành kỹ thuật được ưa chuộng nhất khi người ta đề cập tới việc giải các bài toán
quy hoạch cỡ lớn.
Do tính khoa học cũng như thực tiễn cao của chủ đề c ắt vật tư và đóng hàng nên
vào năm 1988 H. Dyckhoff và G. Waescher đã thành lập Special Interest Group on
Cutting and Packing (SICUP), bước quan trọng để hỗ trợ nghiên cứu quốc tế về chủ
đề này. Một trong những đóng góp nổi bật của H.Dyckhoff vào năm 1990 cho việc
phát triển các nghiên cứu lý thuyết cũng như ứng dụng trong lĩnh vực này là việc
đưa ra phân loại (Typology) các bài toán cắt vật tư và đóng hàng dựa trên điều t ra
các đặc tính của cấu trúc hình học, cấu trúc logic và ngữ cảnh xuất hiện của chúng
trong thực tế. Sự phân loại này được G. Waescher và các đồng nghiệp tiếp tục hoàn
thiện vào năm 2007. Việc phân loại được thực hiện dựa trên bốn tiêu chí:
31. Số chiều của bài toán: có thể là 1, 2, 3 hoặc lớn hơn
2. Kiểu gán (Kind of assignment): Có hai kiểu gán là cực đại hóa đầu ra
(Output Maximization) hoặc cực tiểu hóa đầu vào (Input Minimization)
3. Phân loại các đối tượng nhỏ (Assortment of small items): đồng nhất, tương
đối không thuần nhất (weakly heterogeneous assortment), hoàn toàn không
thuần nhất (Strongly heterogeneous assortment)
4. Phân loại các đối tượng lớn (Assortment of large objects):
- Một đối tượng lớn (có thể được xem xét chi tiết hơn phụ thuộc vào các
chiều của đối tượng được cố định hay có thể biến đổi )
- Một số đối tượng lớn với các chiều cố định. Trường hợp này có thể được
chia thành các bài toán với các đối tượng lớn đồng nhất , tương đối đồng
nhất và hoàn toàn không đồng nhất.
Trong các kiểu bài toán cắt vật tư thì Bài toán cắt vật tư một chiều (One
Dimensional Cutting Stock Problem – OneDCSP) giữ một vị trí quan trọng và
chiếm gần một nửa tổng số công trình đã được công bố về chủ đề này. Có nhiều lý
do giải thích về mối quan tâm của cộng đồng nghiên cứu dành cho bài toán này
trong đó có thể dẫn ra nhận xét của Gilmore và Gomory khi nói rằng, nhiều bài toán
cắt vật tư nhiều chiều có thể được xử lý bằng một quy trình nhiều công đoạn dựa
trên nền tảng bài toán cắt vật tư một chiều. Từ công trình khởi đầu của Gilmor e và
Gomory, hàng loạt các biến thể khác nhau của bài toán OneDCSP đã được phát biểu
và giải quyết bằng các cách tiếp cận khác nhau.
Bài toán cắt vật tư một chiều với nhiều kích thước vật liệu thô (One -Dimensional
Cutting Stock Problem with Multiple Stock sizes – OneDCSP_M) là mở rộng tự
nhiên của bài toán cắt vật tư một chiều với một loại vật tư OneDCSP. Cho đến nay
có rất ít công trình nghiên cứu về bài toán này được công bố. Theo phân loại của
Waescher, bài toán OneDCSP_M được chia thành hai lớp con: lớp không ràng buộc
số lượng của từng loại vật tư đầu vào và lớp có ràng buộc này.
4Có thể thấy hầu hết các công trình liên quan đến bài toán OneDCSP_M đều
hướng tới giải các bài toán thuộc lớp thứ hai . Chúng ta có thể khái quát các cách
tiếp cận được đề xuấ t để giải bài toán này như sau.
Bài toán cắt vật tư OneDCSP_M là bài toán quy hoạch nguyên và thuộc lớp NP-
khó vì vậy không tồn tại thuật toán bảo đảm cho nghiệm tối ưu trong thời gian đa
thức. Cho đến nay các phương pháp giải chính xác bài toán quy hoạch nguyên này
và các biến thể của nó đều được xây dựng theo lược đồ phân nhánh và định giá
(Branch and Price – B&P) dựa trên nới lỏng tuyến tính liên tục của mô hình do
Gilmore-Gomory đề xuất vào năm 1963 [26,27] và sau này là mô hình arc-flow của
Valerio de Carvalho [55]. Gần đây, Belov [11], Carvalho và đồng nghiệp [56] đã
đưa vào sử dụng các lát cắt trong lược đồ trên để tạo nên lược đồ phân nhánh định
giá và cắt nhằm cải thiện tốc độ tính toán khi giải bài toán. Việc cải biên các lược
đồ trên áp dụng giải các biến thể khác nhau của bài toán cũng đã được đề xuất
[12,13,14,30,44,58].
Do các phương pháp chính xác giải bài toán cắt vật tư đòi hỏi chi phí thời gian
khá tốn kém đối với các bài toán có kích thước trung bình hoặc lớn nên nhiều tác
giả đã đề xuất các giải thuật heuristic khác nhau nhằm tìm kiếm nghiệm có chất
lượng tốt trong khoảng thời gian chấp nhận được. Các giải thuật heuristic không sử
dụng nới lỏng tuyến tính liên tục của bài toán mà dựa vào cấu trúc của bài toán để
điều khiển quá trình tìm kiếm.
Các giải thuật heuristic đầu tiên được đề xuất để giải các bài toán cắt vật tư
thường dựa trên các phương pháp tìm kiếm cục bộ như First -Fit, Next-Fit, Best-Fit
và Worst-Fit Decreasing để xây dựng các phương án cắt [52]. Ý tưởng chính của
những phương pháp này là sau khi sắp xếp danh sách các thành phẩm theo thứ tự
kích thước giảm dần, các phương án cắt được xây dựng theo các chiến lược khác
nhau. Phương pháp First-Fit Decreasing tìm thành phẩm phù hợp để xếp vào
phương án cắt, còn phương pháp Next-Fit tìm chỗ trống trên các phương án cắt để
đặt thành phẩm. Phương pháp Best-Fit hạn chế phần dư thừa của mỗi phương án cắt
5bằng cách tìm không gian nhỏ nhất có thể để đặt các thành phẩm, trong khi phương
pháp Worst-Fit thì lại đặt thành phẩm vào không g ian lớn nhất tìm được nhằm để lại
nguyên liệu nhiều nhất cho các bước lặp tiếp theo.
Một vấn đề nảy sinh là các phương pháp dựa trên tìm kiếm cục bộ như vậy
thường rất nhanh chóng rơi vào các cực trị địa phương. Để hạn chế khả năng không
mong muốn này, một số tác giả đề xuất áp dụng các Metaheuristic vào việc giải bài
toán. Yang dùng giải thuật tham lam trong đó sử dụng một hàm mục tiêu phụ thuộc
vào một số lượng nhỏ các điều kiện cắt để hỗ tr ợ phát hiện nghiệm tốt nhất trong
quá trình tìm kiếm cục bộ tại từng bước của quá trình giải bài toán [60]. Trong [20],
Eshghi và cộng sự sử dụng giải thuật đàn kiến với các quy tắc xác suất định nghĩa
trước dựa trên đó đàn kiến có thể lựa chọn các phương án cắt để tìm ra phương án
cắt tốt nhất. Giải thuật tôi luyện mô phỏng được sử dụng trong các công trình
[33,32].
Một lớp đặc biệt các giải thuật metaheuristic giải bài toán cắt vật tư là lớp các
giải thuật di truyền (Genetic Algorithm-GA). Các giải thuật này được xây dựng theo
hai cách tiếp cận: cách tiếp cận đơn hàng và cách tiếp cận dựa trên nhóm.
Trong cách tiếp cận đơn hàng, các thành phẩm được sử dụng một cách độc lập
khi tạo ra các phương án cắt. Cách tiếp cận này khá gần gũi với định nghĩa của bài
toán nhưng ít được áp dụng trong thực tiễn vì các gen mã hóa nghiệm của bài toán
thường bị phá vỡ dưới tác động của các toán tử lai ghép. Toyoda và đồng nghiệp
[51,53] đề xuất các toán tử lai ghép khác nhau trong giải thuật di truyền của mình
để giải bài toán cắt vật tư. Falkenauer đã đề xuất mô hình dựa trên nhóm [21], trong
đó các phương án cắt được xây dựng dựa trên các nhóm thành phẩm đã được phân
chia nhằm khắc phục sự ảnh hưởng của các toán tử di truyền đến cấu trúc nghiệm.
Yakawa và đồng nghiệp cũng đưa ra toán tử lai ghép đặc biệt gắn vào mô hình giải
thuật di truyền dựa trên nhóm do Falkenauer đề xuất [ 59].
Một đề xuất sử dụng ý tưởng lập trình tiến hóa (Evolutionary Programming-EP)
giải bài toán cắt vật tư cũng được đề xuất [39]. Trong lập trình tiến hóa, phép tìm
kiếm được thực hiện nhờ các toán tử đột biến mà không sử dụng toán tử lai ghép.
6Liang đã đưa ra hai toán tử đột biến mới và chỉ ra tính ưu việt của các toán tử này.
Khác với lập trình tiến hóa, giải thuật di truyền sử dụng cả toán tử lai ghép trong
quá trình tìm kiếm. Raymond Chiong và đồng nghiệp [43] đã tiến hành so sánh hai
cách tiếp cận EP và GA và kết hợp tính ưu việt của cả hai cách tiếp cận để xây dựng
một giải thuật di truyền cho bài toán cắt vật tư. Trong [48], Araujo và đồng nghiệp
sử dụng giải thuật heuistic First-Fit decreasing để xây dựng các phương án cắt tạo ra
các cá thể (nghiệm chấp nhận được) ở mức thấp. Ở mức cao, các tác giả đề xuất
thuật toán tiến hóa (Evolutionary Algorithm-EA) với toán tử lựa chọn tham lam
ngẫu nhiên. Việc tạo ra các cá thể mới được thực hiện nhờ quá trình trao đổi các
phương án cắt giữa các cá thể trong một pha được đặt tên là co -operation.
Mới đây, việc lai ghép giải thuật di truyền với các phương pháp sử dụng nới lỏng
tuyến tính liên tục cũng được tác giả luận án đề xuất trong [1,2].
Các cách tiếp cận giải bài toán cắt vật tư có thể mô tả theo sơ đồ sau.
Hình 0.1 Sơ đồ các cách tiếp cận giải bài toán cắt vật tư một chiều
Các cách tiếp cận giải bài
toán OneDCSP
Cách tiếp cận chính
xác
Dựa trên mô hình nới
lỏng liên tục
Kỹ thuật B&P
Cách tiếp cận heuristic Cách tiếp cận lai ghépDựa trên Metaheuristic
và tiếp cận chính xác
Pure-heuristic
Dựa trên tìm
kiếm cục bộ
Metaheuristic
Sử dụng công cụ
toán học để hạn chế
cực trị địa phương
- Phương pháp tạo
sinh cột của
Gilmore&Gomory
- Mô hình arc-flow
của Carvalho
- Các thuật toán cải
biên (Belov,…)
- First-Fit
Decreasing
- Next-Fit
Decreasing
- Best-Fit
Decreasing
- Worst-Fit
Decreasing
- Giải thuật di truyền
- Lập trình tiến hóa
- Thuật toán tiến hóa
- Giải thuật đàn kiến
- Mô phỏng tôi luyện
- Tabu Search
Thuật toán
GA-AF
7Theo hiểu biết của tác giả, cho đến nay chưa có một công trình nào liên quan đến
giải bài toán OneDCSP_M thuộc lớp thứ nhất (không có hạn chế về số lượng vật
liệu thô) được công bố. Bài toán này cũng chính là đối tượng nghiên cứu đặt ra cho
bản luận án này.
Luận án này nhằm đóng góp một phương pháp hiệu quả để giải bài toán
OneDCSP_M xuất phát từ mô hình của Gilmore và Gomory, với điều kiện nguồn
nguyên liệu không bị giới hạn. Những đóng góp chính của tác giả trong luận án này
bao gồm:
- Tiến hành phân tích mối liên quan ngữ nghĩa của bài toán OneDCSP_M với
bài toán cắt trên một loại vật liệu thô (One Dimensional Cutting Stock
Problem with Single Stock Sizes - OneDCSP_S). Từ đó đưa ra một cách
phát biểu mới của bài toán cắt vật tư với nhiều kích cỡ vật liệu thô
OneDCSP_M
- Trên cơ sở phát biểu mới của bài toán OneDCSP_M và những mối liên quan
ngữ nghĩa với bài toán OneDCSP_S, đề xuất lai ghép giải thuật di truyền
với kỹ thuật phân nhánh và định giá theo mô hình Arc-Flow tạo nên thuật
toán GA-AF giải hiệu quả bài toán OneDCSP_M. Tính đúng đắn của thuật
toán được chứng minh bằng lý thuyết. Tính hiệu quả được kiểm chứng trên
một số lượng tương đối lớn các bài toán mẫu.
- Để nâng cao hiệu quả khi giải các bài toán thực tế, thuật toán GA-AF được
cài đặt dưới dạng một hệ thống đa tác tử thực hiện các tính toán song song
và phân tán nhằm tận dụng tài nguyên tính toán của mạng cục bộ (LAN).
Tính đúng đắn của hệ thống được chứng minh chặt chẽ. Tính hiệu quả của
hệ thống được phân tích bằng toán học cũng như trong môi trường triển
khai thực tiễn.
Các kết quả được chính được trình bày trong 4 công trình công bố trên tạp chí
chuyên ngành và hội thảo quốc tế.
Cấu trúc của Luận án như sau:
8Ngoài phần Mở đầu và Kết luận chung, luận án được chia làm 3 chương.
Chương 1 trình bày các công cụ toán học cơ sở nhằm giải quyết bài toán đặt ra ở
chương sau. Phần thứ nhất của chương trình bày các mô hình và thuật giải chính
xác cho bài toán cắt vật tư với một loại vật liệu thô. Phần thứ hai trình bày tóm tắt
một số vấn đề cơ bản của giải thuật di truyền.
Trong chương 2, tác giả phân tích mối liên quan ngữ nghĩa giữa bài toán
OneDCSP_M và bài toán OneDCSP_S. Kết quả cho thấy việc cắt vật tư với nhiều
kích thước vật liệu thô sẽ mang lại hiệu quả hơn so với trường hợp chỉ có một loại
vật liệu thô và từ đó đề xuất một mô hình mới cho bài toán OneDCSP_M. Các phân
tích đó cũng làm cơ sở cho việc lai ghép giải thuật di truyền (GA) với thuật toán
phân nhánh và định giá theo mô hình Arc-Flow (AF) của Carvalho để tạo nên thuật
toán mới GA-AF giải bài toán OneDCSP_M. Tính đúng đắn của thuật toán GA-AF
được chứng minh chặt chẽ. Tính hiệu quả của thuật toán cũng được kiểm chứng trên
tập các bài toán mẫu do Belov [11] đưa ra.
Phát biểu mới của bài toán OneDCSP_M trong chương 2 đã phân rã bài toán
thành nhiều bài toán con có thể giải quyết một cách độc lập bằng thuật toán phân
nhánh và định giá theo mô hình AF. Từ đó, trong chương 3, tác giả đã cài đặt thuật
toán dưới dạng một hệ thống đa tác tử GMAS-OneDCSP_M nhằm nâng cao hiệu
quả trong ứng dụng thực tiễn. Tính đúng đắn của hệ thống được chứng minh ; hiệu
quả của nó được phân tích chặt chẽ và được kiểm chứng bằng việc triển khai thử
nghiệm trong môi trường công nghiệp.
9Chương 1. CÁC KIẾN THỨC CƠ SỞ LIÊN QUAN
Chương này trình bày tóm tắt những công cụ toán học liên quan làm cơ sở cho
việc xây dựng giải pháp cho bài toán OneDCSP_M được đưa ra trong các Chương
tiếp theo. Phần thứ nhất giới thiệu bài toán cắt vật tư một chiều với một loại vật liệu
thô OneDCSP_S với hai mô hình giải bài toán: mô hình của Gilmore-Gomory và
mô hình Arc-Flow của Carvalho. Phần tiếp theo của chương đề cập những nội dung
cơ bản của thuật toán di truyền.
1.1. Bài toán cắt vật tư một chiều với một loại vật liệu thô và thuật giải
Bài toán cắt vật tư một chiều kinh điển (bài toán cắt vật tư một chiều với một loại
vật liệu thô – One Dimensional Cutting Stock Problem with Single Stock Length
OneDCSP_S) được xác định bởi các dữ liệu sau:
(m,L,l=(l1,…,lm),b=(b1,…,bm)),
trong đó :
- m là số dạng vật liệu thành phẩm được cắt từ vật liệu thô
- L là bề rộng của tấm vật liệu thô
- Đối với mỗi dạng vật liệu thành phẩm j :
+ lj là bề rộng
+ bj là đơn hàng cho loại vật liệu thành phẩm đó.
Bài toán đặt ra là tìm cách cắt sao cho số lượng tấm vật liệu thô sử dụng là ít nhất
mà vẫn đáp ứng được yêu cầu của đơn hàng.
Ở đây, các khái niệm vật liệu thô, vật tư, nguyên liệu đầu vào của bài toán được
hiểu với nghĩa tương đương. Tương tự, hai thuật ngữ thành phẩm và sản phẩm cũng
mang ý nghĩa tương đương.
10
Hình 1-1 Các phương án cắt trong bài toán OneDCSP_S
Bài toán OneDCSP lần đầu tiên được Kantorovich [35] phát biểu dưới dạng bài
toán quy hoạch nguyên và được chứng minh thuộc lớp bài toán NP-Hard. Sau đó
nhiều tác giả đã xây dựng các mô hình khác như mô hình của Gilmore -Gomory
[26], mô hình Arc-flow của Valerio de Carvalho [55], mô hình Node-flow của
Belov [14]…nhằm khắc phục tính nới lỏng liên tục yếu cũng như tính đối xứng của
mô hình Kantorovich, đồng thời tận dụng các thông tin cấu trúc của không gian
nghiệm nhằm xây dựng các thuật toán giải chính xác cho bài toán. Sau đây là hai
mô hình gốc thường được sử dụng khi nghiên cứu bài toán.
1.1.1. Mô hình Gilmore-Gomory
Định nghĩa 1.1 Một phương án cắt là một véc tơ cột 1 ,...,j mj mja a a , j=1,…,n
với aij là số lần thành phẩm thứ i được cắt theo phương án cắt j từ tấm vật
liệu thô. Phương án cắt gọi là chấp nhận được nếu nó thỏa mãn điều kiện:
m
i
iji Lal
1
(1.1)
Giả sử njx j ,...,1, là số lần phương án cắt chấp nhận được thứ j được sử dụng
trong nghiệm. Khi đó mô hình bài toán cắt vật tư một chiều với một loại vật liệu thô
của Gilmore và Gomory được phát biểu như sau:
xxblLmSOneDCSP n
j
j minmin),,,(_
1
(1.2)
L
liPhương án cắt j aij
L
li
ai1
. . . . . .
Phương án cắt 1
11
trên miền ràng buộc:
1
n
ij j i
j
a x b
i=1,…,m (1.3)
jx , j=1,…,n (1.4)
Mô hình (1.1)-(1.4) là bài toán quy hoạch nguyên với số lượng biến n tăng theo
hàm mũ của m. Mô hình này khắc phục được tính đối xứng của mô hình
Kantorovich và có nới lỏng liên tục mạnh với dự đoán về tính chất làm tròn nguyên
cải biên (Modified Integer Round-Up Property – MIRUP) như sau:
“Sự sai khác giữa giá trị tối ưu của bài toán ),,,(_ blLmSOneDCSP và giá trị tối
ưu của bài toán nới lỏng liên tục của nó luôn luôn nhỏ hơn 2”
Trong thực tế người ta chưa chỉ ra được các ví dụ có sự sai khác lớn hơn 7/6 [44].
Hơn nữa, những ví dụ có sai khác nhỏ hơn 1 chiếm đa số. Những bài toán như vậy
được gọi là các bài toán có tính chất làm tròn nguyên (Integer Round-Up Property –
IRUP). Những bài toán có sai khác lớn hơn hoặc bằng 1 được gọi là những bài toán
non-IRUP.
Trên cơ sở dự đoán đó, Gilmore và Gomory đề xuất cách tiếp cận giải bài toán
(1.1)-(1.4) gồm 2 bước: 1/ giải bài toán nới lỏng liên tục của (1.1)-(1.4); 2/ Làm
tròn số nghiệm tối ưu của bài toán nới lỏng liên tục để nhận được nghiệm của bài
toán (1.1)-(1.4).
Để giải bài toán nới lỏng liên tục của (1.1)-(1.4) với số lượng biến n rất lớn,
Gilmore và Gomory lần đầu tiên đề xuất sử dụng kỹ thuật tạo sinh cột , trong đó mỗi
biến chỉ được sinh ra khi nó thực sự cần thiết cho việc cải thiện nghiệm tìm được
trước đó. Sau khi thêm vào các biến phụ (slacks) ta có thể đưa bài toán (1.1)-(1.4)
về dạng chuẩn:
_ ( , , , ) min : , nOneDCSP S m L l b x Ax b x (1.5)
12
Nới lỏng liên tục của (1.5) nhận được bằng cách loại bỏ ràng buộc nguyên trên
các biến và được gọi là bài toán chủ (Master Problem - MP) sẽ có dạng:
_ ( , , , ) min : ,LP nOneDCSP S m L l b x Ax b x (1.6)
Xuất phát, kỹ thuật tạo sinh cột sẽ làm việc với một tập con các cột của A được
gọi là bài toán chủ hạn chế (Restricted Master Problem - RMP). RMP có thể được
khởi tạo dễ dàng, ví dụ bởi cơ sở kiến thiết ban đầu của phương pháp đơn hình. Giả
sử A’ là các cột trong A được lựa chọn. Khi đó RMP có dạng:
_ ( , , , ) min : ' ,LP nOneDCSP S m L l b x A x b x (1.7)
Nhận xét rằng giá suy giảm của một biến ứng với phương án cắt chấp nhận được
a trong (1.7) được xác định bởi công thức ua1 , với mu là các giá trị biến đối
ngẫu tối ưu của (1.7). Do vậy việc tìm kiếm cột có thể đóng góp cải thiện giá trị
hàm mục tiêu chính là việc tìm nghiệm tối ưu của bài toán con định giá ( hay là bài
toán xếp ba lô):
max : , mua al L a (1.8)
Nghiệm tối ưu của (1.8) sẽ lần lượt được thêm vào RMP nếu giá trị tối ưu tương
ứng của (1.8) lớn hơn 1. Nếu (1.8) không có nghiệm tối ưu như vậy thì nghiệm tối
ưu của bài toán RMP (1.7) chính là nghiệm tối ưu của bài toán MP (1.6).
Trên cơ sở ý tưởng vừa trình bày, phương pháp tạo sinh cột giải bài toán quy
hoạch tuyến tính cỡ lớn được Gilmore-Gomory nhúng vào lược đồ nhánh cận
(Brand and Bound) để tạo nên lược đồ phân nhánh và định giá (Branch and Price)
cho việc giải bài toán quy hoạch nguyên OneDCSP_S. Đã có nhiều chiến lược phân
nhánh heuristic khác nhau được đề xuất. Một số chiến lược đó có thể tra cứu trong
[44,58].
13
1.1.2. Mô hình Arc-flow của Valerio de Carvalho
Valerio de Carvalho [55] lần đầu tiên đề xuất phát biểu lại bài toán (1.1)-(1.4)
dưới dạng một mô hình dựa trên mạng lưới (network -based model) rất sáng sủa với
tên gọi Arc-Flow Model như sau.
Chúng ta xây dựng một mạng lưới không chu trình G=(N,A)
Trong đó:
- N={0,1,…,L} là tập các nút;
- LNuvumiluvNNvuA i \/),(,..,1,/),( là tập các cung.
Các cung nối mỗi cặp nút liên tiếp từ 0 tới L không phủ bất cứ một thành phẩm
nào. Một sản phẩm thứ i được biểu diễn một số lần trên mạng lưới bởi các cung có
độ dài v-u=li, i=1,…,m.
Ta ký hiệu các biến quyết định xuv là số lượng các cung thành phẩm có kích
thước v-u được cắt từ bất cứ tấm vật liệu thô nào tại nút cách biên trái của tấm vật
tư u đơn vị.
Một đường đi từ nút khởi đầu 0 tới nút kết thúc L chứa ít nhất một cung có độ dài
li (i=1,…,m) sẽ mã hóa một phương án cắt chấp nhận được.
Hình 1-2 Ví dụ về mạng lưới và phương án cắt với L=9 và các li {4,3,2}
0 1 2 3 4 5 6 7 8 9
4 2 2
14
Với cách xác định mạng lưới như vậy , bài toán OneDCSP_S sẽ có độ phức tạp
tính toán giả đa thức (Pseudo-polynomial) O(mL) và trở thành bài toán tìm luồng
cực tiểu sau:
Min z (1.9)
trên miền ràng buộc:
i
Aluu
luu bx
i
i ),( , với i {1,…,m} (1.10)
zx
Avo
v
),(
,0 (1.11)
0
),(),(
Atv
vt
Avu
uv xx v {1,…,L-1} (1.12)
zx
ALu
uL
),(
(1.13)
uvx (u,v)A (1.14)
Nếu ta áp dụng phân rã Dantzig-Wolfe (biểu diễn một điểm trong đa diện bằng tổ
hợp lồi của các điểm cực cộng với một tổ hợp tuyến tính không âm của các tia cực)
vào bài toán (1.9)-(1.14) và giữ ràng buộc (1.10) trong bài toán chủ thì bài toán con
xác định bởi (1.11)-(1.14) là bài toán luồng với không gian nghiệm tương ứng với
các luồng chấp nhận được giữa nút khởi đầu 0 và nút kết thúc L. Bài toán con này
thể hiện ràng buộc bảo toàn luồng (flow conservation constrain) với lượng cung cấp
vật tư chưa biết z từ điểm khởi đầu và đáp ứng yêu cầu tại điểm kết thúc. Cho các
nhân tử đối ngẫu i, i=1,…,m gán với ràng buộc (1.10), bài toán con định giá trở
thành:
Aluu
luui
i
ixzMin ),( , (1.15)
trên miền ràng buộc (1.11)-(1.14)
Thực chất, biến z có thể được coi như cung phản hồi từ nút kết thúc L tới nút
khởi đầu 0 (cũng có thể ký hiệu là xw0) và các nghiệm của bài toán con như là luồng
15
chu trình được tạo nên bởi đường đi từ nút khởi đầu 0 tới nút kết thúc L và cung xw0.
Như vậy có một tương ứng 1-1 giữa các chu trình và các đường đi. Nếu chúng ta coi
các nghiệm của bài toán con như các chu trình, các ràng buộc của bài toán con xác
định một hệ thuần nhất và không giới nội. Do đó, đa diện tương ứng có một điểm
cực duy nhất là nghiệm 0 và một số hữu hạn các tia cực là các chu trình có hướng,
mỗi chu trình tương ứng với một phương án cắt chấp nhận được. Bài toán con chỉ
sinh ra các tia cực và việc thay thế chúng vào (1.9) và (1.10) sẽ tạo nên mô hình
Gilmore-Gomory (1.2)-(1.4) gồm tổ hợp tuyến tính không âm của các phương án
cắt và không có ràng buộc lồi. Do hai mô hình là tương đương nên các cận dưới của
các nới lỏng tuyến tính liên tục của chúng là bằng nhau, tức là mô hình arc flow
cũng có nới lỏng tuyến tính mạnh sau khi áp dụng phân rã Dantzig-Wolfe.
Bài toán con định giá (1.15) với miền ràng buộc (1.11)-(1.14) là bài toán tìm
đường đi ngắn nhất trên một mạng lưới có kích thước giả đa thức và có thể được
giải bởi thuật toán quy hoạch động và nghiệm tối ưu của nó cũng là nghiệm tối ưu
của bài toán xếp ba lô (1.8) [55].
Ưu điểm của mô hình này là hoàn toàn không làm thay đổi cấu trúc của bài toán
chủ và các bài toán con khi tạo nới lỏng tuyến tính liên tục cũng như trong quá trình
thực hiện chiến lược phân nhánh và định giá.
Ta nhận thấy rằng, mô hình trên có nhược điểm là tính đối xứng. Để loại bỏ điều
đó, Valerio de Carvalho đề xuất các thành phẩm được cắt theo chiều giảm của kích
thước, tức là các cung tương ứng với các thành phẩm có kích thước lớn hơn sẽ được
xếp ở gần nút 0 hơn và phế thải được dồn về phía nút L.
Từ đó, Valerio de Carvalho đã đề xuất thuật toán giải chính xác bài toán
OneDCSP_S với ý tưởng chính như sau:
Chiến lược phân nhánh:
Giả sử xpq là một biến luồng trong mô hình arc flow. Như vậy, một phương án cắt
trong mô hình Gilmore-Gomory tương ứng sẽ đóng góp cho biến luồng xpq nếu nó
có một thành phẩm kích thước q-p được cắt từ điểm bắt đầu là p. Nếu ta ký hiệu
16
A(p,q) là tập tất cả các phương án cắt trong mô hình của Gilmore-Gomory chứa
thành phẩm có độ dài q-p tại điểm có khoảng cách p từ biên trái của vật liệu và các
xj là các biến quyết định của mô hình này, ta có thể xác định giá trị của biến luồng
xpq như sau:
),( qpAj
jpq xx (1.16)
Nếu không nguyên, ta tạo 2 nhánh tương ứng với các bất đẳng thức xpq≤
và xpq≥ đối với một cung đơn tại vị trí ( p,q). Nói cách khác các ràng buộc phân
nhánh chỉ tác động tớ i các phương án cắt có cung tại vị trí (p,q). Khi đó ta có bài
toán OneDCSP_S trên nút w bất kỳ có dạng sau:
Jj
jxMin (1.17)
trên miền ràng buộc:
Jj
ijij bxa , i=1,…,m (1.18)
Jj
wl
ijj
l
j Glxx , (1.19)
Jj
wl
ijj
l
j Hlxx , (1.20)
xj≥0, jJ (1.21)
ở đây Gw và Hw là các tập hợp chỉ số của các ràng buộc phân nhánh có dạng ≤ và ≥
tương ứng; lijx là các giá trị không nguyên của luồng 0< lijx <bi; lj =1 nếu cung
(i,i+li) thuộc phương án cắt j và bằng 0 nếu ngược lại; J là tập tất cả các phương án
cắt chấp nhận được. Ta thấy (1.17)-(1.18) chính là mô hình của Gilmore-Gomory;
(1.19)-(1.20) là các ràng buộc phân nhánh.
Như vậy, mỗi nút của cây sẽ tương ứng với cùng một mô hình Gilmore -Gomory
(phân rã Dantzig-Wolfe của mô hình Arc flow) (1.17)-(1.18) với việc bổ sung các
ràng buộc phân nhánh dựa trên các biến luồng (1.19)-(1.20).
17
Giả sử d , d=1,…,m, là các biến đối ngẫu của (1.17) -(1.18); và là các véc tơ
các biến đối ngẫu tương ứng các ràng buộc rẽ nhánh (1.19) -(1.20); ww ji GG ),( và
ww
ji HH ),( là tập các ràng buộc rẽ nhánh áp đặt cho một cung xác định ( i,j) tại nút
w cho trước trên cây phân nhánh và định giá. Khi đó giá suy giảm của biến xij tại
nút w được tính bằng công thức:
w jiw ji Hl
l
Gl
ldijc
),(),(
(1.22)
với d là thành phẩm tương ứng với cung ( i,j).
Ta nhận thấy rằng chỉ có giá của các biến là thay đổi còn cấu trúc của bài toán
con được giữ nguyên. Bài toán con này có thể giải bằng phương pháp quy hoạch
động giống như giải bài toán xếp ba lô và chỉ cho các phương án cắt chấp nhận
được với các thành phẩm được xếp theo thứ tự kích thước giảm. Các phương trình
đệ quy được cho như sau:
0)0(0 F
,)(max)(
1
0
,)1(10: max
l
k
kwxwkxddlllvalidd ddd
clwxFxF
x=0,1,…,L, d=1,…,m
với )/,min(max ddd lLbl là cận trên của số lượng thành phẩm d trong một
phương án cắt giới hạn bởi kế hoạch sản xuất của thành phẩm đó và kích thước của
vật liệu thô.
Để đưa ra giả mã thuật toán phân nhánh và định giá AF (theo mô hình Arc-Flow)
giải chính xác bài toán OneDCSP_S theo đề xuất của Carvalho, chúng ta sử dụng
những ký hiệu sau:
- W: tập các nút trên cây phân nhánh. Mỗi nút cụ thể được ký hiệu là w
- Aw là tập các cung của mô hình arc-flow tại nút w
18
- Gw là tập chỉ số các bất đẳng thức rẽ nhánh có dấu đối với các biến luồng tại
nút w
- Hw là tập chỉ số các bất đẳng thức rẽ nhánh có dấu đối với các biến luồng tại
nút w
Như vậy, mỗi nút trên cây phân nhánh sẽ được đặc trưng bởi bộ ba w=(Aw,Gw,Hw).
Từ đó ta có thể phát biểu thuật toán AF như sau:
THUẬT TOÁN AF:
Start: Khởi tạo tập các nút W ban đầu chỉ chứa một nút gốc w=(A w,Gw,Hw) với Aw
là một tập các cung tương ứng với nghiệm chấp nhận được tùy chọ n X* với
giá trị hàm mục tiêu là z*;
Gw =Hw= ;
w*w; // (Bài toán chủ hạn chế RMP)
while W do
Chọn một nút w trong W
Tìm nghiệm tối ưu X LP và giá trị tối ưu của hàm mục tiêu tương ứng z LP cho nới
lỏng tuyến tính của RMP nhận được từ phân rã Dantzig -Wolfe của w.
Giải bài toán định giá với các nghiệm đối ngẫu tối ưu tương ứng của w
if Có cung mới (u,v) nằm trong đường đi tương ứng với cột có giá âm
then
Aw=Aw ,u v // (Bổ sung cột)
else
if zLP ≥ z*
then W=W \{w}
else
if Nghiệm nhận được X LP là nguyên
then Cập nhật nghiệm tối ưu mới: X*XLP , z* zLP, w*w
else Phân nhánh: Giả xử xij= không nguyên.
W=W{w’,w”} trong đó
19
w’=(Aw,Gw’ ,Hw )
w”=(Aw,Gw,Hw’’)
Gw’=Gw ijx
Hw’’=Hw ijx
end while
Return (X*, nút chứa nó w* )
1.2. Giải thuật di truyền
Ý tưởng áp dụng các nguyên lý của Darwin để tự động giải bài toán xuất hiện từ
những năm 40 của thế kỷ 20, rất lâu trước khi máy tính ra đời [22]. Từ những năm
đó Turing đã đề xuất “phép tìm kiếm tiến hóa hay tìm kiếm g en” (Genetical or
evolutionary search). Trong những năm 1960, ba khuynh hướng phát triển của ý
tưởng cơ sở này đã diễn ra ở các nơi khác nhau. Tại Mỹ, Fogel, Owens và Walsh đề
xuất hướng nghiên cứu lập trình tiến hóa (Evolutionary programming) [23,24] cùng
thời điểm với phương pháp của Holland có tên gọi là giải thuật di truyền (Genetic
Algorithm) [17,28,29]. Trong khi đó tại Đức, Rechenberg và Schwefel đặt nền
móng cho chiến lược tiến hóa (Evolution Strategies) [47]. Trong khoảng 15 năm sau
đó, các hướng nghiên cứu này được phát triển một cách riêng biệt. Cho đến những
năm 1990, các hướng nghiên cứu này được nhìn nhận lại như những thể hiện khác
nhau của một công nghệ chung là tính toán tiến hóa (Evolutionary Computing) [4,
5, 6, 18, 40]. Cũng trong thời điểm này, một nhánh thứ tư dựa trên ý tưởng chung ra
đời với tên gọi lập trình gen (genetic programming) do Koza đi tiên phong
[7,37,38]. Trong thuật ngữ hiện đại, toàn bộ lĩnh vực nghiên cứu này được coi là
ngành tính toán tiến hóa, các thuật toán trong đó được gọi là các thuật toán tiến hóa.
Lập trình tiến hóa, chiến lược tiến hóa, giải thuật di truyền và lập trình gen được
xem như các lĩnh vực nhỏ thuộc về các biến thể của thuật toán tương ứng.
20
Giải thuật di truyền là một họ các mô hình tính toán dựa trên ý tưởng tiến hóa.
Các giải thuật này mã hóa nghiệm tiềm năng của một bài toán cụ thể bằng một cấu
trúc dữ liệu giống như các nhiễm sắc thể (chromosome) và áp dụng các toán tử tái
tổ hợp (recombination operators) lên các cấu trúc dữ liệu đó sao cho có thể g iữ được
các thông tin chính. Giải thuật di truyền thường được xem như những bộ tối ưu hàm
số mặc dù chúng có thể được áp dụng vào nhiều lĩnh vực rộng hơn.
Một cài đặt của giải thuật di truyền bắt đầu với một quần thể các nhiễm sắc thể
(thường được tạo ngẫu nhiên). Người ta đánh giá các cấu trúc này và phân bổ cơ hội
tái sinh cho chúng theo cách những nhiễm sắc thể biểu diễn nghiệm tốt hơn của bài
toán sẽ được ưu tiên hơn các nhiễm sắc thể khác để tái sinh. Mức độ “tốt” của một
nghiệm thường được xác định tư ơng ứng với quần thể hiện thời.
Mô tả của giải thuật di truyền như trên là khá trừu tượng và có hai cách hiểu về
thuật ngữ “giải thuật di truyền”. Theo nghĩa chặt, “giải thuật di truyền” được coi là
một mô hình tính toán do Holland đề xuất và nghiên cứu từ năm 1975. Hầu hết các
lý thuyết về giải thuật di truyền đang tồn tại cho đến hiện nay đều dùng thuật ngữ
theo nghĩa này và khi đó mô hình được gọi là giải thuật di truyền chính tắc.
Theo nghĩa rộng hơn, giải thuật di truyền được coi là bất cứ một mô hình nào dựa
trên quần thể (population-based model) nào có sử dụng các toán tử tái tổ hợp và lựa
chọn để sinh ra các điểm mẫu mới trong không gian tìm kiếm. Nhiều mô hình giải
thuật di truyền đã được các nhà nghiên cứu thực nghiệm đưa ra trên quan điểm
hướng ứng dụng và xem giải thuật di truyền như công cụ tối ưu hóa.
Trong mục này, chúng ta sẽ trình bày những khái niệm cơ bản liên quan tới giải
thuật di truyền.
Trong hầu hết các giải thuật di truyền thông thường có hai thành phần phụ thuộc
vào bài toán: mã hóa bài toán và hàm đánh giá.
Bước đầu tiên trong bất kỳ một giải thuật di truyền nào là bước tạo sinh quần thể
xuất phát. Trong giải thuật di truyền chính tắc, mỗi thành viên của quần thể này là
một chuỗi nhị phân độ dài l tương ứng với mã hóa nghiệm của bài toán. Mỗi chuỗi
21
như vậy được xem như một nhiễm sắc thể. Trong hầu hết các trường hợp, quần thể
này được sinh ra một cách ngẫu nhiên. Sau khi sinh ra quần thể xuất phát, mỗi cá
thể của quần thể được đánh giá và được gán cho một giá trị thích nghi (fitness
value).
Khái niệm đánh giá (evaluation) và thích nghi (fitness) đôi khi được sử dụng như
cặp từ đồng nghĩa. Tuy nhiên, người ta thường phân biệt giữa hàm đánh giá
(evaluation function) và hàm thích nghi (fitness function) được sử dụng trong các
giải thuật di truyền. Trong mục này, hàm đánh giá (hay hàm mục tiêu) cung cấp độ
đo hiệu quả của việc thiết lập giá trị các tham số cụ thể. Hàm thích nghi biến đổi độ
đo hiệu quả này thành việc phân bổ cơ hội tái tạo cho các cá thể. Việc đánh giá một
chuỗi biểu diễn tập các tham số là hoàn toàn độc lập với việc đánh giá các chuỗi
khác. Tuy nhiên, mức độ thích nghi (fitness) của một chuỗi luôn luôn được xác định
trong mối tương quan với các thành viên khác trong quần thể hiện tại.
Trong giải thuật di truyền, mức độ thích nghi có thể được xác định bằng /if f
với if là đánh giá của chuỗi i và f là đánh giá trung bình của tất cả các chuỗi trong
quần thể. Mức độ thích nghi cũng có thể được gán dựa trên thứ hạng của cá thể
trong quần thể hoặc bằng các phương pháp lấy mẫu như phương pháp lựa chọn theo
đấu loại.
Việc thực hiện giải thuật di truyền có thể được xem như một quá trình hai giai
đoạn. Thuật toán bắt đầu với quần thể hiện thời. Việc lựa chọn được áp dụng vào
quần thể này để tạo ra một quần thể trung gian. Sau đó việc lai ghép và đột biến
được áp dụng cho quần thể trung gian để tạo nên quần thể tiếp theo. Quá trình
chuyển từ quần thể hiện thời tới quần thể tiếp theo tạo nên một thế hệ trong tiến
trình thực hiện giải thuật di truyền. Cách thực hiện như vậy được gọi là cài đặt của
giải thuật di truyền đơn giản (Simple Genetic Algorithm – SGA). Hình 1.3 minh
họa việc hình thành một thế hệ mới theo hai pha: pha chọn lọc và pha tái tổ hợp.
Việc đột biến có thể thực hiện ngay sau lai ghép.
22
Hình 1-3 Một thế hệ mới được hình thành qua pha chọn lọc và pha tái tổ hợp.
Đầu tiên chúng ta xem xét việc xây dựng quần thể trung gian từ quần thể hiện
thời. Trong thế hệ đầu tiên, quần thể hiện thời cũng đồng thời là quần thể xuất phát.
Sau khi tính /if f cho tất cả các chuỗi trong quần thể hiện thời, chúng ta thực hiện
việc lựa chọn. Trong giải thuật di truyền chính tắc, xác suất để một chuỗi trong
quần thể hiện thời được sao chép lại và được đưa vào thế hệ trung gian tỷ lệ thuận
với mức độ thích nghi của chúng.
Có nhiều cách thực hiện việc lựa chọn. Chúng ta có thể ánh xạ quần thể lên một
bánh xe roulette, mỗi cá thể chiếm một không gian tỷ lệ thuận với mức độ thích
nghi của nó trên bánh xe. Quần thể trung gian được tạo nên nhờ việc quay liên tiếp
bánh xe để chọn ra các cá thể theo cơ chế “lấy mẫu ngẫu nhiên có thay thế”
(stochastic sampling with replacement). Cơ chế lựa chọn như vậy được gọi là lựa
chọn tỷ lệ (proportional selection) và xác suất để một phần tử b được lựa chọn xác
định bởi công thức sau:
n
i
ibfbfbp
1
0))(/)(()(
Tái tổ hợp
(Lai ghép, đột biến)
Chọn lọc
(Nhân đôi)
Chuỗi 1
Chuỗi 2
Chuỗi 3
Chuỗi 4
…
…
Thế hệ hiện tại
t
Chuỗi 1
Chuỗi 2
Chuỗi 2
Chuỗi 4
…
…
Thế hệ trung gian
t
Con-A (1 x 2)
Con-B (2 x 1)
Con-A (2 x 4)
Con-B (2 x 4)
…
…
Thế hệ tiếp theo
t+1
23
với b và các ib là các cá thể nằm trong quần thể hiện tại.
Quá trình lựa chọn cũng có thể thực hiện bằng cơ chế “remainder stochastic
sampling”. Khi đó mỗi chuỗi i với /if f lớn hơn 1 sẽ được sao chép vào quần thể
trung gian với số lần bằng phần nguyên của /if f . Sau đó tất cả các chuỗi (kể cả
các chuỗi có /if f nhỏ hơn 1) sẽ được sao chép thêm vào quần thể trung gian với
xác suất tỷ lệ thuận với phần thập phân của chúng.
Sau khi lựa chọn, việc tái tổ hợp được thực hiện trên quần thể trung gian. Việc
này có thể được coi như việc tạo ra quần thể tiếp theo từ quần thể trung gian. Việc
lai ghép (crossover) được áp dụng cho các chuỗi được ghép cặp một cách ngẫu
nhiên với xác suất pc: Lấy ra một cặp chuỗi; tái tổ hợp hai chuỗi này với xác suất pc
để tạo nên hai chuỗi mới và đặt chúng vào quần thể tiếp theo.
Bước tiếp theo là việc áp dụng toán tử đột biến (mutation operator). Mỗi bit trong
quần thể có thể chịu hiện tượng đột biến với xác suất pm. Thông thường, tần xuất
đột biến được thực hiện với xác suất nhỏ hơn 1%. Trong một số trường hợp, đột
biến được giải thích như việc tạo ngẫu nhiên một bit mới. Trong các trường hợp
khác, đột biến được xem là phép lật bit. Sự khác nhau giữa hai cách giải thích thực
chất chỉ là chi tiết cài đặt và mỗi kiểu đột biến đều có thể chuyển đ ổi để nhận được
kiểu còn lại.
Khi quá trình lựa chọn, tái tổ hợp và đột biến hoàn thành, quần thể tiếp theo lại
được đưa vào chu trình lặp với các bước như trên. Như vậy một thế hệ mới đã được
sinh ra khi thực hiện giải thuật di truyền.
Giải thuật di truyền như mô tả trên có thể được viết dưới dạng giả mã như sau:
24
GIẢI THUẬT DI TRUYỀN
Khởi tạo quần thể ban đầu 1,..., kX x x
While (điều kiện kết thúc chưa thỏa mãn) do
Đánh giá mức độ thích nghi của các cá thể trong X (evaluation)
Lựa chọn một số cặp nghiệm (gọi là cha-mẹ) 2P X dựa trên mức độ
thích nghi của chúng (Parent selection)
Tổ hợp các cặp được lựa chọn để sinh ra các cá thể mới (crossover)
Biến đổi ngẫu nhiên một số cá thể (mutation)
Tạo quần thể mới bằng việc thay thế một số hoặc toàn bộ cá thể của X
bởi các cá thể mới được sinh ra dựa trên mức độ thích nghi của chúng
(population selection)
End while
Đã có nhiều công trình nghiên cứu nhằm mô hình hóa toán học giải thuật di
truyền, các ảnh hưởng của các toán tử di truyền lên hành vi của giải thuật, đặc biệt
là hành vi hội tụ tới nghiệm tối ưu. Các kết quả lý thuyết có ý nghĩa nhất theo
hướng này được tổng kết một cách cô đọng trong công trình của Rudolph [ 45]: Việc
mô hình hóa giải thuật di truyền bằng một xích Markov hữu hạn trên không gian
các trạng thái là tập tất cả các quần thể có thể được sinh ra trong quá trình thực hiện
của giải thuật và các toán tử di truyền là các ma trận chuyển trạng thái được xác
định bởi các tham số như xác xuất đột biến pm , xác suất lựa chọn cha-mẹ pc … Trên
cơ sở mô hình hóa giải thuật di truyền như vậy, người ta đã tiến hành phân tích
hành vi của giải thuật bằng việc chỉ ra rằng với xác suất đột biến pm>0 giải thuật di
truyền chính tắc là một xích Markov ergodic và vì vậy phân phối xác suất tới hạn
của mọi trạng thái trong không gian trạng thái là dương chặt. Điều đó có nghĩa rằng ,
xuất phát từ một trạng thái ban đầu bất kỳ, tại mọi thời điểm, giải thuật có thể rơi
vào trạng thái tương ứng với quần thể không chứa nghiệm tối ưu với một xác suất
dương. Nói cách khác, giải thuật không hội tụ hoàn toàn. Để khắc phục nhược điểm
25
trên của giải thuật di truyền chính tắc, người ta đã cải biên giải thuật bằng cách
thêm vào một toán tử sao chép (copy operator) cho phép cá thể có độ thích nghi cao
nhất của từng quần thể được giữ lại cho quần thể tiếp theo. Phiên bản cải biên như
vậy được gọi là giải thuật di truyền chính tắc với phần tử tinh hoa và được chứng
minh là hội tụ hoàn toàn. Các kết quả chi tiết nghiên cứu về tính hội tụ của thuật
toán di truyền có thể tham khảo tại [41,45,46].
1.3. Kết luận
Chương này tập trung giới thiệu hai vấn đề chính làm cơ sở cho việc trình bày
các nội dung của Chương 2.
1. Bài toán cắt vật tư một chiều với một loại nguyên liệu OneDCSP_S và hai
mô hình cùng giải thuật giải chính xác cho bài toán: mô hình của Gilmore –
Gomory và mô hình Arc-Flow của Carvalho. Các giải thuật đều được xây
dựng dựa trên việc nhúng kỹ thuật tạo sinh cột vào lược đồ nhánh cận B&B
để tạo nên lược đồ phân nhánh và định giá B&P, đây là một phương pháp
hiệu quả đề giải các bài toán quy hoạch nguyên cỡ lớn .
2. Phần tiếp theo của chương dành cho việc trình bày những khái niệm cơ bản
về giải thuật di truyền: mã hóa nghiệm của bài toán, các toán tử di truyền và
các sơ đồ thuật toán di truyền. Tính hội tụ của giải thuật di truyền chính tắc
và biến thể của nó được tóm tắt ở cuối chương dựa trên kết quả nghiên cứu
của Ruldoph [45].
26
Chương 2. BÀI TOÁN CẮT VẬT TƯ MỘT CHIỀU VỚI NHIỀU KÍCH
THƯỚC VẬT LIỆU THÔ: MÔ HÌNH VÀ GIẢI PHÁP
Chương này trình bày nội dung liên quan đến bài toán OneDCSP_M. Phần đầu
của chương giới thiệu phát biểu bài toán OneDCSP_M của Gilmore và Gomory.
Trên cơ sở phân tích mối liên quan giữa bài toán OneDCSP_S và bài toán
OneDCSP_M, tác giả đã đưa ra phát biểu mới của bài toán OneDCSP_M trong phần
thứ hai. Giải thuật di truyền lai ghép với kỹ thuật phân nhánh và định giá tạo nên
thuật toán GA-AF giải quyết bài toán. Về mặt lý thuyết, thuật toán GA-AF được
chứng minh đảm bảo tính hội tụ hầu chắc chắn. Những nội dung này được đề cập
trong phần ba của chương. Phần thứ tư trình bày hiệu quả thực nghiệm của thuật
toán.
2.1. Phát biểu bài toán cắt vật tư một chiều với nhiều kích thước vật
liệu thô theo Gilmore và Gomory
Bài toán cắt vật tư một chiều với nhiều kích thước vật liệu thô ( One-Dimensional
Cutting Stock Problem with Multiple Stock Sizes – OneDCSP_M) là mở rộng tự
nhiên của bài toán OneDCSP, trong đó các tấm vật liệu thô có thể có kích thước
khác nhau. Bài toán OneDCSP_M có thể được biểu diễn bằng các dữ liệu sau:
(m,M,l=(l1,…,lm), b=(b1,…,bm),L=(L1,…,LM), c=(c1,…,cM))
trong đó:
- m là số dạng vật liệu thành phẩm,
- M là số các loại vật liệu thô sẽ được sử dụng,
- Với mỗi dạng vật liệu thành phẩm j:
lj là chiều rộng thành phẩm
bj là đơn hàng cho loại vật liệu thành phẩm thứ j
- Véc tơ L=( L1,…,LM), với Li là bề rộng loại vật liệu thô thứ i,
27
- ci là đơn giá của vật liệu thô thứ i, i=1,…,M.
Trong bài này ta giả thiết rằng đơn giá của vật liệu thô tỷ lệ thuận với chiều
rộng của vật liệu.
Hình 2.1 minh họa các lát cắt trong mỗi phương án cắt với những loại vật liệu
thô khác nhau của bài toán OneDCSP_M.
Hình 2-1 Các phương án cắt trong bài toán OneDCSP_M
Mô hình của bài toán trên (Machine Balance Model) được Gilmore và Gomory
xây dựng trong [27]. Mô hình có thể được phát biểu như sau:
Đặt m’=m+M. Một véc tơ '1 ',..., mma a a là biểu diễn của một phương án cắt
nếu
1 1
m M
j j j j m
j j
l a L a
và
1
1
M
j m
j
a
(2.1)
Các thành phần aj, j=1,…,m của véc tơ a xác định có bao nhiêu vật tư thành
phẩm loại j được cắt. Thành phần mka sẽ bằng 1 nếu loại vật liệu thô thứ k được sử
dụng còn các thành phần aj+m với j{1,…,M}\k bằng 0.
Li
liPhương án cắt j aij
L1
li
LM
. . .
. . .
. . .
28
Gọi n là số lượng tất cả các phương án cắt. Giả sử ai với i=1,…,n là tất cả các
phương án cắt và mỗi thành phần xi của véc tơ x=(x1,…,xn) là số lần sử dụng
phương án cắt ai. Ta nhận xét rằng, n có thể rất lớn. Ta xây dựng một véc tơ n chiều
c’ từ c theo cách sau. Nếu phương án cắt ai được thực hiện trên tấm vật liệu loại k
thì ki cc ' , i=1,…,n và k=1,…,M. Khi đó ta có mô hình:
OneDCSP_M(m,M,l,b,L,c) = min c’x (2.2)
trên miền ràng buộc:
ji
n
i
ij bxa
1
, j=1,…,m (2.3)
)(
11
mji
M
j
j
m
j
ijj aLal
i=1,…,n (2.4)
1
1
)(
M
j
mjia i=1,…,n (2.5)
nx (2.6)
'm
ia i=1,…,n (2.7)
Trong mô hình trên, aij (i=1,…,n; j=1,…,m) là số lượng thành phẩm thứ j được cắt
theo phương án thứ i.
2.2. Phát biểu mới của bài toán OneDCSP_M
Trong mục này chúng ta sẽ tiến hành phân tích mối quan hệ ngữ nghĩa giữa hai
bài toán OneDCSP_S và OneDCSP_M và đưa ra một cách phát biểu mới cho bài
toán OneDCSP_M.
Định lý 2.1. [2] OneDCSP_M(m,M,l,b,L,c) OneDCSP_S(m,Lk,l,b)ck với mọi
k{1,…,M}. Nói cách khác, bài toán cắt vật tư với nhiều kích thước vật liệu
thô sẽ tốt hơn việc cắt chỉ trên một loại vật liệu.
Chứng minh
29
Do giả thiết giá của vật tư tỷ lệ thuận với bề rộng của nguyên liệu nên
giá trị hàm mục tiêu chỉ phụ thuộc vào các phương án cắt. Các phương án cắt
tối ưu cho (1.2) -(1.4) thỏa mãn (1.1) đối với chỉ số k nào đó thì cũng thỏa
mãn (2.4) và do vậy chúng trở thành phương án chấp nhận được của (2.2)-
(2.7). Điều này chứng minh khẳng định của định lý.
Định lý 2.1 khẳng định ý nghĩa của việc xây dựng các giải pháp cho bài toán cắt
vật tư với nhiều kích thước vật liệu thô.
Giả sử x* là nghiệm tối ưu của (2.2)-(2.7). Ta ký hiệu:
- (k), k=1,…,M, là tập tất cả các phương án cắt trên vật liệu thô thứ k được
sử dụng trong (2.2)-(2.7) tương ứng x* ;
- x* /(k) là thu hẹp của x* trên (k);
- bk là véc tơ vật tư thành phẩm nhận được từ (2.2)-(2.7) với việc sử dụng số
lần cắt theo các phương án cắt trong (k) được xác định bằng các thành
phần tương ứng của x* /(k).
Định lý 2.2. [2] Nếu x* là nghiệm tối ưu của bài toán OneDCSP_M(m,M,l,b,L,c)
(2.2)-(2.7) thì x* /(k) là nghiệm tối ưu của bài toán ),,,(_ kk blLmSOneDCSP
(1.1)-(1.4), k=1,…,M.
Chứng minh
Giả sử x* là nghiệm tối ưu của (2.2)-(2.7). Rõ ràng rằng, nếu ta khởi tạo
bài toán (1.1)-(1.4) với các phương án cắt được xác định trong )(k thì
)(/* kx chính là một nghiệm chấp nhận được của ),,,(_ kk blLmSOneDCSP .
Vì vậy ta có )(/*),,,(_ kxblLmSOneDCSP kk . Ta cần chỉ ra trong
trường hợp này thực sự xảy ra dấu đẳng thức.
Giả sử )(/* kx không phải là nghiệm tối ưu của bài toán. Khi đó tồn tại
x’ là nghiệm của nó và thỏa mãn:
30
)(/*'),,,(_ kxxblLmSOneDCSP kk
Vì việc cắt nguyên liệu thô thứ k hoàn toàn độc lập với việc cắt các
nguyên liệu thô khác nên nếu ta thay tập các biến của x* nằm trong )(/* kx
bằng tập các biến tương ứng của x’ để nhận được tập biến mới x" và đưa các
phương án cắt tạo nên x’ trong bài toán ),,,(_ kk blLmSOneDCSP vào (2.3)
và (2.4) thì x" chính là một nghiệm chấp nhận được của (2.2)-(2.7). Tuy
nhiên giá của hàm mục tiêu của bài toán (2.2)-(2.7) xác định trên x" sẽ nhỏ
hơn giá của hàm mục tiêu xác định trên x*. Điều này mâu thuẫn với giả thiết
x* là nghiệm tối ưu của (2.2)-(2.7). Như vậy )(/* kx là nghiệm tối ưu của
bài toán ),,,(_ kk blLmSOneDCSP . Định lý được chứng minh.
Trên cơ sở của Định lý 2.2, chúng ta có thể mô hình hóa bài toán OneDCSP_M
dưới dạng phát biểu mới bởi Định lý sau.
Định lý 2.3. Bài toán OneDCSP_M(m,M,l,b,L,c) tương đương với bài toán
M
k
k
k
k cblLmSOneDCSP
1
),,,(_min (2.8)
trên miền ràng buộc:
bbM
k
k
1
(2.9)
k mb (2.10)
Chứng minh.
Giả sử nghiệm tối ưu của bài toán OneDCSP_M(m,M,l,b,L,c) là x* và các
véc tơ nghiệm tối ưu của bài toán (2.8) -(2.10) là b**k.
Đặt b*k là véc tơ sản phẩm được cắt trên loại vật liệu thứ k tương ứng với
)(/* kx . Khi đó ma trận B* được tạo thành từ các véc tơ cột b*k sẽ phải
thỏa mãn (2.9)-(2.10) và theo Định lý 2.2 ta có :
31
k
M
k
k
k cblLmSOneDCSPcLblMmMOneDCSP ),,,(_),,,,,(_
1
*
Nói cách khác, nghiệm của bài toán OneDCSP_M(m,M,l,b,L,c) là một
nghiệm chấp nhận được của bài toán (2.8) -(2.10). Từ đó ta có bất đẳng thức:
k
M
k
k
k cblLmSOneDCSPcLblMmMOneDCSP ),,,(_),,,,,(_
1
**
Ngược lại, các véc tơ nghiệm tối ưu b**k của bài toán (2.8)-(2.10) bảo
đảm đáp ứng yêu cầu kế hoạch b. Tức là việc thực hiện cắt vật tư theo
nghiệm tối ưu đó sẽ là nghiệm chấp nhận được của bài toán
OneDCSP_M(m,M,l,b,L,c). Từ đó ta có :
k
M
k
k
k cblLmSOneDCSPcLblMmMOneDCSP ),,,(_),,,,,(_
1
**
Hai bất đẳng thức trên khẳng định tính đúng đắn của định lý.
Định lý 2.4. [2] Nghiệm tối ưu của bài toán (2.8)-(2.10) sẽ xác định trên tập các véc
tơ bk thỏa mãn bbM
k
k
1
. Tập các véc tơ bk như vậy được gọi là phân hoạch
của b. Nói cách khác nghiệm tối ưu của (2.8)-(2.10) được xác định trên tập
các phân hoạch của véc tơ b.
Chứng minh
Giả sử các kb thỏa mãn bbM
k
k
1
. Khi đó ta có thể chọn các véc tơ
k mt thỏa mãn: kk bt k=1,…,M; bt
M
k
k
1
. Rõ ràng rằng nếu x* là nghiệm
tối ưu của ),,,(_ kk blLmSOneDCSP thì x* cũng là một nghiệm chấp nhận
được của bài toán ),,,(_ kk tlLmSOneDCSP . Do đó
),,,(_),,,(_ kkkk blLmSOneDCSPtlLmSOneDCSP k=1,…,M. Thay các bất
đẳng thức này vào (2.8), định lý được chứng minh .
32
Các kết quả trên cho phép chúng ta phát biểu lại mô hình bài toán OneDCSP_M
thông qua bài toán OneDCSP_S như sau :
k
M
k
k
k cblLmSOneDCSPcLblMmMOneDCSP ),,,(_min),,,,,(_
1
(2.11)
trên miền ràng buộc:
1
M k
k
b b
(2.12)
k mb (2.13)
2.3. Giải thuật di truyền lai ghép giải bài toán OneDCSP_M
Các định lý 2.2, 2.3, 2.4 và phát biểu mới của bài toán OneDCSP_M (2.11)-
(2.13) gợi cho chúng ta ý tưởng phân rã bài toán OneDCSP_M thành các bài toán
cơ sở là bài toán ),,,(_ kk blLmSOneDCSP để có thể áp dụng thuật toán AF giải nó.
Các nghiệm tối ưu của từng bài toán cơ sở sẽ được kết hợp lại để tạo nên nghiệm
chấp nhận được của bài toán OneDCSP_M. Việc tìm nghiệm tối ưu cho bài toán
OneDCSP_M sẽ là việc tìm kiếm trong không gian các phân hoạch của véc tơ đơn
hàng (2.12)-(2.13) những phân hoạch bảo đảm tối ưu (2.11). Ý tưởng trên là cơ sở
để xây dựng một thuật toán lai ghép giữa giải thuật di truyền và thuật toán AF để
giải bài toán OneDCSP_M.
Sau đây chúng ta sẽ lần lượt hình thức hóa ý tưởng đó trên ngôn ngữ của giải
thuật di truyền và thuật toán AF.
Biểu diễn bài toán. Chúng ta sử dụng nhiễm sắc thể có cấu trúc (b1,...,bM),
k mb để biểu diễn các cá thể (các điểm) trong không gian tìm k iếm. Mỗi
quần thể là một tập bao gồm một số cố định các cá thể.
Độ đo thích nghi . Với mỗi cá thể s=(b1,...,bM) ta xác định mức độ thích nghi
của cá thể, f(s), bằng công thức sau:
33
M
k
k
k
k cblLmSOneDCSP
sf
1
),,,(_
1)( (2.14)
Toán tử lai ghép . Giả sử Mbbs 1111 ,..., và Mbbs 2122 ,..., là 2 cá thể bất kỳ.
Chúng ta đưa ra một số dạng toán tử lai ghép sau đây:
Toán tử Lai ghép một điểm . Giả sử k là một số được lựa chọn ngẫu nhiên,
mk 1 . Từ hai cá thể trên ta tạo ra hai hậu duệ '1s và '2s với các véc tơ cột
tương ứng của chúng được xác định như sau:
;1,...,1,1'1 kiibib jj mkiibib jj ,...,,2'1 ; j=1,…,M (2.15)
1,...,1,2'2 kiibib jj ; ;,...,,1'2 mkiibib jj j=1,…,M (2.16)
Toán tử lai ghép chọn lọc. Toán tử này nhằm trao đổi các thành phần mã hóa
khác nhau nhất trong biểu diễn của hai cá thể.
Chúng ta tính toán khoảng cách giữa các hàng theo công thức :
1 2 1 2
1
( , )
M i i
j
i
d s s b j b j
j=1,...,m (2.17)
Giả sử t là tham số làm cực đại (2.17), tức là
dt(s1,s2)= maxj=1,..,m{dj(s1,s2)} (2.18)
Khi đó ta chọn điểm lai ghép là t và tạo ra hai hậu duệ '1s và '2s với các véc tơ
cột tương ứng của chúng được xác định như sau:
'1 1 , 1,..., , ;j jb i b i i m i t '1 2 ,j jb t b t j=1,…,M (2.19)
'2 2 , 1,... ,j jb i b i i m i t ; '2 1 ,j jb t b t j=1,…,M (2.20)
Ta cũng có thể mở rộng toán tử lai ghép (2.19)-(2.20) để cho phép nhiều thành
phần mã hóa được trao đổi giữa biểu diễn của hai cá thể t heo cách lựa chọn r hàng
34
có khoảng cách lớn nhất sau khi sắp xếp các khoảng cách (2.18) theo thứ tự giảm
dần (1<r<m).
Toán tử lai ghép ngẫu nhiên. Toán tử này sẽ lựa chọn điểm lai ghép t một cách
ngẫu nhiên theo phân bố xác suất được xác định như sau :
1 2
1 2
1
,( )
,
t
m
i
i
d s sp t
d s s
, t=1,...,m (2.21)
Sau khi đã chọn điểm lai ghép, ta thực hiện việc lai ghép như trong (2.19)-
(2.20)
Toán tử đột biến. Cho cá thể Mbbs ,...,1 .
Toán tử đột biến địa phương . Chọn ngẫu nhiên một bộ 3 các số nguyên (p,q,r),
Mqp ,1 và mr 1 , với xác suất:
20 1mMp (2.22)
Toán tử đột biến địa phương tác động lên cá thể Mbbs ,...,1 để tạo nên cá thể
Mbbs 1111 ,..., với bộ (p,q,r) đã chọn như sau:
ii bb 1 khi qipi & i=1,…,M (2.23)
jbjb pp 1 , jbjb qq 1 khi j=1,…,m và rj (2.24)
11 rbrb pp , 11 rbrb qq nếu 0rb p (2.25)
rbrb pp 1 , rbrb qq 1 nếu 0rb p (2.26)
Toán tử đột biến phân phối đều . Chọn ngẫu nhiên một bộ 3 các số nguyên
(p,q,r), Mqp ,1 và mr 1 , với xác suất được xác định nh ư trong (2.22).
Đặt p qQ b r b r . Khi đó ta chọn ngẫu nhiên một số t{0,1,...,Q}theo
phân phối đều:
( ) 1/ 1p t Q (2.27)
35
và toán tử đột biến phân phối đều được xác định bởi công thức:
pb r t ; qb r Q t (2.28)
Toán tử chọn lọc. Toán tử chọn lọc được xác định theo luật tỷ lệ thuận với mức
độ thích nghi:
Gs
s sf
sfp )(
)( (2.29)
Trong đó s là cá thể và G là quần thể đang xem xét có chứa s.
Định lý 2.5. [2] Giả sử hai cá thể cha-mẹ là các phân hoạch của cùng một véc tơ.
Khi đó các toán tử lai ghép và toán tử đột biến xác định như trên sẽ bảo đảm
các hậu duệ cũng là những phân hoạch của véc tơ đó.
Chứng minh
Ta chứng minh khẳng định này cho toán tử lai ghép (2.15)-(2.16) và toán
tử đột biến (2.23) -(2.26). Đối với các toán tử khác việc chứng minh hoàn
toán tương tự.
Nếu ta biểu diễn các cá thể dưới dạng bảng có kích thước m.M, trong đó
cột i của bảng chứa véc tơ bi của cá thể, i=1,…,M. Khi đó toán tử lai ghép sẽ
thực hiện việc trao đổi M-k hàng cuối cùng của 2 bảng tương ứng với 2 phần
tử cha-mẹ cho nhau để tạo nên 2 hậu duệ. Còn đối với toán tử đột biến, hậu
duệ sẽ hoặc là bản sao của cha-mẹ theo (2.23),(2.24)-(2.26), hoặc chỉ thay
đổi tại hàng r theo (2.23),(2.24)-(2.25). Vì vậy tổng các cột của hậu duệ luôn
bằng tổng các cột của cha-mẹ. Định lý được chứng minh.
Dựa trên các Định lý 2.1, 2.2, 2.3, 2.4, 2.5 chúng ta có thể xây dựng thuật toán lai
ghép như sau:
THUẬT TOÁN GA-AF
Input: m, M , l, L, b, c
36
Output: Nghiệm tối ưu của bài toán OneDCSP_M(m,M,l,b,L,c) và các phương án
cắt tương ứng với nghiệm tối ưu đó
Bước 0. Khởi tạo quần thể gồm K cá thể 0010 ,..., KssG . Việc khởi tạo này có thể
thực hiện dễ dàng bằng việc tạo ra K phân hoạch khác nhau của b, mỗi
phân hoạch sẽ tương ứng với một đối tượng của quần thể. Các cá thể
được biểu diễn như sau:
0010 ,..., iMii bbs , 0 mijb ,
M
j
ij bb
1
0 , i=1,…,K
Bước 1. Giải các bài toán ),,,(_ tikk blLmSOneDCSP bằng thuật toán AF,
i=1,…,K, k=1,…,M, t là thứ tự bước lặp (thứ tự của quần thể). Tính
mức độ thích nghi )( tisf cho từng cá thể của Gt theo (2.14).
Bước 2. Lựa chọn các cha-mẹ trong Gt theo mức độ thích nghi để ghép cặp theo
toán tử lai ghép (2.15)-(2.16) để tạo nên tập các hậu thế 'tG với K1 phần
tử.
Bước 3. Tác động toán tử đột biến (2.23)-(2.26) vào 'tt GG để nhận được ''tG .
Bước 4. Thực hiện tính toán giống như trong Bước 1 cho các cá thể của ''tG .
Bước 5. Áp dụng toán tử chọn lọc (2.29) lên ''tt GG để chọn ra K cá thể có mức
độ thích nghi lớn nhất tạo quần thể mới 1tG .
Bước 6. Nếu điều kiện dừng chưa thỏa mãn quay lại Bước 2. Ngược lại thuật
toán dừng và cho nghiệm tối ưu cùng tập các phương án cắt tương ứng
với nghiệm tối ưu.
Để khảo sát tính chất của thuật toán GA-AF với giả thiết giá của vật liệu thô tỷ lệ
thuận với chiều rộng của vật liệu, ta có thể chỉ ra một số tính chất sau.
Bổ đề 2.6. [2] Nghiệm tối ưu của bài toán OneDCSP_M nằm trong khoảng sau:
37
ObccLblMmMOneDCSPco m
j
jkkkk
1
max),,,,,(_min (2.30)
Và xác suất chọn lọc trở thành cá thể thuộc quần thể tiếp theo của từng cá thể s thỏa
mãn:
0/)2(
/1
1
1
poKK
Ops (2.31)
Chứng minh
Thật vậy, trong (2.30) bất đẳng thức đầu tiên xảy ra do có ít nhất một loại
vật liệu thô được đưa vào sản xuất để đáp ứng đơn hàng. Đẳng thức sẽ đạt
được trong trường hợp chỉ cần dùng 1 tấm vật liệu thô nhỏ nhất là đủ để sản
xuất. Nói cách khác nếu ký hiệu kk LL min* thì đẳng thức xảy ra khi thỏa
mãn:
m
j
jjblL
1
*
Bất đẳng thức thứ hai là hiển nhiên khi ta sử dụng mỗi vật liệu thô có
chiều rộng lớn nhất chỉ để cắt 1 vật tư thành phẩm.
Bất đẳng thức (2.31) được suy ra trực tiếp từ (2.29), (2.30) và cơ chế hoạt
động của thuật toán GA-AF.
Sau đây chúng ta sẽ sử dụng các ký hiệu sau:
Partition(b) là tập tất cả các phân hoạch của b thành M phân hoạch;
tt GssfF :)(max : mức độ thích nghi lớn nhất của quần thể tG ;
)(:)(max* bPartitionssfF : mức độ thích nghi lớn nhất của tất cả không
gian nghiệm. Mức độ thích nghi lớn nhất này chính là nghịch đảo của
nghiệm tối ưu toàn cục của bài toán OneDCSP_M;
** )(:)( FsfbPartitionsS : tập tất cả các cá thể tương ứng với nghiệm
tối ưu toàn cục của bài toán OneDCSP_M.
38
Ta nhận xét rằng, mỗi khi *FFt thì quần thể tG sẽ chứa một cá thể biểu diễn
nghiệm tối ưu toàn cục của bài toán OneDCSP_M.
Định nghĩa 2.1. Ký hiệu biến ngẫu nhiên *:0min FFtF t là lần đầu tiên
trong quần thể tG chứa cá thể biểu diễn nghiệm tối ưu toàn cục của bài toán
OneDCSP_M. Khi đó ta nói rằng thuật toán GA-AF hội tụ hầu chắc chắn nếu
nó đạt được nghiệm tối ưu toàn cục trong khoảng thời gian hữu hạn với xác
suất P{F<}=1 không phụ thuộc vào quần thể khởi đầu.
Định nghĩa 2.2. Giả sử s và s’ là hai cá thể khác nhau trong Partition(b). Cá thể s’
được gọi là có thể đạt được từ s nếu tồn tại một dãy hữu hạn các cá thể
rsss ,...,, 21 đôi một khác nhau của Partition(b) sao cho 1ss , rss ' và 1is
nhận được từ is với xác suất dương bằng việc áp dụng toán tử đột biến vào
is , i=2,…,r.
Bổ đề 2.7. [2] Mọi cá thể trong Partition(b) đều có thể đạt được từ cá thể bất kỳ của
Partition(b).
Chứng minh
Giả sử s, s’ là hai cá thể khác nhau bất kỳ trong Partition(b). Nếu ta biểu
diễn hai cá thể đó bằng hai ma trận A và A’ kích thước m.M, ta có thể định
nghĩa khoảng cách giữa hai cá thể này là:
m
i
M
j
ijij aassd
1 1
'
2
1)',(
Do s và s’ là các phân hoạch khác nhau của véc tơ b nên nếu tại một
dòng r nào đó của ma trận A tồn tại một chỉ số p sao cho 'rprp aa thì cũng sẽ
tồn tại một chỉ số q mà tại đó thỏa mãn 'rqrq aa . Khi đó ta có thể thực hiện
phép đột biến trên bộ 3 (p,q,r) với xác suất 0p vào s để nhận được cá thể mới
s” cũng là phần tử của Partition(b). Khi đó d(s”,s’)=d(s,s’)-1. Thực hiện lên
tiếp thủ tục này d(s,s’) lần ta sẽ nhận được s’.
39
Theo giả thiết ban đầu, s và s’ là hai cá thể bất kỳ nên Bổ đề được chứ ng
minh.
Định lý 2.8. [2] Thuật toán GA-AF là hội tụ hầu chắc chắn.
Chứng minh
Giả sử s, s’ là hai cá thể của Partition(b) sao cho *Ss và *' Ss . Theo
Bổ đề 2.7 , s’ có thể đạt được từ s, tức là tồn tại một nhánh hữu hạn đi từ s
đến s’ mà mỗi cá thể trên đó nhận được bằng việc tác động toán tử đột biến
vào cá thể đứng trước nó. Dễ dàng chỉ ra rằng độ dài của nhánh ngắn nhất đi
từ s tới s’ bằng các toán tử đột biến chính là d(s,s’). Đặt
*'' :),(max Ssssdks và *:max Sskk s .
Xét một cá thể tùy ý s của một quần thể nào đó. Theo thuật toán GA-AF,
Bước 3 bảo đảm rằng cá thể này chắc chắn được tác động bởi toán tử đột
biến và xác suất để ảnh của nó qua toán tử đột biến trở thành điểm tiếp theo
trên đường đi ngắn nhất từ s đến *S sẽ không nhỏ hơn 0p . Theo (2.29) và
ước lượng (2.31), ta có xác suất để một cá thể bất kỳ được lựa chọn làm cá
thể thuộc quần thể thế hệ sau không nhỏ hơn 1p . Như vậy xác suất để ảnh
của s qua phép đột biến đồng thời là điểm tiếp theo trên đường đi ngắn nhất
từ s tới *S và được lựa chọn làm cá thể của quần thể thế hệ sau sẽ không nhỏ
hơn 0. 10 pp . Lặp liên tiếp sk lần lập luận như trên, ta thấy xác suất chuyển
từ *Ss vào thành cá thể nào đó thuộc *S tại bước lặp thứ sk sẽ không nhỏ
hơn 0. 110 ss kk pp . Vì vậy ta có thể đánh giá xác suất để một cá thể tối ưu toàn
cục được xét đến trong thuật toán sau k vòng lặp sẽ không nhỏ hơn
0. 110 kk pp và không phụ thuộc vào sự khởi đầu thực sự của *Ss . Từ đây
suy ra rằng, xác suất để thuật toán không xét đến bất kỳ một nghiệm tối ưu
nào sau t vòng lặp sẽ lớn nhất là
ktkk pp /110 .1 (2.32)
40
Dễ thấy rằng đại lượng trong (2.32) sẽ hội tụ rất nhanh theo tốc độ lũy
thừa tới 0 khi t . Điều này có nghĩa 1)( FP (hay là nghiệm tối ưu
toàn cục được thuật toán xét đến lần đầu tiên sau hữu hạn bước lặp với xác
suất bằng 1). Do s là cá thể tùy ý nên Định lý được chứng minh.
Các kết quả lý thuyết trong mục này sẽ được dùng làm cơ sở cho việc xây dựng
hệ thống đa tác tử với tên gọi GMAS -OneDCSP_M được trình bày trong Chương 3.
2.4. Kết quả tính toán
Thuật toán GA-AF đã được t riển khai tại Nhà máy ống thép Việt-Đức. Việc
khai thác phần mềm phụ thuộc vào những tác động sau:
- Kế hoạch sản xuất phụ thuộc hoàn toàn vào thị trường tiêu thụ. Có những
thời điểm nhà máy hoạt động ba ca, có những thời điểm chỉ hoạt động hai
ca và thậm chí hoạt động cầm chừng. Vì vậy kế hoạch luôn thay đổi cho
phù hợp với biến động của thị trường.
- Nguồn vật liệu thô cũng thường xuyên biến động. Điều này cũng ảnh
hưởng tới quá trình khai thác phần mềm. Mỗi khi có loại vật liệu mới
được nhập về, mặc dù kế hoạch cũ (nghiệm cũ) chưa thực hiện xong thì
phần tồn tại được tính vào dự báo biến động thị trường để có kế hoạch
mới và lặp lại việc khai thác phần mềm với các tham số được thiết lập phù
hợp nên các kế hoạch luôn có sự gối đầu và chồng lấn lên nhau. Chính và
vậy, việc thu thập dữ liệu chính xác để đánh giá hiệu quả của GA -AF gặp
nhiều khó khăn (sự giao nhau giữa các kế hoạch và tham số đầu vào của
thuật toán).
- Cũng trong quá trình quan sát thực tế sản xuất tác giả có nhận thấy rằng,
các loại sản phẩm đáp ứng yêu cầu thị trường của nhà máy khá ổn định (ít
chủng loại) nên dữ liệu có được cũng rất đơn điệu, khó phản ánh một cách
khách quan các khía cạnh khác nhau của thuật toán.
41
Tuy nhiên, kết quả phản ánh chung nhất từ nhà sản xuất là từ khi khai thác phần
mềm này, lượng phế thải giảm đi một cách đáng kể [1]. Sau một năm sử dụng phần
mềm, số liệu thống kê chung cho thấy:
- Lượng phế liệu trên tổng khối lượng thép thành phẩm giảm từ 3% xuống
còn 1%.
- Tổng sản phẩm tồn kho từng kỳ trên tổng sản phẩm được sản xuất t heo kế
hoạch định kỳ giảm từ 9% xuống còn 4%.
Với năng lực sản xuất của nhà máy tại thời điểm triển khai thử nghiệm là
70.000 tấn/năm, khối lượng vật tư đã tiết kiệm được khoảng hơn 1000 tấn.
Theo phân loại của Waescher [57], các bài toán OneDCSP_M được phân làm hai
lớp. Lớp đầu tiên chính là bài toán đặt ra cho Luận án và được gọi là lớp
OneDCSP_M với số lượng vật liệu thô không hạn chế (unlimited stock quantity).
Lớp thứ hai là lớp các bài toán nhận được từ lớp thứ nhất với việc bổ sung ràng
buộc về số lượng vật liệu thô của mỗi loại và được gọi là lớp bài toán OneDCSP_M
với số lượng vật liệu thô hạn chế (limited stock quantity).
Theo sự hiểu biết của tác giả, cho tới thời điểm hiện tại chưa có công trình
nghiên cứu thực nghiệm nào về bài toán của lớp thứ nhất được công bố [ 14].
Đối với lớp bài toán thứ hai cũng có rất ít công trình đề cập đến. Belov và
Scheithauer [11] đã mở rộng thuật toán mặt phẳng cắt cho trường hợp một loại vật
liệu thô để giải bài toán OneDCSP_M với số lượng vật liệu thô hạn chế. Alves và
Carvalho [56] xây dựng mô hình Arc-flow để giải quyết chính xác bài toán thuộc
lớp hai. Mới đây nhất, Silvio A. Araujo và đồng sự [ 48] đề xuất giải pháp heuristic
trên cơ sở thuật toán tiến hóa (Evolutionary Algorithm) cho lớp bài toán này đồng
thời tiến hành nghiên cứu so sánh các kết quả đạt được với kết quả của Belov và
Scheithauer [11].
Như đã phân tích ở trên, bài toán đặt ra trong Luận án có điểm khác biệt với các
bài toán do các tác giả trên giải quyết bởi sự có mặt hoặc không có mặt của ràng
42
buộc về số lượng vật liệu thô. Do đó việc nghiên cứu so sánh giữa đề xuất của tác
giả Luận án với những kết quả trên sẽ không phản ánh được đầy đủ các ưu, nhược
điểm giữa các giải pháp.
Tuy nhiên, để có một đánh giá ban đầu về hiệu quả của phương pháp được đề
xuất trong Luận án, tác giả đã tiến hành lựa chọn các tham số chung giữa hai bài
toán và thử nghiệm phương pháp của mình trên các dữ liệu được lọc ra theo các
tham số này từ các bài toán được Belov và Scheithauer công bố tại địa chỉ:
Dữ liệu này gồm 3100 bài toán được tạo sinh một cách ngẫu nhiên và chia làm
31 nhóm, mỗi nhóm 100 bài toán. Sau khi loại bỏ các ràng buộc về số lượng vật liệu
thô, các bài toán trở thành các bài toán thuộc lớp thứ nhất với các tham số đặc trưng
sau đây:
- Số loại vật liệu thô M=5
- Số loại sản phẩm m=40
- Kích thước từng loại vật liệu thô: L1=10000, Li thuộc tập
{5000,5100,…,9900} i=2,…5
- Giá của từng loại vật liệu thô ci=Li, i=1,…,5
- Kích thước sản phẩm li được sinh ngẫu nhiên và nằm trong khoảng
[v1Lmax,v2Lmax], với Lmax=max{Li}, i=1,…,M; v1={0.001; 0.01; 0.15; 0.25}
và v2={0.2; 0.3;…;0.9}
- Yêu cầu đối với mỗi loại sản phẩm: b i, i=1,…,M được sinh ngẫu nhiên và
nằm trong khoảng [200,300]
Nhận xét. Với cách tạo dữ liệu mẫu như vậy, nghiệm tối ưu của các bài toán
nhận được là hoàn toàn chưa biết. Tuy nhiên có một nhận xét rằng, các nghiệm tối
ưu của bài toán được Belov giải quyết luôn là nghiệm chấp nhận được của bài toán
tương ứng đặt ra trong Luận án. Bởi vậy, ta hoàn toàn có thể coi nghiệm tối ưu của
43
Belov là nghiệm “tốt nhất” được biết tới cho đến thời điểm hiện tại đối với các bài
toán tương ứng của Luận án. Từ đó để có thể đánh giá chất lượng của giải thuật,
chúng ta sẽ tiến hành sử dụng nó giải các bài toán trên bộ dữ tham số chung giữa
hai bài toán và so sánh các kết quả nhận được với các nghiệm “tốt nhất” đó của
Belov-Scheithauer [11] và kết quả xấp xỉ của Silvio A. Araujo và đồng sự.
Để có thể đánh giá chất lượng nghiệm cũng như hiệu quả về thời gian của thuật
toán GA-AF, tác giả đã tiến hành chạy thử nghiệm trên toàn bộ số liệu được lọc ra
từ 31 lớp với các tham số được lựa chọn như sau:
- Kích thước quần thể: 10
- Tiêu chuẩn dừng: sau 1500 vòng lặp hoặc có 10 vòng lặp liên tiếp cho giá
trị hàm mục tiêu như nhau
- Hàm mục tiêu: chính là hàm mục tiêu của bài toán OneDCSP_M()
Các tiêu chí để đánh giá bao gồm:
- Chất lượng nghiệm được tính bằng độ lệch của nghiệm từ thuật toán GA -
AF và nghiệm của Belov và Scheithauer theo công thức do Silvio A.
Araujo và đồng sự đưa ra:
( _ ) ( & ) 100
&
GA AF solution Belov Scheithauer solutionGAP
Belov Scheithauer solution
- Thời gian: thời gian tối thiểu, thời gian trung bình và thời gian tối đa để
giải từng lớp bài toán.
Về chất lượng nghiệm:
- Chất lượng nghiệm của thuật toán GA-AF được tổng kết trong bảng 2.1
[42] và bảng 2.3. Bảng 2.1 mô tả độ lệch trung bình, nhỏ nhất và lớn nhất
của từng lớp bài toán và độ lệch trung bình chung, độ lệch nhỏ nhất và lớn
nhất của 31 lớp. Độ lệch trung bình chung của 31 lớp bài toán là -0.06%,
độ lệch tối đa là 2.05% và tối thiểu là -6.18% [42]. Trong rất nhiều bài
toán thuộc các lớp bài toán như lớp bài toán C7, C14, C16, C22-C25,
44
C26-C31 nghiệm nhận được của Luận án tốt hơn nghiệm của Belov -
Scheithauer và như vậy cũng tốt hơn nghiệm của Silvio A. Araujo và đồng
sự. Điều này khẳng định nhận xét của chúng ta ở trên là nghiệm của
Belov-Scheithauer luôn là nghiệm chấp nhận được của bài toán tương ứng
thuộc lớp thứ nhất. Cũng tại các lớp này nghiệm của các bài toán còn lại
cũng rất gần với nghiệm của Belov-Scheithauer và tốt hơn hẳn nghiệm
của Silvio A. Araujo và đồng sự.
GAP GAP
Lớp v1 v2 Trung
bình
Nhỏ
nhất
Lớn
nhất
Lớp v1 v2 Trung
bình
Nhỏ
nhất
Lớn
nhất
C1 0.001 0.2 1.18 0.70 1.88 C17 0.15 0.2 0.35 0.14 0.60
C2 0.001 0.3 0.61 0.23 1.04 C18 0.15 0.3 0.25 0.10 0.40
C3 0.001 0.4 0.35 0.10 0.62 C19 0.15 0.4 0.14 0.07 0.27
C4 0.001 0.5 0.17 0.05 0.43 C20 0.15 0.5 0.10 -0.23 0.19
C5 0.001 0.6 0.10 -2.02 0.37 C21 0.15 0.6 0.05 -0.17 0.16
C6 0.001 0.7 0.08 -0.07 0.29 C22 0.15 0.7 -0.07 -2.60 0.15
C7 0.001 0.8 -0.01 -6.00 0.14 C23 0.15 0.8 -0.23 -3.18 0.07
C8 0.001 0.9 0.04 -1.76 0.20 C24 0.15 0.9 -0.32 -2.76 0.10
C9 0.01 0.2 1.14 0.73 2.05 C25 0.25 0.3 -0.96 -5.80 0.48
C10 0.01 0.3 0.59 0.30 1.04 C26 0.25 0.4 0.01 -3.08 0.18
C11 0.01 0.4 0.32 0.10 0.64 C27 0.25 0.5 -0.03 -5.15 0.22
C12 0.01 0.5 0.18 0.06 0.45 C28 0.25 0.6 -0.11 -1.85 0.16
C13 0.01 0.6 0.12 0.02 0.32 C29 0.25 0.7 -0.36 -1.98 0.05
C14 0.01 0.7 -0.02 -5.01 0.41 C30 0.25 0.8 -0.48 -3.45 0.05
C15 0.01 0.8 0.03 -1.22 0.27 C31 0.25 0.9 -0.82 -6.18 0.02
C16 0.01 0.9 -0.14 -5.74 0.15 -0.06 -6.18 2.05
Bảng 2.1 Tổng kết chất lượng nghiệm so với kết quả của Belov -Scheithauer[42]
45
- Tại các lớp còn lại kết quả đạt được cũng rất gần với kết quả của Belov -
Scheithauer với độ lệnh nhỏ nhất xấp xỉ 0.01% và độ lệch lớn nhất xấp xỉ
2.05%. Kết quả này tốt hơn hẳn nghiệm của Silvio A. Araujo và đồng sự
với các độ lệch tương ứng là 0.17% và 2.37%.
Bảng 2.2 trích dẫn kết quả tính toán so sánh của Silvio A. Araujo và đồng sự với
kết quả tính của Belov theo [48].
GAP GAP
Lớp v2 v2 1500
vòng lặp
3000
vòng lặp
Lớp v1 v2 1500
vòng lặp
3000
vòng lặp
C1 0.001 0.2 0.175285 0.162389 C17 1.5 0.2 1.660874 1.647265
C2 0.001 0.3 0.338222 0.334772 C18 1.5 0.3 1.204246 1.157270
C3 0.001 0.4 0.501230 0.485200 C19 1.5 0.4 1.157579 1.145566
C4 0.001 0.5 0.785177 0.723195 C20 1.5 0.5 1.481326 1.351702
C5 0.001 0.6 0.986865 0.888302 C21 1.5 0.6 1.431382 1.365700
C6 0.001 0.7 1.330716 1.163220 C22 1.5 0.7 1.684004 1.513348
C7 0.001 0.8 1.843849 1.640934 C23 1.5 0.8 2.254709 1.799656
C8 0.001 0.9 1.362868 1.003978 C24 1.5 0.9 1.904421 1.660200
C9 0.01 0.2 0.221194 0.220295 C25 2.5 0.3 1.213631 1.162781
C10 0.01 0.3 0.366215 0.356794 C26 2.5 0.4 2.375498 2.220528
C11 0.01 0.4 0.553312 0.541084 C27 2.5 0.5 2.164348 2.013975
C12 0.01 0.5 0.779770 0.758054 C28 2.5 0.6 1.535495 1.373492
C13 0.01 0.6 1.044311 0.938163 C29 2.5 0.7 2.044762 1.730710
C14 0.01 0.7 1.317463 1.192335 C30 2.5 0.8 2.138915 0.735370
C15 0.01 0.8 1.869427 1.598234 C31 2.5 0.9 1.553659 1.314085
C16 0.01 0.9 1.283639 1.019884 Trung bình ------------ 1.308529 1.13608
Bảng 2.2 Kết quả tính toán của Silvio A. Araujo và đồng sự
- Bảng 2.3 thống kê trên mỗi lớp số lượng bài toán có độ chênh lệch so với
nghiệm của Belov và Scheithauer là nhỏ hơn 0%, từ 0% đến 1%, từ 1%
đến 2%, từ 2% đến 3% và lớn hơn 3%. Kết quả cho thấy số lượng bài toán
có nghiệm tốt hơn (độ lệch âm) là hơn 17%, trong số các bài toán có độ
lệch dương, số lượng tập trung nhiều nhất trong khoảng từ 1% đến 2%
(chiếm hơn 77%). Chỉ có 1 bài toán nghiệm có độ lệch lớn hơn 2%.
46
Lớp 3%
C1 0 21 79 0 0
C2 0 99 1 0 0
C3 0 100 0 0 0
C4 0 100 0 0 0
C5 1 99 0 0 0
C6 5 95 0 0 0
C7 7 93 0 0 0
C8 9 91 0 0 0
C9 0 28 71 1 0
C10 0 98 2 0 0
C11 0 100 0 0 0
C12 0 100 0 0 0
C13 0 100 0 0 0
C14 10 90 0 0 0
C15 12 88 0 0 0
C16 12 88 0 0 0
C17 0 100 0 0 0
C18 0 100 0 0 0
C19 0 100 0 0 0
C20 1 99 0 0 0
C21 12 88 0 0 0
C22 27 73 0 0 0
C23 53 47 0 0 0
C24 57 43 0 0 0
C25 67 33 0 0 0
C26 12 88 0 0 0
C27 13 87 0 0 0
C28 26 74 0 0 0
C29 65 35 0 0 0
C30 74 26 0 0 0
C31 74 26 0 0 0
Tổng 537 2409 153 1 0
Trung bình 17.32% 77.71% 4.94% 0.03% 0.00%
Bảng 2.3 Phân bố độ chênh lệch nghiệm so với kết quả của Belov -Scheithauer
47
<0%
0%-1%
1%-2%
<0%
0%-1%
1%-2%
17,32%
77,71%
4,94%
Hình 2-2 Biểu đồ thống kê độ chênh lệch so với kết quả của Belov -Scheithauer
Về thời gian:
Thuật toán GA-AF của tác giả được cài đặt chạy trên máy tính Core 2 Duo
(1.5GHz/1.5GHz) và 1GB RAM.
Bảng 2.4 và bảng 2.5 tổng hợp thời gian tính toán trên 31 lớp bài toán. Thống kê
kết quả đạt được trong Luận án cho thấy:
- Khoảng 45% tổng số bài toán được giải trong vòng 30 giây.
- Thời gian tối thiểu: 1 giây
- Thời gian trung bình: 1 phút 6 giây
- Thời gian tối đa: 6 phút 39 giây
48
Thời gian Thời gianLớp Trung
bình
Nhỏ
nhất
Lớn
nhất
Lớp Trung
bình
Nhỏ
nhất
Lớn
nhất
C1 00:01:17 00:00:33 00:03:18 C17 00:00:29 00:00:13 00:01:03
C2 00:01:50 00:00:43 00:06:06 C18 00:00:31 00:00:19 00:01:25
C3 00:02:08 00:00:47 00:06:25 C19 00:00:35 00:00:18 00:01:24
C4 00:02:17 00:00:41 00:06:37 C20 00:00:28 00:00:13 00:00:59
C5 00:01:42 00:00:24 00:06:35 C21 00:00:21 00:00:11 00:01:34
C6 00:01:25 00:00:14 00:05:32 C22 00:00:13 00:00:07 00:00:24
C7 00:01:04 00:00:04 00:06:39 C23 00:00:10 00:00:05 00:00:21
C8 00:00:52 00:00:08 00:02:01 C24 00:00:12 00:00:04 00:02:01
C9 00:02:03 00:01:07 00:03:54 C25 00:00:18 00:00:01 00:00:52
C10 00:02:53 00:01:15 00:06:24 C26 00:00:36 00:00:13 00:01:30
C11 00:03:25 00:01:19 00:06:06 C27 00:00:21 00:00:07 00:00:44
C12 00:03:34 00:01:53 00:06:18 C28 00:00:19 00:00:09 00:00:33
C13 00:01:24 00:00:27 00:04:36 C29 00:00:12 00:00:06 00:00:18
C14 00:01:02 00:00:21 00:04:16 C30 00:00:10 00:00:06 00:00:15
C15 00:00:54 00:00:12 00:05:12 C31 00:00:08 00:00:04 00:00:12
C16 00:01:02 00:00:08 00:05:50 00:01:06 00:00:01 00:06:39
Bảng 2.4 Thống kê thời gian tính toán
49
Lớp 5'
C1 0 0 44 43 12 1 0 0
C2 0 0 16 48 27 6 1 2
C3 0 0 6 50 23 17 2 2
C4 0 0 6 48 24 12 5 5
C5 1 3 24 46 15 5 2 4
C6 0 9 34 35 16 2 2 2
C7 1 22 39 26 7 1 2 2
C8 7 19 43 29 2 0 0 0
C9 0 0 0 54 38 8 0 0
C10 0 0 0 20 42 26 11 1
C11 0 0 0 10 25 37 20 8
C12 0 0 0 1 26 47 22 4
C13 0 1 27 59 9 3 1 0
C14 2 12 51 28 5 0 2 0
C15 1 37 32 21 8 0 0 1
C16 8 32 26 29 3 0 1 1
C17 0 73 25 2 0 0 0 0
C18 0 53 46 1 0 0 0 0
C19 0 34 65 1 0 0 0 0
C20 0 73 27 0 0 0 0 0
C21 0 94 5 1 0 0 0 0
C22 25 75 0 0 0 0 0 0
C23 56 44 0 0 0 0 0 0
C24 81 19 0 0 0 0 0 0
C25 28 57 15 0 0 0 0 0
C26 0 28 69 3 0 0 0 0
C27 2 93 5 0 0 0 0 0
C28 2 97 1 0 0 0 0 0
C29 22 78 0 0 0 0 0 0
C30 72 28 0 0 0 0 0 0
C31 93 7 0 0 0 0 0 0
Tổng 401 988 606 555 282 165 71 32
Trung bình 13% 32% 20% 18% 9% 5% 2% 1%
Bảng 2.5 Thống kê phân bố thời gian tính toán
50
<10s
11s-30s
31s-60s
1'-2'
3'-4'
4'-5' >5'
2'-3'
<10s
11s-30s
31s-60s
1'-2'
2'-3'
3'-4'
4'-5'
>5'
18%
20%
32%
13%
9%
5%
Hình 2-3 Biểu đồ thống kê phân bổ thời gian tính toán
Hiệu quả về thời gian thực hiện của thuật toán đề xuất trong Luận án như vậy là
chấp nhận được.
Tuy nhiên, để cải thiện tốc độ tính toán của thuật toán, chúng tôi đề xuất cài đặt
thuật toán dưới dạng một hệ đa tác tử được trình bày trong Chương tiếp theo.
2.5. Kết luận
Trong chương 2, tác giả đã chỉ ra tính hiệu quả của việc cắt trên nhiều loại vật tư
so với cắt trên một loại vật tư. Mối liên quan ngữ nghĩa của bài toán OneDCSP_M
so với bài toán cắt vật tư kinh điển OneDCSP_S được chỉ ra trong các Định lý 2.1,
2.2, 2.3, 2.4. Từ đó bài toán OneDCSP_M được phát biểu lại theo cách mô hình hóa
mới.
Trên cơ sở mối quan hệ ngữ nghĩa giữa hai bài toán OneDCSP_M và
OneDCSP_S, tác giả đề xuất thuật toán giải GA-AF trên cơ sở lai ghép giữa giải
thuật di truyền với thuật toán AF giải bài toán OneDCSP_S của Carvalho. Thuật
toán đưa ra cách mã hóa nghiệm của bài toán và xây dựng các toán tử di truyền
51
đóng trên phân hoạch của véc tơ kế hoạch sản phẩm. Tính đúng đắn của thuật toán
mới được trình bày trong các định lý 2.5 và 2.8.
Thuật toán GA-AF được cài đặt, chạy thử nghiệm và so sánh với các kết quả của
các tác giả khác được xem như nghiệm ‘tốt nhất’ của bài toán có được cho đến nay
trên một số lượng đáng kể các bài toán mẫu. Các so sánh bước đầu cho thấy tính
hiệu quả của thuật toán.
52
Chương 3. HỆ THỐNG ĐA TÁC TỬ GMAS-OneDCSP_M GIẢI BÀI
TOÁN OneDCSP_M .
Từ cuối thế kỷ trước, các nhà nghiên cứu trí tuệ nhân tạo đã đề xuất xây dựng các
hệ thống phần mềm cộng tác (collaborating software systems) dựa trên cách tiếp
cận “chia để trị”. Trong mỗi hệ thống, một số module nhỏ được phát triển một cách
độc lập và kết hợp với nhau để tạo nên toàn bộ hệ thống. Những năm gần đây đã
xuất hiện một số hướng nghiên cứu đề cập đến tới các hệ thống phần mềm cộng tác
như các hệ thống bảng đen (Blackboard Systems) [16, 19, 31], các hệ thống đa tác
tử (Multi-agent Systems), lập trình theo nghĩa rộng (Programming in the large hay
Megaprogramming), các hệ thống đối tượng phân tán (Dis tributed-object Systems),
công nghệ phần mềm dựa trên thành phần (Component-based software
engineering)….
Hiện nay, hướng nghiên cứu về hệ đa tác tử đang thu hút nhiều sự quan tâm
nhằm giải quyết các dạng bài toán tối ưu phức tạp khác nhau [8,15,36]. Các tác tử
được coi như các modul có một số đặc trưng riêng như tính tự trị (autonomy), tính
xã hội (social ability), tính phản ứng (reactivity), tính chủ động (pro-activeness).
Các tác tử làm việc cộng tác với nhau để giải bài toán. Những nghiên cứu về các hệ
đa tác tử thường nhấn mạnh đến việc giải quyết các vấn đề nảy sinh từ những tính
chất đặc trưng của tác tử như vấn đề tương tác (interaction), phối hợp (cooperation),
điều khiển phân tán (distributed control)… giữa các tác tử trong hệ thống. Các giải
pháp được đưa ra thường mô phỏng các hành vi của đám đông và được gọi chung là
các thuật toán dựa trên quần thể (Population-Based Algorithms).
Để giải quyết các vấn đề nêu trên, Talukdar và cộng sự đã đề xuất một kiến trúc
cơ sở cho phép xây dựng các hệ thống trong đó một nhóm các tác tử tự trị hoạt động
một cách song song, không đồng bộ trong khuôn khổ cộng tác với nhau để giải các
bài toán tối ưu với tên gọi A-Teams (Asynchronous Teams) [49,50]. Trong kiến
trúc cơ sở này, mỗi tác tử sẽ đảm trách một số kỹ nă ng nào đó trong việc giải quyết
53
bài toán toàn cục và hoạt động hoàn toàn độc lập với các tác tử khác. Kiến trúc điển
hình của A-Team được cho trong Hình 3.1.
Hình 3-1 Kiến trúc của A-Team
Một trong những tiện ích được sử dụng rộng rãi để phát triển các hệ đa tác tử là
JADE [9,10,54]. JADE được xây dựng dựa hoàn toàn vào các đặc tả của FIPA
(Foundation for Intelligent Physical Agents), vì vậy bản thân JADE thường được
đồng nhất với các đặc tả này [25]. Kiến trúc A-Team dựa trên nền tảng JADE là
công cụ hiệu quả để cài đặt các thuật toán dựa trên quần thể [34].
Trong phần tiếp theo, hệ thống đa tác tử gen GMAS -OneDCSP_M sẽ được xây
dựng trên nền tảng JADE với kiến trúc A-Team nhằm nâng cao hiệu quả của thuật
toán GA-AF giải bài toán OneDCSP_M. Hệ GMAS-OneDCSP_M thiết kế cho phép
sử dụng tối ưu tài nguyên tính toán của hệ thống và chịu được sự cố .
Memory
A7
A3
A1A5
A6 A8
A4 A2
54
3.1. Yêu cầu của hệ thống GMAS-OneDCSP_M
GMAS-OneDCSP_M là hệ thống đa tác tử được thiết kế d ùng để giải quyết các
bài toán cắt vật tư một chiều được cài đặt bằng ngôn ngữ Java trên nền JADE và có
các đặc trưng sau đây :
- Hệ thống có thể giải quyết nhiều bài toán cắt vật tư khác nhau tại cùng một
thời điểm.
- Quá trình giải từng bài toán có thể được thực hiện trên nhiều máy tính.
Người dùng có thể tự do kết nối hoặc loại bỏ một máy tính bất kỳ khỏi hệ
thống. Trong trường hợp này, hệ thống tự thích nghi với những thay đổi
bằng việc chỉ thị cho các tác tử đang làm việc trong hệ thống di trú tới nơi
cho phép.
- Hệ thống thực hiện việc giải các bài toán theo mẻ (batch mode). Các bài
toán mới sẽ được lưu trữ và giải quyết khi hệ thống có đủ tài nguyên cho
phép thực hiện giải bài toán.
Các Định lý 2.2, 2.3 và 2.4 phản ánh mối quan hệ ngữ nghĩa giữa bài toán
OneDCSP_M(m,M,l,b,L,c) và bài toán ),,,(_ kk blLmSOneDCSP . Việc giải bài toán
OneDCSP_M(m,M,l,b,L,c) theo thuật toán GA-AF chính là việc áp dụng giải thuật
di truyền trên không gian tìm kiếm được tạo thành từ các tổ hợp nghiệm của các bài
toán ),,,(_ kk blLmSOneDCSP với các bk thỏa mãn ràng buộc bb
M
k
k
1
. Từ quan sát
này, chúng ta có thể xây dựng một hệ thống đa tác tử di động theo kiến trúc A -
Team để giải bài toán OneDCSP_M(m,M,l,b,L,c) với hai kiểu tác tử chính. Kiểu tác
tử đầu tiên thực hiện thuật toán GA-AF và đóng vai trò khởi tạo, quản lý, lựa chọn
nghiệm của bài toán OneDCSP_M(m,M,l,b,L,c) trên cơ sở nghiệm của các bài toán
thành phần ),,,(_ kk blLmSOneDCSP . Kiểu tác tử thứ hai nhận nhiệm vụ giải bài
toán ),,,(_ kk blLmSOneDCSP bằng thuật toán AF. Ngoài ra, hệ thống cũng bao
gồm một số tác tử đặc biệt cung cấp các dịnh vụ khác như quản lý tài nguyên, quản
55
lý và báo cáo công việc... Các tác tử hoạt động phân tán, song song, không đồng bộ
và có thể di trú một cách linh hoạt phụ thuộc vào tài nguyên được cấp phát.
Việc tương tác giữa người dùng với hệ thống trong quá trình giải bài toán được
thể hiện bằng biểu đồ trong Hình 3.2.
Determine instances and other
paramenters
Manage resources
Search solution for the given
instances
Report solution
Delete resources
>
Add resources
>
User
>
>>
Hình 3-2 Biểu đồ tương tác giữa người dùng và hệ thống GMAS-OneDCSP_M
3.2. Thiết kế hệ thống GMAS-OneDCSP_M
3.2.1. Kiến trúc hệ thống GMAS-OneDCSP_M
Kiến trúc của hệ thống được xây dựng dựa trên JADE platform như minh họa
trong hình 3.3. Mỗi platform bao gồm nhiều container được cài đặt phân tán trên
mạng. Các tác tử nằm trên các container, trong đó container là tiến trình Java, cung
cấp môi trường chạy JADE và tất cả các dịch vụ cần thiết cho việc lưu trú (hosting)
và thực thi các tác tử. Main container là một container đặc biệt được khởi tạo đầu
tiên khi một platform được thiết lập. Tất cả các container khác đều phải đăng ký với
main container.
GMAS-OneDCSP_M
56
Hình 3-3 Kiến trúc hệ thống GMAS-OneDCSP_M
Main container có nhiệm vụ:
- Quản lý Bảng Container (Container Table-CT), nơi đăng ký các tham chiếu
đối tượng và địa chỉ của tất cả các container trong platform.
- Quản lý Bảng mô tả tác tử toàn cục (Global Agent Descriptor Table-
GADT), chứa thông tin của tất cả các tác tử có mặt trong platform cùng với
trạng thái hiện thời và vị trí của các tác tử.
JAVA JAVA
LADT
Main container
GADT CT
DFAMS
Task
Manager
Resource
Manager
OneDCSP_M
Solver
OneDCSP_S
Solver
JAVA
LADT
Container-2
GADT
cache
LADT
Container-1
GADT
cache
OneDCSP_S
SolverOneDCSP_SSolver
PLATFORM
IMTP IMTP
57
- Hosting hai tác tử đặc biệt là AMS có nhiệm vụ quản lý tác tử, cung cấp
dịch vụ trang trắng (white page service), và tác tử DF cung cấp dịch vụ
trang vàng (yellow page service) của platform.
Trên mỗi container đều có Bảng mô tả tác tử địa phương (Local Agent Descriptor
Table-LADT). Các container khác ngoài main container còn chứa thêm Bảng lưu
trữ mô tả tác tử toàn cục (GADT cache) phục vụ cho việc tìm kiếm nơi nhận các
thông điệp.
Ngoài hai tác tử ngầm định là AMS và DF, Main container của hệ thống GMAS-
OneDCSP_M còn chứa:
- Tác tử TaskManager có nhiệm vụ khởi tạo, quản lý trạng thái của các bài
toán và trả kết quả cho người dùng khi bài toán được giải xong .
- Tác tử ResourceManager có nhiệm vụ quản lý platform.
- Các tác tử OneDCSP_M-Solver
Mỗi bài toán OneDCSP_M sẽ do một tác tử OneDCSP_M-Solver chịu trách
nhiệm xử lý. Tác tử này phối hợp với các tác tử OneDCSP_S-Solver thực hiện
thuật toán GA-AF để giải các bài toán cắt vật tư một chiều với nhiều kích thước
vật liệu thô.
- Các tác tử OneDCSP_S-Solver thực hiện giải thuật AF để giải bài toán cắt
vật tư một chiều với một loại vật liệu thô. Tập các tác tử OneDCSP_S-
Solver được sử dụng chung và tham gia giải quyết mọi bài toán được khởi
tạo trong bộ nhớ.
Các container khác (Container-1, Container-2…) không phải là Main container
chứa các tác tử OneDCSP_S-Solver khi hệ thống có yêu cầu giải bài toán
OneDCSP_S.
Các tác tử của hệ thống được phân bố động trên các nút tính toán của mạng LAN
và hoạt động hoàn toàn độc lập với nhau theo cơ chế không đồng bộ. Số lượng các
58
tác tử của hai loại OneDCSP_M-Solver và OneDCSP_S-Solver được sinh ra phụ
thuộc số lượng bài toán cần giải quyết và tài nguyên của hệ thống.
3.2.2. Thiết kế chi tiết hệ thống GMAS-OneDCSP_M
Chức năng chính của hệ thống GMAS -OneDCSP_M là tổ chức và thực hiện việc
tìm kiếm nghiệm cho bài toán cắt vật tư một chiều với nhiều kích thước vật liệu thô
với các bước như sau:
Đối với từng bài toán cụ thể
- Tạo sinh quần thể nghiệm khởi đầu và lưu chúng trong bộ nhớ chung
(common memory)
- Cải thiện chất lượng quần thể nghiệm bằng các tác tử có nhiệm vụ giải các
bài toán ),,,,,(_ cLblMmMOneDCSP , ),,,(_ kk blLmSOneDCSP và lưu trữ
quần thể nghiệm đã được cải thiện vào bộ nhớ chung. Quá trình cải thiện
chất lượng này lặp lại cho tới khi điều kiện d ừng được thỏa mãn.
3.2.2.1. Cấu trúc bộ nhớ chung của hệ thống GMAS-OneDCSP_M
Trong hệ thống, việc lưu trữ thông tin trong bộ nhớ chung được tổ chức như sau.
Mỗi bài toán cụ thể được xác định bởi một định danh duy nhất do người dùng đặt ra
và được cấp phát một vùng nhớ trong bộ nhớ chung có cấu trúc gồm 3 miền.
Miền đầu tiên, Par, chứa các tham số đặc trưng của bài toán: m, M, l, b, L, c.
Miền thứ hai, Feasible Solution – FS, chứa quần thể nghiệm chấp nhận được
gồm K nghiệm (K phân hoạch nào đó của véc tơ b, với K là kích thước quần thể
nghiệm trong GA-AF) của bài toán ),,,,,(_ cLblMmMOneDCSP . Mỗi nghiệm chấp
nhận được có cấu trúc bao gồm một biến trạng thái nghiệm, một phân hoạch của
véc tơ kế hoạch b, một véc tơ trạng thái của các bài toán ),,,(_ kk blLmSOneDCSP
tương ứng với từng lớp của phân hoạch, các véc tơ nghiệm tối ưu x và các ma trận
phương án cắt tương ứng của từng bài toán ),,,(_ kk blLmSOneDCSP . Mỗi biến
trạng thái có thể nhận 3 giá trị: chưa được xử lý (Np), đang xử lý (P) và hoàn thành
59
(F) tương ứng với việc bài toán chưa được xem xét, bài toán đang được xử lý và bài
toán đã được giải quyết xong. Ban đầu tất cả các biến trạng thái đều nhận giá trị Np.
Các biến trạng thái có mối quan hệ phân cấp. Biến trạng thái ở mức trên sẽ có giá trị
Np nếu tất cả các biến trạng thái ở mức dưới đều có giá trị Np; có giá trị P nếu ít
nhất một biến trạng thái ở mức dưới có giá trị P hoặc F và ít nhất một trong các biến
còn lại không có giá trị F; khi tất cả các biến trạng thái ở mức dưới có giá trị F thì
biến trạng thái trực tiếp ở mức trên sẽ được gán giá tr ị F.
Miền thứ ba, Offspring, chứa các nghiệm chấp nhận được của bài toán
),,,,,(_ cLblMmMOneDCSP được sinh ra từ các nghiệm chấp nhận được trong
miền FS bằng tác động của các toán tử gen (2.15)-(2.16), (2.23)-(2.26) và (2.29).
Ta có thể mô tả phần bộ nhớ chung tương ứng với mỗi bài toán OneDCSP_M
trong hình 3.4 sau.
Par FS – Feasible Solution Offspring
K phân hoạch véc tơ b Các nghiệm sau lai ghép
Biến trạng
thái 1
Phân
hoạch 1
Nghiệm
tối ưu x
Phương
án cắt
… … … …
Các nghiệm sau đột biến…
…
…
…
…
…
…
… … … … …
Các nghiệm sau chọn lọc
m,
M,
l,
b,
L,
c
Biến
trạng thái
chung
(Np,
P,
F)
Biến trạng
thái K
Phân
hoạch K
Nghiệm
tối ưu x
Phương
án cắt
… … … …
Các tham
số đặc
trưng của
bài toán
Quần thể nghiệm chấp nhận được
của OneDCSP_M
Các nghiệm của
OneDCSP_M sinh ra từ
FS bằng tác động các
toán tử gen
Hình 3-4 Cấu trúc bộ nhớ chung tương ứng với mỗi bài toán OneDCSP_M
3.2.2.2. Hoạt động của hệ thống GMAS-OneDCSP_M
Hoạt động của hệ thống có thể được mô tả tóm tắt như sau.
60
Khi khởi động hệ thống, người dùng thông qua TaskManager chỉ ra các tài
nguyên có thể sử dụng (các nút tính toán trên mạng LAN). TaskManager truyền các
thông tin này cho ResourceManager. ResourceManager sẽ khởi tạo platform, tổ
chức một bộ nhớ chung, tạo sinh một số bản copy của tác tử OneDCSP_S-Solver
(số bản copy phụ thuộc vào độ lớn của các container) đồng thời phân bố chúng trên
các container khác nhau.
Ban đầu, dữ liệu của bài toán được người dùng soạn thảo dưới định dạng XML
như trên và được lưu thành các file trong một folder ở bộ nhớ ngoài. Tại mỗi thời
điểm bắt đầu hoạt động của hệ thống, người dùng sẽ cung cấp đường dẫn folder dữ
liệu này và tác tử TaskManager sẽ đọc các tham số của từng bài toán, tính toán
không gian nhớ cần thiết để lưu trữ dữ liệu của bài toán tại bộ nhớ chung và yêu
cầu tác tử ResourceManager cung cấp bộ nhớ có kích thước phù hợp.
ResourceManager nhận yêu cầu từ TaskManager, kiểm tra không gian nhớ còn chưa
sử dụng của bộ nhớ chung. Nếu không gian nhớ chưa sử dụng của bộ nhớ chung đủ
để lưu trữ dữ liệu của bài toán mới, ResourceManager sẽ thông báo hoạt động thành
công, và cung cấp địa chỉ đầu của không gian nhớ còn chưa sử dụng cho
TaskManager. TaskManager sẽ lưu các dữ liệu của bài toán vào các miền tương ứng
và gửi thông báo yêu cầu ResourceManager tạo sinh một bản copy tác tử
OneDCSP_M-Solver dành riêng để thực hiện giải bài toán mới bằng việc cung cấp
cho tác tử này problemID của bài toán do TaskManager khởi tạo.
Trong trường hợp hệ thống đang hoạt động, nếu TaskManager nhận được yêu
cầu dừng từ người dùng nó sẽ thay các đổi các biến trạng thái đang có giá trị P của
các bài toán ),,,(_ kk blLmSOneDCSP thành giá trị Np và chuyển đổi toàn bộ dữ
liệu trong bộ nhớ chung thành định dạng XML như trên và lưu ra thiết bị ngoại vi.
Hành vi trên của TaskManager cũng được đặt lịch định kỳ (thời gian do người dùng
lựa chọn) nếu không có tác động của người dùng. Cách tổ chức như vậy bảo đảm
cho việc hệ thống có thể khôi phục lại trạng thái giải quyết bài toán gần nhất khi có
sự cố xảy ra.
61
Trong quá trình hệ thống đang hoạt động, người dùng có thể chỉ thị thêm hoặc
bớt tài nguyên. Khi đó TaskManager sẽ yêu cầu Re sourceManager phân bố lại các
tác tử đang hoạt động của hệ thống bằng việc chỉ thị cho các tác tử di trú từ một
container sang một container khác (các tác tử trong hệ thống là các tác tử di động -
Mobile Agent) để bảo đảm hệ thống hoạt động một cách hiệu quả.
Khi có thông báo thành công từ tác tử OneDCSP_M-Solver nào đó,
TaskManager trả kết quả bài toán tương ứng cho người dùng và thông báo yêu cầu
ResourceManager giải phóng miền nhớ trong bộ nhớ chung ứng với bài toán đã
được xử lý xong.
Phụ thuộc vào không gian nhớ chưa sử dụng trong bộ nhớ chung do mình quản
lý, ResourceManager ước lượng khả năng phân phối không gian nhớ cho bài toán
mới. Nếu không gian nhớ chưa sử dụng vượt qua giá trị trung bình không gian nhớ
của tất cả các bài toán đang lưu trữ trong bộ nhớ chung, ResourceManager gửi
thông báo cho TaskManager. Trong trường hợp này, TaskManager kiểm tra folder
lưu trữ dữ liệu của người dùng. Nếu có bài toán chưa được khởi động TaskManager
sẽ hoạt động như tại thời điểm xuất phát của hệ thống.
Việc giải bài toán được thực hiện chủ yếu nhờ hai loạ i tác tử : OneDCSP_S-
Solver và OneDCSP_M-Solver.
Mỗi tác tử loại OneDCSP_S-Solver có nhiệm vụ giải bài toán cắt vật tư một
chiều với một loại vật liệu thô bằng thuật toán AF của Carvalho. Các tác tử này định
kỳ theo thời gian duyệt nội dung các miền FS và Offspring của bộ nhớ chung để tìm
các thể hiện chưa được xử lý của bài toán ),,,(_ kk blLmSOneDCSP thông qua định
danh của bài toán, số thứ tự của nghiệm chấp nhận được, số thứ tự của bài toán
),,,(_ kk blLmSOneDCSP trong thành phần của nghiệm chấp nhận được và giá trị
của biến trạng thái gắn với nó. Nếu có bài toán chưa được xử lý trong bộ nhớ chung
(giá trị biến trạng thái là Np), OneDCSP_S-Solver sẽ đọc dữ liệu của bài toán, gắn
giá trị của biến trạng thái thành P, giải bài t
Các file đính kèm theo tài liệu này:
- Luận án- Một giải thuật di truyền giải bài toán cắt vật tư một chiều với nhiều kích cỡ vật liệu thô.pdf