This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2011-158552, filed on Jul. 20, 2011, the entire contents of which are incorporated herein by reference.
This technique relates to a technique for determining a traveling route according to constraint conditions.
The traveling salesman problem is a problem that n cities (also called “operation point” or “operation place”) and distances between respective cities are input and a route having the minimal total movement distance is selected from among routes that the salesman returns to the original city after visiting the respective cities once. This problem is known as the NP hard problem, and is a typical difficult combinatorial optimization problem. However, because this problem can be applied to a lot of fields such as delivery planning, drilling of the board, rolling planning of steel plates and the like, it is preferable that such problems are processed by any means in a short time.
Extension of the traveling salesman problem includes a traveling salesman problem with constraint conditions. This traveling salesman problem with the constraint conditions includes a problem that plural groups (also called “teams”) conduct operations, and this problem includes a problem that an operation time of the last group that returned to the original place is minimized and a problem that the total sum of the operation times of all of the groups is minimized. According to the former, the entire operation time is minimized. According to the latter, the total movement distance is minimized, and it is possible to reduce the movement cost such as gasoline cost and the like. The constraint conditions include a priority condition that is a constraint for the order of the traveling operation places, a constraint (rendezvous condition or rendezvous-allowing condition) for conducting operations by the plural rendezvousing groups and the like. Incidentally, the rendezvous condition is set, for example, when the operation should be conducted by the plural rendezvousing groups. The rendezvous-allowing condition is set when the operational efficiency is improved by conducting the operation together. Problems that can be formulated to the traveling salesman problem with constraint conditions include personnel assignment problem, logistics problem, delivery planning, planning problem of the restoration from the disaster and the like.
There are various algorithms for solving the traveling salesman problem, and one of them is a local search method for improving the solution by searching the vicinity of the traveling route that is defined by any method. However, there is a case where the conventional local search method itself cannot be applied depending on the constraint conditions being set.
For example, a local search method, which is called “two-point exchange algorithm” is known. In this method, in case where a traveling route (1, 5, 6, 7, 2, 4, 3) is determined by any means as illustrated in
However, the two-point exchange algorithm cannot be simply applied to the traveling salesman problem with the priority condition, in which two groups conducts operations. For example, it is assumed that the priority condition as illustrated in
In such a status, while paying attention only to the group B, for example, it is assumed that the two-point exchange algorithm to exchange the operation 9 with the operation 6 is executed. Then, an operation execution status as illustrated in
A two-point exchange algorithm is a mere example of the local search methods, and other local search methods (e.g. 2-opt (k-opt) method, or-opt method, k-point exchange method, genetic algorithms, Simulated Annealing method, Tabu search method or the like) have similar problems.
In addition, there is a technique for acquiring a solution, in which the number of vehicles is reduced, of the delivery route problem using plural vehicles. Specifically, a method for generating a delivery plan to deliver goods to plural points from a certain base point by plural vehicles includes repeating the local search to update S until a solution set (N(S)) including vicinity solutions of the present given solution S satisfies a given end condition, to obtain the best solution Sbest. The local search includes searching for a solution that the number of vehicles is minimal, and when there are plural solutions that the number of vehicles is minimal, searching the plural solutions for a solution that an indicator β(t) is minimal that is defined by the following expression (2) and represents how little the variation of evaluation values Bk(t)(t∈N(S)) of the respective vehicles, which are defined by the following expression (1), is.
Bk(t)=Σi∈Ck(t)pi/M (1)
β(t)=1−Σk∈σ(t)Bk(t)m/|σ(t)| (2)
However, this technique cannot handle the aforementioned problem that the local search cannot be simply applied.
Namely, there is no technique for enabling to apply the typical local search method to a problem that an operation order is determined when plural operations to be conducted while traveling are shared at least partially with plural operator groups.
An information processing method relating to this embodiment includes: determining, for each of a plural operator groups, scheduled execution order by arranging, for each of the plural operator groups, the predetermined number of operations to be conducted while traveling, wherein at least a portion of the predetermined number of operations is allotted to each of the plural operator groups; determining, for each of the plural operator groups, operations to be conducted in the scheduled execution order by determining, for each of the plural operator groups, along the scheduled execution order of the operator group and while advancing time, whether movement to an operation place of each operation of the predetermined number of operations and start of the operation satisfy a constraint condition set in advance for the predetermined number of operations; and calculating an evaluation value of orders of the operations determined to be conducted for the plural operator groups.
The object and advantages of the embodiment will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the embodiment, as claimed.
The constraint data storage unit 1600 stores data for constraint conditions that have been set for plural operations to be conducted while traveling. The constraint conditions may include the priority condition, rendezvous condition and/or rendezvous-allowing condition. In addition, the constraint data storage unit 1600 also stores data for movement costs (time or distance) between operation places, operation amounts for the respective operations and operation processing capabilities for the respective operator groups.
The controller 1400 controls the initial setting processing unit 1100, traveling processing unit 1200 and local improvement unit 1300 to carry out a processing, which will be explained later.
The initial setting processing unit 1100 arranges plural operations to be conducted, while traveling, by these plural operator groups for each of the operator groups so as to satisfy the priority condition if the priority condition is stored in the constraint data storage unit 1600, to generate scheduled execution orders, and stores data of the scheduled execution orders into the storage unit 1500.
While advancing the time, the traveling processing unit 1200 determines, for each of the operator groups and along the scheduled execution order, whether or not the movement to the operation place and start of the operation satisfy the constraint conditions stored in the constraint data storage unit 1600, determines the operations to be conducted in the scheduled execution order for each operator group, and stores data of the operations to be conducted for each operator group into the storage unit 1500. In addition, the traveling processing unit 1200 calculates an evaluation value for the determined operation order (i.e. operation allotment), and stores the calculated evaluation value into the storage unit 1500. The evaluation value may be the total sum of the operation times and movement times for the respective operator groups or the greatest value of the total sums, each of which is calculated by adding the operation time and movement time of the operator group. Incidentally, the traveling processing unit 1200 calculates the time consumed for each operation and the time consumed for the movement between the operation places, by using data stored in the constraint data storage unit 1600, when advancing the time.
The local improvement unit 1300 changes the scheduled execution orders stored in the storage unit 1500 so as to satisfy the priority condition when the priority condition is stored in the constraint data storage unit 1600, and stores data of the scheduled execution orders after the change into the data storage unit 1500. The processing of this local improvement unit 1300 is carried out according to the algorithm of the conventional local search method.
The controller 1400 causes the traveling processing unit 1200 to carry out a processing for the scheduled execution orders after the change, and to calculate the evaluation value for the scheduled execution order after the change. Then, the controller 1400 determines whether or not the evaluation value calculated for the scheduled execution order after the change is lowered compared with the previously calculated evaluation value, and when the evaluation value is lowered, the controller 1400 stores the calculated evaluation value, data of the operation order and the scheduled execution orders after the change as data for the next processing into the storage unit 1500. When the evaluation value calculated for the scheduled execution orders after the change is not lowered, the controller 1400 discards the scheduled execution orders after the change and associated data. Then, the controller 1400 causes the local improvement unit 1300 and traveling processing unit 1200 to carry out the processing until the end condition is satisfied.
Next, processing contents of the information processing apparatus 1000 will be explained by using
The controller 1400 causes the initial setting processing unit 1100 to determine, for each operator group, a scheduled execution order for the predetermined number of operations to be conducted, while traveling, by all of the operator groups, and to store data of the scheduled execution orders into the storage unit 1500 (
For example, it is assumed that there are two operator groups, the priority condition as illustrated in
Next, the controller 1400 causes the traveling processing unit 1200 to carry out a following processing (step S3). In other words, the traveling processing unit 1200 determines, for each operator group, the operations to be conducted in the scheduled execution order, by determining, for each operator group and along the scheduled execution order, whether or not the movement to the operation place of each operation and start of that operation satisfy the constraint conditions, which include the priority condition and the like and are stored in the constraint data storage unit 1600, while advancing the time, and stores data of the operations to be conducted into the storage unit 1500. Furthermore, the traveling processing unit 1200 calculates an evaluation value for the determined operation order, and stores data of the evaluation value into the storage unit 1500. For example, the evaluation value is the greatest value of the total sums, each of which is obtained by adding the operation time and the movement time, or the total sum of the movement times and operation times for the respective operator groups. Moreover, the operation that has been completed by another operator group is not conducted again and is skipped.
More specifically, the movement time is identified from a movement cost between the operation places. Furthermore, the operation time is calculated by dividing an amount of operation by the processing capability. The time proceeds with such data. Then, when the constraint conditions are satisfied with conducting the operation 1 by the operator group A, the operator group A moves to the operation place (i.e. operation place 1) of the operation 1. Furthermore, when the constraint conditions are satisfied with conducting the operation 5 by the operator group B, the operator group B moves to the operation place (i.e. operation place 5) of the operation 5. Then, in case where the constraint conditions such as the rendezvous condition when starting the operation 1 are satisfied, the operator group A begins the operation 1. Moreover, in case where the constraint conditions such as the rendezvous condition when starting the operation 5 are satisfied, the operator group B begins the operation 5. Namely, a state as illustrated in
Furthermore, when the operation 1 is completed, and when the constraint conditions are satisfied with conducting the next operation 2 in the scheduled execution order by the operator group A, the operator group A moves to the place of the operation 2. Moreover, in case where the constraint conditions such as the rendezvous condition when starting the operation 2 are satisfied, the operator group A begins the operation 2. In this period, the operator group B is conducting the operation 5. Then, a state as illustrated in
Furthermore, when the operation 2 is completed, and when the constraint conditions are satisfied with conducting the next operation 3 in the scheduled execution order by the operator group A, the operator group A moves to the place of the operation 3. Moreover, in case where the constraint conditions such as the rendezvous condition when starting the operation 3 are satisfied, the operator group A begins the operation 3. In this period, the operator group B is still conducting the operation 5. Then, a state as illustrated in
After that, while the operator group A is conducting the operation 3, the operator group B completes the operation 5. Then, when the constraint conditions are satisfied with conducting the next operation 9 in the scheduled execution order by the operator group B, the operator group B moves to the place of the operation 9. Furthermore, when the operation 3 is completed, and when the constraint conditions are satisfied with conducting the next operation 4 in the scheduled execution order by the operator group A, the operator group A moves to the place of the operation 4. Moreover, in case where the constraint conditions such as the rendezvous condition when starting the operation 4 are satisfied, the operator group A begins the operation 4. Then, a state as illustrated in
After that, in case where the constraint conditions such as the rendezvous condition when starting the operation 9 are satisfied, the operator group B begins the operation 9. Furthermore, when the operation 4 is completed, it is determined whether or not the constraint conditions are satisfied with conducting the next operation 5 in the scheduled execution order by the operator group A. In this case, the operator group B has completed the operation 5. Therefore, the operator group A does not move to the place (i.e. operation place 5) of the operation 5. Furthermore, it is determined whether or not the constraint conditions are satisfied with conducting the further next operation 9 in the scheduled execution order by the operator group A. In this case, it has been settled that the operator group B would conduct the operation 9, and when there is a rendezvous condition that there is no need to rendezvous the place of the operation 9 and the operator group that precedently moves to the place of the operation 9 has a priority, it is determined that this rendezvous condition is not satisfied. Therefore, the operator group A does not move to the place (i.e. operation place 9) of the operation 9. Furthermore, it is determined whether or not the constraint conditions are satisfied with conducting the further next operation 10 in the scheduled execution order by the operator group A. Because a priority condition that the operation 9 should be conducted prior to the operation 10 has been set, data in the storage unit 1500 (
After that, when the operation 9 is completed, and when the constraint conditions are satisfied with conducting the next operation 8 in the scheduled execution order by the operator group B, the operator group B moves to the place of the operation 8. Furthermore, in case where the constraint conditions such as the rendezvous condition when starting the operation 8 are satisfied, the operator group B begins the operation 8. On the other hand, in case where the constraint conditions such as the rendezvous condition when starting the operation 10 are satisfied, the operator group A begins the operation 10. Then, a state as illustrated in
After that, when the operation 8 is completed, and when the constraint conditions are satisfied with conducting the next operation 6 in the scheduled execution order by the operator group B, the operator group B moves to the place of the operation 6. Furthermore, when the operation 10 is completed, and when the constraint conditions are satisfied with conducting the next operation 7 in the scheduled execution order by the operator group A, the operator group A moves to the place of the operation 7. Then, in case where the constraint conditions such as the rendezvous condition when starting the operation 7 are satisfied, the operator group A begins the operation 7. Then, a state as illustrated in
After that, when the operation 6 is completed, it is determined whether or not the constraint conditions are satisfied with conducting the subsequent operations 10, 7, 4, 1, 3 and 2 in the scheduled execution order by the operator group B. Here, these operations have been completed by the operator group A. Therefore, the operator group B moves to the goal point without moving to the places of these operations.
Similarly, when the operation 7 is completed, it is determined whether or not the constraint conditions are satisfied with conducting the subsequent operations 8 and 6 in the scheduled execution order by the operator group A. Here, these operations have been completed by the operator group B. Therefore, the operator group A moves to the goal point without moving to the places of these operations. Then, a state as illustrated in
Thus, while advancing the time, it is determined step-by-step whether or not it is possible to move to the next operation place, and whether or not it is possible to start the next operation when arriving at the next operation place and the like, and data concerning the operations with which the constraint conditions are satisfied is stored in the storage unit 1500 for each operator group. Then, data concerning the allotment of the operations is stored in the storage unit 1500. Incidentally, as illustrated in
Furthermore, the traveling processing unit 1200 calculates an evaluation value by calculating the total sum of the movement times and the operation times of the operator groups A and B, for example, or calculates an evaluation value by identifying the greatest value of the total sum of the movement time and operation time of the operator group A and the total sum of the movement time and operation time of the operator group B, and stores the evaluation value into the storage unit 1500. For example, the evaluation value as illustrated in
Returning to the explanation of the processing illustrated in
After that, the controller 1400 causes the traveling processing unit 1200 to execute the processing at the step S3 for the scheduled execution order after the change, which is stored in the storage unit 1500 (step S7). Namely, by determining, according to the scheduled execution order after the change, whether or not the movement to each operation place and start of the operation satisfy the constraint conditions including the priority condition and the like, which are stored in the constraint data storage unit 1600, while advancing the time, the operations to be conducted are determined in the scheduled execution order after the change for each operator group, and data of the operations to be conducted with the execution order is stored in the storage unit 1500, for each operator group. Furthermore, the evaluation value for the determined allotment of the operations is stored in the storage unit 1500.
In this case, as illustrated in
After that, the controller 1400 compares a reference evaluation value (initially, the evaluation value calculated at the step S3. In the subsequent processing, the evaluation value adopted and stored in an area for the next processing.) with the evaluation value calculated at the step S7 and stored in the storage unit 1500 to adopt the lesser one (step S9). In a case as illustrated in
After that, the controller 1400 determines whether or the processing is to be ended (step S11). For example, it is determined whether or not a case where the evaluation value becomes less than a predetermined threshold, a case where the number of execution times of the step S7 or entire execution time exceeds the threshold, or a case where a decrease degree of the evaluation value becomes less than a predetermined value when the history data of the evaluation values are held happens. When the processing is to be ended, the controller 1400 outputs data of the operation allotment and the evaluation value, which are stored in the area for the next processing in the storage unit 1500 to an output device (step S15). Then, the processing ends.
On the other hand, when the processing does not ends, the controller 1400 sets, as a processing target, the scheduled execution order determined at the step S9 to be adopted, and the processing returns to the step S5. Namely, the processing for the local search method is further carried out.
Thus, by carrying out, for each operator group, a processing based on the scheduled execution order including all of the operations to be conducted while traveling, it becomes possible to apply algorithms of the normal local search methods. Furthermore, by carrying out the processing at the step S3, it becomes possible to appropriately identify the allotment of the operations for the operator groups while taking into consideration complicated constraint conditions.
Incidentally, in this embodiment, it is assumed that each operation is conducted at a corresponding operation place. Namely, the order of the operations corresponding to the order of the operation place to be traveled.
An information processing apparatus 100 relating to a second embodiment of this technique is illustrated in
The information processing apparatus 100 has an initial setting processing unit 10, traveling processing unit 20, local optimization unit 30, controller 40, data storage unit 50, condition data storage unit 60 and output device 70.
The condition data storage unit 60 stores data illustrated in
The data storage unit 50 stores data generated during the processing and data of the processing results. For example, as illustrated in a group management table in
Furthermore, data as illustrated in a traveling route management table in
The controller 40 controls to cause the initial setting processing unit 10, traveling processing unit 20 and local optimization unit 30 to carry out the following processing.
The initial setting processing unit 10 generates, for each group, a scheduled traveling route by arranging all operation places to be traveled so as to satisfy the priority condition when the priority condition is set in the constraint condition table of the condition data storage unit 60, and stores data of the scheduled traveling route into the data storage unit 50.
The traveling processing unit 20 determines, for each group, whether or not the movement to the operation place of each operation relating to the scheduled traveling route and the start of the operation satisfy the constraint conditions stored in the condition data storage unit 60, while advancing the time, and determines the operation points in the scheduled traveling route for each group, and registers data concerning the determined operation places into the traveling route management table stored in the data storage unit 50. In addition, the traveling processing unit 20 updates the time (i.e. value of the remaining time in the group management table) as the evaluation value for the determined traveling order, into group management table in the data storage unit 50. Incidentally, the traveling processing unit 20 calculates the time required for each operation and the time required for moving between the operation points, when advancing the time, by using data stored in the condition data storage unit 60.
The local optimization unit 30 changes the scheduled traveling route stored in the data storage unit 50 so as to satisfy the priority condition in case where the priority condition is registered in the constrain condition table in the condition data storage unit 60, and stores data of the scheduled traveling route after the change into the data storage unit 50. The processing of the local optimization unit 30 is carried out according to the algorithm of the conventional local search method.
The controller 40 causes the traveling processing unit 20 to carry out a processing for the scheduled traveling route after the change, and to calculate the evaluation value (i.e. time) for the scheduled traveling route after the change. Then, the controller 40 determines whether or not the evaluation value for the scheduled traveling route after the change becomes less than the evaluation values that are previously calculated, and stores the evaluation value, data of the traveling order (or execution order of the operations) and the scheduled traveling route after the change as data for the next processing, into the data storage unit 50 when the evaluation value is lowered. When the evaluation value for the scheduled traveling route after the change is not lowered, the controller 40 discards the scheduled traveling route after the change and associated data. Then, the controller 40 causes the local optimization unit 30 and traveling processing unit 20 to carry out the processing until the end condition is satisfied.
Next, processing contents of the information processing apparatus 100 illustrated in
The processing to generate the initial scheduled traveling route is carried out, for example, according to one of two methods. In the first method, for example, for each group, the operations to be conducted while traveling are randomly arranged, and the initial scheduled traveling route is generated by arranging the corresponding operation points according to the arranged operations. Then, when the priority condition is set in the constraint condition table in the condition data storage unit 60, a processing to exchange the order so as to satisfy the priority condition is carried out for each group, for example. The second method is a method for generating, for each group, the scheduled traveling route by using, as an initial value, a traveling route (i.e. solution) generated by other methods. For example, when a solution as illustrated in
Next, the controller 40 causes the traveling processing unit 20 to carry out a traveling time calculation processing (step S103). The traveling time calculation processing will be explained by using
First, the traveling processing unit 20 initializes the group management table and the traveling route management table, and sets “0” to the present time (
After that, the traveling processing unit 20 determines whether or not “complete” has been set as the states of all groups in the group management table (step S113). When there is a group whose state is not “complete”, the traveling processing unit 20 carries out a stage processing (step S115). The stage processing will be explained by using
In this stage processing, the traveling processing unit 20 initializes i, which is a counter of a group, to “1” (
On the other hand, when i is equal to or less than M, the traveling processing unit 20 determines, based on data of the group management table, whether or not the remaining time of the group i is “0” and the state is not “complete” and state is not “waiting” (step S135). The remaining time of the group i being “0” means a state in which the movement or operation is completed, the state not being “complete” means that the group i does not return to the start point, and the state not being “waiting” means that the state is not a state in which the group i waits for the completion of the operation by the other groups. When such conditions are not satisfied, the processing shifts to a processing of
On the other hand, when such conditions are satisfied, the traveling processing unit 20 determines whether or not the state of the group i is “moving” (step S137). When the state is “moving”, the processing shifts to a processing of
For example, when there is a group that previously moves to that position, the group has a priority, and when the rendezvous-allowing condition is set, it is determined whether or not the rendezvous-allowing condition is satisfied. If the rendezvous condition that the rendezvous is not allowed is set, the group that firstly started moving moves to that position, and it is determined that the other groups “cannot move”. When another group has completed that operation, it is determined that the other groups “cannot move”. In addition, a waiting option concerning whether or not the waiting for the completion of the operation conducted by the other groups because of the priority constraint or the like is allowed may be set. In such a case, when the rendezvous condition is satisfied and a setting has been made that the waiting is allowed for even an operation, which cannot be conducted immediately, it is determined that it is possible to move to that operation point.
When it is determined that it is impossible to move, the traveling processing unit 20 increments the number corresponding to the instructed position of the group i in the group management table by “1” (step S143), and also determines whether or not the number corresponding to the instructed position is equal to or less than the number N of operations (step S145). When the number corresponding to the instructed position is equal to or less than the number N of operations, the processing returns to the step S139. On the other hand, when the number corresponding to the instructed position exceeds the number N of operations, the traveling processing unit 20 sets the present position in the group management table to a variable P, and sets the start point P0 to this present position (step S147). Namely, the operator group returns to the start point P0 without further conducting operations. Then, the processing shifts to a processing of
On the other hand, when it is determined at the step 5139 that it is possible to move to the scheduled traveling route [i, instructed position], the traveling processing unit 20 sets the present position to the variable P, sets the scheduled traveling route [i, instructed position] to the present position, increments the number corresponding to the instructed position by “1”, increments the present traveling route [i].ID (i.e. ID of the group i in a line of the present traveling route) by “1”, and sets the present position to the present traveling circuit [i].traveling route [ID] (i.e. a column of the traveling route [ID] of the group i in the line of the present traveling route) (step S141). Namely, the next movement destination is stored into the traveling route [ID]. After that, the processing shifts to the processing of
The processing after the terminal C is explained by using
On the other hand, the processing after the terminal B is explained by using
Thus, it is possible to determine, for each group, whether or not it is possible to start moving or start operating.
Returning to the explanation of the processing in
Firstly, the traveling processing unit 20 initializes a counter i of the group to “1” (step S171). Then, the traveling processing unit 20 determines whether or not i is equal to or less than the maximum number M of groups (step S173). When i is equal to or less than M, the traveling processing unit 20 determines whether or not the state of the group i is “waiting” in the group management table (step S175). When the state is not “waiting”, the processing shifts to step S181. On the other hand, when the state is “waiting”, the traveling processing unit 20 determines whether or not it is possible to start the operation at the present position (step S177). This determination is the same as that at the step S157. When it is impossible to start the operation at the present position, the processing shifts to the step S181.
On the other hand, when it is possible to start the operation at the present position, the traveling processing unit 20 changes the state of the group i to “operating” (step S179), and increments i by “1” (step S181). After that, the processing returns to the step S173.
On the other hand, when it is determined at the step S173 that i exceeds M, the traveling processing unit 20 initializes i to “1” (step S183), and determines whether or not i is equal to or less than the maximum number M of groups (step S185). When i exceeds M, the processing returns to the calling-source processing.
On the other hand, when i is equal to or less than M, the traveling processing unit 20 determines whether or not the state of the group i is “operating” in the group management table (step S187). When the state is not “operating”, the processing shifts to step S191. On the other hand, when the state is “operating”, the traveling processing unit 20 sets (an amount of operation at the operation point of the group i)/total processing capabilities (i.e. total sum of the processing capabilities of the groups operating at the operation point of the group i) to the remaining time (step S189). After that, the traveling processing unit 20 increments i by “1” (step S191). Then, the processing returns to the step S185.
Returning to the explanation of the processing in
Firstly, the traveling processing unit 20 extracts the minimal (i.e. local minimum) value of the remaining time in the group management table to set it to T, and adds T to the present time to advance the time (
On the other hand, when the state is “operating”, the traveling processing unit 20 reduces the amount of operation at the operation point where the group i exists by “T*(processing capability of the group i)” (step S213). Then, the traveling processing unit 20 increments i by “1” (step S215). After that, the processing returns to the step S205.
Thus, the time advances step-by-step, and the state of each group is shifted, and the movement destination is determined according to the constraint conditions.
Returning to the explanation of the processing in
On the other hand, when the evaluation of the present traveling route is not made by the maximum value of the values of all groups, which are calculated by adding the movement time and the operation time, the traveling processing unit 20 sets the total sum of the remaining times of all groups to the variable T (step S125). Because the present time at the completion is set to the remaining time, the total sum of the movement times and the operation times of all groups are calculated. Then, the processing returns to the calling-source processing. Thus, the evaluation value of the present traveling route is obtained.
Incidentally, when the total sum of the movement times and the operation times of all groups is calculated as the evaluation value, “0” is added, which represents that the group returns to the start point without moving the next operation point, to the scheduled traveling route. For example, as illustrated in
Returning to the explanation of the processing in
For example, when the aforementioned processing is carried out, data as illustrated in
After that, the controller 40 determines whether or not the end condition is satisfied (step S107). For example, when the time since the processing begins elapsed a predetermined time, or when topt is less than a predetermined threshold, or when topt is not reduced a predetermined value or more in a predetermined time or the predetermined number of repetition times, it is determined that the end condition is satisfied. When the end condition is satisfied, the controller 40 outputs data in the area of the optimum traveling route in the traveling route management table stored in the data storage unit 50 to the output device 70 (step S110). Then, the processing ends. The evaluation value topt may be outputted.
On the other hand, when the end condition is not satisfied, the controller 40 causes the local optimization unit 30 and the like to carry out the local optimization processing (step S109). When the step S109 is completed, the processing returns to the step S107. The conventional local optimization processing itself may be adopted, as described above. Here, the two-point exchange algorithm will be explained by using
Firstly, the local optimization unit 30 carries out a temporal change of the scheduled traveling route stored in the data storage unit 50, and stores the scheduled traveling route after the change into the data storage unit 50 (
Then, the local optimization unit 30 determines, for each group, whether or not the priority condition defined in the constraint condition table is satisfied (step S223). When the priority condition is not satisfied, the processing returns to the step S221 to change the scheduled traveling route. On the other hand, when the priority condition is satisfied, the local optimization unit 30 requests the traveling processing unit 20 to carry out the traveling time calculation processing for the scheduled traveling route after the temporal change (step S225). Then, the traveling processing unit 20 carries out the aforementioned traveling time calculation processing.
When the processing at the step S225 is completed and the processing result is stored in the data storage unit 50, the controller 40 determines whether or not T calculated at the step S225 is less than topt (step S227). When T is equal to or greater than topt, the controller 40 discards the scheduled traveling route after the temporal change, which was carried out at the step S221 (step S233). Then, the processing returns to the calling-source processing.
On the other hand, when T is less than topt, the controller 40 updates data of the optimum traveling route with data of the present traveling route in the traveling route management table (step S229). This is similar to the processing at the step S5. Furthermore, the controller 40 sets the value of T to topt (step S231). Then, the processing returns to the calling-source processing.
By carrying out the aforementioned processing, namely, carrying out the local search, the traveling routes (i.e. operation allotment) whose topt is lesser are obtained.
Incidentally, there are various algorithms of the local search methods, and by adopting the configuration of this embodiment, it is possible to adopt even the algorithm of the local search method that cannot handle the traveling salesman problem in which plural groups conduct operations.
Furthermore, even when various constraint conditions are set, it is possible to absorb them by determining whether or not it is possible to start moving or start the operation in the traveling time calculation processing. Moreover, it is possible to cope with the movement costs that vary according to time by switching the movement cost tables. Furthermore, it is possible to take into consideration the break time.
Incidentally, the local optimization may be repeated for a lot of initial scheduled traveling routes instead of repetition of the local optimization for one initial scheduled traveling route.
Although the embodiments of this technique are described above, this technique is not limited to these embodiments. For example, the functional block diagrams are mere examples, and do not correspond to an actual program module configuration. Furthermore, as for the processing flows, as long as the processing results do not change, the order of the steps may be exchanged, and the steps may be executed in parallel. The functional allotment may be made by plural computers.
In addition, in the aforementioned examples, it is assumed that the start point is the same as the end point. However, it is a mere example, and they may be different points. Furthermore, the start point may not be fixed.
In addition, the aforementioned information processing apparatuses 100 and 1000 are computer device as shown in
The aforementioned embodiment is summarized as follows:
An information processing method relating to the embodiments includes: (A) first determining, for each of a plurality of operator groups, scheduled execution order by arranging, for each of the plurality of operator groups, the predetermined number of operations to be conducted while traveling, wherein at least a portion of the predetermined number of operations is allotted to each of the plurality of operator groups; (B) second determining, for each of the plurality of operator groups, operations to be conducted in the scheduled execution order by determining, for each of the plurality of operator groups, along the scheduled execution order of the operator group and while advancing time, whether movement to an operation place of each operation of the predetermined number of operations and start of the operation satisfy a constraint condition set in advance for the predetermined number of operations; and (C) calculating a first evaluation value of orders of the operations determined to be conducted for the plurality of operator groups.
When the operation order is firstly determined for each of the plurality of operator groups, there is a case where algorithms of the typical local search methods cannot be applied due to the constraint conditions. However, when the scheduled execution order of the operations to be conducted is determined as described above for each operator group, the algorithms of the typical local search methods can be applied, because there is no need to carry out a processing to satisfy the constraint condition for the inter-operator groups. Furthermore, because the final execution order of the operations is determined while advancing the time after considering the constraint conditions, it is possible to handle complicated constraint conditions. In addition, when the operation corresponds to the operation place one-by-one, the aforementioned processing is substantially the same as a processing for the traveling order of the operation places. Moreover, the operation that another group has been finished is skipped without conducting it in the scheduled execution order.
This information processing method may further include: (D) changing a portion of the scheduled execution order based on a predetermined rule; carrying out the second determining and the calculating for the scheduled execution order after the changing; and (E) upon determining that a second evaluation value calculated in the carrying out for the scheduled execution order after the changing is less than the first evaluation value, storing the second evaluation value, orders of operations determined to be conducted for the plurality of operator groups, and the scheduled execution order after the change. Various rules may be adopted for the predetermined rule in the changing, and it may be a rule in which the constraint conditions cannot be satisfied among the operator groups.
Furthermore, in this information processing method, the changing, the carrying out and the storing may be repeated until a first condition that the second evaluation value becomes less than a first threshold, a second condition that an execution time consumed from the first determining to the storing exceeds a predetermined first period or a third condition that a state that a variation of the second evaluation value is less than a second threshold is kept for a predetermined second period is satisfied. Thus, it becomes possible to obtain much preferable execution order of the operations for each operator group.
Incidentally, the aforementioned second determining may include: storing, for each of the plurality of operator groups, an operation state and a movement destination or operation place while advancing time; and storing, for each of the plurality of operator groups, identifiers of the operations determined to be conducted among the predetermined number of operations or operation places of the operations determined to be conducted, in sequence.
Furthermore, the first determining may include determining whether or not the scheduled execution order satisfies a priority condition included in the constraint conditions. In addition, the changing may include determining whether or not the scheduled execution order after the changing satisfies a priority condition included in the constraint conditions.
Incidentally, it is possible to create a program causing a computer to execute the aforementioned processing, and such a program is stored in a computer readable storage medium or storage device such as a flexible disk, CD-ROM, DVD-ROM, magneto-optic disk, a semiconductor memory, and hard disk. In addition, the intermediate processing result is temporarily stored in a storage device such as a main memory or the like.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present inventions have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2011-158552 | Jul 2011 | JP | national |