Artificial Intelligence-Based Room Allocation Optimization System
Through an optimization algorithm based on artificial intelligence, combining hard constraints and soft constraints, a weighted cost matrix is generated, and the room allocation is optimized using the Hungarian allocation algorithm and the Lagrangian relaxation method, the problem of low manual allocation in the existing technology is solved, and efficient and low-cost automated room allocation is achieved.
Patent Information
- Application Number
- CN202080005069.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-01-07
- Filing Date
- 2020-08-17
- Publication Date
- 2025-07-25
- Estimated Expiration
- 2040-12-31
AI Technical Summary
The prior art is difficult to efficiently automate room allocation under the dual constraints of hotel operations and customer satisfaction, with low efficiency in manual allocation and complexity increasing exponentially with the increase in the scope of the reserved plan.
Adopting an optimization algorithm based on artificial intelligence, a weighted cost matrix is generated by constructing multi-objective functions, combining hard constraints and soft constraints, and optimizing room allocation using Hungarian allocation algorithm and Lagrangian relaxation method, relaxing partial constraints to achieve a fast approximation solution.
It realizes room allocation with low operating costs and high customer satisfaction in hotels, improves allocation efficiency, reduces calculation time, and reduces third-party software dependence and licensing costs.
Smart Images

Figure CN113015985B_ABST
Abstract
Description
[0001] Cross - Reference to Related Applications
[0002] This application claims the benefit of priority of U.S. Provisional Patent Application Serial No. 62 / 923,774, filed on October 21, 2019, the disclosure of which is incorporated herein by reference. Technical Field
[0003] One embodiment generally relates to a computer system and, in particular, to a computer system that provides optimization of room allocation based on artificial intelligence. Background Art
[0004] Every day, chain hotel operators (or any other type of service that assigns rooms to guests) typically solve the problem of optimal room allocation by manually allocating reservations for guests who wish to arrive on a specific date. However, to achieve optimal room allocation, multiple objectives under two main categories need to be considered. These categories are "hotel operations" and "guest satisfaction". The former is to minimize the total room maintenance cost by minimizing the number of unnecessary upgrades, while balancing the wear and tear of the rooms, and to increase the room availability by minimizing the room - use intervals of one or two days. The latter is to match the guest's request constraints by providing the guest with a room category that is the same as or better than the room category reserved in the reservation system.
[0005] Guest requests are generally considered soft constraints, and to meet hard constraints, such as disabled - accessible rooms as defined by the Americans with Disabilities Act (ADA), smoking preferences, room capacity, and allowable room - category substitutions, these soft constraints can be violated. Finally, when hotel guests book their rooms through different channels (such as the hotel's own website or phone system, corporate agreements, or online travel agents ("OTAs")), hotel operators can assign different importance scores to guests based on the guests' booking channels, accommodation frequency (e.g., points in the hotel's program), and other factors. This implicit definition of guest importance scores is used to prioritize one guest over another to maximize guest satisfaction and build customer loyalty. Summary of the Invention
[0006] An embodiment provides an optimized room allocation for a hotel in response to receiving a plurality of hard and soft constraints, as well as receiving reservation preferences and room characteristics. The optimization includes: determining a guest satisfaction allocation cost based on the reservation preferences and room characteristics; determining an operational efficiency allocation cost; generating a weighted cost matrix based on the guest satisfaction allocation cost and the operational efficiency allocation cost; and generating a preliminary room allocation based on the weighted cost matrix. When the preliminary room allocation is feasible, the preliminary room allocation is the optimized room allocation including a feasible selection of matrix elements. When the preliminary room allocation is infeasible, the embodiment relaxes one or more constraints and repeats the optimization until the preliminary room allocation is feasible. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Other embodiments, details, advantages, and modifications will become apparent from the following detailed description of the embodiments in conjunction with the accompanying drawings.
[0008] Figure 1 is a block diagram of a computer server / system according to an embodiment of the present invention.
[0009] Figure 2 is a chart comparing a sub - optimal room allocation with an optimal room allocation according to an embodiment.
[0010] Figure 3 is a diagram illustrating according to an embodiment Figure 1 of the functionality of a room allocation optimization module.
[0011] Figure 4 illustrates an example of guest satisfaction optimization according to an embodiment.
[0012] Figure 5 illustrates an example of weighted cost minimization according to an embodiment.
[0013] Figure 6 illustrates a network flow formula according to an embodiment.
[0014] Figure 7 is a diagram illustrating according to an embodiment Figure 1 of the functionality of a room allocation optimization module.
[0015] Figure 8A is a graph of the objective function value versus the number of reservations according to an embodiment of the present invention.
[0016] Figure 8B is a graph of the running time versus the number of reservations according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0017] Embodiments optimize the allocation of hotel rooms for existing hotel reservations by allocating rooms within a number of days starting from the current day, considering future reservations and room availability, according to specific requirements and accommodation constraints of hotel guests and operational constraints of the hotel. Embodiments use artificial intelligence with an optimization objective to minimize the hotel's operating costs and the mismatch between the guests' requirements and the characteristics of the allocated rooms, while prioritizing the allocation based on the importance of the guests as defined by a hotel chain.
[0018] Reference will now be made in detail to embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it will be apparent to one of ordinary skill in the art that the present disclosure may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the embodiments. Whenever possible, the same reference numbers will be used for the same elements.
[0019] Figure 1 is a block diagram of a computer server / system 10 according to an embodiment of the present invention. Although shown as a single system, the functionality of system 10 may be implemented as a distributed system. Additionally, the functionality disclosed herein may be implemented on separate servers or devices that may be coupled together via a network. Further, one or more components of system 10 may be excluded. For example, when implemented as a web server or cloud-based functionality, system 10 is implemented as one or more servers and does not require a user interface such as a display, mouse, etc.
[0020] System 10 includes a bus 12 or other communication mechanism for conveying information, and a processor 22 coupled to bus 12 for processing information. Processor 22 may be any type of general or special purpose processor. System 10 also includes a memory 14 for storing information and instructions to be executed by processor 22. Memory 14 may include random access memory (“RAM”), read only memory (“ROM”), static memory such as a magnetic or optical disk, or any combination of any other type of computer-readable medium. System 10 also includes a communication device 20, such as a network interface card, to provide access to a network. Thus, a user may interface with system 10 directly or remotely via the network or any other means.
[0021] A computer-readable medium may be any available medium that can be accessed by processor 22 and includes volatile and nonvolatile media, removable and non-removable media, and communication media. Communication media may include computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and includes any information delivery media.
[0022] The processor 22 is also coupled to a display 24, such as a liquid crystal display (“LCD”), via a bus 12. A keyboard 26 and a cursor control device 28, such as a computer mouse, are also coupled to the bus 12 to enable a user to interface with the system 10.
[0023] In one embodiment, the memory 14 stores software modules that provide functionality when executed by the processor 22. The modules include an operating system 15 that provides operating system functionality for the system 10. The modules also include a room allocation optimization module 16 that optimizes room allocation and all other functions disclosed herein. The system 10 can be part of a larger system. Thus, the system 10 can include one or more additional functional modules 18 to include additional functionality, such as the functionality of a property management system (“PMS”) (e.g., “Oracle Hospitality OPERA Property” or “Oracle Hospitality OPERA Cloud Service”) or an enterprise resource planning (“ERP”) system. A database 17 is coupled to the bus 12 to provide centralized storage to the modules 16 and 18 and stores guest data, hotel data, transaction data, etc. In one embodiment, the database 17 is a relational database management system (“RDBMS”) that can use structured query language (“SQL”) to manage the stored data. In one embodiment, a dedicated point-of-sale (“POS”) terminal 99 generates transaction data and historical sales data (e.g., data related to transactions with hotel guests / customers) for performing optimization. According to one embodiment, the POS terminal 99 itself can include additional processing functionality to perform room allocation optimization and can operate itself or in combination Figure 1 with other components as a dedicated room allocation optimization system.
[0024] In one embodiment, particularly when there are a large number of hotel locations, a large number of guests, and a large amount of historical data, the database 17 is implemented as an in-memory database (“IMDB”). An IMDB is a database management system that primarily relies on main memory to store computer data. In contrast to database management systems that employ disk storage mechanisms. Main memory databases are faster than disk-optimized databases because disk access is slower than memory access, internal optimization algorithms are simpler, and fewer CPU instructions are executed. Accessing data in memory eliminates the seek time when querying data, thus providing faster and more predictable performance than disks.
[0025] In one embodiment, when the database 17 is implemented as an IMDB, it is implemented based on a distributed data grid. A distributed data grid is a system in which a collection of computer servers work together in one or more clusters to manage information and related operations, such as computing, in a distributed or clustered environment. A distributed data grid can be used to manage application objects and data shared across servers. The distributed data grid provides low response time, high throughput, predictable scalability, continuous availability, and information reliability. In a specific example, a distributed data grid (such as, for example, the "Oracle Coherence" data grid of Oracle Corporation) stores information in memory to achieve higher performance and employs redundancy to keep copies of that information synchronized across multiple servers, thus ensuring the resilience of the system and the continuous availability of data in the event of server failures.
[0026] In one embodiment, the system 10 is a computing / data processing system that includes a collection of applications for an enterprise organization or distributed applications and can also implement logistics, manufacturing, and inventory management functions. The applications and the computing system 10 can be configured to operate with or be implemented as a cloud-based networking system, a software-as-a-service ("SaaS") architecture, or other types of computing solutions.
[0027] As described above, optimizing room allocation is a difficult problem to solve. Figure 2 is a chart comparing sub-optimal room allocation with optimal room allocation according to an embodiment. When two single-night reservations A and B starting on two consecutive days are assigned to two different rooms (i.e., sub-optimal), a third reservation C cannot be assigned to any of these rooms. However, when reservations A and B are assigned to the same room (i.e., optimal), reservation C can be assigned to another room.
[0028] Currently, most hotel operators typically perform room allocation manually by intuitively understanding the domain by assigning rooms to individual reservations, which is labor-intensive and, in many cases, results in far-from-optimal allocations. Some known solutions use mixed integer linear programming ("MILP") to solve this problem. However, this method may take too long to run and requires a third-party software library licensed at the hotel operator site, which can be a complex issue for the development and deployment of the solution. In contrast, embodiments of the present invention provide an optimized solution while improving the performance of the computer system executing the function by operating efficiently, regardless of the number of active reservations.
[0029] Generally speaking, the problem that embodiment solves is to find the best allocation from the available room list under the situation of given one group of incoming reservation and guest preference, so that the mismatch of the room characteristics requested is minimized while keeping the hotel operation cost low. Generally speaking, this is the time-consuming manual processing that current hotel staff will carry out every day. Although satisfactory allocation can be completed in the period of one day, with the increase of reservation plan scope, complexity increases exponentially.
[0030] In contrast, embodiments implement automatic room allocation processing through data-driven optimization algorithms. Embodiments utilize factors such as reservation preferences, guest importance, and upgrade costs to construct multi-objective functions to simulate hard and soft business constraints. In addition, embodiments weight guest satisfaction and hotel operating efficiency in different ways to provide a configurable solution for changing business dynamics.
[0031] Figure 3 is a diagram illustrating a method according to an embodiment Figure 1 Flow chart of the functions of the room allocation optimization module 16. In one embodiment, Figure 3 (and the following Figure 7 ) is implemented by software stored in a memory or other computer-readable or tangible medium and executed by a processor. In other embodiments, the functions may be performed by hardware (e.g., by using an application specific integrated circuit (“ASIC”), a programmable gate array (“PGA”), a field programmable gate array (“FPGA”), etc.), or by any combination of hardware and software.
[0032] The embodiment uses an input data set / database 17 to provide historical reservation data and guest information as needed. In one embodiment, the input data set 17 is the "OPERA" database from Oracle Corporation and includes detailed information about guests and available rooms for a single hotel or a group of related hotels such as a hotel chain. In other embodiments, a database of data about guests and rooms for any type of PMS can be used.
[0033] Database 17 also stores constraints used by embodiments for optimization. Constraints include both hard constraints and soft constraints. In embodiments, hard constraints include: (1) no double booking; (2) ensuring the same room for the entire length of the reservation; and (3) non-smoking / smoking / ADA accessible room requirements must be adhered to. Soft constraints include: (1) importance of the guest;
[0034] (2) Importance of market groups; (3) Room upgrades; (4) Room utilization; and (5) Room feature requirements (e.g., floor preference, elevator proximity, adjacent rooms for multi-room reservations). Compared with the embodiments, known automated room allocation solutions typically rely on rule-based algorithms that can well satisfy hard constraints, but usually cannot evaluate soft constraints holistically due to the lack of comparative cost analysis, and usually process reservations sequentially without considering other reservations within the planning scope.
[0035] At 301, the embodiment performs a pre-optimization analysis that includes performing linear regression to generate feasible room alternatives, creating a market group hierarchy, and estimating reservation importance. To determine the hierarchy of room categories, the embodiment uses linear regression to determine an "importance score" for each room category using historical reservation data including room category, room features, and rate codes, as follows:
[0036] 1. RoomRate$~∑ j β j feature j +∑ k γ k rateCode k +regularizationTerm
[0037] 2. RoomRate$~βroomCategory+∑ k γ k rateCode k +regularizationTerm
[0038] The hierarchy is used to determine which room alternatives can be considered feasible room upgrades.
[0039] To determine the market group hierarchy, a default hierarchy is established using the total reservation revenue aggregated for all guests within each market group. This hierarchy is used to prioritize guests when allocating room upgrades.
[0040] The embodiment uses rule-based or regression-based algorithms to determine reservation importance. For rule-based, the embodiment combines the membership level and VIP status of arriving guests to establish a guest priority list. For regression-based, the embodiment estimates the revenue potential and repeat potential of guests by determining the importance of guests using historical data.
[0041] At 302, the embodiment obtains hotel-specific settings / configurations from database 17, which include user-customizable settings to control hard and soft constraints in the algorithm. These settings include upgradeable rooms, which include a list of replaceable rooms that can be overridden by the user, where the default is determined by analysis of the room category hierarchy. The market group ranking includes a list of market groups that can be overridden by the user sorted by importance (e.g., leisure, package, conference, etc.), where the default is determined by analysis of the market group hierarchy. Upgrade rooms include settings for controlling whether the algorithm is enabled to consider settings for room categories higher than the reserved room category during allocation. Preferred market groups include a default list of market groups to be considered for upgrade when "upgrade rooms" is enabled. Exclusions include a list of floors to be excluded from consideration when allocating rooms, and when enabled, rooms with statuses such as "dirty" and "service interruption" are excluded. The optimization objective uses relative weights to balance multiple objective functions as follows:
[0042] · Operational efficiency: uneven room wear and tear, allocation gaps, room upgrades.
[0043] · Guest satisfaction: mismatch between guest preferences and the characteristics of the allocated room.
[0044] The functions at 301 and 302 can be considered preprocessing functions. Then, at 325, "optimization" is implemented. At 303, guest satisfaction optimization uses reserved preferences and room characteristics to calculate the allocation cost ("C1"). Each reservation has certain "reserved preference" codes associated with it. These requests are matched with the codes of the characteristics present in the room. A larger deviation from a perfect match results in a higher allocation cost (C1) for customer satisfaction.
[0045] Figure 4 Illustrates an example of guest satisfaction optimization according to an embodiment. Figure 4 is a request for a room with reservation ID #142456, which has a minibar, a coffee maker, and a bathtub in the room. The calculated costs are shown in column 401.
[0046] At Figure 3At 304, the operational efficiency optimization calculates the allocation cost ("C2") using factors such as room utilization rate, gap utilization rate, and upgrade cost. For room utilization rate, the embodiments aim to minimize the wear and tear of rooms by tracking the occupancy rate (=number of occupied days / total number of days) over a certain period. Higher costs are associated with rooms having a higher occupancy rate. For gap utilization rate, the embodiments avoid small gaps in the number of days between two reservations in a particular room. This enables efficient management of unbooked guests and last-minute bookings. The cost is calculated based on the number of days the room remains unoccupied between two consecutive reservations. For upgrade cost, in the case of overbooking, the embodiments minimize the cost of upgrading a reservation. The cost is calculated based on the room category and the importance of the reservation, and ensures that guests with high value are upgraded first. These costs are scaled and combined proportionally to yield the cost of operational efficiency (C2).
[0047] At 305, the weighted cost minimization optimization minimizes the weighted allocation cost of reservations. The embodiments derive the allocation cost for each pair of reserved rooms by combining the cost of customer satisfaction (C1) and the cost of operational efficiency (C2) with the optimization objective weights (W1, W2) of the hotel into the following cost matrix: Total objective cost = (W1 * C1)+(W2 * C2). In the embodiments, the weights can be manually assigned by the hotel to emphasize guest satisfaction or operational efficiency, or the weights can be automatically assigned based on some predefined factors. The matrix includes all possible reserved room allocations, and the optimal solution to solve the allocation problem is the best feasible choice of the matrix elements.
[0048] In one embodiment, the generated cost matrix is adopted by the Hungarian optimization method (or "Hungarian assignment algorithm"), which is constructed in a pre-modified manner to help consider future bookings when allocating rooms for any specific date. Other possible solutions include the greedy heuristic method, which can be used to sort the reservations according to the importance of the reservations and sequentially find the lowest-cost room allocation for each of them, or a mixed integer linear program ("MILP") using powerful commercial solvers (such as Gurobi and CPLEX) can be utilized to find the best solution to this problem. However, the solution provided by the greedy heuristic method is too far from the optimal solution, and the MILP takes too much time to provide the optimal solution and is usually difficult to deploy because it requires the installation of special licensed software. In contrast, in the embodiments using the Hungarian assignment algorithm disclosed in detail below, there is a desired balance between the solution quality and the calculation time.
[0049] Figure 5 Illustrates an example of weighted cost minimization according to an embodiment. Figure 5An example is a simplified example of three rooms, three reservations, and two days. As shown, the cost varies depending on whether the first day or the second day is considered first, which shows that a simple greedy approach may provide a sub-optimal solution depending on the order of the days for allocating rooms. Since it becomes computationally infeasible to try all possible day perturbations within the planning horizon (because even a moderate horizon grows), this indicates the impracticality of the greedy heuristic approach.
[0050] At 306 and 307, the embodiment relaxes the constraints by disabling the constraints in order of importance. The embodiment performs an iterative removal of conditional checks to find a feasible allocation. In the embodiment, the following constraints set at 302 in the configuration are initially used in the following order: upgrade room ("UGR"), preferred market group ("PMG"), and room status restriction ("RSR").
[0051] If it is not feasible at 307, then the embodiment relaxes these constraints in the order specified above and attempts to re-run the optimization logic at 325. Finally, if the algorithm still cannot obtain a feasible solution, then the embodiment resets the state of all constraints, limits the reservation window to only the first day, and restarts the optimization process with this new window. In this case, if there are no double-booked rooms, i.e., no two reservations are assigned to the same room, then the solution is feasible.
[0052] Referring again to optimization 325, solving the disclosed hotel room allocation problem is an NP-hard problem (i.e., it belongs to a broad class of problems for which there is currently no known fast polynomial-time solution). However, the embodiment formulates and solves the problem as a multi-commodity flow problem with zero-one (i.e., Boolean) variables. Although the problem cannot be solved exactly in polynomial time, the embodiment utilizes a near-optimal approximation method and is superior to the solution obtained through manual room allocation compared to the historical data provided by the hotel operator.
[0053] The embodiment implements the Lagrangian relaxation method, which includes relaxing or removing some problem constraints in order to pose a simpler problem that can be efficiently solved by a polynomial or another fast algorithm. The relaxed constraints are not completely eliminated but become part of the objective function carrying a certain penalty for their violation to form a so-called Lagrangian objective. By determining the correct value of the penalty coefficient, the problem can be solved for the optimal value of the continuous variables. When the solution variables are discrete or zero-one, as in the embodiment, the method provides a near-optimal approximate solution.
[0054] The Lagrangian optimization method of the embodiment is also enhanced by a limited combinatorial enumeration search, which includes perturbing the initial solution allowing different starting points, thereby avoiding obtaining only a local optimal solution and post-optimization enhancement of the solution to ensure that there is no better similar solution to the problem.
[0055] The embodiments formulate the optimized reservation problem as a multi-commodity flow problem with binary variables. A known method for solving such problems using Lagrangian relaxation is to relax the edge capacity constraints and penalize violations of these constraints with Lagrangian multipliers. In the context of the room allocation optimization problem, this means allowing several reservations to be assigned to the same room on any night of the stay.
[0056]
[0055] However, compared to this known method, the embodiments keep the constraints for the first night of the stay in place and solve the relaxed problem as a so-called assignment problem in a bipartite graph, which provides a more restrictive formulation by keeping some constraints while still allowing for solution by a fast strongly polynomial algorithm. The embodiments allow for an exact optimal solution to be obtained for the single-night reservation case, even if the reservation can start within a multi-day period. On the other hand, when multiple night reservations have different arrival dates and when it is possible for multiple reservations to be assigned to the same room, the embodiments add certain penalties to the rooms at night. Finally, the embodiments guarantee satisfaction of the constraints by verifying the single reservation room assignments and, if violated, then assign rooms day by day as its final step.
[0057] The embodiments implement a "greedy" algorithm that sorts the reservations based on their importance and finds the lowest-cost room assignment for each reservation. However, the embodiments perform post-assignment swaps to improve the solution. The embodiments also implement a "Hungarian" algorithm heuristic starting from the first day (i.e., the current day) to find the best assignment of the reservations for that day using the available rooms. However, the embodiments change the order of the days and find the best assignment. The embodiments also implement a type of "Lagrangian relaxation" that runs the assignment of the reservations without considering the double-booking rule. The embodiments then increase the penalty for double-booked rooms and keep increasing this penalty until there are no double bookings.
[0058]
[0056] The embodiments use the following integer programming formulation that utilizes two constraints to achieve Figure 3 the optimization 325:
[0059] Symbol:
[0060] ·a ij
[0057] = "cost" of assigning reservation j to room i
[0061] ·x ij = assignment decision variable; x ij
[0058] ∈ {0, 1}; if room i is not feasible, then x ij Figure 3 = 0
[0062] ·min ∑ ij a ij x ij
[0063] · Compliance: and (i.e., two constraints)
[0064] · Where J t is the set of reservations "active" on day t.
[0065] The embodiment implements the following multi - commodity network flow formulation to also achieve Figure 3 Optimization 325 (i.e., equivalent to the above integer programming formulation):
[0066] · Flow variable indicating whether reservation j is assigned to room i on day t.
[0067] · The network structure ensures no room switching
[0068] · Minimize the multi - commodity flow cost s.t.:
[0069] · Flow conservation constraints
[0070] · Link capacity constraints:
[0071] · It may be possible to reduce index t because
[0072] Figure 6 Illustrates the network flow formulation according to an embodiment. Figure 6 Shows two reservations, one (Reservation A) starting on day 1 and the other (Reservation B) starting on day 2. The arrows represent all possible paths that can be taken, and the thicker arrows (e.g., arrows 601 - 604) represent the selected optimized paths. Figure 6 Represents the above multi - commodity flow formulation. In Figure 6 , the nodes are arranged in rows corresponding to specific rooms and columns corresponding to the days of the planning horizon. Each horizontal link corresponds to an accommodation night. The diagonal links correspond to check - in and check - out of the reservations. Theoretically, each reservation can be assigned to any room upon arrival at the destination for check - in, thus forming a path that ends with check - out on the departure day. Figure 6 Is a simplified example, and the actual example can include nodes and possible paths corresponding to both the number of rooms multiplied by the number of days and the number of rooms multiplied by the number of reservations.
[0073] The embodiment implements Lagrangian relaxation as follows, which is obtained from the above integer programming formulation by relaxing the second constraint And adding it to the objective function with a Lagrangian penalty multiplier θ it :
[0074] ·
[0075] ·s.t.:
[0076] ·
[0077] ·
[0078] ·Wherein The reservation set starting on day t (“check-in”)
[0079] ·Solved as an assignment problem (fast, strongly polynomial algorithm)
[0080] ·The k-th iteration update of the penalty
[0081] Figure 7 is a flowchart showing the function of the room allocation optimization module 16 according to the embodiment. In particular Figure 1 focuses on Figure 7 the function of the optimization 325 Figure 3
[0082] At 702, the optimization is initialized by relaxing the room double-booking constraint, setting the daily penalty for double-booked rooms to zero, and setting the penalty update step to the initial configuration value. In one embodiment, at 702, the solution is initialized by using the costs obtained from the guest satisfaction and operational efficiency components of 305 of Figure 3 respectively from 303 and 304. Additionally, at 702, the Lagrangian penalty is set to zero and the penalty update step is set to the initial value of 0.01
[0083] At 704, for each day of the planning horizon, the double-booking constraint is relaxed and the room allocation problem for the reservations on that day is solved using the daily penalty for each room. At 704, the above Lagrangian relaxation of the integer programming formulation is solved
[0084] At 706, it is determined whether there are any double-bookings. 706 checks the feasibility of the problem by checking that there are no double-bookings for any room on any night. If there are any double-bookings and the iteration limit has not been reached (i.e., yes at 706), then at 708 it is determined whether the iteration limit has been reached. In one embodiment, the iteration limit is set to 10
[0085] If no at 708, then the daily penalty for the rooms is updated at 710 based on the room double-booking level using the above Lagrangian relaxation. The function continues / iterates again at 704
[0086] If the answer at 708 is yes (i.e., the iteration limit is reached), then at 712, for each day in the planning horizon, the embodiment complies with the double - booking constraint by removing the rooms reserved for that day and solves the room - allocation problem for that day using the per - room - per - day penalty. At 712, a strict double - booking constraint is imposed, and the previously calculated Lagrangian penalty for room allocation is used to solve the problem day by day.
[0087] If the answer at 706 is no (i.e., no duplicate reservation is found) or after 712, then at 714 a feasible solution is found (i.e., the room allocation is optimal).
[0088] The experimental results show that the embodiment improves the functionality of the computer while obtaining results close to the known best MILP solution. The experiment used 1,000 rooms, approximately 150 daily arrivals, an average stay of 4 days, and a planning horizon ranging from 7 days to 21 days.
[0089] Figure 8A FIG. is a graph showing the objective - function value versus the number of reservations according to an embodiment of the present invention. The objective function is the total cost of the above - mentioned solution, representing the allocation cost including the hotel - operation - cost component and the cost of not providing the desired room features to hotel guests. Since the optimization objective is to minimize the cost, lower values correspond to better solutions. 801 represents the best MILP solution, and 802 represents the solution according to the embodiment. As shown, according to the objective - function values on the Y - axis, both solutions provide similar results. Figure 8B FIG. is a graph showing the running time versus the number of reservations according to an embodiment of the present invention. 803 represents the best MILP solution, and 804 represents the solution according to the embodiment. As shown, as the number of reservations increases, the required running time of the MILP solution increases significantly, while the running time of the embodiment of the present invention remains relatively low and constant. Therefore, the functionality of the computer is improved by using the embodiment of the present invention.
[0090] Currently, with known hotel management solutions, most room assignments are performed manually by hotel operators every day for arriving guests, which takes a lot of time and effort. Embodiments allow for the automation of the room assignment process while maintaining or improving its quality. By determining room assignments earlier in the day, extra time can be set aside for cleaning and preparing the assigned rooms. Once the optimal room reservation is determined, embodiments generate control signals that cause dedicated equipment to operate in a responsive manner. For example, a room key generation machine that can program a generic key blank or create a new key receives the control signal and generates the corresponding key for the determined room that has been assigned. Additionally, a robotic device can receive the control signal to enter the assigned room and assist with cleaning the room, ensuring that appropriate supplies are stocked (or providing supplies when needed), and performing necessary room inspections (e.g., to determine if the room is ready for a newly arriving guest).
[0091] As disclosed, embodiments of the room assignment optimization system accelerate the room assignment process while providing a high-quality solution that can meet the needs of both hotel operations and the guest experience. It provides an automated solution by deploying a very lightweight software architecture without relying on any third-party software, which also saves licensing costs. Experiments show that embodiments can assign rooms to thousands of reservations in a computational runtime of less than a minute. Additionally, embodiments allow for customization of the execution of assignments based on a hotel's preference for operational efficiency or guest satisfaction, which enables them to switch based on the travel season or hotel type.
[0092] Specific embodiments have been illustrated and / or described herein. However, it will be recognized that, without departing from the spirit and intended scope of the present invention, the above teachings cover modifications and variations of the disclosed embodiments, and such modifications and variations are within the scope of the appended claims.
Claims
1. A method for optimizing room allocation for a hotel, the method comprising: Receiving a plurality of hard constraints and soft constraints; Receiving reservation preferences and room characteristics; Performing optimization, the optimization comprising: Determining a guest satisfaction allocation cost based on reservation preferences and room characteristics; Determining an operational efficiency allocation cost, the operational efficiency allocation cost including room utilization rate, gap utilization rate, and room upgrade cost; Generating a weighted cost matrix based on the guest satisfaction allocation cost and the operational efficiency allocation cost, wherein generating the weighted cost matrix includes, for each of a plurality of reserved room pairs, combining the corresponding guest satisfaction allocation cost and the corresponding operational efficiency allocation cost with a target weight; Generating a preliminary room allocation based on the weighted cost matrix; When the preliminary room allocation is feasible, the preliminary room allocation is an optimized room allocation including a feasible selection of matrix elements; When the preliminary room allocation is infeasible, relaxing one or more constraints and repeating the optimization until the preliminary room allocation is feasible, the optimization including solving a multi-commodity network flow problem with boolean variables; When the preliminary room allocation is feasible: Generating a control signal corresponding to the preliminary room allocation; and In response to the control signal, automatically electronically programming one or more room keys corresponding to the preliminary room allocation.
2. The method according to claim 1, wherein the constraints are relaxed by disabling the constraints in order of importance.
3. The method according to claim 1, wherein the preliminary room allocation is feasible when there is no double booking.
4. The method according to claim 1, the optimization comprising: Relaxing the double booking constraint and setting the daily penalty for double booked rooms to zero; For each day within the planning horizon, relaxing the double booking constraint and using the daily room penalty and Lagrangian relaxation to solve the room allocation problem for that day; When there is a double booking, updating the daily room penalty based on the level of the double booking and repeating for each day of the planning horizon, relaxing the double booking constraint and using the daily room penalty and Lagrangian relaxation to solve the room allocation problem for that day.
5. The method according to claim 4, the optimization further comprising: Determining whether an iteration limit has been reached; When the iteration limit has been reached, imposing the double booking constraint and using the updated daily room penalty to solve the room allocation problem.
6. The method according to claim 1, further comprising: Performing a pre-optimization analysis, including performing linear regression to generate feasible room alternatives, creating a market group hierarchy, and estimating reservation importance.
7. The method according to claim 1, wherein generating the preliminary room allocation based on the weighted cost matrix includes a Hungarian algorithm heuristic method for solving the allocation problem, the Hungarian algorithm heuristic method including an integer programming formulation using the guest satisfaction allocation cost and the operational efficiency allocation cost as constraints.
8. A computer-readable medium having instructions stored thereon, which when executed by one or more processors, cause the processors to optimize room allocation for a hotel, the optimization comprising: Receiving a plurality of hard constraints and soft constraints; Receiving reservation preferences and room characteristics; Performing optimization, the optimization comprising: Determine guest satisfaction allocation costs based on reservation preferences and room characteristics; Determine operation efficiency allocation costs, where the operation efficiency allocation costs include room utilization rate, gap utilization rate, and room upgrade costs; Generate a weighted cost matrix based on the guest satisfaction allocation costs and the operation efficiency allocation costs; Generate a preliminary room allocation based on the weighted cost matrix, where generating the weighted cost matrix includes, for each of a plurality of reserved room pairs, combining the corresponding guest satisfaction allocation cost and the corresponding operation efficiency allocation cost with a target weight; When the preliminary room allocation is feasible, the preliminary room allocation is an optimized room allocation including a feasible selection of matrix elements; When the preliminary room allocation is infeasible, relax one or more constraints and repeat the optimization until the preliminary room allocation is feasible, where the optimization includes solving a multi-commodity network flow problem with Boolean variables; When the preliminary room allocation is feasible: Generate a control signal corresponding to the preliminary room allocation; and In response to the control signal, automatically electronically program one or more room keys corresponding to the preliminary room allocation.
9. The computer-readable medium according to claim 8, relaxing the constraints by disabling the constraints in order of importance.
10. The computer-readable medium according to claim 8, where the preliminary room allocation is feasible when there is no double booking.
11. The computer-readable medium according to claim 8, where the optimization includes: Relax the double booking constraint and set the daily penalty for double booked rooms to zero; For each day within the planning horizon, relax the double booking constraint and use the daily room penalty and Lagrangian relaxation to solve the room allocation problem for that day; When there is a double booking, update the daily room penalty based on the level of the double booking and repeat for each day of the planning horizon, relaxing the double booking constraint and using the daily room penalty and Lagrangian relaxation to solve the room allocation problem for that day.
12. The computer-readable medium according to claim 11, where the optimization further includes: Determine whether an iteration limit has been reached; When the iteration limit has been reached, impose the double booking constraint and use the updated daily room penalty to solve the room allocation problem.
13. The computer-readable medium according to claim 8, further including: Perform a pre-optimization analysis, including performing a linear regression to generate feasible room alternatives, creating a market group hierarchy, and estimating reservation importance.
14. The computer-readable medium according to claim 8, where generating the preliminary room allocation based on the weighted cost matrix includes a Hungarian algorithm heuristic for solving the allocation problem, and the Hungarian algorithm heuristic includes an integer programming formulation using the guest satisfaction allocation costs and the operation efficiency allocation costs as constraints.
15. A hotel room reservation system, including: One or more processors coupled to stored instructions; And A database storing reservation preferences and room characteristics; The processor is configured to receive a plurality of hard constraints and soft constraints and implement a room optimization module configured to perform optimization, where the optimization includes: Determine guest satisfaction allocation costs based on reservation preferences and room characteristics; Determine operation efficiency allocation costs, where the operation efficiency allocation costs include room utilization rate, gap utilization rate, and room upgrade costs; Generate a weighted cost matrix based on guest satisfaction allocation costs and operation efficiency allocation costs; Generate a preliminary room allocation based on the weighted cost matrix, where generating the weighted cost matrix includes, for each of a plurality of reserved room pairs, combining the corresponding guest satisfaction allocation cost and the corresponding operation efficiency allocation cost with a target weight; Wherein, when the preliminary room allocation is feasible, the preliminary room allocation is an optimized room allocation including a feasible selection of matrix elements; Wherein, when the preliminary room allocation is not feasible, the processor is configured to relax one or more constraints and repeat the execution of the optimization until the preliminary room allocation is feasible, and the optimization includes solving a multi-commodity network flow problem with Boolean variables; Wherein, when the preliminary room allocation is feasible: Generate a control signal corresponding to the preliminary room allocation; and In response to the control signal, automatically electronically program one or more room keys corresponding to the preliminary room allocation.
16. The system according to claim 15, wherein the constraints are relaxed by disabling the constraints in order of importance.
17. The system according to claim 15, wherein the preliminary room allocation is feasible when there is no double booking.
18. A computer program product comprising instructions that, when executed by a computer, cause the computer to perform the method according to any one of claims 1-7.
Citation Information
Patent Citations
Improvements in or relating to the assignment of places
EP2120194A1
Autonomous and integrated system, method and computer program for dynamic optimisation and allocation of resources for defined spaces and time periods
WO2019084605A1