Ant Colony Optimization for Single Car Scheduling of ... - IEEE Xplore

4 downloads 30153 Views 557KB Size Report
... and Qian-Chuan Zhao. Center for Intelligent and Networked Systems (CFINS) ... destination floor information of the passengers at the hall calls. Their research ...
Ant Colony Optimization for Single Car Scheduling of Elevator Systems with Full Information* Zhen Shen and Qian-Chuan Zhao Center for Intelligent and Networked Systems (CFINS) Department of Automation, TNLIST, Tsinghua University, Beijing 100084, China [email protected], [email protected] Abstract—We concentrate on the single car, full information elevator problem. Here “full information” means that the arrival time, the origins and destinations of passengers are all assumed known beforehand. The importance of studying full information problem lies in that we can know the value of the future information and evaluate the existing scheduling methods for the elevator system. We aim to find the best solution of serving the passengers, and the performance is measured by the average service time. The problem is modeled into a graph and our goal is converted to finding a path on the graph corresponding to the best performance. An algorithm of Ant Colony Optimization (ACO) is applied. Different from applying ACO to solve the Traveling Salesman Problem, we have the time factor and the constraints in our problem. The modeling of the problem and the handling of the constraints are the contributions of this paper. Our method is compared with Branch and Bound method (BB) which can obtain the optimal solution and a popular heuristic rule in the literature named selective collective operation. The results of our ACO on small scale problems are very near to optimal, and for middle and large scale problems, our results are much better than the selective collective operation. These results show the effectiveness of our ACO. Index Terms—Elevator, Ant Colony Optimization, Swarm Intelligence

I.

INTRODUCTION

An efficient elevator system is very important for a high building. There has been a lot of research on the elevator problem. Most of them only utilize the information until the [1-3] current time . In recent years, there has been research on the elevator system taking use of more information. In [4-9] the authors discuss the elevator system with the destination hall call registration system installed, which can collect the destination floor information of the passengers at the hall calls. Their research shows the advantage of extra information obtained by the destination hall call registration system. In [10] the authors assume that the advanced information in a look-ahead window can be obtained and show by numerical tests that the advanced information is valuable. There has been [11-14] also research for the full information problem , in which the arrival time, origins and destinations of all the passengers (including arrived and not arrived passengers) are all assumed known. The more information we have, the better we can schedule the elevator. If we solve the full information * This work was supported by NSFC under Grants 60574067,60721003, 60736027 and the “111 International Collaboration Project” of China.

978-1-4244-2800-7/09/$25.00 ©2009 IEEE

1553

problem, we know the best performance that the scheduling algorithm could achieve. The optimal solution of the full information problem is “helpful to estimate the effectiveness of the utilization of look-ahead information” and “also useful in valuating the performance of the existing rules for elevator operation”, as pointed out in [12]. In this paper we apply Ant Colony Optimization (ACO) to the single car elevator problem. ACO is a searching algorithm [15] inspired by swarm intelligence . People have long discovered that ants can find the shortest or near shortest path from the nest to food sources. They are doing optimization. Inspired by the behaviors of ants, algorithms of ACO are developed mimicking the foraging of ants. There are many successful stories of applying ACO to the difficult problems [16] such as the Traveling Salesman Problem (TSP) , Job Shop [17] Problem (Job Shop Problem) . The full information elevator problem here is also difficult. The single car full information problem is NP-hard even without considering the detailed car [18] dynamics . Usually the elevator system consists of many identical cars. But in this paper, we only concentrate on the single car problem. In future we would like to extend our method to the multi-car problem. Our goal is to optimize the average service time of all the passengers. For the single car problem, a solution is the service sequence of the car. We model the elevator problem into a graph. A node is either a loading or an unloading task of a passenger. The edge length is the cost to travel from one node to another, which is a function of the estimated time needed or a function of the distance. That the car should finish all the loading and unloading tasks corresponds to that the ant should visit all the nodes in the graph. And then solving the problem is converted to finding a feasible path with the best performance. It is a combinational optimization problem similar to TSP. This is one reason why we choose ACO to solve the problem. But different from the TSP, we have many constraints in the elevator problem. We use the candidate list to handle the constraints. Only the unvisited nodes without causing the infeasibility can be selected into the candidate list. The modeling and the handling of the constraints are the major contributions of this paper. II.

