Machine Design Optimiser

1. Product Description

1.1. Solution Overview

The AIDEAS Machine Design Optimiser (MDO) is a hybrid approach that accelerates the optimisation process by integrating expensive simulations with an artificial intelligence (AI) model. The method is based on the following:

  • Initially, a dataset is generated from a theoretical simulator, in which various combinations of parameters (p1, p2, p3, p4, p5) are evaluated to obtain the corresponding values of the objective function.

  • With these data, an AI model is trained, allowing a large number of inferences to be made quickly (e.g. 200) to identify the five best parameter combinations.

  • Since the accuracy of the model may be limited by its initial training, the top 5 are selected and new ‘real’ data are obtained through additional simulations.

  • This new data is integrated with the initial set to re-train the AI model, improving its accuracy and allowing the optimisation process to be iterated until the desired number of iterations is reached.

This process allows to guide and speed up the search for the optimal value without the need to perform a large number of costly simulations.

1.2. Features

This AIDEAS Machine Design Optimiser offers the following features:

  • Parameter Range Definition: The user sets the minimum and maximum values for each of the parameters (p1, p2, p3, p4, p5), as well as the number of iterations between the AI model and the simulations.

  • Hybrid Optimisation: Combines data obtained through expensive simulations with rapid inferences from the AI model to identify the parameter combinations that best maximise or minimise the objective function.

  • Iterative Processing: The AI model is progressively improved by integrating new data generated at each iteration, allowing for more accurate and targeted optimisation.

  • Computational Efficiency: By reducing the number of simulations required, computational time and resources are optimised, guiding the search towards the most promising combinations.

  • Flexibility: The approach allows to adjust both the number of iterations and the parameter ranges, adapting to different problems and simulation scenarios.

1.3. Prerequisites

• Technical Specifications

The model files can be saved, to the backend of the solutions as a file to be used with new data. Solution’s outputs are displayed in the UI. The backend of the AI-AD is developed using python and FLASK as the framework for the API server. The backend provides the API endpoints with which the frontend can communicate to, send requests, and obtain the results.
The frontend of the solution is developed in REACT. For deployment, docker is used since it is the most widely used containerization solution. Docker also makes it easy to deploy the packaged application into the runtime environment and is widely supported by deployment tools and technologies.

• Technical Development

This AIDEAS Solution has the following development requirements:

  • Development Language: Python and Javascript.

  • Libraries: Numpy, Pandas, Scikit-Learn, PyTorch, Flask, PyYAML, SciPy, Pickle.

  • Container and Orchestration: Docker, Kubernetes.

  • User Interface: React.

  • Application Interfaces: RestAPI.

  • Database engine: MongoDB.

• Hardware Requirements

AI-MDO can run on any platform that supports Docker containers.

• Software Requirements

• External Dependencies

  • MongoDB (optional, for external data storage)

2. Installation

2.1. Environment Preparation

Ensure that all dependencies, including Docker, Python, and npm, are installed. Clone the repository from the official GitLab project and configure the backend and frontend environments as needed.

2.2. Step-by-Step Installation Process

  • Local Installation: Requires configuring backend and frontend, installing dependencies, and launching services manually.

  • Docker Installation: Uses a docker-compose.yml file to deploy the application.

  • Kubernetes Installation: Pending implementation.

3. Initial Configuration

3.1. First Steps

• Login

Users must log in using GitLab authentication before accessing secured application features.

• Interface Navigation

The application will open in its home screen. The tabs navigation widget is placed in the left, and the available tabs are:

HOME

  • Dashboard → Tab in which an introduction of MDO is displayed and from which the other tabs can be accessed too.

    Home Screen

  • Help → Tab with guidelines.

    Help Screen

AI-MDO

  • Configuration → Tab in which the machine model and function that will be used by the application are defined and the optimization can be run.

    • Configuration Data Files: .csv, .xls or .xlsx.

    • Function Data Files: .py.

    Machine Model Configuration Screen

  • Results Overview → Given a Machine Configuration file, the results can be visualized and contextualized within the machine in which the solution is applied.

    Results Overview Screen

The tabs “Configuration” and “Results” cannot be accessed if not logged in. The login can be done by clicking in the top-right user button. A GitLab user is needed.

Login Screen


Configuration

In the Configuration screen the following actions can be performed:

Import an existing Machine Configuration Model

  1. Click on “Load Config” to open the dropdown. Drag and drop it under the upload widget or click on “+ Browse” to add a new file. Click “Upload”.

    Import Machine Config Model 1

Visualize an existing Machine Configuration Model

  1. Click on “Load Config” to open the dropdown. Select a file from the dropdown.

    Visualize Machine Config File 1

  2. Click “Load File” to load it.

    Visualize Machine Config File 2

