<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3-mathml3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.3" xml:lang="EN">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Mar. Sci.</journal-id>
<journal-title-group>
<journal-title>Frontiers in Marine Science</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Mar. Sci.</abbrev-journal-title>
</journal-title-group>
<issn pub-type="epub">2296-7745</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fmars.2026.1780076</article-id>
<article-version article-version-type="Version of Record" vocab="NISO-RP-8-2008"/>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Original Research</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Joint optimization of vessel scheduling and tugboat allocation in seaports with one-way navigation channels</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Xu</surname><given-names>Fuquan</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<uri xlink:href="https://loop.frontiersin.org/people/3335788/overview"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="conceptualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/conceptualization/">Conceptualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Data curation" vocab-term-identifier="https://credit.niso.org/contributor-roles/data-curation/">Data curation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="methodology" vocab-term-identifier="https://credit.niso.org/contributor-roles/methodology/">Methodology</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="software" vocab-term-identifier="https://credit.niso.org/contributor-roles/software/">Software</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="validation" vocab-term-identifier="https://credit.niso.org/contributor-roles/validation/">Validation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing &#x2013; original draft</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
</contrib>
<contrib contrib-type="author">
<name><surname>Ren</surname><given-names>Hongxiang</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="conceptualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/conceptualization/">Conceptualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Formal analysis" vocab-term-identifier="https://credit.niso.org/contributor-roles/formal-analysis/">Formal analysis</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Funding acquisition" vocab-term-identifier="https://credit.niso.org/contributor-roles/funding-acquisition/">Funding acquisition</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="methodology" vocab-term-identifier="https://credit.niso.org/contributor-roles/methodology/">Methodology</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="resources" vocab-term-identifier="https://credit.niso.org/contributor-roles/resources/">Resources</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
</contrib>
<contrib contrib-type="author">
<name><surname>Li</surname><given-names>Ye</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="conceptualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/conceptualization/">Conceptualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Data curation" vocab-term-identifier="https://credit.niso.org/contributor-roles/data-curation/">Data curation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="resources" vocab-term-identifier="https://credit.niso.org/contributor-roles/resources/">Resources</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="validation" vocab-term-identifier="https://credit.niso.org/contributor-roles/validation/">Validation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing &#x2013; original draft</role>
</contrib>
<contrib contrib-type="author">
<name><surname>Shi</surname><given-names>Jiahui</given-names></name>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="methodology" vocab-term-identifier="https://credit.niso.org/contributor-roles/methodology/">Methodology</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="software" vocab-term-identifier="https://credit.niso.org/contributor-roles/software/">Software</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="validation" vocab-term-identifier="https://credit.niso.org/contributor-roles/validation/">Validation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="visualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/visualization/">Visualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing &#x2013; original draft</role>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Wang</surname><given-names>Changhai</given-names></name>
<xref ref-type="aff" rid="aff4"><sup>4</sup></xref>
<xref ref-type="aff" rid="aff5"><sup>5</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>*</sup></xref>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="conceptualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/conceptualization/">Conceptualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Formal analysis" vocab-term-identifier="https://credit.niso.org/contributor-roles/formal-analysis/">Formal analysis</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Funding acquisition" vocab-term-identifier="https://credit.niso.org/contributor-roles/funding-acquisition/">Funding acquisition</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="resources" vocab-term-identifier="https://credit.niso.org/contributor-roles/resources/">Resources</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
</contrib>
<contrib contrib-type="author">
<name><surname>Wang</surname><given-names>Yulong</given-names></name>
<xref ref-type="aff" rid="aff6"><sup>6</sup></xref>
<xref ref-type="aff" rid="aff7"><sup>7</sup></xref>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Funding acquisition" vocab-term-identifier="https://credit.niso.org/contributor-roles/funding-acquisition/">Funding acquisition</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="investigation" vocab-term-identifier="https://credit.niso.org/contributor-roles/investigation/">Investigation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Project-administration" vocab-term-identifier="https://credit.niso.org/contributor-roles/project-administration/">Project administration</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="visualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/visualization/">Visualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
</contrib>
<contrib contrib-type="author">
<name><surname>Wang</surname><given-names>Xinjian</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Formal analysis" vocab-term-identifier="https://credit.niso.org/contributor-roles/formal-analysis/">Formal analysis</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="investigation" vocab-term-identifier="https://credit.niso.org/contributor-roles/investigation/">Investigation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
</contrib>
</contrib-group>
<aff id="aff1"><label>1</label><institution>Navigation College, Dalian Maritime University</institution>, <city>Dalian</city>,&#xa0;<country country="cn">China</country></aff>
<aff id="aff2"><label>2</label><institution>Dalian Pilot Station</institution>, <city>Dalian</city>,&#xa0;<country country="cn">China</country></aff>
<aff id="aff3"><label>3</label><institution>Department of Navigation, Dalian Naval Academy</institution>, <city>Dalian</city>,&#xa0;<country country="cn">China</country></aff>
<aff id="aff4"><label>4</label><institution>School of Electronic Information and Communications, Huazhong University of Science and Technology</institution>, <city>Wuhan</city>,&#xa0;<country country="cn">China</country></aff>
<aff id="aff5"><label>5</label><institution>Guangxi Communications Design Group Co., Ltd.</institution>, <city>Nanning</city>,&#xa0;<country country="cn">China</country></aff>
<aff id="aff6"><label>6</label><institution>Guangxi Pinglu Canal Digital Intelligence Technology Co., Ltd.</institution>, <city>Nanning</city>,&#xa0;<country country="cn">China</country></aff>
<aff id="aff7"><label>7</label><institution>Guangxi Laboratory of Modern Canal</institution>, <city>Nanning</city>,&#xa0;<country country="cn">China</country></aff>
<author-notes>
<corresp id="c001"><label>*</label>Correspondence: Changhai Wang, <email xlink:href="mailto:15078888596@163.com">15078888596@163.com</email></corresp>
</author-notes>
<pub-date publication-format="electronic" date-type="pub" iso-8601-date="2026-02-23">
<day>23</day>
<month>02</month>
<year>2026</year>
</pub-date>
<pub-date publication-format="electronic" date-type="collection">
<year>2026</year>
</pub-date>
<volume>13</volume>
<elocation-id>1780076</elocation-id>
<history>
<date date-type="received">
<day>03</day>
<month>01</month>
<year>2026</year>
</date>
<date date-type="accepted">
<day>06</day>
<month>02</month>
<year>2026</year>
</date>
<date date-type="rev-recd">
<day>31</day>
<month>01</month>
<year>2026</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2026 Xu, Ren, Li, Shi, Wang, Wang and Wang.</copyright-statement>
<copyright-year>2026</copyright-year>
<copyright-holder>Xu, Ren, Li, Shi, Wang, Wang and Wang</copyright-holder>
<license>
<ali:license_ref start_date="2026-02-23">https://creativecommons.org/licenses/by/4.0/</ali:license_ref>
<license-p>This is an open-access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License (CC BY)</ext-link>. The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</license-p>
</license>
</permissions>
<abstract>
<p>With the continuous growth of port traffic volumes, limited navigation channel capacity and tugboat resources have emerged as major bottlenecks to port service efficiency, particularly in ports with one-way channel configurations, where vessel congestion is more pronounced. To address this challenge, this study investigates the joint optimization of vessel scheduling and tugboat allocation in a port with a one-way navigation channel and develops an optimization model to minimize the total waiting time of vessel movements. An improved genetic algorithm with local search (IGA-LS) is proposed to solve the model efficiently. Computational experiments based on data from a northern Chinese seaport demonstrate that the proposed IGA-LS algorithm outperforms several benchmark methods. Compared with the traditional first-come-first-served scheduling rule, the proposed joint scheduling framework reduces the total vessel movement waiting time by an average of 28.31%, with more pronounced improvements observed in larger-scale instances. These results indicate that the proposed model and algorithm can provide effective decision support for port authorities in formulating vessel scheduling and tugboat resource allocation plans.</p>
</abstract>
<kwd-group>
<kwd>heuristic algorithms</kwd>
<kwd>seaport operations</kwd>
<kwd>tidal time windows</kwd>
<kwd>tugboat allocation</kwd>
<kwd>vessel scheduling</kwd>
</kwd-group>
<funding-group>
<funding-statement>The author(s) declared that financial support was received for this work and/or its publication. This research was funded by National Natural Science Foundation of China (52571404), Guangxi Science and Technology Major Program (No. GUIKE AA23062053), and also funded by Liaoning Provincial Science and Technology Joint Program (2025JH2/101800138).</funding-statement>
</funding-group>
<counts>
<fig-count count="8"/>
<table-count count="5"/>
<equation-count count="24"/>
<ref-count count="26"/>
<page-count count="16"/>
<word-count count="8647"/>
</counts>
<custom-meta-group>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Marine Affairs and Policy</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec id="s1" sec-type="intro">
<label>1</label>
<title>Introduction</title>
<p>With the continued expansion of maritime transportation, the number of vessels arriving at ports has increased rapidly (<xref ref-type="bibr" rid="B12">Liu et&#xa0;al., 2025</xref>). Constrained by the limited availability of critical resources such as berths, navigation channels, and tugboats, vessels are often required to wait at anchorage for port clearance in actual operations. Although port throughput can be enhanced by constructing new berths, widening navigation channels, or expanding tugboat fleets, such measures typically involve substantial investment costs, long construction periods, and considerable implementation challenges. Improving port scheduling capacity and enhancing vessel inbound and outbound service efficiency under existing resource conditions has become a key issue in contemporary port operations and development. However, in practice, vessel arrival and departure scheduling in many ports still relies heavily on manual decision-making based on operational experience, resulting in relatively low scheduling efficiency. This often leads to prolonged waiting times for vessels in service areas, which in turn causes port congestion and disrupts cargo handling operations, ultimately reducing shipping companies&#x2019; overall satisfaction with port service levels (<xref ref-type="bibr" rid="B26">Zheng et&#xa0;al., 2023</xref>; <xref ref-type="bibr" rid="B20">Wen et&#xa0;al., 2024</xref>). Consequently, reducing vessel waiting times through scientifically designed and coordinated scheduling strategies is critical for improving port efficiency and service quality.</p>
<p>In the existing literature on vessel arrival and departure scheduling, most studies primarily focus on constraints related to navigation channel capacity, while the limitations of tugboat resources are relatively underrepresented. As a critical auxiliary resource for ensuring navigational safety and supporting berthing and unberthing operations, the limited availability of tugboats has become a major contributor to vessel delays in many seaports (<xref ref-type="bibr" rid="B13">Nikghadam et&#xa0;al., 2025</xref>). In addition, channel capacity itself is a key determinant of overall port operational efficiency. Depending on traffic organization rules, port navigation channels are generally classified as either one-way or two-way channels (<xref ref-type="bibr" rid="B11">Liu et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B21">Xu et&#xa0;al., 2025</xref>). Previous studies indicate that, compared with two-way channels, one-way channels exhibit lower operational efficiency and flexibility, making them more prone to vessel queuing and congestion (<xref ref-type="bibr" rid="B16">Tang et&#xa0;al., 2016</xref>; <xref ref-type="bibr" rid="B9">Li et&#xa0;al., 2021</xref>). Accordingly, the coordinated optimization of vessel passage sequencing through navigation channels and tugboat allocation decisions can significantly enhance the joint utilization efficiency of channel and tugboat resources, thereby contributing to the mitigation of port congestion.</p>
<p>Although some recent studies have begun to address the coordinated optimization of vessel sequencing and tugboat allocation, most of the existing work relies on idealized assumptions regarding vessel navigation rules and tugboat operating patterns. In particular, several critical real-world operational features are insufficiently considered, including tidal constraints on the arrival and departure of large vessels, heterogeneity in vessel sailing speeds, no-overtaking restrictions within navigation channels, and tugboat sailing and repositioning times. To further clarify these limitations, representative examples are discussed below.</p>
<p>Vessel sailing processes within navigation channels are often simplified by assuming homogeneous sailing speeds, with safe navigational distance constraints required only at the initiation of vessel movements. In practice, vessels navigating a one-way channel exhibit heterogeneous speeds depending on their type and size, which requires safe navigational distance to be maintained throughout channel transit. In addition, tugboats are frequently modeled as being required only for berthing and unberthing operations within the harbor basin, while their escort role during channel transit is neglected. Under such modeling assumptions, tugboat movements between consecutive service tasks are either ignored or represented by a uniform fixed travel time. However, vessels transiting the channel often require continuous tugboat escort to ensure navigational safety. As a result, the repositioning distance and travel time of tugboats between successive tasks may differ substantially, especially when transitioning between harbor basin operations and channel escort services. These simplifying assumptions make it difficult to accurately capture the operational interdependence between vessel scheduling and tugboat allocation.</p>
<p>To address these limitations, this study focuses on a port with a one-way navigation channel and investigates the joint optimization of vessel scheduling and tugboat allocation. An optimization model is developed with the objective of minimizing the total waiting time of all vessel movements. Due to the presence of complex operational constraints and the challenge of coordinating vessel movement sequencing with tugboat allocation, conventional genetic algorithms often suffer from low feasibility rates and inefficient search performance. Accordingly, an improved genetic algorithm with local search (IGA-LS) is developed to efficiently generate high-quality feasible scheduling solutions. The key contributions of this study are as follows:</p>
<list list-type="order">
<list-item>
<p>A joint optimization model for vessel scheduling and tugboat allocation in ports with one-way navigation channels is developed. The model integrates key real-world operational features into a unified framework, including mandatory tidal time windows for large vessels, heterogeneity in vessel sailing speeds, and repositioning time differences arising from consecutive tugboat operations. By explicitly incorporating these operational characteristics, the proposed model offers a more faithful representation of the interactions between vessel movements and tugboat operations in one-way channel ports compared with existing studies.</p></list-item>
<list-item>
<p>To efficiently solve the proposed model, the IGA-LS algorithm is adopted. The algorithm initializes the search with feasible solutions generated through a hybrid heuristic initialization strategy, employs tailored crossover and mutation operators to perform targeted search over the vessel movement sequencing and tugboat allocation decision spaces while preserving their coordination, and applies an elite-based local search mechanism to high-quality individuals to intensify the search and improve convergence.</p></list-item>
<list-item>
<p>Extensive computational experiments are conducted to evaluate the effectiveness and robustness of the proposed model and algorithm. The results demonstrate that the proposed IGA-LS algorithm achieves better performance than a standard genetic algorithm. Moreover, relative to the traditional first-come-first-served scheduling strategy, the proposed joint optimization framework consistently achieves substantial reductions in vessel movement waiting times and delivers stable improvements in port service efficiency across problem instances of varying scales, indicating its potential value for supporting practical port scheduling decisions.</p></list-item>
</list>
<p>The remainder of this paper is organized as follows. Section 2 reviews the relevant literature. Section 3 presents the methodological framework, including the problem description, mathematical formulation, and solution strategy. Section 4 reports the computational experiments and discusses the performance of the proposed model and algorithm. Finally, Section 5 concludes the paper and outlines directions for future research.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>Literature review</title>
<p>Research on vessel sequencing in navigation channels is commonly referred to as the waterway vessel scheduling problem. Early work by <xref ref-type="bibr" rid="B8">Lalla-Ruiz et&#xa0;al. (2018)</xref> formulated a scheduling model to minimize vessel waiting time and proposed a heuristic approach combining queuing rules with simulated annealing. Subsequently, <xref ref-type="bibr" rid="B10">Li et&#xa0;al. (2022)</xref> minimized total vessel turnaround time in ports using an adaptive genetic simulated annealing algorithm enhanced by reinforcement learning. Accurate prediction of vessel sailing speeds is a critical prerequisite for effective maritime traffic management. <xref ref-type="bibr" rid="B3">El Mekkaoui et&#xa0;al. (2023)</xref> developed a data-driven approach based on deep learning sequence models and historical vessel trajectory data to predict vessel speeds across different navigation phases. To address port congestion, <xref ref-type="bibr" rid="B20">Wen et&#xa0;al. (2024)</xref> incorporated queuing theory into a multi-objective optimization framework to capture stochastic waiting times. With respect to vessel scheduling in one-way channels, <xref ref-type="bibr" rid="B25">Zhen et&#xa0;al. (2025)</xref> proposed a reinforcement learning-based scheduling framework that explicitly accounts for navigation constraints, safety requirements, and vessel-specific characteristics. In addition, <xref ref-type="bibr" rid="B22">Yin et&#xa0;al. (2025)</xref> studied vessel scheduling under anchorage capacity constraints and developed a multi-objective model solved by an adaptive non-dominated sorting genetic algorithm.</p>
<p>Efficient utilization of tugboats is essential for safe port operations and transportation efficiency. <xref ref-type="bibr" rid="B18">Wei et&#xa0;al. (2024)</xref> studied dynamic tugboat scheduling in container ports, proposing a cost-minimization model with a solution approach that updates schedules as new service requests arrive. <xref ref-type="bibr" rid="B17">Wang et&#xa0;al. (2023)</xref> investigated tugboat scheduling under multiple waypoints and service modes and designed an efficient adaptive large neighborhood search (ALNS) algorithm to improve both computational efficiency and solution quality. Considering extensive tugboat movements across multiple harbor basins, <xref ref-type="bibr" rid="B15">Sun et&#xa0;al. (2024)</xref> proposed a scheduling model that explicitly accounts for uncertainty in cross-area sailing during tugboat operations, and developed an improved genetic algorithm with reversal operators to solve the problem. From a decision-process modeling perspective, <xref ref-type="bibr" rid="B19">Wei et&#xa0;al. (2025)</xref> examined tugboat speed optimization and proposed a Markov decision process framework that integrates reactive task assignment with proactive waiting decisions. <xref ref-type="bibr" rid="B4">Fang et&#xa0;al. (2025)</xref> formulated a mixed-integer linear programming model that incorporates tidal time windows and channel capacity constraints, with the objectives of minimizing vessel waiting time and total carbon emissions.</p>
<p>With the continuous growth of port traffic volumes, increasing attention has been devoted to the joint optimization of vessel scheduling and critical service resources such as tugboats. <xref ref-type="bibr" rid="B1">Abou Kasm et&#xa0;al. (2021)</xref> studied vessel scheduling in one-way channel ports under tugboat constraints using a mixed-integer programming (MIP) model, with the objective of minimizing the maximum waiting time of vessel movements, though tidal effects were not considered. <xref ref-type="bibr" rid="B14">Petris et&#xa0;al. (2022)</xref> subsequently investigated integrated vessel scheduling and tugboat allocation in an inland port, minimizing weighted departure time deviations based on a real-world case. From a broader multi-resource perspective, <xref ref-type="bibr" rid="B6">Hao et&#xa0;al. (2023)</xref> examined the coordinated scheduling of barges and tugboats in river-sea intermodal transportation systems, demonstrating significant performance improvements through joint optimization. Extending joint resource scheduling to terminal operations, <xref ref-type="bibr" rid="B2">Chu et&#xa0;al. (2024)</xref> addressed the integrated scheduling of berths, quay cranes, and tugboats under operational uncertainties and solved the problem using an ALNS algorithm. More recently, <xref ref-type="bibr" rid="B5">Guo et&#xa0;al. (2025)</xref> proposed a deep reinforcement learning framework for the coordinated optimization of vessel scheduling and tugboat assignment in seaports. <xref ref-type="bibr" rid="B13">Nikghadam et&#xa0;al. (2025)</xref> developed a continuous-time MIP model for resource-constrained berthing operations, showing notable reductions in anchorage waiting times and port congestion.</p>
<p>Existing studies have largely treated vessel traffic management and tugboat scheduling as separate decision problems, while research on their joint optimization in ports with one-way navigation channels remains limited. Even when coordinated decisions are considered, real-world operational constraints are often simplified. From the vessel scheduling perspective, most studies assume homogeneous vessels and give limited attention to practical factors such as heterogeneous sailing speeds, draft restrictions, and strict channel navigation rules. From the tugboat allocation perspective, existing work primarily focuses on berthing and unberthing operations, largely overlooking the role of tugboats in accompanying vessels during channel navigation to ensure safety. Moreover, time differences caused by varying sailing distances under different operating conditions are rarely modeled explicitly.</p>
<p>To solve these challenges, this study investigates the joint optimization of vessel scheduling and tugboat allocation in a seaport with a one-way navigation channel. The proposed model explicitly incorporates channel safety separation constraints, tidal effects, and the complete tugboat service process, providing a more realistic representation of port operations. A joint optimization model is developed to minimize the total waiting time of vessel movements, and a tailored heuristic algorithm is designed for efficient solution. By integrating tugboat allocation decisions into the vessel scheduling framework, this study offers practical and implementable scheduling solutions to alleviate congestion and improve overall port service efficiency.</p>
</sec>
<sec id="s3">
<label>3</label>
<title>Methods</title>
<p>This section describes the methodological framework, including model formulation and solution strategy, adopted to address the joint vessel scheduling and tugboat allocation problem.</p>
<sec id="s3_1">
<label>3.1</label>
<title>Model overview</title>
<sec id="s3_1_1">
<label>3.1.1</label>
<title>Problem description</title>
<p>As illustrated in <xref ref-type="fig" rid="f1"><bold>Figure&#xa0;1</bold></xref>, the port under study consists of a one-way navigation channel, an anchorage, and a single harbor basin. Inbound vessels arrive at the port and wait at the anchorage until they are scheduled to enter the channel, whereas outbound vessels wait for departure scheduling after completing cargo handling at their assigned berths. For inbound vessels, tugboat service starts at the channel entrance and ends at the corresponding berth, whereas for outbound vessels it starts at the berth and ends at the channel entrance. Consequently, when tugboats consecutively serve different vessels, their repositioning times may vary substantially. If a tugboat consecutively serves two vessels traveling in the same direction (i.e., two inbound or two outbound vessels), it must traverse the entire navigation channel, which is defined as long-distance repositioning. By contrast, when serving vessels traveling in opposite directions, only short-distance movements near the harbor basin or the channel entrance are required, which is referred to as short-distance repositioning.</p>
<fig id="f1" position="float">
<label>Figure&#xa0;1</label>
<caption>
<p>Schematic layout of a northern Chinese seaport with a one-way channel. The blue dashed line denotes the inbound vessel sailing with tug assistance between Virtual waypoints 2 and 3. The green solid line denotes tugboat repositioning, including long-distance repositioning from Virtual waypoint 1 to 2 and short-distance repositioning from Virtual waypoint 3 to 4.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-13-1780076-g001.tif">
<alt-text content-type="machine-generated">Diagram illustrating the movement of a vessel assisted by tugboats through a harbor basin, following numbered green virtual waypoints from the channel entrance around a breakwater to a terminal, with anchorage area and legend indicating vessel, tugboat, channel, and waypoint symbols.</alt-text>
</graphic></fig>
<p>Under such operating conditions, some vessels may execute both inbound and outbound movements within the scheduling horizon, i.e., they enter the port for cargo operations and subsequently depart after service completion. To construct a detailed vessel scheduling plan, it is common to distinguish vessel movements at a finer level of granularity. Specifically, each independent inbound or outbound movement is treated as a separate scheduling entity and represented by a distinct index (<xref ref-type="bibr" rid="B1">Abou Kasm et&#xa0;al., 2021</xref>). During channel navigation, vessels move in a single direction according to the one-way channel rule and are required to maintain a safe distance from adjacent vessels ahead and astern. In modeling practice, this spatial safety requirement is commonly converted into a minimum temporal safety separation constraint between consecutive vessels (<xref ref-type="bibr" rid="B11">Liu et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B21">Xu et&#xa0;al., 2025</xref>; <xref ref-type="bibr" rid="B23">Zhang et&#xa0;al., 2025</xref>).</p>
<p>In summary, the proposed scheduling model applies to port scenarios characterized by a one-way navigation channel, a single harbor basin, and sufficient anchorage capacity. The model jointly considers key operational factors, including one-way channel traffic rules, tidal time window constraints, vessel berthing and unberthing processes, and tugboat resource limitations. By incorporating detailed vessel service requests and solving the resulting optimization problem, optimal vessel scheduling and tugboat allocation plans can be obtained simultaneously, thereby supporting improved port operational efficiency and resource utilization.</p>
</sec>
<sec id="s3_1_2">
<label>3.1.2</label>
<title>Assumptions and notations</title>
<list list-type="order">
<list-item>
<p>The basic information of each vessel movement, including its scheduling request time, service requirements, and berth location, is known in advance (<xref ref-type="bibr" rid="B11">Liu et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B10">Li et&#xa0;al., 2022</xref>);</p></list-item>
<list-item>
<p>Tugboat resources are assumed to be homogeneous. In practice, the available tugboat horsepower in ports typically satisfies vessel requirements; therefore, many studies adopt the homogeneous tugboat assumption (<xref ref-type="bibr" rid="B1">Abou Kasm et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B13">Nikghadam et&#xa0;al., 2025</xref>);</p></list-item>
<list-item>
<p>Each tugboat can serve at most one vessel movement at a time (<xref ref-type="bibr" rid="B14">Petris et&#xa0;al., 2022</xref>; <xref ref-type="bibr" rid="B19">Wei et&#xa0;al., 2025</xref>);</p></list-item>
<list-item>
<p>The impacts of uncertain factors such as adverse weather conditions and unexpected incidents are not considered (<xref ref-type="bibr" rid="B1">Abou Kasm et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B25">Zhen et&#xa0;al., 2025</xref>).</p></list-item>
</list>
<p>The notation of the model is summarized in <xref ref-type="table" rid="T1"><bold>Table&#xa0;1</bold></xref>.</p>
<table-wrap id="T1" position="float">
<label>Table&#xa0;1</label>
<caption>
<p>Notations.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="center">Symbols</th>
<th valign="middle" align="center">Description</th>
</tr>
</thead>
<tbody>
<tr>
<th valign="middle" colspan="2" align="center">Sets</th>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im1"><mml:mrow><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Set of all vessel movements to be scheduled during the scheduling horizons, <inline-formula>
<mml:math display="inline" id="im2"><mml:mrow><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msup><mml:mo>&#x222a;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi><mml:mi>o</mml:mi><mml:mi>u</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x222a;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im3"><mml:mrow><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Set of all inbound vessel movements during the scheduling horizon</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im4"><mml:mrow><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi><mml:mi>o</mml:mi><mml:mi>u</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Set of outbound vessel movements associated with vessels that only depart from the port during the scheduling horizon</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im5"><mml:mrow><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>o</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Set of inbound vessel movements associated with vessels that execute both inbound and outbound movements during the scheduling horizon, <inline-formula>
<mml:math display="inline" id="im6"><mml:mrow><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>o</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2282;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im7"><mml:mrow><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Set of outbound vessel movements associated with vessels that execute both inbound and outbound movements during the scheduling horizon</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im8"><mml:mrow><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Set of vessel movements subject to tidal time window constraints during the scheduling horizon, <inline-formula>
<mml:math display="inline" id="im9"><mml:mrow><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2282;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im10"><mml:mi>T</mml:mi></mml:math></inline-formula></td>
<td valign="middle" align="center">Set of available tugboats</td>
</tr>
<tr>
<th valign="middle" colspan="2" align="center">Parameters</th>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im11"><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Scheduling request time of vessel movement <inline-formula>
<mml:math display="inline" id="im12"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im13"><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Sailing time of vessel movement <inline-formula>
<mml:math display="inline" id="im14"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> from the anchorage to the channel entrance</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im15"><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Sailing time of vessel movement <inline-formula>
<mml:math display="inline" id="im16"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> between the breakwater and the berth</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im17"><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>c</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Sailing time of vessel movement <inline-formula>
<mml:math display="inline" id="im18"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> between the channel entrance to the breakwater</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im19"><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Operation time for berthing or unberthing of vessel movement <inline-formula>
<mml:math display="inline" id="im20"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im21"><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>h</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Handling time of vessel movement <inline-formula>
<mml:math display="inline" id="im22"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>o</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im23"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Index of the outbound vessel movement associated with inbound vessel movement, <inline-formula>
<mml:math display="inline" id="im24"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>o</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im25"><mml:mrow><mml:msub><mml:mi>&#x3bb;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Number of tugboats required for vessel movement <inline-formula>
<mml:math display="inline" id="im26"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im27"><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mi>a</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Long-distance repositioning time of tugboats</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im28"><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mi>b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Short-distance repositioning time of tugboats</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im29"><mml:mrow><mml:msup><mml:mi>P</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>a</mml:mi><mml:mi>f</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Safety separation time between vessel movements</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im30"><mml:mrow><mml:msubsup><mml:mi>H</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Earliest start time of vessel movement <inline-formula>
<mml:math display="inline" id="im31"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> within the tidal time window</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im32"><mml:mrow><mml:msubsup><mml:mi>H</mml:mi><mml:mi>i</mml:mi><mml:mi>u</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Latest end time of vessel movement <inline-formula>
<mml:math display="inline" id="im33"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> within the tidal time window</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im34"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Predefined scheduling order between vessel movements (e.g., operations of the same vessel or vessels assigned to the same berth)</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im35"><mml:mi>M</mml:mi></mml:math></inline-formula></td>
<td valign="middle" align="center">Sufficiently large positive constant</td>
</tr>
<tr>
<th valign="middle" colspan="2" align="center">Decision variables</th>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im36"><mml:mi>F</mml:mi></mml:math></inline-formula></td>
<td valign="middle" align="center">Total waiting time of all vessel movements</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im37"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Equals 1 if tugboat <inline-formula>
<mml:math display="inline" id="im38"><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math></inline-formula> is assigned to vessel movement <inline-formula>
<mml:math display="inline" id="im39"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, and 0 otherwise</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im40"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Equals 1 if vessel movement <inline-formula>
<mml:math display="inline" id="im41"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> is scheduled before vessel movement <inline-formula>
<mml:math display="inline" id="im42"><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, and 0 otherwise</td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im43"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">Start time of vessel movement <inline-formula>
<mml:math display="inline" id="im44"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im45"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="center">End time of vessel movement <inline-formula>
<mml:math display="inline" id="im46"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s3_1_3">
<label>3.1.3</label>
<title>Optimization model</title>
<p>Based on the abovementioned assumptions and definitions, the mathematical model is formulated as follows:</p>
<disp-formula id="eq1"><label>(1)</label>
<mml:math display="block" id="M1"><mml:mrow><mml:mi>min</mml:mi><mml:mi>F</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msup><mml:mo>&#x222a;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi><mml:mi>o</mml:mi><mml:mi>u</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:munder><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>o</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:munder><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>j</mml:mi><mml:mi>h</mml:mi></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mstyle></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq2"><label>(2)</label>
<mml:math display="block" id="M2"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>c</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>b</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq3"><label>(3)</label>
<mml:math display="block" id="M3"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>b</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>c</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msup><mml:mo>&#x222a;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi><mml:mi>o</mml:mi><mml:mi>u</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq4"><label>(4)</label>
<mml:math display="block" id="M4"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2265;</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msup><mml:mo>&#x222a;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>i</mml:mi><mml:mi>y</mml:mi><mml:mi>o</mml:mi><mml:mi>u</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq5"><label>(5)</label>
<mml:math display="block" id="M5"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>h</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>o</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq6"><label>(6)</label>
<mml:math display="block" id="M6"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>j</mml:mi><mml:mi>n</mml:mi></mml:msubsup><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msup><mml:mi>P</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>a</mml:mi><mml:mi>f</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msup><mml:mo>:</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq7"><label>(7)</label>
<mml:math display="block" id="M7"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>j</mml:mi><mml:mi>n</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>j</mml:mi><mml:mi>c</mml:mi></mml:msubsup><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>c</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msup><mml:mi>P</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>a</mml:mi><mml:mi>f</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msup><mml:mo>:</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq8"><label>(8)</label>
<mml:math display="block" id="M8"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>j</mml:mi><mml:mi>c</mml:mi></mml:msubsup><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>c</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msup><mml:mi>P</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>a</mml:mi><mml:mi>f</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>i</mml:mi><mml:mi>y</mml:mi><mml:mi>o</mml:mi><mml:mi>u</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x222a;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msup><mml:mo>:</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq9"><label>(9)</label>
<mml:math display="block" id="M9"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msup><mml:mi>P</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>a</mml:mi><mml:mi>f</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi><mml:mi>o</mml:mi><mml:mi>u</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x222a;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msup><mml:mo>:</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq10"><label>(10)</label>
<mml:math display="block" id="M10"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>j</mml:mi><mml:mi>c</mml:mi></mml:msubsup><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>i</mml:mi><mml:mi>c</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msup><mml:mi>P</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>a</mml:mi><mml:mi>f</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi><mml:mi>o</mml:mi><mml:mi>u</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x222a;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq11"><label>(11)</label>
<mml:math display="block" id="M11"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>j</mml:mi><mml:mi>n</mml:mi></mml:msubsup><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msup><mml:mi>P</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>a</mml:mi><mml:mi>f</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi><mml:mi>o</mml:mi><mml:mi>u</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x222a;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq12"><label>(12)</label>
<mml:math display="block" id="M12"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:mo>:</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq13"><label>(13)</label>
<mml:math display="block" id="M13"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:mo>:</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq14"><label>(14)</label>
<mml:math display="block" id="M14"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mstyle><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x3bb;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq15"><label>(15)</label>
<mml:math display="block" id="M15"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>j</mml:mi><mml:mi>n</mml:mi></mml:msubsup><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msup><mml:mi>C</mml:mi><mml:mi>a</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msup><mml:mo>:</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq16"><label>(16)</label>
<mml:math display="block" id="M16"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mi>j</mml:mi><mml:mi>n</mml:mi></mml:msubsup><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msup><mml:mi>C</mml:mi><mml:mi>b</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi><mml:mi>o</mml:mi><mml:mi>u</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x222a;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq17"><label>(17)</label>
<mml:math display="block" id="M17"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msup><mml:mi>C</mml:mi><mml:mi>a</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi><mml:mi>o</mml:mi><mml:mi>u</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x222a;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msup><mml:mo>:</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq18"><label>(18)</label>
<mml:math display="block" id="M18"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msup><mml:mi>C</mml:mi><mml:mi>b</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi><mml:mi>o</mml:mi><mml:mi>u</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x222a;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq19"><label>(19)</label>
<mml:math display="block" id="M19"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2265;</mml:mo><mml:msubsup><mml:mi>H</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq20"><label>(20)</label>
<mml:math display="block" id="M20"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2264;</mml:mo><mml:msubsup><mml:mi>H</mml:mi><mml:mi>i</mml:mi><mml:mi>u</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq21"><label>(21)</label>
<mml:math display="block" id="M21"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo>}</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq22"><label>(22)</label>
<mml:math display="block" id="M22"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo>}</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq23"><label>(23)</label>
<mml:math display="block" id="M23"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>&#x2124;</mml:mi><mml:mo>+</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:mo>&#x2200;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="eq24"><label>(24)</label>
<mml:math display="block" id="M24"><mml:mrow><mml:mi>F</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>&#x2124;</mml:mi><mml:mo>+</mml:mo></mml:msup><mml:mo>&#x222a;</mml:mo><mml:mo>{</mml:mo><mml:mn>0</mml:mn><mml:mo>}</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>The objective function is defined in <xref ref-type="disp-formula" rid="eq1">Equation (1)</xref>, which minimizes the total waiting time of all vessel movements. The model constraints are presented in <xref ref-type="disp-formula" rid="eq2">Equations 2</xref>&#x2013;<xref ref-type="disp-formula" rid="eq24">24</xref>, describing the operational and resource-related restrictions. Constraints (2) and (3) enforce continuous sailing of inbound and outbound vessel movements, respectively. Constraints (4) and (5) require that the scheduled start time of each vessel movement is no earlier than its request time.</p>
<p>For vessels entering the one-way channel, navigation is constrained by the prevailing traffic conditions. Accordingly, safety separation requirements are imposed at both the channel entrance and the breakwater to account for different interaction scenarios between successive vessel movements. Specifically, constraints (6) and (7) address the inbound-inbound interaction. Constraint (6) requires an inbound vessel movement entering the channel to maintain a safety separation from the preceding inbound vessel movement at the channel entrance. Furthermore, to prevent potential overtaking caused by heterogeneous sailing speeds, constraint (7) enforces the corresponding separation at the breakwater. Similarly, constraints (8) and (9) handle the outbound-outbound interaction. Constraint (8) ensures a safety separation between successive outbound vessel movements at the breakwater, while constraint (9) imposes the corresponding requirement at the channel entrance. Constraints (10) and (11) capture situations involving traffic direction switching. For the inbound-outbound case, where channel traffic switches from inbound to outbound operation, constraint (10) ensures that an outbound vessel movement maintains a safety separation from the preceding inbound vessel movement at the breakwater. Conversely, for the outbound-inbound case, constraint (11) requires an inbound vessel movement to maintain a safety separation from the preceding outbound vessel movement at the channel entrance. Constraints (12) and (13) guarantee the feasibility of vessel movement sequencing decisions.</p>
<p>Regarding tugboat allocation, constraint (14) ensures that each vessel movement is assigned a sufficient number of tugboats to satisfy its service requirements. Moreover, vessel movements must account for the repositioning time of the assigned tugboats between consecutive service tasks. Specifically, tugboat service for a vessel movement can only start after the assigned tugboats have arrived at the corresponding service start location. Constraints (15) and (16) regulate tugboat repositioning for inbound vessel movements. When a tugboat consecutively serves two inbound vessel movements (the inbound-inbound case), constraint (15) requires that the arrival time of an inbound vessel movement at the channel entrance is no earlier than the arrival time of its assigned tugboats, corresponding to a long-distance repositioning along the channel. By contrast, for the outbound-inbound case, constraint (16) ensures feasibility when a tugboat switches service direction and only short-distance repositioning near the channel entrance is required. Similarly, constraints (17) and (18) govern tugboat repositioning for outbound vessel movements. For the outbound-outbound case, constraint (17) enforces that the start time of an outbound vessel movement at the berth is no earlier than the arrival time of the assigned tugboats, reflecting long-distance repositioning along the channel. For the inbound-outbound case, constraint (18) ensures feasibility when a tugboat switches service direction and only short-distance repositioning within the harbor basin is required.</p>
<p>In addition, constraints (19) and (20) ensure that vessel movements subject to tidal constraints are scheduled entirely within the allowable tidal time windows. Finally, constraints (21) to (24) define the domains of all decision variables.</p>
</sec>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>Solution approach</title>
<p>Genetic algorithm (GA) is a widely used metaheuristic method for solving optimization problems due to its robustness and has been extensively applied in vessel scheduling studies (<xref ref-type="bibr" rid="B10">Li et&#xa0;al., 2022</xref>; <xref ref-type="bibr" rid="B24">Zhang et&#xa0;al., 2024</xref>). However, the proposed joint scheduling problem involves a large number of complex constraints and requires the simultaneous optimization of two decision dimensions, namely vessel movement sequencing and tugboat allocation. Under such conditions, a conventional GA tends to generate a high proportion of infeasible solutions owing to its inherent randomness, which reduces search efficiency.</p>
<p>To overcome these limitations, this study develops an improved genetic algorithm with local search (IGA-LS). Compared with the standard GA, the proposed algorithm features a hybrid heuristic initialization strategy, tailored crossover and mutation operators for vessel movement sequencing and tugboat allocation, and a local search mechanism for elite individuals. These enhancements enhance the algorithm&#x2019;s ability to explore the solution space. The framework of the proposed algorithm is illustrated in <xref ref-type="fig" rid="f2"><bold>Figure&#xa0;2</bold></xref>.</p>
<fig id="f2" position="float">
<label>Figure&#xa0;2</label>
<caption>
<p>The framework of the IGA-LS algorithm.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-13-1780076-g002.tif">
<alt-text content-type="machine-generated">Flowchart depicting a hybrid heuristic genetic algorithm process involving population initialization, fitness evaluation, genetic operators for selection and mutation, tailored population updating with local search, and a termination check leading to the end or continuation of the cycle.</alt-text>
</graphic></fig>
<sec id="s3_2_1">
<label>3.2.1</label>
<title>Individual coding</title>
<p>According to real operational data provided by the port authority, each vessel movement may require up to three tugboats for service. Based on this feature, a four-layer integer encoding scheme is adopted to represent each individual. The first layer encodes the vessel movement scheduling sequence, while the second to fourth layers record the numbers of the tugboats assigned to each corresponding vessel movement in the sequence. If a vessel movement requires fewer than three tugboats, the remaining positions are filled with zeros. As illustrated in <xref ref-type="fig" rid="f3"><bold>Figure&#xa0;3</bold></xref>, an instance with 10 vessel movements and 3 tugboats is presented. The first vessel movement in the scheduling sequence is Ship 2, and Tugboat 3 is assigned to this vessel movement.</p>
<fig id="f3" position="float">
<label>Figure&#xa0;3</label>
<caption>
<p>Schematic of individual coding.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-13-1780076-g003.tif">
<alt-text content-type="machine-generated">Flowchart diagram illustrating ship sequencing and tugboat allocation. The table shows ship numbers in the top row and corresponding tugboat assignments in four rows, with vertical and horizontal labels indicating their relationship.</alt-text>
</graphic></fig>
</sec>
<sec id="s3_2_2">
<label>3.2.2</label>
<title>Population initialization</title>
<p>While random initialization helps maintain population diversity, it often leads to many low-quality individuals in joint scheduling problems with complex constraints. To address this issue, a hybrid heuristic initialization strategy is developed to construct the initial population. The strategy first generates a vessel movement scheduling sequence and then assigns tugboat resources, accordingly, thereby progressively constructing complete and feasible individuals.</p>
<p>For vessel movement sequencing, two mechanisms are employed: random sequencing and platoon-based sequencing. The random sequencing mechanism generates an initial sequence by randomly permuting vessel movement numbers and then checks feasibility vessel by vessel; when violations occur, a repair operation is applied to restore feasibility. By contrast, the platoon-based sequencing mechanism is designed to mimic practical port traffic flow patterns. In this mechanism, vessel movements are grouped into small platoons according to their request times and sailing directions, and these platoons are then sequentially appended to construct an initial scheduling sequence. The detailed procedure is as follows.</p>
<list list-type="bullet">
<list-item>
<p>Step 1: All vessel movements are sorted in ascending order of their request times, forming a sorted list denoted by <inline-formula>
<mml:math display="inline" id="im47"><mml:mrow><mml:mi>W</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:math></inline-formula>. The vessel movement sequence denoted by <inline-formula>
<mml:math display="inline" id="im48"><mml:mrow><mml:mi>W</mml:mi><mml:mi>Q</mml:mi></mml:mrow></mml:math></inline-formula> is initialized as empty.</p></list-item>
<list-item>
<p>Step 2: The direction and size of the current platoon are determined. The sailing direction of the first platoon follows the direction of the first vessel movement in <inline-formula>
<mml:math display="inline" id="im49"><mml:mrow><mml:mi>W</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:math></inline-formula>. For subsequent platoons, the direction alternates between inbound and outbound movements. The platoon size is randomly selected from the interval <inline-formula>
<mml:math display="inline" id="im50"><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo stretchy="false">&#x230a;</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo stretchy="false">/</mml:mo><mml:mn>5</mml:mn></mml:mrow><mml:mo stretchy="false">&#x230b;</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula>
<mml:math display="inline" id="im51"><mml:mi>n</mml:mi></mml:math></inline-formula> denotes the total number of vessel movements.</p></list-item>
<list-item>
<p>Step 3: Vessel movements in <inline-formula>
<mml:math display="inline" id="im52"><mml:mrow><mml:mi>W</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:math></inline-formula> that match the current platoon direction are selected in order of request time and appended to <inline-formula>
<mml:math display="inline" id="im53"><mml:mrow><mml:mi>W</mml:mi><mml:mi>Q</mml:mi></mml:mrow></mml:math></inline-formula> until the platoon size is reached. If the number of eligible vessel movements is insufficient, all available matching movements are included and the platoon size is adjusted accordingly.</p></list-item>
<list-item>
<p>Step 4: The selected vessel movements are removed from <inline-formula>
<mml:math display="inline" id="im54"><mml:mrow><mml:mi>W</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:math></inline-formula>. If <inline-formula>
<mml:math display="inline" id="im55"><mml:mrow><mml:mi>W</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:math></inline-formula> is not empty, Steps 2 to 4 are repeated until all vessel movements have been sequenced.</p></list-item>
</list>
<p>Based on the obtained vessel movement sequence, tugboats are then randomly assigned to each vessel movement while ensuring that the required number of tugboats is satisfied. Finally, the sequencing and allocation information are integrated to form a complete individual in the initial population. By integrating these two mechanisms, the proposed hybrid heuristic initialization strategy improves the overall quality of the initial population while maintaining sufficient population diversity.</p>
</sec>
<sec id="s3_2_3">
<label>3.2.3</label>
<title>Genetic operators</title>
<p>In genetic algorithms, the fitness value is used to evaluate the quality of an individual solution, with higher fitness indicating better performance. Since the objective of this study is to minimize the total waiting time of all vessel movements, the reciprocal of the objective function value is adopted as the fitness evaluation function in the IGA-LS algorithm. Based on this fitness definition, a roulette-wheel selection strategy is employed to generate parent individuals. Individuals with higher fitness values are assigned greater selection probabilities, which effectively guides the population toward regions of higher-quality solutions.</p>
<sec id="s3_2_3_1">
<label>3.2.3.1</label>
<title>Tailored crossover and mutation operators</title>
<p>Given that vessel movements may require different numbers of tugboats, differentiated genetic operators are designed for vessel movement sequencing and tugboat allocation. Specifically, vessel movement sequencing is updated using a tailored crossover operator, whereas tugboat allocation is modified through a tailored mutation operator.</p>
<p>The crossover operator for vessel movement sequencing is illustrated in <xref ref-type="fig" rid="f4"><bold>Figure&#xa0;4</bold></xref>. A crossover segment of random length is first determined for each parent, and the corresponding subsequence is copied directly into the offspring. The remaining positions are then filled according to the relative order of the remaining vessel movements in the other parent, thereby preserving a feasible vessel movement sequence. For tugboat allocation, the mutation operator is illustrated in <xref ref-type="fig" rid="f5"><bold>Figure&#xa0;5</bold></xref>. Between 1 and <inline-formula>
<mml:math display="inline" id="im58"><mml:mrow><mml:mo stretchy="false">&#x230a;</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo stretchy="false">/</mml:mo><mml:mn>3</mml:mn></mml:mrow><mml:mo stretchy="false">&#x230b;</mml:mo></mml:mrow></mml:math></inline-formula> vessel movements are randomly selected, and their tugboat assignment schemes are regenerated. This mutation introduces new tugboat assignment combinations while preserving the overall vessel scheduling structure.</p>
<fig id="f4" position="float">
<label>Figure&#xa0;4</label>
<caption>
<p>Schematic of the tailored crossover operator for vessel movement sequencing. &#x2022; Step 1: Two parent individuals are selected, and their vessel movement sequencing structures are identified. &#x2022; Step 2: A crossover segment length is randomly generated within the range <inline-formula>
<mml:math display="inline" id="im56"><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo stretchy="false">&#x230a;</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo stretchy="false">/</mml:mo><mml:mn>5</mml:mn></mml:mrow><mml:mo stretchy="false">&#x230b;</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:math></inline-formula>, and two corresponding cut points are determined for each parent. The subsequences between the cut points are exchanged to generate the corresponding crossover segments in the offspring. &#x2022; Step 3: Vessel movement numbers contained in the crossover segment are removed from each parent, and the remaining numbers are filled into the offspring in their original order, resulting in a complete vessel movement sequencing. &#x2022; Step 4: Based on the resulting sequencing, the associated tugboat allocation layers are inherited to generate complete offspring individuals.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-13-1780076-g004.tif">
<alt-text content-type="machine-generated">Diagram illustrating a four-step genetic algorithm crossover process: selecting parent sequencing structures, identifying crossover segments between two parent sequences, filling offspring sequences while preserving order, and generating two new offspring matrices with inherited and reordered gene information.</alt-text>
</graphic></fig>
<fig id="f5" position="float">
<label>Figure&#xa0;5</label>
<caption>
<p>Schematic of the tailored mutation operator for tugboat allocation. &#x2022; Step 1: The number and positions of vessel movements to be mutated are randomly selected, with the number ranging from 1 to <inline-formula>
<mml:math display="inline" id="im57"><mml:mrow><mml:mo stretchy="false">&#x230a;</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo stretchy="false">/</mml:mo><mml:mn>3</mml:mn></mml:mrow><mml:mo stretchy="false">&#x230b;</mml:mo></mml:mrow></mml:math></inline-formula>. For each selected vessel movement, the set of available tugboats and the required number of tugboats are identified. &#x2022; Step 2: A new tugboat allocation scheme is randomly generated from the feasible tugboat set and replaces the original allocation. The resulting individual is obtained by updating the tugboat allocation while preserving the original vessel movement sequencing.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-13-1780076-g005.tif">
<alt-text content-type="machine-generated">Diagram illustrating a two-step genetic algorithm process for tugboat assignment. Step one shows a parent solution matrix with mutation positions at columns three and six highlighted and available tugboats for Ships four and five. Step two depicts the resulting offspring matrix after randomly assigning selected tugboats at the mutation positions.</alt-text>
</graphic></fig>
</sec>
<sec id="s3_2_3_2">
<label>3.2.3.2</label>
<title>Repair operators</title>
<p>For offspring generated by genetic operations, the vessel movement sequence may violate constraints (12) and (20), leading to infeasible solutions. To address this issue, a feasibility repair mechanism is developed for vessel movement sequencing. First, the scheduling order of vessel movements assigned to the same berth is adjusted to comply with practical port operating rules. Then, for vessel movements that violate tidal time window constraints, a targeted sequence adjustment is performed. Such violations typically result from excessive waiting caused by preceding vessel movements, and are mitigated by progressively shifting the violating vessel movement to earlier positions in the scheduling sequence to reduce its waiting time. After each positional shift, the completion time is recalculated until the vessel movement is scheduled entirely within the allowable tidal time window.</p>
</sec>
</sec>
<sec id="s3_2_4">
<label>3.2.4</label>
<title>Elite-based local search strategy</title>
<p>To accelerate convergence and mitigate the risk of premature convergence, a local search strategy is embedded into the genetic evolution process to intensify the search around elite individuals. In this study, individuals whose fitness values rank within the top 10% of the population are defined as elite individuals.</p>
<p>For vessel movement sequencing, the local search first identifies the vessel movement with the largest waiting time in each elite individual and records its position in the scheduling sequence. This vessel movement is then iteratively shifted forward by one position at a time in the scheduling sequence (i.e., relocated to an adjacent earlier position), and the objective function value is recalculated after each shift to evaluate potential improvements. To avoid excessive disruption to the original scheduling structure, the maximum number of such single-position forward shifts performed in a single local search is limited to <inline-formula>
<mml:math display="inline" id="im59"><mml:mrow><mml:mo stretchy="false">&#x230a;</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo stretchy="false">/</mml:mo><mml:mn>5</mml:mn></mml:mrow><mml:mo stretchy="false">&#x230b;</mml:mo></mml:mrow></mml:math></inline-formula>. For tugboat allocation, vessel movements experiencing waiting time in each elite individual are examined sequentially, and their tugboat assignment schemes are locally adjusted to reduce waiting time and improve overall scheduling performance.</p>
<p>If the solution generated by the local search yields a higher fitness value than the original elite individual, it replaces the latter and the population is updated accordingly. Through this elite-based local search mechanism, the algorithm enhances solution quality while preserving population diversity.</p>
</sec>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Experiments and results</title>
<p>This section validates the proposed model and algorithm using real-world operational data collected from a northern Chinese seaport. The overall port layout has been described in detail in Section 3.1.1. The port contains 20 berths and is equipped with three tugboats. The long-distance tugboat repositioning time is approximately 20 min, while the short-distance repositioning time is about 5 min. Due to data confidentiality requirements, vessels, tugboats, and berths involved in the experiments are represented by numerical identifiers. In the experimental analysis, each numerical identifier (e.g., Ship 1, Ship 10) represents a specific vessel movement (operation) to be scheduled. For simplicity, the term &#x201c;Ship&#x201d; is retained as a label throughout the tables and figures. All time-related parameters are measured in min, and the minimum safety separation time between consecutive vessel movements is set to 10 min (<xref ref-type="bibr" rid="B7">Jia et&#xa0;al., 2019</xref>; <xref ref-type="bibr" rid="B11">Liu et&#xa0;al., 2021</xref>).</p>
<p>All algorithms are implemented in MATLAB R2022b and executed on a computer equipped with an Intel Core i7-8750H CPU and 16 GB of RAM. The test instances involve 10 to 30 vessel movements. The instance naming convention follows the format &#x201c;S10_1&#x201d;, where &#x201c;S10&#x201d; denotes an instance group containing 10 vessel movements and &#x201c;_1&#x201d; indicates the first instance within that group. Based on extensive preliminary experiments, the parameters of the proposed IGA-LS algorithm are set as follows: a population size of 100, a crossover prob-ability of 0.9, and a mutation probability of 0.5. A time-based stopping criterion is adopted. Specifically, the maximum runtime is set to 1 min for instances with no more than 20 vessel movements, and 2 min for larger-scale instances.</p>
<sec id="s4_1">
<label>4.1</label>
<title>Case study</title>
<p>The inbound vessel movement request schedule for a representative operating day at the port is presented in <xref ref-type="table" rid="T2"><bold>Table&#xa0;2</bold></xref>, which includes nine inbound operations, numbered from 1 to 9. The outbound vessel movement request schedule is reported in <xref ref-type="table" rid="T3"><bold>Table&#xa0;3</bold></xref>, comprising nine outbound operations, numbered from 10 to 18. On this day, Ships 3, 5, and 6 are the inbound movements associated with vessels that execute both inbound and outbound movements, with their corresponding outbound movements indexed as Ships 16, 17, and 18, respectively. The associated cargo handling durations for these vessel movements are 480, 360, and 360 min, respectively. In addition, Ship 13 is a tide-dependent vessel movement, with an allowable tidal operating time window of <inline-formula>
<mml:math display="inline" id="im60"><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mn>540</mml:mn><mml:mo>,</mml:mo><mml:mn>720</mml:mn><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<table-wrap id="T2" position="float">
<label>Table&#xa0;2</label>
<caption>
<p>Inbound vessel movement data.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="center">Ship no.</th>
<th valign="middle" align="center">Request time (min)</th>
<th valign="middle" align="center">Ship length</th>
<th valign="middle" align="center">Berth</th>
<th valign="middle" align="center">Sailing time from anchorage to channel entrance (min)</th>
<th valign="middle" align="center">Sailing time from channel entrance to breakwater (min)</th>
<th valign="middle" align="center">Sailing time from breakwater to berth (min)</th>
<th valign="middle" align="center">Berthing time (min)</th>
<th valign="middle" align="center">Required number of tugboats</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="center">1</td>
<td valign="middle" align="center">40</td>
<td valign="middle" align="center">102</td>
<td valign="middle" align="center">6</td>
<td valign="middle" align="center">18</td>
<td valign="middle" align="center">22</td>
<td valign="middle" align="center">8</td>
<td valign="middle" align="center">20</td>
<td valign="middle" align="center">2</td>
</tr>
<tr>
<td valign="middle" align="center">2</td>
<td valign="middle" align="center">115</td>
<td valign="middle" align="center">146</td>
<td valign="middle" align="center">13</td>
<td valign="middle" align="center">20</td>
<td valign="middle" align="center">24</td>
<td valign="middle" align="center">10</td>
<td valign="middle" align="center">25</td>
<td valign="middle" align="center">2</td>
</tr>
<tr>
<td valign="middle" align="center">3</td>
<td valign="middle" align="center">152</td>
<td valign="middle" align="center">128</td>
<td valign="middle" align="center">9</td>
<td valign="middle" align="center">17</td>
<td valign="middle" align="center">21</td>
<td valign="middle" align="center">10</td>
<td valign="middle" align="center">25</td>
<td valign="middle" align="center">2</td>
</tr>
<tr>
<td valign="middle" align="center">4</td>
<td valign="middle" align="center">347</td>
<td valign="middle" align="center">78</td>
<td valign="middle" align="center">7</td>
<td valign="middle" align="center">17</td>
<td valign="middle" align="center">20</td>
<td valign="middle" align="center">9</td>
<td valign="middle" align="center">22</td>
<td valign="middle" align="center">1</td>
</tr>
<tr>
<td valign="middle" align="center">5</td>
<td valign="middle" align="center">360</td>
<td valign="middle" align="center">167</td>
<td valign="middle" align="center">19</td>
<td valign="middle" align="center">11</td>
<td valign="middle" align="center">13</td>
<td valign="middle" align="center">17</td>
<td valign="middle" align="center">25</td>
<td valign="middle" align="center">1</td>
</tr>
<tr>
<td valign="middle" align="center">6</td>
<td valign="middle" align="center">640</td>
<td valign="middle" align="center">137</td>
<td valign="middle" align="center">20</td>
<td valign="middle" align="center">11</td>
<td valign="middle" align="center">13</td>
<td valign="middle" align="center">18</td>
<td valign="middle" align="center">16</td>
<td valign="middle" align="center">1</td>
</tr>
<tr>
<td valign="middle" align="center">7</td>
<td valign="middle" align="center">778</td>
<td valign="middle" align="center">104</td>
<td valign="middle" align="center">15</td>
<td valign="middle" align="center">20</td>
<td valign="middle" align="center">24</td>
<td valign="middle" align="center">12</td>
<td valign="middle" align="center">23</td>
<td valign="middle" align="center">2</td>
</tr>
<tr>
<td valign="middle" align="center">8</td>
<td valign="middle" align="center">941</td>
<td valign="middle" align="center">190</td>
<td valign="middle" align="center">1</td>
<td valign="middle" align="center">20</td>
<td valign="middle" align="center">24</td>
<td valign="middle" align="center">3</td>
<td valign="middle" align="center">28</td>
<td valign="middle" align="center">2</td>
</tr>
<tr>
<td valign="middle" align="center">9</td>
<td valign="middle" align="center">1030</td>
<td valign="middle" align="center">97</td>
<td valign="middle" align="center">11</td>
<td valign="middle" align="center">19</td>
<td valign="middle" align="center">23</td>
<td valign="middle" align="center">11</td>
<td valign="middle" align="center">20</td>
<td valign="middle" align="center">1</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T3" position="float">
<label>Table&#xa0;3</label>
<caption>
<p>Outbound vessel movement data.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="center">Ship no.</th>
<th valign="middle" align="center">Request time (min)</th>
<th valign="middle" align="center">Ship length</th>
<th valign="middle" align="center">Berth</th>
<th valign="middle" align="center">Sailing time from breakwater to channel entrance (min)</th>
<th valign="middle" align="center">Sailing time from berth to breakwater (min)</th>
<th valign="middle" align="center">Unberthing time (min)</th>
<th valign="middle" align="center">Required number of tugboats</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="center">10</td>
<td valign="middle" align="center">80</td>
<td valign="middle" align="center">179</td>
<td valign="middle" align="center">2</td>
<td valign="middle" align="center">22</td>
<td valign="middle" align="center">4</td>
<td valign="middle" align="center">23</td>
<td valign="middle" align="center">2</td>
</tr>
<tr>
<td valign="middle" align="center">11</td>
<td valign="middle" align="center">206</td>
<td valign="middle" align="center">135</td>
<td valign="middle" align="center">7</td>
<td valign="middle" align="center">21</td>
<td valign="middle" align="center">9</td>
<td valign="middle" align="center">17</td>
<td valign="middle" align="center">2</td>
</tr>
<tr>
<td valign="middle" align="center">12</td>
<td valign="middle" align="center">420</td>
<td valign="middle" align="center">193</td>
<td valign="middle" align="center">16</td>
<td valign="middle" align="center">14</td>
<td valign="middle" align="center">14</td>
<td valign="middle" align="center">15</td>
<td valign="middle" align="center">1</td>
</tr>
<tr>
<td valign="middle" align="center">13</td>
<td valign="middle" align="center">540</td>
<td valign="middle" align="center">225</td>
<td valign="middle" align="center">4</td>
<td valign="middle" align="center">25</td>
<td valign="middle" align="center">5</td>
<td valign="middle" align="center">27</td>
<td valign="middle" align="center">3</td>
</tr>
<tr>
<td valign="middle" align="center">14</td>
<td valign="middle" align="center">765</td>
<td valign="middle" align="center">120</td>
<td valign="middle" align="center">11</td>
<td valign="middle" align="center">24</td>
<td valign="middle" align="center">11</td>
<td valign="middle" align="center">16</td>
<td valign="middle" align="center">2</td>
</tr>
<tr>
<td valign="middle" align="center">15</td>
<td valign="middle" align="center">976</td>
<td valign="middle" align="center">186</td>
<td valign="middle" align="center">17</td>
<td valign="middle" align="center">14</td>
<td valign="middle" align="center">14</td>
<td valign="middle" align="center">15</td>
<td valign="middle" align="center">1</td>
</tr>
<tr>
<td valign="middle" align="center">16</td>
<td valign="middle" align="center">/</td>
<td valign="middle" align="center">128</td>
<td valign="middle" align="center">9</td>
<td valign="middle" align="center">21</td>
<td valign="middle" align="center">10</td>
<td valign="middle" align="center">16</td>
<td valign="middle" align="center">2</td>
</tr>
<tr>
<td valign="middle" align="center">17</td>
<td valign="middle" align="center">/</td>
<td valign="middle" align="center">167</td>
<td valign="middle" align="center">19</td>
<td valign="middle" align="center">13</td>
<td valign="middle" align="center">17</td>
<td valign="middle" align="center">16</td>
<td valign="middle" align="center">1</td>
</tr>
<tr>
<td valign="middle" align="center">18</td>
<td valign="middle" align="center">/</td>
<td valign="middle" align="center">137</td>
<td valign="middle" align="center">20</td>
<td valign="middle" align="center">13</td>
<td valign="middle" align="center">18</td>
<td valign="middle" align="center">13</td>
<td valign="middle" align="center">1</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>By applying the proposed IGA-LS algorithm to this instance, an optimal objective value of 292 min is obtained. The corresponding detailed scheduling plan is reported in <xref ref-type="table" rid="T4"><bold>Table&#xa0;4</bold></xref>. To visually illustrate the scheduling outcomes for vessel movements and tugboats, a vessel operation Gantt chart and a tugboat service Gantt chart are provided in <xref ref-type="fig" rid="f6"><bold>Figures&#xa0;6</bold></xref>, <xref ref-type="fig" rid="f7"><bold>7</bold></xref>, respectively.</p>
<table-wrap id="T4" position="float">
<label>Table&#xa0;4</label>
<caption>
<p>Optimal scheduling scheme.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="center">Scheduling order</th>
<th valign="middle" align="center">Ship no.</th>
<th valign="middle" align="center">Movement type</th>
<th valign="middle" align="center">Request time (min)</th>
<th valign="middle" align="center">Start time (min)</th>
<th valign="middle" align="center">Arrival time at the channel entrance (min)</th>
<th valign="middle" align="center">Arrival time at the breakwater (min)</th>
<th valign="middle" align="center">End time (min)</th>
<th valign="middle" align="center">Assigned tugboat IDs</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="center">1</td>
<td valign="middle" align="center">1</td>
<td valign="middle" align="center">Inbound</td>
<td valign="middle" align="center">40</td>
<td valign="middle" align="center">40</td>
<td valign="middle" align="center">58</td>
<td valign="middle" align="center">80</td>
<td valign="middle" align="center">108</td>
<td valign="middle" align="center">1,2</td>
</tr>
<tr>
<td valign="middle" align="center">2</td>
<td valign="middle" align="center">10</td>
<td valign="middle" align="center">Outbound</td>
<td valign="middle" align="center">80</td>
<td valign="middle" align="center"><bold>113</bold></td>
<td valign="middle" align="center">162</td>
<td valign="middle" align="center">140</td>
<td valign="middle" align="center">162</td>
<td valign="middle" align="center">1,3</td>
</tr>
<tr>
<td valign="middle" align="center">3</td>
<td valign="middle" align="center">3</td>
<td valign="middle" align="center">Inbound</td>
<td valign="middle" align="center">152</td>
<td valign="middle" align="center"><bold>155</bold></td>
<td valign="middle" align="center">172</td>
<td valign="middle" align="center">193</td>
<td valign="middle" align="center">228</td>
<td valign="middle" align="center">2,3</td>
</tr>
<tr>
<td valign="middle" align="center">4</td>
<td valign="middle" align="center">11</td>
<td valign="middle" align="center">Outbound</td>
<td valign="middle" align="center">206</td>
<td valign="middle" align="center"><bold>233</bold></td>
<td valign="middle" align="center">280</td>
<td valign="middle" align="center">259</td>
<td valign="middle" align="center">280</td>
<td valign="middle" align="center">1,2</td>
</tr>
<tr>
<td valign="middle" align="center">5</td>
<td valign="middle" align="center">2</td>
<td valign="middle" align="center">Inbound</td>
<td valign="middle" align="center">115</td>
<td valign="middle" align="center"><bold>270</bold></td>
<td valign="middle" align="center">290</td>
<td valign="middle" align="center">314</td>
<td valign="middle" align="center">349</td>
<td valign="middle" align="center">1,2</td>
</tr>
<tr>
<td valign="middle" align="center">6</td>
<td valign="middle" align="center">4</td>
<td valign="middle" align="center">Inbound</td>
<td valign="middle" align="center">347</td>
<td valign="middle" align="center">347</td>
<td valign="middle" align="center">364</td>
<td valign="middle" align="center">384</td>
<td valign="middle" align="center">415</td>
<td valign="middle" align="center">3</td>
</tr>
<tr>
<td valign="middle" align="center">7</td>
<td valign="middle" align="center">5</td>
<td valign="middle" align="center">Inbound</td>
<td valign="middle" align="center">360</td>
<td valign="middle" align="center"><bold>370</bold></td>
<td valign="middle" align="center">381</td>
<td valign="middle" align="center">394</td>
<td valign="middle" align="center">436</td>
<td valign="middle" align="center">2</td>
</tr>
<tr>
<td valign="middle" align="center">8</td>
<td valign="middle" align="center">12</td>
<td valign="middle" align="center">Outbound</td>
<td valign="middle" align="center">420</td>
<td valign="middle" align="center">420</td>
<td valign="middle" align="center">463</td>
<td valign="middle" align="center">449</td>
<td valign="middle" align="center">463</td>
<td valign="middle" align="center">1</td>
</tr>
<tr>
<td valign="middle" align="center">9</td>
<td valign="middle" align="center">13</td>
<td valign="middle" align="center">Outbound</td>
<td valign="middle" align="center">540</td>
<td valign="middle" align="center">540</td>
<td valign="middle" align="center">597</td>
<td valign="middle" align="center">572</td>
<td valign="middle" align="center">597</td>
<td valign="middle" align="center">1,2,3</td>
</tr>
<tr>
<td valign="middle" align="center">10</td>
<td valign="middle" align="center">6</td>
<td valign="middle" align="center">Inbound</td>
<td valign="middle" align="center">640</td>
<td valign="middle" align="center">640</td>
<td valign="middle" align="center">651</td>
<td valign="middle" align="center">664</td>
<td valign="middle" align="center">698</td>
<td valign="middle" align="center">1</td>
</tr>
<tr>
<td valign="middle" align="center">11</td>
<td valign="middle" align="center">16</td>
<td valign="middle" align="center">Outbound</td>
<td valign="middle" align="center">708</td>
<td valign="middle" align="center">708</td>
<td valign="middle" align="center">755</td>
<td valign="middle" align="center">734</td>
<td valign="middle" align="center">755</td>
<td valign="middle" align="center">1,2</td>
</tr>
<tr>
<td valign="middle" align="center">12</td>
<td valign="middle" align="center">14</td>
<td valign="middle" align="center">Outbound</td>
<td valign="middle" align="center">765</td>
<td valign="middle" align="center"><bold>775</bold></td>
<td valign="middle" align="center">826</td>
<td valign="middle" align="center">802</td>
<td valign="middle" align="center">826</td>
<td valign="middle" align="center">2,3</td>
</tr>
<tr>
<td valign="middle" align="center">13</td>
<td valign="middle" align="center">17</td>
<td valign="middle" align="center">Outbound</td>
<td valign="middle" align="center">796</td>
<td valign="middle" align="center">796</td>
<td valign="middle" align="center">842</td>
<td valign="middle" align="center">829</td>
<td valign="middle" align="center">842</td>
<td valign="middle" align="center">1</td>
</tr>
<tr>
<td valign="middle" align="center">14</td>
<td valign="middle" align="center">7</td>
<td valign="middle" align="center">Inbound</td>
<td valign="middle" align="center">778</td>
<td valign="middle" align="center"><bold>832</bold></td>
<td valign="middle" align="center">852</td>
<td valign="middle" align="center">876</td>
<td valign="middle" align="center">911</td>
<td valign="middle" align="center">2,3</td>
</tr>
<tr>
<td valign="middle" align="center">15</td>
<td valign="middle" align="center">8</td>
<td valign="middle" align="center">Inbound</td>
<td valign="middle" align="center">941</td>
<td valign="middle" align="center">941</td>
<td valign="middle" align="center">961</td>
<td valign="middle" align="center">985</td>
<td valign="middle" align="center">1016</td>
<td valign="middle" align="center">1,3</td>
</tr>
<tr>
<td valign="middle" align="center">16</td>
<td valign="middle" align="center">15</td>
<td valign="middle" align="center">Outbound</td>
<td valign="middle" align="center">976</td>
<td valign="middle" align="center">976</td>
<td valign="middle" align="center">1019</td>
<td valign="middle" align="center">1005</td>
<td valign="middle" align="center">1019</td>
<td valign="middle" align="center">2</td>
</tr>
<tr>
<td valign="middle" align="center">17</td>
<td valign="middle" align="center">9</td>
<td valign="middle" align="center">Inbound</td>
<td valign="middle" align="center">1030</td>
<td valign="middle" align="center">1030</td>
<td valign="middle" align="center">1049</td>
<td valign="middle" align="center">1072</td>
<td valign="middle" align="center">1103</td>
<td valign="middle" align="center">2</td>
</tr>
<tr>
<td valign="middle" align="center">18</td>
<td valign="middle" align="center">18</td>
<td valign="middle" align="center">Outbound</td>
<td valign="middle" align="center">1058</td>
<td valign="middle" align="center">1058</td>
<td valign="middle" align="center">1102</td>
<td valign="middle" align="center">1089</td>
<td valign="middle" align="center">1102</td>
<td valign="middle" align="center">1</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>the start times of vessel movements that experience delays are highlighted in bold.</p></fn>
</table-wrap-foot>
</table-wrap>
<fig id="f6" position="float">
<label>Figure&#xa0;6</label>
<caption>
<p>Gantt chart of vessel movements.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-13-1780076-g006.tif">
<alt-text content-type="machine-generated">Gantt chart depicting ship movements with sequential multicolor bars for each ship, representing inbound and outbound processes. The legend identifies colored segments as waiting, sailing, and berthing times. Horizontal axis shows time in minutes, vertical axis lists ship numbers.</alt-text>
</graphic></fig>
<fig id="f7" position="float">
<label>Figure&#xa0;7</label>
<caption>
<p>Gantt chart of tugboat service operations.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-13-1780076-g007.tif">
<alt-text content-type="machine-generated">Gantt chart illustrating tugboat assignments for various vessel movements over time, with three tugboats servicing eighteen vessel movements. Each rectangle denotes a time block for tugboat service labeled by vessel movement number.</alt-text>
</graphic></fig>
<p>A comparative analysis of the data in <xref ref-type="table" rid="T2"><bold>Tables&#xa0;2</bold></xref>&#x2013;<xref ref-type="table" rid="T4"><bold>4</bold></xref> indicates that all constraints incorporated in the model are strictly satisfied. Specifically, with respect to sailing continuity, the completion time of each vessel movement equals the sum of its scheduled start time and the sailing times of all associated navigation segments, ensuring temporal consistency throughout the operation process. In terms of navigational safety, the minimum safety separation between consecutive vessel movements within the navigation channel is fully respected. For example, Ship 10 (outbound movement) arrives at the channel entrance at 162 min. According to the safety separation requirement, any subsequent inbound vessel movement must maintain the prescribed minimum time interval at this location. As a result, Ship 3 (inbound movement) waits at the anchorage for 3 min, starts sailing thereafter, and reaches the channel entrance at 172 min, thereby ensuring safe navigation with respect to Ship 10. In addition, the tidal time window constraint is satisfied. As reported in <xref ref-type="table" rid="T4"><bold>Table&#xa0;4</bold></xref>, Ship 13 starts at 540 min and completes at 597 min, both of which comply with the specified tidal time window.</p>
<p>Regarding tugboat allocation, the tugboat requirements of all vessel movements are fully satisfied. For instance, Ship 1 requires two tugboats and is ultimately assigned Tugboats 1 and 2. In addition, the model explicitly captures tugboat repositioning constraints between consecutive service tasks. For example, Tugboat 1 consecutively serves Ship 1 and 10. Since the transition between the service endpoint of Ship 1 and the service start point of Ship 10 corresponds to a short-distance repositioning scenario, Ship 10 must wait at the berth until Tugboat 1 completes its previous task and arrives at the service start point be-fore unberthing operations can commence.</p>
<p>In summary, the obtained scheduling solution ensures both sailing continuity and navigational safety for vessel movements, while achieving a well-coordinated integration of tugboat allocation and repositioning operations. These results provide strong evidence of the feasibility and effectiveness of the proposed model and algorithm for the joint optimization of vessel scheduling and tugboat allocation in port operations.</p>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Comparative experiment results</title>
<p>To evaluate the solution performance of the proposed IGA-LS algorithm, comparative experiments are conducted against a standard genetic algorithm (GA) and the first-come-first-served (FCFS) rule. All three methods are tested on the same set of instances under identical time limits to ensure a fair comparison. Since GA and IGA-LS are stochastic algorithms, each algorithm is independently run 10 times on every instance, and the mean and standard deviation of the objective values are used for performance evaluation. The GA parameters are set as follows: a population size of 100, a crossover probability of 0.9, and a mutation probability of 0.1. The stopping criterion for GA is identical to that used for IGA-LS. FCFS is a commonly adopted dispatching rule in practical port operations, in which the scheduling order is determined solely by vessel movement request times (<xref ref-type="bibr" rid="B11">Liu et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B10">Li et&#xa0;al., 2022</xref>). Three groups of instances are considered, corresponding to problem sizes of 10, 20, and 30 vessel movements, with three independent instances in each group.</p>
<p><xref ref-type="table" rid="T5"><bold>Table&#xa0;5</bold></xref> summarizes the mean objective values and standard deviations obtained by different algorithms for each instance, together with their relative gaps (GAP). The Average row of <xref ref-type="table" rid="T5"><bold>Table&#xa0;5</bold></xref> provides an overall performance comparison across all tested instances, showing that IGA-LS achieves average reductions of 5.25% and 28.31% relative to GA and FCFS, respectively. It can be observed that IGA-LS consistently achieves the best average performance across all instances. For small-scale instances with 10 vessel movements, the average solutions obtained by GA are largely comparable to those of IGA-LS, indicating that when the problem size is small and constraints are relatively loose, the standard GA is capable of producing high-quality solutions. However, as the number of vessel movements increases, the average solution quality of GA gradually deteriorates, whereas IGA-LS maintains a stable advantage. In particular, for instances with 30 vessel movements, IGA-LS improves upon GA by 10.09%-12.07% on average, demonstrating that the incorporated local search strategy and tailored genetic operators significantly enhance search efficiency and solution quality for larger-scale problems.</p>
<table-wrap id="T5" position="float">
<label>Table&#xa0;5</label>
<caption>
<p>Comparison of multiple instances.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" rowspan="2" align="center">Instance</th>
<th valign="middle" colspan="3" align="center">Objective (min)</th>
<th valign="middle" rowspan="2" align="center">GAP1</th>
<th valign="middle" rowspan="2" align="center">GAP2</th>
</tr>
<tr>
<th valign="middle" align="center">IGA-LS (Mean &#xb1; Std)</th>
<th valign="middle" align="center">GA (Mean &#xb1; Std)</th>
<th valign="middle" align="center">FCFS</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="center">S10_1</td>
<td valign="middle" align="center">122.00 &#xb1; 0.00</td>
<td valign="middle" align="center">122.00 &#xb1; 0.00</td>
<td valign="middle" align="center">122.00</td>
<td valign="middle" align="center">0.00%</td>
<td valign="middle" align="center">0.00%</td>
</tr>
<tr>
<td valign="middle" align="center">S10_2</td>
<td valign="middle" align="center">206.00 &#xb1; 0.00</td>
<td valign="middle" align="center">207.10 &#xb1; 2.23</td>
<td valign="middle" align="center">217.00</td>
<td valign="middle" align="center">0.53%</td>
<td valign="middle" align="center">5.07%</td>
</tr>
<tr>
<td valign="middle" align="center">S10_3</td>
<td valign="middle" align="center">118.00 &#xb1; 0.00</td>
<td valign="middle" align="center">118.00 &#xb1; 0.00</td>
<td valign="middle" align="center">118.00</td>
<td valign="middle" align="center">0.00%</td>
<td valign="middle" align="center">0.00%</td>
</tr>
<tr>
<td valign="middle" align="center">S20_1</td>
<td valign="middle" align="center">222.00 &#xb1; 0.00</td>
<td valign="middle" align="center">229.80 &#xb1; 3.99</td>
<td valign="middle" align="center">244.00</td>
<td valign="middle" align="center">3.39%</td>
<td valign="middle" align="center">9.02%</td>
</tr>
<tr>
<td valign="middle" align="center">S20_2</td>
<td valign="middle" align="center">428.60 &#xb1; 5.85</td>
<td valign="middle" align="center">453.40 &#xb1; 16.95</td>
<td valign="middle" align="center">569.00</td>
<td valign="middle" align="center">5.47%</td>
<td valign="middle" align="center">24.67%</td>
</tr>
<tr>
<td valign="middle" align="center">S20_3</td>
<td valign="middle" align="center">449.80 &#xb1; 5.98</td>
<td valign="middle" align="center">471.80 &#xb1; 13.03</td>
<td valign="middle" align="center">801.00</td>
<td valign="middle" align="center">4.66%</td>
<td valign="middle" align="center">43.85%</td>
</tr>
<tr>
<td valign="middle" align="center">S30_1</td>
<td valign="middle" align="center">1331.80 &#xb1; 12.76</td>
<td valign="middle" align="center">1481.20 &#xb1; 38.50</td>
<td valign="middle" align="center">3002.00</td>
<td valign="middle" align="center">10.09%</td>
<td valign="middle" align="center">55.64%</td>
</tr>
<tr>
<td valign="middle" align="center">S30_2</td>
<td valign="middle" align="center">1168.90 &#xb1; 14.63</td>
<td valign="middle" align="center">1329.40 &#xb1; 42.44</td>
<td valign="middle" align="center">3183.00</td>
<td valign="middle" align="center">12.07%</td>
<td valign="middle" align="center">63.28%</td>
</tr>
<tr>
<td valign="middle" align="center">S30_3</td>
<td valign="middle" align="center">714.20 &#xb1; 10.99</td>
<td valign="middle" align="center">803.00 &#xb1; 24.08</td>
<td valign="middle" align="center">1527.00</td>
<td valign="middle" align="center">11.06%</td>
<td valign="middle" align="center">53.23%</td>
</tr>
<tr>
<td valign="middle" align="center">Average</td>
<td valign="middle" align="center">529.03</td>
<td valign="middle" align="center">579.52</td>
<td valign="middle" align="center">1087.00</td>
<td valign="middle" align="center">5.25%</td>
<td valign="middle" align="center">28.31%</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>GA and IGA-LS are stochastic algorithms and were independently run 10 times for each instance. The mean and standard deviation of the objective values are reported. FCFS is deterministic and thus evaluated once per instance. A paired Wilcoxon signed-rank test based on the instance-wise mean objective values indicates that IGA-LS significantly outperforms GA (<italic>p</italic> &lt; 0.05). GAP1=(Obj<sub>GA</sub>-Obj<sub>IGA-LS</sub>)/Obj<sub>GA</sub>; GAP2=(Obj<sub>FCFS</sub>-Obj<sub>IGA-LS</sub>)/Obj<sub>FCFS</sub>.</p></fn>
</table-wrap-foot>
</table-wrap>
<p>Compared with the FCFS rule, IGA-LS consistently delivers substantially better scheduling outcomes. This advantage becomes even more pronounced in instances with 30 vessel movements, where the average objective value obtained by IGA-LS is reduced by more than 50% on average relative to FCFS. These results clearly indicate that scheduling rules based solely on request order are inadequate for handling complex channel constraints and limited tugboat resources.</p>
<p><xref ref-type="fig" rid="f8"><bold>Figure&#xa0;8</bold></xref> further illustrates the variation in the average objective value of different algorithms as the number of vessel movements increases. As shown, the objective value under FCFS grows rapidly with increasing problem size, whereas the growth trends for GA and IGA-LS are considerably more moderate. Notably, IGA-LS consistently achieves the lowest average objective value across all problem scales, and its relative advantage becomes increasingly pronounced as the problem size grows. Together with the smaller performance variance reported in <xref ref-type="table" rid="T5"><bold>Table&#xa0;5</bold></xref>, these findings demonstrate that the proposed IGA-LS algorithm exhibits superior robustness and scalability when solving large-scale, highly constrained joint optimization problems involving vessel scheduling and tugboat allocation.</p>
<fig id="f8" position="float">
<label>Figure&#xa0;8</label>
<caption>
<p>Comparison of average objective values for different vessel movement counts.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-13-1780076-g008.tif">
<alt-text content-type="machine-generated">Line graph comparing three algorithms, IGA-LS, GA, and FCFS, for average F in minutes versus number of vessel movements. IGA-LS performs best, followed by GA, while FCFS shows the highest average F, especially as movements increase.</alt-text>
</graphic></fig>
</sec>
</sec>
<sec id="s5" sec-type="conclusions">
<label>5</label>
<title>Conclusions</title>
<p>This study investigates the joint optimization of vessel scheduling and tugboat allocation in ports with one-way navigation channels and develops a mathematical model with the objective of minimizing total vessel movement waiting time. Compared with existing studies, the proposed model provides a more comprehensive representation of real-world port operations by explicitly incorporating key vessel traffic characteristics, including mandatory tidal constraints for large vessels, heterogeneity in vessel sailing speeds, and repositioning time differences arising from consecutive tugboat operations. To address the computational complexity of the joint scheduling problem, an improved genetic algorithm with a local search mechanism (IGA-LS) is developed. Computational results demonstrate that, compared with the standard genetic algorithm and the first-come-first-served rule, IGA-LS achieves clear performance advantages, reducing the objective value by an average of 5.25% and 28.31%, respectively. The resulting joint scheduling solutions effectively reduce vessel waiting times while ensuring navigational safety and operational feasibility, thereby providing valuable decision support for port authorities in formulating vessel scheduling and tugboat resource allocation strategies.</p>
<p>From a practical perspective, the proposed model offers an implementable planning framework for port operators in one-way channel environments with limited tugboat resources whose horsepower satisfies vessel requirements. Coordinated vessel movement and tugboat allocation plans can be generated based on expected inbound and outbound schedules and current tugboat availability, improving channel utilization while ensuring navigational safety. Moreover, operational priorities can be incorporated through time-window constraints on selected vessel movements, enabling flexible and differentiated port service strategies. In this way, the proposed model can be readily applied as a daily planning tool, helping operators balance efficiency, safety, and service differentiation in practical port operations.</p>
<p>Despite these contributions, several extensions of the present study merit further investigation. First, pilot-related resources are not considered in the current model. In the studied port, only a subset of vessels requires pilot assistance, whereas in practice, vessel movements may be delayed if the assigned pilot or the corresponding pilot boat cannot arrive at the assistance start point in time. By neglecting pilot assignment and pilot boat availability, the current model may underestimate potential coordination delays arising from mismatches between vessel schedules and pilot service readiness in real-world operations. Future research could therefore incorporate pilot assignment and pilot boat routing into a unified optimization framework, enabling coordinated scheduling of vessels and multiple critical service resources. Second, the proposed model is developed under deterministic assumptions and does not account for uncertainties commonly observed in port operations. While existing studies have begun to examine stochasticity in tugboat service processes, future work could further integrate uncertainty in tugboat operation times into the joint scheduling framework, thereby enhancing the applicability of the model in dynamic and uncertain port environments.</p>
</sec>
</body>
<back>
<sec id="s6" sec-type="data-availability">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/supplementary material. Further inquiries can be directed to the corresponding author.</p></sec>
<sec id="s7" sec-type="author-contributions">
<title>Author contributions</title>
<p>FX: Conceptualization, Data curation, Methodology, Software, Validation, Writing &#x2013; original draft, Writing &#x2013; review &amp; editing. HR: Conceptualization, Formal analysis, Funding acquisition, Methodology, Resources, Writing &#x2013; review &amp; editing. YL: Conceptualization, Data curation, Resources, Validation, Writing&#xa0;&#x2013; original draft. JS: Methodology, Software, Validation, Visualization, Writing &#x2013; original draft. CW: Conceptualization, Formal analysis, Funding acquisition, Resources, Supervision, Writing &#x2013; review &amp; editing. YW: Funding acquisition, Investigation, Project administration, Visualization, Writing &#x2013; review &amp; editing. XW: Formal analysis, Investigation, Supervision, Writing &#x2013; review &amp; editing.</p></sec>
<sec id="s9" sec-type="COI-statement">
<title>Conflict of interest</title>
<p>Author CW was employed by Guangxi Communications Design Group Co., Ltd. Author YW was employed by Guangxi Pinglu Canal Digital Intelligence Technology Co., Ltd.</p>
<p>The remaining author(s) declared that this work was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p></sec>
<sec id="s10" sec-type="ai-statement">
<title>Generative AI statement</title>
<p>The author(s) declared that generative AI was not used in the creation of this manuscript.</p>
<p>Any alternative text (alt text) provided alongside figures in this article has been generated by Frontiers with the support of artificial intelligence and reasonable efforts have been made to ensure accuracy, including review by the authors wherever possible. If you identify any issues, please contact us.</p></sec>
<sec id="s11" sec-type="disclaimer">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p></sec>
<ref-list>
<title>References</title>
<ref id="B1">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Abou Kasm</surname> <given-names>O.</given-names></name>
<name><surname>Diabat</surname> <given-names>A.</given-names></name>
<name><surname>Bierlaire</surname> <given-names>M.</given-names></name>
</person-group> (<year>2021</year>). 
<article-title>Vessel scheduling with pilotage and tugging considerations</article-title>. <source>Transportation Res. Part E: Logistics Transportation Rev.</source> <volume>148</volume>, <elocation-id>102231</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.tre.2021.102231</pub-id>
</mixed-citation>
</ref>
<ref id="B2">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Chu</surname> <given-names>L.</given-names></name>
<name><surname>Zhang</surname> <given-names>J.</given-names></name>
<name><surname>Chen</surname> <given-names>X.</given-names></name>
<name><surname>Yu</surname> <given-names>Q.</given-names></name>
</person-group> (<year>2024</year>). 
<article-title>Optimization of integrated tugboat-berth-quay crane scheduling in container ports considering uncertainty in vessel arrival times and berthing preferences</article-title>. <source>J. Mar. Sci. Eng.</source> <volume>12</volume>, <elocation-id>1541</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/jmse12091541</pub-id>
</mixed-citation>
</ref>
<ref id="B3">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>El Mekkaoui</surname> <given-names>S.</given-names></name>
<name><surname>Benabbou</surname> <given-names>L.</given-names></name>
<name><surname>Caron</surname> <given-names>S.</given-names></name>
<name><surname>Berrado</surname> <given-names>A.</given-names></name>
</person-group> (<year>2023</year>). 
<article-title>Deep learning-based ship speed prediction for intelligent maritime traffic management</article-title>. <source>J. Mar. Sci. Eng.</source> <volume>11</volume>, <elocation-id>191</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/jmse11010191</pub-id>
</mixed-citation>
</ref>
<ref id="B4">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Fang</surname> <given-names>C.</given-names></name>
<name><surname>Chai</surname> <given-names>T.</given-names></name>
<name><surname>Huang</surname> <given-names>W.</given-names></name>
<name><surname>Zhu</surname> <given-names>H.</given-names></name>
</person-group> (<year>2025</year>). 
<article-title>Dual-objective optimization of port tugboat scheduling with heterogeneous service capabilities</article-title>. <source>JMSE</source> <volume>13</volume>, <elocation-id>2003</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/jmse13102003</pub-id>
</mixed-citation>
</ref>
<ref id="B5">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Guo</surname> <given-names>W.</given-names></name>
<name><surname>Zhang</surname> <given-names>X.</given-names></name>
<name><surname>Li</surname> <given-names>Y.</given-names></name>
<name><surname>Zhang</surname> <given-names>L.</given-names></name>
</person-group> (<year>2025</year>). 
<article-title>Collaborative optimization of vessel&#xa0;scheduling and tugboat allocation in seaports using a multi-action deep reinforcement learning framework</article-title>. <source>Eng. Appl. Artif. Intell.</source> <volume>156</volume>, <elocation-id>111239</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.engappai.2025.111239</pub-id>
</mixed-citation>
</ref>
<ref id="B6">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Hao</surname> <given-names>L.</given-names></name>
<name><surname>Jin</surname> <given-names>J. G.</given-names></name>
<name><surname>Zhao</surname> <given-names>K.</given-names></name>
</person-group> (<year>2023</year>). 
<article-title>Joint scheduling of barges and tugboats for river&#x2013;sea intermodal transport</article-title>. <source>Transportation Res. Part E: Logistics Transportation Rev.</source> <volume>173</volume>, <elocation-id>103097</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.tre.2023.103097</pub-id>
</mixed-citation>
</ref>
<ref id="B7">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Jia</surname> <given-names>S.</given-names></name>
<name><surname>Li</surname> <given-names>C.-L.</given-names></name>
<name><surname>Xu</surname> <given-names>Z.</given-names></name>
</person-group> (<year>2019</year>). 
<article-title>Managing navigation channel traffic and anchorage area utilization of a container port</article-title>. <source>Transportation Sci.</source> <volume>53</volume>, <fpage>728</fpage>&#x2013;<lpage>745</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1287/trsc.2018.0879</pub-id>
</mixed-citation>
</ref>
<ref id="B8">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Lalla-Ruiz</surname> <given-names>E.</given-names></name>
<name><surname>Shi</surname> <given-names>X.</given-names></name>
<name><surname>Vo&#xdf;</surname> <given-names>S.</given-names></name>
</person-group> (<year>2018</year>). 
<article-title>The waterway ship scheduling problem</article-title>. <source>Transportation Res. Part D: Transport Environ.</source> <volume>60</volume>, <fpage>191</fpage>&#x2013;<lpage>209</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.trd.2016.09.013</pub-id>
</mixed-citation>
</ref>
<ref id="B9">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Li</surname> <given-names>J.</given-names></name>
<name><surname>Zhang</surname> <given-names>X.</given-names></name>
<name><surname>Yang</surname> <given-names>B.</given-names></name>
<name><surname>Wang</surname> <given-names>N.</given-names></name>
</person-group> (<year>2021</year>). 
<article-title>Vessel traffic scheduling optimization for restricted channel in ports</article-title>. <source>Comput. Ind. Eng.</source> <volume>152</volume>, <elocation-id>107014</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.cie.2020.107014</pub-id>
</mixed-citation>
</ref>
<ref id="B10">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Li</surname> <given-names>R.</given-names></name>
<name><surname>Zhang</surname> <given-names>X.</given-names></name>
<name><surname>Jiang</surname> <given-names>L.</given-names></name>
<name><surname>Yang</surname> <given-names>Z.</given-names></name>
<name><surname>Guo</surname> <given-names>W.</given-names></name>
</person-group> (<year>2022</year>). 
<article-title>An adaptive heuristic algorithm based on reinforcement learning for ship scheduling optimization problem</article-title>. <source>Ocean Coast. Manage.</source> <volume>230</volume>, <elocation-id>106375</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.ocecoaman.2022.106375</pub-id>
</mixed-citation>
</ref>
<ref id="B11">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Liu</surname> <given-names>B.</given-names></name>
<name><surname>Li</surname> <given-names>Z.-C.</given-names></name>
<name><surname>Sheng</surname> <given-names>D.</given-names></name>
<name><surname>Wang</surname> <given-names>Y.</given-names></name>
</person-group> (<year>2021</year>). 
<article-title>Integrated planning of berth allocation and vessel sequencing in a seaport with one-way navigation channel</article-title>. <source>Transportation Res. Part B: Methodological</source> <volume>143</volume>, <fpage>23</fpage>&#x2013;<lpage>47</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.trb.2020.10.010</pub-id>
</mixed-citation>
</ref>
<ref id="B12">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Liu</surname> <given-names>B.</given-names></name>
<name><surname>Wang</surname> <given-names>X.</given-names></name>
<name><surname>Wang</surname> <given-names>Z.</given-names></name>
<name><surname>Zheng</surname> <given-names>J.</given-names></name>
<name><surname>Sheng</surname> <given-names>D.</given-names></name>
</person-group> (<year>2025</year>). 
<article-title>Modeling and solving the joint berth allocation and vessel sequencing problem with speed optimization in a busy seaport</article-title>. <source>Transportation Res. Part E: Logistics Transportation Rev.</source> <volume>197</volume>, <elocation-id>104089</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.tre.2025.104089</pub-id>
</mixed-citation>
</ref>
<ref id="B13">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Nikghadam</surname> <given-names>S.</given-names></name>
<name><surname>Vanga</surname> <given-names>R.</given-names></name>
<name><surname>Rezaei</surname> <given-names>J.</given-names></name>
<name><surname>Tavasszy</surname> <given-names>L.</given-names></name>
</person-group> (<year>2025</year>). 
<article-title>Joint scheduling of vessels and vessel service providers for enhancing the efficiency of the port call process</article-title>. <source>Marit Econ Logist</source> <volume>27</volume>, <fpage>211</fpage>&#x2013;<lpage>236</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1057/s41278-024-00290-4</pub-id>
</mixed-citation>
</ref>
<ref id="B14">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Petris</surname> <given-names>M.</given-names></name>
<name><surname>Pellegrini</surname> <given-names>P.</given-names></name>
<name><surname>Pesenti</surname> <given-names>R.</given-names></name>
</person-group> (<year>2022</year>). 
<article-title>Models and algorithms for an integrated vessel scheduling and tug assignment problem within a canal harbor</article-title>. <source>Eur. J. Operational Res.</source> <volume>300</volume>, <fpage>1120</fpage>&#x2013;<lpage>1135</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.ejor.2021.10.037</pub-id>
</mixed-citation>
</ref>
<ref id="B15">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Sun</surname> <given-names>C.</given-names></name>
<name><surname>Li</surname> <given-names>M.</given-names></name>
<name><surname>Chen</surname> <given-names>L.</given-names></name>
<name><surname>Chen</surname> <given-names>P.</given-names></name>
</person-group> (<year>2024</year>). 
<article-title>Dynamic tugboat scheduling for large seaports with multiple terminals</article-title>. <source>JMSE</source> <volume>12</volume>, <elocation-id>170</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/jmse12010170</pub-id>
</mixed-citation>
</ref>
<ref id="B16">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Tang</surname> <given-names>G.</given-names></name>
<name><surname>Wang</surname> <given-names>W.</given-names></name>
<name><surname>Song</surname> <given-names>X.</given-names></name>
<name><surname>Guo</surname> <given-names>Z.</given-names></name>
<name><surname>Yu</surname> <given-names>X.</given-names></name>
<name><surname>Qiao</surname> <given-names>F.</given-names></name>
</person-group> (<year>2016</year>). 
<article-title>Effect of entrance channel dimensions on berth occupancy of container terminals</article-title>. <source>Ocean Eng.</source> <volume>117</volume>, <fpage>174</fpage>&#x2013;<lpage>187</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.oceaneng.2016.03.047</pub-id>
</mixed-citation>
</ref>
<ref id="B17">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Wang</surname> <given-names>X.</given-names></name>
<name><surname>Liang</surname> <given-names>Y.</given-names></name>
<name><surname>Wei</surname> <given-names>X.</given-names></name>
<name><surname>Chew</surname> <given-names>E. P.</given-names></name>
</person-group> (<year>2023</year>). 
<article-title>An adaptive large neighborhood search algorithm for the tugboat scheduling problem</article-title>. <source>Comput. Ind. Eng.</source> <volume>177</volume>, <elocation-id>109039</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.cie.2023.109039</pub-id>
</mixed-citation>
</ref>
<ref id="B18">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Wei</surname> <given-names>X.</given-names></name>
<name><surname>Jia</surname> <given-names>S.</given-names></name>
<name><surname>Meng</surname> <given-names>Q.</given-names></name>
<name><surname>Koh</surname> <given-names>J.</given-names></name>
</person-group> (<year>2024</year>). 
<article-title>Dynamic tugboat deployment and scheduling with stochastic and time-varying service demands</article-title>. <source>Transportation Res. Part B-Methodological</source> <volume>188</volume>, <elocation-id>103059</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.trb.2024.103059</pub-id>
</mixed-citation>
</ref>
<ref id="B19">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Wei</surname> <given-names>X.</given-names></name>
<name><surname>Lau</surname> <given-names>H. C.</given-names></name>
<name><surname>Xiao</surname> <given-names>Z.</given-names></name>
<name><surname>Fu</surname> <given-names>X.</given-names></name>
<name><surname>Zhang</surname> <given-names>X.</given-names></name>
<name><surname>Qin</surname> <given-names>Z.</given-names></name>
</person-group> (<year>2025</year>). 
<article-title>Bi-objective dynamic tugboat scheduling with speed optimization under stochastic and time-varying service demands</article-title>. <source>Transportation Res. Part E: Logistics Transportation Rev.</source> <volume>193</volume>, <elocation-id>103876</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.tre.2024.103876</pub-id>
</mixed-citation>
</ref>
<ref id="B20">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Wen</surname> <given-names>X.</given-names></name>
<name><surname>Chen</surname> <given-names>Q.</given-names></name>
<name><surname>Yin</surname> <given-names>Y.-Q.</given-names></name>
<name><surname>Lau</surname> <given-names>Y.</given-names></name>
<name><surname>Dulebenets</surname> <given-names>M. A.</given-names></name>
</person-group> (<year>2024</year>). 
<article-title>Multi-objective optimization for ship scheduling with port congestion and environmental considerations</article-title>. <source>JMSE</source> <volume>12</volume>, <elocation-id>114</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/jmse12010114</pub-id>
</mixed-citation>
</ref>
<ref id="B21">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Xu</surname> <given-names>F.</given-names></name>
<name><surname>Ren</surname> <given-names>H.</given-names></name>
<name><surname>Duan</surname> <given-names>Y.</given-names></name>
<name><surname>Li</surname> <given-names>Y.</given-names></name>
<name><surname>Zhu</surname> <given-names>T.</given-names></name>
</person-group> (<year>2025</year>). 
<article-title>Joint optimization of ship traffic organization and berth allocation in a seaport with one-way channel</article-title>. <source>Ocean Eng.</source> <volume>326</volume>, <elocation-id>120843</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.oceaneng.2025.120843</pub-id>
</mixed-citation>
</ref>
<ref id="B22">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Yin</surname> <given-names>B.</given-names></name>
<name><surname>Liang</surname> <given-names>C.</given-names></name>
<name><surname>Wang</surname> <given-names>Y.</given-names></name>
<name><surname>Xu</surname> <given-names>X.</given-names></name>
<name><surname>Zhang</surname> <given-names>Y.</given-names></name>
</person-group> (<year>2025</year>). 
<article-title>Optimization of vessel traffic scheduling in a compound channel of an estuarine port with opposing distribution of inner anchorages and terminals</article-title>. <source>JMSE</source> <volume>13</volume>, <elocation-id>700</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/jmse13040700</pub-id>
</mixed-citation>
</ref>
<ref id="B23">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Zhang</surname> <given-names>X.</given-names></name>
<name><surname>Guo</surname> <given-names>W.</given-names></name>
<name><surname>Yang</surname> <given-names>Z.</given-names></name>
<name><surname>Wang</surname> <given-names>J.</given-names></name>
<name><surname>Wang</surname> <given-names>C.</given-names></name>
</person-group> (<year>2025</year>). 
<article-title>Optimization of integrated accurate ride-tide planning and vessel scheduling in multi-functional ports with long channels</article-title>. <source>Expert Syst. Appl.</source> <volume>273</volume>, <elocation-id>126894</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.eswa.2025.126894</pub-id>
</mixed-citation>
</ref>
<ref id="B24">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Zhang</surname> <given-names>Y.</given-names></name>
<name><surname>Liu</surname> <given-names>S.</given-names></name>
<name><surname>Zheng</surname> <given-names>Q.</given-names></name>
<name><surname>Tian</surname> <given-names>H.</given-names></name>
<name><surname>Guo</surname> <given-names>W.</given-names></name>
</person-group> (<year>2024</year>). 
<article-title>Ship scheduling problem in an anchorage-to-quay channel with water discharge restrictions</article-title>. <source>Ocean Eng.</source> <volume>309</volume>, <elocation-id>118432</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.oceaneng.2024.118432</pub-id>
</mixed-citation>
</ref>
<ref id="B25">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Zhen</surname> <given-names>R.</given-names></name>
<name><surname>Sun</surname> <given-names>M.</given-names></name>
<name><surname>Fang</surname> <given-names>Q.</given-names></name>
</person-group> (<year>2025</year>). 
<article-title>Optimization of inbound and outbound vessel&#xa0;scheduling in one-way channel based on reinforcement learning</article-title>. <source>JMSE</source> <volume>13</volume>, <elocation-id>237</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/jmse13020237</pub-id>
</mixed-citation>
</ref>
<ref id="B26">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Zheng</surname> <given-names>J.</given-names></name>
<name><surname>Mao</surname> <given-names>C.</given-names></name>
<name><surname>Zhang</surname> <given-names>Q.</given-names></name>
</person-group> (<year>2023</year>). 
<article-title>Hybrid dynamic modeling and receding horizon speed optimization for liner shipping operations from schedule reliability and energy efficiency perspectives</article-title>. <source>Front. Mar. Sci.</source> <volume>10</volume>. doi:&#xa0;<pub-id pub-id-type="doi">10.3389/fmars.2023.1095283</pub-id>
</mixed-citation>
</ref>
</ref-list>
<fn-group>
<fn id="n1" fn-type="custom" custom-type="edited-by">
<p>Edited by: <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2664151">Maohan Liang</ext-link>, National University of Singapore, Singapore</p></fn>
<fn id="n2" fn-type="custom" custom-type="reviewed-by">
<p>Reviewed by: <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2608860">Jiawen Li</ext-link>, Guangdong Ocean University, China</p>
<p><ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/3073553">Mahmut Mollaoglu</ext-link>, Zonguldak Bulent Ecevit University, T&#xfc;rkiye</p>
<p><ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/3346998">Lei Cai</ext-link>, College of General Aviation and Flight, China</p></fn>
</fn-group>
</back>
</article>