<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="style/jpub3-html-trans.xsl"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CMES</journal-id>
<journal-id journal-id-type="nlm-ta">CMES</journal-id>
<journal-id journal-id-type="publisher-id">CMES</journal-id>
<journal-title-group>
<journal-title>Computer Modeling in Engineering &#x0026; Sciences</journal-title>
</journal-title-group>
<issn pub-type="epub">1526-1506</issn>
<issn pub-type="ppub">1526-1492</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">20744</article-id>
<article-id pub-id-type="doi">10.32604/cmes.2022.020744</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Optimization of Multi-Execution Modes and Multi-Resource-Constrained Offshore Equipment Project Scheduling Based on a Hybrid Genetic Algorithm</article-title>
<alt-title alt-title-type="left-running-head">Optimization of Multi-execution Modes and Multi-resource-constrained Offshore Equipment Project Scheduling Based on a Hybrid Genetic Algorithm</alt-title>
<alt-title alt-title-type="right-running-head">Optimization of Multi-execution Modes and Multi-resource-constrained Offshore Equipment Project Scheduling Based on a Hybrid Genetic Algorithm</alt-title></title-group>
<contrib-group content-type="authors">
<contrib id="author-1" contrib-type="author">
<name name-style="western"><surname>Zhou</surname><given-names>Qi</given-names>
</name><xref ref-type="aff" rid="aff-1">1</xref>
<xref ref-type="aff" rid="aff-2">2</xref></contrib>
<contrib id="author-2" contrib-type="author">
<name name-style="western"><surname>Li</surname><given-names>Jinghua</given-names>
</name><xref ref-type="aff" rid="aff-1">1</xref>
<xref ref-type="aff" rid="aff-3">3</xref></contrib>
<contrib id="author-3" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Dong</surname><given-names>Ruipu</given-names>
</name><xref ref-type="aff" rid="aff-1">1</xref><email>dongruipu@hrbeu.edu.cn</email>
</contrib>
<contrib id="author-4" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Zhou</surname><given-names>Qinghua</given-names>
</name><xref ref-type="aff" rid="aff-3">3</xref><email>zhouqinghua@hrbeu.edu.cn</email>
</contrib>
<contrib id="author-5" contrib-type="author">
<name name-style="western"><surname>Yang</surname><given-names>Boxin</given-names>
</name><xref ref-type="aff" rid="aff-3">3</xref></contrib>
<aff id="aff-1"><label>1</label><institution>College of Shipbuilding Engineering, Harbin Engineering University</institution>, <addr-line>Harbin, 150001</addr-line>, <country>China</country></aff>
<aff id="aff-2"><label>2</label><institution>Shanghai Waigaoqiao Shipbuilding Co., Ltd.</institution>, <addr-line>Shanghai, 200000</addr-line>, <country>China</country></aff>
<aff id="aff-3"><label>3</label><institution>College of Mechanical and Electrical Engineering, Harbin Engineering University</institution>, <addr-line>Harbin, 150001</addr-line>, <country>China</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Authors: Ruipu Dong. Email: <email>dongruipu@hrbeu.edu.cn</email>; Qinghua Zhou. Email: <email>zhouqinghua@hrbeu.edu.cn</email></corresp>
</author-notes>
<pub-date pub-type="epub" date-type="pub" iso-8601-date="2022-08-26">
<day>26</day>
<month>08</month>
<year>2022</year>
</pub-date>
<volume>134</volume>
<issue>2</issue>
<fpage>1263</fpage>
<lpage>1281</lpage>
<history>
<date date-type="received">
<day>11</day>
<month>12</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>28</day>
<month>3</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2022 Zhou et al.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Zhou et al.</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CMES_20744.pdf"></self-uri>
<abstract>
<p>Offshore engineering construction projects are large and complex, having the characteristics of multiple execution modes and multiple resource constraints. Their complex internal scheduling processes can be regarded as resource-constrained project scheduling problems (RCPSPs). To solve RCPSP problems in offshore engineering construction more rapidly, a hybrid genetic algorithm was established. To solve the defects of genetic algorithms, which easily fall into the local optimal solution, a local search operation was added to a genetic algorithm to defend the offspring after crossover/mutation. Then, an elitist strategy and adaptive operators were adopted to protect the generated optimal solutions, reduce the computation time and avoid premature convergence. A calibrated function method was used to cater to the roulette rules, and appropriate rules for encoding, decoding and crossover/mutation were designed. Finally, a simple network was designed and validated using the case study of a real offshore project. The performance of the genetic algorithm and a simulated annealing algorithm was compared to validate the feasibility and effectiveness of the approach.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Offshore project</kwd>
<kwd>multi-execution modes</kwd>
<kwd>resource-constrained project scheduling</kwd>
<kwd>hybrid genetic algorithm</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>Large-scale engineering projects are vulnerable to a variety of resource constraints [<xref ref-type="bibr" rid="ref-1">1</xref>] and involve numerous production activities. Offshore platform projects can be affected by many factors, such as extreme weather and sea conditions [<xref ref-type="bibr" rid="ref-2">2</xref>]. Usually, such complex operating environments often have negative effects on the construction of offshore platforms. Therefore, large-scale engineering projects are vulnerable to a variety of resource constraints [<xref ref-type="bibr" rid="ref-3">3</xref>,<xref ref-type="bibr" rid="ref-4">4</xref>], whereas they involve numerous job entries and management complexity [<xref ref-type="bibr" rid="ref-5">5</xref>]. Accordingly, recent research has focused on how best to schedule such projects under the constraints of sequence relationships, critical resources and time.</p>
<p>To increase production efficiency and shorten the construction period of offshore platform projects, research on the resource-constrained project scheduling problem (RCPSP) has developed rapidly, which mainly focuses on the aspects of objective functions, task activities and resource constraints.</p>
<p>The RCPSP is a fairly complex issue; multi-mode and multi-resource constrained project scheduling problems are far more complex than NP-hard problems. To save costs and reduce unnecessary spending during offshore platform projects, algorithms are often used. Hybrid genetic algorithms, classical genetic algorithms, and simulated annealing algorithms can be used to solve complex problems, yet their effectiveness needs to be verified and analysed numerically. Hence, an effective algorithm must be selected or designed to solve multi-resource constrained project scheduling problems.</p>
<p>In light of the above observations, this study established a hybrid genetic algorithm to tackle offshore equipment project scheduling problems under multi-execution modes and multi-resource constraints. The rest of this paper is organized as follows. In <xref ref-type="sec" rid="s2">Section 2</xref>, related literature is reviewed. <xref ref-type="sec" rid="s3">Section 3</xref> builds a project scheduling model of multi-execution modes and multi-resource constrained offshore equipment. <xref ref-type="sec" rid="s4">Section 4</xref> describes the multi-execution modes and multi-resource constrained offshore equipment project scheduling problem and designs the algorithmic solving process. In <xref ref-type="sec" rid="s5">Section 5</xref>, we use production data as an example to verify the effectiveness of the algorithm and compare it with a variety of other algorithms&#x2019; iterative results. Finally, <xref ref-type="sec" rid="s6">Section 6</xref> concludes by highlighting some advantages and limitations of our hybrid genetic algorithm and directions for future work.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>Literature Review</title>
<p>This section summarizes recent relevant literature, which has two main research streams: resource-constrained project scheduling problems and hybrid genetic algorithms.</p>
<sec id="s2_1">
<label>2.1</label>
<title>Resource-Constrained Project Scheduling Problems</title>
<p>Large-scale engineering projects, such as offshore platform and shipbuilding projects, are often affected by factors such as extreme weather and supplier tardiness. The complex operating environment often reduces the efficiency of offshore platform construction.</p>
<p>In offshore production, the resources used during manufacturing include field resources, material resources, human resources, equipment resources, technical resources and service resources. Achieving a reasonable schedule under the constraints of sequence relationships and critical resources has become a focus of current research. Multi-resource limit problems and priority rules were described by Browning et al. [<xref ref-type="bibr" rid="ref-6">6</xref>]. In recent years, most research on RCPSP has focused on adding specific constraints to make the problem more realistic. Ma et al. [<xref ref-type="bibr" rid="ref-7">7</xref>] studied a proactive project scheduling problem with flexible resource constraints. On the basis of the RCPSP problem, Cai et al. [<xref ref-type="bibr" rid="ref-8">8</xref>] considered delivery times and proposed a corresponding heuristic algorithm. Asadujjaman et al. [<xref ref-type="bibr" rid="ref-9">9</xref>] proposed a concurrent project-scheduling and material-ordering problem and proposed a hybrid immune GA solution. Ghamginzadeh et al. [<xref ref-type="bibr" rid="ref-10">10</xref>] studied a multi-objective, multi-skill, project-scheduling model.</p>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>Algorithm for RCPSP</title>
<p>To solve resource-constrained problems, the general exact algorithm [<xref ref-type="bibr" rid="ref-11">11</xref>,<xref ref-type="bibr" rid="ref-12">12</xref>], heuristic rules [<xref ref-type="bibr" rid="ref-13">13</xref>] and intelligent optimization algorithm can be used. The exact algorithm can only solve minor problems and remains at the theoretical stage. Heuristic rules, in addition to simple problems (such as single resources), guarantee an optimal solution but are unable to prove its optimality. Due to the large number of production operations during the execution of offshore projects, the complex logical relationship between activities, and the complex resources constraints [<xref ref-type="bibr" rid="ref-14">14</xref>], it is difficult to solve such problems with general exact algorithm and heuristic rules. Therefore, there are many studies using intelligent optimization algorithms to solve this problem.</p>
<p>Intelligent algorithms [<xref ref-type="bibr" rid="ref-15">15</xref>,<xref ref-type="bibr" rid="ref-16">16</xref>] have been validated as feasible solutions, and involve searching several iterations that gradually converge to the global optimal solution. The biological and evolutionary foraging swarm intelligence algorithm has been developed, which is very suitable for solving large-scale problems, especially in multi-mode and multi-resource-constrained project scheduling problems. Therefore, it has gradually become a research hotspot.</p>
<p>Liu et al. [<xref ref-type="bibr" rid="ref-13">13</xref>] tried to solve an RCPSP using a heuristic algorithm with the objective of minimizing activities. Hartmann [<xref ref-type="bibr" rid="ref-17">17</xref>,<xref ref-type="bibr" rid="ref-18">18</xref>], Alcaraz et al. [<xref ref-type="bibr" rid="ref-19">19</xref>], Gon&#x00E7;alves et al. [<xref ref-type="bibr" rid="ref-20">20</xref>], Proon et al. [<xref ref-type="bibr" rid="ref-21">21</xref>], Hindi et al. [<xref ref-type="bibr" rid="ref-22">22</xref>] and Valls et al. [<xref ref-type="bibr" rid="ref-23">23</xref>] used genetic algorithms for their approaches. Cai et al. [<xref ref-type="bibr" rid="ref-8">8</xref>] and Afshar-Nadjafi et al. [<xref ref-type="bibr" rid="ref-24">24</xref>] made improvements for certain genetic algorithms and designed a fitness function and coding rules to solve multi-mode resource-constrained project scheduling problems. Kim et al. [<xref ref-type="bibr" rid="ref-25">25</xref>] and Zhang et al. [<xref ref-type="bibr" rid="ref-26">26</xref>] proposed an adaptive hybrid genetic algorithm and particle swarm optimization for solving resource-constrained scheduling problems, obtaining very good results. Gonzalez-Pardo et al. [<xref ref-type="bibr" rid="ref-27">27</xref>] elaborated on ant colony optimization (ACO) algorithms with a novel CSP-graph-based model to solve RCPSPs. Zhao et al. [<xref ref-type="bibr" rid="ref-28">28</xref>] proposed a genetic simulated annealing algorithm based on population stability to determine the shortest construction period under the resource constraint of a single project with renewable resources. Coric et al. [<xref ref-type="bibr" rid="ref-29">29</xref>] compared the time complexity of IP formulations and genetic algorithms in solving RCPSPs and presented two different solution representations for genetic algorithms: a permutation vector and vector of floating numbers. Snauwaert et al. [<xref ref-type="bibr" rid="ref-30">30</xref>] addressed a multi-skilled extension of RCPSP (MSRCPSP) and developed a genetic algorithm to solve it. In addition to the above algorithms, the particle swarm optimization heuristic has drawn increasing attention [<xref ref-type="bibr" rid="ref-31">31</xref>,<xref ref-type="bibr" rid="ref-32">32</xref>].</p>
</sec>
<sec id="s2_3">
<label>2.3</label>
<title>Aims</title>
<p>Currently, there is a research foundation for multi-mode and multi-resource constrained scheduling problems. However, since marine project scheduling problems are usually large-scale, there is usually some room for optimization. This requires a higher search ability of the algorithm. To minimize the duration of a project, this article integrates a local search into a genetic algorithm and adds an elitist strategy and adaptive crossover/mutation operations to greatly reduce the computation time and ensure the quality of the search solutions. Moreover, comparisons with the classical genetic algorithm and simulated annealing algorithm are made, and the feasibility of the proposed algorithm is validated.</p>
<p>However, since marine project scheduling problems are usually large-scale, there are many feasible solutions during project construction.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>Project Scheduling Model of Multi-Execution Modes and Multi-Resource Constrained Offshore Equipment</title>
<sec id="s3_1">
<label>3.1</label>
<title>Pretreatment of Offshore Project Network Plans</title>
<p>In complex projects, the project execution plan is usually graded and the enterprise needs to formulate and decompose it according to contract constraints and production capacity. After making practical investigations into an offshore enterprise, we found that offshore companies usually use Oracle Primavera P6 or Microsoft Project software for project planning and task decomposition. Such software is oriented towards large-scale engineering projects, linking the plans involved in the project execution process with enterprise resources, making it easier for enterprises to manage and control their projects.</p>
<p>In the process of offshore engineering construction, planning and dispatching, four-stage plans are used to guide operations. Some four-level plans are able to be decomposed into a single plan, while other four-level plans cannot be decomposed. Therefore, decomposed fourth-level plans can be regarded as a complete network plan and include all operation items, the logical relationship, etc. A model of such problems requires four preprocessing schemes to form a viable network scheme, as shown in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>.</p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>Decomposition of four-level network planning</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_20744-fig-1.png"/>
</fig>
<p>In <xref ref-type="fig" rid="fig-1">Fig. 1</xref>, <italic>S</italic><sub><italic>4</italic></sub> and <italic>E</italic><sub><italic>4</italic></sub> represent the beginning and end of the fourth-level network activities. These can be taken as two virtual activities with corresponding periods, direct costs, and resource consumptions of zero. Now, we assume that other activities added to activities outside <italic>J</italic><sub><italic>4</italic></sub> cannot continue to be broken down into fifth-level activities. Points <italic>S</italic><sub><italic>5</italic></sub> and <italic>E</italic><sub><italic>5</italic></sub> indicate the beginning and the end of the 5-stage plan, as well as two virtual activities. The earliest start times of <italic>J</italic><sub><italic>41</italic></sub> and <italic>J</italic><sub><italic>43</italic></sub> can be considered as the start times <italic>S</italic><sub><italic>5</italic></sub>, <italic>J</italic><sub><italic>42</italic></sub>, <italic>J</italic><sub><italic>43</italic></sub>&#x2019;s latest end time as the end time <italic>E</italic><sub><italic>5</italic></sub>, and pretreatment is shown in <xref ref-type="fig" rid="fig-2">Fig. 2</xref>.</p>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>Pretreatment of four-level network planning</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_20744-fig-2.png"/>
</fig>
</sec>
<sec id="s3_2">
<label>3.2</label><title>Problem Description of Multi-Execution Modes and Multi-Resource-Constrained Offshore Equipment Project Scheduling</title>
<p>A complete offshore project can correspond to a complete network diagram, including the complete logical relationship. Engineers use professional software to decompose a complete project into a network plan of four levels to guide the actual operations. In this paper, a single-node network diagram is defined as <inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:mi>G</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>V</mml:mi><mml:mo>,</mml:mo><mml:mi>E</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. In graph <inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:mi>G</mml:mi></mml:math></inline-formula>, <italic>E</italic> there is a set of directed arcs that can connect each node in set <italic>V</italic>. We define <italic>J</italic> as an activity, then <italic>j</italic> can be considered as a subset of <inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:mi>J</mml:mi></mml:math></inline-formula>, where <inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>J</mml:mi><mml:mo>.</mml:mo></mml:math></inline-formula> The network also contains node 0 and node <inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:mi>J</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>, which represent the beginning and end of the virtual activities, respectively. Activity <inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:mi>J</mml:mi></mml:math></inline-formula> cannot start until the predecessor activities of <inline-formula id="ieqn-7"><mml:math id="mml-ieqn-7"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> have been completed.</p>
<p>Each activity <inline-formula id="ieqn-8"><mml:math id="mml-ieqn-8"><mml:mi>j</mml:mi></mml:math></inline-formula> may be performed under several different modes <inline-formula id="ieqn-9"><mml:math id="mml-ieqn-9"><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>. In the execution mode<inline-formula id="ieqn-10"><mml:math id="mml-ieqn-10"><mml:mi>m</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, the demand for renewable resources in activity <inline-formula id="ieqn-11"><mml:math id="mml-ieqn-11"><mml:mi>j</mml:mi></mml:math></inline-formula> per unit time can be represented by <inline-formula id="ieqn-12"><mml:math id="mml-ieqn-12"><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>m</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, and the duration of activity <inline-formula id="ieqn-13"><mml:math id="mml-ieqn-13"><mml:mi>j</mml:mi></mml:math></inline-formula>, which is under execution mode <inline-formula id="ieqn-14"><mml:math id="mml-ieqn-14"><mml:mi>m</mml:mi></mml:math></inline-formula>, is expressed by <inline-formula id="ieqn-15"><mml:math id="mml-ieqn-15"><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Assuming that once activity <inline-formula id="ieqn-16"><mml:math id="mml-ieqn-16"><mml:mi>j</mml:mi></mml:math></inline-formula> starts in mode <inline-formula id="ieqn-17"><mml:math id="mml-ieqn-17"><mml:mi>m</mml:mi></mml:math></inline-formula>, it cannot be allowed to change due to activity interruptions or behaviour patterns. Similarly, all of the activities must be executed continuously.</p>
<p>Bearing this in mind, in order to establish a multi-mode resource-constrained project scheduling optimization model, the following assumptions are made: (1) Once an activity is started, it cannot be interrupted until completion; (2) during the scheduling period considered, the resource supply capacity is evenly distributed; and (3) each operation&#x2019;s resource demand per unit time must be less than the upper limit of the resource supply.</p>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Mathematical Model</title>
<p>In this paper, <inline-formula id="ieqn-18"><mml:math id="mml-ieqn-18"><mml:mi>E</mml:mi><mml:mi>F</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-19"><mml:math id="mml-ieqn-19"><mml:mi>L</mml:mi><mml:mi>F</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> represent the beginning and end times of activity <inline-formula id="ieqn-20"><mml:math id="mml-ieqn-20"><mml:mi>j</mml:mi></mml:math></inline-formula>, respectively, while <inline-formula id="ieqn-21"><mml:math id="mml-ieqn-21"><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> indicates a set of alternative execution modes. Furthermore, <inline-formula id="ieqn-22"><mml:math id="mml-ieqn-22"><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>m</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is activity <inline-formula id="ieqn-23"><mml:math id="mml-ieqn-23"><mml:mi>j</mml:mi></mml:math></inline-formula> in <italic>m</italic>&#x2014;the execution mode, which is required for the first <inline-formula id="ieqn-24"><mml:math id="mml-ieqn-24"><mml:mi>k</mml:mi></mml:math></inline-formula> kinds of resource demands (such as personnel, cranes, plates, money, barges, and oil, in which human and oil resources are renewable and non-renewable resources, respectively). <inline-formula id="ieqn-25"><mml:math id="mml-ieqn-25"><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> indicates that <inline-formula id="ieqn-26"><mml:math id="mml-ieqn-26"><mml:mi>k</mml:mi></mml:math></inline-formula> largest species of renewable resources supply. The mathematical model of the problem can be described as follows:</p>
<p><disp-formula id="eqn-1"><label>(1)</label><mml:math id="mml-eqn-1" display="block"><mml:mrow><mml:mi mathvariant="italic">M</mml:mi><mml:mi mathvariant="italic">i</mml:mi><mml:mi mathvariant="italic">n</mml:mi><mml:mi mathvariant="italic">i</mml:mi><mml:mi mathvariant="italic">m</mml:mi><mml:mi mathvariant="italic">i</mml:mi><mml:mi mathvariant="italic">z</mml:mi><mml:mi mathvariant="italic">e</mml:mi></mml:mrow><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mi>E</mml:mi><mml:mi>F</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>F</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:mi>t</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>m</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:math></disp-formula></p>
<p><disp-formula id="eqn-2"><label>(2)</label><mml:math id="mml-eqn-2" display="block"><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mi>E</mml:mi><mml:mi>F</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>F</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>m</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>J</mml:mi><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /></mml:math></disp-formula></p>
<p><disp-formula id="eqn-3"><label>(3)</label><mml:math id="mml-eqn-3" display="block"><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mi>E</mml:mi><mml:mi>F</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>F</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:mi>t</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>m</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2264;</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mi>E</mml:mi><mml:mi>F</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>F</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mi>t</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>m</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>.</mml:mo><mml:mi>J</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mspace width="thinmathspace" /></mml:math></disp-formula></p>
<p><disp-formula id="eqn-4"><label>(4)</label><mml:math id="mml-eqn-4" display="block"><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>J</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:munderover><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>m</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>&#x03C4;</mml:mi><mml:mo>=</mml:mo><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:munderover><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>m</mml:mi><mml:mi>&#x03C4;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2264;</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>R</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>.</mml:mo><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /></mml:math></disp-formula></p>
<p><disp-formula id="eqn-5"><label>(5)</label><mml:math id="mml-eqn-5" display="block"><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>J</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:munderover><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>m</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mi>E</mml:mi><mml:mi>F</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>F</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>m</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2264;</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>N</mml:mi><mml:mi>R</mml:mi><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /></mml:math></disp-formula></p>
<p><disp-formula id="eqn-6"><label>(6)</label><mml:math id="mml-eqn-6" display="block"><mml:mspace width="thinmathspace" /><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>m</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>J</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mi>E</mml:mi><mml:mi>F</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>L</mml:mi><mml:mi>F</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mspace width="thinmathspace" /></mml:math></disp-formula></p>
<p>In this model, <xref ref-type="disp-formula" rid="eqn-1">Eq. (1)</xref> is the objective function, while <xref ref-type="disp-formula" rid="eqn-2">Eqs. (2)</xref>&#x2013;<xref ref-type="disp-formula" rid="eqn-6">(6)</xref> describe the constraint conditions. <xref ref-type="disp-formula" rid="eqn-1">Eq. (1)</xref> indicates the duration of the project; <xref ref-type="disp-formula" rid="eqn-2">Eq. (2)</xref> represents that activity <inline-formula id="ieqn-27"><mml:math id="mml-ieqn-27"><mml:mi>j</mml:mi></mml:math></inline-formula> can only be carried out in an execution mode; in <xref ref-type="disp-formula" rid="eqn-3">Eq. (3)</xref>, activity <inline-formula id="ieqn-28"><mml:math id="mml-ieqn-28"><mml:mi>i</mml:mi></mml:math></inline-formula> is the tight predecessor activity before activity <inline-formula id="ieqn-29"><mml:math id="mml-ieqn-29"><mml:mi>j</mml:mi><mml:mo>,</mml:mo></mml:math></inline-formula> which only starts after its before-tight-activities event set <inline-formula id="ieqn-30"><mml:math id="mml-ieqn-30"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>;</mml:mo></mml:math></inline-formula> <xref ref-type="disp-formula" rid="eqn-4">Eq. (4)</xref> indicates the demand for renewable resources per unit time, which cannot exceed the capacity of resource supply <inline-formula id="ieqn-31"><mml:math id="mml-ieqn-31"><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>; <xref ref-type="disp-formula" rid="eqn-5">Eq. (5)</xref> means that the demand for non-renewable resources cannot exceed its supply, and we assume that each activity&#x2019;s demand per unit time is fixed; and <xref ref-type="disp-formula" rid="eqn-6">Eq. (6)</xref> is a 0&#x2013;1 decision variable, indicating whether activity <inline-formula id="ieqn-32"><mml:math id="mml-ieqn-32"><mml:mi>j</mml:mi></mml:math></inline-formula> can be carried out under execution mode <inline-formula id="ieqn-33"><mml:math id="mml-ieqn-33"><mml:mi>m</mml:mi></mml:math></inline-formula> at time <inline-formula id="ieqn-34"><mml:math id="mml-ieqn-34"><mml:mi>t</mml:mi></mml:math></inline-formula>.</p>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Solving for Multi-Execution Modes and Multi-Resource-Constrained Offshore Equipment Project Scheduling Problems</title>
<sec id="s4_1">
<label>4.1</label><title>Algorithm for the Solving Strategy</title>
<p>Usually, offshore projects require operating items in large amounts, which results in extremely large execution modes and solution spaces. This directly leads to low efficiency and effectiveness in the general convergence speed. Genetic algorithms have a strong global cable capacity, and crossover/mutation methods protect the diversity of the population to some extent; however, the latter&#x2019;s convergence results may also undermine the optimal solution that has already been searched, which is likely trapped in a local convergence optimum. Meanwhile, a local search algorithm can generate field solutions by random perturbation and accept inferior solutions of a certain probability, giving it strong local searchability. Therefore, to balance the advantages and disadvantages of these two algorithms, this paper proposes a fused hybrid genetic algorithm to solve multi-mode multi-resource-constrained project scheduling problems. The main improvements are as follows. (1) It adopts an elitist strategy to speed up convergence; (2) it uses adaptive crossover/variability to improve search quality and speed up convergence; (3) it integrates local search into the genetic algorithm and uses a maintenance population to protect the diversity of the population and come to a global optimal solution; and (4) it uses the function calibration method to accommodate the use of roulette rules.</p>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Design of the Hybrid Genetic Algorithm</title>
<sec id="s4_2_1">
<label>4.2.1</label>
<title>Encoding</title>
<p>This paper uses two chromosomes for encoding the hybrid genetic algorithm. One represents the sequence of activities, while the other represents the execution mode sequences. In the sequence of activities, each gene represents an activity. In the execution mode sequence, each gene represents the predecessor of its corresponding activity <xref ref-type="fig" rid="fig-3">Fig. 3</xref> shows a simple network diagram with the immediately preceding relations, while <xref ref-type="fig" rid="fig-4">Fig. 4</xref> shows an encoding example.</p>
<fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>Sample of encoding rule</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_20744-fig-3.png"/>
</fig><fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>Simple network plan</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_20744-fig-4.png"/>
</fig>
</sec>
<sec id="s4_2_2">
<label>4.2.2</label>
<title>Decoding</title>
<p>Decoding is the process of solving practical problems with information carried by chromosomes. Since this article is only related to time and resource constraints, the serial scheduling mechanism is used for decoding [<xref ref-type="bibr" rid="ref-30">30</xref>]. The decoding operation process includes <italic>h</italic> &#x003D; 1,&#x2026;, <italic>J</italic> steps. Each step may only be based on the earliest start time to determine the execution mode, relationships and constraints of resources after the event to select a condition immediately before the tight <inline-formula id="ieqn-35"><mml:math id="mml-ieqn-35"><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>. Meanwhile, according to a local collection <italic>PS</italic><sub><italic>h</italic></sub>, an activity set is arranged at each step. Let <inline-formula id="ieqn-36"><mml:math id="mml-ieqn-36"><mml:mo>&#x223C;</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:munder><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>m</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:math></inline-formula> as activity <italic>j</italic> supplies <italic>k</italic> classes of remaining resource capacity under execution mode <italic>m</italic>. Let <inline-formula id="ieqn-37"><mml:math id="mml-ieqn-37"><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>P</mml:mi><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> be a selected event&#x2019;s end-time collection. Use the earliest start time precedence activities <inline-formula id="ieqn-38"><mml:math id="mml-ieqn-38"><mml:mi>E</mml:mi><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> to calculate <inline-formula id="ieqn-39"><mml:math id="mml-ieqn-39"><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>. Then, the preceding resource-constrained start-time <inline-formula id="ieqn-40"><mml:math id="mml-ieqn-40"><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> activity sequence can be expressed as <inline-formula id="ieqn-41"><mml:math id="mml-ieqn-41"><mml:mi>&#x03BB;</mml:mi><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>j</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>j</mml:mi><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>j</mml:mi><mml:mrow><mml:mi>J</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>. The decoding operation process details are as follows:</p>
<p>Step 1: Initialize <italic>h</italic> &#x003D; 1, <inline-formula id="ieqn-42"><mml:math id="mml-ieqn-42"><mml:mi>P</mml:mi><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-43"><mml:math id="mml-ieqn-43"><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>;</p>
<p>Step 2: If <inline-formula id="ieqn-44"><mml:math id="mml-ieqn-44"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>P</mml:mi><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x003C;</mml:mo><mml:mi>J</mml:mi></mml:math></inline-formula>, go to Step 3; else, end the period;</p>
<p>Step 3: Calculate the following sequence:</p>
<p><inline-formula id="ieqn-45"><mml:math id="mml-ieqn-45"><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x223C;</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>; <inline-formula id="ieqn-46"><mml:math id="mml-ieqn-46"><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo>&#x003A;</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>j</mml:mi><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>; <inline-formula id="ieqn-47"><mml:math id="mml-ieqn-47"><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x003A;</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>; <inline-formula id="ieqn-48"><mml:math id="mml-ieqn-48"><mml:mi>E</mml:mi><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo>;</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo movablelimits="true" form="prefix">min</mml:mo></mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>t</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>E</mml:mi><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2264;</mml:mo><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mi>m</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2264;&#x223C;</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>=</mml:mo><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>K</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>;</p>
<p>Step 4: <inline-formula id="ieqn-49"><mml:math id="mml-ieqn-49"><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>;</p>
<p>Step 5: <inline-formula id="ieqn-50"><mml:math id="mml-ieqn-50"><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>h</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x003A;</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x222A;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>; <inline-formula id="ieqn-51"><mml:math id="mml-ieqn-51"><mml:mi>P</mml:mi><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>h</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x003A;</mml:mo><mml:mo>=</mml:mo><mml:mi>P</mml:mi><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x222A;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>;</p>
<p>Step 6: <italic>h &#x003D; h &#x002B;</italic> 1; go to Step 2.</p>
</sec>
<sec id="s4_2_3">
<label>4.2.3</label>
<title>Crossover/Mutation Operator</title>
<p>To change the default settings, we adjust the template as follows. Crossover and mutation are the most important parts of the genetic algorithm and must be properly designed. This paper adopts a single-point crossover method proposed by Chen et al. [<xref ref-type="bibr" rid="ref-33">33</xref>] and Hartmann [<xref ref-type="bibr" rid="ref-34">34</xref>], as shown in <xref ref-type="fig" rid="fig-5">Fig. 5</xref>.</p>
<fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>Sample of a crossover operation</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_20744-fig-5.png"/>
</fig>
<p>In the cross-operations, <inline-formula id="ieqn-52"><mml:math id="mml-ieqn-52"><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-53"><mml:math id="mml-ieqn-53"><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> represent selecting location randomly, directs at a sequence of activities and implementation modality. After <inline-formula id="ieqn-54"><mml:math id="mml-ieqn-54"><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> position is selected, the sequence of activities before it crosses to the offspring; meanwhile, it excludes the activity sequence that has already been crossed from the activity sequence of the parent generation, then crosses to the progeny and offspring in order to complete the activity sequence crossover operation for now. After <inline-formula id="ieqn-55"><mml:math id="mml-ieqn-55"><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> is selected, all the execution modes before <inline-formula id="ieqn-56"><mml:math id="mml-ieqn-56"><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> are crossed to the offspring and the execution mode after <inline-formula id="ieqn-57"><mml:math id="mml-ieqn-57"><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> finds its corresponding sequence according to the activity sequence in the parent generation. Then, we join the offspring execution mode sequence.</p>
<p>Mutation operations are executed both on the activity sequence and execution mode sequence, but there are definite differences in the implementation of its rules. In the sequence of activities, we first select an activity randomly and then find the predecessor activities of the second-highest position, which is 0, and the successor activity of the 4<sup>th</sup>-lowest position. Then, we engender a random digit representing the active position, such as 2 from 0 and 4 activities location: 0&#x2013;4 (not including 0 and 4), and move activity 2 to position 2, while the other activities do not change order and just move forward or backward as a whole. For the variation of the execution model, we generate a random digit from 1&#x2013;6 in position 5 (as <xref ref-type="fig" rid="fig-6">Fig. 6</xref> shows) and execute the execution mode corresponding to the position mode into another option.</p>
<fig id="fig-6">
<label>Figure 6</label>
<caption>
<title>Sample of a mutation</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_20744-fig-6.png"/>
</fig>
</sec>
<sec id="s4_2_4">
<label>4.2.4</label>
<title>Adaptive Crossover and Mutation Strategy</title>
<p>To accelerate convergence and increase the quality of the search solutions, an adaptive crossover operation is available. The probability of pre-crossover searching and mutation is relatively large. As the search progresses, the crossover and mutation become smaller. The crossover probability <inline-formula id="ieqn-58"><mml:math id="mml-ieqn-58"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and mutation probability <inline-formula id="ieqn-59"><mml:math id="mml-ieqn-59"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> are shown by the following formula, in which <inline-formula id="ieqn-60"><mml:math id="mml-ieqn-60"><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> represents the highest fitness value in the population, <italic>f</italic> represents the current value of individual fitness and <italic>f</italic><sub><italic>avg</italic></sub> represents the population&#x2019;s average fitness value.</p>
<p><disp-formula id="eqn-7"><label>(7)</label><mml:math id="mml-eqn-7" display="block"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mtable columnalign="left left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mi>f</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mi>f</mml:mi><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mi>f</mml:mi><mml:mo>&#x003C;</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></disp-formula></p>
<p><disp-formula id="eqn-8"><label>(8)</label><mml:math id="mml-eqn-8" display="block"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mtable columnalign="left left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x003C;</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /><mml:mspace width="thinmathspace" /></mml:math></disp-formula></p>
</sec>
<sec id="s4_2_5">
<label>4.2.5</label>
<title>Function Calibration Method and Elitist Strategy</title>
<p>Under normal circumstances, the objective function can be directly used as the fitness function. However, the problem of minimizing the duration cannot be described as a fitness function directly, so the objective function must be converted to a proper fitness function. Sometimes, due to the relatively small differences between the objective functions, the probability of selecting each individual difference is small, which leads to each individual having almost the same probability choice. This might result in weak selection by the genetic algorithm. Changes are needed to fix this by using an appropriate function calibration method, such as linear calibration, dynamic linear calibration, power-law scaling or logarithmic calibration.</p>
<p>The difference between the values of the objective functions is quite obvious, which is the reason why we utilize a calibration method. In <inline-formula id="ieqn-61"><mml:math id="mml-ieqn-61"><mml:mi>f</mml:mi><mml:mo>&#x2018;</mml:mo><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>f</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-62"><mml:math id="mml-ieqn-62"><mml:mi>f</mml:mi><mml:mo>&#x2018;</mml:mo></mml:math></inline-formula> stands for the calibrated function, <inline-formula id="ieqn-63"><mml:math id="mml-ieqn-63"><mml:mi>f</mml:mi></mml:math></inline-formula> stands for the uncalibrated function value (duration), and <inline-formula id="ieqn-64"><mml:math id="mml-ieqn-64"><mml:mi>k</mml:mi></mml:math></inline-formula> is the coefficient.</p>
<p>We compare the individuals with the smallest fitness values among the parent and offspring individuals. If the parent is superior to the offspring, the best individual parent will replace the best offspring, or the best parent will replace the worst offspring <inline-formula id="ieqn-65"><mml:math id="mml-ieqn-65"><mml:mi>i</mml:mi></mml:math></inline-formula>. This is the elitist operation, which can effectively protect the optimum solution from being destroyed and accelerate the convergence speed.</p>
</sec>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>Algorithmic Process</title>
<p>For a higher quality solution and faster speed, in this article, a mixed genetic algorithm is used, which integrates a local search algorithm with an iterative search performed only once into the genetic algorithm for iterative search. The flow chart of the algorithm is shown in <xref ref-type="fig" rid="fig-7">Fig. 7</xref>. The specific steps are as follows:</p>
<p>Step 1: Initialization. Set the maximum number of iterations <italic>G</italic>, coefficient <italic>k</italic>, initial temperature <italic>T</italic>, and largest provider of resource <italic>k</italic> values, <italic>Rk</italic>.</p>
<p>Step 2: Randomly generated initial solution. According to the network diagram for meeting the tight relationship between the former premise randomly generated initial solution of <italic>N</italic>, where the execution mode for each activity from <inline-formula id="ieqn-66"><mml:math id="mml-ieqn-66"><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is randomly selected.</p>
<p>Step 3: Decode. Obtain the initial population of each individual period <italic>T</italic>, and use the inverse calibration method for the fitness function to convert <inline-formula id="ieqn-67"><mml:math id="mml-ieqn-67"><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>.</p>
<p>Step 4: Select the size of <italic>N</italic>, respectively, the parent and parent on behalf of Father/Mother according to roulette rules.</p>
<p>Step 5: Adaptive crossover and mutation operations. Conduct crossover and mutation to produce offspring children.</p>
<p>Step 6: Add a local search to the solution for maintenance.</p>
<p>Step 6.1: Crossover and mutation to produce offspring children as its parent <italic>X</italic>;</p>
<p>Step 6.2: Use the mutation probability of generating a field solution <italic>Y</italic>;</p>
<p>Step 6.3: Sequence comparison of individuals <italic>X</italic> and <italic>Y</italic>. If the individual is superior to the corresponding <italic>Y</italic> of individual <italic>X</italic>, <italic>Y</italic> is replaced by the individual out of individual <italic>X</italic>; otherwise, keep the <italic>X</italic> in the individual unchanged.</p>
<p>Step 7: Carry out the elitist operation.</p>
<p>Step 8: Determine whether the convergence condition is satisfied, if yes, go to Step 9; otherwise, go to Step 3.</p>
<p>Step 9: Output the shortest duration and iterative convergence curve.</p>
<fig id="fig-7">
<label>Figure 7</label>
<caption>
<title>Algorithm flowchart</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_20744-fig-7.png"/>
</fig>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Case Analysis</title>
<sec id="s5_1">
<label>5.1</label>
<title>Examples of Verification of the Test Network Diagram</title>
<p>This article refers to the network in <xref ref-type="fig" rid="fig-8">Fig. 8</xref>, a data validation instance from the literature, assuming that there is only one kind of renewable resource and one non-renewable resource. The network diagram has 12 events, in which 0 and 11 are starting and ending events, while the execution modes are mode 1 and mode 2 executive. Renewable resources are represented by <italic>R</italic> and <italic>R</italic><sub><italic>k</italic></sub> <italic>max</italic> &#x003D; 12. Non-renewable resources are represented by <italic>NR</italic>. This article assumes that workers consume a certain value of non-renewable resources each day, and its total <italic>NR</italic><sub><italic>k</italic></sub> is 25.</p>
<fig id="fig-8">
<label>Figure 8</label>
<caption>
<title>Network diagram of the validation instance</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_20744-fig-8.png"/>
</fig>
<sec id="s5_1_1">
<label>5.1.1</label>
<title>Examples of Simulation Data Acquisition</title>
<p>The initial size of the population genetic algorithm section is 10; the maximum number of iterations is 200; the function calibration coefficient <italic>k</italic> &#x003D; 30; the cross-adaptive crossover and mutation probabilities <inline-formula id="ieqn-68"><mml:math id="mml-ieqn-68"><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-69"><mml:math id="mml-ieqn-69"><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> are taken as 0.7 and 0.95, respectively, while the mutation probabilities <inline-formula id="ieqn-70"><mml:math id="mml-ieqn-70"><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-71"><mml:math id="mml-ieqn-71"><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> are taken as 0.02 and 0.05 and the local search iteration is 1. The specific parameters are shown in <xref ref-type="table" rid="table-1">Table 1</xref>.</p>
<table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>Instance data of a network diagram</title>
</caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th>Activities</th>
<th>Predecessor activities</th>
<th>Successor activities</th>
<th>Execution mode</th>
<th>Duration (d)</th>
<th>Renewable resources (R)</th>
<th>Non-renewable resources (NR)</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>--</td>
<td>--</td>
<td>--</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td rowspan="2">1</td>
<td rowspan="2">--</td>
<td rowspan="2">4,5,10</td>
<td>1</td>
<td>2</td>
<td>5</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>5</td>
<td>5</td>
<td>5</td>
</tr>
<tr>
<td rowspan="2">2</td>
<td rowspan="2">--</td>
<td rowspan="2">6</td>
<td>1</td>
<td>1</td>
<td>6</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>8</td>
<td>5</td>
<td>8</td>
</tr>
<tr>
<td rowspan="2">3</td>
<td rowspan="2">--</td>
<td rowspan="2">6,10</td>
<td>1</td>
<td>1</td>
<td>4</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>8</td>
<td>3</td>
<td>8</td>
</tr>
<tr>
<td rowspan="2">4</td>
<td rowspan="2">1</td>
<td rowspan="2">8,9</td>
<td>1</td>
<td>1</td>
<td>7</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>2</td>
<td>6</td>
<td>2</td>
</tr>
<tr>
<td rowspan="2">5</td>
<td rowspan="2">1</td>
<td rowspan="2">7</td>
<td>1</td>
<td>1</td>
<td>7</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>4</td>
<td>7</td>
<td>4</td>
</tr>
<tr>
<td rowspan="2">6</td>
<td rowspan="2">2,3</td>
<td rowspan="2">7,8</td>
<td>1</td>
<td>1</td>
<td>9</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>1</td>
<td>9</td>
<td>1</td>
</tr>
<tr>
<td rowspan="2">7</td>
<td rowspan="2">5,6</td>
<td rowspan="2">9</td>
<td>1</td>
<td>2</td>
<td>9</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>2</td>
<td>9</td>
<td>2</td>
</tr>
<tr>
<td rowspan="2">8</td>
<td rowspan="2">4,6</td>
<td rowspan="2">--</td>
<td>1</td>
<td>1</td>
<td>9</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>5</td>
<td>9</td>
<td>5</td>
</tr>
<tr>
<td rowspan="2">9</td>
<td rowspan="2">4,7</td>
<td rowspan="2">--</td>
<td>1</td>
<td>2</td>
<td>7</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>9</td>
<td>7</td>
<td>9</td>
</tr>
<tr>
<td rowspan="2">10</td>
<td rowspan="2">1,3</td>
<td rowspan="2">--</td>
<td>1</td>
<td>3</td>
<td>5</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>6</td>
<td>4</td>
<td>6</td>
</tr>
<tr>
<td>11</td>
<td>--</td>
<td>--</td>
<td>--</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s5_1_2">
<label>5.1.2</label>
<title>Graphical Analysis</title>
<p>Through a comparative analysis of a traditional genetic algorithm and a simulated annealing algorithm, based on the mean value of the fitness function being the iterative convergence criterion, the article obtained the iterative convergence curve shown in <xref ref-type="fig" rid="fig-9">Fig. 9</xref>. It shows that, compared to a classical genetic algorithm and simulated annealing algorithm, the hybrid genetic algorithm converges faster, and its trend of convergence appeared in the 10<sup>th</sup> generation. Moreover, the non-renewable resource consumption is 15, which is less than the maximum reserve 25, and it can converge the minimum 10-day duration according to the theory, which fully illustrates the improvement brought by the proposed elitist strategy, function calibration method, local search, and adaptive crossover. These strategies have a good effect on accelerating convergence/mutation.</p>
<fig id="fig-9">
<label>Figure 9</label>
<caption>
<title>Comparison of the iterative curves of three algorithms</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_20744-fig-9.png"/>
</fig>
<p>Meanwhile, from the chart, we can see that the classical genetic algorithm&#x2019;s convergence fluctuates in the later period, which fully shows that the improvement of the probability of crossover mutation proposed can achieve a more stable solution. The convergence of the simulated annealing algorithm is unstable in the later period, indicating that although it can accept an inferior solution with a certain probability, due to the initial temperature being too high and cooling slowly, it seems to result in an extremely slow rate of convergence.</p>
</sec>
<sec id="s5_1_3">
<label>5.1.3</label>
<title>Data Analysis</title>
<p>To demonstrate the feasibility of this algorithm, two indicators were used: average optimal convergence and iterations to average convergence of the three algebraic calculation algorithms after 30 runs, as shown in <xref ref-type="table" rid="table-2">Table 2</xref>. Also, we list the optimal scheduling scheme of the hybrid and classical genetic algorithms, as shown in <xref ref-type="fig" rid="fig-10">Figs. 10</xref> and <xref ref-type="fig" rid="fig-11">11</xref>. We found that the hybrid genetic algorithm and simulated annealing algorithm can both find the optimal solution (10 days). The hybrid genetic algorithm can achieve optimal results but the simulated annealing algorithm did not search the optimal results at all, and fluctuations can be seen. The solution-searching quality of the hybrid genetic algorithm is significantly better than that of classical genetic algorithm 3. The fastest search algorithm is the hybrid genetic algorithm. This article shows that this can handle a multi-mode multi-resource-constrained project scheduling problem.</p>
<table-wrap id="table-2">
<label>Table 2</label>
<caption>
<title>Comparison of a variety of algorithms</title>
</caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th>Algorithm</th>
<th>Average optimal convergence</th>
<th>Iterations to average convergence</th>
<th>Optimal scheduling scheme</th>
</tr>
</thead>
<tbody>
<tr>
<td>Hybrid GA</td>
<td>10 days</td>
<td>12.1</td>
<td>1 2 3 6 5 7 8 9 4 10 (Activity sequences)<break/>1 1 1 1 1 1 1 1 1 1 (Execution mode sequences)</td>
</tr>
<tr>
<td>GA</td>
<td>12.6 days</td>
<td>44.4</td>
<td>1 2 3 4 6 5 7 8 9 10 (AS)<break/>1 1 1 1 1 1 2 1 1 1 (EMS)</td>
</tr>
<tr>
<td>SA</td>
<td>10 days</td>
<td>No convergence</td>
<td>No convergence</td>
</tr>
</tbody>
</table>
</table-wrap><fig id="fig-10">
<label>Figure 10</label>
<caption>
<title>Hybrid genetic algorithm optimal scheduling scheme</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_20744-fig-10.png"/>
</fig><fig id="fig-11">
<label>Figure 11</label>
<caption>
<title>Classical genetic algorithm optimal scheduling scheme</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_20744-fig-11.png"/>
</fig>
</sec>
</sec>
<sec id="s5_2">
<label>5.2</label>
<title>Actual Examples of Offshore Project Validation</title>
<p>In this example, the size of the initial population of the genetic algorithms is 20; the maximum number of iterations is 500; the renewable resources (HR) <inline-formula id="ieqn-72"><mml:math id="mml-ieqn-72"><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> limit is 40; the function calibration coefficient <inline-formula id="ieqn-73"><mml:math id="mml-ieqn-73"><mml:mi>k</mml:mi></mml:math></inline-formula> is 400; the adaptive crossover and mutation probabilities <inline-formula id="ieqn-74"><mml:math id="mml-ieqn-74"><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-75"><mml:math id="mml-ieqn-75"><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> are 0.7 and 0.95; the mutation probabilities <inline-formula id="ieqn-76"><mml:math id="mml-ieqn-76"><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-77"><mml:math id="mml-ieqn-77"><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> are 0.02 and 0.05; and 1 local search iteration is used. The specific network and data are illustrated in <xref ref-type="table" rid="table-3">Table 3</xref> and <xref ref-type="fig" rid="fig-12">Fig. 12</xref> [<xref ref-type="bibr" rid="ref-35">35</xref>].</p>
<table-wrap id="table-3">
<label>Table 3</label>
<caption>
<title>Construction scheme of the onshore construction process for an offshore structure</title>
</caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th>Event code</th>
<th>Event name</th>
<th>Execution mode</th>
<th>Tight before the event</th>
<th>Schedule</th>
<th>Resources</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2">1</td>
<td rowspan="2">Pillar roll</td>
<td>1</td>
<td rowspan="2">--</td>
<td>65</td>
<td>7</td>
</tr>
<tr>
<td>2</td>
<td>60</td>
<td>9</td>
</tr>
<tr>
<td rowspan="2">2</td>
<td rowspan="2">Stretch roll</td>
<td>1</td>
<td rowspan="2">--</td>
<td>65</td>
<td>7</td>
</tr>
<tr>
<td>2</td>
<td>60</td>
<td>9</td>
</tr>
<tr>
<td rowspan="2">3</td>
<td rowspan="2">(&#x002B;33.5) Deck tablets prefabricate</td>
<td>1</td>
<td rowspan="2">--</td>
<td>30</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>25</td>
<td>5</td>
</tr>
<tr>
<td rowspan="2">4</td>
<td rowspan="2">(&#x002B;37) Deck tablets prefabricate</td>
<td>1</td>
<td rowspan="2">3</td>
<td>30</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>25</td>
<td>5</td>
</tr>
<tr>
<td rowspan="2">5</td>
<td rowspan="2">(&#x002B;40.5) Deck tablets prefabricate</td>
<td>1</td>
<td rowspan="2">4</td>
<td>31</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>27</td>
<td>4</td>
</tr>
<tr>
<td rowspan="2">6</td>
<td rowspan="2">(&#x002B;44) Deck tablets prefabricate</td>
<td>1</td>
<td rowspan="2">5</td>
<td>29</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>28</td>
<td>3</td>
</tr>
<tr>
<td rowspan="2">7</td>
<td rowspan="2">(&#x002B;47.5) Deck tablets prefabricate</td>
<td>1</td>
<td rowspan="2">6</td>
<td>32</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>30</td>
<td>4</td>
</tr>
<tr>
<td rowspan="2">8</td>
<td rowspan="2">(&#x002B;33.5)&#x007E;(&#x002B;37) Plaster prefabricate</td>
<td>1</td>
<td rowspan="2">1, 2, 7</td>
<td>18</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>15</td>
<td>4</td>
</tr>
<tr>
<td rowspan="2">9</td>
<td rowspan="2">(&#x002B;37)&#x007E;(&#x002B;40.5) Plaster prefabricate</td>
<td>1</td>
<td rowspan="2">8</td>
<td>18</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>16</td>
<td>4</td>
</tr>
<tr>
<td rowspan="2">10</td>
<td rowspan="2">(&#x002B;40.5)&#x007E;(&#x002B;47.5) Plaster prefabricate</td>
<td>1</td>
<td rowspan="2">8</td>
<td>25</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>20</td>
<td>6</td>
</tr>
<tr>
<td rowspan="2">11</td>
<td rowspan="2">(&#x003E;47.5) Plaster prefabricate</td>
<td>1</td>
<td rowspan="2">9, 10</td>
<td>13</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>10</td>
<td>4</td>
</tr>
<tr>
<td rowspan="2">12</td>
<td rowspan="2">Mechanical/Safety improved installation</td>
<td>1</td>
<td rowspan="2">8</td>
<td>146</td>
<td>10</td>
</tr>
<tr>
<td>2</td>
<td>120</td>
<td>12</td>
</tr>
<tr>
<td rowspan="2">13</td>
<td rowspan="2">Piping improved installation</td>
<td>1</td>
<td rowspan="2">8</td>
<td>175</td>
<td>12</td>
</tr>
<tr>
<td>2</td>
<td>150</td>
<td>13</td>
</tr>
<tr>
<td rowspan="2">14</td>
<td rowspan="2">Equipment improved installation</td>
<td>1</td>
<td rowspan="2">8</td>
<td>178</td>
<td>10</td>
</tr>
<tr>
<td>2</td>
<td>158</td>
<td>12</td>
</tr>
<tr>
<td rowspan="2">15</td>
<td rowspan="2">(&#x002B;33.5)&#x007E;(&#x002B;37) Engaging piece</td>
<td>1</td>
<td rowspan="2">11</td>
<td>19</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>15</td>
<td>4</td>
</tr>
<tr>
<td rowspan="2">16</td>
<td rowspan="2">(&#x002B;40.5)&#x007E;(&#x002B;47.5) Engaging piece</td>
<td>1</td>
<td rowspan="2">15</td>
<td>30</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>25</td>
<td>4</td>
</tr>
<tr>
<td rowspan="2">17</td>
<td rowspan="2">(&#x002B;37)&#x007E;(&#x002B;40.5) Pillar lacing wire installation</td>
<td>1</td>
<td rowspan="2">17</td>
<td>13</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>10</td>
<td>4</td>
</tr>
<tr>
<td rowspan="2">18</td>
<td rowspan="2">(&#x002B;33.5)&#x007E;(&#x002B;37) Overall lifted into chunks</td>
<td>1</td>
<td rowspan="2">16, 17</td>
<td>4</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>4</td>
<td>1</td>
</tr>
<tr>
<td rowspan="2">19</td>
<td rowspan="2">(&#x002B;37)&#x007E;(&#x002B;40.5) Plaster installation</td>
<td>1</td>
<td rowspan="2">20</td>
<td>17</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>15</td>
<td>3</td>
</tr>
<tr>
<td rowspan="2">20</td>
<td rowspan="2">(&#x002B;40.5)&#x007E;(&#x002B;47.5) Overall lifted into chunks</td>
<td>1</td>
<td rowspan="2">19</td>
<td>5</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>4</td>
<td>2</td>
</tr>
<tr>
<td rowspan="2">21</td>
<td rowspan="2">(&#x002B;47.5) Upper pillar/Stretch/Plaster installation</td>
<td>1</td>
<td rowspan="2">20</td>
<td>16</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>14</td>
<td>3</td>
</tr>
<tr>
<td rowspan="2">22</td>
<td rowspan="2">Flight deck prefabricate</td>
<td>1</td>
<td rowspan="2">20</td>
<td>62</td>
<td>6</td>
</tr>
<tr>
<td>2</td>
<td>50</td>
<td>7</td>
</tr>
<tr>
<td rowspan="2">23</td>
<td rowspan="2">Outfitting/Thermal insulation/Ventilation equipment improved installation</td>
<td>1</td>
<td rowspan="2">8</td>
<td>175</td>
<td>12</td>
</tr>
<tr>
<td>2</td>
<td>154</td>
<td>13</td>
</tr>
<tr>
<td rowspan="2">24</td>
<td rowspan="2">Flight deck installation</td>
<td>1</td>
<td rowspan="2">21, 22</td>
<td>7</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>6</td>
<td>2</td>
</tr>
<tr>
<td rowspan="2">25</td>
<td rowspan="2">(&#x002B;33.5)&#x007E;(&#x002B;37) Overall coating</td>
<td>1</td>
<td rowspan="2">24</td>
<td>13</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>10</td>
<td>3</td>
</tr>
<tr>
<td rowspan="2">26</td>
<td rowspan="2">(&#x002B;37)&#x007E;(&#x002B;40.5) Pillar/Stretch/Plaster coating</td>
<td>1</td>
<td rowspan="2">24</td>
<td>15</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>13</td>
<td>3</td>
</tr>
<tr>
<td rowspan="2">27</td>
<td rowspan="2">(&#x002B;40.5)&#x007E;(&#x002B;47.5) Overall coating</td>
<td>1</td>
<td rowspan="2">25, 26</td>
<td>12</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>10</td>
<td>4</td>
</tr>
<tr>
<td rowspan="2">28</td>
<td rowspan="2">(&#x002B;47.5) Upper pillar/Stretch/Plaster coating</td>
<td>1</td>
<td rowspan="2">27</td>
<td>6</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>5</td>
<td>2</td>
</tr>
<tr>
<td rowspan="2">29</td>
<td rowspan="2">Flight deck coating</td>
<td>1</td>
<td rowspan="2">28</td>
<td>10</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>9</td>
<td>2</td>
</tr>
<tr>
<td rowspan="2">30</td>
<td rowspan="2">Life building punch list rectification</td>
<td>1</td>
<td rowspan="2">29</td>
<td>37</td>
<td>4</td>
</tr>
<tr>
<td>2</td>
<td>30</td>
<td>6</td>
</tr>
</tbody>
</table>
</table-wrap><fig id="fig-12">
<label>Figure 12</label>
<caption>
<title>Network diagram of the onshore construction process for an offshore structure</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_20744-fig-12.png"/>
</fig>
<p>It should be noted that renewable resources include human resources, while non-renewable resources are, by their nature, more certain in their supply. Therefore, non-renewable resources are not considered in this verification example. The basic data (onshore construction process of an offshore structure ) in the offshore project network diagram were provided by an offshore company, drawn by project2007.</p>
<p>By the comparative analysis of the hybrid genetic, classical genetic, and simulated annealing algorithms, we know that the classical genetic algorithm easily finds a local optimal solution because of its weakness in local search capability. The simulated annealing algorithm converges very slowly and large fluctuations still exist after 500 iterations, indicating that it does not achieve convergence. The hybrid genetic algorithm iterations have already converged after about 110 times, and the quality of the convergence solution is better than those of the other two. As a result, the optimal duration is 375 days, as shown in <xref ref-type="fig" rid="fig-13">Fig. 13</xref>, which verifies that the hybrid genetic algorithm can solve the offshore project scheduling optimization problem.</p>
<fig id="fig-13">
<label>Figure 13</label>
<caption>
<title>Actual offshore project iteration convergence plan</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_20744-fig-13.png"/>
</fig>
</sec>
</sec>
<sec id="s6">
<label>6</label>
<title>Conclusions</title>
<p>This article integrated a local search algorithm into a genetic algorithm and added an elitist strategy and adaptive crossover and mutation operations. Solutions that improve the effectiveness and efficiency of a multi-mode multi-resource-constrained project scheduling problem were obtained, as follows:</p>
<p>(1) This paper proposed a hybrid genetic algorithm and established a multi-mode and multi-resource-constrained project scheduling optimization model. Then, this paper presented a genome sequence (based on the activity sequence and implementation modality sequence) and designed the appropriate decoding rules and crossover, mutation rules, cited an elitist strategy, and an adaptive operation. Then, local search was integrated after the crossover and mutation operation, and maintenance of the genetic algorithm&#x2019;s offspring and other operations were adopted, which greatly increased the convergence speed. Improvements to the proposed algorithm were introduced to overcome the shortcomings of the large solution space, accelerate the convergence, and increase the understanding of search quality. Through the data test of the network diagram and the actual test project, it is found that the shortest period of the offshore project is 10 days and 375 days, respectively.</p>
<p>(2) A comparative analysis of hybrid genetic, classical genetic, and simulated annealing algorithms was made. Comparison of the resulting convergence curves and data fully shows that the proposed hybrid genetic algorithm is most suitable for solving multi-mode and multi-resource-constrained project scheduling problems.</p>
<p>Multi-mode and multi-resource-constrained project scheduling problems are very complex NP-hard problems. On the basis of this study, it is necessary to carry out the following research:</p>
<p>(1) Research is needed in multi-mode, multi-objective, single-/multi-resource-constrained project scheduling problems. Further improvements in convergence speed and the reconciliation and quality of the convergence of the algorithm are required.</p>
<p>(2) For large projects, especially marine research projects, it is necessary to carry out a more efficient network decomposition scheme plan, and to obtain the optimal solution in an early period of the plan.</p>
</sec>
</body>
<back>
<ack>
<p>The authors are responsible for the contents of this publication. The authors would like to thank SWS Co., Ltd. for contributing the data used in verification.</p>
</ack>
<fn-group>
<fn fn-type="other"><p><bold>Funding Statement:</bold> This research was funded by the Ministry of Industry and Information Technology of the People&#x2019;s Republic of China (Nos. [2018]473, [2019]331).</p>
</fn>
<fn fn-type="conflict"><p><bold>Conflicts of Interest:</bold> The authors declare that they have no conflicts of interest to report regarding the present study.</p>
</fn>
</fn-group>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>1.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Ruan</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Maes</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>A&#x00EF;t</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Xu</surname>, <given-names>L.</given-names></string-name> <etal>et al.</etal></person-group> (<year>2005</year>). <article-title>Cost estimations for large scale engineering projects under uncertainties</article-title>. <source>Proceedings of the Joint 4th Conference of the European Society for Fuzzy Logic and Technology and the 11th Rencontres Francophones sur la Logique Floue et ses Applications</source>, Barcelona, Spain.</mixed-citation></ref>
<ref id="ref-2"><label>2.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Katayama</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Sirichan</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Hiraki</surname>, <given-names>S.</given-names></string-name></person-group> (<year>1999</year>). <article-title>Japanese offshore manufacturing in Thailand: Its difficulties and future prospects</article-title>. <source>Integrated Manufacturing Systems</source><italic>,</italic> <volume>10</volume><italic>(</italic><issue>4</issue><italic>),</italic> <fpage>210</fpage>&#x2013;<lpage>220</lpage>. DOI <pub-id pub-id-type="doi">10.1108/09576069910280459</pub-id>.</mixed-citation></ref>
<ref id="ref-3"><label>3.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Park</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Lee</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Zhu</surname>, <given-names>J.</given-names></string-name></person-group> (<year>2014</year>). <article-title>An integrated approach for ship block manufacturing process performance evaluation: Case from a Korean shipbuilding company</article-title>. <source>International Journal of Production Economics</source><italic>,</italic> <volume>156</volume><italic>(</italic><issue>6</issue><italic>),</italic> <fpage>214</fpage>&#x2013;<lpage>222</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.ijpe.2014.06.012</pub-id>.</mixed-citation></ref>
<ref id="ref-4"><label>4.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Lee</surname>, <given-names>D. K.</given-names></string-name>, <string-name><surname>Kim</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Hwang</surname>, <given-names>I. H.</given-names></string-name>, <string-name><surname>Oh</surname>, <given-names>D. K.</given-names></string-name>, <string-name><surname>Shin</surname>, <given-names>J. G.</given-names></string-name></person-group> (<year>2014</year>). <article-title>Study on a process-centric modeling methodology for virtual manufacturing of ships and offshore structures in shipyards</article-title>. <source>The International Journal of Advanced Manufacturing Technology</source><italic>,</italic> <volume>71</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>621</fpage>&#x2013;<lpage>633</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00170-013-5498-4</pub-id>.</mixed-citation></ref>
<ref id="ref-5"><label>5.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Colledani</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Tolio</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Fischer</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Iung</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Lanza</surname>, <given-names>G.</given-names></string-name> <etal>et al.</etal></person-group> (<year>2014</year>). <article-title>Design and management of manufacturing systems for production quality</article-title>. <source>Cirp Annals</source><italic>,</italic> <volume>63</volume><italic>(</italic><issue>2</issue><italic>),</italic> <fpage>773</fpage>&#x2013;<lpage>796</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.cirp.2014.05.002</pub-id>.</mixed-citation></ref>
<ref id="ref-6"><label>6.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Browning</surname>, <given-names>T. R.</given-names></string-name>, <string-name><surname>Yassine</surname>, <given-names>A. A.</given-names></string-name></person-group> (<year>2010</year>). <article-title>Resource-constrained multi-project scheduling: Priority rule performance revisited</article-title>. <source>International Journal of Production Economics</source><italic>,</italic> <volume>126</volume><italic>(</italic><issue>2</issue><italic>),</italic> <fpage>212</fpage>&#x2013;<lpage>228</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.ijpe.2010.03.009</pub-id>.</mixed-citation></ref>
<ref id="ref-7"><label>7.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Ma</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>He</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Jiang</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>N.</given-names></string-name></person-group> (<year>2021</year>). <article-title>A heuristic algorithm for solving flexible resource constrained proactive project scheduling problem</article-title>. <source>Operations Research and Management Science</source><italic>,</italic> <volume>30</volume><italic>(</italic><issue>8</issue><italic>),</italic> <fpage>14&#x2013;20&#x002B;51</fpage>. DOI <pub-id pub-id-type="doi">10.12005/orms.2021.0241</pub-id>.</mixed-citation></ref>
<ref id="ref-8"><label>8.</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Cai</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Peng</surname>, <given-names>Z.</given-names></string-name></person-group> (<year>2019</year>). <article-title>A heuristic algorithm for solving resource constrained project scheduling problem with transfer time under resource bundle</article-title>. <conf-name>2019 Chinese Control Conference (CCC)</conf-name>, pp. <fpage>2155</fpage>&#x2013;<lpage>2160</lpage>. Guangzhou, China.</mixed-citation></ref>
<ref id="ref-9"><label>9.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Asadujjaman</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Rahman</surname>, <given-names>H. F.</given-names></string-name>, <string-name><surname>Chakrabortty</surname>, <given-names>R. K.</given-names></string-name>, <string-name><surname>Ryan</surname>, <given-names>M. J.</given-names></string-name></person-group> (<year>2021</year>). <article-title>Resource constrained project scheduling and material ordering problem with discounted cash flows</article-title>. <source>Computers Industrial Engineering</source><italic>,</italic> <volume>158</volume><italic>,</italic> <fpage>107427</fpage>. DOI <pub-id pub-id-type="doi">10.1016/j.cie.2021.107427</pub-id>.</mixed-citation></ref>
<ref id="ref-10"><label>10.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Ghamginzadeh</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Najafi</surname>, <given-names>A. A.</given-names></string-name>, <string-name><surname>Khalilzadeh</surname>, <given-names>M.</given-names></string-name></person-group> (<year>2021</year>). <article-title>Multi-objective multi-skill resource-constrained project scheduling problem under time uncertainty</article-title>. <source>International Journal of Fuzzy Systems</source><italic>,</italic> <volume>23</volume><italic>(</italic><issue>2</issue><italic>),</italic> <fpage>518</fpage>&#x2013;<lpage>534</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s40815-020-00984-w</pub-id>.</mixed-citation></ref>
<ref id="ref-11"><label>11.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Dorndorf</surname>, <given-names>U.</given-names></string-name>, <string-name><surname>Pesch</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Phan-Huy</surname>, <given-names>T.</given-names></string-name></person-group> (<year>2000</year>). <article-title>A time-oriented branch-and-bound algorithm for resource-constrained project scheduling with generalised precedence constraints</article-title>. <source>Management Science</source><italic>,</italic> <volume>46</volume><italic>(</italic><issue>10</issue><italic>),</italic> <fpage>1365</fpage>&#x2013;<lpage>1384</lpage>. DOI <pub-id pub-id-type="doi">10.1287/mnsc.46.10.1365.12272</pub-id>.</mixed-citation></ref>
<ref id="ref-12"><label>12.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Peng</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>C.</given-names></string-name></person-group> (<year>2008</year>). <article-title>A multi-mode resource-constrained DTCTP</article-title>. <source>Journal of Northeastern University: Natural Science</source><italic>,</italic> <volume>29</volume><italic>(</italic><issue>8</issue><italic>),</italic> <fpage>1077</fpage>&#x2013;<lpage>1079&#x002B;1095</lpage>. DOI <pub-id pub-id-type="doi">10.3321/j.issn:1005-3026.2008.08.004</pub-id>.</mixed-citation></ref>
<ref id="ref-13"><label>13.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Liu</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>H.</given-names></string-name></person-group> (<year>2006</year>). <article-title>Heuristic algorithm for RCPSP with the objective of minimizing activities&#x2019; cost</article-title>. <source>Journal of Systems Engineering Electronics</source><italic>,</italic> <volume>17</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>96</fpage>&#x2013;<lpage>102</lpage>. DOI <pub-id pub-id-type="doi">10.1016/S1004-4132(06)60018-2</pub-id>.</mixed-citation></ref>
<ref id="ref-14"><label>14.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Li</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Hu</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Lv</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Sun</surname>, <given-names>M.</given-names></string-name></person-group> (<year>2013</year>). <article-title>Research on resource leveling for offshore equipment multi-project based on immune genetic algorithm</article-title>. <source>Computer Engineering and Design</source><italic>,</italic> <volume>34</volume><italic>(</italic><issue>9</issue><italic>),</italic> <fpage>3250</fpage>&#x2013;<lpage>3254</lpage>. DOI <pub-id pub-id-type="doi">10.16208/j.issn1000-7024.2013.09.014</pub-id>.</mixed-citation></ref>
<ref id="ref-15"><label>15.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hui</surname>, <given-names>W.</given-names></string-name></person-group> (<year>2012</year>). <article-title>Comparison of several intelligent algorithms for solving TSP problem in industrial engineering</article-title>. <source>Systems Engineering Procedia</source><italic>,</italic> <volume>4</volume><italic>(</italic><issue>20</issue><italic>),</italic> <fpage>226</fpage>&#x2013;<lpage>235</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.sepro.2011.11.070</pub-id>.</mixed-citation></ref>
<ref id="ref-16"><label>16.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Corchado</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Abraham</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>de Carvalho</surname>, <given-names>A.</given-names></string-name></person-group> (<year>2010</year>). <article-title>Hybrid intelligent algorithms and applications</article-title>. <source>Information Sciences</source><italic>,</italic> <volume>180</volume><italic>(</italic><issue>14</issue><italic>),</italic> <fpage>2633</fpage>&#x2013;<lpage>2634</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.ins.2010.02.019</pub-id>.</mixed-citation></ref>
<ref id="ref-17"><label>17.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hartmann</surname>, <given-names>S.</given-names></string-name></person-group> (<year>1998</year>). <article-title>A competitive genetic algorithm for resource-constrained project scheduling</article-title>. <source>Naval Research Logistics</source><italic>,</italic> <volume>45</volume><italic>(</italic><issue>7</issue><italic>),</italic> <fpage>733</fpage>&#x2013;<lpage>750</lpage>. DOI <pub-id pub-id-type="doi">10.1002/(ISSN)1520-6750</pub-id>.</mixed-citation></ref>
<ref id="ref-18"><label>18.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hartmann</surname>, <given-names>S.</given-names></string-name></person-group> (<year>2002</year>). <article-title>A self-adapting genetic algorithm for project scheduling under resource constraints</article-title>. <source>Naval Research Logistics</source><italic>,</italic> <volume>49</volume><italic>(</italic><issue>5</issue><italic>),</italic> <fpage>433</fpage>&#x2013;<lpage>448</lpage>. DOI <pub-id pub-id-type="doi">10.1002/(ISSN)1520-6750</pub-id>.</mixed-citation></ref>
<ref id="ref-19"><label>19.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Alcaraz</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Maroto</surname>, <given-names>C.</given-names></string-name></person-group> (<year>2001</year>). <article-title>A robust genetic algorithm for resource allocation in project scheduling</article-title>. <source>Annals of Operations Research</source><italic>,</italic> <volume>102</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>83</fpage>&#x2013;<lpage>109</lpage>. DOI <pub-id pub-id-type="doi">10.1023/A:1010949931021</pub-id>.</mixed-citation></ref>
<ref id="ref-20"><label>20.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Gon&#x00E7;alves</surname>, <given-names>J. F.</given-names></string-name>, <string-name><surname>Resende</surname>, <given-names>M. G.</given-names></string-name>, <string-name><surname>Mendes</surname>, <given-names>J. J.</given-names></string-name></person-group> (<year>2011</year>). <article-title>A biased random-key genetic algorithm with forward-backward improvement for the resource constrained project scheduling problem</article-title>. <source>Journal of Heuristics</source><italic>,</italic> <volume>17</volume><italic>(</italic><issue>5</issue><italic>),</italic> <fpage>467</fpage>&#x2013;<lpage>486</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s10732-010-9142-2</pub-id>.</mixed-citation></ref>
<ref id="ref-21"><label>21.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Proon</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Jin</surname>, <given-names>M.</given-names></string-name></person-group> (<year>2011</year>). <article-title>A genetic algorithm with neighborhood search for the resource-constrained project scheduling problem</article-title>. <source>Naval Research Logistics</source><italic>,</italic> <volume>58</volume><italic>(</italic><issue>2</issue><italic>),</italic> <fpage>73</fpage>&#x2013;<lpage>82</lpage>. DOI <pub-id pub-id-type="doi">10.1002/nav.20439</pub-id>.</mixed-citation></ref>
<ref id="ref-22"><label>22.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hindi</surname>, <given-names>K. S.</given-names></string-name>, <string-name><surname>Yang</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Fleszar</surname>, <given-names>K.</given-names></string-name></person-group> (<year>2002</year>). <article-title>An evolutionary algorithm for resource-constrained project scheduling</article-title>. <source>IEEE Transactions on Evolutionary Computation</source><italic>,</italic> <volume>6</volume><italic>(</italic><issue>5</issue><italic>),</italic> <fpage>512</fpage>&#x2013;<lpage>518</lpage>. DOI <pub-id pub-id-type="doi">10.1109/TEVC.2002.804914</pub-id>.</mixed-citation></ref>
<ref id="ref-23"><label>23.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Valls</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Ballestin</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Quintanilla</surname>, <given-names>S.</given-names></string-name></person-group> (<year>2008</year>). <article-title>A hybrid genetic algorithm for the resource-constrained project scheduling problem</article-title>. <source>European Journal of Operational Research</source><italic>,</italic> <volume>185</volume><italic>(</italic><issue>2</issue><italic>),</italic> <fpage>495</fpage>&#x2013;<lpage>508</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.ejor.2006.12.033</pub-id>.</mixed-citation></ref>
<ref id="ref-24"><label>24.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Afshar-Nadjafi</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Rahimi</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Karimi</surname>, <given-names>H.</given-names></string-name></person-group> (<year>2013</year>). <article-title>A genetic algorithm for mode identity and the resource constrained project scheduling problem</article-title>. <source>Scientia Iranica</source><italic>,</italic> <volume>20</volume><italic>(</italic><issue>3</issue><italic>),</italic> <fpage>824</fpage>&#x2013;<lpage>831</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.scient.2012.11.011</pub-id>.</mixed-citation></ref>
<ref id="ref-25"><label>25.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Kim</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Yun</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Yoon</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Gen</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Yamazaki</surname>, <given-names>G.</given-names></string-name></person-group> (<year>2005</year>). <article-title>Hybrid genetic algorithm with adaptive abilities for resource-constrained multiple project scheduling</article-title>. <source>Computers in Industry</source><italic>,</italic> <volume>56</volume><italic>(</italic><issue>2</issue><italic>),</italic> <fpage>143</fpage>&#x2013;<lpage>160</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.compind.2004.06.006</pub-id>.</mixed-citation></ref>
<ref id="ref-26"><label>26.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhang</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Li</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Tam</surname>, <given-names>C.</given-names></string-name></person-group> (<year>2006</year>). <article-title>Particle swarm optimization for resource-constrained project scheduling</article-title>. <source>International Journal of Project Management</source><italic>,</italic> <volume>24</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>83</fpage>&#x2013;<lpage>92</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.ijproman.2005.06.006</pub-id>.</mixed-citation></ref>
<ref id="ref-27"><label>27.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Gonzalez-Pardo</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Del Ser</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Camacho</surname>, <given-names>D.</given-names></string-name></person-group> (<year>2017</year>). <article-title>Comparative study of pheromone control heuristics in ACO algorithms for solving RCPSP problems</article-title>. <source>Applied Soft Computing</source><italic>,</italic> <volume>60</volume><italic>(</italic><issue>5</issue><italic>),</italic> <fpage>241</fpage>&#x2013;<lpage>255</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.asoc.2017.06.042</pub-id>.</mixed-citation></ref>
<ref id="ref-28"><label>28.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhao</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Lin</surname>, <given-names>S.</given-names></string-name></person-group> (<year>2018</year>). <article-title>Rcpsp study based on simulated annealing and genetic algorithm</article-title>. <source>Software Guide</source><italic>,</italic> <volume>17</volume><italic>(</italic><issue>12</issue><italic>),</italic> <fpage>61</fpage>&#x2013;<lpage>64&#x002B;68</lpage>. DOI <pub-id pub-id-type="doi">10.11907/rjdk.182560</pub-id>.</mixed-citation></ref>
<ref id="ref-29"><label>29.</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>&#x010C;ori&#x0107;</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>&#x0110;umi&#x0107;</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Jakobovi&#x0107;</surname>, <given-names>D.</given-names></string-name></person-group> (<year>2017</year>). <article-title>Complexity comparison of integer programming and genetic algorithms for resource constrained scheduling problems</article-title>. <conf-name>2017 40th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO)</conf-name>, pp. <fpage>1182</fpage>&#x2013;<lpage>1188</lpage>. <publisher-loc>Croatia</publisher-loc>. DOI <pub-id pub-id-type="doi">10.23919/MIPRO.2017.7973603</pub-id>.</mixed-citation></ref>
<ref id="ref-30"><label>30.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Snauwaert</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Vanhoucke</surname>, <given-names>M.</given-names></string-name></person-group> (<year>2021</year>). <article-title>A new algorithm for resource-constrained project scheduling with breadth and depth of skills</article-title>. <source>European Journal of Operational Research</source><italic>,</italic> <volume>292</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>43</fpage>&#x2013;<lpage>59</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.ejor.2020.10.032</pub-id>.</mixed-citation></ref>
<ref id="ref-31"><label>31.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Fahmy</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Hassan</surname>, <given-names>T. M.</given-names></string-name>, <string-name><surname>Bassioni</surname>, <given-names>H.</given-names></string-name></person-group> (<year>2014</year>). <article-title>Improving RCPSP solutions quality with Stacking justification--Application with particle swarm optimization</article-title>. <source>Expert Systems with Applications</source><italic>,</italic> <volume>41</volume><italic>(</italic><issue>13</issue><italic>),</italic> <fpage>5870</fpage>&#x2013;<lpage>5881</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.eswa.2014.03.027</pub-id>.</mixed-citation></ref>
<ref id="ref-32"><label>32.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Jin</surname>, <given-names>Q.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Zhao</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Cao</surname>, <given-names>L.</given-names></string-name></person-group> (<year>2014</year>). <article-title>HPSO algorithm with high speed convergent based on particle health degree</article-title>. <source>Applied Mathematics Information Sciences</source><italic>,</italic> <volume>8</volume><italic>(</italic><issue>4</issue><italic>),</italic> <fpage>1809</fpage>&#x2013;<lpage>1821</lpage>. DOI <pub-id pub-id-type="doi">10.12785/amis/080438</pub-id>.</mixed-citation></ref>
<ref id="ref-33"><label>33.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Chen</surname>, <given-names>P. H.</given-names></string-name>, <string-name><surname>Weng</surname>, <given-names>H.</given-names></string-name></person-group> (<year>2009</year>). <article-title>A two-phase GA model for resource-constrained project scheduling</article-title>. <source>Automation in Construction</source><italic>,</italic> <volume>18</volume><italic>(</italic><issue>4</issue><italic>),</italic> <fpage>485</fpage>&#x2013;<lpage>498</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.autcon.2008.11.003</pub-id>.</mixed-citation></ref>
<ref id="ref-34"><label>34.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hartmann</surname>, <given-names>S.</given-names></string-name></person-group> (<year>2001</year>). <article-title>Project scheduling with multiple modes: A genetic algorithm</article-title>. <source>Annals of Operations Research</source><italic>,</italic> <volume>102</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>111</fpage>&#x2013;<lpage>135</lpage>. DOI <pub-id pub-id-type="doi">10.1023/A:1010902015091</pub-id>.</mixed-citation></ref>
<ref id="ref-35"><label>35.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Ghoddousi</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Eshtehardian</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Jooybanpour</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Javanmardi</surname>, <given-names>A.</given-names></string-name></person-group> (<year>2013</year>). <article-title>Multi-mode resource-constrained discrete time-cost-resource optimization in project scheduling using non-dominated sorting genetic algorithm</article-title>. <source>Automation in Construction</source><italic>,</italic> <volume>30</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>216</fpage>&#x2013;<lpage>227</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.autcon.2012.11.014</pub-id>.</mixed-citation></ref>
</ref-list>
</back>
</article>
















