SOLVER-AI Documentation

Welcome to the SOLVER-AI platform, your comprehensive cloud-based algorithmic platform designed to simplify the process of solving complex problems. Whether you’re a data scientist, a researcher, a business aiming to optimize operations, or a developer looking to integrate advanced problem-solving capabilities into your applications, websites, or servers, SOLVER-AI allows you to rapidly develop and instantly deploy tailored AI powered decision, design, and control systems.

In order to solve your problem with SOLVER-AI you first need to decompose your problem in a number of logical blocks that we call modules. The next step is to create a problem by selecting the modules to be used. No further configuration is required, SOLVER-AI will figure out which modules connect to which, as long as you preserve a consistent naming for the parameters of each module. Once this is done, you are ready to run the solver. We'll give you more details in the following sections.


Concept

The main goal of SOLVER-AI is to allow solving problems, which require developing complex logic, quickly and effectively. In order to do so we have defined a number of logical blocks which we call Modules, with which you can define the core computation elements for solving your problem.

Hypthetical problem to be solved, including the 4 module types: Equation (E), Code (C), HardData (HD) and SoftData (SD).

Currently 4 modules are available: Equation, Code, HardData and SoftData. SoftData is used for machine learning (ML).

You can create as many modules as your problem requires in a few simple steps, via the Browsable API, or programmatically as described in the API Client documentation.

Once you have setup your modules you just need to select them and you are ready to run your calculations.

You do not need to assemble the workflow (execution sequence of the modules), when creating each module you will specify it's input and output variables and SOLVER-AI will determine the best workflow based on them, having a consistent variable naming is the only thing you need to worry about.

Finally, setup your requirements and get your solution. Run it from the Browsable API, integrate it programmatically (API Client), or a combination of the two.

Continue reading to get a better understanding of what SOLVER-AI is capable of.


Modules: The Building Blocks

At the heart of SOLVER-AI are Modules - the building blocks of the problem. Each has its own purpose and set of input and output variables, which have to be specified or are implicit, depending on the module.

You can create any number of modules, of which there are currently four types: Equation, Code, HardData and SoftData. Each module serves a unique purpose and caters to a specific need.

Module Description Inputs Outputs
Equation Specify a mathematical equation to perform calculations and transformations. Multiple Single
Code Upload a python Code to perform complex programming instructions including HTTP requests to external servers. Multiple Multiple
HardData Upload a csv file to handle specific items (on rows) and their different attributes. Implicit (row number) Implicit (column headers)
SoftData Upload a csv file for machine learning and perform predictions. Multiple (column headers) Multiple (column headers)

Understanding Modules through an Example

Consider the design of a solar plant, composed of components like:

  • Solar Panels
  • Solar Inverters
  • Batteries

If multiple models of these components exist, we can create HardData modules for each, with CSV files containing the models as rows and the relevant technical specifications as columns.

A Python code could be uploaded to a Code module to retrieve sun exposure data from a dedicated external server, given specific coordinates.

We can then define as many Equation modules as reqruied, with equations based on the component specifications, sunlight exposure and number of each component, which would allow us to compute values such as the power output at different times of the day or night and at different times of the year.

If data from previous power plants is available, a SoftData module could be created using a CSV file of such data. If the CSV file includes information like installation costs or maintenance costs, Machine Learning could be applied to predict these amounts for the plant being evaluated.


Problem Setup

Once you've set up the modules, you can construct a problem by providing a name and description and selecting the modules to be used. The problem can be considered as a “super-module” that has its own set of input and output variables.

One of the strengths of SOLVER-AI lies in its ability of wiring together all the modules automatically once a problem is created. The system automatically determines the necessary inputs for the problem based on the inputs and outputs of each module within it. This means that the inputs for the problem are only those that are strictly necessary to solve it.

When wiring the modules together the system also handles any interdependencies between the modules. This includes managing any “feedback loops” or situations where the output of one module affects the input of another. In simpler terms, if there’s a situation where one module relies on the results of another, and that module in turn relies on the first, don’t worry - SOLVER-AI has got it covered. It navigates these loops to ensure everything works together seamlessly.

IMPORTANT: As the assembling of the modules is dependent on the input and output names / headers of the different modules, it is paramount for these to be defined consistently among the modules used within a specific problem.


Problem Execution

With SOLVER-AI, you have the capability to tailor the configuration to align seamlessly with your problem-solving objectives.

When setting up inputs, you have the flexibility to either establish fixed values or permit variation within a specified range. This level of control allows you to determine the conditions under which your problem is addressed.

As for outputs, optionally, they can be set to be equivalent to, fall above, or below a certain value, or lie inside or outside a certain range. Also optionally, specific outputs can be designated for minimization or maximization. This adaptability ensures that the problem-solving process is directed towards solutions that meet your unique requirements.


Problem / Module Updating

If you have updated csv data, you can simply update the relevant modules and the problem will pick up the changes. This functionality is to cater for cases for which HardData and SoftData modules need to be updated with the latest data collected from sensors or any other sources.


Results

The results are returned as a table with all the solutions found for easy interpretation and further analysis. This allows you to focus on what matters most - finding solutions to complex problems.

For problems and configurations where multiple solutions exist, SOLVER-AI will give you a range of equivalent alternative sample solutions.


Integration

You can setup modules and problems via the the website or programmatically as described in the documentation, as well as a combination of both.

After setting up your modules and problems, you can seamlessly integrate SOLVER-AI into your server, app, or desktop application. This is achieved by making HTTP requests to the computation server. In your request, include the data pertaining to your problem execution (inputs, objectives and constraints) to obtain solutions for the specified problem.

If there's a need to update one or more modules without recreating the problem, you can make an HTTP PATCH request. This can be done programmatically or via the Browsable API, without requiring any additional modifications.


Dive into our documentation to discover more about how SOLVER-AI can assist you in solving your complex problems. Here’s to efficient problem-solving!


Privacy Policy Cookie Policy 
Website Terms and Conditions Platform Terms and Conditions 
X



//


SOLVER-AI ® is a registered trademark in the UK.
Copyright © 2022-2024 SOLVER-AI Ltd. All Rights Reserved.