BRIEF REIVEW OF MECHANISM OF ACO

Here we shortly introduce how the Ant Colony Optimization (ACO) works. Reviews can be found in [15]. When applying ACO, the problem should be modeled into a graph. A path on the graph corresponds to a solution. A group of ants are

ICIEA 2009

created and placed at starting nodes. The starting nodes should be chosen according to the problem. In ACO, one important concept is the pheromone level, which indicates how desirable the edge or node is. The pheromone can be deposited either at the nodes or the edges. The ants will choose the next node according to the pheromone level and the length of the edge directing to the next node. The higher the pheromone level is and the shorter the edge is, the more desirable the node is. After all the ants finish their paths, a global updating rule is implemented. The pheromone on each edge evaporates proportionally. And the pheromone on the best so far path is given an increment. Sometimes the pheromone is set with a threshold of minimum value to ensure the diversity of searching. After the operations above, a cycle of the algorithm is finished. The algorithm is run cycle by cycle until the stopping criteria are met. The pheromone stores the history information about the structure of the problem and acts as a tool for indirect communication. Local updating of pheromone and local search can be embedded into ACO to improve the performance of the algorithm. Decentralization, cooperation and iteration are the characteristics of ACO and also the reasons why it is effective. III.

PROBLEM FORMULATION

A. Assumptions and Constraints We make the following assumptions: • We assume that all the parameters of the car and the building are known, which includes the number of the floors of the buildings, the time needed for the car to move from one floor to another. •

We assume the speed of the car is not affected by the number of the passengers in it.



We assume that the cars are identical to each other.



The door open time, the door close time, and the door dwell time are fixed and given.



The loading time and the unloading time for all passengers are the same and given.



Sometimes the best service of an individual passenger conflicts with the global best scheduling. Here we assume that the passengers obey the scheduling of the algorithm, i.e. the passengers’ subjective choice is forbidden.



The capacity of the car is measured by the number of the passengers. The car cannot have passengers more than the capacity in it.

The waiting time is defined as the time from the arrival of the passenger to the time the passenger is loaded into the car. The transit time of a passenger is from the time the passenger is loaded into the car to the time the passenger de-boards the car. The service time is defined as the sum of the waiting time and the transit time. We aim to optimize the average service time. Here we mainly consider the two-way patter of passenger arrivals. For elevator systems, there are up-peak patter, downpeak pattern, two-way pattern, etc. Up-peak pattern means that all the passengers arrive at the first floor (the building lobby) and all want to go to their respective destinations on the upper floors. Down-peak patter means that all the passengers arrive from upper floors and want to go to the first floor (lobby). Two-way traffic, which is the most general pattern, can be any combination of passengers going between various floors, including the lobby. B. Graph formulation To construct the graph, we need to specify the nodes and the edges. A node on the graph is either a loading event or an unloading event of a passenger. For serving each passenger, there are two tasks: loading task and unloading task. If both tasks of all the passengers are finished by the car, we finish serving all the passengers. If we view the car as the ant, finishing serving all the passengers corresponds to that the ant should visit all the nodes once and only once. We use n to denote the number of the passengers to be served. The loading tasks are numbered from 1 to n according to the arrival sequence. The unloading tasks are numbered from n+1 to 2n correspondingly. Fig. 1 shows the three possible paths for a two-passenger example. The 1st passenger comes from 2nd floor and goes to 5th floor, the 2nd comes from 4th floor and goes to 8th floor. The car is at the 1st floor. Nodes 1 and 3 are the loading and unloading tasks of the 1st passenger, and Nodes 2 and 4 are the tasks of the 2nd passenger. There are in total 3 possible paths.

We set up the following constraints: • The car cannot move in the direction that is opposite to the direction the passengers in it demand. •

The passenger cannot de-board the car halfway and board again.



Once a passenger boards a car, s/he must be delivered to their destination floor without passing by the destination floor and then returning to it.



At each floor, the car should unload passengers first, and then it loads passengers.

1554

