<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">AJOR</journal-id><journal-title-group><journal-title>American Journal of Operations Research</journal-title></journal-title-group><issn pub-type="epub">2160-8830</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/ajor.2015.56038</article-id><article-id pub-id-type="publisher-id">AJOR-60955</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Physics&amp;Mathematics</subject></subj-group></article-categories><title-group><article-title>
 
 
  Mathematical Model and Algorithm for the Task Allocation Problem of Robots in the Smart Warehouse
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>henping</surname><given-names>Li</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Wenyu</surname><given-names>Li</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>School of Information, Beijing Wuzi University, Beijing, China</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>lizhenping66@163.com(HL)</email>;<email>leeyu0513@163.com(WL)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>08</day><month>11</month><year>2015</year></pub-date><volume>05</volume><issue>06</issue><fpage>493</fpage><lpage>502</lpage><history><date date-type="received"><day>10</day>	<month>September</month>	<year>2015</year></date><date date-type="rev-recd"><day>accepted</day>	<month>6</month>	<year>November</year>	</date><date date-type="accepted"><day>9</day>	<month>November</month>	<year>2015</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
   In the smart warehousing system adopting cargo-to-person mode, all the items are stored in the movable shelves. There are some warehouse robots transporting the shelves to the working platforms for completing order picking or items replenishment tasks. When the number of robots is insufficient, the task allocation problem of robots is an important issue in designing the warehousing system. In this paper, the task allocation problem of insufficient warehouse robots (TAPIR) is investigated. Firstly, the TAPIR problem is decomposed into three sub-problems: task grouping problem, task scheduling problem and task balanced allocation problem. Then three sub-problems are respectively formulated into integer programming models, and the corresponding heuristic algorithms for solving three sub-problems are designed. Finally, the simulation and analysis are done on the real data of online bookstore. Simulation results show that the mathematical models and algorithms of this paper can provide a theoretical basis for solving the TAPIR problem. 
 
