~ruther/ctu-fee-eoa

ref: 940f8e99e5765b17a24d46de1d3914122c0726b1 ctu-fee-eoa/codes/README.md -rw-r--r-- 1.9 KiB
940f8e99 — Rutherther Really finish hw02 5 days ago

The report is located at bohacek_frantisek_report.pdf, it has been generated from report.md

Rust has been used to write the library and program for solving constrained problems. Cargo is used for managing the dependencies.

#How to run

To run the contr, go into the constr_hw02 folder, ie. cd constr_hw02, then use cargo run --release -- srank|nsga|nsga_improved|nsga_constr|nsga_multi problem, Supported problems are: g04, g05 g06, g08, g09, g11 and g24.

So for example: cargo run --release -- srank g06

#Solutions

The solution is then saved to constr_hw02/solutions/<instance>, csv file with best candidate fitness (only feasible candidates can be saved) and next to it is file with faction of feasible candidates in each iteration.

#Plotting

The solutions might be plotted by using py_plotter program. cd py_plotter and then python3 plotter.py <json configuration>, The configurations are available in the same folder. For generating the probability of success graphs, target_proximity_plotter.py is utilized. It's usage is the same as plotter.py, but it uses different json fields.

The name of the plotter is same as used for hw01 as the plotting itself is the same.

#'Reproducing' the plots in the report

To obtain the graphs in the report, use the following sequence of commands:

  1. compute.sh to compute all the algorithms on all instances, 10 times for each instance.
  2. Generate the plots, go to py_plotter folder, and run
python3 ./plotter.py config_feasible_g11.json
python3 ./plotter.py config_feasible_g06.json
python3 ./plotter.py config_feasible_g05.json
python3 ./plotter.py config_best_g09.json
python3 ./target_proximity_plotter.py config_target_proximity_comprehensive_no_std.json

Now all the csv solutions are in constr_hw02/solutions and all the plots are in py_plotter/plots

The graphs won't be 1:1, because randomness is involved and the seeds haven't been captured and aren't configurable.