Releases: athanor/athanor
release_v0.9.9
This release includes a number of small fixes and improvements, none of which effect the correctness of solutions.
- Improve random generation of booleans, integers and enumerated values so they do not generate repeats
- Adjusted some badly behaving neighbourhoods
- Disabled some poorly behaving neighbourhoods
- Added support for latest version of conjure
release_v0.9.8
New and improved search strategy.
Many constraints added
Changes:
- 0e7a654 moved alg scheduler back to failing tests
- 13abab3 azure pipe lines now publishes release, instead of draft release
- 64464bc moved failing alg scheduler tests back into instances as no longer failing
- cb5bd17 fixed bug in opFlattenSequence, caused by deletions of the first inner sequence
- 934e8e8 new release notes
- 5052d66 fixing the handling of undefined expressions in the objective
- 8bf37b6 Improved UCB to work with the upgraded search strategy
- b86b0be Hash verification now demonstrated with subsetEq
- d2eda0a Added in structure for testing for hash collisions
- 23451d5 fixed bugs in op set lit and now supports to set of list comp
See More
- 3c515b1 fixed problems in conjure server
- 64501da fixed compilation for web
- d1451fd Update readme.md
- 4ea82ea moving algorithm scheduler until into failing folder
- 61ab65d op set intersect has better var attributions
- b5db4d8 Violation attributions in int equality supports negated context
- 8e541f4 Added missing lines to make remove neighbourhoods bias towards violating elements
- 366bd7b made test smaller to fit in iteration limit
- 39bc35d Testing out a new default search strategy
- daf0d21 added new search strat hill climbing with violations
- ae68417 tweak to violations on tuple lit members
- fee7ece improvements to violation heuristic of op set intersect
- 71e3422 better violations handling
- e0d18d0 added parsing of partition lits
- fa153eb fixed bug in partition neighbourhood remove and distribute elements
- bfa18c7 added partition neighbourhood collect elements into new part
- 7982f75 partition neighbourhood remove part and distribute added
- d4648d7 fixed ubg in opSubset as previously introduced by the tracking of violating members
- 8dfbb6b op subseteq for sets has better var violations
- 5bb61fc added flag for debugging that can force print solutions with violations
- 555878a fixed compile error
- 701a253 replaced temp fix with a fix to trigger owner.
- 2e31cc1 Revert "put in temp fix to OpTogether to fix deleting of triggers"
- 56a4734 put in temp fix to OpTogether to fix deleting of triggers
- 7d0c998 fixed undefined behaviour, indirectly caused by a bad move constructor in trigger owner
- 97dae97 Fixing bugs in deleting partition triggers in OpTogether, need to use TriggerOwner construct instead of plain trigger
- 5538fd5 added missing startTrigger to opTogether
- b32dde8 fixed partition size
- 9403709 added constraint apart
- 81c2411 added constraint partition party
- 3e92fed fixed headers for function defined
- 385376d Added support for partial functions, also added/fixed some relevant operators such as defined, preimage, etc.
- acb7f6b Function from structured types brought back. Along with large number of bug fixes in function neighbourhoods and relating to tuple hash caching.
- d9ffad9 Revert "Function from high-level types now supported! Still restricted to total, partial on the way."
- 00bffc6 Function from high-level types now supported! Still restricted to total, partial on the way.
- cae4640 updated trigger handlers for imagesSwapped and positionsSwapped in function and sequence quantifier resp.
- dc56ca5 rewrite rule, in order to follow essence sematnics, quantifying over partitions by default quantifies over partition parts
- 20c37d6 added optimisation for size of parts(partition), replaced with numberParts(partition)
- e7aa80e added partition parts constraint
- 58b6ac9 Fixes #20, bugs were in opFlattenOneLevel (internal operator) and improvement made to OpAllDiff
- 247e3ac More partition neighbourhoods added
- 05224b7 disabled some relational semantics tests until conjure validator updated
- 76a8631 fixed undetected compile error
- 3154736 forgot to update sanity check
- 058aaee basic tests
- 8697f3a sequence index now correctly follows relational semantics
- fc9e0af fixed unnoticed compile error
- 0bb87a4 added merge parts neighbourhood
- ad13457 mini refactor
- c1b4ce9 removed social golfers tests until instances are ready
- a893f5e Added basic support for non-regular partitions. More partition neighbourhoods are required for this type to perform well. Also included some refactorring and OpTogether now allows any number of members as the first arg, just as in essence
- 0bb14a1 reduced default interval between sanity checks in tests
- d4a628a tidy
- 8824720 Refactorring, started bringing in concept of trigger owners
- f9cff10 fixed bug in random walk search strategy, the number of increases in exploration size was not being reset under some conditions
This list of changes was auto generated.
release_v0.9.7
Strategies:
Defaults to a new Exploration search strategy "auto", aims to avoid worst case performance of the other supported explore strategies, using dynamic learning to switch between them.
Experimental new strategies:
added support for strategy late acceptance hill climbing [alpha], basic hill climbing is still preferred and is the default.
Added neighbourhood search strategy: "search for first solution that is at least as good" [alpha], still not preferred over the default.
New supported constraints constraints:
subsetEq for multi sets (subsetEq for sets already supported),
strict subset for sets and multi sets,
equality for sets and multi sets,
function range and function pre image.
New types:
Basic support for relations, relation projections stil to come.
Miscellaneous:
Better handling of subsetEq quantifiers by rewriting the expression to already well supported constraints.
Athanor supports new Conjure APIs for converting Essence to JSON, old APIs will be supported until new official Conjure release.
Changes:
- 070640d new release
- 425181c fixed athanorDebugMode makefile
- 964b867 tweak that might allow compiling on gcc
- a57881c works and added tests
- c008ded added function pre image, now need to add parser for it
- 7a189ff working on adding function pre image,
- 764772c refactorred simple binary opeator to allow operands of different types
- 87351a7 added support for function range
- 50696c3 more generalised OpToSet for multiple types
- 1bc05d5 fixed bug in mset subseteq tests
See More
- 3dcd7a2 added mini GolombRuler as test for subsetEq
- 289fcb8 Now {i,j,...} subsetEq s is rewritten into i <- s, j <- s, i != j
- 8914bdf replaced an auto with a type for better readiblity
- ac7beda changed default explore strategy to auto
- 3de9d6d added strict subset for mset and set via rewrite rule
- 54a65d7 added OpEq for sets and msets via rewrites to subsets
- 9ab61e6 added a test
- 311c9df fixed op mset subset, was previously producing many wrong answers
- 44da021 fixed bug in set domain, uninitialised bool isRelation
- 9a3758a fixed bug in new mset lit and added op subsetEq for msets
- 2ff7acb refactor mset and adding member counts
- 8e52a3d basic relations tests, projections still to be added
- f537fc0 changed implementation of relations to use sets
- ccd5b93 tweak to tests
- 994f7fd fixes #11
- 111209a Fix bug in measuring quality of first non-violating solution
- 1133571 disabled explore logging
- aca5073 Complete restructuring of all exploration methods, including adding an auto strategy that switches between rw and vb according to UCB, added printing of exploration stats to aid debugging. Completely untested,
- 8aa0c90 refactorring explore methods to allow better composablity
- 9369f40 Athanor works with the different APIs for extracting JSON from new Conjure versions. Old Older conjure executables are for the moment supported but will soon be deprecated.
- bf05129 changed LAHC to always add to queue.
- 5791aec added disable ucb cost flag
- 4243e3e exposed flags for first at least as good neighbourhood selection strategy
- 65bb111 refactorred to bring in search strategies
- 7e41ec7 format and tidy, removed flags for test improve/explore strategies
- 3643330 added flag to enable stronger sha256 hashing
- 7ab3015 refactorred search strategies to better include first improvement, first improvement not yet added
- 31e7e01 changed LAHC impl to compare to both back and front of queue.
- 4701f37 added amplify constraint
- 1187df5 added LAHC and exposed a bunch of parameters for possible future tuning
This list of changes was auto generated.
release_v0.9.6
minor bug fixes and new operators.
Changes:
- e98fb03 release
- 2014d1b save best solution still works now even when no print solutions is used
- 5e89711 Create LICENSE
- a5c849d fixing licence
- 290e8c5 refactorring ucb to easily change the cost factor
- 89b6947 allowing violations in exploration, this may or may not harm things
- 336c218 improved calculation of neighbourhood try limit.
- 336eb0b added operator absolute
- faf7b0b Fixes #16, required the addition of a basic function lit and the correction of undefined handling in indexing expressions.
- dd90b18 tweaked readme
This list of changes was auto generated.
release_v0.9.5
Several scalability optimisations to quantifier:
Expressions that use sequence indexing to quantify over adjacent pairs/tripples/n-tuples of elements from a sequence are optimised to use the substring quantifier.
The index member of the tuples yielded when quantifying over sequences are not updated if they are not used.
Random generation of values used in initial variable assignements and in neighbourhoods now make use of a resource limit, allowing for the instantiation of deeply nested types such as set of sequence of partition of set of ...
Usage info is better printed, separated into groups accessed with --help group_name.
Added set support for set intersection.
Changes:
- f08ccbc updated release notes and fixed linux compatibility issues recently caused by the new auto-arg-parse
- 813cb97 big improvements to usage help by pulling in new commits of lib auto-arg-parse. Help message supports print groups.
- 96b5360 fixed bug in test
- 13d9a7c support for set intersection
- 3ea2b61 Set views now track for each hash, the associated index of the element. This is necessary for hash collision experiments. Flags added to athanor that allow sanity checks to be run at intervals. Testing scripts accordingly updated.
- df66800 added tests and ability to filter the tests run
- ae90dde removed unnecessary print statements
- a855c3b Athanor now deals much better with crazy nested domains like
set of set of sequence of partition ...This is implemented through the use of a resource tracker in random assignment. Eventually, the plan is to extend the resource tracker to be integrated with all neighbourhoods. - b4899a7 Moved variant operations into namespace lib
- 4163828 added getNumberElementsLowerBound function for domains
See More
- c91ca66 fixed bug in substitute vars to be defined
- 90979c2 noticed bugs in quantifier optimising expressions that are not deep copied, quick work around for the case that most often triggers this in objectives, working on better fix....
- 7e0ffee added scheduler tests
- 4292c44 cleaned up unused call to evaluateImpl in quantifier
- 6babd3d fixed two bugs, quantifier::evaluateImpl was not unrolling partially defined containers. OpSubstringQuantifier bounds trigger was not correctly tracking when the upper bound fell below the lower bound operand.
- db90832 fixed a bug in the quantifier to substring quantifier rewrite rule, rule guards were not strict enough
- 7f4026a in quantifier to substring quantifier rewrite rule, blocked rule if sequence index operators use different sequences
- cf982ce added optimisation to sequence quantifier, indices are not updated if not used.
- b122cf2 Introduced a new operator, OpSubstringQuantify. This yields a sequence of tuples containing adjacent elements in its sequence operand. A rewrite rule has been added that rewrites expressions that quantify over sequences using indexing where the indices are used to select adjacent elements. For example:
forAll i int(2..5) . constraint(s(i-1),s(i)) - 3f79278 just fixing some warnings
- 150175e copying code from conjure demo web app
- 859db6f minor updates to web app
- 7588546 more responsive table in webapp
This list of changes was auto generated.
release_v0.9.4
Another bug fixing spree, most observable in non commutative operators over quantifiers. Major bugs were resolved in this release . The changes are quite significant so please report any issues that they cause.
Changes:
- af6a0a5 new release notes
- dda42bd MAJOR bug fix in quantifier, not entirely sure how this has lasted for so long. Testing is required for this change.
- c0b10ec fixed seed flag to be unsigned int
- a8801ff same with opprod
- 6902fd2 Fixed bug in OpSum, valueRemoved needs to check for definedness of the operand even when evaluationComplete = false
- a715d34 fixing sanity checking in and some more verbose dumpStates
- 4ce5ffe removed test as appears to trigger conjure bug
- 54a01c4 added test for large domain
- c23465c fixed bug in int domain sizes, up to 64 bit is now supported.
- b4aba89 added flag --save-best-solution for saving best solution to file. This flag has caveats, see athanor usage instructions for details.
This list of changes was auto generated.
release_v0.9.3
Major bug fixes to nested quantifiers with conditions and function neighbourhoods that were causing incorrect answers. Check commits for details. This is the first automated release and hence many of the commits leading up to this one relate to correctly configuring the CI system.
Changes:
- dda758f CI - fixes to include conjure into release
- ceb6285 CI release working, enabling testing for following release
- e29587a CI fixes, consuming artifacts
- 88ce3de CI fixes, added concept of publishing
- 4899f27 CI fixes
- 9772bfa ci fixes
- e76a2da ci fixes
- 3f0f84a Ci Fixes
- 09ec6c2 CI fixes
- 391bd17 ci fixes
See More
- c6fd5fa ci fixes
- 8e2f31f temp disable CI testing to experiment with deployment
- d51922a working on automated releases
- 2e97eb6 more improvements
- c24618e working on automated releases
- 75206ce fixed bug in function Neighbourhood split images which was causing incorrect answers to appear
- 2efebde fixed bug relating to conditions in quantifier not being deep copied
- c220ee3 CI tests now running correctly, looking into automating releases
- 9d28e93 fixed support for lex ordered objectives minimising (a,b,c)
- 7792903 fixed bug in function debug method and in tuple index triggering when tuple was undefined
- 5eff9a3 moving ci to different branch until fixed
- eb6f6fb CI fixes, updating conjure path
- f27d3d9 CI fixes, switching to unzip instead of tar
- 6433c1d fixed CI conjure download
- b2f79c3 fixing CI tests
- 84223b0 CI fixes
- 8f12403 improvements to tuple index and fixed internal operators set index, allowing for expressions like
forAll {i,j} subsetEq s - 6acc688 enabling testing in CI
- cece8ca using clang for CI build
- f743e81 experimenting with azure, hopefully successfully building athanor now, tests to come
- 9d52e0a experimenting with azure
- 1d29eab experimenting with azure
- 1c740a1 Set up CI with Azure Pipelines
This list of changes was auto generated.
v0.9.2
Minor updates, support for unnamed types added, bug fixes to usage er…
v0.9.1
An updated search strategy that should help bridge previously disconnected spaces, many bug fixes in OpFunctionImage relating to relational semantics, basic support for matrices added (not including matrix slicing yet). Functions are still assumed to be more idiomatic Essence.
v0.9.0
This release will be promoted to 1.0 post feedback.