diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 25 |
1 files changed, 13 insertions, 12 deletions
| @@ -1,18 +1,19 @@ | |||
| 1 | # Nissy | 1 | # Nissy |
| 2 | 2 | ||
| 3 | A Rubik's cube solver and FMC assistant. | 3 | A Rubik's cube solver and FMC assistant. |
| 4 | For optimal HTM solving nissy uses the same method as Herbert Kociemba's | 4 | For optimal HTM solving Nissy uses techniquest from Herbert Kociemba's |
| 5 | [Cube Explorer](http://kociemba.org/cube.htm). When using a single CPU thread | 5 | [Cube Explorer](http://kociemba.org/cube.htm) and Tomas Rokicki's |
| 6 | its performance are comparable, but nissy is much faster when using multiple | 6 | [nxopt](https://github.com/rokicki/cube20src/blob/master/nxopt.md). |
| 7 | threads (with the -t option for the solve command). | 7 | With 4 cores at 2.5GHz and using less than 3Gb of RAM, Nissy can find an |
| 8 | issy can also solve many different substeps of | 8 | optimal solution in less than a minute (18 moves or less) to a few minutes. |
| 9 | Thistlethwaite's algorithm (DR/HTR), and can use NISS (Normal-Inverse Scramble Switch). | ||
| 10 | 9 | ||
| 10 | Nissy can also solve many different substeps of Thistlethwaite's algorithm | ||
| 11 | (DR/HTR), and can use NISS (Normal-Inverse Scramble Switch). | ||
| 11 | It can be useful to analyze your DR solves (and more, once I implement more features). | 12 | It can be useful to analyze your DR solves (and more, once I implement more features). |
| 12 | 13 | ||
| 13 | ## Why should I use nissy? | 14 | ## Why should I use Nissy? |
| 14 | 15 | ||
| 15 | You should use nissy if you: | 16 | You should use Nissy if you: |
| 16 | * Want to analyze your DR solutions or check for multiple optimal (or sub-optimal) | 17 | * Want to analyze your DR solutions or check for multiple optimal (or sub-optimal) |
| 17 | solutions for EO/DR/HTR or similar substeps. | 18 | solutions for EO/DR/HTR or similar substeps. |
| 18 | * You just want a Rubik's cube solver and you like command line interfaces. | 19 | * You just want a Rubik's cube solver and you like command line interfaces. |
| @@ -20,7 +21,7 @@ solutions for EO/DR/HTR or similar substeps. | |||
| 20 | 21 | ||
| 21 | ## Requirements | 22 | ## Requirements |
| 22 | 23 | ||
| 23 | A full installation of nissy requires a little more than 2Gb of space, | 24 | A full installation of Nissy requires a little more than 2Gb of space, |
| 24 | of which 1.6Gb are occupied by the huge pruning table for fast optimal solving, | 25 | of which 1.6Gb are occupied by the huge pruning table for fast optimal solving, |
| 25 | and running it requires the same amount of RAM. | 26 | and running it requires the same amount of RAM. |
| 26 | One can choose to never use this function and not to install the relative | 27 | One can choose to never use this function and not to install the relative |
| @@ -48,14 +49,14 @@ Follows the instructions below to install the pruning tables. | |||
| 48 | ### Tables | 49 | ### Tables |
| 49 | Nissy needs to generate certain large tables to work. These tables are by default | 50 | Nissy needs to generate certain large tables to work. These tables are by default |
| 50 | generated the first time they are needed (e.g the first time you ask to solve a | 51 | generated the first time they are needed (e.g the first time you ask to solve a |
| 51 | certain step) and then saved to a file. The following times nissy simply loads the | 52 | certain step) and then saved to a file. The following times Nissy simply loads the |
| 52 | corresponding file from the hard disk. | 53 | corresponding file from the hard disk. |
| 53 | 54 | ||
| 54 | The very large table for optimal solving can take some time to generate (about 20 | 55 | The very large table for optimal solving can take some time to generate (about 20 |
| 55 | minutes on my fairly old but decent laptop, using 8 CPU threads). All other | 56 | minutes on my fairly old but decent laptop, using 8 CPU threads). All other |
| 56 | tables are much faster. | 57 | tables are much faster. |
| 57 | 58 | ||
| 58 | You can ask nissy to generate all the tables it will ever need with the **gen** | 59 | You can ask Nissy to generate all the tables it will ever need with the **gen** |
| 59 | command. It is recommended to use more than one thread, if your CPU has them. | 60 | command. It is recommended to use more than one thread, if your CPU has them. |
| 60 | For example, you can run: | 61 | For example, you can run: |
| 61 | 62 | ||
| @@ -86,7 +87,7 @@ I'll try to explain here the main parts of the program. | |||
| 86 | 87 | ||
| 87 | ### Cube, moves and transformations | 88 | ### Cube, moves and transformations |
| 88 | 89 | ||
| 89 | There are many ways to represent a cube. In nissy I use two: | 90 | There are many ways to represent a cube. In Nissy I use two: |
| 90 | * An array representation `CubeArray`: 3 arrays representing the permutation | 91 | * An array representation `CubeArray`: 3 arrays representing the permutation |
| 91 | of corners, edges and centers and 2 arrays for the orientation of corners and edges. | 92 | of corners, edges and centers and 2 arrays for the orientation of corners and edges. |
| 92 | * An 11-integers representation `Cube`: 3 integers for edge orientation (with respect | 93 | * An 11-integers representation `Cube`: 3 integers for edge orientation (with respect |
