# Software Tools

### Software Development at GERAD

Since the creation of GERAD, our members have developed or collaborated in the development of several software tools for solving complex theoretical or industrial problems, which are used extensively by industry or by the research and student communities. Most of these software programs are freely available or open source, while several others are commercial. Below is a brief description of the most important work undertaken in this area as well as links to more information on how to access these software programs, where applicable.

#### NOMAD

- Professor Charles Audet and Sébastien Le Digabel and their team have developed NOMAD – a black box optimization software. A black box optimization problem consists in minimizing an objective subject to constraints, where different functions defining the problem may require the execution of one or more simulations. In the context of optimization, the objective is to find the best feasible solution given a limited evaluation budget. This research work has been extended to apply to the optimization of hyperparameters of deep neural networks, leading to the creation of the HyperNOMAD software program. Both of these programs are open source.

#### AutoGraphiX (AGX)

- Professor Gilles Caporossi has developed AutoGraphiX (AGX) (other website), a free computer system designed to help researchers in graph theory. The main objective of AGX is to search for extremal graphs, i.e. graphs that minimize or maximize a graph invariant (or a function of graph invariants, which could also be considered an invariant).

#### GGXLog

- Professor Gilles Caporossi has also developed GenoGraphiX-Log 2.0 (abbreviated GGXLog). It is a keystroke logging software which is a collaborative development between HEC Montréal, University of Turku, ITEM and GERAD. This project is mainly focused on combining Text Genetics and Graph-Theory with Keystroke Logging in Writing Studies. The software is intended to be used by teachers, students, researchers and writing professionals.

GGXLog will record writing sessions in different writing contexts such as free-writing, translation and editing translations. It stores the data of the writing session as a log file which is loaded into the software to perform various analysis and data visualizations. The programme further stores data as tab-separated-value (.tsv) files for loading data into spreadsheet or statistical software for ease of use by the individuals who may utilize them to perform analysis of the session data. Furthermore, GGXLog captures and stores informant data, third-party application usage during the writing session and the final product text as support data.

The software is based on Java programming language and will function on Windows and Mac OSX operating systems.

#### GENCOL

- Professors Guy Desaulniers, Jacques Desrosiers and François Soumis have developed the commercial software program GENCOL, which is used to solve applications whose solutions can be represented as pathways in networks. These pathways correspond, for example, to bus schedules or to rotations (pairs) of pilots and flight attendants who operate the flights offered by an airline. The methodology used – column generation – allows for solving problems with a few hundred million such pathways in school, air, urban, rail and sea transportation. In addition to column generation, dynamic constraint aggregation and integral simplex techniques using decomposition have also been integrated into GENCOL, with the collaboration of Professor Issmail El Hallaoui, allowing for solution of problems on a greater scale.

Professor Dominique Orban has developed or participated in the development of numerous software programs, notably for continuous and nonlinear optimization:

#### GALAHAD

- GALAHAD is a library of Fortran 2003 packages for solving continuous nonlinear optimization problems. The areas covered by the library are unconstrained and bound-constrained non-linear optimization, and particularly convex and nonconvex quadratic optimization, systems of nonlinear equation and inequalities and nonlinear least squares problems.

#### JuliaSmoothOptimizers

- JuliaSmoothOptimizers is an open source environment on GitHub, consisting of a collection of Julia routines for the development, testing and benchmarking of nonlinear optimization software. This environment provides tools for model building, accessing problem directories, subproblem solving, linear algebra and problem solving.

#### PythonOptimizers

- PythonOptimizers is an open source Python environment for modelling and solving continuous optimization problems, and is available on GitHub.

#### CUTEst

- Finally, CUTEst is an open source modelling and testing environment for unconstrained and bound-constrained optimization software. CUTEst is written in 2003, but interfaces in Fortran 77 and C and can be accessed using other languages such as MATLAB, Python and Julia.