On the Algorithms of the Grid-Based EMMIL E

advertisement
On the Algorithms of the GridBased EMMIL E-Marketplace
Model
Dr. Lívia Kacsukné Bruckner
International Business School
Inst. of Information Systems and Logistics
Gábor Hermann, Akos Balasko
MTA SZTAKI
EMMIL E-commerce model
to integrate logistics
1. Combined negotiation with trading partners and logistics
service providers
2. Choosing trading partners and 3PLs
Auction Algorithm for buyer-oriented
marketplaces
1 .The buyer issues a request for procurement (RFP) identifying
the requirements
2. Sellers bid offering products.
3. The marketplace engine forwards the bids to the 3PLs who
place their bids for logistics services.
4. The marketplace engine aggregates the offers from seller and
3PLs and forwards the best one to the buyer
5. The cycle is continued until the lowest accumulated cost is
achieved.
The original Objective Function
 M  N k k

k
    Pi Qi  1   

 k 1  i 1



min 
 

N
N

 L
l
l
k
l
k 


x
F
(
Q
)
/
Z

V
Q
   j  j  i
j  i  
l i 1
l i 1
 l 1 jS l



k


k


j
j







Qik
Pik

Purchased quantity of product i. from seller k.
Unit-price of product i. at seller k. as a step
function of quantity
Δk
Discount given as a step function after the total
purchase cost at seller k.
xjl є {0,1} decision variable
xjl =1  offer j. of 3PL l. is selected as winner
if
Simplified Objective Function
1
Z
N

Qj,i

i=1
1
Z
N

Qj,i
i=1
to minimize:
then
M
N

j=1
M
Pj,iQj,i
+
i=1
N
 
Vj
j=1
i=1
M
Qj,i +

j=1
1
Z
Fj *
else 1 
1
Z
N

Qj,i
i=1
N

Qj,i
i=1
Basic assumptions:
•Each product has the same weight and cubature
•Sellers have infinite delivery capacities
T1
S1
•Deliveries are separate (from each sellers to the consumer)
T2
S2
•Each transport unit has the same capacity – container size (Z)
T3
S3
•There is no discounts
D
Trick to obtain linear equations
Let us subdivide the variable Qj,i into Qj,t,i such a way, that objective function
remains linear within the domain determined by the container size t and let us
introduce an auxiliary “binary” variable yj,t whose value is equal 1 only in the
case when the products of sellerj must be delivered in just t containers. In all
other cases the value of yj,t must be 0.
M
 
j=1
N
C
t * Fj*yj,t
t=1
Where C is the
upper limit for
+

(Vj
+Pj,i)Qj,t,i
i=1
1
1
Z
Qj,t3,i
N

Qj,i
Qj,t2,i
Qi
Qj,t1,i
i=1
and the value of the help
variable yj,t must be 0 or 1
The constraints to solve the linear programming
problem will be set so that Qj,t,i will be 0 if yj,t is 0
yt=1,yt=2,yt=3
1
Qj,i
The bad consequence is
the big number of variables to solve the
linear programing problem:
Qj,t,i instead of Qj,i and the additional yj,t
How to avoid combinatoric
explosion?
Idea:
Diminish the number of Sellers (Dimension j in Qj,t,i )
Solution:
• Investigate only a limited number of “Best Sellers” (U), selected
by the heuristic criteria “Every goods a delivered by the same
seller”.
• Make the calculation parallel for S < U sellers in
U
S
= U! /((U-S)!*S!)
cases
GRID must be used to exploit parallel computing
capacity
EMMIL 1.0
• Goal:
Simulation of the simplified Marketplace
model in the Grid environment to diminish
the computational time
• Method:
Parametric sweep feature of the PGRADE Grid Portal
Implementation- Base
1
Preparation,
constructing the
combinations
2
U
S
Call the
LP_Solver
Call the
Call the
LP_Solver
LP_Solver (i)
Collect and
compare
the results
Input definition
N
M
U
S
Z
Qi
Mi
Di
i=1..N
FIX_M
FIX_D
VAR_M
N
Number of Products
M
Number of Sellers
U
Number of “best” Sellers
S
Number of “selected” Sellers
Z
Container size (Number of products / Container)
Qi
Order size of Product i
Mi
Middle value of distribution simulating unit price of Product i
Di
Deviation value of distribution simulating unit price of Product i
FIX_M
Middle value simulating distribution of fix cost associated to Seller j
FiX_D
Deviation value simulating distribution of fix cost associated to Seller j
VAR_M
Middle value simulating distribution of variable cost associated to Seller j
VAR_D
Deviation value simulating distribution of variable cost associated to Seller j
VAR_D
Implementation - Generator
1
Preparation,
constructing the
combinations
2
U
S
Call the
LP_Solver
Call the
Call the
LP_Solver
LP_Solver (i)
Collect and
compare
the results
I Generator job
• Calculates the simulation tables (UP,Fix_Cost,Var_Cost)
• Makes the prefiltering and the associated index table of seller
combinations (SeTab )to be matched:
Example:
Combination
M=6;U=5(Se1,Se2,Se3,Se4,
“k=9” of sellers
calculated in a
single Job step
Se6);S=3
Assuming that the prefiltering discarded seller = Se5
as the worst bidder:
S=3
1
1
1
1
1
1
2
2
2
3
2
2
2
3
3
4
3
3
4
4
3
4
6
4
6
6
6
4
6
6
U
S
=
5
3
= 10
Output definition
k
N
M
U
S
Z
Qi
i=1..N
Fix_Costj
Var_Costj
i=1..M
UPi,j
i=1..N
i=1..M
SeTabi,j
i=1..S
k=1..Comb(U,S)
Time Stamps
The output files of the generator differs only in the first number (k)
selecting a column of the matrix SeTab determining a set of sellers to be
involved in the subsequent linear programming solver
Implementation- LP Solver
1
Preparation,
constructing the
combinations
2
U
S
Call the
LP_Solver
Call the
Call the
LP_Solver
LP_Solver (i)
Collect and
compare
the results
II Linear Programming Solver Job
• Transforms the input data to the ASCII
input format of the LP solver
• Executes the Linear LP solver
• Writes out the results
Generated input of LP solver
M
 
