Probabilistic Circuits
ProbabilisticCircuits.BayesModelComb
— TypeBayesian Model Combination.
ProbabilisticCircuits.CLT
— TypeChow-Liu Tree
ProbabilisticCircuits.Ensemble
— TypeWeighted ensemble of probabilistic circuits.
ProbabilisticCircuits.ParamBitCircuit
— TypeA BitCircuit
with parameters attached to the elements
ProbabilisticCircuits.PlainMulNode
— TypeA probabilistic conjunction node (multiplication node)
ProbabilisticCircuits.PlainProbCircuit
— TypeRoot of the plain probabilistic circuit node hierarchy
ProbabilisticCircuits.PlainProbInnerNode
— TypeA probabilistic inner node
ProbabilisticCircuits.PlainProbLeafNode
— TypeA probabilistic leaf node
ProbabilisticCircuits.PlainProbLiteralNode
— TypeA probabilistic literal node
ProbabilisticCircuits.PlainSumNode
— TypeA probabilistic disjunction node (summation node)
ProbabilisticCircuits.ProbCircuit
— TypeRoot of the probabilistic circuit node hierarchy
ProbabilisticCircuits.ProbCircuit
— MethodEvaluate a probabilistic circuit as a function
ProbabilisticCircuits.RegionGraph
— TypeRoot of region graph node hierarchy
ProbabilisticCircuits.SamplingOpts
— TypeOptions for SamplePSDD.
ProbabilisticCircuits.SharedMulNode
— TypeA shared probabilistic multiplcation node
ProbabilisticCircuits.SharedProbCircuit
— TypeRoot of the shared probabilistic circuit node hierarchy
ProbabilisticCircuits.SharedProbInnerNode
— TypeA shared probabilistic inner node
ProbabilisticCircuits.SharedProbLeafNode
— TypeA shared probabilistic leaf node
ProbabilisticCircuits.SharedProbLiteralNode
— TypeA shared probabilistic literal node
ProbabilisticCircuits.SharedSumNode
— TypeA shared probabilistic summation node
ProbabilisticCircuits.StructMulNode
— TypeA plain structured probabilistic conjunction node
ProbabilisticCircuits.StructProbCircuit
— TypeRoot of the plain structure probabilistic circuit node hierarchy
ProbabilisticCircuits.StructProbInnerNode
— TypeA plain structured probabilistic inner node
ProbabilisticCircuits.StructProbLeafNode
— TypeA plain structured probabilistic leaf node
ProbabilisticCircuits.StructProbLiteralNode
— TypeA plain structured probabilistic literal leaf node, representing the positive or negative literal of its variable
ProbabilisticCircuits.StructSumNode
— TypeA plain structured probabilistic disjunction node
Base.read
— MethodBase.read(file::AbstractString, ::Type{C}) where C <: ProbCircuit
Reads circuit from file; uses extension to detect format type, for example ".psdd" for PSDDs.
Base.write
— MethodBase.write(file::AbstractString, circuit::ProbCircuit)
Writes circuit to file; uses file name extention to detect file format.
Base.write
— MethodBase.write(files::Tuple{AbstractString,AbstractString}, circuit::StructProbCircuit)
Saves circuit and vtree to file.
DirectedAcyclicGraphs.print_tree
— MethodPrint edges and vertices of a ChowLiu tree
LogicCircuits.vtree
— MethodGet the vtree corresponding to the argument, or nothing if the node has no vtree
ProbabilisticCircuits.EVI
— FunctionEVI(pc, data)
Computes the log likelihood data given full evidence. Outputs $\log{p(x)}$ for each datapoint.
ProbabilisticCircuits.MAP
— FunctionMaximum a-posteriori queries
ProbabilisticCircuits.MAR
— FunctionMAR(pc, data) = marginal
Computes Marginal log likelhood of data. MAR
is juat an alias for marginal
. See docs for marginal
for more details.
ProbabilisticCircuits.MST
— MethodCompute the Minimum Spanning Tree (MST) of graph g with weights weights
, with constraints such that included_edges
should be included while excluded_edges
should be excluded.
ProbabilisticCircuits.apply_entropy_reg_cpu
— Methodapply_entropy_reg_cpu(bc::BitCircuit; log_params::Vector{Float64}, edge_counts::Vector{Float64}, total_data_counts::Float64, pseudocount::Float64 = 0.1, entropy_reg::Float64 = 0.0)::Vector{Float64}
Add entropy regularization to a deterministic (see LogicCircuits.isdeterministic) probabilistic circuit. alpha
is a hyperparameter that balances the weights between the likelihood and the entropy: rgmax{ heta} L( heta) = llmean( heta) + alpha * entropy( heta).
ProbabilisticCircuits.apply_entropy_reg_gpu
— Methodapply_entropy_reg_gpu(bc::BitCircuit; log_params, edge_counts, total_data_counts::Float64, pseudocount::Float64 = 0.1, entropy_reg::Float64 = 0.0)
Add entropy regularization to a deterministic (see LogicCircuits.isdeterministic) probabilistic circuit. alpha
is a hyperparameter that balances the weights between the likelihood and the entropy: rgmax{ heta} L( heta) = llmean( heta) + alpha * entropy( heta).
ProbabilisticCircuits.balance_sum
— MethodMakes sure the sum nodes does not have too many children. Makes balanced sums of sums to reduce children count.
ProbabilisticCircuits.balanced_fully_factorized
— MethodMakes sure input nodes don't have too many parents. Makes a dummy sum node for each input per partition. Then nodes corresponding to the partition use the dummy node as their children instead of the input node. This way instead of numnodesroot * numnodesleaf, we would have numnodesroot parents nodes.
ProbabilisticCircuits.bdd_vtree!
— MethodReturns an increasing sorted right-linear vtree.
ProbabilisticCircuits.bmc_sample_psdd
— MethodConstructs a SamplePSDD BMC with q*t
combinations, each with n
models.
ProbabilisticCircuits.bottom_up_traverse_node_seq
— MethodReturn a vertex sequence to traverse the tree `g', where children are accessed before parent.
ProbabilisticCircuits.chow_liu_tree
— MethodCompute the Chow-Liu Tree given a binary dataset. Automatically convert to categorical dataset if specified by num_vars' and
numcats'. If `numtrees` is greater than 1, the algorithm returns the top-K maximum spanning trees with respect to the pairwise_MI weights. Reference: Listing all the minimum spanning trees in an undirected graph http://www.nda.ac.jp/~yamada/paper/enum-mst.pdf
ProbabilisticCircuits.compile_canonical_literals
— MethodConstruct literal nodes given variable var
ProbabilisticCircuits.compile_decision_node
— MethodConstruct decision nodes given primes
and subs
ProbabilisticCircuits.compile_decision_nodes
— MethodConstruct decision nodes conditiond on different distribution
ProbabilisticCircuits.compile_sdd_from_clt
— MethodCompile a psdd circuit from clt and vtree
ProbabilisticCircuits.compile_true_nodes
— MethodConstruct true nodes given variable var
ProbabilisticCircuits.eFlow
— MethodPick the edge with maximum flow
ProbabilisticCircuits.eRand
— MethodPick the edge randomly
ProbabilisticCircuits.ensemble_sample_psdd
— MethodCreates an ensemble of n
SamplePSDD-generated probabilistic circuits, with v
the total number of variables in the data, ϕ
the logic constraints, D
the data to be learned and k
the maximum number of primes to be sampled.
Keyword arguments for sample_psdd
are passed down. Optionally, the function takes keyword argument vtree_bias
, which samples more left (value closer to 0.0) or right-leaning (value closer to 1.0) vtrees. If a negative value is given, sample uniformly distributed vtrees.
Weights are computed by the given strategy
. These can be any one of the following: 1. :likelihood
for likelihood weighting; 2. :uniform
for uniform weights; 3. :em
for Expectation-Maximization; 4. :stacking
for mixture model Stacking;
ProbabilisticCircuits.estimate_parameters!
— Methodestimate_parameters!(pc::ProbCircuit, data; pseudocount::Float64, entropy_reg::Float64 = 0.0)
Maximum likelihood estimation of a ProbCircuit
's parameters given data
ProbabilisticCircuits.estimate_parameters!
— Methodestimate_parameters!(spc::SharedProbCircuit, data; pseudocount::Float64, entropy_reg::Float64 = 0.0)
Maximum likelihood estimation of a SharedProbCircuit's parameters given data.
bagging support: If spc
is a SharedProbCircuit and data is an array of DataFrames with the same number of "components", learn each circuit with its corresponding dataset.
ProbabilisticCircuits.estimate_parameters_cpu
— Methodestimate_parameters_cpu(bc::BitCircuit, data, pseudocount; weights = nothing, entropy_reg::Float64 = 0.0)
ProbabilisticCircuits.estimate_parameters_em!
— Methodestimate_parameters_em!(pc::ProbCircuit, data; pseudocount::Float64, entropy_reg::Float64 = 0.0, exp_update_factor::Float64 = 0.0, update_per_batch::Bool = false)
One epoch of Expectation maximization (EM) parameter learning for circuits. Useful when having missing data or non-deterministic circuits.
entropy_reg
: Entropy Regularizationupdate_per_batch
: Whether to update circuit paramters per batch (using the ParamBitCircuit's paramters)
ProbabilisticCircuits.estimate_parameters_em_multi_epochs!
— Methodestimate_parameters_em_multi_epochs!(circuit::ProbCircuit, train_data)
Runs multiple epochs of EM for circuit. It will run on CPU/GPU based on where train_data is.
Arguments:
circuit
:train_data
: training data. If want gpu, move to gpu before calling thisto_gpu(train_data)
.
Keyword arguments:
valid_data=nothing
: validation data, should be same device astrain_data
test_data=nothing
: test data, data, should be same device astrain_data
entropy_reg::Float64 = 0.0
: Entropy regularizationexp_update_factor_start::Float64 = 0.1
:exp_update_factor_end::Float64 = 0.9
:em_warmup_iters=100
: number of EM Warm up iterationsem_finetune_iters=100
: number of EM fine tune iterationsverbose=false
: verbose or notverbose_log_rate=1
: how often to print infosave_path=nothing
: path of the file to save the partially trained circuitsave_rate=20
: how often to save the circuit to file
ProbabilisticCircuits.estimate_parameters_em_per_batch!
— Methodestimate_parameters_em_per_batch!(pc::ProbCircuit, data; pseudocount::Float64, entropy_reg::Float64 = 0.0, exp_update_factor = 0.0)
One epoch of Expectation maximization (EM) parameter learning for circuits. Useful when having missing data or non-deterministic circuits.
entropy_reg
: Entropy Regularizationupdate_per_batch
: Whether to update circuit paramters per batch (using the ParamBitCircuit's paramters)
ProbabilisticCircuits.estimate_parameters_gpu
— Methodestimate_parameters_gpu(bc::BitCircuit, data, pseudocount; weights = nothing, entropy_reg::Float64 = 0.0)
ProbabilisticCircuits.estimate_parameters_sgd!
— Methodestimate_parameters_sgd!(pc::ProbCircuit, data; lr::Float64 = 0.01, reuse_values = nothing, reuse_flows = nothing, reuse = (nothing, nothing))
One epoch SGD to learn paramters of a ParamBitCircuit. It will run on CPU/GPU depending on where the data is located.
lr
: Learning Ratepbc
: The ParamBitCircuit- 'data': training data
- 'resue_*`: Allows reusing of allocated memory to avoid extra memory allocation between epochs. If training for only one epoch don't need to specify them.
ProbabilisticCircuits.estimate_parameters_sgd!
— Methodestimate_parameters_sgd!(pc::ProbCircuit, data; lr::Float64 = 0.01, reuse_values = nothing, reuse_flows = nothing, reuse = (nothing, nothing))
One epoch SGD to learn paramters of the pc. It will run on CPU/GPU depending on where the data is located.
lr
: Learning Ratepc
: The ProbCircuit- 'data': training data
- 'resue_*`: Allows reusing of allocated memory to avoid extra memory allocation between epochs. If training for only one epoch don't need to specify them.
ProbabilisticCircuits.estimate_single_circuit_parameters!
— Methodestimate_single_circuit_parameters!(pc::ProbCircuit, data; pseudocount::Float64, component_idx::Integer = 0, entropy_reg::Float64 = 0.0)
Maximum likelihood estimation of a single circuit (for example, ProbCircuit
or one component of SharedProbCircuit
) parameters given data
ProbabilisticCircuits.factorize_reuse
— MethodReturns a fully factorized circuit reusing leaf nodes from L
.
ProbabilisticCircuits.generate_from_bdd
— MethodReturns a structured probabilistic circuit compiled from a binary decision diagram.
ProbabilisticCircuits.get_cpt
— MethodCalculate CPT of child
conditioned on parent
from dis_cache
ProbabilisticCircuits.init_marginal
— Methodinit_marginal(data, reuse, num_nodes; Float=Float32)
Initialize values from the data (data frames)
ProbabilisticCircuits.init_marginal_cpu
— Methodinit_marginal_cpu(data, reuse, num_nodes; Float)
Initialize values from the cpu data (data frames)
ProbabilisticCircuits.init_marginal_gpu
— Methodinit_marginal_gpu(data, reuse, num_nodes; Float=Float32)
Initialize values from the gpu data
ProbabilisticCircuits.ismul
— MethodIs the node a multiplication?
ProbabilisticCircuits.issum
— MethodIs the node a summation?
ProbabilisticCircuits.kl_divergence
— FunctionCalculate KL divergence calculation for pcs that are not necessarily identical
ProbabilisticCircuits.learn_bdd
— MethodLearns a structured probabilistic circuit consistent with a binary decision diagram ϕ
.
ProbabilisticCircuits.learn_chow_liu_tree
— Methodlearn a Chow-Liu tree from training set train_x
, with Laplace smoothing factor α
, specifying the tree root by clt_root
return a CLT
ProbabilisticCircuits.learn_chow_liu_tree_circuit
— MethodLearning from data a structured-decomposable circuit with several structure learning algorithms
ProbabilisticCircuits.learn_circuit
— MethodLearn structure of a single structured decomposable circuit
ProbabilisticCircuits.learn_circuit_miss
— MethodLearn structure of a single structured decomposable circuit from missing data.
Missing feature are denoted by missing
. Median Imputation is used by default for initial structure (set impute_method
for other options).
ProbabilisticCircuits.learn_circuit_mixture
— MethodGiven a circuit, learns a mixture of structure decomposable circuits based on that circuit
learn_circuit_mixture(pc, data; num_mix=5, pseudocount=1.0, maxiter=20)
ProbabilisticCircuits.learn_ensemble_em!
— MethodLearns the weights of the Ensemble by Expectation-Maximization.
ProbabilisticCircuits.learn_ensemble_llw!
— MethodLearns the weights of the Ensemble by the likelihood value of data D
.
ProbabilisticCircuits.learn_ensemble_stacking!
— MethodLearns the weights of the Ensemble by Stacking, with k
as the number of folds in k-fold.
ProbabilisticCircuits.learn_strudel
— Methodlearn_strudel(train_x; num_mix = 5, init_maxiter = 10, em_maxiter=20)
Learn a mixture of circuits See "Strudel: Learning Structured-Decomposable Probabilistic Circuits. arxiv.org/abs/2007.09331
ProbabilisticCircuits.learn_vtree_from_clt
— MethodLearn a vtree from clt, with strategy (close to) linear
or balanced
ProbabilisticCircuits.load_as_ensemble
— MethodLoads an ensemble from disk.
ProbabilisticCircuits.log_likelihood
— Methodlog_likelihood(pc, data)
Compute the likelihood of the PC given the data
ProbabilisticCircuits.log_likelihood_avg
— Methodlog_likelihood_avg(pc, data)
Compute the likelihood of the PC given the data, averaged over all instances in the data
ProbabilisticCircuits.log_likelihood_per_instance
— FunctionCompute the likelihood of the PC given each individual instance in the data
ProbabilisticCircuits.map_child
— MethodFind the MAP child value and node id of a given decision node
ProbabilisticCircuits.map_prob
— Methodmap_prob(root::ProbCircuit, data::Union{Real,Missing}...)
map_prob(root::ProbCircuit, data::Union{Vector{Union{Bool,Missing}},CuVector{UInt8}})
map_prob(circuit::ProbCircuit, data::DataFrame)
map_prob(circuit::ParamBitCircuit, data::DataFrame)
The most likely world probability that agrees with the provided data"
Missing values should be denoted by missing
in the data.
ProbabilisticCircuits.map_prob_all
— MethodThe most likely world that agrees with the provided data for all nodes
ProbabilisticCircuits.map_prob_layers
— MethodCompute marginals on the GPU
ProbabilisticCircuits.map_prob_layers
— MethodCompute MAP probabilities on the CPU (SIMD & multi-threaded)
ProbabilisticCircuits.map_prob_layers_cuda
— MethodCUDA kernel for circuit evaluation
ProbabilisticCircuits.marginal
— Functionmarginal(circuit::SharedProbCircuit, data::DataFrame, weights::Union{AbstractArray, Nothing} = nothing; component_idx = 0)::AbstractVector
Computes marginals for one circuit in a SharedProbCircuit
.
component_idx
: index of the SharedProbCircuit component to comptue marginals on.
ProbabilisticCircuits.marginal
— Methodmarginal(root::ProbCircuit, data::Union{Real,Missing}...)
marginal(root::ProbCircuit, data::Union{Vector{Union{Bool,Missing}},CuVector{UInt8}})
marginal(circuit::ProbCircuit, data::DataFrame)
marginal(circuit::ParamBitCircuit, data::DataFrame)::AbstractVector
marginal(circuit::SharedProbCircuit, data::DataFrame, weights::Union{AbstractArray, Nothing}; component_idx)
Evaluate marginals of the circuit bottom-up for given input(s).
Missing values should be denoted by missing
in the data.
Outputs $\log{p(x^o)}$ for each data point.
ProbabilisticCircuits.marginal_all
— MethodEvaluate the probabilistic circuit bottom-up for a given input and return the marginal probability value of all nodes
ProbabilisticCircuits.marginal_flows
— FunctionCompute the marginal and flow of each node
ProbabilisticCircuits.marginal_flows_down
— FunctionWhen marginals of nodes have already been computed, do a downward pass computing the marginal flows at each node
ProbabilisticCircuits.marginal_flows_down_layers
— MethodPass marginal flows down the layers of a bit circuit on the GPU
ProbabilisticCircuits.marginal_flows_down_layers
— MethodEvaluate marginals of the layers of a parameter bit circuit on the CPU (SIMD & multi-threaded)
ProbabilisticCircuits.marginal_flows_down_layers_cuda
— MethodCUDA kernel for passing marginal flows down circuit
ProbabilisticCircuits.marginal_layers
— MethodCompute marginals on the GPU
ProbabilisticCircuits.marginal_layers
— MethodCompute marginals on the CPU (SIMD & multi-threaded)
ProbabilisticCircuits.marginal_layers_cuda
— MethodCUDA kernel for circuit evaluation
ProbabilisticCircuits.marginal_log_likelihood
— Methodmarginal_log_likelihood(pc, data)
marginal_log_likelihood(pc, data, weights::DataFrame)
marginal_log_likelihood(pc, data, weights::AbstractArray)
marginal_log_likelihood(pc, data::Vector{DataFrame})
Compute the marginal likelihood of the PC given the data
ProbabilisticCircuits.marginal_log_likelihood_avg
— Methodmarginal_log_likelihood_avg(pc, data)
Compute the marginal likelihood of the PC given the data, averaged over all instances in the data. If the data is weighted then does a weighted average.
ProbabilisticCircuits.max_a_posteriori
— Methodmax_a_posteriori(root::ProbCircuit, data::Union{Bool,Missing}...)
max_a_posteriori(root::ProbCircuit, data::Union{Vector{<:Union{Bool,Missing}},CuVector{UInt8}})
max_a_posteriori(circuit::ProbCircuit, data::DataFrame)
max_a_posteriori(pbc::ParamBitCircuit, data; Float=Float32)
Evaluate maximum a-posteriori state of the circuit for given input(s).
Outputs the states, and the corresponding probabilities (in log domain).
ProbabilisticCircuits.metis_top_down
— MethodMetis top down method
ProbabilisticCircuits.mode
— FunctionMode of the distribution
ProbabilisticCircuits.mul_nodes
— MethodGet the list of multiplication nodes in a given circuit
ProbabilisticCircuits.multiply
— FunctionMultiply nodes into a single circuit
ProbabilisticCircuits.num_components
— MethodHow many components are mixed together in this shared circuit?
ProbabilisticCircuits.num_parameters
— MethodCount the number of parameters in the circuit
ProbabilisticCircuits.num_parameters_node
— MethodCount the number of parameters in the node
ProbabilisticCircuits.pairwise_MI
— MethodCompute pairwise Mutual Information given binary/categorical data.
ProbabilisticCircuits.params
— MethodGet the parameters associated with a sum node
ProbabilisticCircuits.parent_vector
— MethodGet parent vector of a tree
ProbabilisticCircuits.parse_clt
— MethodParse a clt from given file
ProbabilisticCircuits.pr_constraint
— FunctionCalculate the probability of the logic formula given by LC for the PC
ProbabilisticCircuits.random_region_graph
— Methodrandom_region_graph(X::AbstractVector{Var}, depth::Int = 5, replicas::Int = 2, num_splits::Int = 2)
X
: Vector of all variables to include; for the root regiondepth
: how many layers to do splitsreplicas
: number of replicas or paritions (replicas only used for the root region; for other regions only 1 parition (inner nodes), or 0 parition for leaves)num_splits
: number of splits for each parition; split variables into random equaly sized regions
ProbabilisticCircuits.region_graph_2_pc
— Methodregion_graph_2_pc(node::RegionGraph; num_nodes_root, num_nodes_region, num_nodes_leaf, balance_childs_parents)
num_nodes_root
: number of sum nodes in the root regionnum_nodes_leaf
: number of sum nodes per leaf regionnum_nodes_region
: number of in each region except root and leaves
ProbabilisticCircuits.sample
— Methodsample(pc::ProbCircuit, num_samples)
sample(pc::ProbCircuit, num_samples, evidences)
Sample states from the probabilistic circuit distribution. Also can do conditional sampling if evidence is given (any subset of features).
ProbabilisticCircuits.sample_comb
— MethodSamples a single combination uniformly following Robert Floyd's algorithm.
ProbabilisticCircuits.sample_idem_primes!
— MethodSamples primes for the ⊤ case.
ProbabilisticCircuits.sample_partition
— MethodSamples a partial partition.
ProbabilisticCircuits.sample_primes!
— MethodSamples primes for partial partition.
ProbabilisticCircuits.sample_psdd
— MethodSamples a PSDD from a BDD ϕ
and vtree V
with at most k
elements in each disjunction node.
ProbabilisticCircuits.sample_row
— MethodSamples an element from a Binomial distribution with p=0.5.
ProbabilisticCircuits.save_as_ensemble
— MethodSave file as a .esbl ensemble file format.
ProbabilisticCircuits.sum_nodes
— MethodGet the list of summation nodes in a given circuit
ProbabilisticCircuits.summate
— FunctionSum nodes into a single circuit
ProbabilisticCircuits.to_sampled_dataframes
— MethodConvert an array of samples into a vector of dataframes
ProbabilisticCircuits.uniform_parameters!
— Methoduniform_parameters!(pc::ProbCircuit; perturbation::Float64 = 0.0)
Assign parameters of ProbCircuit so that we have a Uniform distribution.
ProbabilisticCircuits.update_pc_params_from_pbc!
— Methodfunction update_pc_params_from_pbc!(pc::ProbCircuit, bc, params; exp_update_factor = 0.0)
During parameter learning pc
's paramters are not updated automatically, and only the corresponding ParamBitCircuit's paramters update. This method updates the paramters of pc
using the corresponding ParamBitCircuit.
Note: This is mostly for internal use.
ProbabilisticCircuits.update_pc_params_from_pbc!
— Methodupdate_pc_params_from_pbc!(pc::ProbCircuit, pbc; exp_update_factor = 0.0)
During parameter learning pc
's paramters are not updated automatically, and only the corresponding ParamBitCircuit's paramters update. This method updates the paramters of pc
using the corresponding ParamBitCircuit.
Note: This is mostly for internal use.
ProbabilisticCircuits.update_pc_params_from_pbc!
— Methodupdate_pc_params_from_pbc!(pc::SharedProbCircuit, bc, params, component_idx; exp_update_factor = 0.0)
During parameter learning pc
's paramters are not updated automatically, and only the corresponding BitCircuit's paramters update. This method updates the paramters of pc
using the corresponding BitCircuit.
Note: This is mostly for internal use.
ProbabilisticCircuits.vMI
— MethodPick the variable with maximum sum of mutual information
ProbabilisticCircuits.vRand
— MethodPick the variable randomly
ProbabilisticCircuits.wmc_chavira
— Functionwmc_chavira(root::LogicCircuit; varprob::Function)::Float
Compute weighted model count in the context of a chavira encoding (default negative literals to 1) Probability of each variable is given by varprob
Function which defauls to 1/2 for every variable.
ProbabilisticCircuits.zoo_jpc
— Methodzoo_jpc(name)
Loads JPC file with given name from model zoo. See https://github.com/UCLA-StarAI/Circuit-Model-Zoo.
ProbabilisticCircuits.zoo_psdd
— Methodzoo_psdd(name)
Loads PSDD file with given name from model zoo. See https://github.com/UCLA-StarAI/Circuit-Model-Zoo.
ProbabilisticCircuits.zoo_spn
— Methodzoo_spn(name)
Loads SPN file with given name from model zoo. See https://github.com/UCLA-StarAI/Circuit-Model-Zoo.