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 jS 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?