Personalized Tour Itinerary Recommendation Algorithm Based on Tourist Comprehensive Satisfaction
Abstract
:1. Introduction
2. Literature Review
2.1. Research on Itinerary Recommendation Algorithms
2.2. Research on Itinerary Planning Algorithms
3. Problem Definition and Modeling
3.1. Problem Definition
3.2. Comprehensive Satisfaction of Tour Itinerary
3.2.1. Scoring Based on the Time Utilization Ratio
3.2.2. Scoring Based on the Attractiveness of Recommended Scenic Spots
3.2.3. Scoring Based on Itinerary Feasibility
3.2.4. Reward Based on Scenic Category Diversity
3.2.5. Comprehensive Satisfaction Score
3.3. Modeling of the Tour Itinerary Recommendation Problem Based on Comprehensive Satisfaction
4. Method
4.1. Time Planning Algorithm Based on Tour Itinerary Planning Satisfaction
1 | |
2 | |
3 | |
4 | |
5 | ; |
6 | ; |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 |
4.2. Tour Itinerary Planning Algorithm Based on Tour Itinerary Planning Satisfaction
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 |
4.3. Tour Itinerary Recommendation Algorithm Based on Tourist Comprehensive Satisfaction
1 | |
2 | |
3 | ; |
4 | |
5 | |
6 | |
7 | |
8 | ; |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 |
5. Experiment and Example Analysis
5.1. Experimental Data
5.2. Parameter Debugging of Tour Itinerary Recommendation Algorithm
5.3. Tour Itinerary Planning Algorithm Heuristic Effectiveness Analysis
5.4. Tour Itinerary Recommendation Algorithm Selection Function Effectiveness Analysis
5.5. Analysis of Tour Itinerary Planning Results
- (1)
- LKH: This algorithm plans an itinerary based on minimizing route costs, which is the most basic and common method of itinerary planning. It does not consider the temporal feasibility of itinerary arrangements.
- (2)
- LKH-TW: This algorithm plans an itinerary based on the optimal , employing the same objective function as presented in this paper. It considers the time windows of attractions but does not consider dining and accommodation times during the itinerary. The algorithm introduces the optimal time window selection algorithm proposed in this paper to accommodate multiple time windows of attractions in multi-day trips. Additionally, to avoid unreasonable overnight travel, any intersection between attraction time windows and resting time is removed, implying a rigid arrangement for accommodation time. This algorithm represents the current level of time constraints in itinerary planning problems in the related literature.
- (1)
- The travel time ().
- (2)
- Whether the itinerary exceeds the planned time () (indicated by 0 or 1).
- (3)
- Whether there are attractions that cannot be visited (). An attraction is considered unable to be visited if, upon arrival at the node, it is already past the last entry time for that attraction within the planned travel time.
- (4)
- The actual duration of attraction visits planned in the itinerary ().
- (5)
- The ratio of to expected visit duration (). The difference between the two values stems from late arrivals at attractions.
- (6)
- The itinerary penalty ().
- (7)
- Tour itinerary planning satisfaction ().
- (1)
- : The LKH algorithm achieves the lowest value in all three cases. The LKH_TW algorithm and the proposed method are roughly comparable, but there is no significant enhancement compared to the LKH algorithm. This is because although our objective function does not directly consider route costs, the extent to which routes can be sacrificed to improve the time spent at attractions and itinerary feasibility is limited. In the optimization scenario of the algorithm, time constraints will restrict unreasonable routes.
- (2)
- and : Except for Case 1 where all three algorithms provide eligible results, only the proposed method offers eligible results in the remaining cases. In Case 2, the LKH algorithm misses one attraction, while the LKH-TW algorithm exceeds the planned travel time. In Case 3, both the LKH and LKH-TW algorithms miss two attractions. This indicates that the itinerary planning results provided by the two baseline algorithms are likely to be unreasonable in reality. Moreover, as the travel duration increases and the number of itinerary nodes grows, the probability and severity of unreasonable results tend to escalate.
- (3)
- , and : It can be observed that, due to there being fewer constraints, the original of the results from the algorithm is superior to that of our proposed algorithm, indicating a higher attraction visit time or fewer penalties. However, under unified time planning, its results are comparable to those of the algorithm, resulting in significant losses in attraction visit time and penalties for waiting and late arrivals. This is because it overlooks the necessary dining time expenditure for tourists during travel and does not consider rest and accommodation time in the itinerary based on specific circumstances. This can lead to a disconnect between visitors’ actual experiences during travel and the planned time arrangements. It is evident that dining and accommodation time have a significant impact on itinerary planning. Meanwhile, our algorithm yields optimal results in these four indicators, with an average reaching 98.67%, which is 9.82% higher than that of the algorithm and 10.34% higher than that of the LKH-TW algorithm.
5.6. Analysis of Tour Itinerary Recommendation Results
- : This algorithm combines our tour itinerary planning approach with the sequential attraction insertion method proposed in [9,10]. It begins with the basic node combination and attempts to add each candidate attraction to the current node combination individually. Then, it applies the algorithm to plan the itinerary for each combination and selects the node that maximizes the objective function for addition. This process continues until no more attractions can be inserted. We refer to this algorithm as the algorithm.
- : This algorithm combines our time planning approach with a variant of the algorithm proposed in [4,31]. Its main process is similar to ours, but after selecting a node each time, it directly inserts it at the end of the current itinerary to form the itinerary sequence, without going through itinerary planning. The selection function used additionally incorporates a heuristic for the route cost to the current node on top of our algorithm and adjusts the total number of times all nodes in the exploration term of the selection function have been chosen to the number of times the current node has been selected. The feedback-related function remains the same as in our algorithm. We set the number of iterations to 10,000.
- (1)
- The proportion of itinerary time (), which represents the ratio of the total duration of the recommended itinerary to the user’s planned travel duration;
- (2)
- Itinerary Scenic Spot Attractiveness Score (ISAS);
- (3)
- Time Utilization Score ();
- (4)
- Feasibility Score ();
- (5)
- Comprehensive satisfaction score ();
- (6)
- .
- (1)
- : It can be observed that the recommended itineraries generated by all three algorithms effectively utilize the planned travel time of the tourists. The average exceeds 96% across the board. Maximizing the use of time under time constraints is a fundamental requirement for tourists and is also a necessary condition for enhancing comprehensive satisfaction.
- (2)
- : Among the CSS and related evaluation metrics, our algorithm achieves the best results in CSS and TUS across all three cases. The average CSS surpasses that of the algorithm by 9.84% and exceeds that of the MCTS_TR algorithm by 14.85%. Similarly, the average TUS outperforms that of the GreedyLKH_TR algorithm by 13.20% and that of the MCTS_TR algorithm by 15.99%. Over the accumulated 9-day itineraries in the three cases, our algorithm provides an additional 610 min and 787 min of attraction visitation time compared to the GreedyLKH_TR and MCTS_TR algorithms, respectively. The FS of all three algorithms is relatively similar across the three cases, indicating that the itinerary results generated as part of the algorithm based on time planning closely match the tourists’ expectations. While the average ISAS of our algorithm is slightly lower than that of the two baseline algorithms, since the improvement of ISAS is direct and relatively simple, and the proposed algorithm selects the tour itinerary with a slightly lower ISAS but higher comprehensive satisfaction through trade-offs, it can be seen that the optimization ability of the proposed algorithm is superior to the two baseline algorithms.
- (3)
- Runtime: It can be observed that the MCTSLKH_TR algorithm requires a longer runtime compared to the GreedyLKH_TR algorithm under the same scenarios. However, this disadvantage is acceptable as it still promptly meets the user’s needs. According to the time complexity of the LKH algorithm, which is approximately [29], theoretically, the MCTSLKH_TR and GreedyLKH_TR algorithms both have time complexities ranging from to . However, the MCTSLKH_TR algorithm only requires a constant number of complete itinerary planning iterations, with the remaining cases only needing to find eligible solutions. This significantly shortens the runtime and can be further accelerated through hash tables. Therefore, the time complexity of the MCTSLKH_TR algorithm is superior to the GreedyLKH_TR algorithm, and it is foreseeable that as the problem scale increases, the runtime required by the MCTSLKH_TR algorithm will outperform the GreedyLKH_TR algorithm. Additionally, the MCTSLKH_TR algorithm can directly control the runtime not to exceed a certain limit. The average runtime of the MCTSLKH_TR algorithm across the three cases is comparable to that of the MCTS_TR algorithm and has an advantage in small-scale cases.
6. Conclusions
Supplementary Materials
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
Appendix A
Appendix B
- (1)
- Waiting penalty
- (2)
- Late arrival penalty
- (3)
- Meal- and rest-related penalties
- (4)
- Physical fatigue penalty.
- (5)
- Node penalty and itinerary penalty
Type | |||||||
---|---|---|---|---|---|---|---|
Coeff. | 0.5 | Phase1: 1 | Phase2: 2 | 0.5 | 1 | 1 | 1 |
Appendix C
- (1)
- If waiting is required, schedule other dining and accommodation arrangements normally during the waiting time;
- (2)
- If delayed but still accessible, adjust the schedule backward without affecting the next dining and accommodation arrangement, ensuring that the duration remains unchanged;
- (3)
- If on time or inaccessible, no action is needed.
References
- Dai, X.F.; Yang, M.Y. Holistic Tourism Driving High-Quality Development of the Tourism Industry. Tour. Trib. 2022, 37, 6–8. [Google Scholar] [CrossRef]
- Borràs, J.; Moreno, A.; Valls, A. Intelligent tourism recommender systems: A survey. Expert. Syst. Appl. 2014, 41, 7370–7389. [Google Scholar] [CrossRef]
- Lim, K.H.; Chan, J.; Leckie, C.; Karunasekera, S. Personalized trip recommendation for tourists based on user interests, points of interest visit durations and visit recency. Knowl. Inf. Syst. 2018, 54, 375–406. [Google Scholar] [CrossRef]
- Halder, S.; Lim, K.H.; Chan, J.; Zhang, X. Efficient itinerary recommendation via personalized POI selection and pruning. Knowl. Inf. Syst. 2022, 64, 963–993. [Google Scholar] [CrossRef]
- Chen, J.; Jiang, W.; Wu, J.; Li, K.; Li, K. Dynamic Personalized POI Sequence Recommendation with Fine-Grained Contexts. ACM Trans. Internet Technol. 2023, 23, 1–28. [Google Scholar] [CrossRef]
- Taylor, K.; Lim, K.H.; Chan, J. Travel Itinerary Recommendations with Must-see Points-of-Interest. In Proceedings of the Eighth International Workshop on Location and the Web, Lyon, France, 23–27 April 2018. [Google Scholar]
- Khamsing, N.; Chindaprasert, K.; Pitakaso, R.; Sirirak, W.; Theeraviriya, C. Modified ALNS Algorithm for a Processing Application of Family Tourist Route Planning: A Case Study of Buriram in Thailand. Computation 2021, 9, 23. [Google Scholar] [CrossRef]
- Sarkar, J.L.; Majumder, A. gTour: Multiple itinerary recommendation engine for group of tourists. Expert. Syst. Appl. 2022, 191, 116190. [Google Scholar] [CrossRef]
- Fu, C.Y.; Hu, M.C.; Lai, J.H.; Wang, H.; Wu, J.L. TravelBuddy: Interactive Travel Route Recommendation with a Visual Scene Interface; Springer International Publishing: Cham, Switzerland, 2014; pp. 219–230. [Google Scholar]
- Zhang, C.Y.; Liang, H.W.; Wang, K. Trip Recommendation Meets Real-World Constraints: POI Availability, Diversity, and Traveling Time Uncertainty. ACM Trans. Inf. Syst. 2016, 35, 1–28. [Google Scholar] [CrossRef]
- Rizwan, A.; Muslim, H.G.; Muna, A.; Mingwei, Z.; Abdullah, A.G.; Ahmed, A.B.A.; Taha, A.; Hussein, A.; Mizanur, R.S.M. A Serendipity-Oriented Personalized Trip Recommendation Model. Electronics 2022, 11, 1660. [Google Scholar] [CrossRef]
- Chen, L.; Cao, J.; Tao, H.C.; Wu, J. Trip Reinforcement Recommendation with Graph-based Representation Learning. ACM Trans. Knowl. Discov. Data 2023, 17, 1–20. [Google Scholar] [CrossRef]
- Zhou, X.; Su, M.Z.; Liu, Z.; Zhang, D. Smart Tour Route Planning Algorithm Based on Clustering Center Motive Iteration Search. IEEE Access 2019, 7, 185607–185633. [Google Scholar] [CrossRef]
- Zhou, X.; Su, M.Z.; Feng, G.H.; Zhou, X.H. Intelligent Tourism Recommendation Algorithm based on Text Mining and MP Nerve Cell Model of Multivariate Transportation Modes. IEEE Access 2021, 9, 8121–8157. [Google Scholar] [CrossRef]
- Zhang, Y.M.; Jiao, L.J.; Yu, Z.J.; Lin, Z.; Gan, M.J. A Tourism Route-Planning Approach Based on Comprehensive Attractiveness. IEEE Access 2020, 8, 39536–39547. [Google Scholar] [CrossRef]
- Yochum, P.; Chang, L.; Gu, T.L.; Zhu, M.L. An Adaptive Genetic Algorithm for Personalized Itinerary Planning. IEEE Access 2020, 8, 88147–88157. [Google Scholar] [CrossRef]
- Saeki, E.; Bao, S.; Takayama, T.; Togawa, N. Multi-Objective Trip Planning Based on Ant Colony Optimization Utilizing Trip Records. IEEE Access 2022, 10, 127825–127844. [Google Scholar] [CrossRef]
- Ding, Y.; Zhang, L.; Huang, C.; Ge, R. Two-stage travel itinerary recommendation optimization model considering stochastic traffic time. Expert. Syst. Appl. 2024, 237, 121536. [Google Scholar] [CrossRef]
- Gasmi, I.; Soui, M.; Barhoumi, K.; Abed, M. Recommendation rules to personalize itineraries for tourists in an unfamiliar city. Appl. Soft Comput. 2024, 150, 16. [Google Scholar] [CrossRef]
- Zhou, X.; Li, S.H.; Gao, K.L.; Liu, C.L.; Wang, H.C.; Hu, J.W. An improved dynamic travel route planning algorithm with multiple constraints. J. North Univ. China (Nat. Sci. Ed.) 2019, 40, 57–62. [Google Scholar]
- Xu, K. Research and Implementation of Smart Travel Route Planning Algorithm Based on Reinforcement Learning. Master’s Thesis, Xidian University, Xi’an, China, 2020. [Google Scholar]
- Huang, Z.B.; Lin, H.H.; Wang, J.H.; Deng, A.F.; Luo, B.R.; Lin, G.X. Research on improved ant colony algorithm under time window in travel route planning. Sci. Technol. Innov. Appl. 2019, 29, 28–29. [Google Scholar]
- Lu, B.C.; Yang, J.Y.; Wang, X. City Suburban Tour Route Planning Based on Tourist Experience. J. Chongqing Jiaotong Univ. Nat. Sci. 2021, 40, 161–170. [Google Scholar]
- Wu, X.B.; Guan, H.Z.; Han, Y.; Ma, J.Q. A tour route planning model for tourism experience utility maximization. Adv. Mech. Eng. 2017, 9, 2071942318. [Google Scholar] [CrossRef]
- Werneck, H.; Silva, N.; Viana, M.; Pereira, A.C.M.; Mourão, F.; Rocha, L. Points of Interest recommendations: Methods, evaluation, and future directions. Inform. Syst. 2021, 101, 101789. [Google Scholar] [CrossRef]
- Vansteenwegen, P.; Souffriau, W.; Oudheusden, D.V. The orienteering problem: A survey. Eur. J. Oper. Res. 2011, 209, 1–10. [Google Scholar] [CrossRef]
- Blum, A.; Chawla, S.; Karger, D.R.; Lant, T.; Meyerson, A.; Minkoff, M. Approximation algorithms for orienteering and discounted-reward TSP. In Proceedings of the 44th Annual IEEE Symposium on Foundations of Computer Science Cambridge, Cambridge, MA, USA, 11–14 October 2003; pp. 46–55. [Google Scholar] [CrossRef]
- Helsgaun, K. An Extension of the Lin-Kernighan-Helsgaun TSP Solver for Constrained Traveling Salesman and Vehicle Routing Problems: Technical Report; Roskilde University: Roskilde, Denmark, 2017. [Google Scholar]
- Helsgaun, K. An effective implementation of the Lin–Kernighan traveling salesman heuristic. Eur. J. Oper. Res. 2000, 126, 106–130. [Google Scholar] [CrossRef]
- Coulom, R. in Efficient Selectivity and Backup Operators in Monte-Carlo Tree Search; Springer: Berlin/Heidelberg, Germany, 2007; pp. 72–83. [Google Scholar]
- Lim, K.H.; Chan, J.; Karunasekera, S.; Leckie, C. Personalized Itinerary Recommendation with Queuing Time Awareness. In Proceedings of the 40th International ACM SIGIR Conference on Research and Development in Information Retrieval, Tokyo, Japan, 7–11 August 2017. [Google Scholar]
- Kocsis, L.; Szepesvári, C. Bandit Based Monte-Carlo Planning; Springer: Berlin/Heidelberg, Germany, 2006; pp. 282–293. [Google Scholar]
Case | Planned Travel Time | Starting Point | Destination | Remaining Settings |
---|---|---|---|---|
1 | One-day tour (day1 8:30–day1 21:30) | Hotel1 | Hotel1 | default |
2 | Three-day tour (day1 8:30–day3 21:30) | Hotel1 | Hotel1 | default |
3 | Five-day tour (day1 8:30–day5 21:30) | Hotel1 | Hotel1 | default |
Number of Iterations | 50 | 100 | 150 | 200 | 250 | 300 | 350 | 400 | 450 | 500 |
---|---|---|---|---|---|---|---|---|---|---|
Case 1 | 3 | 88 | 88 | 88 | 88 | 88 | 88 | 88 | 88 | 88 |
Case 2 | 24 | 97 | 101 | 197 | 197 | 197 | 197 | 399 | 402 | 402 |
Case 3 | 17 | 66 | 66 | 66 | 215 | 215 | 215 | 215 | 438 | 438 |
Number of Iterations | 550 | 600 | 650 | 700 | 750 | 800 | 850 | 900 | 950 | 1000 |
Case 1 | 88 | 88 | 88 | 88 | 88 | 88 | 88 | 88 | 88 | 88 |
Case 2 | 402 | 402 | 402 | 402 | 402 | 402 | 402 | 402 | 402 | 402 |
Case 3 | 438 | 438 | 438 | 438 | 438 | 438 | 438 | 438 | 438 | 438 |
Event | Trials | Eligible Solutions | Pass Rate |
---|---|---|---|
Random sequence | 1,000,000 | 1823 | 0.18% |
Heuristic sequence | 113,823 | 29,296 | 25.74% |
Case | Optimal Value Reference | SAS | UCB Excluding Exploration Part | |||
---|---|---|---|---|---|---|
1 | 2 | 2 | 2 | 3.667 | 5.667 | 2 |
3 | 5 | 6.111 | 7.556 | 7.111 | 13.889 | 6.333 |
5 | 8 | 8 | 9 | 9.125 | 15.933 | 8 |
Case | Algorithm | (min) | (min) | |||||
---|---|---|---|---|---|---|---|---|
1 | 46 | 0 | 0 | 420 | 100.00% | 9 | 0.727 | |
66 | 0 | 0 | 420(420) | 100.00% | 13(0) | 0.723(0.737) | ||
46 | 0 | 0 | 420 | 100.00% | 9 | 0.727 | ||
2 | 238 | 0 | 1 | 1246 | 85.58% | 88 + M | 0 | |
260 | 1 | 0 | 1265(1412) | 86.88% | 344 + M 1(29) | 0(0.821) | ||
264 | 0 | 0 | 1424 | 97.80% | 68 | 0.817 | ||
3 | 426 | 0 | 1 | 2128 | 83.98% | 231 + 2M | 0 | |
465 | 0 | 1 | 2062(2504) | 81.37% | 268 + 2M(124) | 0(0.856) | ||
473 | 0 | 0 | 2489 | 98.22% | 189 | 0.848 |
Case | Algorithm | Source of Penalty | ||||||
---|---|---|---|---|---|---|---|---|
1 | 9 | 9 | ||||||
13 | 8 | 5 | ||||||
9 | 9 | |||||||
2 | 88 + M | 71 | M | 8 | 9 | |||
344 + M | 112 | 217 + M | 15 | |||||
68 | 2 | 32 | 25 | 9 | ||||
3 | 231 + 2M | 119 | 2M | 59 | 53 | |||
268 + 2M | 158 | 66 + 2M | 44 | |||||
189 | 45 | 15 | 120 | 9 |
Case | Algorithm | (min) | (min) | (s) | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 3 | 420 | 729 | 93.46% | 8 | 0.737 | 4.525 | 0.989 | 3.298 | 0.28 | |
3 | 402 | 704 | 90.26% | 4 | 0.705 | 4.55 | 0.994 | 3.191 | 3.77 | ||
3 | 420 | 729 | 93.46% | 8 | 0.737 | 4.525 | 0.989 | 3.298 | 0.76 | ||
2 | 6 | 1204 | 3624 | 99.02% | 115 | 0.704 | 4.291 | 0.968 | 2.925 | 2.27 | |
8 | 1358 | 3652 | 99.78% | 143 | 0.794 | 3.906 | 0.961 | 2.980 | 15.58 | ||
10 | 1508 | 3652 | 99.78% | 202 | 0.882 | 4.26 | 0.945 | 3.549 | 9.61 | ||
3 | 12 | 2046 | 6503 | 99.43% | 265 | 0.718 | 4.247 | 0.959 | 2.924 | 14.45 | |
12 | 1733 | 6495 | 99.31% | 139 | 0.608 | 4.33 | 0.979 | 2.577 | 28.03 | ||
15 | 2352 | 6532 | 99.88% | 176 | 0.825 | 3.984 | 0.973 | 3.199 | 37.09 |
Algorithm | ||||||
---|---|---|---|---|---|---|
97.30% | 0.720 | 4.354 | 0.972 | 3.049 | 5.67 | |
96.45% | 0.702 | 4.262 | 0.978 | 2.916 | 15.79 | |
97.71% | 0.815 | 4.256 | 0.969 | 3.349 | 15.82 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Liu, D.; Wang, L.; Zhong, Y.; Dong, Y.; Kong, J. Personalized Tour Itinerary Recommendation Algorithm Based on Tourist Comprehensive Satisfaction. Appl. Sci. 2024, 14, 5195. https://doi.org/10.3390/app14125195
Liu D, Wang L, Zhong Y, Dong Y, Kong J. Personalized Tour Itinerary Recommendation Algorithm Based on Tourist Comprehensive Satisfaction. Applied Sciences. 2024; 14(12):5195. https://doi.org/10.3390/app14125195
Chicago/Turabian StyleLiu, Dingming, Lizheng Wang, Yanling Zhong, Yi Dong, and Jinling Kong. 2024. "Personalized Tour Itinerary Recommendation Algorithm Based on Tourist Comprehensive Satisfaction" Applied Sciences 14, no. 12: 5195. https://doi.org/10.3390/app14125195
APA StyleLiu, D., Wang, L., Zhong, Y., Dong, Y., & Kong, J. (2024). Personalized Tour Itinerary Recommendation Algorithm Based on Tourist Comprehensive Satisfaction. Applied Sciences, 14(12), 5195. https://doi.org/10.3390/app14125195