feat: complete q3
This commit is contained in:
parent
a7d3d8a969
commit
c57e6e4626
@ -107,7 +107,6 @@ def joinFactors(factors: List[Factor]):
|
|||||||
|
|
||||||
|
|
||||||
for factor in factors:
|
for factor in factors:
|
||||||
print(factor)
|
|
||||||
'''
|
'''
|
||||||
print(factor.unconditionedVariables())
|
print(factor.unconditionedVariables())
|
||||||
print(factor.conditionedVariables())
|
print(factor.conditionedVariables())
|
||||||
@ -186,7 +185,30 @@ def eliminateWithCallTracking(callTrackingList=None):
|
|||||||
"unconditionedVariables: " + str(factor.unconditionedVariables()))
|
"unconditionedVariables: " + str(factor.unconditionedVariables()))
|
||||||
|
|
||||||
"*** YOUR CODE HERE ***"
|
"*** YOUR CODE HERE ***"
|
||||||
raiseNotDefined()
|
conditioned_variables = set(factor.conditionedVariables())
|
||||||
|
unconditioned_variables = set(factor.unconditionedVariables())
|
||||||
|
|
||||||
|
# remove the elimination_variable from unconditioned variables
|
||||||
|
unconditioned_variables.remove(eliminationVariable)
|
||||||
|
|
||||||
|
# new variable_domains_dict, removing the elimination variable
|
||||||
|
variable_domains_dict = {}
|
||||||
|
for variable, domains in factor.variableDomainsDict().items():
|
||||||
|
if variable != eliminationVariable:
|
||||||
|
variable_domains_dict[variable] = domains
|
||||||
|
|
||||||
|
new_factor = Factor(unconditioned_variables, conditioned_variables, variable_domains_dict)
|
||||||
|
|
||||||
|
for fill_assignment in new_factor.getAllPossibleAssignmentDicts():
|
||||||
|
prob = 0
|
||||||
|
eliminate_variable_domains = factor.variableDomainsDict()[eliminationVariable]
|
||||||
|
for var in eliminate_variable_domains:
|
||||||
|
old_assignment = fill_assignment.copy()
|
||||||
|
old_assignment[eliminationVariable] = var
|
||||||
|
prob += factor.getProbability(old_assignment)
|
||||||
|
new_factor.setProbability(fill_assignment, prob)
|
||||||
|
return new_factor
|
||||||
|
|
||||||
"*** END YOUR CODE HERE ***"
|
"*** END YOUR CODE HERE ***"
|
||||||
|
|
||||||
return eliminate
|
return eliminate
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user