Class that holds all data used to solve a particular CNF instance. More...
#include <brain.h>
Public Member Functions | |
long | propagate_signals () |
This is function does BCP and most of the maintaining of the neuromap s (candidates) to be written and found. More... | |
void | pulsate () |
This is the basic step function while solving an instance. It does one full backtrack. More... | |
bool | deduce_and_reverse_trail () |
Does all analysis and one backtrack. More... | |
void | candidate_find_analysis (deducer &dedcer, deduction &dct) |
Does full BCFF finding with active write candidates. More... | |
void | analyse_conflicts (row< prop_signal > &all_confl, deduction &dct) |
Does conflict analysis, BCFFs finding and BCFFs writing. More... | |
void | think () |
This is the main processing function to solve an instance. It get called by solve_instance. More... | |
bj_satisf_val_t | solve_instance (bool load_it) |
This is the starting point to solve any instance. It is the main function of the implementation. More... | |
Class that holds all data used to solve a particular CNF instance.
There is one brain per CNF instance. It is created to solve an instance, and destroyed after solving that particular instance.
long brain::propagate_signals | ( | ) |
This is function does BCP and most of the maintaining of the neuromap s (candidates) to be written and found.
It also does all maintaining of monos and choices.
void brain::pulsate | ( | ) |
This is the basic step function while solving an instance. It does one full backtrack.
Observe that this function might ddo more than one retract while selecting the best quanton choice, but it does only one deduction and one backtrack.
void brain::deduce_and_reverse_trail | ( | ) |
Does all analysis and one backtrack.
Does full BCFF finding with active write candidates.
void brain::analyse_conflicts | ( | row< prop_signal > & | all_confl, |
deduction & | dct | ||
) |
Does conflict analysis, BCFFs finding and BCFFs writing.
void brain::think | ( | ) |
This is the main processing function to solve an instance. It get called by solve_instance.
void brain::solve_instance | ( | bool | load_it | ) |
This is the starting point to solve any instance. It is the main function of the implementation.
load_it | Set this parameter to true if this brain must be loaded or not (all quanton s and neuron s get initialized). |
To better understand the implementation have a look at macro_algorithm_ben_jose.cpp.