I am busy with a Buffer Allocation Problem (BAP) with the following set up:
What I need to do is determine the optimum buffer size to maximize throughput per hour and minimize WIP. The only problem is that the sum of all the buffers (Buffer1.capacity + Buffer2.capacity etc) has to be equal to 10.
I have been looking at the advanced settings of the experiment manager and it seems that the Rules could use but I can't figure it out.
Also, is it possible to easily set up a weighted-multi-objective experiment in Experiment Manager? i.e Try to maximize throughput per hour and minimize WIP (at the same time) and return the optimal buffer size combination based on the respective weighting?
Solved! Go to Solution.
there are only 84 possibilities. Therefore a genetic algorithm ist not recommended.
local tab := ExperimentManager.ExpTable;
for local x1 := 1 to 7 loop
for local x2 := 1 to 7 loop
for local x3 := 1 to 7 loop
if x1+x2+x3 < 10 then
tab.writeRow(1, tab.ydim+1,true, x1,x2,x3,10-x1-x2-x3);
You can include multiple output values into your model. Weighting is generally not really a good idea, since weight are always arbitrary.As soon you have a multi-objective situation, multiple outcomes may have the same objective value.
You can write your own evaluation method in the ExperimentManager under Tools>Advanced settings...>Use evaluation method.
While you do not have that many experiments, you can easily select suitable canidates around the optimum. One more formal technique for this is Data Envelopment Analysis.
The buffers can be 0 so I adjusted your coding as follows: (it works perfectly)
local tab := ExperimentManager.ExpTable; tab.delete; for local x1 := 0 to 10 loop for local x2 := 0 to 10 loop for local x3 := 0 to 10 loop for local x4 := 0 to 10 loop if x1+x2+x3+x4 = 10 then tab.writeRow(1, tab.ydim+1,true, x1,x2,x3,x4); end; next; next; next; next;
I am still looking for the best way to pick an optimal solution due to the multi-objectivity of the model. Any suggestions?