Exemplo n.º 1
0
class Launcher(object):
  
  def setup_logging(self):
    t = datetime.now()
    self.tstamp = '%d-%d-%d-%d-%d' % (t.year, t.month, t.day, t.hour, t.minute)
    fname = LOG_FILE_PATH + LOG_FILENAME + self.tstamp + '.log'    
    logging.basicConfig(filename=fname,level=logging.INFO,format=FORMAT)  
  
  def configure(self, p):
    print('constructing simulator')
    self.sim = Simulator(p['ins'], p['strat'], p['start_date'], p['end_date'], p['open_bal'], self.tstamp)

  def simulate(self):
    print('running simulator')
    start = clock()
    self.sim.run()
    end = clock()
    dur_str = 'seconds = %f' % (end - start)
    print(dur_str)
    logging.info('sim time = ' + dur_str)

  def report(self):
    print('plotting')
    start = clock()
    self.sim.plot()
    end = clock()
    dur_str = 'seconds = %f' % (end - start)
    print(dur_str)
    logging.info('plot time = ' + dur_str)

  def go(self, p):
    self.setup_logging()
    self.configure(p)
    self.simulate()
    self.report()
def run():
    if (sys.argv[1] == "-advanced"):
        print "Running advanced simulations..."
        s = Simulator(2000, [1, 0.5, 0.25, 0.125])
        s.simulate(Decoder.SUM_PROD)
        s.compute_error()
        s.save_results()
        s.plot('ro-')
        s.save_graph()

        s = Simulator(2000, [1, 0.5, 0.25, 0.125])
        s.simulate(Decoder.MAX_PROD)
        s.compute_error()
        s.save_results()
        s.plot('g^--')
        s.save_graph()

        s = Simulator(1000, [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
        s.simulate(Decoder.SUM_PROD)
        s.compute_error()
        s.save_results()
        s.plot('ro--')
        s.save_graph()

        s = Simulator(1000, [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
        s.simulate(Decoder.MAX_PROD)
        s.compute_error()
        s.save_results()
        s.plot('g^--')
        s.save_graph()
        print "See graphs/advanced-run and stats/advanced-run for detailed results."
    else:
        print sys.argv
        print "Running default simulation at variance levels %(var)s with %(num)s codewords..." % \
              {"var": [1, 0.5, 0.25, 0.125],
               "num": sys.argv[1]}
        s = Simulator(int(sys.argv[1]), [1, 0.5, 0.25, 0.125])
        s.default_run()