630 likes | 793 Views
Chasing Snakes in N-Space Cubes. N-space Snakes are special maximal length loops through an N-space cube. They’re full of intriguing symmetries, puzzles and surprises. They’re simple structures that baffle us with their complexities. Fascinating creatures. Let’s go find some Snakes. .
E N D
Chasing Snakes in N-Space Cubes N-space Snakes are special maximal length loops through an N-space cube. They’re full of intriguing symmetries, puzzles and surprises. They’re simple structures that baffle us with their complexities. Fascinating creatures. Let’s go find some Snakes.
Chasing Snakes in N-Space Cubes In this session: We’ll define what a Snake is, Search for 3,4, and 5-space snakes by hand, Identify snakes with binary names, Identify snakes by their column changes, Find the unique snakes up through 6-space, Look at a snake’s physique-l makeup, and ask some questions that maybe you will answer.
Chasing Snakes in N-Space Cubes Me. So, what IS an N-space Snake?
A “Snake” is a closed path (loop) through an N-space cube. But, the path must follow one special rule. You must understand that rule in order to create valid snakes. 000 001 010 100 011 101 110 111 The green lines form a valid 3-space snake of length 6.
That special rule is: No point on a snake (other than the preceding and succeeding points on the snake) can be within one line length of any other point on the snake. 000 001 010 100 011 101 110 111 This is an invalid snake because point 011 is one length away from 010, and both points are already part of the snake.
Every point (b) on the snake has one point that comes before it (a), and one that comes after it (c). Points a and c are one length away from b. a 000 b 001 010 100 c 011 101 110 111 No other point on the snake can be just one length away from point b. If it is, the snake is invalid. That’s the case here. Point 101 is one length away from point 001.
A point is “adjacent” to another if it is one line length away. The “adjacents” of a point are those points that are one line length away. a 000 b 001 010 100 c d 011 101 110 111 The points a, c, and d are adjacent to point b. a, c, and d are the adjacents of point b.
We will be looking for maximal length snakes which I call Great Snakes. The snake shown here is valid, but is not a Great Snake because it is not the longest snake possible in 3-space. a 000 b 001 010 100 c d 011 101 110 111 This is a valid 3-space snake of length 4. It is not a maximal length (Great) snake.
The longest snake possible in a 3-space cube is a snake of length 6. a 000 b 001 010 100 c d 011 101 110 111 This is a valid 3-space Great Snake.
0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111 The longest snake in a 4-space cube is of length 8. You may wish to print this page and try to find a 4-space Great Snake on your own.
This is an invalid 4-space snake. Do you see why? 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111
It is invalid because points 0010 and 0110 (which are already on the snake) are within one line length of each other. 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111
Do you see why this snake is invalid? 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111
Actually, there are two problems here. The point 1010 is adjacent to both 0010 and 1011 which are part of the snake. 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111
Is this a valid 4-space snake? Is it a Great Snake? 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111
This snake is a valid 4-space Great Snake. 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111
Here’s another 4-space Great Snake. From now on, when I say “snake”, I will usually be talking about Great Snakes. 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111
Chasing Snakes in N-Space Cubes Find me... Once you know the rules for finding a snake, it is trivial to find a 3-space snake and easy to find a 4-space snake. 5-space snakes take a little more work, although most people can find several without too much trouble. Give it a try...
00000 00001 00010 00100 01000 10000 00011 00101 01001 10001 00110 01010 10010 01100 10100 11000 00111 01011 10011 01101 10101 11001 01110 10110 11010 11100 01111 10111 11011 11101 11110 11111 A 5-space cube Maximal length snake = 14
00000 00010 01000 10001 00110 10011 01101 10101 01110 11010 11011 11101 11110 Here’s a 5-space Great Snake 00001 00100 10000 00011 00101 01001 01010 10010 01100 10100 11000 00111 01011 11001 10110 11100 01111 10111 11111
Chasing Snakes in N-Space Cubes To become more familiar with our snakes, we have to uniquely identify them . We have to name them. My name is Joe Finklesnake III
0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111 One way to name a snake is to list the points that make up the snake. They must be listed in order; otherwise they won’t be a valid snake. 0000 0001 0011 0111 1111 1110 1100 1000
0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111 But since there is no head or tail to the snake, you can start anywhere on the snake, and list the points as you follow the path back to your starting point. 0000 0001 0011 0111 1111 1110 1100 1000 1111 0111 0011 0001 0000 1000 1100 1110
0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111 Although the two “lists” are different, they are really the same snake. They just start at different points and go in opposite directions. Start 0000 0001 0011 0111 1111 1110 1100 1000 1111 0111 0011 0001 0000 1000 1100 1110 Start
So a single snake can have many different binary names. Since these particular lists appear to rotate vertically, they are called “vertical rotations” of each other. 0000 0001 0011 0111 1111 1110 1100 1000 1000 0000 0001 0011 0111 1111 1110 1100 1100 1000 0000 0001 0011 0111 1111 1110 1110 1100 1000 0000 0001 0011 0111 1111 1111 1110 1100 1000 0000 0001 0011 0111 0111 1111 1110 1100 1000 0000 0001 0011 0011 0111 1111 1110 1100 1000 0000 0001 0001 0011 0111 1111 1110 1100 1000 0000
0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111 Pretend that our 4-cube is a round transparent Christmas tree ornament suspended by a red ribbon from the 0000 point. There are other rotations too. 0000 0001 0011 0111 1111 1110 1100 1000
0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111 If we slowly twirl the ornament, some of the points would appear to change places with other points on the same level and the snake would appear to move around the ornament. 0000 0001 0011 0111 1111 1110 1100 1000
If you twirled just the snake, and not the ornament, you could make an intuitive leap and call the resulting snakes “horizontal rotations” of each other. 0000 0001 1001 1101 1111 1110 0110 0010 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111
Rotate the 4 Column to the right hand side. Rotated Snake Old Snake Columns 4321 4 3 2 1 3 2 1 4 3214 0000 0001 0011 0111 1111 1110 1100 1000 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0000 0010 0110 1110 1111 1101 1001 0001 The horizontally rotated list of points looks very different, so you might think that you have a new, different snake. But, it’s really the same old snake rotated.
Horizontally inter-mixed Columns New Snake Old Snake Columns 4321 4 3 2 1 2 4 3 1 2431 0000 0001 0011 0111 1111 1110 1100 1000 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0000 0001 1001 1011 1111 1110 0110 0100 In fact, if you exchange any column of a given snake with any other column of the same snake, you have an intermixed rotation of the snake, and it is really the same snake as before even though the list of points is very different.
Chasing Snakes in N-Space Cubes You can call me Joe There are other intriguing ways to name our snakes. My name is Joe Finklesnake III
0111 0001 0010 1011 0100 1101 1000 1110 0011 0101 1001 0110 1010 1100 This picture shows colored linesets as well as points of a 4-space cube. 0000 1 2 3 4 2 31 4 1 3 421 42 3 3 42 421 3 1 4 31 2 4 3 2 1 1111
0000 0001 001101111111111011001000 0000 1 2 3 4 0001 0010 0100 1000 Instead of using the points to name the snake, we can use the column number between each of the snake’s 8 points. This snake’s name would then be: 1 2 3 4 1 2 3 4 2 31 4 1 3 421 42 3 0011 0101 1001 0110 1010 1100 3 42 421 3 1 4 31 2 0111 1011 1101 1110 4 3 2 1 1111
Snake named by its points Snake named by column changes Columns 4321 4 3 2 1 0000 0001 0011 0111 1111 1110 1100 1000 0000 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 2 3 4 1 2 3 4 It turns out that the column-change naming convention is a more effective, efficient, easy method of naming snakes. And it highlights something we might not have seen otherwise.
This snake appears to be made from two “identical” halves. Snake named by its points Snake named by column changes 4321 0000 0001 0011 0111 1111 1110 1100 1000 0000 1 2 3 4 1 2 3 4 1 2 3 4 and 1 2 3 4 The column-change naming convention reveals structures within the snake that we did not expect to find.
Now, we can name this 5-space snake two different ways. 00000 Binary snake name Column-change name 00000 0001000110 01110 11110 11010 11011 10011 10001 10101 11101 01101 01001 01000 2 3 4 5 3 1 4 2 3 4 5 3 1 4 00001 00010 00100 01000 10000 00011 00101 01001 10001 00110 01010 10010 01100 10100 11000 00111 01011 10011 01101 10101 11001 01110 10110 11010 11100 01111 10111 11011 11101 11110 11111
A 5-space Cube Symmetry, symmetry, everywhere and what a lot to think. A 4-space cube 00000 00001 00010 00100 01000 10000 00011 00101 01001 10001 00110 01010 10010 01100 10100 11000 00111 01011 10011 01101 10101 11001 01110 10110 11010 11100 01111 10111 11011 11101 11110 2345314 2345314 A 4-space cube 11111
5-space cube This gives us a clue as to how we might construct N-space snakes from (N-1)-space snakes. A 4-space cube 00000 00001 00010 00100 01000 10000 00011 00101 01001 10001 00110 01010 10010 01100 10100 11000 00111 01011 10011 01101 10101 11001 01110 10110 11010 11100 01111 10111 11011 11101 11110 23453142345314 A 4-space cube 11111
Chasing Snakes in N-Space Cubes Just how big do these snakes get?
We don’t know how big they are above 7-space. This Big 0-space 0 1-space 1 2-space 4 3-space 6 4-space 8 5-space 14 6-space 26 7-space 48
Chasing Snakes in N-Space Cubes Now, it might be informative to catalog all of the snakes in an N-space cube to see how each of them is constructed. That could give us a clue as to how to construct snakes in higher N-space cubes. However, a lot of the snakes are just transformations of each other. The N-cubes appear to be infested with snakes!
Chasing Snakes in N-Space Cubes If we throw out all of the duplicate snakes, how many are left? How many UNIQUE snakes are there in each N-cube?
Chasing Snakes in N-Space Cubes First, you have to find them all. How do you do that? One way is to write a computer program that exhaustively searches for them. I wrote one and named it TailWagger
You could find all of the snakes in an N-space cube if you tried all of the possible paths. This is called the BFI or Brute Force and Ignorance method. 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111
TailWagger starts at point 0000. It chooses one of four possible points. It then has three more choices, chooses one and checks to see if the snake has violated any rules. 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111
If TailWagger chooses a point that violates a rule, it backtracks and tries one of the other points. 0010 would have to link with 0000 but the snake is still too small. 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111
If no rules have been violated, it continues choosing new points. If all three choices violate a rule, it backtracks to the previous point and chooses another point there. 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111
When it finds a valid snake it prints it out. Then it backtracks (as if it had found an error) and chooses other points that haven’t been tried. 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111
Eventually, it backtracks all the way to the third node where the program stops. Do you see why it isn’t necessary to backtrack to the first point to try all of the possibilities there? 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111
Once TailWagger found all of the snakes (up through 6-space) all of the duplicate snakes had to be thrown out in order to determine the number of unique snakes and their composition. X X X The matter required a bit of careful thought.