Gather data
This commit is contained in:
@@ -12,7 +12,6 @@ import java.time.format.DateTimeFormatter;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import static puzzle.Export.*;
|
import static puzzle.Export.*;
|
||||||
import static puzzle.SwedishGenerator.*;
|
import static puzzle.SwedishGenerator.*;
|
||||||
@@ -342,7 +341,7 @@ public class Main {
|
|||||||
TOTAL_ATTEMPTS.incrementAndGet();
|
TOTAL_ATTEMPTS.incrementAndGet();
|
||||||
var swe = new SwedishGenerator(rng);
|
var swe = new SwedishGenerator(rng);
|
||||||
var mask = swe.generateMask(opts.pop, opts.gens);
|
var mask = swe.generateMask(opts.pop, opts.gens);
|
||||||
var filled = new CSP(rng).fillMask(mask, dict.index(), 200, opts.fillTimeout);
|
var filled = new CSP(rng).fillMask(mask, dict.index(), opts.fillTimeout);
|
||||||
|
|
||||||
TOTAL_NODES.addAndGet(filled.stats().nodes);
|
TOTAL_NODES.addAndGet(filled.stats().nodes);
|
||||||
TOTAL_BACKTRACKS.addAndGet(filled.stats().backtracks);
|
TOTAL_BACKTRACKS.addAndGet(filled.stats().backtracks);
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ public record SwedishGenerator(Rng rng) {
|
|||||||
//@formatter:off
|
//@formatter:off
|
||||||
@FunctionalInterface interface SlotVisitor { void visit(int key, long packedPos, int len); }
|
@FunctionalInterface interface SlotVisitor { void visit(int key, long packedPos, int len); }
|
||||||
//@formatter:on
|
//@formatter:on
|
||||||
|
static final int LOG_EVERY_MS = 200;
|
||||||
static final int BAR_LEN = 22;
|
static final int BAR_LEN = 22;
|
||||||
static final int C = Config.PUZZLE_COLS;
|
static final int C = Config.PUZZLE_COLS;
|
||||||
static final double CROSS_R = (C - 1) / 2.0;
|
static final double CROSS_R = (C - 1) / 2.0;
|
||||||
@@ -751,7 +752,7 @@ public record SwedishGenerator(Rng rng) {
|
|||||||
record CSP(Rng rng) {
|
record CSP(Rng rng) {
|
||||||
|
|
||||||
public FillResult fillMask(Grid mask, DictEntry[] dictIndex,
|
public FillResult fillMask(Grid mask, DictEntry[] dictIndex,
|
||||||
int logEveryMs, int timeLimitMs) {
|
int timeLimitMs) {
|
||||||
boolean multiThreaded = Thread.currentThread().getName().contains("pool");
|
boolean multiThreaded = Thread.currentThread().getName().contains("pool");
|
||||||
var grid = mask.deepCopyGrid();
|
var grid = mask.deepCopyGrid();
|
||||||
var slots = extractSlots(grid);
|
var slots = extractSlots(grid);
|
||||||
@@ -773,7 +774,7 @@ public record SwedishGenerator(Rng rng) {
|
|||||||
Runnable renderProgress = () -> {
|
Runnable renderProgress = () -> {
|
||||||
if (!Main.VERBOSE || multiThreaded) return;
|
if (!Main.VERBOSE || multiThreaded) return;
|
||||||
var now = System.currentTimeMillis();
|
var now = System.currentTimeMillis();
|
||||||
if ((now - lastLog.get()) < logEveryMs) return;
|
if ((now - lastLog.get()) < LOG_EVERY_MS) return;
|
||||||
lastLog.set(now);
|
lastLog.set(now);
|
||||||
|
|
||||||
var done = assigned.size();
|
var done = assigned.size();
|
||||||
|
|||||||
@@ -148,8 +148,7 @@ public class MainTest {
|
|||||||
int foundSeed = -1;
|
int foundSeed = -1;
|
||||||
for (int i = 0; i < 50; i++) {
|
for (int i = 0; i < 50; i++) {
|
||||||
int seed = opts.seed + i;
|
int seed = opts.seed + i;
|
||||||
var rng = new Rng(seed);
|
res = Main.attempt(new Rng(seed), dict, opts);
|
||||||
res = Main.attempt(rng, dict, opts);
|
|
||||||
if (res != null && res.filled().ok()) {
|
if (res != null && res.filled().ok()) {
|
||||||
foundSeed = seed;
|
foundSeed = seed;
|
||||||
System.out.println("[DEBUG_LOG] Seed found: " + seed);
|
System.out.println("[DEBUG_LOG] Seed found: " + seed);
|
||||||
|
|||||||
Reference in New Issue
Block a user