Copyright: Shasha Jin, Vasundhara Komaragiri, Tahrima Rahman, Vibhav Gogate

The software contains implementations of seven major functions:
(1) MCN: Learn mixture of cutset networks as P
(2) opt_clt_ss: training Chow-Liu tree using LCN-LIS algorithm, when no evidence variables is presented.
(3) opt_clt_ss_evid: training Chow-Liu tree using LCN-LIS algorithm, when evidence varaibles are presented.
(4) opt_cnet_ss: training cutset networks using LCN-LIS algorithm, when no evidence variables is presented.
(5) opt_cnet_ss_evid: training cutset networks using LCN-LIS algorithm, when evidence varaibles are presented.
(6) opt_mcn_ss: training mixture of cutset networks using LCN-LIS algorithm, when no evidence variables is presented.
(7) opt_mcn_ss_evid: training mixture of cutset networks using LCN-LIS algorithm, when evidence varaibles are presented.


----------------------------------------HELP----------------------------------------------
-dir              The directory of input dataset
-data_name        The name of the dataset
-n_components     The number of components in mixture of cutset networks
-max_iter         The maximun iterations to stop (only used when training mixture of cutset networks as P)
-epsilon          The training stop criteria (only used when training mixture of cutset networks as P)
-depth            The depth of cutset network
-mcn_dir          The directory where P is stored or going to be stored
-perturb_rate     The percentage of parameters replaced in Q by a random number.
-std              The standard deviation of a Gaussian noise applied to the local statistics
-lam              A hyper parameter that model the relative importance of the local and global statistics respectively



Example of training Mixture of CNET as P:
  python MCN.py -dir '../dataset/' -data_name 'nltcs' -n_components 3 -max_iter 1000 -epsilon 1e-6 -mcn_dir '../mcn_output/'

Before running algorithm LCN-LIS, make sure model P is already trained.
Example of running algorithm LCN-LIS
  (1)R is Chow-Liu tree, no evidence variables is presented
      python opt_clt_ss.py -dir '../dataset/' -data_name 'nltcs' -mcn_dir '../mcn_output/' -perturb_rate 0 -std 0.1 -lam 0.5
  (2)R is Chow-Liu tree, evidence varaibles are presented
      python opt_cnet_ss.py -dir '../dataset/' -data_name 'nltcs' -mcn_dir '../mcn_output/'  -depth 3 -perturb_rate 0 -std 0.1 -lam 0.5
  (3)R is cutset networks, no evidence variables present
      python opt_cnet_ss.py -dir '../dataset/' -data_name 'nltcs' -mcn_dir '../mcn_output/'  -depth 3 -perturb_rate 0 -std 0.1 -lam 0.5
  (4)R is cutset networks, evidences varaibles are presented
      python opt_cnet_ss_evid.py -dir '../dataset/' -data_name 'nltcs' -mcn_dir '../mcn_output/'  -depth 3 -epercnet 0.5 -perturb_rate 0 -std 0.1 -lam 0.5
  (5)R is mixture of cutset networks, no evidence variables present
      python opt_mcn_ss.py -dir '../dataset/' -data_name 'nltcs' -mcn_dir '../mcn_output/'  -n_components 3 -perturb_rate 0 -std 0.1 -lam 0.5
  (6)R is mixture of cutset networks, evidences varaibles are presented
      python opt_mcn_ss_evid.py -dir '../dataset/' -data_name 'nltcs' -mcn_dir '../mcn_output/'  -n_components 3 -epercnet 0.5 -perturb_rate 0 -std 0.1 -lam 0.5
