This project aimed to implement three well-known meta-heuristic algorithms: cuckoo search (CS), bat algorithm (BA), and flower pollination algorithm (FPA).
-
Optimization_hw3_RE6094028-updated.pdf: the report file -
args.py: the definition the arguments parser -
objs.py: the definitions of objective functions -
algorithms.py: the implements of CS, BA, and FPA -
main.py: the main program of training CS, BA, and FPA -
exp_lambda.py: the procedure of training CS, BA, and FPA with lambda-tuning -
scatter_plots.py: the production of scatter plots of initial and final points with 2 randomly-seleced dimensions and with 2 tSNE dimensions. -
stacked_plots.py: the production of stacked plots which plot training curves together. -
./output_r1/contains subfolders with results of different trainings with 1 replication.-
~/f1d10/: trained on objective 1 with 10-d points~/CS/,~/BA/, and~/FPA/
-
~/f2d10: trained on objective 2 with 10-d points~/CS/,~/BA/, and~/FPA/
-
~/f1d20/: trained on objective 1 with 20-d points~/CS/,~/BA/, and~/FPA/
-
~/f2d20: trained on objective 2 with 20-d points~/CS/,~/BA/, and~/FPA/
-
-
./output_r20/contains subfolders with results of different trainings with 20 replications.-
~/f1d10/: trained on objective 1 with 10-d points~/CS/,~/BA/, and~/FPA/
-
~/f2d10: trained on objective 2 with 10-d points~/CS/,~/BA/, and~/FPA/
-
~/f1d20/: trained on objective 1 with 20-d points~/CS/,~/BA/, and~/FPA/
-
~/f2d20: trained on objective 2 with 20-d points~/CS/,~/BA/, and~/FPA/
-
-
./output_exp_lambda/contains subfolders with results of different trainings with lambda-tuning.-
~/f1d10/: trained on objective 1 with 10-d points~/CS/and~/FPA/
-
~/f2d10: trained on objective 2 with 10-d points~/CS/and~/FPA/
-
~/f1d20/: trained on objective 1 with 20-d points~/CS/and~/FPA/
-
~/f2d20: trained on objective 2 with 20-d points~/CS/and~/FPA/
-
-
./scatter_plots/contains scatter plots of initial and final points with 2 randomly-seleced dimensions and with 2 tSNE dimensions. -
./stacked_plots/contains stacked plots which plot training curves together.
- Train CS on the defaulted objective function with defaulted #runs, #replications, and #dimensions.
python3 main.py -a 'CS' - Train CS, BA, and FPA with 10 and 20 dimensions, 1000 runs and 1 replication on objective function 1 and 2 and save outputs under the given folder.
python3 main.py -as 'CS' 'BA' 'FPA' -r 1 -t 1000 -f 1 -d 10 -path './output_r1/f1d10'
python3 main.py -as 'CS' 'BA' 'FPA' -r 1 -t 1000 -f 2 -d 10 -path './output_r1/f2d10'
python3 main.py -as 'CS' 'BA' 'FPA' -r 1 -t 1000 -f 1 -d 10 -path './output_r1/f1d20'
python3 main.py -as 'CS' 'BA' 'FPA' -r 1 -t 1000 -f 2 -d 20 -path './output_r1/f2d20'- Train CS, BA, and FPA with 10 and 20 dimensions and 1000 runs and 20 replications on objective function 1 and 2 and save outputs under the given folder.
python3 main.py -as 'CS' 'BA' 'FPA' -r 20 -t 1000 -f 1 -d 10 -path './output_r20/f1d10'
python3 main.py -as 'CS' 'BA' 'FPA' -r 20 -t 1000 -f 2 -d 10 -path './output_r20/f2d10'
python3 main.py -as 'CS' 'BA' 'FPA' -r 20 -t 1000 -f 1 -d 20 -path './output_r20/f1d20'
python3 main.py -as 'CS' 'BA' 'FPA' -r 20 -t 1000 -f 2 -d 20 -path './output_r20/f2d20'- Train CS and FPA with 10 and 20 dimensions and 1000 runs and 20 replication on objective function 1 and 2 with lambda-tuning with given candidate values and save outputs under the given folder. (Note: BA has no hyper-parameter, lambda)
python3 exp_lambda.py -as 'CS' 'FPA' -r 20 -t 1000 -f 1 -d 10 -path './output_exp_lambda/f1d10/'
python3 exp_lambda.py -as 'CS' 'FPA' -r 20 -t 1000 -f 1 -d 20 -path './output_exp_lambda/f1d20/'
python3 exp_lambda.py -as 'CS' 'FPA' -r 20 -t 1000 -f 2 -d 10 -path './output_exp_lambda/f2d10/'
python3 exp_lambda.py -as 'CS' 'FPA' -r 20 -t 1000 -f 2 -d 20 -path './output_exp_lambda/f2d20/'- Plot training curves together
Please run command 2 before running this command.
python3 scatter_plots.py -path 'scatter_plots'- Plot training curves together
Please run command 3 before running this command.
python3 stacked_plots.py -path './stacked_plots/'