Exemplo n.º 1
0
def run_mimic(t, samples, keep, m):
    fname = outfile.format('MIMIC{}_{}_{}'.format(samples, keep, m),
                           str(t + 1))
    ef = ContinuousPeaksEvaluationFunction(T)
    odd = DiscreteUniformDistribution(ranges)
    nf = DiscreteChangeOneNeighbor(ranges)
    mf = DiscreteChangeOneMutation(ranges)
    cf = SingleCrossOver()
    gap = GenericGeneticAlgorithmProblem(ef, odd, mf, cf)
    df = DiscreteDependencyTree(m, ranges)
    pop = GenericProbabilisticOptimizationProblem(ef, odd, df)
    mimic = MIMIC(samples, keep, pop)
    fit = FixedIterationTrainer(mimic, 10)
    times = [0]
    for i in range(0, maxIters, 10):
        start = clock()
        fit.train()
        elapsed = time.clock() - start
        times.append(times[-1] + elapsed)
        fevals = ef.fevals
        score = ef.value(mimic.getOptimal())
        ef.fevals -= 1
        st = '{},{},{},{}\n'.format(i, score, times[-1], fevals)
        # print st
        base.write_to_file(fname, st)
    return
Exemplo n.º 2
0
def run_ga(t, pop, mate, mutate):
    fname = outfile.format('GA{}_{}_{}'.format(pop, mate, mutate), str(t + 1))
    with open(fname, 'a+') as f:
        content = f.read()
        if "fitness" not in content:
            f.write('iterations,fitness,time,fevals\n')
    ef = FlipFlopEvaluationFunction()
    odd = DiscreteUniformDistribution(ranges)
    nf = DiscreteChangeOneNeighbor(ranges)
    mf = DiscreteChangeOneMutation(ranges)
    cf = SingleCrossOver()
    gap = GenericGeneticAlgorithmProblem(ef, odd, mf, cf)
    ga = StandardGeneticAlgorithm(pop, mate, mutate, gap)
    fit = FixedIterationTrainer(ga, 10)
    times = [0]
    for i in range(0, maxIters, 10):
        start = clock()
        fit.train()
        elapsed = time.clock() - start
        times.append(times[-1] + elapsed)
        fevals = ef.fevals
        score = ef.value(ga.getOptimal())
        ef.fevals -= 1
        st = '{},{},{},{}\n'.format(i, score, times[-1], fevals)
        # print st
        base.write_to_file(fname, st)
    return
Exemplo n.º 3
0
def run_mimic(t, samples, keep, m):
    fill = [N] * N
    ranges = array('i', fill)
    ef = TravelingSalesmanRouteEvaluationFunction(points)
    odd = DiscreteUniformDistribution(ranges)

    fname = outfile.format('MIMIC{}_{}_{}'.format(samples, keep, m),
                           str(t + 1))
    base.write_header(fname)
    df = DiscreteDependencyTree(m, ranges)
    ef = TravelingSalesmanRouteEvaluationFunction(points)
    pop = GenericProbabilisticOptimizationProblem(ef, odd, df)
    mimic = MIMIC(samples, keep, pop)
    fit = FixedIterationTrainer(mimic, 10)
    times = [0]
    for i in range(0, maxIters, 10):
        start = clock()
        fit.train()
        elapsed = time.clock() - start
        times.append(times[-1] + elapsed)
        fevals = ef.fevals
        score = ef.value(mimic.getOptimal())
        ef.fevals -= 1
        st = '{},{},{},{}\n'.format(i, score, times[-1], fevals)
        # print st
        base.write_to_file(fname, st)
    return
Exemplo n.º 4
0
def run_sa(t, CE):
    fname = outfile.format('SA{}'.format(CE), str(t + 1))
    with open(fname, 'a+') as f:
        content = f.read()
        if "fitness" not in content:
            f.write('iterations,fitness,time,fevals\n')
    ef = FlipFlopEvaluationFunction()
    odd = DiscreteUniformDistribution(ranges)
    nf = DiscreteChangeOneNeighbor(ranges)
    hcp = GenericHillClimbingProblem(ef, odd, nf)
    sa = SimulatedAnnealing(1E10, CE, hcp)
    fit = FixedIterationTrainer(sa, 10)
    times = [0]
    for i in range(0, maxIters, 10):
        start = clock()
        fit.train()
        elapsed = time.clock() - start
        times.append(times[-1] + elapsed)
        fevals = ef.fevals
        score = ef.value(sa.getOptimal())
        ef.fevals -= 1
        st = '{},{},{},{}\n'.format(i, score, times[-1], fevals)
        # print st
        base.write_to_file(fname, st)
    return
Exemplo n.º 5
0
def run_rhc(t):
    fname = outfile.format('RHC', str(t + 1))
    with open(fname, 'a+') as f:
        content = f.read()
        if "fitness" not in content:
            f.write('iterations,fitness,time,fevals\n')
    ef = ContinuousPeaksEvaluationFunction(T)
    odd = DiscreteUniformDistribution(ranges)
    nf = DiscreteChangeOneNeighbor(ranges)
    hcp = GenericHillClimbingProblem(ef, odd, nf)
    rhc = RandomizedHillClimbing(hcp)
    fit = FixedIterationTrainer(rhc, 10)
    times = [0]
    for i in range(0, maxIters, 10):
        start = clock()
        fit.train()
        elapsed = time.clock() - start
        times.append(times[-1] + elapsed)
        fevals = ef.fevals
        score = ef.value(rhc.getOptimal())
        ef.fevals -= 1
        st = '{},{},{},{}\n'.format(i, score, times[-1], fevals)
        # print fname, st
        base.write_to_file(fname, st)

    return
Exemplo n.º 6
0
Arquivo: tsp.py Projeto: dm458/abores3
def run_rhc(t):
    fname = outfile.format('RHC', str(t + 1))
    ef = TravelingSalesmanRouteEvaluationFunction(points)
    hcp = GenericHillClimbingProblem(ef, odd, nf)
    rhc = RandomizedHillClimbing(hcp)
    fit = FixedIterationTrainer(rhc, 10)
    times = [0]
    for i in range(0, maxIters, 10):
        start = clock()
        fit.train()
        elapsed = time.clock() - start
        times.append(times[-1] + elapsed)
        fevals = ef.fevals
        score = ef.value(rhc.getOptimal())
        ef.fevals -= 1
        st = '{},{},{},{}\n'.format(i, score, times[-1], fevals)
        # print st
        base.write_to_file(fname, st)
    return
Exemplo n.º 7
0
Arquivo: tsp.py Projeto: dm458/abores3
def run_ga(t, pop, mate, mutate):
    fname = outfile.format('GA{}_{}_{}'.format(pop, mate, mutate), str(t + 1))
    ef = TravelingSalesmanRouteEvaluationFunction(points)
    gap = GenericGeneticAlgorithmProblem(ef, odd, mf, cf)
    ga = StandardGeneticAlgorithm(pop, mate, mutate, gap)
    fit = FixedIterationTrainer(ga, 10)
    times = [0]
    for i in range(0, maxIters, 10):
        start = clock()
        fit.train()
        elapsed = time.clock() - start
        times.append(times[-1] + elapsed)
        fevals = ef.fevals
        score = ef.value(ga.getOptimal())
        ef.fevals -= 1
        st = '{},{},{},{}\n'.format(i, score, times[-1], fevals)
        # print st
        base.write_to_file(fname, st)
    return
Exemplo n.º 8
0
Arquivo: tsp.py Projeto: dm458/abores3
def run_sa(t, CE):
    fname = outfile.format('SA{}'.format(CE), str(t + 1))
    ef = TravelingSalesmanRouteEvaluationFunction(points)
    hcp = GenericHillClimbingProblem(ef, odd, nf)
    sa = SimulatedAnnealing(1E10, CE, hcp)
    fit = FixedIterationTrainer(sa, 10)
    times = [0]
    for i in range(0, maxIters, 10):
        start = clock()
        fit.train()
        elapsed = time.clock() - start
        times.append(times[-1] + elapsed)
        fevals = ef.fevals
        score = ef.value(sa.getOptimal())
        ef.fevals -= 1
        st = '{},{},{},{}\n'.format(i, score, times[-1], fevals)
        # print st
        base.write_to_file(fname, st)
    return
