ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA QUẢN LÝ CÔNG NGHIỆP BÀI TẬP LỚN Bộ môn: Phương Pháp Định Lượng ỨNG DỤNG GIẢI BÀI TOÁN VẬN TẢI MSSV Họ tên sinh viên Đánh giá mức độ hoàn thành công việc 2012718 Đậu Thị Kim Chi 100% 2015073 Phan Hữu Vinh 100% 2013415 Phạm Nguyễn Chúc Kha 100% 2013628 Nguyễn Đặng Trúc Linh 100% 2013894 Nguyễn Thị Ánh Ngọc 100% Giảng viên: Võ Thị Ngọc Trân 1 MỤC LỤC MỤC LỤC .................................................................................................................... 1 Chương 1. CƠ SỞ LÝ THUYẾT .............................................................................. 2 1.1. Bài toán quy hoạch tuyến tính ............................................................................ 2 1.1.1. Khái niệm ............................................................................................................ 2 1.1.2. Bài toán quy hoạch tổng quát .............................................................................. 2 1.1.3. Một số mô hình thực tế ....................................................................................... 2 1.2 Phương pháp giải Bài toán quy hoạch tuyến tính .............................................. 5 1.2.1 Nghiệm khả dĩ ...................................................................................................... 5 1.2.2 Phương pháp đồ thị .............................................................................................. 5 1.3 Bài toán vận tải ...................................................................................................... 5 1.3.1 Khái niệm ............................................................................................................. 5 1.3.2 Thiết lập Bài toán vận tải ..................................................................................... 6 1.3.3 Phương pháp giải bài toán vận tải ........................................................................ 8 Chương 2. ỨNG DỤNG GIẢI BÀI TOÁN VẬN TẢI .......................................... 10 2.1 Bài toán................................................................................................................. 10 2.2 Giải bài toán vận tải ............................................................................................ 10 2.2.1 Tìm nghiệm ban đầu........................................................................................... 12 2.2.2 Tìm nghiệm tối ưu .............................................................................................. 17 2.2.3 Giải bài toán bằng cách sử dụng Solver ............................................................. 27 TÀI LIỆU THAM KHẢO ........................................................................................ 32 1 Chương 1. CƠ SỞ LÝ THUYẾT 1.1. Bài toán quy hoạch tuyến tính 1.1.1. Khái niệm Quy hoạch tuyến tính (linear programming _ LP) là bài toán tối ưu hoá, trong đó hàm mục tiêu (objective function) và các ràng buộc đều là hàm tuyến tính. 1.1.2. Bài toán quy hoạch tổng quát Xác định véctơ X = (𝑥 1, 𝑥 2, …, 𝑥 n) sao cho: Cực đại (hay Cực tiểu) hàm mục tiêu Z: Z = z (𝑥 1, 𝑥 2, …, 𝑥 n) (1) Đồng thời thỏa mãn các ràng buộc Rj : Rj = rj (𝑥 1, 𝑥 2, …, 𝑥 n) (2) Trong đó, z và rj là biểu thức tuyến tính đối với 𝑥 1, 𝑥 2, …, 𝑥 n . - Hàm Z gọi là hàm mục tiêu, các điều kiện (2) gọi là các điều kiện buộc của bài toán. - Mỗi véctơ X = (𝑥 j) ∈ Rn thỏa mãn hệ điều kiện buộc gọi là một phương án. - Một phương án làm cực đại (hoặc cực tiểu) hàm mục tiêu gọi là phương án tối ưu (hoặc gọi là nghiệm) của bài toán. 1.1.3. Một số mô hình thực tế Bài toán phối hợp sản xuất Một trại cưa cưa các khúc gỗ thành các tấm ván. Có hai loại ván: ván thành phẩm và ván sử dụng trong xây dựng. Giả sử, đối với ván thành phẩm cần 2 giờ để cưa và 5 giờ để bào 10m ván, đối với ván dùng trong xây dưng cần 3 giờ để cưa và 3 giờ để bào 10m. Máy cưa làm việc tối đa 8 giờ trong ngày, và máy bào làm việc tối đa 15 giờ trong ngày. Nếu lợi nhuận của 10m ván thành phẩm là 120 (ngàn đồng), và lợi nhuận của 10m ván xây dựng là 100 (ngàn đồng). Trong ngày, trại cưa phải cưa bao nhiêu ván mỗi loại để lợi nhuận lớn nhất? Loại Thành phẩm Xây dựng (x1) (x2) Cưa 2 3 8 Bào 5 3 15 Thời gian 2 Dự trữ Lợi nhuận 120 100 Gọi 𝑥1 ; 𝑥2 ≥ 0 là lượng ván thành phẩm và ván sử dụng trong xây dựng. Tổng lợi nhuận: Z = 120𝑥1 + 100𝑥2 Khi đó 𝑥1 , 𝑥2 thỏa điều kiện thời gian làm việc máy cưa 2𝑥1 + 3𝑥2 ≤ 8 Và điều kiện về thời gian làm việc máy bào 5𝑥1 + 3𝑥2 ≤ 15 Tóm lại cần tìm 𝑥1 , 𝑥2 sao cho Hàm mục tiêu Z= 120𝑥1 + 100𝑥2 → 𝑚𝑎𝑥 Với các ràng buộc { 2𝑥1 + 3𝑥2 ≤ 8 5𝑥1 + 3𝑥2 ≤ 15 𝑥1 ≥ 0, 𝑥2 ≥ 0 Bài toán trộn sản phẩm/dinh dưỡng Chuyên gia dinh dưỡng định thành lập một thực đơn gồm 2 loại thực phẩm chính A và B. Cứ một (trăm gram): - Thực phẩm A chứa 2 đơn vị chất béo, 1 đơn vị carbohydrate và 4đơn vị protein. -Thực phẩm B chứa 3 đơn vị chất béo, 3 đơn vị carbohydrate và 3đơn vị protein. Nếu một (trăm gram) thực phẩm A giá 20 (ngàn đồng) và một (trăm gram) thực phẩm B giá 25 (ngàn đồng). Nhà dinh dưỡng muốn thức ăn phải cung cấp ít nhất 18 đơn vị chất béo, 12 đơn vị carbohydrate và 24 đơn vị protein. Bao nhiêu (trăm gram) thực phẩm mỗi loại để có giá nhỏ nhất nhưng vẫn cung cấp đủ dinh dưỡng? Loại Thực phẩm A Thực phẩm B Dưỡng chất (x1) (x2) yêu cầu Chất béo 2 3 18 Carbohydrate 1 3 12 Protein 4 3 24 Giá mua 20 25 Thành phần Gọi lần 𝑥1 , 𝑥2 lượt là lượng thục phẩm A và B. Tổng số tiền mua 𝑥1 , 𝑥2 thực phẩm A và B là 3 𝑍 = 20𝑥1 + 25𝑥2 Yêu cầu lượng thực phẩm phải đảm bảo đủ các dưỡng chất Chất béo: 2𝑥1 + 3𝑥2 ≥ 18 𝑥1 + 3𝑥2 ≥ 12 Carbohydrate: 4𝑥1 + 3𝑥2 ≥ 24 Protein: Tóm lại cần tìm 𝑥1 , 𝑥2 sao cho Hàm mục tiêu 𝑍 = 20𝑥1 + 25𝑥2 → 𝑚𝑖𝑛 2𝑥1 + 3𝑥2 ≥ 18 { 𝑥1 + 3𝑥2 ≥ 12 4𝑥1 + 3𝑥2 ≥ 24 Với các ràng buộc 𝑥1 ≥ 0, 𝑥2 ≥ 0 Bài toán vận tải Một nhà sản xuất có 2 nhà máy: Một nhà máy ở Vĩnh Phúc và một nhà máy ở Bình Dương. Có 3 kho hàng phân phối sản phẩm đặt ở Hà Nội, TP. HCM và Cần Thơ. Nhà máy ở Vĩnh phúc; Bình Dương, có khả năng cung cấp tối đa 100; 140 tấn mỗi tuần. Lượng cầu của các kho ở Hà Nội, TP. HCM và Cần Thơ lần lượt từ 100;60 và 80 tấn trở lên. Chi phí vận chuyển (trăm ngàn) mỗi tấn cho như bảng bên dưới. Hỏi cần vận chuyển bao nhiêu tấn hàng hóa từ nhà sản xuất đến các kho hàng ở Hà Nội, TP.HCM và ở cần thơ để chi phí nhỏ nhất nhưng vẫn đáp ứng đủ nhu cầu? Trạm Hà Nội TP.HCM Cần Thơ W1 = 100 W2 = 60 W3 = 80 Vĩnh Phúc (Q1 =100) 5 7 9 Bình 8 7 10 thu Trạm phát Dương (Q2 =140) Gọi 𝑥𝑖𝑗 là lượng hàng vận chuyển từ trạm phát thứ i; i = 1, 2 đến trạm thu thứ j; j = 1, 2, 3. Tổng chi phí vận chuyển 𝑍 = 𝑥11 + 𝑥12 + ⋯ + 𝑥23 Trạm phát thì phát hết hàng và trạm thu thì nhận đủ hàng: 4 Trạm phát 1 phát hết hàng: 𝑥11 + 𝑥12 + 𝑥13 = 100 (1) Trạm phát 2 phát hết hàng: 𝑥21 + 𝑥22 + 𝑥23 = 140 (2) Trạm thu 1 thu đủ hàng: 𝑥11 + 𝑥21 = 100 (3) Trạm thu 2 thu đủ hàng: 𝑥12 + 𝑥22 = 60 (4) Trạm thu 3 thu đủ hàng: 𝑥13 + 𝑥23 = 80 (5) Vậy ta cần tìm 𝑥𝑖𝑗 sao cho Hàm mục tiêu 𝑍 = 𝑥11 + 𝑥12 + ⋯ + 𝑥23 → 𝑚𝑖𝑛 Và thỏa mãn các hàm ràng buộc (1), (2), (3), (4), (5). 1.2 Phương pháp giải Bài toán quy hoạch tuyến tính 1.2.1 Nghiệm khả dĩ - Nghiệm khả dĩ (Feasible Solution) : 1 bộ giá trị các biến thỏa mãn các ràng buộc. - Vùng khả dĩ (Feasible region): Tập tất cả các nghiệm khả dĩ. 1.2.2 Phương pháp đồ thị (cho bài toán có 2 biến) - Bước 1: Biểu diễn các ràng buộc trên mặt phẳng tọa độ và xác định vùng khả dĩ. - Bước 2: Vẽ 1 đường thẳng có phương trùng với hàm mục tiêu Z. Di chuyển tịnh tiến đường thẳng này sao cho giá trị Z được cải thiện. Xác định giao điểm của đường thẳng với biên của vùng khả dĩ, đó là nghiệm tối ưu. Nghiệm của bài toán (nếu có) luôn là đỉnh cực biên (đỉnh) của vùng nghiệm khả dĩ. Nếu muốn tìm Max, tịnh tiến Z đến điểm xa nhất, còn tìm min ta sẽ tịnh tiến Z đến điểm gần nhất. 1.3 Bài toán vận tải 1.3.1 Khái niệm Là dạng đặc biệt của bài toán quy hoạch tuyến tính. Giải quyết vấn đề phân phối hàng hóa từ một số địa điểm cung cấp (điểm nguồn) đến một số địa điểm tiêu thụ (điểm đích) sao cho: - Tổng chi phí ít nhất - Cự ly vận chuyển nhỏ nhất - Tổng tiền lời là nhiều nhất Áp dụng Bài toán vận tait để xác định vị trí đặt nhà kho, cửa hàng hay nhà xưởng mới khi xem xét một số phương án về địa điểm xây dựng. 5 1.3.2 Thiết lập Bài toán vận tải Giả sử có m kho hàng A1,…, Am cùng chưa một loại hàng hóa, kho Ai chứa si số hàng. Cần vận chuyển số hàng đến n cửa hàng B1,…, Bn, cửa hàng Bi cần số hàng dj. Cước vận chuyển một đơn vị hàng từ kho đến cửa hàng là cij. Hãy lập phương án vận chuyển sao cho tổng chi phí vận chuyển nhỏ nhất. Các kho hàng được gọi là các điểm nguồn, các cửa hàng được gọi là các điểm đích. Ký hiệu: m: Tổng số Điểm nguồn n: Tổng số Điểm đích si: Khả năng cung cấp của Điểm nguồn i (i=1,2,…, m) dj: Nhu cầu của Điểm đích j (j=1, 2, …, n) cij: Chi phí vận chuyển một đơn vị hàng hóa từ Điểm nguồn i (i= 1, 2, …, m) đến Điểm đích j (j = 1, 2, …, n) xij: Lượng hàng chuyên chở từ Điểm nguồn i (i = 1, 2, …,m) ) đến Điểm đích j (j = 1, 2, …, n) 1.3.2.1 Dạng quan hệ tuyến tính của Bài toán vận tải Hàm mục tiêu: Ràng buộc: 𝑛 Min 𝑍 = ∑𝑚 𝑖=1 ∑𝑗=1 𝑐𝑖𝑗 𝑥𝑖𝑗 ∑𝑛𝑗=1 𝑥𝑖𝑗 ≤ 𝑠𝑖 i = 1, 2, …, m ∑𝑚 𝑖=1 𝑥𝑖𝑗 ≥ 𝑑𝑗 j = 1, 2, …, n 𝑥𝑖𝑗 ≥ 0 Điều kiện: ∀ i, j 𝑛 ∑𝑚 𝑖=1 𝑠𝑖 ≥ ∑𝑗=1 𝑑𝑗 1.3.2.2 Dạng cân bằng của Bài toán vận tải Hàm mục tiêu: Ràng buộc: 𝑛 Min 𝑍 = ∑𝑚 𝑖=1 ∑𝑗=1 𝑐𝑖𝑗 𝑥𝑖𝑗 ∑𝑛𝑗=1 𝑥𝑖𝑗 = 𝑠𝑖 i = 1, 2, …, m ∑𝑚 𝑖=1 𝑥𝑖𝑗 = 𝑑𝑗 j = 1, 2, …, n 𝑥𝑖𝑗 ≥ 0 Điều kiện: ∀ i, j 𝑛 ∑𝑚 𝑖=1 𝑠𝑖 = ∑𝑗=1 𝑑𝑗 Chú ý: Với những bài toán vận tải dạng không cân bằng ta sẽ chuyển về dạng cân bằng 6 bằng cách như sau 1. Nếu 𝑛 ∑𝑚 𝑖=1 𝑠𝑖 > ∑𝑗=1 𝑑𝑗 , tạo 1 điểm đích giả với nhu cầu bằng 𝑑𝑛+1 = 𝑛 ∑𝑚 𝑖=1 𝑠𝑖 − ∑𝑗=1 𝑑𝑗 ; sau đó gán chi phí vận chuyển đơn vị từ mọi điểm nguồn đến điểm đích giả bằng 0, tức là 𝑐𝑖,𝑛+1 = 0, ∀ 𝑖 = 1, 2, . . . , 𝑚. 𝑛 2. Nếu ∑𝑚 𝑖=1 𝑠𝑖 < ∑𝑗=1 𝑑𝑗 , tạo 1 điểm nguồn giả với khả năng cung bằng 𝑠𝑚+1 = ∑𝑛𝑗=1 𝑑𝑗 − ∑𝑚 𝑖=1 𝑠𝑖 ; sau đó gán chi phí vận chuyển đơn vị từ điểm nguồn giả đến mọi điểm đích bằng 0, tức là 𝑐𝑚+1,𝑗 = 0, ∀ 𝑗 = 1, 2, . . . , 𝑛. 1.3.2.2 Dạng bảng của Bài toán vận tải 1. Thiết lập 1 ma trận, với các hàng là các điểm nguồn, các cột là các điểm đích. 2. Lập 1 cột sau cùng của bảng để thể hiện khả năng cung cấp của từng điểm nguồn, và 1 hàng sau cùng để thể hiện nhu cầu tương ứng của từng điểm đích. 3. Giá trị của các ô là lượng hàng vận chuyển giữa điểm nguồn và điểm đích tương ứng. 4. Góc trên của từng ô thể hiện chi phí vận chuyển đơn vị giữa điểm nguồn và điểm đích tương ứng. Ví dụ: Tổng công ty xây dựng XaToCo có 3 cơ sở sản xuất đá dăm (A1, A2, A3) và 3 công trường xây dựng (B1, B2, B3). Công suất sản xuất đá hàng tuần của các cơ sở lần lượt là 50m3, 60m3, 70m3. Nhu cầu tiêu thụ đá hàng tuần của ba công trường lần lượt là 40m3, 85m3, 55m3. Chi phí vận chuyển 1m3 đá từ các cơ sở sản xuất đá đến các công trường tiêu thụ đá không phụ thuộc vào khối lượng đá vận chuyển như sau (đơn vị tính 10.000 đồng): B1 B2 B3 A1 2 1 5 A2 3 4 3 A3 4 6 6 Hãy xác định phương án vận chuyển đá từ nơi cung cấp đến nơi tiêu thụ để tổng chi phí vận chuyển là thấp nhất. Thiết lập bài toán vận tải này ở dạng bảng như sau: 7 1.3.3 Phương pháp giải bài toán vận tải 1.3.3.1 Tìm lời giải ban đầu Việc tìm ra 1 nghiệm khả dĩ ban đầu cho BTVT là rất quan trọng. Chúng ta phải tìm lời giải ban đầu và kiểm tra xem nó tối ưu chưa. Nếu chưa cần phải cải thiện nghiệm ban đầu cho đến khi đạt được điều kiện tối ưu. Một số phương pháp đã được đề nghị để tìm lời giải ban đầu: - Phương pháp góc Tây Bắc (The Northwest Corner Method) - Phương pháp chi phí bé nhất (The Minimal Cost Method) - Phương pháp xấp xỉ Vogel (The Vogel’s Approximation Method – VAM) a) Phương pháp góc Tây Bắc Bắt đầu phân phối lượng hàng vận chuyển từ ô trên cùng bên trái theo quy tắc sau: - Tận dụng tối đa khả năng cung cấp của mỗi điểm nguồn tương ứng với mỗi dòng trước khi chuyển sang dòng tiếp theo. - Đáp ứng tối đa nhu cầu của mỗi điểm đích tương ứng với mỗi cột trước khi chuyển sang cột tiếp theo. - Đảm bảo tận dụng hết khả năng cung cấp và đáp ứng đủ nhu cầu tiêu thụ. b) Phương pháp chi phí bé nhất Tìm lời giải ban đầu gần tối ưu hơn cho bài toán vận tải theo quy tắc sau: - Ưu tiên phân phối cho ô có giá trị chi phí vận chuyển nhỏ nhất. - Loại bỏ dòng tương ứng với điểm nguồn đã hết khả năng cung cấp hay cột tương ứng với điểm đích đã được đáp ứng đủ như cầu tiêu thụ. Xác định lại ô có giá trị chi phí vận chuyển nhỏ nhất để tiếp tục ưu tiên phân phối. 8 - Thực hiện lặp lại hai bước trên cho đến khi tận dụng hết khả năng cung cấp của các điểm nguồn và đáp ứng đủ nhu cầu tiêu thụ của các điểm đích. c) Phương pháp xấp xỉ Vogel Bước 1. Xác định chênh lệch chi phí vận tải giữa hai ô có chi phí thấp nhất ứng với mỗi dòng và cột. Bước 2. Xác định dòng ho nh dòng hoặc cột có chi phí c t có chi phí cơ hội lớn nhất. Bước 3. Phân phối tối đa lượng hàng có thể vận chuyển cho ô có chi phí vận chuyển nhỏ nhất ứng với dòng hoặc cột đã chọn. Bước 4. Loại bỏ dòng hết khả năng cung cấp hay cột đã đáp ứng đủ nhu cầu tiêu thụ. 1.3.3.2 Phương pháp tìm nghiệm tối ưu Bước 1: Tính toán chỉ số cải tiến Iij cho các ô rỗng (ô không có phân bổ hàng). Có 2 phương án xá định: a) Phương pháp duyệt tuần tự - Ứng với mỗi ô rỗng nào đó, vẽ đường đi kín nối ô rỗng này với các ô đã gán giá trị ban đầu bằng các đường nằm ngang và thẳng đứng. - Gán dấu cho các ô trong đường đi bắt đầu từ ô rỗng có dấu dương (+), các ô kế tiếp đổi dấu (dấu âm -). - Tính các chỉ số Iij = tổng đại số các cij trong đường đi đang xét với dấu đã được gán ở bước trên. b) Phương pháp phân phối cải tiến - MODI - Gọi ui (i=1, 2, …, m); vj (j=1,2,…, n) là các biến ứng với các điểm nguồn i và điểm đích j. - Tại các ô không rỗng ta có đẳng thức: cij – (ui + vj) = 0. - Dựa vào các phương trình tương ứng với ô không rỗng ta có thể xác định được các giá trị ui và vj - Tại các ô rỗng, tính các chỉ số cải tiến Iij = cij – (ui + vj). Chú ý: - Thông thường người ta gán giá trị u1 = 0 và từ đó tính các giá trị ui, vj còn lại. - Sau mỗi bước lặp, tính lại các ui,vj và Iij. Bước 2: kiểm tra dấu hiệu tối ưu và phân bổ lại hàng: - Nếu các chỉ số Iij của các ô rỗng đều không âm, phương án hiện hành là tối ưu. 9 - Nếu tồn tại một hay một chỉ số Iij của ô rỗng nào đó âm, phương án hiện tại chưa tối ưu. - Ta chọn chỉ số Iij bé nhất và điều chỉnh lượng hàng đã phân bổ cho các ô có liên quan theo nguyên tắc sau: + Xác định xij min trong các ô được gán dấu trừ (-). + Bớt đi một lượng xij min cho các ô gán dầu trừ (-). + Cộng thêm một lượng xij min cho các ô gán dấu cộng (+). Chương 2. ỨNG DỤNG GIẢI BÀI TOÁN VẬN TẢI 2.1 Bài toán Công ty đường sắt Krampf Lines chuyên xử lý than. Vào thứ sáu, ngày 13/4, Krampf có những chiếc xe trống ở các thị trấn sau với số lượng được chỉ ra như sau: Town Morgantown Youngstown Pittsburgh Supply 35 60 25 Đến thứ hai, ngày 16/4 các thị trấn sẽ cần số lượng xe than như bảng sau: Town Demand Coal Valley Coaltown Coal Junction Coalsburg 30 45 25 20 Sử dụng biểu đồ khoảng cách đường sắt giữa các thành phố (railway city-to-city distance chart), người điều phối xây dựng bảng quãng đường cho các thị trấn trước đó. Kết quả được hiển thị trong bảng dưới. Hãy xác định phương án vận chuyển than sao cho tối thiểu hóa tổng chi phí vận chuyển. Cung Morgantown Youngstown Pittsburgh Coal Valley 50 20 100 2.2 Giải bài toán vận tải Coaltown 30 80 40 10 Cầu Coal Junction 60 10 80 Coalsburg 70 90 30 Sơ đồ các tuyến đường Điểm nguồn Điểm đích Cij, xij Morgan town Coal Valley Coal Town Youngs town Coal Junction n Pittsburgh CoalSburg 11 2.2.1 Tìm nghiệm ban đầu 2.2.1.1 Phương pháp góc Tây Bắc - Đầu tiên ta thấy tổng cung = tổng cầu (=120). - Tiếp theo, xuất phát từ phía trên – bên trái: + Điểm cung 1 có thể cung cấp 35, điểm cầu A cần 30. Như vậy, điểm cầu A sẽ tiêu thụ hết 30 của cung 1; điểm cầu A đã được đáp ứng đủ nhu cầu nên sẽ không cần cung của điểm 2 và 3. + Tiếp theo đi ngang qua ô (1; B), điểm nguồn 1 có khả năng cung cấp 35 và đã cung cấp 30 cho điểm cầu A. Vì vậy, điểm nguồn 1 chỉ cung cấp được 5 cho điểm cầu B và điểm cầu C, D không thể được cung cấp từ điểm cung 1 nữa. Từ ô (1; B), chúng ta đi xuống ô (2; B), ở đây điểm cầu B cần thêm 40 (45-5) và điểm cung 2 có khả năng cung cấp đến 60 nên điểm cầu 2 đã được đáp ứng đủ nên sẽ không cần thêm cung của điểm 3. + Đi ngang qua ô (1; C), như đã nói điểm cung 1 không thể cung cấp cho điểm cầu C nữa, chúng ta đi xuống ô (2; C), điểm cung 2 còn có thể cung cấp cho điểm cầu C là 20 (60-40). Đi xuống ô (3; C) điểm cung 3 cung cấp cho điểm cầu C được 5 vậy là điểm cầu C đã được đáp ứng nhu cầu. + Vì điểm cung 2 đã hết nên điểm cung 2 không còn khả năng cung cấp cho điểm cầu D nữa, điểm cung 3 còn 20 (25-5) vừa đủ đáp ứng điểm cầu D. Vậy, chi phí vận chuyển là: 12 𝐶𝑡â𝑦 𝑏ắ𝑐 = 30 × 5 + 4 × 80 + 10 × 20 + 80 × 5 + 20 × 30 = 4550 2.2.1.2 Phương pháp chi phí nhỏ nhất - Ta thấy ô có chi phí bé nhất rơi vào ô (2; C): 10, vì vậy chúng ta sẽ ưu tiên phân phối ở ô (2; C). Điểm cầu C cần 25 bé hơn khả năng điểm cung 2 nên điểm cầu C sẽ không nhận từ điểm cung 1 và 3 nữa. - Đến với ô có chi phí bé thứ 2 là ô (2; A), sau khi cung cấp cho điểm cung 3, điểm cung 2 còn 35 lớn hơn nhu cầu của điểm cầu A (30) nên điềm cầu A không nhận từ điểm cung 1 và 3 nữa. - Điểm có chi phí bé tiếp theo là ô (1; B) và ô (3; D), giá trị vận chuyển tối đa gán cho các ô này là 35 và 20. Sau khu gán, điểm cầu D đã được đáp ứng đủ nhu cầu nên điểm (2; D) không được xem xét trong bước tiếp theo. - Điểm có chi phí bé tiếp theo trong các ô còn lại là điểm (3; B), tuy nhiên điểm cung 3 chỉ còn có thể cung cấp 5 cho điểm cầu B, nên điểm cung 2 cung cấp phần còn lại cho điểm cầu B. Vậy, tổng chi phí là: 𝐶𝐶𝑃 𝑏é 𝑛ℎấ𝑡 = 20 × 30 + 30 × 35 + 80 × 5 + 40 × 5 + 10 × 25 + 30 × 20 = 3100 2.2.1.3 Phương pháp Vogel Thị trấn cung cấp xe than Coal Valley Thị trấn cầu xe than Coal Town Coal Junction 13 Tổng CoalSburg Morgantown 50 30 60 70 35 Youngstown 20 80 10 90 60 100 0 40 80 30 25 Pittsburgh Tổng cung 30 45 25 20 120 Xác định hàng hoặc cột có có chi phí cơ hội lớn nhất và phân bổ vào ô có chi phí bé nhất. Vì tổng cung bằng tổng cầu nên không cần đến điểm nguồn giả và điểm đích giả. Thị trấn cung cấp xe than Morgantown (1) Youngstown (2) Pittsburgh (3) Tổng cung Thị trấn cầu xe than Coal Valley (1) 50 Coal Town (2) 30 80 25 20 100 0 30 50-20= 30 Coal Junction (3) x 60 40 x Tổng CoalSburg (4) 70 35 50-30 =20 10 90 60 20-10=10 80 30 25 40-30=10 45 25 20 40-30 =10 60-10= 50 70-30= 40 120 Hàng 1: hai chi phí nhỏ nhất là 50 và 30, vì vậy chênh lệch là 50-30=20 Hàng 2: hai chi phí nhỏ nhất là 20 và 10, vì vậy chênh lệch là 20-10=10 Hàng 3: hai chi phí nhỏ nhất là 40 và 30, vì vậy chênh lệch là 40-30=10 Cột 1: Hai chi phí nhỏ nhất là 50 và 20, vì vậy chênh lệch là 50-20=30 Cột 2: Hai chi phí nhỏ nhất là 30 và 40, vì vậy chênh lệch là 40-30=10 Cột 3: Hai chi phí nhỏ nhất là 30 và 40, vì vậy chênh lệch là 60-10=50 Cột 4: Hai chi phí nhỏ nhất là 70 và 40, vì vậy chênh lệch là 70-30=40 Vì cột Coalsburg (3) có chi phí cơ hội là lớn nhất nên ta sẽ phân bổ vào ô có chi phí bé nhất của cột 3. Ô có chi phí bé nhất của cột 3 là 10, cung 60 mà cầu của cột 3 tối đa là 25 nên sẽ phân bổ 25 vào ô có chi phí là 10. Vì đã đủ cầu nên hai ô còn lại (1,3) và (3,3) được đánh dấu x. 14 Thị trấn cung cấp xe than Thị trấn cầu xe than Coal Valley Morgantown x 50 Youngstown 30 Pittsburgh x Coal Junction 60 30 x 80 25 20 100 0 30 Tổng cung Coal Town 50-20= 30 40 x 45 Tổng CoalSburg 70 35 50-30 =20 10 90 60 80-20=60* 80 30 25 40-30=10 25 20 40-30 =10 120 70-30= 40 Vì cột Coal Junction đã điền đủ nên sẽ bỏ cột này trong đợt tính tiếp theo. Hàng 1: hai chi phí nhỏ nhất là 50 và 30, vì vậy chênh lệch là 50-30=20 Hàng 2: hai chi phí nhỏ nhất là 80 và 20, vì vậy chênh lệch là 80-20=60 Hàng 3: hai chi phí nhỏ nhất là 40 và 30, vì vậy chênh lệch là 40-30=10 Cột 1: Hai chi phí nhỏ nhất là 50 và 20, vì vậy chênh lệch là 50-20=30 Cột 2: Hai chi phí nhỏ nhất là 30 và 40, vì vậy chênh lệch là 40-30=10 Cột 4: Hai chi phí nhỏ nhất là 70 và 40, vì vậy chênh lệch là 70-30=40 Vì hàng 2 có chi phí cơ hội là lớn nhất nên ta sẽ phân bổ vào ô có chi phí bé nhất của hàng 2. Ô có chi phí bé nhất chưa được phân bổ của hàng 2 là 20, cung còn 60 - 25 = 45 mà cầu của hàng 2 tối đa là 30 nên sẽ phân bổ 30 vào ô có chi phí là 20 Vì đã đủ cầu nên hai ô còn lại (1,1) và (3,1) được đánh dấu x. Thị trấn cung cấp xe than Thị trấn cầu xe than Tổng Coal Coal Coal CoalSburg Valley Town Junction Morgantown x 60 x 50 35 70 30 x 35 70-30 =40 Youngstown 30 Pittsburgh Tổng cung x 80 25 20 100 0 30 40 45 x 25 40-30 =10 10 90 60 90-80=10 80 30 25 40-30=10 20 120 70-30= 40 Vì cột Coal Junction và Coal Valley đã điền đủ nên sẽ bỏ 2 cột này trong đợt tính tiếp theo. 15 Hàng 1: hai chi phí nhỏ nhất là 70 và 30, vì vậy chênh lệch là 70-30=40 Hàng 2: hai chi phí nhỏ nhất là 90 và 80, vì vậy chênh lệch là 90-80=10 Hàng 3: hai chi phí nhỏ nhất là 40 và 30, vì vậy chênh lệch là 40-30=10 Cột 2: Hai chi phí nhỏ nhất là 30 và 40, vì vậy chênh lệch là 40-30=10 Cột 3: Hai chi phí nhỏ nhất là 30 và 40, vì vậy chênh lệch là 60-10=50 Cột 4: Hai chi phí nhỏ nhất là 70 và 40, vì vậy chênh lệch là 70-30=40 Vì hàng 1 và cột 4 đều có chi phí cơ hội lớn nhất là 40 nhưng vì hàng 1 có thể phân bổ được nhiều hơn cột 4 nên ta ưu tiên phân bổ vào ô có chi phí nhỏ nhất của hàng 1 trước. Ô có chi phí nhỏ nhất của hàng 1 là 30, cung 35 và cầu là 45 nên sẽ phân bổ 35 cho ô có chi phí là 30. Các ô còn lại của hàng là (1,1), (1,3) và (1,4) sẽ được đánh dấu x. Thị trấn cung cấp xe than Thị trấn cầu xe than Tổng Coal Coal Coal CoalSburg Valley Town Junction Morgantown x 35 x 60 x 50 70 30 35 Youngstown 30 Pittsburgh Tổng cung x 80 25 20 100 0 30 40 45 x 25 80-40 =40 10 x 90 60 90-80=10 80 20 30 25 40-30=10 20 120 90-30= 60* Vì cột Coal Junction, Coal Valley và hàng Morgantown đã điền đủ nên sẽ bỏ trong đợt tính tiếp theo. Vì cột Coal Junction và Coal Valley đã điền đủ nên sẽ bỏ 2 cột này trong đợt tính tiếp theo. Hàng 2: hai chi phí nhỏ nhất là 90 và 80, vì vậy chênh lệch là 90-80=10 Hàng 3: hai chi phí nhỏ nhất là 40 và 30, vì vậy chênh lệch là 40-30=10 Cột 2: Hai chi phí nhỏ nhất là 40 và 80, vì vậy chênh lệch là 80-40=40 Cột 4: Hai chi phí nhỏ nhất là 90 và 30, vì vậy chênh lệch là 90-30=60 Vì cột 4 có chi phí cơ hội lớn nhất là 40 nên ta ưu tiên phân bổ vào ô có chi phí nhỏ nhất của cột 4. Ô có chi phí nhỏ nhất của cột 4 là 30, cung 25 và cầu là 20 nên sẽ phân bổ 20 cho ô có chi phí là 30. Các ô còn lại của hàng là (1,4), (2,4) sẽ được đánh dấu x. 16 Thị trấn cung cấp xe than Thị trấn cầu xe than Tổng cung Coal Coal Coal CoalSburg Valley Town Junction Morgantown x 60 x 50 35 70 30 x 35 Youngstown 30 Pittsburgh Tổng cầu x 20 5 100 0 30 80 25 5 40 x 45 25 10 x 90 60 80 20 30 25 20 120 Vậy chi phí vận tải với lời giải ban đầu này là: Cvam = 35*30 + 30*20 + 5*80 + 25*10 + 5*40 + 20*30 = 3100 Nhận xét Phương pháp xấp xỉ Vogel cho kết quả chính xác hơn so với hai phương pháp Tây Bắc và chi phí bé nhất và trong bài toán này, chi phí bé nhất và chi phí của phương pháp Vogel là như nhau. 2.2.2 Tìm nghiệm tối ưu 2.2.2.1 Tìm nghiệm tối ưu bằng phương pháp duyệt tuần tự - Xác định ô rỗng, gán giá trị dương. Hình 2.1 Kết quả bài toán khi áp dụng phương pháp Tây Bắc Các ô rỗng cần khảo sát là (1, C), (1, D), (2, A), (2, D), (3, A), (3, B). - Xác định chu trình để tính chỉ số cải tiến Iij. 17 - Gán giá trị dương vào ô rỗng và các giá trị dương hoặc âm vào các ô liên quan nhưng không được cùng dấu trên cũng một hàng dọc hay hàng ngang. Chu trình I1C là 1C → 2C → 2B → 1B Chỉ số cải tiến ứng với ô (1, C) là: I1C = + 60 – 10 + 80 – 30 = + 100 Hình 2.2 Ô (1, C) có I1C = + 100 → thỏa điều kiện tối ưu Chu trình I1D là 1D → 3D → 3C → 2C → 2B → 1B Chỉ số cải tiến ứng với ô (1, D) là I1D = + 70 – 30 + 80 – 10 + 80 – 30 = + 160 Hình 2.3 Ô (1, D) có I1D = + 160 → thỏa điều kiện tối ưu 18 Chu trình I2A là 2A →1A → 1B → 2B Chỉ số cải tiến ứng với ô (2, A) là I2A = + 20 – 50 + 30 – 80 = - 80 Hình 2.4 Ô (2, A) có I2A = - 80 → không thỏa điều kiện tối ưu - Do I2A < 0 nên tiến hành điều chỉnh lượng hàng hóa trên ô (2, A) - Xác định được gán (-), xijmin. X1Amin = min (x1A, x2B) = min (30, 40) = 30 - Lượng hàn vận chuyển ở các ô được gán dấu (+) được cộng x1Amin, các ô được gán dấu (-) bị trừ đi một lượng x1Amin. - Chiều quay của chu trình không bị ảnh hưởng đến kết quả của bài toán - Các giá trị gán mới tại các ô: x1A = 30 – 30 = 0 x1B = 5 + 30 = 35 x2A = 0 + 30 = 30 x2B = 40 – 30 = 10 19 Chu trình I1A là 1A →1B → 2B → 2A Chỉ số cải tiến ứng với ô (1, A) là I1A = + 50 – 30 + 80 – 20 = + 80 I1C = + 60 – 10 + 80 – 30 = + 100 I1D = + 70 – 30 + 80 – 10 + 80 – 30 = + 160 Hình 2.5 Ô (1, A) có I1A = + 80 → thỏa điều kiện tối ưu Chu trình I2D là 2D →3D → 3C → 2C Chỉ số cải tiến ứng với ô (2, D) là I2A = + 90 – 30 + 80 – 10 = + 130 Hình 2.6 Ô (2, D) có I2D = + 130 → thỏa điều kiện tối ưu 20 Chu trình I3A là 3A →2A → 2C → 3C Chỉ số cải tiến ứng với ô (3, A) là I3A = + 100 – 20 + 80 – 40 = + 120 Hình 2.7 Ô (3, A) có I3A = + 120 → thỏa điều kiện tối ưu Chu trình I3B là 3B →2B → 2C → 3C Chỉ số cải tiến ứng với ô (3, B) là I3B = + 40 – 80 + 10 – 80 = - 110 Hình 2.8. Ô (3, B) có I3B = - 110 → không thỏa điều kiện tối ưu - Do I3B < 0 nên tiến hành điều chỉnh lượng hàng hóa trên ô (3, B) - Xác định được gán (-), xijmin. X3Cmin = min (x2B, x3C) = min (10, 5) = 5 - Lượng hàng vận chuyển ở các ô được gán dấu (+) được cộng x3Cmin, các ô được gán dấu (-) bị trừ đi một lượng x3Cmin. 21 - Chiều quay của chu trình không bị ảnh hưởng đến kết quả của bài toán - Các giá trị gán mới tại các ô: X3B = 0 + 5 = 5 X2B = 10 – 5 = 5 x2C = 20 + 5 = 25 x3C = 5 – 5 = 0 Chu trình I3C là 3C →3B → 2B → 2C Chỉ số cải tiến ứng với ô (3, C) là I3C = + 80 – 40 + 80 – 10 = + 110 I1A = + 50 – 30 + 80 – 20 = + 80 I1C = + 60 – 10 + 80 – 30 = + 100 I1D = + 70 – 30 + 40 – 30 = + 50 I2D = + 90 – 30 + 40 – 80 = + 20 I3A = +100 -20 + 80 – 40 = +120 Hình 2.9 Ô (3, C) có I3C = + 110 → thỏa điều kiện tối ưu - Dừng tìm kiếm trị tối ưu vì chỉ số cải tiến Iij ở các ô không âm Kết quả sau khi cải tiến: 22 Bảng 2.10 Kết quả của phương pháp Tây Bắc cải tiến theo duyệt tuần tự Chi phí vận chuyển: x1B = 35 tons, x2A = 30 tons, x2B = 5 tons, x2C = 25 tons, x3B = 5 tons, x3D = 20 tons Z = 35*30 + 30*20 + 5*80 + 25*10 + 5*40 + 20*30 = 3100 Nhận xét: Do kết quả của phương pháp chi phí thấp nhất và Vogel giống nhau với phương pháp duyệt tuần tự của phương pháp Tây Bắc nên hai phương pháp trên không cần duyệt tuần tự. Với cùng chi phí vận chuyển tối ưu là Z = 3100. Hình 2.11 Kết quả bài toán khi áp dụng phương pháp chi phí ngắn nhất và Vogel 2.2.2.2 Tìm nghiệm tối ưu bằng phương pháp cải tiến MODI Các ô rỗng cần khảo sát là (1, C), (1, D), (2, A), (2, D), (3, A), (3, B). 23 Gọi ui (i = 1, 2, …, m), vj (j=1, 2, …, n) là các biến đối ngẫu ứng với các điểm nguồn i và các điểm cấp j. Ta được hình bên dưới. Hình 2.12 Gán các biến đối ngẫu ứng với các điểm nguồn và điểm đích Ta có: u1 +v1 = 50 u1 = 0 u1 + v2 = 30 u2 = 50 u2 + v2 = 80 chọn u1 = 0 u3 = 120 u2 + v3 = 10 => v1 = 50 u3 + v3 = 80 v2 = 30 u3 + v4 = 30 v3 = -40 v4 = -90 Vậy: I1C = 60 - (0 - 40) = 100 I1D = 70 – (0 -90) = 160 I2A = 20 – (50 + 50) = -80 I2D = 90 – (50 – 90) = 130 I3A = 100 – (120 + 50) = -70 I3B =40 – (120 + 30) = -110 Chỉ số cải tiến tại x3B là âm nhất và tạo thành chu trình, nên điều chỉnh lượng hàng ở chu trình này theo x3C min = 5. 24 Hình 2.13 Định vị ô có chỉ số cải tiến âm nhất Sau đó tính lại trị cho các chỉ số ui, vj. Các ô rỗng cần khảo sát là (1, C), (1, D), (2, A), (2, D), (3, A), (3, C). Hình 2.14 Bảng vận tải sau khi đã điều chỉnh lượng hàng Ta có: u1 +v1 = 50 u1 = 0 u1 + v2 = 30 u2 = 50 u2 + v2 = 80 chọn u1 = 0 u3 = 10 u2 + v3 = 10 => v1 = 50 u3 + v2 = 40 v2 = 30 u3 + v4 = 30 v3 = -40 v4 = 20 25 Vậy: I1C = 60 - (0 - 40) = 100 I1D = 70 – (0 + 20) = 50 I2A = 20 – (50 + 50) = -80 I2D = 90 – (50 + 20) = 20 I3A = 100 – (10 + 50) = 40 I3C = 80 – (10 - 40) = 110 Chỉ số cải tiến tại x2A là âm nhất và tạo thành chu trình, nên điều chỉnh lượng hàng ở chu trình này theo x1A min = 30. Hình 2.15 Định vị ô có chỉ số cải tiến âm nhất Sau đó tính lại trị cho các chỉ số ui, vj. Các ô rỗng cần khảo sát là (1, A), (1, C), (1, D), (2, D), (3, A), (3, C). 26 Hình 2.16 Bảng vận tải sau khi đã điều chỉnh lượng hàng lần 2 Ta có: u1 + v2 = 30 u1 = 0 u2 + v1 = 20 u2 = 50 u2 + v2 = 80 chọn u1 = 0 u3 = 10 u2 + v3 = 10 => v1 = -30 u3 + v2 = 40 v2 = 30 u3 + v4 = 30 v3 = -40 v4 = 20 Vậy: I1A = 50 – (0 - 30) = 80 I1C = 60 - (0 - 40) = 100 I1D = 70 – (0 + 20) = 50 I2D = 90 – (50 + 20) = 20 I3A = 100 – (10 - 30) = 120 I3c = 80 – (10 - 40) = 110 Do các chỉ số cải tiến không âm nên giải pháp hiện tại là tối ưu. Kết quả sau khi cải tiến: Hình 2.17 Kết quả sau khi cải tiến bằng phương pháp MODI Tổng chi phí vận chuyển tối ưu = 35*30 + 30*20 + 5*80 + 25*10 + 5*40 + 20*30 = 3100 2.2.3 Giải bài toán bằng cách sử dụng Solver Đầu tiên, mô phỏng chi phí vận chuyển mỗi xe than từ các điểm cung đến các điểm 27 cầu với các ràng buộc về tổng cung và tổng cầu. Từ đó, xây dựng ma trận bảng tính toán lượng hàng cung ứng cho từng điểm như sau: Trong bảng lượng vận chuyển, ta tính lượng cung và cầu cho mỗi điểm vận chuyển qua hàm SUM. Trong đó, lượng cầu tại Coal Valley tính bằng “=SUM(B12:B14)” và lượng cung tại Morgantown tính bằng “=SUM(B12:E12)”, tính tương tự cho các điểm cầu và cung còn lại. 28 Yêu cầu của bài toán là tính chi phí thấp nhất để đáp ứng nhu cầu tại mỗi điểm, trong đó: Chi phí vận chuyển = Chi phí mỗi lần vận chuyển * Lượng vận chuyển Trong Excel, ta phải tính tổng các tích của các phần tử trong hai bảng B5:F7 và B12:E14. Để tính toán dễ dàng hơn, ta sử dụng hàm SUMPRODUCT theo cú pháp sau: =SUMPRODUCT(B5:E7;B12:E14) Sử dụng Solver để giải bài toán vận tải Từ Data nhấn chọn Solver. Nếu excel chưa có solver thì có thể nhấn chọn solver add-in trong mục Option -> Add-ins. Khi đó, sẽ xuất hiện bảng Solver Parameters như hình … Trong đó: - Set Objective: lựa chọn ô mục tiêu. Trong đó, mục tiêu của bài toán là tính Min Chi phí vận chuyển nên ta sẽ Set Objective: B17 và click chọn Min. - By Changing Variable Cells: bằng cách thay đổi các ô lượng vận chuyển (B12:E14). 29 Sau đó nhấn chọn Add để thêm các điều kiện cho bài toán: - Tổng lượng nhu cầu tại mỗi điểm phải bằng lượng nhu cầu đặt ra trong bài toán để đảm bảo cung cấp đủ lượng. Tương ứng dãy B8:E8 phải lần lượt bằng giá trị dãy B15:E15. - Tổng lượng cung tại mỗi điểm phải bé hơn hoặc bằng lượng cung đã cho trước. Tương ứng dãy F5:F7 phải lần lượt bé hơn hoặc bằng dãy F12:F14. Sau khi nhấn OK để thêm các điều kiện ràng buộc cho bài toán, sẽ xuất hiện hộp thoại 30 như sau. Nhấn Solve và theo dõi kết quả tính toán được. Kết quả của bài toán khi sử dụng Solver: Chi phí vận chuyển bé nhất là 3100$. 31 TÀI LIỆU THAM KHẢO [1]. Phương Pháp Định Lượng Trong Quản Trị 32