> I did not misunderstand. I use multiplicative AND. All three
> programs give equivalent output when they all finish for all
> cases I looked at.
If you only looked cases like your "test.input",
they are not very reliable, because all the
satisfiable goals are in the dataset at the beginning,
and other goals are not reachable at all.
I guess none of the other goals is actually on the right side
of the rules.
OTOH my pigeons example shows the difference:
./rules < pigeons.prog
Goal x: found
Goal y: found
Goal z: found
./rules.opt < pigeons.prog
Goal x: (big plan found by dfs)
Goal y: not found
Goal z: not found
For some reason you missed my attachment or
you have changed your program after sending
it to the list.
Here is a more simple example that shows the difference:
------------------------------
ruleset: 1 is a => b;
dataset: a;
goals: g is a and b;
------------------------------
The meaning of Rule 1 is that if "a" is in the dataset, then
it is removed from the dataset, and "b" is added to the
dataset.
The meaning of goal "g" is that both "a" and "b" are
in the dataset after some sequence of rule activations.
In this case, additive and multiplicate readings are
different, because it is possible to reach both "a" and "b",
but they cannot coexists.
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners