예제 #1
0
    def __init__(self):
        mod = Read_GAP_data()
        self.g_number_of_agents, self.g_number_of_jobs, self.agent_list, self.job_list = mod.read_data(
        )
        self.g_iteration_times = 200
        self.big_M = 500
        #DP
        self.g_machine_state_vector_list = [
            [] for i in range(self.g_number_of_agents)
        ]
        self.g_ending_state_vector_list_LR = [
            None
        ] * self.g_number_of_agents  #Flag=1
        self.g_ending_state_vector_list_ALR = [
            None
        ] * self.g_number_of_agents  #Flag=2

        self.rpo = 5  #penalty parameter
        #results
        self.assignment_record = []  #the assignment matrix in each iteration
        self.serving_times = []  # record serving times of each job
        self.repeat_served = []  #repeat served in each iteration
        self.un_served = []  #unserved in each iteration
        self.record_multiplier = []  #multipliers in each iteration
        #LB,UB
        self.max_label_cost = float("inf")
        self.ADMM_local_LB = [0] * self.g_iteration_times
        self.ADMM_local_UB = [0] * self.g_iteration_times
        self.ADMM_global_LB = [-self.max_label_cost] * self.g_iteration_times
        self.ADMM_global_UB = [self.max_label_cost] * self.g_iteration_times