Fig. 1 Possible paths for an ant Now we show how to calculate the length of the edge between two nodes. Unlike the TSP [16] in which the node is the city and the length of the edge is the distance between two cities, here calculating the “distance” is not straightforward. First of all, when the car has visited some nodes, not all the nodes

unvisited can be chosen as the next node. For example, if the car is at the 5th floor and going up, the car cannot take the loading task at 4th floor as the next node. This happens because there are constraints in the elevator problem. And which node cannot be chosen as the next node depends on the history path of the car. If at the current time the car is empty, it can choose any unvisited loading node as the next node. But if the car is at a floor, having some passengers in it and is to go up, the loading nodes below the current floor cannot be chosen as the next node; vice versa. The main idea to handle this is to give a “candidate list” to contain the nodes that will not cause infeasibility. We will explain the details in the next section. Second, although every node has the position information showing the floor at which the loading or the unloading event can happen, only the position information cannot determine the length of the edge. The time also affects. For example, if after the car just finishes a task and the next task is to go to another floor to load a passenger, it may happen that after the car arrives at that floor, the passenger still does not arrive. The car has to wait for the passenger to come. This can happen because we assume we have the full information. For this case, only considering the distance between the two floors is not enough. Even though the car pays the cost of traveling between the two floors, it should pay extra cost to wait for the passenger to come. Due to the above two reasons, we provide a method calculating the length of the edge dynamically. We assume the current node is the r-th node. We only consider the nodes in the candidate list as the possible next node. If it is a loading node, we calculate the length of the edge as follows, δ(r, s) = max(td, ta – tc) ,

(1)

where r is the index of the current node and s is the index of the candidate next node and td is the time for the car to go directly from the current floor to the floor of the loading node without stopping halfway. td can be obtained directly from the settings of the car physics and is constant. ta is the arrival time of the passenger corresponding to the task. tc is the current time which is the time when the ant finishes visiting the current node, the r-th node. δ (r, s) is approximately the least time needed to go from the current node to the next node. If the candidate next node is an unloading node, the length is as follows, δ(r, s) = td .

(2)

It is simply the time for the car to go to the floor for this unloading task. As a short summary, we measure the length by the time, and by td we convert the distance to the time. For every current node r, depending on the history, the current time tc can be different and then the length in (1) can be different. Every time the car visits a node, we calculate tc and the lengths of the edges. This is why we call the method the dynamic way of calculating the lengths.

1555

IV.

APPLYING ACO

A. Solution encoding As we have introduced, we number the loading tasks from 1 to n according to the arrival sequence and the unloading tasks are numbered from n+1 to 2n correspondingly. As the ant will visit every node once and only once, we can use a permutation to represent the solution. For example, for a two-passenger problem shown in Fig. 1, Nodes 1 and 2 denote the loading of the passengers, and Nodes 3 and 4 denote the unloading of the passengers. There are (2n)! = ( 2 × 2 )! = 24 permutations for the problem. But not all of them are feasible. As shown in Fig. 1, only 3 of them are feasible. We will show how to handle the constraints in the next subsection. B. Handling constraints As has been introduced in the last section, unlike the TSP, we have constraints in the elevator problem. Our main idea of handling the constraints is to always keep the ant going along the feasible path. This is done by always choosing the next node from the nodes that do not cause infeasible designs. We build a judging module in our algorithm, which checks whether a node can be the candidate next node without causing infeasibility. To be concrete, we use the candidate list structure. As Marco Dorigo and Luca Maria Gambardella cited E. L. Lawler et al’s work in [16], it is common practice to use a data structure known as “candidate list” to solve big TSP problems. Here we use the candidate list. Only the nodes that do not cause infeasibility and are in the near future are selected into the candidate list. If the candidate list is long enough, all the unvisited nodes that do not cause infeasibility can be selected into the list. The length of the candidate list reflects how we care about the future information. Now we describe how to judge whether a node causes infeasibility in detail and also how to select the nodes into the candidate list. If after visiting the current node, there are still passengers in the car, the car can only move in the direction the passengers in the car desire. If the direction is to go up, the nodes that can be selected consists of two parts. The first part is the unloading tasks that can be finished at the floor that is nearest to the current floor. E.g., the car is now at 3rd floor, there are 4 passengers numbered from 1 to 4 in the car, and they want to go to 5th, 8th, 9th and 5th floors respectively. Only the unloading tasks of the 1st and 4th passengers can be selected into the candidate list. The car is not allowed to go past the 5th floor without unloading 1st and 4th passengers. The second part is the loading tasks of up going passengers that should be finished at the floors which are between the current floor and the floor with the nearest unloading task. “Between” here means including the current floor the car stays at, but excluding the floor with nearest unloading task. Including the current floor means passengers can also go into the car from this floor. Excluding the floor with nearest unloading task is because for the tasks at the same floor, unloading must be finished before loading. Let us continue to use the example given above. The car is now at the 3rd floor, and the floor with the nearest unloading task is the 5th floor, so only the

