It can be difficult to select appropriate options when presented with a new enumeration. The problem is compounded by the fact that no generally applicable rules exist to predict, given a presentation, which option settings are ``good''. To help overcome this problem, ACE contains various commands which select particular enumeration strategies. One or other of these strategies may work and, if not, the results may indicate how the options can be varied to obtain a successful enumeration.
If no strategy option is passed to ACE, the default
strategy is
assumed, which starts out presuming that the enumeration will be easy,
and if it turns out not to be so, ACE switches to a strategy
designed for more difficult enumerations. The other straightforward
options for beginning users are easy
and hard
. Thus, easy
will
quickly succeed or fail (in the context of the given resources);
default
may succeed quickly, or if not will try the hard
strategy;
and hard
will run more slowly, from the beginning trying to succeed.
Strategy options are merely options that set a number of the options seen in Chapter Options for ACE, all at once; they are parsed in exactly the same way as other options; order is important. It is usual to specify one strategy option and possibly follow it with a number of options defined in Chapter Options for ACE, some of which may over-ride those options set by the strategy option. Please refer to the introductory sections of Chapter Options for ACE, paying particular attention to Sections Warnings regarding Options, What happens if no ACE Strategy Option or if no ACE Option is passed, and Interpretation of ACE Options, which give various warnings, hints and information on the interpretation of options.
There are eight strategy options. Each is passed without a value (see
Section Interpretation of ACE Options) except for sims
which
expects one of the integer values: 1, 3, 5, 7, or 9; and, felsch
can
accept a value of 0 or 1, where 0 has the same effect as passing
felsch
with no value. Thus the eight strategy options define
thirteen standard strategies; these are listed in the table below,
along with all but three of the options (of Chapter Options for ACE)
that they set. Additionally, each strategy sets path = 0
, psize =
256
, and dsize = 1000
. Recall mend
, look
and com
abbreviate
mendelsohn
(see option mendelsohn), lookahead
(see option lookahead) and compaction
(see option compaction), respectively.
option --------------------------------------------------------- strategy row mend no look com ct rt fill pmode dmode --------------------------------------------------------------------- default 1 0 -1 0 10 0 0 0 3 4 easy 1 0 0 0 100 0 1000 1 0 0 felsch := 0 0 0 0 0 10 1000 0 1 0 4 felsch := 1 0 0 -1 0 10 1000 0 0 3 4 hard 1 0 -1 0 10 1000 1 0 3 4 hlt 1 0 0 1 10 0 1000 1 0 0 purec 0 0 0 0 100 1000 0 1 0 4 purer 0 0 0 0 100 0 1000 1 0 0 sims := 1 1 0 0 0 10 0 1000 1 0 0 sims := 3 1 0 0 0 10 0 -1000 1 0 4 sims := 5 1 1 0 0 10 0 1000 1 0 0 sims := 7 1 1 0 0 10 0 -1000 1 0 4 sims := 9 0 0 0 0 10 1000 0 1 0 4 ---------------------------------------------------------------------
Note that we explicitly (re)set all of the listed enumerator options
in all of the predefined strategies, even though some of them have no
effect. For example, the fill
value is irrelevant in HLT-type
enumeration (see Section Enumeration Style). The idea behind this is
that, if you later change some options individually, then the
enumeration retains the ``flavour'' of the last selected predefined
strategy.
Note also that other options which may effect an enumeration are left
untouched by setting one of the predefined strategies; for example,
the values of max
(see option max) and asis
(see option asis).
These options have an effect which is independent of the selected
strategy.
Note that, apart from the felsch := 0
and sims := 9
strategies,
all of the strategies are distinct, although some are very similar.
Please note that the strategies are based on various enumeration styles: C style, Cr style, CR style, R style, R* style, Rc style, R/C style and defaulted R/C style, all of which are described in detail in Section Enumeration Style.
default
Selects the default strategy. (Shortest abbreviation: def
.)
This strategy is based on the defaulted R/C style (see
Section Enumeration Style). The idea here is that we assume that the
enumeration is ``easy'' and start out in R style. If it turns out
not to be easy, then we regard it as ``hard'', and switch to CR
style, after performing a lookahead
(see option lookahead) on the
entire table.
easy
Selects an ``easy'' R style strategy.
If this strategy is selected, we follow a HLT-type enumeration style,
i.e. R style (see Section Enumeration Style), but turn lookahead
(see option lookahead) and compaction
(see option compaction)
off. For small and/or easy enumerations, this strategy is likely to be
the fastest.
felsch
felsch:=
val
Selects a Felsch strategy; val should be 0 or 1.
(Shortest abbreviation: fel
.)
Here a C style (see Section Enumeration Style) enumeration is
selected. Assigning felsch
0 or no value selects a pure Felsch
strategy, and a value of 1 selects a Felsch strategy with all relators
in the subgroup, i.e. no
=-1 (see option no), and turns
gap-fill
ing (see option fill) on.
hard
Selects a mixed R style and C style strategy.
In many ``hard'' enumerations, a mixture of R style and C style
(see Section Enumeration Style) definitions, all tested in all
essentially different positions, is appropriate. This option selects
such a mixed strategy. The idea here is that most of the work is done
C style (with the relators in the subgroup, i.e. no
=-1
(see option no), and with gap-fill
ing (see option fill) on), but
that every 1000 C style definitions a further coset number is
applied to all relators.
Guru Notes: The 1000/1 mix is not necessarily optimal, and some experimentation may be needed to find an acceptable balance (see, for example, HR01). Note also that, the longer the total length of the presentation, the more work needs to be done for each coset number application to the relators; one coset number application can result in more than 1000 definitions, reversing the balance between R style and C style definitions.
hlt
Selects ACE's standard HLT strategy.
Unlike Sims' Sim94 default HLT strategy, hlt
sets the
lookahead
option (see option lookahead). However, the option
sequence ``hlt, lookahead := 0
'' easily achieves Sims' default HLT
strategy (recall, the ordering of options is respected; see
Section Honouring of the order in which ACE Options are passed).
This is an R style (see Section Enumeration Style) strategy.
purec
Sets the strategy to basic C style (see Section Enumeration Style).
In this strategy there is no compaction
(see option compaction),
no gap-fill
ing (see option fill) and no relators in subgroup,
i.e. no
=0 (see option no).
purer
Sets the strategy to basic R style (see Section Enumeration Style).
In this strategy there is no mendelsohn
(see option mendelsohn),
no compaction
(see option compaction), no lookahead
(see option lookahead) and no row
-filling (see option row).
sims:=
val
Sets a Sims strategy; val should be one of 1, 3, 5, 7 or 9.
In his book Sim94, Sims discusses (and lists in Table 5.5.1)
ten standard enumeration strategies. The Sims' strategies are
effectively hlt
(see option hlt) without lookahead
(see option lookahead), with or without mendelsohn
(see option mendelsohn)
set, in R (rt
positive, ct := 0
) or R* style (rt
negative, ct
:= 0
); and felsch
(see option felsch); all either with or without
(lenlex
) table standardisation (see Section Coset Table Standardisation Schemes and ACEStandardCosetNumbering or option standard) as the enumeration proceeds. ACE does not implement
table standardisation during an enumeration, and so only provides the
odd-numbered strategies of Sims (ACE's numbering coincides with
that of Sims).
With care, it is often possible to duplicate the statistics given in Sim94 for his odd-numbered strategies and it is also possible (using the interactive facilities) to approximate his even-numbered strategies. Examples and a more detailed exposition of the Sims strategies are given in Section Emulating Sims.
[Up] [Previous] [Next] [Index]
ACE manual