Exemplo n.º 1
0
void test_const_n() {
  int n = 15;
  int c[15] = {100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500};
  std::ofstream res("res2.txt");
  res << "0 0 0" << std::endl;
  for(int i=0; i<15; i++) {
    double a=0, b=0;
    timespec begin, end;
    for(int j=0; j<TESTS; j++) {
      knapsack_data d = generate(n);
      printf("TEST c=%d #%d\n",c[i],j);

      //dynamic
      clock_gettime(CLOCK_REALTIME, &begin);
      knapsack_dynamic(n, c[i], d.value, d.weight);
      clock_gettime(CLOCK_REALTIME, &end);
      a+=timespec_to_seconds(&begin, &end);
      printf("dynamic done\n");

      //brute force
      clock_gettime(CLOCK_REALTIME, &begin);
      knapsack_bf_iface(n, c[i], d.value, d.weight);
      clock_gettime(CLOCK_REALTIME, &end);
      b+=timespec_to_seconds(&begin, &end);
      printf("brute force done\n\n\n");
      
      free(d.weight);
      free(d.value);
    }
    a/=TESTS; b/=TESTS;
    res << c[i] << " " << a << " " << b << std::endl;
  }
  res.close();
  return;
}
Exemplo n.º 2
0
int main(int argc, char** argv) {
  srand(time(0));

  if(argc>1) {
    switch(argv[1][0]) {
      case '1': 
        test_const_c();
        printf("const c test done\n");
        break;
      case '2':
        test_const_n();
        printf("const n test done\n");
        break;
      case '3': {
        knapsack_data d = load();
        turniej(d);
        break;
                }
      case '4': {
        knapsack_data d = generate(10);
        knapsack_dynamic(10,10,d.value,d.weight);
        knapsack_bf_iface(10,10,d.value,d.weight);
        break;
                }
      case '5':
        printf("%ld\n",sizeof(unsigned long long int));
        break;
    }
  }
  return 0;
}
Exemplo n.º 3
0
int main()
{
    printf ("1. rec max value = %d\n", knapsack_rec(0, 0));
    printf ("2. bru max value = %d\n", knapsack_bruteforce());
    printf ("3. dyn max value = %d\n", knapsack_dynamic());

    memset(dynamic_tab_rec, -1, sizeof(dynamic_tab_rec));
    printf ("4. dre max value = %d\n", knapsack_dynamic_rec(nitems, knapsacksize));
    
    return 0;
}