Interactive Optimization as a Service (iOaaS)
Constraint Programming (CP) is a relatively new direction in software development that is addressing optimization problems in the field of Enterprise Resource Planning.
There are several established implementations available as Open Source Software or with commercial licensing (Choco, Constrainer are OSS; Gurobi, IBM ILOG require commercial licensing). Most of these systems are developed in Java or can be used as part of Java applications. JSR-331 (Java Constraint Programming API) is a standard base that provides compatibility between applications, developed using different implementations of Constraint Programming.
iOaaS provides support for the Octopus optimization models. CP functionality is implemented as a set of Octopus processors.
iOaaS can work with all JSR-331 compatible APIs.
We using Google s spreadsheets for source data. Slides 1 - 3 represent three major parts of source data:
- product description (Slide 1);
- machine/resource description (Slide 2);
- description of technological steps that should be performed in order to make a final product (Slide 3).
There are three stages in this process:
- Source data conversion from Google spreadsheets to Neo4j database. Three separate models transfer data from Google spreadsheet to Neo4j database (Slides 5 - 10);
- Relationship's building. One model builds all relationships (Slides 11 and 12);
- Searching for the optimal solution. Optimization Model builds Solution Model (we are using Choco - Open Source Constraint Programming Framework). This model is presented on Slides 13 and 14.
- opti-machines-2Neo4j_003 (opti-machines-2Neo4j-from-designer_003);
- opti-product-2Neo4j_001 (opti-product-2Neo4j-from-designer_001);
- opti-technologySteps-2Neo4j_001 (opti-technologySteps-2Neo4j-from-designer_001);
- opti-Relations-2Neo4j_001 (opti-Relations-2Neo4j-from-designer_001);
- opti-solution-2GSS_001 (opti-solution-2GSS-from-designer_001).