Skip to content

Differences in CTMC bisimulation quotient #833

@volkm

Description

@volkm

Applying bisimulation minimization on the CTMC resources/examples/testfiles/ctmc/embedded2.sm yields differently sized quotients, see below.
I can understand that floating point bisimulation can yield different quotient due to precision issues, but I would have expected that using exact arithmetic does not make a difference.

Original model

Model type: 	CTMC (sparse)
States: 		3478
Transitions: 	14639

Exact without labels

storm --prism embedded2.sm --bisimulation:type strong -bisim -pc -e sparse --exact

On Linux Docker image (stable and ci):

Model type: 	CTMC (sparse)
States: 		180
Transitions: 	1195

On Mac:

Model type: 	CTMC (sparse)
States: 		136
Transitions: 	793

Exact with labels

storm --prism embedded2.sm --bisimulation:type strong -bisim -pc -e sparse --exact --build-all-labels

Same results on both Linux Docker image and Mac:

Model type: 	CTMC (sparse)
States: 		1127
Transitions: 	5730

Double without labels

storm --prism embedded2.sm --bisimulation:type strong -bisim -pc -e sparse

On Linux Docker image (stable and ci):

Model type: 	CTMC (sparse)
States: 	 	1734
Transitions: 	9355

On Mac:

Model type: 	CTMC (sparse)
States: 	 	1318
Transitions: 	7276

Double with labels

storm --prism embedded2.sm --bisimulation:type strong -bisim -pc -e sparse --build-all-labels

On Linux Docker image (stable and ci):

Model type: 	CTMC (sparse)
States: 		1720
Transitions: 	8623

On Mac:

Model type: 	CTMC (sparse)
States: 		1731
Transitions: 	8619

DD

The Dd engine yields an assertion error:

ERROR (QuotientExtractor.cpp:1178): Illegal non-probabilistic matrix.

which is related to #822

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions