This commit is contained in:
2024-07-03 03:08:12 +00:00
parent 28bbb5f22c
commit 02eabecef9

View File

@ -173,7 +173,23 @@ def eliminateWithCallTracking(callTrackingList=None):
"unconditionedVariables: " + str(factor.unconditionedVariables())) "unconditionedVariables: " + str(factor.unconditionedVariables()))
"*** YOUR CODE HERE ***" "*** YOUR CODE HERE ***"
raiseNotDefined() # print("factor= ", factor)
# print("eliminationVariable= ", eliminationVariable)
variableDomainsDict=factor.variableDomainsDict()
unconditional_variables = [var for var in factor.unconditionedVariables() if var != eliminationVariable]
conditioned_variables = factor.conditionedVariables()
new_factor = Factor(unconditional_variables, conditioned_variables, variableDomainsDict)
cases = new_factor.getAllPossibleAssignmentDicts()
for case_ in cases:
prob = 0
# print("initially, case_= ", case_)
for value in variableDomainsDict[eliminationVariable]:
case_[eliminationVariable] = value
# print("case_= ", case_)
prob += factor.getProbability(case_)
new_factor.setProbability(case_, prob)
# print("new_factor= ", new_factor, " and its cases= ", new_factor.getAllPossibleAssignmentDicts())
return new_factor
"*** END YOUR CODE HERE ***" "*** END YOUR CODE HERE ***"
return eliminate return eliminate