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

Ứng dụng tìm kiếm cục bộ để giải bài toán job shop scheduling

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

Đại Học Quốc Gia Tp. Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------

NGUYỄN HỮU PHÚ

ỨNG DỤNG TÌM KIẾM CỤC BỘ ĐỂ GIẢI
BÀI TỐN JOB SHOP SCHEDULING
Chun ngành : Cơng Nghệ Thơng Tin

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 01 năm 2006


CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học : TS. Dương Tuấn Anh ........................................
Cán bộ chấm nhận xét 1 :

TS. Lê Ngọc Minh .............................................

Cán bộ chấm nhận xét 2 :

TS. Nguyễn Xuân Dũng ....................................

Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN
THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 17 tháng 01 năm 2006



TRƯỜNG ĐẠI HỌC BÁCH KHOA
PHÒNG ĐÀO TẠO SĐH

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
ĐỘC LẬP – TỰ DO – HẠNH PHÚC

Tp. HCM, ngày . . . . tháng . . . . năm 2006

NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Nguyễn Hữu Phú
Phái: Nam
Ngày, tháng, năm sinh: 01/01/1978
Nơi sinh: Quảng Nam
Chuyên ngành: Công Nghệ Thông Tin
MSHV:00703183
I- TÊN ĐỀ TÀI:
Ứng Dụng Tìm Kiếm Cục Bộ Để Giải Bài Toán Job Shop Scheduling
II- NHIỆM VỤ VÀ NỘI DUNG:
Nghiên cứu bài tốn Job Shop Scheduling.
Nghiên cứu giải thuật Tìm kiếm Tabu và Tìm kiếm Tabu có phản hồi.
Ứng dụng giải thuật Tìm kiếm Tabu có phản hồi để giải bài toán Job Shop
Scheduling.
III- NGÀY GIAO NHIỆM VỤ (Ngày bắt đầu thực hiện LV ghi trong Quyết
định giao đề tài): 09/2005
IV- NGÀY HOÀN THÀNH NHIỆM VỤ: 17/01/2006
V- CÁN BỘ HƯỚNG DẪN: TS. Dương Tuấn Anh
CÁN BỘ HƯỚNG DẪN

(Học hàm, học vị, họ tên và chữ ký)


CN BỘ MÔN
QL CHUYÊN NGÀNH

Nội dung và đề cương luận văn thạc sĩ đã được Hội đồng chun ngành thơng qua.
TRƯỞNG PHỊNG ĐT – SĐH

Ngày
tháng
năm
TRƯỞNG KHOA QL NGÀNH


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling.

LỜI CẢM ƠN

Tôi xin bày tỏ lòng biết ơn chân thành nhất đến TS. Dương
Tuấn Anh, Giảng viên Khoa Công nghệ thông tin, Trường Đại học
Bách khoa Tp. Hồ Chí Minh. Thầy đã hướng dẫn rất tận tình, đã đọc
các bản thảo rất cẩn thận và có nhiều ý kiến, chỉ dẫn nhằm chỉnh sửa
và nâng cao chất lượng nội dung luận văn.
Tôi xin cảm ơn tất cả các Thầy, Cô đã tham gia giảng dạy
Chương trình Cao học khoá 14, đã tạo tiền đề cho quá trình thực hiện
luận văn này. Tôi cũng cảm ơn tất cả các bạn cùng khoá, đã chia sẻ và
giúp đỡ lẫn nhau trong suốt thời gian học tập.
Cuối cùng, tôi xin bày tỏ lòng biết ơn sâu sắc nhất đến Ba và
Má của tôi, đã khuyến khích và động viên trong suốt thời gian theo học
chương trình Cao học và thực hiện Luận văn tốt nghiệp này.


i
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling.

TÓM TẮT

Bài toán xếp lịch là bài toán tối ưu tổ hợp. Bài toán Job shop scheduling là một
trong những bài toán xếp lịch thuộc lớp NP-hard được biết nhiều nhất và rất hữu ích
trong thực tế.
Trong luận văn này, giải thuật Tìm kiếm Tabu cơ bản dùng để giải bài toán
job shop scheduling được dựa trên giải thuật Tìm kiếm Tabu có phản hồi mà đã được
đề xuất bởi Battiti và Tecchiolli. Trong Tìm kiếm Tabu có phản hồi, có hai cơ chế
được thêm vào hệ thống cơ bản của Tìm kiếm Tabu cơ bản; đó là cơ chế phản hồi và
cơ chế thoát khỏi vòng lặp.
Cơ chế phản hồi sẽ điều chỉnh chiều dài của danh sách Tabu tuỳ theo các
trạng thái của quá trình tìm kiếm. Cơ chế thoát khỏi vòng lặp là một sự đa dạng hoá,
nó hướng quá trình tìm kiếm ra khỏi vị trí hiện tại một khi xuất hiện sự lặp đi lặp lại
nhiều lần. Trong quá trình hiện thực giải thuật Tìm kiếm Tabu có phản hồi cho bài
toán Job shop scheduling, chúng tôi phải giải quyết một vài vấn đề khó, ví dụ như cấu
trúc vùng lân cận, cấu trúc dữ liệu cho vùng nhớ dài hạn, khởi tạo lời giải ban đầu…
Giải thuật của chúng tôi đã được so sánh với các phương pháp tốt nhất trong các công
trình nghiên cứu liên quan dựa trên hai mặt, tính hiệu quả về thời gian và chất lượng
lời giải, bằng cách sử dụng các tập dữ liệu khác nhau. Và kết quả bao gồm các lời
giải tốt nhất có chất lượng cao hơn cho một số thể hiện chuẩn và nổi tiếng của bài
toán job shop scheduling.

ii
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.



Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling.

ABSTRACT

Scheduling problems are combinatorial optimization problems. Job shop
scheduling problem is one of the best known NP-hard scheduling problems with the
most practical usefulness.
In this thesis, Our tabu search algorithm to solve the job shop scheduling
problem is based on reactive tabu search proposed by Battiti and Tecchiolli. In
reactive tabu search there are two mechanisms added to the basic scheme of tabu
search : reaction mechanism and escape mechanism.
The reaction mechanism adapts the tabu list size to the properties of the search
process. The escape mechanism is a diversification one which takes the search
process out from its current position if it appears to be repeating itself excessively.
We have to deal with several issues in implementing reactive tabu search for the job
shop scheduling, for example, neighborhood structure, data structure of long-term
memory, generating initial solution, etc… We compare our algorithm against the best
methods in the literature in terms of time efficiency and solution quality using
different data sets and report results including new best known solutions for several
well-known benchmark problems.

iii
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phuù.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling.

MỤC LỤC


1

GIỚI THIỆU ........................................................................................................... 1
1.1
GIỚI THIỆU VẤN ĐỀ ..........................................................................................1
1.2
GIỚI THIỆU BÀI TOÁN JOB SHOP SCHEDULING ...................................................2
1.2.1
Mô tả bài toán Job Shop Scheduling ........................................................ 2
1.2.2
Định nghóa bài toán Jop Shop Scheduling ................................................ 2
1.2.3
Ứng dụng thực tế của bài toán Job shop scheduling ................................ 3
1.3
SƠ LƯC VỀ CÁC KẾT QUẢ ĐẠT ĐƯC CỦA ĐỀ TÀI .............................................4
1.4
CẤU TRÚC CỦA LUẬN VĂN ................................................................................4

