예제 #1
0
파일: CS533-4.py 프로젝트: sharpau/CS533-4
def part_iii_evaluation(sim_filename):
    print sim_filename
    mdp = MDP("blank_2_actions_81_states_mdp.txt")
    results = []
    # prior: assume each transition seen once
    transition_count = [[[0.1 for _ in range(81)] for _ in range(81)]
                        for _ in range(2)]

    for n in range(10):
        print "Big loop " + str(n)
        results.append([])
        for i in range(100):
            mdp, transition_count = adp_rl(mdp, Sim(MDP(sim_filename)),
                                           transition_count)
        value_fn, policy, iterations = plan(mdp, 0.99, 0.01)
        print "Value: " + str(value_fn)
        print "Policy: " + str(policy)
        #print "Reward: " + str(mdp.rewards)
        #print "Transitions: " + str(mdp.transitions)
        for i in range(100):
            reward = run_policy(Sim(MDP(sim_filename)), policy)
            results[n].append(reward)

        print "Average reward of policy: " + str(average(results[n]))

    for l in results:
        print average(l)
예제 #2
0
    def __init__(self, username=None, password=None, uni='145'):
        self.uni = uni
        self.username = username
        self.password = password
        self.logged_in = False

        self._prepare_logger()
        self._prepare_browser()

        self.MAIN_URL = 'https://s%s-pl.ogame.gameforge.com/game/index.php' % self.uni
        self.PAGES = {
            'main': self.MAIN_URL + '?page=overview',
            'resources': self.MAIN_URL + '?page=resources',
            'station': self.MAIN_URL + '?page=station',
            'research': self.MAIN_URL + '?page=research',
            'shipyard': self.MAIN_URL + '?page=shipyard',
            'defense': self.MAIN_URL + '?page=defense',
            'fleet': self.MAIN_URL + '?page=fleet1',
            'galaxy': self.MAIN_URL + '?page=galaxy',
            'galaxyCnt': self.MAIN_URL + '?page=galaxyContent',
            'events': self.MAIN_URL + '?page=eventList',
        }
        self.planets = []
        self.moons = []
        self.active_attacks = []

        self.fleet_slots = 0
        self.active_fleets = 0
        self.transport_manager = TransportManager()
        self.server_time = self.local_time = datetime.now()
        self.time_diff = 0
        self.sim = Sim()
예제 #3
0
파일: main.py 프로젝트: zigapk/racorodja
def plot_range_for_velocity(v_min, v_max, step=500, save_to_file=None):
    vx, vy_min, vy_max = [], [], []
    for v in range(v_min, v_max, step):
        # print v to indicate progress
        print(v)
        # run sim for desired velocity
        sim = Sim(planet_name, capsule_name, 80000)
        sim.set_v0(v)
        rng = get_angle_range(sim, step=0.01)

        if len(rng) > 0:  # makes sure that even if it is impossible to land, the program won't crash after hours
            # store data
            vx.append(v)
            vy_min.append(rng[0])
            vy_max.append(rng[-1])

    # plot
    f, ax = plt.subplots(1)
    ax.plot(vx, vy_min, 'bo')
    ax.plot(vx, vy_max, 'ro')
    plt.xlabel('$ v_0 $ [m/s]')
    plt.ylabel('$ \phi_0 [°]$')
    plt.title(r'Min and max $ \phi_0(v_0) $')

    if save_to_file is not None:
        plt.savefig(save_to_file)

    plt.show()
예제 #4
0
def gemRun(reps):
    taxMeans = []
    taxSEs = []

    p['verboseDebugging'] = False
    p['singleRunGraphs'] = False
    p['interactiveGraphics'] = False

    dataFile = open('GEMSA data new.txt', 'a')
    meansFile = open('GEMSA means new.txt', 'a')
    outFile = open('GEMSA outputs new.txt', 'a')

    #    agingParentList = [ 0.0, 0.1, 0.2, 0.4 ]
    #    careProbList = [ 0.0004, 0.0008, 0.0012, 0.0016 ]
    #    retiredHoursList = [ 20.0, 30.0, 40.0, 60.0 ]
    #    retiredAgeList = [ 60.0 ]
    #    ageingParentList = [ 0.0, 0.1 ]
    #    careProbList = [ 0.0004 ]
    #    retiredHoursList = [ 20.0 ]
    #    retiredAgeList = [ 60.0 ]

    for variableCare in p['ageingParentList']:
        for variableProb in p['careProbList']:
            for variableRetired in p['retiredHoursList']:
                for variableAge in p['retiredAgeList']:
                    p['agingParentsMoveInWithKids'] = variableCare
                    p['personCareProb'] = variableProb
                    p['retiredHours'] = variableRetired
                    p['ageOfRetirement'] = variableAge
                    print "Trying parents-moving-in probability: ", variableCare
                    print "Trying person care probability: ", variableProb
                    print "Trying retired hours: ", variableRetired
                    print "Trying retirement age: ", variableAge
                    taxList = []
                    taxSum = 0.0
                    meansFile.write(
                        str(variableCare) + "\t" + str(variableProb) + "\t" +
                        str(variableRetired) + "\t" + str(variableAge) + "\n")
                    for i in range(0, reps):
                        print i,
                        s = Sim(p)
                        tax, seed = s.run()
                        taxList.append(tax)
                        taxSum += tax
                        print tax
                        dataFile.write(
                            str(seed) + "\t" + str(variableCare) + "\t" +
                            str(variableProb) + "\t" + str(variableRetired) +
                            "\t" + str(variableAge) + "\t" + str(tax) + "\n")
                    taxMeans.append(pylab.mean(taxList))
                    outFile.write(str(taxSum / reps) + "\n")
                    taxSEs.append(pylab.std(taxList) / math.sqrt(reps))

    dataFile.close()
    meansFile.close()
    outFile.close()
