Skip to content

Guidelines

emarj edited this page Mar 4, 2025 · 4 revisions

The repository is composed of 4 modules: Preprocess, Feature Extraction, Compatibility, Solver.

Modules will be implemented using a classes. (Optional: each module will inherit from a basic module that provides common functionalities such as data/parameters loading/saving).

Each module will load and call different methods, depending on the parameters given. (To be continued)

Modules Input/Output and Parameters

Every modules takes data, metadata (json) and a parameter file (yaml) as input, and outputs data, metadata and a copy of the input parameter file.

Each modules will take as an input and gives as an output a specific metadata file called history.json. At the end of each step this file will contain all the metadata up to that step.

All of the outputs are saved in the output/{puzzle} folder. Each modules saves its outputs in a {module_folder_name[module_name]} sub-folder (see below).

By specifying an optional parameter, this sub-folder will uniquely named by adding a random string (or possibly a specified string) to avoid overwriting the outputs. (We should come up with a mechanism to give this input randomly named input to the next module! If we stick with custom string this will not be a problem). The solver will be an exception to this rule: it will always save the solutions by adding the timestamp (and random string).

module_folder_name = {
'preprocess' : 'pieces',
'feature_extraction' : 'features',
'compatibility' : 'experiments/{timestamp}_{rndstr}/cm',
'solver' : 'experiments/{timestamp}_{rndstr}/solutions',
}
Clone this wiki locally