I have an idea for a re-factoring of the FCS' Scans Code. At the moment
the logic of the scans is split between the sfs_check_state_(end|begin)
macros, which are used inside every test function, the check_and_add_state
function and the scan's proprietary scan function. Moreover, all of those
parts are aware of the type of the scan used.
My idea is to have every test function generate a list of the states that
it can reach and return it to the scan function as a vector.
The scan function will decide what to do with these states. Then:
1. If Soft-DFS : It will put this list in its appropriate depth and use it
to softly recurse into each state individually.
2. If DFS : It will call itself on each of the states. (assuming it was
not visited before of-course)
3. If A* or BFS or Optimization-BFS : It will enqueue all the states (or
in case of Optimization BFS all the relevant states) into the queue or
PQ, and proceed to do so with the other tests.
This will simplify the code and also allow for an easier implementation of
further scans.
Let me know what you think.
Regards,
Shlomi Fish
----------------------------------------------------------------------
Shlomi Fish shlomif_at_vipe.technion.ac.il
Home Page:
http://t2.technion.ac.il/~shlomif/
Home E-mail: shlomif_at_techie.com
If:
1. A is A
2. A is not not-A
does it imply that
1. B is B
2. B is not not-B
Received on Sun Nov 04 2001 - 06:55:45 IST