Submit the updated draft of your proposed mathematical model in the algebraic formulation according to your referenced articles and guidance discussed. Include:

-the problem statement as you understand it,

– all your assumptions,

– definitions of your decision variables

-specify ALL other notations for parameters and sets you use,

-present the algebraic formulation, and

– summarize the meaning behind every mathematical expression (for the objective function and ALL constraints

Assumptions

Before model building, some assumptions should be made to simplify the case, because

real-world delivery problems consist of too many unmeasurable factors that can affect the

delivery process and final outcomes. Here are the main assumptions:

1. The delivery process is deterministic; i.e., no random effects will appear on

delivery time and cost etc.

2. Goods can be transported in normal containers, no special containers

(refrigerated, thermostatic etc.) will be needed.

3. The containers are the only constraints on the goods’ volume, and all goods are

divisible in terms of volume. (No bin packing problems needed to be considered.)

4. The model only evaluates the major carriage routes. The first and last mile between

end user and origin/destination shipping point are not considered. (From

warehouse to warehouse.)

5. There is only one transportation tool available between each two ports. For

instance, we can only directly go from one airport to the other airport in different

cities by flight, while direct journey by ship or railway or truck is infeasible.

6. Overall cost is restricted to the most important 3 parts: transportation cost,

warehouse cost, and goods tariff.

7. The minimum unit for time is day in the model, and there is at most one transit

in a route in one day.

Dimension & Matrixing

In order to make the criteria logic clearer and the calculation more efficient, we use the

concept of matrixing to build the necessary components in the model. In our case, we

assumed there are 4 dimensions.

1. Start Port: i

Indicating the start port of a direct transport route. The dimension length

equals the total number of ports in the data.

2. End Port: j

Indicating the end port of a direct transport route. The dimension length

equals the total number of ports in the data.

3. Time: t

Indicating the departure time of a direct transport. The dimension length

equals the total number of days between the earliest order date and the latest

delivery deadline date of all goods in the data.

4. Goods: k

Indicating the goods to be transported. The dimension length equals the total

number of goods in the data.

All the variables or parameter matrices to be introduced in the later parts will have one

or more of these 4 dimensions.

Decision Variables

We will use the concept of variable matrix, a list of variables deployed in the form of a

matrix or multi-dimensional array. In our model, 3 variable matrices will be introduced:

1. Decision Variable Matrix: X

The most important variable matrix in the model. It’s a 4 dimensional matrix, each

dimension representing start port, end port, time and goods respectively. Each

element in the matrix is a binary variable, representing whether a route is taken by a

specific goods. For example, element Xi,j,t,k represents whether goods k travels from

port i to port j at time t.

varList1 = model.binary_var_list(portDim * portDim * timeDim * goodsDim,name =

‘x’) x = np.array(varList1).reshape(portDim, portDim, timeDim, goodsDim)

2. Container Number Matrix: Y

A variable matrix used to support the decision variable matrix. It’s a 3-dimensional

matrix, with each dimension representing start port, end port and time respectively.

Each element in the matrix is an integer variable, representing the number of

containers needed in a specific route. For example, Yi,j,t represents the number of

containers needed to load all the goods travelling simultaneously from port i to port

j at time t. Such matrix is introduced to make up for the limitation of “linear operator

only” in mathematical programming, when we need a roundup() method in direct

calculation of the container number.

varList2 = model.integer_var_list(portDim * portDim * timeDim,name = ‘y’) y =

np.array(varList2).reshape(portDim, portDim, timeDim)

3. Route Usage Matrix: Z

A variable matrix used to support the decision variable matrix. It’s a 3-dimensional

matrix, with each dimension representing start port, end port, and time respectively.

Each element in the matrix is a binary variable, representing whether a route is used

or not. For instance, Zi,j,t represents whether the route from port i to port j at time t

is used or not (no matter which goods). It’s introduced with similar purpose to Yi,j,t .

varList3 = model.binary_var_list(portDim * portDim * timeDim,name = ‘z’) z =

np.array(varList3).reshape(portDim, portDim, timeDim)

Parameters

Similar to the decision variables, the following parameter arrays or matrices are

introduced for the sake of later model building:

1. Per Container Cost: C

A 3-dimensional parameter matrix, each dimension representing start port, end port

and time. Ci,j,t in the matrix represents the overall transportation cost per container

from port i to port j at time t. This overall cost includes handling cost, bunker/fuel

cost, documentation cost, equipment cost and extra cost. For infeasible route, the

cost element will be set to be big M (an extremely large number), making the choice

infeasible.

2. Route Fixed Cost: FC

A 3-dimensional parameter matrix, each dimension representing start port, end

port and time. FCi,j,t in the matrix represents the fixed transportation cost to travel

from port i to port j at time t, regardless of goods number or volume. For

infeasible route, the cost element will be set to be big M as well.

3. Warehouse Cost: wh

A one-dimension array with dimension start port. whi represents the warehouse

cost per cubic meter per day at port i. Warehouse cost for ports with no

warehouse function (like airport, railway station etc.) is set to be big M.

4. Transportation Time: T

A 3-dimensional parameter matrix, each dimension representing start port, end port

and time. Ti,j,t in the matrix represents the overall transportation time from port i to

port j at time t. This overall time includes custom clearance time, handling time,

transit time and extra time. For infeasible route, the time element will be set to be

big M.

5. Tax Percentage: tax

A one-dimension array with dimension goods. taxk represents the tax percentage for

goods k imposed by its destination country. If the goods only go through a domestic

transit, the tax percentage for such goods will be set as 0.

6. Transit Duty: td

A two-dimensional matrix, each dimension representing start port and end port. tdi,j

represents the transit duty (tax imposed on goods passing through a country)

percentage for goods to go from port i to port j. If port i and port j belong to the

same country, transit duty percentage is set to be 0. For simplicity purposes, transit

duty is set to be equal among all goods (can be extended easily)

7. Container Volume: ctnV

A two-dimensional matrix, each dimension representing start port and end port.

ctnVi,j represents the volume of container in the route from port i to port j.

8. Goods Volume: V

A one-dimension array with dimension goods. Vk represents the volume of

goods k.

9. Goods Value: val

A one-dimension array with dimension goods. valk represents the value of

goods k.

10. Order Date: ord

A one-dimension array with dimension goods. ordk represents the order date of

goods k.

11. Deadline Date: ddl

A one-dimension array with dimension goods. ddlk represents the deadline

delivery date of goods k.

12. Origin Port: OP

A one-dimension array with dimension goods. OPk represents the port

where goods k starts from.

13. Destination Port: DP

A one-dimension array with dimension goods. DPk represents the port

where goods k ends up to be in.

Mathematical Modelling

With all the variables and parameters defined above, we can build up the objectives and

constraints to form an integer programming model.

Objective

The objective of the model is to minimize the overall cost, which includes 3 parts:

transportation cost, warehouse cost, and tax cost. Firstly, the transportation cost includes

container cost and route fixed cost. Container cost equals the number of containers used in

each route times per container cost while route fixed cost equals the sum of fixed cost of all

used routes. Secondly, the warehouse cost equals all goods’ sum of volume times days of

storage times warehouse fee per cubic meter per day in each warehouse. Finally, the tax

cost equals the sum of import tariff and transit duty of all goods. Mathematic formulation is

attached below.

Constraints

1. For each goods k, it must be shipped out from its origin to another node and shipped

to its destination.

2. For each goods k, it couldn’t be shipped out from its destination or shipped to its

origin.

3. For each goods k at transition point j (neither origin nor destination), ship-in times

must equal ship-out times.

4. Each goods k can only be transitioned in or out of a port for at most once.

5. For each goods k at transition port j, ship-out time should be after ship-in time. For

goods k at its origin port, ship-out time should be after order date. (Or stay time

greater than order date, because ship-in time is none)

6. At each route at time t, the total volume of containers should be larger than the

total volume of goods.

7. Check whether a route is used at time t. Because Zi,j,t is binary variable, if a route is

used, sum of Xi,j,t,k for all goods k at i,j,t must be greater than 0. We can scale it

back to [0,1] by multiplying a small number.

8. For each goods k, it should be shipped to its destination port before the

deadline delivery date.

Optimization Result & Solution

The optimization will be performed by incorporating the constraints listed above into the

mathematical model that minimize the transportation, warehouse, and tax costs.

These constraints will be incorporated into the transportation costs equation, as that is what

they affect directly.

Running this optimization algorithm should result in a specific distance between origin ports

and destination ports, which can then be correlated to a nearby city,