[go: up one dir, main page]

US20090006278A1 - Technique for Producing Constructed Fares - Google Patents

Technique for Producing Constructed Fares Download PDF

Info

Publication number
US20090006278A1
US20090006278A1 US12/207,572 US20757208A US2009006278A1 US 20090006278 A1 US20090006278 A1 US 20090006278A1 US 20757208 A US20757208 A US 20757208A US 2009006278 A1 US2009006278 A1 US 2009006278A1
Authority
US
United States
Prior art keywords
cities
gateway
constructed
fares
fare
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12/207,572
Inventor
David M. Baggett
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
ITA Software LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ITA Software LLC filed Critical ITA Software LLC
Priority to US12/207,572 priority Critical patent/US20090006278A1/en
Publication of US20090006278A1 publication Critical patent/US20090006278A1/en
Assigned to ITA SOFTWARE, INC. reassignment ITA SOFTWARE, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BAGGETT, DAVID M.
Assigned to ITA SOFTWARE LLC reassignment ITA SOFTWARE LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: ITA SOFTWARE, INC.
Assigned to GOOGLE INC. reassignment GOOGLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ITA SOFTWARE LLC
Assigned to GOOGLE LLC reassignment GOOGLE LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: GOOGLE INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • G06Q10/025Coordination of plural reservations, e.g. plural trip segments, transportation combined with accommodation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0283Price estimation or determination

