1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu các bài toán lịch biểu và ứng dụng

11 380 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 639,77 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Có rất nhiều các bài toán quan trọng trong thực tế của lập lịch như: Lập lịch sản xuất; lập lịch xếp lớp cho giảng viên; lập lịch thực hiện công việc cho dự án; lập lịch trực cho bác sỹ,

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

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

NGUYÔN XU¢N MINH

NGHI£N CøU C¸C BµI TO¸NLÞCH BIÓU Vµ øNG DôNG

LUËN V¡N TH¹C SÜ C¤NG NGHÖ TH¤NG TIN

Hà Nội - 2015

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI

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

NGUYÔN XU¢N MINH

NGHI£N CøU C¸C BµI TO¸NLÞCH BIÓU Vµ øNG DôNG

Chuyên ngành: Hệ thống thông tin

Mã số: 60 48 01 04

LUËN V¡N TH¹C SÜ C¤NG NGHÖ TH¤NG TIN

Người hướng dẫn khoa học: GS.TS Vũ Đức Thi

Hà Nội - 2015

Trang 3

MỤC LỤC

LỜI CẢM ƠN

LỜI CAM ĐOAN

MỤC LỤC

DANH MỤC CÁC BẢNG

DANH MỤC CÁC HÌNH VẼ, BIỂU ĐỒ

MỞ ĐẦU

CHƯƠNG 1 TỔNG QUAN VỀ BÀI TOÁN LẬP LỊCH 1

1.1 Định nghĩa bài toán lập lịch Jobshop (JSP) 1

1.2 Tình hình nghiên cứu thuật toán tìm kiếm lịch biểu tối ưu 2

1.2.1 Tình hình nghiên cứu trên thế giới 2

1.2.2 Tình hình nghiên cứu trong nước 3

1.3 Các phương pháp tiếp cận giải bài toán lập lịch 3

1.2.3 Cách tiếp cận chính xác, thuật toán nhánh cận 3

1.2.4 Cách tiếp cận gần đúng 4

CHƯƠNG 2 THUẬT TOÁN DI TRUYỀN Error! Bookmark not defined 2.1 Lịch sử ra đời Error! Bookmark not defined 2.2 Một số khái niệm cơ bản Error! Bookmark not defined 2.2.1 Cá thể, nhiễm sắc thể Error! Bookmark not defined 2.2.2 Quần thể Error! Bookmark not defined 2.2.3 Chọn lọc Error! Bookmark not defined 2.2.4 Lai ghép Error! Bookmark not defined 2.2.5 Đột biến Error! Bookmark not defined 2.3 Lưu đồ thuật toán di truyền đơn giản Error! Bookmark not defined 2.4 Các tham số của thuật toán di truyền Error! Bookmark not defined 2.4.1 Kích thước quần thể Error! Bookmark not defined 2.4.2 Xác suất lai ghép Error! Bookmark not defined 2.4.3 Xác suất đột biến Error! Bookmark not defined 2.5 Khởi tạo quần thể ban đầu Error! Bookmark not defined 2.5.1 Hàm tính độ thích nghi Error! Bookmark not defined 2.5.2 Toán tử chọn lọc Error! Bookmark not defined 2.5.3 Các toán tử lai ghép Error! Bookmark not defined 2.5.4 Toán tử đột biến Error! Bookmark not defined 2.7 Kết luận Error! Bookmark not defined CHƯƠNG 3 HAI BÀI TOÁN CON CỦA BÀI TOÁN LẬP LỊCH JOB SHOP Error!

Bookmark not defined.

Trang 4

3.1 Bài toán Flowshop hoán vị Error! Bookmark not defined 3.1.1 Mô tả bài toán Error! Bookmark not defined 3.1.2 Cách tính thời gian hoàn thành trong một lịch biểu hoán vị Error!

Bookmark not defined.

3.1.3 Thuật toán Johnson cho PFSP 2 máy và PFSP 3 máyError! Bookmark not

defined.

3.1.4 Một thuật di truyền mã hóa tự nhiên cho bài toán FSP tổng quát Error!

Bookmark not defined.

