BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINHKHOA KINH TẾBÀI TẬP NHÓM:GIẢI BÀI TOÁN TỐI ƯU BẰNG CÔNG CỤ LẬP TRÌNHMôn học: Tối ưu hóaBài toán cần xử lý: BÀI
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA KINH TẾ
BÀI TẬP NHÓM:
GIẢI BÀI TOÁN TỐI ƯU BẰNG CÔNG CỤ LẬP TRÌNH
Môn học: Tối ưu hóa
Mã môn học: MAOP230706
Mã lớp: 231MAOP230706_04CLC
GVHD: Nguyễn Danh Hà Thái
Nhóm thực hiện: Nhóm 7
Bài toán cần xử lý: BÀI TOÁN VẬN TẢI
Công cụ lập trình sử dụng: PYTHON (CVXOPT)
Trang 2ĐỀ BÀI: Công ty TNHH thiết bị điện tử DAEWOO Việt Nam là doanh nghiệp sản xuất
thiết bị và linh kiện điện tử có 2 chi nhánh tại Bình Dương (A1) và TP Hồ Chí Minh (A2), trong kho của mỗi chi nhánh có số lượng lô hàng linh kiện điện tử tối đa tương ứng
với Bảng 1 Doanh nghiệp cần vận chuyển các lô hàng đến 3 cảng: Quy Nhơn (B1), Sài Gòn (B2), Vũng Tàu (B3) để xuất khẩu sang 3 nước Anh, Thổ Nhĩ Kỳ, Philippines bằng đường biển, mỗi cảng cần tối đa số lượng lô hàng tương ứng với Bảng 2 Chi phí vận chuyển trung bình vận chuyển đến các cảng là 20.000VNĐ / 1km, chi phí vận chuyển hàng từ mỗi chi nhánh đến từng cảng biển được quy định theo Bảng 3 Tìm phương án tối
ưu để vận chuyển hàng từ các chi nhánh đến các cảng biển để chi phí là thấp nhất
Bảng 1
(ĐVT: Lô hàng)
Bảng 2
(ĐVT: Lô hàng)
Trang 3Cảng Quy Nhơn (B1) 90
Trang 4Bảng 3
(ĐVT: Nghìn đồng)
Cảng Quy Nhơn (B1)
Cảng Sài Gòn (B2)
Cảng Vũng Tàu (B3) Chi nhánh Bình
Dương (A1)
19.280 (964km)
900 (45km)
2.000
(100km) Chi nhánh TP Hồ
Chí Minh (A2)
12.460 (623km)
220 (11km)
1.560 (78km)
Trang 5BÀI LÀM Bước 1: Bảng phân phối.
B
A
B1
90
B2
110
B3
180
A1
170
A2
130
Bước 2: Lập mô hình bài toán.
Gọi x ij là số lượng lô hàng vận chuyển từ chi nhánh i đến cảng j
Ta có hàm mục tiêu tối thiểu hóa chi phí:
Trang 619280 x11+900 x12+2000 x13+12460 x21+220 x22+1560 x23→ min (1)
Do tổng số lượng lô hàng vận chuyển từ mỗi chi nhánh đến các cảng không được vượt quá công suất tối đa của chi nhánh đó, nên ta có:
{x11+x12+x13≤170 x21+x22+x23≤130
Do tổng số lượng lô hàng vận chuyển đến mỗi cảng phải lớn hơn hoặc bằng số lượng lô hàng mà cảng đó yêu cầu, nên ta có:
{x11+x21≥ 90 x12+x22≥ 110 x13+x23≥ 180
Tổng hợp lại, ta được
19280 x11+900 x12+2000 x13+12460 x21+220 x22+1560 x23→ min (1)
{x11+x12+x13≤170 x21+x22+x23≤130 x11+x21≥ 90 x12+x22≥ 110 x13+x23≥ 180 (2)
x11, x12, x13, x21, x22, x23≥ 0 (3)
Bước 3: Chuyển bài toán về dạng Vector.
Chuyển đổi hàm mục tiêu (1): cTx
19280 x11+900 x12+2000 x13+12460 x21+220 x22+1560 x23→ min
x=[x11x12x13x21x22x23] c=[19280 900 2000 12460220 1560]
Trang 7x: vector biến số
c: vector hệ số hàm mục tiêu
Ràng buộc dạng bất đẳng thức (2), (3): Gx ≤ h
{x11+x12+x13≤170 x21+x22+x23≤130 x11+x21≥ 90 x12+x22≥ 110 x13+x23≥ 180 x11≥ 0 x12≥ 0 x13≥ 0 x21≥ 0 x22≥0 x23≥ 0
Chuyển dấu tất cả BĐT về dấu ' ≤ ' vì mỗi phần tử trong ma trận ở vế trái (vector) phải
nhỏ hơn hoặc bằng phần tử tương ứng trong ma trận (vector) ở vế phải
{x11+x12+x13≤170 x21+x22+x23≤130−x11−x21≤−90−x12−x22≤−110−x13−x23≤−180−x11≤ 0−x12≤0−x13≤ 0−x21≤ 0−x22≤0−x23≤ 0
Trang 8Đưa về dạng đầy đủ:
{1 x11+1 x12+1 x13+0 x21+0 x22+0 x23≤ 170 0 x11+0 x12+0 x13+1 x21+1 x22+1 x23≤130−1 x11+0 x12+0 x13−1 x21+0 x22+0 x23≤−90 0 x11−1 x12+0 x13+0 x21−1 x22+0 x23≤−1100 x11+0 x12−1 x13+0 x21+0 x22−1 x23≤−180−1 x11+0 x12+0 x13+0 x21+0 x22+0 x23≤ 0 0 x11−1 x12+0 x13+0 x21+0 x22+0 x23≤ 0 0 x11+0 x12−1 x13+0 x21+0 x22+0 x23≤ 0 0 x11+0 x12+0 x13−1 x21+0 x22+0 x23≤ 0 0 x11+0 x12+0 x13+0 x21−1 x22+0 x23≤0 0 x11+0 x12+0 x13+0 x21+0 x22−1 x23≤0
Đưa về dạng ma trận:
G=[1 0−10 0−1 0 0 0 00 1 0 0−10 0−1 0 0 0 01 0 0 0−10 0−1 0 0 0 01−1 0 0 00 0−1 0 0 0 10−1 0 0 0 0 0−1 0 0 10 0−1 0 0 0 0 0−1]
h=[170130−90−110−1800 0 0 0 0 0]
G: ma trận hệ số bất đẳng thức ràng buộc
h: vector giá trị vế phải bất đẳng thức ràng buộc
Trang 9Bước 4: Xử lý bài toán bằng python (cvxopt).
Ta có kết quả:
Trang 10File chi tiết:
Bước 5: Kết luận.
Ta có các nghiệm: x11=0, x12=70, x13=80, x21=90, x22=40, x23=0
Cảng biển
Chi nhánh
Trang 11Bình Dương x11=0 x12=70 x13=80
Chi phí vận chuyển tối thiểu là:
f (x*) = 1.353.200 (nghìnVNĐ) hay f (x*) = 1.353.200.000 VNĐ