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.

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.