2

CÁC NGHIÊN CỨU LIÊN QUAN ....................................................................... 6
2.1
QUY HOẠCH TOÁN HỌC (MATHEMATICAL PROGRAMMING) ................................6
2.2
NHÁNH VÀ CẬN (BRANCH AND BOUND).............................................................6
2.3
PHƯƠNG PHÁP XẤP XỈ .......................................................................................7
2.3.1
Luật phân phối (dispatching rules)........................................................... 7

2.3.2
Kỹ thuật giải hệ ràng buộc (constraint satisfaction techniques) .............. 7
2.3.3
Mạng nơron (neural network) ................................................................... 8
2.3.4
Tìm kiếm cục bộ (local search)................................................................. 8

3

PHƯƠNG PHÁP GIẢI BÀI TOÁN JOB SHOP SCHEDULING..................... 12
3.1
TÌM KIẾM CỤC BỘ CHO BÀI TOÁN TỐI ƯU TỔ HP .............................................12
3.1.1
Định nghóa............................................................................................... 12
3.1.2
Giải thuật tìm kiếm cục bộ tổng quát ..................................................... 13
3.1.3
Giải thuật Tìm kiếm Tabu cơ bản ........................................................... 14
3.2
BIỂU DIỄN BÀI TOÁN JOB SHOP SCHEDULING ...................................................16
3.2.1
Thời gian bắt đầu của các tác vụ............................................................ 16
3.2.2
Đồ thị dạng tuyển (disjunctive graph) ................................................... 18
3.2.3
Phân loại lịch trình ................................................................................. 20
3.3
HÀM MỤC TIÊU (OBJECTIVE FUNCTION) ..........................................................23
3.4
HÀM LÂN CẬN ................................................................................................24

3.4.1
Đường tới hạn (critical path) .................................................................. 24
3.4.2
Phương pháp sinh các lân cận ................................................................ 27
3.5
GIẢI THUẬT TÌM KIẾM TABU CƠ BẢN CHO BÀI TOÁN JOB SHOP SCHEDULING ....31
3.6
KHỞI TẠO LỜI GIẢI BAN ĐẦU...........................................................................32
3.6.1
Giải thuật phân phối theo độ ưu tiên (priority dispatch)........................ 32
3.6.2
Giải thuật phân phối theo độ ưu tiên hai chiều ...................................... 33
iv

GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling.

3.7
3.8
3.9
3.10
4

DANH SÁCH TABU VÀ TIÊU CHUẨN KỲ VỌNG...................................................37
TÌM KIẾM TABU CÓ PHẢN HỒI (REACTIVE TABU SEARCH).................................38
SỰ PHẢN HỒI VÀ CƠ CHẾ THOÁT KHỎI VÒNG LẶP ............................................39
KẾT LUẬN ......................................................................................................43


HIỆN THỰC VÀ KẾT QỦA THỰC NGHIỆM ................................................ 45
4.1
ĐÁNH GIÁ CÁC LÂN CẬN .................................................................................45
4.2
HIỆN THỰC DANH SÁCH TABU VÀ VÙNG NHỚ DÀI HẠN .....................................47
4.3
CẤU TRÚC DỮ LIỆU VÀ THIẾT KẾ CHƯƠNG TRÌNH.............................................49
4.4
BỘ DỮ LIỆU MẪU CỦA BÀI TOÁN JOB SHOP SCHEDULING ..................................52
4.5
KẾT QUẢ THỰC NGHIỆM..................................................................................53
4.5.1
Tìm kiếm Tabu cơ bản ............................................................................. 54
4.5.2
Tìm kiếm tabu có phản hồi ...................................................................... 55
4.5.3
Nhận xét .................................................................................................. 57

5

KẾT LUẬN ........................................................................................................... 63
5.1
5.2

CÁC KẾT QỦA ĐẠT ĐƯC ................................................................................63
HƯỚNG MỞ RỘNG ĐỀ TÀI ................................................................................63

THƯ MỤC THAM KHẢO ........................................................................................... 65
PHỤ LỤC A : HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH ................................. A.1
PHỤ LỤC B : BỘ DỮ LIỆU MẪU DÙNG ĐỂ ĐÁNH GIÁ CHƯƠNG TRÌNH . B.1

PHỤ LỤC C : BẢNG THUẬT NGỮ VIỆT ANH ĐỐI CHIẾU ............................. C.1

v
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling.

DANH MỤC HÌNH

Hình
Hình
Hình
Hình

3-1 : Giải thuật tìm kiếm Cục bộ tổng quát [1]...................................................13
3-2 : Giải thuật sinh các bước chuyển [1]...........................................................14
3-3 : Giải thuật cập nhật các bước chuyển đã chọn [1]......................................15
3-4: Biểu diễn một lời giải cho bài toán job shop scheduling bằng biểu đồ Gantt
..............................................................................................................................17
Hình 3-5 : Đồ thị dạng tuyển cho bài toán 3 máy, 3 công việc. ...................................19
Hình 3-6 : Đồ thị dạng tuyển của một lời giải cho bài toán 3 máy, 3 công việc. .........20
Hình 3-7 : Lịch trình không thể chấp nhận ..................................................................21
Hình 3-8 : Lịch trình có thể chấp nhận (semi-active schedule) ....................................22
Hình 3-9 : Lịch trình “active” (active schedule)..........................................................22
Hình 3-10 : Các loại lịch trình cho bài toán job shop scheduling [19] ........................23
Hình 3-11 : Các tác vụ tới hạn của một lời giải cho bài toán job shop scheduling......25
Hình 3-12 : Hàm lân cận N1 . ......................................................................................27
Hình 3-13 : Hàm lân cận N1a .......................................................................................28
Hình 3-14 : Hàm lân cận N1b .......................................................................................28

Hình 3-15 : Hàm lân cận N2 ........................................................................................29
Hình 3-16 : Các lân cận của hàm N2 ...........................................................................29
Hình 3-17 : Hàm lân cận N3 ........................................................................................30
Hình 3-18 : Giải thuật Tìm kiếm Tabu cơ bản..............................................................32
Hình 3-19 : Giải thuật phân phối theo độ ưu tiên ........................................................34
Hình 3-20 : Giải thuật phân phối theo độ ưu tiên hai chiều .........................................36
Hình 3-21 : Giải thuật Semi-Greedy ............................................................................37
Hình 3-22: Khởi động các thông số .............................................................................40
Hình 3-23 : Kiểm tra lặp ..............................................................................................41
Hình 3-24 : Tìm kiếm tabu có phản hồi........................................................................42
Hình 3-25 : Chọn lời giải tốt nhất ...............................................................................43
Hình 3-26 : Cơ chế thoát khỏi vòng lặp .......................................................................43
Hình 4-1 : Trước và sau khi hoán đổi hai tác vụ tới hạn liền kề trên cùng một máy [18]
..............................................................................................................................46
Hình 4-2 : Hiện thực danh sách tabu bằng danh sách theo kiểu FIFO ........................47
Hình 4-3 : Hiện thực danh sách tabu bằng ma trận .....................................................48
Hình 4-4 : Cấu trúc dữ liệu của bài toán job shop scheduling.....................................50
Hình 4-5: Kiến trúc chương trình.................................................................................51
Hình 4-6: Kết quả 20 lần thử của mt10, abz7 và la29..................................................58
Hình 4-7: Kết quả tốt nhất của TS, RTS và Appl..........................................................59
Hình 4-8: Kết quả trung bình của TS, RTS và cận dưới ...............................................60
vi
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling.

Hình 4-9 : Sai số tương đối của TS và RTS ..................................................................60
Hình 4-10 : Thời gian chạy trung bình của TS và RTS................................................61


vii
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling.

DANH MỤC BẢNG

Bảng 3-1 : Thể hiện I3 gồm 3 công việc, 3 máy ...........................................................17
Bảng 3-2 : Một lời giải của thể hiện I3........................................................................18
Bảng 4-1 : Thể hiện mt06.............................................................................................52
Bảng 4-2 : Bộ dữ liệu mẫu của chương trình ...............................................................53
Bảng 4-3 : Kết quả của bộ dữ liệu mẫu sử dụng giải thuật Tìm kiếm Tabu cơ bản (TS)
..............................................................................................................................55
Bảng 4-4: Kết quả của bộ dữ liệu mẫu sử dụng giải thuật Tìm kiếm Tabu có phản hồi
kiểm tra lặp các thuộc tính (RTS).........................................................................56

viii
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phuù.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling

CHƯƠNG I

GIỚI THIỆU

1

GIỚI THIỆU


Giới thiệu vấn đề

Nội dung đề tài này là nghiên cứu một bài toán xếp lịch (scheduling problem)
cụ thể được gọi là bài toán job shop scheduling. Bài toán xếp lịch liên quan đến việc
chỉ định các tài nguyên hữu hạn cho các công việc. Đây là bài toán ra quyết định với
mục đích là tối ưu hoá một hay nhiều mục tiêu. Tài nguyên có thể là các máy móc
trong nhà máy, các dây chuyền trong các sân ga, bến cảng, các đơn vị xử lý trong môi
trường tính toán. Công việc có thể là các tác vụ (operation) trong quá trính sản xuất,
qúa trình vận chuyển hàng hoá, sự thực thi của các chương trình. Mục tiêu có thể là
tối thiểu thời gian hoàn thành của tác vụ cuối cùng, hay tối đa số các tác vụ thực hiện
được trong một khoảng thời gian nhất định. Ứng dụng của bài toán xếp lịch có thể tìm
thấy trong nhiều lónh vực như hoạch định sản xuất, hoạch định nhân sự, điều khiển hệ
thống máy tính, sắp xếp thời khoá biểu.
Có rất nhiều bài toán sắp xếp lịch đã được nghiên cứu và phân tích, hầu hết
tập trung vào bài toán xếp lịch tất định (deterministic scheduling problem), mà trong
đó tất cả các thông tin để định nghóa bài toán đều được biết trước. Đa số các bài toán
sắp xếp tất định được nghiên cứu là bài toán xếp lịch các máy (machine scheduling
problem) và đây cũng là bài toán được chọn cho đề tài. Trong bài toán này, tài
nguyên là các máy (machine), các công việc (job) bao gồm nhiều tác vụ (operation).
Mỗi máy chỉ có thể xử lý một tác vụ duy nhất tại một thời điểm.
Để giải quyết bài toán xếp lịch trong thực tế, ta cần phải nắm bắt các phần tử
cơ bản của bài toán trong thực tế và mô hình hoá nó. Các lời giải cho mô hình này cần
phải được chuyển ngược lại thành các lời giải cho cho bài toán trong thực tế. Bên
cạnh đó, lời giải mà thoả mãn được yêu cầu nào đó về chất lượng cũng phải được tìm
thấy trong một khoảng thời gian vừa phải. Đề tài này dự định đưa ra một mô hình để
giải quyết bài toán sắp xếp các máy cơ bản và tương đối phổ biến trong thực tế và
đồng thời cũng thiết kế một phương pháp hữu hiệu để tìm ra lời giải tốt nhất về cả hai
phương diện chất lượng và thời gian.
Đặc điểm của mô hình cho bài toán này là mỗi tác vụ chỉ được xử lý trên một

máy và không được ngưng trong suốt thời gian xử lý nó, các thông tin liên quan đến
bài toán đều được biết trước. Tiêu chuẩn để tối ưu là tối thiểu hoá thời gian hoàn
1
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling

thành của tác vụ cuối cùng. Mặc dù trong thực tế, bài toán còn có nhiều đặc điểm
khác như thời gian xử lý của các tác vụ là không biết trước, có thể phụ thuộc vào thứ
tự mà nó được sắp xếp, hay một vài tác vụ có thể bị loại khỏi quá trình xử lý trong
suốt quá trình xử lý. Hơn nữa, trong thực tế, bài toán không chỉ có một mà là hai hay
nhiều tiêu chuẩn để tối ưu. Để giải quyết được các bài toán phức tạp trong thực tế, ta
đi giải quyết các bài toán cơ bản của nó trước, và trên cơ sở đó có thể mở rộng tuỳ
theo nhu cầu. Do đó đề tài này chỉ chú trọng vào bài toán job shop scheduling với các
đặc điểm cơ bản được nêu ở trên.
Bài toán job shop scheduling là một loại của bài toán tối ưu tổ hợp
(combinatorial optimization), rất khó để giải quyết. Đã có nhiều phương pháp để giải
quyết bài toán này như quy hoạch tuyến tính, phương pháp tìm kiếm có hệ thống,
phương pháp xấp xỉ…, trong đó phương pháp xấp xỉ đã được quan tâm rất nhiều.
Phương pháp này có thể tìm ra những lời giải chấp nhận được trong một khoảng thời
gian vừa phải. Một trong những giải thuật quan trọng của phương pháp xấp xỉ là giải
thuật Tìm kiếm cục bộ (local search). Giải thuật này, thông qua quá trình lặp, tìm kiếm
một lời giải tốt hơn bằng cách tu chỉnh lời giải ban đầu. Đề tài này tập trung vào
phương pháp tìm kiếm cục bộ, một phương pháp đã được chứng minh là rất hữu hiệu
cho bài toán tối ưu tổ hợp. Bên cạnh đó đề tài còn đề xuất một số kỹ thuật cải tiến
nhằm nâng cao chất lượng lời giải cho bài toán job shop scheduling.
Giới thiệu bài toán Job Shop Scheduling
1.1.1


Mô tả bài toán Job Shop Scheduling

Bài toán job-shop scheduling (job-shop scheduling problem - JSSP) bao gồm
những đặc điểm như sau:
− Một tập hữu hạn n công việc (job).
− Mỗi một công việc bao gồm một chuỗi các tác vụ (operation).
− Một tập hữu hạn m máy (machine).
− Mỗi một máy, tại một thời điểm, có thể xử lý nhiều nhất một tác vụ.
− Mỗi một tác vụ sẽ được xử lý tại một máy trong một khoảng thời gian nhất
định và không bị ngắt quãng trong suốt thời gian đó.
− Mục đích của bài toán là tìm ra một lịch trình (schedule) mà định thời
(allocate) các tác vụ tại các máy và khoảng thời gian để hoàn thành tất cả
các tác vụ là nhỏ nhất.
1.1.2

Định nghóa bài toán Jop Shop Scheduling
JSSP có thể được định nghóa hình thức như sau:
− Tập công việc (job)
J
= { J1, J2, …, Jn }
− Tập máy (machine)
M
= { M1, M2, …, Mm }
− Tập tác vụ (operation)
O
= { O1, O2, …, On }, với Oi là tập các
tác vụ của công việc Ji và Oi = { Oi1, Oi2, …, Oimi }
2

GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.



Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling

− Tập khoảng thời gian xử lý của các tác vụ của công việc Ji : {τi1, τi2, …, τimi }
− Trên tập O, định nghóa một quan hệ thứ tự A, nếu (v,w) ∈ A thì tác vụ v
được xử lý trước tác vụ w.
− Từ A có thể thấy có một thứ tự toàn phần của các tác vụ thuộc về cùng một
công việc, không có thứ tự trước sau của các tác vụ thuộc về các công việc
khác nhau.
− Một lịch trình S là một hàm S : O → Ν ∪ {0}, mỗi tác vụ v ∈ O có thời
gian bắt đầu xử lý là S(v).
− Một lịch trình là khả thi (feasible) nếu như nó thỏa mãn các điều kiện sau:
Thời gian bắt đầu của mọi tác vụ lớn hơn hoặc bằng 0 :
∀ v ∈ O : S(v) ≥ 0.
Với hai tác vụ bất kỳ v và w, nếu như v được xử lý trước w thì
tác vụ w bắt đầu được xử lý sau khi tác vụ v được xử lý xong:
∀ v,w ∈ O , (v,w) ∈ A : S(v) + τ(v) ≤ S(w).
Với hai tác vụ v và w khác nhau trên cùng một máy, hoặc v sẽ
được xử lý trước w, hoặc w sẽ được xử lý trước v :
v,w ∈ O , v ≠ w , M(v) = M(w) : S(v) + τ(v) ≤ S(w)
hoaëc S(w) + τ(w) ≤ S(v).
− Chiều dài (makespan) của lịch trình S là length(S) = maxv∈O S(v) + τ(v).
− Mục tiêu là tìm lịch trình tối ưu - một lịch trình khả thi và có chiều dài
ngắn nhất, min(length(S)).
1.1.3

Ứng dụng thực tế của bài toán Job shop scheduling

Trong thực tế, bài toán Job shop scheduling có thể được ứng dụng rộng rãi

trong nhiều hệ thống sản xuất, dây chuyền lắp ráp tự động cũng như các quá trình sắp
xếp, phân bổ các nguồn tài nguyên. Những ví dụ sau đây minh hoạ ứng dụng của bài
toán vào các lónh vực khác nhau trong thực tế.
Trong dây chuyền lắp ráp xe hơi, các bộ phận của xe hơi sẽ được lắp ráp tại
các sàn bởi các máy khác nhau. Qúa trình lắp ráp này có thể được mô hình hoá thành
một thể hiện của bài toán Job shop scheduling. Mỗi xe sẽ tương ứng với một công
việc, các bộ phận của xe sẽ tương ứng với các tác vụ trên một công việc. Các máy lắp
ráp sẽ tương ứng với các máy của bài toán.
Một ví dụ khác là trong các sân bay, có nhiều cổng và có nhiều loại máy bay
cất cánh và hạ cánh hàng ngày thông qua các cổng đó. Việc sắp xếp các máy bay đi
qua các cổng sao cho hợp lý và mang lại hiệu quả cao sẽ tương đương với việc tìm ra
một lời giải tốt nhất cho một thể hiện của bài toán Job shop scheduling. Các máy bay
sẽ tương ứng với các công việc và các cổng sẽ tương ứng với các máy.
Và hiện nay, một trong những ngành công nghiệp đòi hỏi sự sắp xếp mang lại
hiệu quả cao là ngành sản xuất chất bán dẫn (semiconductor manufacturing) mà trong
đó quá trình sản xuất các wafer chiếm phần lớn chi phí sản xuất. Quá trình sản xuất
3
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling

này đi qua khoảng 200 đến 300 bước xử lý trong môi trường kín và được xử lý trên
nhiều công cụ khác nhau (tools). Quá trình sắp xếp phải làm sao sử dụng hiệu quả
nhất các công cụ và giảm thời gian xử lý.
Nếu như việc sắp xếp rút ngắn một khoảng nhỏ thời gian hoàn thành của bài
toán được mô hình hoá từ thực tế, thì nó sẽ tiết kiệm được rất nhiều thời gian trong
quá trình sản xuất, đồng thời sử dụng hiệu quả các nguồn tài nguyên, rút giảm được
chi phí sản xuất. Do đó bài toán này rất có ý nghóa trong thực tế.
Sơ lược về các kết quả đạt được của đề tài

Luận văn này tập trung vào việc giải bài toán job shop scheduling bằng
phương pháp Tìm kiếm cục bộ, đặc biệt là giải thuật Tìm kiếm Tabu cơ bản và Tìm
kiếm Tabu có phản hồi. Tìm kiếm Tabu có phản hồi là một cải tiến của Tìm kiếm
Tabu cơ bản bằng cách tự động điều chỉnh chiều dài của danh sách tabu trong suốt
thời gian chạy. Mục tiêu chính của luận văn là tìm các lời giải cận tối ưu (near
optimal) của bài toán job shop scheduling và tối thiểu hoá makespan. Đây cũng chính
là hàm mục tiêu của các giải thuật trong luận văn.
Chương trình dùng tập dữ liệu mẫu bao gồm các thể hiện của bài toán job shop
scheduling đã được nhiều người sử dụng để đánh giá chất lượng giải thuật cũng như
thời gian chạy của chương trình. Giải thuật Tìm kiếm Tabu có phản hồi đã cho kết
quả tốt hơn so với giải thuật Tìm kiếm Tabu cơ bản và khả năng tìm ra các lời giải
cận tối ưu khá cao. Hơn nữa, nếu so với kết quả của một số tác giả khác, giải thuật
Tìm kiếm Tabu có phản hồi đã tìm ra một số lời giải có chất lượng tốt hơn.
Cuối cùng, một đặc điểm nổi bật của giải thuật Tìm kiếm Tabu có phản hồi là
khả năng đáp ứng với các thể hiện có kích thước khác nhau. Nó có khả năng tự điều
chỉnh chiều dài của danh sách Tabu trong suốt quá trình chạy để tìm ra kết quả tốt
nhất cho các bài toán có kích thước lớn nhỏ khác nhau.
Cấu trúc của luận văn
Bên cạnh Chương I đã được giới thiệu, Chương II của luận văn trình bày các
nghiên cứu liên quan đến bài toán job shop scheduling, trong đó có nhiều phương
pháp đã được sử dụng để giải bài toán như Quy hoạch toán học, Nhánh và cận, các
phương pháp xấp xỉ. Phương pháp xấp xỉ thì bao gồm các kỹ thuật khác nhau như Luật
phân phối, Kỹ thuật giải hệ ràng buộc, Mạng nơron và Tìm kiếm cục bộ. Trong các
phương pháp này, Tìm kiếm cục bộ tỏ ra rất hữu hiệu để giải bài toán tối ưu tổ hợp và
nó được chọn để sử dụng trong luận văn này.
Trong chương III, phương pháp Tìm kiếm cục bộ cho bài toán tối ưu tổ hợp
được trình bày và từ đó có thể triển khai để giải bài toán job shop scheduling. Các
khái niệm, ký hiệu mô tả bài toán job shop scheduling cũng được mô tả như biểu diễn
bằng đồ thị dạng tuyển, các loại lịch trình “semi-active”, “active”, đường tới hạn, khối
tới hạn, tác vụ tới hạn. Các hàm lân cận được trình bày khá chi tiết, các lân cận được

sinh ra chủ yếu dựa trên đường tới hạn và khối tới hạn. Trong chương này, giải thuật
4
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling

Tìm kiếm Tabu cơ bản được sử dụng để giải bài toán job shop scheduling. Các lời giải
ban đầu của giải thuật được sinh ra bởi giải thuật Phân phối theo độ ưu tiên một chiều
và hai chiều. Sau khi trình bày thêm về danh sách Tabu và tiêu chuẩn kỳ vọng, giải
thuật Tìm kiếm Tabu có phản hồi được mô tả và kèm theo là sự phản hồi và cơ chế
thoát khỏi vòng lặp của nó.
Trong Chương IV, đầu tiên là cách đánh giá các lân cận được trình bày, kế
đến là cách hiện thực danh sách Tabu và vùng nhớ dài hạn. Các cách thức này giúp
nâng cao tính hiệu quả của chương trình. Cấu trúc dữ liệu và kiến trúc chương trình
cũng được giới thiệu, nó giúp quá trình hiện thực được dễ dàng và có thể sử dụng lại.
Và kế đến là sự trình bày về bộ dữ liệu mẫu được sử dụng để đánh giá chất lượng và
thời gian chạy của các giải thuật cũng như kết quả thực nghiệm của chúng. Trong
phần Kết quả thực nghiệm, ngoài kết quả của hai giải thuật còn có sự so sánh giữa
chúng với nhau và so sánh với kết quả của một số tác giả khác.
Cuối cùng, trong Chương V, kết quả nghiên cứu của luận văn này được tóm tắt
và hướng mở rộng đề tài được đề xuất.

5
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phuù.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling

CHƯƠNG II


CÁC NGHIÊN CỨU LIÊN QUAN
2

CÁC NGHIÊN CỨU LIÊN QUAN

Job shop scheduling là một bài toán khó để tìm ra một lời giải tối ưu. Năm
1956 Jackson đưa ra giải thuật cho bài toán với 2 máy; năm 1964 Roy and Sussmann
đưa ra công thức lập trình rời rạc cho bài toán m máy; năm 1965 Lomnicki áp dụng kỹ
thuật nhánh và cận (branch and bound) cho bài toán m máy; đến năm 1986, mới có lời
giải cho bài toán 10 công việc, 10 máy và 100 tác vụ… Trải qua nhiều năm, đã có rất
nhiều phương pháp, giải thuật từ đơn giản đến phức tạp được sử dụng để giải bài toán
này.
Quy hoạch toán học (mathematical programming)
Cách tiếp cận này sử dụng quy hoạch tuyến tính (linear program). Một bài toán
quy hoạch tuyến tính có thể xem như một bài toán tối ưu mà trong đó mục tiêu và các
ràng buộc là tuyến tính với các biến được xác định.
Phương pháp quy hoạch tuyến tính sẽ phức tạp khi gặp bài toán tối ưu với
nhiều ràng buộc và sẽ đòi hỏi một khoảng thời gian chạy rất lớn.
Nhánh và cận (branch and bound)
Kỹ thuật này mang những đặc điểm như sau:
− Sử dụng cấu trúc cây được xây dựng động để biểu diễn không gian lời giải
của tất cả lời giải khả thi.
− Bắt đầu tìm kiếm từ nút trên cùng và kết thúc khi nút ở mức thấp nhất được
đánh giá.
− Mỗi nút ở mức p trong cây tìm kiếm biểu diễn trình tự p tác vụ.
− Từ các nút chưa được chọn, hoạt động rẽ nhánh (branch) xác định tập các
nút mà quá trình tìm kiếm có thể đi tiếp.
− Thủ tục cận (bounding precedure) chọn tác vụ mà sẽ tiếp tục tìm kiếm dựa
trên cận dưới và cận trên tốt nhất; nếu tại bất kỳ nút nào có cận dưới lớn

hơn cận trên tốt nhất hiện tại, sự chọn lựa này và tất cả con của nó sẽ bị
huỷ bỏ.
Applegate và Cook [2] đã sử dụng kỹ thuật rẽ nhánh cho bài toán job shop
scheduling. Kỹ thuật rẽ nhánh này tương ứng với việc chọn một hướng trong cho một

6
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling

cung dạng tuyển (disjunctive arc) và quá trình chọn hướng này diễn ra cho đến khi tìm
được một lời giải tốt nhất.
Phương pháp này thuộc họ giải thuật tìm kiếm có hệ thống (systematic search
algorithm), tuy có thể cho lời giải tối ưu, nhưng không gian tìm kiếm rất lớn, thời gian
chạy rất lâu.
Phương pháp xấp xỉ
Thay vì tìm kiếm một giải thuật tối ưu cho bài toán mà khi đó chi phí bỏ ra rất
lớn, phương pháp xấp xỉ sẽ cho một lời giải gần tối ưu mà có thể chấp nhận được với
một điều kiện cho trước nào đó trong một khoảng thời gian nhất định.
2.1.1

Luật phân phối (dispatching rules)

Các tác vụ (operation) được gán các luật với độ ưu tiên khác nhau. Tại mỗi
bước thành công, tất cả các tác vụ đang cần được sắp xếp có độ ưu tiên cao nhất sẽ
được chọn để sắp xếp. Để có được một kết quả hợp lý, thông thường một vài lần
chạy của các luật khác nhau cần được thực thi.
Phương pháp này đã được kiểm tra bằng các luật tạo ra các lịch trình không trì
hoãn (non-delay schedule generation). Theo kết quả tính toán được công bố, phương

pháp này cho kết quả tốt hơn phương pháp xếp lịch cổ điển.
2.1.2

Kỹ thuật giải hệ ràng buộc (constraint satisfaction techniques)