3.1.5 Kết quả thực nghiệm Error! Bookmark not defined 3.2 Bài toán lập lịch Flowshop Error! Bookmark not defined 3.2.1 Mô bài toán Error! Bookmark not defined 3.2.2 Một thuật toán di truyền mã hóa tự nhiên cho bài toán FPS tổng quát Error!

Bookmark not defined.

3.3 Kết luận Error! Bookmark not defined

CHƯƠNG 4 MỘT THUẬT TOÁN DI TRUYỀN LAI CHO BÀI TOÁN LẬP LỊCH

JOB SHOP Error! Bookmark not defined 4.2 Các luật ưu tiên của Giffler và Thompson Error! Bookmark not defined 4.2.1 Thuật toán Giffler - Thompson (GT) Error! Bookmark not defined 4.2.2 Áp dụng thuật toán GT cho JSP để sinh ra các lịch biểu tích cực Error!

Bookmark not defined.

4.3 Một thuật toán di truyền lai tuần tự cho bài toán JSP Error! Bookmark not

defined.

4.3.1 Mã hóa lời giải Error! Bookmark not defined 4.3.2 Khởi tạo tập lời giải cho thế hệ ban đầu Error! Bookmark not defined 4.3.3 Xây dựng hàm thích nghi Error! Bookmark not defined 4.3.4 Các toán tử di truyền Error! Bookmark not defined 4.3.5 Thuật toán di truyền Error! Bookmark not defined 4.3.6 Tính đúng đắn của thuật toán Error! Bookmark not defined 4.4 Kết quả thực nghiệm Error! Bookmark not defined KẾT LUẬN Error! Bookmark not defined.

Trang 5

MỞ ĐẦU

Lý do chọn đề tài

Lập lịch là một chủ đề quan trọng trong lĩnh vực nghiên cứu hoạt động xuất hiện từ đầu những năm 1950 Mục tiêu chính của lập lịch là phân phối một cách hiệu quả tài nguyên dùng chung qua thời gian hoàn thành các tác vụ

Có rất nhiều các bài toán quan trọng trong thực tế của lập lịch như: Lập lịch sản xuất; lập lịch xếp lớp cho giảng viên; lập lịch thực hiện công việc cho dự án; lập lịch trực cho bác sỹ, y tá trong bệnh viện; lập lịch hàng không, lập lịch tàu hỏa…

Với nhiều ứng dụng như vậy việc nghiên cứu và đưa ra một thuật toán có thể thống kê một lịch biểu để thực hiện công việc hoàn thành trong thời gian tối ưu là vô cùng quan trọng

Từ năm 1950 đến nay mặc dù có rất nhiều công trình nghiên cứu về lập lịch được đề xuất Nhưng có hai vấn đề cần quan tâm xung quanh bài toán lập lịch đó là lịch biểu thực hiện công việc đã tối ưu chưa và tốc độ thực hiện của thuật toán là nhanh hay chậm Xuất phát từ hai vấn đề đó, có hai phương pháp tiếp cận chính để giải bài toán lập lịch đó là phương pháp chính xác và phương pháp gần đúng

Phương pháp thứ nhất là phương pháp chính xác Với phương pháp này thì ưu điểm lớn nhất là sẽ tiến hành tìm kiếm trên toàn bộ không gian bài toán và kết quả sẽ luôn tìm được một lịch biểu thực hiện các công việc tối ưu Phương pháp chính xác nhìn nhận sâu vào vấn đề bài toán, đưa ra được những quyết định với các thông tin quan trọng về cấu trúc của vấn đề hoặc phân tích chính xác các lịch biểu Tuy nhiên do bản chất là vét cạn nên có nhiều hạn chế khả năng áp dụng phương pháp này như tốn nhiều chi phí thực hiện, mất nhiều thời gian xử lý để tìm ra lời giải, … Một số thuật toán giải quyết bài toán lập lịch theo phương pháp tiếp cận nàytiêu biểu như các kỹ

thuật nhánh cận (Branch and Bound), Quy hoạch tuyến tính nguyên (Integer Linear

Programming) Trong đó, thuật toán nhánh cận được đánh giá là thuật toán tốt nhất

