nissy-core

The "engine" of nissy, including the H48 optimal solver.
git clone https://git.tronto.net/nissy-core
Download | Log | Files | Refs | README | LICENSE

commit f283c08db86777fe77bdf00d3d70687107a376d9
parent d5c60236c06e67e8da45e63843b37e5d619e9d7b
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date:   Fri, 19 Dec 2025 07:37:30 +0100

Fix typo in benchmarks

Diffstat:
Mbenchmarks/benchmarks.md | 156++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mbenchmarks/plot-benchmarks.py | 2+-
2 files changed, 79 insertions(+), 79 deletions(-)

diff --git a/benchmarks/benchmarks.md b/benchmarks/benchmarks.md @@ -69,33 +69,33 @@ Time per cube (in seconds, lower is better). | Solver | Size |17 moves|18 moves|19 moves|20 moves|Superflip| |:---------|:-------|-------:|-------:|-------:|-------:|--------:| -|vcube 212 |58.2 Gib| 0.11| 0.75| 3.43| 27.28| 19.30| -|H48 h11 |56.5 Gib| 0.14| 0.78| 3.74| 26.05| 20.27| -|vcube 404 |31.8 Gib| 0.23| 1.24| 6.10| 59.33| 268.26| -|H48 h10 |28.3 Gib| 0.25| 1.25| 6.33| 44.75| 48.70| -|vcube 308 |21.2 Gib| 0.17| 1.02| 6.20| 58.70| 604.35| -|H48 h9 |14.1 Gib| 0.36| 2.48| 11.73| | | -|vcube 208 | 7.3 Gib| 0.56| 4.36| 20.58| | | -|H48 h8 | 7.1 Gib| 0.79| 6.07| 25.58| | | -|H48 h7 | 3.5 Gib| 1.06| 8.51| 42.97| | | -|vcube 112 | 2.4 Gib| 0.96| 9.29| 40.52| | | -|H48 h6 | 1.8 Gib| 2.11| 16.23| 81.30| | | +|vcube 212 |58.2 GiB| 0.11| 0.75| 3.43| 27.28| 19.30| +|H48 h11 |56.5 GiB| 0.14| 0.78| 3.74| 26.05| 20.27| +|vcube 404 |31.8 GiB| 0.23| 1.24| 6.10| 59.33| 268.26| +|H48 h10 |28.3 GiB| 0.25| 1.25| 6.33| 44.75| 48.70| +|vcube 308 |21.2 GiB| 0.17| 1.02| 6.20| 58.70| 604.35| +|H48 h9 |14.1 GiB| 0.36| 2.48| 11.73| | | +|vcube 208 | 7.3 GiB| 0.56| 4.36| 20.58| | | +|H48 h8 | 7.1 GiB| 0.79| 6.07| 25.58| | | +|H48 h7 | 3.5 GiB| 1.06| 8.51| 42.97| | | +|vcube 112 | 2.4 GiB| 0.96| 9.29| 40.52| | | +|H48 h6 | 1.8 GiB| 2.11| 16.23| 81.30| | | Time per cube adjusted for table size (in seconds \* GiB, lower is better). | Solver | Size |17 moves|18 moves|19 moves|20 moves|Superflip| |:---------|:-------|-------:|-------:|-------:|-------:|--------:| -|vcube 212 |58.2 Gib| 6.43| 43.80| 199.38| 1587.43| 1122.73| -|H48 h11 |56.5 Gib| 8.11| 44.29| 211.50| 1471.86| 1145.45| -|vcube 404 |31.8 Gib| 7.40| 39.47| 194.01| 1887.94| 8535.87| -|H48 h10 |28.3 Gib| 7.03| 35.19| 178.96| 1264.32| 1375.96| -|vcube 308 |21.2 Gib| 3.51| 21.71| 131.50| 1245.26| 12819.94| -|H48 h9 |14.1 Gib| 5.09| 35.06| 165.70| | | -|vcube 208 | 7.3 Gib| 4.08| 31.74| 149.68| | | -|H48 h8 | 7.1 Gib| 5.60| 42.89| 180.75| | | -|H48 h7 | 3.5 Gib| 3.74| 30.07| 151.82| | | -|vcube 112 | 2.4 Gib| 2.33| 22.53| 98.23| | | -|H48 h6 | 1.8 Gib| 3.73| 28.69| 143.70| | | +|vcube 212 |58.2 GiB| 6.43| 43.80| 199.38| 1587.43| 1122.73| +|H48 h11 |56.5 GiB| 8.11| 44.29| 211.50| 1471.86| 1145.45| +|vcube 404 |31.8 GiB| 7.40| 39.47| 194.01| 1887.94| 8535.87| +|H48 h10 |28.3 GiB| 7.03| 35.19| 178.96| 1264.32| 1375.96| +|vcube 308 |21.2 GiB| 3.51| 21.71| 131.50| 1245.26| 12819.94| +|H48 h9 |14.1 GiB| 5.09| 35.06| 165.70| | | +|vcube 208 | 7.3 GiB| 4.08| 31.74| 149.68| | | +|H48 h8 | 7.1 GiB| 5.60| 42.89| 180.75| | | +|H48 h7 | 3.5 GiB| 3.74| 30.07| 151.82| | | +|vcube 112 | 2.4 GiB| 2.33| 22.53| 98.23| | | +|H48 h6 | 1.8 GiB| 3.73| 28.69| 143.70| | | <img src="img/17moves1thread.png"> <img src="img/18moves1thread.png"> @@ -109,33 +109,33 @@ Time per cube (in seconds, lower is better). | Solver | Size |17 moves|18 moves|19 moves|20 moves|Superflip| |:---------|:-------|-------:|-------:|-------:|-------:|--------:| -|vcube 212 |58.2 Gib| 0.03| 0.27| 1.04| 7.70| (a) | -|H48 h11 |56.5 Gib| 0.05| 0.23| 1.06| 7.07| 6.19| -|vcube 404 |31.8 Gib| 0.07| 0.30| 1.65| 16.17| (a) | -|H48 h10 |28.3 Gib| 0.08| 0.37| 1.75| 13.54| 14.26| -|vcube 308 |21.2 Gib| 0.05| 0.35| 1.78| 16.61| (a) | -|H48 h9 |14.1 Gib| 0.11| 0.74| 3.37| 24.44| 25.39| -|vcube 208 | 7.3 Gib| 0.16| 1.47| 5.86| | (a) | -|H48 h8 | 7.1 Gib| 0.24| 1.71| 7.22| | | -|H48 h7 | 3.5 Gib| 0.31| 2.40| 11.74| | | -|vcube 112 | 2.4 Gib| 0.29| 3.13| 11.95| | (a) | -|H48 h6 | 1.8 Gib| 0.61| 4.65| 23.09| | | +|vcube 212 |58.2 GiB| 0.03| 0.27| 1.04| 7.70| (a) | +|H48 h11 |56.5 GiB| 0.05| 0.23| 1.06| 7.07| 6.19| +|vcube 404 |31.8 GiB| 0.07| 0.30| 1.65| 16.17| (a) | +|H48 h10 |28.3 GiB| 0.08| 0.37| 1.75| 13.54| 14.26| +|vcube 308 |21.2 GiB| 0.05| 0.35| 1.78| 16.61| (a) | +|H48 h9 |14.1 GiB| 0.11| 0.74| 3.37| 24.44| 25.39| +|vcube 208 | 7.3 GiB| 0.16| 1.47| 5.86| | (a) | +|H48 h8 | 7.1 GiB| 0.24| 1.71| 7.22| | | +|H48 h7 | 3.5 GiB| 0.31| 2.40| 11.74| | | +|vcube 112 | 2.4 GiB| 0.29| 3.13| 11.95| | (a) | +|H48 h6 | 1.8 GiB| 0.61| 4.65| 23.09| | | Time per cube adjusted for table size (in seconds \* GiB, lower is better). | Solver | Size |17 moves|18 moves|19 moves|20 moves|Superflip| |:---------|:-------|-------:|-------:|-------:|-------:|--------:| -|vcube 212 |58.2 Gib| 2.03| 15.69| 60.25| 447.97| (a) | -|H48 h11 |56.5 Gib| 2.71| 13.18| 60.13| 399.70| 349.94| -|vcube 404 |31.8 Gib| 2.32| 9.50| 52.46| 514.50| (a) | -|H48 h10 |28.3 Gib| 2.17| 10.32| 49.45| 382.53| 402.87| -|vcube 308 |21.2 Gib| 1.02| 7.52| 37.82| 352.36| (a) | -|H48 h9 |14.1 Gib| 1.56| 10.45| 47.54| 345.21| 358.74| -|vcube 208 | 7.3 Gib| 1.18| 10.69| 42.63| | (a) | -|H48 h8 | 7.1 Gib| 1.66| 12.08| 50.99| | | -|H48 h7 | 3.5 Gib| 1.10| 8.46| 41.48| | | -|vcube 112 | 2.4 Gib| 0.69| 7.59| 28.97| | (a) | -|H48 h6 | 1.8 Gib| 1.08| 8.21| 40.82| | | +|vcube 212 |58.2 GiB| 2.03| 15.69| 60.25| 447.97| (a) | +|H48 h11 |56.5 GiB| 2.71| 13.18| 60.13| 399.70| 349.94| +|vcube 404 |31.8 GiB| 2.32| 9.50| 52.46| 514.50| (a) | +|H48 h10 |28.3 GiB| 2.17| 10.32| 49.45| 382.53| 402.87| +|vcube 308 |21.2 GiB| 1.02| 7.52| 37.82| 352.36| (a) | +|H48 h9 |14.1 GiB| 1.56| 10.45| 47.54| 345.21| 358.74| +|vcube 208 | 7.3 GiB| 1.18| 10.69| 42.63| | (a) | +|H48 h8 | 7.1 GiB| 1.66| 12.08| 50.99| | | +|H48 h7 | 3.5 GiB| 1.10| 8.46| 41.48| | | +|vcube 112 | 2.4 GiB| 0.69| 7.59| 28.97| | (a) | +|H48 h6 | 1.8 GiB| 1.08| 8.21| 40.82| | | (a) vcube cannot parallelize on a single scramble, the results for the superflip are going to be the same as in the single thread case. @@ -152,33 +152,33 @@ Time per cube (in seconds, lower is better). | Solver | Size |17 moves|18 moves|19 moves|20 moves|Superflip| |:---------|:-------|-------:|-------:|-------:|-------:|--------:| -|vcube 212 |58.2 Gib| 0.02| 0.13| 0.45| 2.84| (a) | -|H48 h11 |56.5 Gib| 0.02| 0.08| 0.35| 2.26| 2.49| -|vcube 404 |31.8 Gib| 0.04| 0.14| 0.65| 6.08| (a) | -|H48 h10 |28.3 Gib| 0.03| 0.13| 0.60| 4.15| 5.62| -|vcube 308 |21.2 Gib| 0.03| 0.19| 0.78| 6.67| (a) | -|H48 h9 |14.1 Gib| 0.04| 0.25| 1.10| 8.04| 10.71| -|vcube 208 | 7.3 Gib| 0.08| 0.79| 2.43| | (a) | -|H48 h8 | 7.1 Gib| 0.08| 0.58| 2.42| | | -|H48 h7 | 3.5 Gib| 0.11| 0.80| 3.87| | | -|vcube 112 | 2.4 Gib| 0.15| 1.63| 5.10| | (a) | -|H48 h6 | 1.8 Gib| 0.21| 1.51| 7.67| | | +|vcube 212 |58.2 GiB| 0.02| 0.13| 0.45| 2.84| (a) | +|H48 h11 |56.5 GiB| 0.02| 0.08| 0.35| 2.26| 2.49| +|vcube 404 |31.8 GiB| 0.04| 0.14| 0.65| 6.08| (a) | +|H48 h10 |28.3 GiB| 0.03| 0.13| 0.60| 4.15| 5.62| +|vcube 308 |21.2 GiB| 0.03| 0.19| 0.78| 6.67| (a) | +|H48 h9 |14.1 GiB| 0.04| 0.25| 1.10| 8.04| 10.71| +|vcube 208 | 7.3 GiB| 0.08| 0.79| 2.43| | (a) | +|H48 h8 | 7.1 GiB| 0.08| 0.58| 2.42| | | +|H48 h7 | 3.5 GiB| 0.11| 0.80| 3.87| | | +|vcube 112 | 2.4 GiB| 0.15| 1.63| 5.10| | (a) | +|H48 h6 | 1.8 GiB| 0.21| 1.51| 7.67| | | Time per cube adjusted for table size (in seconds \* GiB, lower is better). | Solver | Size |17 moves|18 moves|19 moves|20 moves|Superflip| |:---------|:-------|-------:|-------:|-------:|-------:|--------:| -|vcube 212 |58.2 Gib| 0.95| 7.83| 26.04| 165.03| (a) | -|H48 h11 |56.5 Gib| 1.17| 4.79| 19.66| 127.55| 140.45| -|vcube 404 |31.8 Gib| 1.21| 4.60| 20.76| 193.43| (a) | -|H48 h10 |28.3 Gib| 0.85| 3.62| 16.96| 117.32| 158.83| -|vcube 308 |21.2 Gib| 0.67| 4.01| 16.48| 141.49| (a) | -|H48 h9 |14.1 Gib| 0.61| 3.49| 15.57| 113.56| 151.37| -|vcube 208 | 7.3 Gib| 0.56| 5.78| 17.68| | (a) | -|H48 h8 | 7.1 Gib| 0.59| 4.13| 17.07| | | -|H48 h7 | 3.5 Gib| 0.40| 2.84| 13.68| | | -|vcube 112 | 2.4 Gib| 0.35| 3.95| 12.37| | (a) | -|H48 h6 | 1.8 Gib| 0.38| 2.66| 13.57| | | +|vcube 212 |58.2 GiB| 0.95| 7.83| 26.04| 165.03| (a) | +|H48 h11 |56.5 GiB| 1.17| 4.79| 19.66| 127.55| 140.45| +|vcube 404 |31.8 GiB| 1.21| 4.60| 20.76| 193.43| (a) | +|H48 h10 |28.3 GiB| 0.85| 3.62| 16.96| 117.32| 158.83| +|vcube 308 |21.2 GiB| 0.67| 4.01| 16.48| 141.49| (a) | +|H48 h9 |14.1 GiB| 0.61| 3.49| 15.57| 113.56| 151.37| +|vcube 208 | 7.3 GiB| 0.56| 5.78| 17.68| | (a) | +|H48 h8 | 7.1 GiB| 0.59| 4.13| 17.07| | | +|H48 h7 | 3.5 GiB| 0.40| 2.84| 13.68| | | +|vcube 112 | 2.4 GiB| 0.35| 3.95| 12.37| | (a) | +|H48 h6 | 1.8 GiB| 0.38| 2.66| 13.57| | | (a) vcube cannot parallelize on a single scramble, the results for the superflip are going to be the same as in the single thread case. @@ -197,23 +197,23 @@ Time per cube (in seconds, lower is better). | Solver | Size |17 moves|18 moves|19 moves|20 moves|Superflip| |:---------|:-------|-------:|-------:|-------:|-------:|--------:| -|H48 h11 |56.5 Gib| 0.05| 0.42| 3.84| 32.35| 22.63| -|H48 h10 |28.3 Gib| 0.07| 0.72| 6.71| 58.57| 48.90| -|H48 h9 |14.1 Gib| 0.12| 1.28| 12.76| | | -|H48 h8 | 7.1 Gib| 0.24| 2.75| 27.44| | | -|H48 h7 | 3.5 Gib| 0.36| 4.20| 46.64| | | -|H48 h6 | 1.8 Gib| 0.69| 8.15| 91.47| | | +|H48 h11 |56.5 GiB| 0.05| 0.42| 3.84| 32.35| 22.63| +|H48 h10 |28.3 GiB| 0.07| 0.72| 6.71| 58.57| 48.90| +|H48 h9 |14.1 GiB| 0.12| 1.28| 12.76| | | +|H48 h8 | 7.1 GiB| 0.24| 2.75| 27.44| | | +|H48 h7 | 3.5 GiB| 0.36| 4.20| 46.64| | | +|H48 h6 | 1.8 GiB| 0.69| 8.15| 91.47| | | Time per cube adjusted for table size (in seconds \* GiB, lower is better). | Solver | Size |17 moves|18 moves|19 moves|20 moves|Superflip| |:---------|:-------|-------:|-------:|-------:|-------:|--------:| -|H48 h11 |56.5 Gib| 2.68| 23.87| 217.09| 1828.13| 1278.88| -|H48 h10 |28.3 Gib| 2.03| 20.22| 189.49| 1654.79| 1381.67| -|H48 h9 |14.1 Gib| 1.71| 18.05| 180.28| | | -|H48 h8 | 7.1 Gib| 1.69| 19.45| 193.88| | | -|H48 h7 | 3.5 Gib| 1.28| 14.85| 164.81| | | -|H48 h6 | 1.8 Gib| 1.22| 14.40| 161.68| | | +|H48 h11 |56.5 GiB| 2.68| 23.87| 217.09| 1828.13| 1278.88| +|H48 h10 |28.3 GiB| 2.03| 20.22| 189.49| 1654.79| 1381.67| +|H48 h9 |14.1 GiB| 1.71| 18.05| 180.28| | | +|H48 h8 | 7.1 GiB| 1.69| 19.45| 193.88| | | +|H48 h7 | 3.5 GiB| 1.28| 14.85| 164.81| | | +|H48 h6 | 1.8 GiB| 1.22| 14.40| 161.68| | | </details> diff --git a/benchmarks/plot-benchmarks.py b/benchmarks/plot-benchmarks.py @@ -29,7 +29,7 @@ def print_row(solver_name, solver_size, dict, mul_by_size, superflip_star): solver_gib = solver_size / (2**30) m = solver_gib if mul_by_size else 1 s = " (a) " if superflip_star else " " - cols = [f"{solver_name: <10}", f"{solver_gib:>4.1f} Gib"] + [ + cols = [f"{solver_name: <10}", f"{solver_gib:>4.1f} GiB"] + [ f"{dict[key]*m/25:>8.2f}" if key in dict else " " for key in [17, 18, 19, 20] ] + [