Modify a loaded Machine Configuration Model

  1. Once loaded, change the desired parameters.

    Modify Machine Config Model 1

  2. Once modified, click “Save Config” to store the changes.

    Modify Machine Config Model 2

Import a Function

  1. Click on “Load Function” to open the dropdown. Drag and drop it under the upload widget or click on “+ Browse” to add a new file. Click “Upload”.

    Import Function 1

Visualize a Function

  1. Click on “Load Function” to open the dropdown. Select a file from the dropdown.

    Visualize Function 1

  2. Click “Load Function” to load it.

    Visualize Function 2


3.2. Main Workflows

Machine Design Optimizer (MDO) Workflow

In the AI-MDO main workflow, the following actions can be performed:

  1. Configuration → Define the machine model and function that will be used by the application.

  2. Results Overview → Given a Machine Configuration file, the results can be visualized and contextualized within the machine in which the solution is applied.

Perform the Optimization

  1. Go to the “Configuration” tab.

  2. Select a model from the dropdown.

  3. Choose a function from the dropdown.

  4. Click “Run Optimization” to start the process. A circle will appear in the screen to indicate that the optimization is running.

    Run Optimization 1

  5. Once finished, a message will be displayed.

    Run Optimization 2

Visualize the Results

  1. Go to the “Results” tab.

  2. Click on “Import data” and select the file to visualize the results.

  3. Visualize the best optimized candidates.

    Visualize Results 1

  4. The results will be plotted for each candidate.

    Visualize Results 2

4. General Queries

4.1. Installation and Configuration Contact (If Service Provided)

For installation and configuration support, users should refer to the official GitLab project or the associated organization (IKERLAN).

4.2. Support

Company

Website

Logo

IKERLAN

https://www.ikerlan.es/

Ikerlan logo

4.3. Licensing

  • The solution is licensed under AGPLv3 or PRIVATE licensing models.

  • Pricing and licensing details are available upon request.

Subject

Value

Payment Model

Quotation under request

Price

Quotation under request

5. User Manual

5.1. Glossary of Terms

– COMPLETE – Define key terms and acronyms used within the documentation to help users understand technical language.

5.2. API Documentation

By default, the backend server is served on port 5000 and allows the following API methods. These methods are accessible through the application frontend, or by sending the proper request using tools like Postman, or directly with Python code.

Resource

GET

POST

PUT

DELETE

/load-config/<filename>

Supported

/save-config/<filename>

Supported

/load-results/<filename>

Supported

/run-optimization/<filename>/<filename_py>

Supported

/list

Supported

/fobjlist

Supported

/upload

Supported

/load-config/<filename>

  • GET → Load the results from an Excel file and return them as JSON.

    GET response type:
    {
        "headers": [
            "Parameter",
            "Min value",
            "Max value"
        ],
        "iterations": int,
        "modelName": "testModel",
        "values": [
            [1, 1, 2],
            [2, 3, 4]
        ]
    }
    

/save-config/<filename>

  • POST → Save the configuration from a JSON file to an Excel file.

    POST request type:
    {
        "iterations": int,
        "values": [
            [1, 1, 2],
            [2, 3, 4]
        ]
    }
    POST response type:
    {
        "iterations": int,
        "values": [
            [1, 1, 2],
            [2, 3, 4]
        ]
    }
    

/load-results/<filename>

  • GET → Load the results from an Excel file and return them as JSON.

    GET body:
    {
        "iterations": int,
        "values": [
            [1, 1, 2],
            [2, 3, 4]
        ]
    }
    GET response type:
    {
        "headers": [
            "Param 0",
            "Param 1",
            "Objective"
        ],
        "iterations": int,
        "values": [
            [1, 1.0513412, 2.345345],
            [2, 2.1221325, 3.907984],
            [3, 3.1231212, 4.123123],
            [n, n, n],
        ]
    }
    

/run-optimization/<filename>/<filename_py>

  • GET → Run the optimization process using the specified configuration and Python script.

    GET response type:
    {
      "result": string
    }
    

/list

  • GET → List all Excel files in the configuration directory.

    GET response type:
    [
      "file1.xlsx",
      "file2.xls"
    ]
    

/fobjlist

  • GET → List all Python files in the FOBJ directory.

    GET response type:
    [
      "function1.py",
      "function2.py"
    ]
    

/upload

  • POST → Upload an Excel or Python file to the server.

    POST request type:
    {
      "file": "<filename>.<extension>",
      "rewrite": bool
    }
    POST response type:
    {
      "result": string
    }
    

5.3. Console Commands List

  • npm install for frontend dependencies.

  • pip install -r requirements.txt for backend dependencies.

  • docker-compose up --build for Docker-based deployment.

  • python app.py to launch the backend server.

  • npm run dev to start the frontend server.