Jump to content
Simio Forum


  • Content count

  • Joined

  • Last visited

Community Reputation

0 Neutral

About dsturrock

  • Rank
    Vice President of Operations 
  • Birthday September 29


  1. Yes, right click on the scenario row that you want and select [i]Copy this scenario's control values to the model[/i]
  2. dsturrock

    Machine Learning and Simio

    Simio does not have a specific machine learning feature, but many people still implement a form of machine learning in one of two ways: 1) Data-driven models, and particularly data-generated models, will improve their operation with better data. As you system runs, and the data improves, the model will automatically improve. 2) Particularly in scheduling applications - a model is never static. Every time your run a model and discover the possibility of creating a better solution (better schedule) you manually improve the built-in heuristics to it generates a better solution the next time.
  3. dsturrock

    Help a Noob Create Entities

    Use the [i]Entities Per Arrival[/i] property on the Source
  4. dsturrock

    Fixed objects

    Right click on an object and select Lock Edits: [attachment=1574:name]
  5. dsturrock

    Moving Worker to a-priori unknown position

    [quote]I have a machine defined as a subclass entity that suspends its movement when it goes in failure. I would like to move a worker to the machine when that happens in order to fix the failure. How can I do this, since I do not know the exact position of the machine when the failure occurs? [/quote] Entities don't have a facility view , so they can't contain nodes, so they cannot themselves be a destination. --One option is that when the machine fails, have it move to a node to fail, and then have the worker go to that node to work on it. --Another possible approach is to model the machine as a node or a server. As long as there are no links to the node(s), you can use the [b]RelocateObject [/b]user defined step to move the object around at runtime. Then you could move the worker through free space to get to the machine's current location.
  6. [quote]Is there a way (or I suppose we can request) that model/object properties be accessible by their parent model's experiment??[/quote] Actually you already can access the states and properties inside an object. For example, if I have a custom object named Dave1 that has a property named Spouse, it is fine to have a response named Dave1.Spouse. And you can do that with no knowledge ahead of time about how components of Dave will be used. To put a finer point on it, I think what you are asking is to [i]be able to change the value of a property inside an object during initialization[/i] and to expose that as a control. Since you obviously don't want EVERY property in EVERY object exposed as controls, you need to have a way of specifying which properties should be exposed. I think the only way to do that now is to defined it as a referenced property in that object, and then pass a property value into that from the model.
  7. dsturrock

    Combine several entities in to one entity

    It's not appropriate for all situations, but the easiest way to solve this problem is to represent the component parts as [b]Materials [/b](an element) and define a Bill of Materials (BOM) that must be Consumed to create your new assembly. The big downside to this approach is the inability to animate the [i]movement [/i]of the component materials. But if you can work around that limitation, this approach is MUCH easier.
  8. Since you are learning, I'll give you a nudge in the right direction, rather than providing the answer. :) [quote]We want to have orders vary from 1 to 6 patties, per order, in a way that resembles this distribution:[/quote] Investigate [b]Random.Discrete[/b] distribution [quote]b) Server (grill) behavior The problem right now is, that the grill (server) can keep taking in patties, even if it's already processing. That doesn't make sense, if you think about it, since you can't put patties into a closed grill. I want it to start preparing an order, as soon as it gets it, and just let the queue of patties build up until the grill is free again. Then, take up to 12 patties into the grill. _____________________________ c) Process times For the grill, I want the process times to follow the amount of patties in the grill.[/quote] Use a combiner to create a batch of burgers to be cooked together. The batch size must be specified in the parent. The batch of entities moves to the grill together. The cooking time is a function of the parent entity's batch size.
  9. dsturrock


    You can get most of what you need using a built in Dynamic Selection Rule like what is highlighted in the attached figure: [attachment=1549:name] If the built-in rules don't provide exactly what you want, you might try a clever Filter expression. If that doesn't work, you might consider creating your own custom dynamic selection rule -- see examples in this folder: [b]C:\Users\Public\Documents\Simio\Examples\UserExtensions\SimioSelectionRules[/b] The problem you were having is that Simio doesn't have a specific function that says "allocate this entity". It has a [b]Seize [/b]step, to request allocation. It has a process ([b]EvaluatingSeizeRequest[/b]) to evaluate if a specific entity can get it. And it has an [b]Allocate [/b]step to force a resource to reevaluate pending allocations. To use your present approach you would need to flag the entity that you want to get the resource, change the [b]EvaluatingSeizeRequest [/b]to allow selection of only that entity, then call the [b]Allocate [/b]step to allow allocation to the remaining entity. But [i]I would try Dynamic allocation first, since that is a built-in way designed to do smart allocation.[/i]
  10. Not directly. Choice 1) You could use the Find step in a loop to find the lowest item and copy it to another array or to an output table. If you don't really need it sorted, but just want to use them in the right order you could just clear each item as you access it and not store it elsewhere. Choice 2) You could write a custom step to do it. Choice 3) You could create an entity for each element of the array, assign a state on the entity and then stick those entities in a queue ranked by that state.
  11. dsturrock


    TransferNode does have statistics tracking, but you need to turn in on (General Category). The TransferNode itself doesn't really have any built-in place to wait (no station), so I sometimes recommend using a Server with a 0 processing time to provide a waiting area.
  12. dsturrock

    Hourly statistics in experiment

    Check out this pair of objects: http://www.simio.com/forums/viewtopic.php?f=36&t=2686 Use of either object will result in a single Tally that records an observation each hour (or any time period) as well as optionally log or output the individual observations.
  13. I just found this conversion chart for BestFit. Unfortunately no source was cited. If anyone knows the source, please let me know so I can add it here.[attachment=1542:name]
  14. dsturrock

    Grouping ModelEntity States

    Unfortunately not. You can adopt a naming convention and meaningful names that make them easier to understand, like: int_FinishedPartsCounter real_ElapsedTime bool_CompletedPhase1 If you have just a single [b]ModelEntity [/b]object that is fulfilling multiple purposes and thus requiring so many states, perhaps you might create multiple objects and have fewer states on each object. For example you might have a [b]Parts [/b]object that has only the states necessary for parts and a [b]Employee [/b]object that has only the states necessary for employees.
  15. I think your version might have the capability to enable LOGGING for TallyStatistics. If so, just turn it on and then look in the Results window under Logs after an interactive run. If your version doesn't have that feature, then you would need to use a Write step in a process to write the values to a file.