bayes q3
This commit is contained in:
@ -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
|
||||||
|
Reference in New Issue
Block a user