Example #1
0
def run():
    try:
        argp = argparse.ArgumentParser(description='AMMM Lab Heuristics')
        argp.add_argument('configFile', help='configuration file path')
        args = argp.parse_args()

        print 'AMMM Lab Heuristics'
        print '-------------------'

        print 'Reading Config file %s...' % args.configFile
        config = DATParser.parse(args.configFile)
        ValidateConfig.validate(config)

        print 'Reading Input Data file %s...' % config.inputDataFile
        inputData = DATParser.parse(config.inputDataFile)
        ValidateInputData.validate(inputData)

        print 'Creating Problem...'
        problem = Problem(inputData)

        if (problem.checkInstance()):
            print 'Solving Problem...'
            solver = None
            solution = None
            if (config.solver == 'Greedy'):
                solver = Solver_Greedy()
                solution = solver.solve(config, problem)
            elif (config.solver == 'GRASP'):
                solver = Solver_GRASP()
                solution = solver.solve(config, problem)
            elif (config.solver == 'BRKGA'):
                solver = Solver_BRKGA()
                decoder = TaskToCPUAssignment_Decoder(config, problem)
                solution = solver.solve(config, problem, decoder)

            solution.saveToFile(config.solutionFile)
        else:
            print 'Instance is infeasible.'
            solution = Solution.createEmptySolution(config, problem)
            solution.makeInfeasible()
            solution.saveToFile(config.solutionFile)

        return (0)
    except Exception as e:
        print
        print 'Exception:', e
        print
        return (1)
Example #2
0
def run():
    argp = argparse.ArgumentParser(description='AMMM Lab Heuristics')
    argp.add_argument('configFile', help='configuration file path')
    args = argp.parse_args()
    start_time = time.time()

    print 'AMMM Lab Heuristics'
    print '-------------------'

    print 'Reading Config file %s...' % args.configFile
    config = DATParser.parse(args.configFile)

    #ValidateConfig.validate(config)

    print 'Reading Input Data file %s...' % config.inputDataFile
    inputData = DATParser.parse(config.inputDataFile)
    #  ValidateInputData.validate(inputData)

    print 'Creating Problem...'
    problem = Problem(inputData)

    if problem.checkInstance():
        print 'Solving Problem...'
        solver = None
        solution = None
        if config.solver == 'Greedy':
            print 'Greedy solving'
            greedySolver = Greedy(config, problem)
            solutionGreedy = greedySolver.computeCandidates()
            candidates = solutionGreedy[0]
            cost = solutionGreedy[1]
            for candService in candidates:
                print candService.getBus()
                print candService.getDriver()
            print cost

            # Start local search
            local_search = LocalSearch()
            solution_log = []
            solution = greedySolver
            for i in xrange(1000):
                solution_log.append(solution)
                solution = local_search.exploreNeighborhoodMixed(solution)
                print "Iteration %d with cost %f" % (i + 1,
                                                     solution.calculateCosts())

            print "Best solution had %f cost" % solution.calculateCosts()
            print "Time: %f" % (time.time() - start_time)

        elif config.solver == 'GRASP':
            #solver = GRASP()
            solution = solver.solve(config, problem)

        #solution.saveToFile(config.solutionFile)
    else:
        print 'Instance is infeasible.'
        #solution = Solution.createEmptySolution(config, problem)
        #solution.makeInfeasible()
        #solution.saveToFile(config.solutionFile)

    return (0)