Related Application
This application is related to
U.S. Patent Application No. 11/390,508
entitled "System and Method for Scheduling Elevator Cars Using Pairwise
Delay Minimization," which was co-filed with this application on March 27, 2006
by Nikovski et al.

Field of the Invention
This invention relates generally to scheduling elevator
cars, and more particularly to scheduling methods that operate according to a reassignment
policy.

Background of the Invention
Scheduling elevator cars is a practical optimization problem
for banks of elevators in buildings. The object is to assign arriving passengers
to cars so as to optimize one or more performance criteria such as waiting time,
total transfer time, percentage of people waiting longer than a specific threshold,
or fairness of service.

The scheduling of elevator cars is a hard combinatorial
optimization problem due to the very large number of possible solutions (the solution
space), uncertainty arising from unknown destination floors of newly arriving passengers,
and from unknown arrival times of future passengers.

The most commonly accepted optimization criterion is the
average waiting time (AWT) of arriving passengers,
G.C. Barney, "Elevator Traffic Handbook," Spon Press, London, 2003
;
G.R. Strakosch, "Vertical transportation: elevators and escalators," John
Wiley & Sons, Inc., New York, NY, 1998
; and
G. Bao, C.G. Cassandras, T.E. Djaferis, A.D. Gandhi, and D.P. Looze, "Elevator
dispatchers for downpeak traffic," Technical report, University of Massachusetts,
Department of Electrical and Determiner Engineering, Amherst, Massachusetts, 1994
.

Another important consideration is the social protocol
under which the scheduler is operating. In some countries, e.g., Japan, each assignment
is made at the time of the hall call of the arriving passenger, and the assignment
is not changed until the passenger is served. This is called an *immediate policy.*
In other countries, e.g., the U.S., the system can reassign hall calls to different
cars if this improves the schedule. This is called a *reassignment policy.*
While the reassignment policy increases the computational complexity of scheduling,
the additional degrees of freedom can be exploited to achieve major improvements
of the AWT.

In practice, it is assumed that passenger dissatisfaction
grows supra-linearly as a function of the AWT. When minimizing objective functions,
one penalizes long waits much stronger than short waits, which helps to reduce extensive
long waits, see
M. Brand and D. Nikovski, "Risk-averse group elevator scheduling," Technical
report, Mitsubishi Electric Research Laboratories, Cambridge, Massachusetts, 2004
; and
U.S. Patent Application No. 10/161,304
(=
U.S. Patent Application Publication No. 2003/0221915
), "Method and System for Dynamic Programming of Elevators for Optimal
Group Elevator Control," filed by Brand et al. on June 3, 2002, both incorporated
herein by reference.

Another method determines the AWT of existing passengers
and future passengers, Nikovski et al., "Decision-theoretic group elevator scheduling,"
13^{th} International Conference on Automated Planning and Scheduling, June
2003; and
U.S. Patent Application No. 10/602,849
(=
U.S. Patent Application Publication No. 2004/0262089
), "Method and System for Scheduling Cars in Elevator Systems Considering
Existing and Future Passengers," filed by Nikovski et al. on June 24, 2003, both
incorporated herein by reference. That method is referred to as the "Empty the System
Algorithm by Dynamic Programming" (ESA-DP) method.

The EAS-DP method determines a substantially exact estimation
of waiting times. The method takes into account the uncertainty arising from unknown
destination floors of passengers not yet been served, or passengers that have not
yet indicated their destination floor. That method represents the system by a discrete-state
Markov chain and makes use of dynamic programming to determine the AWT averaged
over all possible future states of the system. Despite of the large state space,
the performance of the method is linear in the number of floors of the building
and number of shafts, and quadratic in the number of arriving passengers.

The run time of ESA-DP method is completely within the
possibilities of modem micro-controllers and the quality of its solutions lead to
major improvements when compared with other scheduling methods. However, that method
does not exploit the additional potential of elevator systems operating according
to the *reassignment policy.*

