José Firmino Aguilar Madeira

Professor with Habilitation in Mathematics at ADM/ISEL/IPL and Integrated Researcher at IDMEC/IST/UL

Computational Codes

  1. Topology Optimization using Python

    This project is an adaptation of Ole Sigmund's 99-line topology optimization code from MATLAB to Python. The goal is to optimize the material distribution within a given design space subject to specific constraints and objectives, such as minimizing compliance (maximizing stiffness) for a given volume fraction of material.

    The Python code is available and ready to run on Google Colab. You can access the notebook using the following link:

    Topology Optimization on Colab

    You can also download the detailed document in PDF format:

    Download Topology Optimization in Python (PDF)

    For more details about the original MATLAB code by Ole Sigmund, visit the following link:

    A 99 line topology optimization code written in MATLAB

  2. Direct MultiSearch (DMS)

    DMS is a solver for multiobjective optimization problems which does not use any derivatives of the objective functions. It is based on a novel technique called direct multisearch, developed by extending direct search from single to multiobjective optimization. The current version can deal with any type of constraints (all it is required from the user is a function indicating whether a point is feasible or not).

    DMS (Version 0.3, January 2015) is written in Matlab.

    Version 0.3 (January 2015) of DMS can be obtained by sending an e-mail.

    DMS is freely available for research, educational, or commercial use, under a GNU Lesser General Public License.

    For references and complementary material visit DMS site:

    • A. L. Custódio, J. F. A. Madeira, A. I. F. Vaz, and L. N. Vicente, Direct multisearch for multiobjective optimization, SIAM Journal on Optimization, 21 (2011) 1109-1140 PDF (there is an errata for the published version)
    • The corresponding complete set of numerical results.
    • The corresponding collection of Multiobjective Optimization problems in AMPL can also be obtained by sending an e-mail.

    The DMS team:

    • Ana Luísa Custódio (New University of Lisbon)
    • José F. Aguilar Madeira (ISEL and IDMEC-IST, Lisbon)
    • A. Ismael F. Vaz (University of Minho)
    • Luís Nunes Vicente (University of Coimbra)
  3. Global and Local Optimization using Direct Search (GLODS)

    GLODS is a solver suited for global constrained optimization which does not use any derivatives of the objective functions. Using direct search of directional type, the algorithm alternates between a search step, where potentially good regions are located, and a poll step where the previously located promising regions are explored. Differently from a simple multistart strategy, direct searches will merge when sufficiently close. The goal is to end with as many direct searches as the number of local minimizers, which would easily allow locating the global extreme value.

    GLODS (Version 0.3, February 2016) is written in Matlab.

    Version 0.3 (February 2016) of GLODS can be obtained by sending an e-mail request to my colleague Dr. A. L. Custódio.

    GLODS is freely available for research, educational, or commercial use, under a GNU Lesser General Public License.

    References and complementary material:

    • A. L. Custódio and J. F. A. Madeira, GLODS: Global and Local Optimization using Direct Search, Journal of Global Optimization, 62 (2015), 1 - 28
    • The corresponding collection of Global Optimization problems in Matlab can also be obtained by sending an e-mail request to my colleague Dr. A. L. Custódio.

    The GLODS team:

    • Ana Luísa Custódio (NOVA School of Sciences and Technology)
    • José F. Aguilar Madeira (ISEL and IDMEC-IST, Lisbon)
  4. Global and Local Multiobjective Optimization using Direct Search (MultiGLODS)

    The optimization of multimodal functions is a challenging task, in particular when derivatives are not available for use. MultiGLODS is a solver suited for global multiobjective constrained optimization which does not use any derivatives of the objective functions.

    Using direct search of directional type, the algorithm alternates between a search step, where potentially good regions are located, and a poll step where the previously located promising regions are explored. Components of the objective function are not aggregated and new points are accepted using the concept of Pareto dominance. The initialized searches are not all conducted until the end, merging when start to be close to each other, this way keeping affordable computational budgets in terms of number of function evaluations.

    In the end of the optimization process, the set of all active points will define the approximations to the Pareto fronts of the problem (local and global).

    MultiGLODS (Version 0.1, December 2016) is written in Matlab.

    Version 0.1 (December 2016) of MultiGLODS can be obtained by sending an e-mail request to my colleague Dr. A. L. Custódio.

    MultiGLODS is freely available for research, educational, or commercial use, under a GNU Lesser General Public License.

    References and complementary material:

    • A. L. Custódio and J. F. A. Madeira, MultiGLODS: Global and Local Multiobjective Optimization using Direct Search, Journal of Global Optimization, 72 (2018), 323 - 345

    The MultiGLODS team:

    • Ana Luísa Custódio (Universidade Nova de Lisboa)
    • José F. Aguilar Madeira (ISEL and IDMEC-IST, Lisbon)