Warning: Cannot modify header information - headers already sent by (output started at /home/public/wp-content/themes/simplelin/functions.php:1) in /home/public/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Warning: Cannot modify header information - headers already sent by (output started at /home/public/wp-content/themes/simplelin/functions.php:1) in /home/public/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Warning: Cannot modify header information - headers already sent by (output started at /home/public/wp-content/themes/simplelin/functions.php:1) in /home/public/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Warning: Cannot modify header information - headers already sent by (output started at /home/public/wp-content/themes/simplelin/functions.php:1) in /home/public/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Warning: Cannot modify header information - headers already sent by (output started at /home/public/wp-content/themes/simplelin/functions.php:1) in /home/public/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Warning: Cannot modify header information - headers already sent by (output started at /home/public/wp-content/themes/simplelin/functions.php:1) in /home/public/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Warning: Cannot modify header information - headers already sent by (output started at /home/public/wp-content/themes/simplelin/functions.php:1) in /home/public/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Warning: Cannot modify header information - headers already sent by (output started at /home/public/wp-content/themes/simplelin/functions.php:1) in /home/public/wp-includes/rest-api/class-wp-rest-server.php on line 1713
{"id":120,"date":"2016-11-29T11:51:53","date_gmt":"2016-11-29T11:51:53","guid":{"rendered":"http:\/\/babarber.uk\/?p=120"},"modified":"2016-11-29T11:51:53","modified_gmt":"2016-11-29T11:51:53","slug":"nowhere-zero-6-flows","status":"publish","type":"post","link":"https:\/\/babarber.uk\/120\/nowhere-zero-6-flows\/","title":{"rendered":"Nowhere zero 6-flows"},"content":{"rendered":"

A flow<\/em> on a graph \"G\" is an assignment to each edge of \"G\" of a direction and a non-negative integer (the flow in that edge) such that the flows into and out of each vertex agree. \u00a0A flow is nowhere zero<\/em> if every edge is carrying a positive flow and (confusingly)\u00a0it\u00a0is a \"k\"-flow if the flows on each edge are all less than \"k\".\u00a0 Tutte\u00a0conjectured that every bridgeless graph has a nowhere zero \"5\"-flow (so the possible flow values are \"1, 2, 3, 4\"). \u00a0This is supposed to be a generalisation of the \"4\"-colour theorem. \u00a0Given a plane graph \"G\" and a proper colouring of its faces by \"1, 2, 3, 4\",\u00a0push flows of value \"i\" anticlockwise around each face of \"G\". \u00a0Adding the flows in the obvious way gives a flow on \"G\" in which each edge has a total flow of \"|i-j| \neq 0\" in some direction.<\/p>\n

Seymour proved that every bridgeless graph has a nowhere zero \"6\"-flow. \u00a0Thomas Bloom<\/a> and I worked this out at the\u00a0blackboard, and I want to record the ideas here. \u00a0First, a folklore observation that a minimal counterexample \"G\" must be\u00a0cubic and \"3\"-connected.\u00a0 We will temporarily allow graphs to have loops and multiple edges.<\/p>\n

We first show that \"G\" is \"3\"-edge-connected. \u00a0It is certainly \"2\"-edge-connected, else there is a bridge. \u00a0(If \"G\" is not even connected then look at a component.) \u00a0If it were only \"2\"-edge-connected then the graph would look like this.<\/p>\n

\"2connected\"<\/p>\n

 <\/p>\n

Contract the top cross edge.<\/p>\n

\"2connectedcontracted\"<\/p>\n

If the new graph has a nowhere zero \"6\"-flow then so will the old one, as the flow in the bottom cross edge tells us\u00a0how much flow is\u00a0passing between the left and right blobs at the identified vertices and so the flow the we must put on the edge we contracted. \u00a0So \"G\" is \"3\"-edge connected.<\/p>\n

Next we show that \"G\" is \"3\"-regular. \u00a0A vertex of degree \"1\" forces a bridge; a vertex of degree \"2\" forces the incident edges to have equal flows, so the two edges can be regarded as one. \u00a0So suppose there is a vertex \"v\" of degree at least \"4\".<\/p>\n

\"deg4\"<\/p>\n

We want to replace two edges \"xv\" and \"yv\" by a single edge \"xy\" to obtain a smaller graph that is no easier to find a flow for. \u00a0The problem is that in doing so we might produce a bridge.<\/p>\n

The \"2\"-edge-connected components of \u00a0\"G-v\" are connected by single edges in a forest-like fashion. \u00a0If any of the leaves of this forest contains only one neighbour of \"v\" then there is a \"2\"-edge-cut, so each leaf contains at least two neighbours of \"v\".<\/p>\n

\"leaves\"<\/p>\n

If there is a component of the forest with two leaves then choose \"x\" and \"y\" to be neighbours of \"v\" from different leaves of that component.<\/p>\n

\"twoleaves\"<\/p>\n

Otherwise the \"2\"-edge-connected components of \"G-v\" are disconnected from each other. \u00a0Now any such component \"C\" must contain at least \"3\" neighbours of \"v\", else there is a \"2\"-edge-cut. \u00a0If some \"C\" contains \"4\" neighbours of \"v\" then we can choose \"x\" and \"y\" to be any two of them. \u00a0Otherwise all such \"C\" contain exactly \"3\" neighbours of \"v\", in which case\u00a0there must be at least two of them and we can choose \"x\" and \"y\" to be neighbours of \"v\" in different components.<\/p>\n

\"twoislands\"<\/p>\n

So \"G\" is \"3\"-regular and \"3\"-edge-connected. \u00a0If \"G\" is only \"1\"-connected then there is no flow between \"2\"-connected components, so one of the components is a smaller graph with no nowhere zero \"6\"-flow. \u00a0If \"G\" is only \"2\"-connected then because \"3\" is so small we can also find a \"2\"-edge-cut.<\/p>\n

<\/p>\n

Finally, we want to get rid of any loops and multiple edges we might have introduced. \u00a0But loops make literally no interesting contribution to flows and double edges all look like<\/p>\n

\"doubleedge\"<\/p>\n

and the total flow\u00a0on the pair just has to\u00a0agree with the edges on either side.<\/p>\n

We’ll also need one piece of magic (see postscript).<\/p>\n

Theorem.<\/strong> (Tutte) Given any integer flow of \"G\" there is a \"k\"-flow of \"G\" that agrees with the original flow mod \"k\". \u00a0(By definition, flows of \"j\" in one direction and \"k-j\" in the other direction agree mod \"k\".)<\/em><\/p>\n

So we only need to worry about keeping things non-zero\u00a0mod \"k\".<\/p>\n

The engine of Seymour’s proof is the following observation.<\/p>\n

Claim.<\/strong>\u00a0Suppose that \"G = G_0 \cup C_1 \cup \cdots \cup C_t\" where each \"C_i\" is a cycle and the number of new edges when we add \"C_i\" to \"G_0 \cup C_1 \cup \cdots \cup C_{i-1}\" is at most \"2\". \u00a0Then \"G\" has a \"3\"-flow which is non-zero outside \"G_0\". \u00a0<\/em><\/p>\n

Write \"E_i\" for the set of edges added at the \"i\"th stage. \u00a0We assign flows to \"C_t, \ldots, C_1\" in that order. \u00a0Assign a flow of \"1\" in an arbitrary direction to\u00a0\"C_t\"; now the edges in \"E_t\" have non-zero flow and will never be touched again. \u00a0At the next stage, the edges in \"E_{t-1}\" might already have some flow; but since \"|E_{t-1}| \leq 2\" there are only two possible values for these flows mod \"3\". \u00a0So there is some choice of flow we can put on \"C_{t-1}\" to ensure that the flows on \"E_{t-1}\" are non-zero. \u00a0Keep going to obtain the desired \"3\"-flow, applying Tutte’s result as required to bring values back in range.<\/p>\n

Finally, we claim that the \"G\" we are considering have the above form with \"G_0\" being a vertex disjoint union of cycles. \u00a0Then \"G_0\" trivially has a \"2\"-flow, and \"3\" times this \"2\"-flow plus the \"2\"-flow constructed above is a nowhere-zero \"6\"-flow on \"G\".<\/p>\n

For \"F \subseteq G\", write \"[F]\" for the largest subgraph of \"G\" that can be obtained as above by adding cycles in turn, using at most two new edges at each stage. \u00a0Let \"G_0\" be a maximal collection of vertex disjoint cycles in \"G\" with \"[G_0]\" connected, and let \"H = G - V(G_0)\". \u00a0We claim that \"V(H)\" is empty. \u00a0If not, then the \"2\"-connected blocks of \"H\" are connected in a forest-like fashion; let \"H_0\" be one of the leaves.<\/p>\n

\"seymourlast\"<\/p>\n

By \"3\"-connectedness there are three vertex disjoint paths from \"H_0\" to \"G_0\". At most one of these paths travels through \"H - H_0\"; let \"x\" and \"y\" be endpoints of two\u00a0paths that do not.\u00a0 These\u00a0paths must in fact be single edges, as the only other way to get to \"G_0\" would be to travel through \"H - H_0\". \u00a0Finally, since \"H_0\" is \"2\"-connected it contains\u00a0a cycle through \"x\" and \"y\", contradicting the choice of \"G_0\".<\/p>\n

Postscript. <\/strong>It turns out that Tutte’s result is far from magical; in fact its proof is exactly what it should be. \u00a0Obtain a directed graph \"H\" from \"G\" by forgetting about the magnitude of flow in each edge (if an edge contains zero flow then delete it). \u00a0We claim that every edge is in a directed cycle.<\/p>\n

\"tutte\"<\/p>\n

Indeed, choose a directed edge \"\vec{xy}\". \u00a0Let \"Y\" be the set of vertices that can be reached by a directed path from \"y\" and let \"X\" be the set of vertices that can reach \"X\" by following a directed path. \u00a0If\u00a0\"\vec{xy}\" is not in any directed cycle then \"X\" and \"Y\" are disjoint and there is no directed path from \"Y\" to \"X\". \u00a0But then there can be no flow in\u00a0\"\vec{xy}\", contradicting the definition of \"H\".<\/p>\n

So as long as there are edges with flow value at least \"k\", find a directed cycle containing one of those edges and push a flow of \"k\" through it in the opposite direction. \u00a0The total flow in edges with flow at least \"k\" strictly decreases, so we eventually obtain a \"k\"-flow.<\/p>\n","protected":false},"excerpt":{"rendered":"

A flow on a graph is an assignment to each edge of of a direction and a non-negative integer (the flow in that edge) such that the flows into and out of each vertex agree. \u00a0A flow is nowhere zero if every edge is carrying a positive flow and (confusingly)\u00a0it\u00a0is a -flow if the flows … <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[8,12,17,25],"_links":{"self":[{"href":"https:\/\/babarber.uk\/wp-json\/wp\/v2\/posts\/120"}],"collection":[{"href":"https:\/\/babarber.uk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/babarber.uk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/babarber.uk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/babarber.uk\/wp-json\/wp\/v2\/comments?post=120"}],"version-history":[{"count":0,"href":"https:\/\/babarber.uk\/wp-json\/wp\/v2\/posts\/120\/revisions"}],"wp:attachment":[{"href":"https:\/\/babarber.uk\/wp-json\/wp\/v2\/media?parent=120"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/babarber.uk\/wp-json\/wp\/v2\/categories?post=120"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/babarber.uk\/wp-json\/wp\/v2\/tags?post=120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}