From e617916e98903a6982d7dc7d2ed6ce17d0b47804 Mon Sep 17 00:00:00 2001 From: nojhan Date: Mon, 25 Jan 2021 13:48:52 +0100 Subject: [PATCH] feat irace add script to parse irace to csv --- eo/contrib/irace/irace-config/example.scen | 4 ++-- eo/contrib/irace/parse_irace_bests.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100755 eo/contrib/irace/parse_irace_bests.py diff --git a/eo/contrib/irace/irace-config/example.scen b/eo/contrib/irace/irace-config/example.scen index 4a407e06a..3c7e9beed 100644 --- a/eo/contrib/irace/irace-config/example.scen +++ b/eo/contrib/irace/irace-config/example.scen @@ -62,8 +62,8 @@ targetRunner = "./target-runner" ## Maximum number of runs (invocations of targetRunner) that will be ## performed. It determines the maximum budget of experiments for the -## tuning. -maxExperiments = 100000 +## tuning. (minimum: 180) +maxExperiments = 20000 # 100000 ## Maximum total execution time in seconds for the executions of ## targetRunner. targetRunner must return two values: cost and time. diff --git a/eo/contrib/irace/parse_irace_bests.py b/eo/contrib/irace/parse_irace_bests.py new file mode 100755 index 000000000..3ee600352 --- /dev/null +++ b/eo/contrib/irace/parse_irace_bests.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3 + +import os +import re +import sys + +print("pb,ecdf,crossover-rate,cross-selector,crossover,mutation-rate,mut-selector,mutation,replacement") +for datadir in sys.argv[1:]: + + for pb_dir in os.listdir(datadir): + if "results_problem" in pb_dir: + pb_id=pb_dir.replace("results_problem_","") + with open(os.path.join("./",datadir,pb_dir,"irace.log")) as fd: + data = [line.strip() for line in fd.readlines() if "--crossover-rate=" in line] + for line in data: + algo=re.sub("\-\-\S*=", ",", line) + csv_line=pb_id+","+algo + print(csv_line.replace(" ",""))