Ejemplo n.º 1
0
 std::vector<std::vector<std::string> > FindS::GenerateTrainingData(const std::vector<std::string> & objective, const std::vector<std::vector<std::string> > & attributes) {
   std::vector<std::vector<std::string> > training_data;
   std::vector<std::string> current_hypothesis(objective.size() + 1, "");
   std::random_device seeder;
   std::mt19937 engine(seeder());
   int min = 0;
   srand (time(NULL));
   while (!is_equal(current_hypothesis, objective)) {
     for (unsigned int i = 0; i < objective.size(); ++i) {
       if (objective[i] != "?") {
         current_hypothesis[i] = objective[i];
       } else {
         int max = attributes[i].size() - 1;
         std::uniform_int_distribution<int> dist(min, max);
         int random_value = dist(engine);
         current_hypothesis[i] = attributes[i][random_value];
       }
     }
     current_hypothesis[objective.size()] = "Yes";
     bool already_generated = false;
     unsigned int i = 0;
     while (!already_generated && i < training_data.size()) {
       if (current_hypothesis == training_data[i]) {
         already_generated = false;
       }
       ++i;
     }
     if (!already_generated) {
       training_data.push_back(current_hypothesis);
       current_hypothesis = CalculateHypothesis(training_data);
     }
   }
   return training_data;
 }
Ejemplo n.º 2
0
	//! A pseudorandom number generator.
	std::mt19937_64& prng() {
		static auto result = [] {
			std::random_device seeder{};
			return std::mt19937_64{seeder()};
		}();
		return result;
	}
Ejemplo n.º 3
0
	bool code (PrologElement * parameters, PrologResolution * resolution) {
		if (parameters -> isEarth ()) {atom -> setMachine (0); delete this; return true;}
		PrologElement * var = 0;
		PrologElement * seed = 0;
		PrologElement * double_seed = 0;
		bool auto_seed = false;
		while (parameters -> isPair ()) {
			PrologElement * left = parameters -> getLeft ();
			if (left -> isVar ()) var = left;
			if (left -> isInteger ()) seed = left;
			if (left -> isEarth ()) auto_seed = true;
			if (left -> isDouble ()) double_seed = left;
			parameters = parameters -> getRight ();
		}
		if (auto_seed) return seeder ();
		if (seed != 0) return seeder (seed -> getInteger ());
		if (double_seed != 0) return seeder (double_seed -> getDouble ());
		if (var == 0 && parameters -> isVar ()) var = parameters;
		if (var != 0) random_code (var);
		return true;
	}
Ejemplo n.º 4
0
	/* Constructor */
	HeadBodyParticleGenerator( double sigma_x, double sigma_y, double sigma_s, double sigma_dh, double sigma_db ):
		rand_x_(0, sigma_x), rand_y_(0, sigma_y), rand_s_(0, sigma_s), rand_dh_(0, sigma_dh), rand_db_(0, sigma_db)
		{
			RandNumMaker<boost::uniform_int<> > seeder( 0, static_cast<int>( time(0) ) );
			rand_x_.Seed( seeder() );
			rand_y_.Seed( seeder() );
			rand_s_.Seed( seeder() );
			rand_dh_.Seed( seeder() );
			rand_db_.Seed( seeder() );
		}
Ejemplo n.º 5
0
	bool seeder (int seed) {return seeder ((unsigned long int) seed);}
Ejemplo n.º 6
0
	bool seeder (double seed) {return seeder ((unsigned long int) seed);}
Ejemplo n.º 7
0
	bool seeder (void) {return seeder ((unsigned long int) time (0));}
Ejemplo n.º 8
0
int main (int argc, char * argv[]){

  bt_args_t bt_args;
  be_node * node; // top node in the bencoding
  int i;
  bt_info_t* my_bt_info = malloc(sizeof(my_bt_info));  
  parse_args(&bt_args, argc, argv);

    

// To compare with server response we need this bt_args.peers[1]->id

//struct bt_handshake handshake;
//char *str_handshake;


  if(bt_args.verbose){
    printf("Args:\n");
    printf("verbose: %d\n",bt_args.verbose);
    printf("save_file: %s\n",bt_args.save_file);
    printf("log_file: %s\n",bt_args.log_file);
    printf("torrent_file: %s\n", bt_args.torrent_file);

    for(i=0;i<MAX_CONNECTIONS;i++){
      if(bt_args.peers[i] != NULL)
        print_peer(bt_args.peers[i]);
    }
    
  }

  //read and parse the torent file
  node = load_be_node(bt_args.torrent_file);
  
  //check_parse(bt_args.torrent_file);
  
  /*
  parseNode(node,0,my_bt_info);
  
  
  ///// Print the datat from the sturcure
  printf("my_bt_info->announce %s\n",my_bt_info->announce);
  printf("my_bt_info->name  %s\n",my_bt_info->name);
  printf("my_bt_info->piece_length  %i\n",my_bt_info->piece_length);
  printf("my_bt_info->length  %i\n",my_bt_info->length);
  printf("my_bt_info->num_pieces  %i\n",my_bt_info->num_pieces);
*/
  
  
  bt_args.bt_info=malloc(sizeof(bt_info_t));
  parseNode(node,0,bt_args.bt_info);
  
  printf("my_bt_info->announce %s\n",bt_args.bt_info->announce);
  printf("my_bt_info->name  %s\n",bt_args.bt_info->name);
  printf("my_bt_info->piece_length  %i\n",bt_args.bt_info->piece_length);
  printf("my_bt_info->length  %i\n",bt_args.bt_info->length);
  printf("my_bt_info->num_pieces  %i\n",bt_args.bt_info->num_pieces);


 // printf("my_bt_info->my_peiecehases  %s\n",my_bt_info->my_peiecehases);

  //printf(" \n size : %d",sizeof(my_bt_info->my_peiecehases));
  //be_dump(node);
  

  if(bt_args.verbose){
    be_dump(node);
  }



printf("bt_args.client value is %i \n :", bt_args.client);
printf("\n\n\n seeder not started");

 if(bt_args.client)
{
printf("Now as clien \n");

char * filenamew="TempTemp1.txt";
char* bitfilename= malloc(1000);
//bitfilename=NULL;
if (bt_args.save_file != NULL)
  {
      filenamew= bt_args.save_file;
      strcpy(bitfilename,filenamew);
    }
strcat(bitfilename,"Restart.tmp");

printf("fielname for restart %s",bitfilename);
intial_file_to_write(filenamew, bt_args.bt_info->length);
client(&bt_args,my_bt_info,bitfilename);
}
if(bt_args.client==0)
{

printf("\n\n\n seeder started");
printf("\n\n\n seeder started");
seeder(&bt_args,&bt_args.bt_info);

}
/*
  //main client loop
  printf("Starting Main Loop\n");
  while(1){

    //try to accept incoming connection from new peer
       
    
    //poll current peers for incoming traffic
    //   write pieces to files
    //   udpdate peers choke or unchoke status
    //   responses to have/havenots/interested etc.
    
    //for peers that are not choked
    //   request pieaces from outcoming traffic

    //check livelenss of peers and replace dead (or useless) peers
    //with new potentially useful peers
    
    //update peers, 

  }*/

  return 0;
}