with a component for each possible depth, from 1 to
N ∗ M, and in each component a list of nodes sorted
by f values is stored. Similarly, in step 2, nodes n
′
with US(n
′
) = US(n) may be efficiently searched in
CLOSED as this structure is organized as a hash table
with the hash function returning the set of unsched-
uled operations US(n) for each state n.
7 EXPERIMENTAL STUDY
For experimental study we have chosen two
sets of instances taken from the OR-library
(http://people.brunel.ac.uk/∼mastjjb/jeb/info.html).
First we have chosen 6 instances of size 20 × 5 (20
jobs and 5 machines): LA01 to LA05 and FT20.
Then we have chosen instances of size 10 × 10. The
reason for these selection is that these sizes are in the
threshold of what our approach is able to solve. We
used an A
∗
prototype implementation coded in C++
language developed in Builder C++ 6.0 for Windows,
the target machine was Pentium 4 at 3Ghz with 2Gb
RAM.
To evaluate the efficiency of the proposed prun-
ing method, we first solved these instances without
considering upper bounds. So, none of the generated
states n can be pruned from the condition f(n) ≥ UB
and these nodes should be inserted in the OPEN
list, even though they will never be expanded due
to heuristic h
JPS
being admissible. Moreover, in this
case A
∗
only completes the search either when a so-
lution state is reached or when the computational
resources (memory available or time limit) are ex-
hausted. This allows us to estimate the size of the
search space for these instances. We have givena time
limit of 3600 seconds for each run.
Columns 2 to 5 of Table 1 summarizes the results
of this experiment. As we can observe, when prun-
ing is not applied, instances LA11 and LA13 remain
unsolved due to memory getting exhausted. On the
other hand, when pruning is applied 5 of the six in-
stances get solved and the number of expanded nodes
is much lower in all 5 cases. Also, the time taken is
lower.
In the second experiments, we have enhanced A
∗
by calculating upper bounds by means of a greedy
algorithm. As it was done in (Brucker et al., 1994;
Brucker, 2004) we have used the G&T algorithm with
a selection rule based on JPS computations restricted
to the machine required by critical operations, i.e.
those of set B in Algorithm 1. Here, with a given
probability P, a solution is issued from the expanded
node. Columns 6 and 7 of Table 1 reports results from
a set of experiments with P = 0,01; in this case the re-
Table 1: Summary of results of pruning by dominance over
instances LA01-15 and FT20. The last two columns show
results combining pruning by dominance with probabilis-
tic calculation of heuristic solutions during the search (the
heuristic algorithm is run from the initial state and then for
each expanded state with probability P = 0.01, the results
are averaged over 20 runs for each instance.
No Pruning Pruning Pruning + UB
P = 0,01
Inst. Exp. T.(s) Exp. T.(s) Exp. T.(s)
LA11 131470 143 105449 272 1 0
LA12 1689 1 965 2 127 1
LA13 111891 141 13599 33 10206 25
LA14 258 0 257 0 1 0
LA15 76967 93 22068 46 22066 46
FT20 9014 7 2756 4 2753 5
bold indicates memory getting exhausted.
sults are averaged over 20 runs. As we can observe,
in this case all 6 instances get solved, being both the
time taken and the number of expanded nodes less
than they are in the experiments without upper bounds
calculation.
In the third series of experiments we apply the
same method to a set of instances with size 9× 9 ob-
tained from the ORB set by eliminating the last job
and the last machine. The results are reported in Ta-
ble 2. As we can observe, when pruning is not applied
only 3 out of the 10 instances get solved; while 7 in-
stances get solved with pruning and for the 3 previ-
ously solved the number of expanded nodes is much
lower as well. However in this case the effect of
the greedy algorithm is almost null for the instances
solved. But for the 3 instances unsolved, it seems that
the greedy algorithm allows to prevent many states to
be included in OPEN, as the memory gets exhausted
after a larger number of expanded nodes.
In the last series of experiments, we have con-
sidered the original ORB set with instances of size
10 × 10. As only one of these instances gets solved
to optimality with the exact algorithm, we applied the
heuristic weighting with K = 0,01. In this case, A
∗
is
not stopped after reaching a solution state, but it runs
until the memory gets exhaustedor the OPEN list gets
empty. Table 3 summarizes the results of these exper-
iments. As we can observe, only for instance 10 the
OPEN list gets empty and so the optimal solution is
reached. For the remaining instances the memory gets
exhausted before reaching the optimal solution, being
the mean error in percent 2,86. This error is much
larger than that expected from the weighted heuristic.
The reason for this is that with K = 0, 01 A
∗
never
reaches a solution node and the solution returned is
ICSOFT 2008 - International Conference on Software and Data Technologies
278