def make_itinerary(start_lat, start_lng, start_time, end_lat, end_lng, end_time): itinerary = [] current_time = start_time lat, lng = start_lat, start_lng activities = algorithms2.pollHereAttractions(lat, lng) distance_scaling = algorithms2.pollHereTravelTime(start_lat, start_lng, end_lat, end_lng) # Main loop while (end_time - current_time) > time_to_end(lat, lng, end_lat, end_lng) and len(activities) > 0: best_score = -100 # set to lowest score best_activity = "null" travel_time = algorithms2.pollHereTravelTime(lat, lng, end_lat, end_lng) for activity in activities: #print (activity.name, travel_time, best_activity) if end_time - current_time > travel_time + activity.duration(): current_score = activity.value(itinerary) if current_score > best_score: best_score = current_score best_activity = activity if best_activity == "null": break current_time = add_transportation(itinerary, current_time, lat, lng, best_activity.lat, best_activity.lng) itinerary.append(best_activity) #print itinerary activities.remove(best_activity) current_time += best_activity.duration() lat,lng = best_activity.lat, best_activity.lng add_transportation(itinerary, current_time, lat, lng, end_lat, end_lng) return itinerary
def make_itinerary_subset(start_lat, start_lng, start_time, end_lat, end_lng, end_time, num_activities, num_subsets): itinerary = [] candidates = [] ordered_candidates = {} # key: ordered candidate itinerary; value: total modified score activities = algorithms2.pollHereAttractions((start_lat + end_lat)/2, (start_lng + end_lng)/2) # Query activities from the midpoint sorted(activities, key = lambda activity: activity.base_score) # Sort activities by score candidates = choose_candidate_subsets(activities, num_activities, num_subsets) # Find best subset by computing traveling time for candidate in candidates: # candidate is an array of activities dict_tuple = order_candidates(candidate) ordered_candidates[dict_tuple[0]] = dict_tuple[1] itinerary = max(ordered_candidates.iteritems(), key=operator.itemgetter(1))[0] return itinerary
def make_itinerary(start_lat, start_lng, start_time, end_lat, end_lng, end_time): itinerary = [] current_time = start_time lat, lng = start_lat, start_lng activities = algorithms2.pollHereAttractions(lat, lng) distance_scaling = algorithms2.pollHereTravelTime(start_lat, start_lng, end_lat, end_lng) # Main loop while (end_time - current_time) > time_to_end( lat, lng, end_lat, end_lng) and len(activities) > 0: best_score = -100 # set to lowest score best_activity = "null" travel_time = algorithms2.pollHereTravelTime(lat, lng, end_lat, end_lng) for activity in activities: #print (activity.name, travel_time, best_activity) if end_time - current_time > travel_time + activity.duration(): current_score = activity.value(itinerary) if current_score > best_score: best_score = current_score best_activity = activity if best_activity == "null": break current_time = add_transportation(itinerary, current_time, lat, lng, best_activity.lat, best_activity.lng) itinerary.append(best_activity) #print itinerary activities.remove(best_activity) current_time += best_activity.duration() lat, lng = best_activity.lat, best_activity.lng add_transportation(itinerary, current_time, lat, lng, end_lat, end_lng) return itinerary
def make_itinerary_subset(start_lat, start_lng, start_time, end_lat, end_lng, end_time, num_activities, num_subsets): itinerary = [] candidates = [] ordered_candidates = { } # key: ordered candidate itinerary; value: total modified score activities = algorithms2.pollHereAttractions( (start_lat + end_lat) / 2, (start_lng + end_lng) / 2) # Query activities from the midpoint sorted( activities, key=lambda activity: activity.base_score) # Sort activities by score candidates = choose_candidate_subsets(activities, num_activities, num_subsets) # Find best subset by computing traveling time for candidate in candidates: # candidate is an array of activities dict_tuple = order_candidates(candidate) ordered_candidates[dict_tuple[0]] = dict_tuple[1] itinerary = max(ordered_candidates.iteritems(), key=operator.itemgetter(1))[0] return itinerary