trong các thuật toán nghiên cứu theo phương pháp tiếp cận chính xác

Phương pháp thứ hai là phương pháp gần đúng sử dụng các hàm ước lượng heuristic đánh giá để tìm lịch biểu công việc, việc sử dụng các hàm ước lượng này có nhược điểm lớn là lời giải của phương pháp tìm ra không được chắc chắn là lời giải tối

ưu nhất Trong thực tế, nhiều trường hợp chất lượng của lời giải tìm ra không chấp nhận được Kết quả của bài toán bị ảnh hưởng bởi các thông số (kích thước của tập hợp, lời giải ban đầu của thuật toán, các lân cận…) Và cách thức để giải quyết bài toán đôi khi được xem như kỹ xảo để xử lý hơn là khoa học Tuy nhiên phương pháp này lại có lợi thế hơn so với phương pháp chính xác là chi phí thời gian tìm kiếm để đưa ra lời giải thấp Gần đây một số thuật toán mạnh mẽ được tiếp cận bằng phương pháp gần đúng điển hình như là: “Taboo Search”, “Simulated Annearling”, “Genetic Algorithms”, …

Trong lĩnh vực lập lịch, một mô hình chung nhất cho lập lịch là bài toán lập lịch

Jobshop (Jobshop Scheduling Problem)viết tắt JSP Bài toán này nổi tiếng là một trong

Trang 6

những bài toán tối ưu tổ hợp khó tính toán nhất cho đến nay JSP cũng là một trong những bài toán được nghiên cứu nhiều nhất và là một mô hình phát triển tốt về lý thuyết lập lịch Ngoài ra, một động lực khác giúp JSP được thúc đẩy mạnh mẽ là các ứng dụng của nó trong thực tế và cuộc sống sản xuất Vì vậy em mạnh dạn chọn đề tài

luận văn thạc sĩ “Nghiên cứu các bài toán lịch biểu và ứng dụng”

Bố cục của luận văn

Nội dung của luận văn bao gồm 4 chương:

Chương 1 Tổng quan về bài toán lập lịch

Chương này trình bày tổng quan về bài toán JSP, tình hình nghiên cứu, các hướng tiếp cận giải quyết bài toán JSP

Chương 2 Thuật toán di truyền

Chương này trình bày một số khái niệm cơ bản trong thuật toán di truyền, các tham số đầu vào của thuật di truyền, các toán tử của thuật toán di truyền và thuật toán

di truyền

Chương 3 Hai bài toán con của bài toán lập lịch JSP

Chương này trình bày các khái niệm cơ bản liên quan đến hai bài toán con của JSP đó là bài toán lập lịch Flowshop hoán vị (PFSP) và Flow shop (FSP) và thuật toán Johnson cho bài toán Flowshop hoán vị 2 máy và 3 máy có hạn chế điều kiện Cuối cùng, trình bày thuật toán di truyền mã hóa số tự nhiên cho hai bài toán này

Chương 4 Một thuật toán di truyền lai cho bài toán lập lịch job shop

Chương này trình bày một thuật toán di truyền lai là kết hợp thuật toán di truyền với các kỹ thuật tìm kiếm khác cho bài toán JSP và xây dựng chương trình minh họa cho thuật toán di truyền lai

Trang 7

CHƯƠNG 1 TỔNG QUAN VỀ BÀI TOÁN LẬP LỊCH

1.1 Định nghĩa bài toán lập lịch Jobshop (JSP)

Bài toán lập lịch job shop tổng quát được phát biểu như sau:

Cho tập 𝑛 công việc 𝐽𝑖 1≤𝑖≤𝑛, mỗi công việc bao gồm 𝑚 công đoạn (hay còn gọi

là thao tác) được xử lý trên một tập 𝑚 máy 𝑀𝑗

a) Mỗi công việc phải được xử lý ở trên mỗi máy theo một trình tự cho trước của các thao tác Trình tự thực hiện thao tác của mỗi công việc lần lượt trên các máy được gọi là tuần tự công nghệ;

