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

Ứng dụng tu chỉnh lặp có trọng số vào giải quyết bài toán xếp lịch trực y tá

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 (604.19 KB, 91 trang )

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

NGUYỄN THỊ TUYẾT NGA

ỨNG DỤNG TU CHỈNH LẶP CÓ TRỌNG SỐ
VÀO GIẢI QUYẾT BÀI TOÁN XẾP LỊCH
TRỰC Y TÁ
Chuyên ngành: Công Nghệ Thông Tin
Mã số ngành: 01.02.10

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, THÁNG 12 NĂM 2004


Đại học Quốc Gia Tp. Hồ Chí Minh

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC BÁCH KHOA
---------

Độc lập - Tự do - Hạnh phúc
---------

NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên: NGUYỄN THỊ TUYẾT NGA

Phái: Nữ



Ngày tháng năm sinh: 10 - 03 - 1977

Nơi sinh: Quảng Ngãi

Chuyên ngành: Công Nghệ Thông Tin

Mã số: CNTT12-018

I. TÊN ĐỀ TÀI: Ứng dụng phương pháp Tu chỉnh lặp có trọng số vào bài toán xếp
lịch trực y tá.
II. NHIỆM VỤ VÀ NỘI DUNG:
Nhiệm vụ của đề tài là nghiên cứu ứng dụng phương pháp Tu chỉnh lặp có
trọng số vào bài toán xếp lịch trực y tá ở các bệnh viện.
III. NGÀY GIAO NHIỆM VỤ:

26/02/2004

IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 25/11/2004
V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS- DƯƠNG TUẤN ANH
CÁN BỘ HƯỚNG DẪN

CHỦ NHIỆM NGÀNH BỘ MÔN QUẢN LÝ NGÀNH

TS-DƯƠNG TUẤN ANH
Nội dung và đề cương luận văn thạc só đã được Hội Đồng Chuyên Ngành thông qua.
Ngày
PHÒNG ĐÀO TẠO SAU ĐẠI HỌC

tháng


năm

KHOA QUẢN LÝ NGÀNH


TÓM TẮT
Giải thuật Tu chỉnh lặp có trọng số xuất phát từ ý tưởng khá đơn giản. Khi rơi vào
trạng thái tối thiểu cục bộ, giải thuật sẽ tăng trọng số của các ràng buộc vi phạm.
Việc này làm thay đổi giá trị chi phí của lời giải hiện tại cho đến khi một lời giải lân
cận trở nên có thể chấp nhận được.
Nhiều bài toán giải hệ ràng buộc trong thực tế thuộc dạng ràng buộc quá mức (có số
ràng buộc quá nhiều) vì thế không thể tìm thấy lời giải khả thi nào thoả tất cả các
ràng buộc. Bài toán này thường chia ràng buộc ra làm hai loại: ràng buộc cứng (hard
constraint) và ràng buộc mềm (soft constraint). Trong đó, ràng buộc cứng là ràng
buộc phải thoả mãn, ràng buộc mềm là ràng buộc không bắt buộc phải thoả mãn.
Mục tiêu của bài toán là thoả mãn tất cả ràng buộc cứng và tối thiểu số ràng buộc
mềm vi phạm.
Đặc điểm này của bài toán ràng buộc quá mức đã gây khó khăn cho kỹ thuật Tu chỉnh
lặp có trọng số. Bởi vì, giải thuật này dùng trọng số để phân biệt ràng buộc cứng và
ràng buộc mềm. Tuy nhiên, trong suốt quá trình tìm kiếm, việc tăng trọng số của ràng
buộc vi phạm sẽ làm “méo mó” trọng số ban đầu chỉ độ quan trọng tương đối giữa các
ràng buộc. Kết quả là trọng số của ràng buộc mềm có thể ngang bằng hay lớn hơn
ràng buộc cứng. Vì thế, giải thuật sẽ không thể tìm thấy lời giải khả thi.
Để có thể ứng dụng giải thuật Tu chỉnh lặp có trọng số vào bài toán xếp lịch trực y
tá, tác giả sẽ dựa vào khái niệm “lặp lại” ràng buộc của Cha et al. và chọn xây dựng
giải thuật theo hướng “học hỏi” của Thornton và Sattar.
Mặc khác, không giống như các phương pháp giải quyết cho bài toán xếp lịch trực y
tá trước, tác giả chọn hướng tiếp cận để giải thuật Tu chỉnh lặp có trọng số vừa có
chức năng xây dựng lời giải khả thi vừa có chức năng tối ưu lời giải. Đồng thời qua

đó tác giả cũng muốn chứng minh rằng các giải thuật tìm kiếm cục bộ hoàn toàn
không bị lệ thuộc vào lời giải ban đầu.

Trang i


Giới thiệu

ABSTRACT
Weighted iterative repair technique originates from a simple idea. When stucking on a
local optimum solution, the algorithm will increase weights of all violated constraints.
This changes the cost of the current solution until a lower cost solution becomes
accessible.
Many real-world constraint satisfaction problems can be over-constrained. For this
reason, it is impossible to find a feasible solution that satisfies all contraints. These
problems contain a set of hard constraints that have to be satisfied and a set of soft
constraints whose satisfaction is desirable but not mandatory. The objective of the
problem is to satisfy all hard constraints and to minimize the violations of soft
constraints.
This feature of over-constrained problems causes difficulties in using weighted
iterative repair techniques, because the techniques use weight to distinguish hard and
soft constraints. However, during the search, increasing the weights of the violated
constraints can override the relative importance of constraints. This can make weights
of soft constraints equal or greater than those of hard constraints. So the algorithm can
not find feasible solutions.
In order to apply the weighted iterative repair techniques into the nurse scheduling,
author based on concept of repeating hard constraints proposed by Cha et al. and
choose to build the algorithm following concept of learning of Thornton and Sattar.
In addition, different from previous approachs for nurse rostering problem, the author
chooses the approach that weight iterative repair algorithm can produce both feasible

solutions and optimized solutions. On the other hand, the author also demonstrates that
local search algorithm is independent of initial solutions.

Trang ii


