Quote:
Original post by NickNickNick
Quote:
Original post by Drakonite
Think fast! Two cars are headed straight for a head on colision. They both swerve right. Do they still crash?
I know what you mean Drakonite. In an air traffic control situation this wouldn't really be a problem, as the decisions are centrally coordinated and both can be instructed with knowledge of what the other is doing.
However in the car situation, if one steers right and one steers left, then they probably will crash, and they don't have the time to phone each other up and ask which way the other one's about the swerve. Similarly, one car could slow down so that the other car passes over its future path, but if the other car slowed down in the same way they'd still crash, only slower. So one of them has to take the initiative, but there has to be some way of choosing the option with the least risk, when neither car knows what action the other is going to take.
I think you may have missed my point... Even if you have some rule prohibiting you from coordinating the avoidance efforts at the time of the crash there should still be a very simple set of at most a couple rules that as long as both entities are programmed to follow the same set of rules (they never have to communicate to do this) you should be able to avoid collisions the majority of the time.
Just because you can't communicate doesn't mean a well placed rule doesn't work. If you are implying that you don't even get to control the programming of the opposing vehicle so you don't know if they'll follow the "steer right" rule, then unless you can outperform the other vehicle to the degree they couldn't hit you if they wanted it, you can't guarentee not to get in a crash.
If that is the case I'd just pick the most sensible, effective, and simple plan I could and hope whoever was controlling the other vehicle came to the same conclusion. Perhaps the link posted earlier is a better solution, but meh. I'm all for simplicity :)
Just for completeness sake, for two airplanes the simple rule would most likely be...
if(my Center Is Below Their Center)Dive;
if(my Center Is Above Their Center)Climb;
if(my Center Is To The Right Of Their Center)Steer Right;
if(my Center Is To The Left Of Their Center)Steer Left;
if(I Can Go Slower And Not Fall)slowDown;
In other words... Steer away and hit the breaks ;)