def __update_driver_parameters()

in Vehicle Routing Problem/src/vrp_environment.py [0:0]


    def __update_driver_parameters(self, action_type, translated_action, relevant_order_index):
        if action_type == 'wait':
            pass  # no action

        elif action_type == 'accept':
            # if order accept it
            if self.o_status[relevant_order_index] == 1:
                self.o_status[relevant_order_index] = 2
                self.reward += self.reward_per_order[relevant_order_index] / 3  # Give some reward for accepting

        elif action_type == 'pickup':
            self.__update_dr_xy(translated_action)
            rix = self.o_res_map[relevant_order_index]
            if [self.dr_x, self.dr_y] == [self.res_x[rix], self.res_y[rix]]:
                if self.o_status[relevant_order_index] == 2:
                    self.o_status[relevant_order_index] = 3
                    self.dr_used_capacity += 1
                    self.reward += self.reward_per_order[relevant_order_index] / 3  # Give some reward for pickup

        elif action_type == 'deliver':
            self.__update_dr_xy(translated_action)
            # Check for deliveries
            for o in range(self.n_orders):
                # If order is picked up by driver and driver is at delivery location, deliver the order
                if self.o_status[o] == 3 and (self.dr_x == self.o_x[o] and self.dr_y == self.o_y[o]):
                    if self.o_time[o] <= self.order_promise:
                        self.reward += self.reward_per_order[o] / 3  # Rest of the reward was given in accept and pickup
                    self.dr_used_capacity -= 1
                    self.__reset_order(o)
        elif action_type == 'return':
            self.__update_dr_xy(translated_action)

        else:
            raise Exception(
                'Misaligned action space and driver update function: {}, {}, {}'.format(action_type, translated_action,
                                                                                        relevant_order_index))