def initrun(self, runcfg, casecfg): for i in xrange(0, len(casecfg)): if len(casecfg[i]) <= 0: return caseprop = casecfg[i].split() case = caseprop[0] # general configuration mcfg = caseprop[1] # meeting configuration lns_limit = int(caseprop[2]) # LNS time limit mip_limit = float(caseprop[3]) # MIP time limit update_interval = int(caseprop[4]) # online update interval rndseed = int( caseprop[5] ) # random seed (used previously to pick meetings from USC data and so on.) algo = caseprop[6] # Given Input/eams_meeting_m10_04_227000_18_ws.cfg # caseid : ['Input', 'eams_meeting_m10_04_227000_18_ws', 'cfg'] gencasecfgid = case.replace('/', ' ').replace('.', ' ').split() room_num = gencasecfgid[1].split('_')[0] mcfgid = mcfg.replace('/', ' ').split() self.casecfgid = room_num + "_" + mcfgid[3] self.runcfg = runcfg # Activate log file fn = 'Output/' + self.casecfgid self._activateLogFile(fn) self.eams = EAMS() self.eams.readProblemInstance(case, mcfg) if algo == 'EU_RB' or algo == 'OA_RB' or algo == 'PC_RB': slack = float(caseprop[7]) delta = float(caseprop[8]) probguar = float(caseprop[9]) osg = Solver_OS_Greedy(self.eams, fn, runcfg, self.casecfgid, lns_limit, mip_limit, update_interval, rndseed, algo, slack, delta, probguar) else: osg = Solver_OS_Greedy(self.eams, fn, runcfg, self.casecfgid, lns_limit, mip_limit, update_interval, rndseed) osg.run()
for i in range(1, runCount + 1): if not cfg[i]: sys.exit("Invalid run... No config file exists.") print "\n\nRunning " + cfg[i] + "..." eams.readProblemInstance(cfg[i]) caseid = cfg[i].replace('/', '_').replace('.', '_') solver = Solver(eams, caseid) solver.solve() solver.logSchedulingResults() mname = cfg[i].replace('/', ' ').replace('.', ' ').split() solver.createFixedMeetingSchedule(mname[1]) if __name__ == '__main__': eams = EAMS() if len(sys.argv) > 1: file_location = sys.argv[1].strip() run_config_file = open(file_location, 'r') cfg_data = ''.join(run_config_file.readlines()) run_config_file.close() cfg_idx = file_location.replace('\\', ' ').replace( '.', ' ').split() # exclude folder and .cfg run_it(cfg_data, cfg_idx[1]) else: print 'This test requires an input file. Please select one from the data directory. (i.e. python run.py ./Input/eams.cfg)'
eligible_slot = avail_slot.count(1) * len(eams.RL) density = (float(required_slot)/eligible_slot)*100 print "eligible_slot: " + str(eligible_slot) print "required_slot: " + str(required_slot) print "density: " + str(density) return density if __name__ == '__main__': enableLog = 1 eams = EAMS(enableLog) # activate log within EAMS. if len(sys.argv) > 1: file_location = sys.argv[1].strip() run_config_file = open(file_location, 'r') cfg_data = ''.join(run_config_file.readlines()) run_config_file.close() # Given eams_run_tests.cfg, # cfg_data --> a list of test cases to run # cfg_idx[1] --> "eams_run_tests" if '/' in file_location: cfg_idx = file_location.replace('/',' ').replace('.',' ').split() else: cfg_idx = file_location.replace('\\',' ').replace('.',' ').split()