LỜI CẢM ƠN
Lời đầu tiên tôi xin bày tỏ lòng biết ơn chân thành đến Thầy TS. Dương Tuấn Anh,
người đã tận tình giúp đỡ tôi trong suốt thời gian học tập cũng như trong thời gian làm
luận án thạc só.
Xin bày tỏ lòng biết ơn đối với các Thầy Cô trong khoa Công Nghệ Thông Tin trường
Đại học Bách Khoa TP.Hồ Chí Minh đã tận tình giảng dạy truyền đạt kiến thức cũng
như những hỗ trợ khác về tinh thần và tư liệu cho tôi trong suốt thời gian học tập và làm
việc.
Xin chân thành cám ơn Thầy TS. Nguyễn Thành Long, người đã luôn động viên, khuyến
khích và góp ý cho tôi trong suốt quá trình làm luận văn.
Xin chân thành cám ơn hai người rất thân của tôi là Nguyễn Thị Tuyết Hồng và Phạm
Văn Vũ đã luôn ở bên cạnh, động viên, khuyến khích, giúp tôi in tài liệu, đọc và chỉnh
sửa các lỗi chính tả trong luận văn.
Xin chân thành cám ơn bạn Bùi Văn Quang đã đóng góp một số ý kiến và tạo mọi điều
kiện thuận lợi cho tôi trong việc sử dụng chương trình xếp lịch trực y tá dùng giải thuật
Tìm kiếm Tabu.
Xin chân thành cám ơn chị Nguyễn Thị Kiều Thu, điều dưỡng trưởng của khoa Tim
Mạch bệnh viện Nhi Đồng I và chị Phan Thị Phương Anh, điều dưỡng trưởng của khoa
Cấp Cứu bệnh viện Chợ Rẫy đã giúp tôi rất nhiều trong việc tìm hiểu nghiệp vụ của bài
toán xếp lịch trực y tá.
Sau cùng, xin bày tỏ lòng biết ơn sâu sắc đối với gia đình, bạn bè, đồng nghiệp và các
bạn cùng lớp cao học khoa Công Nghệ Thông Tin khoá 12 đã luôn động viên và quan
tâm giúp đỡ tôi trong suốt thời gian học tập và làm luận văn.
Thành phố Hồ Chí Minh, 25/11/2004

Tác giaû

Trang iii


Giới thiệu

MỤC LỤC
Tóm tắt ......................................................................................................................i
Abstract ....................................................................................................................ii
Lời cảm ơn ............................................................................................................. iii
Mục lục ...................................................................................................................iv
Danh mục các hình và giải thuật ...........................................................................vii
Danh mục các bảng ...............................................................................................vii
CHƯƠNG 1 :

1.1
1.2

GIỚI THIỆU ..........................................................................................1

Giới thiệu đề tài ................................................................................................1

Bài toán xếp lịch trực y tá ................................................................................2
1.2.1
Mô tả bài toán...............................................................................................2
1.2.2
Các ràng buộc của bài toán ..........................................................................3
1.2.3
Đánh giá bài toán .........................................................................................4

CHƯƠNG 2 :

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

2.1

Các nghiên cứu liên quan đến bài toán xếp lịch trực y tá ...............................6
2.1.1
Qui hoạch toán học (Mathematical Programming)......................................6
2.1.2
Lập trình ràng buộc (Constraint Programming) ..........................................9
2.1.3
Nhận xét các phương pháp xếp lịch trực y tá.............................................15

2.2

Các nghiên cứu liên quan đến kỹ thuật tu chỉnh lặp .....................................16
2.2.1
Tu chỉnh lặp có trọng số cho bài toán thoả mãn ràng buộc.......................17
2.2.2
Kỹ thuật Tu chỉnh lặp có trọng số cho bài toán ràng buộc quá mức.........23

2.3

Hướng nghiên cứu của luận văn.....................................................................25

CHƯƠNG 3 :

PHƯƠNG HƯỚNG GIẢI QUYẾT BÀI TOÁN...............................26


3.1

Kỹ thuật tu chỉnh lặp có trọng số (weighted iterative repair) .......................27
3.1.1
Mối quan hệ giữa lượng thông tin, chi phí và số lần lặp ...........................28
3.1.2
Duy trì sự phân biệt giữa ràng buộc cứng và ràng buộc mềm ..................31
3.1.3
Xác định trọng số ban đầu cho ràng buộc cứng .........................................33

3.2

3.2.1
3.2.2
3.2.3
3.2.4
3.2.5
3.2.6

Ứng dụng tu chỉnh lặp có trọng số vào bài toán xếp lịch trực y tá................35
Mô hình hoá bài toán..................................................................................35
Lựa chọn độ sâu cho giải thuật ..................................................................35
Lựa chọn tiêu chuẩn đánh giá ....................................................................36
Giải thuật Tu chỉnh lặp có trọng số (Weighted Iterative Repair – WIR)....38
Ràng buộc đa biến ......................................................................................39
Bổ sung một số heuristic để cải thiện giải thuật ........................................42

CHƯƠNG 4 :

4.1


THIẾT KẾ ỨNG DỤNG XẾP LỊCH TRỰC Y TÁ ........................44

Hiện thực giải thuật ........................................................................................44
Trang iv


Giới thiệu
4.1.1
4.1.2

4.2

Xây dựng thư viện phần mềm cho giải thuật Tu chỉnh lặp có trọng số ....44
Ứng dụng thư viện vào giải quyết bài toán xếp lịch trực y tá ...................46

Thiết kế ứng dụng xếp lịch trực y tá ..............................................................50
4.2.1
Mô hình ứng dụng xếp lịch trực y tá ..........................................................50
4.2.2
Thiết kế cơ sở dữ liệu .................................................................................52
4.2.3
Các chức năng của hệ thống xếp lịch trực y tá ..........................................54
CHƯƠNG 5 :

5.1
5.1.1
5.1.2
5.1.3
5.1.4


5.2

CHẠY THỬ NGHIỆM CHƯƠNG TRÌNH .....................................58

Phương án chạy thử nghiệm ...........................................................................58
Mục đích .....................................................................................................58
Phương án thử nghiệm ................................................................................58
Thiết kế tập bài toán thử nghiệm ...............................................................60
Kết quả thực nghiệm ..................................................................................60

Phân tích .........................................................................................................64
5.2.1
Thống kê kết quả ........................................................................................64
5.2.2
Nhận xét kết quả ........................................................................................66
5.2.3
Phân tích kết quả ........................................................................................67

5.3

Kết luận ..........................................................................................................69

CHƯƠNG 6 :

6.1
6.2

KẾT LUẬN ..........................................................................................70


Đóng góp của đề tài .......................................................................................70
Hướng mở rộng của đề tài ..............................................................................71

THƯ MỤC THAM KHẢO .............................................................................................72
PHỤ LỤC A: BÀI TOÁN GIẢI HỆ RÀNG BUỘC VÀ BÀI TOÁN GIẢI HỆ
RÀNG BUỘC RIÊNG PHẦN ..........................................................................................1
PHỤ LỤC B: TÌM KIẾM HỆ THỐNG VÀ TÌM KIẾM PHI HỆ THỐNG..............1
PHỤ LỤC C: TỐI THIỂU CỤC BỘ...............................................................................1
PHỤ LỤC D: SỬ DỤNG CHƯƠNG TRÌNH XẾP LỊCH TRỰC Y TÁ .....................1
BẢNG THUẬT NGỮ VIỆT-ANH ĐỐI CHIẾU............................................................1

Trang v


Giới thiệu

