WO2001033394A2 - A method for generating a diverse set of travel options - Google Patents
A method for generating a diverse set of travel options Download PDFInfo
- Publication number
- WO2001033394A2 WO2001033394A2 PCT/US2000/029586 US0029586W WO0133394A2 WO 2001033394 A2 WO2001033394 A2 WO 2001033394A2 US 0029586 W US0029586 W US 0029586W WO 0133394 A2 WO0133394 A2 WO 0133394A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- pricing
- value
- nodes
- travel
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/02—Reservations, e.g. for tickets, services or events
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/34—Browsing; Visualisation therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
Definitions
- This invention relates to travel planning systems.
- Computer travel planning systems such as airline computer reservation systems used by airline reservation agents, human travel agents, and automated travel agents such as internet web sites , generally produce a relatively small set of recommended travel options for a query that has a route and/or time specification.
- a travel planning system For air travel, usually the number of travel options that a travel planning system produces is much smaller than the total set that could possibly satisfy a traveller's request.
- a CRS may respond to a round-trip query specified by a departure city and date and a return city and date with a set of 10 or so possible flight and fare combinations, even though there may be thousands of combinations of flights that satisfy the request.
- resource limitations prevent a travel planning system from analyzing or generating more than a small set of travel options.
- air travel it may be that for each option the system needs to query airlines about seat availability. The availability process places practical limits the number of options that may be considered.
- a travel planning system is limited in the number of options it can generate, it may be desirable that the travel planning system consider or generate a diverse set of travel options.
- the planning system can maximize its chance of generating a good option by enforcing diversity in the set of options generated.
- the diversity process in the air travel planning system generates answers on several different airlines, thus the system is capable of satisfying a greater ranger of travellers.
- an air travel planning system that queries airlines about whether there are seats available on a limited number of flights may wish to choose flights at a diversity of flight times, in case flights at particular times of day are all full.
- travel planning system that outputs a set of travel options smaller than the complete set of travel options it has computed prunes the larger set of options to a smaller set with a diversity-based pruning process, where the larger set is represented by a compact representation.
- a preferred, compact representation of the set of pricing solutions is as a data structure comprising a plurality of nodes that can be logically manipulated using value functions to enumerate a set of pricing solutions.
- One preferred example is a graph data structure type particularly a directed acyclic graph that contains nodes that can be logically manipulated or combined to extract a plurality of pricing solutions.
- the client can store and/or logically manipulate the set of pricing solutions to extract or display a subset of the set of pricing solutions without the need for additional intervention by the server.
- FIG. 1 is a block diagram of a client server travel planning system.
- FIG. 2 is a flow chart showing a server process used in the system of FIG. 1.
- FIG. 3 is a flow chart showing a client process used in the system of FIG. 1.
- FIGS. 3A-3B are diagrammatic representations of pricing graphs.
- FIGS. 4A-4B are flow charts showing a faring process used in the server process of FIG. 2.
- FIG. 5 is a flow chart showing the process for constructing a pricing graph.
- FIG. 6 is a block diagram showing the relationship between the pricing graph and a graphical user interface for the travel planning system of FIG. 1.
- FIG. 7 is a flow chart showing various enumeration functions .
- FIG. 8 is flow chart of a diversity process for selecting a diverse set of travel options.
- FIG. 9 is a flow chart depicting an example of a diversity process.
- FIG. 9A is a flow chart depicting a process used with a pricing graph.
- FIG. 10 is a flow chart of a process to generate a prioritized list of travel requirements for the diversity process of FIG. 3.
- FIG. 11 is a flow chart of template process used in the diverstiy process.
- FIG. 12 is a flow chart of an alternative diverstiy process to generate a diverse set of travel options from a larger set of travel options.
- the travel planning system can be used with various forms of travel such as airline, bus and railroad and is particularly adapted for air travel. It includes a server computer 12 having a computer memory or storage media 14 storing a server process 15.
- the server process includes a scheduler process 16 and a faring process 18.
- the scheduler process 16 is any suitable scheduler process that will produce from a travel request sets of flights that can satisfy the request.
- the faring process 18 is a process that determines a set of valid fares and links the set of valid fares to the sets of flights to form a pricing solution.
- the server process 15 can be configured to produce other travel-related information as a result of a user query.
- the server process 12 can produce routes or airline suggestions, optimal travel times and suggestions for alternative requests.
- the travel planning system 10 also includes a plurality of databases 20a, 20b which store industry-standard information pertaining to travel (e.g., airline, bus, railroad, etc. ).
- database 20a can store the Airline Tariff Publishing Company database of published airline fares and their associated rules, routings and other provisions, the so-called ATPCO database.
- Database 20b can be an inventory of current availability of airline information for a particular carrier and so forth.
- the databases 20a-20b are typically stored locally and updated periodically by accessing remote resources 21a, 21b that maintain the respective databases.
- the system 10 also includes a plurality of clients 30a-30c implemented by terminals or preferably personal computers.
- the clients 30a-30c are coupled to the server 12 via a network 22 which is also used to couple the remote resources (21a-21c) that supply the databases 20a-20b to the server 12.
- the network 22 can be any local or wide area network or an arrangement such as the Internet.
- the clients 30a-30c are preferably smart clients. That is, using client 30c as an illustrative example, client 30c includes a client computer system 32 including a computer memory or storage media 34 that stores a client process 36 and a set of pricing solutions 38.
- the set of pricing solutions 38 in one embodiment is provided from the server process 16 and comprises a set of fares that are valid for a journey, and associated information linking the fares to the flight segments of the journey.
- the set of pricing solutions 38 is obtained from the server 12 in response to a user request sent from the client 30c to the server 12.
- the server 12 executes the server process 15 using the scheduling process 16 and the faring process 18 to produce a set of pricing solutions for a particular journey. If requested by the client, for example client 30c, the server 12 will deliver the set of pricing solutions 38 to the requesting client 30c. Under control of the client process 36, the requesting client 30c can store and/or logically manipulate the set of pricing solutions 38 to extract or display a subset of the set of pricing solutions as a display representation 41 on the monitor 40.
- the server process 18 is preferably executed on the server computer 12 but could be executed on the client computer 32.
- the server process 18 is responsive to a user input query 48.
- the user input query 48 would typically include minimal information needed to determine a set of pricing solutions. This information typically requires at a minimum, an origin and a destination for travel. In addition, the information could also include times, dates and so forth.
- This query 48 is fed to the scheduler process 16 that produces a large number of itineraries, that is, sequences of flight segments between the origin and destination for each slice of a journey.
- Such a scheduler is described in co-pending patent application entitled SCHEDULER SYSTEM FOR TRAVEL PLANNING SYSTEM, Serial No. 09/109,622, filed on July 2, 1998 y Carl G. deMarcken et al.
- the scheduler process 16 provides the itineraries to a faring process 18.
- the faring process 18 provides a set of pricing solutions 38 by finding valid fares corresponding to the itineraries produced by the scheduler process 16.
- the faring process 18 validates the fares for inclusion in the set of pricing solutions 38.
- a preferred faring process that places fares and itineraries in a compact data structrure referred to herein in as a pricing graph is described in co-pending patent application entitled TRAVEL PLANNING SYSTEM, Serial No. 09/109,327 , filed on July 2, 1998 by Carl G. deMarcken et al. and assigned to the assignee of the invention and incorporated herein by reference.
- the set of pricing solutions 38 is used by an availability system 58 that interrogates an airline inventory database 20b to determine whether there are seats available on particular flights for particular pricing solutions.
- the availability system 58 uses the airline inventory database 20b as a filter to remove from the set of pricing solutions 38 those pricing solutions for which there are not available seats.
- the availability system 58 is shown after the faring process 18. However, it could be included at nearly any point in the server process 18. In addition, it is shown being fed by the pricing solution when it may only receive flight information from the scheduler process 16 depending on the airline.
- the client system 30c receives the results from the server process 18. These results are the set of pricing solutions 38 and/or pricing solutions based upon availability.
- the client process 36 executed in the client 30c uses this information or a subset of it to access a booking system 62 to provide a booking and reservation for a user selected, enumerated pricing solution, as will be described below.
- the client process 36 receives a listing of possible itineraries from the scheduler process 16 as well as the set of fares from the faring process 18 or the availability system 58.
- the set of pricing solutions 38 if obtained from the faring process 18, will include a large number of pricing solutions for which there is not any available inventory. Therefore, the components would need to be first checked out with an airline prior to booking.
- the set of pricing solutions 38 if obtained after the availability system 58 should contain pricing solutions which have a high degree of availability for booking on an airline.
- the set of pricing solutions 38 is provided in a compact representation 38'.
- a preferred, compact representation 38 ' of the set of pricing solutions 38 is as a data structure comprising a plurality of nodes including itineraries and fares and that can be logically manipulated using value functions to enumerate a set of pricing solutions.
- One preferred example is a graph data structure type particularly a directed acyclic graph (DAG) that contains nodes that can be logically manipulated or combined to extract a plurality of pricing solutions.
- DAG directed acyclic graph
- the client process 36 receives the flight information from scheduler process 16 and the pricing solution from the faring process 18 or the availability system 56 and enumerates pricing solutions from the directed acyclic graph (DAG) representation.
- DAG directed acyclic graph
- the enumerated set of pricing solutions is rendered in a graphical user interface 41 on the client monitor 40 (FIG. 1) in a manner as will be described below.
- the client 40 can manipulate travel options and can query the local copy of the DAG to produce and display a subset of pricing solutions enumerated from the DAG that satisfy the query 76.
- the manipulation process used to control the display and change the travel options will be described below.
- a directed acyclic graph is used to represent the compact set of pricing solutions 38' since, in general, the number of nodes needed to represent a typical pricing solution will be substantially less than the actual number of pricing solutions represented by the DAG. This significantly increases the efficiency of transfer of a set of pricing solutions 38 from the server process 18 to the client process 36.
- the DAG representation also minimizes the storage requirements for the set of pricing solutions 38.
- the DAG representation permits the use of powerful search, sorting and manipulation processes to produce various subsets of set of pricing solutions in an efficient manner.
- a directed acyclic graph is a set of nodes connected by directed arcs, that have no loops of arcs in the same direction.
- a node A is connected to a node B via an arc A6B, then A is called a parent of B, and B is called a child of A.
- Each node may have zero, one or many parents and zero, one or many children.
- a pricing solution that is represented by a graph will be referred to as a pricing graph.
- a pricing graph that is produced by the faring process 18 and that represents a pricing solution includes three types of nodes.
- the first type of node is an exclusive node, i.e., "OR" node.
- An OR node N with children A, B and C represents an exclusive choice between A, B and C.
- a pricing- solution involving node N contains either the fares and itineraries represented by A, or by B, or by C.
- the second type of node is a collection node, i.e., an "AND" node.
- An AND node N with children A, B and C represents the sum of A, B and C.
- a pricing solution involving N contains all the fares and itineraries found within A, B and C.
- the third type of node is a terminal node.
- Terminal nodes are used to hold pricing objects. Pricing objects include fares, itineraries, surcharges, routes, prices, booking codes, taxes, rules/restrictions and other information of the user or information that might be part of a travel option.
- Pricing objects include fares, itineraries, surcharges, routes, prices, booking codes, taxes, rules/restrictions and other information of the user or information that might be part of a travel option.
- "AND” and "OR” nodes are non-terminal nodes.
- An example of the pricing-graph for a hypothetical round-trip journey is presented below in TABLE 1. For each node, its type and children are listed. If a node is a terminal, the fare or itinerary is provided. Many nodes in the pricing graph have more than one parent. TABLE 1
- This pricing-graph represents a total of nine pricing solutions. These solutions can be extracted from the pricing- graph by descending from the root node, node 0. At every OR node a choice between children is made, and the choice determines the pricing-solution that results. At every AND node each child branch is descended, and the results are combined.
- BOS6LAX UA023 is an itinerary which uses standard nomenclature to represent airports BOS and LAX, airline UA, and flight number 023. In general, conventional nomenclature used in the airline industry will be used herein.
- the pricing-graph encodes the requirement that two itineraries are combined, one from slice 1 and one from slice 2, to form a pricing solution. Further, each itinerary is spanned by fares. In this case each pricing solution involves two fares, and round-trip fares are combined with like round-trip fares. In most circumstances, the number of nodes in the pricing-graph is small compared to the number of pricing- solutions those nodes represent. In many cases, a graph of 10,000 or so nodes can represent more than 1,000,000,000 pricing-solutions .
- FIG. 3A the nodes of the pricing graph corresponding to Table 1 are shown, as an example.
- This figure illustrates the manner in which nodes in the pricing graph data structure as represented in Table 1 are combined to provide the pricing solutions shown in Table 2.
- pricing solution No. 1 (from TABLE 2) as an example, it can be shown that starting at the top of the graph at node 0, node 0 allows for a choice between nodes 1, 2, and 3.
- Node 1 is chosen.
- Node 1 is the AND node that points to nodes 10 and 14, and has two pointers to node 17.
- Node 10 is an OR node which provides a choice of either nodes 11 or nodes 12.
- 3A corresponds to a terminal node, the itinerary (>BOS-LAX UA 023) .
- Node 12 corresponds to a terminal node, the itinerary BOS-DFN UA 100, DFN-LAX UA 103.
- This second choice in node 10 will provide pricing solutions corresponding to numbers 4-6, respectively. Therefore, selecting node 11 provides the itinerary for the first slice of solution 1.
- the fare for pricing solution 1 is provided by node 17 which has two pointers, one for each slice, to the fare "US BOS-LAX RT QE7NR" corresponding to the fare shown for pricing solution no. 1 in Table 2 for the first slice.
- node 14 which is referenced in AND node 1 that points to the itinerary LAX-BOS UA 515.
- the corresponding fare is also from terminal node 17 since it is a round trip fare UA BOS-LAX RT QE7NR.
- a second one of the pricing solutions for example, the pricing solution 4 incorporating the terminal node 12 is provided by starting at node 0, and using node 1.
- Node 1 is an AND node requiring that nodes 17 (twice) , node 10, and node 14 be included.
- Node 10 is an OR node as mentioned above and is used to select node 12 which is the itinerary including segments ABOS6DFW UA 100" and ADFW6LAX UA 103". From node 1, node 14 the return itinerary LAX-BOS UA 515 also is reached. Node 17 also is chosen which contain the round trip fares. Similarly, the remaining ones of the pricing solutions can be extracted from the pricing graph in the same manner as the two examples given above .
- a graph will typically have many more pricing solutions than nodes in the graph.
- the example just illustrated in conjunction with FIG. 3A has 9 pricing solutions and 19 nodes which is an exception to that general rule.
- Another example of a pricing graph which does satisfy that general observation is shown in conjunction with FIG. 3B.
- a pricing graph is shown having 43 nodes N0-N42 that when combined represent 856 pricing solutions.
- Each node in the pricing graph has a number associated with it corresponding to the number of pricing solutions that is represents.
- identifiers (representing the nodes of the terminals) are substituted in the pricing graph for the actual terminal objects of the graph.
- FIG. 3B shows examples of a pricing graph for a round trip LAX-BOS journey. This example shown in FIG. 3B is generally more representative of an outcome of a faring search. That is, generally the pricing graph represents more pricing solutions than nodes contained in the graph.
- the faring process 18 includes a process 80 to retrieve itinerary sets for all slices in an itinerary.
- the itinerary sets are provided from the scheduler process 16 for each slice of a journey where a slice corresponds to a direction of travel.
- the faring process 18 decomposes 82 the itinerary into faring atoms.
- faring atoms refer to a sequence of flight segments or equivalently legs that are spanned by a single fare. For example, the itinerary UA005 from DFW to BOS at 12:30 on 12NOV
- a faring atom is represented by a data structure that preferably includes the following fields as shown in TABLE 5
- the faring process 18 applies the rules 88 to the faring atoms to produce fare components.
- Fare-components are combinations of faring-atoms and fares.
- Fare components also store extra information produced during the rule-checking process, such as information about surcharges and penalties and discounts that are applied to the base fare price.
- the faring process 18 constructs 90 priceable units. For certain types of rules such as those which require access to fares and/or flights from outside of the fare component, those rules are stored in the fare component for later or deferred evaluation.
- the priceable unit process 90 takes valid fare components and constructs priceable units from the fare components. This process 90 involves grouping fare components from different slices and checking fare component combination restrictions. At this stage of processing, the rules deferred in step 88 are reapplied.
- Priceable units are represented by priceable-unit-cores and p ⁇ ceable-unit-labels .
- Priceable-unit-cores are collections of fares and other information associated with fares within a p ⁇ ceable-unit, such as discounts and penalties and surcharges.
- Priceable-unit-cores (TABLE 7) are referenced by priceable- umt-labels . TABLE 7
- Priceable-unit-labels group a set of priceable-unit-cores with sets of faring-atoms. Together, they are used to represent sets of priceable-units (TABLE 8).
- the itineraries and priceable units are grouped together into complete set of pricing solutions. This occurs by a link process 94 that links itineraries to corresponding pricing units from different slices to provide the pricing solution. At this juncture, any remaining cross priceable unit fare combinability checks are performed to eliminate invalid combinations .
- the linking process involves two additional data structures slice-label-sets and open-label-sets.
- Slice-label-sets group itinerary divisions by the multi-slice priceable-unit-labels they can enter into.
- a unique slice-label-set is constructed for every set of multi-slice priceable-unit-labels.
- Each slice-label-set stores both the set of multi-slice priceable-unit-labels and a set of i tinerary- label -holders, which contain single-slice priceable-unit-labels on a per-itinerary basis.
- Each slice-label-set is a pair of an itinerary and a set of division-label -holders .
- Each of these division-label-holders is a pair of a division and a set of sets of single-slice priceable-unit-labels (TABLE 9) .
- Open-label-sets (TABLE 10) are used to summarize the state of the linking process 94. Each is a set of "open" multi-slice priceable-unit-labels and a set of backward-links . Each of these backward-links is a pair of a slice-label-set and an open- label-set . TABLE 10
- the pricing solution resulting from the linking process 94 is used to construct a pricing graph from the various data structures built during the preceding processes. This pricing graph is transmitted to the client process or can be stored for later use or transmission.
- a pseudocode representation of the high level processing logic involved in the above search procedure is set out below in TABLE 11.
- a pricing graph 38' (FIG. 3) is produced containing logically combinable nodes that can be used to efficiently and compactly represent a set of pricing solutions 38 (FIG. 1) .
- the pricing graph 38' as used herein is a so-called directed acyclic graph although other types of representations could be used. For example, a grammar could be used.
- the pricing graph 38' is constructed 300 from data structures 302 (summarized below in TABLE 12 and mentioned in conjunction with FIGS. 4A-4B) provided during the preceding processes.
- the data structures convert 304 to one or more nodes in the pricing graph.
- the open-label-set data structure becomes an OR node and its children are the converted versions of its backward links. Each backward link in the open label set is converted to an AND node. If a pricing object is shared, for example, a priceable unit core is shared between several priceable unit labels, then its counterpart nodes in the pricing graph will be shared so that the size of the pricing graph is not unnecessarily enlarged.
- the converted nodes are placed 306 in the pricing graph nodes. Terminal objects such as fares and itineraries undergo essentially no conversion. They are placed 308 into special terminal nodes with no children and are obtained from the various data structures that have the pricing objects .
- Subroutine convert-objects (objects)
- node new-node()
- node terminal-object nil return(node)
- node new-node()
- the pricing graph 38' resulting from the search procedure 54 provides a compact way for representing a very large number of set of pricing solutions.
- the number of pricing solutions can be returned in the form of a simple list, this is not desirable.
- a very large number of pricing solutions can be difficult to manipulate, enumerate and interrogate and to transfer/transmit across a network since the amount of data involved is very large.
- the pricing graph 38' provides a more compact way of representing these pricing solutions.
- the compact representation of the range of set of pricing solutions is generated where choices are represented explicitly and redundancy is removed wherever possible.
- the pricing graph 38' produced by the search procedure 54 includes three types of nodes.
- the first type of node is a node that represents choices called "LOGICAL OR" nodes.
- the second type of node is a node that represents collections referred to as "LOGICAL AND" nodes.
- a third type of node represented in the pricing graph is a terminal node that represents pricing objects.
- Each node contains a "type”, which specifies whether the node is an AND node, an OR node or a terminal node.
- the data structure also contains either list of children (if the node is an AND node or an OR node) or a terminal object (if the node is a terminal) .
- the node contains fields that store values used by algorithms that manipulate the pricing graph 38'.
- the pricing graph 38' is a compact representation of a set of set of pricing solutions.
- the typical number of set of pricing solutions represented by pricing graph ranges from tens of millions into hundreds of billions with the number of nodes in the graph ranging from thousands to tens of thousands.
- the pricing graph can be easily stored and/or transmitted over a network or other connection to a client and represents complete representation of all or substantially all of possible pricing solutions. Therefore, the pricing graph 38' can be used by a smart client without further intervention from the server 12.
- FIG. 6 a high level illustration of a process 300 that operates on the pricing graph 38 ' typically as a client process 36 on the client computer system is shown.
- the process 300 includes a user query 302 that passes parameters into a process 304 and a value function 306 to extract from the pricing graph 38 ' certain pricing solutions 308 that satisfy parameters specified by the user query 302.
- the extracted pricing solutions are returned as a list 308 or other representation.
- the pricing solution list 308 will contain pricing solutions extracted from the pricing graph 38 ' in accordance with user specified parameters from the user query 302 using one of the processes 304 and one of 7, illustrative processes are shown. In particular, in response to the user query 302, one of the processes is executed.
- the processes 304 can comprise a find best "value” and pricing solutions associated with the value (e.g., price) process 304a; find best "value” and pricing solutions associated with the value for "node” (e.g., find best price for a particular itinerary) process 304b; an enumeration for "N” pricing solutions 304c; or an enumeration process that lists the pricing solutions according to some "value.” Additional enumeration processes can be provided to produce query results corresponding to different ways of looking at pricing solutions extracted from the pricing graph 38 ' .
- a node invalidating process 304e that invalidates selected nodes from contributing to a pricing solution is also included.
- Efficient algorithms 304 are used for manipulating this representation to extract information of interest and to enumerate set of pricing solutions from the structure. For example, it is possible to quickly extract the cheapest solution; to find the cheapest solution involving selected fares and itineraries; to verify whether any pricing solution remains if specific fares or itineraries are excluded; to enumerate solutions under various orderings and so forth.
- the representation is compact enough so that it can be efficiently stored and transmitted such as from the server to the client.
- One benefit, therefore, is that after a single fare search 54 in the server process 16, the server process 16 transfers the pricing graph 38 to the client process 36.
- the client process 36 can examine and manipulate the large space of pricing solutions represented in the pricing graph 38' without further interaction with the server process 18.
- each of the enumeration processes to be described operate on the pricing graph to extract pricing solutions from the pricing graph according to particular criteria that can be set, for example, by a client system 30c (FIG. 2) in response to a user query 48 (FIG. 4) .
- client system 30c FIG. 2
- user query 48 FIG. 4
- Examples of user queries as well as a display representation for information extracted from the pricing graph will be described below.
- An example of an enumeration function enumerates pricing solutions in a specific order. For example, an enumeration function can enumerate the 100 cheapest pricing solutions represented by the pricing graph 38 ' .
- a second enumeration function can find extreme points of the set of pricing solutions. This can be used, for example, to find the most convenient pricing solution.
- a value function can specify a minimum value of some value over the set of pricing solutions that involve a particular node. One value function finds for each itinerary the cheapest pricing solution that involves that itinerary or the shortest total duration of any pricing solution that involves that itinerary.
- each of the above operations can be performed on a subset of the graph. For example, it may be desirable to enumerate the 100 cheapest solutions that involve a given itinerary or finding the most convenient solution that involves only refundable fares or includes only certain airlines or excludes certain airlines.
- VALUE FUNCTIONS There are many processes or operations on the pricing graph 38' use a value-function, a function that operates on the terminal nodes of the pricing graph 38' and returns a numerical value that can be used to rank pricing-solutions. Examples of value-functions include price computed by summing the prices of fares (and penalties and surcharges) in a pricing-solution, duration, or convenience (that might be a mix of total travel- time with penalties for stops and airline-changes, for example) , or mixes of each.
- node-value- function is used to refer to a function that is applied to individual nodes in the pricing-graph, and summed to produce the value of an entire itinerary.
- value-function is used for the more general case of a function that may or may not be decomposable into the sum of a node-value-function applied to each terminal in the pricing-graph.
- the first process 304a is an example of one that finds extreme points of the set of pricing-solutions, such as the cheapest pricing-solution.
- the Best Price algorithm 304a efficiently finds the cheapest (best) price by starting at the "bottom" of the pricing-graph 38 ' and constructing the best solution for each node by looking at the best solution of its children. In this way it works in one pass from the bottom of the graph to the top. At the end of the process the root node contains the best pricing solution for the entire pricing graph 38.
- the algorithm proceeds as follows: first, the nodes in the graph are ordered by depth and placed in a list, so that iterating over the list ensures that a child node is always encountered before its parent (s). Then, iterating across the list, the best value of F is computed for each node, using the already-computed values of F for its children. At this point every node in the graph is marked with its inner-value.
- the inner-value of a node is the best possible value of the function F on the set of (partial) pricing-solutions represented by the node. As inner-values are computed, for every OR node the child with the lowest inner-value is computed and stored. Finally, the best pricing solution can be constructed by starting at the root of the graph and collecting children. Whenever an OR node is encountered, the best child is chosen (the child with the lowest inner-value) .
- a node is a terminal fare or itinerary, then its inner- value is the value of F applied to the node. If the node is an AND, representing a combination, then the minimum value of F over the partial solutions it represents is the sum of the minimum values of F over the partial solutions represented by each of its children. If a node is an OR, representing a choice, then the minimum value of F over the partial solutions it represents is found by making the optimal choice of children, that is, the child with the minimum inner-value. So the inner- value of an OR is the minimum of the inner-values of its children .
- the pseudo-code in TABLE 15 summarizes the computation of inner-values.
- the function sort-nodes takes a root node and returns a list of all nodes under it, sorted by depth with the root node at the end.
- the procedure compute-inner-values takes in a sorted list of nodes as would be produced by sort-nodes, and a node-value-function.
- the procedure find-optimal-solution takes in a root-node and a node-value-function, calls sort-nodes and compute-inner-values to calculate inner-values for all nodes in the pricing-graph, and constructs a pricing-solution.
- node. type terminal
- Another procedure 304b finds, for each node, the best (i.e., minimum) value of some value-function over all the set of pricing solutions involving that node.
- Price function 306a finds for each itinerary, the cheapest price of any pricing solution that contains that itinerary.
- the best price value function 306a computes inner-values, as above, and computes for every node, an outer-value, equal to the minimum value contributed by all parts of the graph except that represented by the node. For each node, the minimum value of the value-function over all solutions that involve the node, (i.e., the total-value) is computed as the sum of that node's inner-value and outer-value.
- the outer-value and total-value of a node are computed in a manner very similar to the computation of the inner-value.
- the outer-value for each node is calculated starting from the root of the graph, that has an outer-value of 0.
- Each node propagates outer-values down to its children.
- An OR-node passes its outer-value unchanged.
- An AND-node adds to its outer-value the inner-values of all children except that being propagated to.
- the total-value is computed as the sum of the inner- value and outer-value.
- the above algorithms can be easily adapted to accommodate checking whether the node is valid.
- the computation of inner-values the first step in all the above algorithms, is modified to mark for every node whether the node represents any valid partial pricing-solutions given a specific query parameter. This information can be used in the rest of the algorithms. Every terminal node contains a field "valid?" that is either true or false.
- the compute-inner-values procedure uses these values to set the "valid?" field for nonterminals. See TABLE 17 below:
- node type terminal
- the enumeration algorithm 304c maintains a queue of partial-solutions, ordered by the lowest possible total value of the value-function over all complete solutions that contain the partial-solution.
- a single partial solution is constructed from the root node of the pricing-graph 38'.
- the best partial-solution is dequeued, and expanded.
- Each partial-solution has a set of non-terminal nodes and a set of terminal objects.
- a partial-solution is expanded by selecting a non-terminal node and substituting the node's children (all of its children in the case of an AND, one of its children in the case of an OR) . If a dequeued partial-solution contains only terminal objects, it is complete, and is returned.
- the algorithm can accommodate value-functions that cannot be decomposed into the sum of a node-value-function. It does this by applying a second penalty-value-function to partial pricing-solutions as it constructs them.
- This function returns a non-negative number when given a new terminal object and existing set of terminal objects. The number is added to the values produced by the normal node-value-function. If the number is positive, it acts as a penalty.
- An example of how this could be used is for the case where a penalty is applied if travel in two slices is on different airlines.
- the penalty- value-function would return a (positive) penalty if the terminal was an itinerary, and the set of existing terminals contained an itinerary with travel on different airlines. Otherwise it would return 0. See TABLE 18 below.
- node type terminal
- node type AND
- node inner-value 0
- node valid'' true
- the diversity process 350 includes generating 352 an ordered list of travel requirements that represent conditions possibly required for a travel option to be the best travel option to generate.
- the diversity process 350 selects 354 for each travel requirement the one or more travel options that satisfy the requirement preferably by choosing those travel options that best satisfy one or more travel preference functions that can be used to order travel options.
- the air travel planning system generates the following 10 travel requirements for a set of travel options that each include one or more flights.
- the diversity process 350 for each of the requirements the planning system selects 354 from the large set of candidate travel options e.g., the cheapest travel option that satisfies the requirement.
- the cheapest option is generated; the cheapest options all on American Airlines; the cheapest travel options all on United Airlines; the cheapest travel options that are non-stop; and so forth.
- These travel options are displayed 356 to provide a traveller a desirable option even if the traveller has restrictions on the times the traveller can travel, or preferences for one airline over another. These options are possible more desireable than if the system had merely generated and sent the 10 cheapest solutions without regard to producing a diverse set of solutions taking into consideration preferences of the traveller.
- the diversity process 360 generates a diverse list of travel options from a larger set of travel options.
- the diversity process iterates through a set of travel requirements and selects the best travel option for each requirement.
- the diversity process 360 can include an optional process that may improve efficiency in some cases by eliminating more-restrictive travel requirements that are satisfied by solutions selected for less-restrictive travel requirements.
- the diversity process 360 thus includes a procedure for generating a diverse list of (N) travel options (Rts) from a larger list of travel options (Ts), that are the best travel options for a set of travel requirements (R) , as defined by an ordering function F.
- the diversity process 360 generates 362 an prioritized (ordered) list of requirements Rs, and sorts 364 the list of travel options (Ts) by function (F) to produce a best-first ordered list (Ts2).
- the diversity process 360 initializes the list of result travel options (RTs) to be empty. If the remaining list of requirements (Rs) is empty, the process 360 returns an ordered list of diverse travel options (Rts).
- the diversity process selects 366 the first travel requirement (R) from the ordered list of requirements (Rs) and removes 368 a requirement (R) from the requirement list (Rs) .
- the diverstiy process 360 find 370 a first (e.g., best) option T in the best-first ordered list (Ts2) that satisfies travel requirement (R) .
- the set of travel options is represented by a data structure that stores a large set of travel options by representing permitted combinations of smaller travel option components such as airline flights and fares.
- the travel option selection process above is implemented using a more complicated operation than searching through an ordered list.
- the process for finding 370 the best travel option that satisfies a travel requirement is implemented for a representation that expresses travel options in terms of permitted combinations of smaller travel option components by disabling option components inconsistent with the requirement .
- the process 360 can use the node invalidating functions to invalidate nodes 422 in the pricing graph 38 that are inconsistent with the requirements.
- the process 360 applys 424 an enumeration algorithm that extracts the best solution from the pricing graph representation.
- the diversity process 360 calls an enumeration function, as described above, to enumerate all of the valid pricing solutions from the pricing graph that are remaining after the diversity process selectively invalidated nodes in the graph inconsistent with the travel requirements. If no option in the best-first ordered list (Ts2) satisfies 72 the requirement (R) , the process 360 goes to check 374 if the remaining list of requirements (Rs) is empty. Otherwise, the diversity process determines 376 if a travel option T is not already in result travel options list (Rts) . If the option T is not in the list (Rts) , the diversity process adds 378 the travel option T to end of the result travel option list (Rts) .
- the process 360 returns the ordered list of diverse travel options .
- the diversity process 360 could optionally determine 382 for a travel requirement (R2) in the set of travel requirements (Rs), whether the requirement (R2) is included in a prior requirement (R) , and whether the travel option T also satisfies 384 the requirement (R2) . If the travel option T satisfies the requirement (R2) , the process 360 can remove 386 the requirement R2 from the requirement list (Rs) and return to determine 74 (FIG. 3) if the remaining list of requirements is empty.
- the list may be a fixed list, for example the list of ten requirements in the example above.
- the list may be generated taking into account the number of solutions required, the ordering function, and the large set of candidate travel options.
- the list may be generated 362 by filling 392 in a set of template requirements. A sample set of templates for air travel is
- the large candidate set of travel options may be analyzed 394 to find all parameters e.g., airlines found in any travel option, all departure dates for outbound and return, and all departure parts-of-day (morning, afternoon, evening) for outbound and return.
- the ordered list of requirements is generated by filling 96 in for each template all airlines, dates and parts-of-day present in the options.
- the diversity process 360 can be run more than once with different travel option preference functions (a set of F's). For example, a travel planning system may output a diversity of travel options that include diverse options that are cheap and diverse options that are convenient, reflecting uncertainty in whether a traveller is cost-sensitive or convenience-sensitive.
- a travel planning system may output a diversity of travel options that include diverse options that are cheap and diverse options that are convenient, reflecting uncertainty in whether a traveller is cost-sensitive or convenience-sensitive.
- FIG. 12 an alternative diversity process 100 to generate a diverse set of travel options from a larger set of travel options is shown.
- the alternative diversity process 400 generates the best one or more travel options as defined by each of a set of different travel preference functions.
- the alternative diversity process 400 defines a set of travel preference functions with each function capable to order travel options.
- the set might include "cheapest”, “quickest”, and “most-convenient” where each is a function that assigns a numerical score to a complete travel option (such as price, total-trip-time, and total trip-time with penalties for stops).
- Functions that assign numerical values based on combinations of cost and convenience are possible, such as functions that weigh both price and time.
- the alternative diversity process 400 Given set of travel options Ts 401, a set of preference functions Fs, and a desired number of answers for each preference function Ns, the alternative diversity process 400 returns a reduced set of diverse travel options Rts.
- the alternative diverstiy process initializes 402 a list of result travel options RTs to be empty and for each preference function F in the set of preference functions Fs and number of travel options (N) in the set of desired number of answers in each preference function (Ns) , the alternative diversity process 400 computes 404 the N best travel options in Ts as defined by F.
- the alternative diversity process 400 For each travel option T, unless the travel option T is in the set of diverse travel options Rts 406 , the alternative diversity process 400 adds 408 the travel option T to the set of diverse travel options Rts checks 410 the number of options. The alternative diversity process 400 outputs 412 the diverse set of travel options (RTs) .
- the diversity process can be run more than once with different travel option preference functions (a set of F's) .
- a travel planning system may wish to output a diversity of travel options that include diverse options that are cheap and deverse options that are convenient, reflecting uncertainty in whether a traveller is cost-sensitive or convenience-sensitive .
- a computer travel planning system that outputs a diversity of travel options may be built by combining a travel planning system that transmits a larger set of solutions to a second computer system that reduces the set of travel options using diversity procedures as described above.
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU12365/01A AU1236501A (en) | 1999-11-01 | 2000-10-27 | A method for generating a diverse set of travel options |
EP00973918A EP1230603A2 (en) | 1999-11-01 | 2000-10-27 | A method for generating a diverse set of travel options |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/431,365 | 1999-11-01 | ||
US09/431,365 US7340402B1 (en) | 1999-11-01 | 1999-11-01 | Generating a diverse set of travel options |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2001033394A2 true WO2001033394A2 (en) | 2001-05-10 |
WO2001033394A8 WO2001033394A8 (en) | 2002-06-20 |
Family
ID=23711624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/029586 WO2001033394A2 (en) | 1999-11-01 | 2000-10-27 | A method for generating a diverse set of travel options |
Country Status (4)
Country | Link |
---|---|
US (1) | US7340402B1 (en) |
EP (1) | EP1230603A2 (en) |
AU (1) | AU1236501A (en) |
WO (1) | WO2001033394A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7305356B2 (en) | 2001-05-25 | 2007-12-04 | Amadeus Americas, Inc. | Travel value index |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001090992A2 (en) * | 2000-05-22 | 2001-11-29 | Pan Travel Company Llc | Methods and apparatus for managing a tour product purchase |
US9552599B1 (en) | 2004-09-10 | 2017-01-24 | Deem, Inc. | Platform for multi-service procurement |
US8121953B1 (en) | 2004-12-30 | 2012-02-21 | Rearden Commerce Inc. | Intelligent meeting planner |
US8090707B1 (en) | 2005-07-07 | 2012-01-03 | Rearden Commerce Inc. | Chance meeting addition to trip planner or meeting planner |
US8185419B2 (en) * | 2006-01-18 | 2012-05-22 | Google Inc. | Incremental searching with partial solutions for multi-passenger multi-route travel planning |
US8589195B2 (en) * | 2006-01-18 | 2013-11-19 | Google Inc. | Multi-passenger multi-route travel planning |
US8005696B2 (en) | 2006-01-18 | 2011-08-23 | Ita Software, Inc. | Incremental searching in multi-passenger multi-route travel planning |
US7921022B2 (en) | 2006-01-18 | 2011-04-05 | Ita Software, Inc. | Multi-passenger multi-route travel planning |
US20070168854A1 (en) * | 2006-01-18 | 2007-07-19 | De Marcken Carl G | User interface for presentation of solutions in multi-passenger multi-route travel planning |
US8185418B2 (en) * | 2006-01-18 | 2012-05-22 | Google Inc. | Multi-passenger multi-route travel planning |
US8306835B2 (en) | 2006-01-18 | 2012-11-06 | Google Inc. | User interface for inputting multi-passenger multi-route travel planning query |
US8005695B2 (en) | 2006-01-18 | 2011-08-23 | Ita Software, Inc. | Bias of queries for multi-passenger multi-route travel planning |
US20120089406A1 (en) * | 2010-10-11 | 2012-04-12 | Steven Ladd Huffman | System and method for grouping trip itineraries |
US9449288B2 (en) | 2011-05-20 | 2016-09-20 | Deem, Inc. | Travel services search |
US20140278614A1 (en) * | 2013-03-12 | 2014-09-18 | Amadeus S.A.S. | Alternative travel recommendations |
US10032195B2 (en) * | 2013-03-13 | 2018-07-24 | Airline Tariff Publishing Company | System, method and computer program product for providing a fare analytic engine |
US20140278802A1 (en) * | 2013-03-15 | 2014-09-18 | Google Inc. | Producing and providing data for rendering a travel cost heatmap |
US20160042301A1 (en) * | 2014-08-08 | 2016-02-11 | Google Inc. | Support of multiple passenger counts in a single travel search query |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4862357A (en) * | 1987-01-28 | 1989-08-29 | Systemone Holdings, Inc. | Computer reservation system with means to rank travel itineraries chosen in terms of schedule/fare data |
US5021953A (en) * | 1988-01-06 | 1991-06-04 | Travelmation Corporation | Trip planner optimizing travel itinerary selection conforming to individualized travel policies |
EP0401283A1 (en) | 1988-02-22 | 1990-12-12 | System One Holdings, Inc. | Travel management system |
US5191523A (en) * | 1989-11-06 | 1993-03-02 | Prism Group, Inc. | System for synthesizing travel cost information |
EP0451371B1 (en) | 1990-04-13 | 1997-11-26 | Koninklijke Philips Electronics N.V. | A method for organizing and accessing product describing data pertaining to an engineering process |
US5177684A (en) | 1990-12-18 | 1993-01-05 | The Trustees Of The University Of Pennsylvania | Method for analyzing and generating optimal transportation schedules for vehicles such as trains and controlling the movement of vehicles in response thereto |
US5255184A (en) | 1990-12-19 | 1993-10-19 | Andersen Consulting | Airline seat inventory control method and apparatus for computerized airline reservation systems |
US5253166A (en) | 1991-03-29 | 1993-10-12 | Disc Corporation | Pre-ticket travel reservation record keeping system |
US5237499A (en) | 1991-11-12 | 1993-08-17 | Garback Brent J | Computer travel planning system |
US5832453A (en) * | 1994-03-22 | 1998-11-03 | Rosenbluth, Inc. | Computer system and method for determining a travel scheme minimizing travel costs for an organization |
US5948040A (en) | 1994-06-24 | 1999-09-07 | Delorme Publishing Co. | Travel reservation information and planning system |
US5623413A (en) | 1994-09-01 | 1997-04-22 | Harris Corporation | Scheduling system and method |
US5570283A (en) | 1994-11-18 | 1996-10-29 | Travelnet, Inc. | Corporate travel controller |
US5644721A (en) | 1995-08-30 | 1997-07-01 | System One Information Management, L.L.C. | Multiple currency travel reservation information management system and method |
NZ332228A (en) | 1995-09-06 | 2000-01-28 | Sabre Group Inc | Computerised corporate travel management system |
US5832454A (en) | 1995-10-24 | 1998-11-03 | Docunet, Inc. | Reservation software employing multiple virtual agents |
US5732398A (en) | 1995-11-09 | 1998-03-24 | Keyosk Corp. | Self-service system for selling travel-related services or products |
US5832451A (en) | 1996-01-23 | 1998-11-03 | Electronic Data Systems Corporation | Automated travel service management information system |
US6119094A (en) * | 1996-02-29 | 2000-09-12 | Electronic Data Systems Corporation | Automated system for identifying alternate low-cost travel arrangements |
US5838973A (en) | 1996-05-03 | 1998-11-17 | Andersen Consulting Llp | System and method for interactively transforming a system or process into a visual representation |
US5897620A (en) | 1997-07-08 | 1999-04-27 | Priceline.Com Inc. | Method and apparatus for the sale of airline-specified flight tickets |
US5797127A (en) | 1996-12-31 | 1998-08-18 | Walker Asset Management Limited Partnership | Method, apparatus, and program for pricing, selling, and exercising options to purchase airline tickets |
US6295521B1 (en) * | 1998-07-02 | 2001-09-25 | Ita Software, Inc. | Travel planning system |
US6360205B1 (en) * | 1998-10-30 | 2002-03-19 | Trip.Com, Inc. | Obtaining and utilizing commercial information |
US6442537B1 (en) * | 1999-06-24 | 2002-08-27 | Teleran Technologies, Inc. | System of generating and implementing rules |
-
1999
- 1999-11-01 US US09/431,365 patent/US7340402B1/en not_active Expired - Lifetime
-
2000
- 2000-10-27 AU AU12365/01A patent/AU1236501A/en not_active Abandoned
- 2000-10-27 EP EP00973918A patent/EP1230603A2/en not_active Withdrawn
- 2000-10-27 WO PCT/US2000/029586 patent/WO2001033394A2/en active Search and Examination
Non-Patent Citations (1)
Title |
---|
No Search * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7305356B2 (en) | 2001-05-25 | 2007-12-04 | Amadeus Americas, Inc. | Travel value index |
Also Published As
Publication number | Publication date |
---|---|
AU1236501A (en) | 2001-05-14 |
EP1230603A2 (en) | 2002-08-14 |
US7340402B1 (en) | 2008-03-04 |
WO2001033394A8 (en) | 2002-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8571903B1 (en) | Pricing graph representation for sets of pricing solutions for travel planning system | |
US6381578B1 (en) | Factored representation of a set of priceable units | |
US6307572B1 (en) | Graphical user interface for travel planning system | |
US6275808B1 (en) | Pricing graph representation for sets of pricing solutions for travel planning system | |
US6377932B1 (en) | Rules validation for travel planning system | |
US6295521B1 (en) | Travel planning system | |
US7340402B1 (en) | Generating a diverse set of travel options | |
Torrens et al. | Smartclients: Constraint satisfaction as a paradigm for scaleable intelligent information systems | |
Vincke | Analysis of multicriteria decision aid in Europe | |
Kurtz et al. | The NASA astrophysics data system: Overview | |
Linden et al. | Interactive assessment of user preference models: The automated travel assistant | |
US7305356B2 (en) | Travel value index | |
EP1092203A1 (en) | Travel planning system | |
US20140258045A1 (en) | Collecting and displaying price information | |
US7340403B1 (en) | Method, system, and computer-readable medium for generating a diverse set of travel options | |
US20050138631A1 (en) | System and method for providing metadata interaction and visualization with task-related objects | |
US20020143587A1 (en) | Optimized system and method for finding best fares | |
US20020173978A1 (en) | Method and apparatus for scoring travel itineraries in a data processing system | |
US20060235768A1 (en) | System, method, and computer program product for reducing the burden on inventory system by displaying product availability information for a range of parameters related to a product | |
EP1552455A2 (en) | Flexible-date travel queries | |
US20080015926A1 (en) | Gradient Based Optimization of Fare Prices and Travel Parameters | |
Pu et al. | Decision tradeoff using example-critiquing and constraint programming | |
US8126783B2 (en) | Rule-based shopping | |
US8452624B2 (en) | Online travel reservation system and method delivering restriction-aware travel opportunities | |
Cherry | Weaving a web of ideas |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2000973918 Country of ref document: EP |
|
AK | Designated states |
Kind code of ref document: C1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: C1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
D17 | Declaration under article 17(2)a | ||
WWP | Wipo information: published in national office |
Ref document number: 2000973918 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |