Capacitated Delay

Use this forum to discuss any issues relating to Systems Dynamics and Systems Thinking.
Post Reply
jwansart
Junior Member
Posts: 9
Joined: Mon Feb 20, 2006 10:49 pm

Capacitated Delay

Post by jwansart »

Hello everybody!

Having read "Business Dynamics" by Mr. Sterman I face a little problem with a structure he calls "capacitated delay" (page 557 or so in the book).

Did I get that right that it behaves slightly lethargical? I tested several demand patterns, changed the lookup funktion etc. and found that it does not like very much to work on a high utilization rate, when there is only a short peak of (extremely) high demand. Can anyone share this experience with me?

I tested the structure in order to model a make-to-order production line in a seasonal demand environment. Now I use the FIFO queue vensim offers. It seems to be much more realistic but a bad style. Maybe some of you pros can propose some more stylish SD-like approach.

I'm kind of novice with SD so please be patient with me ;-)

Thanks a lot in advance!

Joerg
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

Capacitated delay

Post by LAUJJL »

Hi Joerg

Could you join a simplistic model that summarizes your problem? It will be easier to give you an advice for a concrete model.
Regards.
J.J. Laublé
jwansart
Junior Member
Posts: 9
Joined: Mon Feb 20, 2006 10:49 pm

Post by jwansart »

Thank you for your quick answer!

Please have a look at the attached file. I was wondering why the utilization never gets very high. But I had the idea that the reason is that I have not implemented a minimum process time. So it is possible that an order could fly through the stock (Backlog), isn't it? The delivery delay only rises when the overall number of orders rises as well. But I feel that the delivery delay should be dependent of the maximum peak in demand actually.

Is it possible that Little's Law is not appropriate here because I do not focuse on the average rates and times but on the present ones?

Best regards

Joerg

[Edited on 23-2-2006 by jwansart]
Attachments
Capacitated_Delay.mdl
(5.07 KiB) Downloaded 435 times
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

Capacitated delay

Post by LAUJJL »

Hi Joerg

Is is now late here, and I will take a look at the problem to morrow and at Sterman's example too.
It is possible that Little's law does not suit here (desired production).
A remark. The model has only a backlog and no work in progress. Or is the backlog the work in progress?
There is maybe too a bad formulation for the name of the variables that makes the model unclear.
But it is maybe the way it is formulated in Business Dynamic's.
Regards.
JJ
jwansart
Junior Member
Posts: 9
Joined: Mon Feb 20, 2006 10:49 pm

Post by jwansart »

Good evening JJ!

Take as much time as you like. I am very happy that there is someone at all I can discuss my problems with :-)

My model is an almost exact copy of Mr. Sterman's one (by the way, it is page 554 in the book). Actually I have already tested a structure with backlog and work in progress. Together with the FIFO Queue command it seems to work quite fine. But I have been still wondering what the problem really is with the capacitated delay. I feel it would improve my general understanding of SD to know this.

Thank you very much so far!

Best regards

Joerg
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

Capacitated delay

Post by LAUJJL »

Hi joerg

I did not see any bug in your model it is a strict replication of Sterman's example with a seasonned demand.
You can post your model with the fifo to see the difference in results.
I am presently busy and will have a look at your models later on.
Regards.
JJ
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

Capacitated delay

Post by LAUJJL »

Hi

Just an idea before going further on.
the capacity utilization can in theory be higher than 1, 1.25 which is impossible. The lookup function should be modified to adjust to this reality. Even if it cannot happen taking into consideration the input, it is not a good idea to have this kind of incoherence in a model.
Regards.
JJ
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

Capacitated delay

Post by LAUJJL »

Hi

The model is working fine.
The capacity utilization stays at a relatively low value because the capacity 200 / month equal 2400 / year is twice as much higher than the order rate 1200, whch gives an average of capacity utilization of 0.5, which is the case.
Of course the order rate changes sharply but the backlog changes accordingly and plays its role of smoothing the process.
So the results are not surprising at all for me.
Regards.
JJ
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

Capacitated delay

Post by LAUJJL »

Hi

A reason of having badly evaluated the behaviour of the model may come from the wrong naming of the number of orders per year variable which should have been named average orders by month and should have been valuated 100 instead of 1200. And the formula of the new orders rate should have been multiplicated by 12. When one looks at the model one thinks that the order rate is 1200 per month, because the unit is order / month.
Regards.
JJ
jwansart
Junior Member
Posts: 9
Joined: Mon Feb 20, 2006 10:49 pm

Post by jwansart »

Hello JJ,

Sorry for my late answer. I visited my family on the weekend and have not started to work again until today.

I see I made some mistakes with naming. What I intended to model concerning the demand was the expected demand of a whole year and a probability density function for the distribution of the demand.