DANH MỤC CÁC HÌNH VÀ GIẢI THUẬT
Hình 2-1: Ví dụ một bảng phân công trực cho 25 y tá.....................................................8
Hình 2-2: Ví dụ một bài toán thoả mãn ràng buộc có 5 biến A, B, C, D, E..................20
Hình 2-3: Bài toán thoả mãn ràng buộc được mô hình hoá theo GENET ....................20
Hình 2-4: Bảng trọng số wxy giữa hai nốt có sự xung đột ..............................................21
Hình 2-5: Ví dụ một trạng thái có thể của mạng GENET trong hình 2.3......................22
Hình 2-6: Giải thuật Breakout ........................................................................................23
Hình 2-7: Giải thuật Soft Constraint Heuristic...............................................................25
Hình 3-1: Ví dụ bài toán tô màu đồ thị có số ràng buộc quá mức.................................28
Hình 3-2: Mối quan hệ giữa lượng thông tin, chi phí và số lần lặp ...............................29
Hình 3-3: Duy trì sự phân biệt trọng số giữa ràng buộc cứng và ràng buộc mềm ........32
Hình 3-4: Giải thuật tăng trọng số ràng buộc vi phạm ..................................................34
Hình 3-5: Giải thuật tính độ sai biệt giá trị mục tiêu so với lời giải hiện tại khi chọn giá
trị m cho biến v .......................................................................................................38

Hình 3-6: Giải thuật Tu chỉnh lặp có trọng số (WIR) ....................................................39
Hình 3-7: Heuristic sắp thứ tự biến thuận ......................................................................42
Hình 3-8: Heuristic sắp thứ tự biến nghịch ....................................................................43
Hình 4-1: Sơ đồ thiết kế đối tượng của thư viện giải thuật Tu chỉnh lặp có trọng số ...44
Hình 4-2: Đối tượng NurseRostering .............................................................................48
Hình 4-3: Mô hình ứng dụng xếp lịch trực y tá..............................................................50
Hình 4-4: Lược đồ cơ sở dữ liệu của ứng dụng Xếp lịch trực y tá.................................52
Hình 4-5: Các thực thể mô tả thông số của bài toán Xếp lịch trực y tá ........................53
Hình 4-6: Quản lý thông tin cá nhân của y tá ................................................................55
Hình 4-7: Quản lý các thông tin liên quan đến yêu cầu của y tá ..................................55
Hình 4-8: Chức năng thiết lập các thông số cho ràng buộc, bài toán và xếp lịch trực y
tá..............................................................................................................................56
Hình 4-9: Chức năng xem lịch trực ................................................................................56
Hình 4-10: Chức năng thống kê tổng ràng buộc cứng và mềm của bài toán và các
thông số của bảng phân công kết quả....................................................................57
Hình 4-11: Chức năng tạo khuôn mẫu ...........................................................................57
Hình 5-1: Mối quan hệ giữa số lần kẹt vào mức tối đa cục bộ và giá trị mục tiêu
(WeightedScores) ...................................................................................................65
Hình 5-2: Mối quan hệ giữa số lần kẹt vào mức tối đa cục bộ và giá trị mục tiêu
(SoftScores) ............................................................................................................65
Hình C-1: Phác thảo trạng thái của các giải pháp trong không gian tìm kieám ...............1

Trang vi


Giới thiệu

DANH MỤC CÁC BẢNG
Bảng 5-1: Bảng thông số của bài toán ...........................................................................60
Bảng 5-2: Bảng mô tả tập bài toán thử nghiệm.............................................................61

Bảng 5-3: Bảng số liệu kết quả khi thực thi giải thuật Tu chỉnh lặp có trọng số và giải
thuật Tabu ...............................................................................................................62
Bảng 5-4: Bảng số liệu kết quả khi thực thi giải thuật Tu chỉnh lặp có trọng số sử dụng
gán trị ngẫu nhiên và theo khuôn mẫu...................................................................63
Bảng 5-6: Bảng số liệu thống kê....................................................................................64

Trang vii


Giới thiệu

CHƯƠNG 1 : GIỚI THIỆU
1.

1.1

GIỚI THIỆU ĐỀ TÀI

Công việc xếp lịch trực cho y tá thường rất phức tạp và mất nhiều thời gian. Tuy
nhiên hiện nay, ở nước ta công việc này vẫn được làm bằng tay. Vì thế, nhu cầu
nghiên cứu và tìm giải pháp cho bài toán này là rất cần thiết.
Trong khi đó, trên thế giới bài toán xếp lịch trực cho y tá đã được quan tâm nghiên
cứu phát triển từ những năm 1980. Trải qua nhiều giai đoạn phát triển đã có những
thành công nhất định. Một số sản phẩm ra đời áp dụng cho các bệnh viện khác nhau
trên thế giới. Thế nhưng, đến nay vẫn chưa thật sự có một giải pháp nào giải quyết
triệt để cho tất cả các trường hợp. Đặc điểm của bài toán xếp lịch trực cho y tá là rất
đặc thù cho một trường hợp cụ thể vì thế bài toán luôn là một hướng mở cho nhiều
nhà nghiên cứu.
Từ đầu những năm 1980, kỹ thuật tìm kiếm cục bộ (Local Search) đã tạo được nhiều
tiếng vang và sự chú ý trong việc giải quyết các bài toán khó và phức tạp. Một trong

những ứng dụng quan trọng và tiêu biểu của phương pháp này là bài toán xếp lịch,
trong số đó, bài toán phân công trực cho y tá là một điển hình.
Cùng hướng nghiên cứu về giải thuật tìm kiếm cục bộ, tác giả chọn kỹ thuật Tu
chỉnh lặp có trọng số (Weighted Iterative Repair). Mặc dù kỹ thuật này đã được
nghiên cứu từ khá lâu và đã có nhiều thành công nhưng với bài toán thoả mãn ràng
buộc quá mức như bài toán phân công trực y tá thì giải thuật này vẫn còn nhiều mới
mẻ.

Trang 1


Giới thiệu

1.2

BÀI TOÁN XẾP LỊCH TRỰC Y TÁ

1.2.1 Mô tả bài toán
Công việc xếp lịch trực y tá tốn khá nhiều thời gian và công sức, ngoài ra kết quả
thường không được tối ưu. Vì thế hiện nay ở các nước tiên tiến trên thế giới, công
việc này thường được mô hình hoá và giải quyết bằng máy tính.
Một cách tổng quát, bài toán thường chia ra làm hai loại ràng buộc: ràng buộc cứng
và ràng buộc mềm. Ràng buộc cứng là những quy định và luật bắt buộc phải thoả
mãn. Ràng buộc mềm thường là những yêu cầu hay ước muốn từ phía các y tá, không
bắt buộc phải thoả mãn tất cả, và được dùng để tham khảo tối ưu bài toán.
Ngoài một số quy định của luật lao động, các yêu cầu còn lại của bài toán xếp lịch
trực y tá thường có những đặc trưng riêng. Vì thế việc chọn ra một mô hình tiêu biểu
đại diện cho bài toán xếp lịch trực y tá là cần thiết. Dựa trên tiêu chí đó, tác giả
chọn bệnh viện Nhi Đồng I và bệnh viện Chợ Rẫy. Đây là hai bệnh viện lớn của
thành phố với mô hình phân công trực y tá khá phổ biến ở nước ta.

