Synthesis of Mathematical Programming Models with One-Class Evolutionary Strategies

Tomasz P. Pawlak

Abstract

We propose an Evolutionary Strategy-based One Class Constraint Synthesis (ESOCCS), a novel method for computer-assisted synthesis of Mathematical Programming models. ESOCCS synthesizes constraints of Linear Programming and Non-Linear Programming types using examples of solely feasible states of the modeled entity. This is a crucial feature from the viewpoint of modeling real-world business processes from data, as acquisition of examples of feasible states is straightforward for a normally operating process, while infeasible states corresponding to errors and faults are avoided in practice and thus uncommon. ESOCCS is verified on a suite of synthetic benchmarks having known model representation and compare the synthesized models with the actual models in terms of syntax and semantics, concluding noticeable fidelity. We employ ESOCCS and an off-shelf solver in a fully automated setup of modeling and optimization of a real-world business process of rice production. The resulting optimal parameters of production are validated in contexts of three exemplary rice farms, concluding practical feasibility of those parameters and likely increase of profit thanks to applying them.

Access full text

Full text is available at ScienceDirect.

BibTeX

@article{PAWLAK2019335,
title = "Synthesis of Mathematical Programming models with one-class evolutionary strategies",
journal = "Swarm and Evolutionary Computation",
volume = "44",
pages = "335 - 348",
year = "2019",
issn = "2210-6502",
doi = "https://doi.org/10.1016/j.swevo.2018.04.007",
url = "http://www.sciencedirect.com/science/article/pii/S2210650217305849",
author = "Tomasz P. Pawlak",
keywords = "Constraint acquisition, Model induction, Linear Programming, Quadratic Programming, Set Cover, Distribution"}

Supplementary material

Data sets

Rice-nonoise2.csv - the dataset of Rice production in India preprocessed by replacing all variables representing prices of the components with a variable representing the total cost of production, and with the total volume of production and rice selling price replaced with total monetary income. Variables representing production components are absolute and to embrace observations from different farms in a single model, they are recalculated relatively to the farm area. Absolute farm area A is included in the variable set, since some parameters of production may depend on it. Two ordinal variables are encoded using integers reflecting the order. Outlying examples with ids 291, 398, 923, 1004 are dropped, as they are probably wrong. The preprocessed data sethas 1,022 examples. The original dataset comes from: Feng, Qu and Horrace, William C., "Alternative technical efficiency measures: Skew, bias and scale", Journal of Applied Econometrics (2012), 253-268.

Source code

The C# source code of the experimental suite presented in the paper is available under conditions of Academic Free License. Visual Studio 2015+ is required to compile binaries from the source. Gurobi Solver 7 is required to run the software. This software runs on Mono 4.4+ under Linux.

Run the software using one of the following commands:

Modeling.MP.exe seed=[random_seed] benchmark=Modeling.Common.Benchmarks.[benchmark] feasibleSamples=[ushort] synthesizer=MP.ES.ESOneClassSynthesizer CM=[probability] HR=[probability] LambdaMuRatio=[double] RemoveRedundantConstraints=False linear=True quadratic=[Boolean] MaxGenerations=[uint] PopulationSize=[uint] output=statistics.sqlite
or:
Modeling.MP.exe seed=[random_seed] problem=[input.csv] synthesizer=MP.ES.ESOneClassSynthesizer CM=[probability] HR=[probability] LambdaMuRatio=[double] RemoveRedundantConstraints=False linear=True quadratic=[Boolean] MaxGenerations=[uint] PopulationSize=[uint] output=statistics.sqlite