예제 #5
0
 def __init__(self, planets=None):
     if planets is None:
         planets = []
     self.planets = planets
     self.sim = Sim()
     self.dest_planet = None
     self.building = None
     self.resources_needed = {'metal': 0, 'crystal': 0, 'deuterium': 0}
     self.resources_sent = self.resources_needed
     self.building_queue = set()
def multiprocessingSim(params):
    # Create Sim instance
    folderRun = params[0]['rootFolder'] + '/Rep_' + str(params[0]['repeatIndex'])
    
    s = Sim(params[0]['scenarioIndex'], params[0], folderRun)
    
    print''
    print params[1]['policyIndex']
    print''
    
    s.run(params[1]['policyIndex'], params[1], params[1]['randomSeed'])
예제 #7
0
def sensitivityRun(runtype, ageingList, careList, retiredHList, retiredAList,
                   reps):
    taxMeans = []
    taxSEs = []

    p['verboseDebugging'] = False
    p['singleRunGraphs'] = False
    p['interactiveGraphics'] = False

    dataFile = open(runtype + ' GEMSA data.txt', 'a')
    meansFile = open(runtype + ' GEMSA means.txt', 'a')
    outFile = open(runtype + ' GEMSA outputs.txt', 'a')

    #    agingParentList = [ 0.0, 0.1, 0.2, 0.4 ]
    #    careProbList = [ 0.0004, 0.0008, 0.0012, 0.0016 ]
    #    retiredHoursList = [ 20.0, 30.0, 40.0, 60.0 ]
    #    retiredAgeList = [ 60.0 ]
    #    ageingParentList = [ 0.0, 0.1 ]
    #    careProbList = [ 0.0004 ]
    #    retiredHoursList = [ 20.0 ]
    #    retiredAgeList = [ 60.0 ]

    for run in xrange(len(ageingList)):
        p['agingParentsMoveInWithKids'] = ageingList[run]
        p['personCareProb'] = careList[run]
        p['retiredHours'] = retiredHList[run]
        p['ageOfRetirement'] = retiredAList[run]
        print "Trying parents-moving-in probability: ", ageingList[run]
        print "Trying person care probability: ", careList[run]
        print "Trying retired hours: ", retiredHList[run]
        print "Trying retirement age: ", retiredAList[run]
        taxList = []
        taxSum = 0.0
        meansFile.write(
            str(ageingList[run]) + "\t" + str(careList[run]) + "\t" +
            str(retiredHList[run]) + "\t" + str(retiredAList[run]) + "\n")
        for i in range(0, reps):
            print i,
            s = Sim(p)
            tax, seed = s.run()
            taxList.append(tax)
            taxSum += tax
            print tax
            dataFile.write(
                str(seed) + "\t" + str(ageingList[run]) + "\t" +
                str(careList[run]) + "\t" + str(retiredHList[run]) + "\t" +
                str(retiredAList[run]) + "\t" + str(tax) + "\n")
        taxMeans.append(pylab.mean(taxList))
        outFile.write(str(taxSum / reps) + "\n")
        taxSEs.append(pylab.std(taxList) / math.sqrt(reps))

    dataFile.close()
    meansFile.close()
    outFile.close()
예제 #8
0
def batchRun(num):
    p['interactiveGraphics'] = False
    dataFile = open('batchRunData.txt', 'w')
    for i in range(0, num):
        print "Doing batch run: ", i
        taxList = []
        s = Sim(p)
        tax = s.run()
        taxList.append(tax)
        print "Social care cost per taxpayer: ", tax
        dataFile.write(str(i) + "\t" + str(tax) + "\n")
    dataFile.close()
예제 #9
0
def run_a_sim(run_id):
    logging.debug('**** Starting run {}'.format(run_id))
    sim = Sim(TRIBUTE_COUNT)
    while not sim.game_over():
        sim.epoch()
    logging.debug('**** Ending run {}'.format(run_id))
    output = {
        'run_id': run_id,
        'tributes': sim.compressed_result(),
        'ticks': sim.ticks
    }
    return output