passengers who come from the 3rd and 4th floors are considered. If the loading task of a passenger who comes from the 5th floor could also be selected into the candidate list, there would be the possibility that the loading task of the this passenger were performed before the unloading tasks of the passengers who want to de-board at the 5th floor and the constraint of “at each floor, the car should unload passengers first, and then loads passengers” would be violated. The second part can exist only when the car is not full, i.e., there is still room for loading other passengers. For the case the direction of the car is to go down, the analysis is quite similar to the analysis above. If after visiting the current node, there is no passenger in the car, the candidate list can contain any loading task. As can be easily checked, none of the constraints stated in Section III is conflicted if we follow the above instructions. In our method the candidate list has three sublists. The first sublist is for the loading tasks of up going passengers, the second is for the loading tasks of down going passengers. The third is for the unloading tasks. And according to the analysis above, at any time, at least one of the sublist is empty. C. ACO settings We assume that n passengers are to be served. The loading tasks are numbered from 1 to n according to the arrival sequence. The unloading tasks are numbered from n+1 to 2n correspondingly. We put the pheromone on the edge. The pheromone is recorded in a (2n, 2n) matrix of which the element (r, s) indicates the pheromone value from r-th node to s-th node. When choosing the next node, the pheromone and the length of the edge directing to the next node can both affect the choice. We use the following formula to combine the length of the edge and pheromone value into one factor:

v(r , s ) = τ (r , s) × [1/ δ (r , s )]β .

p (r , s ) =

v(r , s ) ∑ v(r , s)

s∈CL ( r )

.

(4)

In (4), CL(r) is the candidate list for the current node r, and p(r, s) is the probability for choosing s. This is corresponding to exploration. We use m ants. Every ant has its own candidate list. For every step of the algorithm, every ant chooses a node from its candidate list. And the car will be sent to finish the chosen task, i.e., state transition of the car is implemented. After that, local updating rule is implemented and every ant updates its candidate list. The local updating rule is as follows.

τ (r , s) ← (1 − ρ ) ×τ (r , s) + ρ ×τ0 .

(5)

ρ (0 < ρ < 1) is a parameter. (r, s) is the edge just visited by ants. τ0 is the initial pheromone level. If in the last step, the ant has chosen a highly desirable edge for which τ(r, s) is very high, the local updating rule can decrease the pheromone on this edge, which can reduce the possibility that other ants also choose this edge. Since every step an ant visits a node and every ant has to visit the 2n nodes, the ants will finish their paths at the same time. Then every ant gets a feasible solution of the problem. We use the newly obtained solutions to update the best so far solution. After that a global updating rule is implemented. The global updating rule is,

τ ( r, s ) ← (1 − α ) × τ ( r, s ) + α × Δτ ( r, s ) ⎧ f ( J b sf ), Δ τ (r , s ) = ⎨ ⎩ 0,

if ( r , s ) is on the best so far path otherw ise

(6)

(3)

τ(r, s) is the pheromone value from r to s. δ(r, s) is the length of the edge from r to s, which can be calculated from (1) and (2). β is a positive parameter determining the relative importance of pheromone versus length. It is a parameter given at the initialization step of the algorithm. We note that δ(r, s) may be 0 when calculated from (1) and (2). This reflects this event is very desirable. When this happens, we will just select this event as the next event. Every node in the candidate list has v(r, s). We use the proportional rule to select the node. This method is used in [16] as a balance between exploration of edges and exploitation of a priori and accumulated knowledge about the problem. We use a parameter q0, which is a real number between 0 and 1. We generate a random number q in [0, 1]. If q < q0, we choose the node with the largest v from candidate list as the next node to be visited. This is corresponding to exploitation. Otherwise, we will choose the node with a probability proportional to the v value, i.e.,

