4.1 KiB
Chords: 1.74806 - the 120-cell has 7200 chords of this length
Looking for a way to partition the 600 vertices of the 120 cell into five disjoint 600-cells, each of which has 120 vertices.
(there are 10 such 600-cells so two ways to do the partition I guess)
a 600-cell has 720 edges! optimistically this means that each chord in the collection of 7200 belongs to one and only one of the 600-cells.
the way forward:
I need to take the 7200 chords (pairs of nodes) and divide them into sets which are connected to one another - with any luck, each of these will be one of the 10 600-cells
Then need to sort these 10 sets of 120 vertices into the two sets of 5
collate chords by node
Each 120-cell vertex has 24 of the chord3s from it - as a 600-cell has 12 edges to each vertex, this suggests that each 120-vertex belongs to two 600-cells with a disjoint set of vertices
Next algorithm - gather each 600-cell
use the chords as the basis for this.
n1 -> 24 chords -> add these 24 neighbours
bad luck - traversing chord3s from the first vertex reaches all 600 vertices- which isn't suprising as the two 5 disjoint sets overlap. Sigh.
Use the angles between the chords? seems a bit complex
Get the angles from the 600-cell model. Use these to separate out the sets of 24 chords from a point on the 120-cell.
Notes from dinner:
- all of the 60-degree angles are chords joining the vertices of the tetrahedra
- there should be two sets of these
for eg - this works for the chords from 1!
[ 25, 41 ],
[ 25, 97 ],
[ 25, 109 ],
[ 25, 157 ],
[ 25, 161 ],
[ 41, 97 ],
[ 41, 109 ],
[ 41, 173 ],
[ 41, 177 ],
[ 97, 113 ],
[ 97, 161 ],
[ 97, 177 ],
[ 37, 53 ],
[ 37, 93 ],
[ 37, 113 ],
[ 37, 157 ],
[ 37, 161 ],
[ 53, 93 ],
[ 53, 113 ],
[ 53, 173 ],
[ 53, 177 ],
[ 173, 177 ]
[ 93, 109 ],
[ 93, 157 ],
[ 93, 173 ],
[ 109, 157 ],
[ 109, 173 ],
[ 113, 161 ],
[ 113, 177 ],
[ 157, 161 ],
[ 29, 45 ], 5
[ 29, 101 ], 101
[ 29, 105 ], 105
[ 29, 153 ], 153
[ 29, 165 ], 165
[ 45, 101 ],
[ 45, 105 ],
[ 45, 169 ], 169
[ 45, 181 ], 181
[ 101, 117 ], 117
[ 101, 165 ],
[ 101, 181 ],
[ 105, 153 ],
[ 105, 169 ],
[ 33, 49 ], 33 49
[ 33, 89 ], 89
[ 33, 117 ],
[ 33, 153 ],
[ 33, 165 ],
[ 49, 89 ],
[ 49, 117 ],
[ 49, 169 ],
[ 49, 181 ],
[ 169, 181 ],
[ 89, 105 ],
[ 89, 153 ],
[ 89, 169 ],
[ 117, 165 ],
[ 117, 181 ],
[ 153, 165 ],
So each of these is one of the two icosahedral pyramids from node 1.
Doing this manually for the rest of the partition is possible, but could it be automated based on angles?
Plan for Sunday:
-
use the existing label_subgraph to make a function which partitions the 60-angle chords into two groups (like I did manually above)
// this is done and seems to work
-
test this labelling manually (ie colour one set of 60-angle vertices)
// done this with the manual labels and it looks good
-
make another labeling routine which can fill out the rest of the 600-cell from the starting dodecahedron, by only following chords which are at 60 to the entering chord
Then the big algorithm does the following:
-
start from node 1, find 60-angles, pick one partition at random, label that 600-cell
-
find the next unlabelled node
-
find 60-angles, partition them, pick a partition with no unlabelled cells and label that 600-cell
-
repeat the previous step for the remaining three 600-cells
Alternative, more manual option: just write the second labelling routine and do the rest by hand
[ 25, 41 ],
[ 25, 97 ],
[ 25, 109 ],
[ 25, 157 ],
[ 25, 161 ],
[ 41, 97 ],
[ 41, 109 ],
[ 41, 173 ],
[ 41, 177 ],
[ 97, 113 ],
[ 97, 161 ],
[ 97, 177 ],
[ 37, 53 ],
[ 37, 93 ],
[ 37, 113 ],
[ 37, 157 ],
[ 37, 161 ],
[ 53, 93 ],
[ 53, 113 ],
[ 53, 173 ],
[ 53, 177 ],
[ 173, 177 ]
[ 93, 109 ],
[ 93, 157 ],
[ 93, 173 ],
[ 109, 157 ],
[ 109, 173 ],
[ 113, 161 ],
[ 113, 177 ],
[ 157, 161 ],
25 41 97 109 157 161 173 177 113 37 53 93