Mở rộng một bài toán quy hoạt nguyên với thuật toán được giải trong thời gian đa thức

33 447 0
Mở rộng một bài toán quy hoạt nguyên với thuật toán được giải trong thời gian đa thức

Đ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

Trờng đại học vinh khoa toán Mở rộng một bài toán quy hoạch nguyên với thuật toán đợc giải trong thời gian đa thức Khoá luận tốt nghiệp đại học Ngành học: Cử nhân khoa họcToán Chuyên ngành: Điều khiển Cán bộ hớng dẫn khoá luận: TS. Trần Xuân Sinh Sinh viên thực hiện: Trần Thị Duyên Lớp 40B - Toán 3 Vinh - 2003 Mc lc Trang Lời nói đầu 3 Chơng 1. Bài toán xuất phát 4 Đ1. Bài toán quy hoạch tuyến tính nguyên. 5 1.1. Bài toán quy hoạch nguyên. 4 1.2. Các phơng pháp chính để giải bài toán quy hoạch nguyên. 5 1.3. Những thuận lợi và khó khăn khi thực hiện các thuật toán tổng quát giải bài toán quy hoạch nguyên. 9 Đ2. Bài toán lập lịch sinh hoạt chuyên đề. 9 2.1. Bài toán. 9 2.2. Một mở rộng. 13 Chơng 2. V mt m rng mi ca bi toỏn lp lch 15 Đ1. Bài toán mở rộng. 15 Đ2. Khảo sát bài toán. 16 2.1. Định nghĩa. 16 2.2. Tính chất. 17 2.3. Thuật toán và ví dụ. 25 Kt lun 29 Ti liu tham kho 30 4 Mở đầu Trong nhiều bài toán thực tế thờng dẫn tới bài toán quy hoạch với biến số nhận giá trị rời rạc. Do tính rời rạc của biến nên không thể sử dụng các phơng pháp toán học có liên quan đến liên tục. Đó là khó khăn lớn cho nhiều bài toán thờng gặp. Mặc dù vậy, cho đến nay các phơng pháp tổng quát đã đ- ợc hoàn thiện nhằm giải quyết các bài toán với biến lấy giá trị rời rạc. Tuy nhiên, các phơng pháp tổng quát có đợc thờng chỉ đẹp về mặt lý thuyết, độ phức tạp tính toán của các thuật toán tơng ứng là rất lớn. Để đợc thuật toán có hiệu quả cho từng bài toán cụ thể, thông thờng ngời ta phải nghiên cứu các tính chất riêng biệt của nó. Khi tiếp cận với những loại bài toán nh vậy, chúng tôi gặp đợc các công trình mới của Giáo s Trần Vũ Thiệu (xem [3]). Với ý thức tập dợt nghiên cứu, nhằm hoàn thành Luận văn tốt nghiệp Cử nhân khoa học, chúng tôi mạnh dạn chọn đề tài Mở rộng một bài toán quy hoạch nguyên với thuật toán đợc giải trong thời gian đa thức. Luận văn đợc chia thành 2 chơng. Chơng 1, Bài toán xuất phát, nhằm tóm lợc những vấn đề có liên quan tới đề tài. Chơng 2, Về một mở rộng mới của bài toán lập lịch, là kết quả chính của luận văn. Trên cơ sở những kết quả đạt đợc của GS.Trần Vũ Thiệu, chúng tôi cố gắng thử vận dụng những hiểu biết có đợc, hoàn thiện việc mở rộng một phần của bài toán đã có. Từ bài toán nêu ra, chúng tôi đã chứng minh các tính chất riêng biệt liên quan đến bài toán; trên cơ sở đó, đa ra thuật toán giải với độ phức tạp thời gian đa thức. Để hoàn thành Luận văn, tôi đã nhận đợc sự hớng dẫn nhiệt tình của Thầy giáo, Tiến sĩ Trần Xuân Sinh. Nhân dịp này cho phép tôi bày tỏ lòng biết ơn sâu sắc đến Thầy giáo. Đồng thời tôi xin gửi đến các Thấy giáo, Cô giáo thuộc tổ Điều khiển, Khoa Toán đã động viên giúp đỡ tôi nhiều trong quá trình học tập, rèn luyện và thực hiện đề tài. Vì năng lực và thời gian có hạn, chắc luận văn không tránh khỏi những thiếu sót, tôi thành thật mong nhận đợc sự góp ý chân thành của các Thầy giáo, Cô giáo và các bạn. Tác giả 5 Chơng 1 Bài toán xuất phát Đ1. Bài toán quy hoạch tuyến tính nguyên 1.1. bài toán quy hoạch nguyên Xét bài toán sau đây min = n j 1 c j x j (1.1) = n j 1 a ij x j = b i , i = 1, ., m (1.2) x j 0, j = 1, ., n (1.3) x j nguyên, j = 1, ., k, k n. (1.4) Bài toán vừa nêu gọi là bài toán quy hoạch tuyến tính nguyên, từ nay để đơn giản, nếu không sợ nhầm lẫn, ta gọi đó là bài toán quy hoạch nguyên. Nếu k = n, ta có bài toán quy hoạch nguyên toàn phần. Nếu k < n, ta có quy hoạch nguyên bộ phận. Chúng ta nhận thấy rằng rất nhiều bài toán dẫn đến bài toán quy hoạch nguyên. Bỏ qua điều kiện nguyên, ta có bài toán quy hoạch tuyến tính và đã biết cách giải bằng phơng pháp đơn hình. Nếu phơng án tối u nhận đợc mà nguyên thì rõ ràng đó chính là phơng án tối u cần tìm. Tuy nhiên, nếu phơng án tối u của bài toán quy hoạch tuyến tính tơng ứng còn có toạ độ cha nguyên, thì việc lấy phần nguyên của nó, nói chung, không cho nghiệm (ph- ơng án tối u) của bài toán. Chúng ta có thể kiểm tra thấy rằng bài toán sau đây max (2x 1 + x 2 ) x 1 + x 2 4 x 1 - x 2 3 x 1 , x 2 0 6 có phơng án tối u X = (7/2, 1/2). Nếu lấy phần nguyên ta có X nguyên = (3, 0). Tuy nhiên, điểm (3, 0) không phải là phơng án tối u của bài toán quy hoạch nguyên tơng ứng (mà phơng án tối u lại là X = (3, 1)). Để giải bài toán quy hoạch tuyến tính nguyên ngời ta đã đa ra nhiều ph- ơng pháp. Sau đây chúng tôi xin trình bày sơ lợc một số phơng pháp điển hình. 1.2. Các phơng chính để giải bài toán quy hoạch nguyên 1.2.a. Phơng pháp cắt hợp cách. Để đơn giản, ta giả sử xét bài toán quy hoạch nguyên toàn phần (trong trờng hợp nguyên bộ phận có thể sử dụng phơng pháp phân rã Bender xem [6]). Nội dung của phơng pháp là: Bỏ qua điều kiện nguyên, giải bài toán quy hoạch tuyến tính bằng ph- ơng pháp đơn hình đợc phơng án tối u X 0 . Nếu x j (o) nguyên (j = 1, ., n) thì X 0 là phơng án tối u cần tìm. Nếu ngợc lại, bổ sung vào bài toán quy hoạch tuyến tính điều kiện L(X) = = n j 1 d j x j e (1.5) L(X) phải thoả mãn hai tính chất: + X 0 không thoả mãn (1.5) + Mọi phơng án nguyên đều thoả mãn (1.5). Điều kiện (1.5) nh vậy đợc gọi là nhát cắt hợp cách. Ngời ta cũng đã đa ra nhiều kiểu nhát cắt hợp cách giải bài toán quy hoạch nguyên có hiệu quả. Chẳng hạn nhát cắt Gomory sau đây là một ví dụ. Giả sử X 0 = (x 1 o , x 2 o , ., x m o , 0, ., 0) là phơng án tối u của bài toán quy hoạch tuyến tính tơng ứng, tồn tại x k o cha nguyên. Ký hiệu [x k o ] và { x k o } là phần nguyên và phần thập phân của x k o . Khi đó nhát cắt sau đây là hợp cách 7 {x k o } - += n mj 1 { x kj }x j 0 (1.6) trong đó x ij là toạ đội thứ i của vectơ A j trong cơ sở của X 0 (các phần tử của vectơ A j trong bảng đơn hình của X 0 ). Chúng ta có thể kiểm tra trực tiếp những điều kiện của nhát cắt hợp cách (1.5). Nhát cắt (1.6) đợc gọi là nhát cắt Gomory. 1.2.b. Phơng pháp nhánh và cận. Phơng pháp nhánh và cận tỏ ra có hiệu quả đối với các bài toán quy hoạch nguyên cỡ lớn. Mở đầu là các công trình của A.H. Land và A.G. Doig (1960), sau đó là các công trình của R.J. Dakin (1965) . ý tởng chính của phơng pháp là thực hiện phân nhánh để chia tập phơng án tối u M thành những phần nhỏ dần. Trên mỗi phần nhỏ của tập M, xác định cận của hàm mục tiêu. Từ đó loại bỏ dần những phần không có khả năng chứa nghiệm. Nh vậy, công việc chính của phơng pháp là tìm cách phân nhánh, tính cận và lựa chọn loại bỏ sao cho sau hữu hạn bớc lặp có đợc câu trả lời của bài toán. a) Phân nhánh. Việc phân nhánh, tức là chia tập M thành các tập con M 1 , M 2 , ., M k sao cho M = k i 1 = M i và M i M j = , i j. b) Tính cận. Hàm số (A) gọi là cận dới của hàm f(X) trên A nếu (A) thoả mãn hai điều kiện: + (A) min f(X), x A. + (A 1 ) (A 2 ), nếu A 1 A 2 M. Từ đó ta có (M i ) (M), i = 1, ., k. Đồng thời f(X*) = { min f(X) : x M } min (M i ) = (M s ). Do đó nếu f(X*) = (M s ) thì X* là phơng án tối u cần tìm. c) Lựa chọn và loại bỏ. 8 + Lựa chọn: Giả sử cho M = k i 1 = M i và M i M j = , i j. Khi đó (M s ) = min (M i ), i = 1, ., k, tức là (M s ) (M i ), i, nên (M s ) min { f(X) : x M }. Ta hy vọng M s chứa phơng án tối u. Vì vậy có thể chọn M s để phân nhánh. + Loại bỏ: Việc loại bỏ nhằm thu gọn bài toán, giảm bớt bộ nhớ. Tiêu chuẩn để loại bỏ là: Giả sử ở bớc k, biết đợc phơng án X mà f( X ) f(X), với mọi phơng án X đã biết, lúc này ta nói X là phơng án kỷ lục, f( X ) là giá trị kỷ lục. Nếu có M j mà (M j ) f( X ) thì M j bị loại bỏ. (Chú ý rằng nếu M j = thì M j cũng bị loại bỏ). Thuật toán nhánh và cận sau đây gọi là thuật toán Land-Doig. Xét bài toán min {CX : AX = b, X 0, x j nguyên, j = 1, ., r, r n } (1.7) Ký hiệu tập phơng án của bài toán (1.7) là D. Với giả thiết D hữu hạn. min {CX : AX = b, X 0, } (1.8) M là tập phơng án của bài toán quy hoạch tuyến tính tơng ứng (bỏ qua điều kiện nguyên). Bớc chuẩn bị: Đặt (P 0 ) là bài toán (1.8) với M 1 = M. Ký hiệu P = {P i } là họ các bài toán đang xét. Giải bài toán quy hoạch tuyến tính (P 0 ) ta đợc phơng án tối u X*. Nếu X* thoả mãn điều kiện nguyên thì X* là phơng án tối u cần tìm. Ngợc lại, đặt cận dới của bài toán (P 0 ) có thêm điều kiện nguyên là f* và P = {P 0 }. Lúc này nếu có đợc phơng án X D thì đặt f* = f( X ), trái lại thì đặt f* = + . Bớc k (k = 1, 2, .). 9 a) Nếu P = , thì thuật toán kết thúc. Khi đó nếu f* < thì X là phơng án tối u cần tìm. Ngợc lại, bài toán không có phơng án tối u. b) Nếu P , chọn (P k ) là bài toán có cận dới nhỏ nhất trong P . Gọi M k là tập phơng án và X k là phơng án tối u của bài toán quy hoạch tuyến tính tơng ứng. b.1. Giả sử x r k cha nguyên. Chia M k thành hai tập M k 1 và M k 2 với M k 1 = { x M k , x i [x r k ] }, M k 2 = { x M k , x i [x r k ] +1 }. Rõ ràng M k = M k 1 M k 2 và M k 1 M k 2 = . b.2. Giải các bài toán quy hoạch tuyến tính tơng ứng: (P k 1 ) { min CX : x M k 1 } (P k 2 ) { min CX : x M k 2 }. Có thể xẩy ra: a) Phát hiện ra M k i = , i = 1 hoặc 2. Loại bỏ M k i tơng ứng. b) Tìm đợc phơng án tối u X (i) thoả mãn điều kiện nguyên. Nếu X (i) là phơng án kỷ lục thì loại bỏ những M k j tơng ứng có ( M k j ) f(X (i) ). Coi X (i) là phơng án kỷ lục mới. Kết thúc bài toán (P k i ). c) Tìm đợc phơng án tối u X (i) (i = 1, 2), nhng cha thoả mãn điều kiện nguyên. Lấy f(X (i) ) làm cận dới của hàm mục tiêu bài toán (P k i ) có thêm điều kiện nguyên. M k i tham gia vào bài toán để tiếp tục phân nhánh. P := P {P k i }. b.3. Loại bỏ khỏi P tất cả các bài toán có cận dới lớn hơn hoặc bằng giá trị kỷ lục. Đặt P := P \{P k i }, trở lại bớc k := k +1. Do D hữu hạn nên thuật toán Land - Doig cũng hữu hạn. 1.3. Những thuận lợi và khó khăn khi thực hiện các thuật toán tổng quát giải bài toán quy hoạch nguyên. 1.3.a. Thuận lợi. 10 Các thuật toán tổng quát (chẳng hạn các phơng pháp đã nêu) có giá trị lớn về mặt khoa học. Khi gặp bất kỳ bài toán quy hoạch nguyên nào, ngời ta có thể nghĩ đến các phơng pháp truyền thống đã biết để giải quyết nó. 1.3.b. Khó khăn. Các thuật toán tổng quát thờng có độ phức tạp tính toán cao. Nguyên nhân chính là các thuật toán đó thờng dựa vào một thuật toán đã biết. Chẳng hạn, thuật toán cắt hợp cách thờng phải tiến hành giải một số bài toán quy hoạch tuyến tính trung gian bằng phơng pháp đơn hình. Mỗi bài toán quy hoạch tuyến tính giải bằng thuật toán đơn hình có độ phức tạp thời gian mũ. Điều đó cho thấy thuật toán cắt hợp cách có độ phức tạp lớn. Thuật toán Land - Doig cũng rơi vào tình trạng tơng tự. Để có đợc thuật toán tốt hơn, ngời ta đi tìm theo hớng khai thác những đặc điểm riêng biệt của từng bài toán cụ thể. Sau đây xin đợc nêu một hớng đi nh vậy (Đ2, chơng 1). Đ2. Bài toán lập lịch sinh hoạt chuyên đề 2.1. Bài toán. Trong thực tế thông thờng chúng ta hay gặp bài toán: Một đơn vị có m sinh viên và n chuyên đề đợc tổ chức. Tuỳ theo khả năng học tập mà mỗi sinh viên có thể phải tham gia một số chuyên đề nào đó. Chẳng hạn sinh viên i cần phải tham dự số chuyên đề là p i , (p i > 0), i = 1, 2, ., m. Trong số các cách phân chia sinh viên vào các nhóm chuyên đề mà họ có nguyện vọng tham dự và bảo đảm cho mỗi sinh viên i đợc tham dự đúng p i nhóm, hãy tìm cách phân chia sao cho số ngời trong nhóm chuyên đề có nhiều sinh viên tham dự nhất là nhỏ nhất có thể đợc (mục đích là làm đồng đều đến mức tối đa số ngời tham dự trong các nhóm chuyên đề). Ký hiệu a ij = 1, nếu sinh viên i có nguyện vọng tham dự nhóm chuyên đề j. 0, nếu ngợc lại. 11 x ij = 1, nếu sinh viên i đợc tham dự nhóm chuyên đề j. 0, nếu ngợc lại. Rõ ràng các x ij phải thoả mãn điều kiện: 0 x ij a ij (chỉ tham dự những chuyên đề mà họ a thích) và x i 1 + x i 2 + . + x in = p i (tổng số chuyên đề tham dự vừa đủ yêu cầu). Khi đó, số lợng sinh viên tham dự nhóm chuyên đề j là x 1 j + x 2 j + . + x nj Từ đó ta có hình toán học cho bài toán đặt ra là f(X) = = m i ij nj x 1 1 max min (2.1) với điều kiện = n j ij x 1 = p i , i = 1, 2, ., m. (2.2) 0 x ij a ij , i = 1, 2, ., m, j = 1, 2, ., n (2.3) trong đó a ij {0, 1}, i = 1, 2, ., m , j = 1, 2, ., n ; x ij nguyên; p i nguyên d- ơng, i = 1, 2, ., m. Trên cơ sở phân tích, phát hiện các tính chất riêng biệt của bài toán (xem [1]), các tác giả đã chuyển bài toán về giải một số hữu hạn bài toán luồng cực đại trên mạng nh sau Trớc hết với mỗi số số nguyên dơng k (k k k , ta xây dựng mạng G(k) = (V, E) với tập đỉnh 12

Ngày đăng: 19/12/2013, 15:07

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan