Skip to content

Latest commit

 

History

History

search

The algorithms used are described in the solution writeup.

run_search.py

usage

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.

beam-parallel.cpp

usage

  • 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

input data

  • 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])

output data

  • 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

cerr

  • std error outputs shows computation logs