예제 #10
0
파일: CS533-4.py 프로젝트: sharpau/CS533-4
def part_ii_evaluation():
    random_results_1 = []
    safe_results_1 = []
    range_results_1 = []
    random_results_2 = []
    safe_results_2 = []
    range_results_2 = []

    for i in range(1000):
        print i
        random_results_1.append(
            random_policy(Sim(MDP("parking_mdp_linear_rewards_n_10.txt"))))
        random_results_2.append(
            random_policy(Sim(MDP("parking_mdp_quad_rewards_n_10.txt"))))

        safe_results_1.append(
            safe_policy(Sim(MDP("parking_mdp_linear_rewards_n_10.txt")), 0.5))
        safe_results_2.append(
            safe_policy(Sim(MDP("parking_mdp_quad_rewards_n_10.txt")), 0.5))

        range_results_1.append(
            range_policy(Sim(MDP("parking_mdp_linear_rewards_n_10.txt")), 2,
                         8))
        range_results_2.append(
            range_policy(Sim(MDP("parking_mdp_quad_rewards_n_10.txt")), 2, 6))

    print average(random_results_1)
    print average(safe_results_1)
    print average(range_results_1)
    print average(random_results_2)
    print average(safe_results_2)
    print average(range_results_2)
예제 #11
0
def sensitivityLarge(runtype, input_list, reps):
    taxMeans = []
    taxSEs = []

    p['verboseDebugging'] = False
    p['singleRunGraphs'] = False
    p['interactiveGraphics'] = False

    outFile = open(runtype + ' GEMSA outputs large.txt', 'a')

    for run in xrange(len(input_list[0])):
        print("Running simulation number {}...".format(run))
        print("Number of reps: {}".format(reps))
        sim_list = np.array(input_list)
        print(sim_list)
        p['agingParentsMoveInWithKids'] = sim_list[0, run]
        print(p['agingParentsMoveInWithKids'])
        p['personCareProb'] = sim_list[1, run]
        p['retiredHours'] = sim_list[2, run]
        p['ageOfRetirement'] = sim_list[3, run]
        p['baseDieProb'] = sim_list[4, run]
        p['babyDieProb'] = sim_list[5, run]
        p['personCareProb'] = sim_list[6, run]
        p['maleAgeCareScaling'] = sim_list[7, run]
        p['femaleAgeCareScaling'] = sim_list[8, run]
        p['childHours'] = sim_list[9, run]
        p['homeAdultHours'] = sim_list[10, run]
        p['workingAdultHours'] = sim_list[11, run]
        p['lowCareHandicap'] = sim_list[12, run]
        p['growingPopBirthProb'] = sim_list[13, run]
        p['basicDivorceRate'] = sim_list[14, run]
        p['variableDivorce'] = sim_list[15, run]
        p['basicMaleMarriageProb'] = sim_list[16, run]
        p['basicFemaleMarriageProb'] = sim_list[17, run]
        p['probApartWillMoveTogether'] = sim_list[18, run]
        p['coupleMovesToExistingHousehold'] = sim_list[19, run]
        p['basicProbAdultMoveOut'] = sim_list[20, run]
        p['variableMoveBack'] = sim_list[21, run]
        taxList = []
        taxSum = 0.0
        for i in range(0, reps):
            print i,
            s = Sim(p)
            tax, seed = s.run()
            taxList.append(tax)
            taxSum += tax
            print tax
        taxMeans.append(pylab.mean(taxList))
        outFile.write(str(taxSum / reps) + "\n" + str(seed) + "\n")
        taxSEs.append(pylab.std(taxList) / math.sqrt(reps))

    outFile.close()
예제 #12
0
    def __init__(self):
        self.sim = Sim()

        pygame.init()
        pygame.font.init()
        self.screen = pygame.display.set_mode((G.screenWidth, G.screenHeight))
        pygame.display.set_caption("AntBridgeSim")
        self.clock = pygame.time.Clock()
        self.setupButtons()
        self.drawGrid()
        for button in self.buttons:
            button.draw(self.screen)

        oldpos = self.sim.ant.pos
        oldId = self.sim.antId

        dead = None
        while G.running:
            time.sleep(G.sleep)
            self.eventHandler()
            self.drawBlock(self.sim.ant.pos)
            self.drawJoint(self.sim.ant.pos)
            self.drawBlock(oldpos)
            self.drawJoint(oldpos)
            oldpos = self.sim.ant.pos
            if self.sim.antId != oldId:
                oldId = self.sim.antId
                self.drawGrid()
            self.drawJoints()  #TODO incrementally draw
            pygame.display.flip()

            if not dead:
                try:
                    if not self.sim.step():
                        break
                except Error as e:
                    print e
                    dead = True
                except Success as e:
                    print e
                    dead = True
            else:
                paused = True
                while paused:
                    for event in pygame.event.get():
                        if event.type == pygame.QUIT:
                            paused = False
                            G.running = False