Summary of the Invention
A method schedules cars of an elevator system. Each possible
assignment of a set of hall calls to a set of cars is represented by a solution
vector maintained as a node in a search tree. Each solution vector is evaluated
using an ESA-DP process according to an immediate policy to determine initially
a best solution. A branch-and-bound process is applied to each solution vector using
the initial best solution and the search tree to determine a globally optimal solution
for scheduling the cars according to a reassignment policy.

Brief Description of the Drawings
Figure 1 is a graph of a search tree used by a branch-and-bound
process according to an embodiment of the invention;

Figure 2 is a block diagram of a system and method for
scheduling elevator cars according to an embodiment of the invention;

Figure 3 illustrates pseudo code of a method according
to an embodiment of the invention; and

Figure 4 illustrates pseudo code for enumerating all possible
subsets of hall calls.

Detailed Description of the Preferred Embodiment
The embodiments of our invention provide a method for scheduling
elevator cars in an elevator system that operates according to a *reassignment
policy.*

An elevator scheduling problem can be characterized by
a set of unassigned hall calls *H*, where each hall call *h* in the set
*H* is a tuple (*f, d*) defining an arrival floor *f* and a desired
direction *d* (up or down). The set of halls are to be assigned to a set of
cars of the elevator system.

A state of a car *c* is determined by its current
position, velocity, direction, number of boarded passengers, and the set of hall
calls, which constrain the motion of the car. Therefore, for a particular car c,
we denote an intrinsic order of hall calls in which the car c can serve passengers
by *<*_{c}, i.e., *h*_{i}
<_{c} *h*_{j}, if and only if call *h*_{i}
is served by car c before call *h*_{j}.

In general, there are n! different orders in which a car
can serve n unassigned hall calls. The corresponding scheduling problem is known
to be NP hard, even for a single car. However, we follow the widely used assumption
that a car always keeps moving in its current direction until all passengers requesting
service in this direction are served. After the car becomes empty, it may reverse
direction.

For each hall call *h*, the waiting time it takes
car c to serve hall call *h* is denoted by *W*_{c}(h). This time
depends on the current state of car *c*, and the specific kinematics of the
elevator system, e.g., acceleration, maximum velocity, door open and close times,
and start delays. We assume that all these parameters are known to the scheduler
to enable a sufficiently precise prediction of travel times.

In addition, the waiting time of passengers strongly depends
on other hall calls assigned to the same car. The scheduler also has to account
for these hall calls. Due to the uncertainty arising from the unknown destination
floors of the newly arriving passengers, we cannot make a precise prediction of
the waiting times. Hence, we replace the delays by a statistical expectation of
waiting times.

For any subset *R* of hall calls *H, R* ⊂
*H*, the expected waiting time of hall call *h* on car *c* is denoted
by *W*_{c}
(*h*|*R*)*,* given that the hall calls in the set *R* are
also assigned to car *c*. It is true that *W*_{c}
(*h*|*R*) ≥ *W*_{c}
(*h*|∅), since additional hall calls can only slow down the car,
and *W*_{c}(h|*R*∪{*g*}) = *W*_{c}(h
|*R*) if *h*<_{c}
*g*, where *g* is an assigned hall call, since hall call *g* will
not slow down the passenger(s) for hall call *h*, if hall call *g* is
served after hall call *h* by car *c*.

We can efficiently determine *W*_{c}
(*h*|*R*) using the ESA-DP method incorporated herein by reference.
However, we cannot easily determine *W*_{c}
(*h* |*R*
_{1}∪R_{2}), given solely the individual expectations for
*W*_{c}
(*h*|*R*
_{1}) and *W*_{c}
(*h*| *R*
_{2}).

