The algorithms used are described in the solution writeup.
source compile-parallel.sh
source compile-dp.sh
python run_search.py -f input_file -n n_threads
- Search for the optimal arm configuations for all paths in input file
- Results are stored in ./found_configs/ (only if valid one found!)
- Files could be bestSolution.txt or StageII_xxxxx.txt generated by GA-EAX, which contains multiple candidates of paths. samples in ./solution/
- Firstly check if there're possible 64-32 arms by DP, then run beam search.
- Create input files
please refer to create_input_files.py.
python create_input_files.py
- Run
source compile-parallel.sh
./beam-parallel.out n_threads < input_file > output_file
- example
5
64 0 -32 0 -16 0 -8 0 -4 0 -2 0 -1 0 -1 0
0 0
0 1
0 2
0 3
0 4
length of the path,
arm configuation at the path start point,
path (Cartesian, x in [-128, 128], y in [-128, 128])
- example
64 64 32 32 16 16 8 8 4 4 2 2 1 0 1 1
64 64 32 32 16 16 8 8 4 4 2 1 1 0 1 1
64 64 32 32 16 15 8 8 4 4 2 1 1 0 1 1
64 63 32 32 16 15 8 8 4 4 2 1 1 0 1 1
64 62 32 32 16 15 8 8 4 4 2 1 1 0 1 1
each line represents arm configuratoin in reversed order of the path in the input file
- std error outputs shows computation logs