Computer-implemented method for reservation allocation, reservation system, and computer program
The reservation allocation system addresses inefficiencies in restaurant reservation systems by using a priority order and compatibility-based algorithms to optimize seat allocation, reducing burden and enhancing fairness for both establishments and customers.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- KOBE UNIV
- Filing Date
- 2025-12-08
- Publication Date
- 2026-06-18
AI Technical Summary
Existing reservation systems struggle to efficiently allocate reservations in popular restaurants, leading to inefficiencies for both establishments and customers, as they often result in time-consuming decision-making processes and unfair competition for limited seats.
A reservation allocation system that utilizes a priority order for reservations, which can be updated based on accepted reservations and compatibility between users, using algorithms like TTC and SLA to optimize seat allocation while considering restaurant preferences and user desires.
The system efficiently allocates reservations by reducing the burden on restaurants and customer effort, ensuring fairness and optimizing seat utilization while considering compatibility and restaurant preferences.
Smart Images

Figure JP2025042718_18062026_PF_FP_ABST
Abstract
Description
Computer-Implemented Method, Reservation System, and Computer Program for Reservation Allocation
[0001] The present disclosure relates to a computer-implemented method, a reservation system, and a computer program for reservation allocation. This application claims priority based on Japanese Application No. 2024-214240 filed on December 9, 2024, and incorporates all the descriptions set forth in the above Japanese application.
[0002] Patent Document 1 discloses a restaurant reservation system. The restaurant reservation system of Patent Document 1 receives requests for reservations including a set of attributes such as a date or range of dates, a range of times, a location, a dish, and the number of people, determines a set of available reservations based on the actual table availability for the date, time, and number of people, and determines one or more proposals based on the date, time, and number of people.
[0003] Japanese Patent Application Laid-Open No. 2013-20626
[0004] The inventor has obtained the idea of using the concept of "priority order" for reservations that can occur in a slot, which is a unit of reservation, and determining which user's reservation to accept according to the user's wishes.
[0005] Based on such an idea, the present disclosure provides a new technology for reservations.
[0006] The technology of the present disclosure includes setting a priority order for reservations that can occur in each of a plurality of slots, which is a unit of reservation, setting a desired order of one or more reservations desired by a user for each of a plurality of users, and determining, for each of the plurality of slots, which reservation included in the desired order of each of the plurality of users to accept based on the priority order.
[0007] Further details will be described as embodiments below.
[0008] Figure 1 is a diagram of the reservation allocation system configuration. Figure 2 is a flowchart of reservation allocation using the TTC algorithm. Figure 3 is an explanatory diagram of reservation allocation using the TTC algorithm. Figure 4 is an explanatory diagram of reservation allocation using the TTC algorithm. Figure 5 is an explanatory diagram of reservation allocation using the TTC algorithm. Figure 6 is an explanatory diagram of reservation allocation using the TTC algorithm. Figure 7 is an explanatory diagram of reservation allocation using the TTC algorithm. Figure 8 is an explanatory diagram of reservation allocation using the TTC algorithm. Figure 9 is a flowchart of reservation allocation using the SLA algorithm. Figure 10 is reservation allocation using the SLA algorithm. Figure 11 is reservation allocation using the SLA algorithm. Figure 12 is reservation allocation using the SLA algorithm. Figure 13 is reservation allocation using the SLA algorithm. Figure 14 is reservation allocation using the SLA algorithm. Figure 15 is reservation allocation using the SLA algorithm.
[0009] <1. Overview of the computer implementation method, reservation system, and computer program for reservation allocation>
[0010] (1) The method according to the embodiment may be a computer implementation method for reservation allocation. The method according to the embodiment may be a computer implementation method that includes setting a priority order for reservations that may occur in a slot which is a unit of reservation for each of a plurality of slots, setting a desired order for one or more reservations desired by the user for each of a plurality of users, and determining which of the reservations included in the desired order for each of the plurality of users to accept in each of the plurality of slots, based on the priority order.
[0011] (2) The method according to the embodiment may further include updating the priority order.
[0012] (3) The method according to the embodiment may further include updating the priority order in accordance with reservations already received.
[0013] (4) The method according to the embodiment may further include updating the priority order of the slots in accordance with the reservations already accepted in those slots. In this case, the priority order after the update is determined by one or more reservations (a set of reservations) that have already been accepted in each slot from among the possible reservations (reservations included in the priority order before the update). Furthermore, the priority order may be updated not only in the slot in which the priority order is being updated, but also in accordance with one or more reservations (a set of reservations) that have already been accepted in any other slot (a slot other than the one in question). That is, the priority order of a slot may be updated in accordance with the reservations accepted in other slots. The priority order of a slot may be updated in accordance with the reservations accepted in that slot and other slots other than that slot. (5) The method according to the embodiment may further include updating the priority order of the slots in accordance with the reservations accepted in other slots other than the one in which the priority order is being updated.
[0014] (6) The method according to the embodiment may further include updating the priority order of the slots based on data indicating the relationship between a first user whose reservation has already been accepted for the slot and a second user other than the first user.
[0015] (7) The relationship may include the compatibility between the first user and the second user.
[0016] (8) Making a decision based on the priority order may include deciding whether to accept a reservation from a target user in a slot included in the desired order of the target user selected from the plurality of users, in the order of slots according to the target user's desired order, using the probability based on the priority order in that slot.
[0017] (9) The priority order can be set independently of the desired order.
[0018] (10) The priority order may include a priority order for reservations not included in the preferred order.
[0019] (11) The system according to the embodiment may be a reservation system comprising a processor that performs processing including setting a priority order for reservations that may occur in a slot which is a unit of reservation for each of a plurality of slots, setting a preferred order for one or more slots that a user wishes to reserve for each of a plurality of users, and determining which of the reservations included in the preferred order for each of the plurality of users to accept for each of the plurality of slots, based on the priority order.
[0020] (12) The computer program according to the embodiment causes a computer to perform processing. The processing includes setting a priority order for reservations that may occur in a slot, which is a unit of reservation, for each of a plurality of slots; setting a preferred order for one or more slots that a user wishes to reserve for each of a plurality of users; and determining, based on the priority order, which of the reservations included in the preferred order for each of the plurality of users will be accepted in each of the plurality of slots. The computer program may be stored in a computer-readable non-temporary storage medium.
[0021] <2. Examples of computer implementation methods, reservation systems, and computer programs for reservation allocation>
[0022] <2.1 Definitions of Terms>
[0023] A "slot" is a unit of reservation. A slot can be the smallest unit used to determine reservation allocation. Typically, a slot refers to a combination of a restaurant accepting reservations and a time unit. For example, a slot might be "restaurant A's lunch hours on April 1st" or "restaurant B's dinner hours on April 2nd." In this case, it is assumed that a customer can only visit a slot once, and the set of customer-slot combinations becomes the result of the reservation allocation algorithm.
[0024] A "reservation" can consist of a combination of customer, slot, and reservation conditions. However, if the context of the explanation makes it clear whose reservation it is, or which slot it is reserved for, the specific customer or slot related to the reservation may be omitted.
[0025] A "customer" is someone who wishes to make a reservation or who has made a reservation. Customers are sometimes called users. Those who wish to make a reservation may also be called reservation applicants or reservation applicant users. Those who have made a reservation may also be called reservation holders or reservation users. Users preferably include registered users who have been pre-registered in the reservation system, but may also include unregistered users.
[0026] A "restaurant" is a business entity such as a restaurant or other company that accepts reservations. A restaurant may also be called a reservation provider.
[0027] "Reservation conditions" are the terms and conditions for reserving a slot. These conditions define "how" the customer and the slot match, and typically include, for example, the number of people in the reservation or the name of the meal course. Reservation conditions may also include other conditions desired by the customer or the establishment.
[0028] "Reservation allocation" is the process of matching customers (those wishing to make a reservation; users) with slots. In reservation allocation, for each of the multiple slots, it is decided which of the reservations desired by each of the multiple customers will be accepted.
[0029] A "reservation allocation algorithm" is an algorithm for reservation allocation. The algorithm can be executed by a computer. In embodiments, the reservation allocation algorithm is, for example, the TTC (Top Trading Cycles) algorithm and the SLA (Serial Lottery Application) algorithm described later. In the reservation allocation algorithm of embodiments, reservation allocation is performed based on priority order and desired order.
[0030] "Priority order" refers to the priority order of each possible reservation in the slot. "Priority order" may also be the "variable priority order" described below.
[0031] A reservation for a slot can be determined by the user and the reservation conditions. Therefore, the priority order for a slot can be a ranking of each "possible reservation" that defines which user has what reservation conditions. The maximum number of "possible reservations for a slot" is the number of users P × the number of types of reservation conditions Q. The priority order can be the priority order determined for each of the maximum (P × Q) "possible reservations for a slot". Note that the actual number of reservations assigned to the priority order may be less than (P × Q). In other words, the "priority order" does not need to be structured as a priority order for all possible reservations for a slot, but may be structured as a priority order for some of all possible reservations for a slot.
[0032] Priority may be determined as appropriate, for example, based on information from the store and / or the operator of the algorithm (reservation allocation system). Information from the store may include, for example, which users' reservation conditions should be given priority. Priority may also be determined by adding information held by the operator (for example, information about users who have used other stores) to the information from the store. Priority may be set independently of the customer's preferred order for slots. Also, because priority does not depend on the customer's preferred order, it may include priority for reservations that are not included in the customer's preferred order.
[0033] Prioritization may simply involve considering the ranking of each individual user. The ranking of each individual user may be determined, for example, by each user's rating score. The rating score may be determined, for example, by the user's past reservation history at that store. For example, a store may provide information (information regarding priority) to the reservation allocation system specifying that users who have visited the store many times should be ranked higher (rated higher), and the reservation allocation system can determine the priority order based on that information.
[0034] Furthermore, the priority order (rating) may be determined by each user's past reservation history at other restaurants. Since the reservation allocation system can also manage each user's reservation history at multiple restaurants, it can determine the priority order (rating) by taking into account each user's reservation history at other restaurants. Thus, since the priority order can be determined by the relative levels of the rating, it can be said that each slot has a rating distribution.
[0035] Furthermore, regarding unregistered users in the reservation allocation system, since it is difficult to evaluate multiple unregistered users individually, it is sufficient to treat them collectively as "unregistered users" without distinguishing between them when determining priority.
[0036] A "variable priority order" is a priority order that is updated and changes during the execution of the reservation allocation algorithm. Each slot may have a variable priority order. In the case of a variable priority order, the priority order set initially before the update is sometimes called the "initial priority order," and the priority order after the update is sometimes called the "updated priority order." Note that the priority order (non-variable priority order) does not have to be updated.
[0037] The "preferred order" is a ranking determined by the user's preference for one or more reservations.
[0038] A user's reservation may be defined by the slot and reservation conditions. Therefore, a user's preferred order may be a ranking of reservations determined by the reservation conditions for each slot. Alternatively, a user's preferred order may be a ranking of reservation "combinations." In other words, multiple reservations may share the same rank in the preferred order. The preferred order may be set based on information from the user.
[0039] <2.2 Variable Priority Ordering>
[0040] The variable priority order can be updated, for example, according to the reservations already received. By updating the priority order in consideration of the reservations already received, the priority order becomes more appropriate. The variable priority order of each slot can be updated, for example, according to the reservations already accepted in the slot where the variable priority order is updated and / or the reservations already accepted in other slots other than the said slot.
[0041] The variable priority order of each slot can be updated, for example, according to the user who has already had a reservation accepted in the slot, and the priority order of that slot can be updated. In a certain slot, by considering the user who has already accepted a reservation and updating the priority order for the remaining reservations in that slot, a priority order corresponding to the user who has already accepted a reservation can be obtained.
[0042] The variable priority order of a slot can be updated, for example, based on data indicating the relationship between a first user who has already had a reservation accepted in the slot and a second user other than the first user. The data indicating the relationship can be possessed by the reservation allocation system. The reservation allocation system can consider the relationship between a first user who has already accepted a reservation and another user (second user) in a certain slot based on the data indicating the relationship. The reservation allocation system can obtain a priority order corresponding to the relationship with the first user who has already accepted a reservation by updating the priority order for the remaining reservations in that slot based on that relationship.
[0043] The data indicating the relationship can include, for example, data indicating the compatibility between the first user and the second user. In this case, the reservation allocation system can obtain a priority order corresponding to the compatibility with the first user who has already accepted a reservation.
[0044] Hereinafter, examples of variable priority order will be described. Hereinafter, an example of updating the priority order according to the reservations already received will be described, but the method of updating the priority order is not limited to this, and can be performed in an appropriate method according to the situation during the execution of the reservation allocation algorithm.
[0045] Here, assume that a certain slot is trying to fill a reservation for three seats and has the following initial priority order. In the following, each reservation is represented in the form (*, N). * is the customer (user), which is one of a, b, c, d, e below. N indicates the number of reserved seats, which is 2 or 1 below. Initial priority order: (a, 2), (a, 1), (b, 2), (b, 1), (c, 1), (d, 1), (e, 1)
[0046] This initial priority order indicates that the reservation on the left has a higher priority and the reservation on the right has a lower priority. That is, the evaluation is in descending order from the most prioritized (a, 2) (reservation for two people of customer a) to the reservation of (e, 1). In this initial priority order, all of the above reservations are acceptable, and it is assumed that no customer can make a reservation for three seats. Also, for the compatibility between customers, assume that relational data "Customer d has good compatibility with customer e and bad compatibility with customer b" is set for this slot.
[0047] Assume that this slot first accepts the reservation (d, 1) of customer d. In this case, the updated priority order (the first updated priority order) is as follows. First updated priority order: (e, 1), (a, 2), (a, 1), (c, 1)
[0048] Since customer d and customer e have good compatibility, in the first updated priority order, the priority of the reservation (e, 1) is raised so that the reservation of customer e becomes the most prioritized. Also, considering the bad compatibility between customer d and customer b, all reservations of customer b (b, 2), (b, 1) are made unacceptable, so in the first updated priority order, the reservations of customer b (b, 2), (b, 1) included in the initial priority order are all deleted. Note that the reservation (d, 1) for the already accepted customer d is also deleted in the first updated priority order.
[0049] Further, assume that this slot accepts the reservation (e, 1) of customer e. The updated priority order (the second updated priority order) is as follows. Second updated priority order: (a, 1), (c, 1)
[0050] After accepting the two reservations (d, 1) and (e, 1), the number of remaining seats becomes 1, making it impossible to accept (a, 2), which was included in the first update priority order. Therefore, (a, 2) is removed from the second update priority order. On the other hand, the priority order for the single reservations (a, 1) and (c, 1) is maintained.
[0051] In the example above, reservations that become impossible to accept due to seating limitations are not only sequentially dropped from the priority list, but the priority order is also rearranged according to the compatibility and relationships between the customers. As a result, the likelihood of being accepted into a slot machine can change depending on the compatibility and relationships between the customers.
[0052] <2.3 Example of a reservation allocation system configuration>
[0053] Figure 1 shows an example of the configuration of the reservation allocation system 100. The reservation allocation system 100 shown in Figure 1 can be configured as a reservation system that provides store information to users and accepts reservations from users.
[0054] The reservation allocation system 100 is comprised of one or more computers. Each computer may include a processor 110 and memory 120 connected to the processor 110. The processor 110 is a CPU, GPU, or other type of processor. The memory 120 includes, for example, primary storage and secondary storage. The primary storage is, for example, RAM. The secondary storage is, for example, a hard disk drive (HDD) or solid state drive (SSD). The memory 120 may include a computer program 121 executed by the processor 110.
[0055] The processor 110 reads and executes the computer program 121 stored in the memory 120. The computer program 121 in the memory 120 contains program code that indicates instructions for the processor 110 to execute the reservation allocation process 111. When the computer program 121 is executed by the computer (processor), the computer operates as a reservation allocation system and executes each step for reservation allocation.
[0056] The reservation and allocation system 100 is connected to a network 50 such as the Internet. The reservation and allocation system 100 can communicate with client terminals, namely user terminals 200A, 200B and store terminals 300A, 300B, via the network 50. The reservation and allocation system 100 can operate as a server that performs processing for reservation and allocation for the client terminals 200A, 200B, 300A, and 300B.
[0057] User terminals 200A and 200B are computers belonging to users (customers) who wish to make a reservation. Store terminals 300A and 300B are computers belonging to stores that accept reservations. User terminals 200A and 200B and store terminals 300A and 300B are, for example, smartphones, tablets, personal computers, etc.
[0058] Each of the multiple users can access system 100 by operating user terminals 200A and 200B and send their desired reservation order (desired order data) to system 100. Similarly, each of the multiple stores can access system 100 by operating store terminals 300A and 300B and send priority order data for each slot to system 100. Priority order data is either data indicating the priority order of each slot or data for determining the priority order of each slot.
[0059] The reservation allocation system 100 sets a priority order 125 for each of the multiple slots that may occur in the reservation allocation process. As shown in Figure 1, the set priority order 125 is stored in memory 120. The reservation allocation system 100 stores the priority order 125 indicated by the priority order data received from store terminals 300A and 300B in memory 120, or determines the priority order 125 based on the "data for determining priority order" received from store terminals 300A and 300B, and if necessary, also using information held by the reservation allocation system 100. The method for determining the priority order 125 is not particularly limited, and an appropriate method can be adopted.
[0060] Furthermore, in the reservation allocation process, the reservation allocation system 100 sets the desired order 126 of one or more reservations requested by the user for each of the multiple users. The reservation allocation system 100 receives data indicating the desired order for each user from the user terminals 200A and 200B, and stores the desired order 126 indicated by that data in the memory 120.
[0061] The reservation allocation system 100 matches users (customers) with store slots (allocates reservations) by repeatedly executing a reservation allocation algorithm based on the set priority order 125 and desired order 126. Here, as mentioned above, the priority order 125 indicates the priority order for reservations that may occur in a slot, which is the unit of reservation, and can reflect the order of users (customers) desired by the store. On the other hand, the desired order 126 indicates the order of one or more reservations desired by the user. Therefore, by using both the priority order and the desired order, the store can decide whether or not to accept the user's desired reservation according to its own requirements.
[0062] <2.4 Regarding Restaurant Reservations>
[0063] Seats at popular restaurants are scarce goods. Therefore, the allocation of reservations is important from a food culture and economic (gastronomy tourism) perspective. Price mechanisms are not typically used in the allocation of restaurant reservations.
[0064] If restaurants are expected to allocate reservations on their own, popular restaurants will receive a large number of reservation requests for a limited number of available slots, making it extremely time-consuming to decide on the allocation. This places a heavy burden on each restaurant. Furthermore, the long wait for reservation allocation is inconvenient for customers as it restricts their ability to manage and adjust their schedules.
[0065] Another possibility is to allocate reservations using an online platform that mediates reservation acceptance and management. However, existing platforms simply accept reservations and cannot take into account the concerns and requests of the establishment, such as the combination of guests. Moreover, due to the ease of making reservation requests on existing platforms, reservations for rare seats tend to concentrate, leading to fierce competition. As a result, guests have to invest a tremendous amount of time and effort to participate in the competition, which can lead to unfairness among guests.
[0066] However, by using the reservation allocation system 100 according to this embodiment to allocate reservations for the scarce seats in restaurants, the self-help efforts of each restaurant and the resulting inconvenience to customers are eliminated. Furthermore, by using the reservation allocation system 100 according to this embodiment, reservations can be allocated while considering the concerns and requests of the restaurants as priority order 125. In addition, customers only need to submit their preferred order 126 for one or more reservations (by an appropriate deadline), which reduces the enormous amount of time and effort required to participate in the competition for seats and also reduces unfairness.
[0067] One example of a reservation allocation algorithm executed by the reservation allocation system 100 according to this embodiment is the TTC (Top Trading Cycles) algorithm. Another example of a reservation allocation algorithm is the SLA (Serial Lottery Application) algorithm. These algorithms will be described below. However, the reservation allocation algorithm is not limited to these.
[0068] <2.5 Reservation Allocation Using the TTC Algorithm>
[0069] The TTC algorithm according to this embodiment extends the algorithm of the same name, which has been discussed in classical many-to-one matching models such as "school choice systems," to be usable in the "model incorporating reservation conditions (referred to as "contracts" in economic literature)" as described in this disclosure. In other words, the TTC algorithm according to this embodiment is an algorithm for the framework of matching theory incorporating reservation conditions.
[0070] When discussing the TTC algorithm within the framework of traditional (many-to-one) matching theory, such as the "school choice system," it was assumed that there were no reservation conditions, and that students and schools could only choose between a binary relationship: either they match or they don't.
[0071] In previous discussions of models incorporating reservation conditions (referred to as "contracts" in economic literature), it was assumed that the slots (schools) had a "selection function" that identified a subset to select from an arbitrary given set of reservations ("contracts"), and therefore the concept of "priority," which is the essence of the TTC algorithm, could not be defined. Conversely, in the TTC algorithm according to this embodiment, by assuming that the slots have a "variable priority order (or evaluation point distribution)," the TTC algorithm can be introduced even in models incorporating reservation conditions.
[0072] Hereinafter, a specific example of the TTC algorithm according to the embodiment will be described based on the flowchart in Figure 2 and the explanatory diagrams shown in Figures 3 to 8.
[0073] Here, as shown in Figure 3(A), we consider the allocation of reservations between three slots X, Y, and Z and five customers: a, b, c, d, and e. Each slot aims to fill 3 seats (X), 3 seats (Y), and 2 seats (Z), respectively, and the store submits a variable priority order to the algorithm operator (reservation allocation system 100) (S201 in Figure 2). The initial priority order for each slot is given as follows and set in the reservation allocation system 100.
[0074] Initial priority order: X:(b,2), (e, 2), (a, 2), (b, 1), (e, 1), (a, 1), (d, 2), (c, 2), (d, 1), (c, 1) Y:(a, 3), (d, 3), (c, 3), (e, 3), (b, 3), (a,1), (d, 1), (e, 1), (c, 1), (b, 1), (a, 2), (d, 2), (e, 2), (c, 2), (b, 2) Z:(d, 1), (d, 2), (c, 1), (c, 2), (b, 1), (b, 2), (a, 1), (a, 2), (e, 1), (e, 2)
[0075] However, reservations not listed in the priority order above are considered unacceptable by each slot. For example, slot X is unacceptable for any reservation of 3 people, regardless of the customer. Each slot also shares a constraint (relationship data) that "customer b and customer d are incompatible and cannot make reservations at the same time," and the reservation allocation system 100 updates the priority order according to that constraint.
[0076] On the other hand, the customer's preferred order is given as follows and set in the reservation allocation system 100 (step S202 in Figure 2). The customer's (user's) preferred order is transmitted from the user terminals 200A and 200B to the reservation allocation system 100 by an appropriate deadline. The deadline is set before the dates of the multiple slots that are subject to reservation allocation.
[0077] Desired order: a: (X, 1) b: (Y, 2), (Z, 1), (Y, 3) c: (Z, 2), (Z, 1) d: (Y, 1), (X, 2), (Z, 1) e: (Z, 1), (X, 2)
[0078] Similar to the priority order, any reservation not listed in the preferred order above is considered unavailable by each customer.
[0079] Given the above circumstances, the process by which the TTC (Top Trading Cycles) algorithm determines the allocation of reservations (S203-S207 in Figure 2) will be explained step by step. In the following explanation, sentences in which "customer" or "slot" is the subject describe the information processing performed by the reservation allocation system 100 as the executing entity, from the perspective of the "customer" or "slot".
[0080] <First steps S203 and S204> As shown in Figure 3(B), each customer points an arrow (black arrow; the same applies hereafter) towards the slot corresponding to the reservation with the highest preference rank among the mutually acceptable reservations (slots) (S203). Also, as shown in Figure 3(C), each slot points an arrow (white arrow; the same applies hereafter) towards the customer corresponding to the reservation with the highest priority among the reservations it can accept (step S204). Here, the arrow pointed from a slot to a customer indicates that the customer has priority (or ownership) of that slot, and whether the customer has decided that they can accept the reservation related to that slot is irrelevant to the determination of whether or not they have priority.
[0081] <First S205> When S203 and S204 are performed, a cycle (a, X, b, Y) is formed as shown within the dotted line in Figure 3(D). The cycle is formed by connecting the two customers a and b and the two slots X and Y along the arrows, and constitutes a cyclical cycle.
[0082] In Figure 3(D), the arrows of the two customers a and b in the cycle (reservations in preferred order) do not match the arrows of the two slots X and Y (reservations in priority order). To match the reservations within the cycle, customers a and b exchange their priority rights (ownership). That is, customers a and b, who make up the cycle, exchange the priority rights (ownership) granted to them by slot Y and slot X, respectively (Figure 4(A)), and have their desired reservations (X, 1) and (Y, 2) accepted by the other slots X and Y, who have newly acquired priority rights (ownership) (Figure 4(B)), and then exit (Figure 4(C)). As a result, customer a's reservation (a, X, 1) is accepted by slot X, and customer b's reservation (b, Y, 2) is accepted by slot Y. At this point, customers c, d, and e remain as customers whose reservations are undecided.
[0083] <First S206> In S206, if there are still customers remaining, proceed to step S207; if there are no remaining customers, proceed to step S208. Here, there are still customers remaining, so proceed to step S207.
[0084] <First update S207> Each slot updates its priority order based on the fact that reservations (a, X, 1) and (b, Y, 2) have been accepted (first update; S207). In this case, first, each slot makes it impossible to accept any reservations related to customers a and b, who have already made reservations. Slot Y has filled two seats with customer b's reservation, so it makes it impossible to accept any reservations for two or more people. Furthermore, based on the fact that slot Y has accepted customer b's reservation, it also makes it impossible to accept the reservation (d, 1) related to customer d, based on the constraints (relationship data) related to customers b and d. In this case, the update priority order is as follows.
[0085] Priority order for the first update: X: (e, 2), (e, 1), (d, 2), (c, 2), (d, 1), (c, 1) Y: (e, 1), (c, 1) Z: (d, 1), (d, 2), (c, 1), (c, 2), (e, 1), (e, 2)
[0086] <Second round of S203 and S204> The remaining customers c, d, and e point their arrows towards the slot corresponding to the reservation with the highest preference among the mutually accepted reservations (step S203). Based on the updated priority order, (d, Y, 1) is determined to be ineligible for slot Y, and therefore cannot point the arrow shown by the dotted line in Figure 4(D). Thus, as shown in Figure 5(A), customer d points their arrow not towards reservation (Y, 1), but towards slot X, which corresponds to the next most desired reservation (X, 2).
[0087] Furthermore, as shown in Figure 5(B), each slot directs an arrow towards the highest priority reservation it can accept, based on the priority order after the first update (S204).
[0088] <Second S205> Then, a cycle of (d, X, e, Z) is formed, as shown within the dotted lines in Figure 5(C) and Figure 6(A).
[0089] Customers d and e exchange the priority rights (ownership) they have been granted by slots Z and X respectively (Figure 6(B)), and each has their desired reservations (X, 2) and (Z, 1) accepted by the slot of the person who has newly acquired priority rights (ownership) (Figure 6(C)), and then they leave the game (Figure 7(A)). As a result, slot X now accepts customer d's reservation (d, X, 2), and slot Z accepts customer e's reservation (e, Z, 1). At this point, customer c remains as a customer with no reservation decided.
[0090] <Second time on S206> Since there are still customers remaining, we proceed to step S207.
[0091] <Second update S207> Each slot updates its priority order based on the fact that reservations for (d, X, 2) and (e, Z, 1) have been accepted (second update; S207). In this case, each slot makes it impossible to accept any reservations related to customers d and e, whose reservations have been confirmed. Slot X is now completely booked, so it also makes it impossible to accept any reservations related to the remaining customer c. Furthermore, since slot Z has filled one seat with a reservation from customer e, it also makes it impossible to accept reservations for (c, 2). In this case, the updated priority order is as follows:
[0092] Second update priority order: X: Y: (c, 1) Z: (c, 1)
[0093] <Third round S203 and S204> The last remaining customer c points the arrow to the reservation with the highest preference among the mutually accepted reservations (step S203). In the preferred order, the reservation (Z, 2) that customer c originally wanted is no longer accepted because slot Z has already accepted (e, 1), so customer c cannot point the arrow as shown in Figure 7(B). Therefore, in the preferred order, customer c chooses the next mutually accepted reservation (Z, 1) that they want, and points the arrow to slot Z again, as shown in Figure 7(C).
[0094] As shown in Figure 8(A), each slot Y and Z directs an arrow towards the party corresponding to the highest priority reservation it can accept (step S204). However, slot X does not direct an arrow because all seats are already filled with reservations and there are no more reservations it can accept.
[0095] <Third time using the S205>
[0096] Then, as shown within the dotted line in Figure 8(A), a cycle (c, Z) is formed, and customer c is accepted by slot Z, which has priority (ownership), along with their reservation (Z, 1), and leaves (Figure 8(B)). Therefore, all customers' schedules are set, and there are no customers whose reservations are undecided.
[0097] <Third attempt at S206> Since there are no customers with undecided reservations, the algorithm stops at this point. Proceed to S208.
[0098] <S208> The reservation allocation system 100 outputs the set of reservations {(a, X, 1), (b, Y, 2), (c, Z, 1), (d, X, 2), (e, Z, 1)} accepted by the store up to this point as the result of reservation allocation (S208). The result of reservation allocation is transmitted to user terminals 200A, 200B and store terminals 300A, 300B.
[0099] The TTC algorithm according to the embodiment described above satisfies several desirable properties, similar to the conventional TTC algorithm introduced in school choice matching theory. The TTC algorithm according to the embodiment is "Pareto efficient" in the sense that, under weak conditions regarding variable priority, the algorithm's results satisfy the customer's (student's) preferred order as much as possible, and is also "strategy-resistant" in the sense that no customer (student) can gain anything by lying. Therefore, the advantage of this algorithm is that it can estimate the demand for stores and services from data while satisfying the customers.
[0100] <2.6 Reservation Allocation Using the SLA Algorithm>
[0101] Another algorithm according to the embodiment is the SLA (Serial Lottery Application) algorithm. While the TTC algorithm according to the embodiment is an extension of the conventional algorithm of the same name, the SLA algorithm is a new algorithm developed by the inventors.
[0102] In discussions about school choice systems, the conventional TTC algorithm has problems such as "difficulty in handling priority rights" and "ignoring the satisfaction of the slot (school)," and in reality, there have been many cases where its implementation and adoption have been postponed. These problems also apply to the TTC algorithm in an extended form that incorporates reservation conditions. On the other hand, the SLA algorithm does not satisfy the welfare of the customer (student) like the TTC algorithm, but it overcomes the above problems and has the advantage of being able to extend its applicability to many-to-many matching theory and models that include ties in the customer's preferred order.
[0103] The following describes a specific example of the SLA algorithm, based on the flowchart in Figure 9 and the explanatory diagrams in Figures 10 to 15.
[0104] Here, we will use the same situation assumed when describing a specific example of the TTC algorithm according to the embodiment. That is, as shown in Figure 10(A), we consider the allocation of reservations between three slots X, Y, and Z and five customers: a, b, c, d, and e. Each slot is intended to fill 3 seats (X), 3 seats (Y), and 2 seats (Z), respectively.
[0105] The reservation allocation system 100 is pre-configured with an appropriate "probability ratio rule" for determining the probability of winning based on the priority order (S901 in Figure 9). Here, the probability ratio rule is, for example, a rule that the higher the priority order of a reservation, the higher the probability of winning, and the lower the priority order of a reservation, the lower the probability of winning. In addition to the priority order, the probability ratio rule may also determine the probability of winning based on the set of reservations that each slot has accepted up to a certain point in time.
[0106] The store submits a variable priority order to the algorithm operator (reservation allocation system 100) (S902). The initial priority order for each slot is given as follows and set in the reservation allocation system 100.
[0107] Initial priority order: X:(b,2), (e, 2), (a, 2), (b, 1), (e, 1), (a, 1), (d, 2), (c, 2), (d, 1), (c, 1) Y:(a, 3), (d, 3), (c, 3), (e, 3), (b, 3), (a,1), (d, 1), (e, 1), (c, 1), (b, 1), (a, 2), (d, 2), (e, 2), (c, 2), (b, 2) Z:(d, 1), (d, 2), (c, 1), (c, 2), (b, 1), (b, 2), (a, 1), (a, 2), (e, 1), (e, 2)
[0108] Furthermore, each slot shares the constraint (relationship data) that "customer b and customer d are incompatible and cannot make reservations at the same time," and the reservation allocation system 100 updates the priority order according to that constraint.
[0109] The reservation allocation system 100 selects users (target users) who will "apply sequentially" from among multiple users according to some criteria (S903). The criteria for selecting users (customers) who will "apply sequentially" can be determined as appropriate. For example, users may be selected randomly or based on predetermined rules.
[0110] Selected users transmit their preferred order to the reservation allocation system 100 from user terminals 200A and 200B by the appropriate deadline (S904). Regarding the submission of preferred orders, it is preferable that, as an example, all users submit their preferred orders by a predetermined deadline (S904) before the first target user who will apply sequentially is determined (S903). From the perspective of the algorithm's "strategy resistance," it is preferable that the target users who apply sequentially (including not only the first target user but also subsequent target users) are determined independently of the preferred order submitted by each user, without being directly influenced by the preferred order of each user. Here, "direct influence" excludes "indirect influence." That is, since the target users who will start applying sequentially can be determined according to the set of reservations accepted for each slot up to each point in time, the preferred order can have an "indirect influence" on the determination of target users through the process of determining the scope of the "set of accepted reservations." However, since no user can change the timing of when they start applying sequentially or the set of reservations already accepted from any slot at that time by manipulating (lying about) the preferred order they submit, there is no direct impact, and "strategic resistance" is ensured. As an example, the customer's preferred order is given as follows and set in the reservation allocation system 100.
[0111] Desired order: a: (X, 1) b: (Y, 2), (Z, 1), (Y, 3) c: (Z, 2), (Z, 1) d: (Y, 1), (X, 2), (Z, 1) e: (Z, 1), (X, 2)
[0112] In light of the above situation, the process by which the SLA algorithm determines the allocation of reservations (S905 to S910 in Figure 9) will be explained step by step. In the following explanation, sentences in which "customer" or "slot" is the subject describe the information processing performed by the reservation allocation system 100 as the executing entity, from the perspective of the "customer" or "slot".
[0113] <First Round S905-S910> Customer a (target user), selected based on some criteria, begins applying for reservations in order of preference from the mutually acceptable reservations (S905). As shown in Figure 10(B), customer a's first choice reservation (X, 1) has received a moderate rating from the other party's slot X, and the probability of winning is set to 70% according to the probability allocation rule. After drawing lots, customer a wins (S906) and leaves with (X, 1) (Figure 10(C); S907). Each slot updates its priority order based on the fact that the reservation (a, X, 1) has been accepted (S909, S910). In this case, each slot makes all reservations related to customer a, whose reservation has now been decided, unacceptable. In this case, the updated priority order is as follows.
[0114] Priority order for the first update: X: (b,2), (e, 2), (b, 1), (e, 1), (d, 2), (c, 2), (d, 1), (c, 1) Y: (d, 3), (c, 3), (e, 3), (b, 3), (d, 1), (e, 1), (c, 1), (b, 1), (d, 2), (e, 2), (c, 2), (b, 2) Z: (d, 1), (d, 2), (c, 1), (c, 2), (b, 1), (b, 2), (e, 1), (e, 2)
[0115] <Second Round S905-S910> In the first round, steps S905-S910, based on the fact that reservation (a, X, 1) was accepted, customer d (Figure 10(D)), selected by some criterion, begins applying for reservations in order of preference from the mutually acceptable reservations (S905). As shown in Figure 11(A), customer d's first choice reservation (Y, 1) has received a moderate evaluation from the other party's slot Y, and the probability of winning is set at 30% according to the probability allocation rule. After drawing lots, customer d is unsuccessful (S906). Therefore, as shown in Figure 11(B), customer d applies for their next choice (X, 2) (S908, S905). This reservation (X, 2) has received a moderate evaluation from the other party's slot X, and the probability of winning is set at 40% according to the probability allocation rule. After drawing lots, customer d is unsuccessful (S906). Therefore, as shown in Figure 11(C), customer d applies for the next desired seat (Z, 1) (S908, S905). This reservation (Z, 1) has received the highest rating from the other slot Z, and the probability of winning is set to 100% according to the probability allocation rule. After drawing a lottery ticket, customer d wins (S906) and leaves with (Z, 1) (Figure 11(D); S907). Each slot updates its priority order based on the fact that the reservation (d, Z, 1) has been accepted (S909, S910). In this case, each slot makes it impossible to accept any reservations related to customer d, whose reservation has now been decided. Slot Z makes it impossible to accept any reservations for two or more people based on the fact that the number of remaining seats is now 1. Furthermore, due to constraints on customers b and d, slot Z also makes it impossible to accept (b, 1). In this case, the updated priority order is as follows.
[0116] Second update priority order: X: (b,2), (e, 2), (b, 1), (e, 1), (c, 2), (c, 1) Y: (c, 3), (e, 3), (b, 3), (e, 1), (c, 1), (b, 1), (e, 2), (c, 2), (b, 2) Z: (c, 1), (e, 1)
[0117] <Third round S905-S910> Based on the fact that the reservation set {(a, X, 1), (d, Z, 1)} was accepted in the second round S905-S910, customer b, selected by some criterion, begins to apply for mutually acceptable reservations in order of preference from top to bottom (S905). As shown in Figure 12(A), customer b's first choice reservation (Y, 1) has received a low rating from the other party's slot Y, and the probability of winning is set to 10% according to the probability allocation rule. As a result of drawing lots, customer b is unsuccessful (S906). The next reservation that customer b desires (Z, 1) (Figure 12(B)) is unavailable based on the priority order of slot Z updated in the second step, and therefore cannot be applied for. So, as shown in Figure 12(C), customer b applies for the next desired reservation (Y, 3) (S908, S905). Reservation (Y, 3) has received a moderate rating from the opponent's slot Y, and the probability of winning is set to 50% according to the probability allocation rule. After drawing a lottery ticket, customer b wins (S906) and leaves with (Y, 3) (Figure 13(A); S907). Each slot updates its priority order based on the fact that the reservation (b, Y, 3) has been accepted (S909, S910). In this case, each slot makes it impossible to accept any reservations related to customer b, whose reservation has now been decided. Slot Y also makes it impossible to accept any reservations based on the fact that the number of remaining seats has become 0. In this case, the updated priority order is as follows.
[0118] Third update priority order: X: (e, 2), (e, 1), (c, 2), (c, 1) Y: Z: (c, 1), (e, 1)
[0119] <Fourth Round S905-S910> Based on the fact that the reservation set {(a, X, 1), (d, Z, 1), (b, Y, 3)} was accepted by the third round S905-S910, customer c (Figure 13(B)), selected by some criterion, begins to apply for reservations in order of preference from the mutually acceptable reservations (S905). The first preferred reservation (Z, 2) (Figure 13(C)) cannot be applied for because the other party's slot Z cannot accept it. Therefore, as shown in Figure 14(A), customer c applies for the next preferred reservation (Z, 1) (S908, S905). Reservation (Z, 1) has received a high rating from the other party's slot Z, and the probability of winning is set to 90% according to the probability allocation rule. As a result of drawing lots, customer c wins (S906) and leaves with (Z, 1) (Figure 14(B); S907). Each slot updates its priority order based on the fact that the reservation (c, Z, 1) has been accepted (S909, S910). In this case, each slot makes it impossible to accept any reservations related to customer c, whose reservation has now been confirmed. Slot Z also makes it impossible to accept any reservations based on the fact that the number of remaining seats has become 0. In this case, the updated priority order is as follows:
[0120] Priority order for the fourth update: X: (e, 2), (e, 1) Y: Z:
[0121] <5th Round S905-S909> Based on the fact that the reservation set {(a, X, 1), (d, Z, 1), (b, Y, 3), (c, Z, 1)} was accepted by the 4th round S905-S910, the last remaining customer e (Figure 14(C)) begins to apply for reservations in order of preference from the top down among the mutually acceptable reservations (S905). The first preferred reservation (Z, 1) (Figure 15(A)) cannot be applied for because the other party's slot Z cannot accept it. Therefore, as shown in Figure 15(B), customer e applies for the next preferred reservation (X, 2) (S908, S905). Reservation (X, 2) has received a high rating from the other party's slot X, and the probability of winning is set to 100% according to the probability allocation rule. As a result of drawing lots, customer e wins (S906) and leaves the venue with (X, 2) (Figure 15(C); S907).
[0122] Since there are no customers left after the fifth S907, the algorithm stops at this point (S909). Proceed to S910.
[0123] The reservation allocation system 100 outputs the set of reservations {(a, X, 1), (b, Y, 3), (c, Z, 1), (d, Z, 1), (e, X, 2)} accepted by the store up to this point as the result of reservation allocation (S910). The result of reservation allocation is transmitted to user terminals 200A, 200B and store terminals 300A, 300B.
[0124] The SLA algorithm described above is generally not "Pareto efficient" in terms of the customer's preferred order of play, but like the TTC algorithm, it is "strategically resistant" in the sense that no customer can gain anything by lying. Although a rigorous discussion is difficult, it is more aligned with the slot machine's desire to "accept reservations with the highest possible priority" compared to the TTC algorithm, and handles priority more appropriately. In fact, computer simulations have shown that the SLA algorithm significantly satisfies the slot machine's priority requirements compared to the TTC algorithm.
[0125] Furthermore, the SLA algorithm can be easily extended to frameworks that allow for "many-to-many matching," where a customer can receive multiple reservations simultaneously, and "ties" in the customer's preferred order. For example, in the above example, assuming each customer can receive reservations for multiple slots, customer a's preferred order is given as follows: a: {(X, 3), (Z, 2)}, {(X, 1), (Z, 2)} ~ {(X, 1), (Y, 3)}, {(X, 1)}
[0126] In other words, customer a has the set of reservations {(X, 3), (Z, 2)} which allows them to obtain both (X, 3) and (Z, 2) simultaneously as their first choice, {(X, 1), (Z, 2)} and {(X, 1), (Y, 3)} as their tied second choices, and (X, 1) alone as their fourth choice. Similar to the many-to-one case, the customer applies for reservations in order of preference from the set of reservations that are acceptable to both parties. The reservation (a, X, 3) included in the first choice {(X, 3), (Z, 2)} is not acceptable to slot X and therefore cannot be applied for. Suppose a draw is made between the tied second choices {(X, 1), (Z, 2)} and {(X, 1), (Y, 3)}, and {(X, 1), (Z, 2)} is selected. Since reservations (a, X, 1) and (a, Z, 2) are deemed acceptable by the other party's slots X and Z respectively, customer a first applies to {(X, 1) and (Z, 2)}.
[0127] Assume that the probability of winning reservation (X, 1) is 70% and the probability of winning reservation (Z, 2) is 10% according to the probability allocation rules. However, each reservation may be drawn in order according to some criteria, and the probability of winning may be determined depending on the order. Suppose both tickets are drawn, and (X, 1) is won but (Z, 2) is lost. In this case, it is judged that the reservation set {(X, 1), (Z, 2)} has been lost. Next, the reservations included in the tied second choice {(X, 1), (Y, 3)} are both judged to be acceptable from the other slot and are therefore eligible to apply. Assume that the probability of winning reservation (X, 1) is 70% and the probability of winning reservation (Y, 3) is 100% according to the probability allocation rules. Assume both tickets are drawn and both are won. In this case, customer a is determined to have won the set of reservations {(X, 1), (Y, 3)} which are tied for second choice, and at this point, customer a receives {(X, 1), (Y, 3)} and leaves. Each slot updates its priority order based on the fact that the set of reservations {(a, X, 1), (a, Y, 3)} has been accepted.
[0128] The extended SLA algorithm described above can be confirmed to be "strategically resilient" like the original SLA algorithm, while allowing for "many-to-many" relationships and "ties" in the customer's preferred order. Compared to the TTC algorithm, which had the advantage of simultaneously satisfying "Pareto efficiency" and "strategically resilient" within its original framework, the SLA algorithm's advantage lies in its flexibility to maintain "strategically resilient" while increasing slot machine satisfaction, even at the expense of "Pareto efficiency." Furthermore, if the slot machine's "priority order" is given by "evaluation scores," it is expected that the algorithm's performance can be improved by defining the winning probability using these evaluation scores. This is another difference from the TTC algorithm, which can only handle sequential relationships.
[0129] As described above, the TTC algorithm is useful in many-to-one situations where the primary objective is to satisfy the customer's desired order, and the customer's desired order does not include ties in that order. However, in other situations, the SLA algorithm is considered to be more useful.
[0130] The present invention is not limited to the above embodiments, and various modifications are possible.
[0131] 50: Network 100: Reservation allocation system 110: Processor 111: Reservation allocation processing 120: Memory 121: Computer program 125: Priority order 126: Desired order 200A: User terminal 200B: User terminal 300A: Store terminal 300B: Store terminal
Claims
1. A computer implementation method for reservation allocation, comprising: setting a priority order for reservations that may occur in a slot, which is a unit of reservation, for each of a plurality of slots; setting a preferred order for one or more reservations desired by a user for each of a plurality of users; and determining, based on the priority order, which of the reservations included in the preferred order of each of the plurality of users will be accepted into each of the plurality of slots.
2. The computer implementation method according to claim 1, further comprising updating the priority order.
3. The computer implementation method according to claim 1, further comprising updating the priority order according to reservations already received.
4. The computer implementation method according to claim 1, further comprising updating the priority order of the slots in accordance with reservations already accepted for those slots.
5. The computer implementation method according to claim 1, further comprising updating the priority order of the slots in accordance with reservations accepted in other slots other than the slot whose priority order is being updated.
6. The computer implementation method according to claim 1, further comprising updating the priority order of the slots based on data indicating the relationship between a first user whose reservation has already been accepted for the slot and a second user other than the first user.
7. The computer implementation method according to claim 6, wherein the relationship includes the compatibility between the first user and the second user.
8. The computer implementation method according to claim 1, wherein determining based on the priority order includes determining whether to accept a reservation of a target user in a slot included in the desired order of the target user selected from the plurality of users, in the slot order according to the target user's desired order, using a probability based on the priority order in that slot.
9. The computer implementation method according to claim 1, wherein the priority order is set independently of the desired order.
10. The computer implementation method according to claim 1, wherein the priority order includes a priority order for reservations not included in the desired order.
11. A reservation system comprising a processor that performs the following processes: setting a priority order for possible reservations in a slot, which is the unit of reservation; setting a preferred order for one or more slots that a user wishes to reserve, for each of multiple users; and determining, based on the priority order, which of the reservations included in the preferred order of each of the multiple users to accept for each of the multiple slots.
12. A computer program for causing a computer to perform a process, the process comprising: setting a priority order for possible reservations in a slot, which is a unit of reservation, for each of a plurality of slots; setting a preferred order for one or more slots that a user wishes to reserve, for each of a plurality of users; and determining, based on the priority order, which of the reservations included in the preferred order of each of the plurality of users will be accepted in each of the plurality of slots.