SCLGMay 22, 2020

A machine learning based software pipeline to pick the variable ordering for algorithms with polynomial inputs

arXiv:2005.11251v17 citations
Originality Synthesis-oriented
AI Analysis

This work addresses performance optimization for mathematical software users, but it is incremental as it builds on prior experiments with CAD variable ordering.

The paper tackles the problem of improving mathematical software performance by using machine learning to select variable orderings for algorithms with polynomial inputs, resulting in a freely available software pipeline that adapts techniques from previous work on Cylindrical Algebraic Decomposition.

We are interested in the application of Machine Learning (ML) technology to improve mathematical software. It may seem that the probabilistic nature of ML tools would invalidate the exact results prized by such software, however, the algorithms which underpin the software often come with a range of choices which are good candidates for ML application. We refer to choices which have no effect on the mathematical correctness of the software, but do impact its performance. In the past we experimented with one such choice: the variable ordering to use when building a Cylindrical Algebraic Decomposition (CAD). We used the Python library Scikit-Learn (sklearn) to experiment with different ML models, and developed new techniques for feature generation and hyper-parameter selection. These techniques could easily be adapted for making decisions other than our immediate application of CAD variable ordering. Hence in this paper we present a software pipeline to use sklearn to pick the variable ordering for an algorithm that acts on a polynomial system. The code described is freely available online.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes