Jump to content

Search the Community

Showing results for 'rps ranking rule'.

  • 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. You want to make the servers have a Capacity Type of Schedule and follow the default Standard Week. If you don't want to give them a lunch break, just change the definition of the Standard Day. Leave the default Off Shift Rule of Suspend Processing. The easiest approach for arrivals is to have a Source with an Interarrival time of 4.33 weeks (or 4 weeks) and an integer random distribution for the Entities Per Arrival. Doing a "first Monday" is possible, but a bit complicated because Simio time does not have the concept of Month because months are of varying size. You could probably specify the initial Time Offset to be early in a month, then maybe make the interarrival time be something like DateTime.DaysInMonth(DateTime.Month(Timenow),DateTime.Year(TimeNow)) which would make the next arrival be exactly one month later (same day of the month). When you say you have no buffers, what do you mean? If an entity arrives when all servers are busy, should it be balked (possibly disposed) or should it wait somewhere like on the server input node, on a path or in the Source output node? If the above arrival approach isn't exact enough, you can put exact arrivals in a data table. The arrival time could be specified at any exact datetime you desire and still have the Entities Per Arrival be a distribution.
  2. Hi, One way to do this is put a Dynamic Selection Rule: Smallest Value First on the Worker, with the value expression of: Candidate.Entity.DirectDistanceTo.Object(Worker). This could work.
  3. Hello River, I downloaded your files. The Gate512 was missing. I removed the information in the "30 Departure.xlxs" file that I can run the model ;-). Generally I understood how it works. Answer to your first question: I think you mean these two ways, right? From the left and from the right. In this case I saw that you used the "Routing Logic" in like all Transfernodes. The Outbound Link Rule is "Shortest Path" and you set the "Node Name" to "Input@Takeoff" Simio is using everytime the shortest link path now. Like in the screenshot below: In my opinion it would be better to set the destination once after the Entity got created in the Source for example :-). There are different ways to do that. In your model I removed all Routing Logic in the Transfernodes and used the Routing Logic only in the Output-TransferNodes of the Sources. In Simio you need only to use one time a SetNode-Step or a Routing-Logic to set the destination of an Entitiy and Simio will follow the paths or travel in the FreeSpace. You can use for example a NodeList with 2 different destinations and this Routing-Logic: With the "Selection Goal" Random Simio will randomly choose the destination from the NodeList. I uploaded you your model with the changes as an example: Problem on the taxiway version 17A.zip What did I changed? 1) I removed the Routing Logic in all TransferNodes. 2) I added new Routing Logic to the TransferNodes of the Output-Node of the Sources. 3) I added a NodeList with 2 new Nodes. 4) In the two new Nodes I used a Nodes-Entered-Process and a Transfer-Step to transfer the Entity to the Input of the Sink. Answer to your second question: You can change the destination of an Entity any time. In the Path (Link) you have a function called "NumberTravelors" for example to get the number of travelors currently on this path. So you can use a Expression like "Path123.NumberTravelors < 2". This can be used to decide if a way is full allready that the other way get selected. Or you can use a Integer-State and count up and down. I would use a Node-Entered-Process in the last possible node with a Decide-Step and two SetNode-Step in this case :-). I hope my answer will help you. When you have any other question, you are welcome! Best regards Pascal
  4. Hello, I have selected Suspend Processing in the Off Shift Rule portion of my server modules but when I use a Status Label to indicate the Resource.Capacity.Utilized / Resource.Capacity, it appears as though the resources are not going off shift until after processing the entity in the server calling on the secondary resource. What else do I need to do? I'd like for the Resource to go off shift (and not finish the process) according to the Work Schedule assigned to it and then pick back up the processing of the entity when it gets back on shift. I've looked into several other posts but they seem to be outdated. Thanks!
  5. Hello Javiera, Based on how the model is set up, Guardian_1 and Guardian_2 follow Work Schedules with specific Day Patterns. Looking through the Trace lines, it appears that Pedido_PU.597 arrives and seizes Guardian_1 which, not much longer after it was seized, was scheduled to go off shift based on Work Schedules. The current Off Shift Rule is 'Suspend Processing' which causes the entity being processed to be suspended until the exact Resource is back on shift. To allow the entity to choose an alternative on shift resource, the Off Shift Rule property can be changed it to 'Switch Resources if Possible'. Best Regards, Khaled
  6. Hello indsiders, I have the following problem, which i broke down for better understanding: The next time Server2 is free, it should select the red entity with the priority 1 (Dynamical labels notify the Entity.Priority) even if the red entity has not reached the input buffer of Server 2 at that specific time. It seems like i need a ranking expression that says: Server2 select Entity.Priority == 1 out of the input buffer. If there is no Entity that matches this condition wait until a entity with the matching condition arrives in the input buffer. I tried the seize, allocate and reserve step. But nothing is realy acceptable. I assume it's an easy problem, but after several hour of trying i gave up :(. Can someome help me ? Best regards, Benjamin
  7. Dear all, I am searching for a way to set the off shift rule for a server based on an entry in a data table. For the work schedule itself I have found several ways to relate it to a data table, but none for the corresponding off shift rule. Is there any?
  8. Hello, I am trying to rank (order) jobs based on their processing times. On the attached model, the server should process jobs as : Job4, Job3, Job2 then Job1 but that is not the case because Job1 is always the first to be processed and the remaining jobs are ranked as expected. Is there anyone who can explain to me why is that ? Thanks. MyNewModel.spfx
  9. I am trying to make a routing decision based on the Candidate node's routerequestqueue's summation of the entities user-defined property. If there are different types of entities with ex. different priority levels. I would like the routing process to choose the transfernode which has the smallest total sum of it's entities priority level. the transfernode that needs to be chosen also has a routing group attached to its entity destination type rule where its final machine has 0 buffer and due to a blocked destination rule, there will be a queue build up at the transfernode that needs to be chosen. I have thought about using a state variable for each node and using add-on process each time a unit enters and leaves a node but because the main model has many multiple nodes the node's entity priority sum has to be able to be accessed through the candidate.transfernode._________________. For example during the routing step in the process section, I have candidate.transfernode.destinationroutinggroupname.routerequestqueue which gives me the node's number of units waiting, but i need to be able to access the candidate nodes summed queued property. Is there either a way to directly access this information, have looked at the expressions and having a hard time finding something. failed attempt: candidate.transfernode.destinationroutinggroupname.routerequestqueue.population.defaultentity.priority.summation or is there a way to use the add-on process where i am adding/subtracting the priority levels, but somehow attach it to the candidate.transfernode's property Hopefully this makes sense. If you look at the file, please ignore the upper half and focus on the transfer nodes maintransfer, transfernode1 and transfernode1_1. maintransfer has an entered add-onprocess which is the subject of this question. the route process and it's selection expression is what I'm trying to adjust but find a way to express the candidate transfernodes of transfernode1 and transfernode1_1 (which are part of the XferRouting group). I'd like to choose and compare the total summed priority level of each node's queue. Simple_Routing.spfx
  10. Entities are prioritized in server according to the server Ranking Rule. Check my attached model. I set Entity1 priority to 1, Entity2 priority to 2 and told the server to prioritize the ModelEntity with the highest priority value. You can play with that logic to prioritize everything the way you want. entity priority.spfx
  11. Well, I seem to have made some progress. I realized I was trying to sort the contents of the station incorrectly. When I started using the "Contents Ranking Rule" the entities in the storage queue lined up correctly. I then found that I could assign a string Element Reference Element state variable "ElRef" to TestStation.Contents.ItemAtIndex(CycleCounter ) where TestStation is the name of my station with a storage queue. This returns a reference to the entity at wherever the cycle counter is at for example, it might find "entity.27" for the current reference. This is where I get a bit confused. I was able to then search the storage queue for TestStation.Contents.ItemAtIndex( CycleCounter)==ElRef. This is the only way I could figure out how to access the existing state values of the entity with reference "entity.27" or whatever as it would be guaranteed to exit the found branch. From that point I believe I can test the states of the found entity to see if it is a good fit to enter the system. If not I can increment the CycleCounter if there are more to check in the prioritized storage queue. My sense is this "should work". But it does not seem as efficient as one might like. I am curious if there might be a more direct way to access the entity's attributes without the search step. Thanks, Jim
  12. Hi, I'm working on a model with multiple paths and I'm using time paths to move entities. I recently noticed that the "Shortest Path" Outbound Link Rule doesn't work with time paths since it looks at the size of the path (as in, the length of the drawn segment) instead of the time it takes to travel the path. Is there any way to have a transfer node choose the time path with the shortest travel time? Thanks.
  13. Hello, a Server block has a property named "Off Shift Rule" This is normally set to "Suspend Processing", i.e. the server signs off at the end of the shift and abandons all the waiting work. If you want to finish the waiting work, choose the other option, "Finish Work Already Started" I suppose that's what you want.
  14. If the parent entity knows how many bags belongs to they, you could set this expression in combiner's Batch Quantity property, something like my new attached model. Then you set the bag and passager IDs in the Ranking Rule property. Match Quantity.spfx
  15. Check the server property Ranking Rule. This property determines the order entities are processed. Look at the attached model. I assign the Entity.Priority when it cames out of the sources and set my server to rank entities based on the Entity.Priority expression. I hope it helps. EntityPriority.spfx
  16. Hi Benjamin, The first thing I recommend is to select Server2 and change the Ranking Rule to 'Smallest Value First' and the Ranking Expression to 'ModelEntity.Priority'. Doing that will allow the entities that are currently arriving to Server2 to jump ahead of higher valued entities in the input queue. In order for Server 2 to process, when free, an entity with a priority value of 1 even if has not entered Server 2's input buffer at that point, you will need to use a process. This process only looks at values that have entered the paths to Server2. Create an AddOnProcessTrigger for Entered for the two paths going to Server2. -Insert a Decide Step and have the Decide Type be 'ConditionBased' and the Condition Or Probability be 'ModelEntity.Priority== 1'. -Insert a Reserve Step after the True arrow of the process. Change the Resource Name to 'Server2'. This reserves Server2 for a ModelEntity with a Priority value of 1 if such a ModelEntity has entered either of the two paths leading to Server2. This is a general idea how to begin to solve your problem. If you want to do further reading, check out the "Reserve" page in the Simio Reference Guide. All the best, Caleb
  17. Hey I am new member and a new user of simio! English is my second language so bear with me, great product btw! I would like to ask some questions about simulation that is unknown for me.... for example ( in my case) I have a real time between costumers, real times for each specific server, and server 8 ( that costumers all go through).... So I have a make a simulation. situation of this specific queueing is: I have 1 source and 7 servers ( the first 4 are equal or Equivalent and the server 5,6,7 are equal). MY question is following: -Can I make a one DATA table for servers 1-4 ( they are equvalent) and another for 5,6,7 ? Or do I have to create 7 data tables ( for each on own)?? - And there isn't real FIFO neither LIFO ranking rule, there is specific, And I don'0t know how to adress this to add specific ranking rule for my case - Do I have to make 2 model enteties cuz there are 2 differnt servers for this case? My primary goal is utilization of server 8! is ranking important or it doesn't matter? thank you very much!
  18. OK, and maybe I stumbled upon off shift rule "finish work already started" in process logic... am I on the right track?
  19. As I downloaded the model it had an error in the RankingRuleExpression of Cashier 1. This field requires a number and you were giving it an entity type. Instead: --Set priority of OTCustomer to be 1 and set priority of Prescription customers to 2. --Set this ranking rule as Smallest Value First with the expression "Entity.priority". Now, whenever both types of entities are waiting, the OTC will be selected first. To select from the set of cashiers, --Create a Node List named Cashiers (graphically or in Definitions tab) containing Input@Cashier7, 6, ...Input@Cashier1. The order matters. --For your WaitingArea node select: ----EntityDestination: SelectFromList ----NodeListName: Cashiers ----SelectionGoal: Preferred Order (or experiment with other rules) ----SelectionCondition: Candidate.Node.AssociatedObject.Name=="Cashier1" || Entity.Priority==2 The first 3 properties above force all entities to individually select a cashier, starting from bottom to top (selecting Cashier1 only if no others are available). The SelectionCondition says Any entity can select Cashier1 or priority 2 entities can select any cashier. The BlockedDestinationRule of Select Available Only forces entities to wait at that Waiting_Area node until a Cashier is available. Unfortunately node doesn't have a way of displaying entities that are waiting. If you want to display and control entities I recommend replacing that node with a Server with 0 process time. This is an easy way to provide an output node with a station where entities can wait. Without changing it to a server, entities will wait on the incoming path. Change the AllowPassing option to False on both those paths to see the entities waiting there. This doesn't solve all your problems but it should give you a good start while not taking away your opportunity to learn (why I gave you instructions instead of a model )
  20. Most simulations are "push" -- as soon as a part is done, it pushes on to the next server where it waits for processing. It sounds like here you are looking for a "pull" system -- each part remains where it is at until it is pulled forward to the next server. There are several ways to implement a push system - detailed process logic is probably the most difficult. A better choice is generally to use a resource or event to control the timing. Exactly where parts wait can have a significant effect on the logic required. For example should the part be blocking its current server? wait in its output buffer? wait somewhere else? When you have parts waiting in multiple areas it gets a bit more complicated. --SimBit CONWIP is not exactly what you are looking to do, but it does illustrate how to use events to implement a pull system. --SimBit OverflowWIP illustrates using resources to pull appropriate parts from one of two locations to one of two locations, as needed. --Because you have parts waiting in multiple areas to go to multiple areas, you might want to use a slightly more advanced feature named CustomRoutingGroups. There is a SimBit of the same name. Esentially you will create a RoutingGroup (an element) to define what choices an entity can consider, ranking, and the conditions under which it moves forward. Then for each related node (like the two enfriados outputnodes, you specify EntityDestination to be that custom routing group. One key is to make sure you use the Blocked Destination Rule of Select Available Only -- this forces the entity to wait at the node until it is "pulled" forward to an available server or queue location. For any of these approaches I suggest you read up on it in help or a textbook, then review the SimBit. Happy modeling!
  21. Hello Insiders, I'm new to Simio and having trouble modelling the simulation for my Master Thesis. I would like to model an assembly line with two servers. Both have 3 fixed tasks and one shared task - which can be executed by server1 as his last task or by server2 as his first task. If the task is executed by server1 or server2 should be decided for every entity according to a rule (e.g.: if there are more than 2 entities waiting in the queue at Server2, the task should be executed by server1, otherwise by server 2.) Now I used the Processing Task Editor, where I modeled Task 4 at server1 with a conditional branch type, but I'm struggling to formulate the condition. Similarly, at server2 I would like to model that the first task of this server should only be executed, when the Task4 isn't executed at server1. I would really appreciate every help!
  22. I noticed that the Source is not making just two entities, as you stated, it is actually making several as governed by your Interarrival Time. But since you have Output@Source1 (TransferNode) Blocked Destination Rule set to 'Select Available Only', all entities created after the first two are waiting until one of the Servers has finished processing. You will notice that once Server1 has finished processing, an entity is released from the Source (since its destination has been assigned). I would recommend exploring this further by enabling 'Model Trace', from the Run Ribbon, to see what is happening behind the scenes. Happy modeling!
  23. Double check that each Resource is hooked to the correct Work Schedule, and that you have the intended Day Pattern inputs for Mon - Sun in your Work Schedule(s). It sounds like you might need a separate (two total) Work Schedule for each group of 5 Resources. I would also recommend visually verifying that the Resources go OffShift (turn white) at the intended times. Other than that just make sure that the Off Shift Rule, in the Server's Secondary Resources, is also set to 'Suspend Processing'. Another way to check that the Server has suspended processing is to put some Dynamic Label Text on the Entity like 'ModelEntity.ID' so you can see exactly which Entity is in the Processing.Contents queue of the Server before and after the shift change. It should be the same one! Happy modeling!
  24. Hello, I'm wondering if anyone has a good idea for how to view a resource's utilization according to the day of the week in the pivot grid of an experiment? Currently, my best idea is to just have a status plot in the facility window to illustrate this but I'd prefer to have an average utilization by day of resources in the pivot table. The scenario I'm working with is having "technician" resources that are being seized by server objects to do "maintenance" on the truck entities coming into the maintenance shop. I'd like to see which days of the week are the busiest so I could determine where to schedule new technicians. Any help is greatly appreciated. Thanks! Pit-To-Bay Off-Shift Rule Fixed.spfx
  25. While the dynamic selection rule has more options, it is likely that just the static Ranking Rule is sufficient. The default is FIFO, but perhaps a rule like Smallest Value First on Entity.Priority might work for you. The key is that this is specified on the resource, not on the server. The Server provides rule for selection from a collection of resources. The Resource determines selection from a collection of seizing entities.
×
×
  • Create New...