j=1
Real Quantities must be positive
N
C
t=1
t * Fj*yj,t
+

i=1
(Vj
+Pj,i)Qj,t,i
Quantities must match the bid
Products of one sellers must
fit in one of the Container
classes defined as a step
function (t=1,2…n container),
where yj,t is coded as yj_t
and Qj,t,I is coded as xj_i_t
yj,t must be Integer
Result of LP solver
Delivers the solution of the LP system represented by the string , value pares of the variables
extended by the input values and by the inhereted and generated time stamps:
k
N
M
U
S
Z
Qi
UPi,j
i=1..N
Fix_Costj
Var_Costj
i=1..N
i=1..M
Succ=T/F
Minimum
i=1..M
Var String
(xj_t_i, yj_t)
Var value
Time Stamps
inherited and new
Implementation- Collector
1
Preparation,
constructing the
combinations
2
U
S
Call the
LP_Solver
Call the
Call the
LP_Solver
LP_Solver (i)
Collect and
compare
the results
III Collector
• Reads the results of the LP solver
submissions
• Selects the best minimum upon the
instance minimums calculated by the LP
solver.
Test in local environment
Container Size and Selected Sellers
18000.00
16000.00
S=3
S=4
S=5
S=6
Seconds
14000.00
12000.00
10000.00
8000.00
6000.00
4000.00
2000.00
0.00
20
30
40
50
60
70
80
90
100
110
120
130
Container Size
The inverse function of Container
size (Z) and the number of
variables of the minimal problem
to be solve explains the predicted
exponential increasing of
calculation time as container size
1
1
Z
N

i=1
Qi
Pilot Implementation using the PGRADE Portal
Input file
“Technical”
input: DLL of
LP_Solver
1:n
Parameter Study Input Port:
Executes the subsequent PS
jobs as many times as many
input files are stored in the
associated storage.
n:1
Collector input
port: retains the
subsequent job
from run until
each preceding
PS job has
terminated
EMMIL 1.0 Portlet “Base”
Change Date
Worcester Polytechnic Institute
26
EMMIL 1.0 Portlet “NEXT”
Change Date
Worcester Polytechnic Institute
27
Implementation improvement:
Bundling
1
2
Preparation,
constructing the
combinations
U
S
Call the
LP_Solver
Call the
Call the
LP_Solver
LP_Solver (i)
Collect and
compare
the results
1,2,…k
Preparation,
constructing the
combinations
k+1,k+2,…2k
U
2k+1,2k+2,…S
Call the
LP_Solver
Call
the
For(j=0;j<k;j++)
LP_Solver
Call the
LP_Solver (I,j)
Collect and
compare
the results
Results of Bundled Grid running
Raw Results
different bundles of 330 original jobs
Granularity 33
15000
Time (Seconds)
Time (Seconds)
Granularity 66
10000
5000
0
1
2
3
4
12000
10000
8000
6000
4000
2000
0
5
1
2
3
4
Process Number
Pre-Solve Idle Time
Solve Time
5
6
7
8
9
10
Process
Post-Solve Idle Time
Pre-Solve Idle Time
Solve Time
Post-Solve Idle Time
Time (Seconds)
Granularity 11
15000
10000
5000
0
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
Process
Pre-Splve Idle Time
Change Date
Solve Time
Post-Solve Idle Time
Worcester Polytechnic Institute
31
Revised Result of Bundle Test
– 4.04x increase
• 10 Processes
– 6.26x increase
• 30 Processes
– 5.04x increase
Granularity Results
60000
50000
Time (Seconds)
• 10 Real Hosts in the
Grid
• Increase relative to a
single process:
• 5 Processes
40000
30000
20000
10000
0
1
5
10
Number of Processes
30
Path of the Developing
EMMIL 1.0
T1
S1
T2
S2
T3
S3
A transporter is
associated to a single
seller
The ultimate Goal
EMMIL 2.0
T1
D
T2
T3
S1
S2
S3
Any transporter may
access any seller
T1
D
T2
T3
S1
S2
D
S3
Transporters are capable
of round trips
(Traveling Salesman’s
problem)
EMMIL 2.0:
Input definition Changed
N
M
U
S
Z
L
Qi
Mi
Di
i=1..N
FIX_Mj
FIX_Dj
VAR_Mj
j=1..M
N
Number of Products
M
Number of Sellers
U
Number of “best” Sellers
S
Number of “selected” Sellers
Z
Container size (Number of products / Container)
L
Number of Distributors
Qi
Order size of Product i
Mi
Middle value of distribution simulating unit price of Product i
Di
Deviation value of distribution simulating unit price of Product i
FIX_Mj
Middle value simulating distribution of fix cost associated to Seller j
FiX_Dj
Deviation value simulating distribution of fix cost associated to Seller j
VAR_Mj
Middle value simulating distribution of variable cost associated to Seller j
VAR_Dj
Deviation value simulating distribution of variable cost associated to Seller j
VAR_Dj
Portlet of the EMMIL 2.0
Fill Product Costs of the Sellers …
and Costs of the Distributors…
New Features in EMMIL 2.0
• The Collector generate a commaseparated text file with the results witch
can be imported to Excel…
• A macro, witch is use an another
Collector-generated file to draw the winner
Distributors for each Seller, and each
Product with a Chart in Excel.
Any Questions?
Download