You are on page 1of 8

BỘ 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

Sinh viên thực hiện: MSSV:

Lưu Bảo Lộc 22126036

Nguyễn Thành Phong 22126045

Trần Quang Vinh 22126076

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)
ĐỀ 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)

Chi nhánh Bình Dương (A1) 170

Chi nhánh TP. Hồ Chí Minh (A2) 130

Tổng 300

Bảng 2

(ĐVT: Lô hàng)

Cảng Quy Nhơn (B1) 90

Cảng Sài Gòn (B2) 110

Cảng Vũng Tàu (B3) 80

Tổng 280
Bảng 3

(ĐVT: Nghìn đồng)

Cảng Quy Nhơn Cảng Sài Gòn Cảng Vũng Tàu


(B1) (B2) (B3)

Chi nhánh Bình 19.280 900 2.000

Dương (A1) (964km) (45km) (100km)

Chi nhánh TP. Hồ 12.460 220 1.560

Chí Minh (A2) (623km) (11km) (78km)


BÀI LÀM

Bước 1: Bảng phân phối.

B
B1 B2 B3

90 110 180

A1
19280 900 2000
170

A2
12460 220 1560
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í:

19280 x 11 +900 x 12+2000 x 13+ 12460 x 21 +220 x22 +1560 x 23 → 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ó:

{x 11 + x 12 + x 13 ≤170 x 21+ x22 + x 23 ≤ 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ó:

{x 11 + x 21 ≥ 90 x 12+ x 22 ≥ 110 x 13 + x 23 ≥ 180

Tổng hợp lại, ta được

19280 x 11 +900 x 12+2000 x 13+ 12460 x 21 +220 x22 +1560 x 23 → min (1)

{x 11 + x 12 + x 13 ≤170 x 21+ x22 + x 23 ≤ 130 x11 + x21 ≥ 90 x 12+ x22 ≥110 x13 + x 23 ≥ 180 (2)

x 11 , x 12 , x 13 , x 21 , x 22 , x 23 ≥ 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 x 11 +900 x 12+2000 x 13+ 12460 x 21 +220 x22 +1560 x 23 → min

x=[ x 11 x 12 x 13 x 21 x 22 x 23 ] c= [ 19280 900 2000 12460 220 1560 ]

x: 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.

{x 11 + x 12 + x 13 ≤170 x 21+ x22 + x 23 ≤ 130 x11 + x21 ≥ 90 x 12+ x22 ≥110 x13 + x 23 ≥ 180 x11 ≥ 0 x 12 ≥ 0 x 13 ≥0 x 21 ≥ 0 x 22 ≥ 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.

{x 11 + x 12 + x 13 ≤170 x 21+ x22 + x 23 ≤ 130−x 11 −x 21 ≤−90−x 12−x22 ≤−110−x 13−x 23 ≤−180−x 11 ≤ 0−x 12 ≤ 0−x13 ≤ 0−
Đưa về dạng đầy đủ:

{1 x 11 +1 x12 +1 x 13 +0 x 21+0 x 22+ 0 x23 ≤170 0 x 11 +0 x 12+ 0 x 13 +1 x 21 +1 x 22 +1 x 23 ≤130−1 x 11 + 0 x 12+ 0 x13−1 x 21+ 0 x 2

Đưa về dạng ma trận:

G= [ 1 0−10 0−1 0 0 0 0 01 0 0−10 0−1 0 0 0 01 0 0 0−1 00−1 0 0 0 0 1−1 0 0 0 0 0−1 0 0 0 10−1 0 0 0 0 0−1 0 0 1 0 0
h=[ 170130−90−110−180 0 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


Bước 4: Xử lý bài toán bằng python (cvxopt).

Ta có kết quả:

File chi tiết:


Bước 5: Kết luận.
Ta có các nghiệm: x 11=0 , x 12=70 , x13=80 , x 21=90 , x 22=40 , x 23=0

Cảng biển

Quy Nhơn Sài Gòn Vũng Tàu

Chi nhánh

Bình Dương x11=0 x12=70 x13=80

TP. Hồ Chí Minh x21=90 x22=40 x23=0

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Đ

You might also like