Bài toán được trình bày dựa theo mô hình trực ba ca bốn kíp của những khoa lớn,
khối lượng công việc nhiều. Những khoa nhỏ với nhu cầu y tá ít và thời gian trực
không cần phải sát sao thường chọn mô hình hai ca trực.
Mô hình trực ba ca:
-

Ca Sáng: từ 7 giờ sáng đến 3 giờ chiều.

-

Ca Chiều: từ 3 giờ chiều đến 9 giờ tối.

-

Ca Đêm: từ 9 giờ tối đến 7 giờ sáng ngày hôm sau.

Bài toán xếp lịch trực cho y tá là một bài toán được đánh giá là rất khó, vì độ lớn
của bài toán và độ phức tạp của các ràng buộc. Bài toán này thường có số ràng buộc
rất lớn. Mục tiêu của bài toán là tìm ra giải pháp sao cho thỏa mãn tất cả ràng buộc
cứng (ký hiệu C) và tối thiểu số vi phạm ràng buộc mềm (ký hieäu M).
Trang 2


Giới thiệu

1.2.2 Các ràng buộc của bài toán


Quy định của luật lao động: (C)
-


Thời gian nghỉ phép một năm là 12 ngày.

-

Thời gian nghỉ giữa các ca trực ít nhất phải là 2 ca.
Ví dụ: nếu một y tá làm ca tối hôm nay thì không thể phân vào ca trực

sáng hay chiều hôm sau.


Quy định của bệnh viện: bao gồm một số nhóm chính sau:
-

Ràng buộc nhân công (C): bao gồm số lượng y tá tối đa và tối thiểu trong
mỗi ca trực.
Ví dụ: Số y tá cần cho ca trực sáng tối thiểu là 4 và tối đa là 5.

-

Ràng buộc giờ làm việc (C):
Ví dụ: Một y tá phải làm việc từ 20 đến 23 ca trong giai đoạn 30 ngày.

-

Ràng buộc về sự phân bố ca:
Ví dụ: Khoảng cách giữa hai ca trực liên tục là 3 ca (M).
Sau một ca trực đêm phải là một ngày nghỉ (C).




Yêu cầu của y tá:

Đây là những mong muốn của chính các y tá cho lịch trực của họ. Các yêu cầu này
được phân làm 4 loại sau:
-

Ưu tiên 1: những yêu cầu không quan trọng (M).

-

Ưu tiên 2: những yêu cầu bình thường (M).

-

Ưu tiên 3: những yêu cầu quan trọng không bắt buộc (M).

-

Loại bắt buộc: những nguyện vọng cấp thiết hoặc đã hoạch định từ trước
rất lâu cần phải được giải quyết (C).

Trang 3


Giới thiệu
Các yêu cầu khác:




-

Số ca trực thêm hoặc số ca trực nợ phải được tính (C).

-

Số ngày nghỉ phép chưa được sử dụng phải được phân bổ cho phù hợp
(M).

1.2.3 Đánh giá bài toán
Bài toán xếp lịch trực cho y tá được đánh giá rất phức tạp, xét theo hai cách nhìn sau:
-

Không gian tìm kiếm lớn: với mô hình trực ba ca sẽ có 4 giá trị biểu diễn ca
trực, chọn mỗi biến biểu diễn một ca trực của một y tá trong một ngày, như vậy
tổng cộng có khoảng 4(số biến)=4720 lựa chọn cho một lịch trực của 24 y tá trong
thời gian 30 ngày.

-

Có quá nhiều ràng buộc phải thỏa mãn: ràng buộc nhân công, ràng buộc giờ
làm việc, ràng buộc về sự phân bố ca,… ngoài ra còn có những ràng buộc phát
sinh do mong muốn của người lao động (y tá, bác só, …)

Dựa theo những tiêu chí trên, bài toán xếp lịch trực y tá được xếp vào nhóm bài toán
NP-hard và có số ràng buộc quá mức (over-constrained).
Luận văn được tổ chức thành 6 chương:
1.

Chương thứ nhất giới thiệu về đề tài.


2.

Chương thứ hai giới thiệu các phương pháp giải quyết bài toán xếp lịch trực
y tá và trình bày những công trình liên quan đến kỹ thuật Tu chỉnh lặp có
trọng số.

3.

Chương thứ ba trình bày phương hướng ứng dụng kỹ thuật Tu chỉnh lặp có
trọng số vào giải quyết bài toán xếp lịch trực y tá, đồng thời đề xuất phương
án giải quyết cho các ràng buộc đa biến và kết hợp một số heuristic để tăng
độ hiệu quả của giải thuật.

4.

Chương thứ tư trình bày thiết kế thư viện cho giải thuật Tu chỉnh lặp có
trọng số và mô hình ứng dụng xếp lịch trực y tá.
Trang 4


Giới thiệu
5.

Chương thứ năm trình bày các phương án chạy thử nghiệm chương trình, các
kết quả thử nghiệm, sau đó tiến hành nhận xét và phân tích các kết quả đó.

6.

Chương cuối cùng kết luận lại những kết quả đã đạt được trong luận văn

đồng thời đề xuất hướng nghiên cứu mở rộng cho đề tài sau này.

Trang 5


Các nghiên cứu liên quan

CHƯƠNG 2 : CÁC NGHIÊN CỨU LIÊN QUAN
2.

Trong chương này, các phương pháp giải quyết bài toán xếp lịch trực y tá sẽ được giới
thiệu. Song song đó tác giả cũng sẽ trình bày những công trình liên quan đến kỹ thuật
Tu chỉnh lặp có trọng số. Những nghiên cứu này sẽ là nền tảng cho việc xây dựng giải
thuật sau này.

2.1

CÁC NGHIÊN CỨU LIÊN QUAN ĐẾN BÀI TOÁN XẾP
LỊCH TRỰC Y TÁ

Bài toán phân công trực y tá đã được quan tâm nghiên cứu phát triển từ những năm
1970. Trải qua nhiều giai đoạn phát triển đã có những thành công nhất định. Nhiều
sản phẩm ra đời áp dụng cho các bệnh viện của các nước khác nhau trên thế giới.
Nhìn vào giai đoạn phát triển của bài toán nhận thấy có hai huynh hướng lớn giải
quyết bài toán, đó là phương pháp quy hoạch toán học và lập trình ràng buộc.

