At first I imagined that each signal might be replaced by a robotic traffic cop who evaluated the number of cars waiting in each direction and made an informed decision about who would go and who would wait.
The problem with that idea is that letting traffic flow in a particular direction in intersection A might have a negative impact on the traffic at intersection B a couple of blocks away. Even if it didn’t, it certainly wouldn’t improve the traffic flow at intersection B.
Instead of an independent traffic cop at each intersection, what we really need is an all-seeing, all-knowing, genius, Mega Traffic Cop overseeing every intersection in the city in a way that would optimize traffic flow across the entire grid.