def randomRetries(inputFile, m, k):

    bestM = 1
    bestS = 100000000000
    bestR = 1
    for i in range(5):
        for m in range(m, m + 1):
            startTime = time.time()
            jobs = JobManager.JobManager(k, inputFile, m)
            machines = MachineBoss.MachineBoss(m)
            RandomSearch.RandomSearch(machines, jobs)

            makeSpan = machines.maxMachine().makeSpan
            OPT = max(jobs.MAXJOB, jobs.sumJobTime / float(m))
            bestS, bestM = "", ""
            if makeSpan < bestS:
                bestS = makeSpan
                bestM = m
                bestR = OPT
            exTime = time.time() - startTime
            #print "Max Machine Run time: "+ str(makeSpan) + " OPT for " + str(m) + " machines is " + str(ratio)
            #print "ratio: " + str(makeSpan/ratio)

        print "Random Search: \t\t " + str(bestS) + "|| Ratio: " + str(
            bestS / OPT) + " run time: " + str(exTime)
Example #2
0
def rand_search():

    for j in range(20):
        RandomSearch((-5.12, 5.12))


#rand_search()
Example #3
0
 def __init__(self,amap):
     self.running = True
     self.OnInit()
     g = Graph(amap)
     #self.search = Search(g,'A','T')
     self.search = RandomSearch(g,'L','N')
     self.search.reset()
def simpleTest(writeFile, inputFile, m, k):
    line = ""
    bestM = 1
    bestS = 100000000000
    bestR = 0
    for m in range(m, m + 1):
        startTime = time.time()
        jobs = JobManager.JobManager(k, inputFile, m)
        machines = MachineBoss.MachineBoss(m)
        SortedGreedyScheduler.SortedGreedyScheduler(machines, jobs)

        makeSpan = machines.maxMachine().makeSpan
        OPT = max(jobs.MAXJOB, jobs.sumJobTime / float(m))
        bestS, bestM = "", ""
        if makeSpan < bestS:
            bestS = makeSpan
            bestM = m
            bestR = OPT
        exTime = time.time() - startTime

    line = line + str(m) + "," + str(k) + "," + str(bestS / OPT) + ","
    print "SG"

    bestM = 1
    bestS = 100000000000
    bestR = 1
    for i in range(5):
        for m in range(m, m + 1):
            startTime = time.time()
            jobs = JobManager.JobManager(k, inputFile, m)
            machines = MachineBoss.MachineBoss(m)
            RandomSearch.RandomSearch(machines, jobs)

            makeSpan = machines.maxMachine().makeSpan
            OPT = max(jobs.MAXJOB, jobs.sumJobTime / float(m))
            bestS, bestM = "", ""
            if makeSpan < bestS:
                bestS = makeSpan
                bestM = m
                bestR = OPT
            exTime = time.time() - startTime
            #print "Max Machine Run time: "+ str(makeSpan) + " OPT for " + str(m) + " machines is " + str(ratio)
            #print "ratio: " + str(makeSpan/ratio)

    line = line + str(bestS / OPT) + ","
    print "RS"

    bestM = 1
    bestS = 100000000000
    bestR = 1
    for i in range(5):
        for m in range(m, m + 1):
            startTime = time.time()
            jobs = JobManager.JobManager(k, inputFile, m)
            machines = MachineBoss.MachineBoss(m)
            RandomSearchStatistics.RandomSearchStatistics(machines, jobs)

            makeSpan = machines.maxMachine().makeSpan
            OPT = max(jobs.MAXJOB, jobs.sumJobTime / float(m))
            bestS, bestM = "", ""
            if makeSpan < bestS:
                bestS = makeSpan
                bestM = m
                bestR = OPT
            exTime = time.time() - startTime
            #print "Max Machine Run time: "+ str(makeSpan) + " OPT for " + str(m) + " machines is " + str(ratio)
            #print "ratio: " + str(makeSpan/ratio)

    line = line + str(bestS / OPT) + "\n"
    writeFile.write(line)
    print "RSH"
Example #5
0
        print('\n\n##################### \t N: \t' + str(d[0].shape[0]) +
              '\t\t########################')
        start = time.time()
        test = Qap(flow=d[0],
                   distance=d[1],
                   pop_size=100,
                   gen=100,
                   p_x=0.7,
                   p_m=0.01,
                   tour=tour)
        buff = 0
        for i in range(10):
            test.main()
            test.result()
            buff += test.best_unit[1]
        print('AVG:  ' + str(buff / 10))
        stop = time.time()
        duration = int(round((stop - start) * 1000))
        print('Duration: ' + str(duration) + ' ms')
    pass


f, d = (np.loadtxt('data/flow_12.txt').astype(int),
        np.loadtxt('data/distance_12.txt').astype(int))
start = time.time()
test = RandomSearch(f, d, 1000)
test.run_random()
stop = time.time()
duration = int(round((stop - start) * 1000))
print('Duration: ' + str(duration) + ' ms')