Я видел похожие вопросы, но не мог найти ответа, поскольку это происходит в итерациях. Когда я пытаюсь реализовать следующий код, я получаю эти две ошибки:
Предупреждение (из модуля предупреждений): строка 14 вероятностей = [row_play_counts / np.sum (row_play_counts) для row_play_counts , col_play_counts in play_counts] RuntimeWarning: в true_divide обнаружено недопустимое значение
Traceback (последний вызов последний): File "C: \ Users \ Surface \ Desktop \ Economi c games \ fp1111.py ", строка 16, в plt.plot (strategy, label = f" $ s_ {number} $ ") NameError: имя 'number' не определено
Не могли бы вы мне с этим помочь?
import numpy as np
import nashpy as nash
A = np.array([[1 / 2, 1, 0], [0, 1 / 2, 1], [1, 0, 1 / 2]])
B = np.array([[1 / 2, 0, 1], [1, 1 / 2, 0], [0, 1, 1 / 2]])
game = nash.Game(A, B)
np.random.seed(0)
iterations = 10000
play_counts = tuple(game.fictitious_play(iterations=iterations))
print(play_counts[-1])
import matplotlib.pyplot as plt
plt.figure()
probabilities = [row_play_counts / np.sum(row_play_counts) for row_play_counts, col_play_counts in play_counts]
for strategy in zip(*probabilities):
plt.plot(strategy, label=f"$s_{number}$")
plt.xlabel("Iteration")
plt.ylabel("Probability")
plt.title("Actions taken by row player")
plt.legend()