The assignment of the set of hall calls *H* to
*m* cars is a partition of the set of hall calls *H* into *m* distinct
subsets {*H*
_{1}
*, H*_{2}, ...,*H*_{m}
}*,* such that *H*_{i}
∩*H*_{j}
=Ø , for *i*≠*j,* and for
${\mathrm{U}}_{i=1}^{m}{H}_{i}=H\mathrm{.}$
For a given car assignment, we denote the car that is assigned to hall call
*h* as *c*(*h*).

Minimizing the AWT at a particular decision step is the
same as minimizing the sum of residual waiting times of all passengers currently
being serviced. Hence, we can define an objective function F of a given assignment
set {*H*
_{1}
*, H*_{2}, ..., *H*_{m}
} as
$$F\left(\left\{{H}_{1,},,{H}_{2},,,\dots ,,,{H}_{m}\right\}\right):{\displaystyle \sum _{c=1}^{m}}{\displaystyle \sum _{h\in H}}{W}_{c}\left(h,|,{H}_{i}\right)\mathrm{.}$$

It is desired to minimize this objective function to find
a best solution for our scheduling problem.

[0027] Branch-and-Bound
Branch-and-bound (B&B) is a process for systematically
solving hard optimization problems using a search tree. B&B is useful when greedy
search methods and dynamic programming fail. B&B is similar to a breadth-first search.
However, not all nodes of the search tree are expanded as child nodes. Rather, predetermined
criteria determine which node to expand and when an optimal solution has been found.
Partial solutions that are not as good as a current best solution are discarded,
see
A.H. Land and A.G. Doig, "An Automatic Method for Solving Discrete Programming
Problems," Econometrica, vol. 28, pp. 497-520, 1960
, incorporated herein by reference.

We use the B&B process to solve our large scale combinatorial
optimization problem of elevator scheduling. While an exponentially growing number
of solutions often inhibit explicit enumeration, the ability of the B&B process
to search parts of the problem space implicitly frequently leads to an exact solution
for a practical sized problem.

The B&B process maintains a pool of yet unexplored subsets
of the problem space and a best solution obtained so far. Unexplored subsets of
the problem space are usually represented as nodes of a dynamically generated search
tree. Initially, the B&B process uses a search tree with a single root node representing
all possible assignments, and an initial best solution. Each iteration processes
one particular node of the search tree, and can be separated into three main components:
selection of the next node to be processed, bounding, and branching.

The B&B process is a general paradigm and a variety of
possibilities exists for each of these steps and also for their order. For example,
if node selection is based on the bound of the subproblems, then branching is the
first operation after selecting the next node to process, i.e., an "eager strategy."
Alternatively, we can determine the bound after selecting a node and branch afterwards
if necessary, i.e., a "lazy strategy."

Depending on the type of optimization problem, the task
of the bounding is to determine a lower bound for the objective function value for
the entire subset. If we can establish that the considered subset cannot include
a solution that is better than the currently best solution, then the whole subset
is discarded.

Branching separates the current search space into non-empty
subsets, usually by assigning one or more components of the current solution to
a particular value. Each newly created subset is represented by a node in the search
tree and added to the pool of unsolved subsets. When the pool consists of a single
solution, the single solution is compared to the best solution. The better one of
the two solutions is retained, and the other is discarded. The branch-and-bound
terminates when there are no more unsolved subproblems left. At this time, the best
found solution is guaranteed to be a globally optimal solution.

Figures 1 and 2 show an example B&B search tree 100 maintained
according to an embodiment of our invention. The tree has a top level root node
101 representing all possible assignments, one or more intermediate parent nodes
102 with child nodes 103 representing partial assignments, and bottom level leaf
nodes 104 representing complete assignments. Note that, initially, the top level
node is both a root node and a leaf node. The nodes are processed in a top to bottom
order. At any leaf, the node is evaluated to determine a current solution. The node
and the whole sub-tree below it are discarded if the current solution cannot possibly
improve on the best solution for any assignment of cars in the sub-tree; otherwise,
the node is expanded by generating child nodes, and the tree is further descended.

We represent each possible assignment of the set
*H* of *n* hall calls *h* to cars *c*_{i}
by a vector (*c*_{i}
, *c*
_{2}, ..., *c*_{n}) 110, i.e., the possible assignments are
partitioned into *m* distinct subsets. The possible solution vectors are maintained
as the B&B tree 100. Car *c*_{i}
is assigned a value in a range 1 ≤ *c*_{i}
≤ *m* for assigned hall calls, and-1 for unassigned hall calls.
Every complete solution vector corresponds to a valid assignment, i.e., car
*c*_{i}
> -1 for all 1 ≤ *i*≤*n.* Thus, a size of the solution
space is exponential; more precisely, its size is *m*^{n}.

As shown diagrammatically in Figure 2, and with corresponding
pseudo-code in Figure 3, we combine the ESA-DP 210 process with the B&B process
220 for our scheduling method to assign a set of n hall calls 211 to a set of
*m* cars 212 according to the *reassignment policy.* We select the first
unassigned hall call at every iteration, bound its objective function value, and
branch, if necessary. The remaining search space is partitioned into m equal sized
subproblems by assigning the call to one of the cars, thus generating m child nodes
102.

A solution vector 201 is first evaluated using the ESA-DP
process according to the immediate policy by summing up the waiting times of passengers
to each of the cars to determine 210 an initial best solution *s*
_{1} 202 for the solution vector.

The set of unsolved subproblems is maintained using a stack
S. Initially, the empty assignment, *x* = {-1}*n,* at the root node 101
is pushed 301 on the stack *S*. We determine 210 the initial *best* solution
202 for the partial solution 201 using the EAS-DP method according to the immediate
assignment policy.

Whenever we encounter 302 a leaf node 104, i.e., every
hall call is assigned to a particular car, we determine an expectation of the average
waiting time for this assignment. We replace 303 the best found solution with the
current assignment only if the solution for the current assignment is better.

Partial assignments are evaluated by determining 304 a
lower bound *b*. The lower bound is compared 305 to the best solution. If the
lower bound *b* is greater than the value of the best solution of the objective
function *F* so far, then further processing on the node is stopped to effectively
discard the leaf node that was popped from the stack.

Otherwise, we generate 306 *m* child nodes by assigning
the first unassigned hall call to one of the available cars and pushing 307 the
assignments on the stack. Because the next node to process is always on the top
of the stack *S*, this approach corresponds to a depth-first lazy B&B strategy.

In practice, we sort the car assignments for the hall calls
in a first-to-last order according to distances to floors originating the hall calls,
and push the assignments in reverse order on the stack, thereby processing more
promising car assignments at the top of the stack first.

The success of our B&B process is mainly achieved by two
components: (a) the availability of good solutions early in the optimization process,
and (b) means for determining *tight* bounds for each of the branch nodes.
We define a tight bound as being a lower bound that is substantially close to the
optimal value of the variable being optimized, i.e., minimized in our application.

We achieve (a) by the using the ESA-DP method for the immediate
policy, and a *depth-first* evaluation of the most promising assignments.

The determination of tight bounds is nontrivial. One way
to determine the lower bound *b* for a partial solution is to ignore unassigned
hall calls and apply the ESA-DP process. However, that approach does not account
for two important issues. Each of the hall calls is inevitably assigned to one of
the cars, and we have to account for the increase in waiting time of other passengers
as a result of this assignment. Each hall call can introduce delays on hall calls
that are served later, which has to be considered in the statistical expectation
of their waiting time.

We can always penalize any unassigned hall call
*h* by min*
*_{c}W_{c}
(*h*|Ø), i.e., the smallest time that is required to reach the particular
floor by any car assuming no other hall calls are assigned to the same car. However,
that bound does not allow us to discard large parts of the search tree without explicit
enumeration. This is based on the fact that *W*_{c}
(*h*|*H*_{c}
) ≥ *W*_{c}(h|Ø), which is a special case of the more
general inequality *W*_{c}(h|*Q*∪*R*) ≥
*W*_{c}
(*h* |*R*), where the set *Q* contains unassigned hall calls,
and Ø is an empty set.

