## What is Combinatorial AI?

Combinatorial AI is a learning algorithm of the automated search for computational functions that are both syntactically valid and pragmatically useful. The algorithm is able to:

- Learn to build simple models of objects and processes in a changing environment,
- Combine the simple models into solutions for problems defined in the environment,
- Communicate the models using syntactically correct messages in a formal language.

The combinatorial approach is a method of structural search and optimization. Combinatorial AI gains knowledge starting from very simple to more and more complex models.

Under the right training supervision, training a combinatorial agent to search quazi optimal solutions takes polynomial time.

## Application Opportunities

Possible application examples may include:

#### Software development

- Programming communications between components
- Task paralleling and scaling
- Porting between platforms
- Automated testing

#### Engineering

- Elements of automation in CAD development
- Conjecture of different CAD applications
- Record keeping

#### Logistics

- Supply chain/distribution management
- Cost optimization
- Risk control

## Development Status

The proof-of-concept combinatorial agent trained on a demo problem was presented in 2019. In the demonstration, the agent:

- builds simple models from the interplay with its environment,
- generates solutions for a specified problem by combining the models,
- represents the solution in a formal language that allows it’s analysis or execution.

Now there is continued R&D to train the combinatorial AI to

- Process structured problem descriptions in XML extensions,
- Represent solutions in a Turing-complete language.