00001
00002
00004 class Latinsquare : public CSProblem
00005 { public :
00006 int squaresize;
00007 Latinsquare(int size);
00008 int config_evaluation(Configuration * Configuration);
00009 void fullincr_update_conflicts(FullincrCSPConfiguration* configuration,Move* move);
00010 void init_domaines(int nbvar, int s );
00011 Configuration* create_configuration();
00012 void move_execution(Configuration* configuration,Move* move);
00013 int move_evaluation (Configuration* configuration,Move* move);
00014 Move* Latinsquare::create_move();
00015 void next_move (Configuration* configuration, Move* move, NeighborhoodSearch* nbhs);
00016 void random_configuration(Configuration* configuration);
00017 void compute_var_conflict(Configuration* configuration);
00018 void adjust_parameters(Configuration* configuration, int& maxneighbors, int& minneighbors);
00019
00020 };
00021
00022
00023 class SBLatinsquare : public Latinsquare
00024 { public :
00025 SBLatinsquare(int size);
00026 int config_evaluation(Configuration * Configuration);
00027 void fullincr_update_conflicts(FullincrCSPConfiguration* configuration,Move* move);
00028 int move_evaluation (Configuration* configuration,Move* move);}
00029 ;
00030
00031 Latinsquare* latinsquare_problem_creation(int size);
00032 SBLatinsquare* sblatinsquare_problem_creation(int size);
00033 Latinsquare* probleme_carrelatin (int nbvar);
00034
00035
00037 class ColSwMove : public Move
00038 {public :
00039
00041 int line;
00042
00044 int variable1;
00045
00047 int variable2;
00048 ColSwMove();
00049 ~ColSwMove() {;};
00050 int eqmove(Move* move);
00051 void copymove (Move* move);
00052 Move* computetabumove(Configuration* config);
00053 };
00054
00055 void arguments_carre(char** argv, int& narg, int & s);
00056
00057 int latinsquare(int argc, char** argv, int automatic_tuningmode, int sb);