I will send you another file with three different approaches I tried. First the "traditional" capacitated delay as I posted before. Second a capacitated delay with the backlog modeled as a FIFO queue. Third a separation between backlog and production with the production modeled as FIFO and the utilization calculated ex-post. I like the third one best actually, but it seems to be bad SD style. By the way, I have not changed the input because I think for testing it'll be OK for the moment. I will fix it later on.

My intention is to create a model for a production line which is able to deliver at a certain given delay. But there is also a minimum delay = maximum process velocity I have to consider. Then I want to calculate the production line's utilization to estimate the present production cost. That is why I came to the capacitated delay structure.

I hope this little explanation will help you to understand what I am trying to do.

Thank you for your help!

Joerg
Attachments
Capacitated_Delay.mdl
(14.85 KiB) Downloaded 420 times
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

Post by LAUJJL »

Hi Joerg

I have been travelling all the week and had not time to consult the forum.
I will have a look at the new model this week end.
Regards.
JJ
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

Capacitated delay

Post by LAUJJL »

Hi

I gave a look at the new model.
Firts what do you think is not good SD style?
Secondly about the model.
Two remarks:
The 'flat lookup' is not flat, although it has not a great importance. If not flat the output should not vary so abruptly in a 5 months period.
In the third model you replace maximum capacity by maximum outflow. I am not sure if it is correct.
You then use for the maximum capacity the product min processing time by maximum outflow. It should be too verified. But you may be did it.
A general remark.
If the production line already exixts, I would work first with the simpler model, the first one even if it looks less subtle then the others, and I would modify it only if there are obvious reasons to do it. Whatever the reality is, the Sterman's examples are scholar examples, and whatever you start from it will have to be changed. Then better start with the simpler one and get understanding first with this one before getting further on:
Better looking is not a sufficient reason to choose between different solutions.
Regards;
JJ
jwansart
Junior Member
Posts: 9
Joined: Mon Feb 20, 2006 10:49 pm

Post by jwansart »

Hi JJ,

well, good SD-style seems to be using feedback loops. The FIFO queue actually includes no real loop. Concerning the flat lookup: You are right, I included the wrong one. Originally it was really flat.
Calculating the maximum capacity as product of maximum outflow and min processing time seems correct to me. An assembly line has a maximum speed. This is the maximum outflow. For the capacity I refer to the number of working points in the assembly line. The used capacity is then the number of used working points. The maximum number usable per month is the highest line speed multiplied by the minimum process time. But I agree that I should revise my naming.

Another problem I see with Sterman's example is that I would like to have a mechanism ensuring that orders are fulfilled, i.e. products are produced, before the end of the year. This is an exogenous constraint I have to consider. And this seems to be more simple with the queue.

I agree with you that better looking is no sufficient reason for one choice or another. But reading the textbooks I felt that my structure is rather poor. Not really knowing what to do I tried a lot of different modelling approaches. With the FIFO queue I am able to imitate historical data at least. But I find it hard to judge my own work because of my lack of experience. I have not developed a feeling for what is right, yet.

So once again thank you for your great help.

Best regards

Joerg
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

Capacity delay

Post by LAUJJL »

Hi Joerg

About SD style.
First the dynamic is created by the levels and not directly by the loops. The loops have a big influence on the behaviour, but it is the levels that permit to pass the information from one period to the other. So there are some models that can have no loops at all and still make sense.
To my opinion you are in the first stage of SD where you are more influenced by your readings and all the tools you have at your disposition than by any past personnal experience. It is a very difficult stage where one makes very complicated models with little or no utility. You will have to experiment until you find what in the readings and in the 'syles' is good or bad for you. Thinking that everything that you see written on SD is necessary good for you can be very dammaging.
For instance my problems is a mix of static optimization, of dynamics and of stochastic (where there is a lot of uncertainty simply explained) problems. I have learned painfully that it is very difficult to solve all the problems at once. So I decided not to use conventional building techniques that do not work for me. I split the problem and started with a pure optimization static model written in Vensim with NO LEVELS at all and where the time itself is aggregated. It works very well and willl give not only interesting insights but will increase significantly our margin this year.
When I will have used sufficiently the static model I will then go to the dynamic part, adding one level at the beginning and working with it before going further along. I have planned not to go to the dynamic part before the beginning of next year. After that I will go to the stochastic part not before 2008.
SD is a difficult technique and I think that the better is to start with simple models, the less the levels the better and with the minimum of feed back loops, and work as soon as possible with real data, to learn that a model needs data and must be built accordingly to the data available.
About using or not fifo, the discreet functions are generally difficult to use (a lot of parameters) and should be replaced to my opinion if possible by simpler structures like lookups.
What are your objectives? Is it a better understanding of how the assemply line is working? If so start with a simple model. I think that one of the key of good SD modelling is to understand fully the utility of every equations in your model.
If you are not sure to use or not to use the fifo, it means that you are not ready to use it. Add it only when you know why.
Having a poor structure and a lack of loops is a quality and not a drawback unless you understand fully the necessity to
complicate the structure and add some new stocks or loops.
Regards.
JJ.
jwansart
Junior Member
Posts: 9
Joined: Mon Feb 20, 2006 10:49 pm

Post by jwansart »

Hi JJ,

you are totally right. I'm in my first stage of SD modelling and I find it really hard to consider all the information I have and the techniques I read about. Actually I am trying to minimize my model to avoid "overhead" and confusion. But stocks and flows thinking is rather new for me. I am more used to object oriented thinking.

My goal is to understand the behavior of the production in a seasonal environment. I would like to calculate production cost dependent on utilization actually. I am not really happy with my model so far but it seems to be at least partly realistic.
Now I am working on the process of negotiating with customers, which is also very difficult. I use lookup functions for calculating their utiliy but this is hardly able to be validated. I try to understand why they buy when they buy, too.

All the real data I have is already used in the model. But it is not this much, so I do experiments to see what could be similar to the real situation. I will follow your advice to map only things I have fully understood. That should work for the moment. And I will try to find something about decision making. I read some papers by John Morecroft which could help.

If you know a good source like "modelling decision making for beginners", please let me know ;-)

Thanks a lot for your efforts

Joerg
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

capacitated delay

Post by LAUJJL »

Hi Joerg

I am working too in a seasonnal environment, and decided to simplify things to ignore it in a first stage.
Do you know already the influence of the yearly utilisation on the production cost before trying to spot it each month?
The negotiation process with customers does not need SD to be evaluated. I have read many papers, especially from the SD conference and what struck me is that approximately none of them were ever referring to a preliminary static study. For me static means where the time is not taken into consideration or is aggregated on one single period and not a study where the time is represented in a non SD way which is in fact dynamic.
So to my opinion many people try to model the world dynamically before having even tried to model things more simply without dynamic even if it looks very imperfect.
The best book I know about decision modelling is Patrick Rivett's 'the craft of decision modelling' from Wiley.
This book besides being written with humour, has no preestablished paradigm, and is essentially centred on the need of the client and not on theory using very simple tools.
If you work on it fully, you will realize that there are many ways to skin a cat, preferably with simple methods.
Regards.
JJ
jwansart
Junior Member
Posts: 9
Joined: Mon Feb 20, 2006 10:49 pm

Post by jwansart »

Hello JJ

Your point to try simple things first is fine, but if you have a static model, what exactly can you learn from it? The causal loops can be made clearer, but I thought that it's just the dynamics in the system we are interested in. And how do you aggregate time? Do you consider only snapshots? Then simulation isn't possible, is it?
Another question: Why doesn't the negotiation process need SD modeling? If the key parameters for customers' agreement are changed negotiations' success will change, too, won't it?
I suppose I have not really understood your concept.

Have a nice weekend!

Joerg

PS: By the way, I got Patrick Rivett's book and it seems to be well usable for me. Thank you for that :-)
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

Capacitated delay

Post by LAUJJL »

Hi Joerg

I was all the time travelling these last days and did not see your last answer.
I did not mean that the negociation process does need SD, but that SD can teach you what is important in the negociation process but will not do the job of talking to customers and experimenting with reality.
About the utility of making a static model, I cannot send you my models, because they are too complicate and need a good knowledge of my job, but I will try to build a very simple example to illustrate my point of view.
Regards.
JJ
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

capacitated delay

Post by LAUJJL »

Hi Joerg

Here is joined an example of static model that solves first static problems before solving the
dynamic ones.

Suppose that you are the new CEO of a small factory that makes two products needing workers and machines. For simplification there are only two products and one kind of worker, who can indifferently work to make both kinds of products.
The result of the factory has been equal to zero for some time and the shareholders ask you too make the factory profitable again.

You have to deal with a certain number of realities.

There is no cash in the factory, and the shareholders will not add some more, unless you
can prove that you have been able to increase the profitability of the factory by yourself.
You have already an idea of the main feedbacks that will govern the behaviour of the business in the future.
Having no cash, you have very little margin of action: you cannot make any publicity, cannot find new channel of distribution to increase the demand, cannot hire new sales men, cannot invest to modify your products.
You could build a SD model, which would look like a classic diffusion model plus financial
loops, and many others probably.

