Patent ID: 8818715

Claim:
A method comprising: receiving, using a computing device, from a user device, a request for a travel itinerary, the request comprising a starting location and an ending location within a geographic area and a time constraint; retrieving, using the computing device, a travel graph for the geographic area, the travel graph comprising a plurality of nodes, each respective node corresponding to a respective one point-of-interest of a plurality of points of interest, where each respective node of the plurality of nodes is associated with respective node level data comprising a respective location, a plurality of travel times between the respective node and at least a subset of the plurality of nodes, a respective popularity score for the node, a respective number of users visiting the node and a respective average time spent by users at the respective node; calculating, using the computing device, respective prize score for each node of the plurality of nodes; selecting, using the computing device, a first node of the plurality of nodes that is nearest to the starting location; selecting, using the computing device, a second node of the plurality of nodes that is nearest to the ending location; determining, using the computing device, a travel itinerary using the travel graph and the respective prize scores for each of the plurality of nodes, such that the travel itinerary comprises the first node of the plurality of nodes, the second node of the plurality of nodes and a plurality of additional nodes selected from the plurality of nodes, where the plurality of additional nodes are selected from the plurality of nodes such that a total prize score for the plurality of additional nodes is maximized within the time constraint; and communicating, using the computing device, a representation of the travel itinerary to the user device.