<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Public Health</journal-id>
<journal-title>Frontiers in Public Health</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Public Health</abbrev-journal-title>
<issn pub-type="epub">2296-2565</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fpubh.2021.657276</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Public Health</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Research on the Allocation of 3D Printing Emergency Supplies in Public Health Emergencies</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>He</surname> <given-names>Jianjia</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/969564/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Liu</surname> <given-names>Gang</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Mai</surname> <given-names>Thi Hoai Thuong</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1202738/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Li</surname> <given-names>Ting Ting</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Business School, University of Shanghai for Science of Technology</institution>, <addr-line>Shanghai</addr-line>, <country>China</country></aff>
<aff id="aff2"><sup>2</sup><institution>Super Network Research Center (China)</institution>, <addr-line>Shanghai</addr-line>, <country>China</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Jing He, Shanghai Ocean University, China</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Xuping Wang, Dalian University of Technology, China; Junhu Ruan, Northwest a and F University, China; Nengmin Wang, Xi&#x00027;an Jiaotong University, China</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Jianjia He <email>hejianjia&#x00040;usst.edu.cn</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to Disaster and Emergency Medicine, a section of the journal Frontiers in Public Health</p></fn></author-notes>
<pub-date pub-type="epub">
<day>26</day>
<month>03</month>
<year>2021</year>
</pub-date>
<pub-date pub-type="collection">
<year>2021</year>
</pub-date>
<volume>9</volume>
<elocation-id>657276</elocation-id>
<history>
<date date-type="received">
<day>25</day>
<month>01</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>03</day>
<month>03</month>
<year>2021</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2021 He, Liu, Mai and Li.</copyright-statement>
<copyright-year>2021</copyright-year>
<copyright-holder>He, Liu, Mai and Li</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license>
</permissions>
<abstract><p>Significant public health emergencies greatly impact the global supply chain system of production and cause severe shortages in personal protective and medical emergency supplies. Thus, rapid manufacturing, scattered distribution, high design degrees of freedom, and the advantages of the low threshold of 3D printing can play important roles in the production of emergency supplies. In order to better realize the efficient distribution of 3D printing emergency supplies, this paper studies the relationship between supply and demand of 3D printing equipment and emergency supplies produced by 3D printing technology after public health emergencies. First, we fully consider the heterogeneity of user orders, 3D printing equipment resources, and the characteristics of diverse production objectives in the context of the emergent public health environment. The multi-objective optimization model for the production of 3D printing emergency supplies, which was evaluated by multiple manufacturers and in multiple disaster sites, can maximize time and cost benefits of the 3D printing of emergency supplies. Then, an improved non-dominated sorting genetic algorithm (NSGA-II) to solve the multi-objective optimization model is developed and compared with the traditional NSGA-II algorithm analysis. It contains more than one solution in the Pareto optimal solution set. Finally, the effectiveness of 3D printing is verified by numerical simulation, and it is found that it can solve the matching problem of supply and demand of 3D printing emergency supplies in public health emergencies.</p></abstract>
<kwd-group>
<kwd>public health emergencies</kwd>
<kwd>3D printing</kwd>
<kwd>dispatch of emergency supplies</kwd>
<kwd>multi-objective optimization</kwd>
<kwd>improved NSGA-II algorithm</kwd>
</kwd-group>
<contract-sponsor id="cn001">National Natural Science Foundation of China<named-content content-type="fundref-id">10.13039/501100001809</named-content></contract-sponsor>
<contract-sponsor id="cn002">University of Shanghai for Science and Technology<named-content content-type="fundref-id">10.13039/501100008050</named-content></contract-sponsor>
<counts>
<fig-count count="5"/>
<table-count count="6"/>
<equation-count count="13"/>
<ref-count count="24"/>
<page-count count="11"/>
<word-count count="6440"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>Introduction</title>
<p>In recent years, there has been a series of public health emergencies around the world, such as SARS, influenza A (H1N1), Escherichia coli outbreaks in Europe, Ebola in West Africa, and COVID-19. In particular, the recent Covid-19 epidemic has basically affected the whole society, including health care, economic structure and social relationships. A global response included countries and states have instituted lockdowns, businesses closed down and some of the supplies appeared to be in a state of shortage. For instance, Personal protective equipment lacks supply capacity. As a result, this leaves both the patient and the caregiver in high-risk situations. Recently, the health and wellness sector has begun to look into how 3DP can help address global needs (<xref ref-type="bibr" rid="B1">1</xref>&#x02013;<xref ref-type="bibr" rid="B3">3</xref>).</p>
<p>The outbreak of public health emergencies not only seriously endangers people&#x00027;s health and safety but also has a significant impact on social and economic development. Faced with the outbreak of all kinds of unconventional public health emergencies, it is necessary to realize efficient production plans for emergency supplies. Three-dimensional printing by the method of computer-aided design stratification can use digital information in the production practice, mainly by the method of one-by-one printing to accelerate production, also known as the increase in material manufacturing (<xref ref-type="bibr" rid="B4">4</xref>&#x02013;<xref ref-type="bibr" rid="B6">6</xref>). This method has the characteristics of distributed manufacturing and digital manufacturing (<xref ref-type="bibr" rid="B7">7</xref>); is applicable to small batches, complex shapes, and customized orders tasks (<xref ref-type="bibr" rid="B8">8</xref>); and is widely used in industrial manufacturing, aviation, food, sports, and other fields (<xref ref-type="bibr" rid="B9">9</xref>, <xref ref-type="bibr" rid="B10">10</xref>). 3D printing technology is the epitome of &#x0201C;digital intelligent nature,&#x0201D; which has the advantage of one-time molding. The printed products do not need to be assembled again, thus shortening the supply chain, saving a lot of labor, and realizing unmanned production. In the context of public health emergencies, 3D printing is useful, as it can quickly produce medical goggles and respiratory masks. At the same time, in such unique periods, 3D printing technology can also realize unmanned manufacturing, so as to curb the spread of the epidemic. Among the aerospace engineering alliance companies, GKN and Renishaw will provide expertise in 3D printing, according to 3D Science Valley&#x00027;s market watch. Volkswagen has also set up a task force to study how 3D printing can make parts for hospital ventilators and other medical supplies. In addition, a European consortium that includes the engineering firm Leitat, 3D printing firm HP, and medical institutions has tested the prototype LeitAT-1, the first large 3D printing ventilator, which is industrially scalable and could reach production capacity of 50 to 100 units per day within a week. HP, an industrial-scale multi-jet molten 3D printing company in the Leitat ventilator development program, has mobilized the company&#x00027;s in-house 3D printing team and HP digital manufacturing partners to network design, validate, and pro-duce essential parts for medical responders and hospitals, including ventilation valves, breathing filters, and mask fasteners. During the same period, an Irish organization launched the Open Source Ventilator (OSV) project, which aims to develop medical supplies related to the treatment of the COVID-19 outbreak.</p>
<p>Therefore, 3D printing technology can be used to rapidly produce emergency supplies such as masks and goggles, so as to ensure the supply of emergency supplies after disasters. At present, the means of provision of emergency supplies after a disaster include reserve, emergency production, social donation, emergency procurement, international assistance, etc. Among them, the mobilization of stock, social donations, emergency procurement, and international assistance can be seen as the main mobilization of stock. Therefore, many researchers focus on the distribution of emergency supplies (<xref ref-type="bibr" rid="B11">11</xref>&#x02013;<xref ref-type="bibr" rid="B15">15</xref>). For example, Ekici et al. (<xref ref-type="bibr" rid="B16">16</xref>) established a combination optimization model of epidemic spread and food distribution location selection for the scheduling of various emergency resources, and designed a heuristic algorithm to solve large-scale practical problems. He and Liu (<xref ref-type="bibr" rid="B17">17</xref>) designed the emergency demand prediction model and the unmet demand penalty function based on the SEIR model, and established a linear programming model of the epidemic emergency logistics network based on this. Liu and Zhang (<xref ref-type="bibr" rid="B18">18</xref>) constructed an inter-active coordination optimization model for dynamic ordering and distribution of medical resources among hospitals, distribution centers, and suppliers in the context of influenza spread. Zhan et al. (<xref ref-type="bibr" rid="B12">12</xref>) developed a multi-objective optimization model based on disaster scenario information update with the aim of tackling the emergency distribution problem of multiple suppliers, multiple disaster sites, multiple emergency materials, and multiple vehicles in emergency logistics. Alem et al. (<xref ref-type="bibr" rid="B15">15</xref>) constructed new two-stage random network traffic models and incorporated the characteristics of procurement, vehicles, lead time, and budget allocation into the models. Scholars have achieved fruitful results in the study of emergency supply distribution. However, if the mobilization of all stocks fails to meet the needs of the affected areas, policy makers need to consider emergency production as a means of securing emergency supplies. For example, after an earthquake in China, in order to meet the living needs of the people in the affected areas, aided provinces were required to carry out production tasks. Although the emergency production tasks of mobile plank houses were successfully completed in the end, many problems also occurred during the implementation process. For example, some places did not have the production capacity or prefabricated houses, while production carried out far away from the quake-hit points suffered from limited coordination and optimization of resource use due to the necessity of adopting different modes of production and sending personnel to different areas. Therefore, many researchers also focus on the utilization of capacity reserve to solve the problem of emergency production. Whybark (<xref ref-type="bibr" rid="B19">19</xref>) pointed out that the balance between inventory reserve and emergency production capacity reserve should be considered, and production capacity reserve can effectively reduce the inventory level. In addition to the above research on the production capacity reserve of emergency supplies, Chakravarty (<xref ref-type="bibr" rid="B20">20</xref>) focused on the rapid response of humanitarian relief supply chains under uncertain conditions and determined the supply and supply time of emergency supplies after disasters. Sheu and Pan (<xref ref-type="bibr" rid="B21">21</xref>) established a stochastic dynamic programming model of material supply through a two-layer recursive function. Wang et al. (<xref ref-type="bibr" rid="B22">22</xref>) used option contracts to coordinate the emergency supply chain and realized Pareto improvement in order to solve the problem of shortage of emergency supplies and high purchase prices. Therefore, how to match 3D printing emergency supplies with 3D printing equipment for production and maximize the cost and time benefit of disaster-affected users has become an urgent problem to be solved. Luo et al. (<xref ref-type="bibr" rid="B23">23</xref>) is based on the cloud manufacturing paradigm, this study focuses on dynamic and static data based matching method for cloud 3D printing.</p>
<p>Many scholars have studied the scheduling of 3D printing tasks, and there are many effective scheduling methods. However, at present, some scholars only consider one goal, while users generally consider multiple factors comprehensively when choosing 3D printing services. In addition, a few scholars considered a variety of factors, but these scholars generally used the method of additional weight to transform multiple targets into a single target for solving, and the method of additional weight is subjective to a certain extent. Therefore, under full consideration of emergent public health events in relation to the 3D printing of emergency supplies and their characteristics, as well as the cost and time needed for their production, a combined scheduling model of emergency supplies is established, and it is solved with the improved NSGA-II algorithm and multiple non-inferior solution set. After the contribution of this paper is to improve the NSGA-II algorithm is applied to by 3D printing equipment in the production of emergency supplies distribution field. At the same time, the multi-objective optimization problem is also solved.</p>
<p>The remainder of this article is organized as follows: the second part discusses the 3D-printed emergency material scheduling model in the context of public health emergencies; the third part provides an improved NSGA-II algorithm; in the fourth part, an example is given to verify the effectiveness of the proposed method; finally, the fifth part provides the conclusion and briefly discusses further research work.</p></sec>
<sec id="s2">
<title>Scheduling Model of 3D-Printed Emergency Supplies in the Context of Public Health Emergencies</title>
<sec>
<title>Problem Description and Model Assumptions</title>
<p>After an emergency occurs, emergency reserve is the preferred way to raise emergency supplies. When supplies are in short supply, they can also be supplemented by direct requisition, market procurement, organization donation, and other fund-raising methods. However, after a major emergency (especially a major natural disaster) occurs, due to the large area and large population affected by the disaster, the emergency supplies collected only by the above means may not be able to meet the emergency needs; thus, relevant manufacturers need to be urgently mobilized for emergency production. In order to successfully complete the emergency production task, manufacturers with a strong emergency material production capacity and close to the disaster site should be selected. If the raw material reserves of manufacturers are insufficient, suppliers with a strong raw material supply capacity and close to the manufacturers should also be selected as the manufacturers. The purpose of this paper is to build a mathematical model considering the above conditions and provide an emergency production plan and emergency material supply plan with the shortest task times and the lowest costs. Due to the complexity of the production situation in emergency situations, the following assumption are proposed:</p>
<list list-type="simple">
<list-item><p>(1) The time and unit transportation costs of materials delivered by each 3D printing supplier to each affected user are known;</p></list-item>
<list-item><p>(2) The production capacity per unit time of 3D printing manufacturers is known;</p></list-item>
<list-item><p>(3) After all emergency supplies are produced by 3D printing manufacturers, they will transport them to the affected users.</p></list-item>
</list></sec>
<sec>
<title>Mathematical Model</title>
<p>For<italic>I</italic>manufacturing tasks <italic>T</italic><sub>1</sub>, <italic>T</italic><sub>2</sub>, <italic>T</italic><sub>3</sub>,<inline-formula><mml:math id="M1"><mml:msubsup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> and<italic>J</italic>manufacturing service providers <italic>M</italic><sub>1</sub>, <italic>M</italic><sub>2.</sub> <italic>M</italic><sub>3</sub>, <italic>M</italic> <sub><italic>j</italic></sub>, the multi-objective function and constraint mathematical model are used to describe the 3D printing emergency material scheduling in public health emergencies. In this article, we assume that a print-type manufacturing service can only perform subtasks of a specific print type, and that a manufacturer can receive multiple subtasks of the same type simultaneously. <xref ref-type="table" rid="T1">Table 1</xref> shows the definitions of the symbols used in the integrated scheduling model.</p>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Main mathematical notations.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Notation</bold></th>
<th valign="top" align="left"><bold>Definition</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><italic>J</italic></td>
<td valign="top" align="left">Total number of 3D printing services</td>
</tr>
<tr>
<td valign="top" align="left"><italic>M</italic><sub><italic>j</italic></sub></td>
<td valign="top" align="left">The i-th 3D printing service</td>
</tr>
<tr>
<td valign="top" align="left"><italic>X</italic><sub><italic>j</italic></sub></td>
<td valign="top" align="left">The abscissa of the position of <italic>M</italic><sub><italic>j</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><italic>Y</italic><sub><italic>j</italic></sub></td>
<td valign="top" align="left">The ordinate of the position of <italic>M</italic><sub><italic>j</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><italic>U</italic><sub><italic>j</italic></sub></td>
<td valign="top" align="left">The length of <italic>M</italic><sub><italic>j</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><italic>V</italic><sub><italic>j</italic></sub></td>
<td valign="top" align="left">The width of <italic>M</italic><sub><italic>j</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><italic>W</italic><sub><italic>j</italic></sub></td>
<td valign="top" align="left">The height of <italic>M</italic><sub><italic>j</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><italic>S</italic><sub><italic>j</italic></sub></td>
<td valign="top" align="left">The printing material type of <italic>M</italic><sub><italic>j</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><italic>P</italic><sub><italic>j</italic></sub></td>
<td valign="top" align="left">The printing accuracy of <italic>M</italic><sub><italic>j</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><inline-formula><mml:math id="M2"><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula></td>
<td valign="top" align="left">Printing cost of unit task on <italic>M</italic><sub><italic>j</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><inline-formula><mml:math id="M3"><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula></td>
<td valign="top" align="left">Printing speed of unit task on <italic>M</italic><sub><italic>j</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><italic>I</italic></td>
<td valign="top" align="left">Total number of 3D printing Order</td>
</tr>
<tr>
<td valign="top" align="left"><italic>T</italic><sub><italic>i</italic></sub></td>
<td valign="top" align="left">The i-th 3D printing Order</td>
</tr>
<tr>
<td valign="top" align="left"><italic>x</italic><sub><italic>i</italic></sub></td>
<td valign="top" align="left">The abscissa of the position of<italic>T</italic><sub><italic>i</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><italic>y</italic><sub><italic>i</italic></sub></td>
<td valign="top" align="left">The ordinate of the position of <italic>T</italic><sub><italic>i</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><italic>u</italic><sub><italic>i</italic></sub></td>
<td valign="top" align="left">The length of <italic>T</italic><sub><italic>i</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><italic>v</italic><sub><italic>i</italic></sub></td>
<td valign="top" align="left">The width of <italic>T</italic><sub><italic>i</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><italic>w</italic><sub><italic>i</italic></sub></td>
<td valign="top" align="left">The height of <italic>T</italic><sub><italic>i</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><italic>s</italic><sub><italic>i</italic></sub></td>
<td valign="top" align="left">Required material type of <italic>T</italic><sub><italic>i</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><italic>p</italic><sub><italic>i</italic></sub></td>
<td valign="top" align="left">Required accuracy of <italic>T</italic><sub><italic>i</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left"><inline-formula><mml:math id="M4"><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula></td>
<td valign="top" align="left">The Weight of <italic>T</italic><sub><italic>i</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left">&#x003B1;</td>
<td valign="top" align="left">Logistic time between unit distance</td>
</tr>
<tr>
<td valign="top" align="left">&#x003B2;</td>
<td valign="top" align="left">Logistic cost of unit task between unit distance</td>
</tr>
</tbody>
</table>
</table-wrap></sec>
<sec>
<title>Objective Function</title>
<p>(1) We assume that there are multiple disaster-affected users with different needs for 3D printing emergency supplies at the same time. The order set of 3D printing emergency supplies is <italic>T</italic> &#x0003D; {<italic>T</italic><sub>1</sub>, <italic>T</italic><sub>2</sub>, &#x022EF;, <italic>T</italic><sub><italic>i</italic></sub>}, and the set of 3D printing equipment is <italic>M</italic> &#x0003D; {<italic>M</italic><sub>1</sub>, <italic>M</italic><sub>2</sub>, &#x022EF;, <italic>M</italic><sub><italic>j</italic></sub>}. The first goal of the scheduling model for 3D-printed emergency material in public health emergencies is to minimize the cost of emergency materials. In the formula, the cost of emergency supplies is composed of the printing cost of each item of 3D printing equipment and the transportation cost in the logistics process. The transportation cost is the sum of the product of the distance between the affected user and service provider and the logistics cost factor. Its objective function is as follows:</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M5"><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mi>min</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>i</mml:mi></mml:munderover><mml:mrow><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>j</mml:mi></mml:munderover><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>t</mml:mi><mml:mi>j</mml:mi></mml:msubsup><mml:msubsup><mml:mi>T</mml:mi><mml:mi>i</mml:mi><mml:mi>w</mml:mi></mml:msubsup><mml:msubsup><mml:mi>M</mml:mi><mml:mi>j</mml:mi><mml:mi>c</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>w</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mi>&#x003B2;</mml:mi><mml:msqrt><mml:mrow><mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>Y</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:mrow></mml:mstyle></mml:mrow></mml:math></disp-formula>
<p>(2) The second goal of the scheduling model for 3D-printed emergency supplies in public health emergencies is to minimize the time of emergency supplies. In the formula, the time of emergency supplies is composed of the processing time of each item of 3D printing equipment and the transportation time in the logistics process. The transportation time is the sum of the distance between the affected demander and service provider and the logistics speed factor. Its objective function is:</p>
<disp-formula id="E2"><label>(2)</label><mml:math id="M6"><mml:mtable class="eqnarray" columnalign="left left left"><mml:mtr><mml:mtd><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo class="qopname">min</mml:mo></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>I</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>J</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msubsup><mml:mfrac><mml:mrow><mml:msubsup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mrow><mml:msubsup><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:mfrac><mml:mo>&#x0002B;</mml:mo><mml:mfrac><mml:mrow><mml:msqrt><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>Y</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:msqrt></mml:mrow><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
</sec>
<sec>
<title>Constraints</title>
<disp-formula id="E3"><label>(3)</label><mml:math id="M7"><mml:mtable class="eqnarray" columnalign="left left left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:msub><mml:mrow><mml:mi>U</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E4"><label>(4)</label><mml:math id="M8"><mml:mtable class="eqnarray" columnalign="left left left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E5"><label>(5)</label><mml:math id="M9"><mml:mtable class="eqnarray" columnalign="left left left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:msub><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E6"><label>(6)</label><mml:math id="M10"><mml:mtable class="eqnarray" columnalign="left left left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E7"><label>(7)</label><mml:math id="M11"><mml:mtable class="eqnarray" columnalign="left left left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E8"><label>(8)</label><mml:math id="M12"><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02264;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x02264;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02264;</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x02264;</mml:mo><mml:mi>J</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>Equation (3), (4), and (5) indicate that the length, width, and height of the order task are less than or equal to the length, width and height of the 3D printing device, respectively; Equation (6) indicates that the type of the 3D printing device is the same as the required device type of the order; Equation (7) indicates that the printing accuracy of the 3D printing device is less than or equal to the accuracy required by the order; Equation (8) indicates that the order number and the 3D printing equipment number are less than or equal to the order number and the 3D printing equipment number, respectively.</p></sec>
<sec>
<title>Decision Variables</title>
<p><inline-formula><mml:math id="M13"><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is a variable of 0&#x02013;1. If the i-th order matches the k-th 3D printing device, then; otherwise, it is 0.</p></sec></sec>
<sec id="s3">
<title>Solving the Multi-Objective Optimization Model</title>
<p>The NSGA-II algorithm (<xref ref-type="bibr" rid="B24">24</xref>) introduces a fast non-dominated sorting method, which reduces the computational complexity and has an elite retention strategy. Using crowding distance instead of specifying shared parameters improves the computational efficiency and is a better algorithm to solve multi-objective optimization problems. In the crossover process of the former non-dominated sorting genetic algorithm (NSGA-II), the simulated binary crossover operator (SBX) is commonly used to generate offspring. However, on the surface of a large number of studies, the SBX method cannot avoid the problems of a limited search scope and instability in the evolution process in some cases. At the same time, the NSGA-II algorithm is prone to premature and other phenomena in the optimization process. When directly applied, it often leads to uneven distribution of Pareto front.</p>
<sec>
<title>Improvement of NSGA-II</title>
<p>In this paper, an improved NSGA-II algorithm is used to solve the scheduling model for 3D printing tasks. This method is improved by two aspects based on the traditional non-dominated sorting genetic algorithm.</p></sec>
<sec>
<title>Introducing the Normal Distribution Crossover Operator (NDX)</title>
<p>The NSGA-II algorithm operating SBX operators are adopted to simulate the evolution process of binary crossover operator, individual creation way as shown in type (9), <italic>a</italic> is a random variable, because of the search scope is limited, easy to appear the problem such as local optimum and evolutionary process is not stable. In view of the deficiency of SBX operator, the normal distribution is introduced into the crossover operator SBX, That is 1.481 replaces <italic>a</italic> to expand the search space, as shown in Equation (10). In order to further enhance the spatial search capability, the discrete recombination operation of evolutionary strategy is introduced into Equation (11).</p>
<p>In this paper, the NDX operator is introduced into the NSGA-II algorithm. The Pareto optimal solution can be uniformly extended to the whole Pareto domain, ensuring the diversity of the population and improving the quality of the Pareto optimal solution. This algorithm is applied to 3D printing task scheduling, which not only pro-vides as many representative non-inferior solutions as possible for the 3D printing service platform but also facilitates it to make more reasonable decisions.</p>
<disp-formula id="E9"><label>(9)</label><mml:math id="M14"><mml:mtable class="eqnarray" columnalign="left left left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>o</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo>&#x000B1;</mml:mo><mml:mfrac><mml:mrow><mml:mi>a</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Assuming the parent generation and the NDX is used to generate the child generation <italic>o</italic><sub>1</sub>and . For the <italic>i</italic> variable, the crossover process is as follows: a random number <italic>r</italic> &#x02208; (0, 1) is generated</p>
<disp-formula id="E10"><label>(10)</label><mml:math id="M15"><mml:mtable class="eqnarray" columnalign="left left left"><mml:mtr><mml:mtd><mml:mi>W</mml:mi><mml:mi>h</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>r</mml:mi><mml:mo>&#x02264;</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>5</mml:mn><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:msub><mml:mrow><mml:mi>o</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo>&#x000B1;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn><mml:mo>.</mml:mo><mml:mn>481</mml:mn><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo><mml:mi>N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E12"><label>(11)</label><mml:math id="M17"><mml:mtable class="eqnarray" columnalign="left left left"><mml:mtr><mml:mtd><mml:mi>W</mml:mi><mml:mi>h</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>r</mml:mi><mml:mo>&#x02264;</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>5</mml:mn><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:msub><mml:mrow><mml:mi>o</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo>&#x02213;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn><mml:mo>.</mml:mo><mml:mn>481</mml:mn><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo><mml:mi>N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Type:<italic>o</italic><sub>1,<italic>i</italic></sub> is the <italic>i</italic> th variable on the progeny chromosome; <italic>p</italic><sub>1,<italic>i</italic></sub> and <italic>p</italic><sub>2,<italic>i</italic></sub> is the <italic>i</italic> th variable on the paternal chromosome. When|<italic>N</italic>(0, 1)|is a normal distribution random variable.</p></sec>
<sec>
<title>Improvement of Congestion Distance in the NSGA-II Algorithm</title>
<p>Crowding distance has an important influence on the diversity of the population of the NSGA-II algorithm. Good population diversity not only enables individuals to have good uniform distribution characteristics but also keeps a certain distance between individuals. f<sub>1</sub>and f<sub>2</sub>are the two objective functions of the problem as showed in <xref ref-type="fig" rid="F1">Figure 1</xref>. After the N th iteration using the NSGA-II algorithm, the distribution of individuals in the population is as shown in <xref ref-type="fig" rid="F1">Figure 1</xref>, where individuals <italic>Z</italic><sub><italic>i</italic>&#x02212;1</sub>, and <italic>Z</italic><sub><italic>i</italic>&#x0002B;1</sub>are all non-dominated solutions of the first layer. Then, the crowding distance of the individual is the sum of the distances between the former <italic>Z</italic><sub><italic>i</italic>&#x02212;1</sub>and the latter <italic>Z</italic><sub><italic>i</italic>&#x0002B;1</sub> on the two objective functions, which is <italic>a</italic>&#x0002B;<italic>b</italic>. In order to ignore the difference between different objective function value domains, it is also necessary to divide the difference between the extreme points in this hierarchy.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>Calculation method of individual crowded distance in the NSGA-II algorithm.</p></caption>
<graphic xlink:href="fpubh-09-657276-g0001.tif"/>
</fig>
<p>From this, it can be concluded that when there are k objective functions, the crowding distance <italic>d</italic>[<italic>Z</italic><sub><italic>i</italic></sub>] of individual is calculated by Equation (12), and the distribution among individuals is evaluated based on this.</p>
<disp-formula id="E14"><label>(12)</label><mml:math id="M19"><mml:mtable class="eqnarray" columnalign="left left left"><mml:mtr><mml:mtd><mml:mi>d</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mtext class="textrm" mathvariant="normal">=</mml:mtext><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mfrac><mml:mrow><mml:mo>|</mml:mo><mml:mi>f</mml:mi><mml:msub><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mi>f</mml:mi><mml:msub><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x02212;</mml:mo><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mo class="qopname">min</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where m is the dimension of the target; <italic>f</italic>(<sub><italic>Z</italic><sub><italic>i</italic>&#x0002B;1</sub>)<italic>m</italic></sub> and <italic>f</italic>(<sub><italic>Z</italic><sub><italic>i</italic>&#x02212;1</sub>)<italic>m</italic></sub> are the fitness values of the <italic>Z</italic><sub><italic>i</italic>&#x0002B;1</sub> and <italic>Z</italic><sub><italic>i</italic>&#x02212;1</sub> individuals to the m-th target, respectively and <inline-formula><mml:math id="M20"><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mo class="qopname">min</mml:mo></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> are the maximum and minimum fitness values of the M th target in the same distribution layer, respectively.</p>
<p>The introduction of crowding distance can make the distribution of the optimal solution more uniform and maintain the diversity of the population. As shown in <xref ref-type="fig" rid="F2">Figure 2</xref>, however, this strategy also has some drawbacks:</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>Population individual distribution map.</p></caption>
<graphic xlink:href="fpubh-09-657276-g0002.tif"/>
</fig>
<p>(1) If the number of individuals in the current non-dominated set is greater than the specified population number, the surplus individuals are eliminated at one time according to the crowding distance from small to large. This strategy is somewhat crude, as only one population maintenance process needs to calculate the crowding distance of individuals once. If all individuals with small crowding distance are eliminated at one time, there will be individual deletions among individuals, making the distribution of solutions poor.</p>
<p>(2) At the same level, when point A and point B are relatively crowded, point B is eliminated according to the exclusion mechanism of the current NSGA-II algorithm, thus preserving point A. However, in the actual whole population distribution, because there are more individuals in the upper layer around A, it is not necessarily the best selection strategy to keep point A. It can be seen that the crowding mechanism based on crowding distance cannot view the density around individuals from the perspective of the whole population distribution.</p>
<p>With the aim of shortening the congestion distance mentioned above, this paper proposes a diversity maintenance strategy called dynamic congestion distance. For the first deficiency, this paper adopts the following strategy: in the process of population maintenance, the remaining crowding distance in the population is recalculated for each individual eliminated. For the second deficiency, the dynamic congestion distance of individual<italic>Z</italic><sub><italic>i</italic></sub> is calculated according to the following formula:</p>
<disp-formula id="E15"><label>(13)</label><mml:math id="M21"><mml:mtable class="eqnarray" columnalign="left left left"><mml:mtr><mml:mtd><mml:mi>d</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo class="qopname">lg</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>/</mml:mo><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Where <inline-formula><mml:math id="M22"><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:mfrac><mml:mstyle displaystyle='true'><mml:munderover><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mi>f</mml:mi><mml:msub><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mi>f</mml:mi><mml:msub><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> is the variance of crowding distance between individuals <italic>Z</italic><sub><italic>i</italic></sub> adjacent to targets in all dimensions. The larger the variance, the sparser the distribution among individuals but the closer the distribution. Through the dynamic crowding distance method, individuals with small difference values are eliminated, and individuals with large difference values are retained, thus greatly improving the diversity of the algorithm population.</p></sec>
<sec>
<title>Improvement to the Execution Process of the NSGA-II Algorithm</title>
<p>The improvement of the NSGA-II algorithm is achieved with the following steps:</p>
<p>Step 1: In the 3D printing emergency resource scheduling, each 3D printing emergency material <italic>T</italic><sub><italic>i</italic></sub> corresponds to an alternative set of 3D printing equipment<italic>M</italic><sub><italic>j</italic></sub>allowing real number coding to be adopted. The coding rules are as follows: each 3D printing emergency material <italic>T</italic><sub><italic>i</italic></sub> is numbered 1, 2, 3, etc. t; each chromosome of the genetic algorithm is composed of t genes; and each gene represents a 3D-printed emergency supply. There are m items of 3D printing equipment in the form of service providers, and t 3D printing emergency orders are allocated to m 3D printing equipment. In the process of scheduling emergency supplies, each item of 3D printing equipment can produce multiple 3D printing emergency supplies, but each 3D printing emergency supply can only be allocated to a single piece of 3D printing equipment.</p>
<p>The value on each gene of the initial individual is randomly generated from the alternative 3D printing equipment<italic>M</italic><sub><italic>j</italic></sub> for 3D printing emergency supplies. The encoded chromosome structure is shown in <xref ref-type="fig" rid="F3">Figure 3</xref>. The gene position represents distributed 3D printing emergency supplies <italic>T</italic><sub><italic>i</italic></sub> and the gene value represents the 3D printing equipment produced by it as shown in <xref ref-type="fig" rid="F3">Figure 3</xref>.</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>Chromosome coding diagram.</p></caption>
<graphic xlink:href="fpubh-09-657276-g0003.tif"/>
</fig>
<p>Step 2: The initial population of N individuals is randomly generated under the constraint conditions of Equations (3)&#x02013;(7), and the evolutionary algebra <italic>n</italic> = 0.</p>
<p>Step 3: According to fitness functions (1) and (2), fast non-dominant sorting was conducted for all population individuals, and the crowding degree of each population individual was calculated.</p>
<p>Step 4: Randomly selected individuals in population<italic>P</italic><sub><italic>n</italic></sub> were selected by the binary championship selection operation, crossover of NDX operators, and mutation to produce offspring <italic>X</italic><sub><italic>n</italic></sub>.</p>
<p>Step 5: <italic>P</italic><sub><italic>n</italic></sub> and <italic>X</italic><sub><italic>n</italic></sub>are merged to produce <italic>Q</italic><sub><italic>n</italic></sub>and calculate the value of the objective function, and a quick non-dominant sort operation on <italic>Q</italic><sub><italic>n</italic></sub>is performed.</p>
<p>Step 6: By calculating the crowding degree and crowding distance of individuals in <italic>Q</italic><sub><italic>n</italic></sub> (adopting the improved crowding distance mentioned above), the optimal N individuals are formed into a new generation population <italic>P</italic><sub><italic>n</italic>&#x0002B;1</sub>.</p>
<p>The improved NSGA-II algorithm was used to solve the scheduling flow diagram of the distributed 3D printing emergency supplies, as shown in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p>Improved NSGA-II flow chart.</p></caption>
<graphic xlink:href="fpubh-09-657276-g0004.tif"/>
</fig></sec></sec>
<sec id="s4">
<title>Example Analysis</title>
<sec>
<title>Example Description and Parameter Setting</title>
<p>The feasibility and validity of the model and algorithm are verified by an example. The parameter settings are shown in <xref ref-type="table" rid="T2">Table 2</xref>. The manufacturer has 20 pieces of 3D printing equipment, and the equipment information is shown in <xref ref-type="table" rid="T3">Table 3</xref>. We assumed that there are 50 different 3D printed emergency supplies from the affected demanders, and the specific information of the emergency supplies is shown in <xref ref-type="table" rid="T4">Table 4</xref>.</p>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>Experimental parameter setting.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Parameter</bold></th>
<th valign="top" align="center"><bold>Value range</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><italic>J</italic></td>
<td valign="top" align="center">20</td>
</tr>
<tr>
<td valign="top" align="left"><italic>I</italic></td>
<td valign="top" align="center">50</td>
</tr>
<tr>
<td valign="top" align="left">&#x003B1;</td>
<td valign="top" align="center">20 km/h</td>
</tr>
<tr>
<td valign="top" align="left">&#x003B2;</td>
<td valign="top" align="center">3.5&#x000A5;/km</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T3">
<label>Table 3</label>
<caption><p>3D printing device information.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>ID of 3D printer</bold></th>
<th valign="top" align="center"><bold><italic>S</italic><sub><italic>j</italic></sub></bold></th>
<th valign="top" align="center"><bold><italic>P</italic><sub><italic>j</italic></sub>(<italic>mm</italic>)</bold></th>
<th valign="top" align="center"><inline-formula><mml:math id="M23"><mml:mstyle mathvariant="bold"><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>&#x000A5;<bold>/<italic>g</italic>)</bold></th>
<th valign="top" align="left"><bold><inline-formula><mml:math id="M24"><mml:mstyle mathvariant="bold"><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>/</mml:mo><mml:mi>h</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula></bold></th>
<th valign="top" align="center"><bold><italic>U</italic><sub><italic>j</italic></sub>(<italic>m</italic>)</bold></th>
<th valign="top" align="center"><bold><italic>V</italic><sub><italic>j</italic></sub>(<italic>m</italic>)</bold></th>
<th valign="top" align="center"><bold><italic>W</italic><sub><italic>j</italic></sub>(<italic>m</italic>)</bold></th>
<th valign="top" align="center"><bold><italic>X</italic><sub><italic>j</italic></sub>(<italic>km</italic>)</bold></th>
<th valign="top" align="center"><bold><italic>Y</italic><sub><italic>j</italic></sub>(<italic>km</italic>)</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">1</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.01</td>
<td valign="top" align="center">1.5</td>
<td valign="top" align="center">70</td>
<td valign="top" align="center">0.69</td>
<td valign="top" align="center">0.78</td>
<td valign="top" align="center">0.62</td>
<td valign="top" align="center">60</td>
<td valign="top" align="center">200</td>
</tr>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">1.4</td>
<td valign="top" align="center">74</td>
<td valign="top" align="center">0.63</td>
<td valign="top" align="center">0.68</td>
<td valign="top" align="center">0.51</td>
<td valign="top" align="center">180</td>
<td valign="top" align="center">200</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.05</td>
<td valign="top" align="center">1.1</td>
<td valign="top" align="center">62</td>
<td valign="top" align="center">0.85</td>
<td valign="top" align="center">0.87</td>
<td valign="top" align="center">0.75</td>
<td valign="top" align="center">80</td>
<td valign="top" align="center">180</td>
</tr>
<tr>
<td valign="top" align="left">4</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.06</td>
<td valign="top" align="center">0.7</td>
<td valign="top" align="center">78</td>
<td valign="top" align="center">0.52</td>
<td valign="top" align="center">0.63</td>
<td valign="top" align="center">0.54</td>
<td valign="top" align="center">140</td>
<td valign="top" align="center">180</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.01</td>
<td valign="top" align="center">1.7</td>
<td valign="top" align="center">68</td>
<td valign="top" align="center">0.66</td>
<td valign="top" align="center">0.75</td>
<td valign="top" align="center">0.98</td>
<td valign="top" align="center">20</td>
<td valign="top" align="center">160</td>
</tr>
<tr>
<td valign="top" align="left">6</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">1.6</td>
<td valign="top" align="center">70</td>
<td valign="top" align="center">0.72</td>
<td valign="top" align="center">0.95</td>
<td valign="top" align="center">0.63</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">160</td>
</tr>
<tr>
<td valign="top" align="left">7</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.05</td>
<td valign="top" align="center">1.2</td>
<td valign="top" align="center">70</td>
<td valign="top" align="center">0.46</td>
<td valign="top" align="center">0.39</td>
<td valign="top" align="center">0.63</td>
<td valign="top" align="center">200</td>
<td valign="top" align="center">160</td>
</tr>
<tr>
<td valign="top" align="left">8</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">1.3</td>
<td valign="top" align="center">68</td>
<td valign="top" align="center">0.75</td>
<td valign="top" align="center">0.65</td>
<td valign="top" align="center">0.56</td>
<td valign="top" align="center">140</td>
<td valign="top" align="center">140</td>
</tr>
<tr>
<td valign="top" align="left">9</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">1.3</td>
<td valign="top" align="center">62</td>
<td valign="top" align="center">0.86</td>
<td valign="top" align="center">0.74</td>
<td valign="top" align="center">0.46</td>
<td valign="top" align="center">40</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.04</td>
<td valign="top" align="center">1.2</td>
<td valign="top" align="center">63</td>
<td valign="top" align="center">0.49</td>
<td valign="top" align="center">0.46</td>
<td valign="top" align="center">0.67</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">11</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">1.2</td>
<td valign="top" align="center">74</td>
<td valign="top" align="center">0.83</td>
<td valign="top" align="center">0.94</td>
<td valign="top" align="center">0.86</td>
<td valign="top" align="center">180</td>
<td valign="top" align="center">100</td>
</tr>
<tr>
<td valign="top" align="left">12</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">0.9</td>
<td valign="top" align="center">62</td>
<td valign="top" align="center">0.91</td>
<td valign="top" align="center">0.94</td>
<td valign="top" align="center">0.74</td>
<td valign="top" align="center">60</td>
<td valign="top" align="center">80</td>
</tr>
<tr>
<td valign="top" align="left">13</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.05</td>
<td valign="top" align="center">0.6</td>
<td valign="top" align="center">78</td>
<td valign="top" align="center">0.71</td>
<td valign="top" align="center">0.68</td>
<td valign="top" align="center">0.91</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">80</td>
</tr>
<tr>
<td valign="top" align="left">14</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">1.4</td>
<td valign="top" align="center">69</td>
<td valign="top" align="center">0.45</td>
<td valign="top" align="center">0.36</td>
<td valign="top" align="center">0.79</td>
<td valign="top" align="center">180</td>
<td valign="top" align="center">60</td>
</tr>
<tr>
<td valign="top" align="left">15</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">1.5</td>
<td valign="top" align="center">71</td>
<td valign="top" align="center">0.65</td>
<td valign="top" align="center">0.58</td>
<td valign="top" align="center">0.52</td>
<td valign="top" align="center">20</td>
<td valign="top" align="center">40</td>
</tr>
<tr>
<td valign="top" align="left">16</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.04</td>
<td valign="top" align="center">1.2</td>
<td valign="top" align="center">63</td>
<td valign="top" align="center">0.49</td>
<td valign="top" align="center">0.46</td>
<td valign="top" align="center">0.67</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">17</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">0.9</td>
<td valign="top" align="center">62</td>
<td valign="top" align="center">0.91</td>
<td valign="top" align="center">0.94</td>
<td valign="top" align="center">0.74</td>
<td valign="top" align="center">160</td>
<td valign="top" align="center">180</td>
</tr>
<tr>
<td valign="top" align="left">18</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">1.2</td>
<td valign="top" align="center">74</td>
<td valign="top" align="center">0.83</td>
<td valign="top" align="center">0.94</td>
<td valign="top" align="center">0.86</td>
<td valign="top" align="center">140</td>
<td valign="top" align="center">100</td>
</tr>
<tr>
<td valign="top" align="left">19</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">1.4</td>
<td valign="top" align="center">69</td>
<td valign="top" align="center">0.45</td>
<td valign="top" align="center">0.36</td>
<td valign="top" align="center">0.79</td>
<td valign="top" align="center">180</td>
<td valign="top" align="center">60</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">1.5</td>
<td valign="top" align="center">71</td>
<td valign="top" align="center">0.65</td>
<td valign="top" align="center">0.58</td>
<td valign="top" align="center">0.52</td>
<td valign="top" align="center">20</td>
<td valign="top" align="center">40</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T4">
<label>Table 4</label>
<caption><p>3D printing order information.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>ID of the task</bold></th>
<th valign="top" align="center"><bold><italic>S</italic><sub><italic>i</italic></sub></bold></th>
<th valign="top" align="center"><bold><italic>P</italic><sub><italic>i</italic></sub>(<italic>mm</italic>)</bold></th>
<th valign="top" align="center"><inline-formula><mml:math id="M25"><mml:mstyle mathvariant="bold"><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula></th>
<th valign="top" align="center"><bold><italic>u</italic><sub><italic>i</italic></sub>(<italic>m</italic>)</bold></th>
<th valign="top" align="center"><bold><italic>v</italic><sub><italic>i</italic></sub>(<italic>m</italic>)</bold></th>
<th valign="top" align="center"><bold><italic>w</italic><sub><italic>i</italic></sub>(<italic>m</italic>)</bold></th>
<th valign="top" align="center"><bold><italic>x</italic><sub><italic>i</italic></sub>(<italic>km</italic>)</bold></th>
<th valign="top" align="center"><bold><italic>y</italic><sub><italic>i</italic></sub>(<italic>km</italic>)</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">1</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">1,600</td>
<td valign="top" align="center">0.31</td>
<td valign="top" align="center">0.33</td>
<td valign="top" align="center">0.63</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">1,800</td>
<td valign="top" align="center">0.38</td>
<td valign="top" align="center">0.42</td>
<td valign="top" align="center">0.32</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.06</td>
<td valign="top" align="center">1,800</td>
<td valign="top" align="center">0.62</td>
<td valign="top" align="center">0.63</td>
<td valign="top" align="center">0.74</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">4</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.05</td>
<td valign="top" align="center">1,100</td>
<td valign="top" align="center">0.53</td>
<td valign="top" align="center">0.53</td>
<td valign="top" align="center">0.46</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.05</td>
<td valign="top" align="center">800</td>
<td valign="top" align="center">0.36</td>
<td valign="top" align="center">0.37</td>
<td valign="top" align="center">0.52</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">6</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.01</td>
<td valign="top" align="center">1,300</td>
<td valign="top" align="center">0.36</td>
<td valign="top" align="center">0.37</td>
<td valign="top" align="center">0.25</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">7</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.06</td>
<td valign="top" align="center">1,200</td>
<td valign="top" align="center">0.39</td>
<td valign="top" align="center">0.40</td>
<td valign="top" align="center">0.48</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">8</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.04</td>
<td valign="top" align="center">1,600</td>
<td valign="top" align="center">0.17</td>
<td valign="top" align="center">0.39</td>
<td valign="top" align="center">0.30</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">9</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.06</td>
<td valign="top" align="center">1,200</td>
<td valign="top" align="center">0.48</td>
<td valign="top" align="center">0.39</td>
<td valign="top" align="center">0.30</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.04</td>
<td valign="top" align="center">1,300</td>
<td valign="top" align="center">0.28</td>
<td valign="top" align="center">0.29</td>
<td valign="top" align="center">0.30</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">11</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">700</td>
<td valign="top" align="center">0.58</td>
<td valign="top" align="center">0.59</td>
<td valign="top" align="center">0.73</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">12</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">900</td>
<td valign="top" align="center">0.38</td>
<td valign="top" align="center">0.29</td>
<td valign="top" align="center">0.25</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">13</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">300</td>
<td valign="top" align="center">0.48</td>
<td valign="top" align="center">0.39</td>
<td valign="top" align="center">0.35</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">14</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.06</td>
<td valign="top" align="center">600</td>
<td valign="top" align="center">0.67</td>
<td valign="top" align="center">0.69</td>
<td valign="top" align="center">0.30</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">15</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">1,700</td>
<td valign="top" align="center">0.32</td>
<td valign="top" align="center">0.34</td>
<td valign="top" align="center">0.68</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">16</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.06</td>
<td valign="top" align="center">1,800</td>
<td valign="top" align="center">0.25</td>
<td valign="top" align="center">0.23</td>
<td valign="top" align="center">0.55</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">17</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">1,800</td>
<td valign="top" align="center">0.58</td>
<td valign="top" align="center">0.52</td>
<td valign="top" align="center">0.51</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">18</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">1,400</td>
<td valign="top" align="center">0.28</td>
<td valign="top" align="center">0.31</td>
<td valign="top" align="center">0.30</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">19</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">1,300</td>
<td valign="top" align="center">0.66</td>
<td valign="top" align="center">0.39</td>
<td valign="top" align="center">0.50</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.05</td>
<td valign="top" align="center">1,200</td>
<td valign="top" align="center">0.28</td>
<td valign="top" align="center">0.26</td>
<td valign="top" align="center">0.28</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">21</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">800</td>
<td valign="top" align="center">0.35</td>
<td valign="top" align="center">0.29</td>
<td valign="top" align="center">0.42</td>
<td valign="top" align="center">130</td>
<td valign="top" align="center">100</td>
</tr>
<tr>
<td valign="top" align="left">22</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.06</td>
<td valign="top" align="center">900</td>
<td valign="top" align="center">0.51</td>
<td valign="top" align="center">0.38</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">130</td>
<td valign="top" align="center">100</td>
</tr>
<tr>
<td valign="top" align="left">23</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.04</td>
<td valign="top" align="center">1,100</td>
<td valign="top" align="center">0.29</td>
<td valign="top" align="center">0.35</td>
<td valign="top" align="center">0.62</td>
<td valign="top" align="center">130</td>
<td valign="top" align="center">100</td>
</tr>
<tr>
<td valign="top" align="left">24</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">1,000</td>
<td valign="top" align="center">0.16</td>
<td valign="top" align="center">0.26</td>
<td valign="top" align="center">0.27</td>
<td valign="top" align="center">130</td>
<td valign="top" align="center">100</td>
</tr>
<tr>
<td valign="top" align="left">25</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.04</td>
<td valign="top" align="center">1,100</td>
<td valign="top" align="center">0.18</td>
<td valign="top" align="center">0.51</td>
<td valign="top" align="center">0.38</td>
<td valign="top" align="center">130</td>
<td valign="top" align="center">100</td>
</tr>
<tr>
<td valign="top" align="left">26</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.06</td>
<td valign="top" align="center">1,200</td>
<td valign="top" align="center">0.36</td>
<td valign="top" align="center">0.27</td>
<td valign="top" align="center">0.39</td>
<td valign="top" align="center">130</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">27</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">1,800</td>
<td valign="top" align="center">0.37</td>
<td valign="top" align="center">0.29</td>
<td valign="top" align="center">0.74</td>
<td valign="top" align="center">130</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">28</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">1,600</td>
<td valign="top" align="center">0.39</td>
<td valign="top" align="center">0.41</td>
<td valign="top" align="center">0.38</td>
<td valign="top" align="center">130</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">29</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">600</td>
<td valign="top" align="center">0.35</td>
<td valign="top" align="center">0.38</td>
<td valign="top" align="center">0.38</td>
<td valign="top" align="center">130</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.06</td>
<td valign="top" align="center">1,500</td>
<td valign="top" align="center">0.42</td>
<td valign="top" align="center">0.37</td>
<td valign="top" align="center">0.37</td>
<td valign="top" align="center">130</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">31</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">1,700</td>
<td valign="top" align="center">0.47</td>
<td valign="top" align="center">0.19</td>
<td valign="top" align="center">0.67</td>
<td valign="top" align="center">140</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">32</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.05</td>
<td valign="top" align="center">800</td>
<td valign="top" align="center">0.35</td>
<td valign="top" align="center">0.24</td>
<td valign="top" align="center">0.56</td>
<td valign="top" align="center">140</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">33</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.06</td>
<td valign="top" align="center">600</td>
<td valign="top" align="center">0.16</td>
<td valign="top" align="center">0.28</td>
<td valign="top" align="center">0.34</td>
<td valign="top" align="center">140</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">34</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">500</td>
<td valign="top" align="center">0.63</td>
<td valign="top" align="center">0.36</td>
<td valign="top" align="center">0.64</td>
<td valign="top" align="center">140</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">35</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">200</td>
<td valign="top" align="center">0.61</td>
<td valign="top" align="center">0.34</td>
<td valign="top" align="center">0.37</td>
<td valign="top" align="center">140</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">36</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.04</td>
<td valign="top" align="center">800</td>
<td valign="top" align="center">0.62</td>
<td valign="top" align="center">0.37</td>
<td valign="top" align="center">0.46</td>
<td valign="top" align="center">150</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">37</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">700</td>
<td valign="top" align="center">0.35</td>
<td valign="top" align="center">0.28</td>
<td valign="top" align="center">0.47</td>
<td valign="top" align="center">150</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">38</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.04</td>
<td valign="top" align="center">700</td>
<td valign="top" align="center">0.35</td>
<td valign="top" align="center">0.28</td>
<td valign="top" align="center">0.47</td>
<td valign="top" align="center">150</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">39</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">1,600</td>
<td valign="top" align="center">0.38</td>
<td valign="top" align="center">0.41</td>
<td valign="top" align="center">0.52</td>
<td valign="top" align="center">150</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">40</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.04</td>
<td valign="top" align="center">1,400</td>
<td valign="top" align="center">0.37</td>
<td valign="top" align="center">0.43</td>
<td valign="top" align="center">0.36</td>
<td valign="top" align="center">150</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">41</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.05</td>
<td valign="top" align="center">1,100</td>
<td valign="top" align="center">0.53</td>
<td valign="top" align="center">0.53</td>
<td valign="top" align="center">0.46</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">42</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.05</td>
<td valign="top" align="center">1,100</td>
<td valign="top" align="center">0.53</td>
<td valign="top" align="center">0.53</td>
<td valign="top" align="center">0.46</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">43</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.05</td>
<td valign="top" align="center">800</td>
<td valign="top" align="center">0.36</td>
<td valign="top" align="center">0.37</td>
<td valign="top" align="center">0.52</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">44</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.01</td>
<td valign="top" align="center">1,300</td>
<td valign="top" align="center">0.36</td>
<td valign="top" align="center">0.37</td>
<td valign="top" align="center">0.25</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">45</td>
<td valign="top" align="center">SLS</td>
<td valign="top" align="center">0.06</td>
<td valign="top" align="center">1,200</td>
<td valign="top" align="center">0.39</td>
<td valign="top" align="center">0.4</td>
<td valign="top" align="center">0.48</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">46</td>
<td valign="top" align="center">SLA</td>
<td valign="top" align="center">0.04</td>
<td valign="top" align="center">1,600</td>
<td valign="top" align="center">0.17</td>
<td valign="top" align="center">0.39</td>
<td valign="top" align="center">0.3</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">47</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.06</td>
<td valign="top" align="center">1,200</td>
<td valign="top" align="center">0.48</td>
<td valign="top" align="center">0.39</td>
<td valign="top" align="center">0.3</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">48</td>
<td valign="top" align="center">FDM</td>
<td valign="top" align="center">0.04</td>
<td valign="top" align="center">1,300</td>
<td valign="top" align="center">0.28</td>
<td valign="top" align="center">0.29</td>
<td valign="top" align="center">0.3</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">120</td>
</tr>
<tr>
<td valign="top" align="left">49</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">700</td>
<td valign="top" align="center">0.58</td>
<td valign="top" align="center">0.59</td>
<td valign="top" align="center">0.73</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">110</td>
</tr>
<tr>
<td valign="top" align="left">50</td>
<td valign="top" align="center">3DP</td>
<td valign="top" align="center">0.03</td>
<td valign="top" align="center">900</td>
<td valign="top" align="center">0.38</td>
<td valign="top" align="center">0.29</td>
<td valign="top" align="center">0.25</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">110</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec>
<title>Example Results and Solution Analysis</title>
<p>In the context of public health emergencies in relation 3D printing equipment resources, the matching strategy is an NP-hard problem, and the true Pareto front is unknown. In order to verify that the validity of the NSGA-II algorithm had improved, using the convergence and running time of the algorithm as the evaluation standards, the results of both the new and traditional NSGA-II algorithm under the same parameters and over 10 runs each were analyzed. Using the above experimental data to compare the NSGA-II algorithms crossover probability was set at 0.9, mutation probability at 0.05, the population size at 100, and the largest iterative algebra at 500. The simulation environment was the Intel (R) Core (TM) i5-4460S, CPU&#x00040;2.50GHz, RAM4GB, system, Windows 10 and Simulation platform Matlab2015a. <xref ref-type="table" rid="T3">Table 3</xref> shows the results of the comparison between the improved NSGA-II algorithm and the traditional NSGA-II algorithm, which were run 10 times each. Using the traditional NSGA-II algorithm and the improved the NSGA-II algorithm, the optimal Pareto solutions were obtained, as shown in <xref ref-type="fig" rid="F5">Figure 5</xref>.</p>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>Two multi objective genetic algorithms.</p></caption>
<graphic xlink:href="fpubh-09-657276-g0005.tif"/>
</fig>
<p>(1) In terms of the convergence of the algorithm, it can be seen from <xref ref-type="table" rid="T5">Table 5</xref> that the average cost calculated by the improved NSGA-II algorithm is lower than that of the traditional NSGA-II algorithm, that is, the improved NSGA-II algorithm can obtain a solution with higher user satisfaction at the same cost. It can be intuitively seen from <xref ref-type="fig" rid="F5">Figure 5</xref> that Pareto solution obtained by the improved NSGA-II algorithm under the same conditions is better than that obtained by the traditional NSGA-II algorithm. In addition, the optimal cost obtained by the improved NSGA-II algorithm is also slightly higher than that of the traditional NSGA-II algorithm, indicating that its search space is larger. In summary, the Pareto frontier obtained by the improved NSGA-II algorithm is better, and its convergence is better than that of the traditional NSGA-II algorithm.</p>
<table-wrap position="float" id="T5">
<label>Table 5</label>
<caption><p>Improved NSGA-II algorithm performance comparison.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>The optimization goal</bold></th>
<th valign="top" align="center" colspan="2" style="border-bottom: thin solid #000000;"><bold>Cost of emergency supplies &#x000D7; 10<sup>4</sup>/Yuan</bold></th>
<th valign="top" align="center" colspan="2" style="border-bottom: thin solid #000000;"><bold>Emergency supply time /h</bold></th>
<th valign="top" align="center" colspan="2" style="border-bottom: thin solid #000000;"><bold>Algorithm running time/s</bold></th>
</tr>
<tr>
<th/>
<th valign="top" align="center"><bold>Average</bold></th>
<th valign="top" align="center"><bold>Optimal</bold></th>
<th valign="top" align="center"><bold>Average</bold></th>
<th valign="top" align="center"><bold>Optimal</bold></th>
<th valign="top" align="center"><bold>Average</bold></th>
<th valign="top" align="center"><bold>Optimal</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><bold>Improved NSGA-II algorithm</bold></td>
<td valign="top" align="center">8.314</td>
<td valign="top" align="center">7.482</td>
<td valign="top" align="center">966</td>
<td valign="top" align="center">938</td>
<td valign="top" align="center">11.28</td>
<td valign="top" align="center">10.85</td>
</tr>
<tr>
<td valign="top" align="left"><bold>NSGA-II algorithm</bold></td>
<td valign="top" align="center">8.500</td>
<td valign="top" align="center">7.560</td>
<td valign="top" align="center">972</td>
<td valign="top" align="center">950</td>
<td valign="top" align="center">12.03</td>
<td valign="top" align="center">11.82</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>(2) In regard to the algorithm running time, <xref ref-type="table" rid="T5">Table 5</xref> shows that the traditional NSGA-II algorithm had an average running time of 12.03 s, while the improved NSGA-II algorithm had an average running time of 11.28 s, thus providing a time reduction of 6.2%. In addition, the optimal operation time of the improved NSGA-II algorithm was 10.85 s, while that of the traditional NSGA-II algorithm was 11.82 s, thus improving the speed of the NSGA-II algorithm.</p>
<p>In conclusion, compared with the traditional NSGA-II algorithm, the improved NSGA-II algorithm has a slight improvement in overall performance. Usage of the optimal solution set in the improved NSGA-II algorithm is shown in <xref ref-type="table" rid="T6">Table 6</xref>.</p>
<table-wrap position="float" id="T6">
<label>Table 6</label>
<caption><p>Improved NSGA-II algorithm and Pareto optimal solution (partial).</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Pareto optimal solution</bold></th>
<th valign="top" align="center"><bold>Total cost of emergency supplies/Yuan</bold></th>
<th valign="top" align="center"><bold>Total time for emergency supplies /h</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">[13,5,13,13,4,15,12,11,18,13,16,9,13,20,4,1,3,12,4,13,19,17,1,16,8,12,18,11,16,19,8,13,12,3,12,9,18,11,13,3,13,18,19, 13,11,5,9, 3,1,4]</td>
<td valign="top" align="center">74,815</td>
<td valign="top" align="center">995</td>
</tr>
<tr>
<td valign="top" align="left">[13,5, 13,13,4,15,12,11,18,13,16,9,13,19,4,1,3,12,4,13,19, 17,1,16,8,12,18,11,16,19,8,13,12,3,12,9,18,11,13,3,13,18, 19,13,11,5,9,3,1,4]</td>
<td valign="top" align="center">75,153</td>
<td valign="top" align="center">992</td>
</tr>
<tr>
<td valign="top" align="left">[13,5,13,13,4,16,12,11,18,13,16,9,13,20,4,1,3,12,4,13,19,17,1,16,8,12,18,11,16,19,8,13,12,3,12,9,18,11,13,3,13,18,19,13,11,5,9,3,1,4]</td>
<td valign="top" align="center">75,762</td>
<td valign="top" align="center">990</td>
</tr>
<tr>
<td valign="top" align="left">[13,5,13,13,4,15,12,11,18,13,16,8,13,19,4,1,3,12,4,13,20,17,1,16,10,12,18,11,16,19,8,13,12,3,12,9,18,11,13,4,13,18,19,13,11,6, 9,3,1,4]</td>
<td valign="top" align="center">76,458</td>
<td valign="top" align="center">983</td>
</tr>
<tr>
<td valign="top" align="left">[13,5,13,13,4,15,12,11,18,13,16,8,13,19,4,2,3,13,4,13,20,16,1,16,10,12,18,11,16,19,8,13,12,3,11,9,18,11,13,4,13,18,18,13,11,6, 9,3,1,4]</td>
<td valign="top" align="center">76,571</td>
<td valign="top" align="center">976</td>
</tr>
<tr>
<td valign="top" align="left">[13,5,13,13,4,15,12,11,18,13,16,8,13,19,4,2,3,13,4,13,20, 16,1,17,10,12,18,11,16,19,8,13,12,3,11,9,18,11,13,4,13,18,18,13,11,6,9,2,1, 4]</td>
<td valign="top" align="center">77,945</td>
<td valign="top" align="center">972</td>
</tr>
<tr>
<td valign="top" align="left">[13,5,13,13,4,17,12,11,18,13,16,8,13,19,4, 1,3,13,4,13,19,17,1,17,7,11,18,11,16,20,8,13,13,3,13,9,18,11,13,2,13,20,19,13,11,6,9,4,1,4]</td>
<td valign="top" align="center">79,042</td>
<td valign="top" align="center">957</td>
</tr>
<tr>
<td valign="top" align="left">[13,5,13,13,4,17,12,11,17, 13,16,8,13,19,4,1,3,13,4,13,19,17,1,17,6,11,18,11,16,20,8,13,13,3,13,9,18,11,13,2,13,20,19,13,11,6,9,4,1,4]</td>
<td valign="top" align="center">80,704</td>
<td valign="top" align="center">952</td>
</tr>
<tr>
<td valign="top" align="left">[13,5,13,13,4,17,12,11,17,13,16,8,13,19,4,1,3,13,4,13,19,17,1,17,6,11,18,11,16,20,8,13,13,3,13,9,18,11,13,2,13,20,19,13,10,6, 9,4,1,4]</td>
<td valign="top" align="center">81,682</td>
<td valign="top" align="center">950</td>
</tr>
<tr>
<td valign="top" align="left">[7,6,17,5,3,4,10,6,10,6,16,6,13,16,13,17,2,17,13,10,12,8,1,4,19,8,4,17,13,13,16,17,17,2,6,13,13, 3,11,17,2,10,6,19,6,17,11,16,11,14]</td>
<td valign="top" align="center">94,178</td>
<td valign="top" align="center">941</td>
</tr>
<tr>
<td valign="top" align="left">[8,6,17,6,3,3,10,6,10, 6,16,6,13, 16,13,17,2,17, 13,10,13, 7,1,4,19,8,4,17,13,13,16,17,17,2,6,13,13,3,11,17,2,10,7,19,6,17,11,17,11,14]</td>
<td valign="top" align="center">95,199</td>
<td valign="top" align="center">938</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec></sec>
<sec sec-type="conclusions" id="s5">
<title>Conclusion</title>
<p>In this study, combining with current public health emergencies, this paper proposes the scheduling and distribution scheme of emergency supplies produced by 3D printing technology. In terms of the model, a 3D printing production emergency material scheduling model was built to solve the resource matching problem between supply and demand and maximize the production cost and time benefit. In algorithm, orthogonal crossover strategy was applied to algorithm in the process of the cross, and introducing the adaptive hybrid mutation operator, get an improved the NSGA-II algorithm, and compared with the traditional NSGA-II algorithm, the results show that the improved algorithm has higher precision and faster convergence speed, convergence of optimization result is closer to the global optimal solution, and more effectively solve the multi-objective problem. It is proved that the improved NSGA-II algorithm can obtain better performance, which has a certain theoretical significance. We suggest that, under the background of Covid-19 epidemic, the study on supply and demand matching of 3D printing emergency supplies can solve the problem of concealment of some organizations in material distribution. Meanwhile, managers can reasonably allocate emergency supplies according to different disaster situations in each disaster area, which is of certain practical significance.</p>
<p>This study solves the scheduling problem of 3D-printed emergency supplies in the event of public health emergencies, but the workflow of emergency supplies requirements selected by the model is static. However, the most significant impact of 3D printing on users&#x00027; emergency supplies is the dynamic change in demand; Therefore, the next step will be to conduct research on 3D printing scheduling of dynamic emergency supplies for public health emergencies under the same constraint conditions as the optimization objective.</p></sec>
<sec sec-type="data-availability-statement" id="s6">
<title>Data Availability Statement</title>
<p>The original contributions presented in the study are included in the article/supplementary material, further inquiries can be directed to the corresponding author/s.</p></sec>
<sec id="s7">
<title>Author Contributions</title>
<p>JH came up with the topic idea selection and structured the manuscript ideas. GL designed the research plan, constructed the model, and wrote the thesis. TM analyzed the selected articles to verify their relevance for the study. TL wrote conclusion and collect data. All authors contributed to the article and approved the submitted version.</p></sec>
<sec sec-type="COI-statement" id="conf1">
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p></sec>
</body>
<back>
<ref-list>
<title>References</title>
<ref id="B1">
<label>1.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Oladapo</surname> <given-names>BI</given-names></name> <name><surname>Ismail</surname> <given-names>SO</given-names></name> <name><surname>Afolalu</surname> <given-names>TD</given-names></name> <name><surname>Olawade</surname> <given-names>DB</given-names></name> <name><surname>Zahedi</surname> <given-names>M</given-names></name></person-group>. <article-title>Review on 3D printing: fight against COVID-19</article-title>. <source>Mater Chem Phys</source>. (<year>2021</year>) <volume>258</volume>:<fpage>95</fpage>&#x02013;<lpage>110</lpage>. <pub-id pub-id-type="doi">10.1016/j.matchemphys.2020.123943</pub-id><pub-id pub-id-type="pmid">33106717</pub-id></citation></ref>
<ref id="B2">
<label>2.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>Q</given-names></name> <name><surname>Zhang</surname> <given-names>T</given-names></name> <name><surname>Zhu</surname> <given-names>H</given-names></name> <name><surname>Wang</surname> <given-names>Y</given-names></name> <name><surname>Liu</surname> <given-names>X</given-names></name> <name><surname>Bai</surname> <given-names>G</given-names></name> <etal/></person-group>. <article-title>Characteristic of and public health emergency responses to COVID-19 and H1N1 out-breaks: a case-comparison study</article-title>. <source>Int J Environ Res Public Health</source>. (<year>2020</year>) <volume>7</volume>:<fpage>12</fpage>&#x02013;<lpage>23</lpage>. <pub-id pub-id-type="doi">10.3390/ijerph17124409</pub-id></citation></ref>
<ref id="B3">
<label>3.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Corsini</surname> <given-names>L</given-names></name> <name><surname>Aranda-Jan</surname> <given-names>CB</given-names></name> <name><surname>Moultrie</surname> <given-names>J</given-names></name></person-group>. <article-title>The impact of 3D printing on the humanitarian supply chain</article-title>. <source>Prod Plan Control</source>. (<year>2020</year>) <volume>78</volume>:<fpage>15</fpage>&#x02013;<lpage>30</lpage>. <pub-id pub-id-type="doi">10.1080/09537287.2020.1834130</pub-id></citation></ref>
<ref id="B4">
<label>4.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Campbell</surname> <given-names>I</given-names></name> <name><surname>Bourell</surname> <given-names>D</given-names></name> <name><surname>Gibson</surname> <given-names>I</given-names></name></person-group>. <article-title>Additive manufacturing: rapid prototyping comes of age</article-title>. <source>Rapid Prototyping J</source>. (<year>2012</year>) <volume>18</volume>:<fpage>255</fpage>&#x02013;<lpage>8</lpage>. <pub-id pub-id-type="doi">10.1108/13552541211231563</pub-id></citation></ref>
<ref id="B5">
<label>5.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ngo</surname> <given-names>TD</given-names></name> <name><surname>Kashani</surname> <given-names>A</given-names></name> <name><surname>Imbalzano</surname> <given-names>G</given-names></name> <name><surname>Nguyen</surname> <given-names>KTQ</given-names></name> <name><surname>Hui</surname> <given-names>D</given-names></name></person-group>. <article-title>Additive manufacturing (3D printing): a review of materials, methods, applications and challenges</article-title>. <source>Compos Pt B Eng</source>. (<year>2018</year>) <volume>143</volume>:<fpage>172</fpage>&#x02013;<lpage>96</lpage>. <pub-id pub-id-type="doi">10.1016/j.compositesb.2018.02.012</pub-id></citation></ref>
<ref id="B6">
<label>6.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>W</given-names></name> <name><surname>Wang</surname> <given-names>Q</given-names></name> <name><surname>Mao</surname> <given-names>Q</given-names></name> <name><surname>Wang</surname> <given-names>S</given-names></name> <name><surname>Zhu</surname> <given-names>D</given-names></name></person-group>. <article-title>A scheduling model of logistics service supply chain based on the mass customization service and uncertainty of FLSP&#x00027;s operation time</article-title>. <source>Transport Res Pt E Transp Res E Log</source>. (<year>2015</year>) <volume>83</volume>:<fpage>189</fpage>&#x02013;<lpage>215</lpage>. <pub-id pub-id-type="doi">10.1016/j.tre.2015.09.003</pub-id></citation></ref>
<ref id="B7">
<label>7.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mourtzis</surname> <given-names>D</given-names></name> <name><surname>Doukas</surname> <given-names>M</given-names></name> <name><surname>Psarommatis</surname> <given-names>F</given-names></name></person-group>. <article-title>A toolbox for the design, planning and operation of manufacturing networks in a mass customisation environment</article-title>. <source>J Manuf Syst</source>. (<year>2015</year>) <volume>36</volume>:<fpage>274</fpage>&#x02013;<lpage>86</lpage>. <pub-id pub-id-type="doi">10.1016/j.jmsy.2014.06.004</pub-id></citation></ref>
<ref id="B8">
<label>8.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>Q</given-names></name> <name><surname>Kucukkoc</surname> <given-names>I</given-names></name> <name><surname>Zhang</surname> <given-names>DZ</given-names></name></person-group>. <article-title>Production planning in additive manufacturing and 3D printing</article-title>. <source>Comput Oper Res</source>. (<year>2017</year>) <volume>83</volume>:<fpage>157</fpage>&#x02013;<lpage>72</lpage>. <pub-id pub-id-type="doi">10.1016/j.cor.2017.01.013</pub-id></citation></ref>
<ref id="B9">
<label>9.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Khajavi</surname> <given-names>SH</given-names></name> <name><surname>Partanen</surname> <given-names>J</given-names></name> <name><surname>Holmstr&#x000F6;m</surname> <given-names>J</given-names></name></person-group>. <article-title>Additive manufacturing in the spare parts supply chain</article-title>. <source>Comput Ind</source>. (<year>2014</year>) <volume>65</volume>:<fpage>50</fpage>&#x02013;<lpage>63</lpage>. <pub-id pub-id-type="doi">10.1016/j.compind.2013.07.008</pub-id></citation></ref>
<ref id="B10">
<label>10.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Guoqing</surname> <given-names>W</given-names></name> <name><surname>Yingzhou</surname> <given-names>H</given-names></name> <name><surname>Weinan</surname> <given-names>Z</given-names></name> <name><surname>Chenguang</surname> <given-names>S</given-names></name> <name><surname>Hongsong</surname> <given-names>H</given-names></name> <etal/></person-group>. <article-title>Research status and development trend of laser additive manufacturing technology</article-title>. In: <source>2017 4th International Conference on Information Science and Control Engineering</source>. <publisher-loc>Changsha</publisher-loc> (<year>2017</year>). p. <fpage>1210</fpage>&#x02013;<lpage>13</lpage>.</citation>
</ref>
<ref id="B11">
<label>11.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sheu</surname> <given-names>JB</given-names></name></person-group>. <article-title>Post-disaster relief&#x02013;service centralized logistics distribution with survivor resilience maximization</article-title>. <source>Transport Res B Meth</source>. (<year>2014</year>) <volume>68</volume>:<fpage>288</fpage>&#x02013;<lpage>314</lpage>. <pub-id pub-id-type="doi">10.1016/j.trb.2014.06.016</pub-id></citation></ref>
<ref id="B12">
<label>12.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhan</surname> <given-names>SL</given-names></name> <name><surname>Liu</surname> <given-names>N</given-names></name> <name><surname>Ye</surname> <given-names>Y</given-names></name></person-group>. <article-title>Coordinating efficiency and equity in disaster relief logistics via information updates</article-title>. <source>Int J Syst Sci</source>. (<year>2014</year>) <volume>45</volume>:<fpage>1607</fpage>&#x02013;<lpage>21</lpage>. <pub-id pub-id-type="doi">10.1080/00207721.2013.777490</pub-id></citation></ref>
<ref id="B13">
<label>13.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lu</surname> <given-names>CC</given-names></name> <name><surname>Ying</surname> <given-names>KC</given-names></name> <name><surname>Chen</surname> <given-names>H-J</given-names></name></person-group>. <article-title>Real-time relief distribution in the aftermath of disasters - a rolling horizon approach</article-title>. <source>Transport Res Pt E Transp Res E Log</source>. (<year>2016</year>) <volume>93</volume>:<fpage>1</fpage>&#x02013;<lpage>20</lpage>. <pub-id pub-id-type="doi">10.1016/j.tre.2016.05.002</pub-id></citation></ref>
<ref id="B14">
<label>14.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhou</surname> <given-names>Y</given-names></name> <name><surname>Liu</surname> <given-names>J</given-names></name> <name><surname>Zhang</surname> <given-names>Y</given-names></name> <name><surname>Gan</surname> <given-names>X</given-names></name></person-group>. <article-title>A multi-objective evolutionary algorithm for multi-period dynamic emergency resource scheduling problems</article-title>. <source>Transport Res Pt E Logs Transport Rev</source>. (<year>2017</year>) <volume>99</volume>:<fpage>77</fpage>&#x02013;<lpage>95</lpage>. <pub-id pub-id-type="doi">10.1016/j.tre.2016.12.011</pub-id></citation></ref>
<ref id="B15">
<label>15.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Alem</surname> <given-names>D</given-names></name> <name><surname>Clark</surname> <given-names>A</given-names></name> <name><surname>Moreno</surname> <given-names>A</given-names></name></person-group>. <article-title>Stochastic network models for logistics planning in disaster relief</article-title>. <source>Eur J Oper Res</source>. (<year>2016</year>) <volume>255</volume>:<fpage>187</fpage>&#x02013;<lpage>206</lpage>. <pub-id pub-id-type="doi">10.1016/j.ejor.2016.04.041</pub-id></citation></ref>
<ref id="B16">
<label>16.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ekici</surname> <given-names>A</given-names></name> <name><surname>Keskinocak</surname> <given-names>P</given-names></name> <name><surname>Swann</surname> <given-names>JL</given-names></name></person-group>. <article-title>Modeling influenza pandemic and planning food distribution</article-title>. <source>Mandsom Manuf Serv Op</source>. (<year>2014</year>) <volume>16</volume>:<fpage>11</fpage>&#x02013;<lpage>27</lpage>. <pub-id pub-id-type="doi">10.1287/msom.2013.0460</pub-id></citation></ref>
<ref id="B17">
<label>17.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>He</surname> <given-names>Y</given-names></name> <name><surname>Liu</surname> <given-names>N</given-names></name></person-group>. <article-title>Methodology of emergency medical logistics for public health emergencies</article-title>. <source>Transport Res Part E Transport Res E Log</source>. (<year>2015</year>) <volume>79</volume>:<fpage>178</fpage>&#x02013;<lpage>200</lpage>. <pub-id pub-id-type="doi">10.1016/j.tre.2015.04.007</pub-id><pub-id pub-id-type="pmid">32288598</pub-id></citation></ref>
<ref id="B18">
<label>18.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>M</given-names></name> <name><surname>Zhang</surname> <given-names>D</given-names></name></person-group>. <article-title>A dynamic logistics model for medical resource allocation in epidemic control with demand forecast updating</article-title>. <source>J Oper Res Soc</source>. (<year>2016</year>) <volume>67</volume>:<fpage>841</fpage>&#x02013;<lpage>5</lpage>. <pub-id pub-id-type="doi">10.1057/jors.2015.105</pub-id></citation></ref>
<ref id="B19">
<label>19.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Whybark</surname> <given-names>DC</given-names></name></person-group>. <article-title>Issues in managing disaster relief inventories</article-title>. <source>Int J Prod Econ</source>. (<year>2007</year>) <volume>108</volume>:<fpage>228</fpage>&#x02013;<lpage>35</lpage>. <pub-id pub-id-type="doi">10.1016/j.ijpe.2006.12.012</pub-id></citation></ref>
<ref id="B20">
<label>20.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chakravarty</surname> <given-names>AK</given-names></name></person-group>. <article-title>Humanitarian relief chain: rapid response under uncertainty</article-title>. <source>Int J Prod Econ</source>. (<year>2014</year>) <volume>151</volume>:<fpage>146</fpage>&#x02013;<lpage>57</lpage>. <pub-id pub-id-type="doi">10.1016/j.ijpe.2013.10.007</pub-id></citation></ref>
<ref id="B21">
<label>21.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sheu</surname> <given-names>JB</given-names></name> <name><surname>Pan</surname> <given-names>C</given-names></name></person-group>. <article-title>Relief supply collaboration for emergency logistics responses to large-scale disasters</article-title>. <source>Transport A Transport Sci</source>. (<year>2015</year>) <volume>11</volume>:<fpage>210</fpage>&#x02013;<lpage>42</lpage>. <pub-id pub-id-type="doi">10.1080/23249935.2014.951886</pub-id></citation></ref>
<ref id="B22">
<label>22.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>X</given-names></name> <name><surname>Li</surname> <given-names>F</given-names></name> <name><surname>Liang</surname> <given-names>L</given-names></name> <name><surname>Huang</surname> <given-names>Z</given-names></name> <name><surname>Ashley</surname> <given-names>A</given-names></name></person-group>. <article-title>Pre-purchasing with option contract and coordination in a relief supply chain</article-title>. <source>Int J Prod Econ</source>. (<year>2015</year>) <volume>167</volume>:<fpage>170</fpage>&#x02013;<lpage>6</lpage>. <pub-id pub-id-type="doi">10.1016/j.ijpe.2015.05.031</pub-id></citation></ref>
<ref id="B23">
<label>23.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Luo</surname> <given-names>X</given-names></name> <name><surname>Zhang</surname> <given-names>L</given-names></name> <name><surname>Ren</surname> <given-names>L</given-names></name> <name><surname>Lali</surname> <given-names>Y</given-names></name></person-group>. <article-title>A dynamic and static data based matching method for cloud 3D printing</article-title>. <source>Robot Comput Integr Manuf</source> . (<year>2020</year>) <volume>61</volume>:<fpage>101858</fpage>. <pub-id pub-id-type="doi">10.1016/j.rcim.2019.101858</pub-id></citation></ref>
<ref id="B24">
<label>24.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Deb</surname> <given-names>K</given-names></name> <name><surname>Pratap</surname> <given-names>A</given-names></name> <name><surname>Agarwal</surname> <given-names>S</given-names></name> <name><surname>Meyarivan</surname> <given-names>T</given-names></name></person-group>. <article-title>A fast and elitist multi-objective genetic algorithm: NSGA-II</article-title>. <source>IEEE T Evolut Comput</source>. (<year>2002</year>) <volume>6</volume>:<fpage>182</fpage>&#x02013;<lpage>97</lpage>. <pub-id pub-id-type="doi">10.1109/4235.996017</pub-id></citation></ref>
</ref-list>
<fn-group>
<fn fn-type="financial-disclosure"><p><bold>Funding.</bold> This research was funded by the Natural Science Foundation of China, grant number 71871144 and the University of Shanghai for Science and Technology development project, grant number 2020KJFZ046.</p>
</fn>
</fn-group>
</back>
</article>