b) Tại mỗi thời điểm, mỗi máy chỉ có thể xử lý nhiều nhất là một công việc; c) Mỗi máy 𝑀𝑗 tùy ý đều có khả năng xử lý một công việc 𝐽𝑖 nào đó, phần công việc 𝐽𝑖được xử lý trên máy 𝑀𝑗 được gọi là thao tác 𝑂𝑖𝑗

d) Mỗi thao tác 𝑂𝑖𝑗 phải được xử lý một cách liên tục trên máy 𝑀𝑗 (từ khi bắt

đầu xử lý cho tới khi kết thúc xử lý không bị ngắt);

e) Thời gian bắt đầu và thời gian hoàn thành xử lý thao tác 𝑂𝑖𝑗 được ký hiệu lần lượt là 𝑠𝑖𝑗 và 𝑐𝑖𝑗 Thời gian xử lý thao tác 𝑂𝑖𝑗 được ký hiệu là 𝑝𝑖𝑗;

f) Thời gian hoàn thành việc xử lý tất cả các công việc được gọi mà makespan

và được ký hiệu là 𝐶𝑚𝑎𝑥

Việc giải bài toán lập lịch job shop là xác định một lịch biểu (thứ tự xử lý các

công việc ở trên m máy) sao cho makespan là nhỏ nhất

Để minh họa cho bài toán, một ví dụ về bài toán JSP 3x3 được cho trong Bảng 1.1 Dữ liệu vào bao gồm một tuần tự công nghệ của các máy cho mỗi công việc và

thời gian xử lý của mỗi công việc ở trên mỗi máy (trong dấu ngặc đơn)

Công việc Máy (thời gian xử lý)

Bảng 1.1: Bài toán JSP 3 công việc, 3 máy Theo Bảng 1.1, các thao tác của 𝐽1 được xử lý trên các máy theo trình tự: 𝑂11 →

𝑂12→ 𝑂13; tức là, công việc 1 ban đầu được xử lý trên máy 1 với thời gian xử lý là 3,

và tiếp theo, được xử lý trên máy 2 với thời gian xử lý là 3, và tiếp theo được xử lý trên máy 3 với thời gian xử lý là 3; các thao tác 𝐽2 được xử lý trên các máy theo trình tự: 𝑂21→ 𝑂23→ 𝑂22các thao tác 𝐽3 được xử lý trên các máy theo trình tự: 𝑂32→

𝑂31→ 𝑂33

Trang 8

Bài toán này không chỉ là NP - khó (NP-hard) mà còn nổi tiếng là một trong những bài toán tối ưu tổ hợp khó tính toán nhất cho đến nay Độ phức tạp của bài toán này là một trong những lý do tại sao bài toán này được nghiên cứu một cách rộng rãi

Cho đến ngày nay vẫn chưa có một phương pháp nào giải quyết bài toán JSP một cách chính xác và thời gian nhanh

1.2 Tình hình nghiên cứu thuật toán tìm kiếm lịch biểu tối ưu

1.2.1 Tình hình nghiên cứu trên thế giới

Bài toán JSP lần đầu tiên được công bố bởi Akers và Friedman (1955), bài toán này thường được biết với cái tên AkersFriedman Tuy nhiên, nó trở nên phổ biến nhờ vào bài toán nổi tiếng 10 công việc 10 máy được đưa ra bởi Fisher và Thompson (1963) Những nỗ lực đầu tiên để giải quyết bài toán JSP được thực hiện bởi Brooks và White (1965), Greenberg (1968) với phương pháp quy hoạch nguyên.Sau đó là phương pháp nhân tử Lagrange của Balas (1969), Charlton và Death (1970) Florian (1971), Ashour(1974), Ashour và Hiremath (1973), Fisher (1973)[5]

Một thuật toán của McMahon và Florian (1975) tìm được dẫn đầu là thuật toán chính xác tốt nhất Thuật toán kết hợp các giới hạn của bài toán lập lịch trên một máy bằng cách sử dụng hàm mục tiêu để giảm thiểu thời gian trễ và liệt kê các lịch biểu tích cực Cùng thời gian đó một phương pháp heutistic dựa trên các luật ưu tiên được nghiên cứu bởi Gere (1966), Panwalkar và Iskander (1977) và Haupt (1989) Xa hơn nữa một

số thuật toán mãnh mẽ được nghiên cứu với các phương pháp tiếp cận tối ưu Barker và McMahon (1985) đã công bố công trình giải quyết bài toán lập lịch bằng cách sử dụng

cấu trúc lân cận dựa trên các thuật toán tìm kiếm địa phương(local search)[5]

Lịch biểu tối ưu của bài toán JSP 10x10 lần đầu tiên được đưa ra bởi Leageweg (1984) nhưng việc chứng minh về tính tối ưu của lịch biểu này không được đưa ra Arlier và Pinson (1989) đã chứng minh rằng lịch biểu này là tối ưu và họ được ghi với việc giải quyết bài toán nổi tiếng Fisher và Thompson từ năm 1963[5]

Ngày nay, thuật toán hiệu quả nhất trong số các phương pháp chính xác là thuật toán nhánh cận của Caseau và Laburthe (1995), Baptiste (1995), Carlier và Pinson (1994), Brucker (1994), Brucker (1992) và các kỹ thuật khác nhau sau nhánh cận bởi Applegate và Cook (1991), Martin và Shmoys (1995) và Perregaard và Clausen (1995) Những hướng mới nghiên cứu giải quyết bài toán JSP tại thời điểm hiện tại là phương pháp gần đúng Phương pháp đầu tiên trong danh sách là phương pháp dịch chuyển nút cổ chai (Shifting Bottleneck) của Adam 1998,Balas (1995), Dauzere-Peres

và Lasserre (1993) Tuy nhiên phần lớn của cách tiếp cận gần đúng là kỹ thuật tìm kiếm địa phương và tiến hóa Trong kỹ thuật tìm kiếm địa phương và tiến hóa thì các thuật toán mạnh mẽ nhất là thuật toán mô phỏng luyện kim (simulated annealing) của Van Laarhoven (1992), Matsuo (1988) và Yamada (1994), Tìm kiếm Tabu (Taboo

Trang 9

Search)bởi Dell’Amico và Trubian (1993), Taillard (1994), Barnes và Chambers (1995), Nowicki và Smutnicki (1996) và Thomsen (1997), Thuật toán di truyền (Genetic Algorithms)bởi Storer (1992), Yamada và Nakano (1992), Pesch (1993) và Dorndorf và Pesch (1995), vàkỹ thuật Tìm kiếm địa phương có chỉ dẫn (Guided Local Search)đề xuất bởiBalas và Vazacopoulos (1998)[5]

Các tiếp cận đã được đề xuất để giải bài toán JSP được trình bày trong Hình 1.1

Hình 1.1: Các tiếp cận cho bài toán lập lịch JSP

1.2.2 Tình hình nghiên cứu trong nước

Hiện nay, bài toán JSP vẫn đang được quan tâm và nghiên cứu và ngày càng phát triển Các công trình nghiên cứu về vấn đề này chủ yếu theo hướng các thuật toán

đã được đề xuất và ứng dụng ở trên thế giới, từ đó tìm ra các phương pháp để cải tiến làm cho thuật toán tốt hơn Ứng dụng thực tiễn của bài toán lập lịch chủ yếu trong lĩnh vực đào tạo: xây dựng thời khóa biểu, kế hoạch thi, lịch làm việc, lịch trực bệnh viện,lập kế hoạch sản xuất kinh doanh trong doanh nghiệp

1.3 Các phương pháp tiếp cận giải bài toán lập lịch

1.2.3 Cách tiếp cận chính xác, thuật toán nhánh cận

Thuật toán nhánh cận là phương pháp hiệu quả nhất trong số các phương pháp chính xác để giải bài toán JSP Thuật toán nhánh cận là kỹ thuật được phát triển

Các phương pháp chính xác

Các kỹ thuật nhánh cận

Công thức toán học

Quy hoạch tuyến tính nguyên

Các phương pháp gần đúng

Dịch chuyển

nút cổ chai

Trí tuệ nhân tạo

Các mạng Nơron

Các luật ưu tiên nhanh

Tìm kiếm địa phương Mô phỏng luyện kim

Tìm kiếm Taboo

Giải thuật

di truyền

Trang 10

để giải quyết các bài toán rời rạc và tổ hợp Mô hình được sử dụng để tìm kiếm là mô hình cây phân cấp Tư tưởng cơ bản của phương pháp là trong quá trình tìm kiếm lời giải, sẽ phân hoạch tập các phương án của bài toán thành hai hay nhiều tập con

biểu diễn như một nút của cây tìm kiếm và cố gắng bằng phép đánh giá cận), tìm cách loại bỏ các nhánh cây (những tập con các phương án của bài toán) mà ta

biết chắc chắn không phải là phương án tối ưu Mặc dù trong trường hợp xấu nhấtthuật toán sẽ duyệt toàn bộ, nhưng những trường hợp cụ thể nó rút ngắn đáng kể thời gian tìm kiếm

Hiệu quả của thuật toán nhánh cận phụ thuộc cách thức phân nhánh và đánh giá cận Việc phân nhánh sai sẽ không làm giảm việc bỏ bớt các phương án không tốt hoặc thậm chí cũng không thể thu gọn các miền khả thi xuống Đánh giá cận sai sẽ tạo ra các nhánh không chính xác làm ảnh hưởng đến số lượng các phương án hoặc các tập con có thể lược bỏ được Như vậy thì một chiến lược nhánh cận không tốt sẽ làm giảm việc xác định các phương án khả thi và lúc này thuật toán sẽ liệt kê toàn bộ các cấu hình có thể cho dù bài toán không thực sự lớn Chính vì thế những quy tắc khác nhau được áp dụng với mục đích làm sao để phân nhánh và đánh giá cận đúng là vấn đề quan trọng trong việc xây dựng thuật toán

Với bài toán lập lịch, thì lịch biểu các công việc được mô tả bằng một đồ thịnối

rời (disjunctive graph) Tất cả các công đoạn cùng một công việc được nốithành một

chuỗi các cung nối liền và các cung nối rời giữ các công đoạn thực hiệntrên cùng một máy Việc lập lịch sẽ trở thành việc sắp thứ tự các công việc trên từngmáy, nghĩa là làm cố định mối liên hệ trước sau giữa các công đoạn trên cùng mộtmáy bằng cách thay đổi hướng các cung nối rời theo một hướng cố định ta sẽ cómột lời giải khả thi, mỗi lời giải khả thi này ta tính được hàm mục tiêu 𝐶𝑚𝑎𝑥 chiềudài lớn nhất đi từ nút nguồn đến nút đích

Một vấn đề gặp phải của phương pháp nhánh cận là thời gian tính toán lớn

1.2.4 Cách tiếp cận gần đúng

1.2.4.1 Giới thiệu

Một lớp quan trọng của loại cải tiến thuật toán là thủ tục tìm kiếm địa phương

(local search) Một thủ tục tìm kiếm địa phương không đảm bảo là một lời giải tối ưu

Nó thường cố gắng tìm một lịch biểu mà lịch biểu đó là tốt hơn so với lịch biểu hiện tại trong lân cận của lịch biểu hiện tại Hai lịch biểu là lân cận nếu một lịch biểu này

có thể thu được qua việc sửa đổi và được xác định bởi lịch biểu kia Tại tất cả các vòng lặp một thủ tục tìm kiếm địa phương thực hiện việc tìm kiếm bên trong lân cận

và đánh giá các giải pháp lân cận khác nhau Quá trình tìm kiếm trong lân cận có thể được thực hiện qua một số cách Cách đơn giản nhất là chọn các lịch biểu trong lân cận một cách ngẫu nhiên, đánh giá các lịch biểu này và quyết định cái lịch biểu nào sẽ

Ngày đăng: 28/08/2016, 11:12

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Các tiếp cận cho bài toán lập lịch JSP - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 1.1 Các tiếp cận cho bài toán lập lịch JSP (Trang 9)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm