示例#1
0
 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)
示例#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)
 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
示例#5
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/"
示例#6
0
 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()
示例#7
0
 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()
示例#10
0
 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()