Построение марковской матрицы скоростей перехода графа с Python - PullRequest
1 голос
/ 12 февраля 2020

У меня есть вопрос о построении матрицы скорости перехода в Python, у меня есть график перехода, который описан в словаре:

    graph={((), ('a',)): [ 0.0],
           (('a',), ('b',)): [78.71428571428571],
           (('a',), ('c',)): [18.142857142857142],
           (('a',), ('d',)): [132.66666666666666],
           (('a',), ('e',)): [64.0],
           (('b',), ('a',)): [215.1139240506329],
           (('b',), ('c',)): [13.26923076923077],
           (('b',), ('d',)): [10.333333333333334],
           (('c',), ('a',)): [60.333333333333336],
           (('c',), ('b',)): [181.31034482758622],
           (('c',), ('d',)): [507.0],
           (('d',), ('a',)): [56.0],
           (('d',), ('b',)): [968.0],
           (('e',), ('a',)): [860.0]}

graph of the transition rate matrix

Как видно из словарного графика, ключ иллюстрирует переходы, а значение - это скорость, по которой цепь Маркова с непрерывным временем перемещается между состояниями. Например, от «а» переходит к «б», скорость 78,71428571428571, и так далее. Простой пример матрицы переходных показателей для понимания:

    graph = {(('a',), ('b',)): 78.71428571428571, 
             (('a'), ('c',)): 18.142857142857142,
             (('c',), ('b',)): 181.31034482758622}
    #the corresponding matrix for this sample graph:
    q_matrix = np.asmatrix([[-96.85714285714285, 78.71428571428571,   18.142857142857142], 
    [0, 0, 0], 
    [0, 181.31034482758622, -181.31034482758622]])

Я пытался построить матрицу для этого вопроса:

    M = [[0]*5 for _ in range(5)]

, но индекс в M не соответствует переходам на графике какая-нибудь помощь? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...