You are on page 1of 14

MATHEMATICAL MODELLING

Le Duc Dao, PHD


Bộ môn Kỹ Thuật Hệ Thống Công Nghiệp
Khoa Cơ Khí
Trường Đại học Bách Khoa Tp. Hồ Chí Minh
Phone:
1 Email:lddao@hcmut.edu.vn
MATHEMATICAL MODELING EX1

2
MATHEMATICAL MODELING EX1
MAX = 30 * X1 + 40 * X2 + 20 * X3 + 10 * X4 - 15*(800-
X1) - 20*(750-X2) - 10*(600-X3) - 8*(500-X4);

0.3*X1 + 0.3*X2 + 0.25*X3 + 0.15*X4 <= 1000;


0.25*X1 + 0.35*X2 + 0.3*X3 + 0.1*X4 <= 1000;
0.45*X1 + 0.5*X2 + 0.4*X3 + 0.22*X4 <= 1000;
0.15*X1 + 0.15*X2 + 0.1*X3 + 0.05*X4 <= 1000;
X1 >= 0;
X2 >= 0;
X3 >= 0;
X4 >= 0;

X1 <= 800;
X2 <= 750;
X3 <= 600;
X4 <= 500; 3
MATHEMATICAL MODELING EX1
Cách tư duy cho python/ thuật toán khác:

4
MÔ HÌNH TỔNG QUÁT

5
MÔ HÌNH TỔNG QUÁT
Có 3 nhà máy A,E,K và có 4 kho B,C,D,M. Số lượng sản xuất trung bình hàng
ngày của 3 kho là 30,40,50. Số lượng yêu cầu trung bình hàng ngày của nhà kho
B,C,D,M là 35,28,32,25. Chi phí vận Chuyển được cho như hình bên dưới. Biết 1
nhà máy chỉ được vận chuyển hàng hóa đến 1 kho. Hãy lập mô hình toán để cực
tiểu chi phí vấn chuyển

6
MÔ HÌNH TỔNG QUÁT
Quantity of product : Xij
Factory : i
Warehouse: j
Supply: Si
Demand: Dj
Cost to transport: Cij
Decision variable: Hij : Transport or not (binary)
Objective: Min =Cij * X ij
Subject to:

=1

7
PYTHON CHAT GPT
# Import the necessary libraries
import pulp

# Define the problem


problem = pulp.LpProblem("Transportation Problem", pulp.LpMinimize)

# Define the decision variables


M=3
N=4
X = pulp.LpVariable.dicts("X", ((i, j) for i in range(1, M+1) for j in range(1, N+1)), lowBound=0, cat='Continuous')
H = pulp.LpVariable.dicts("H", ((i, j) for i in range(1, M+1) for j in range(1, N+1)), cat='Binary')

# Define the objective function


C = [[6, 8, 8, 5],
     [5, 11, 9, 7],
     [8, 9, 7, 13]]
obj_X = pulp.lpSum(C[i-1][j-1] * X[(i,j)] for i in range(1, M+1) for j in range(1, N+1))
obj_H = pulp.lpSum(H[(i,j)] for i in range(1, M+1) for j in range(1, N+1))
problem += obj_X + obj_H

# Define the constraints


S = [30, 40, 50]
D = [35, 28, 32, 25]
for i in range(1, M+1):
    problem += pulp.lpSum(X[(i,j)] for j in range(1, N+1)) <= S[i-1]

for j in range(1, N+1):


    problem += pulp.lpSum(X[(i,j)] for i in range(1, M+1)) == D[j-1]
    problem += pulp.lpSum(H[(i,j)] for i in range(1, M+1)) == 1

# Solve the problem


status = problem.solve()

# Print the results


if status == 1:
    print("Total Cost = $%.2f" % pulp.value(problem.objective))
    for i in range(1, M+1):
        for j in range(1, N+1):
            if H[(i,j)].value() == 1:
                print("Transport %.2f units from Factory %d to Warehouse %d" % (X[(i,j)].value(), i, j)) 8
else:
    print("Optimal solution not found.")
MATHEMATICAL MODELING EX2

9
MATHEMATICAL MODELING EX4

10
MATHEMATICAL MODELING EX5

11
Crude oil Refining and Gasoline blending EX6

12
MATHEMATICAL MODELING EX2

13
14

You might also like