Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
1,68 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ BÀI TIỂU LUẬN MÔN HỌC Khoa học dịch vụ Chương 2: Review of Linear Programming Mark S Daskin Network and Discrete Location Models, Algorithms, and Applications (2nd edition) John Wiley _ Sons Mục lục Phân công công việc nhóm sinh viên Số TT Họ tên sinh viên Cơng việc thực Nguyễn Tuấn Anh Biên soạn tài liệu toán nghiệm nguyên (2.9) Làm tập vấn đề vận chuyển (2.5) Nguyễn Chu Chiến Giải tốn đường ngắn sử dụng cơng cụ Excel (2.7.1 - 2.7.2) Bùi Công Danh Biên soạn tài liệu toán đường ngắn (2.7) Nguyễn Quang Minh Biên soạn tài liệu phần Out-Of-Kilter flow (2.8) Làm tập vấn đề vận chuyển (2.6) Bảng thuật ngữ Viết Tắt Tiếng Anh Tiếng Việt Out-of-kilter PACB Giải thích Thuật tốn tối thiểu hóa lưu lượng mạng Phương án Phương án bước đầu giải toán vận tải I Vấn đề đường ngắn I.1 Bài toán đường ngắn Tìm đường ngắn tốn quy hoạch tuyến tính phổ biến hầu hết vấn để mạng, mơ tả sau: Cho mạng gồm tập nút N đường liên kết trực tiếp A, với chi phí liên kết Câu hỏi đặt tìm đường ngắn (tổng chi phí nhỏ nhất) từ nút s thuộc N đến nút t thuộc N I.1.1 Mơ tả tốn Vấn đề đường ngắn mô tả dạng tốn quy hoạch tuyến tính sau Đầu vào: Biến định: Định nghĩa tập nút sau: Ai tập tất nút kết nối trực tiếp từ nút i thuộc N, Bi tập tất nút kết nối trực tiếp đến nút i thuộc N Với định nghĩa trên, toán phát biểu sau: Cực tiểu hóa: Điều kiện: Mục tiêu tốn cực tiểu hóa tổng chi phí liên kết lựa chọn Điều kiện thứ quy định giá trị dòng vào dòng nút Điều kiện thứ hai đảm bảo liên kết xuất lần quãng đường từ s đến t Bài toán đối ngẫu phát biểu sau: Cực đại hóa: Điều kiện: Trong đó, Vj chi phí tối thiểu để đến nút j Các điều kiện đảm bảo hiệu Vj với Vi khơng vượt q chi phí trực tiếp từ i đến j Vi tính với i thuộc N Về mặt kỹ thuật, vấn đề theo công thức tốn quy hoạch tuyến tính biến định X(i, j) số nguyên (nhận giá trị 1) biến thực Các biến nhận giá trị phân số tốn quy hoạch tuyến tính khác Tuy nhiên, ma trận ràng buộc hồn tồn đơn hình Thuộc tính đảm bảo giải vấn đề dạng quy hoạch tuyến tính, kết biến định nguyên, ta định nghĩa lại biến định thành biến không âm (X(i, j) >= 0) giải tốn quy hoạch tuyến tính Nếu số liên kết có chi phí âm, lời giải quy hoạch nguyên quy hoạch tuyến tính chứa vịng lặp âm (một chuỗi liên kết tạo thành chu trình, ví dụ chuỗi nút p, qua vài nút quay lại nút p với tổng chi phí âm nghĩa lặp lại nhiều lần chu trình chi phí nhỏ) Trong giải vấn đề đường ngắn nhất, việc sử dụng phương pháp quy hoạch tuyến tính chuẩn cho hiệu Dưới giới thiệu thuật tốn có hiệu nhiều với vấn đề I.1.2 Thuật toán Dijkstra Thuật toán Dijkstra, mang tên nhà khoa học máy tính người Hà Lan Edsger Dijkstra, thuật toán giải toán đường ngắn nguồn đơn đồ thị có hướng khơng có cạnh mang trọng số âm Thuật toán sử dụng phổ biến kỹ thuật định tuyến Lời giải toán đường ngắn chứa thơng tin: chi phí đường ngắn từ s đến t thứ tự liên kết qua Một nhãn nút có phần: (1) giá trị chi phí tối thiểu từ s (2) nút phía trước kết Như vậy, ta sử dụng nhãn có dạng: [ giá trị chi phí thấp biết, nút phía trước ] Giá trị chi phí thấp biết để tới nút j ký hiệu Vj Nút liền trước đường ký hiệu Pj → nhãn nút j có dạng [Vj, Pj] Những nhãn tạm thời vĩnh viễn Ta gán nhãn vĩnh viễn giá trị tốt tốt mà tìm xét xong tất liên kết liên quan Những nút có nhãn vĩnh viễn gọi "đã quét", nút nhãn tạm thời nhóm "chưa qt" Dưới mơ tả thuật tốn để tìm đường từ nút s đến tất nút khác Nhìn chung, chi phí tính tốn tìm đường tới tất nút khơng cao q nhiều chi phí tìm đường đến nút Thêm vào đó, đường đến nút khác lại liên quan đến đường đến nút t, công việc lại phải thực lại muốn tìm đường từ s đến nút u khác Bước 1: Khởi tạo (a) Gán nhãn cho nút s [ 0, _ ] (Vs = khơng có nút phía trước s) (b) Gán nhãn tất nút lại [ ∞, _ ] (c) Đặt nút s vào danh sách "đã duyệt" Bước 2: Cập nhật nhãn (a) Gọi nút duyệt nhất, nút m (b) Với tất liên kết (m, j) mà nút j chưa duyệt, tính: (1) Tj = Vm + cmj (2) Nếu Tj < Vj, đặt lại nhãn nút j với [ Tj, m ] biểu thị chi phí để đến nút j Tj nút m liền trước Bước 3: Duyệt nút (a) Tìm nút có giá trị nhãn Vj thấp mà chưa duyệt (b) Duyệt nút j Bước 4: Kiểm tra kết thúc (a) Tất nút duyệt? (1) Đúng dừng (2) Sai quay lại bước Hình 2.21 Ví dụ mạng Hình 2.21 ví dụ Giả sử ta cần tìm đường ngắn từ nút A đến nút khác Ta bắt đầu gán nhãn cho nút A[ 0, _ ] tất nút khác [ ∞, _ ] Nút A duyệt (tơ xám) thể Hình 2.22 Hình 2.22 Ví dụ vấn đề với nhãn nút khởi đầu nút A kiểm tra Ta cập nhật nhãn nút từ A (là nút gần duyệt), kết việc cập nhật thể Hình 2.23 Hình 2.23 Mạng nút đánh nhãn từ nút A Hình 2.24 Mạng sau nút F đánh nhãn Tiếp theo, F nút có giá trị V thấp nhất, ta gán nhãn vĩnh viễn cho F tiếp tục mở rộng từ Kết biểu thị hình 2.24, đường ngắn tơ đậm Nút F quét tiến hành cập nhật số nhãn nút liền kề Nhãn nút D thay đổi từ [ 15, A ] sang [ 12, F ] đường ngắn biết (chi phí 12) để đến D qua F Các hình (2.25 đến 2.30) mơ tả trạng thái mạng sau vòng lặp thuật tốn Hình 2.25 Mạng sau nút D đánh nhãn Hình 2.26 Mạng sau nút B bị đánh nhãn Hình 2.27 Mạng sau nút G bị đánh nhãn Hình 2.28 Mạng sau nút E bị đánh nhãn Hình 2.29 Mạng sau nút C đánh nhãn 10 Deluxe = 22.996 Supreme = 292.3193 Lợi nhuận = 667.95 Deluxe = 22 Supreme = 292.652 Lợi nhuận = 667.1769 Deluxe = 23 Supreme = 292.3153 Lợi nhuận = 667.947 Deluxe = 23.31 Supreme = 292 Lợi nhuận = 667.737 Deluxe = 23 Supreme = 292 Lợi nhuận = 667.264 Không thỏa mãn Deluxe = 24 Supreme = 291.3153 Lợi nhuận = 667.28 Khi hạn chế việc sản xuất Deluxe = 23 pound, sản xuất xác 292 pound supreme lợi nhuận 667,17 Bây có hai lời giải: với lời giải có nghiệm nguyên (tương ứng với nhánh mà yêu cầu tạo 23 pound Deluxe) giá trị hàm mục tiêu 667.17, lời giải có biến phân số giá trị hàm mục tiêu 667,11 Trong trường hợp này, không cần phân nhánh thêm từ nút bên trái (cái mà hạn chế việc sản xuất Deluxe nhỏ 22) hàm mục tiêu có giá trị mà có đáp án tồn số nguyên Phân nhánh xa từ nút bên tay trái (ví dụ, supreme >= 292 nhánh có supreme Phương án tối ưu => x = 150 0 0 225 50 130 0 245 15 giá trị tối ưu => Tổng chi phí = 150 x 15 + 225 x 16 + 50 x 22 + 130 x 19 + 245 x 15 = 12630 (b)(c) 43 B1 (200) 15 B2 (375) 18 A1 (150) B3 (240) 26 150 31 U1 = 24 A2 (225) 16 10 22 19 A3 (180) 40 25 215 U2 = -2 25 U3 = 35 115 12 A3 (260) 18 260 V U V1 = 15 V2 = 12 U4 = V3 = 18 Bước 1: ta tìm giá trị ui vj sau: Đặt u0 = Suy luận giá trị ui vj lại dựa giá trị chọn Sau tìm giá trị u i, vj , ta điền giá trị vào hàng V cột U (như hình) Tính ước lượng Δij, ghi vào góc bên phải loại Kiểm tra điều kiện thấy => Phương án tối ưu => x = 150 0 10 215 40 115 25 260 giá trị tối ưu => Tổng chi phí = 15×150+31x10+22x40+19×115+12×260+215x16+35x15 =12710 44 (d)(e) với cách làm tương tự ta có lời giải cho phần sau Ta có bảng sau chỉnh sửa sau B1 (200) 15 A1 (150) B2 (375) 18 B3 (240) 26 150 31 U1 = 24 16 A2 (230) 22 A3 (175) 19 50 25 V 230 U2 = -12 10 U3 = 35 115 12 A3 (260) 18 260 V1 = 15 U V2 = 12 U4 = V3 = 28 Bước 3: Xây dựng phương án tốt ● Chọn loại có lớn ● Xác định vịng V tạo ô đưa vào ô chọn có, đánh dấu +, - liên tiếp ● Chọn ô đưa mang dấu trừ (-) có x i*j* = min{xij (i, j) V-} => chọn A2B1 có xij = 10 => lượng điều chỉnh d = 10 ● Xây dựng phương án mới, với x' = (x'ij) với ○ x'ij = xij - d (i, j) V○ x'ij = xij + d (i, j) V+ ○ Giữ nguyên (i, j) V => Ta có ma trận cập nhật sau: 45 B1 (200) 15 B2 (375) 18 A1 (150) B3 (240) 26 150 U1 = 31 24 16 A2 (230) 230 22 19 A3 (175) 125 12 U3 = 18 A3 (260) V1 = 15 U2 = -2 35 50 25 V U 250 10 V2 = 12 V3 = 18 U4 = Tính ước lượng Δij, ghi vào góc bên phải ô loại Kiểm tra điều kiện thấy => Phương án tối ưu => x = 150 0 0 230 50 125 0 250 10 giá trị tối ưu => Tổng chi phí = 15×150+16×230+22×50+19×125+12×250+18×10=12585 Bài : 2.6 (a) Below, in Figure 2.44, you are given the information for a transportation problem This problem is partially solved Solve this problem to optimality 46 Compute the total cost of the solution and show it next to the final tableau (a) Dưới đây, Hình 2.44, bạn cung cấp thông tin cho vấn đề vận chuyển Vấn đề giải phần Giải vấn đề để tối ưu Tính tổng chi phí giải pháp hiển thị bên cạnh tableau cuối (b) Based on the optimal solution you obtained in part (a), what would the impact be on (1) the total cost and (2) the optimal flow pattern of a 5-unit increase in the demand at demand node coupled with a 5-unit decrease in the demand at demand node 3? (b) Dựa giải pháp tối ưu mà bạn có phần (a), Chỉ tác động (1) tổng chi phí (2) mơ hình dịng chảy tối ưu tăng đơn vị nhu cầu nút nhu cầu kết hợp với -unit giảm nhu cầu nút nhu cầu 3? (c) Can you use the information in the optimal solution to predict the impact of a 40-unit decrease in the supply at supply node coupled with a 40-unit increase in the supply at supply node 1? If so, give the new cost and the new flows If not, briefly explain why not (c) Bạn sử dụng thơng tin giải pháp tối ưu để dự đốn tác động việc giảm 40 đơn vị nguồn cung nút cung cấp với mức tăng 40 đơn vị nguồn cung nút cung cấp khơng? Nếu vậy, đưa chi phí luồng Nếu khơng, giải thích ngắn gọn không 47 Lời giải a) B1 (75) A1 (180) A2 (150) A3 (210) V 21 10 28 B2 (123) 23 44 31 V1 = 16 17 17 106 36 V2 = 23 B3 (179) B4 (163) 27 16 16 13 14 179 V3 = 163 10 U U1 = U2 = -6 U3 = 12 V4 = 16 ● Đây toán mà tổng cung tổng cầu (đều 540) ● Ta định nghĩa: ○ m số hàng ngang (số nhà cung ứng) ○ n số hàng dọc (số bên yêu cầu) 48 ui: vị (i = m) vj: vị (j = n) cij: chi phí vận chuyển đơn vị hàng hóa từ i đến j xij: lượng hàng cung cấp từ nhà cung cấp i đến bên yêu cầu j ui vj thỏa mãn công thức ui + vj = cij (1) Δij: Các giá trị ước lượng tính theo cơng thức: Δij = ui + vj - cij ● Ta thấy m + n - = + - = = số ô chọn PACB (Phương án bản) nên tốn tối ưu khơng suy biến ○ ○ ○ ○ ○ ○ Ta giải toán theo bước: Bước 1: Tìm giá trị ui vj Từ cơng thức (1), ta tìm giá trị ui vj sau: Đặt u0 = Suy luận giá trị ui vj lại dựa giá trị ô chọn Sau tìm giá trị ui, vj , ta điền giá trị vào hàng V cột U (như hình trên) Bước 2: Tính ước lượng Δij, ghi vào góc bên phải loại + - 49 Kiểm tra điều kiện tối ưu (chưa thỏa mãn A3B4 có = 18) Bước 3: Xây dựng phương án tốt Chọn loại có lớn => A3B4 Xác định vịng V tạo ô đưa vào ô chọn có, đánh dấu +, - liên tiếp Chọn ô đưa mang dấu trừ (-) có xi*j* = min{xij (i, j) V-} => chọn A2B1 có xij = 31 => lượng điều chỉnh d = 31 Xây dựng phương án mới, với x' = (x'ij) với ○ x'ij = xij - d (i, j) V○ x'ij = xij + d (i, j) V+ ○ Giữ nguyên (i, j) V => Ta có ma trận cập nhật sau: B1 (75) A1 (180) A2 (150) A3 (210) V 21 10 28 B2 (123) -5 23 17 75 -18 36 V1 = 16 48 75 B3 (179) 27 -5 16 16 -2 13 -19 14 V2 = 23 B4 (163) 179 V3 = 20 10 132 U U1 = -3 31 U2 = -6 U3 = -6 V4 = 16 Bước 4: Kiểm tra điều kiện thấy => Phương án tối ưu => x = 50 48 132 75 75 0 0 179 31 giá trị tối ưu => Tổng chi phí = 23 x 48 + 16 x 132 + 10 x 75 + 14 x 179 + 17 x 75 + 31 x 10 = 8057 b) Nếu thêm đơn vị nút yêu cầu m giảm nút yêu cầu n đơn vị, hàm mục tiêu thay đổi lượng v m - tức tăng nhu cầu B2 giảm nhu cầu B4 đơn vị, tổng chi phí thay đổi lượng v - v4 = 23 16 = => với số đơn vị thay đổi tổng chi phí thay đổi x = 35 đơn vị => Tổng chi phí = 8057 + 35 = 8092 Ta có giải pháp sau cập nhật B1 (75) A1 (180) A2 (150) A3 (210) V B2 (128) 21 -5 23 10 17 28 75 -18 36 V1 = 16 B3 (179) B4 (158) 27 -5 16 16 -2 13 -19 14 10 53 75 V2 = 23 179 V3 = 20 127 U U1 = -3 31 U2 = -6 U3 = -6 V4 = 16 c) Vì biến đối ngẫu đưa tỷ lệ thay hàm mục tiêu thay đổi nhỏ luồng thay đổi lớn, phương án tối ưu có khả bị thay đổi biến đối ngẫu không cịn sử dụng để dự đốn thay đổi chi phí Do với việc tăng 40 đơn vị nút cung cấp giảm 40 đơn vị 51 nút cung cấp 3, sử dụng kết tối ưu cũ để ước tính Cách giải thích đơn giản giảm A3 40 đơn vị, x 33 x34 có tổng đơn vị giảm 40 Nhưng x33 giảm có A3 cung cấp hàng cho B3, phải giảm x34 x34 < 40 => khơng thể giảm x34 => cần tìm lời giải khác 52 ... hình) 42 B1 (20 0) 15 B2 (375) 18 A1 (150) B3 (24 0) 26 150 31 U1 = 24 16 A2 (22 5) 22 5 22 19 A3 (180) 50 25 12 V1 = 15 U2 = -2 35 130 A3 (26 0) V U U3 = 18 24 5 15 V2 = 12 V3 = 18 U4 = Bước 2: Tính... sửa sau B1 (20 0) 15 A1 (150) B2 (375) 18 B3 (24 0) 26 150 31 U1 = 24 16 A2 (23 0) 22 A3 (175) 19 50 25 V 23 0 U2 = - 12 10 U3 = 35 115 12 A3 (26 0) 18 26 0 V1 = 15 U V2 = 12 U4 = V3 = 28 Bước 3: Xây... cập nhật sau: 45 B1 (20 0) 15 B2 (375) 18 A1 (150) B3 (24 0) 26 150 U1 = 31 24 16 A2 (23 0) 23 0 22 19 A3 (175) 125 12 U3 = 18 A3 (26 0) V1 = 15 U2 = -2 35 50 25 V U 25 0 10 V2 = 12 V3 = 18 U4 = Tính