Kỹ thuật này nhắm đến việc rút giảm không gian tìm kiếm bằng cách áp dụng
các ràng buộc để giới hạn thứ tự trong đó các biến được chọn và miền trị được gán
cho các biến đó.
Đối với bài toán job shop scheduling, hầu hết các giải thuật thuộc loại này đều
áp dụng kỹ thuật tìm kiếm theo cây (tree search) và xây dựng một lịch trình bằng cách
lần lượt gán thời gian bắt đầu xử lý (start time) cho các tác vụ. Quá trình kiểm tra tính
tương thích (consistency checking) sẽ xóa thời gian bắt đầu xử lý không tương thích
của các tác vụ chưa được sắp xếp. Nếu xuất hiện một lịch trình chưa đầy đủ (partial
schedule) mà không thể dẫn đến một lịch trình khả thi (feasible schedule), thì một vài
phép gán ban đầu sẽ bị huỷ bỏ. Các heuristic về thứ tự của biến và trị (variable and
value ordering heuristics) được dùng để xác định sự chọn lựa tác vụ kế tiếp và thời
gian bắt đầu xử lý của nó. Giải thuật sẽ kết thúc khi một lịch trình khả thi thoả mãn
các ràng buộc được tìm thấy, hay được chứng minh là không tồn tại.
Năm 1995, Cheng và Smith [8] phát triển một giải thuật thuộc loại này nhưng
hiệu quả còn kém. Năm 1996, Sadeh và Fox [14] sử dụng heuristic thứ tự của biến và
trị (variable and value ordering) dựa trên mô hình xác suất của không gian tìm kiếm;
phương pháp này đã cho kết quả khá tốt.
Năm 2000, Garrido, Salido, Barber và López [10] đã cải tiến kỹ thuật của
Sadeh và Fox [14] bằng cách xử dụng thêm phương pháp tính xác suất độ chênh lệch
giữa thời gian bắt đầu sớm nhất và trễ nhất của mỗi tác vụ (slack probability) kết hợp
7
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling


với phương pháp tìm lỗ trống (find-hole method). Kết quả thực nghiệm của các tác giả
này cũng đã tỏ ra khá hiệu quả.
Trong kỹ thuật giải hệ ràng buộc, lập trình logic và ràng buộc (constraint logic
programming) cũng là một phương pháp dùng để giải bài toán job shop scheduling.
Caseau và Laburthe [6] đã sử dụng nó để giải bài toán tối ưu tổ hợp này. Bài toán job
shop scheduling được đặt tả dưới hai dạng ràng buộc, ràng buộc trước sau (precede
constraint) và ràng buộc dạng tuyển (disjunctive constraint), kết hợp với khoảng thời
gian giữa các tác vụ (task intervals) trên cùng một máy. Hai tác giả này đã biểu diễn
và hiện thực các ràng buộc này bằng cách sử dụng các luật logic (logic rules). Kỹ
thuật này đã tỏ ra khá hiệu quả và uyển chuyển khi áp dụng để giải bài toán job shop
scheduling.
2.1.3

Mạng nơron (neural network)

Phương pháp này dựa trên mô hình mạng nơron tất định (deterministic neural
network model). Bài toán job shop scheduling được biểu diễn bằng ma trận hai chiều
các nơron. Mỗi tác vụ được xem là một nơron trong mạng và số lượng mối liên kết tỉ
lệ tuyến tính đối với số tác vụ. Cho đến nay, ứng dụng của mạng nơron cho bài toán
job shop scheduling vẫn còn ở giai đoạn khởi đầu; các kết quả tính toán còn cho chất
lượng thấp.
2.1.4 Tìm kiếm cục bộ (local search)
Giải thuật này bắt đầu từ một hay nhiều lời giải khả thi ban đầu, và bắt đầu
tính toán để tìm kiếm những lời giải tốt hơn. Tìm kiếm cục bộ có thể chia thành các
nhóm như: giải thuật Mức ngưỡng (threshold algorithm), giải thuật Tìm kiếm Tabu
(tabu search algorithm), và giải thuật Di truyền (genetic algorithm).
Trong giải thuật Mức ngưỡng, một lân cận của một lời giải trở thành một lời
giải mới nếu như hiệu số chi phí giữa lời giải hiện tại và lân cận của nó nằm dưới
mức ngưỡng t ∈ ℜ. Tùy thuộc vào bản chất của mức ngưỡng, người ta chia giải thuật

này thành ba loại: cải tiến lặp (iterative improvement), chấp nhận mức ngưỡng
(threshold accepting) và mô phỏng luyện kim (simulated annealing). Các giải thuật
này bao gồm những đặc điểm như sau:
− Sử dụng hàm lân cận N để sinh ra một miền lân cận Q của lời giải hiện tại
C. Trong hầu hết các trường hợp, các lân cận được sinh ra một cách ngẫu
nhiên hay theo một cách có tổ chức.
− Giả sử f là hàm chi phí, t ∈ ℜ là giá trị mức ngưỡng. Với q ∈ Q , nếu
f(q) – f(C) < t thì lân cận q sẽ thay thế lời giải hiện tại; nếu ngược lại thì
lời giải hiện tại được giữ nguyên.
− Cải tiến lặp là giải thuật Mức ngưỡng đơn giản nhất. đây mức ngưỡng t =
0, nên chỉ có những lân cận có cải tiến thật sự so với lời giải hiện tại mới
được chấp nhận. Ban đầu, giải thuật chạy với lời giải được sinh ngẫu nhiên

8
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling

và kết thúc sau một khoảng thời gian chạy nào đó, kết quả là có được lời
giải tốt nhất trong tất cả lời giải được duyệt qua. Giải thuật Shuffle của
Applegate và Cook [2] sử dụng một hàm lân cận khác N3 (mục 3.4.2).
Storer, Wu và Vaccari [15] đề nghị một biến thể của giải thuật này gọi là
PS10.
− Giải thuật chấp nhận mức ngưỡng được hiện thực bởi Van Laarhoven,
Lenstra và Ulder [3], giải thuật này sử dụng hàm lân cận N1 (mục 3.4.2) và
giá trị mức ngưỡng được xác định theo kinh nghiệm và là một giá trị không
âm. Thông thường, mức ngưỡng t mang giá trị khá lớn tại thời điểm bắt
đầu thực thi của giải thuật, giá trị này giảm dần và tiến về 0 cho đến khi
kết thúc giải thuật.

− Trong giải thuật mô phỏng luyện kim, nếu lân cận Q tốt hơn lời giải hiện tại
C , thì Q được chấp nhận như một lời giải mới. Tuy nhiên, tại lần lặp thứ k,
nếu Q dở hơn thì nó vẫn được chấp nhận với một xác suất được mô phỏng
theo luật nhiệt động học:
P(C,Q) = exp( (f(C) – f (Q)) / βk) > r
đây βk là một thông số điều chỉnh được, thường đïc gọi là lịch trình
làm nguội (cooling schedule), β1 ≥ β2 ≥ β3 ≥ … ≥ 0; r là một giá trị được chọn
ngẫu nhiên trong khoảng (0,1).
Với giải thuật này, một số lời giải xấu hơn vẫn được chấp nhận, điều này
cho phép giải thuật thoát khỏi tối ưu cục bộ và tiếp tục tìm kiếm những lời
giải tốt hơn.
Giải thuật mô phỏng luyện kim đã được kiểm tra bởi nhiều tác giả khác
nhau như nhóm của Van Laarhoven, Lenstra và Ulder [3]. Theo như kết
quả được công bố, giải thuật này cho những lời giải rất tốt.
Trong các giải thuật Mức ngưỡng, kết quả tốt nhất được cho bởi giải thuật mô
phỏng luyện kim của nhóm Van Laarhoven, Lenstra và Ulder. Tuy nhiên, so với các
giải thuật xấp xỉ khác, giải thuật này đòi hỏi một thời gian chạy lớn hơn.
Giải thuật Tìm kiếm Tabu gồm nhiều biến thể của nhiều tác giả khác nhau.
Chiến lược của tìm kiếm tabu là duy trì một danh sách tabu (tabu list) các lời giải đã
duyệt qua để chắc chắn là các lời giải đó không lặp lại. Quá trình tìm kiếm sẽ thoát ra
khỏi tối ưu cục bộ bằng cách chọn các bước chuyễn lân cận nằm ngoài danh sách
tabu. Giải thuật này có một số điểm giống giải thuật mô phỏng luyện kim. Nó có thể
chuyển sang lời giải tồi hơn lời giải hiện hành. Với mỗi lời giải, một lân cận được
định nghóa tương tự như trong giải thuật mô phỏng luyện kim, một lân cận trong vùng
lân cận được chọn một cách ngẫu nhiên hay theo một cách có tổ chức.

