示例#1
0
from graphviz import Digraph

from markov import Chain
from markov.plot import transitions_to_graph


def double_dice():
    return int(random() * 6) + int(random() * 6)


chain = Chain(11, double_dice())

# flip coin many times and build Markov chain for this process
# let 0 be heads and 1 tails
for i in range(1000000):
    chain.learn(double_dice())

g = Digraph(format='svg',
            engine='dot',
            graph_attr={
                'overlap': 'false',
                'pad': '0.1',
                'nodesep': '0.35',
                'ranksep': '0.35'
            },
            edge_attr={
                'fontname': 'Helvetica',
                'fontsize': '8.0'
            },
            node_attr={'fontname': 'Helvetica'})
示例#2
0
from random import betavariate
from graphviz import Digraph

from markov import Chain
from markov.plot import transitions_to_graph


def rigged_dice():
    return int((betavariate(0.5, 0.7) * 6))

chain = Chain(6, rigged_dice())

# roll dice many times and build Markov chain for this process
for i in range(100000):
    chain.learn(rigged_dice())


def state_mapping(state):
    if state == 0: return u'⚀'
    if state == 1: return u'⚁'
    if state == 2: return u'⚂'
    if state == 3: return u'⚃'
    if state == 4: return u'⚄'
    if state == 5: return u'⚅'



g = Digraph(format='svg', engine='dot',
            graph_attr={'pad': '0.1', 'nodesep': '0.15', 'ranksep': '0.5'},
            edge_attr={'fontsize': '6.0', 'fontname':'Helvetica'})