Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 83 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
83
Dung lượng
599,04 KB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA - LUẬN VĂN THẠC SĨ Đề tài NGHIÊN CỨU CÁCH TIẾP CẬN GIẢI HỆ RÀNG BUỘC RIÊNG PHẦN VÀ ỨNG DỤNG XÂY DỰNG CHƯƠNG TRÌNH XẾP LỊCH Y TAÙ (A Partial Constraint Satisfaction Problem Approach to Nurse Timetabling) Chuyên ngành: Công Nghệ Thông Tin Mã số ngành: 01.02.10 Giảng viên hướng dẫn : TS Dương Tuấn Anh Học viên thực : Võ Tấn Khoa TP HỒ CHÍ MINH - THÁNG 09/2003 Đạ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ự - Hạnh phúc - NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Võ Tấn Khoa Phái: Nam Ngày tháng năm sinh: 23 - 08 - 1976 Nơi sinh: Ninh Thuận Chuyên ngành: Công Nghệ Thông Tin Mã số: 01.02.10 I TÊN ĐỀ TÀI: Nghiên cứu cách tiếp cận giải hệ ràng buộc riêng phần ứng dụng xây dựng chương trình xếp lịch y tá II NHIỆM VỤ VÀ NỘI DUNG: III NGÀY GIAO NHIỆM VỤ (Ngày bảo vệ đề cương) : IV NGÀY HOÀN THÀNH NHIỆM VỤ (Ngày bảo vệ luận án tốt nghiệp): V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Tiến só Dương Tuấn Anh VI HỌ VÀ TÊN CÁN BỘ CHẤM NHẬN XÉT 1: VII HỌ VÀ TÊN CÁN BỘ CHẤM NHẬN XÉT 2: CÁN BỘ HƯỚNG DẪN CÁN BỘ NHẬN XÉT CÁN BỘ NHẬN XÉT Nội dung đề cương luận văn thạc só Hội Đồng Chuyên Ngành thông qua Ngày TRƯỞNG PHÒNG ĐÀO TẠO SAU ĐẠI HỌC tháng năm CHỦ NHIỆM NGÀNH TÓM TẮT Những phương pháp giải hệ ràng buộc tiếp cận từ lâu để giải toán thực tế Tuy nhiên, toán tìm lời giải thoả tất ràng buộc phức tạp thời gian cho phép không nhiều Đó lý mà phương pháp giải hệ ràng buộc riêng phần đời: lời giải thỏa tất ràng buộc toán Luận án dựa vào lý thuyết giải hệ ràng buộc riêng phần cho ràng buộc hai biến Freuder phát triển thành hệ giải ràng buộc kết hợp toàn phần riêng phần cho ràng buộc đa biến Đồng thời, thư viện giải hệ ràng buộc kết hợp viết C++ phát triển, cho phép người sử dụng dùng để giải số toán ràng buộc có tính chất tương tự Thư viện phát triển dựa mã nguồn mở giải hệ ràng buộc hai biến CSP Library Tudor Hulubei Lý thuyết thư viện phát triển luận án áp dụng để xây dựng chương trình xếp lịch y tá Số liệu thực tế tri thức ngành tìm hiểu khoa lớn bệnh viện Nhân Dân Gia Định, Tp Hồ Chí Minh Thực tế xây dựng chương trình cho thấy lý thuyết thư viện giải hệ ràng buộc kết hợp đắn chạy ổn định Một hệ giải ràng buộc giải vấn đề Tuy nhiên với toán phức tạp xếp lịch y tá, chương trình phải dùng nhiều kỹ thuật để tăng tốc độ chương trình, đặc biệt chiến thuật thứ tự biến, thứ tự ràng buộc, chia nhỏ toán làm nhiều pha Những kỹ thuật có ích để giải toán ràng buộc khác Với đóng góp trên, luận án có ý nghóa thực tiễn cao Trước hết, chương trình xếp lịch y tá ứng dụng khoa Săn sóc đặc biệt – bệnh viện Nhân Dân Gia Định Tp Hồ Chí Minh khoa lớn khác dùng mô hình lịch trực tương tự Bên cạnh đó, kỹ thuật tăng tốc dùng chương trình xếp lịch y tá có ích cho hệ giải ràng buộc Về hướng nghiên cứu, thư viện giải hệ ràng buộc dùng phát triển thêm để giải toán ràng buộc kết hợp đa biến khác Trang i ABSTRACT A constraint satisfaction problem involves in finding values for variables on which combinations of values satisfy all the constraints of the problem There have been a lot of applications solved using Constraint Satisfaction Problem techniques However, in some cases it may be impossible or impractical to solve a problem completely due to the complexity of the problem or the allowed time These problems have to be approached using another technique: partial constraint satisfaction problem This thesis develops a theory of solving “combined” constraint satisfaction problems for n-ary constraints “Combined” means complete and partial, some of the constraints are to be satisfied, but some are not This is based on the Freuder’s theory of partial constraint satisfaction problem for binary constraints A C++ library for solving combined constraint satisfaction problems for n-ary constraints is also developed, extended from the open-source library for solving binary constraint satisfaction problem from Tudor Hulubei The theory and the library are then applied to develop a nurse scheduling software The real data and information about the field is collected at the Intensive Care Unit, Nhan Dan Gia Dinh hospital, Ho Chi Minh City Experiments with the software showed that the algorithms in the theory are correct and the library runs quite stable Of course, the theory and the library can find out a solution, but for so complex problems likes nurse scheduling, some techniques must be used to speed up the program Those strategies like multi-phase, variable ordering heuristic, constraint ordering heuristic have effectively improved the speed of the search program With these contributions, the thesis is highly practical First, the nurse scheduling software can be applied immediately at the Intensive Care Unit of the Nhan Dan Gia Dinh hospital, and other wards using the same shift model Besides, some speed-up techniques used in the software are useful and applicable to other applications The C++ library for solving combined constraint satisfaction with n-ary constraints can be used or extended to solve other similar problems in the real word Trang ii LỜI CẢM ƠN Xin gởi lời cám ơn chân thành đến: -Thầy Dương Tuấn Anh tận tình hướng dẫn nghiên cứu thực luận án Nếu thầy theo dõi động viên, không hoàn thành kịp luận án -Những thầy cô giảng dạy suốt khóa cao học, Phòng Quản Lý Sau đại học giúp đỡ hoàn tất thủ tục thời gian theo học -Chị Nguyễn Thị Thanh Bình, điều dưỡng trưởng khoa Săn sóc đặc biệt bệnh viện Nhân dân Gia định Tp Hồ Chí Minh nhiệt tình giúp tìm hiểu thực tế bệnh viện hệ thống ca trực y tá -Những người bạn thân thiết, gia đình động viên khuyến khích học tập phấn đấu Và trường đại học Bách Khoa Tp Hồ Chí Minh, nhớ rời xa Trang iii MỤC LỤC TÓM TẮT I ABSTRACT II LỜI CẢM ÔN III DANH MỤC CÁC HÌNH VẼ VÀ GIẢI THUẬT VI DANH MỤC CÁC BẢNG VI GIỚI THIỆU ĐỀ TÀI .1 CÁC CÔNG TRÌNH LIEÂN QUAN .4 2.1 BÀI TOÁN RÀNG BUỘC CSP (CONSTRAINT SATISFACTION PROBLEM) 2.1.1 Định nghóa .4 2.1.2 Giải thuật backtracking .4 2.1.3 Kiểm tra hướng tới (forward checking) 2.1.4 Backmarking 2.2 BÀI TOÁN RÀNG BUỘC RIÊNG PHẦN PCSP (PARTIAL CONSTRAINT SATISFACTION PROBLEM) 2.2.1 Định nghóa .6 2.2.2 Nhánh cận (Branch&bound) 2.3 NHỮNG KỸ THUẬT TỐI ƯU HÓA 2.3.1 Quy hoạch tuyến tính quy hoạch nguyên 2.3.2 Tìm kiếm cục 2.3.3 Laäp trình ràng buộc lập trình logic có ràng buộc 2.3.4 Ràng buộc mềm .9 2.4 NHỮNG HỆ THỐNG XẾP LỊCH Y TÁ ĐÃ XÂY DỰNG 2.4.1 Hệ thống ràng buộc phân cấp Hofe .10 2.4.2 Hệ giải thuật tìm kiếm Tabu kết hợp E Burke .11 2.4.3 Kỹ thuật lập trình logic ràng buộc S Abdendnadher 12 2.5 NHẬN XÉT KỸ THUẬT GIẢI HỆ RÀNG BUỘC CỦA NHỮNG CHƯƠNG TRÌNH XẾP LỊCH Y TÁ ĐÃ XÂY DỰNG 15 CƠ SỞ LÝ THUYẾT .17 3.1 GIẢI HỆ RÀNG BUỘC 17 3.1.1 Định nghóa 17 3.1.2 Backtracking cổ điển cho hệ ràng buoäc 18 3.1.3 Backtracking có kiểm tra hướng tới cho hệ ràng buộc .19 3.2 GIẢI HỆ RÀNG BUỘC RIÊNG PHẦN 20 3.2.1 Định nghóa 20 3.2.2 Giải thuật nhánh-và-cận .21 3.3 KEÁT HP GIẢI HỆ TOÀN PHẦN VÀ RIÊNG PHẦN VỚI RÀNG BUỘC ĐA BIẾN 24 3.3.1 Định nghóa 24 3.3.2 Nhánh-và-cận cho ràng buộc ña bieán 24 3.3.3 Những giải thuật kiểm tra ràng buộc 26 Trang iv 3.4 CHIEÁN LƯC TÌM KIẾM 27 3.4.1 Sắp xếp thứ tự bieán 27 3.4.2 Sắp xếp thứ tự giá trị 29 3.4.3 Biểu diễn thứ tự ưu tiên ràng buộc .29 3.5 BÀI TOÁN XẾP LỊCH Y TÁ 30 3.5.1 Phát biểu toán .30 3.5.2 Mô hình toán xếp lịch y tá hệ ràng buộc kết hợp 31 3.5.3 Chọn lựa phương pháp giải thuật 32 3.5.4 Những chiến thuật làm tăng tốc độ chương trình .33 HIỆN THỰC CHƯƠNG TRÌNH 36 4.1 CHƯƠNG TRÌNH XẾP LỊCH Y TAÙ 36 4.1.1 Giao diện sở liệu 37 4.1.2 Khoái xếp lịch trực PCSP .39 4.2 THIẾT KẾ TỔNG QUÁT THƯ VIỆN GIẢI HỆ RÀNG BUỘC KẾT HP 39 4.2.1 Những đối tượng thành phần toán 40 4.2.2 Những đối tượng thực thi giải thuật tìm kiếm .40 4.3 THIẾT KẾ MỨC CAO KHỐI XẾP LỊCH Y TÁ 41 4.4 THIẾT KẾ CHI TIẾT KHỐI XẾP LỊCH Y TÁ 42 4.4.1 Biểu diễn giá trị 42 4.4.2 Biểu diễn miền giá trị 43 4.4.3 Biểu diễn biến 43 4.4.4 Biểu diễn ràng buộc 44 4.4.5 Kiểm tra ràng buộc đối tượng Variable 48 4.4.6 Đối tượng lan truyền ràng buộc Filter::BTFC 48 4.4.7 Đối tượng Decomposition::BB 51 4.4.8 Đối tượng biểu diễn toán Problem 56 4.4.9 Những đối tượng bổ sung cho toán xếp lịch 58 4.4.10 Giao tiếp với bên 58 4.4.11 Thực xếp lịch 59 4.5 KEÁT QUẢ THỰC NGHIỆM 61 KẾT LUẬN 64 5.1 5.2 TỔNG KẾT 64 MỞ RỘNG ĐỀ TÀI 65 BẢNG THUẬT NGỮ VIỆT-ANH ĐỐI CHIẾU .66 THƯ MỤC THAM KHAÛO 67 PHỤ LỤC A SỬ DỤNG CHƯƠNG TRÌNH XẾP LỊCH Y TÁ A-1 A.1 YÊU CẦU HỆ THỐNG A-1 A.2 CÀI ĐẶT A-1 A.3 SỬ DỤNG CHƯƠNG TRÌNH A-1 A.3.1 Thieát lập mô hình làm việc A-2 A.3.2 Quản lí y tá A-3 A.3.3 Thiết lập ràng buộc A-4 A.3.4 Thiết lập lịch trực A-5 Trang v DANH MỤC CÁC HÌNH VÀ GIẢI THUẬT Hình 3-1 Bài toán tô màu đồ CSP tương đương 18 Hình 3-2 Giải thuật backtracking cổ điển cho hệ ràng buộc 19 Hình 3-3 Giải thuật backtracking có kiểm tra hướng tới 20 Hình 3-4 Bài toán ràng buộc riêng phần PCSP - Người máy chọn quần áo 21 Hình 3-5 Giải thuật nhánh-và-cận cho ràng buộc nhị biến 22 Hình 3-6 Minh họa nhánh-và-cận với toán người máy chọn quần áo 23 Hình 3-7 Nhánh-và-cận cho hệ ràng buộc đa biến 25 Hình 3-8 Những giải thuật kiểm tra ràng buộc 27 Hình 3-9 Sắp xếp thứ tự chiều ngang 28 Hình 3-10 Sắp xếp thứ tự chiều dọc 28 Hình 3-11 Sắp thứ tự biến có liên quan ràng buộc yêu cầu 35 Hình 4-1 Thiết kế chương trình xếp lịch y tá 36 Hình 4-2 Cở sở liệu chương trình xếp lịch y tá 38 Hình 4-3 Thiết kế tổng quát thư viện giải hệ ràng buộc kết hợp 40 Hình 4-4 Thiết kế mức cao hệ giải ràng buộc cho toán xếp lịch y tá 42 Hình A-1 Màn hình quản lí mô hình làm việc A-2 Hình A-2 Màn hình quản lí y tá A-3 Hình A-3 Màn hình tạo yêu cầu cho y taù A-4 Hình A-4 Màn hình thiết lập ràng buộc A-4 Hình A-5 Màn hình thiết lập lịch trực A-5 Hình A-6 Màn hình kết xếp lịch A-6 DANH MUÏC CÁC BẢNG Bảng 4-1 Kết thực nghiệm máy Pentium III 62 Bảng 4-2 Kết thực nghiệm máy Pentium IV 63 Trang vi Giới thiệu GIỚI THIỆU ĐỀ TÀI Bài toán giải hệ ràng buộc toàn phần (constraint satisfaction problem) tìm giá trị cho tất biến toán cho thỏa mãn tất nhữnng ràng buộc Trong thực tế có vấn đề mà lời giải thỏa mãn tất ràng buộc tìm Khi toán tiếp cận phương pháp giải hệ ràng buộc riêng phần (Partial Constraint Satisfaction), nghóa lời giải không cần phải thỏa mãn tất ràng buộc Phương pháp áp dụng tình sau : • Bài toán thuộc dạng ràng buộc mức (over-constrained) có giải pháp toàn vẹn • Bài toán khó để giải cách hoàn hảo giải pháp “đủ tốt” chấp nhận • Yêu cầu tìm giải pháp tốt tìm thấy giới hạn tài nguyên • Thời gian thực đòi hỏi “giải thuật tức thời”có thể cung cấp vài giải pháp riêng phần lập tức, sau cải tiến thời gian cho phép Công việc xếp lịch cho y tá thường làm cách độc lập khoa bệnh viện Nó thường làm tháng tay Đó thực công việc vất vả, chưa kể thay đổi chừng ví dụ y tá phải nghỉ gấp ngày lí cá nhân Hiện chưa có bệnh viện Việt nam dùng hệ thống xếp lịch tự động, giới xuất quốc gia phát triển Mỹ, Pháp, Đức v.v Thường quốc gia dùng hệ thống khác nhóm nghiên cứu khác phát triển, có lẽ qui định khác nước, bệnh viện Bài toán xếp lịch cho y tá bệnh viện thuộc dạng phức tạp, xét theo ba cách nhìn sau: • Không gian tìm kiếm lớn: với mô hình trực ba ca có giá trị biểu diễn ca trực, định biến biểu diễn ca trực y tá ngày, tổng cộng có khoảng 4(số biến) = 4600 lựa chọn cho lịch trực 20 y tá thời gian 30 ngày • Quá nhiều ràng buộc phải thỏa mãn để tuân theo luật lao động, hợp đồng, qui định đặc thù khoa, ví dụ phải có tối thiểu ba người trực ca đêm v.v Trang Hiện thực chương trình void saveError(); public: bool schedule();//return scheduling result };//end class NurseScheduler Biến thành viên m_phase lưu giữ pha hành Biến m_configs dùng để giao tiếp với bên dùng đối tượng SchedulerInterface Biến m_phaseResults véc tơ lưu giữ kết tìm pha Tùy thuộc pha mà kết có ý nghóa khác nhau, nhiên chúng véc tơ số nguyên Ý nghóa kết pha sau: • Pha 1: kết véc tơ id biến có giá trị ‘0’, xếp nghỉ trực • Pha 2: kết véc tơ id biến có giá trị ‘3’, xếp trực ca đêm • Pha 3: kết giá trị tất biến, vốn ca trực y tá ngày suốt lịch trực Hàm thành viên init() thực việc khởi tạo xếp lịch, ví dụ việc đọc tập tin cấu hình Hàm thực việc xếp lịch nhiều pha runPhasedPlanning() Sau mô tả giải thuật hàm này: bool NurseScheduler::runPhasedPlanning() begin m_phase := m_phase +1 khởi tạo toán xếp lịch y tá khởi tạo đối tượng Jumper::Chronological { backtrack cổ điển theo thứ tự thời gian } khởi tạo đối tượng Filter::BTFC { kiểm tra ràng buộc loại bỏ giá trị không tương thích dùng backward checking kết hợp kiểm tra hướng tới } khởi tạo đối tượng Decomposition::BB { nhánh-và-cận để tối ưu lời giải } thực thi hàm search() đối tượng Decomposition::BB if hàm search() thực thi thành công then lưu kết vào m_phaseResults return true else return false end if end Hàm thành viên cuối đối tượng NurseScheduler hàm schedule() Hàm đơn giản khởi tạo xếp lịch, gọi hàm runPhasedPlanning() ba lần, sau nhận kết ghi xuống tập tin kết Điểm quan trọng hàm schedule() Trang 60 Hiện thực chương trình cổng giao tiếp với bên Một tác vụ xếp lịch y tá bắt đầu việc khởi tạo đối tượng NurseScheduler gọi hàm schedule() để tìm lời giải 4.5 KẾT QUẢ THỰC NGHIỆM Kết xếp lịch thử kiểm tra dựa tập số liệu thực tế khoa Săn sóc đặc biệt bệnh viện Nhân Dân Gia Định Tp Hồ Chí Minh Chương trình xếp lịch chạy hai máy với cấu hình hệ điều hành khác Máy I với cấu hình: • Pentium III, 600 MHz • RAM: 128 MB • Bộ nhớ ảo đóa cứng: 100MB • Hệ điều hành : Windows 2000 Profressional Kết thu máy I sau: Yêu cầu nghỉ phép Yêu cầu trực trái mô hình Thời gian (phut’giây) 630 1 1 2 4 10 1 1 3 10 3’15 3’16 3’17 3’22 3’30 3’16 3’17 3’22 3’24 3’18 3’20 3’22 3’27 3’31 3’34 3’38 3’42 3’47 3’50 3’55 696 1 1 3 1 3’18 3’19 3’20 3’25 3’28 3’20 3’22 Số y tá Số ngày Số ràng buộc 20 30 24 30 Trang 61 Hiện thực chương trình 2 4 10 1 3 10 3’25 3’30 3’21 3’22 3’25 3’29 3’32 3’38 3’43 3’48 3’51 3’55 4’00 Bảng 4-1 Kết thực nghiệm máy Pentium III Máy II với cấu hình: • Pentium IV, 1.7GHz • RAM: 256 MB • Bộ nhớ ảo đóa cứng: 1GB • Hệ điều hành : Windows XP Profressional Kết thu máy II sau: Số y tá Số ngày Số ràng buộc 20 30 630 Yêu cầu nghỉ phép Yêu cầu trực trái mô hình Thời gian (phut’giây) 1 1 2 4 10 2 1 1 3 10 2’8 2’8.5 2’9 2’9.5 2’10 2’8.5 2’9 2’9.5 2’10 2’8 2’8.5 2’9 2’10 2’10.5 2’11 2’14 2’17 2’21 2’25 2’32 Trang 62 Hiện thực chương trình 24 30 630 1 1 2 4 10 2 1 1 3 10 2’11 2’12 2’12.5 2’13 2’14 2’11 2’12 2’13 2’14 2’11 2’11.5 2’12 2’12.5 2’13 2’16 2’20 2’23 2’27 2’32 2’38 Baûng 4-2 Kết thực nghiệm máy Pentium IV Kết phù hợp với mong muốn chương trình, tạo lịch trực tốt thời gian chấp nhận Để ý trường hợp kiểm tra với giả định yêu cầu y tá tự thân thỏa mãn điều kiện ràng buộc cứng Nếu vài yêu cầu y tá vi phạm ràng buộc cứng hệ thống bị bỏ qua độ ưu tiên thấp Còn yêu cầu xác định độ ưu tiên “bắt buộc” rõ ràng chương trình lời giải đầy đủ, chương trình chạy tìm kiếm lời giải đầy đủ (không tồn tại) hết thời gian xếp lịch cho pha đó, vốn thiết lập trước chạy chương trình Trang 63 Kết luận KẾT LUẬN Đây chương cuối luận án Những kỹ thuật, kinh nghiệm, kết trình nghiên cứu lý thuyết phát triển thực tế cho luận án tổng kết lại Thông qua kết nghiên cứu thực được, số hướng mở rộng đề tài đề xuất 5.1 TỔNG KẾT Một toán thực tế thường (hay có thể) tiếp cận theo hướng giải hệ ràng buộc kết hợp cho ràng buộc đa biến Xuất phát từ việc nghiên cứu giải hệ ràng buộc riêng phần, luận án phát triển giải thuật giải hệ toàn phần riêng phần kết hợp Một thư viện để giải toán ràng buộc kết hợp cho ràng buộc đa biến xây dựng Lý thuyết dựa vào lý thuyết giải hệ ràng buộc riêng phần cho ràng buộc nhị biến Freuder Thư viện giải hệ ràng buộc kết hợp phát triển từ thư viện mã nguồn mở Tudor Hulubei, đại học New Hampshire, vốn dùng để giải toán ràng buộc (toàn phần) cho ràng buộc nhị biến Mô hình hệ ràng buộc kết hợp giải thuật nhánh-và-cận cho thấy hữu hiệu chúng việc giải toán ràng buộc có dạng tối ưu toán xếp lịch y tá Việc sử dụng trọng số để biểu diễn độ quan trọng hay độ ưu tiên ràng buộc cho thấy phương pháp đơn giản hiệu Bên cạnh đó, mở rộng giải thuật cho ràng buộc nhị biến có thành giải thuật cho ràng buộc đa biến thật không đơn giản Đó có lẽ lý có hướng nghiên cứu chuyển ràng buộc nhị biến thành đa biến Luận án phát triển nhánh-và-cận cho ràng buộc đa biến, giữ kiểm tra hướng tới cho ràng buộc nhị biến Mặc dù áp dụng ràng buộc nhị biến, kiểm tra hướng tới chứng tỏ hiệu có ảnh hưởng lớn đến tốc độ tìm kiếm lời giải Một toán ràng buộc giải dùng ngôn ngữ lập trình logic có ràng buộc hay mô hình ràng buộc Ngôn ngữ lập trình logic có ràng buộc gần với diễn tả ngôn ngữ tự nhiên hơn, lại phụ thuộc vào cách diễn đạt ràng buộc ngôn ngữ lập trình logic Sử dụng cách tiếp cận giải hệ ràng buộc với ngôn ngữ lập trình tổng quát C++ đem lại uyển chuyển việc mô tả toán tìm kiếm lời giải, thêm tốc độ xử lí tốt không cần môi trường trung gian Điều khó khăn việc xây dựng thư viện, thư viện hình thành ứng dụng hiệu Thư viện giải hệ ràng buộc kết hợp đa biến luận án áp dụng hay mở rộng để giải toán khác Trang 64 Comment [k9]: ref Kết luận Chương trình xếp lịch y tá phát triển dựa vào lý thuyết thư viện giải hệ ràng buộc kết hợp Tuy nhiên để giải toán ràng buộc cách hiệu không dựa vào giải thuật Tùy thuộc vào đặc thù toán mà heuristic phát triển áp dụng Với toán xếp lịch y tá chiến thuật xếp lịch nhiều pha, xếp thứ tự ràng buộc, xếp thứ tự biến Đặc biệt heuristic xếp thứ tự biến liên quan đến ràng buộc yêu cầu thực tăng tốc độ chương trình tìm kiếm cách đáng kể Chương trình y tá xây dựng ứng dụng vào thực tế khoa Săn sóc đặc biệt bệnh viện Nhân Dân Gia Định Tốc độ tìm kiếm chất lượng lời giải xác nhận tính ổn định thư viện, tính đắn giải thuật dùng thư viện, tính hiệu heuristic dùng chương trình 5.2 MỞ RỘNG ĐỀ TÀI Dựa vào kết nghiên cứu từ luận án, số hướng mở rộng đề tài đề nghị sau Có hai hướng phát triển: Hướng nghiên cứu • Tiếp tục phát triển thư viện giải hệ ràng buộc kết hợp đa biến dựa vào giải thuật sẵn có vốn giải hệ ràng buộc toàn phần nhị biến Ví dụ backmarking • Sử dụng thư viện ràng buộc kết hợp để giải toán tương tự lónh vực ứng dụng khác, ví dụ hoạch định (planning) hay suy luận thời gian (temporal reasoning) • Phối hợp hệ giải ràng buộc với lý thuyết xác xuất hay logic mờ để giải toán tương tự Hướng ứng dụng • Phát triển thư viện giải hệ ràng buộc kết hợp lónh vực xếp lịch nhân • Liên kết phát triển chương trình xếp lịch y tá với hệ thống quản lý thông tin bệnh viện Trang 65 Bảng thuật ngữ Việt – Anh đối chiếu BẢNG THUẬT NGỮ VIỆT - ANH ĐỐI CHIẾU Dưới bảng đối chiếu thuật ngữ dùng luận án từ tiếng Việt sang tiếng Anh Bài toán giải hệ ràng buộc Constraint Satisfaction Problem (CSP) Bài toán giải hệ ràng buộc riêng phần Lập trình logic có ràng buộc Partial Constraint Satisfaction Problem(PCSP) Constraint logic programming Lập trình ràng buộc Constraint programming Kiểm tra hướng tới Forward checking Kiểm tra nhìn lui Backward checking Nhánh-và-cận Branch&bound Tri thức miền ứng dụng mang tính heuristic Hệ ràng buộc phân cấp Heuristic domain knowledge Trọng số Hierachical constraint satisfaction problem Weight Hàm chi phí Cost function Ràng buộc nhị biến Binary constraint Ràng buộc đơn biến Unary constraint Ràng buộc đa biến n-ary constraint Ca trực Shift Ràng buộc mức Over-constrained Qui hoạch toán học Mathematical programming Qui hoạch tuyến tính Linear programming Qui hoạch nguyên Integer programming Tìm kiếm cục Local search Kỹ thuật tương thích Consistency techniques Nhiều pha Multi-phase Khuôn mẫu Pattern Trang 66 Thư mục tham khảo THƯ MỤC THAM KHẢO [1] Eugene Freuder Partial constraint satisfaction Proceedings IJCAL-89, 278283 1989 [2] Eugene Freuder, Richard Wallace Partial constraint satisfaction Artificial Intelligence 58, 21-70 1992 [3] Tudor Hulubei The CSP Library University of New Hampshire Advised by Eugene Freuder 1999 http://www.hulubei.net/tudor/csp/ ftp://ftp.cs.unh.edu/pub/grads/tudor/csp [4] Slim Abdnenadher, INTERDIP- An interactive constraint based nurse scheduler Proc of The First International Conference and Exihibition on The Practical Application of Constraint Technologies and Logic Programming (PACLP99), 1999 [5] Harald Meyer auf'm Hofe, Bidjan Tschaitschian: PCSPs with Hierarchical Constraint Orderings in Real World Scheduling Applications Notes on the CP'95workshop on over-constrained systems, 1995 1995 [6] Harald Meyer auf'm Hofe ConPlan/SIEDAplan: Personnel Assignment as a Problem of Hierarchical Constraint Satisfaction Project Research 1997 http://www.sieda.com/technologie/cs/pact97/index.html [7] Edmund Burke, Patrick De Causmaeker, Greet Vanden Berghe A hybrid Tabu Search Algorithm for the Nurse Rostering Problem 1998 [8] H E Miller, W P Perskalla, G J Rath Nurse Scheduling using mathematical programming In Operations Research, volume 24 1996 [9] Lars Kraghlund, Brian Mayoh Nurse Scheduling Generalised 1999 [10] K Heus, G.Weil Constraint programming a nurse scheduling application In PACT 96- Proceedings of the Second International Conference on the Practical Application of Constraint Technology, page 115-127 1996 [11] M W Isken, W.M Hancock A heuristic approach to nurse scheduling in hostpital units with non-stationary, urgent demand, and a fixed staff size Journal of the Society for Health Systems 1991 [12] Anday Hon Wai Chun Nurse Rostering at the Hospital Authority of Hong Kong Research Report City University of Hong Kong 2000 Trang 67 Thư mục tham khảo [13] Harald Meyer auf'm Hofe Representation of Requirements Through Preference Orderings of Soft Constraints DFKI Workshop on Constraint Processing 1996 [14] Christian Bessieøre, Pedro Meseguer, Eugene Freuder, Javier Larrosa On Forward Checking for Non binary Constraint Satisfaction Proc of CP’s 99 1999 [15] Lostas Stergiou, Toby Walsh Encodings of Non-binary Constraint Satisfaction Problems 1999 [16] Nokos Mamouslis, Lostas Stergiou Solving Non-binary CSPs Using the Hidden Variable Encoding CP 2001 2001 [17] J Jaffar, M J Maher Constraint logic programming: A survey Journal of Logic Programming, 20:503-581 1994 [18] A.Borning, M Maher, A Martindale, M.Wilson Constraint hierarchies and logic programming Proc of the 6th International Conference of Logic Prog (ICLP89), 149-164, 1989 [19] P Prosser Forward checking with backmarking Technical Report AISL-48-93 1993 [20] T Schiex Possibilistic constraint satisfaction poblems or: How to handle soft constraints? Proceeding of the 8th Conference of Uncertainty in AI, 269-275 1992 [21] M Wilson Hierarchical constraint logic programming Technical Report 9305-01 PhD thesis 1993 [22] A K Mackworth Consistency in networks of relations Journal on Artificial Intelligence”, 99-118 1977 [23] E Freuder Synthesizing constraint expressions Communication of the ACM, 21, 958-966 1978 [24] Tập giảng cao học môn lập trình logic lập trình ràng buộc TS Dương Tuấn Anh ĐH Bách Khoa Tp Hồ Chí Minh 2003 Trang 68 Phụ lục A: Sử dụng chương trình xếp lịch y tá PHỤ LỤC A SỬ DỤNG CHƯƠNG TRÌNH XẾP LỊCH Y TÁ Chương trình xếp lịch y tá thiết kế với mục tiêu cung cấp giao diện với tiện ích để người sử dụng dễ dàng quản lí y tá khoa bệnh viện, thiết lập mô hình làm việc liên kết chúng tới y tá, cho phép y tá tạo yêu cầu với độ ưu tiên họ đề nghị Với tất liệu đó, chương trình xếp phân bố lịch trực cho tất y tá khoa vàhiển thị kết hình Các chức tiện ích chương trình sử dụng thông qua hai cách: dùng menu shortcut công cụ A.1 Yêu cầu hệ thống Để chương trình chạy đạt yêu cầu, cấu hình máy PC tối thiểu đề nghị: • Tốc độ CPU : từ 500 MHz trở lên • RAM: từ 128MB • Dung lượng đóa cứng trống cho nhớ ảo: 100MB • Hệ điều hành: Windows 2000, Windows XP A.2 Cài đặt Chương trình gồm hai tập tin thực thi nurseScheduler.exe pcspDll.dll, tập tin sở liệu Microsoft Access nurses.mdb, số tập tin thư viện Microsoft Visual Basic Toàn chương trình cài đặt đóng gói vào cài đặt dùng phần mềm InstallShield, người sử dụng cần chạy tập tin setup.exe để cài đặt chương trình A.3 Sử dụng chương trình Thông thường, người lần sử dụng chương trình cần thực bước sau: • Thiết lập mô hình làm việc • Nhập liệu thông tin tất y tá Với y tá, lựa chọn mô hình làm việc Nhập yêu cầu y tá, có Trang A-1 Thư mục tham khảo • Thiết lập thông tin ràng buộc “cứng”, tức qui định bệnh viện, khoa, hợp đồng lao động • Thiết lập lịch trực: chọn lựa y tá cho lịch trực, khoảng thời gian trực, thời gian tối đa để chạy chương trình lịch Khi chương trình kết thúc thành công xem kết Những phần nhỏ chi tiết bước liệt kê A.3.1 Thiết lập mô hình làm việc Tùy thuộc vào khoa điều trị số lượng y tá phân bổ vào ca trực, người y tá trưởng có cách xếp tương ứng Ví dụ mô hình “ba ca bốn kíp” khoa Săn sóc đặc biệt bệnh viện Nhân dân Gia định, tất y tá thuộc vào kíp Mỗi kíp định nghóa ca trực số ngày định sau lập lại Như có bốn mô hình cho khoa này, đặt tên từ SSDB-1 đến SSDB-4 Kíp trực theo {Sáng, Chiều, Đêm, Nghỉ}, kíp {Chiều, Đêm, Nghỉ, Sáng}, tương tự cho kíp 3, v.v Màn hình mô hình làm việc kích hoạt dùng menu Y tá -> Mô hình làm việc, hay trực tiếp dùng shortcut công cụ Các mô hình tạo mới, xóa, hay sửa đổi Một hình mô hình làm việc mẫu trình bày hình A-1 Hình A-1 Màn hình quản lí mô hình làm việc Trang A-2 Thư mục tham khảo A.3.2 Quản lí y tá Màn hình quản lí y tá nhằm cung cấp thông tin y tá, mô hình làm việc y tá xếp, yêu cầu người y tá đề nghị cho lịch trực tới Một hình mẫu để quản lý y tá mô hình yêu cầu trình bày hình A-2 Màn hình “Quản lí y tá” kích hoạt menu Y tá -> Quản lí y tá shortcut ‘Quản lí y tá” công cụ Hình A-2 Màn hình quản lí y tá Khung nút bấm “Thao tác quản lí” để người sử dụng tạo mới, cập nhật, xóa y tá, dịch chuyển từ y tá đến y tá khác Phần hình thứ hai để gán mô hình cho y tá Hộp liệt kê bên phải chứa tất mô hình tạo sẵn Chọn mô hình bấm lên nút “” Phần hình thứ ba quản lí yêu cầu y tá Nếu muốn thêm yêu cầu, bấm lên nút “Thêm yêu cầu”, hình hình 6-3 Người sử dụng thiết lập yêu cầu bấm nút “Chấp nhận” để tạo yêu cầu cho y tá, bấm “Ngưng” để ngừng thao tác trở Trang A-3 Thư mục tham khảo A.3.3 Thiết lập ràng buộc Những qui định bệnh viện, khoa, hợp đồng lao động thiết lập đây, chung cho tất y tá Màn hình thiết lập ràng buộc kích hoạt menu Xếp lịch -> Ràng buộc shortcut “Ràng buộc” công cụ Một hình mẫu ràng buộc thiết lập đïc trình bày hình A-4 Hình A-3 Màn hình tạo yêu cầu cho y tá Hình A-4 Màn hình thiết lập ràng buộc Trang A-4 Thư mục tham khảo A.3.4 Thiết lập lịch trực Người sử dụng cần thiết lập tất thông số ba phần trước hay phải duyệt lại trước đến phần Những thông số quan trọng để thiết lập lịch trực ngày bắt đầu, chiều dài thời gian lịch trực, thời hạn tối đa để phân bố ca trực, y tá thực ca trực Một hình thiết lập lịch trực mẫu trình bày phần A-5 Màn hình xếp lịch kích hoạt menu Xếp lịch -> Xếp lịch shortcut ‘Xếp lịch” công cụ Hình A-5 Màn hình thiết lập lịch trực Ngày bắt đầu nhập vào “Bắt đầu:”, kế số ngày lịch trực Những y tá có sở liệu lựa chọn cách đánh dấu (check) hộp lựa chọn kế bên tên họ Và chương trình xếp lịch làm ba pha, pha có thời gian tối đa riêng để thực việc tìm kiếm lời giải Sau chuẩn bị tất tham số, bấm “Tạo mới” để ghi tất thông số xuống tập tin trung gian Sau bấm “Chạy” để kích hoạt chương trình lịch Khi việc lịch kết thúc thành công, mở hình kết để xem lịch trực Điều Trang A-5 Thư mục tham khảo thực menu Xếp lịch -> Kết quả, shortcut “Kết quả” công cụ Một hình kết mẫu trình bày hình A-6 Hình A-6 Màn hình kết xếp lịch Trang A-6 ... giải hệ ràng buộc sử dụng chương trình xếp lịch y tá Chương trình b? ?y phương pháp giải hệ ràng buộc kết hợp toàn phần riêng phần, với giải thuật giải hệ ràng buộc đa biến Tiếp theo toán xếp lịch. .. giải hệ ràng buộc riêng phần Luận án nghiên cứu cách tiếp cận toán theo hướng giải hệ ràng buộc riêng phần, số giải thuật sử dụng để giải chúng, áp dụng chúng để x? ?y dựng hệ thống xếp lịch y tá. .. rộng để giải ràng buộc mềm dùng kỹ thuật giải hệ ràng buộc riêng phần trình b? ?y phần trước 2.3.4 Ràng buộc mềm Ràng buộc mềm trình b? ?y chi tiết phần giải hệ ràng buộc riêng phần Một cách tổng