for pattern in [x1, x2, x3]:
print(f"{energy(W, pattern)}:.2f")
#A3.3
W = hebbian(data)
attractor_counts = count_attractors(W)
results = []
for attractor_str in attractor_counts.keys():
arr = string_pattern_arr(attractor_str)
results.append((energy(W, arr), attractor_str))
results.sort()
for e, attractor_str in results:
print(f"{attractor_str}: {e:.2f}")
fig, ax = plt.subplots()
noises = np.linspace(0, 1, 10)
for i in range(pcnts.shape[0]):
ax.plot(noises, pcnts[i], label=f"Pattern {i+1}")
plt.savefig("Noise tolarance for different patterns")
ax.legend()
ax.set_title("Noise tolarance for different patterns")
ax.set_xlabel("Noise")
ax.set_ylabel("Percentage of recovered patterns")
plt.savefig("noice_tol.pdf")
plot_bias_perf(0.05)