Appendix - emergency mode


Understanding the function of "vehicle malfunction"

What is the role of the "vehicle malfunction" button?

Hermes uses the clear-path synchronous type of network control rather than asynchronous control. This type of control has been criticized for being too hard , almost impossible , to cope with emergency situations. The main argument is that it will be very difficult for the central computer to reroute all traffic during an emergency event.

While some vehicles will have to stop , Hermes simulator proves that things are not that bad: In most cases only a small fraction of the vehicles have to stop, blocking a small portion of a well designed network.


Is this how a real network will respond in a situation like this?

No.Contrary to normal mode , where simulator is very close to the real thing , emergency mode provides only basic emergency functionality. For example in emergency mode all vehicles are heading to the closest capacitor , whereas in a real system most of them will continue to their normal destination.

Stopped vehicles stay permanantly stopped - in the real system they will move as soon as the way ahead gets cleared , or they will be able to go backwards and take another route.Eventually only one vehicle , the malfunctioned one , should stay stopped.


Why emergency mode isn't as realistic as normal mode?

When I started making the simulator I set some basic priorities: It should be able to simulate big networks , with hundreds of stations and tens of thousands of vehicles and do that as fast as possible.As you can see it can do that quite succesfully. However to achieve this I had to make some basic programming architecture choices - I also omitted functionality that would be necessary for emergency mode (e.g. vehicles being able to move at the main guideway with a speed other than the normal one, vehicles moving backwards, clear path routes starting at an arbitrary point on the network instead at a station e.t.c.) Of course simulator could be rewritten having the above in mind - but that's too much effort for a secondary target (primary target: provide a detailed analysis for a PRT network working normally).


After clicking on the malfunctioned vehicle , simulator may need some time (up to several seconds) to respond.Won't this be too late in a real system?

Simulator uses a clear path routing algorithm: Each node (merge or diverge point) has a table with pointers to all vehicles that are routed to pass from there . If a vehicle breaks down , the main computer will have to look at this table , find which vehicles are following and reroute them.

Each node should keep notes for up to 1.5 hour in the future (depends on network size). That is 5400 seconds , which is 18,000 slots (headway = 0.3 seconds). An additional 10% margin is needed so a table can have up to 20,000 slots. In a big network there might be up to 10,000 nodes , with 200,000,000 slots. Each pointer in the Java programming language is 4 bytes long , that means that those tables alone might need 800MBytes of RAM. That is too much for the simulator which must be able to run on a normal PC. Not only memory is limited , execution would have been dramatically slower too.

In simulator each slot in these tables is only 1 bit long: Either the slot is empty or occupied. That drops memory requirements by a factor of 32 , down to 25MBytes and greatly improves execution speed. Not keeping the pointers doesn't affect normal execution.

In emergency mode however , once a vehicle breaks down there is no way of telling which vehicles follow: Simulator has to go through all vehicles in the network (up to tens of thousands) . For each vehicle it must go through its entire clear-path route program to see if it contains a blocked guideway segment (nested loop) . To make things worse as the queue of stopped vehicles builds up , new guideway segments are getting blocked and the whole process is repeated again and again.

I expect the real thing to be much faster , being able to provide rerouting in fractions of a second.


Why sometimes (during emergency mode or when slot size is small) do I see vehicles where they shouldn't be?

If you see something like this

that doesn't mean the vehicles collided. The lines showed in simulator are not physical lines but logical lines. The picture below clarifies the difference:

If 2 physical guideway segments are so close that stopped vehicles on them can touch , then they belong to the same logical guideway.

Simulator shows logical guideways .

Simulator cares about the length of these guideways - or more precisely the exact time a vehicle needs to travel over them. It doesn't care about the exact placement of the physical guideway segments.

Of course if you see something like the picture below , this is a bug and I'd be thankfull if you reported it to me , along with detailed information (such as the network file, demand program file ,exact time and coordinates of malfunctioned vehicle) in order to reproduce the error and fix it.



BACK