2.1.1 Qui hoạch toán học (Mathematical Programming)
Vào những năm 1970, cùng với sự phát triển vượt bật của phần cứng máy tính một
huynh hướng lập trình mới được khai sinh đó là lập trình toán học. Với ưu điểm giải
quyết tốt các bài toán tối ưu, phương pháp này đã tạo ra một bước ngoặc trong việc

tìm ra lời giải tối ưu cho bài toán xếp lịch.
Có thể chia phương pháp lập trình toán học cho bài toán xếp lịch trực y tá thành ba
loại tùy theo cách triển khai kỹ thuật tính toán, đó là quy hoạch tuyến tính, quy hoạch
nguyên và quy hoạch mục tiêu.



Qui hoạch tuyến tính (Linear Programming)

Quy hoạch tuyến tính tìm kiếm lời giải tối ưu cho từng hàm mục tiêu thoả mãn tất cả
các ràng buộc. Nghiệm của phương pháp quy hoạch tuyến tính thường không
Trang 6


Các nghiên cứu liên quan
nguyên, trong khi bài toán xếp lịch trực y tá yêu cầu phải là nghiệm nguyên. Mặc dù
vậy, quy hoạch tuyến tính vẫn có thể áp dụng thành công trong một số bài toán xếp
lịch trực cho nhân viên.
Năm 1973, Rothstein đã sử dụng quy hoạch tuyến tính để xếp lịch cho nhân viên nhà
bếp của bệnh viện mà lại không áp dụng cho xếp lịch trực y tá [19]. Rothstein dựa
vào số ngày nghỉ để giải quyết vấn đề. Mục tiêu của mô hình là tối đa số khoảng
cách giữa hai ngày nghỉ liên tiếp của nhân viên trên một tuần làm việc 5 ngày. Bài
toán được lập trình theo quy hoạch tuyến tính nhưng đảm bảo lời giải là nguyên. Tuy
nhiên, phương pháp này chỉ giải quyết rất hạn chế một số ít các bài toán và không
thể mở rộng sang bài toán xếp lịch trực y tá thực tế được.



Qui hoạch nguyên (Integer Programming)


Quy hoạch nguyên được thiết kế nhằm tìm ra các lời giải có giá trị nguyên cho bài
toán quy hoạch tuyến tính. Tuy nhiên, phương pháp quy hoạch nguyên có chi phí
tính toán cao. Vì thế với mô hình có số lượng biến lớn việc tính toán sẽ trở nên rất
phức tạp. Vì lý do này, không có một phương pháp quy hoạch nguyên chuẩn nào cho
bài toán xếp lịch trực y tá, thay vào đó, các nhà nghiên cứu tập trung vào phát triển
các nguyên lý quy hoạch nguyên đặc biệt đáp ứng được các yêu cầu của bài toán
xếp lịch trực y tá.
Quy hoạch đa chọn lọc (Multiple Choice Programming)
Warner (1976) sử dụng nguyên lý quy hoạch đa chọn lọc để giải quyết bài toán xếp
lịch trực y tá tại bệnh viện của trường đại học Michigan [7]. Bài toán được giải
quyết bằng cách tìm kiếm sự kết hợp tốt nhất cho các lời giải khả thi. Một tập các
lịch trực sau đó được kết hợp lại với nhau cho đến khi tìm được lời giải tốt nhất cho
nhân viên cuối cùng. Trong bước thứ hai, nguyên lý này tính toán lịch trực tốt nhất
dựa trên mức độ yêu thích của y tá. Trong cả hai bước, nguyên lý quy hoạch đa chọn
lọc sử dụng phương pháp quy hoạch tuyến tính để đạt được lời giải ban đầu, sau đó
mới tiến hành tìm kiếm lời giải nguyên tốt nhaát.

Trang 7


Các nghiên cứu liên quan

Y tá 1: Các lịch trực khả thi
BẢNG PHÂN CÔNG

M T W T F

S

S


M T W T F

S

Y taù 1

L L

E E E

-

-

L L

L E

-

Y taù 2

-

L L L E

-

- L


L

Y taù 3

N N

N -

-

L L

L E E

Y taù 4

E E

E E E -

-

E E

E E E

-

-


Y taù 5

E E

-

L L

L

E

-

-

L L

N

N

Y taù 6

E E

E -

-


L

L E

-

-

-

-

-

-

L

-

S

Lịch trực tốt nhất
cho Y tá 1

L

L E E E
E E


Lịch trực tốt nhất
cho Y tá 2

M T W T F

S

S M T W T F

S

S

L L

E E E

-

-

-

L

L E

-


-

L

L E

L E

-

-

N N N

L L

E E E

-

-

L

L L E

-

L L L E


-

-

L L L E

E E

E

L

L

E -

L

L

-

E E

-

-

Y taù 25


E

-

L L
-

L E

-

N N N

-

-

L L L E
L L

L E

-

-

E E

-


L

L E

-

E -

-

L

L N N

- -

L

L

-

L E E
-

-

L
L


Y taù 2: Caùc lịch trực khả thi

L L L

M T W T F

S

S M T W T F

S

S

E E

E E E

-

-

-

L

E E

E -


L

-

L L L E

-

E E

Y tá 24

-

L L

Lịch trực tốt nhất
cho Y taù 25

-

L L

L E

-

L L E

-


-

L L L

-

L

L E E E

- L

-

-

L L

L

E N N

N -

-

L E

-


-

L L

L

E E

-

- L

L L

E -

-

L L N

N

-

L

L L E E

-


L

Y taù 25: Các lịch trực khả thi
M T W T F

S M T W T F

S

L L

E E

- -

L

L L L E

-

-

L

-

L L


L E

-

-

L L L E

E

E

-

E E

-

L L

L E

-

-

-

L L


L E

-

L

L L E

E E

-

-

L L

L N N N

-

E

-

N

N N

-


L E

-

-

S

-

L L

L L
-

S

L -

-

L E
E E

Hình 2-1: Ví dụ một bảng phân công trực cho 25 y tá

Tuy nhiên, Warner giả sử rằng chỉ có từ 10 đến 20 lịch trực cho mỗi y tá trong một
bảng phân công hai tuần, nhưng trên thực tế con số này lớn hơn gấp nhiều lần. Vì
vậy phương pháp của Warner chỉ có thể áp dụng cho những bài toán xếp lịch trực y
tá với mô hình nhỏ và đơn giản.




Qui hoạch mục tiêu (Goal Programming)

Quy hoạch mục tiêu là một trường hợp đặc biệt của quy hoạch nguyên. Trong mô
hình quy hoạch mục tiêu cho phép tồn tại nhiều mục tiêu cùng lúc, những mục tiêu
có thể là cực đại, cực tiểu, hoặc đồng thời hoặc theo một thứ tự đặc biệt. Do đó, quy
hoạch mục tiêu hay còn gọi là quy hoạch đa mục tiêu. Điểm đặc biệt của phương
pháp quy hoạch đa mục tiêu là mức độ quan trọng tương đối giữa các mục tiêu có
thể thay đổi và xếp hạng theo mức độ ưa thích của người sử dụng. Tuy nhiên, sự linh
hoạt này được trả giá bằng chi phí tính toán của hàm mục tiêu trở nên rất phức tạp.

Trang 8


Các nghiên cứu liên quan
Vào những năm 1980, hầu hết các nghiên cứu trước đó cho bài toán xếp lịch trực y
tá không được linh động. Các mô hình của bài toán có một tập các mục tiêu cố định
được mô tả bởi từng tác giả.
Năm 1988, Ozharahan và Bailey đã phát triển phương pháp qui hoạch mục tiêu cho
bài toán xếp lịch trực y tá như là một phần của hệ hỗ trợ quyết định linh hoạt [13].
Nghiên cứu này khá khác với các nghiên cứu trước đây khi phân công thời gian của
ca trực là từ 8 đến 10 giờ. Mặc dù cũng có một số thành công nhất định nhưng
nghiên cứu này chỉ dừng lại cho những bảng phân công trong một tuần.
Tóm lại, phương pháp lập trình toán học chỉ sử dụng để giải quyết các mô hình
bài toán phân công nhỏ và đơn giản. Mặc dù các nhà nghiên cứu đã có nhiều nỗ lực
trong việc mở rộng mô hình của họ thông qua việc nới lỏng các ràng buộc nhưng các
phương pháp trong lập trình toán học vẫn còn nhiều hạn chế trong việc giải quyết
cho bài toán xếp lịch trực y tá thực tế.


2.1.2 Lập trình ràng buộc (Constraint Programming)
Ràng buộc là một đặc tính phổ quát của sự vật, hiện tượng, nó xuất hiện trong mọi
khía cạnh của cuộc sống. Vấn đề đặt ra là làm thế nào để có thể nhận dạng và mô
hình hoá được nó? Từ những năm đầu thập kỷ 70, cùng với sự phát triển của lónh vực
trí tuệ nhân tạo bài toán ràng buộc đã được quan tâm nghiên cứu phát triển dẫn đến sự
khai sinh ra một mô hình lập trình mới. Đó là lập trình ràng buộc.
Nhận thấy được những ưu điểm của phương pháp lập trình ràng buộc, nhiều nhà
nghiên cứu đã bắt tay vào áp dụng phương pháp này cho bài toán xếp lịch trực y tá.
Nổi bật như là Abdennadhdr và Schlenker (xây dựng cho bệnh viện ở Munich, 1999)
[26], Andy Hon Wai Chun (xây dựng cho bệnh viện Authority ở Hồng Kông - 2000) [1],
E. Burke (1998), …

Trang 9


Các nghiên cứu liên quan



Dùng lập trình logic có ràng buộc

Hệ thống INTERDIP của Abdennadhdr và Schlenker (1999)
Ứng dụng này được xây dựng để phục vụ cho việc xếp lịch trực y tá ở bệnh viện
Munich nước Đức (1999) [26]. Hệ thống này được phát triển dùng IF/Prolog [Sie96b].
Bài toán được biểu diễn theo phương cách mô tả sử dụng những luật vị từ (predicate)
để mô tả quan hệ.
Do không gian tìm kiếm quá lớn, những giải thuật tìm kiếm bình thường không thể nào
đủ thông minh để lựa chọn những giá trị đúng cho mỗi biến mà chỉ máy móc thử sai
hết giá trị này đến giá trị khác. Trong hệ thống của mình, S.Abdennadher sử dụng một

số lời giải mẫu được giả định là tốt gọi là khuôn mẫu (pattern). Có rất nhiều khuôn
mẫu, tuỳ vào ý thích của y tá hoặc quy định của bệnh viện. Mỗi pha sẽ có tập các
khuôn mẫu khác nhau. Mỗi khuôn mẫu trong mỗi pha đều có độ ưu tiên, những khuôn
mẫu nào tạo nên lời giải tốt sẽ có độ ưu tiên cao.
Ngoài ra, nhằm làm giảm không gian tìm kiếm, việc xếp lịch được chia nhỏ và thực
hiện trong ba pha. Mỗi pha chỉ phân bố một loại ca trực. INTERDIP sử dụng kỹ thuật
nhánh và cận thay cho kỹ thuật backtracking cổ điển. Nhánh và cận bắt đầu từ một lời
giải và đòi hỏi lời giải kế tiếp phải tốt hơn lời giải hiện tại. Chất lượng của giải pháp
được đo bằng một hàm chi phí thích hợp: hàm này phụ thuộc vào tập ràng buộc mềm
bị vi phạm. Với cách này, những ràng buộc mềm chỉ là một phần của hàm chi phí
nhưng không ảnh hưởng gì đến việc lựa chọn biến và giá trị của chúng. Trong
INTERDIP, giải thuật nhánh và cận được thực hiện ba lần ở ba pha để tối ưu lịch trực
vừa được tạo.



Dùng cách tiếp cận giải hệ ràng buộc riêng phần

Việc thoả mãn hết tất cả ràng buộc trong các bài toán tối ưu tổ hợp thuộc loại khó như
xếp lịch trực y tá là điều khó có thể xảy ra. Vì thế cách tiếp cận giải hệ ràng buộc
riêng phần (partial constraint satisfaction problem) được giới thiệu để giải quyết khoù
Trang 10


Các nghiên cứu liên quan
khăn đó. Trong bài toán thoả mãn ràng buộc riêng phần, các ràng buộc được chia ra
làm hai loại: ràng buộc cứng (hard constraint) bắt buộc phải thoả mãn và ràng buộc
mềm (soft constraint). Mục tiêu của bài toán này là thoả mãn tất cả ràng buộc cứng và
tối thiểu số ràng buộc mềm vi phạm (xem phụ lục A).
Dưới đây là hai hệ thống xếp lịch y tá dùng cách tiếp cận giải hệ ràng buộc riêng

phần.
Hệ thống ràng buộc phân cấp của Hofe
Hofe [12] mô hình bài toán xếp lịch trực y tá như một hệ ràng buộc riêng phần. Trong
đó các ràng buộc được chia thành nhiều nhóm, mỗi nhóm có một độ ưu tiên nhất định
từ 0 đến n, với 0 đại diện cho ràng buộc cứng . Bên cạnh đó, mỗi ràng buộc được gán
một trọng số biểu diễn độ quan trọng. Độ quan trọng của những ràng buộc trong cùng
một mức ưu tiên được xác định bằng tổng các trọng số này.
Khi so sánh một tập ràng buộc mềm C’ với tập C”, luật sau được áp dụng:
C’ > C” nếu và chỉ nếu C’ > 1C”
Với C’ > i C” nếu và chỉ nếu:
-

Tổng trọng số các ràng buộc ở mức ưu tiên i của tập C’ lớn hơn của C”

-

Hoặc là tổng trọng số các ràng buộc ở mức ưu tiên i bằng nhau, nhưng tổng của
C’ ở mức i+1 lớn hơn tổng của C”

Hệ thống kết hợp ba giải thuật: nhánh và cận, kiểm tra hướng tới và backmarking để
giải quyết bài toán xếp lịch trực y tá. Trong đó, nhánh và cận được dùng để tối ưu lịch
trực, kiểm tra hướng tới và backmarking được dùng để thu hẹp miền trị của các biến.
Ngoài ra, để làm tăng tính hữu hiệu cho giải thuật, hệ thống của Hofe còn dùng thêm
các kỹ thuật khác như: tri thức miền sử dụng mang tính heuristic và kỹ thuật sắp thứ tự
biến.
-

Tri thức miền sử dụng mang tính heuristic

Trang 11



Các nghiên cứu liên quan
Heuristic ở đây được biểu diễn dưới dạng là những ràng buộc mềm có độ ưu tiên nhỏ,
không ảnh hưởng đến những ràng buộc khác.
Ví dụ: Mô hình chuỗi thời gian làm việc diễn tả các ca trực ưa thích của y tá. Các mô
hình này thoả tất cả ràng buộc cứng của bài toán. Trước khi xếp lịch các mô hình này
sẽ được gán cho y tá và nó có thể trở thành một phần của lời giải.
-

Kỹ thuật sắp thứ tự biến

Việc chọn lựa biến kế tiếp để xem xét mở rộng lời giải được thực hiện sử dụng kỹ
thuật giá trị còn lại ít nhất (minimum remaining values), đây là một dạng của first-fail
heuristic, trong đó, ưu tiên các biến khó có khả năng thoả mãn sẽ được xếp trước.
Hệ thống xếp lịch trực y tá của Võ Tấn Khoa (luận văn thạc só, 2003)
Bài toán cũng được mô hình như một hệ ràng buộc riêng phần. Hệ thống kết hợp hai
kỹ thuật: nhánh và cận, kiểm tra hướng tới [31]. Trong đó, nhánh và cận được dùng để
tối ưu lịch trực, kiểm tra hướng tới được dùng để thu hẹp miền trị của các biến.
Tương tự như INTERDIP, hệ thống cũng áp dụng chiến thuật chia bài toán làm
nhiều pha để thu hẹp không gian tìm kiếm. Mỗi pha chỉ phân bố một loại ca trực :
-

Pha 1: phân bố những ngày nghỉ

-

Pha 2: phân bố những ca trực đêm

-


Pha 3: phân bố vào lịch trực hai ca còn lại: ca sáng và ca chiều

Ở mỗi pha, hệ thống sẽ sử dụng một số mô hình trực thích hợp để tạo một lịch biểu
ban đầu.



Dùng phương pháp tìm kiếm Tabu

Hệ thống xếp lịch trực y tá của E.Burke (1998)
E.Burke phát triển hệ thống xếp lịch y tá cho một bệnh viện tại Bỉ dùng giải thuật
Tabu kết hợp [10]. Ý tưởng cơ bản của giải thuật Tabu là cố gắng có được một lời giải
ban đầu khả thi. Lời giải này được tạo ra bằng cách dùng giải thuật tham lam (Greedy
Trang 12


Các nghiên cứu liên quan
Algorithm). Đầu tiên các ca đêm sẽ được gán trước, sau đó lần lượt tới các ca sáng và
chiều, vì thế có khuynh hướng các ca sẽ được gán một cách đồng đều. Sau đó, giải
thuật sẽ tối ưu lời giải ban đầu bằng cách thực hiện các bước chuyển Tabu.
Hệ thống xếp lịch trực y tá của Bùi Văn Quang (luận văn thạc só, 2004)
Cùng giống hướng giải quyết của hệ thống E.Bruke, hệ thống xếp lịch trực y tá của
Bùi Văn Quang phối hợp lập trình ràng buộc với kỹ thuật tìm kiếm Tabu, đồng thời
sử dụng một số heuristic nhằm tăng tính hữu hiệu của giải thuật. Công việc xếp lịch
trực y tá sẽ được chia làm hai giai đoạn [6]:
-

Giai đoạn 1: Dùng lập trình ràng buộc để tạo ra một lịch trực khả thi, cụ thể là
kỹ thuật backtracking có kiểm tra hướng tới (forward checking). Mục đích của

giai đoạn này nhằm đạt được một lịch biểu ban đầu, thỏa mãn tất cả các ràng
buộc cứng. Nếu như có một ràng buộc cứng không được thỏa thì hệ thống sẽ
trả ngay về kết quả là không tìm thấy lời giải. Sau giai đoạn này tất cả các y tá
đều đã được gán các ca trực cho tất cả các ngày đang xếp lịch.

-

Giai đoạn 2: Dùng giải thuật tìm kiếm Tabu thích nghi (Reactive Tabu Search)
để cải thiện chất lượng của lịch trực khả thi nhằm đạt đến kết quả xấp xỉ tối
ưu. Mục đích của giai đoạn này là nhằm cải thiện chất lượng của lịch trực được
sinh ra từ giai đoạn 1, cố gắng thỏa mãn càng nhiều ràng buộc mềm càng tốt.

Trong phần nghiên cứu của mình, tác giả Bùi Văn Quang cũng tiến hành so sánh hệ
thống này với hệ thống xếp lịch trực y tá dùng cách tiếp cận giải hệ ràng buộc riêng
phần của Võ Tấn Khoa. Mặc dù tác giả Bùi Văn Quang chưa đề cập đến chất lượng
lời giải của hai hệ thống nhưng nhìn chung hệ thống lập trình ràng buộc kết hợp tìm
kiếm Tabu nổi trội hơn về thời gian tìm lời giải. Trung bình hệ thống tiếp cận giải hệ
ràng buộc riêng phần phải mất gấp 8 lần so với hệ thống lập trình ràng buộc kết hợp
tìm kiếm Tabu.

Trang 13


Các nghiên cứu liên quan



Dùng kỹ thuật Mô phỏng luyện kim

Kỹ thuật Mô phỏng luyện kim (Simulated Annealing) đã được triển khai trong rất

nhiều bài toán xếp lịch như: xếp thời khoá biểu, xếp lịch ở cổng sân bay, xếp lịch
cho nhân viên bán hàng,… Năm 1995, trong luận văn thạc só, Thornton đã nghiên cứu
ứng dụng kỹ thuật này vào giải quyết bài toán xếp lịch trực y tá cho bệnh viện Cộng
Đồng ở Úc [14].
Ban đầu kỹ thuật Mô phỏng luyện kim được tạo ra trong quá trình phát triển hệ
thống giải nhiệt nguyên tử. Theo quan niệm của kỹ thuật Mô phỏng luyện kim, mỗi
lời giải sẽ có một năng lượng E đóng vai trò là giá trị chi phí của lời giải. ∆E là hiệu
số năng lượng của lời giải mới và lời giải hiện tại. Nếu ∆E ≤ 0 , tức là chi phí của lời
giải mới nhỏ hơn lời giải hiện tại, thì giải thuật sẽ chấp nhận di chuyển đến lời giải
mới. Ngược lại, giải thuật vẫn có thể chấp nhận một lời giải mới tệ hơn với xác xuất:
P( ∆E ) =

