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 tsp, go into the constr_hw02 folder, ie. `cd tsp_hw01`, then use `cargo run --release -- srank|moe problem`, Supported problems are: `g06`, `g08`, `g11`, `g24`. So for example: `cargo run --release -- srank g06` # Solutions The solution is then saved to `constr_hw01/solutions/`, 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 `tsp_plotter` program. `cd tsp_plotter` and then `cargo run --release -- `, where feature is one of: ``` ``` The features are hardcoded in the code and used in the report, they say what algorithms and instances should be used in a given plot. They are taken from the `constr_hw02` folder. 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 ``` Now all the csv solutions are in `constr_hw01/solutions` and all the plots are in `tsp_plotter/plots` The graphs won't be 1:1, because randomness is involved and the seeds haven't been captured and aren't configurable.