Example #1
0
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
Example #2
0
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
Example #3
0
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
Example #4
0
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