e − ∆E / T

Trong đó:
T là tham số nhiệt độ và giảm dần trong suốt quá trình tìm kiếm.

∆E: sự thay đổi chi phí khi có lời giải mới.
Thông thường sự thay đổi tham số T diễn ra theo một hàm số trong suốt quá trình
thực hiện giải thuật, ví dụ như lịch trình làm lạnh sau có hàm nhiệt độ:
Tn = Tn-1* R
Trong đó: R là tốc độ làm lạnh (0 ≤ R < 1).
Lấy ý tưởng từ phương pháp phân phối xác suất của Bolzman. Kỹ thuật Mô phỏng
luyện kim chọn một số ngẫu nhiên trong khoảng (0,1). So sánh với xác xuất P( ∆E ),
nêáu số này nhỏ hơn P( ∆E ) thì lời giải mới được chọn. Ngược lại, lời giải hiện tại sẽ
được giữ. Mặc dù vậy, giải thuật vẫn tiếp tục thực hiện lần lặp tiếp theo với hy vọng là
sẽ tìm được một lời giải khác tốt hơn.

Trang 14



Các nghiên cứu liên quan
Giá trị của xác xuất P( ∆E ) phụ thuộc rất lớn vào tham số T. T càng cao khả năng cho
phép những thay thế tệ hơn càng lớn. Khảo sát vấn đề này [25], các nhà nghiên cứu
nhận thấy rằng, khi tham số T lớn nhìn chung giải thuật không tốt nhưng bù lại giải
thuật cho phép di chuyển tự do hơn trong không gian tìm kiếm. Khi T nhỏ, giải thuật
thường giới hạn việc di chuyển trong một vùng nào đó, nhưng lại rất hiệu quả trong
việc cải thiện chất lượng của lời giải trong vùng đó. Tham số T là “nghệ thuật tối”
trong kỹ thuật Mô phỏng luyện kim. Nếu tìm được giá trị ban đầu và độ giảm dần cho
T thích hợp thì giải thuật sẽ được cải thiện đáng kể.
Trong phần hiện thực giải thuật, Thornton chọn hàm tính tham số T như sau:
Tn=Tn-1*(Cooling_rate)
Trong đó:
Tn: giá trị tham số tại lần lặp n
Tn-1: giá trị tham số tại lần lặp n-1
Cooling_rate: Tốc độ làm lạnh
Với giá trị các tham số như sau:
Số lần lặp tối đa: 1,000,000
Giá trị T ban đầu: 5
Tốc độ làm lạnh: 0.6
Khi dùng giải thuật Mô phỏng luyện kim giải quyết cho bài toán xếp lịch trực y tá,
Thornton nhận thấy giải thuật tìm thấy được những lời giải tối ưu. Tuy nhiên, chiều
dài vô hạn của lịch trình làm lạnh là không phù hợp với thực tế vì vậy một lời giải
chắc chắn không luôn được đảm bảo. Hơn nữa, trong những trường hợp phức tạp để
có được một lời giải tốt thì thời gian thực hiện rất lâu vì tốc độ làm lạnh chậm.

2.1.3 Nhận xét các phương pháp xếp lịch trực y tá
Nhược điểm của phương pháp lập trình toán học là chỉ giải quyết đựơc các bài toán
nhỏ và đơn giản. Tuy nhiên, trong thực tế bài toán xếp lịch trực y tá thường có nhiều
Trang 15



Các nghiên cứu liên quan
ràng buộc phức tạp và không phải ràng buộc nào cũng tồn tại mối quan hệ tuyến tính
làm cho phương pháp toán học gặp nhiều khó khăn trong việc mô hình hoá bài toán.
Trong khi đó, lập trình ràng buộc lại có nhiều ưu thế trong việc mô hình hoá các vấn
đề về thế giới thực. Ứng dụng xếp lịch trực y tá được xây dựng bằng cách tiếp cận
dùng lập trình ràng buộc đã có những thành công đáng kể. Lịch trực được tạo ra bởi
cách tiếp cận này có chất lượng khá tốt trong khoảng thời gian chấp nhận được.
Có hai huynh hướng lớn trong lập trình ràng buộc là kỹ thuật hồi quy (backtracking) và
tìm kiếm cục bộ (local search). Hiện nay, các giải thuật tìm kiếm cục bộ như: giải thuật
Tu chỉnh lặp có trọng số, giải thuật Mô phỏng luyện kim, tìm kiếm Tabu,… đang rất
được ưa chuộng trong việc giải quyết các bài toán lớn và phức tạp. Điều này được lý
giải bởi thay vì tiến hành khảo sát cả không gian tìm kiếm như ở kỹ thuật hồi quy, giải
thuật sẽ cố gắng cải tiến các giải pháp cũ của bài toán bằng cách hiệu chỉnh có lặp lại
trong một khoảng thời gian định trước để giải thuật tiến dần đến giải pháp tối ưu.
Cùng hướng nghiên cứu về giải thuật tìm kiếm cục bộ, tác giả chọn kỹ thuật Tu
chỉnh lặp có trọng số (Weighted Iterative Repair). Mặc dù kỹ thuật này đã được
nghiên cứu từ khá lâu và đã có nhiều thành công nhưng với bài toán ràng buộc quá
mức như bài toán phân công trực y tá thì giải thuật này vẫn còn nhiều mới mẻ. Dưới
đây là những nghiên cứu liên quan đến kỹ thuật Tu chỉnh lặp có trọng số.

2.2

CÁC NGHIÊN CỨU LIÊN QUAN ĐẾN KỸ THUẬT TU
CHỈNH LẶP

Các giải thuật tìm kiếm có thể chia làm hai nhóm chính: giải thuật hồi quy và tìm kiếm
cục bộ (phụ lục C). Kỹ thuật Tu chỉnh lặp có trọng số là giải thuật cải tiến từ nhóm tìm
kiếm cục bộ.

Các giải thuật tìm kiếm cục bộ được khởi tạo một lời giải ban đầu. Lời giải này có thể
được tạo ra bằng nhiều cách: sử dụng một giải thuật khác hay gán ngẫu nhiên hay
dùng một số heuristic. Từ đó, giải thuật sẽ tìm đến một lời giải lân cận tốt hơn. Quá
trình tu chỉnh này được lặp lại cho đến khi đạt được số lần lặp xác định trước. Trong

Trang 16


×