def setupFile(self): dt = U.getTimeStampString() self.fileName = "../output/" + self.Name + " " + dt + ".csv" message = "Experiment " + self.Name message += "\n" + self.comments message += ".\nExperiment started %s\n" % dt self.output(message)
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)
def setupFile(self): dt = U.getTimeStampString() self.fileName = self.Name + " " + dt + ".csv" message = "Experiment " + self.Name message += "\n" + self.comments message += ".\nExperiment started %s\n"%dt self.output(message)
def initiateSim(self): global timestamp self.datetime = getTimeStampString() timestamp = self.datetime writeHistory("../output/histories/") self.sim = Schelling_Sim() self.delta_unhappy = 100 self.last_unhappy = 100 self.sameness = 0 self.turns = 0
def __init__(self): self.datetime = U.getTimeStampString() self.paramSetters = collections.OrderedDict() self.defaults = collections.OrderedDict() """ A dictionary of getter methods, accessed by a name for the variable """ self.output_getters = collections.OrderedDict() """ A dictionary of string formats that tells the fileWriteOutput method how to format the output values""" self.output_formats = collections.OrderedDict() self.fileName = "" self.directory = "../output/"
def run(self): self.setupExperiment() self.setupOutputs() self.setupFile() self.checkParameters() self.setDefaults() self.design = self.full_factorial_design(self.paramSetters, job_id_name="job_id") self.filewriteParameters() self.summary_avgs = collections.OrderedDict() self.summary_stds = collections.OrderedDict() try: self.simulate() except: error = sys.exc_info()[0] self.output("Experiment halted on error: %s" % error) finally: ### close out self.output( "\n######################################################") self.output("\nEXPERIMENT SUMMARY: JOB AVERAGES") self.output( "\n######################################################\n\n") job_output_header = "" for setter in self.paramSetters: job_output_header += ", " + setter.__name__ for variable_name in self.output_getters: job_output_header += ", " + variable_name self.output(job_output_header) for job in self.design: self.outputFile.write("\n %d" % job["job_id"]) self.fileWriteJobParameters(job) self.fileWriteOutputs(self.summary_avgs[job["job_id"]]) self.output( "\n######################################################") self.output("\nEXPERIMENT SUMMARY: JOB STANDARD DEVIATIONS") self.output( "\n######################################################\n\n") job_output_header = "" for setter in self.paramSetters: job_output_header += ", " + setter.__name__ for variable_name in self.output_getters: job_output_header += ", " + variable_name self.output(job_output_header) for job in self.design: self.outputFile.write("\n %d" % job["job_id"]) self.fileWriteJobParameters(job) self.fileWriteOutputs(self.summary_stds[job["job_id"]]) self.output( "\n######################################################") self.output("\nExperiment Completed %s" % U.getTimeStampString()) self.output( "\n######################################################\n\n") self.outputFile.close()
def run(self): self.setupExperiment() self.setupOutputs() self.setupFile() self.checkParameters() self.setDefaults() self.design = self.full_factorial_design(self.paramSetters, job_id_name = "job_id") self.filewriteParameters() self.summary_avgs = collections.OrderedDict() self.summary_stds = collections.OrderedDict() try: self.simulate() except: traceback.print_exc() error = sys.exc_info()[0] self.output("Experiment halted on error: %s" % error) finally: ### close out self.output("\n######################################################") self.output("\nEXPERIMENT SUMMARY: JOB AVERAGES") self.output("\n######################################################\n\n") job_output_header = "" for setter in self.paramSetters: job_output_header += ", " + setter.__name__ for variable_name in self.output_getters: job_output_header += ", " + variable_name self.output(job_output_header) for job in self.design: self.outputFile.write("\n %d"%job["job_id"]) self.fileWriteJobParameters(job) self.fileWriteOutputs(self.summary_avgs[job["job_id"]]) self.output("\n######################################################") self.output("\nEXPERIMENT SUMMARY: JOB STANDARD DEVIATIONS") self.output("\n######################################################\n\n") job_output_header = "" for setter in self.paramSetters: job_output_header += ", " + setter.__name__ for variable_name in self.output_getters: job_output_header += ", " + variable_name self.output(job_output_header) for job in self.design: self.outputFile.write("\n %d"%job["job_id"]) self.fileWriteJobParameters(job) self.fileWriteOutputs(self.summary_stds[job["job_id"]]) self.output("\n######################################################") self.output("\nExperiment Completed %s"%U.getTimeStampString()) self.output("\n######################################################\n\n") self.outputFile.close()
def run(self): self.setupExperiment() self.setupOutputs() self.setupFile() self.checkParameters() self.setDefaults() self.design = self.full_factorial_design(self.paramSetters, job_id_name = "job_id") self.filewriteParameters() try: self.simulate() except: error = sys.exc_info()[0] self.output("Experiment halted on error: %s" % error) finally: ### close out self.output("\n######################################################") self.output("\nExperiment Completed %s"%U.getTimeStampString()) self.output("\n######################################################\n\n") self.outputFile.close()
def runOnce(): global timestamp timestamp = getTimeStampString() setDebug(True) setVerbose(False) writeHistories(True) setSolutionBitLength(4) setNumOfIssues(50) setNumOfRepresentatives(100) setSatisfactionThreshold(0.5) setUnaffiliatedFraction(0.05) setGreenFraction(0.5) setIdeologyIssues(5) setStatePriorities(5) proposals = 200 archive("Number of proposals: %d\n"%proposals) s = State() for i in range(proposals): if State.open_issues: s.step() s.closeout()
def run(self): self.setupExperiment() self.setupOutputs() self.setupFile() self.checkParameters() self.setDefaults() self.design = self.full_factorial_design(self.paramSetters, job_id_name="job_id") self.filewriteParameters() try: self.simulate() except: error = sys.exc_info()[0] self.output("Experiment halted on error: %s" % error) finally: ### close out self.output( "\n######################################################") self.output("\nExperiment Completed %s" % U.getTimeStampString()) self.output( "\n######################################################\n\n") self.outputFile.close()