Exemple #1
0
    def NetworkBase_timeStep(self, time, supportDepressionImpact, 
        concealDiscriminateImpact, discriminateConcealImpact, 
        discriminateDepressionImpact, concealDepressionImpact,
        support=None, conceal=None, discrimination=None, 
        attitude=None, depression=None, policyScore=None, bias=0): 
        ONLY_NON_DISCRIMINATORY = 1
        ONLY_DISCRIMINATORY = 2

        # "Natural gap" between passing of enforced policies
        TIME_GAP = 5

        # Considers the cases where the type of policy is externally
        # enforced (not proposed at random in simulation)
        if (policyScore or bias) and time % TIME_GAP == 0:
            newPolicy = Policy(time, score=policyScore, biasPass=bias)

            # Converst from the numerical bias to a boolean for if
            # the scores are bias towards discriminatory or support
            if bias == ONLY_NON_DISCRIMINATORY: onlyDisc = False
            else: onlyDisc = True

            self.NetworkBase_enforcePolicy(time, score=policyScore, 
                onlyDisc=onlyDisc)

        else:
            newPolicy = Policy(time)
            newPolicy.Policy_considerPolicy(self, time, self.policyCap)
        
        self.NetworkBase_updatePolicyScore(time)
        for agentID in self.Agents:
            self.Agents[agentID].Agent_updateAgent(time, supportDepressionImpact,
                concealDiscriminateImpact, discriminateConcealImpact, 
                discriminateDepressionImpact, concealDepressionImpact,
                support, conceal, discrimination, attitude, depression)