1556

α (0 < α < 1) is the pheromone decay parameter. Jbsf is the average service time corresponding to the best so far solution. The function f(Jbsf) outputs a positive value and the smaller Jbsf is, the larger f(Jbsf) is, i.e., f(Jbsf) is a decreasing function with positive output. After applying global updating rule, all the pheromone evaporates with a rate of (1 – α). However, the edges belonging to the best so far path will get an increment of α × f(Jbsf). We set a minimum τmin on the pheromone level to ensure the diversity of choices of the ants. After the global updating, the algorithm checks every edge. If the pheromone level is lower than τmin, the pheromone level is set to τmin, that is, If τ(r, s) < τmin, then set τ(r, s) = τmin, ∀r, s.

(7)

The algorithm will run for many cycles until the stopping criteria are met. The version of ACO here is named as Ant Colony System (ACS) in [16]. Our method is just following the framework in [16] used to solve TSP. The ants share the same pheromone information. But, we have differences for the elevator systems. Because the ants may have different histories, it is possible that an unvisited node can be the candidate next node of an ant but cannot be the candidate next

ak +1 = (1 −ψ ) × ak + ψ × b,

node of another ant, and the ants may have different current time, and then the length of the edges even directing to the same unvisited node can be different. D. Algorithm flow We give the concise description of the algorithm as follows. Initialization: Set parameters: the initial pheromone level τ0, the minimum pheromone level τmin, the number of ants m, the relative importance parameter of the pheromone versus the edge length β, the parameter for balancing exploration and exploitation q0, the global pheromone decay rate α, the local pheromone decay rate ρ, the function for the global updating f(Jbsf), the length of candidate list, the number of cycles, and make other preparations. End initialization. Cycle: Inner cycle: all ants find their paths Every ant chooses a node from its candidate list: (1), (2), (3), (4) Apply state transition rule of the car. Apply local updating rule (5) Update the candidate list of each ant. End inner cycle. Global updating rule (6) If any edge is with a pheromone level lower than τmin, set its pheromone level to τmin, (7) End cycle. E. Convergence The convergence property of the ACS has been given in [19]. Our ACS here is different from the standard ACS in [19] in the following two aspects: 1) Due to the constraints, the nodes are not fully connected; 2) the length of the edge depends on the historical information, i.e., the length of the edge from node r to node s can be different if the ant arrives at node r from different paths. But, despite the two aspects, the convergence property still holds. We give the following proof, which is inspired by the proof in [19], and discuss for our special case here if necessary. First, we prove that the pheromone level never goes down below the minimum value τmin. At the beginning, the pheromone value is τ0 ≥ τmin. And at the global updating, we keep the pheromone value not smaller than τmin. So we only need to check the local updating, which is (5). τ (r , s) ← (1 − ρ ) ×τ (r , s) + ρ ×τ0 .

(8)

