aboutsummaryrefslogtreecommitdiffstats
path: root/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftConfiguration.xtend
blob: d9059bfc4fc3ea9812206c3c897b77f380a0e011 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver

import hu.bme.mit.inf.dslreasoner.logic.model.builder.SolverConfiguration

final class StormDftConfiguration extends SolverConfiguration {
	public static val DEFAULT_SOLVER_PATH = "storm-dft"

	public double precision = 1e-6

	public boolean bisimulation = true

	public boolean symmetryReduction = true

	public boolean modularization = true

	public boolean dontCarePropagation = true

	public double approximation = 0

	public var approximationHeuristic = ApproximationHeuristic.NONE

	public FtAnalysisObjective objective

	def isApproximationInUse() {
		approximationHeuristic != ApproximationHeuristic.NONE
	}
}

abstract class FtAnalysisObjective {
	public static val MTTF = new FtAnalysisObjective {
	}

	private new() {
	}

	static final class TimeBound extends FtAnalysisObjective {
		public double timeBound = 0
	}
}

enum ApproximationHeuristic {
	NONE,
	DEPTH
// See https://github.com/moves-rwth/storm/issues/35 for additional approximation heuristics.
}