introduce bitloops
This commit is contained in:
@@ -687,6 +687,7 @@ public record SwedishGenerator(Rng rng, int[] stack, Clues cache) {
|
||||
if (Main.VERBOSE) System.out.println("generateMask init pop: " + popSize + " clueSize: " + clueSize);
|
||||
var pop = new ArrayList<GridAndFit>();
|
||||
for (var i = 0; i < popSize; i++) {
|
||||
if (Thread.currentThread().isInterrupted()) return null;
|
||||
pop.add(new GridAndFit(hillclimb(randomMask(clueSize), clueSize, 180)));
|
||||
}
|
||||
|
||||
@@ -695,6 +696,7 @@ public record SwedishGenerator(Rng rng, int[] stack, Clues cache) {
|
||||
var children = new ArrayList<GridAndFit>();
|
||||
|
||||
for (var k = 0; k < offspring; k++) {
|
||||
if (Thread.currentThread().isInterrupted()) break;
|
||||
var p1 = pop.get(rng.randint(0, pop.size() - 1));
|
||||
var p2 = pop.get(rng.randint(0, pop.size() - 1));
|
||||
var child = crossover(p1.grid, p2.grid);
|
||||
@@ -720,6 +722,7 @@ public record SwedishGenerator(Rng rng, int[] stack, Clues cache) {
|
||||
|
||||
if (Main.VERBOSE && (gen & 15) == 15) System.out.println(" gen " + gen + "/" + gens + " bestFitness=" + pop.get(0).fit());
|
||||
}
|
||||
if (pop.isEmpty()) return null;
|
||||
GridAndFit best = pop.get(0);
|
||||
for (int i = 1; i < pop.size(); i++) {
|
||||
var x = pop.get(i);
|
||||
|
||||
Reference in New Issue
Block a user