9
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.



Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling

Một khác biệt cơ bản giữa tìm kiếm tabu và mô phỏng luyện kim là cơ chế
chấp nhận các bước chuyển. Cơ chế của tìm kiếm tabu không dựa trên xác suất mà
dựa trên tính tất định. Mỗi khi một bước chuyển được chấp nhận, danh sách tabu được
chèn thêm một phần tử. Nếu chiều dài của danh sách tabu quá nhỏ, các lời giải có thể
bị lặp lại. Nếu chiều dài quá lớn, quá trình tìm kiếm có thể bị ràng buộc không thích
hợp.
Taillard [16] sử dụng hàm lân cận N1 (mục 3.4.2) và chiều dài của danh sách
tabu thay đổi ngẫu nhiên trong khoảng 8 đến 14 sau mỗi 15 lần lặp. Trong giải thuật
của Taillard, chiều dài của các lân cận sẽ được ước lượng và lân cận nào có chiều dài
nhỏ nhất sẽ đïc chọn làm lời giải mới.
Barnes và Chamber [7] cũng sử dụng hàm lân cận N1 (mục 3.4.2), nhưng chiều
dài của danh sách tabu là cố định. Nếu không có bước chuyển nào được chấp nhận,
danh sách tabu sẽ bị xoá. Chiều dài của các lân cận được tính chính xác. Lời giải ban
đầu được sinh ra bằng cách lấy lời giải không trì hoãn và “active” (active and nondelay) tốt nhất thông qua áp dụng các luật phân phối.
Tìm kiếm tabu đã cho một kết quả rất tốt trong một khoảng thời gian hợp lý,
nhưng cũng mất nhiều chi phí trong việc kiểm tra và điều chỉnh các thông số của giải
thuật. Giải thuật Tìm kiếm Tabu của Taillard [16] dường như đã cho kết quả khá tốt.
Giải thuật của Barnes và Chamber [7] cũng cho kết quả rất tốt.
Giải thuật Di truyền lấy ý tưởng từ sự tiến hoá di truyền của các quần thể. Nó
dựa trên sự mở rộng của hàm lân cận được gọi là hàm siêu lân cận (hyperneighbourhood function). Hàm siêu lân cận được định nghóa là một ánh xạ : Nh : FS →
2F với s ≥ 2, mỗi bộ x = (x1,…,xS) ∈ FS , có một tập hợp Nh (x) ⊆ F. Tại mỗi vòng lặp,
có một tập các lời giải gọi là một quần thể; từ quần thể này, chọn một vài tập con có
kích thước s chứa các bố mẹ. Với mỗi tập con, một vài siêu lân cận, được gọi là các
con cháu được sinh ra. Các siêu lân cận này và quần thể hiện tại kết hợp lại với nhau
và sinh ra một quần thể mới bằng cách chọn một tập con các lời giải.
Năm 1991, Nakano và Yamada [21] xem xét giải thuật Di truyền cho bài toán
mà mỗi công việc có thể được xử lý trên nhiều máy, và mỗi máy chỉ có thể xử lý
đúng một tác vụ duy nhất của một công việc. Với mỗi máy và mỗi cặp công việc, họ

biểu diễn thứ tự mà mỗi máy xử lý các công việc này bởi 1 bit. Do đó mỗi lịch trình
sẽ đïc biểu diễn bởi một chuỗi mn(n-1) bit, với m là số máy, n là số công việc. Hai
siêu lân cận (hyper-neighbor) sẽ được sinh bằng cách cắt hai chuỗi ở cùng một vị trí
và hoán đổi phần bên trái cho nhau.
Mặc dù phương pháp tiếp cận của giải thuật này khá đơn giản, nhiều giải thuật
Di truyền đã được kiểm thử nhưng kết quả không được tốt. Giải thuật của Nakano và
Yamada [21] cho kết quả có chất lượng còn thấp. Năm 1997, Nakano và Yamada [23]
đã kết hợp giải thuật di truyền với tìm kiếm cục bộ và sử dụng phương pháp lai ghép
nhiều bước (multi-step crossover fusion) đã cho kết quả khá tốt, tuy nhiên thời gian
chạy tương đối lâu.

10
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling

Năm 2002, Gonỗalves, Mendes vaứ Resende [11] ủaừ sửỷ duùng giaỷi thuật di
truyền lai (hybrid genetic algorithm) trong đó các lịch trình được xây dựng bằng cách
sử dụng luật ưu tiên mà độ ưu tiên được định nghóa bằng giải thuật di truyền, sau đó
áp dụng giải thuật Tìm kiếm cục bộ để cải tiến các lời giải. Kết quả tính toán cho
thấy giải thuật của các tác giả này đã tìm ra các lời giải cận tối ưu khá tốt.
Giải thuật Di truyền dường như không thích hợp cho bài toán có kích thước cỡ
trung hoặc lớn. Tuy nhiên, các kết quả rất khả qua khi kết hợp giải thuật Di truyền
với giải thuật Tìm kiếm cục bộ. Và sự lai ghép này còn đang ở giai đoạn khởi đầu.
Nhìn chung, qua các công trình đã được công bố, trong các giải thuật thuộc họ
giải thuật xấp xỉ, tìm kiếm tabu được đánh giá là cho kết quả tốt nhất. Tìm kiếm tabu
có thể cho lời giải chất lượng cao trong thời gian tương đối chấp nhận được mà không
cần nhiều thông tin cụ thể về cấu trúc của bài toán. Đối với bài toán job-shop
scheduling, giải thuật mô phỏng luyện kim dường như không hấp dẫn vì nó đòi hỏi

thời gian chạy rất lâu. Giải thuật Di truyền cũng đòi hỏi thời gian và hiệu suất còn
thấp.
Theo xu hướng hiện nay, để tận dụng được các ưu điểm của mỗi giải thuật,
phương pháp lai ghép đã được nghiên cứu và sử dụng rất nhiều. Sự kết hợp giữa
phương pháp tìm kiếm theo cây (tree search) và tìm kiếm cục bộ, điển hình như nhánh
và cận và tìm kiếm tabu, có thể tận dụng được ưu điểm của phương pháp xấp xỉ, cũng
như có khả năng tìm ra được lời giải tối ưu. Ví dụ như Baptiste, Nuijten và Claude Le
Pape [4] đã đề ra giải thuật xấp xỉ dựa trên sự kết hợp giữa tìm kiếm theo cây và tìm
kiếm cục bộ và nó đã được ứng dụng trong sản phẩm thương mại ILOG SCHEDULE.

