1. Introduction
Recently, with the great popularity and pervasiveness of smart devices (e.g., smart phones or tablet PCs), mobile apps have gradually become a commonplace service in people’s daily lives. In addition, with the rapid emerging of information and communication technologies (e.g., mobile and wireless communication, embedded technology, and sensing technology), more and more conventional industries introduce these technologies into their business operation. The tourism and leisure industry is no exception. Famous theme parks such as Walt Disney World, Universal Orlando Resort, and Ocean Park Hong Kong have all introduced information and communication technologies into their park services, which can facilitate visitors’ satisfaction, loyalty, revisit intention, etc. Among these theme parks, Walt Disney World is undoubtedly a good example in creating fantastic user experiences based on various technologies such as RFID wristbands (Magic Bands), mobile apps, mobile payment, and even big data analysis [
1], which altogether provide considerate services.
Although Walt Disney World and other theme parks such as Universal Orlando Resort have improved visitors’ experiences with services such as FastPass+ or Express
SM Pass, we observe that there is still room for improvement. One of the problems is that, in their mobile apps, when tourists need some attraction suggestions, there are a variety of decisions for tourists to make by themselves, which may cause pressure, or so-called choice overload, on tourists and negatively impact tourists’ experiences [
2,
3]. Moreover, the suggested attractions might include an attraction that the tourist does not want to visit because they are filtered from all attractions in the theme area, not according to the tourist’s wish or favorite attraction list only. Another problem is that the suggestion provided by their mobile apps is a list of attractions, often quite lengthy, and the tourists have to browse through the list only to find one attraction they want to visit next.
In addition, the literature has investigated the issue of waiting in services and argued that the waiting time is actually important for services in many places such as restaurants and public transportation stations because it may influence the service experience of customers [
4,
5,
6,
7]. Although using many fantastic technologies, the problem of long lines in front of the most popular attractions is one of the core problems to be resolved in many theme parks. Walt Disney World, Orlando has tackled this problem with the FastPass+ mechanism, a sorted list of attractions’ prompt wait times, and an interactive gaming mobile app for visitors to play during their waiting time in the line. The FastPass+ mechanism is basically a way to reserve an attraction in advance before a visitor goes to take the ride. The sorted indication of attractions’ current wait times assists the visitors with their visiting decisions. The interactive gaming mobile app turns visitors’ wait times to play times and might help relieve the bad feelings due to long waiting. Among the three solutions, we find that there is still one more thing which can be further improved, namely, the attractions’ wait times. The attraction’s wait time, called the general waiting time, provided by Walt Disney World is general to all visitors, no matter where the visitors are [
8]. That is, the time does not take the tourist’s location into account and does not supply visitors with their mobility time information to the attractions based on the visitors’ location information. Unfortunately, the Walt Disney World’s system only provides general attraction wait times regardless of where the visitors are. Universal Studio’s system exhibits the same problem.
Many tourism recommendation systems are based on combinatorial optimization challenges. According to the level of complexity and requirements of users’ recommended items, different recommendation strategies are applied in tourism recommender systems [
9]. To query relatively simple items, such as restaurants or shops, content-based and collaborative filtering-based recommendation strategies are usually applied. Content-based strategies recommend services of tourism based on the similarity of user preferences and the descriptive information of services [
10]. Collaborative filtering recommendation strategies are based on the opinions of users who share similar interests or locations [
11,
12,
13]. In addition, knowledge-based and hybrid recommendation strategies are utilized to query more complex items, such as travel routes and plans [
14,
15]. Knowledge-based recommendation strategies offer items to users based on the knowledge about the relationship between users’ requirement and a possible recommendation. The hybrid recommendation approach combining two or more recommendation strategies into one hybrid strategy was proposed in [
16]. Moreover, a system based on the technologies of big data and time series analysis for smart tourism is designed in [
17].
In recent years, social network analysis recommendation strategies based on spatial or attribute information obtained with the social networking tools have been proposed due to the dramatic growth of computer sciences and technologies [
18,
19]. Additionally, because mobile service information provides extra references in tourists’ behavior, many recommendation strategies based on the new technologies, such as RFID and augmented reality (AR), are widely used in tourism and leisure industries [
20,
21]. In addition, the novel recommendation system based on artificial intelligence to provide the personalized favorite music is introduced in [
22].
This study designed and implemented a theme park tourist service (TPTS) system with the proposed personalized recommendation algorithm to enhance the visitor experiences. The TPTS system comprises four subsystems: the mobile app subsystem, the ticket-scanning subsystem, the detecting/counting subsystem, and the central subsystem. The mobile app subsystem is a tool for tourists to take advantage of diverse system services such as query of park information and reservation of preferred attractions. The ticket-scanning subsystem scans the tourist’s reservation (booking) ticket and sends the ticket information to the central subsystem for further verification. The detecting/counting subsystem aims to detect and compute the queue length and accumulated visit count of each attraction. The central subsystem performs necessary computing and database management of the proposed system. The proposed TPTS system introduces an innovative function called the personalized dynamic scheduling to offer tourists the customized best plans mainly according to the location of tourists, the queue length, the capacity, and the duration of an attraction. A tourist can use the mobile app to establish his/her own favorite attraction list, choose his/her own preferred attraction priority, and obtain the personalized recommended attraction to visit next. In addition, we design location-based dynamic map and attraction reservation functions into the TPTS system.
The main contributions of this study are summarized as follows. The TPTS system eliminates choice overload because it leaves only three commonly considered strategies (i.e., closest attraction first, shortest wait-time attraction first, and hottest attraction first) for tourists to decide on their own. In addition, the TPTS system removes the tourist’s pressure caused by searching for only one preferred attraction from lengthy suggested attraction list because it offers only one recommended attraction at a time, and the recommendation is solely derived from the tourist’s favorite attraction list. In addition, the recommended attraction is always the timely best attraction according to the current conditions of the attractions in the theme park, not an out-of-date or out-of-time result in a pre-arranged recommended list. Overall, this paper introduces the concept of location-based wait times, designing and implementing this idea into the prototype of our proposed system. This concept is not meant to replace or outperform the current design of Walt Disney World’s or Universal Studio’s system, but to present a novel idea which can be further integrated into their systems and help escalate the tour experiences even more.
The rest of this paper is organized as follows.
Section 2 gives the basic idea of the proposed recommendation strategy and assumptions.
Section 3 formulates the proposed personalized waiting time.
Section 4 elaborates the design of the proposed theme park tourist service system.
Section 5 presents the system implementation and the field testing results.
Section 6 discusses two important issues, i.e., privacy and education, to be explored in the future.
Section 7 provides concluding remarks.
2. Preliminaries
Figure 1 shows an example to illustrate the concept of the proposed personalized waiting time. Without the loss of generality, the next sessions of all attractions are assumed to start at the same time (i.e., all attractions have the same general waiting time). The current time and the next sessions of three attractions are 12:00 and 12:15, respectively. Thus, the general waiting time of three attractions is 15 min. Consider that there are two visitors who want to take Attraction A. They both find that the wait time is 15 min, and then decide to go to Attraction A right away. Assume that one of them (i.e., Visitor 1) should take 10 min to walk to it, while the other (Visitor 2) needs only 2 min to reach it. However, neither has the idea of how much time each of them needs to take to arrive at Attraction A if there is no mobility time information provided for them. They will just go to Attraction A (the same destination), with Visitor 1 finding that he/she can take the ride only after 5 min wait, while Visitor 2 realizing that she/he needs to wait for the ride for 13 min. Now, let us consider the feelings of the two visitors. In our opinion, people would like to keep moving to a certain destination rather than wait at a certain place, which is a common phenomenon that can be observed among car drivers or someone who is on a quest. Hence, we believe that Visitor 1’s feeling would be better than Visitor 2’s.
The central idea of our study is the personalized waiting time, which is defined as the actual waiting time when the tourist arrives at an attraction and considered in the personalized dynamic scheduling function of the TPTS system. Recall that the waiting time considered in prior studies is the general waiting time, which is defined as the waiting time of the last tourist in the queue of length at an attraction. The general waiting time is computed based only on the queue length, the capacity, and the duration of an attraction, and totally irrelevant to any personal attribute of the tourist who is requesting any waiting-time related services. As shown in
Figure 1, if considering the general waiting time only, the tourist has no preference among the three attractions and thus makes the final decision by himself/herself. The approaching times of the tourist moving towardsAttractions A–C are, respectively, 12, 5, and 8 min. Thus, the actual waiting times when the tourist arrives at Attractions A–C are 3, 10, and 7 min, respectively. If the approaching times of the tourist moving towards these attractions are different, the tourist would feel or perceive that Attraction A costs the shortest waiting time among the three attractions. Therefore, the tourist is more likely to select Attraction A to visit next. This is how the personalized waiting time, taking the approaching time of the tourist into account, would improve the tourist’s perception of waiting as he/she arrives at the attraction.
This study considers the following assumptions to calculate the proposed personalized waiting time.
The inter-session time between operation sessions of the attraction is ignored.
The moving time of an attraction is derived as if the tourist starts to move to the attraction right after the tourist activates the personalized dynamic scheduling function.
The processing time at both the mobile app subsystem and the central subsystem as well as the network propagation delay between the two subsystems are ignored. In other words, the time when the tourist activates the personalized dynamic scheduling function at the mobile app subsystem and the time when the central subsystem receives the personalized dynamic scheduling request from the mobile app subsystem are considered as the same moment.
3. Personalized Waiting Time
This section provides the formulation of the proposed personalized waiting time. The notation used in the rest of the paper is summarized in
Table A1.
As mentioned above, we argue that the personalized waiting time, taking the approaching time of the tourist into account, would improve the tourist’s perception of waiting when he/she arrives at the attraction. Specifically, the calculation of the personalized waiting time considers not only the queue length, the capacity, and the duration of an attraction, but also the moving time of the tourist from his/her starting position to the attraction. Given
,
, and
, the general waiting time of
,
can be obtained from Equation (1).
Definition 1 (Requesting Time).The requesting time is defined as the time when the central subsystem receives the personalized dynamic scheduling request from the mobile app subsystem.
Observed at the requesting time, this method considers the starting times of the current operation session and the next operation session. Specifically, the latter is defined as the immediate following session of the current operation session. Thus, we have
To calculate the personalized waiting time, we have to determine the ideal session for the tourist. The ideal session of Ai is defined as the session which starts later than TReq and can allow one visitor getting into Ai immediately after the th batch of visitors (in the queue of length
observed at ) is served. In other words, if a tourist who activates the personalized dynamic scheduling function arrives before and right at the start of the ideal session, he/she can get into Ai at the ideal session along with the last visitors in the queue if observed at .
Definition 2 (Ideal Session Time).The ideal session time is defined as the starting time of the ideal session.
Theorem 1. .
Proof. If all visitors in the queue plus one more visitor can be served in one single session (i.e., ), then the ideal session time is actually the starting time of the next operation session (i.e., ). On the other hand, if the visitors in the queue plus one more visitor cannot all be served in one single session (i.e.,), then ideal session time will be the starting time of a session later than the next session observed at and determined according to the queue length, capacity, and duration of . As a result, we obtain . □
Definition 3 (Moving Time).The moving time is defined as the duration of the tourist moving from his/her location where he/she activates the personalized dynamic scheduling function to the location of an attraction.
Definition 4 (Arrival Time).The arrival time is defined as the time when the tourist arrives at an attraction.
Given
, we derive
Definition 5 (Recommendation Session Time).The personalized waiting time is defined as the actual waiting time of the tourist when he/she arrives at an attraction.
Theorem 2. If , then ; otherwise, .
Proof. In the proposed system, according to the definition of the recommend session time. Because and directly influence , we consider the following two cases to derive , and further derive . □
Case 1. The arrival time is earlier than or equal to the ideal session time (i.e., ).
According to the above discussion, we infer that the tourist (who activates the personalized dynamic scheduling request at
) can get into
Ai immediately after the
th batch of visitors in the queue is served for all
. Thus,
. Because
,
can be derived from
According to Equations (2) and (3),
can be rewritten as
. Because
, we obtain
Case 2. The tourist’s arrival time is later than the ideal session time (i.e., ).
In this case, the tourist will miss the ideal session and has to wait only for a short period within the duration of
Ai after he/she arrives, because all the visitors waiting in line observed at
have been served before or at
. Therefore, we have
According to Equations (2) and (5),
can be rewritten as
. Because
, we obtain
4. TPTS System Design
Figure 2 shows the system architecture of the proposed TPTS system. The TPTS system consists of four subsystems: central subsystem, mobile app subsystem, ticket-scanning subsystem, and detecting/counting subsystem. Each subsystem includes many modules to perform the corresponding functions. The mobile app subsystem is a mobile app for visitors to offer the tourist services. The subsystem provides tourists with many interfaces to obtain the park information, personalized tour suggestion, booking record, and so on.
4.1. Mobile App Subsystem
The mobile app subsystem (app) provides tourists with an integrated interface to take advantage of various tourist services. The visitors need only to download and install the app into their smartphones or tablet PCs and everything is on the go.
4.1.1. Park Info Module
This module provides the tourist with an interface to inquire general information about the theme park, such as news and tour guide. The tour guide includes the ticket prices, traffic, and opening hours of the park. It also provides the tourist with information about each attraction in the park, where the attractions are categorized by which theme area they reside. Furthermore, the search function is provided for the tourist to do a quick keyword search. In addition, the tourist can add attractions to his/her personal favorite or wish list (My Play List). This list can be used by the personalized dynamic scheduling function in the Tour Suggestion module.
4.1.2. Tour Suggestion Module
This module performs the central functions of the mobile app subsystem and provides the tourist with an interface to take advantage of these functions, including Personalized Dynamic Scheduling, Location-based dynamic map, and Attraction Reservation.
For ease of reserving attractions, we add the attraction reservation function embedded in the personalized dynamic scheduling function for the tourist to reserve the recommended attraction when the tourist obtains the recommended offered by the personalized dynamic scheduling function. Note that the service can also be independent of the personalized dynamic scheduling function according to the consideration of the industry of theme parks.
● Personalized Dynamic Scheduling
This function provides the tourist with a customized recommendation of the next attraction to visit according to the tourist’s location, favorite or wish attraction list (My Play List), preferred attraction priority (strategy), without the tourist making plans or too many decisions by himself/herself. To reduce the choice overhead of tourists, the TPTS system offers only one recommended attraction at a time. In addition, the recommended attraction is always the prompt best next attraction to visit according the tourist’s strategy, not an out-of-date or out-of-time result in a recommended list figured out or arranged in advance. Furthermore, we use the personalized waiting times instead of the general waiting times of attractions to find a recommended attraction in order to improve the tourist’s perception of waiting.
There are three choices of preferable strategies as the optimal solution: Closest First, Shortest Waiting Time First, and Hottest First. The “Closest First” strategy determines the attraction that is the closest one to the tourist. The “Shortest Waiting Time First” strategy determines the attraction having the shortest personalized waiting time. The “Hottest First” strategy determines the attraction with the maximum number of visits. Once the best next attraction is obtained, the central subsystem determines the recommended session time, the estimated moving time, and the estimated personalized waiting time in terms of the attraction. Then, the mobile app displays this information when receiving the response from the central subsystem.
● Attraction Reservation
This function provides the tourist with attraction reservation or booking services. The tourist can reserve attractions in advance, and enjoy his/her ride without the painful waiting in a long line. This function provides tourists with the attraction reservation service after the personalized dynamic scheduling function offers the recommended next attraction. When a tourist activates this function, the mobile app subsystem will proceed with the following steps.
- Step 1.
Request the central subsystem to return a list of bookable sessions of this attraction, each session with a current bookable quota, and display this list to the tourist.
- Step 2.
Hint the tourist to select the booking amount, such as three persons, after the tourist chooses a bookable session.
- Step 3.
Request the central subsystem to reserve the designated attraction after the tourist selects the booking amount and confirms his/her booking choice.
- Step 4.
Display the reservation result when receiving the response from the central subsystem. If the result is successful, the mobile app subsystem will store a digital booking ticket for later verification when the tourist arrives at the reservation entrance of the attraction.
● Location-based Dynamic Map
This function provides the recommended route(s), direction(s), estimated distance(s), and moving time(s) from the location of the tourist to his/her specified attraction on an electronic map, where the map can be easily zoomed in and out. This function can be easily accommodated via widely used Google Maps API, just as Walt Disney World and Universal Studios, Orlando have already adopted in their systems. Each attraction can be regarded as a point of interest (POI), and the spatial and related attribute of POI data are recorded previously through the concept of the GIS. The spatial relation between the tourist and POI can be found through the location service of the mobile device. As the tourist moves, the route will dynamically adjust according the tourist’s new location. With the location-based dynamic map function, the tourist will no longer get stressful because of misrouting or difficulty when seeking for an attraction on a static map. This function can link to the web map service (WMS) independently, thus we can choose different WMS sources for customized map designing in different theme park. Moreover, The TPTS can be utilized easily and adopted to the specific characteristics of each theme park.
4.1.3. My Record Module
This module provides the tourist with an interface to access his/her favorite or wish attraction list, booking tickets, and history of selected attractions using the My Play List, My Booking Tickets, and My Play Record items, respectively. The My Play List shows the attractions selected by tourists themselves, and is the operation basis for the personalized dynamic scheduling function. Particularly, the personalized dynamic scheduling function finds the recommended attraction only from this list. We can select the attractions optionally or modify directly in this list. The My Booking Tickets shows all the booking tickets. When a tourist arrives at the reservation entrance, he/she can draw out the corresponding ticket from this list and show the ticket to the ticket-scanning subsystem for further verification. The My Play Record displays a chronological history of attractions ever selected by the tourist.
4.2. Ticket-Scanning Subsystem
This subsystem aims at scanning the tourist’s booking ticket, requesting the central subsystem to verify the validity of this booking ticket, and trigger the reservation entrance gate of the attraction. Recall that there are two modules in this subsystem, briefly discussed in the following subsections.
4.2.1. Ticket Scanning and Decoding Module
This module scans the tourist’s digital booking ticket, such as a QR code shown on his/her smartphone screen, decodes the ticket information, and requests the central subsystem to verify this booking ticket according to the ticket information. Upon receipt of the response from the central subsystem about the validity of the ticket, this module hands over the proceeding task to the reservation entrance gate controlling module.
4.2.2. Reservation Entrance Gate Controlling Module
This module triggers the reservation entrance gate to open up for the tourist to pass if the tourist’s ticket is valid according to the response from the central subsystem. If the ticket is not valid, this module can instead show an error message to inform the tourist. For testing and demonstration purpose, the implementation of the prototype can be either software- or hardware-based. For example, we can implement this module simply as a software which indicates whether a visitor is allowed to enter the reservation entrance gate based on the response of the central subsystem. On the other hand, we can also introduce micro-controllers (e.g., Arduino or Raspberry Pi) and actuators into the prototype implementation, in which they shall act like the reservation entrance gate, behaving according to the response from the central subsystem.
4.3. Detecting/Counting Subsystem
This subsystem is responsible for detecting tourist penetration through the entrance of an attraction, calculating the queue length and the number of visits to the attraction, and sending this information to the central subsystem at appropriate timings. Note that the queue length and the number of visits are two significant parameters to the personalized dynamic scheduling, where the queue length is for calculating the personalized waiting time, and the number of visits determines how popular (“hot”) the attraction is. The three modules in this subsystem are described as follows.
4.3.1. Visitor Detecting Module
This module detects the tourist penetration through the entrance of an attraction, and notifies the Queue Length Computing module and the Visitor Count Cumulating module to calculate the queue length and the number of visits.
4.3.2. Queue Length Computing Module
This module computes the queue length of an attraction when a tourist passes through the entrance (notified by the Visitor Detecting module) or at every turn of attraction operation (i.e., when the attraction finishes a round of operation and tourists in the waiting line can move into the attraction to have a ride). This module also sends the value of the queue length to the central subsystem for database updating at appropriate timings. If we require a highly real-time value of queue length, we can have this module send the value of queue length every time this value is changed. Otherwise, we can have this module send this value less frequently.
4.3.3. Visitor Count Cumulating Module
This module accumulates the number of visits (visitor count) to an attraction when a tourist passes through the entrance of the attraction (notified by the Visitor Detecting Module). In addition, this module sends the visitor count to the central subsystem for database updating at appropriate timings. If we require a highly real-time visitor count, we can have this module send the count every time this value is changed. Otherwise, we can have this module send this value less frequently.
4.4. Central Subsystem
The central subsystem performs the kernel computing and database management of the TPTS system. With respect to the mobile app subsystem, the central subsystem accepts the park information inquiry, personalized dynamic scheduling, and attraction reservation requests from the mobile app subsystem. After processing these requests, the central subsystem returns corresponding responses to the mobile app subsystem. With respect to the ticket-scanning subsystem, the central subsystem accepts the ticket verification request from the ticket-scanning subsystem, verifies the validity of the ticket, and responds the result to the ticket-scanning subsystem. With respect to the detecting/counting subsystem, the central subsystem accepts the notifications of the values of the queue length and the visit count from the detecting/counting subsystem, and updates the database accordingly. Besides the database, this subsystem consists of the Personalized Dynamic Scheduling Determination module and the Attraction Reservation Management module.
4.4.1. Personalized Dynamic Scheduling Determination Module
This module provides kernel computing to the personalized dynamic scheduling function of the TPTS system. Specifically, this module is responsible for calculating the personalized waiting times and recommended session times of attractions, comparing and finding the attraction with the shortest waiting time among the attractions, and finding the most popular (“hottest”) attraction according to the visit counts of attractions recorded in the database.
Under all three strategies, this module needs to determine the personalized waiting time and the recommended session time prior to performing the personalized dynamic scheduling. The two values are required to inform the tourist how long he/she may wait when arriving at the attraction and which session to take. Moreover, in the Shortest Waiting Time First strategy, the personalized waiting times of a group of attractions are required to determine which attraction has the shortest personalized waiting time. To conclude, the calculation of personalized waiting times is crucial to the personalized dynamic scheduling function.
Recall that the central subsystem in the TPTS system supports the personalized dynamic scheduling function including three strategies. When receiving a personalized dynamic scheduling request from the mobile app subsystem, the central subsystem determines which strategy the tourist chooses and proceeds accordingly. The steps that the central subsystem performs for three strategies are, respectively, as follows.
The case study for the functionality of the scheduling determination module is presented in
Section 5.2.2.
4.4.2. Attraction Reservation Management Module
This module provides kernel handling to attraction reservation and booking ticket verification. The former handles attraction reservation or booking requests from the mobile app subsystem, while the latter verifies the validity of booking tickets.
● Attraction Reservation Handling
When receiving a booking-attraction request of a designated attraction from the mobile app subsystem, the central subsystem will proceed with the following steps.
Figure 3 illustrates the detailed message flow chart between the mobile app subsystem and the central subsystem regarding attraction reservation.
- Step 1.
Draw out all bookable sessions of this attraction and the current bookable quotas of these sessions from the database.
- Step 2.
Return the information drawn in Step 1 to the mobile app subsystem via a booking-attraction response.
- Step 3.
When receiving the booking-session-amount request from the mobile app subsystem, the central subsystem will insert a new booking record of the designated attraction into the database and update related field(s) in the database.
- Step 4.
Send a booking confirmation message to the mobile app subsystem.
● Booking Ticket Verification
When receiving a ticket verification request from the ticket-scanning subsystem, the central subsystem will proceed with the following steps. The detailed message flow chart between the ticket-scanning subsystem and the central subsystem is shown in
Figure 4.
- Step 1.
Compare the data in the ticket verification request with the booking records in the database; if no corresponding record exists, the central subsystem will return a ticket verification response with answer “invalid” to the ticket-scanning subsystem and end the verification process; otherwise, go to Step 2.
- Step 2.
Check if the tourist arrives during the appointed period (e.g., within 15 min before the reserved session starts); if not, the central subsystem will return a ticket verification response with answer “invalid” to the ticket-scanning subsystem and end the verification process; otherwise, go to Step 3.
- Step 3.
Recognize this ticket as valid, update related fields in the database, and return a ticket verification response with answer “valid” to the ticket-scanning subsystem.