예제 #13
0
def test_sim(do_plot=False):
    mesh = df.BoxMesh(0, 0, 0, 2, 2, 2, 1, 1, 1)
    sim = Sim(mesh, 8.6e5, unit_length=1e-9)
    alpha = 0.1
    sim.alpha = alpha
    sim.set_m((1, 0, 0))

    sim.set_up_solver()

    H0 = 1e5
    sim.add(Zeeman((0, 0, H0)))

    exchange = Exchange(13.0e-12)
    sim.add(exchange)

    dt = 1e-12
    ts = np.linspace(0, 500 * dt, 100)

    precession_coeff = sim.gamma / (1 + alpha**2)
    mz_ref = []

    mz = []
    real_ts = []
    for t in ts:
        sim.run_until(t)
        real_ts.append(sim.t)
        mz_ref.append(np.tanh(precession_coeff * alpha * H0 * sim.t))
        mz.append(sim.m[-1])  # same as m_average for this macrospin problem

    mz = np.array(mz)

    if do_plot:
        ts_ns = np.array(real_ts) * 1e9
        plt.plot(ts_ns, mz, "b.", label="computed")
        plt.plot(ts_ns, mz_ref, "r-", label="analytical")
        plt.xlabel("time (ns)")
        plt.ylabel("mz")
        plt.title("integrating a macrospin")
        plt.legend()
        plt.savefig(os.path.join(MODULE_DIR, "test_sllg.png"))

    print("Deviation = {}, total value={}".format(np.max(np.abs(mz - mz_ref)),
                                                  mz_ref))

    assert np.max(np.abs(mz - mz_ref)) < 8e-7
예제 #14
0
def main():

    # Create first generation
    pool = Pop(size_gen)

    # Step through generations
    for _ in range(num_gen):

        # initialize data histogram for sim visualization
        hist = Data()
        terrain = Terrain(400, 4)

        # create pybox2d dynamic bodies based on individual's gene
        gen = [Biped(pool.population[i].name, pool.population[i].gene)
               for i in range(size_gen)]

        for k, biped in enumerate(gen):

            # specify terrain and biped to race
            race = Sim(terrain, biped)

            if not hist.terrain:
                hist.set_terrain(terrain)

            # run simulation without visualization
            score, bb, time = race.run(1e4)

            # store sim data and fitness evaluation
            pool.population[k].fitness = score
            hist.timelines[biped.name] = race.history.timelines['timeline']

        # resort gene pool
        pool.population = list(
            sorted(pool.population, key=lambda x: x.fitness))

        # visualize top bipeds' simulations
        shown = pool.population[-num_shown:]
        timelines = [s.name for s in shown]
        view.start()
        view.run(hist, timelines, speed=3)

        # evolve gene pool
        pool.evolve()
예제 #15
0
def parse(path):
    with open(path, 'r') as f:
        replay = json.load(f)

    size = replay['mapHeight'] * replay['mapWidth']

    tiles = [const.EMPTY] * size
    for x in replay['mountains']:
        tiles[x] = const.MOUNTAIN

    armies = [0] * size
    for x, n in zip(replay['cities'], replay['cityArmies']):
        armies[x] = n

    for i, x in enumerate(replay['generals']):
        armies[x] = 1
        tiles[x] = i

    sim = Sim(replay['mapWidth'],
              replay['mapHeight'],
              replay['generals'],
              replay['cities'],
              tiles,
              armies)
    num_players = len(replay['generals'])

    turns = max(move['turn'] for move in replay['moves']) + 1 if replay['moves'] else 0
    moves = [{i: (-1, -1, False, False)
             for i in range(num_players)}
             for _ in range(turns)]

    for move in replay['moves']:
        turn = move['turn']
        player = move['index']
        moves[turn][player] = move['start'], move['end'], move['is50'], False

    for afk in replay['afks']:
        player = afk['index']
        turn = afk['turn'] + 50
        if turn < len(moves):
            moves[turn][player][-1] = True

    return sim, moves
예제 #16
0
def retireRun(reps):
    taxMeans = []
    taxSEs = []
    p['verboseDebugging'] = False
    p['singleRunGraphs'] = False
    p['interactiveGraphics'] = False
    dataFile = open('retirementAgeData2.txt', 'w')
    #p['ageingParentList'] = [50, 55, 65, 70, 75, 80]
    for variableCare in p['ageingParentList']:
        p['ageOfRetirement'] = variableCare
        print "Trying retirement age: ", variableCare
        taxList = []
        for i in range(0, reps):
            print i,
            s = Sim(p)
            tax = s.run()
            taxList.append(tax)
            print tax
            dataFile.write(
                str(variableCare) + "\t" + str(i) + "\t" + str(tax) + "\n")
        taxMeans.append(pylab.mean(taxList))
        taxSEs.append(pylab.std(taxList) / math.sqrt(reps))

    dataFile.close()

    indices1 = pylab.arange(len(p['ageingParentList']))

    taxFig = pylab.figure()
    taxBar = taxFig.add_subplot(1, 1, 1)
    taxBar.bar(indices1,
               taxMeans,
               facecolor='red',
               align='center',
               yerr=taxSEs,
               ecolor='black')
    taxBar.set_ylabel('Mean social care cost per taxpayer')
    taxBar.set_xlabel('Age of retirement')
    taxBar.set_xticks(indices1)
    taxBar.set_xticklabels(p['ageingParentList'])
    pylab.savefig('retirementAgeRunSet1.pdf')
    pylab.show()
예제 #17
0
def sensitivityTenParams(runtype, input_list, reps):
    taxMeans = []
    taxSEs = []

    p['verboseDebugging'] = False
    p['singleRunGraphs'] = False
    p['interactiveGraphics'] = False

    outFile = open(runtype + ' GEMSA outputs.txt', 'a')

    for run in xrange(len(input_list[0])):
        print("Running simulation number {}...".format(run))
        print("Number of reps: {}".format(reps))
        sim_list = np.array(input_list)
        print(sim_list)
        p['agingParentsMoveInWithKids'] = sim_list[0, run]
        p['baseCareProb'] = sim_list[1, run]
        p['retiredHours'] = sim_list[2, run]
        p['ageOfRetirement'] = sim_list[3, run]
        p['personCareProb'] = sim_list[4, run]
        p['maleAgeCareScaling'] = sim_list[5, run]
        p['femaleAgeCareScaling'] = sim_list[6, run]
        p['childHours'] = sim_list[7, run]
        p['homeAdultHours'] = sim_list[8, run]
        p['workingAdultHours'] = sim_list[9, run]

        taxList = []
        taxSum = 0.0
        for i in range(0, reps):
            print i,
            s = Sim(p)
            tax, seed = s.run()
            taxList.append(tax)
            taxSum += tax
            print tax
        taxMeans.append(pylab.mean(taxList))
        outFile.write(str(taxSum / reps) + "\t" + str(seed) + "\n")
        taxSEs.append(pylab.std(taxList) / math.sqrt(reps))

    outFile.close()
def solve_w_SharedArray(model, sol_init, Nsteps, dt, Nspm, processes=None):
    try:
        shm_y = SharedArray.create("shm://y", [sol_init.y.shape[0], Nspm],
                                   dtype=float)
        shm_t = SharedArray.create("shm://t", [Nspm], dtype=float)
        shm_i_app = SharedArray.create("shm://i_app", [Nspm], dtype=float)
    except:
        SharedArray.delete("shm://y")
        SharedArray.delete("shm://t")
        SharedArray.delete("shm://i_app")
        shm_y = SharedArray.create("shm://y", [sol_init.y.shape[0], Nspm],
                                   dtype=float)
        shm_t = SharedArray.create("shm://t", [Nspm], dtype=float)
        shm_i_app = SharedArray.create("shm://i_app", [Nspm], dtype=float)

    i_app = 1.0
    for i in range(Nspm):
        shm_y[:, i] = sol_init.y[:, -1]
        shm_t[i] = 0.0
        shm_i_app[i] = i_app * (1 + (i + 1) / Nspm)

    time = 0
    tstep = 0
    end_time = Nsteps * dt
    while time < end_time:
        work = [Sim(model, sol_init, dt, ind, tstep) for ind in range(Nspm)]
        with ProcessPoolExecutor() as ex:
            ex.map(shm_step, work)
            ex.shutdown(wait=True)
        time += dt
        tstep += 1

    y = copy_array(shm_y)
    t = copy_array(shm_t)
    SharedArray.delete("shm://y")
    SharedArray.delete("shm://t")
    SharedArray.delete("shm://i_app")

    return y, t
예제 #19
0
파일: bot.py 프로젝트: HePax/ogame-bot
    def __init__(self, username, password, server):
        self.username = username
        self.password = password
        self.logged_in = False

        self._prepare_logger()
        self._prepare_browser()
        farms = options['farming']['farms']
        self.farm_no = randint(0, len(farms) - 1) if farms else 0

        self.MAIN_URL = 'http://labdcc.fceia.unr.edu.ar/~jgalat/game.php'
        server = server.replace('http://', '')
        if server[-1] == '/':
            server = server[:-1]
        self.MAIN_URL = 'http://' + server + '/game.php'
        self.PAGES = {
            'main': self.MAIN_URL + '?page=overview',
            'buildings': self.MAIN_URL + '?page=buildings',
            'station': self.MAIN_URL + '?page=station',
            'research': self.MAIN_URL + '?page=buildings&mode=research',
            'shipyard': self.MAIN_URL + '?page=buildings&mode=fleet',
            'defense': self.MAIN_URL + '?page=defense',
            'fleet': self.MAIN_URL + '?page=fleet',
            'galaxy': self.MAIN_URL + '?page=galaxy',
            'galaxyCnt': self.MAIN_URL + '?page=galaxyContent',
            'events': self.MAIN_URL + '?page=eventList',
        }
        self.planets = []
        self.moons = []
        self.active_attacks = []

        self.fleet_slots = 0
        self.active_fleets = 0

        self.server_time = self.local_time = datetime.now()
        self.time_diff = 0
        self.emergency_sms_sent = False
        self.transport_manager = TransportManager()
        self.sim = Sim()
예제 #20
0
파일: bot.py 프로젝트: master3553/ogame-bot
    def __init__(self, username=None, password=None, uni='69'):
        self.uni = uni
        self.username = username
        self.password = password
        self.logged_in = False

        self._prepare_logger()
        self._prepare_browser()
        farms = options['farming']['farms']
        self.farm_no = randint(0, len(farms) - 1) if farms else 0

        self.MAIN_URL = 'https://s%s-%s.ogame.gameforge.com/game/index.php' % (
            self.uni, options['credentials']['server'])
        self.PAGES = {
            'main': self.MAIN_URL + '?page=overview',
            'resources': self.MAIN_URL + '?page=resources',
            'station': self.MAIN_URL + '?page=station',
            'research': self.MAIN_URL + '?page=research',
            'shipyard': self.MAIN_URL + '?page=shipyard',
            'defense': self.MAIN_URL + '?page=defense',
            'fleet': self.MAIN_URL + '?page=fleet1',
            'galaxy': self.MAIN_URL + '?page=galaxy',
            'galaxyCnt': self.MAIN_URL + '?page=galaxyContent',
            'events': self.MAIN_URL + '?page=eventList',
            'resSettings': self.MAIN_URL + '?page=resourceSettings',
        }
        self.planets = []
        self.moons = []
        self.active_attacks = []

        self.fleet_slots = 0
        self.active_fleets = 0

        self.server_time = self.local_time = datetime.now()
        self.time_diff = 0
        self.emergency_sms_sent = False
        self.transport_manager = TransportManager()
        self.sim = Sim()
예제 #21
0
    fSeed = int(metaParams['favouriteSeed'])

    if metaParams['multiprocessing'] == False or parametersFromFiles == False:

        for r in range(numRepeats):
            # Create Run folders
            folderRun = folder + '/Rep_' + str(r)
            if not os.path.exists(folderRun):
                os.makedirs(folderRun)
            # Set seed
            seed = fSeed
            if r > 0:
                seed = int(time.time() / (r + 1))
            for i in range(len(scenariosParams)):
                n = OrderedDict(scenariosParams[i])
                s = Sim(i, n, folderRun)
                for j in range(len(policiesParams[i])):
                    p = OrderedDict(policiesParams[i][j])
                    s.run(j, p, seed)  # Add policy paramters later

    else:
        processors = int(metaParams['numberProcessors'])
        if processors > multiprocessing.cpu_count():
            processors = multiprocessing.cpu_count()

        pool = multiprocessing.Pool(processors)
        # Create a list of dictionaries (number repetitions times number of scenarios), adding repeat index for folders' creation
        params = multiprocessParams(scenariosParams, policiesParams,
                                    metaParams['numRepeats'], fSeed, folder, 0)
        pool.map(multiprocessingSim, params)
        pool.close()
예제 #22
0
            # toggle variables
            self._holding = False
            self._last_buy_price = None
            self._last_buy_time = None

    def pnl(self):
        return sum([(x.sell_price - x.buy_price) * x.amount
                    for x in self._txs])

    def transactions(self):
        return self._txs


if __name__ == '__main__':
    fname = './data/eth_usdt_med.csv'
    sim = Sim(fname)
    sim_iters = 50000
    buy_len = 3
    sell_len = 2
    limit = 0.01  # amount to buy
    trader = SimpleTrader(buy_len, sell_len, limit)
    done = False

    for i in range(sim_iters):
        exchange_data, done = sim.step()

        if done:
            break

        trader.act(exchange_data)
예제 #23
0
    p['popY'] = 50
    p['pixelsInPopPyramid'] = 2000
    p['careLevelColour'] = ['blue', 'green', 'yellow', 'orange', 'red']
    p['houseSizeColour'] = ['brown', 'purple', 'yellow']
    p['pixelsPerTown'] = 56
    p['maxTextUpdateList'] = 22

    return p


p = init_params()

#######################################################
## A basic single run

s = Sim(p)
tax = s.run()

##runs for sensitivity analysis using GEM-SA
##taxMeans = []
##taxSEs = []
##
##p['verboseDebugging'] = False
##p['singleRunGraphs'] = False
##p['interactiveGraphics'] = False
##
##dataFile = open('GEMSA data new.txt','a')
##meansFile = open('GEMSA means new.txt', 'a')
##
##agingParentList = [ 0.0, 0.1, 0.2, 0.4 ]
##careProbList = [ 0.0004, 0.0008, 0.0012, 0.0016 ]
예제 #24
0
    def __init__(self, numRuns, output):
        # desired statistics
        antsPerRun = 0
        successfulRuns = 0
        failedRuns = 0
        maxHeightAchieved = 0
        heightPerRun = 0

        success = True

        if output is not None:
            outfile = open(output, "w")
            G.outfile = outfile

        for i in range(numRuns):
            if G.verbose:
                print >> G.outfile, "RUNNING BATCH " + str(i + 1)
            print "RUNNING BATCH " + str(i + 1)
            try:
                self.sim = Sim()
                while G.running:
                    if not self.sim.step():
                        break
                G.running = True

            except Error as e:
                if G.verbose:
                    print e
                success = None
            except Success as s:
                if G.verbose:
                    print s

            # accumulate statistics
            heightPerRun += self.sim.maxHeight + 1
            if self.sim.maxHeight > maxHeightAchieved:
                maxHeightAchieved = self.sim.maxHeight
            if success:
                antsPerRun += self.sim.numAnts
                successfulRuns += 1
            else:
                failedRuns += 1
                success = True

        #sanity check
        if numRuns != successfulRuns + failedRuns:
            raise WeirdError("Runs weren't counted right... weird!")

        # summarize statistics
        statsString = "Ran a batch of " + str(numRuns) \
         + " simulations. "
        if successfulRuns != 0:
            statsString += "\n Average Ants To Complete a Bridge: " \
            + str(float(antsPerRun) / float(successfulRuns))
        statsString += "\n Percentage of Successful Runs: " \
         + str(float(successfulRuns) * 100.0 / float(numRuns)) \
         + "%" \
         + "\n Average Height of Bridges Built: " \
         + str(float(heightPerRun) / float(numRuns)) \
         + "\n Maximum Height of Bridges Built: " \
         + str(maxHeightAchieved + 1)
        print >> G.outfile, statsString
