Tractables/LogicCircuits.jl

non-smooth circuits: Bug in isstruct_decomposable, infer_vtree

Closed this issue · 4 comments

Update:

  • Bug in isstruct_decomposable for non-smooth circuits.
  • infer_vtree not supported for non-smooth circuits (for now throws an error)
using LogicCircuits 
using ProbabilisticCircuits 

random = load_logic_circuit(zoo_sdd_file("random.sdd"))
rand_v = zoo_vtree("random.vtree")


isstruct_decomposable(random) ## Return False
respects_vtree(random, rand_v) ## Returns True

random is not smooth, that's probably why it fails. Need to add in docs what properties are needed for each function, and sometimes maybe throw error if the properties don't hold (have an option of ignoring the check for advanced cases, for example when speed is important and don't want to do the checks).

The answer to isstruct_decomposable(random) should be true, even if the circuit is not smooth. So this is a bug.

Might also be related to: #43

Is the vtree unique if a circuit is not smooth?

It seems smoothness is not the only issue, closing this now and tracking in #82