0
  1. We consider the street network of a given city which is connected - from every junction we can reach every other junction in the city (every street is a two-way street). (a) The city hall wants to transform each street in a one-way street such that the new street network is connected also (from every junction we can reach every other junction in the city). Show that such a transformation is possible if and only if in the original street network the blocking of any street doesn’t disconnect the network.

This is the full problem. Any help would be appreciated:D

robbyyt
  • 3
  • 1

1 Answers1

1

One direction of the proof goes like this: If the blocking of a street disconnects the network, the network then is separated into two parts A and B. Since only one street exists between them, only one direction A->B or B->A can be realized, but not both (this means that you cannot reach a junction in district A from a junction in district B if A->B is realized). Hence, the blocking of a street must not disconnect the network.


The other direction of the proof is based on cycles. That is, one can easily transform cycles into directed graphs so that every node in it is reached. So we basically have to prove that every node is indeed part of a cycle.

Since this is a programming site, I will provide an answer which can easily be implemented in a program:


Simplify the problem: it does not matter whether or not we have self-loops or multiple connections between to adjacent junctions.

Convince yourself that it does not matter whether or not we have self-loops in the graph: they do not contribute to reach other junctions, so we can assume that there are no such loops.

Next, realize that double-, triple-, … connections between junctions X and Y also don't matter because then we can treat X and Y as one network component/ district and state the original problem with districts instead of junctions. More specifically, this problem can be resolved into a simpler one without multiple connections between adjacent nodes by deleting these nodes X and Y and creating a new node Z, which is connected to all nodes where X and Y were connected to. This can be resumed until no multiple connections exist. This problem is the same as the original one because by assigning at least one direction from X to Y and at least one direction from Y to X the following holds true: From X we can reach Y and therefore every node which was reachable from Y can be reached from X aswell (and the other way round). Therefore, there is no difference between X and Y to the original problem (from every junction we can reach every other junction in the city).

So now we look at a self-loop-, multiple-connections-free graph.


In the simplified case:

Every node must have at least two connections. It cannot have 0, then the network would not be connected. And it cannot have 1 because then this connection could be blocked, disconnecting the network.

This means that a junction A must be connected to at least two other junctions B and C. This means, A, B, and C are connected. Let's refer to this as the connected group G. B must also have at least two connections, one of them being the connection to A. The remaining connection can go to another junction, outside of G. In this case, add the new node to G and resume for the newly added node. So for example B->D, then G={A,B,C,D}, evaluate D; C->A, A->B, B->D being used. Eventually, since the number of nodes in this network is finite, a connection must go to another node in G. This means that there is indeed at least one "cycle"/"loop" (way which starts with node A and ends with node A, using every connection at most once).

Now this loop either contains every node: In this case, you can celebrate, just choose a direction and go through your network, every node can be reached.

Or the loop does only contain a part of the whole network. In this case, simplify again: delete all nodes which are contained in the path of the loop (let this be the group P), then create a new node Z with all connections from the orginal group P which go outside of P.

Example: A->B->C->D->E->A was found to be a loop path. Then P={A,B,C,D,E}. Delete all nodes A,B,C,D,E. Create a new node Z. In the original network, A<->F and A<->C were also connections. Then Z<->F must be added since F is not contained in P, but Z<->C must not be added since C is contained in P (and was deleted).

The remaining network states the same original problem for similar reasons than stated above: This is true since every node A,B,C,D,E (in P) can be reached from every other node A,B,C,D,E so it doesn't matter to which node A,B,C,D,E a node F (outside of P) is connected to.

Since the number of nodes in the remaining network is lowered by this and is finite, this procedure can be done until every node is reached and therefore the problem is solved.

R.H.
  • 98
  • 1
  • 8