예제 #25
0
        )[0] - 8  # Note: this is 8+payload length. The 8 bytes are the beginning of the UDP packet: source port, dest port, length, and checksum

        # In the SafeUDP section
        safeudp_pre = struct.unpack(
            '!LHH', bytes[42:50]
        )  #sequence (4 bytes => uint), packet type (2 bytes => ushort), safeudp payload length (2 bytes => ushort)
        safeudp_seq = safeudp_pre[0]
        safeudp_packet_type = safeudp_pre[1]
        safeudp_payload_length = safeudp_pre[2]

        return
        return "Dest port: {}, SafeUDP Pre: {}".format(dest_port, safeudp_pre)

    def payload_from_eth2(cls, byte_sequence, length):
        #bytes = b"".join(map(chr, byte_sequence[0:length]))
        return byte_sequence[50:length]


if __name__ == "__main__":

    from sim import Sim

    config = Config()
    config.loadfile("conf/sim_config.yaml")

    sim = Sim(config.sim)

    #print config.sim.networking

    PodComms(sim, config.sim.networking)
예제 #26
0
        names = ('max', 'quad', 'hash')
        for cols, name in zip(all_cols, names):
            R_min_data = find_R_mins(self.R_data, cols)
            the_min_idx = R_min_data['Lowest R'].idxmin()
            minimum_R[name] = tuple(R_min_data[['Lowest R',
                                                'Mode']].iloc[the_min_idx])

        return minimum_R


if __name__ == '__main__':
    import numpy

    #Create a Simulation object composed of a laminate.
    sim = Sim(laminate=Laminate(
        '0_2/p25/0_2s',
        materialID=5,  #5
        core_thick=0.01))
    #Define and apply load
    P = Q_(1000, 'N')
    b = Q_(0.11, 'm')
    L = Q_(0.51, 'm')
    M1 = -P * L / (4 * b)
    N1 = 0.5 * P / b
    M = Q_([M1.magnitude, 0, 0], M1.units)
    N = Q_([N1.magnitude, 0, 0], N1.units)
    #Apply load
    sim.apply_M(M)
    sim.apply_N(N)
    sim.solve()
    fail = FailureAnalysis(sim)
    R_data = fail.make_table()
예제 #27
0
파일: main.py 프로젝트: zigapk/racorodja
    if save_to_file is not None:
        plt.savefig(save_to_file)

    plt.show()


# check for arguments
if len(sys.argv) < 3:
    print('Please provide planet and capsule name.')
    exit(1)
planet_name, capsule_name = sys.argv[1:3]

# init simulation environments
# basic = Sim(planet_name, capsule_name, 80000, ignore_buoyancy=True)
realistic = Sim(planet_name, capsule_name, 80000)

# basic_range = get_angle_range(basic, step=0.01)
realistic_range = get_angle_range(realistic, step=0.01)

# print(range_to_tex_table(basic_range, basic, step=0.2))
# print()
# print(range_to_tex_table(realistic_range, realistic, step=0.2))

# draw scheme
realistic.draw_scheme(4.15, 'planet', save_to_file='4_15_scheme.pdf')
# realistic.plot_height_over_time(5.8, save_to_file='5_8_height.pdf')
# realistic.plot_height_over_x(5.8, save_to_file='5_8_height_over_x.pdf')
# realistic.plot_velocity_over_time(5.8, save_to_file='5_8_velocity.pdf')

# plot range for initial velocities
예제 #28
0
from ibvs import IBVS
from util import rigid_tf
from scipy.spatial.distance import cdist

VOTE_THRESHOLD = 5

CAM_WIDTH = 450  # pixels
CAM_HEIGHT = 450  # pixels
CAM_CLOSEST = 0.1  # meters
CAM_FARTHEST = 8.0  # meters
CONSTELLATION_SIZE = 5  # number of points
X_HASH_SIZE = 15.  # meters
Y_HASH_SIZE = 15.  # meters
Z_HASH_SIZE = 1.  # meters

