Пример #1
0
    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()
Пример #2
0
    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)'
Пример #3
0
    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()