Markov::Chain(LinkType)
Inherits Reference / Object
A Chain is a vehicle for generating probable sequences of type LinkType
Constructors
For larger processes, you'll want to externally train a TransitionTable then
pass it in as an argument.
If seed is not provided, it will default to a random item chosen with TransitionTable#random_key
If you have a small (Array-sized) data set, you can pass it as sample
and a TransitionTable will be constructed for you with the sample data.
seed should be the element in sample which you would like to begin the sequence.
If no seed is provided, a random element will be selected from sample.
Makes it possible to use #to_json and #from_json (see Crystal docs)
Instance methods
Generates a probable, sequential Array of LinkType elements of count length
Sets an exception handler for EmptyTransitionMatrixException when Chain instance reaches a dead end
while using Chain#generate or Chain#next. Returned value is inserted as the next probable element.
Usage:
c = Markov::Chain(String).new sample: ["Koala", "Kangaroo"] of String, seed: "Kangaroo"
c.on_dead_end do |transition_table, chain, exception|
"Koala"
end
c.next() #=> "Koala"
c.next() #=> "Kangaroo"
c.next() #=> "Koala"