sim = Sim(headless=True)
finder = FeatureFinder()

# Intel camera configuration:
# ibvs = IBVS(np.array([800, 450]), 1280, 1204, 0.0000014)

# Sim camera configuration:
ibvs = IBVS(
    np.array([CAM_WIDTH / 2., CAM_HEIGHT / 2.]), 543.19, 543.19, 0.001)
start = time.time()
prev_root_pnt = None

# Geometric hashing for constellation
constellation = GeoHasher((X_HASH_SIZE, Y_HASH_SIZE, Z_HASH_SIZE),
                          VOTE_THRESHOLD,
                          CONSTELLATION_SIZE)
예제 #29
0
def main():
    parser = argparse.ArgumentParser(description='Placement')
    parser.add_argument("-c",
                        "--config",
                        help="path to config file",
                        default="")
    parser.add_argument("-i", "--input", help="path to data file", default="")
    parser.add_argument("-d",
                        "--debug",
                        help="debug mode",
                        action="store_const",
                        dest="loglevel",
                        const=logging.DEBUG,
                        default=logging.WARNING)
    parser.add_argument("-p",
                        "--pickle",
                        help="create pickle files",
                        action="store_true",
                        dest="create_pickle")
    parser.add_argument("-v",
                        "--verbose",
                        help="verbose mode",
                        action="store_const",
                        dest="loglevel",
                        const=logging.INFO)

    args = parser.parse_args(sys.argv[1:])
    logging.basicConfig(format='%(asctime)s main: %(message)s',
                        level=args.loglevel)

    config = pandas.read_csv(args.config, sep=',')
    X = pandas.read_csv(args.input, sep=',',
                        header=None).values.astype(np.float64)
    """
    discretize the space into cells
    """
    geo_utils = helpers.GeoUtilities(config['lat_min'].iloc[0],
                                     config['lat_max'].iloc[0],
                                     config['lng_min'].iloc[0],
                                     config['lng_max'].iloc[0],
                                     cell_length_meters)
    geo_utils.set_grids()
    """
    segregate data based on time bins
    """
    train_time_utils = helpers.TimeUtilities(time_bin_width_secs)
    train_time_utils.set_bounds(X)
    logging.info("Loaded %d data points", len(X))

    sim = Sim(X, len(geo_utils.lng_grids), train_time_utils, geo_utils,
              action_dim, time_bins_per_hour)
    """
    starting time-step for training and testing time bins (tb)
    """
    test_tb_starts = [time_bins_per_hour]
    train_tb_starts = [
        time_bins_per_day * 4 + time_bins_per_hour,
        time_bins_per_day * 5 + time_bins_per_hour,
        time_bins_per_day * 6 + time_bins_per_hour
    ]

    train_bins = range(time_bins_per_day * 4 + time_bins_per_hour,
                       time_bins_per_day * 7, time_bins_per_day)

    if args.create_pickle:
        helpers.load_create_pickle(sim, train_time_utils, geo_utils, X,
                                   train_tb_starts, test_tb_starts)

    with open(r"rrs.pickle", "rb") as input_file:
        sim.rrs = cPickle.load(input_file)
        sim.n_reqs = cPickle.load(input_file)
        sim.pre_sim_pickups = cPickle.load(input_file)

    with tf.Session() as sess:
        worker = Worker('worker', sim, 10, train_bins, test_tb_starts,
                        sim.num_cells, sim.n_actions)

        sess.run(tf.global_variables_initializer())
        worker.train(sess)
    """
    model = A2C(sim, 10, 
                train_windows, test_window,
                sim.num_cells,
                sim.n_actions, hidden_units)
    model.train()
    """
    '''
예제 #30
0
t_sim_end = 60  # sec
sampling_rate = 100  # Hz
N = t_sim_end * sampling_rate + 1
time = np.linspace(0, t_sim_end, num=N)
''' Define flight plan as below '''
wpt_list = np.array([20., 0., 20., 800.])
wpt_arr = np.ndarray(shape=(2, 2), dtype=float, buffer=wpt_list)
''' Define simulation components '''
sys = System(phi=phi_init, psi=0, use_jac=True)
env = Env(wind_dir_to=np.deg2rad(120), wind_spd=13)
fpl = FlightPlan(wpt_arr)
ac = Aircraft(fpl)

''
sim = Sim(ac, sys, env, time, verbose=False)
#sim.override_roll(np.deg2rad(40))
sim.run_simulation()

fig1 = plt.figure()
wp = ac.flight_plan.wpt_arr
plt.plot(sim.logs['S_x'][:-2], sim.logs['S_y'][:-2], wp[:, 0], wp[:, 1], 'ro',
         wp[:, 0], wp[:, 1], 'r')
# plt.plot(time[:-2], sim.logs['x'][:-2])
plt.grid()
plt.title("Trajectory")
plt.xlabel("x [m]")
plt.ylabel("y [m]")
ax1 = fig1.gca()
dr.set_1to1_scale(ax1)