Started by jamespetts, December 20, 2008, 06:42:36 PM
0 Members and 2 Guests are viewing this topic.
Quote from: isidoro on March 08, 2009, 12:23:07 AMNot being a real solution to deadlocks, re-routing avoiding overcrowded stations will waste resources and make the algorithm more complicated and difficult to debug.
QuoteThe problem with deadlocks here, as I see it, is more or less the same as the problem with deadlocks of trains on shared tracks.
QuoteThe former can be solved with one-way loading vehicles in a similar fashion. With the max. loading patch I've posted recently, it can be solved, imho.
QuoteOtherwise, beginners will refuse to try ST.
Quote from: isidoro on March 08, 2009, 01:27:15 AMAs prissi stated, if goods are discarded a way of making unlimited profit can be exploited.
Quote from: whoami on March 08, 2009, 01:31:11 AMTo avoid the deadlocks, I effectively suggested to completely replace the current handling of overflowing stops by another method, the decision right at the origin,
Quote from: whoami on March 08, 2009, 01:31:11 AMST is made for real men!
Quote from: prissi on March 09, 2009, 09:25:05 PMNot sending passengers/goods out to overcrowded stops makes gamesplay actually easier, since one do not need to care about overcrowding. Or am I wrong?
Quote from: isidoro on March 10, 2009, 01:04:33 AMRerouting is no solution for deadlocks.
Quote from: prissi on March 09, 2009, 09:25:05 PMAnother possible with oyur patch would be making passengers unhappy instead of no route; but then we need more discussion.
Quote from: isidoro on March 10, 2009, 01:04:33 AM...Circular wait: there has to be a closed chain of waiting for conditions: A->B->C->D->A, for instanceSIMPLE POSSIBLE SOLUTION:Here's another possibility I'm just thinking about: the problem is connected stations dealing with goods. The solution is to divide the storage space you have at every dangerous station evenly among the possible destinations of goods at each station.Example: Let's consider this situation:A------. ,-------- E --- C --------- D ----------- FB------' `-------- GAll stations have a capacity of 600. Only C and D are sources of possible deadlocks (condition 2). Let's work against it:In station C: 200 is reserved for goods going to A, 200 for goods going to B, and 200 for goods going to DIn station D: 150 is reserved for C, 150 for E, 150 for F, and 150 for GWith that simple solution, there will never be deadlocks.
Quote from: isidoro on March 10, 2009, 01:04:33 AMHere's another possibility I'm just thinking about: the problem is connected stations dealing with goods. The solution is to divide the storage space you have at every dangerous station evenly among the possible destinations of goods at each station.
QuoteAn advanced mode together with max-loading is a 100% safe method if networks are well-designed (by an advanced player only, others can play with overcrowded stops), it's simple, it can solve other previous requests and it's already programmed. Who can give more for less price?
Quote from: Dwachs on March 11, 2009, 06:27:24 AMThis requires to set the max-load to 0% ?
Quote from: z9999 on March 11, 2009, 02:21:02 PMEasy way to avoid deadlock is playing with "avoid_overcrowding=0".You wrote a code to make deadlock and wrote a code to avoid deadlock.Too funny. They are unnecessary code.
Quote from: prissi on March 11, 2009, 09:42:21 AMI followed z9999 idea of letting the suche_route check for overcrowding. If overcrowded route, goods will not sent out (reducing profit) and passengers will be unhappy.
Quote from: jamespetts on March 11, 2009, 10:22:54 PMOnly if no route is found (or, with the latest code, no route that is not overcrowded) from any of those possible origins are the passengers discarded as "no route"
QuoteA further development would be for the route searching function to use a number of metrics to choose the passengers'/goods' preferred route (average speed, comfort, etc.)
Quotebut, similar to another one of your suggestions, if the packets have been waiting more than a certain amount of time to be collected, let them take any route.
QuoteIndeed, it might be possible for packets to store different possible routes simultaneously, and board whichever is the first mode of transport that will use any of those routes, but that might adversely impact on performance.