Exemplo n.º 1
0
void hungarian_print_status(hungarian_problem_t* p) {
  
     fprintf(stderr,"cost:\n");
     hungarian_print_costmatrix(p);

     fprintf(stderr,"assignment:\n");
     hungarian_print_assignment(p);
  
}
Exemplo n.º 2
0
int
main(int argc, char** argv)
{
  hungarian_t prob;

  /*
  int r[4][4] =  {{  363, 626, 376,  46  },
                  {  802, 993, 784, 953  },
                  {  673,  23, 823, 207  },
                  {  380, 451, 520, 646  }};
                  */
  int* r;
  
  m = n = 4;

  parse_args(argc,argv);

  if(!strlen(input_fname))
    r = make_random_r(m,n);
  else 
    r = make_r_from_ORlib(input_fname,&m,&n);

  if(!r)
  {
    puts("got NULL input");
    exit(-1);
  }

  hungarian_init(&prob,(int*)r,m,n,HUNGARIAN_MIN);
  hungarian_print_rating(&prob);
  hungarian_solve(&prob);
  hungarian_print_assignment(&prob);

  printf("\nfeasible? %s\n", 
         (hungarian_check_feasibility(&prob)) ? "yes" : "no");
  printf("benefit: %d\n\n", hungarian_benefit(&prob));

  hungarian_fini(&prob);
  free(r);
  return(0);
}