Skip to content

jnloos/Minimizing-crossings-in-PSEs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Operating Instructions

Parameter Explanation
-m Flag to indicate whether multiple files are to be processed. Defaults to false.
-i Relative path to the input directory or file.
-o Relative path to the output directory or file.
-c Relative path to the configuration directory or file. Defaults to ./config/.
-t Number of minutes after which termination is forced. Defaults to 50.
-s Specification of the strategies to be applied. If a sequence is to be executed, multiple can be listed using a "+" separator.

The present project consists of four different folders. The directory ./source/ contains all classes that manage drawings or the execution of strategies, as well as the file ./source/dependencies.h, which includes all source files in bulk. Additionally, the subdirectory ./source/external/ contains all open-source libraries that have been utilized. The optimization algorithms themselves are located separately in the ./strategies/ folder. To consider various parametrization without causing complex console commands, configurations are saved in JSON files. The standard directory for these is ./config/, which contains blueprints for further configurations. The application should be compiled within the ./production/ directory to ensure that all default paths can be used without issues: cmake -B . -S .. && make

To optimize PSEs, the main executable must then be called within the production folder. Inputs and outputs are organized with additional directory paths, which must be specified according to the instruction overview in Table 1. If the -m flag is set, the program expects a directory path for parameter -i, in which each PSE file is will be read and optimized in a separate thread. Otherwise, the program will process a single file in a single thread. Scanned files must comply with the JSON format of the GDC, because otherwise the parser is going to throw errors. Generated (intermediate) results are stored in the specified output path and are named based on the previously scanned file names. It is possible to specify a different folder for -c that contains configurations different from the default settings.

Ultimately, the specific strategies to be applied sequentially can be specified using a "+"-separated string. In addition, a notation with square brackets was selected for the selection of sub-strategies. The examples below should illustrate this even better and provide a template for the most common use cases at the same time.


Description Command
Executes brute-force for a single PSE and forces termination after 30 minutes. ./main -s bruteforce -i ./input/ -o ./output/ -t 30
Executes greedy assignment for a single PSE with non-standard configurations. ./main -s greedy -i ./input/ -o ./output/ -c ./config/
Executes Eades' spring embedding and greedy embedding sequentially. Multiple PSEs are processed in parallel because the -m flag is set. ./main -s fda[spring]+greedy -i ./input/ -o ./output/ -m
Executes the combined approach utilizing SA with random walk and FR. Since the -t flag is not set, termination will be forced after 50 minutes. ./main -s fda[fr]+greedy+sa[walk] -i ./input/ -o ./output/ -m

About

A combined approach of Spring-Embedding and Simulated Annealing.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors