예제 #1
0
파일: ACS2.py 프로젝트: masterchef8/ACS2
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