HKU-Smart-Mobility-Lab / Transportation_Simulator

MIT License
29 stars 9 forks source link

所有的司机都会处于status = 3 的状态 #38

Open GuangwenSi opened 3 days ago

GuangwenSi commented 3 days ago

我学习了之前同学设置config文件~ 't_initial' :14400, # These two parameters mark the start and end of the simulation. Unit:second. 14400 denotes 4am. 't_end' : 25200, # 7am.

拿到模拟使用的数据后,发现司机的start_time :0,end_time:79200 ,在sample_all_drivers()这个函数中 sampled_driver_info['status'] = 3 loc_con = (sampled_driver_info['start_time'] >= t_initial) & (sampled_driver_info['start_time'] <= t_end) sampled_driver_info.loc[loc_con, 'status'] = 0 这样判断完之后所有的司机都会处于status = 3 的状态,应该如何处理这个问题~ 感谢

GuangwenSi commented 3 days ago

这个问题的话 我暂时就调整了开始时间,但是遇到了另一个问题,大概是这样的 `self.wait_requests (2, 27) num_idle_driver 500

price and pickup time moudle which used to judge whether cancel the order-driver pair

        # matched_itinerary_df['pickup_time'].values
        con_passenge_keep_wait = df_matched['maximum_pickup_time_passenger_can_tolerate'].values > \
                                                    matched_itinerary_df['pickup_time'].values

ValueError: operands could not be broadcast together with shapes (2,) (0,) `

GuangwenSi commented 1 day ago

if self.track_recording_flag: for j, index in enumerate(cor_driver[con_remain]): driver_id = self.driver_table.loc[index, 'driver_id'] node_id_list = self.driver_table.loc[index, 'itinerary_node_list'] # 节点信息 lng_array, lat_array, grid_id_array = self.RN.get_information_for_nodes(node_id_list) # 获取节点的细节 eda = np.cumsum(self.driver_table.loc[index, 'itinerary_segment_dis_list']) # 距离求和 print('eda',eda) # 接驾距离打印 time_array = eda / self.vehicle_speed * 3600 # 接驾时长 S time_array = np.concatenate([np.array([self.time]), self.time + time_array]) # 当前时间, 当前拼接总时长 delivery_time = len(new_matched_requests['itinerary_node_list'].values.tolist()[j]) # 送达时间 包含接到乘客然后送达到目的地 pickup_time = len(time_array) - delivery_time
在simulator_env.py 中关于时间结算这里有一些疑问点,会拿list的长度去和时间进行加减类的操作,没有理解

GuangwenSi commented 1 day ago

1728713519079