ahc_settings

ソースコード

from titan_pylib.ahc.ahc_settings import AHCSettings

view on github

展開済みコード

 1# 展開に失敗しました
 2import optuna
 3
 4"""example
 5python3 ./parallel_tester.py -c -v -njobs 127
 6
 7python3 ./oprimizer.py
 8g++ ./main.cpp -O2 -std=c++20 -o a.out -I./../../../Library_cpp
 9"""
10
11
12class AHCSettings:
13    """
14    AHCテスターの設定ファイル
15
16    https://github.com/titan-23/Library_py/tree/main/titan_pylib/ahc/readme.md
17    """
18
19    # parallel_tester -------------------- #
20    compile_command = "g++ ./main.cpp -O2 -std=c++20 -o a.out -I./../../../Library_cpp"
21    execute_command = "./a.out"
22    input_file_names = [f"./in/{str(i).zfill(4)}.txt" for i in range(100)]
23    timeout = None
24
25    def get_score(scores: list[float]) -> float:
26        return sum(scores) / len(scores) * 100
27
28    # ------------------------------------ #
29
30    # optimizer -------------------------- #
31    # study_name
32    study_name = "test"
33
34    # direction: minimize / maximize
35    direction = "minimize"
36
37    # parallel_tester の cpu_count
38    n_jobs_parallel_tester = 127
39
40    # optuna の試行回数
41    n_trials = 50
42
43    # optuna の cpu_count
44    n_jobs_optuna = 1
45
46    def objective(trial: optuna.trial.Trial) -> tuple:
47        # 返り値のタプルはコマンドライン引数として渡す順番にする
48        start_temp = trial.suggest_float("start_temp", 1, 100, log=True)
49        k = trial.suggest_float("k", 0.0001, 1, log=True)
50        end_temp = start_temp * k
51        return (start_temp, end_temp)
52
53    # ------------------------------------ #

仕様

class AHCSettings[source]

Bases: object

AHCテスターの設定ファイル

https://github.com/titan-23/Library_py/tree/main/titan_pylib/ahc/readme.md

compile_command = 'g++ ./main.cpp -O2 -std=c++20 -o a.out -I./../../../Library_cpp'
direction = 'minimize'
execute_command = './a.out'
get_score() float[source]
input_file_names = ['./in/0000.txt', './in/0001.txt', './in/0002.txt', './in/0003.txt', './in/0004.txt', './in/0005.txt', './in/0006.txt', './in/0007.txt', './in/0008.txt', './in/0009.txt', './in/0010.txt', './in/0011.txt', './in/0012.txt', './in/0013.txt', './in/0014.txt', './in/0015.txt', './in/0016.txt', './in/0017.txt', './in/0018.txt', './in/0019.txt', './in/0020.txt', './in/0021.txt', './in/0022.txt', './in/0023.txt', './in/0024.txt', './in/0025.txt', './in/0026.txt', './in/0027.txt', './in/0028.txt', './in/0029.txt', './in/0030.txt', './in/0031.txt', './in/0032.txt', './in/0033.txt', './in/0034.txt', './in/0035.txt', './in/0036.txt', './in/0037.txt', './in/0038.txt', './in/0039.txt', './in/0040.txt', './in/0041.txt', './in/0042.txt', './in/0043.txt', './in/0044.txt', './in/0045.txt', './in/0046.txt', './in/0047.txt', './in/0048.txt', './in/0049.txt', './in/0050.txt', './in/0051.txt', './in/0052.txt', './in/0053.txt', './in/0054.txt', './in/0055.txt', './in/0056.txt', './in/0057.txt', './in/0058.txt', './in/0059.txt', './in/0060.txt', './in/0061.txt', './in/0062.txt', './in/0063.txt', './in/0064.txt', './in/0065.txt', './in/0066.txt', './in/0067.txt', './in/0068.txt', './in/0069.txt', './in/0070.txt', './in/0071.txt', './in/0072.txt', './in/0073.txt', './in/0074.txt', './in/0075.txt', './in/0076.txt', './in/0077.txt', './in/0078.txt', './in/0079.txt', './in/0080.txt', './in/0081.txt', './in/0082.txt', './in/0083.txt', './in/0084.txt', './in/0085.txt', './in/0086.txt', './in/0087.txt', './in/0088.txt', './in/0089.txt', './in/0090.txt', './in/0091.txt', './in/0092.txt', './in/0093.txt', './in/0094.txt', './in/0095.txt', './in/0096.txt', './in/0097.txt', './in/0098.txt', './in/0099.txt']
n_jobs_optuna = 1
n_jobs_parallel_tester = 127
n_trials = 50
objective() tuple[source]
study_name = 'test'
timeout = None