But you know too by studying the price, the demand and the number of sales, that there has never been any study about the optimal price setting taking into account the behaviour of the customers when prices change and the internal costs of each product.
Besides you know that if you find a way to increase the margin and make some profits again you will create the cash necessary to follow a policy that would have been dictated by the dynamic diffusion model.
Even if you had had some cash, the policy dictated by a pure dynamic model would have had some effects only after a year, and would be noticed not before one year and a half.
The machines are being replaced every two years, becoming very quickly obsolete. You have then the possibility to adjust relatively quickly the number of machines if you ever decide to decrease their numbers.
A model to find the optimum pricing and number of workers and machines is very simple to make in Vensim. It has no stocks and works on two periods, with the same results with each period.
Reality is generally more complex but it is an example where pure static optimization and dynamic are closely mixed. After having experienced with that simpler static model and implement it, it will be much easier to build a more difficult dynamic model, with that first USEFUL experience made. Of course this optimization could have been done with any other optimization tools, like Lingo, OPL Studio or a spreadsheet and Vensim has maybe not the same power of the specialized optimization software, but it is easy to understand with its sketching possibilities and it is after that ready to be extended into a dynamic model.
I have never understood why Vensim does not commercialize a version only static, to make the transition between static model and dynamic ones easier.
Regards.
JJ
Attachments
static_example.zip
(2.86 KiB) Downloaded 396 times
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

capacitated delay

Post by LAUJJL »

Hi

Here is joined a second model, with the optimization payoff and parameters file included plus the simulation results and the optimization results included.
The difference with the first one is that the workers and the machines are not occupied fully and the more there are workers and machines and the more the level of occupation is high.
In the first model, the worker and machine costs could have been expressed in costs by unit like the other direct costs. In this case it is no more the case.
One can see that the profit by year is 0 Euros by year with the standard number of workers, machines and pricing and 257000 Euros by year with the optimized numbers and pricing.
Regards.
JJ
Attachments
static_example2.zip
(8.89 KiB) Downloaded 343 times
jwansart
Junior Member
Posts: 9
Joined: Mon Feb 20, 2006 10:49 pm

Post by jwansart »

Hi JJ,

I had a look on the first model and I got your point of keeping things simple at first by choosing a static approach. Unfortunately, I would like to calculate costs of a production facility depencent of the utilization rate, so I have to make it at least in part dynamic.
Your optimization is great. I haven't thought about optimizing so far, but it seems to be very smart as you did it. I will reexamine your models tomorrow to understand them fully. Now it is time to knock off ;-)

Greetings from Braunschweig

Joerg
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

capacitated delay

Post by LAUJJL »

HI

In the reality which is often dynamic, the costs of your production will vary with the utilization rate, partly fixed and partly variables and finally may need a dynamic representation.

But before doing this it may be interesting to choose a period, for instance a year, and calculate the average utilization rate and the average costs of production, and try to draw an
influence diagram that shows the relationship between the costs and the utilization.
You can then take a smaller period which will have a different rate of utilization due to
seasonality and test your static model on that period to check its validity.

You can use all the features of Vensim with a static model, in particular and especially reality checks. The only that is strictly dynamic is the game that is not usable with a static model.
You can optimize, use sensibility, use synthesim etc…

If this preliminary static work looks too simple or not useful, do it first completely and you may change your mind afterwards.

When you have built and USED your static model it should be easier to slice the average year period into months to capture the dynamic.

Any questions about your concrete problem are welcome.

Regards.

JJ
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

capacitated delay

Post by LAUJJL »

Hi

I have other work to do presently, but I will this week end, build a dynamic model that builds on the static_example2.mdl , with one level first (the workers) a second one later on (the machines) and eventually a third one (the customers) to illustrate how one can go from static to dynamic.
Regards.
JJ
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

capacitated delay: a two stoks dynamic model

Post by LAUJJL »

Hi

Before going to SD, It should be better to first use the static model that can already bring some insights about the policy to follow. By example, if at the low season, the demand is half the average and at the high season the demand is 1.5 the average, one can calculate the pricing at this time of the year plus the number of machines and workers and adjust these numbers to the reality: difficulty to lay off, to hire plus costs. The same for the machines.
Using the static model will help the eventual building of a SD model that is much more complex to build.
Joined a SD model where the workers and the machines are levels and the price is kept static but still optimized.
The parameters are the starting values for the levels and the coefficient that adjusts the levels depending on the excess of capacity of the levels plus the price.
One can add a third level, the prices with two coefficients of adjustments, one for the capacity of the workers and the other for the capacity of the machines.
In that model, the adjustment only cares for the past excess and does not use the information from the seasonality. Another coefficient should include this information and better the optimization.
One can too imagine all other sorts of rules to optimize.
There does not seem to be many people interested by this thread. So I will shorten my demonstration. If you are further interested, let me know.
Regards.
JJ
Attachments
dyn_example.mdl
(13.17 KiB) Downloaded 310 times
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

capacitated delay

Post by LAUJJL »

hi

I forgot to joing the voc and vpd optimizing file.
Joinde in a zip file.
Regards
JJ
Attachments
dyn_example.zip
(3.85 KiB) Downloaded 327 times
Post Reply