This application claims the benefit of European patent application no. EP 09368048.6 filed Dec. 14, 2009, the disclosure of which is incorporated herein by reference in its entirety.
The present invention relates to a method of selecting at least one trip from a plurality of possible trips from an origin location and comprising stops at a plurality of destinations.
Customers of travel companies often wish to plan a trip from an origin airport to a destination airport with a stop-over at one and sometimes more than one intermediate destination airport. Factors such as different fares provided by different carriers, different departure times on a particular day of travel, flexibility of length of stay at an intermediate destination airport, different classes of travel, e.g. economy versus premium economy, and travelling via a connecting airport rather than travelling direct between two airports mean that a large number of options invariably need to be considered. The cost of a trip is usually of primary importance to customers. Hence, presenting a customer with a number of itineraries that meet customer requirements and that are cost efficient typically involves constructing a large number of options and sorting the options as regards cost.
Computer operable methods to analyse and sort simple itineraries, such as between an origin airport and a destination airport, are known. For example, US 2003/084011 describes a method of determining the lowest cost trip between two predetermined locations by minimising distance travelled and minimising time of travel between the two predetermined locations. The lowest cost trip is determined on the basis of the minimisation of distance travelled and time of travel. However, such known computer operable methods are incapable of dealing with more complicated itineraries, which involve, for example, a stop-over at each of two intermediate destination airports such that an itinerary involves three or more legs instead of the simple, two leg itinerary or a request involving an open search that returns bookable options.
The present inventors have appreciated that a computer operable method of analysing and sorting more complicated itineraries is liable to involve identifying a large number of permutations of legs for a particular itinerary or trip or request involving an open search and carrying out a large number of comparisons of identified legs before an organised set of options can be presented to a customer. Such steps of identifying permutations and carrying out comparisons are liable to present a significant if not insupportable computational burden. Indeed it may be impossible to identify all possible permutations, e.g. having regards to available computational resources.
It is therefore an object for the present invention to provide a method of selecting at least one trip from a plurality of possible trips, each of the plurality of possible trips being from an origin location and comprising stops at a plurality of destinations.
It is a further object for the present invention to provide computer apparatus operable to select at least one trip from a plurality of possible trips, each of the plurality of possible trips being from an origin location and comprising stops at a plurality of destinations.
The present invention has been devised in the light of the inventors' appreciation. According to a first aspect of the present invention, there is provided a method of selecting at least one trip from a plurality of possible trips, each of the plurality of possible trips being for travel from an origin location and comprising stops at a plurality of destinations, the method being performed in computer apparatus configured to execute the method and comprising:
determining a fare for each of a plurality of different leg options for each leg, each leg being between one of: the origin location and a destination; and two destinations;
selecting a plurality of candidate leg options for each leg based on comparative amounts of the determined fares, the plurality of candidate leg options being fewer in number than the plurality of different leg options; and
determining at least one trip based on the plurality of candidate leg options for each leg.
In use, the step of selecting a plurality of candidate options reduces the complexity of the step of determining at least one trip compared, for example, with the approach of determining at least one trip based on all the different leg options. Hence, the method of the present invention can provide for a significant reduction in computational burden. The phrase ‘a stop at a destination’ as used herein means a stop at the destination involving a stop over of at least one night. The phrase a stop at a destination is to be distinguished from a stop at a connecting location involving onwards travel to an intermediate or final destination. A connecting location may, for example, be a connection made at an airport during a leg between an origin airport and a destination airport. Where the plurality of destinations consists of two destinations neither destination is the same as the origin location.
More specifically, the plurality of destinations may comprise at least one intermediate destination and a final destination. Hence, each of the plurality of possible trips may be for travel between the origin location and a final destination and comprise stops at a plurality of intermediate destinations.
Alternatively or in addition, the plurality of destinations may comprise a plurality of intermediate destinations and a final destination. More specifically, the final destination may be the same as the origin location. Thus, the selected at least one trip may be a round trip.
Alternatively or in addition, the step of determining a fare for each of a plurality of different leg options may comprise determining a fare for each of different leg options between the origin location and each of the plurality of destinations and between different pairs of destinations. For example, travelling from a first destination to a second destination and travelling from a second destination to a first destination.
Alternatively or in addition, the selected plurality of candidate leg options for each leg may be the least expensive of the different leg options. In a form, a predetermined number of candidate leg options, such as seventy-five candidate leg options, may be selected from the different leg options for each leg. Thus, the method may, for example, be used to determine a set number of least expensive trips amongst all possible trips.
Alternatively or in addition, the steps of determining a fare and selecting a plurality of leg options may be executed at a same time. Thus, candidate leg options may be selected as fares for different leg options are being determined. For example, a fare for an indirect flight between two destinations may be compared with already selected candidate leg options and the fare for the indirect flight being included with the candidate leg options depending on the comparative cost.
Alternatively or in addition, the step of determining a fare for each of different leg options between different destinations may be executed in dependence on identities of the origin location and a final destination. A smaller number of different leg options may need to be considered depending on the identities of the origin location and a final destination.
Alternatively or in addition, the step of determining at least one trip may comprise determining a plurality of trips based on the plurality of candidate leg options for each leg.
More specifically, a plurality of candidate trips may be selected from the determined plurality of trips, the plurality of candidate trips being smaller in number than the determined plurality of trips. A predetermined number, such as two hundred candidate trips, may be selected.
More specifically, the steps of determining a plurality of trips and selecting a plurality of candidate trips may be executed at a same time. Thus, candidate trips may be selected as trips based on candidate leg options are determined.
Alternatively or in addition, the method may comprise operating on at least one heap data structure. The at least one heap data structure may contain a plurality of fares for a particular leg. Thus, there may be a plurality of heap data structures, each heap data structure containing a plurality of fares for a different leg. The at least one heap data structure may contain a plurality of trips determined from the plurality of candidate legs. Thus, there may be a plurality of heap data structures, each heap data structure containing a plurality of fares for a different leg and a further heap data structure containing a plurality of trips determined from the plurality of candidate legs.
Alternatively or in addition, the step of determining at least one trip may comprise constructing the at least one trip by a recursive operation. More specifically, the recursive operation may operate on a heap data structure.
Alternatively or in addition, the method may further comprise receiving, e.g. from a customer, length of stay data relating to a predetermined length of stay at least one of the destinations. More specifically, the length of stay data may relate to a predetermined minimum length of stay.
Alternatively or in addition, the method may further comprise receiving, e.g. from a customer, identification data identifying the origin location and each of the destinations. Thus, the computer apparatus may be operative to fetch data from a data store in dependence on the received identification data. Data may be fetched from the data store only when the data needs to be evaluated, e.g. when comparing fares for different leg options. Thus, the computational burden may be reduced by means of such more efficient data handling. Data fetched from the data store may be stored in an intermediate data store, e.g. memory associated with a central processor, for subsequent processing. This is because data for a particular leg option may, for example, be evaluated several times. Data for a particular leg option may be evaluated several times because particular circumstances change, e.g. a fare for the leg option may differ on different days of travel.
More specifically, the method may further comprise receiving data specifying a predetermined order of travel to destinations. Hence, the step of selecting a plurality of candidate legs may be executed in dependence on the data specifying the predetermined order of destinations. Therefore, the number of the plurality of candidate leg options may be reduced in dependence on data specifying the predetermined order of destinations.
Alternatively or in addition, the method may further comprise receiving, e.g. from a customer, data identifying a first set of destinations, e.g. all European cities, and a predetermined number of destinations, e.g. three destinations, the predetermined number being smaller than the number of destinations in the first set. Thus, the plurality of candidate leg options may be selected in dependence on the data identifying the first set of destinations and the predetermined number. Hence, the method may be operable on the basis of a request involving an open search.
Alternatively or in addition, the steps of determining a fare, selecting a plurality of candidate leg options and determining at least one trip may be executed by a processor of the computer apparatus.
Alternatively or in addition, the step of determining a fare may comprise fetching data from data storage, e.g. from a fare database stored in data storage.
Alternatively or in addition, data formed during execution of at least one step of the method may be stored in computer memory forming part of the computer apparatus.
Alternatively or in addition, the step of selecting a plurality of candidate leg options may comprise determining whether or not a candidate leg option is bookable, e.g. available to purchase. If a candidate leg option is not bookable, the candidate leg option may not be selected.
In a preferred form, each of the origin location and the destinations may be airports.
According to a second aspect of the present invention, there is provided a computer program, which is at least one of embodied on a computer readable storage medium and carried on an electrical carrier signal, the computer program comprising computer executable code for causing computer apparatus to operate according to the first aspect of the present invention.
The computer readable storage medium may comprise at least one of a record medium, computer memory and read-only memory.
Further embodiments of the second aspect of the present invention may comprise one or more features of the first aspect of the present invention.
According to a third aspect of the present invention, there is provided computer apparatus operable to select at least one trip from a plurality of possible trips, each of the plurality of possible trips being for travel from an origin location and comprising stops at a plurality of destinations, the computer apparatus being configured to:
determine a fare for each of a plurality of different leg options for each leg, each leg being between a different one of the origin location and a destination and another of the origin location and a destination;
select a plurality of candidate leg options for each leg based on comparative amounts of the determined fares, the plurality of candidate leg options being fewer in number than the plurality of different leg options; and
determine at least one trip based on the plurality of candidate leg options for each leg.
More specifically, the computer apparatus may comprise an output device that is operative to output the determined at least one trip, e.g. to a user of the computer apparatus.
Alternatively or in addition, the computer apparatus may comprise an input device that is operable, e.g. by a user of the apparatus, to input data relating to the origin location and the destinations.
Further embodiments of the third aspect of the present invention may comprise one or more features of any previous aspect of the present invention.
According to a fourth aspect of the present invention, there is provided a distributed client-server architecture comprising computer apparatus according to the third aspect of the present invention.
The present invention will now be described by way of example only with reference to the following drawings, of which:
The block diagram 10 of
Operation in general terms of the main functional components of
The construction of the optimised selection of possible trips will now be described with reference to
The method of the present invention finds application in several different ways. For example, the method can be used to determine the lowest cost options for a trip from an origin airport to several specified destinations that may be visited in any order with a limit being placed on the length of stay at each destination, e.g. two nights at each destination. Alternatively, the method can be used to determine the lowest cost options for a trip from an origin airport to a specified number of cities the cities being any ones from a list of possible cities, such as any two cities from all European capital cities. Alternatively, the method can be used to present alternatives to a specified itinerary. For example, for a specified itinerary of New York to London to Paris to New York with a four day stay in London and a three day stay in Paris, the method could be used to present less expensive options for different lengths of stay at the London and Paris intermediate destinations.
Number | Date | Country | Kind |
---|---|---|---|
09368048.6 | Dec 2009 | EP | regional |