def unexpected_case(clas: Classifier, percept: list, percept_: list) -> Classifier: """ :rtype: Classifier """ assert (len(percept_) == cons.lenCondition), "Wrong leight" assert (len(percept) == cons.lenCondition), "Wrong leight" clas.q = clas.q - cons.beta * clas.q clas.mark = percept_ for i in range(len(percept)): if clas.effect[i] != cons.symbol: if clas.effect[i] != percept_[i] or percept_[i] != percept[i]: return None child = Classifier(clas) for i in range(len(percept)): if clas.effect[i] == cons.symbol and percept_[i] != percept[i]: child.condition[i] = percept_[i] child.effect[i] = percept[i] if clas.q < 0.5: clas.q = 0.5 child.exp = 1 return child