On a side note, I thought of an interesting and potentially very
useful feature for OCCAM that I could develop, which is a time limit
on searches. Given that intermediate results of beam search are valid
(albeit not necessarily great) results, it is known as an "anytime
algorithm", or one that you could demand a result from at any point
and get something well-formed. Thus, it is feasible to put time
constraints on the search computation. If this functionality were
implemented, a user could specify a query that said something like,
"Consider state based models with loops, but run for at most 20
minutes" and use it on datasets with too many variables to be feasible
for such a search. Besides taking away the uncertainty as to whether
the search will end in a reasonable amount of time at all, otherwise
intractable search parameters could be used to gain some insight, or
pick better starting points for more complete subsequent searches. A
key advantage of this approach is that it requires no user expertise
or time spent in estimating whether the search being attempted is
feasible based on the variables and their cardinalities, depth and
width selected (and less easily predicted factors like the IPF
iterations to convergence). Instead, OCCAM would just report something
like, "search terminated in 10 minutes by time limit; completed search
through depth of 3/7" or similar along with the results.
Heather's proposal: