STAMINA/STORM 0.1
Infinite state-space truncator which generates a probability within a window
|
Classes | |
class | Stamina |
Typedefs | |
typedef core::StaminaMessages | StaminaMessages |
A copy of storm::builder::ExplicitModelBuilder with a max number of states to explore for debugging purposes
The model builder class which implements the STAMINA 2.5 algorithm (STAMINA 2.0/2.1 with dynamic programming)
Created by Josh Jeppson on Jun 9, 2021
Implementation for StaminaModelBuilder methods.
Created by Josh Jeppson on 8/17/2021
The model builder class which implements the STAMINA 3.0 algorithm which uses a priority queue on the estimated reachability
Created by Josh Jeppson on Jun 9, 2021
The model builder class which implements the STAMINA 2.0 algorithm (no dynamic programming)
NOTE: This algorithm is here for testing purposes and benchmarking. It is NOT recommended to use this method
Created by Josh Jeppson on Jun 9, 2021
There are some benefits if only using one thread to using just the StaminaModelBuilder class or StaminaIterativeModelBuilder class. This class is used if and only if the threadcount is greater than 1.
Simply including threading makes it so that there is some nontrivial overhead in exploration, and we want to provide the users the option without having them have to have a control thread idling and waiting for the exploration thread.
Created by Josh Jeppson on Jul 15, 2022
There are some benefits if only using one thread to using just the StaminaModelBuilder class or StaminaPriorityModelBuilder class. This class is used if and only if the threadcount is greater than 1.
Simply including threading makes it so that there is some nontrivial overhead in exploration, and we want to provide the users the option without having them have to have a control thread idling and waiting for the exploration thread.
Created by Josh Jeppson on Jul 15, 2022
Base class for all types of threads used by Stamina's model builders
Created by Josh Jeppson on Jul 8, 2022
A type of thread which maintains the following responsibilities:
Created by Josh Jeppson on Jul 8, 2022
Exploration threads can explore a state space with other threads, and will only explore threads that it owns.
Created by Josh Jeppson on Jul 8, 2022
An implementation of the ExplorationThread abstract class which uses the STAMINA iterative (2.0/2.5) algorithm.
Created by Josh Jeppson
Method implementations for Stamina
Created on 8/17/2021 by Josh Jeppson
Because state indecies are generally assigned in order, it is more efficient to allocate a linear array which guarantees a O(1) lookup time and has an (at worst) O(n / blockSize) insert.
Blocksizes are assumed to be large
Implementation for StaminaMemoryPool methods
This file created by Josh Jeppson on May 27, 2022
Stamina Memory Pool allocator
Because STAMINA/STORM allocates thousands or millions of states, and in C++ each call to new
invokes a system-call, dynamic allocation of memory for stamina::StaminaModelBuilder::ProbabilityStates are very slow. This allocates a pool of larger blocks to reduce the number of system-calls (since each call to malloc() – invoked by new – is a system call to ask for more memory)
This memory pool makes a few assumptions to increase performance:
Future work:
This file created by Josh Jeppson on May 27, 2022