log-synth
log-synth copied to clipboard
Would like Markov state machine generator
Sometimes we would like to have transaction histories that represent plausible user actions. The simplest might be {login, do stuff, logout}* where you can only do stuff while logged in.
One simple way to simulate something like this is to have a state machine where transitions from state to state are selected stochastically based on specified transition probabilities.
The suggested syntax for the schema for such a generator would be something like this:
{
"name": "history",
"class": "markov-state-machine",
"transitions": {
"init": {"start":1}
"start": {
"abort": 0.1,
"progress": 0.8,
"finish": 0.1
},
"abort": {
"start": 1
},
"progress": {
"abort": 0.1,
"progress": 0.8,
"finish": 0.1
},
"finish": {
"start": 1
}
}
}
Of course, the transition probabilities may not add up to 1 so they should be normalized.
The sample result would be a list of transactions much like the common-point-of-compromise generator produces.