question

pc neo avatar image
0 Likes"
pc neo asked pc neo commented

Is OptQuest the best way to discover scheduling of silo

Attached is a sample model that attempts to find the best sequence of change of materials store in silo3 in order to quickly empty any of the big silos. The intention is to use optimizeit to discover the best sequence of allocation. Currently, it requires 4 parameters to be set in order to represent 3 instances of allocation on silo3. One parameter SiloChange which gives the sequence of allocation to be read from a globaltable. 3 other parameters which represent the type of materials (2 types) that the silo can possibly store and they writes into each row in the globaltable. I have learn this approach from Optimization using sequence version 22.0.1 - FlexSim Community.siloseqques1.jpgsiloseqques.jpg


In actual requirement it is needed to find the best sequence of allocations for all silos with added consideration of different incoming materials at different time as well as more than 3 changes anticipated for each silo during simulation time. This will increase the number of parameters required and this seems overwhelming.


Is there a way to reduce the number of parameters require to meet the need of discovering the best sequence of silo allocation using OptQuest? small_sample1.fsmOr Is there a better way to model such requirement?


FlexSim 23.1.3
FloWorksoptquestscheduling
siloseqques.jpg (81.4 KiB)
siloseqques1.jpg (26.6 KiB)
small-sample1.fsm (70.8 KiB)
· 2
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Julie Weller avatar image Julie Weller commented ·
Hi @pc neo! I think first it might be helpful to get more information. For example, what are you specifically trying to accomplish by using a sequence and what further parameters are you trying to implement? How do the new different incoming materials affect your model parameters? What is the ultimate end goal and why is adding more parameters going to be difficult?

In general, I talked with @Jordan Johnson and he thinks this might be a reinforcement learning problem but first we just need more information. Thanks in advance!

0 Likes 0 ·
pc neo avatar image pc neo Julie Weller commented ·

Thank you for looking into it.


The actual system that we are looking to model is a system of silos to store incoming materials (in shortest time) and maintain supply to end consumer.


We are looking at Flexsim to provide suggestions on when a silo should change to store different material, for all silos, to shorten time to bring incoming material into system.


At this stage, we are looking at using OptQuest to provide the suggestion and hence the list of parameters shall be the number of changes possible for 1 silo * number of silo. The number of changes possible for 1 silo is actually unknown as it depends on how long the system needed to be run and how much is the amount of the incoming materials. So, this is difficult to determine.


In future, additional parameters may be the amount of material to load into silo for each change. Currently, we are assuming full tank filled or filled till supply tank is empty.


0 Likes 0 ·

1 Answer

Jordan Johnson avatar image
0 Likes"
Jordan Johnson answered pc neo commented

It's hard to say if OptQuest is truly the best method. There are many pros and cons for every method.

An advantage of using OptQuest is that it is integrated so deeply with FlexSim. This is the approach our users are most familiar with, and have had the most success with. However, as you note, it is difficult to create parameters in a flexible way. This is partly because with OptQuest, you have to determine your parameter values at the start of the model and then run the model to the stop time without changing those parameters, and only then measuring the results. Creating a set of parameters to answer the question "when should the silo switch" is very awkward.

If you want another approach, I can only think of two more: use Reinforcement Learning, or use a different model.

The idea behind reinforcement learning is that you could train an agent that can tell if conditions are right to change the silo. The agent could observe the silo state and the set of current orders and decide whether to switch the silo or not. As the observations change, the agent could make different recommendations. You can train this agent in FlexSim and then use it to assist someone in the real world. The advantage of this approach is that it is designed to solve the problem you have. In addition, an AI can be trained to handle some random events. The disadvantage is that training an agent to have the proper behavior is very difficult. It takes lots of iterations to get the observation space and reward system right, and then it takes a lot of CPU time (many weeks) to train an agent to be reliable. Due to this complexity, you should only choose this option if the benefit of a good agent justifies the cost.

The final idea is to use a different model. By this, I mean a model built in Python or an official scheduling package. The advantage of this approach is you might be able to develop something that helps the user make scheduling decisions, and it could be relatively fast. The disadvantage is that this is not something that FlexSim can help with, and in most cases, you won't be able to account for randomness.

The problem you pose is a difficult one. Maybe one of these approaches can help you.

· 1
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

pc neo avatar image pc neo commented ·
Thank you for sharing your thoughts.
0 Likes 0 ·