Releases: PermutaTriangle/Tilings
Releases · PermutaTriangle/Tilings
Version 3.1.0
[3.1.0] - 2022-01-17
Added
Tiling.remove_requirement
method that removes a requirement from a tiling.RemoveRequirementFactory
which adds the rules where we insert a requirement to a
tiling after we first remove that requirement. This is added to
LocallyFactorableVerificationStrategy.pack
.- The tiling initialiser will now add factors of obstructions if it is implied by
multiple different obs and one requirement list of size possibly greater than one.
Previously it was only doing the case where a single ob's factor is implied by a
requirement.
Fixed
ForgetTrackedSearcher
was not retroactively applying strategies that had abasis
.- Bug with sliding symmetries
- The tiling initialiser was not removing duplicate/redundant requirements.
Changed
- One by one verification will now only verify subclasses of the given basis.
- Verification strategies no longer ignore parent
TrackedSearcher
now uses aTrackedQueue
and is able to work with all packs
and new future strategies.
Deprecated
- Python 3.7 is no longer supported
Version 3.0.0
[3.0.0] - 2021-06-14
Added
- Rearrange assumption strategy
TrackingAssumption.from_cell
method- Counting for reverse fusion
FusionParallelSpecFinder
,FusionIsomorphism
andFusionBijection
subclasses
to handle bijection involving fusion and assumption strategies.- a
insertion_point_row_and_col_placements
pack inTileScopePack
TrackedSearcher
andForgetTrackedSearcher
that prioritise expanding classes
with assumptions when the underlying tiling was expanded
Changed
- Updated to use comb_spec_searcher 4.0.0
- Using
strategy_pack.make_fusion
orstrategy_pack.make_tracked
now automatically
addsRearrangeAssumptionFactory
withapply_first=True
iftracked=True
- Moved several local function in
RearrangeConstructor
outward to make it pickleable - Fixed isolated fusion bug
- Fusion is now a one-way strategy.
- Added length to name for
all_the_strategies
pack
Fixed
- Removed a redundant
Tiling.is_empty
check in the fusion algorithm. - Ensure
is_atom
returns False for the empty tiling
Deprecated
- Python 3.6 is no longer supported
Version 2.5.0 (Zenodo)
Re-release for zenode
[2.5.0] - 2020-11-11
Changed
- Updated comb_spec_searcher version for faster counting
Version 2.5.0
[2.5.0] - 2020-11-11
Changed
- Updated comb_spec_searcher version for faster counting
Version 2.4.0
[2.4.0] - 2020-10-28
Added
to_tex
for gridded perms.to_tikz
for gridded perms.to_svg
for gridded perms.to_gui
for tilings.- Mappings for gridded perms:
column_reverse
,row_complement
,
permute_columns
,permute_rows
andapply_perm_map_to_cell
. - Mappings for tilings:
column_reverse
,row_complement
,
permute_columns
,permute_rows
,apply_perm_map_to_cell
. guess_from_gridded_perms
to guess tiling T from gridded perms in Grid(T).enmerate_gp_up_to
counts gridded perms of length 0, 1, 2, ... up to a max length.- Can sample and generate objects from fusion specifications.
Fixed
- Anti-diagonal symmetry backward map was fixed.
This is same as 2.4.1 because of some release confusion
Version 2.3.1
[2.3.1] - 2020-09-11
Fixed
- Dependency issue when installing
Version 2.3.0
[2.3.0] - 2020-09-10
Added
- introduced isolation levels to the fusion strategy
- added the
one_cell_only
option toCellInsertionFactory
remove_components_from_assumptions
method toTiling
DetectComponentsStrategy
which removes cells from assumptions
which are actual components. This replaces the need for the
SplittingStrategy
in component fusion packs.- added equation generators to
FusionStrategy
for the case where one or both
sides are positive - added a
to_html_representation
method toTiling
SubclassVerificationFactory
and the corresponding strategyis_subclass
method toTiling
- added
point_and_row_and_col_placements
strategy ShortObstructionVerificationStrategy
- using Github Actions for testing and deployment
Changed
- insertion packs now use the
one_cell_only
option, and no longer use
RequirementCorroborationFactory
- the
get_eq_symbol
andget_op_symbol
are moved toStrategy
rather than
Constructor
- the
GriddedPermsOnTiling
algorithm was changed to build from minimal
gridded perms in a breadth first manner. This is also include an option to
limit the number of points placed on the minimal gridded perms. - new default behavior of
RequirementInsertionFactory
is to only insert requirements
on tilings that don't already have any - converted the expansion strategies in several strategy packs to be a single set
- requirement corroboration is only enabled when requirements of length > 1 are placed
- A gridded permutation can now be built from any iterable of integer, not only
from permutation.
Fixed
- untracked constructors raise
NotImplementedError
- forbid fusing a region containing a
TrackingAssumption
and a
ComponentAssumption
- a tiling factors if a
ComponentAssumption
if the components of the region
split into the factors - only fuse non-empty regions to avoid creating unintentional rules a -> b
where a and b are equivalent - remove duplicate assumptions in the
AddAssumptionsStrategy
Tiling.from_dict
will make aTiling
with no assumptions if the
assumptions
key is not in the dictionary.- a factor with interleaving strategy has
inferrable=True
- a factor with interleaving strategy return a normal factor strategy when
there's no interleaving going on. - removed the length argument to the
insertion_point_placements
pack which
was not implemented, and thus raising an error. - Bug that occurred when factoring the empty tiling
- fixed that the
partial
flag was ignored inpoint_placements
- isolation levels were not being passed to component fusion
- expanding a symmetry of 132 with both length 2 requirements
Version 2.2.0
[2.2.0] - 2020-07-08
Added
- add the
can_be_equivalent
methods toAddAssumptionsStrategy
,
SplittingStrategy
, andFusionStrategy
. - added a
get_assumption
method toTiling
Changed
- the
Factor
algorithm will now factorTrackingAssumptions
if they span
multiple factors of the tiling. This means that theSplittingStrategy
is
removed from the trackedStrategyPack
. It does not factor
ComponentAssumptions
, so using this strategy still requires the
SplittingStrategy
.
Fixed
- remove empty assumptions when creating extra parameters in
FusionStrategy
- the method
Tiling.get_genf
returns the Catalan generating function for Av(123). - correct the generating function equations for
SplittingStrategy
Version 2.1.0
[2.1.0] - 2020-06-29
Added
- add a new
AddAssumptionStrategy
which adds an assumption to a tiling.
In practice, when expanding a class, we actually remove an assumption to
determine which rules to add. - the
get_equations
method is now implemented for the strategies
AddAssumptionStrategy
,SplittingStrategy
, andFusionStrategy
. - the
extra_paramters
method was implemented for symmetry strategies,
allowing these to be used when enumerating tracked trees. - Add the
InsertionEncodingVerificationStrategy
which verifies n x 1 and
1 x n tilings which have a regular topmost or bottommost insertion encoding. - Added the
SumComponentAssumption
andSkewComponentAssumption
giving the
ability to track specifications using component fusion. - add partial flag to
insertion_point_placements
and
insertion_row_and_col_placements
- Allow fusing rows and columns which are positive on either or both sides.
- The tracking of interleaving factors is implemented, including the poly time
algorithm. This includes the new strategyAddInterleavingAssumptionFactory
which adds the assumptions required in order to enumerate when performing
an interleaving factor strategy. - The
TileScopePack
has a new methodmake_interleaving
which by will change
any factor strategy in the pack to allow interleaving. The default setting is
for tracked, and so the assumption strategies are also added. This can be
turned off with the flagtracked=False
. - The
possible_parameters
method onTiling
allowing for sanity checking
specifications with multiple variables. InsertionEncodingVerificationStrategy
was added to verification expansion
packs.forward_map_assumption
method onTiling
.
Changed
- The definition of a local
TrackingAssumption
inLocalEnumeration
now says
it is local if every gp in it is local (before it was they all used the same
single cell). - the default in
LocalVerificationStrategy
is nowno_factors=False
.
Fixed
- untracked fusion packs don't add assumption strategies
- the length parameter for
all_the_strategies
is passed correctly to the
requirement insertion strategy. - use fusion on positive
Av(123)
when expanding 1x1 verified classes - fix bug that prevented applying all eight symmetries
- fix assumption mapping bug in
FusionStrategy
- fix
__repr__
inFusionStrategy
Version 2.0.0
[2.0.0] - 2020-06-17
Added
All the necessary strategies for combinatorial exploration.
Changed
Refactoring and speed up of many algorithm most notably the is empty check.
Removed
- Support for Python 3.5 and earlier