| … | … | @@ -134,19 +134,52 @@ is no weighting or ranking involved in the drawing of pieces. |
| 134 | 134 | |
| 135 | 135 | ## The `RandomCallback` |
| 136 | 136 | |
| 137 | | Under construction. Will provide ranking. Will provide random weighted |
| 138 | | draws. |
| 137 | Provides ranking. Provides random weighted draws. Need writeup here |
| 138 | describing it. |
| 139 | |
| 140 | ## Alternatives to Aggregation |
| 141 | There are other ways of creating network graphs. The aggregation |
| 142 | algorithm is an implementation of the idea that networks can be |
| 143 | "assembled", and that the assembly process is very much like assembling |
| 144 | a jogsaw puzzle: start with an edge-piece, and keep adding more and more |
| 145 | pieces, until one is done. But there are other possibilities. |
| 146 | |
| 147 | * Changing priorities during aggregation. So during early stages of |
| 148 | aggregation, if one consistntly picks high-arity pieces, one risks |
| 149 | combinatoric explosion and an infinite graph. To avoid this, the |
| 150 | probabilities could be adjusted to pick only lower-arity pieces, |
| 151 | as the number of unconnected connectors gets too large. |
| 152 | |
| 153 | * Swapping out pieces during aggregation. If there are too many |
| 154 | unconnected connectors, one could hunt for pieces that are identical, |
| 155 | in all respects, except that they have fewer connectors. These can |
| 156 | then be swaped in place of the bigger connector. |
| 157 | |
| 158 | * Like the above, but making the network more sparse, by activly cutting |
| 159 | links. |
| 160 | |
| 161 | * Growing a network. Inverse of the above: given an existing connected |
| 162 | edge, break it and insert a new piece in its place. This is |
| 163 | interesting because it is more "botanical" in it's process - its |
| 164 | actual growth. |
| 165 | |
| 166 | * Growth could be governed by explicit choices of substitution rules |
| 167 | (e.g. Lindenmeyer systems) and very specifically, the wealth of work |
| 168 | from Przemyslaw Prusinkiewicz at http://algorithmicbotany.org/papers/ |
| 169 | |
| 170 | * The Prusinkiewicz work can be thought of as work with structure |
| 171 | grammars (e.g. BNF forms, classic Chomsky context-free grammars) |
| 172 | whereas the work here is with dependency grammars. These two grammar |
| 173 | types are "in principle" interconvertible, but behave quite |
| 174 | differently. A wealk of possibilities open up by stealing the |
| 175 | Prusinkiewicz ideas and applying them to dependency grammars. |
| 139 | 176 | |
| 140 | 177 | ## To-do |
| 141 | 178 | |
| 142 | 179 | * Add weights to the polar-pairs list. |
| 143 | | * Add weights to the puzzle-pieces and/or connectors. |
| 144 | | * Add weighted random draw |
| 145 | 180 | * Allow pieces to be drawn at most N times, for any given piece. |
| 146 | 181 | * Force planar graphs |
| 147 | 182 | * Control recursion when there are degenerate link-types. |
| 148 | | * Fix the one-connector-type-per-disjunct issue, see issue #4. |
| 149 | | |
| 150 | | And, of course... mandatory seeds! |
| 183 | (See issue #6) |
| 151 | 184 | |
| 152 | 185 | THE END. Thanks for paying attention! |