</p></abstract><kwd-group><kwd>Smart Warehouse</kwd><kwd> Warehouse Robot</kwd><kwd> Task Allocation Problem</kwd><kwd> Mathematical Model</kwd><kwd> Heuristic Algorithm</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>In the smart warehousing system adopting cargo-to-person mode, all the items are stored in the movable shelves neatly arranged in the warehouse, and picking workers stand in front of stationary picking platforms. There are some isomorphic warehouse robots running along the marked line to complete order picking or items replenishment tasks [<xref ref-type="bibr" rid="scirp.60955-ref1">1</xref>] . When starting order picking or items replenishment tasks, the computer system controls one or more warehouse robots to the sites of assigned movable shelves; the warehouse robots lift up their assigned shelves and transport them to the corresponding picking platforms. After the picking workers complete the order picking or items replenishment tasks, the warehouse robots transport the movable shelves back to their own original locations. In the warehousing management system, complex transportation works are done by the warehouse robots instead of human; the working efficiency is improved in some ways [<xref ref-type="bibr" rid="scirp.60955-ref2">2</xref>] .</p><p>Since different items of one order might be laid in different shelves. When picking an order, the robots usually need to transport more than one shelf to the picking platforms. In another words, the warehouse robots need to complete multiple tasks for picking one order. In order to improve the picking efficiency, it needs the multi- robot cooperation to complete multiple tasks. The task allocation problem of warehouse robots greatly affects the working efficiency of smart warehousing system.</p><p>Some researchers investigated the tasks allocation problem of abundant robots (TAPAR) where the number of robots was larger than the number of tasks to be completed in picking one order. Guo adopts the market auction method to solve the task allocation problem of abundant mobile robots (TAPAR) in a smart logistic centre [<xref ref-type="bibr" rid="scirp.60955-ref3">3</xref>] . Li uses the genetic algorithm and ant colony algorithm to study the TAPAR problem [<xref ref-type="bibr" rid="scirp.60955-ref4">4</xref>] . Christopher et al. propose the resource allocation problem of multi-vehicle system in the smart warehouse by using Alphabet Soup method [<xref ref-type="bibr" rid="scirp.60955-ref5">5</xref>] . And Li designs the heuristic algorithm for solving the TAPAR problem [<xref ref-type="bibr" rid="scirp.60955-ref6">6</xref>] .</p><p>In practical, the number of robots is often smaller than the number of tasks to be completed in picking one order, which means the robots are insufficient. By now, little researches focused on the task allocation problem of insufficient mobile robots (TAPIR).</p><p>In this paper, the TAPIR problem in smart warehousing system based on cargo-to-person mode is investigated. We partition the task allocation problem of insufficient robots into three sub-problems: task grouping problem, task scheduling problem and task balanced allocation problem. The mathematical models of three sub-problems are built, and the corresponding heuristic algorithms are designed to solve three sub-problems. Finally, the simulation and analysis are done on the real data of online bookstore S.</p></sec><sec id="s2"><title>2. Problem Description and Mathematical Models</title><sec id="s2_1"><title>2.1. Problem Description</title><p>In a smart warehousing system based on cargo-to-person mode, there are m available warehouse robots, k movable shelves, and n picking platforms. Each shelf and picking platform is arranged in a fixed site. Each shelf stores several types of items. The unit-distance cost of a robot walking loaded with a shelf is c<sub>1</sub>, the unit-distance cost of a robot walking unloaded is c<sub>2</sub>, and the fixed cost of every warehouse robot running one time is r. Let d<sub>ij</sub> represents the distance of a robot running from shelf s<sub>i</sub> to shelf s<sub>j</sub>, and u<sub>j</sub> represents the distance of a robot transporting shelf s<sub>j</sub> to its corresponding picking platform.</p><p>The operation cost of a warehouse robot completing a given task is composed of three parts: the related cost, the self-cost and the fixed cost. Related cost refers to the cost that the warehouse robot needs to move unloaded from current position to the position of assigned task. Self-cost refers to the cost that the warehouse robot completing a task. The fix cost refers to the cost running a warehouse robot one time. Suppose the current position of robot F<sub>l</sub> is in the position of shelf s<sub>i</sub>, if we assign robot F<sub>l</sub> to finish task s<sub>j</sub>, then the operation cost of robot F<sub>l</sub> to finish task s<sub>j</sub> can be expressed as follows:</p><disp-formula id="scirp.60955-formula1"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x6.png"  xlink:type="simple"/></disp-formula><p>where d<sub>ij</sub> is the distance of robot F<sub>l</sub> running from current position s<sub>i</sub> to the position of assigned task s<sub>j</sub>, u<sub>j</sub> is the double distance from position of task s<sub>j</sub> to picking platform, r is the fixed cost for controlling robot F<sub>l</sub> completing one task.</p><p>Given an order to be picked in the smart warehouse, there are p tasks to be completed for picking this order (m &lt; p). Assume that the set of tasks for picking this order is<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x7.png" xlink:type="simple"/></inline-formula>.</p><p>Suppose there are e orders to be picked in a period of time which are listed in a set:<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x8.png" xlink:type="simple"/></inline-formula>, and the orders are picked one by one, in order to minimize the total operation cost, how to assign all tasks for each warehouse robot and give its working schedule?</p><p>The task allocation problem of insufficient warehouse robots (TAPIR) can be decomposed into three sub- problems: task grouping problem, task scheduling problem, and task balanced allocation problem. Firstly, all tasks of picking one order are partitioned into several groups, where the number of groups equals to the number of robots. Secondly, the scheduling scheme of each group tasks is given according to every robot. Finally, assign each warehouse robot to complete one group of tasks.</p><p>In the following subsections, we will construct the mathematical models for these three sub-problems.</p></sec><sec id="s2_2"><title>2.2. Mathematical Model for the Task Grouping Problem</title><p>For the task allocation problem of insufficient warehouse robots (TAPIR), since the number of robots is smaller than the number of tasks for picking an order, so some warehouse robots need to complete more than one tasks when picking one order. Before assign the tasks to robots, we firstly partition all tasks into several groups, where the number of group equals to the number of robots.</p><p>In order to reduce the total operation cost and ensure the task allocation of warehouse robots balanced, we define the similarity r<sub>ij</sub> between task s<sub>i</sub> and task s<sub>j</sub>. The similarity r<sub>ij</sub> can be calculated by formula (1), where d<sub>ij</sub> is the distance for a robot to move from the site of task s<sub>i</sub> to the site of task s<sub>j</sub>, d<sub>max</sub> is the maximum distance between any pair of tasks (<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x9.png" xlink:type="simple"/></inline-formula>).</p><disp-formula id="scirp.60955-formula2"><label>(1)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1040417x10.png"  xlink:type="simple"/></disp-formula><p>It is easy to verify that<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x11.png" xlink:type="simple"/></inline-formula>. If we assign two tasks with larger similarity value to one robot, the related cost will be lower. On the contrary, if we assign two tasks with smaller similarity value to one robot, the related cost will be higher. Based on this idea, we can partition the tasks into several groups according to the similarity value. To ensure the task allocation balanced among all robots, we restrict the number of tasks in each group is</p><p>no more than a given value D (for example<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x12.png" xlink:type="simple"/></inline-formula>).</p><p>Define the decision variables:</p><disp-formula id="scirp.60955-formula3"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x13.png"  xlink:type="simple"/></disp-formula><p>The mathematical model of task grouping problem for picking one order can be formulated as an integer programming model.</p><disp-formula id="scirp.60955-formula4"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x14.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.60955-formula5"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x15.png"  xlink:type="simple"/></disp-formula><p>Objective function (2) maximizes sum of the average similarity of tasks assigned to the same group; Constraints (3) ensure that each task is just assigned into one group; Constraints (4) and Constraints (5) ensure that each group contains at least one task and no more than D tasks; Constraints (6) indicate that the variables are binary.</p></sec><sec id="s2_3"><title>2.3. Mathematical Model for the Task Scheduling Problem</title><p>Because the self-cost of transporting a task to its corresponding picking platform is a constant no matter which warehouse robot completes this task, the fix cost of each robot is also a constant no matter which task it completes, so the total operation cost of warehouse robots depends mainly on the total related cost that the warehouse robots completing all of the tasks.</p><p>If a warehouse robot located in s<sub>0</sub> is assigned to complete a group of tasks<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x16.png" xlink:type="simple"/></inline-formula>, the total related cost depends on the scheduling order of the tasks. For example, if the scheduling order of the tasks is <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x17.png" xlink:type="simple"/></inline-formula>, then the total related cost is<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x18.png" xlink:type="simple"/></inline-formula>. When the scheduling order of tasks changed, the total related cost will change.</p><p>Given a warehouse robot and a group of tasks, the task scheduling problem is to find the optimal scheduling order of the tasks, so that the total related cost for the robot completing all tasks is minimal.</p><p>Since the related cost depends on the distance between two successive tasks, so the task scheduling problem is similar to Hamiltonian path problem, where the robot should start its routing from initial position s<sub>0</sub>, and visit every site of the task in <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x19.png" xlink:type="simple"/></inline-formula> one time. After completing all tasks, the robot will stay in the site of the last task, which means that it needs not return to its initial position s<sub>0</sub>.</p><p>Suppose that warehouse robot F<sub>l</sub> (locating in site s<sub>0</sub>) is assigned to complete the tasks <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x20.png" xlink:type="simple"/></inline-formula> of group</p><p>k. Suppose that <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x21.png" xlink:type="simple"/></inline-formula> is a dummy end location, which corresponding to the last location of tasks<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x21.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x22.png" xlink:type="simple"/></inline-formula>.</p><p>Define<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x23.png" xlink:type="simple"/></inline-formula>.</p><p>To find the optimal scheduling order of tasks, we defined the variables as follows:</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x24.png" xlink:type="simple"/></inline-formula>: the flow that run from task s<sub>i</sub> to task s<sub>j</sub>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x24.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x25.png" xlink:type="simple"/></inline-formula></p><disp-formula id="scirp.60955-formula6"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x26.png"  xlink:type="simple"/></disp-formula><p>We define that <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x27.png" xlink:type="simple"/></inline-formula></p><p>The task scheduling problem can be formulated into the following integer programming model.</p><disp-formula id="scirp.60955-formula7"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x28.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.60955-formula8"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x29.png"  xlink:type="simple"/></disp-formula><p>Objective function (7) minimizes the total related cost that the warehouse robot F<sub>l</sub> completes all tasks in group k; Constraints (8) (9) ensure that each task must be completed by robot F<sub>l</sub>; Constraint (10) denote that when a task is completed, the total flow run into it will be absorbed 1 by the task. Constraint (11) ensures the sum of flows come out from location s<sub>0</sub> equals q. Constraint (12) represents the relationship between x<sub>ij</sub> and f<sub>ij</sub>; Constraint (13) indicates that the variables x<sub>ij</sub> are binary.</p></sec><sec id="s2_4"><title>2.4. Mathematical Model for the Task Balanced Allocation Problem</title><p>After calculating the related cost <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x30.png" xlink:type="simple"/></inline-formula> of warehouse robot <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x30.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x31.png" xlink:type="simple"/></inline-formula> to complete the tasks in group</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x32.png" xlink:type="simple"/></inline-formula>, we obtained a related cost matrix<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x32.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x33.png" xlink:type="simple"/></inline-formula>. Since we have partitioned the tasks into m</p><p>groups, each robot needs to complete one and only one group of tasks. The tasks balanced allocation problem is to assign each robot completing only one group of tasks so that the total related costs is minimal.</p><p>Define the decision variables:</p><disp-formula id="scirp.60955-formula9"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x34.png"  xlink:type="simple"/></disp-formula><p>The mathematical model of tasks balanced allocation problem can be formulated into an integer programming model as follows:</p><disp-formula id="scirp.60955-formula10"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x35.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.60955-formula11"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x36.png"  xlink:type="simple"/></disp-formula><p>Objective function (14) minimizes the total related cost that warehouse robots complete all groups of tasks; Constraints (15) ensure that each group of tasks can only be assigned to one warehouse robot; Constraints (16) represent that each warehouse robot can only complete one group of tasks; Constraints (17) indicate that the variables are binary.</p></sec></sec><sec id="s3"><title>3. Algorithms for Solving Three Sub-Problems</title><p>In Section 2, we have decomposed the TAPIR problem into three sub-problems and formulate them as integer programming models. For small size of sub-problems, we can solve the integer programming model by Lingo software. Since some sub-problem (such as the second sub-problem) is NP-hard, for larger size of the problem, it is not practical to solve them by Lingo software. In this section, we will respectively design heuristic algorithms for solving each sub-problem of Section 2.</p><sec id="s3_1"><title>3.1. Algorithm for Solving the Task Grouping Problem</title><p>Given the number of robots m and the position of each robot, the set of tasks <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x37.png" xlink:type="simple"/></inline-formula> need to be completed in picking one order. The heuristic algorithm for grouping all tasks into m groups can be described as follows:</p><p>Initialization:<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x38.png" xlink:type="simple"/></inline-formula>, group = 0, where T is the set of ungrouped tasks, group denotes the number of non-empty groups.</p><p>Step 1: Calculate the similarity matrix<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x39.png" xlink:type="simple"/></inline-formula>, where r<sub>ij</sub> is the similarity between task s<sub>i</sub> and task s<sub>j</sub>, which can be calculated by Equation (1).</p><p>Step 2: Find the smallest value of matrix<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x40.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x40.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x41.png" xlink:type="simple"/></inline-formula>, let<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x40.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x41.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x42.png" xlink:type="simple"/></inline-formula>,<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x40.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x41.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x42.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x43.png" xlink:type="simple"/></inline-formula>;<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x40.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x41.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x42.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x43.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x44.png" xlink:type="simple"/></inline-formula>;<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x40.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x41.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x42.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x43.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x44.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x45.png" xlink:type="simple"/></inline-formula>.</p><p>Step 3: If group = m, go to step 4, else.</p><p>For each<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x46.png" xlink:type="simple"/></inline-formula>, and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x46.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x47.png" xlink:type="simple"/></inline-formula>, calculate the average similarity between the ungrouped task s<sub>i</sub> and all tasks in group k as follows</p><disp-formula id="scirp.60955-formula12"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x48.png"  xlink:type="simple"/></disp-formula><p>The sum of average similarity between task s<sub>i</sub> and all non-empty groups</p><disp-formula id="scirp.60955-formula13"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x49.png"  xlink:type="simple"/></disp-formula><p>Find the task with minimum sum of average similarity</p><disp-formula id="scirp.60955-formula14"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x50.png"  xlink:type="simple"/></disp-formula><p>Update the number of non-empty group, add the tasks in the new non-empty group, and update the set of ungrouped tasks.</p><disp-formula id="scirp.60955-formula15"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x51.png"  xlink:type="simple"/></disp-formula><p>Go to step 3.</p><p>Step 4: If<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x52.png" xlink:type="simple"/></inline-formula>, go to step 5. Else add the ungrouped tasks to the group, with which it has the maximum average similarity.</p><p>For each<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x53.png" xlink:type="simple"/></inline-formula>, and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x53.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x54.png" xlink:type="simple"/></inline-formula>, where<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x53.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x54.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x55.png" xlink:type="simple"/></inline-formula>.</p><p>Calculate the average similarity between s<sub>i</sub> and each task in group k.</p><disp-formula id="scirp.60955-formula16"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x56.png"  xlink:type="simple"/></disp-formula><p>Find the group with maximum average similarity value.</p><disp-formula id="scirp.60955-formula17"><graphic  xlink:href="http://html.scirp.org/file/1-1040417x57.png"  xlink:type="simple"/></disp-formula><p>Update the set T and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x58.png" xlink:type="simple"/></inline-formula></p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x59.png" xlink:type="simple"/></inline-formula>,.</p><p>Go to Step 4.</p><p>Step 5: Output the tasks in each group:<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x61.png" xlink:type="simple"/></inline-formula>.</p></sec><sec id="s3_2"><title>3.2. Algorithm for Solving the Task Scheduling Problem</title><p>To solve the task scheduling problem, we design a heuristic algorithm:</p><p>Define the following variables:</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x62.png" xlink:type="simple"/></inline-formula>represents the scheduling route, whose initial value is empty;</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x63.png" xlink:type="simple"/></inline-formula>represents the location of robot F<sub>l</sub>, whose intimal position is<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x63.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x64.png" xlink:type="simple"/></inline-formula>;</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x65.png" xlink:type="simple"/></inline-formula>represents the total related cost for robot F<sub>l</sub> completing tasks in <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x65.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x66.png" xlink:type="simple"/></inline-formula></p><p>Input: The locations of m robots and the sites of each task in m groups.</p><p>Step 1: For each robot <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x67.png" xlink:type="simple"/></inline-formula> and each task group<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x67.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x68.png" xlink:type="simple"/></inline-formula>, suppose the location of robot F<sub>l</sub> is</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x69.png" xlink:type="simple"/></inline-formula>, the number of tasks in group k is<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x69.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x70.png" xlink:type="simple"/></inline-formula>,<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x69.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x70.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x71.png" xlink:type="simple"/></inline-formula>.</p><p>Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x72.png" xlink:type="simple"/></inline-formula> be the index set of tasks.</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x73.png" xlink:type="simple"/></inline-formula> ;<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x73.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x74.png" xlink:type="simple"/></inline-formula>;<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x73.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x74.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x75.png" xlink:type="simple"/></inline-formula>.</p><p>Calculate the distance matrix<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x76.png" xlink:type="simple"/></inline-formula>, where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x76.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x77.png" xlink:type="simple"/></inline-formula> is the distance from <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x76.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x77.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x78.png" xlink:type="simple"/></inline-formula> to<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x76.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x77.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x78.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x79.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x76.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x77.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x78.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x79.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x80.png" xlink:type="simple"/></inline-formula>is the distance from <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x76.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x77.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x78.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x79.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x80.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x81.png" xlink:type="simple"/></inline-formula> to<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x76.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x77.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x78.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x79.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x80.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x81.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x82.png" xlink:type="simple"/></inline-formula>,<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x76.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x77.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x78.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x79.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x80.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x81.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x82.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x83.png" xlink:type="simple"/></inline-formula>.</p><p>Step 2: If<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x84.png" xlink:type="simple"/></inline-formula>, go to step 3.</p><p>Else, find the minimal element of matrix <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x85.png" xlink:type="simple"/></inline-formula> in the location row and columns of TN,</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x86.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x86.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x87.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x86.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x87.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x88.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x86.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x87.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x88.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x89.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x86.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x87.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x88.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x89.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x90.png" xlink:type="simple"/></inline-formula>, go to step 2.</p><p>Step 3: Output the total related cost w<sub>lk</sub>, the optimal scheduling order of tasks<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x91.png" xlink:type="simple"/></inline-formula>, and the final location of robot F<sub>l</sub>.</p></sec><sec id="s3_3"><title>3.3. Algorithm for Solving the Task Balanced Allocation Problem</title><p>After scheduling the tasks of each group, we obtain the related cost matrix<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x92.png" xlink:type="simple"/></inline-formula>, where w<sub>lk</sub> represents the related cost of robot F<sub>l</sub> completing the tasks of groups k. Then the balance allocation problem is converted into an assignment problem, which can be solved by Hungarian Algorithm [<xref ref-type="bibr" rid="scirp.60955-ref7">7</xref>] . We can also obtain the optimal solution by solving the integer linear programming model directly.</p></sec></sec><sec id="s4"><title>4. Simulations Analysis</title><p>In this section, we do simulation on a smart warehouse of online bookstore S. At present, online bookstore S uses the smart ware housing system based on cargo-to-person mode. In the warehouse, 96 classes of books are stored in 24 movable shelves. Each shelf stores 4 classes of books. There are 3 picking platforms in the smart warehouse. Currently, the orders are picked one by one. <xref ref-type="fig" rid="fig1">Figure 1</xref> depicts the layout of the warehouse, the square boxes represent 24 shelves and their positions, three rectangular boxes represent three picking platforms; three cycles with arrow represent the warehouse robots. The coordinates of shelves and picking platforms are listed in <xref ref-type="table" rid="table1">Table 1</xref>. The initial positions of three robots are the same as their nearest shelves.</p><p>There are 10 orders to be picked. The tasks sets of 10 orders are listed in <xref ref-type="table" rid="table2">Table 2</xref>. The unit cost of a robot walking loaded with a shelf is 3 dollars, the unit cost of a robot walking unloaded is 1.9 dollars, and the fixed cost of controlling each warehouse robot completing a task is 10 dollars. In order to minimize the total cost in the process of picking 10 orders, how to allocate and schedule the tasks to each warehouse robot?</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> The layout of the warehouse, the square boxes represent shelves, three rectangular boxes represent three picking platforms three cycles with arrow represent the warehouse robots. 8 tasks of the first order depicted in red squares are partitioned into three groups. The tasks in the same group are surrounded by a closed curve (Coordinate Unit: 2 m)</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1040417x93.png"/></fig><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Coordinates of each shelf and each picking platform</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Shelf</th><th align="center" valign="middle" >s<sub>1</sub></th><th align="center" valign="middle" >s<sub>2</sub></th><th align="center" valign="middle" >s<sub>3</sub></th><th align="center" valign="middle" >s<sub>4</sub></th></tr></thead><tr><td align="center" valign="middle" >Coordinate</td><td align="center" valign="middle" >(3, 7)</td><td align="center" valign="middle" >(5, 7)</td><td align="center" valign="middle" >(7, 7)</td><td align="center" valign="middle" >(9, 7)</td></tr><tr><td align="center" valign="middle" >Shelf</td><td align="center" valign="middle" >s<sub>5</sub></td><td align="center" valign="middle" >s<sub>6</sub></td><td align="center" valign="middle" >s<sub>7</sub></td><td align="center" valign="middle" >s<sub>8</sub></td></tr><tr><td align="center" valign="middle" >Coordinate</td><td align="center" valign="middle" >(11, 7)</td><td align="center" valign="middle" >(13, 7)</td><td align="center" valign="middle" >(13, 9)</td><td align="center" valign="middle" >(11, 9)</td></tr><tr><td align="center" valign="middle" >Shelf</td><td align="center" valign="middle" >s<sub>9</sub></td><td align="center" valign="middle" >s<sub>10</sub></td><td align="center" valign="middle" >s<sub>11</sub></td><td align="center" valign="middle" >s<sub>12</sub></td></tr><tr><td align="center" valign="middle" >Coordinate</td><td align="center" valign="middle" >(9, 9)</td><td align="center" valign="middle" >(7, 9)</td><td align="center" valign="middle" >(5, 9)</td><td align="center" valign="middle" >(3, 9)</td></tr><tr><td align="center" valign="middle" >Shelf</td><td align="center" valign="middle" >s<sub>13</sub></td><td align="center" valign="middle" >s<sub>14</sub></td><td align="center" valign="middle" >s<sub>15</sub></td><td align="center" valign="middle" >s<sub>16</sub></td></tr><tr><td align="center" valign="middle" >Coordinate</td><td align="center" valign="middle" >(3, 11)</td><td align="center" valign="middle" >(5, 11)</td><td align="center" valign="middle" >(7, 11)</td><td align="center" valign="middle" >(9, 11)</td></tr><tr><td align="center" valign="middle" >Shelf</td><td align="center" valign="middle" >s<sub>17</sub></td><td align="center" valign="middle" >s<sub>18</sub></td><td align="center" valign="middle" >s<sub>19</sub></td><td align="center" valign="middle" >s<sub>20</sub></td></tr><tr><td align="center" valign="middle" >Coordinate</td><td align="center" valign="middle" >(11, 11)</td><td align="center" valign="middle" >(13, 11)</td><td align="center" valign="middle" >(13, 13)</td><td align="center" valign="middle" >(11, 13)</td></tr><tr><td align="center" valign="middle" >Shelf</td><td align="center" valign="middle" >s<sub>21</sub></td><td align="center" valign="middle" >s<sub>22</sub></td><td align="center" valign="middle" >s<sub>23</sub></td><td align="center" valign="middle" >s<sub>24</sub></td></tr><tr><td align="center" valign="middle" >Coordinate</td><td align="center" valign="middle" >(9, 13)</td><td align="center" valign="middle" >(7, 13)</td><td align="center" valign="middle" >(5, 13)</td><td align="center" valign="middle" >(3, 13)</td></tr><tr><td align="center" valign="middle" >Picking platform</td><td align="center" valign="middle" >t<sub>1</sub></td><td align="center" valign="middle" >t<sub>2</sub></td><td align="center" valign="middle" >t<sub>3</sub></td><td align="center" valign="middle" ></td></tr><tr><td align="center" valign="middle" >Coordinate</td><td align="center" valign="middle" >(4, 3)</td><td align="center" valign="middle" >(8, 3)</td><td align="center" valign="middle" >(12, 3)</td><td align="center" valign="middle" ></td></tr></tbody></table></table-wrap><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> The tasks of picking each order</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Order</th><th align="center" valign="middle" >Tasks of picking the order</th></tr></thead><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x94.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x95.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x96.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x97.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x98.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >6</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x99.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >7</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x100.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >8</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x101.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >9</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x102.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >10</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x103.png" xlink:type="simple"/></inline-formula></td></tr></tbody></table></table-wrap><p>Since the orders are picked one by one, for each order to be picked, we can calculate the distance between any pair of tasks, and obtain the similarity matrix by Equation (1).</p><p>For the uth <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x104.png" xlink:type="simple"/></inline-formula> order, we first partition the tasks into three groups by the heuristic algorithm in section 3.1.</p><p>Then we obtain the scheduling order for each group tasks and every robot by the heuristic algorithm in section 3.2. Using the Hungarian Algorithm, we get the tasks assignment and scheduling results, and the total operation cost.</p><p>After assigning the tasks of the uth order to the robots, we update the initial position of each robot, and begin to assign the tasks of the <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x105.png" xlink:type="simple"/></inline-formula>th order. Repeat the steps until all tasks of 10 orders are assigned to robots.</p><p>The simulation results of the first order is depicted in <xref ref-type="fig" rid="fig1">Figure 1</xref>, where 8 tasks are partitioned into three groups, the tasks in the same group are surrounded by a closed curve. The optimal tasks assignment and the scheduling routes are<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x106.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x106.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x107.png" xlink:type="simple"/></inline-formula>,<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x106.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x107.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x108.png" xlink:type="simple"/></inline-formula>. Which mean that robot F<sub>1</sub> need to complete tasks s<sub>24</sub>, s<sub>23</sub>, s<sub>21</sub> in sequence, then stop at position s<sub>21</sub>. Robot F<sub>2</sub> need to complete tasks s<sub>6</sub>, s<sub>2</sub> in sequence, then stop at position s<sub>2</sub>. Robot F<sub>3</sub> need to complete tasks s<sub>10</sub>, s<sub>8</sub>, s<sub>7</sub> in sequence, then stop at position s<sub>7</sub>.</p><p>The task grouping results of all orders are listed in <xref ref-type="table" rid="table3">Table 3</xref>. The task allocation and optimal scheduling routes of all orders are shown in <xref ref-type="table" rid="table4">Table 4</xref>, the total operation costs of each order are listed in <xref ref-type="table" rid="table4">Table 4</xref>.</p><p>According to the task assignment and scheduling routes, and the operation cost in <xref ref-type="table" rid="table4">Table 4</xref>, the total operation cost that the warehouse robots complete all tasks of 10 orders is 4330.2 dollars.</p><p>If the number of warehouse robots is larger than the maximum number of tasks for picking one order, the problem becomes TAPAR. The tasks need not be grouped, and the total operation cost for picking these 10 orders will be 4010.4 dollars [<xref ref-type="bibr" rid="scirp.60955-ref2">2</xref>] .</p><p>From the task allocation results of 10 orders, we can see that the total operation cost in TAPIR is 319.8 dollars more than the total operation cost in TAPAR [<xref ref-type="bibr" rid="scirp.60955-ref2">2</xref>] . However, the number of warehouse robots in the TAPIR is 7 less than that in TAPAR. Since the cost of increasing a warehouse robot is very large, in practice, the number of warehouse robots is often insufficient. If we consider holding cost of robots in the TAPIR, we can find that the warehouse had better hold fewer robots.</p><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> Task grouping results of 10 orders</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Order</th><th align="center" valign="middle" >Group 1</th><th align="center" valign="middle" >Group 2</th><th align="center" valign="middle" >Group 3</th><th align="center" valign="middle" >Sum of average similarity</th></tr></thead><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x109.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x110.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x111.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >2.416667</td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x112.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x113.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x114.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >2.625000</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x115.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x116.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x117.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >2.333333</td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x118.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x119.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x120.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >2.333334</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x121.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x122.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x123.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >2.319444</td></tr><tr><td align="center" valign="middle" >6</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x124.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x125.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x126.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >2.428572</td></tr><tr><td align="center" valign="middle" >7</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x127.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x128.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x129.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >2.416666</td></tr><tr><td align="center" valign="middle" >8</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x130.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x131.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x132.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >2.500000</td></tr><tr><td align="center" valign="middle" >9</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x133.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x134.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x135.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >2.333333</td></tr><tr><td align="center" valign="middle" >10</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x136.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x137.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x138.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >2.472222</td></tr></tbody></table></table-wrap><table-wrap id="table4" ><label><xref ref-type="table" rid="table4">Table 4</xref></label><caption><title> The task assignment and optimal scheduling routes, and the operation cost of each order</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Order</th><th align="center" valign="middle" >Task assignment and optimal scheduling routes</th><th align="center" valign="middle" >Operation cost</th></tr></thead><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x139.png" xlink:type="simple"/></inline-formula>;<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x140.png" xlink:type="simple"/></inline-formula>; <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x141.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >517.2</td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x142.png" xlink:type="simple"/></inline-formula>;<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x143.png" xlink:type="simple"/></inline-formula>; <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x144.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >222.6</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x145.png" xlink:type="simple"/></inline-formula>;<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x146.png" xlink:type="simple"/></inline-formula>; <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x147.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >508.2</td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x148.png" xlink:type="simple"/></inline-formula>;<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x149.png" xlink:type="simple"/></inline-formula>; <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x150.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >493.6</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x151.png" xlink:type="simple"/></inline-formula>;<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x152.png" xlink:type="simple"/></inline-formula>; <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x153.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >512.8</td></tr><tr><td align="center" valign="middle" >6</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x154.png" xlink:type="simple"/></inline-formula>;<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x155.png" xlink:type="simple"/></inline-formula>; <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x156.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >457</td></tr><tr><td align="center" valign="middle" >7</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x157.png" xlink:type="simple"/></inline-formula>;<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x158.png" xlink:type="simple"/></inline-formula>; <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x159.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >381.6</td></tr><tr><td align="center" valign="middle" >8</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x160.png" xlink:type="simple"/></inline-formula>;<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x161.png" xlink:type="simple"/></inline-formula>; <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x162.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >361.2</td></tr><tr><td align="center" valign="middle" >9</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x163.png" xlink:type="simple"/></inline-formula>;<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x164.png" xlink:type="simple"/></inline-formula>; <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x165.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >514</td></tr><tr><td align="center" valign="middle" >10</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x166.png" xlink:type="simple"/></inline-formula>;<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x167.png" xlink:type="simple"/></inline-formula>; <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1040417x168.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >362</td></tr></tbody></table></table-wrap></sec><sec id="s5"><title>5. Conclusions</title><p>The task allocation problem of insufficient warehouse robots (TAPIR) in the smart warehouse is an important issue in the smart warehousing system designing. By now, few researches focus on the TAPIR problem. In this paper, we investigate the TAPIR problem, and divide it into three sub-problems: task grouping problem, task scheduling problem and task balanced allocation problem. We formulate each sub-problem into an integer programming model and design the heuristic algorithm for solving each sub-problem. The mathematical models and algorithms can be used in designing the smart warehousing system.</p><p>In this paper, we assume that the orders are picked one by one. When the number of orders is large, the orders can be batched firstly [<xref ref-type="bibr" rid="scirp.60955-ref8">8</xref>] , and then consider the orders in each batch as one combined order. Using the mathematical models and heuristic algorithms of this paper, we can find the optimal task allocation and scheduling routes for picking each combined order.</p><p>In this paper, we have not considered the cost of holding a robot. If we consider this cost, we can analyze the relation between the total cost and the number of warehouse robots and find the optimal number of robots a warehouse should hold. This is the problem we are researching on.</p></sec><sec id="s6"><title>Acknowledgements</title><p>This work was supported by the National Natural Science Foundation of China (11131009, F012408), the Funding Project for Academic Human Resources Development in Institutions of Higher Learning Under the Jurisdiction of Beijing Municipality (CIT&amp;TCD20130327), and Major Research Project of Beijing Wuzi University. Funding Project for Technology Key Project of Municipal Education Commission of Beijing (ID: TSJHG201310037036); Funding Project for Beijing key laboratory of intelligent logistics system; Funding Project of Construction of Innovative Teams and Teacher Career Development for Universities and Colleges Under Beijing Municipality (ID: IDHT20130517); Funding Project for Beijing philosophy and social science research base specially commissioned project planning (ID: 13JDJGD013).</p></sec><sec id="s7"><title>Cite this paper</title><p>ZhenpingLi,WenyuLi, (2015) Mathematical Model and Algorithm for the Task Allocation Problem of Robots in the Smart Warehouse. American Journal of Operations Research,05,493-502. doi: 10.4236/ajor.2015.56038</p></sec></body><back><ref-list><title>References</title><ref id="scirp.60955-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Li, Z. and Li, W. (2014) Study on Optimization of Storage Bays of Smart Warehouses of Online Bookstores. Logistics Technology, 12, 340-342. (In Chinese)</mixed-citation></ref><ref id="scirp.60955-ref2"><label>2</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Zou</surname><given-names> S. </given-names></name>,<etal>et al</etal>. (<year>2013</year>)<article-title>The Present and Future of Warehouse Robot</article-title><source> Logistics Engineering and Management</source><volume> 6</volume>,<fpage> 171</fpage>-<lpage>172</lpage>.<pub-id pub-id-type="doi"></pub-id></mixed-citation></ref><ref id="scirp.60955-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Guo, Y. (2010) Auction-Based Multi-Agent Task Allocation in Smart Logistic Center. Ph.D. Thesis, Harbin Institute of Technology, Shenzhen. (In Chinese)</mixed-citation></ref><ref id="scirp.60955-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Li, G. (2012) Task Allocation of Warehouse Robots Based on Intelligence Optimization Algorithm. Ph.D. Thesis, Harbin Institute of Technology, Shenzhen. (In Chinese)</mixed-citation></ref><ref id="scirp.60955-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Hazard, C.J., Wurman, P.R. and D’Andrea, R. (2006) Alphabet Soup: A Tested for Studying Resource Allocation in Multi-Vehicle Systems. American Association for Artificial Intelligence.</mixed-citation></ref><ref id="scirp.60955-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Li, Z. and Li, W. (2015) Research on the Task Allocation Problem of Warehouse Robots in the Smart Warehouse. Proceedings of the 12th International Symposium on Operations Research and Its Applications, Luoyang, 21-24 August 2015, 29-33.</mixed-citation></ref><ref id="scirp.60955-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Kuhn, H.W. (2005) The Hungarian Method for the Assignment Problem. Naval Research Logistics, 1, 7-21. &lt;/br&gt;http://dx.doi.org/10.1002/nav.20053</mixed-citation></ref><ref id="scirp.60955-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Li, Z. and Li, W. (2014) Study on Supplier Warehouse Location Combination Problem of Chain Supermarkets. Logistics Technology, 9, 137-139. (In Chinese)</mixed-citation></ref></ref-list></back></article>