This commit is contained in:
2024-07-03 02:58:28 +00:00
parent 4e27052ebf
commit 28bbb5f22c

View File

@ -102,7 +102,27 @@ def joinFactors(factors: List[Factor]):
"*** YOUR CODE HERE ***"
raiseNotDefined()
factor_list = [item for item in factors]
conditioned_variables = []
unconditioned_variables = []
variablesDomainDict = factor_list[0].variableDomainsDict()
for factor in factor_list:
for var in factor.unconditionedVariables():
if var not in unconditioned_variables:
unconditioned_variables.append(var)
if var in conditioned_variables:
conditioned_variables.remove(var)
for var in factor.conditionedVariables():
if var not in conditioned_variables and var not in unconditioned_variables:
conditioned_variables.append(var)
joint_factor = Factor(unconditioned_variables, conditioned_variables, variablesDomainDict)
cases=joint_factor.getAllPossibleAssignmentDicts()
for case_ in cases:
prob = 1
for factor in factor_list:
prob *= factor.getProbability(case_)
joint_factor.setProbability(case_, prob)
return joint_factor
"*** END YOUR CODE HERE ***"
########### ########### ###########