Симулировать цепь Маркова, используя networkx и numpyPython

Программы на Python
Anonymous
Симулировать цепь Маркова, используя networkx и numpy

Сообщение Anonymous »

Моя цель — смоделировать цепь Маркова с помощью networkx и numpy. Я пишу следующий код

Код: Выделить всё

import numpy as np
import networkx as nx

states = [
'distance',
'strike',
'knockout'
]

transition_matrix = np.array([
[0.85, 0.15, 0],
[0.98, 0, 0.02],
[0, 0, 1]
])

def create_graph(T: np.ndarray) -> nx.DiGraph:
G = nx.DiGraph()
G.add_nodes_from(states)

for i, u in enumerate(states):
for j, v in enumerate(states):
p = T[i][j]

if p > 0:
G.add_edge(u, v, p=p)

return G

G = create_graph(T=transition_matrix)
По сути, это два бойца, стоящие друг перед другом. Они перемещаются с вероятностью 0,85 и ударяются друг о друга с вероятностью 0,15. Вероятность того, что удар закончится нокаутом, равна 0,02. Нокаут — это захватывающее состояние, которое завершает бой.
Каков лучший/самый быстрый способ смоделировать бой и отслеживать состояние? В идеале я бы хотел, чтобы мои выходные данные выглядели следующим образом:

['distance', 'distance', 'distance', 'distance', 'strike' , "дистанция",
... , "дистанция", "удар", "нокаут"]


Подробнее здесь: https://stackoverflow.com/questions/790 ... -and-numpy

Вернуться в «Python»