neumann

advertisement
Jenny Finkel
April 30, 2001
Studying Hanna Neumann’s Conjecture
This past semester I work with Professor Zeph Grunschlag in an attempt to disprove
Hanna Neumann’s conjecture. Free groups are groups which experience no collapsing (i.e. abcd != bacd,
etc) and can be expressed as graphs with only x-edges and y-edges (or inverse-x-edges or inverse-y-edges).
A base vertex is chosen and all paths which both begin and end at the base vertex are generators of the
group. These graphs each have an Euler number, which is the number of vertices minus the number of
edges. One can then take a pair of these graphs and compute their Cartesian product, which will have its
own Euler number. It can, and has, been proven that the product of the Euler numbers of two graphs is
always less than or equal to twice the Euler number of their Cartesian product. However, no one has ever
found a pair of graphs whose Euler numbers multiplied is greater that the Euler number of their Cartesian
product (without the factor of two), and Hanna Neumann conjectured that such a pair does not exist.
Professor Grunschlag and my’s goal was to disprove her conjecture by finding a counter example (i.e. a
pair of graphs whose Euler numbers multiplied by each other is greater than the Euler number of their
Cartesian product). We addressed the problem from a graph theoretic standpoint and attempted to find a
counter example through the use of a computer program.
The process which we followed had several stages. The first half of the semester I spent learning
some basic group theory as I had no background in the subject. Once I had aquired the knowledge
necessary to understand the conjecture we began the programming stage. The program was also developed
in stages. First I wrote a program which would read in a file containing an encoding of a graph. We used
two kinds of encodings, one which listed node number, followed by edge type and then followed by
another node number (i.e. 3X2 or 1y4 where capital letters represented inverse edges), and one which
represented petals on a flower. The latter can better be explained visually that with words:
The program could then, when given a node as input tell you what other nodes it was connected to, and
how. The next step in the programming process was to eliminate any non-determinism in the graph.
Again, I will demonstrate with a visual example:
Along with the determination, I also had to remove any “trees” from the graph, as if you follow a tree, the
only way to get back to the base node is by following the same tree backwards, and this results in
cancellation. The last part of the base program was to write a way for it to take two graphs, and compute
their Cartesian product, along with all associated Euler numbers. The entire program runs in linear time.
Once this program was complete I wrote another program which used it. This program would randomly
generate graphs, feed pairs into the first program, and retrieve the results. If the ratio of Euler numbers was
greater than 0.95, but not 1 (when the ratio is one, the graphs are usually trivial) the graphs would be
written to a file. One mildly interesting fact we found was that when the graphs were randomnly generated
as edges (as opposed to flowers) they reduced to trivial graphs less.
As of the end of the semester we were unsuccessful in finding a counterexample. I left the
program running for a week straight and it went through around 8 million trials (not counting graphs which
immediately reduced to trivial). Of these, under 200 met the criteria for being saved. One example of a
“good” trial is:
Iteration 6049254
Graph #1:
Original: 1y76 2x34 4y59 4y3 5y126 5x152 6y96 7y115 9y47 10y5 14y102 14y156 16x95 18x84
19x44 20x3 21y10 21y101 23x33 24y131 24y112 25y15 26y68 27x1 27x97 28x99 30y146 33x126
33x87 33y148 35y105 36x101 36y8 39x70 39y122 42y92 47x71 47x64 48x38 49x100 50y72 50y53
51x56 54x152 55y29 57y32 59y98 60x43 61y141 61y87 62y58 63x130 65y60 65x126 66x99 67y4
67y107 69y101 69x43 69x22 71y58 72y24 72x87 73y152 74x71 77y96 80y33 81y67 81x143 83y67
86y155 91y133 91y11 93x16 93y75 94x96 94y7 97y82 98x67 99y79 99x54 100y155 102x71 103x33
103y63 105x84 105y137 108y124 109x13 111x21 112y144 114x54 114y20 114x123 115y117 117y37
118x75 118y98 120x104 123x2 124x15 126y135 127y94 127x52 127y1 128x58 129x26 130y6 130y25
130y93 134x42 135x36 135y65 136x8 136x76 137y155 137x89 138y96 139y50 142x155 142x82
144x98 146x64 146y125 146x25 147y151 147x35 148x4 149y109 149y22 150x18 151x44 151y153
151x27 151x122 153x83 154x111
Reduced: 1x5 1y10 2x3 2y2 3x1 3y12 4y8 5x11 5y1 6y5 7y4 8y9 9x6 9y11 10x9 10y3 11x4 11y13
12x8 12y6 13x10 13y14 14x7
Euler number: -9
Graph #2:
Original: 1x91 2x50 4x30 4y57 6y52 7y80 10y81 11x56 12x11 12x63 14y58 18x80 20x80 22x75
25y70 26y24 26y74 27y7 30x30 31y23 32y82 32x42 33y48 33x91 34y1 36y69 37y68 38y29 38y85
38y42 38y43 39y53 39x58 40y48 41y18 43y58 44y11 49y80 50y45 52x74 52y94 55x34 55x82 55x81
56x36 57y62 58y67 59y49 60x39 60x15 61x49 65y5 66y23 67x63 70y84 70y49 75x88 79x83 80x44
81y44 84y65 86x26 87y39 87x29 87y37 87x22 88x72 90y19 90x71 91y81 91y85 92x67 93y5 94y94
94y6 95y27 95x36
Reduced: 1x4 1y4 2y1 3x1 3y5 4x3 4y3 5x5 5y2
Euler number: -4
Resultant Graph:
1x24 1y48 2y45 3x21 3y49 4x23 4y47 5x25 5y46 6x14 6y9 7y6 8x11 8y10 9x13 9y8 10x15 10y7
11x4 11y58 12y55 13x1 13y59 14x3 14y57 15x5 15y56 16y38 17y35 18y39 19y37 20y36 21x53
21y4 22y1 23x50 23y5 24x52 24y3 25x54 25y2 26y24 27y21 28y25 29y23 30y22 31y19 32y20
33y18 34y17 35y43 36y40 37y44 38y42 39y41 40x29 40y53 41y50 42x26 42y54 43x28 43y52 44x30
44y51 45x43 45y14 46y11 47x40 47y15 48x42 48y13 49x44 49y12 50x19 50y63 51y60 52x16 52y64
53x18 53y62 54x20 54y61 55x38 55y29 56y26 57x35 57y30 58x37 58y28 59x39 59y27 60x48 60y67
61y65 62x45 62y68 63x47 63y66 64x49 65x33 66x31 67x32 68x34
Euler number: -35
Ratio: 0.9722222222222222
I hope to continue studying this problem, and its potential solutions with Professor Grunschlag
next semester, and therefore it is important to think about future possibilities. One of the biggest problems
we encountered was generating non-trivial trials. All we used was a random generator as we did not have
time to fully develop any more sophisticated methods. One promising method would be the use of a
genetic algorithm, in which case the pivotal question would be how to make the graphs. Through a little bit
of informal testing I established that straight out partner swapping would not work. In all cases, the
Cartesian product of the new “parents’” was not interesting. This helped to illustrate that it is not the
graphs themselves that are important, but rather how they interact with one another. For this reason it is
important that mates somehow or another “stay together” in the mating process. With this in mind, the next
issue is whether to mate within pairs (i.e. swap part of “mom” with part of “dad”) or to mate pairs with one
another (i.e. swap part of “mom1” with part of “mom2” and part of “dad1” with part of “dad2”). Either
way, serious consideration must be given to how to swap parts of graphs with one another. Another
possible method of generating interesting graphs would be to add/remove edges/nodes to/from graphs
which were previously interesting. Lastly, as it is more likely than not that Hanna Neumann’s conjecture is
true, it may be worth trying to examine generated data to look for hints which might help to prove the
conujecture instead of disproving it. One thing I would like to do is to find a method of drawing the
graphs, as this would have the potential of shedding such light. While we have not successed in finding a
counterexample, I enjoyed the semester, personally consider it to be a success, and look forward to future
work in this area.
Download