Definitions

  • This invention relates to a process for producing constructed fares.
  • Airlines publish fares for various markets.
  • a market is a city pair such as NYC-PAR (New York-Paris).
  • NYC-PAR New York-Paris
  • airlines provide published fares, that is, stated prices for travel between the two cities.
  • the airlines rely on a process called fare construction to produce fares that are sometimes called “constructed fares.”
  • Fare construction is particularly used for minor markets involving international travel.
  • Constructed fares can be either two-component constructed fares, i.e., one arbitrary combined with one published fare or three-component constructed fares, i.e., two arbitraries combined with one published fare. Examples of two-component constructed fares include
  • two-component constructed fares provide prices between a minor city and a major city
  • three-component constructed fares provide prices between two minor cities.
  • ATPCO Airline Tariff Publishing Company
  • a method of producing constructed fares that includes an arbitrary added to a published fare is provided.
  • the method is executed in a computer system and the method includes determining interior cities that appear with gateway cities in arbitraries for the airline, searching for gateway cities corresponding to the determined interior cities appearing in the arbitraries and applying an arbitrary corresponding to one of the interior cities to a published fare involving one of the gateway cities to produce the constructed fare.
  • a method of producing a set of constructed international fares for an airline is executed in a computer system and includes determining interior cities that appear with gateway cities in arbitraries for the airline, searching for gateway cities corresponding to the determined interior cities appearing in the arbitraries and applying each arbitrary corresponding to each of the determined interior cities to published fares involving the gateway cities to produce the set of constructed fares.
  • a computer program product resides on a computer readable medium for producing constructed fares that includes an arbitrary added to a published fare.
  • the computer program product includes instructions for causing a computer system to determine interior cities that appear with gateway cities in arbitraries for the airline, search for gateway cities corresponding to the determined interior cities appearing in the arbitraries and apply an arbitrary corresponding to one of the interior cities to a published fare involving one of the gateway cities to produce the constructed fare.
  • a computer program product for producing a set of constructed international fares for an airline resides on a computer readable medium and includes instructions that cause a computer to determine interior cities that appear with gateway cities in arbitraries for the airline, search for gateway cities corresponding to the determined interior cities appearing in the arbitraries and apply each arbitrary corresponding to each of the determined interior cities to published fares involving the gateway cities to produce the set of constructed fares.
  • a computer system includes a processor and a memory for storing instructions executed by the processor.
  • the system also includes a storage medium storing a computer program product for producing a set of constructed international fares for an airline.
  • the computer program product includes instructions that cause the processor to determine interior cities that appear with gateway cities in arbitraries for the airline, and search for gateway cities corresponding to the determined interior cities appearing in the arbitraries.
  • the program also includes instructions that cause the processor to apply each arbitrary corresponding to each of the determined interior cities to published fares involving the gateway cities to produce the set of constructed fares.
  • the fare construction process produces “constructed fares” in a computational efficient manner.
  • the fare construction process dynamically produces constructed fares. That is, because of the efficiency of the algorithm the fare construction process can produce constructed fares on an “as needed basis”, using the most current information such as currency conversion factors, prices, fares, and fare construction tables.
  • the fare construction process produces two and three component constructed fares.
  • the fare construction process produces the fares efficiently, since although the process is quadruple-nested, branching factors at each loop level are generally small, because there are relatively few gateway cities for a given interior city.
  • FIG. 1 is a block diagram of a computer system having a fare construction process to produce constructed fares.
  • FIG. 2A-2D are block diagrams showing use of hash tables used to store data for use by the fare construction process.
  • FIG. 3A-3B are flow charts showing a fare construction process used in the system of FIG. 1 to produce two component constructed fares.
  • FIG. 4A-4C are flow charts showing a fare construction process used in the system of FIG. 1 to produce two and three component constructed fares.
  • FIG. 5 is a flow chart showing use of a memorization process for rule retrieval.
  • a computer system 10 includes a CPU 12 , main memory 14 and persistent storage device 16 all coupled via a computer bus 18 .
  • the system 10 also includes output devices such as a display 20 and a printer 22 (not shown), as well as user input devices such as a keyboard 24 and a mouse 26 .
  • output devices such as a display 20 and a printer 22 (not shown)
  • user input devices such as a keyboard 24 and a mouse 26 .
  • software drivers and hardware interfaces to couple all the aforementioned elements to the CPU 12 .
  • the computer system 10 also includes a fare construction process 40 that produces constructed fares generally between international origins and destinations of travel.
  • the fare construction process 40 may reside on the computer system 10 or may reside on a server, not shown, in a conventional manner such as in a client-server arrangement.
  • the fare construction process 40 can be used as part of a travel planning system.
  • the fare construction process 40 can access a database 20 a .
  • the database 20 a can store the Airline Tariff Publishing Company database of published airline fares and construction tables.
  • the database 20 a can be stored locally and updated periodically by accessing a remote resource (not shown) that maintains the database.
  • One approach to produce a large number of constructed fares can generate a list, and generally a complete list, of all possible constructed fares. This process could be based on an algorithm that forms all legal combinations of all arbitraries with all published fares and stores them in a table of fares. One way of doing this would use an algorithm that loops for each airline for each of four cities as shown below.
  • loop for each airline a, loop: for each city, c1 loop: for each city, c2 loop: for each city, c3, try to construct fares for airline a, c1-c2-c3 loop: for each city, c4, try to construct fares for airline a, c1-c2-c3-c4
  • the first hash table 37 a is constructed 32 such that when the fare construction process accesses the table by an (airline, interior-city) pair the hash table 37 a returns in constant time, the list 38 a of gateway cities ⁇ C 2 ⁇ for which an airline “A” has arbitraries that specify the interior city C 1 .
  • the second hash table 37 b is constructed such that when the fare construction process accesses the second hash table 37 b by an (airline, gateway) pair the table returns the list 38 b of gateway cities ⁇ C 3 ⁇ that the airline “A” publishes fares from the specified gateway C 2 to another gateway city C 3 .
  • the third hash table 37 c is constructed 36 such that when the fare construction process accesses the table by an (airline-gateway pair) the hash table 37 c returns, the list 38 c of interior cities ⁇ C 4 ⁇ for which an airline “A” has arbitraries that specify the gateway city C 3 .
  • These hash tables are used by the fare construction process 40 ( FIGS. 3A-3B ) or 40 ′ ( FIGS. 4A-4C ), as described below.
  • the first hash table 37 a is produced 32 by iterating over all arbitraries. For each arbitrary A, a hash table entry H for the arbitrary A's interior city is located (or produced, if it does not exist). The arbitrary A's gateway city is added to a hash table entry H gateway city list. A gateway city entry in the gateway city list indicates that it is possible to use an arbitrary to get from A's interior to A's gateway city. Once all arbitraries have been processed this way, duplicates are removed from all the lists of interior-cities.
  • the second hash table 37 b is produced 34 in a similar manner. The difference is that the process to produce 34 the second hash table iterates over the set of all international published fares rather than the set of all arbitraries.
  • the third hash table 37 c is produced 36 by iterating over all arbitraries. For each arbitrary A, a hash table entry H for the arbitrary A's gateway city is located (or produced, if it does not exist). The arbitrary A's interior city is added to a hash table entry H interior city list. An interior city entry in the interior city list indicates that it is possible to use an arbitrary to get from A's gateway to A's interior city. Once all arbitraries have been processed this way, duplicates are removed from all the lists of interior-cities.
  • the process that produces the hash tables can run in a time that is proportional to the number of arbitraries for the first table 37 a and third table 37 c or the number of fares for second table 37 b .
  • the hash tables 37 a , 37 b , 37 c have been produced, they only need to be modified during the fare construction process if there is a change (i.e., addition or removal) in arbitraries or gateway cities.
  • the hash table production process is a small, one-time fixed cost.
  • FIGS. 3A-3B a fare construction process 40 that produces “constructed fares” in a computational efficient manner is shown.
  • the fare construction process 40 produces two component constructed fares for the airlines.
  • a process to produce two and three component constructed fares is described in conjunction with FIGS. 4A-4C .
  • This fare construction process 40 makes the computation process more efficient since it takes into consideration that very few cities are actually part of arbitraries. In other words, the complete set of arbitraries on all carriers only covers a small portion of the total set of cities. One key to rapidly enumerating constructed fares, therefore, is to start only with interior cities known to appear in some arbitraries. In addition, this algorithm also takes into consideration that there is no need to consider all cities in the world for the gateway cites. Rather, it is only necessary to consider those cities as gateways if the city is involved in some arbitrary whose interior city is the city currently being examined in the process.
  • loop for each airline a, loop: for each city, c1, the interior city in some arbitrary for airline a, loop: for each city, c2, for which some arbitrary c1-c2 exists for airline a, loop: for each city, c3, for which some published fare c2-c3 exists for airline a, try to construct fares for airline a, c1-c2-c3
  • the fare construction process 40 determines 42 constructed fares for each airline “A.”
  • the fare construction process 40 only considers fares from the same airline since international fare combining rules generally prohibit combining fares from different airlines. In general, currently the airline codes must be an exact match. However, if the rules were to change to allow affiliates or airlines that have the same corporate parent to be used to construct fares, the process could be modified to take this into consideration.
  • the hash table could include the affiliates or other airline in the hash tables and return them in the lists when accessed by the system.
  • the fare construction process 40 eliminates many impossible combinations. That is, if the fare construction process 40 is producing constructed fares for a given airline it does not matter if fares can be constructed with other airlines. This recognition significantly limits the number of usable gateways for any given airline and significantly speeds up the process.
  • the fare construction process 40 retrieves 44 an interior city from a list of interior cities “C 1 ” that are part of an arbitrary for the airline “A.”
  • the fare construction process 40 retrieves 44 a city C 2 from the list 38 a (via an access to the first hash table 37 a ) of all of the cities “C 2 ” that form arbitraries C 1 -C 2 for city “C 1 ” for airline “A.”
  • the constructed fares process 30 retrieves from the list 38 b (via an access to the second hash table 38 a ) a city “C 3 ” that forms a published fare with city “C 2 ” for airline “A.”
  • the fare construction process 40 tries 50 to produce a constructed fare for the C 1 -C 2 -C 3 city combinations.
  • This embodiment of the fare construction process 40 produces the two-component constructed fares, i.e., one arbitrary combined with one published fare.
  • the fare construction process 40 will determine 52 if the C 1 -C 2 -C 3 constructed fare is valid. If it is valid it is stored 54 or otherwise noted, and then a pointer (not shown) is incremented to get the next C 3 city. If there are more C 3 cities, the fare construction process will retrieve the next gateway city C 3 for which a published fare exists with C 2 that is all of the cities that form a published fare with gateway city C 2 and the fare construction process will continue. If all cities C 3 have been tested, it will then retrieve the next C 2 city by incrementing another pointer (not shown) to get the next C 2 city. If there are more C 2 cities, the fare construction process 40 will retrieve the next gateway city C 2 for which an arbitrary exists with city C 1 and the fare construction process 40 will continue.
  • a fare construction process 40 ′ to construct two and three-component constructed fares, i.e., two arbitraries combined with one published fare is shown.
  • the fare construction process 40 ′ is similar to the process 40 up to when the fare construction process tries 50 to construct a two-component constructed fare.
  • the fare construction process 40 ′ retrieves 51 a a second interior city C 4 from a list of interior cities “C 4 ” that are part of an arbitrary that exists for city C 3 for the airline “A.”
  • the fare construction process 40 retrieves 44 a city C 4 from the list 38 c (via an access to the third hash table 37 c ) of all of the cities “C 4 ” that form arbitraries C 3 -C 4 for gateway city “C 3 ” for airline “A.”
  • the fare construction process 40 ′ tries 51 b to produce a constructed fare for the C 1 -C 2 -C 3 -C 4 city combinations.
  • the fare construction process 40 will determine 51 c if the C 1 -C 2 -C 3 -C 4 constructed fare is valid.
  • Pseudocode for the fare construction process 401 is:
  • loop for each airline a, loop: for each city, c1, the interior city in some arbitrary for airline a, loop: for each city, c2, for which some arbitrary c1-c2 exists for airline a, loop: for each city, c3, for which some published fare c2-c3 exists for airline a, try to construct fares for airline a, c1-c2-c3 loop: for each city, c4, for which some arbitrary c3-c4 exists for airline a, try to construct fares for airline a, c1-c2-c3-c4
  • the fare construction process 40 or 40 ′ produces these fares dynamically. That is, because of the efficiency of the algorithm the fare construction process 40 or 40 ′ can produce constructed fares on an as needed basis using the most current information such as currency conversion factors, prices, fares, and construction tables.
  • a valid constructed, international fare can have either one or two arbitraries.
  • Current ATPCO rules permit one arbitrary and one base fare or two arbitraries and a base fare.
  • the ATPCO rules do not permit more than two arbitraries.
  • the fare construction process 40 finds those interior cities that, for a given airline, are part of an arbitrary. For those interior cities, the fare construction process 40 uses as potential gateways those cities for which it is a gateway city in some arbitrary with those interior cities, rather than using every possible airport as a gateway. With the selected lists of potential gateways and arbitraries, the fare construction process 40 tries to form a constructed fare. This fare construction process 40 involves forming a cross product of all of the cities C 1 , C 2 , and C 3 and testing the resulting constructed fare against fare rules to see if it is a valid constructed fare.
  • the fare construction process 40 therefore constructs fares by examining a small number of gateways and arbitraries for only those gateways. Thus, this fare construction process 40 can construct all potential constructed fares throughout the whole world on all airlines.
  • the fare construction process 40 , 40 ′ ( FIGS. 3A-3B and 4 A- 4 C) is governed by a set of tables called fare construction tables.
  • One of these tables includes a list of so called “PO2” records.
  • the PO2 list of records is maintained by ATPCO from information set by airlines.
  • the PO2 list of records is a set of rules that specify how fares can be combined with arbitraries. Each airline places its entries in the PO2 list of records.
  • the PO2 list of records exist so that any fare that the airline publishes will not automatically combine with any arbitrary that the airline publishes. For example, a very cheap fare may not be combinable with an arbitrary that can reach a luxury destination.
  • the PO2 list of records control this process by limiting what base fares an arbitrary can combine with.
  • the PO2 list of records are structured for each fare on a carrier and is specific to a market. For example, on a New York to London fare, the PO2 list of records will govern what arbitrary classes the New York to London fare may combine with.
  • the fare construction process 40 determines if it is a valid combination. One check that is performed is against PO2 records.
  • the fare construction process 40 checks 84 the “PO2” records corresponding to the fare. If the PO2 records do not list the arbitrary's fare code, the arbitrary cannot combine with the fare, and the construction is prohibited. The conventional process of finding the set of PO2 records matching a particular fare is time consuming. Alternatively, the check of fare construction tables can be done on a batch basis after all potential constructed fare combinations have been determined.
  • a PO2 procedure retrieval 80 uses a process called memorization.
  • Memorization is a technique for speeding up certain kinds of algorithms. If an expensive procedure is called many times, and if the procedure's output depends only on the input (i.e., the answer is not dependent on any external factors, such as the current time), then memorization can be used.
  • the PO2 procedure call 80 forms a query 82 involving the constructed fare.
  • the memorization retrieval process 80 has a store 88 of past queries and associated answers. If the memorization retrieval process 80 determines that the query has been stored, it is retrieved from the store 92 . Otherwise, a procedure call for the PO2 record is produced and used to access the record from a remote database. The answer from the remote database is stored in the memorization store 88 for future references.
  • the output from the memorization store 88 is used in response to a retrieval query for the PO2 records as it is called on every different input. That is, once the output for a certain input has been stored (i.e., the procedure has been called on that input once), the procedure does not need to be run again on that input. For the next call to the procedure on that input, the value is simply looked up in the memorization table. Because the PO2 matching process needs to be run many times for a single fare, memorization also improves performance.
  • the construction tables also include so-called PO4 records. These also limit which fares can combine with which arbitraries, and also require a non-trivial lookup process. In some cases, memorization of the PO4 record lookup process also improves performance. Memorization can be used with other non-trivial rule retrievals when testing fares.
  • the fare construction process 40 ′ ( FIG. 4A-4C ) efficiently enumerates all possible constructed fares.
  • the fare construction process 40 ′ can be modified to generate subsets of constructed fares. Exemplary subsets are all of the constructed fares on a specific airline or all of the constructed fares through a particular gateway.
  • the fare construction process 40 ′ can be modified to include conditional statements such as “if . . . then” clauses into the fare construction process 40 ′.
  • the second loop 44 of the process can include a condition, like:
  • the other loops can be similarly conditioned.
  • the process can be modified to produce fares matching this pattern:

Landscapes

  • Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Marketing (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Theoretical Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Game Theory and Decision Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

A technique for producing constructed fares that include an arbitrary added to a published fare is described. The techniques determine interior cities that appear with gateway cities in arbitraries for the airline and searches for gateway cities corresponding to the determined interior cities appearing in the arbitraries. The technique applies an arbitrary corresponding to one of the interior cities to a published fare involving one of the gateway cities to produce the constructed fare.

Description

  • This invention relates to a process for producing constructed fares.
  • Airlines publish fares for various markets. A market is a city pair such as NYC-PAR (New York-Paris). For markets involving major cities like the NYC-PAR market, airlines provide published fares, that is, stated prices for travel between the two cities. For markets involving minor cities, however, the airlines rely on a process called fare construction to produce fares that are sometimes called “constructed fares.” Fare construction is particularly used for minor markets involving international travel.
  • In the NYC-PAR market there may be hundreds of published fares with corresponding rules to combine the fares. However, there are too many markets for airlines to actually publish fares for every single market. For example, for the OME-NCE (Nome, Ak./Nice, France) market, there may not be a published fare because the Nome-Nice market may be too small for airlines to actually publish fares. Nevertheless, the airlines need to be able to offer some price for an OME-NCE ticket. The fare construction process solves this problem by providing a mechanism to “extend” a published fare with add-ons also called arbitraries, in order to derive prices to minor cities. An arbitrary, like a published fare, lists two cities. However, unlike cities in a published fare (which establish a bidirectional market), the cities in an arbitrary are ordered: the first is the gateway (or major) city, and the second is the interior (or minor) city. Constructed fares can be either two-component constructed fares, i.e., one arbitrary combined with one published fare or three-component constructed fares, i.e., two arbitraries combined with one published fare. Examples of two-component constructed fares include
      • OME-NYC arbitrary+NYC-PAR fare=OME-PAR fare
      • NYC-PAR fare+PAR-NCE arbitrary=NYC-NCE fare
  • As the examples show, the arbitrary can be added to either end of the published fare. A three-component constructed fare is shown below, where arbitraries are added to both sides of the published fare
      • OME-NYC arbitrary+NYC-PAR fare+PAR-NCE arbitrary=OME-NCE fare
  • In general, two-component constructed fares provide prices between a minor city and a major city, while three-component constructed fares provide prices between two minor cities.
  • One approach used to fare construction is to use a list of constructed fares called “The Unpublished Fares Product” that is available from Airline Tariff Publishing Company (ATPCO). ATPCO is an intermediary that maintains fares published by airlines and resellers. With “The Unpublished Fares Product” a cross-product of all arbitraries and all base fares is determined and provided into a list. That list can contain millions of constructed fares.
  • In addition, there are rules that govern the fare construction process, many of which date back to times when fare construction was performed by hand on paper. In particular, not all arbitraries can combine with all fares; various table-driven compatibility checks are performed to verify that a particular combination is acceptable.
  • SUMMARY
  • According to an aspect of the present invention, a method of producing constructed fares that includes an arbitrary added to a published fare is provided. The method is executed in a computer system and the method includes determining interior cities that appear with gateway cities in arbitraries for the airline, searching for gateway cities corresponding to the determined interior cities appearing in the arbitraries and applying an arbitrary corresponding to one of the interior cities to a published fare involving one of the gateway cities to produce the constructed fare.
  • According to a further aspect of the present invention, a method of producing a set of constructed international fares for an airline is executed in a computer system and includes determining interior cities that appear with gateway cities in arbitraries for the airline, searching for gateway cities corresponding to the determined interior cities appearing in the arbitraries and applying each arbitrary corresponding to each of the determined interior cities to published fares involving the gateway cities to produce the set of constructed fares.
  • According to a further aspect of the present invention, a computer program product resides on a computer readable medium for producing constructed fares that includes an arbitrary added to a published fare. The computer program product includes instructions for causing a computer system to determine interior cities that appear with gateway cities in arbitraries for the airline, search for gateway cities corresponding to the determined interior cities appearing in the arbitraries and apply an arbitrary corresponding to one of the interior cities to a published fare involving one of the gateway cities to produce the constructed fare.
  • According to a further aspect of the present invention, a computer program product for producing a set of constructed international fares for an airline resides on a computer readable medium and includes instructions that cause a computer to determine interior cities that appear with gateway cities in arbitraries for the airline, search for gateway cities corresponding to the determined interior cities appearing in the arbitraries and apply each arbitrary corresponding to each of the determined interior cities to published fares involving the gateway cities to produce the set of constructed fares.
  • According to a further aspect of the present invention, a computer system includes a processor and a memory for storing instructions executed by the processor. The system also includes a storage medium storing a computer program product for producing a set of constructed international fares for an airline. The computer program product includes instructions that cause the processor to determine interior cities that appear with gateway cities in arbitraries for the airline, and search for gateway cities corresponding to the determined interior cities appearing in the arbitraries. The program also includes instructions that cause the processor to apply each arbitrary corresponding to each of the determined interior cities to published fares involving the gateway cities to produce the set of constructed fares.
  • One or more of the following advantages may be provided from one or more aspects of the invention. The fare construction process produces “constructed fares” in a computational efficient manner. The fare construction process dynamically produces constructed fares. That is, because of the efficiency of the algorithm the fare construction process can produce constructed fares on an “as needed basis”, using the most current information such as currency conversion factors, prices, fares, and fare construction tables. The fare construction process produces two and three component constructed fares. The fare construction process produces the fares efficiently, since although the process is quadruple-nested, branching factors at each loop level are generally small, because there are relatively few gateway cities for a given interior city.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The foregoing features and other aspects of the invention will be described in further detail by the accompanying drawings, in which:
  • FIG. 1 is a block diagram of a computer system having a fare construction process to produce constructed fares.
  • FIG. 2A-2D are block diagrams showing use of hash tables used to store data for use by the fare construction process.
  • FIG. 3A-3B are flow charts showing a fare construction process used in the system of FIG. 1 to produce two component constructed fares.
  • FIG. 4A-4C are flow charts showing a fare construction process used in the system of FIG. 1 to produce two and three component constructed fares.
  • FIG. 5 is a flow chart showing use of a memorization process for rule retrieval.
  • DESCRIPTION
  • Referring now to FIG. 1, a computer system 10 includes a CPU 12, main memory 14 and persistent storage device 16 all coupled via a computer bus 18. The system 10 also includes output devices such as a display 20 and a printer 22 (not shown), as well as user input devices such as a keyboard 24 and a mouse 26. Not shown in FIG. 1, but would necessarily be included in a system of FIG. 1, are software drivers and hardware interfaces to couple all the aforementioned elements to the CPU 12.
  • The computer system 10 also includes a fare construction process 40 that produces constructed fares generally between international origins and destinations of travel. The fare construction process 40 may reside on the computer system 10 or may reside on a server, not shown, in a conventional manner such as in a client-server arrangement.
  • The fare construction process 40 can be used as part of a travel planning system. The fare construction process 40 can access a database 20 a. The database 20 a can store the Airline Tariff Publishing Company database of published airline fares and construction tables. The database 20 a can be stored locally and updated periodically by accessing a remote resource (not shown) that maintains the database.
  • One approach to produce a large number of constructed fares can generate a list, and generally a complete list, of all possible constructed fares. This process could be based on an algorithm that forms all legal combinations of all arbitraries with all published fares and stores them in a table of fares. One way of doing this would use an algorithm that loops for each airline for each of four cities as shown below.
  • loop: for each airline a,
    loop: for each city, c1
    loop: for each city, c2
    loop: for each city, c3, try to construct fares for airline
    a, c1-c2-c3
    loop: for each city, c4, try to construct fares for
    airline a, c1-c2-c3-c4
  • This process is not efficient because there are far too many cities to make this a practical approach. Assume there are 1000 cities with airports, (there are actually far more than that), then the running time of this process is proportional to 10004 or some one trillion determinations. This may be far too many determinations for even the fastest computers particularly if it is necessary to have access to the most current information to produce a constructed fare implying that the process should be run on as needed basis.
  • Referring now to FIGS. 2A-2D, preprocessing 30 to precompute 32 a first hash table 37 a to produce a list 38 a of gateway cities {C2} (FIG. 2B), to precompute 34 a second hash table 37 b to produce a second list 38 b of gateway cities {C3} (FIG. 2C), and to precompute 36 a third hash table 37 c to produce a list 38 a of interior cities {C4} (FIG. 2D) is shown. The first hash table 37 a is constructed 32 such that when the fare construction process accesses the table by an (airline, interior-city) pair the hash table 37 a returns in constant time, the list 38 a of gateway cities {C2} for which an airline “A” has arbitraries that specify the interior city C1. The second hash table 37 b is constructed such that when the fare construction process accesses the second hash table 37 b by an (airline, gateway) pair the table returns the list 38 b of gateway cities {C3} that the airline “A” publishes fares from the specified gateway C2 to another gateway city C3. The third hash table 37 c is constructed 36 such that when the fare construction process accesses the table by an (airline-gateway pair) the hash table 37 c returns, the list 38 c of interior cities {C4} for which an airline “A” has arbitraries that specify the gateway city C3. These hash tables are used by the fare construction process 40 (FIGS. 3A-3B) or 40′ (FIGS. 4A-4C), as described below.
  • The first hash table 37 a is produced 32 by iterating over all arbitraries. For each arbitrary A, a hash table entry H for the arbitrary A's interior city is located (or produced, if it does not exist). The arbitrary A's gateway city is added to a hash table entry H gateway city list. A gateway city entry in the gateway city list indicates that it is possible to use an arbitrary to get from A's interior to A's gateway city. Once all arbitraries have been processed this way, duplicates are removed from all the lists of interior-cities.
  • The second hash table 37 b is produced 34 in a similar manner. The difference is that the process to produce 34 the second hash table iterates over the set of all international published fares rather than the set of all arbitraries.
  • The third hash table 37 c is produced 36 by iterating over all arbitraries. For each arbitrary A, a hash table entry H for the arbitrary A's gateway city is located (or produced, if it does not exist). The arbitrary A's interior city is added to a hash table entry H interior city list. An interior city entry in the interior city list indicates that it is possible to use an arbitrary to get from A's gateway to A's interior city. Once all arbitraries have been processed this way, duplicates are removed from all the lists of interior-cities.
  • Producing the hash tables is quite efficient. The process that produces the hash tables can run in a time that is proportional to the number of arbitraries for the first table 37 a and third table 37 c or the number of fares for second table 37 b. Once the hash tables 37 a, 37 b, 37 c have been produced, they only need to be modified during the fare construction process if there is a change (i.e., addition or removal) in arbitraries or gateway cities. Thus, in general, the hash table production process is a small, one-time fixed cost.
  • Referring now to FIGS. 3A-3B, a fare construction process 40 that produces “constructed fares” in a computational efficient manner is shown. The fare construction process 40 produces two component constructed fares for the airlines. A process to produce two and three component constructed fares is described in conjunction with FIGS. 4A-4C.
  • This fare construction process 40 makes the computation process more efficient since it takes into consideration that very few cities are actually part of arbitraries. In other words, the complete set of arbitraries on all carriers only covers a small portion of the total set of cities. One key to rapidly enumerating constructed fares, therefore, is to start only with interior cities known to appear in some arbitraries. In addition, this algorithm also takes into consideration that there is no need to consider all cities in the world for the gateway cites. Rather, it is only necessary to consider those cities as gateways if the city is involved in some arbitrary whose interior city is the city currently being examined in the process.
  • Pseudocode for the fare construction process 40 would be:
  • loop: for each airline a,
    loop: for each city, c1, the interior city in some arbitrary for airline
    a,
    loop: for each city, c2, for which some arbitrary c1-c2 exists
    for airline a,
    loop: for each city, c3, for which some published fare
    c2-c3 exists for airline a,
    try to construct fares for airline a, c1-c2-c3
  • The fare construction process 40 determines 42 constructed fares for each airline “A.” The fare construction process 40 only considers fares from the same airline since international fare combining rules generally prohibit combining fares from different airlines. In general, currently the airline codes must be an exact match. However, if the rules were to change to allow affiliates or airlines that have the same corporate parent to be used to construct fares, the process could be modified to take this into consideration. For example, the hash table could include the affiliates or other airline in the hash tables and return them in the lists when accessed by the system. The fare construction process 40 eliminates many impossible combinations. That is, if the fare construction process 40 is producing constructed fares for a given airline it does not matter if fares can be constructed with other airlines. This recognition significantly limits the number of usable gateways for any given airline and significantly speeds up the process.
  • The fare construction process 40 retrieves 44 an interior city from a list of interior cities “C1” that are part of an arbitrary for the airline “A.” The fare construction process 40 retrieves 44 a city C2 from the list 38 a (via an access to the first hash table 37 a) of all of the cities “C2” that form arbitraries C1-C2 for city “C1” for airline “A.” The constructed fares process 30 retrieves from the list 38 b (via an access to the second hash table 38 a) a city “C3” that forms a published fare with city “C2” for airline “A.” The fare construction process 40 tries 50 to produce a constructed fare for the C1-C2-C3 city combinations. This embodiment of the fare construction process 40 produces the two-component constructed fares, i.e., one arbitrary combined with one published fare.
  • The fare construction process 40 will determine 52 if the C1-C2-C3 constructed fare is valid. If it is valid it is stored 54 or otherwise noted, and then a pointer (not shown) is incremented to get the next C3 city. If there are more C3 cities, the fare construction process will retrieve the next gateway city C3 for which a published fare exists with C2 that is all of the cities that form a published fare with gateway city C2 and the fare construction process will continue. If all cities C3 have been tested, it will then retrieve the next C2 city by incrementing another pointer (not shown) to get the next C2 city. If there are more C2 cities, the fare construction process 40 will retrieve the next gateway city C2 for which an arbitrary exists with city C1 and the fare construction process 40 will continue.
  • If all C2 cities have been tested, it will then retrieve the next C1 city by incrementing another pointer (not shown) to get the next C1 city. If there are more C1 cities, the fare construction process will retrieve the next interior city C1 will continue. If all interior cities C1 have been tested, it will then retrieve the next airline by incrementing another pointer (not shown) to get the next airline.
  • Referring now to FIGS. 4A-4C, a fare construction process 40′ to construct two and three-component constructed fares, i.e., two arbitraries combined with one published fare is shown. In the embodiment 40′, there is an additional loop. The fare construction process 40′ is similar to the process 40 up to when the fare construction process tries 50 to construct a two-component constructed fare. The fare construction process 40′ retrieves 51 a a second interior city C4 from a list of interior cities “C4” that are part of an arbitrary that exists for city C3 for the airline “A.” The fare construction process 40 retrieves 44 a city C4 from the list 38 c (via an access to the third hash table 37 c) of all of the cities “C4” that form arbitraries C3-C4 for gateway city “C3” for airline “A.” The fare construction process 40′ tries 51 b to produce a constructed fare for the C1-C2-C3-C4 city combinations. The fare construction process 40 will determine 51 c if the C1-C2-C3-C4 constructed fare is valid. If it is valid it is stored 54 a or otherwise noted, and then a pointer (not shown) is incremented to get 51 d the next C4 city. If there are more C4 interior cities, the fare construction process 40′ will retrieve the next interior city C4 and the fare construction process will continue. If all cities C4 have been tested, it will continue from testing 52 the C1-C2-C3 two component constructed fare as described above. This embodiment 40′ produces two-component and three-component constructed fares, i.e., two arbitraries combined with one published fare.
  • Pseudocode for the fare construction process 401 is:
  • loop: for each airline a,
    loop: for each city, c1, the interior city in some arbitrary for airline
    a,
    loop: for each city, c2, for which some arbitrary c1-c2 exists
    for airline a,
    loop: for each city, c3, for which some published fare
    c2-c3 exists for airline a,
    try to construct fares for airline a, c1-c2-c3
    loop: for each city, c4, for which some arbitrary
    c3-c4 exists for airline a,
    try to construct fares for airline a,
    c1-c2-c3-c4
  • The fare construction process 40′ produces the fares efficiently, since although the process is still quadruple-nested, branching factors at each loop level are generally small, because there are relatively few gateway cities for a given interior city. So, although the running time is still proportional to k4, the value of k at any level is typically k=10-20 instead of k=1000.
  • The fare construction process 40 or 40′ produces these fares dynamically. That is, because of the efficiency of the algorithm the fare construction process 40 or 40′ can produce constructed fares on an as needed basis using the most current information such as currency conversion factors, prices, fares, and construction tables.
  • A valid constructed, international fare can have either one or two arbitraries. Current ATPCO rules permit one arbitrary and one base fare or two arbitraries and a base fare. The ATPCO rules do not permit more than two arbitraries. The fare construction process 40 finds those interior cities that, for a given airline, are part of an arbitrary. For those interior cities, the fare construction process 40 uses as potential gateways those cities for which it is a gateway city in some arbitrary with those interior cities, rather than using every possible airport as a gateway. With the selected lists of potential gateways and arbitraries, the fare construction process 40 tries to form a constructed fare. This fare construction process 40 involves forming a cross product of all of the cities C1, C2, and C3 and testing the resulting constructed fare against fare rules to see if it is a valid constructed fare.
  • For any city, there is a manageable number of arbitraries, e.g., 0.1 to 10 s for example. Therefore, given such a set there is a manageable number of cities that are involved in an arbitrary. The fare construction process 40 therefore constructs fares by examining a small number of gateways and arbitraries for only those gateways. Thus, this fare construction process 40 can construct all potential constructed fares throughout the whole world on all airlines.
  • Trying to construct a fare for a city combination involves evaluating the constructed fares against fare rules. Although, these rules are extensive, the process described herein makes use of several approaches that speed up aspects of the rule evaluation process. The fare construction process 40, 40′ (FIGS. 3A-3B and 4A-4C) is governed by a set of tables called fare construction tables. One of these tables includes a list of so called “PO2” records. The PO2 list of records is maintained by ATPCO from information set by airlines. The PO2 list of records is a set of rules that specify how fares can be combined with arbitraries. Each airline places its entries in the PO2 list of records. The PO2 list of records exist so that any fare that the airline publishes will not automatically combine with any arbitrary that the airline publishes. For example, a very cheap fare may not be combinable with an arbitrary that can reach a luxury destination. The PO2 list of records control this process by limiting what base fares an arbitrary can combine with.
  • The PO2 list of records are structured for each fare on a carrier and is specific to a market. For example, on a New York to London fare, the PO2 list of records will govern what arbitrary classes the New York to London fare may combine with.
  • When the airline fare construction process 40 or 40′ produces combinations of city pairs before actually producing a constructed fare from a published fare and one or two arbitraries, the fare construction process 40 determines if it is a valid combination. One check that is performed is against PO2 records.
  • In determining whether or not a fare can combine with an arbitrary, the fare construction process 40 checks 84 the “PO2” records corresponding to the fare. If the PO2 records do not list the arbitrary's fare code, the arbitrary cannot combine with the fare, and the construction is prohibited. The conventional process of finding the set of PO2 records matching a particular fare is time consuming. Alternatively, the check of fare construction tables can be done on a batch basis after all potential constructed fare combinations have been determined.
  • Referring now to FIG. 5, to save time when constructing large numbers of fares, a PO2 procedure retrieval 80 uses a process called memorization. Memorization is a technique for speeding up certain kinds of algorithms. If an expensive procedure is called many times, and if the procedure's output depends only on the input (i.e., the answer is not dependent on any external factors, such as the current time), then memorization can be used. To memorize PO2 retrieval, the PO2 procedure call 80 forms a query 82 involving the constructed fare. The memorization retrieval process 80 has a store 88 of past queries and associated answers. If the memorization retrieval process 80 determines that the query has been stored, it is retrieved from the store 92. Otherwise, a procedure call for the PO2 record is produced and used to access the record from a remote database. The answer from the remote database is stored in the memorization store 88 for future references.
  • For subsequent calls for the record, the output from the memorization store 88 is used in response to a retrieval query for the PO2 records as it is called on every different input. That is, once the output for a certain input has been stored (i.e., the procedure has been called on that input once), the procedure does not need to be run again on that input. For the next call to the procedure on that input, the value is simply looked up in the memorization table. Because the PO2 matching process needs to be run many times for a single fare, memorization also improves performance.
  • The construction tables also include so-called PO4 records. These also limit which fares can combine with which arbitraries, and also require a non-trivial lookup process. In some cases, memorization of the PO4 record lookup process also improves performance. Memorization can be used with other non-trivial rule retrievals when testing fares.
  • The fare construction process 40′ (FIG. 4A-4C) efficiently enumerates all possible constructed fares. The fare construction process 40′ can be modified to generate subsets of constructed fares. Exemplary subsets are all of the constructed fares on a specific airline or all of the constructed fares through a particular gateway. The fare construction process 40′ can be modified to include conditional statements such as “if . . . then” clauses into the fare construction process 40′. For example, to limit construction to one airline R, the second loop 44 of the process can include a condition, like:
  • loop: for each airline a,
    if (a = R)
    loop: for each city, c1, the interior city in some arbitrary for
    airline a,
    ..

    where “R” is a code for a specific airline. The modification will produce only fares for the airline specified by “R”.
  • The other loops can be similarly conditioned. In general, the process can be modified to produce fares matching this pattern:
      • cxr interior1 gateway1 gateway2 interior2 fare-basis components
        where any combination of these elements can be allowed to vary, and where “cxr” is an airline code, “interior1” is the first interior city in a constructed fare, “gateway1” is the first gateway city in a published fare, “gateway2” is the second city in the published fare, “interior2” is the second city in a constructed fare, “fare-basis” is a one to eight character code or name of a fare type, and “components” is the number of fare components, i.e., two or three. For example, calling the algorithm with the setting
      • UA OME <any> <any> NCE <any> <any>
        will produce all United Airlines constructed fares from Nome to Nice via any gateways, with any fare basis, and with any number of components (two or three).
        Pseudocode for the algorithm modified to support these options follows.
  • loop: for each airline a,
    if cxr = <any>, or cxr = a then
    loop: for each city, c1, the interior city in some arbitrary
    for airline a, if interior1 = <any>, or interior1 = c1 then
    loop: for each city, c2, for which some arbitrary c1-c2
    exists for airline a,
    if gateway1 = <any>, or gateway1 = c2 then
    loop: for each city, c3, for which some published fare c2-c3
    exists for airline a,
    if gateway2 = <any>, or gateway2 = c3 then
    try to construct fares for airline a, c1-c2-c3, and store
    in array X
    if fare-basis /= <any> then
    remove fares from X not matching fare-basis
    if components = <any> or components = 2 then
    emit fares remaining in X
    if components = <any>, or components = 3 then
    loop: for each city, c4, for which some arbitrary
    c3-c4 exists for airline a,
    if interior2 = <any> or interior2 = c4 then
    try to construct fares for airline a, c1-c2-c3-c4
    and store in array Y
    if fare-basis /= <any> then
    remove fares from Y not matching fare-basis
    emit fares remaining in Y
  • OTHER EMBODIMENTS
  • It is to be understood that while the invention has been described in conjunction with the detailed description thereof, the foregoing description is intended to illustrate and not limit the scope of the invention, which is defined by the scope of the appended claims. Other aspects, advantages, and modifications are within the scope of the following claims.

Claims (51)

1. A method of producing constructed fares that includes an arbitrary added to a published fare, said method executed in a computer system, the method comprising:
determining interior cities that appear with gateway cities in arbitraries for the airline;
searching for gateway cities corresponding to the determined interior cities appearing in the arbitraries; and
applying an arbitrary corresponding to one of the interior cities to a published fare involving one of the gateway cities to produce the constructed fare.
2. The method of claim 1 wherein determining interior cities comprises:
accessing a hash table by an airline, interior-city pair to return a list of gateway cities for which an airline has arbitraries that specify the interior city.
3. The method of claim 2 wherein accessing a hash table returns the list in constant time.
4. The method of claim 1 wherein searching for gateway cities comprises:
accessing a hash table by an airline, gateway pair to return a list of gateway cities that an airline publishes fares from the determined gateway to another gateway city.
5. The method of claim 1 wherein determining interior cities comprises:
accessing a first hash table by an airline, interior-city pair to return a list of gateway cities for which an airline has arbitraries that specify the interior city; and wherein searching for gateway cities comprises:
accessing a second hash table by an airline, gateway pair to return a second list of gateway cities that an airline publishes fares from the determined gateway to another gateway city.
6. The method of claim 5 wherein accessing the first and second hash table returns the lists in constant time.
7. The method of claim 1 wherein applying arbitraries further comprises:
evaluating records from fare construction tables to determine whether the constructed fare is a valid constructed fare.
8. The method of claim 1 wherein the method is conditioned to allow any one or more of an airline code, interior city a first gateway city a second gateway city, or fare-basis to vary.
9. The method of claim 7 wherein testing entries further comprises:
determining if an entry in a construction table was memorized before accessing the construction table; and
if the entry was memorized, retrieving an answer from a store of memorized entries to apply to the constructed fare.
10. The method of claim 1 wherein the constructed fare is a two component constructed fare.
11. The method of claim 1, further comprising:
determining a second set of interior cities that appear with a second gateway city in the published fare for the airline;
applying a second interior city from the second set of interior cites to the constructed fare to produce a three component constructed fare.
12. The method of claim 1 wherein the method is performed over all determined interior cities and all gateways.
13. The method of claim 1 wherein the method is performed over all airlines.
14. A method of producing a set of constructed international fares for an airline, the method executed in a computer system and the method comprising:
determining interior cities that appear with gateway cities in arbitraries for the airline;
searching for gateway cities corresponding to the determined interior cities appearing in the arbitraries; and
applying each arbitrary corresponding to each of the determined interior cities to published fares involving the gateway cities to produce the set of constructed fares.
15. The method of claim 14 wherein the set of constructed fares are two component constructed fares.
16. The method of claim 14 further comprising:
determining a second set of interior cities that appear with second gateway cities in the published fares.
17. The method of claim 15 wherein the set of constructed fares is a first set of constructed fares and the method further comprises:
applying each arbitrary corresponding to each of the determined second set of interior cities to the first set of constructed fares to produce a second set of constructed fares.
18. The method of claim 14 wherein the first set of constructed fares are two component constructed fares and the second set of constructed fares are three component constructed fares.
19. The method of claim 14 further comprising:
evaluating entries in fare construction tables to determine whether constructed fares in the set of constructed fares are valid constructed fares; and
returning the valid constructed fares as the set of constructed fares.
20. The method of claim 19 wherein evaluating entries further comprises:
determining if an entry in a fare construction table was memorized before accessing the fare construction table; and
if the entry was memorized, retrieving an answer from a store of memorized entries to apply to the constructed fare.
21. The method of claim 14 wherein determining interior cities comprises:
accessing a first hash table by an airline, interior-city pair to return a list of gateway cities for which an airline has arbitraries that specify the interior city; and
wherein searching for gateway cities comprises:
accessing a second hash table by an airline, gateway pair to return a second list of gateway cities that an airline publishes fares from the determined gateway to another gateway city.
22. A computer program product residing on a computer readable medium, for producing constructed fares that includes an arbitrary added to a published fare, comprising instructions for causing a computer system to:
determine interior cities that appear with gateway cities in arbitraries for the airline;
search for gateway cities corresponding to the determined interior cities appearing in the arbitraries; and
apply an arbitrary corresponding to one of the interior cities to a published fare involving one of the gateway cities to produce the constructed fare.
23. The computer program product of claim 22 wherein instructions that cause a computer to determine interior cities comprises:
accessing a hash table by an airline, interior-city pair to return a list of gateway cities for which an airline has arbitraries that specify the interior city.
24. The computer program product of claim 23 wherein instructions that cause a computer to access a hash table returns the list in constant time.
25. The computer program product of claim 22 wherein instructions that cause a computer to search for gateway cities comprises instructions that cause a computer to:
access a hash table by an airline, gateway pair to return a list of gateway cities that an airline publishes fares from the determined gateway to another gateway city.
26. The computer program product of claim 22 wherein instructions that cause a computer to determine interior cities comprises instructions that cause a computer to:
access a first hash table by an airline, interior-city pair to return a list of gateway cities for which an airline has arbitraries that specify the interior city; and
wherein instructions that cause a computer to search for gateway cities comprises instructions that cause a computer to:
access a second hash table by an airline, gateway pair to return a second list of gateway cities that an airline publishes fares from the determined gateway to another gateway city.
27. The computer program product of claim 26 wherein instructions that cause a computer to access the first and second hash table returns the lists in constant time.
28. The computer program product of claim 22 wherein instructions that cause a computer to apply arbitraries further comprises instructions that cause a computer to:
test entries in construction tables to determine whether the constructed fare is a valid constructed fare.
29. The computer program product of claim 28 wherein instructions that cause a computer to test entries further comprises instructions that cause a computer to:
determine if an entry in a construction table was memorized before accessing the construction table; and
if the entry was memorized, retrieve an answer from a store of memorized entries to apply to the constructed fare.
30. The computer program product of claim 22 wherein the constructed fare is a two component constructed fare.
31. The computer program product of claim 22 wherein the computer program product is conditioned to allow any one or more of an airline code, interior city, a first gateway city, a second gateway city, or fare-basis to vary.
32. The computer program product of claim 22, further comprising instructions that cause a computer to:
determine a second set of interior cities that appear with a second gateway city in the published fare for the airline; and
apply a second interior city from the second set of interior cites to the constructed fare to produce a three component constructed fare.
33. The computer program product of claim 22 wherein the computer program product is executed over all determined interior cities and all gateways.
34. The computer program product of claim 22 wherein the computer program product is executed over all airlines.
35. A computer program product for producing a set of constructed international fares for an airline, the computer program product residing on a computer readable medium and comprising instructions that cause a computer to:
determine interior cities that appear with gateway cities in arbitraries for the airline;
search for gateway cities corresponding to the determined interior cities appearing in the arbitraries; and
apply each arbitrary corresponding to each of the determined interior cities to published fares involving the gateway cities to produce the set of constructed fares.
36. The computer program product of claim 35 wherein the set of constructed fares are two component constructed fares.
37. The computer program product of claim 35 further comprising instructions that cause a computer to:
determine a second set of interior cities that appear with second gateway cities in the published fares.
38. The computer program product of claim 36 wherein the set of constructed fares is a first set of constructed fares, and the computer program product further comprises instructions that cause a computer to:
apply each arbitrary corresponding to each of the determined second set of interior cities to the first set of constructed fares to produce a second set of constructed fares.
39. The computer program product of claim 35 wherein the first set of constructed fares are two component constructed fares and the second set of constructed fares are three component constructed fares.
40. The computer program product of claim 35 further comprising instructions that cause a computer to:
evaluate entries in fare construction tables to determine whether constructed fares in the set of constructed fares are valid constructed fares; and
return the valid constructed fares as the set of constructed fares.
41. The computer program product of claim 40 wherein instructions that cause a computer to evaluate entries further comprises instructions that cause a computer to:
determine if an entry in a fare construction table was memorized before accessing the fare construction table; and
if the entry was memorized, retrieve an answer from a store of memorized entries to apply to the constructed fare.
42. The computer program product of claim 35 wherein instructions that cause a computer to determine interior cities comprises instructions that cause a computer to:
access a first hash table by an airline, interior-city pair to return a list of gateway cities for which an airline has arbitraries that specify the interior city; and
wherein instructions that cause a computer to search for gateway cities comprises instructions that cause a computer to:
access a second hash table by an airline, gateway pair to return a second list of gateway cities that an airline publishes fares from the determined gateway to another gateway city.
43. A computer system comprising:
a processor;
a memory for storing instructions executed by the processor; and
a storage medium storing a computer program product for producing a set of constructed international fares for an airline, the computer program product comprising instructions that cause the processor to:
determine interior cities that appear with gateway cities in arbitraries for the airline;
search for gateway cities corresponding to the determined interior cities appearing in the arbitraries; and
apply each arbitrary corresponding to each of the determined interior cities to published fares involving the gateway cities to produce the set of constructed fares.
44. The computer system of claim 43 wherein the system is a stand-alone computer.
45. The computer system of claim 43 wherein the system is a server computer in a networked, client-server computer system.
46. The computer system of claim 43 wherein the system is a client computer in a networked, client-server computer system.
47. A method of evaluating constructed fares against construction tables comprises:
forming a query to obtain a record from a construction table to evaluate the validity of a constructed fare;
determining whether the query has been stored in a store of past queries and associated answers;
if the query has been stored, retrieving the answer from the store to evaluate the constructed fare, otherwise retrieving the record from a remote database;
evaluating the constructed fare against the record; and
storing an answer from evaluating the constructed fare for future references.
48. The method of claim 47 wherein the store is a memorization store.
49. The method of claim 47 wherein once the answer for a certain query has been stored, the procedure does not need to be run again on that query unless the record changes.
50. The method of claim 47 wherein the construction table is a so called ATPCO PO2 table.
51. The method of claim 47 wherein the construction table is a so called ATPCO PO4 table.
US12/207,572 1999-03-19 2008-09-10 Technique for Producing Constructed Fares Abandoned US20090006278A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/207,572 US20090006278A1 (en) 1999-03-19 2008-09-10 Technique for Producing Constructed Fares

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/272,437 US6263323B1 (en) 1999-03-19 1999-03-19 Technique for producing constructed fares
US09/877,159 US8160973B2 (en) 1999-03-19 2001-06-08 Technique for producing constructed fares
US12/207,572 US20090006278A1 (en) 1999-03-19 2008-09-10 Technique for Producing Constructed Fares

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/877,159 Continuation US8160973B2 (en) 1999-03-19 2001-06-08 Technique for producing constructed fares

Publications (1)

Publication Number Publication Date
US20090006278A1 true US20090006278A1 (en) 2009-01-01

Family

ID=23039791

Family Applications (4)

Application Number Title Priority Date Filing Date
US09/272,437 Expired - Lifetime US6263323B1 (en) 1999-03-19 1999-03-19 Technique for producing constructed fares
US09/877,159 Expired - Fee Related US8160973B2 (en) 1999-03-19 2001-06-08 Technique for producing constructed fares
US12/207,572 Abandoned US20090006278A1 (en) 1999-03-19 2008-09-10 Technique for Producing Constructed Fares
US13/209,177 Abandoned US20120084233A1 (en) 1999-03-19 2011-08-12 Technique for Producing Constructed Fares

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US09/272,437 Expired - Lifetime US6263323B1 (en) 1999-03-19 1999-03-19 Technique for producing constructed fares
US09/877,159 Expired - Fee Related US8160973B2 (en) 1999-03-19 2001-06-08 Technique for producing constructed fares

Family Applications After (1)

Application Number Title Priority Date Filing Date
US13/209,177 Abandoned US20120084233A1 (en) 1999-03-19 2011-08-12 Technique for Producing Constructed Fares

Country Status (4)

Country Link
US (4) US6263323B1 (en)
EP (1) EP1212709A4 (en)
AU (1) AU3759300A (en)
WO (1) WO2000057329A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130304051A1 (en) * 2012-05-08 2013-11-14 Greatbatch Ltd. Transseptal needle apparatus
US20130324911A1 (en) * 2012-05-31 2013-12-05 Covidien Lp Ablation device with drug delivery component
US20130324910A1 (en) * 2012-05-31 2013-12-05 Covidien Lp Ablation device with drug delivery component and biopsy tissue-sampling component
US10977312B2 (en) 2012-09-21 2021-04-13 Google Llc Apparatus and method for inferring an origin

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418413B2 (en) * 1999-02-04 2002-07-09 Ita Software, Inc. Method and apparatus for providing availability of airline seats
US6263323B1 (en) * 1999-03-19 2001-07-17 Ita Software, Inc. Technique for producing constructed fares
WO2001033472A2 (en) * 1999-11-01 2001-05-10 Ita Software, Inc. Method and apparatus for providing availability of airline seats
US7562027B1 (en) * 1999-11-01 2009-07-14 Ita Software, Inc. Availability processing in a travel planning system
US20080154630A1 (en) * 1999-11-01 2008-06-26 Ita Software, Inc. Method for Generating A Diverse Set of Travel Options
US6553394B1 (en) * 2000-01-21 2003-04-22 Mitsubishi Electric Research Laboratories, Inc. Continuous memoization
US7216085B1 (en) * 2000-07-13 2007-05-08 Ita Software, Inc. Competitive availability tools
WO2002023447A1 (en) * 2000-09-14 2002-03-21 Destination Software, Inc. Multi-nodal meeting planning system and method
US7966205B2 (en) 2001-03-19 2011-06-21 Ita Software, Inc. Fare rules summarizer for travel planning
WO2004088476A2 (en) * 2003-03-27 2004-10-14 University Of Washington Performing predictive pricing based on historical data
US8131574B2 (en) * 2005-09-29 2012-03-06 Amadeus S.A.S. Air travel system and method for planning roundtrip flights using one way combinable fares
US8374895B2 (en) * 2006-02-17 2013-02-12 Farecast, Inc. Travel information interval grid
US20070198308A1 (en) * 2006-02-17 2007-08-23 Hugh Crean Travel information route map
US8484057B2 (en) * 2006-02-17 2013-07-09 Microsoft Corporation Travel information departure date/duration grid
US8200514B1 (en) 2006-02-17 2012-06-12 Farecast, Inc. Travel-related prediction system
US20070198307A1 (en) * 2006-02-17 2007-08-23 Hugh Crean Travel information future fare graph
US8392224B2 (en) * 2006-02-17 2013-03-05 Microsoft Corporation Travel information fare history graph
US8731980B2 (en) * 2006-07-06 2014-05-20 Google Inc. Low fare search for ticket changes
US8688485B2 (en) * 2006-07-06 2014-04-01 Google Inc. Low fare search for ticket changes using married segment indicators
US20080041945A1 (en) * 2006-07-06 2008-02-21 Todd Williamson Ticket reconstruction
US8126783B2 (en) * 2006-10-06 2012-02-28 Sabre Inc. Rule-based shopping
US7797187B2 (en) * 2006-11-13 2010-09-14 Farecast, Inc. System and method of protecting prices
CN101652789A (en) * 2007-02-12 2010-02-17 肖恩·奥沙利文 Shared transportation system and service network
CN101636757A (en) * 2007-03-13 2010-01-27 费尔卡斯特股份有限公司 Deal identification system
US20110213995A1 (en) * 2007-08-09 2011-09-01 International Business Machines Corporation Method, Apparatus And Computer Program Product Providing Instruction Monitoring For Reduction Of Energy Usage
US20090063167A1 (en) * 2007-08-28 2009-03-05 Jay Bartot Hotel rate analytic system
US9892637B2 (en) 2014-05-29 2018-02-13 Rideshare Displays, Inc. Vehicle identification system
US10467896B2 (en) 2014-05-29 2019-11-05 Rideshare Displays, Inc. Vehicle identification system and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418413B2 (en) * 1999-02-04 2002-07-09 Ita Software, Inc. Method and apparatus for providing availability of airline seats
US20020178034A1 (en) * 1996-04-10 2002-11-28 Christopher W. Gardner Airline travel technologies

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4758954A (en) * 1984-07-25 1988-07-19 Computer Services Corporation Method of adjusting ticket fares
US5021953A (en) * 1988-01-06 1991-06-04 Travelmation Corporation Trip planner optimizing travel itinerary selection conforming to individualized travel policies
US5255184A (en) * 1990-12-19 1993-10-19 Andersen Consulting Airline seat inventory control method and apparatus for computerized airline reservation systems
US5270921A (en) * 1990-12-19 1993-12-14 Andersen Consulting Virtual fare methods for a computerized airline seat inventory control system
US5459667A (en) * 1993-01-22 1995-10-17 Sumitomo Electric Industries, Ltd. Navigation apparatus for informing vehicle driver of information regarding travel route
SG43400A1 (en) * 1995-09-06 1997-10-17 Sabre Group Inc System for corporate travel planning and management
AU8282898A (en) * 1997-07-02 1999-01-25 Rosenbluth International, Inc. Trip planner optimizing travel itinerary selection conforming to an individualized travel policy
US6192314B1 (en) * 1998-03-25 2001-02-20 Navigation Technologies Corp. Method and system for route calculation in a navigation application
JP2000020590A (en) * 1998-06-30 2000-01-21 Japan Travel Bureau Inc Retrieval display system for schedule
US6275808B1 (en) * 1998-07-02 2001-08-14 Ita Software, Inc. Pricing graph representation for sets of pricing solutions for travel planning system
US6360205B1 (en) * 1998-10-30 2002-03-19 Trip.Com, Inc. Obtaining and utilizing commercial information
US6263323B1 (en) * 1999-03-19 2001-07-17 Ita Software, Inc. Technique for producing constructed fares

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020178034A1 (en) * 1996-04-10 2002-11-28 Christopher W. Gardner Airline travel technologies
US6418413B2 (en) * 1999-02-04 2002-07-09 Ita Software, Inc. Method and apparatus for providing availability of airline seats

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130304051A1 (en) * 2012-05-08 2013-11-14 Greatbatch Ltd. Transseptal needle apparatus
US20130324911A1 (en) * 2012-05-31 2013-12-05 Covidien Lp Ablation device with drug delivery component
US20130324910A1 (en) * 2012-05-31 2013-12-05 Covidien Lp Ablation device with drug delivery component and biopsy tissue-sampling component
US10977312B2 (en) 2012-09-21 2021-04-13 Google Llc Apparatus and method for inferring an origin

Also Published As

Publication number Publication date
AU3759300A (en) 2000-10-09
US20020052854A1 (en) 2002-05-02
US8160973B2 (en) 2012-04-17
US20120084233A1 (en) 2012-04-05
EP1212709A1 (en) 2002-06-12
EP1212709A4 (en) 2002-07-24
WO2000057329A1 (en) 2000-09-28
US6263323B1 (en) 2001-07-17

Similar Documents

Publication Publication Date Title
US20090006278A1 (en) Technique for Producing Constructed Fares
US7536402B2 (en) System and method for handling item listings with generic attributes
US7124096B2 (en) Query system for service availability according to customized criteria
US7848970B2 (en) System and method for synchronizing ledger accounts by company group
KR101618997B1 (en) Method and system for processing a search request
US8533012B2 (en) Fare rules summarizer for travel planning
US20060041573A1 (en) System and method for geocoding diverse address formats
US20020198788A1 (en) System and method for product evaluation
KR20050071356A (en) Assigning textual ads based on article history
US20110282701A1 (en) Searching for Airline Travel Based Upon Seat Characteristics
CA2465801A1 (en) Methods, systems, and articles of manufacture for providing product availability information
US20050033621A1 (en) Systems, methods, and computer program products for storing and retrieving product availability information from a storage cache
US8977621B1 (en) Search engine optimizer
CN103370710A (en) Method, system and computer program to provide fares detection from rules attributes
CN111339122B (en) Active caching method of travel platform, travel query method and related products
US8452624B2 (en) Online travel reservation system and method delivering restriction-aware travel opportunities
US20090222440A1 (en) Search engine for carrying out a location-dependent search
US20080040167A1 (en) Booking system and method
JP2697651B2 (en) Database search result evaluation method
CN109029476A (en) A kind of method and apparatus for determining range coverage
KR100552405B1 (en) How to assign a domain by evaluating a website on a network
CN110750525A (en) Custom obtaining method, system and equipment based on customs big data and Google search
US7165067B1 (en) Method, system, and program for character set matching
US20080140466A1 (en) Travel planning system that re-prices travel options to produce answers involving multiple sales channels/PNRs/tickets per answer
US20080140464A1 (en) Travel planning system that produces answers involving mulitple sales channels/PNRs/tickets per answer

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: ITA SOFTWARE, INC., MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BAGGETT, DAVID M.;REEL/FRAME:026624/0502

Effective date: 19990315

AS Assignment

Owner name: ITA SOFTWARE LLC, DELAWARE

Free format text: CHANGE OF NAME;ASSIGNOR:ITA SOFTWARE, INC.;REEL/FRAME:026768/0268

Effective date: 20110609

AS Assignment

Owner name: GOOGLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ITA SOFTWARE LLC;REEL/FRAME:026817/0482

Effective date: 20110817

AS Assignment

Owner name: GOOGLE LLC, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:057775/0854

Effective date: 20170929