Case Study: Dough and Cheese

Case Study: Dough and Cheese

myriam_srdg
Not applicable
33 Views
8 Replies
Message 1 of 9

Case Study: Dough and Cheese

myriam_srdg
Not applicable

[ FlexSim 22.2.1 ]

Hello,

I've tried to replicate Case Study: Dough vs Cheese and I have several questions.

  1. The results suggests to label the maximun time a client is willing to wait (MaxTime). Why don't we use item.MaxTime when making the conditions?
  2. In the combiner I want the number of batches to be different according to a empirical distribution (ProductQ) but I have not been able to do it
  3. I accumulate no customer in the longwait queue, which doesn't seem logical to me and I guess that I'm doing something wrong.

Can someone help with this? I share the model here

0 Likes
Accepted solutions (1)
34 Views
8 Replies
Replies (8)
Message 2 of 9

Jacob_White
Community Manager
Community Manager
Hi @Myriam,

Could you please include a link or pdf of the case study you are referencing.

0 Likes
Message 3 of 9

myriam_srdg
Not applicable

Sorry, I thought I did upload the case. Is the case study in the Applied Simulation: Modeling and Analysis using flexsim, page 166.

1662536094850.png


0 Likes
Message 4 of 9

moehlmann_fe
Explorer
Explorer
Accepted solution

1. I'm not familiar with the case study, so I can't comment on what it suggests to do. But your model does use the "MaxWait" label in the pull strategy of the "Too Long Wait" queue. Did you add this yourself?

2. The default way to change the combiner's components list is through the pick option "Update Combiner Component List With Labels" in the OnEntry trigger. This option assumes that you have set up a global table in which each column represents the component list for the corresponding value of the label you use in the trigger option.

To change the value between one and three you would first assign that value to a label (which you already do) and then refer to a global like the following to set the list.

1662541524723.png

Since in this case the column number and value are equal you can also add that option to the trigger and then customize the code to use the empirical value directly without needing to use a global table inbetween.

1662541618933.png

3. Some small issues that I noticed:

- The "Switching" queue pulls customers where age < 90 when it should be age > 90, so people who are willing to switch will do so immediately upon entering the queue.

- The DoughLine queue content is compared to the value 5 when pulling customers instead of the respective customer label ("MaxLine"). Is this by design?

The main reason why you are not getting any customers that leave the queue due to wait time is that the condition will only be evaluated for each customer once - when it first enters the queue. You need to add an event that tells FlexSim to reevaluate the back orders when the age increases past the threshold.

One way to do this would be to add a reevalution event to the list that listens for message to the "DoughLine" queue. Then, in its OnEntry trigger, it can send delayed messages to itself just after the thresholds of 90s and "MaxWait" (would) have been reached.

1662542059495.png

0 Likes
Message 5 of 9

Jeanette_Fullmer
Community Manager
Community Manager

Hi @Myriam, was Felix Möhlmann's answer helpful? If so, please click the "Accept" button at the bottom of their answer. Or if you still have questions, add a comment and we'll continue the conversation.

If we haven't heard back from you within 3 business days we'll auto-accept an answer, but you can always unaccept and comment back to reopen your question.

0 Likes
Message 6 of 9

myriam_srdg
Not applicable

Hello @Felix Möhlmann,

Thank you for the response, and my apologies for not having been able to go back to you before. I was able to change some of the issues that you mentioned but not all.

  1. I was able to create the OnEntryTrigger, Update Combiner Component List With Labels but to be honest I'm not sure what I'm doing with this. What for do you use a global table in the first time? I also don't understand why the global table has 3 columns? Where do I put the information of the globla table? I've tried to put it in the component list - target quantity but I guess I didnt do it correctly.
  2. The DoughLine queue content is compared to the value 5 when pulling customers instead of the respective customer label ("MaxLine"). Is this by design? > That's how the solution on the educational content was. That was the reason for my first question but we have the same doubt so I guess it makes sense to use MaxLine there.
  3. I understand what you are trying to do with the message sending. But why do we update after the MaxWaitingTime? And not for instance every minute?

Thank you very much in advance,

Myriam


0 Likes
Message 7 of 9

jason_lightfootVL7B4
Autodesk
Autodesk
@Myriam By making this post private you may have denied Felix the opportunity to reply to your follow up questions
0 Likes
Message 8 of 9

myriam_srdg
Not applicable
Sorry for that. I hope that @Felix Möhlmann can see it now.

Thanks

0 Likes
Message 9 of 9

moehlmann_fe
Explorer
Explorer

1. The default "Update Combiner Component List" option in the entry trigger uses a global table to store the different lists/quantities that are then copied to the internal list of the combiner. Each column of the table represents one possible list of values where the rows are the quantities that should be received through the 'item-ports' starting with port number 2.

An example: The following table has three possible lists for the combiner. In the first case it would wait until it has received 2 items through port 2, 1 item through port 3 and 5 item through port 4. The second and third column change these numbers to (3, 2, 1) and (2, 4, 1) respectively.

1664345438278.png

1664345452590.png


3. If you reevaluate in a fixed interval, people will likely wait for longer than their maximum wait time would allow, because the next check whether they abandon the queue might be anywhere from 0 to 60s in the future at the point when the threshold value is passed.

Checking once after 90s and once after the max. wait time (every time the evaluation can yield a different result to before) guarantees that people will switch or abandon the queue at the time specified on their labels.

0 Likes