11
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling

CHƯƠNG III

PHƯƠNG PHÁP GIẢI BÀI TOÁN
JOB SHOP SCHEDULING

3

PHƯƠNG PHÁP GIẢI BÀI TOÁN JOB SHOP SCHEDULING

Như đã trình bày ở chương I, bài toán Job-shop scheduling (JSSP) là một bài
toán tối ưu tổ hợp, thuộc lớp NP-hard, rất khó để tìm ra lời giải tối ưu. Và đã có nhiều
phương pháp giải thuật khác nhau, từ đơn giản đến phức tạp được sử dụng để giải
quyết bài toán này. Hướng giải quyết cho bài toán JSSP trong đề tài nghiên cứu của
luận văn này là sử dụng phương pháp tìm kiếm cục bộ. Bản thân phương pháp này

cũng có nhiều loại giải thuật khác nhau; một trong các giải thuật mà đề tài này chú
trọng là tìm kiếm tabu (tabu search). Đồng thời cũng có dự định, qua thực nghiệm, có
thể đưa một số cải tiến của giải thuật Tìm kiếm Tabu để tăng chất lượng lời giải.
Tìm kiếm cục bộ cho bài toán tối ưu tổ hợp
3.1.1 Định nghóa
Bài toán tối ưu tổ hợp (combinatorial optimization problems)
Một thực thể (instance) π của tối ưu tổ hợp ∏ được định nghóa như là một bộ
< S,F,f > , với S là một tập hữu hạn các lời giải, F ⊆ S là một tập các lời giải
khả thi, và f : S → ℜ là hàm mục tiêu đánh giá chất lượng của các lời giải
trong S.
Vấn đề là tìm một tối ưu toàn cục (global optimum), x* ∈ F mà f(x* ) ≤ f(x),
∀x∈ F.
Bài toán tìm kiếm (search problems)
Cho một cặp <S,F> , với S là tập các lời giải và F ⊆ S là tập các lời giải khả
thi, một bài toán tìm kiếm là bài toán đi tìm lời giải khả thi xo ∈ F .
Không gian tìm kiếm (search space)
Cho bài toán tối ưu tổ hợp ∏, một không gian tìm kiếm Sπ của thực thể π có
những thuộc tính sau:
Mỗi phần tử s ∈ Sπ biểu diễn một phần tử x ∈ S
Có ít nhất một phần tử tối ưu của F được biểu diễn trong Sπ
Hàm chi phí (cost function)

12
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling

Cho một không gian tìm kiếm S của thực thể π của bài toán ∏, hàm chi phí
được định nghóa là một hàm mà với mỗi phần tử s ∈ S, giá trị f(s) đánh giá

chất lượng của lời giải s.
Hàm chi phí được sử dụng để định hướng sự tìm kiếm đến những lời giải tốt
trong không gian tìm kiếm và chọn các bước chuyển (moves) tại mỗi bùc tìm
kiếm.
Hàm lân cận (neighbourhood function)
Cho một bài toán ∏, một thực thể π và không gian tìm kiếm S cho thực thể
này. Mỗi phần tử s ∈ S được gán các lời giải lân cận của s là N(s) ⊆ S. Tập
N(s) được gọi là vùng lân cận của s, mỗi phần tử s’ ∈ N(s) được gọi là một lân
cận của s.
Với mỗi s, tập N(s) được định nghóa ngầm định bằng cách tham khảo đến tập
các bước chuyển mà chính là sự chuyển dịch giữa các lời giải.
3.1.2

Giải thuật tìm kiếm cục bộ tổng quát

Giải thuật tìm kiếm cục bộ bắt đầu từ một lời giải ban đầu so ∈ S và thực hiện
các bước lặp để thăm dò không gian tìm kiếm bằng cách sử dụng các bước chuyển kết
hợp với các vùng lân cận. Tại mỗi bước lặp có sự chuyển dịch (transition) từ lời giải s
đến một trong những lân cận của nó s’. Khi có sự chuyển dịch từ s sang s’, nghóa là có
một bước chuyển m được chấp nhận, s’ tương đương với s⊕m.
Sự chọn lựa bước chuyển được dựa trên các giá trị của hàm chi phí.
Lời giải ban đầu so có thể được xây dựng bằng một số giải thuật hay có thể
sinh ngẫu nhiên.
Điều kiện dừng có thể dựa trên chất lượng cụ thể của lời giải hoặc số tối đa
các vòng lặp. Hình 3-1 sau đây mô tả giải thuật Tìm kiếm cục bộ tổng quát.

LocalSearch(MaxCost, MaxMoves)
{
let s = {(vi,dij) | dij ∈ Di for all vi ∈ V } be the initial solution // lời giải ban đầu
while ( f(s) > MaxCost and TotalMove < MaxMoves)

{
M’ ← GenerateLocalMoves(s,TotalMoves) // sinh các bước chuyển của
// vùng lân cận
if M’≠ ∅ then MakeLocalMoves(s,M’,TotalMoves) //chọn bước chuyển
}
}
Hình 3-1 : Giải thuật tìm kiếm Cục bộ tổng quát [1]

13
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


Luận văn tốt nghiệp Cao học : Ứng dụng Tìm kiếm cục bộ để giải bài toán Job Shop Scheduling

Tuỳ theo các loại giải thuật khác nhau trong tìm kiếm cục bộ, nội dung của hai
hàm GenerateLocalMoves và MakeLocalMoves sẽ có nội dung cụ thể khác nhau.
3.1.3 Giải thuật Tìm kiếm Tabu cơ bản
Tìm kiếm tabu là một loại của tìm kiếm cục bộ dựa trên cấu trúc bộ nhớ, nó
duy trì một danh sách các bước chuyển đã được sử dụng để tránh các lời giải lặp lại
và có khả năng tránh rơi vào các lời giải tối ưu cục bộ. Dựa trên khung của tìm kiếm
cục bộ, tìm kiếm tabu định nghóa hai hàm GenerateLocalMoves và MakeLocalMoves
như sau. Hình 3-2 và Hình 3-3 mô tả giải thuật sinh bước chuyển và giải thuật cập
nhật các bước chuyển đã được chọn.

GenerateLocalMoves(s, TotalMoves)
{
M’ ← ∅
BestCost ← ∞
for each vi ∈ V
{

dcurr ← current domain value of vi // giá trị thuộc miền trị hiện tại của vi
for each d ∈ Di | d ≠ dcurr
{
m ← {vi,d}
// nếu m không nằm trong danh sách tabu và f(s⊕m)≤ BestCost
if m is out of tabu list and f(s⊕m) ≤ BestCost
{
if f(s⊕m) < BestCost
{
BestCost ← f(s⊕m); M’ ← ∅
}
M’ ← M’ ∪ m
}
}
}
return M’
}
Hình 3-2 : Giải thuật sinh các bước chuyển [1]

14
GVHD : TS. Dương Tuấn Anh, SVTH : Nguyễn Hữu Phú.


×