self.epsilon *= self.epsilon_decay def load(self, name): self.model.load_weights(name) def save(self, name): self.model.save_weights(name) if __name__ == "__main__": env = TMSimEnv() partition_list = {} # for i in range(3): # partition_list[i]=Partition(i, 0.2*(i+1)) g = Generation() partition_list =g.generate_partitions(20) print 'Number of partitions:'+str(len(partition_list)) env.make(partition_list, 0.6) state_size = env.get_state_size() action_size = env.get_action_size() agent = DQNAgent(state_size, action_size) # agent.load("./save/cartpole-dqn.h5") done = False batch_size = 32 wFile = open('Result_Diff_Task.txt','w') for e in range(EPISODES): state = env.reset() r = 0
policies = ["best_fit", "first_fit", "worst_fit", "almost_worst_fit"] # , #policies = ["worst_fit"] schedulability = [] total_jobs = [] failed_jobs = [] ratio = [] g = Generation() #initialize counters for i in range(len(policies)): schedulability.append(0) total_jobs.append(0) failed_jobs.append(0) ratio.append(0) for i in range(repeat_times): partition_list = g.generate_partitions(sum_af) largest_aaf = max(partition_list, key=lambda x: x.af).af sum_aaf = 0 for p in partition_list: sum_aaf += p.aaf print(sum_aaf) task_list = g.generate_tasks(load_ratio * sum_aaf, False, 0.5, 0, largest_aaf) for j in range(len(policies)): temp_partition_list = copy.deepcopy(partition_list) temp_task_list = copy.deepcopy(task_list) temp_fail, temp_total = run_test(temp_partition_list, temp_task_list, pcpu_num, simulation_time, policies[j]) while temp_fail is None or temp_total is None: #print("not schedulable")