h-docs

Search

Search IconIcon to open search

Strict Minimals

Strict Minimals

Strict minimals are the smallest possible covering set for a given set of solutions. It can be found through a lot of methods but it is always computationally expensive or tedious to do so.

Here’s an example diagram of strict minimals’ output. It’s not illustrative of how it actually finds the set because that’s a tad bit complicated, but it finds that only solutions A and E are necessary to maximize cover, as opposed to sfinder requiring solutions A, C, and E.

Solution Covers
Solution A
Solution B
Solution C
Solution D
Solution E

>

Strict

Finding Strict Minimals

Downloade NodeJS:

  1. Go to the NodeJS download page. Installing it should be straight-forward.
    • When installing, make sure that NodeJS and npm are added to PATH. This appears in the Custom Setup step of installation.
  2. Open a terminal (Command Prompt, PowerShell, etc.)
  3. Type in npm install -g sfinder-strict-minimal and press enter. This should install the necessary requirements to be able to use the program anywhere on your device.

Creating the files that sfinder-strict-minimal works off of:

Solution finder’s Path Command is used to produce a csv file that is used to find minimals. The sfinder command is identical to a normal path command, but you must specify --format csv (-f csv) and --key pattern (-k p).

Using sfinder-strict-minimal:

  1. To use the program, simply enter sfinder-minimal output/path.csv into a terminal.
    • This assumes that the terminal’s directory is set to the folder where sfinder.jar is.

Program Run-Time

The program mostly runs for a few seconds up to a few minutes. If it lasts longer than that, there may be too many solutions and the result may take quite a while to produce.

This alternative by Knewjade can be used to find a slightly larger set in exchange for a much shorter run-time. I also wrote about how to use it over here.

  1. If there are multiple minimal sets, you may need to choose between solutions. An interactive prompt (use your arrow keys and press enter when you’ve chosen) is used for the user to choose between sets of solutions. Choose according to your needs– if you want ease, prioritize easy-looking solutions. If you want saves, prioritize solutions that save better pieces.

  2. Outputs are written to path_minimal_strict.md. It’s placed in the directory the terminal is linked to. Opening it by itself will allow you to see the solutions if you have a markdown editor. However, you can extract the fumens from the markdown file using the makeMinimals Script (Direct download link)

    • Using the makeMinimals Script is straight-forward. Extract it into the same folder path_minimal_strict.md is in, then enter py true_minimal.py onto a terminal.

Example Path and Strict-Minimal Commands

Here's an example run on how to get strict minimals starting from generating the path file.

v115@LhA8GeC8FeD8AeD8JeAgH

Don’t forget -f csv and -k p. This should create a file in the /output/ folder named path.csv.

1
java -jar sfinder.jar path -t v115@LhA8GeC8FeD8AeD8JeAgH -p T,*! -f csv -k p

From this, you can already find minimals. Simply enter the following:

1
sfinder-minimal output/path.csv

There can different sets of solutions that all qualify as a minimal set. To choose the best one, choices are presented to the user for them to choose between solutions and pin-point their ideal set. Simply use your arrow keys and press enter to choose between setups.

minimal-interactive.png

The output will be written onto path_minimal_strict.md. The resulting minimals may differ depending on how you chose, but these are my results:


v115@9gywR4whh0hlxwR4A8whg0RpglxwC8whg0RpglwwD8?whD8JeAgWTADX7rDy4CwBFbkRBZ1AVBFrvAA v115@9gBtywwhh0R4wwBtwwA8whg0R4glxwC8whg0ilwwD8?whD8JeAgWTADX7rDy4CwBFb0KBW1ZOBFrvAA

As a bonus, you can get the fumen codes extracted from path_minimal_strict.md by using the makeMinimals script.

1
2
3
4
5
Input:
py true_minimal.py

Output:
v115@9gywR4whh0hlxwR4A8whg0RpglxwC8whg0RpglwwD8?whD8JeAgWTADX7rDy4CwBFbkRBZ1AVBFrvAA9gBtywwhh0R?4wwBtwwA8whg0R4glxwC8whg0ilwwD8whD8JeAAPTADX7rD?y4CwBFb0KBW1ZOBFrvAA

Credits

  • Writer: Hsterts
  • Consultation: Marfung37, smdbs, torchlight

References