Skip to content

Commit

Permalink
release version of integer masks mode
Browse files Browse the repository at this point in the history
  • Loading branch information
Nauchnik committed Feb 20, 2016
1 parent 9d62190 commit bd491f2
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src_mpi/mpi_base.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,7 @@ bool MPI_Base::getValuesFromIntegers(std::vector<std::vector<int>> cartesian_ele
if (k == cartesian_elements[cartesian_element_index].size())
break;
for (unsigned j = 0; j < UINT_LEN; j++) {
cur_var_index = i*UINT_LEN + j;
mask = (1 << j);
if (cur_var_index == cur_integer_index) {
values_arr[cartesian_element_index][i] += mask;
Expand All @@ -307,7 +308,6 @@ bool MPI_Base::getValuesFromIntegers(std::vector<std::vector<int>> cartesian_ele
break;
cur_integer_index = cartesian_elements[cartesian_element_index][k];
}
cur_var_index++;
} // for( j = 0; j < UINT_LEN; j++ )
}
} // for( lint = 0; lint < part_var_power; lint++ )
Expand Down
2 changes: 1 addition & 1 deletion src_mpi/mpi_base.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ class MPI_Base
std::vector< std::vector<int> > clause_array;
std::vector<int> clause_lengths;
std::vector<bool> b_SAT_set_array;
std::vector< std::vector<unsigned> > values_arr;
std::map<int, unsigned> core_var_indexes; // indexes of variables in core set
boost::random::mt19937 gen;
unsigned known_vars_count;
Expand All @@ -70,6 +69,7 @@ class MPI_Base
unsigned part_mask[FULL_MASK_LEN];
unsigned mask_value[FULL_MASK_LEN]; // particular value of bits which set in part_mask

std::vector< std::vector<unsigned> > values_arr;
unsigned activity_vec_len;
std::string known_point_file_name;
bool isSolverSystemCalling; // calling of solver file by system command
Expand Down
5 changes: 4 additions & 1 deletion src_mpi/mpi_solver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -494,8 +494,11 @@ bool MPI_Solver :: ControlProcessSolve( std::vector<int> extern_var_choose_order
}

values_arr.resize(all_tasks_count);
for (unsigned i = 0; i < values_arr.size(); ++i)
for (unsigned i = 0; i < values_arr.size(); ++i) {
values_arr[i].resize(FULL_MASK_LEN);
for (unsigned j = 0; j < values_arr[i].size(); ++j)
values_arr[i][j] = 0;
}

if (isIntegerVariables)
makeIntegerMasks(cartesian_elements);
Expand Down
29 changes: 24 additions & 5 deletions src_mpi/pd-sat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,11 @@ int main( int argc, char** argv )
char *input_cnf_name;

#ifdef _DEBUG
//TestSolve( );
TestDeepPredict( );
//TestSolveQAP( );
//TestPBSolve( );
//TestSATSolve( );
TestSolve();
TestDeepPredict();
//TestSolveQAP();
//TestPBSolve();
//TestSATSolve();
#endif

Flags myflags;
Expand Down Expand Up @@ -453,6 +453,25 @@ void TestSolve()
unsigned int part_mask[FULL_MASK_LEN];
unsigned int value[FULL_MASK_LEN];
MPI_Solver mpi_s;

std::vector<std::vector<int>> cartesian_elements;
cartesian_elements.resize(1);
cartesian_elements[0].resize(3);
cartesian_elements[0][0] = 0;
cartesian_elements[0][1] = 20;
cartesian_elements[0][2] = 40;
mpi_s.var_choose_order.resize(60);
for (unsigned i = 0; i < mpi_s.var_choose_order.size(); i++)
mpi_s.var_choose_order[i] = i + 1;
mpi_s.all_tasks_count = cartesian_elements.size();
mpi_s.values_arr.resize(mpi_s.all_tasks_count);
for (unsigned i = 0; i < mpi_s.values_arr.size(); ++i) {
mpi_s.values_arr[i].resize(FULL_MASK_LEN);
for (unsigned j = 0; j < mpi_s.values_arr[i].size(); ++j)
mpi_s.values_arr[i][j] = 0;
}
mpi_s.makeIntegerMasks(cartesian_elements);

mpi_s.input_cnf_name = input_cnf_name;
//mpi_s.schema_type = "rslos_end";
mpi_s.solver_name = "minisat";
Expand Down

0 comments on commit bd491f2

Please sign in to comment.