Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

milestone/nogoods #74

Merged
merged 54 commits into from
Aug 2, 2022
Merged

milestone/nogoods #74

merged 54 commits into from
Aug 2, 2022

Conversation

ellmau
Copy link
Owner

@ellmau ellmau commented Jun 15, 2022

What does this PR do?

Implementation of an alternative NoGoodStore to easier learn and imply conclusions.

Update to version 0.2.5

Checklist before creating a non-draft PR

  • All tests are passing
  • Clippy has no complains
  • Code is rustfmt formatted
  • Applicable labels are chosen (Note: it is not necessary to replicate the labels from the related issues)
  • There are no other open Pull Requests for the same update/change.
    • If there is a good reason to have another PR for the same update/change, it is well justified.

Checklist on Guidelines and Conventions

  • Commit messages follow our guidelines
  • Code is self-reviewed
  • Naming conventions are met
  • New features are tested
    • quickcheck has been considered
    • All variants are considered and checked
  • Clippy Compiler-exceptions
    • Used in a sparse manner
    • If used, a separate comment describes and justifies its use
  • rustdoc comments are self-reviewed and descriptive
  • Error handling
    • Use of panic!(...) applications is justified on non-recoverable situations
    • expect(...) is used over unwrap() (except obvious test-cases)
  • No unsafe code (exceptions need to be discussed specifically)

* Add NoGood and NoGoodStore with basic functionality
@ellmau ellmau added enhancement New feature or request binary This issue or pull request is related to the binary library This issue or pull request is related to the library labels Jun 15, 2022
@ellmau ellmau added this to the Nogood optimisation milestone Jun 15, 2022
ellmau added 12 commits June 15, 2022 17:43
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/04c1b180862888302ddfb2e3ad9eaa63afc60cf8' (2022-05-17)
  → 'github:numtide/flake-utils/1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1' (2022-05-30)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/dfd82985c273aac6eced03625f454b334daae2e8' (2022-05-20)
  → 'github:NixOS/nixpkgs/b1957596ff1c7aa8c55c4512b7ad1c9672502e8e' (2022-06-15)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/c5486f823e4af2c0dfb5b2673002d5c973ef5209' (2022-05-24)
  → 'github:oxalica/rust-overlay/9eea93067eff400846c36f57b7499df9ef428ba0' (2022-06-17)
add additional test cases, fixed a bug in the ng-learner module
Increment of the patch-version of the crate
Add public enum to comfortably choose a heuristics function
The rustfmt issue on the CI is not reproducable
lib/src/nogoods.rs Outdated Show resolved Hide resolved
Copy link
Owner Author

@ellmau ellmau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - Nice refactor to avoid the box and allow a functionpointer to be responsible as the heuristics functions.

@ellmau ellmau self-assigned this Jun 21, 2022
Fix various bugs with the nogood learner
@ellmau
Copy link
Owner Author

ellmau commented Jun 22, 2022

Next step:

the consistency of choices and learnt information should be verified with respect to the adf more often to avoid local hill optimisation effects

Introduce a new flag to handle big instances (modelcount vs adhoccount)
maxvarimp_minpaths has been implemented
@ellmau ellmau added the RC Pull request will introduce a new version label Jul 26, 2022
@ellmau ellmau requested a review from mmarx July 26, 2022 10:07
ellmau and others added 19 commits July 26, 2022 12:19
added a benchmark feature, to easily compile benchmark-releases
* Streamline a couple of API calls
* Expose more structs and methods to the public API
* Breaking some API (though nothing which is currently used in the binary)
Parameterised the stable-nogood algorithm to allow a variable
stability check function.
`README.md` on the `/` level is now presenting the same information
which is provided in `docs/index.md`
- Update main functionality
- Update naming
- Update README/Documentation
Update name in cli test for the testing of the binary
Due to braking API changes and reaching a milestone, the version is
incremented to
0.3.0 (beta)
* Update index.md
* Update adf_bdd.md
* Update adf-bdd.md
Copy link
Collaborator

@mmarx mmarx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lmgtm, I just have a few remarx.

lib/src/adf.rs Outdated Show resolved Hide resolved
lib/src/nogoods.rs Outdated Show resolved Hide resolved
lib/src/nogoods.rs Outdated Show resolved Hide resolved
lib/src/nogoods.rs Outdated Show resolved Hide resolved
lib/src/nogoods.rs Outdated Show resolved Hide resolved
ellmau and others added 5 commits August 1, 2022 23:42
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1' (2022-05-30)
  → 'github:numtide/flake-utils/7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249' (2022-07-04)
• Updated input 'gitignoresrc':
    'github:hercules-ci/gitignore.nix/bff2832ec341cf30acb3a4d3e2e7f1f7b590116a' (2022-03-05)
  → 'github:hercules-ci/gitignore.nix/f2ea0f8ff1bce948ccb6b893d15d5ea3efaf1364' (2022-07-21)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8b538fcb329a7bc3d153962f17c509ee49166973' (2022-06-15)
  → 'github:NixOS/nixpkgs/e43cf1748462c81202a32b26294e9f8eefcc3462' (2022-08-01)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/b1957596ff1c7aa8c55c4512b7ad1c9672502e8e' (2022-06-15)
  → 'github:NixOS/nixpkgs/7b9be38c7250b22d829ab6effdee90d5e40c6e5c' (2022-07-30)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/9eea93067eff400846c36f57b7499df9ef428ba0' (2022-06-17)
  → 'github:oxalica/rust-overlay/9055cb4f33f062c0dd33aa7e3c89140da8f70057' (2022-08-02)
Add a type alias `Interpretation` for NoGood to reflect the duality
where an Interpretation might become a NoGood.
@ellmau ellmau merged commit d7e71e5 into main Aug 2, 2022
@ellmau ellmau deleted the milestone/nogoods branch August 2, 2022 12:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
binary This issue or pull request is related to the binary enhancement New feature or request library This issue or pull request is related to the library RC Pull request will introduce a new version
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Alternative NoGoodLearning with the newly created NoGood representations Representation of nogoods
2 participants