We denote the set of already known assignments to car
*c* by *H*_{c}. We can generalize the approach above to
*W*_{c}(h|*H*_{c})≥max*
*_{R}W_{c}(h|*R*), while *R* ranges over the whole
set of hall calls *H*_{c}. In practice, considering all subsets is
infeasible. Instead, we predetermine *W*_{c}
(*h*|*R*) only for subsets *R* such that |*R*|≤*p.*
Here *p* is a small integer, for example 1, 2, or 3, since the number of all
possible subsets of cardinality *p* grows exponentially in *p*. We can
now determine a penalty *P*(*h*) for call *h* resulting from a partial
assignment
$H=$
${\mathrm{U}}_{i=1}^{m}{H}_{i},h\notin H,$
by
$$P\left(h\right):=\underset{c}{\mathrm{min}}\phantom{\rule{1em}{0ex}}\underset{R\u2ac5{H}_{c},\left|R\right|\le p}{\mathrm{max}}{W}_{c}\left(h,|,R\right)\mathrm{.}$$

The lower bound for a set of hall calls *H*∪Q
with known assignments of *H* and unknown assignments of the elements in the
set *Q* is *F*(*H*)+&Sgr;_{
h∈}
*
*_{Q}P(*h*) . Because we process hall calls in a particular order
(*h*
_{1}, *h*_{2}, ..., *h*_{n}
), *h*_{i}
∈ *H,* we can further speed up the preprocessing procedure for
determining *W*_{c}
(*h*_{i}
|*R*) by omitting hall calls *h*_{j}
that are processed after *h*_{i}, i.e., *j*≥*i*.
Whenever we are interested in a bound for *h*_{i}, those hall calls
are not yet assigned to a particular car and cannot be used to determine
*P*(*h*_{i}
). Thus, the number of required calls to ESA-DP 210 for a single hall call
*h*_{i}
can be reduced significantly from
$\sum _{k=0}^{p}\left(\begin{array}{l}n-1\\ k\end{array}\right)\phantom{\rule{1em}{0ex}}\mathrm{to}\phantom{\rule{1em}{0ex}}\sum _{k=0}^{p}\left(\begin{array}{l}i-1\\ k\end{array}\right)\mathrm{.}$

The assignment of a hall call *h*_{j}
to one of the cars does not affect hall calls *h*_{i}, if
*h*_{i}
<*
*_{c} h_{j}
. For a single car *c*, it is optimal to process hall calls exactly in
the order given by <*
*_{c}
, because each hall call introduces a delay on calls that are processed later
in the optimization process, and the bounds can be successively increased. However,
in general, this order is different for different cars and is heuristically determined
in the embodiment described below.

Consequently, we can also replace the determination of
*F*(*H*) by its lower bound &Sgr;_{
h∈}
*
*_{Q} P(*h*). This decreases both the time necessary for determining
the bound and the tightness of the lower bound. As a result, the search space is
pruned less efficiently, and in smaller increments.

Ignoring future passengers, both versions of the B&B process
terminate with an assignment with minimum expected AWT over the set of all possible
assignments. However, the complexity of the method is significant and can become
infeasible for medium sized buildings. Also, the method operates on a 'snapshot'
of the real world, as provided by sensors in the elevator system, and the value
of the solution decreases as time passes and the system changes, e.g., new passengers
arrive or cars cannot stop at a particular floor any more, where they could before.

We describe different proxy criteria that can be used instead
of directly minimizing the AWT. The proxy criteria enable a more efficient B&B procedure
by incremental calculations of bounds.

Instead of considering all constraints for each hall call,
we can deliberately ignore some of the constraints by restricting delays to the
*p* worst hall calls that are assigned to the same car. In a sense, this is
an extension of the conventional nearest car heuristic, which determines
*W*_{c}(h| Ø).

