コード例 #1
0
ファイル: test_biobj.c プロジェクト: ShaulSalomon/coco
/* A test to see if multiple observers/loggers can be wrapped around a problem. */
void multiple_observers(void) {

  coco_suite_t *suite;
  coco_observer_t *observer_inner, *observer_middle, *observer_outer;
  coco_problem_t *problem_inner, *problem_middle, *problem_outer;

  suite = coco_suite("bbob-biobj", "year: 2016", "dimensions: 2 function_indices: 1-3 instance_indices: 1-2");

  observer_inner = coco_observer("toy", "");
  observer_middle = coco_observer("bbob-biobj", "log_nondominated: final log_decision_variables: none");
  observer_outer = coco_observer("toy", "");

  while ((problem_inner = coco_suite_get_next_problem(suite, observer_inner)) != NULL) {

    problem_middle = coco_problem_add_observer(problem_inner, observer_middle);
    problem_outer = coco_problem_add_observer(problem_middle, observer_outer);

    my_optimizer(problem_outer);

    problem_middle = coco_problem_remove_observer(problem_outer, observer_outer);
    problem_inner = coco_problem_remove_observer(problem_middle, observer_middle);
  }

  coco_observer_free(observer_inner);
  coco_observer_free(observer_middle);
  coco_observer_free(observer_outer);

  coco_suite_free(suite);
}
コード例 #2
0
ファイル: test_biobj.c プロジェクト: ShaulSalomon/coco
/* Each time: run the benchmark and delete the output folder */
void run_once(char *observer_options) {

  coco_suite_t *suite;
  coco_observer_t *observer;
  coco_problem_t *problem;

  printf("Running experiment with options %s\n", observer_options);
  fflush(stdout);

  suite = coco_suite("bbob-biobj", NULL, "dimensions: 2 function_indices: 5-6 instance_indices: 2-3");
  observer = coco_observer("bbob-biobj", observer_options);

  while ((problem = coco_suite_get_next_problem(suite, observer)) != NULL) {

    my_optimizer(problem);

  }

  coco_observer_free(observer);
  coco_suite_free(suite);

  wait_in_seconds(2); /* So that the directory removal is surely finished */

  printf("DONE!\n");
  fflush(stdout);
}
/*
 * Class:     CocoJNI
 * Method:    cocoGetObserver
 * Signature: (Ljava/lang/String;Ljava/lang/String;)J
 */
JNIEXPORT jlong JNICALL Java_org_moeaframework_problem_BBOB2016_CocoJNI_cocoGetObserver
(JNIEnv *jenv, jclass interface_cls, jstring jobserver_name, jstring jobserver_options) {

  coco_observer_t *observer = NULL;
  const char *observer_name;
  const char *observer_options;

  /* This test is both to prevent warning because interface_cls was not used and to check for exceptions */
  if (interface_cls == NULL) {
    jclass Exception = (*jenv)->FindClass(jenv, "java/lang/Exception");
    (*jenv)->ThrowNew(jenv, Exception, "Exception in cocoGetObserver\n");
  }

  observer_name = (*jenv)->GetStringUTFChars(jenv, jobserver_name, NULL);
  observer_options = (*jenv)->GetStringUTFChars(jenv, jobserver_options, NULL);

  observer = coco_observer(observer_name, observer_options);

  return (jlong) observer;
}