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

Template dynamic properties #50

Merged
merged 6 commits into from
Sep 25, 2024
Merged

Template dynamic properties #50

merged 6 commits into from
Sep 25, 2024

Conversation

ondrej33
Copy link
Member

This PR mainly focuses on the evaluation of template dynamic properties but also adds some general refactoring. Overall, there are the following changes:

Evaluation of template dynamic properties:

  • Attractor count properties are now solved via AEON-based algorithms (new module algorithms/eval_dynamic/_attractors)
  • Trap-space properties are now solved via trap-space algorithms from lib-param-bn (new module algorithms/eval_dynamic/_trap_spaces)
  • Fixed-point and Attractor properties are now solved via HCTL model checking

General refactoring of property handling:

  • Many property templates are simply translated to either FOL or HCTL and not directly used during actual inference. It complicated code dealing with such "unreachable" templates during evaluation. Also, during the evaluation of dynamic templates, we need them to contain the actual datasets/observations, not just their IDs. We are thus adding new modified structs, ProcessedDynProp and ProcessedStatProp, to represent the processed variants of properties used during evaluation. When starting the inference, all DynProp and StatProp are processed into some variant of these structs.
  • With the new templates, we refactored how dynamic properties were handled.
  • We moved most of the bloated parts of InferenceSolver corresponding to property handling to a proper place in the algorithms module.

Inference testing

  • In the new module analysis/_test_inference, we are starting to make comprehensive inference tests on a simple model with all kinds of properties.
  • To be able to make the simplified tests, we add a new (simple) test model and data.

Further refactoring

  • The redundant data category field was removed from datasets, and corresponding functionality was simplified.
  • HCTL encoding methods (for observations/datasets) were fully refactored.
  • Some methods for datasets were renamed to shorter format.
  • Constructors of property structs were simplified (redundant Results were removed where possible).

@ondrej33 ondrej33 merged commit aead13e into main Sep 25, 2024
6 checks passed
@ondrej33 ondrej33 deleted the dynamic-templates branch September 25, 2024 20:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant