mirror of
https://github.com/ION606/COGMOD-HWI.git
synced 2026-05-14 22:16:57 +00:00
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
from calculateHW2P5 import simulate_culprit, simulate_crumbs, combination, print_probabilities, analytic_probabilities, print_analytic_probabilities
|
|
import numpy as np
|
|
|
|
if __name__ == "__main__":
|
|
#N = 100000 #used while testing
|
|
NSize = [1000, 10000, 100000]
|
|
#Priors for each suspect
|
|
pSuperman = 0.5
|
|
pBatman = 0.5
|
|
|
|
#Likelihoods of crumbs on each location
|
|
supermanProb = np.array([0.3, 0.7, 0.2])
|
|
batmanProb = np.array([0.4, 0.6, 0.3])
|
|
|
|
#Simulate
|
|
'''
|
|
culprit = simulate_culprit(N, pSuperman)
|
|
crumbResults = simulate_crumbs(N, supermanProb, batmanProb, culprit)
|
|
|
|
print("Simulation:")
|
|
print_probabilities(combination(crumbResults, culprit), N)
|
|
'''
|
|
print("Simulation:")
|
|
for N in NSize:
|
|
print(f"N = {N}")
|
|
# Simulate culprit and crumbs
|
|
culprit = simulate_culprit(N, pSuperman)
|
|
crumbResults = simulate_crumbs(N, supermanProb, batmanProb, culprit)
|
|
|
|
# Count combinations and print probabilities
|
|
print("Simulated Probabilities:")
|
|
print_probabilities(combination(crumbResults, culprit), N)
|
|
print("\n")
|
|
|
|
#Analytic
|
|
print("Analytic:")
|
|
print_analytic_probabilities(analytic_probabilities(pSuperman, pBatman, supermanProb, batmanProb))
|
|
|
|
'''
|
|
As the value of N increases, the simulated probabilities get closer to the analytic probabilities.
|
|
'''
|