Exemplo n.º 9
0
def run_sa(t, CE):
    fname = outfile.format('SA{}'.format(CE), str(t + 1))
    base.write_header(fname)
    ef = ContinuousPeaksEvaluationFunction(T)
    odd = DiscreteUniformDistribution(ranges)
    nf = DiscreteChangeOneNeighbor(ranges)
    hcp = GenericHillClimbingProblem(ef, odd, nf)
    sa = SimulatedAnnealing(1E10, CE, hcp)
    fit = FixedIterationTrainer(sa, 10)
    times = [0]
    for i in range(0, maxIters, 10):
        start = clock()
        fit.train()
        elapsed = time.clock() - start
        times.append(times[-1] + elapsed)
        fevals = ef.fevals
        score = ef.value(sa.getOptimal())
        ef.fevals -= 1
        st = '{},{},{},{}\n'.format(i, score, times[-1], fevals)
        # print st
        base.write_to_file(fname, st)
    return
Exemplo n.º 10
0
def run_rhc(t):
    fname = outfile.format('RHC', str(t + 1))
    base.write_header(fname)
    ef = FlipFlopEvaluationFunction()
    odd = DiscreteUniformDistribution(ranges)
    nf = DiscreteChangeOneNeighbor(ranges)
    hcp = GenericHillClimbingProblem(ef, odd, nf)
    rhc = RandomizedHillClimbing(hcp)
    fit = FixedIterationTrainer(rhc, 10)
    times = [0]
    for i in range(0, maxIters, 10):
        start = clock()
        fit.train()
        elapsed = time.clock() - start
        times.append(times[-1] + elapsed)
        fevals = ef.fevals
        score = ef.value(rhc.getOptimal())
        ef.fevals -= 1
        st = '{},{},{},{}\n'.format(i, score, times[-1], fevals)
        # print st
        base.write_to_file(fname, st)
    return
class RunExperiment(Callable):
    def __init__(self, experiment):
        self.experiment = experiment
        self.started = None
        self.completed = None
        self.result = None
        self.thread_used = None
        self.exception = None

    def __str__(self):
        if self.exception:
            return "[%s] %s download error %s in %.2fs" % \
               (self.thread_used, self.experiment, self.exception,
                self.completed - self.started, ) #, self.result)
        elif self.completed:
            return "[%s] %s downloaded %dK in %.2fs" % \
                (self.thread_used, self.experiment, len(self.result)/1024,
                 self.completed - self.started, ) #, self.result)
        elif self.started:
            return "[%s] %s started at %s" % \
                (self.thread_used, self.experiment, self.started)
        else:
            return "[%s] %s not yet scheduled" % \
                (self.thread_used, self.experiment)

    # needed to implement the Callable interface;
    # any exceptions will be wrapped as either ExecutionException
    # or InterruptedException
    def call(self):
        self.thread_used = threading.currentThread().getName()
        self.started = time.time()
        if self.experiment['kind'] == 'rhc':
            exp_args = self.experiment['args']
        else:
            exp_args = ",".join(map(str, self.experiment['args']))
        print "START: {},{},{}".format(self.experiment['type'],
                                       self.experiment['kind'], exp_args)
        try:
            if self.experiment['type'] == 'continuouspeaks':
                if self.experiment['kind'] == 'rhc':
                    self.result = continuouspeaks.run_rhc(
                        self.experiment['args'])
                if self.experiment['kind'] == 'sa':
                    self.result = continuouspeaks.run_sa(
                        *self.experiment['args'])
                if self.experiment['kind'] == 'ga':
                    self.result = continuouspeaks.run_ga(
                        *self.experiment['args'])
                if self.experiment['kind'] == 'mimic':
                    self.result = continuouspeaks.run_mimic(
                        *self.experiment['args'])
            if self.experiment['type'] == 'flipflop':
                if self.experiment['kind'] == 'rhc':
                    self.result = flipflop.run_rhc(self.experiment['args'])
                if self.experiment['kind'] == 'sa':
                    self.result = flipflop.run_sa(*self.experiment['args'])
                if self.experiment['kind'] == 'ga':
                    self.result = flipflop.run_ga(*self.experiment['args'])
                if self.experiment['kind'] == 'mimic':
                    self.result = flipflop.run_mimic(*self.experiment['args'])
            if self.experiment['type'] == 'tsp':
                if self.experiment['kind'] == 'rhc':
                    self.result = tsp.run_rhc(self.experiment['args'])
                if self.experiment['kind'] == 'sa':
                    self.result = tsp.run_sa(*self.experiment['args'])
                if self.experiment['kind'] == 'ga':
                    self.result = tsp.run_ga(*self.experiment['args'])
                if self.experiment['kind'] == 'mimic':
                    self.result = tsp.run_mimic(*self.experiment['args'])
            if self.experiment['type'] == 'nn':
                if self.experiment['kind'] == 'backprop':
                    self.result = NNbackprop.main(*self.experiment['args'])
                if self.experiment['kind'] == 'ga':
                    self.result = NNga.main(*self.experiment['args'])
                if self.experiment['kind'] == 'rhc':
                    self.result = NNrhc.main(*self.experiment['args'])
                if self.experiment['kind'] == 'sa':
                    self.result = NNsa.main(*self.experiment['args'])
        except Exception, ex:
            self.exception = ex
        self.completed = time.time()
        if self.experiment['kind'] == 'rhc':
            exp_args = self.experiment['args']
        else:
            exp_args = ",".join(map(str, self.experiment['args']))
        finished = "{},{},{},{}".format(self.experiment['type'],
                                        self.experiment['kind'], exp_args,
                                        self.completed - self.started)
        print "  END: {}".format(finished)
        base.write_to_file(TIMING_FILE, "{}\n".format(finished))

        return self