where ak+1 ak stands for the pheromone, ψ represents ρ or α, and b represents τ0, f(Jbsf), or 0 in the updating rules. We can obtain, ak = (1 −ψ ) × ak −1 + ψ × b = (1 −ψ ) × ((1 −ψ ) × ak − 2 +ψ × b) + ψ × b = (1 −ψ )2 × ak − 2 + ψ × (1 + 1 −ψ ) × b = " = (1 −ψ ) k × a0 + ψ × (1 + 1 −ψ + " + (1 −ψ ) k −1 ) × b = (1 −ψ )k × a0 + ψ × (1 + 1 −ψ + " + (1 −ψ ) k −1 ) × b = (1 −ψ )k × a0 + (1 − (1 −ψ ) k ) × b.

(9) Please note that b cannot be larger than max{ τ0, f(J*)}. At the beginning, we have, a0 ≤ b, and we know from (8), as k goes larger, ak+1 goes larger and the limit is b. So we know the pheromone cannot be larger than b which can be set as τmax. Third, we show that for any given ε > 0, we can find a t, so that the probability for the ACS algorithm in this paper to find an optimal solution at least once within the first t iterations can be no smaller than 1 – ε. We assume that the candidate list is set to be long enough, in order that all the feasible next nodes are included in the candidate list. From the above discussions, we know that every feasible solution has a positive probability to be chosen in an iteration, if the candidate list is long enough. We denote that the probability to choose a feasible solution in one iteration is at least pmin. So, if we denote the probability to find an optimal solution in the first t iterations is P*(t), we have,

P* (t ) ≥ 1 − (1 − pmin )t

(10)

As t goes larger, P*(t) can be not smaller than 1 – ε, given an arbitrary ε. By setting,

1 − (1 − pmin )t ≥ 1-ε We have,

Thus

we

know

t≥

ln(ε ) ln(1 − pmin ) .

if

we

set

t

as

,

the

(11)

ceiling

(12) of

ln(ε ) / ln(1 − pmin ) , we have P* (t ) ≥ 1-ε . After an

If τ(r, s) is not smaller than τ0, the newly obtained τ(r, s) will be not smaller than τ0, and then not smaller than τmin. If τ(r, s) is smaller than τ0, the newly obtained τ(r, s) will be larger than the original τ(r, s). So the global updating keeps the pheromone level not lower than τmin and the local updating wants to keep the pheromone level near to τ0. So the pheromone level can never go lower than τmin. Second, we show that the pheromone level has a maximum τmax. We assume the optimal path has the performance J*. The local updating rule (5) and global updating rule (6) are both in the following format,

1557

optimal solution is found, only the edges on the path of this optimal solution can obtain pheromone trails at the global updating. The local updating can only keep the pheromone level around τ0 while the global updating will increase the pheromone levels of the edges on the optimal path constantly. In this way, the optimal solution can become more and more desirable. V.

EXPERIMENT RESULTS

The arrival of the passengers is assumed to be according to Poisson distribution. Here we assume that the passengers come uniformly to each of the floor. The destinations of the

passengers are also according to uniform distribution. At the beginning, the car stops at the lobby. Door open time and door close time are set to 0, as in [11]. The dwell time is also set to 0. The number of the floors H = 10, the speed is constant and the time for the car to travel across one floor is T = 5s, the time for load or unload a passenger Δ=1s, the capacity of the car C = 8 passengers. Before other settings of the algorithm are given, we introduce the “ideal service time”. For every passenger, if at the time s/he arrives, an empty car is ready to load him/her and the car sends him/her directly to the destination without stopping halfway, the passenger is served in shortest time. The shortest service is defined as “ideal service time”. We assume there are n passengers and are ordered according to the arrival time. For passenger i whose origin is Oi and destination is Di, the ideal service time is tiIS = T × abs( Di − Oi ) +Δ . Please note that in our model the time for unloading a passenger is not taken account into the service time and here “Δ” is the time for the boarding of the passenger. The average ideal service time of n passengers then n

is:

J IS = ∑ t ISi / n . It is the least service time needed no i =1

matter what algorithm we use to schedule the problem here. The ideal service time is used as a reference to results of our method and also used to set τ0:

τ 0 = 0.5 / J IS .

This is just

one method of setting τ0. We have also tried other methods such as just giving τ0 a value and it also works well. It is not difficult to find a proper value of τ0 . And f ( J bsf ) = 2n / J bsf , τmin = 0.02, the ant number m = 10, β =

0.9, q0 = 0.9, α = ρ = 0.1. The sublist for loading tasks of up going passengers (the first sublist) and the sublist for loading tasks of down going passengers (the second sublist) are of the same length of 0.5 × cll, where cll is the parameter specifying the length of the candidate list. We now report three cases, each case with 30 samples. There are respectively 12, 30 and 100 passengers in the three cases. We use the Branch and Bound method (B&B) in [14] and selective collective operation (SC) in [13] for comparison. The single car full information problem is NP-hard even without considering the detailed car dynamics [18]. So, it is not surprise that B&B cannot solve large scale single car full information problems. From our test, B&B can only solve the first case with 12 passengers in reasonable length of time. SC works just as what a real car does. It is based on two rules. The first rule is that the passenger who comes earlier has the priority to be served earlier. The second is that the car will load passengers who would like to go in the same direction. SC does not have parameters to set. We are making a fair comparison between ACO and SC. In Table 1, Table 2 and Table 3, n is the number of passengers, λ is the arrival rate i.e. the intensity of Poisson arrival of passengers, cll is the sum of the length of the first and second sublists of the candidate list, cyc is the number of cycles set at the beginning of the algorithm. G is the mean of

the average service time over all the samples. SDG is the standard deviation of the average service time over the samples and ISG is the mean of the average ideal service time over the samples. G – ISG can be used to measure whether the algorithm is good or not. Table 1. n = 12 passengers, λ = 0.03 passenger/s, cll = 20 nodes, cyc = 1000 cycles G SDG ISG G – ISG BB 35.137 8.492 16.512 ACO 38.078 11.569 19.453 18.6250 SC 53.13 11.126 34.505 Table 2. n = 30 passengers, λ = 0.04 passenger/s, cll = 16 nodes, cyc = 1000 cycles G SDG ISG G – ISG 52.434 9.9967 32.962 ACO 19.4722 60.127 6.9392 40.655 SC Table 3. n = 100 passengers, λ = 0.02 passenger/s, cll = 30 nodes, cyc = 2000 cycles G SDG ISG G – ISG ACO 42.68 4.7443 23.018 19.6617 SC 49.827 3.8649 30.166 B&B gives the optimal solutions, but ACO may not give optimal solutions in limited time, so the results of ACO cannot be better than the results of B&B. But, by comparisons above, we know the results given by ACO are very near to the optimal results given by B&B. In fact, in the first case of 12 passengers, ACO finds the optimal solutions of 13 samples out of the total 30 samples. And by the G – ISG in the 3 tables, we know that ACO outperforms SC a lot. The reason why the ACO results are good can be explained from the following two aspects. First, we take good use of the problem information. The distance and time cost for a car to go from one floor to another is reflected by the edge length between nodes, and by the candidate list we handle the constraints well. Second, ACO takes good use of the mutual interaction between ants and the historical information obtained is stored in the pheromone matrix to guide future searching. This makes ACO good at solving discrete searching problems, as explained and verified in [15-17]. Our result in this problem shows again the power of ACO when the structural information of the problem is well incorporated in the formulation. We find that this suite of parameters of the algorithm work well for a large range of cases. As can be seen from the values of the parameters, the parameters are not devised by tuning a lot. Choosing the parameters is not difficult, and the key points are that β should be chosen carefully such that the influence of the length is comparable to the influence of the pheromone, and that τ0, τmin, f(Jbsf) should be comparable to each other and then the diversity of the searching can be ensured. VI.

CONCLUSIONS

In this paper, we model the elevator problem with the full information into a graph. The nodes are the loading and unloading tasks of the passengers. The length of the edge is

1558

calculated dynamically as the time matters in the scheduling of the elevator system. Ant Colony System (ACS) framework presented in [16] which is a kind of Ant Colony Optimization is implemented. There are constraints in the elevator scheduling. We use a judging module to insure that only the nodes that do not cause the infeasibility can be the next node to visit. The modeling of the problem and the handling of the constraints are the contributions of this paper. By comparing our method with Branch and Bound method in [14] and the selective collective operation in [13], we know that our method is effective and the future information is valuable for the elevator scheduling. For the cases of 12 passengers, the results of ACO is very near to the optimal results given by the Branch and Bound method and are much better (about 40% better) than the results of Selective Collective operation. For the cases of 30 passengers and 100 passengers, the results of ACO are about 20% better than the results of Selective Collective operation. In the future, we would like to extend the method to multi-car problems. Local search may be used in the ACO framework and better results are expected.

[9]

[10]

[11]

[12]

[13] [14]

ACKNOWLEDGMENT The authors would like to thank Prof. Yu-Chi Ho of Harvard University and Tsinghua University for the helpful comments to improve the quality of a previous version of this paper, thank Dr. Qing-Shan Jia for the helpful discussions, and thank Mr. Sun Jin for providing the codes of the Selective Collective operation. REFERENCES [1] [2]

[3]

[4]

[5]

[6]

[7]

[8]

[15] [16]

[17]

G. C. Barney: Elevator Traffic Handbook, Spon Press, London, 2003 D. L. Pepyne and C. G. Cassandras, “Optimal dispatching control for elevator systems during uppeak traffic,” IEEE Transactions on Control Systems Technology, vol. 5, no. 6, pp. 629-643, 1997 D. L. Pepyne and C. G. Cassandras, “Design and implementation of an adaptive dispatching controller for elevator systems during uppeak traffic,” IEEE Transactions on Control System Technology, vol. 6, no. 5, 1998. S. Tanaka, Y. Uraguchi and M. Araki, “Dynamic optimization of the operation of single-car elevator systems with destination hall call registration: Part I. formulation and simulations,” European Journal of Operations Research, vol. 167, pp. 550573, 2005. S. Tanaka, Y. Uraguchi and M. Araki, “Dynamic optimization of the operation of single-car elevator systems with destination hall call registration: Part II. the solution algorithm,” European Journal of Operational Research, vol. 167, pp. 574-587, 2005. S. Tanaka, Y. Innami and M. Araki, “A study on objective functions for dynamic operation optimization of a single-car elevator system with destination hall call registration,” 2004 IEEE International Conference on Systems, Man and Cybernetics, pp. 6274-6279. J. Zhou, L. Yu, S. Mabu, K. Hirasawa, J. Hu and S. Markon, “Double-deck elevator systems using genetic network programming based on variance information,” SICE Annual Conference 2007, pp. 163-169. L. Yu, J. Zhou, S. Mabu, K. Hirasawa, J. Hu and S. Markon, “Elevator group control system using genetic network

1559

[18] [19]

programming with ACO considering transitions,” SICE Annual Conference 2007, pp. 1330-1336. K. Ikeda, H. Suzuki, S. Markon and H. Kita, “Traffic-sensitive controllers for multi-car elevators; design, multi-objective optimization and analysis,” SICE Annual Conference 2007, pp. 2655-2662. B. Xiong, P. B. Luh, and S. C. Chang, “Group elevator scheduling with advanced traffic information for normal operations and coordinated emergency evacuation,” Proc. of the 2005 IEEE Int. Conf. on Robotics and Automation, pp. 1419 – 1424, April 2005. T. Inamoto, H. Tamaki, H. Murao, and S. Kitamura, “An application of branch-and-bound method to deterministic optimization model of elevator operation problems,” SICE Annual Conference 2002, vol. 2, pp. 987-992, 2002. T. Inamoto, H. Tamaki, H. Murao, S. Kitamura, “Deterministic optimization model of elevator operation problems and an application of branch-and-bound method,” IEEJ Trans. EIS, vol. 123, no. 7, pp. 1334-1340, 2003. J. Sun, Q. C. Zhao, P. B. Luh, and M. J. Atalla, “Estimation of optimal elevator scheduling performance,” IEEE ICRA 2006, pp. 1078-1083. Z. Shen, Q. C. Zhao, “Branch and bound method of elevator systems with full information for continuous arrival time,” SICE Annual Conference 2007, pp. 327-330. M. Dorigo, G. Di Caro, L. M. Gambardella, “Ant algorithms for discrete optimization,” Artificial Life vol. 5, no. 2, pp. 137-172 1999. M. Dorigo, L. M. Gambardella, “Ant colony system: a cooperative learning approach to the traveling salesman problem,” IEEE Transactions on Evolutionary Computation, vol. 1, no. 1, pp. 53 – 66, April, 1997 D. Merkle, M. Middendorf, and H. Schmeck, “Ant colony optimization for resource-constrained project scheduling,” IEEE Transactions on Evolutionary Computation, vol. 6, no. 4, August 2002 D. J. Guan, “Routing a vehicle of capacity greater than one,” Discrete Applied Mathematics, vol. 81, pp.41-57, 1998. T. Stützle and M. Dorigo, “A short convergence proof for a class of ant colony optimization algorithms,” IEEE Transactions on Evolutionary Computation, vol. 6, no. 1, Aug. 2002.