public void CreateMarkovChainWithHazardsRetraversal2() { var model = new Model(); SetProbabilities(model); var createModel = SafetySharpRuntimeModel.CreateExecutedModelFromFormulasCreator(model); var markovChainGenerator = new MarkovChainFromExecutableModelGenerator <SafetySharpRuntimeModel>(createModel) { Configuration = SafetySharpModelChecker.TraversalConfiguration }; markovChainGenerator.Configuration.SuccessorCapacity *= 2; markovChainGenerator.AddFormulaToCheck(model.PossibleCollision); markovChainGenerator.Configuration.UseCompactStateStorage = true; markovChainGenerator.Configuration.UseAtomarPropositionsAsStateLabels = false; var markovChain = markovChainGenerator.GenerateLabeledMarkovChain(); var retraversalMarkovChainGenerator = new MarkovChainFromMarkovChainGenerator(markovChain); retraversalMarkovChainGenerator.Configuration.SuccessorCapacity *= 2; retraversalMarkovChainGenerator.AddFormulaToCheck(model.PossibleCollision); retraversalMarkovChainGenerator.Configuration.UseCompactStateStorage = true; retraversalMarkovChainGenerator.Configuration.UseAtomarPropositionsAsStateLabels = false; retraversalMarkovChainGenerator.GenerateLabeledMarkovChain(); }
public void CreateMarkovChainWithHazardRetraversal1() { var model = new DegradedModeModel(); var createModel = SafetySharpRuntimeModel.CreateExecutedModelFromFormulasCreator(model); var markovChainGenerator = new MarkovChainFromExecutableModelGenerator <SafetySharpRuntimeModel>(createModel) { Configuration = SafetySharpModelChecker.TraversalConfiguration }; markovChainGenerator.Configuration.SuccessorCapacity *= 2; markovChainGenerator.AddFormulaToCheck(model.System.HazardActive); markovChainGenerator.Configuration.UseCompactStateStorage = true; markovChainGenerator.Configuration.UseAtomarPropositionsAsStateLabels = true; var markovChain = markovChainGenerator.GenerateLabeledMarkovChain(); var retraversalMarkovChainGenerator = new MarkovChainFromMarkovChainGenerator(markovChain); retraversalMarkovChainGenerator.Configuration.SuccessorCapacity *= 2; retraversalMarkovChainGenerator.AddFormulaToCheck(model.System.HazardActive); retraversalMarkovChainGenerator.Configuration.UseCompactStateStorage = true; retraversalMarkovChainGenerator.Configuration.UseAtomarPropositionsAsStateLabels = true; retraversalMarkovChainGenerator.GenerateLabeledMarkovChain(); }
public void CreateMarkovChainWithBothHazardsRetraversal2() { var model = new Model(); SetProbabilities(model); var createModel = SafetySharpRuntimeModel.CreateExecutedModelFromFormulasCreator(model); var markovChainGenerator = new MarkovChainFromExecutableModelGenerator <SafetySharpRuntimeModel>(createModel) { Configuration = SafetySharpModelChecker.TraversalConfiguration }; markovChainGenerator.Configuration.SuccessorCapacity *= 2; markovChainGenerator.AddFormulaToCheck(new BoundedUnaryFormula(model.BloodNotCleanedAndDialyzingFinished, UnaryOperator.Finally, 6)); markovChainGenerator.AddFormulaToCheck(new BoundedUnaryFormula(model.IncomingBloodWasNotOk, UnaryOperator.Finally, 6)); markovChainGenerator.Configuration.UseCompactStateStorage = true; markovChainGenerator.Configuration.UseAtomarPropositionsAsStateLabels = false; markovChainGenerator.Configuration.EnableEarlyTermination = false; var markovChain = markovChainGenerator.GenerateLabeledMarkovChain(); var retraversalMarkovChainGenerator = new MarkovChainFromMarkovChainGenerator(markovChain); retraversalMarkovChainGenerator.Configuration.SuccessorCapacity *= 2; retraversalMarkovChainGenerator.AddFormulaToCheck(new BoundedUnaryFormula(model.BloodNotCleanedAndDialyzingFinished, UnaryOperator.Finally, 6)); retraversalMarkovChainGenerator.AddFormulaToCheck(new BoundedUnaryFormula(model.IncomingBloodWasNotOk, UnaryOperator.Finally, 6)); retraversalMarkovChainGenerator.Configuration.UseCompactStateStorage = true; retraversalMarkovChainGenerator.Configuration.UseAtomarPropositionsAsStateLabels = false; markovChainGenerator.Configuration.EnableEarlyTermination = false; retraversalMarkovChainGenerator.GenerateLabeledMarkovChain(); }
public void CreateMarkovChainWithBothHazardsRetraversal1() { var model = Model.CreateOriginal(); SetProbabilities(model); var createModel = SafetySharpRuntimeModel.CreateExecutedModelFromFormulasCreator(model); var markovChainGenerator = new MarkovChainFromExecutableModelGenerator <SafetySharpRuntimeModel>(createModel) { Configuration = SafetySharpModelChecker.TraversalConfiguration }; markovChainGenerator.Configuration.SuccessorCapacity *= 2; markovChainGenerator.AddFormulaToCheck(new BoundedUnaryFormula(model.Collision, UnaryOperator.Finally, 50)); markovChainGenerator.AddFormulaToCheck(new BoundedUnaryFormula(model.FalseAlarm, UnaryOperator.Finally, 50)); markovChainGenerator.Configuration.UseCompactStateStorage = true; markovChainGenerator.Configuration.UseAtomarPropositionsAsStateLabels = true; markovChainGenerator.Configuration.EnableEarlyTermination = false; var markovChain = markovChainGenerator.GenerateLabeledMarkovChain(); var retraversalMarkovChainGenerator = new MarkovChainFromMarkovChainGenerator(markovChain); retraversalMarkovChainGenerator.Configuration.SuccessorCapacity *= 2; retraversalMarkovChainGenerator.AddFormulaToCheck(new BoundedUnaryFormula(model.Collision, UnaryOperator.Finally, 50)); retraversalMarkovChainGenerator.AddFormulaToCheck(new BoundedUnaryFormula(model.FalseAlarm, UnaryOperator.Finally, 50)); retraversalMarkovChainGenerator.Configuration.UseCompactStateStorage = true; retraversalMarkovChainGenerator.Configuration.UseAtomarPropositionsAsStateLabels = true; markovChainGenerator.Configuration.EnableEarlyTermination = false; retraversalMarkovChainGenerator.GenerateLabeledMarkovChain(); }
public void RetraverseMarkovChainWithNewFormula(LabeledTransitionMarkovChainExample example) { var markovChainGenerator = new MarkovChainFromMarkovChainGenerator(example.Ltmc); markovChainGenerator.Configuration.ModelCapacity = ModelCapacityByMemorySize.Small; markovChainGenerator.Configuration.UseCompactStateStorage = true; markovChainGenerator.AddFormulaToCheck(example.ExampleFormula2); var newMarkovChain = markovChainGenerator.GenerateLabeledMarkovChain(); newMarkovChain.ExportToGv(Output.TextWriterAdapter()); Assert.Equal(example.Ltmc.SourceStates.Count, newMarkovChain.SourceStates.Count); Assert.Equal(example.Ltmc.Transitions, newMarkovChain.Transitions); }
public void CreateMarkovChainWithHazardRetraversal1() { var markovChainGenerator = new MarkovChainFromExecutableModelGenerator <LustreExecutableModel>(_createModel) { Configuration = LustreModelChecker.TraversalConfiguration }; markovChainGenerator.Configuration.ModelCapacity = new ModelCapacityByModelSize(10000, 1000000); markovChainGenerator.Configuration.SuccessorCapacity *= 2; markovChainGenerator.AddFormulaToCheck(_hazard); markovChainGenerator.Configuration.UseCompactStateStorage = true; markovChainGenerator.Configuration.UseAtomarPropositionsAsStateLabels = true; var markovChain = markovChainGenerator.GenerateLabeledMarkovChain(); var retraversalMarkovChainGenerator = new MarkovChainFromMarkovChainGenerator(markovChain); retraversalMarkovChainGenerator.Configuration.SuccessorCapacity *= 2; retraversalMarkovChainGenerator.AddFormulaToCheck(_hazard); retraversalMarkovChainGenerator.Configuration.UseCompactStateStorage = true; retraversalMarkovChainGenerator.Configuration.UseAtomarPropositionsAsStateLabels = true; retraversalMarkovChainGenerator.GenerateLabeledMarkovChain(); }