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

Explicit engine model export refactoring and enhancements #246

Merged
merged 17 commits into from
Jul 15, 2024

Conversation

davexparker
Copy link
Member

  • Centralise code for (explicit engine) model export
    • for PRISM explicit, Dot and Matlab formats
    • move from methods in Model and subclasses to Exporter classes
  • New ModelExportOptions class
  • Move some export code from Prism to StateModelChecker
  • Refactor export code in Prism/PrismCL (tidy up, new options classes)
  • Remove support for export options MRMC/unordered
  • Add preliminary support for (explicit engine) model export to DRN format

Centralise code into a PrismExplicitExporter class,
which handles all model types and take care of options.
Centralise code into a DotExporter class,
which handles all model types and take care of options/decorators.

Note that transitions are now sorted in the Dot files.

Update regression tests to (just) test explicit implementation.
New method exportBuiltModelTransitions based on ModelExportOptions.
ModelExportOptions is expanded, notably including export format.

Calling code in PrismCL is refactored accordingly.
At the same time, we remove access to some little used export
functionality: MRMC format, "unordered" and -exportplain.

We also move some of the explicit engine export code into
StateModelChecker, which will help make the code more flexible later
(for example, allowing rewards to be added to Dot files).
New export methods in Prism based on ModelExportOptions.

Explicit engine export methods move from Prob to StateModelChecker.

Formatting-specific code moves to PrismExplicitExporter.
New export methods in Prism based on ModelExportOptions.

Formatting-specific code moves to Exporter classes.
New export method in Prism based on ModelExportOptions.

Formatting-specific code moves to Exporter classes.
New export method in Prism based on ModelExportOptions.

Formatting-specific code moves to Exporter classes.
Export implementation still exists in C++ code for symbolic engines.
Use e.g. -exportmodel model.tra:actions=false

Currently, actions are by default shown only for nondet models (e.g. MDPs)

This setting is currently of limited use since:
(a) it is only respected by the explicit engine
(b) the explicit engine cannot yet store/show actions for Markov chains
@davexparker davexparker merged commit e8b3d20 into prismmodelchecker:master Jul 15, 2024
6 checks passed
@davexparker davexparker deleted the export2 branch July 15, 2024 09:53
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