Jump to content

Search the Community

Showing results for 'tally wait times'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Simio Public Forums
    • Welcome and How To Become a Simio Insider
    • Simio News and Announcements
    • Simio Product Details
    • Simio-Related Positions Desired or Positions Available
    • Help Getting Started with Simio
  • Forums for Simio Insiders Only (See Public Forums Welcome topic to sign up)
    • SI General Discussions
    • SI Sprint Releases
    • SI Shared Items
    • SI Ideas and Suggestions
    • SI Known Issues and Workarounds
    • SI Performance Tips
    • SI Non-US Cultures
    • SI Student Competition
    • SI Educational
    • SI Libraries and Objects
    • SI Animation and Visualization
    • SI Distributions, Functions, and Expressions
    • SI Simio Tabs
    • SI Experimentation and Optimization
    • SI Functional Approaches
    • SI Industries / Domains
    • SI Types of Simulation
    • SI Emulation
    • SI API

Categories

  • Files
    • Academic Information
    • Product Information
    • Case Studies

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


First Name


Last Name


Company/University Name


OCCUPATION


ICQ


WEBSITE


YAHOO


AOL


LOCATION


FACEBOOK


GOOGLEPLUS


SKYPE


TWITTER


YOUTUBE

  1. Hello everyone, I'm thrilled to share that I've successfully established my simulation model and conducted extensive verification and validation. Now, I'm ready to take the next exciting step: experimentation! While I've made considerable progress, I've encountered a minor setback. It seems that for certain scenarios, the response 'AverageWaitingTimePerTruck' isn't displaying any values. Interestingly enough, this issue only arises when conducting experiments with higher throughput values. The response is defined by averaging the tally statistic 'WaitingTimeBeforeReloading' of the Truck Entities in my model. Have any of you experienced a similar situation before? If so, I would greatly appreciate your insights on resolving this matter. Thank you in advance for your support! Best regards, Toon
  2. Hi There, I have lots of experience in simulation but I'm new to Simio - my apologies if my Simio vocabulary/conceptualization is off or if this question has been asked already. I'm working to build a queue model simulation with a network of services and multiple staff types. In my mind, it makes the best sense to do this using the standard library of servers and resource pools (to visualize the network for stakeholders and be able to model multiple staff with different schedules that can each respond to multiple services). Right now, I am starting with a single stage M/M/c type queue to make sure that my implementation is correct before scaling this upwards. I checked out the SimBit titled 'Source – Server – Sink' that has three different M/M/c implementations; however, none of them use Resource Pool objects or combine process triggers with the standard library. I was able to implement a basic model that tries to combine a resource pool with a server by triggering separate Seize and Release process triggers on entry to the server object and after the processing time is completed, respectively. It runs without error; however, the results for average time in system (calculated by an average of a tally statistic that is only recorded for every 500th customer/entity), the results are one third less than in a scenario where I don't use a resource pool and set the capacity of the server explicitly, (which I validated against M/M/c formulae results). Does anyone have tips for how to link servers and resource pools and troubleshoot this scenario? Is there a SimBit or other example out there that is relevant? Am I triggering the seize/resource processes at the wrong points in time? Or is my framework for how to conceptualize this in the Simio environment missing a key concept? Thanks!!
  3. Hi again Liz. I found the problem but it wasn't easy to figure out with the RowForKey formula. I used the search function with tablerows as collection type. When I filtered the trace on the search and tally process, I found that the the table index of the found item and index of the search function was not the same in some cases especially for "small" type products. Further even the available row count of the products table was not returning the correct number rows in the table. The products table has 810 rows but it was finding 197 rows only in the search function. I had a separate "productsize" table which consists of "size" key string property and some other real type properties such as forklift capacity for each product size. I had used this productsize.size as foreign key in my main products table. I figured that the search function automatically filters to the products those matches the size of the product eventhough in search function match condition I only write ModelEntity.EntityType==Products.ProductName. When I removed the foreign key from the products table the problem was solved. Thanks for your help anyway. It was very useful and saved a ton of time from me.
  4. Thanks you so much for you help Liz. That's such an advanced modeling techinique I had never heard of before. I would never be able to figure it out myself. It has almost worked but correctly. It has recorded the results for some tallies correctly but recorded some tallies on the wrong tally. I think there is a problem with the set row feature somewhere. I have no problem with setting rows elsewhere in the model such as arrivals from production and arrivals from truck tables create entities correctly with all their state variables. The product list table also has unique "productnames" (entity instances), set as key and auto set-row property is set to true. I have added another coloumn with element tally statistics reference (DistanceOnForklift) to products table. I have auto created it as you suggested and turned on the auto-set row feature to true. Both my product names and tally statistics coloumn are set as key in same "products" table. But the tally step still doesnt record them to the correct tally statistics. Where am I doing wrong? Would you still be able to help me? Shall I send you the model in private message? Here is the formula I have inputted 'Products[Products.ProductName.RowForKey(ModelEntity.EntityType.Name)].DistanceOnForklift' and in the picture below you can see that tally step records into wrong tally element on last three entries. I would be glad if you could help me.
  5. I would recommend using a Data Table. One column could have all your entity types defined. The next column could be a Tally Statistic Element Reference Property. This column would match up the Tally statistic you want to correspond with the Entity Type. You could choose to auto-create these Tally Statistics from the Data Table. If you change the Tally Statistic Property's column Reference Type property from 'Reference' to 'Create', this will make the Tally Statistics for you. I recommend the Help page "Table-Based Elements (Auto-Create)" in Simio for more information. If your Entity Instances noted in the Data Table are unique, no duplicates, you can set that column as a Key. With that column as a Key, you could use just the Tally step and use the RowForKey expression. RowForKey will allow a key input to search for in that column. If the model entity is driving the process, you could use an expression like this for the Tally Statistic Name 'Table1[Table1.EntityInstanceProperty1.RowForKey(ModelEntityReference)].TallyStatisticProperty'. Since it seems this process will be on the OnRunEnding, it will not have a reference to a specific entity, so you will most likely need a Search step to find the entities still in the system. I would set the Search step to find Infinite things and let each entity reference exit on the found branch. If the EntityInstanceProperty column in your Data Table has the Auto-set Table Row Reference property to 'True', the entities will already know the row reference and your Tally step Tally Statistic Name property could be 'Table1.TallyStatisticProperty'.
  6. Thank you so much Liz! I understand exactly what you mean. However we thought that using Tallies would give more correct results for the average value calculations. I am also thining that running and add on process on "run ending" would allow me to calculate the distances statistics for all the entities even if they are not destroyed. Now I know how to calculate it but there are around 800 different product types. So I have to write 800 if conditions saying if decide, entity.type.name == "A" is true, Tally "distanceonforkliftA", on false exit, if decide entity.type.name == "B", Tally "distanceonforkliftB" etc. Is there a way to automatically create tally statistics for each entity instance?
  7. Let's see if I can elaborate... The following outlines the relevant characters in simio file "table_selection_by_name.spfx." Model->Definitions: Properties: OptionId (Entity Property, default=null) _SelectedTable (Table Property, default=tableOption1) States: RowId (integer, default=1) maxEntities (integer, default=2) ModelEntity->Definitions: States: _id (Integer, default=0) row_num (integer, default=0) temp (integer, default=0) Model->Facility: ModelEntity Types: Option1, Option2 Source1, Server1, Sink1 Source1->Entity Arrival Logic: Entity Type = OptionId (Reference Property) InterarrivalTime = 1 second Source1->Stopping Conditions->Maximum Arrivals = maxEntities Source1->Add-On Process Triggers->Created Entity = Source1_CreatedEntity Sink1->Add-On Process Triggers->Entered=Input_Sink1_Entered Model->Facility->Controls->General: OptionId = Option1 _SelectedTable = tableOption1 Model->Processes: Input@Sink1 Add-On Processes Input_Sink1_Entered: [Begin-> Tally(temp = ModelEntity.temp) End] Source1 Add-on Processes: Source1_CreatedEntity: ************************* [Begin->Decide1(IsOption1 = True)-> Assign(maxEntities = tableOption1.AvailableRowCount)-> SetRow(tableOption1, RowId)-> Assign(ModelEntity._id = tableOption1.id, ModelEntity.row_num = tableOption1.row_num, ModelEntity.temp = tableOption1.temp)-> Assign(RowId = RowId + 1)->End Decide1(IsOption1 = False)-> Decide2(IsOption2 = True)-> Assign(maxEntities = tableOption2.AvailableRowCount)-> SetRow(tableOption2, RowId)-> Assign(ModelEntity._id = tableOption2.id, ModelEntity.row_num = tableOption2.row_num, ModelEntity.temp = tableOption2.temp)-> Assign(RowId = RowId + 1)->End Decide2(IsOption2 = False)-> End] ************************* It is here that I could like to simply the logic using something like _SelectedTable instead of tableOption1 and tableOption2. I would like to know how to replace Source1_CreatedEntity's above step definitions with something like: [Begin-> Assign(maxEntities = _SelectedTable.AvailableRowCount)-> SetRow(_SelectedTable, RowId) Assign(ModelEntity._id = _SelectedTable.id, ModelEntity.row_num = _SelectedTable.row_num, ModelEntity.temp = _SelectedTable.temp)-> Assign(RowId = RowId + 1)-> End] But this replacement does not work. The following works, but I'm searching for a way to do this without replacing the column name with an indexed value: [Begin-> Assign(maxEntities = _SelectedTable.AvailableRowCount)-> Assign(ModelEntity._id = _SelectedTable.id[RowId, 1], ModelEntity.row_num = _SelectedTable[RowId, 2], ModelEntity.temp = _SelectedTable[RowId, 3] )-> Assign(RowId = RowId + 1)-> End]
  8. Set "log observations" property of tallystatistics element as true (under advanced options category of tallystatistics element). then at the end of the simulation you will see all individual observations from results-->logs-->tally observation log in a tabular format. If this not works for you then there exist other alternatives? Will you plot these values dynamically or statically (i.e., at the end of simulation)?
  9. Good day, I have a tally statistic element that contains random values (in my case, the time to process an entity based on many factors which are also random). I was wondering if it is possible to access the values of the tally statistic individually, or in the broader sense, as I am trying to plot a curve from this single tally statistic. Thank you in advance. Eduan
  10. since exclusion property checks the expression at the start of the simulation run to determine if this step should be excluded from the run my suggestion does not work. simply omit this suggestion:( and thus decide step before the tally step best suits your purpose.
  11. you can not find .lastrecordedvalue from dropdown menu. Just type it, it will work. Tally1.lastrecordedvalue means just the last tokens value (in your case state's value recorded by tally1 element. I think if Tally1.lastrecordedvalue == 0 which means 1 for exclusion property this tally step should be skipped for this token. And, it is the case what you want to achieve. Just try, I think it should work...
  12. Thanks, but I tried with a decide step before the tally that verify State>0. And it works perfectly. How ever, Where comes from the .lastrecordedvalue? Because it didn't appear in the expression tab but the Simio's model accept the expression and it surprised me pleasantly
  13. Hi, It works using ProcessName.Enabled. I think It could work also with the delay step generally, but in my case I cannot do it in that way because the process with the period time was related to a server that accomplished the funtion of allow passing depending of the type of entities to my system model. Thanks a lot, for both of you, for your answers. Sorry to bother you again, but I just wondering If someone know how can I exclude the zero numbers on a tally wich value is determinated by a state. I tried in the Tally's advance options in exclussion expression like State==0 and also as Tally==0, but inmediately does not appear in the results tab
  14. Hello, I have a network with one source and different sinks. I use add on process on the output of my source to choose the sinks based in the capacity. When I run the model, all created entities destroyed in the sinks correctly but in result part, "TimeInSystem" is equal zero. Due to add on process, is it happen?Should I calculate time in system with Tally? Best, Nadere
  15. If you want to see a stat in the Pivot Grid, you need to register it in a Tally step. Create a new Tally Statistics element on your Definitions tab. Add a Tally step in your process.
  16. For each location where you want to start a time interval (Server 1 and "the very beginning" in your example) you would need to add a state to the ModelEntity (NOT to the model). Then for each place you want to end a time interval (server6, "the very end", and server4 in your example), you would need to add a TallyStatistic element and Tally and observation at the point. For example to record the time between between Server1 and Server6: create a modelentity state named TimeDepartingServer1 assign TimeDepartingServer1 the value of TimeNow when entity departs Server1 create a TallyStatistic element named Server1ToServer6Time record a Tally observation (using node or Tally step) at Server6 recording the value TimeNow-TimeDepartingServer1 to Server1ToServer6Time add a status or floor label using the expression Server1ToServer6Time.Average
  17. Good day everyone, I need to acess the average waiting time in a member input buffer of a combiner. First of all, how is there not an easy option to acess average time in queues? Most of the times I have to tally everything, which in turn doesnt work with experiments... It has been a real struggle. Anyways, I was using the approach of using an entyti state variable to record the time when it enters the member queue and another one to register when it leaves the given queue and then tally it. The problem is with combiners, the parent entity "wins" and so using ModelEntity.State Variable - reffering the one from the member - does not work. Any ideas? Thanks
  18. I would add a process something like this to determine which entities have waited too long and Tally them: Then execute that process at the point you want to record it, something like this: Then an expression like LongWaitEntities.NumberObservations would give you the number of observations in that Tally. You will also see a TallyStatistic that provides the average value of the observations: I was having problems uploading multiple pictures so here is a composite, but out of order:
  19. Hello, The Average Waiting Times for all 3 entities don't look right. They are in the order of 0.0592 to 0.0854 minutes. Can someone help me? Thank you. Walter Assemply Line.spfx
  20. Hi, The Decide step is looking a the variable ModelEntity.CustWaitTime but that state is never assigned a value so it is always False. Also this state is a DateTime state, but should probably be a Real State instead with the Units of Time. Assign the state a value or just use 'TimeNow - ModelEntity.TimeCreated > (5/60)' expression. To use a Tally as a count, I would recommend just using the Number Observations result (automatically recorded) and either set the Expression to '1' or actually record something like 'Run.TimeNow - ModelEntity.TimeCreated'. You cannot use the TallyStatistic Name in the expression. Best, Katie
  21. Hi All, I've got a simulation that creates entities based on a data table - premiumCustomers and regularCustomers. I've got a tally defined PremCustWaitTillService that tallies: Run.TimeNow - ModelEntity.TimeCreated for premiumCustomers. If the premiumCustomer waits longer than 5 minutes, I want to be able to tally these events such that at the end of the simulation I can see x discounts have been awarded to premiumCustomers in the results stats in a tally stat called CountDiscountsGiven. I might have a couple of issues that I am confused on here. In particular: Using an entity's wait time as a conditional statement for assignment in Processes. When the premiumCustomer enters the server (processing), I tally PremCustWaitTillService with Value: Run.TimeNow - ModelEntity.TimeCreated. I imagine a conditional that states something like If PremCustWaitTillService > 5 I updated a tallystat CountDiscountsGiven + 1 but I can't seem to get it to work - I don't see any entities changing color (as I've set them to if they wait longer than 5). I've attached my file because my terminology may be off - the sim runs but no CountDiscountsGiven values show up. SpeedeeCarRentalNew.spfx
  22. The primary objective of setting warmup time is to reduce or eliminate the effects of any startup bias from the reported statistics (especially when starting "idle & empty"). Perhaps the best way to determine an appropriate warmup time is by plotting the observations of some key statistics and then visually determining at what point the starting bias is minimized. You can accomplish this by: --Creating a real-time plot in the facility view. --Enable logging on some Tallies and then create a Dashboard on that log. --Use a Write step or ExcelWrite step to write each Tally observation to a file and plot it externally. Generally an approximation is "good enough". --If you make it too short, you may include some bias - but the further away you are from time 0 the less the impact of that bias. --If you make it too long, you are just throwing away potentially good results requiring a longer replication to get equivalent results. A warmup that is too long is safer than a warmup that is too short. In general, the longer your replication is compared to the warmup time, the less important the warmup is. For example if you are running for 8 hours and it requires about an hour to reach steady state, then the warmup period is quite important since more than 10% of your data is potentially biased. If you are running for a year, and you reach steady state in a few hours, then the warmup period is much less important and possibly even unnecessary since less than 0.1% of your data is potentially biased. The number of replications you need to run is a totally different issue and has no impact on the warmup time issue. Any good simulation textbook, such as Simio and Simulation: Modeling, Analysis, Applications should explain this in detail.
  23. The expression (inventoryA+ inventoryB)/(OrderA+OrderB) will always work if either is > 0 because there is no chance to divide by 0. The expression (inventoryA)/(OrderA) will not work if the only product produced is B because it will cause a divide by 0. I'm not sure why you would want to record a Tally observation when there are no observations yet? And it seems equally inaccurate (but won't generate an error) if you record a Tally observation on both service levels even though you only just produced one of them. It seems like the correct approach is to record the service level ONLY on a product that has just been produced or completed. But in case I don't understand what you are trying to do, to do exactly what you requested: 1) For the observation Value use an expression like InventoryA/Math.Max(1,OrderA) to avoid the divide by 0, but it will generate a bad value when the value is undefined. 2) To avoid recording that bad value, in the Advanced Options > Number of Observations field put the logical expression OrderA>0 which will cause it to record 0 observations when false or 1 observation otherwise.
  24. Hi, I have a simple two stage supply chain network with 2 products (source), 1 Store (workstation), 1 warehouse (workstation), and 1 sink. 2 entities represent orders for each product, and each entity carries orders from data table. Another 2 entities represent replenishment.When orders are greater than current inventory, the store sends a signal to DC and ship replenishment. I use subclass workstation to process the orders, but I couldn't set up the correct logic for calculating service level, which is inventory/orders. In my process, I can put a decide step and say if modelentity.product1 is greater than 0 then calculate service level . This works (no product 2). I can also put a decide step and say if modelentity.product2 is greater than 0 then calculate service level. This also works (no product 1). However, if I put a decide step and say if modelentity. product1>0 or modelentity.product2>0 then calculate service level, I get error message.In the tally step, I have to put (inventoryA+ inventoryB)/(OrderA+OrderB) to make it work. if I put (inventoryA)/(OrderA) and add one more row (inventoryB)/(OrderB), it doesn't work. Now the problem is I cannot calculate the service level for each product. Does anybody know how to solve this problem? Thank you.
  25. One option is to look at the HourlyStatistics SimBit. This provides a general approach for collecting any statistic in any time periods. You can also do something somewhat similar using TallyStatistics that are specified in a Time Indexed Table. For a single replication with any use of TallyStatistics, you can also Enable Interactive Logging (on Advanced Options) to see the individual tally observations. The ultimate is to use the Write or ExcelWrite step to record any information at any time. For example each time you want to record the value of an expression or state, you might write out ReplicationNumber, TimeNow, ExpressionValue, (and anything else that might be of value).
×
×
  • Create New...