PermutaTriangle / Tilings

a Python library for working with gridded permutation and tilings
https://permutatriangle.github.io/programs/2019-6-17-tilings.html
BSD 3-Clause "New" or "Revised" License
9 stars 4 forks source link

adds flag to allow factorable requirement insertions, default = False #473

Closed jaypantone closed 2 years ago

jaypantone commented 2 years ago

Testing plan: after merging the PR to show number of rules produced per strategy, try some runs with and without factorable requirement insertions, to see how much the universe is expanded.

jaypantone commented 2 years ago

Tested for ~10 minutes on Av(2413) with requirement_placements(2), both allowing and disallowing factorable requirement insertion.

Disallowing:

                                                   Number of                                Number of
                                                applications    Time spent    Percentage        rules
        ------------------------------------  --------------  ------------  ------------  -----------
        requirement placement                          4,800       0:03:33           33%       30,084
        add rule                                     176,203       0:02:47           25%            -
        row and column separation                     96,906       0:01:09           10%       31,263
        requirement insertion up to length 2           4,800       0:00:40            6%       31,826
        requirement corroboration                     81,568       0:00:37            5%       15,538

Allowing:

                                                   Number of                                Number of
                                                applications    Time spent    Percentage        rules
        ------------------------------------  --------------  ------------  ------------  -----------
        requirement placement                          4,672       0:03:13           29%       27,552
        add rule                                     176,408       0:02:57           27%            -
        row and column separation                    103,015       0:01:08           10%       30,031
        requirement insertion up to length 2           4,672       0:00:52            8%       38,249
        requirement corroboration                     88,468       0:00:34            5%       14,064
jaypantone commented 2 years ago

Disallowing:

    ClassDB status:
        Total number of combinatorial classes found is 156,209
        is_empty check applied 73903 time. Time spent: 0:00:00
    Queue status (currently on level 5):
        Size       working    current (set 1)    next    underlying    all labels
        -------  ---------  -----------------  ------  ------------  ------------
        Queue 0          0                  0       0             1             1
        Queue 1          0                  0       0             6             8
        Queue 2          0                  0       0            89           102
        Queue 3          0                  0       0           630           766
        Queue 4          0                  0       0          6074          7621
        Queue 5         18                327  76,475        110124        147711

Allowing:

    ClassDB status:
        Total number of combinatorial classes found is 169,175
        is_empty check applied 81170 time. Time spent: 0:00:01
    Queue status (currently on level 5):
        Size       working    current (set 1)    next    underlying    all labels
        -------  ---------  -----------------  ------  ------------  ------------
        Queue 0          0                  0       0             1             1
        Queue 1          0                  0       0             6             8
        Queue 2          0                  0       0            89           102
        Queue 3          0                  0       0           630           766
        Queue 4          0                  0       0          6338          8026
        Queue 5          7                900  82,967        122931        160272
jaypantone commented 2 years ago

We should discuss what the default should be. I suspect that we would not often manually modify packs to change the default, so what we decide the default should be is probably what all runs will be done with.