Example #1
0
    def simulate(self):
        for job in self.design:
            self.setJobParameters(job)
            job_outputs = collections.OrderedDict(
            )  # a dictionary accessed by output variable name
            # initialize empty lists to track repetition outputs for each output variable
            for output in self.output_getters:
                job_outputs[output] = []
            for i in range(self.job_repetitions):
                self.initiateSim()
                while not self.stopSim():
                    self.stepSim()
                outputs = self.getOutputs()
                for output in outputs:
                    job_outputs[output].append(outputs[output])
                self.outputFile.write("\n %d" % job["job_id"])
                self.fileWriteJobParameters(job)
                self.fileWriteOutputs(outputs)

            # write statistics to file
            averages = collections.OrderedDict()
            stddevs = collections.OrderedDict()
            for variable in job_outputs:
                averages[variable] = U.mean(job_outputs[variable])
                stddevs[variable] = U.popStdDev(job_outputs[variable])
            self.summary_avgs[job["job_id"]] = averages
            self.summary_stds[job["job_id"]] = stddevs
            self.output("\naverages: ")
            self.fileWriteJobParameters(job)
            self.fileWriteOutputs(averages)
            self.output("\nstandard deviations: ")
            self.fileWriteJobParameters(job)
            self.fileWriteOutputs(stddevs)
Example #2
0
    def simulate(self):
        for job in self.design:
            self.setJobParameters(job)
            job_outputs = collections.OrderedDict()  # a dictionary accessed by output variable name
            # initialize empty lists to track repetition outputs for each output variable
            for output in self.output_getters:
                job_outputs[output] = []
            for i in range(self.job_repetitions):
                self.datetime = U.getTimeStampString()
                self.initiateSim()
                while not self.stopSim():
                    self.stepSim()
                outputs = self.getOutputs()
                for output in outputs:
                    job_outputs[output].append(outputs[output])
                self.outputFile.write("\n %s, %d"%(self.datetime, job["job_id"]))
                self.fileWriteJobParameters(job)
                self.fileWriteOutputs(outputs)

            # write statistics to file
            averages = collections.OrderedDict()
            stddevs = collections.OrderedDict()
            for variable in job_outputs:
                averages[variable] = U.mean(job_outputs[variable])
                stddevs[variable] = U.popStdDev(job_outputs[variable])
            self.summary_avgs[job["job_id"]] = averages
            self.summary_stds[job["job_id"]] = stddevs
            self.output("\naverages: ")
            self.fileWriteJobParameters(job)
            self.fileWriteOutputs(averages)
            self.output("\nstandard deviations: ")
            self.fileWriteJobParameters(job)
            self.fileWriteOutputs(stddevs)
Example #3
0
 def computeMetrics(self):
     scores = [agent.score for agent in self.agent_set]
     self.mean = u.mean(scores)
     self.std = u.popStdDev(scores)
     self.minscore = min(scores)
     self.medscore = u.median(scores)
     self.maxscore =max(scores)
     agents_sorted = sorted(self.agent_set, key=lambda agent:agent.score)
     self.minscoreHfraction = agents_sorted[0].getHFraction()
     self.maxscoreHfraction = agents_sorted[-1].getHFraction()
     self.medscoreHfraction = agents_sorted[int(len(self.agent_set)/2)].getHFraction()
     hfractions = [agent.getHFraction() for agent in self.agent_set]
     self.medHfraction = u.median(hfractions)
     self.avgHfraction = u.mean(hfractions)
     self.minHfraction = min(hfractions)
     self.maxHfraction = max(hfractions)
     self.sumHfractions = sum(hfractions)
     dhfractions = [abs(hfractions[i] - self.oldHfractions[i]) for i in range(len(hfractions))]
     self.sumdH = sum(dhfractions)