automatically find good start
Closed this issue · 3 comments
helbling commented
automatically find which start would be a good one
display the optimal one by default according to some optimization function
imurray commented
The android https://github.com/namlit/siteswap_generator app seems to have a good heuristic for picking starts.
helbling commented
For reference its this:
// The higher the returned integer value, the better the current rotation can be
// used as a starting position.
public int measureSuitabilityForStartingPosition() {
int measure = 0;
if (!isMandatoryGetin())
measure += 1000;
if (isGroundStateClubDistribution())
measure += 10;
if (isGetinFree())
measure += 1;
if (Siteswap.isPass(at(0), getNumberOfJugglers()))
measure += 100;
for(int i = 1; i < getNumberOfJugglers(); ++i) {
if (Siteswap.isPass(at(i), getNumberOfJugglers()))
measure += 2;
}
return measure;
}
helbling commented
Implemented.
No special starting throws yet. When asking around almost all siteswaps are just started directly with different start distributions of objects.
The only example I have so far is to start 792 with 794. However there is a very reasonable start for that one where A starts with 927 locally, two in left and one in right.
Currently the optimization function looks like this:
var weight = 100 * start_properties.is_ground_state - 10 * start_properties.squeezes + start_properties.starts_with_pass;