Computer implementation method for reservation allocation, reservation system, and computer program
The reservation allocation system addresses inefficiencies and unfairness in reservation systems by setting priority orders based on compatibility and restaurant preferences, using algorithms to dynamically update reservations, ensuring fair and efficient allocation.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- KOBE UNIV
- Filing Date
- 2024-12-09
- Publication Date
- 2026-06-19
AI Technical Summary
Existing reservation systems struggle to efficiently allocate reservations in popular restaurants, leading to inefficiencies and unfairness due to the lack of consideration for restaurant preferences and guest compatibility, resulting in excessive time and effort for customers.
A reservation allocation system that sets a priority order for reservations based on compatibility and restaurant preferences, using algorithms like TTC and SLA to determine which reservations to accept, updating the priority order dynamically based on accepted reservations and compatibility data.
The system efficiently allocates reservations while considering restaurant preferences, reducing customer effort and unfairness by ensuring that reservations are made fairly and efficiently, even for scarce seats.
Smart Images

Figure 2026100217000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a computer-implemented method, a reservation system, and a computer program for reservation allocation.
Background Art
[0002] Patent Document 1 discloses a restaurant reservation system. The restaurant reservation system of Patent Document 1 receives a request for a reservation including a set of attributes such as a date or a range of dates, a range of times, a location, a dish, the number of people, etc., 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.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
[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 a slot, which is a unit of reservation, for each of a plurality of slots, 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 in the embodiments below. [Brief explanation of the drawing]
[0008] [Figure 1] Figure 1 is a diagram showing the configuration of the reservation allocation system. [Figure 2] Figure 2 is a flowchart of reservation allocation using the TTC algorithm. [Figure 3] Figure 3 is an explanatory diagram of reservation allocation using the TTC algorithm. [Figure 4] Figure 4 is an explanatory diagram of reservation allocation using the TTC algorithm. [Figure 5] Figure 5 is an explanatory diagram of reservation allocation using the TTC algorithm. [Figure 6] Figure 6 is an explanatory diagram of reservation allocation using the TTC algorithm. [Figure 7] Figure 7 is an explanatory diagram of reservation allocation using the TTC algorithm. [Figure 8] Figure 8 is an explanatory diagram of reservation allocation using the TTC algorithm. [Figure 9] Figure 9 is a flowchart of reservation allocation using the SLA algorithm. [Figure 10] Figure 10 shows the reservation allocation using the SLA algorithm. [Figure 11] Figure 11 shows the reservation allocation using the SLA algorithm. [Figure 12] Figure 12 shows the reservation allocation using the SLA algorithm. [Figure 13] Figure 13 shows the reservation allocation using the SLA algorithm. [Figure 14] Figure 14 shows the reservation allocation using the SLA algorithm. [Figure 15] Figure 15 shows the reservation allocation using the SLA algorithm. [Modes for carrying out the invention]
[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 updated priority order 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 accordance with the slot in which the priority order is 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 given slot may be updated in accordance with the reservations accepted by other slots. The priority order of a given slot may be updated in accordance with the reservations accepted by 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 reservations accepted in other slots other than the slot whose priority order is being updated.
[0014] (6) The method according to the embodiment may further include updating the priority order of the slot based on data indicating the relationship between the first user for whom a reservation has already been accepted in 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) Determining based on the priority order may include determining whether to accept a reservation of the target user in a slot included in the desired order of the target user selected from the plurality of users, in the slot order along the desired order of the target user, using a probability based on the priority order in the slot.
[0017] (9) The priority order may be set independently without depending on the desired order.
[0018] (10) The priority order may include a priority order for reservations not included in the desired order.
[0019] (11) A system according to an embodiment is a reservation system including a processor that executes a process 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 desired order of one or more slots for which a user desires a reservation for each of a plurality of users, and determining, based on the priority order, which reservation included in the desired order of each of the plurality of users is to be accepted for each of the plurality of slots.
[0020] (12) The computer program according to the embodiment causes the computer to execute 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 for each of the plurality of slots.
[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 available slots. In reservation allocation, for each of the multiple slots, it is determined which of the reservations desired by 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. Furthermore, 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 stores. Since the reservation allocation system can manage each user's reservation history for multiple stores, it can also consider each user's reservation history at other stores when determining the priority order (rating). 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 initially set before updates is sometimes called the "initial priority order," and the priority order after updates 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>
[0040] Variable priority can be updated, for example, in response to already accepted reservations. Updating the priority order to take already accepted reservations into account makes the priority order more appropriate. The variable priority order for each slot can be updated, for example, in response to already accepted reservations for that slot and / or other slots other than the one in question.
[0041] The variable priority order for each slot can be updated, for example, based on the number of users who have already made reservations for that slot. By updating the priority order for the remaining reservations for a given slot to account for the users who have already made reservations, a priority order tailored to those users can be obtained.
[0042] The variable priority order of a slot can be updated, for example, based on data showing the relationship between a first user who has already made a reservation for a slot and a second user who is not the first user. This relationship data may be held by the reservation allocation system. Based on this relationship data, the reservation allocation system can consider the relationship between the first user who has already made a reservation and other users (second users) for a given slot. The reservation allocation system can then update the priority order for the remaining reservations for that slot based on this relationship, thereby obtaining a priority order that corresponds to the relationship with the first user who has already made a reservation.
[0043] Data indicating relationships may include, for example, data showing the compatibility between the first user and the second user. In this case, the reservation allocation system can obtain a priority order based on the compatibility with the first user, who has already made a reservation.
[0044] The following describes an example of a variable priority order. The following example describes updating the priority order in accordance with already accepted reservations, but the method of updating the priority order is not limited to this and can be done in an appropriate manner depending on the status of the reservation allocation algorithm during execution.
[0045] Here, a slot is trying to fill 3 reservations and has the following initial priority order. In the following, each reservation is shown in the form (*, N). * is a customer (user), which is one of a, b, c, d, or e. N is the number of people in the reservation, which is 2 or 1. Initial priority: (a, 2), (a, 1), (b, 2), (b, 1), (c, 1), (d, 1), (e, 1)
[0046] This initial priority order indicates that reservations on the left have higher priority, and reservations on the right have lower priority. In other words, reservations are evaluated in descending order from the highest priority (a, 2) (a reservation for two people by customer a) to (e, 1). In this initial priority order, all of the above reservations are accepted, but reservations for three people by any customer are not accepted. Furthermore, this slot is assumed to have relationship data set regarding the compatibility between customers, such as "customer d is compatible with customer e, and customer b is not compatible."
[0047] Let's assume this slot first accepts customer d's reservation (d, 1). In this case, the updated priority order (first update priority order) will be as follows: Priority order for the first update: (e, 1), (a, 2), (a, 1), (c, 1)
[0048] Due to the good compatibility between customer d and customer e, in the first renewal priority order, the priority of the reservation (e, 1) has been raised so that customer e's reservation takes top priority. Also, considering the poor compatibility between customer d and customer b, all of customer b's reservations (b, 2) and (b, 1) are deemed unacceptable, and therefore, in the first renewal priority order, all of customer b's reservations (b, 2) and (b, 1), which were included in the initial priority order, have been removed. In addition, the reservation (d, 1) for customer d, which has already been accepted, has also been removed in the first renewal priority order.
[0049] Furthermore, suppose this slot accepts customer e's reservation (e, 1). The updated priority order (second update priority order) will be as follows: Second update 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 (a, 2), which was included in the first update priority order, unavailable. 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 Configuration of Reservation Allocation System>
[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. A 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 memory 120. The computer program 121 in 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 allocation system 100 is connected to a network 50 such as the Internet. The reservation allocation system 100 can communicate with client terminals, namely user terminals 200A, 200B and store terminals 300A, 300B, via the network 50. The reservation allocation system 100 can operate as a server that performs processing for reservation allocation for the client terminals 200A, 200B, 300A, and 300B.
[0057] User terminals 200A and 200B are the computers of users (customers) who wish to make a reservation. Store terminals 300A and 300B are the computers of the store 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 any 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 user terminals 200A and 200B, and stores the desired order 126 indicated by that data in 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 reservation requested by the user 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 restaurant reservation allocation.
[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 the embodiment to allocate reservations for the scarce seats of 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 the 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 the 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 (called "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] Below, 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] First priority order (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 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 priority 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 time using 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 process.
[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 time S206> In step S206, if there are still customers remaining, proceed to step S207; otherwise, proceed to step S208. Here, there are still customers remaining, so proceed to step S207.
[0084] <First 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 constraints (relationship data) related to customers b and d, slot Y also makes it impossible to accept the reservation (d, 1) related to customer d, given that it has accepted customer b's reservation. 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 S203 and S204> The remaining customers c, d, and e point their arrows towards the slot corresponding to the reservation with the highest priority 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 be directed towards it with the dotted arrow shown 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 Figures 5(C) and 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 using S206> Since there are still customers remaining, we will proceed to step S207.
[0091] <Second time using S207> Each slot is updated in priority order (second update; S207) based on the fact that reservations for (d, X, 2) and (e, Z, 1) have been accepted. In this case, each slot is made unable to accept any reservations related to customers d and e, whose reservations have been confirmed. Slot X is now completely booked, so it is also made unable 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 is also made unable 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 time S203 and S204> The last remaining customer c points the arrow to the reservation with the highest priority 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, customer c chooses the next most desired mutually accepted reservation (Z, 1) in the preferred order, 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 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] <3rd time using 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] <3rd time using 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 sent 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) gains any benefit from 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 SLA Algorithms>
[0101] Another algorithm in this embodiment is the SLA (Serial Lottery Application) algorithm. While the TTC algorithm in this 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, conventional TTC algorithms have 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 their 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, while the SLA algorithm does not satisfy the welfare of the customer (student) like the TTC algorithm, 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 is a concrete 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] First priority order (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) to "apply sequentially" from among multiple users according to some criteria (S903). The criteria for selecting users (customers) to "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 manipulate (lie about) the order in which they submit their preferred order to change the timing of when they start submitting their applications or the set of reservations already accepted from any slot at that time, 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] Given the above circumstances, the process by which the SLA algorithm determines the allocation of reservations (S905-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 run: S905~S910> Customer a (target user), selected based on some criteria, begins applying for reservations in order of preference from among 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 run of S905~S910> Based on the fact that reservation (a, X, 1) was accepted in the first step S905-S910, customer d (Figure 10(D)), selected by some criterion, begins applying for mutually acceptable reservations in order of preference from top to bottom (S905). As shown in Figure 11(A), customer d's first choice reservation (Y, 1) has received a moderate rating from the other party's slot Y, and the probability of winning is set to 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 rating from the other party's slot X, and the probability of winning is set to 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 opponent's slot Z, and the probability of winning is set to 100% according to the probability allocation rule. After drawing a lot, 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 now 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] <3rd time S905~S910> Based on the fact that the reservation sets {(a, X, 1), (d, Z, 1)} were accepted by the second round of S905-S910, customer b, selected by some criterion, begins applying 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 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. Thus, 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 now 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] <4th time S905~S910> Based on the fact that the reservation set {(a, X, 1), (d, Z, 1), (b, Y, 3)} has been accepted by the third round S905-S910, customer c (Figure 13(B)), selected by some criterion, begins applying for mutually acceptable reservations in order of preference from top to bottom (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] Prioritization for the 4th update: X: (e, 2), (e, 1) Y: Z:
[0121] <5th time S905~S909> Based on the fact that the reservation set {(a, X, 1), (d, Z, 1), (b, Y, 3), (c, Z, 1)} has been accepted by the fourth round S905-S910, the last remaining customer e (Figure 14(C)) begins applying 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 opponent'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 opponent'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 with (X, 2) (Figure 15(C); S907).
[0122] Since there are no customers left after the 5th 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 sent 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. While a rigorous discussion is difficult, it is more aligned with the slot machine's desire to "accept the highest priority reservations possible" compared to the TTC algorithm, and handles priority more appropriately. In fact, computer simulations have shown that the SLA algorithm significantly better satisfies the slot machine's priorities than the TTC algorithm.
[0125] Furthermore, the SLA algorithm can be easily extended to a framework that allows for "many-to-many matching," where a customer can receive multiple reservations simultaneously, and allows for "ties" in the customer's preferred order. For example, in the above example, assuming each customer can receive reservations for multiple slots, suppose 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, whose advantage was simultaneously satisfying "Pareto efficiency" and "strategically resilient" within the 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 task 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. [Explanation of Symbols]
[0131] 50: Network 100: Reservation allocation system 110: Processor 111: Reservation allocation process 120: Memory 121: Computer Programs 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, The priority order for reservations that may occur in a slot, which is the unit of reservation, is set for each of multiple slots. The system allows users to set their preferred order for one or more reservations, for each of multiple users. For each of the aforementioned multiple slots, the system determines which of the reservations included in the preferred order of each of the aforementioned multiple users will be accepted, based on the priority order. Including, Computer implementation method.
2. Further includes updating the aforementioned priority order, The computer implementation method according to claim 1.
3. This further includes updating the aforementioned priority order in accordance with reservations already accepted, The computer implementation method according to claim 1.
4. The priority order of the said slots further includes updating the priority order of the said slots in accordance with reservations already accepted for those slots, The computer implementation method according to claim 1.
5. The priority order of the aforementioned slots is further updated in accordance with reservations accepted in other slots other than the slot whose priority order is being updated. The computer implementation method according to claim 1.
6. The priority order of the slots is further updated based on data indicating the relationship between a first user who has already made a reservation for the slot and a second user other than the first user. The computer implementation method according to claim 1.
7. The aforementioned relationship includes the compatibility between the first user and the second user, The computer implementation method according to claim 6.
8. Determining based on the aforementioned priority order includes determining whether to accept a reservation from a target user in a slot included in the desired order of the target user selected from the multiple users, using the probability based on the priority order in that slot, in the slot order according to the target user's desired order. The computer implementation method according to claim 1.
9. The aforementioned priority order is set independently of the aforementioned desired order. The computer implementation method according to claim 1.
10. The aforementioned priority order includes the priority order for reservations not included in the aforementioned preferred order. The computer implementation method according to claim 1.
11. The priority order for reservations that may occur in a slot, which is the unit of reservation, is set for each of multiple slots. The system allows users to set their preferred order for one or more slots they wish to reserve, for each of multiple users. For each of the aforementioned multiple slots, the system determines which of the reservations included in the desired order of each of the aforementioned multiple users will be accepted, based on the priority order. A processor that performs processing including the following Reservation system.
12. A computer program that causes a computer to perform a process, The aforementioned process is, The priority order for reservations that may occur in a slot, which is the unit of reservation, is set for each of multiple slots. The system allows users to set their preferred order for one or more slots they wish to reserve, for each of multiple users. For each of the aforementioned multiple slots, the system determines which of the reservations included in the desired order of each of the aforementioned multiple users will be accepted, based on the priority order. Including, Computer program.