<?xml version="1.0" encoding="windows-1252"?>
<node id="1011886" title="Re: Evolving a faster filter?" created="2013-01-06 09:26:50" updated="2013-01-06 09:26:50">
<type id="11">
note</type>
<author id="647953">
sundialsvc4</author>
<data>
<field name="doctext">
&lt;p&gt;
In the &amp;ldquo;further food for thought&amp;rdquo; department, it occurs to me that this is not entirely a pure-combinatorics problem. &amp;nbsp; One filter might appear to be &amp;ldquo;better&amp;rdquo; in one situation than it would have been in another, &lt;i&gt;i.e.&lt;/i&gt; because another filter did precede it, and that filter did remove elements perhaps more-efficiently than it would have done. &amp;nbsp; A key factor of consideration might be ... and only you could have the answer to this ... is the most important goal that the result-set be reduced to its minimum practicable size, or that the filter-set should reduce the result-set as far as it can manage to do within a strictly limited amount of CPU time? &amp;nbsp; How predictable and consistent are these &amp;ldquo;costs,&amp;rdquo; and upon what do they depend?
&lt;/p&gt;&lt;p&gt;
If you can by any means see your way to making this a true optimization problem then by all means do that ... but I guess that you can&amp;rsquo;t because, if you could, you probably would not have a choice of more-than-one filter. &amp;nbsp; It is quite an interesting sort of problem and my guess is that the solution of choice will be a heuristic rather than an algorithm much less a proof. &amp;nbsp; You&amp;rsquo;ll come up with a self-adapting method that produces good-enough results and that does so consistently, perhaps never knowing whether a few milliseconds more could have been shaved at any particular instant.
&lt;/p&gt;
</field>
<field name="root_node">
1011650</field>
<field name="parent_node">
1011650</field>
</data>
</node>