We replace an estimation of waiting time for a given assignment
*H* = *H*_{i}
by
$$\sum _{c=1}^{m}}{\displaystyle \sum _{h\in {H}_{c}}}\mathrm{max}\phantom{\rule{1em}{0ex}}\underset{R\u2ac5{H}_{c},\left|R\right|\le p}{\mathrm{max}}{W}_{c}\left(h,|,R\right),$$
i.e., instead of considering all hall calls in the determination of waiting time,
we use a subset *R* of bounded cardinality. In general, this procedure underestimates
waiting time, and we can expect to obtain better results by increasing
*p*. However, the key feature of this formulation is the possibility to determine
the waiting time incrementally while descending the B&B search tree. This means
the waiting times determined for nodes higher in the search tree can be used to
determine the waiting times for lower nodes.

As the pseudo-code in Figure 4 shows, we enumerate 400
all possible subsets of hall calls *R* of cardinality *p* in such a way
that the subsets can be separated into subsets *S*_{i}
for *i*=1,...,*n*, such that *S*_{i}
contains only subsets *R* consisting of the hall call *h*_{i},
and subsets of hall calls *R*' that have been processed before *h*_{i}
, i.e., |*R*'|<*p.* Starting with the empty set *S*
_{0} 401, each hall call is processed in turn 402. For each hall call, we
first form 403 the union *T* of all sets *S*_{j}, j=1 to
*i-*1 that were generated during previous iterations. Then, iterating 404 over
all those subsets *R*' of *T* that have cardinality strictly less than
*p,* we augment 405 *R'* with the new hall call *h*_{i}.

Furthermore, we maintain a matrix *A* for each node
in the B&B search tree. An element *A*
_{
c,h
} of the matrix contains the maximum delay caused by any subset *R* of
cardinality up to *p* on hall call *h* assigned to car *c*, given
the fixed assignments for this node, which was initially *W*_{c}
(*h*|Ø).

Whenever we insert new nodes in the B&B search tree by
assigning a hall call *h*_{i}
to one of the cars, we ensure that the matrix *A*_{c,g}
remains unchanged for *c*≠*c*(*h*_{i}
). Only row *c*(*h*_{i}
) of the matrix can be updated by determining
$$\mathrm{max}\left({A}_{c\left(h\right),g,},,{\mathrm{max}}_{R\in {S}_{i}},,{W}_{c\left(h\right)},\left(g,|,R\right)\right)$$
for all assigned hall calls *g*. The bound for each hall call *g* with
known assignment is available in *A*
_{
c(g), g}, and the bound for unassigned hall calls
*h* can be determined by min*
*_{c}A_{c,h}. While this method is also applicable for the bounding
procedure described above, we can now also determine the value of the objective
function at leaf nodes by &Sgr;_{
h∈}
*
*_{N} A_{c(h),h}, and we can omit calls to ESA-DP procedure during
the B&B process.

However, the computational complexity of the preprocessing
procedure grows exponentially in *p*, and for small *p*, we underestimate
the residual waiting time significantly.

[0059] Pairwise Delay Minimization
In another embodiment of the invention, we minimize directly
a sum of pairwise delays between hall calls assigned to the same car. We denote
the delay introduced by assigned hall call *g* on hall call *h* by
*&Dgr;W*_{c}
(*h*|*g*), i.e., *&Dgr;W*_{c}
(*h*|*g*)=*W*_{c}
(*h*|*g*)-*W*_{c}
(*h*|Ø). We now make the objective function
$$G\left(\left\{{H}_{1},,{H}_{2},\dots ,{H}_{m}\right\}\right)={\displaystyle \sum _{c=1}^{m}}{\displaystyle \sum _{h\in {H}_{c}}}({W}_{c}\left(h,|,\xd8\right)+{\displaystyle \sum _{g\in {H}_{c}}}\mathrm{\&Dgr;}W\left(h,\left|,g,\right)\right)$$

In this objective function, the true wait *W*_{c}
(*h*|*H*_{c}
) that the passenger indicating hall call *h* would experience if assigned
to car *c*, due to all other passengers in *H*_{c}
that are also assigned to the same car, has been replaced by the sum
${W}_{c}\left(h,|,\xd8\right)+{\displaystyle \sum _{g\in {H}_{c}}}\mathrm{\&Dgr;}W\left(h,|,g\right)\phantom{\rule{1em}{0ex}}$
consisting of *individual* pair-wise delays each of these passengers would
cause for *h*.

However, this replacement is not always exact, and does
not correspond to the exact estimation of waiting time due to numerous reasons.
When the car can reach its maximum speed between two successive hall calls assigned
to the car, the replacement is always exact. In such cases, the individual hall
calls act independently, and their joint delay is equal to the sum of their individual
delays.

However, more typically the car cannot reach its maximum
speed between two successive calls, for example, when the calls originate on two
adjacent floors. In such cases, depending on the location and interaction between
hall calls, *G*({*H*
_{1},*H*
_{2},...,*H*_{m}
}) is either an overestimate or an underestimate of *F*({*H*
_{1}
*,H*
_{2},...,*H*_{m}
}), and cannot serve as a strict lower bound to be used in the branch-and-bound
process. However, in this embodiment of the invention, we use *G*({*H*
_{1}
*, H*_{2}, ..., *H*_{m}
}) directly as the objective function to be minimized, and describe below how
to determine efficiently a tight lower bound for the objective function.

Furthermore, we speed up the practical run time of the
brand-and-bound process algorithm. We can predetermine the value *W*_{c}(h|*g)*
efficiently by exploiting the fact that only one of &Dgr;*W*_{c}
(*h*|*g*) and &Dgr;*W*_{c}
(*g*|*h*) is non-zero. We can also incrementally determine the objective
function during the B&B process and use the intermediate results as tight lower
bounds on the objective function. Apart from the preprocessing procedure, no additional
calls to the ESA-DP process are necessary during the B&B evaluation.

In order to determine the objective function, Equation
(3), we maintain a matrix *W* for each node of the search tree that is initialized
with *W*_{c}
(*h*|Ø) for the root node 101. At each instance in the optimization
process, *W*_{c,h}
contains the sum of *W*_{c}
(*h*|Ø), and the individual delays of all hall calls assigned to car
c so far.

Therefore, we can propagate the matrix *W* for each
node from its parent node, and when assigning hall call *h* to car
*c*(*h*), we can update the propagated row *W*_{c}
(*h*) by adding &Dgr;*W*
_{
c(h)}(*h*|*g*) to each of the elements *W*_{c(h),g}.
In essence, with this step, when we assign hall call *h* to car *c*, we
account for the delay this hall call would cause on all hall calls previously assigned
to the same car.

Let *H*=*P*∪*Q*, *P*∩*Q*=Ø
be any partial assignment with fixed cars for *P* and unknown assignments for
the elements in *Q*. We can define
$$w\left(h\right)=\{\begin{array}{cc}{W}_{c\left(h\right),h}\hfill & \mathrm{if}\phantom{\rule{1em}{0ex}}h\in P\\ {\mathrm{min}}_{c}{W}_{c,h}\hfill & \mathrm{if}\phantom{\rule{1em}{0ex}}h\in \mathit{Q\u02b9}\end{array}$$
and determine both a lower bound for intermediate nodes and the value of the objective
function at leaf nodes 104 by &Sgr;_{
h∈}
*
*_{H} w(*h*).

Although the invention has been described by way of examples
of preferred embodiments, it is to be understood that various other adaptations
and modifications may be made within the spirit and scope of the invention. Therefore,
it is the object of the appended claims to cover all such variations and modifications
as come within the true spirit and scope of the invention.