Exemplo n.º 12
0
    def call(self):
        self.thread_used = threading.currentThread().getName()
        self.started = time.time()
        if self.experiment['kind'] == 'rhc':
            exp_args = self.experiment['args']
        else:
            exp_args = ",".join(map(str, self.experiment['args']))
        print("START: {},{},{}".format(self.experiment['type'],
                                       self.experiment['kind'], exp_args))
        try:
            if self.experiment['type'] == 'continuouspeaks':
                if self.experiment['kind'] == 'rhc':
                    self.result = continuouspeaks.run_rhc(
                        self.experiment['args'])
                if self.experiment['kind'] == 'sa':
                    self.result = continuouspeaks.run_sa(
                        *self.experiment['args'])
                if self.experiment['kind'] == 'ga':
                    self.result = continuouspeaks.run_ga(
                        *self.experiment['args'])
                if self.experiment['kind'] == 'mimic':
                    self.result = continuouspeaks.run_mimic(
                        *self.experiment['args'])
            if self.experiment['type'] == 'flipflop':
                if self.experiment['kind'] == 'rhc':
                    self.result = flipflop.run_rhc(self.experiment['args'])
                if self.experiment['kind'] == 'sa':
                    self.result = flipflop.run_sa(*self.experiment['args'])
                if self.experiment['kind'] == 'ga':
                    self.result = flipflop.run_ga(*self.experiment['args'])
                if self.experiment['kind'] == 'mimic':
                    self.result = flipflop.run_mimic(*self.experiment['args'])
            if self.experiment['type'] == 'tsp':
                if self.experiment['kind'] == 'rhc':
                    self.result = tsp.run_rhc(self.experiment['args'])
                if self.experiment['kind'] == 'sa':
                    self.result = tsp.run_sa(*self.experiment['args'])
                if self.experiment['kind'] == 'ga':
                    self.result = tsp.run_ga(*self.experiment['args'])
                if self.experiment['kind'] == 'mimic':
                    self.result = tsp.run_mimic(*self.experiment['args'])
            if self.experiment['type'] == 'nn':
                if self.experiment['kind'] == 'backprop':
                    self.result = NNbackprop.main(*self.experiment['args'])
                if self.experiment['kind'] == 'ga':
                    self.result = NNga.main(*self.experiment['args'])
                if self.experiment['kind'] == 'rhc':
                    self.result = NNrhc.main(*self.experiment['args'])
                if self.experiment['kind'] == 'sa':
                    self.result = NNsa.main(*self.experiment['args'])
        except Exception:
            pass
            self.exception = ex
        self.completed = time.time()
        if self.experiment['kind'] == 'rhc':
            exp_args = self.experiment['args']
        else:
            exp_args = ",".join(map(str, self.experiment['args']))
        finished = "{},{},{},{}".format(self.experiment['type'],
                                        self.experiment['kind'], exp_args,
                                        self.completed - self.started)
        print("  END: {}".format(finished))
        base.write_to_file(TIMING_FILE, "{}\n".format(finished))

        return self