Recent Releases of tilings
tilings - Version 4.0.0
[4.0.0 - 2025-03-13]
Added
- python3.9 are deprecated, python3.10 - python3.13 are supported
- added
TileScopePack.requirement_and_row_and_col_placements AssumptionAndPointJumpingFactorywhich adds rules where requirements and/or assumptions are swapped around a fusable row or column.PointJumpingFactorywhich adds rules where requirements and assumptions can be swapped around a fusable row or column.MonotoneSlidingFactorythat creates rules that swaps neighbouring cells if they are 'monotone' fusable, i.e., they are a generalized fusion with a monotone local extra obstruction.DeflationFactorywhich adds rules where cells can be deflated into increasing or decreasing cells as obstructions can't occur across the sum/skew components in that cell.CellReductionFactorywhich changes a cell to monotone if at most one point of any crossing gp touches that cell.PositiveCorroborationFactorythat inserts into cells which if positive makes another cell empty. Also, thePointCorroborationFactory, which does this for point or empty cells which is added to most packs.TargetedCellInsertionFactorywhich inserts factors of gridded perms if it can lead to factoring out a verified sub tiling.BasisPatternInsertionFactorywhich inserts permutations which are contained in every pattern in the basisComponentVerificationStrategywhich is added to component fusion packs.ComponentToPointAssumptionStrategythat changes component assumptions to point assumptions. These strategies are yielded inRearrangeAssumptionFactory.StrategyPack.kitchen_sinkifyto add many experimental strategies to the packSubobstructionInsertionFactorythat inserts subobstructions and the packTileScopePack.subobstruction_placementswhich uses it.FactorWithInterleavingStrategy.backward_mapso you can now generate permutation from specifications using interleaving factors.DummyStrategythat gives a quick template for making strategies.PointingStrategy,AssumptionPointingFactoryandRequirementPointingFactorythat place points directionless in non-point cells. This are a non-productive strategy so should be used withRuleDBForest.UnfusionFactorythat unfuses either all the rows or columns. Also non-productive.FusableRowAndColumnPlacementFactoryplaces fusable rows and columns.TrackedClassDBused byTrackedSearcher- counting for
GeneralizedSlidingStrategyof rows (i.e.,rotate=True)
Fixed
Factorwas not factoring correctly with respect to component assumptions.ComponentAssumptionare flipped when taking symmetriesTiling.get_minimum_valuefixed for component assumptionsRearrangeAssumptionFactorywill ignore component assumptionsGriddedPermReduction.minimal_reqswas removing requirements if they were duplicates.RequirementPlacementalgorithm didn't minimise obstructions correctly when placing size 2 or higher gridded perms.- added missing condition in
MonotoneSlidingFactoryfor consecutive values. Previous rules failing this condition will now raiseStrategyDoesNotApplyif it fails this condition. LocalVerificationStrategyneeds to be aBasisAwareVerificationStrategyPointJumpingmaps component assumption to component assumptions.Tiling.all_symmetrieshad a premature break statement that was removedshift_from_specmethod would previously fail if any tiling had two or more interleaving cells.
Changed
TileScopePack.make_trackedwill add the appropriate tracking methods for interleaving factors and make strategies tracked if it can be.- The
GriddedPermReductionlimits the size of obstructions it tries to infer in theminimal_obsmethod to the size of the largest obstruction already on the tiling. - The
SymmetriesFactorytakes a basis and will not return any symmetries where any of the patterns of the obstruction are not subpatterns of some basis element. If no basis is given, all symmetries are returned. RequirementPlacementadds empty cells when placing a point cell. This saves some inferral in partial placements.- Don't reinitialise in the
Tiling.from_dictmethod. GuidedSearcherexpands every symmetryTileScopePack.pattern_placementsfactors as an initial strategy.is_componentmethod of assumptions updated to consider cell decompositionAddAssumptionsStrategy.is_reveribleis now True when the assumption covers the whole tiling.- The default behavior for
RequirementInsertionis to allow insertion of factorable requirements OneByOneVerificationStrategywill look up permpal.com to find the generating functions and min polys, and also use permpal specs for counting, sampling and generating objects.- The
kitchen_sinkifyfunction onTileScopePacknow takes a level between 1 and 5 as input, which is used to determine how crazy the added strategies should be.
Removed
AddInterleavingAssumptionsFactory. The factor strategy now adds the relevant assumptions where necessary directly, lowering the number of CVs needed.
- Python
Published by jaypantone about 1 year ago
tilings - Version 3.1.0
[3.1.0] - 2022-01-17
Added
Tiling.remove_requirementmethod that removes a requirement from a tiling.RemoveRequirementFactorywhich adds the rules where we insert a requirement to a tiling after we first remove that requirement. This is added toLocallyFactorableVerificationStrategy.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
ForgetTrackedSearcherwas 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
TrackedSearchernow uses aTrackedQueueand is able to work with all packs and new future strategies.
Deprecated
- Python 3.7 is no longer supported
- Python
Published by enadeau about 4 years ago
tilings - Version 3.0.0
[3.0.0] - 2021-06-14
Added
- Rearrange assumption strategy
TrackingAssumption.from_cellmethod- Counting for reverse fusion
FusionParallelSpecFinder,FusionIsomorphismandFusionBijectionsubclasses to handle bijection involving fusion and assumption strategies.- a
insertion_point_row_and_col_placementspack inTileScopePack TrackedSearcherandForgetTrackedSearcherthat prioritise expanding classes with assumptions when the underlying tiling was expanded
Changed
- Updated to use combspecsearcher 4.0.0
- Using
strategy_pack.make_fusionorstrategy_pack.make_trackednow automatically addsRearrangeAssumptionFactorywithapply_first=Trueiftracked=True - Moved several local function in
RearrangeConstructoroutward to make it pickleable - Fixed isolated fusion bug
- Fusion is now a one-way strategy.
- Added length to name for
all_the_strategiespack
Fixed
- Removed a redundant
Tiling.is_emptycheck in the fusion algorithm. - Ensure
is_atomreturns False for the empty tiling
Deprecated
- Python 3.6 is no longer supported
- Python
Published by enadeau almost 5 years ago
tilings - Version 2.5.0 (Zenodo)
Re-release for zenode
[2.5.0] - 2020-11-11
Changed
- Updated combspecsearcher version for faster counting
- Python
Published by christianbean almost 5 years ago
tilings - Version 2.5.0
[2.5.0] - 2020-11-11
Changed
- Updated combspecsearcher version for faster counting
- Python
Published by christianbean over 5 years ago
tilings - Version 2.4.0
[2.4.0] - 2020-10-28
Added
to_texfor gridded perms.to_tikzfor gridded perms.to_svgfor gridded perms.to_guifor tilings.- Mappings for gridded perms:
column_reverse,row_complement,permute_columns,permute_rowsandapply_perm_map_to_cell. - Mappings for tilings:
column_reverse,row_complement,permute_columns,permute_rows,apply_perm_map_to_cell. guess_from_gridded_permsto guess tiling T from gridded perms in Grid(T).enmerate_gp_up_tocounts 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
- Python
Published by christianbean over 5 years ago
tilings - Version 2.3.1
[2.3.1] - 2020-09-11
Fixed
- Dependency issue when installing
- Python
Published by enadeau over 5 years ago
tilings - Version 2.3.0
[2.3.0] - 2020-09-10
Added
- introduced isolation levels to the fusion strategy
- added the
one_cell_onlyoption toCellInsertionFactory remove_components_from_assumptionsmethod toTilingDetectComponentsStrategywhich removes cells from assumptions which are actual components. This replaces the need for theSplittingStrategyin component fusion packs.- added equation generators to
FusionStrategyfor the case where one or both sides are positive - added a
to_html_representationmethod toTiling SubclassVerificationFactoryand the corresponding strategyis_subclassmethod toTiling- added
point_and_row_and_col_placementsstrategy ShortObstructionVerificationStrategy- using Github Actions for testing and deployment
Changed
- insertion packs now use the
one_cell_onlyoption, and no longer useRequirementCorroborationFactory - the
get_eq_symbolandget_op_symbolare moved toStrategyrather thanConstructor - the
GriddedPermsOnTilingalgorithm 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
RequirementInsertionFactoryis 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
TrackingAssumptionand aComponentAssumption - a tiling factors if a
ComponentAssumptionif 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_dictwill make aTilingwith no assumptions if theassumptionskey 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_placementspack which was not implemented, and thus raising an error. - Bug that occurred when factoring the empty tiling
- fixed that the
partialflag was ignored inpoint_placements - isolation levels were not being passed to component fusion
- expanding a symmetry of 132 with both length 2 requirements
- Python
Published by enadeau over 5 years ago
tilings - Version 2.2.0
[2.2.0] - 2020-07-08
Added
- add the
can_be_equivalentmethods toAddAssumptionsStrategy,SplittingStrategy, andFusionStrategy. - added a
get_assumptionmethod toTiling
Changed
- the
Factoralgorithm will now factorTrackingAssumptionsif they span multiple factors of the tiling. This means that theSplittingStrategyis removed from the trackedStrategyPack. It does not factorComponentAssumptions, so using this strategy still requires theSplittingStrategy.
Fixed
- remove empty assumptions when creating extra parameters in
FusionStrategy - the method
Tiling.get_genfreturns the Catalan generating function for Av(123). - correct the generating function equations for
SplittingStrategy
- Python
Published by enadeau over 5 years ago
tilings - Version 2.1.0
[2.1.0] - 2020-06-29
Added
- add a new
AddAssumptionStrategywhich 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_equationsmethod is now implemented for the strategiesAddAssumptionStrategy,SplittingStrategy, andFusionStrategy. - the
extra_paramtersmethod was implemented for symmetry strategies, allowing these to be used when enumerating tracked trees. - Add the
InsertionEncodingVerificationStrategywhich verifies n x 1 and 1 x n tilings which have a regular topmost or bottommost insertion encoding. - Added the
SumComponentAssumptionandSkewComponentAssumptiongiving the ability to track specifications using component fusion. - add partial flag to
insertion_point_placementsandinsertion_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 strategy
AddInterleavingAssumptionFactorywhich adds the assumptions required in order to enumerate when performing an interleaving factor strategy. - The
TileScopePackhas a new methodmake_interleavingwhich 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_parametersmethod onTilingallowing for sanity checking specifications with multiple variables. InsertionEncodingVerificationStrategywas added to verification expansion packs.forward_map_assumptionmethod onTiling.
### Changed
- The definition of a local TrackingAssumption in LocalEnumeration 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 now no_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__ in FusionStrategy
- Python
Published by christianbean almost 6 years ago
tilings - 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
- Python
Published by enadeau almost 6 years ago
tilings - Version 1.0.2
[1.0.2] - 2019-03-30
Changed
- Update dependency versions
- Python
Published by enadeau about 6 years ago
tilings - Version 1.0.1
[1.0.1] - 2019-08-26
Changed
- Update combspecsearcher to 0.2.1
- Python
Published by enadeau over 6 years ago
tilings - version 1.0.0
[1.0.0] - 2019-08-26
Added
- Remove factors from requirements if already implied by other requirement list.
- Added tiling method
is_empty_cellandis_monotone_cell### Changed - The
cell_basismethod of the tilings has an 1 obstruction for empty cell. The basis of a cell that is outside of the tiling is no longer defined. - The requirement list in
cell_basismethod now finds intersections of requirement lists - New
add_list_requirementmethod toTiling. ### Fixed - Infinite recursion issue in get_genf.
- Close mongo when finished.
- Python
Published by enadeau over 6 years ago