Solving Polynomial Systems in the Cloud with Polynomial Homotopy Continuation

Similar documents
A Blackbox Polynomial System Solver on Parallel Shared Memory Computers

GPU acceleration of Newton s method for large systems of polynomial equations in double double and quad double arithmetic

Parallel Polynomial Evaluation

on Newton polytopes, tropisms, and Puiseux series to solve polynomial systems

Toolboxes and Blackboxes for Solving Polynomial Systems. Jan Verschelde

Quality Up in Polynomial Homotopy Continuation

Heterogenous Parallel Computing with Ada Tasking

A Blackbox Polynomial System Solver on Parallel Shared Memory Computers

Numerical Computations in Algebraic Geometry. Jan Verschelde

Multitasking Polynomial Homotopy Continuation in PHCpack. Jan Verschelde

Solving Schubert Problems with Littlewood-Richardson Homotopies

Factoring Solution Sets of Polynomial Systems in Parallel

Certificates in Numerical Algebraic Geometry. Jan Verschelde

Introduction to Numerical Algebraic Geometry

ECE521 W17 Tutorial 1. Renjie Liao & Min Bai

Introduction to Computational Algebraic Geometry. Jan Verschelde

Tropical Approach to the Cyclic n-roots Problem

Polyhedral Methods for Positive Dimensional Solution Sets

Algebraic Cryptanalysis of MQQ Public Key Cryptosystem by MutantXL

Roots of a Polynomial System

MCS 563 Spring 2014 Analytic Symbolic Computation Monday 14 April. Binomial Ideals

Cryptanalysis of Patarin s 2-Round Public Key System with S Boxes (2R)

Multivariate Public Key Cryptography or Why is there a rainbow hidden behind fields full of oil and vinegar?

Gröbner Bases in Public-Key Cryptography

Biology 559R: Introduction to Phylogenetic Comparative Methods Topics for this week:

Quality Up in Polynomial Homotopy Continuation by Multithreaded Path Tracking

The Numerical Solution of Polynomial Systems Arising in Engineering and Science

Databases through Python-Flask and MariaDB

Sparse Polynomial Multiplication and Division in Maple 14

computing an irreducible decomposition of A B looking for solutions where the Jacobian drops rank

Algebra Performance Level Descriptors

Numerical Algebraic Geometry and Symbolic Computation

ES205 Analysis and Design of Engineering Systems: Lab 1: An Introductory Tutorial: Getting Started with SIMULINK

MutantXL: Solving Multivariate Polynomial Equations for Cryptanalysis

MCS 563 Spring 2014 Analytic Symbolic Computation Friday 31 January. Quotient Rings

Certified predictor-corrector tracking for Newton homotopies

On the Sandpile Group of Circulant Graphs

Homotopy Methods for Solving Polynomial Systems tutorial at ISSAC 05, Beijing, China, 24 July 2005

BENCHMARKING SOFTWARE FOR SOLVING MULTI-POLYNOMIAL SYSTEMS

Introduction to Portal for ArcGIS. Hao LEE November 12, 2015

MCS 563 Spring 2014 Analytic Symbolic Computation Monday 27 January. Gröbner bases

Bloomsburg University Weather Viewer Quick Start Guide. Software Version 1.2 Date 4/7/2014

numerical Schubert calculus

Tutorial: Numerical Algebraic Geometry

GIS Software. Evolution of GIS Software

Measuring earthquake-generated surface offsets from high-resolution digital topography

Introduction to Portal for ArcGIS

Bertini: A new software package for computations in numerical algebraic geometry

Computing Puiseux Series for Algebraic Surfaces

Tropical Algebraic Geometry in Maple. Jan Verschelde in collaboration with Danko Adrovic

Secret Sharing CPT, Version 3

GIS Functions and Integration. Tyler Pauley Associate Consultant

Using the EartH2Observe data portal to analyse drought indicators. Lesson 4: Using Python Notebook to access and process data

From BASIS DD to Barista Application in Five Easy Steps

HOW TO USE MIKANA. 1. Decompress the zip file MATLAB.zip. This will create the directory MIKANA.

Finding Succinct. Ordered Minimal Perfect. Hash Functions. Steven S. Seiden 3 Daniel S. Hirschberg 3. September 22, Abstract

Petri nets analysis using incidence matrix method inside ATOM 3

From BASIS DD to Barista Application in Five Easy Steps

Exactness in numerical algebraic computations

Demonstration Examples Jonathan D. Hauenstein

Homework #1 - September 9, Due: September 16, 2005 at recitation ( 2 PM latest) (late homework will not be accepted)

M o n i t o r i n g O c e a n C o l o u r P y t h o n p r o c e d u r e f o r d o w n l o a d

Information Security Theory vs. Reality

Portal for ArcGIS: An Introduction

Development of a GIS Interface for WEPP Model Application to Great Lakes Forested Watersheds

Key Recovery on Hidden Monomial Multivariate Schemes

Lab 1 Uniform Motion - Graphing and Analyzing Motion

NUCLEONICA Overview: A WEB PORTAL FOR THE NUCLEAR SCIENCES

Honors Advanced Algebra Unit 3: Polynomial Functions November 9, 2016 Task 11: Characteristics of Polynomial Functions

V&V MURI Overview Caltech, October 2008

Tropical Islands. Jan Verschelde

Infrastructure Automation with Salt

Account Setup. STEP 1: Create Enhanced View Account

MA441: Algebraic Structures I. Lecture 14

Numerical Irreducible Decomposition

ON SITE SYSTEMS Chemical Safety Assistant

Karsten Vennemann, Seattle. QGIS Workshop CUGOS Spring Fling 2015

PaikkaOppi - a Virtual Learning Environment on Geographic Information for Upper Secondary School

SOFTWARE ARCHITECTURE DESIGN OF GIS WEB SERVICE AGGREGATION BASED ON SERVICE GROUP

Information System Design IT60105

Linear System Theory

New Directions in Multivariate Public Key Cryptography

Computing Series Expansions of Algebraic Space Curves

arxiv: v4 [math.ag] 16 Apr 2018

Graphical User Interfaces for Emittance and Correlation Plot. Henrik Loos

Scripting Languages Fast development, extensible programs

A brief survey of post-quantum cryptography. D. J. Bernstein University of Illinois at Chicago

Fundamentals of Computational Science

CHEMICAL INVENTORY ENTRY GUIDE

Cloud-based WRF Downscaling Simulations at Scale using Community Reanalysis and Climate Datasets

ArcGIS Enterprise: What s New. Philip Heede Shannon Kalisky Melanie Summers Sam Williamson

One Optimized I/O Configuration per HPC Application

The File Geodatabase API. Craig Gillgrass Lance Shipman

K. Zainuddin et al. / Procedia Engineering 20 (2011)

The planar resolution algorithm

Lab 2 Worksheet. Problems. Problem 1: Geometry and Linear Equations

Leveraging Your Geo-spatial Data Investments with Quantum GIS: an Open Source Geographic Information System

Lecture 4.1: Homomorphisms and isomorphisms

Volume Editor. Hans Weghorn Faculty of Mechatronics BA-University of Cooperative Education, Stuttgart Germany

IMS4 ARWIS. Airport Runway Weather Information System. Real-time data, forecasts and early warnings

Transcription:

Solving Polynomial Systems in the Cloud with Polynomial Homotopy Continuation Jan Verschelde joint with Nathan Bliss, Jeff Sommars, and Xiangcheng Yu University of Illinois at Chicago Department of Mathematics, Statistics, and Computer Science https://kepler.math.uic.edu The 17th Workshop on Computer Algebra in Scientific Computing 14-18 September 2015, RWTH Aachen University, Aachen, Germany Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 1 / 30

Outline 1 Polynomial Homotopy Continuation solving systems with deformations the software PHCpack and its interfaces 2 Solving in the Cloud a web interface to phc what we currently have 3 Classifying the Solved Systems searching a database of polynomial systems the graph isomorphism problem benchmarking the canonization of systems Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 2 / 30

Solving Polynomial Systems in the Cloud 1 Polynomial Homotopy Continuation solving systems with deformations the software PHCpack and its interfaces 2 Solving in the Cloud a web interface to phc what we currently have 3 Classifying the Solved Systems searching a database of polynomial systems the graph isomorphism problem benchmarking the canonization of systems Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 3 / 30

polynomial homotopy continuation methods f(x) =0 is a polynomial system we want to solve, g(x) =0 is a start system (g is similar to f) with known solutions. A homotopy h(x, t) =(1 t)g(x)+t f(x) =0, t [0, 1], to solve f(x) =0 defines solution paths x(t): h(x(t), t) 0. Numerical continuation methods track the paths x(t), from t = 0to1, applying predictor-corrector algorithms. Polynomial homotopy continuation methods are hybrid: Symbolic: definition of a homotopy h(x, t) =0. We exploit the sparse structure of f when constructing g. Numeric: path tracking with predictor-corrector algorithms. Verify approximate solutions with special care for diverging paths. Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 4 / 30

Solving Polynomial Systems in the Cloud 1 Polynomial Homotopy Continuation solving systems with deformations the software PHCpack and its interfaces 2 Solving in the Cloud a web interface to phc what we currently have 3 Classifying the Solved Systems searching a database of polynomial systems the graph isomorphism problem benchmarking the canonization of systems Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 5 / 30

the software PHCpack PHCpack is a package for Polynomial Homotopy Continuation. ACM Transactions on Mathematical Software archived version 1.0 as Algorithm 795, vol. 25, no. 2, pages 251 276, 1999. blackbox solver: phc -b computes all isolated solutions of a polynomial system. External software package integrated in PHCpack: Fast mixed volume computation by MixedVol of Gao, Li, and Wu, Algorithm 846 of ACM TOMS, vol. 31, pages 555 560, 2005. Double double and quad double arithmetic with the QD Library of Hida, Li, and Bailey published in the 15th IEEE Symposium on Computer Arithmetic, pages 155 162. IEEE, 2001. Interfaces to Macaulay2 (Gross, Petrovic), Maple (Leykin), MATLAB (Guan), Python (Piret), Sage (Hampton, Jokela, Stein). Version 2.4 supports GPU accelerated path trackers (Yoffe, Yu). Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 6 / 30

interfaces to the software PHCpack Three (pure) types of interfaces to the solvers in PHCpack: 1 Command line with interactive menus: phc -b input output 2 Python scripting interface with phcpy: >>> from phcpy.solver import solve >>> help(solve) >>> f = [ x*y + 3*x - 4;, x^2 + y^2-1; ] >>> s = solve(f) 3 A Graphical User Interface (GUI). We view a web interface as a GUI that runs in a browser. Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 7 / 30

Solving Polynomial Systems in the Cloud 1 Polynomial Homotopy Continuation solving systems with deformations the software PHCpack and its interfaces 2 Solving in the Cloud a web interface to phc what we currently have 3 Classifying the Solved Systems searching a database of polynomial systems the graph isomorphism problem benchmarking the canonization of systems Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 8 / 30

motivation for a cloud service In some disciplines, cloud computing has become the norm. Benefits for the user (but there are risks as well): No installation is required, just sign up. Installing software can be complicated and a waste of time, especially if one want to perform a single experiment. The user should not worry about upgrading to newer versions. We offer a computing service. The web server is hosted by a powerful computer, which can be extended with the addition of compute servers. Files and data are stored and managed for the user. The input and output files are managed at the server. For larger problems, storage space can become an issue. Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 9 / 30

Macaulay2 in the cloud PHCpack.m2 is a package distributed with Macaulay2. Macaulay2 runs in the cloud as well. An example session with truncated output is below: Macaulay2, version 1.8.1 i1 : loadpackage "PHCpack"; i2 : R = CC[x,y,z]; i3 : S = {x+y+z-1, x^2 + y^2-1, x+2*y-3}; i4 : solvesystem(s) o4 = {{.6+.8*ii, 1.2-.4*ii, -.8-.4*ii}, {.6-.8*ii, 1.2+.4*ii, -.8+.4*ii}} Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 10 / 30

Solving Polynomial Systems in the Cloud 1 Polynomial Homotopy Continuation solving systems with deformations the software PHCpack and its interfaces 2 Solving in the Cloud a web interface to phc what we currently have 3 Classifying the Solved Systems searching a database of polynomial systems the graph isomorphism problem benchmarking the canonization of systems Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 11 / 30

what we currently have A web interface to the blackbox solver of phc is running at https://kepler.math.uic.edu. 1 The server kepler runs Red Hat Linux. 2 Apache is the web server. 3 Our database is MySQL. 4 Python is the scripting language. All software is free and open source. The web service was also deployed and tested on a Mac OS X. In its current state, the setup of the web interface is minimal, but, most importantly: It works! Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 12 / 30

Apache The web server runs Apache. One index.html leads to the login Python script. The cgi-bin directory contains all scripts. The setup process is automatically executed at a reboot. Registration is done automatically via a google email account. Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 13 / 30

five Python scripts The original, proof-of-concent version had less than 1,500 lines of Python code. A simplified view of the original design: cookie_login prints first login screen calls register for a first time user; or calls phc_solver register sends email to first time user activate runs when user clicks in email contact is optional to send emails about the service phc_solver solves polynomial systems Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 14 / 30

MySQL MySQL is called in Python through the module MySQLdb. The database manages two tables: users: data about users, encrypted passwords; polys: references to systems and solutions. Mathematical data are not stored in the database: Every user has a folder, a generated 40 character string. With every system there is another generated 40 character string. Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 15 / 30

Solving Polynomial Systems in the Cloud 1 Polynomial Homotopy Continuation solving systems with deformations the software PHCpack and its interfaces 2 Solving in the Cloud a web interface to phc what we currently have 3 Classifying the Solved Systems searching a database of polynomial systems the graph isomorphism problem benchmarking the canonization of systems Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 16 / 30

motivation to classify polynomial systems Some interesting questions: How hard is a new system compared to ones already solved? The research community works with benchmark systems which are although representative for the difficulties of the problems in the field; and the capabilities of the software; but not really meaningful or directly relevant to new users. For example: who knows about the cyclic n-roots problems? Has the same system been solved already? If we would have a large database of solved systems, then how to search the database? New users will unlikely know the names of benchmark problems. Is the system on input similar to solved systems? Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 17 / 30

the classification problem If we have solved a system with the same structure, then the solved system is the start system in a homotopy. For example, the systems { x 2 + xy 2 3 = 0 2x 2 y + 5 = 0 and { 3 + 2ab 2 = 0 b 2 5 + 2a 2 b = 0 are isomorphic to each other. There support sets are {{(2, 0), (1, 2), (0, 0)}, {(2, 1), (0, 0)}} and {{(0, 0), (1, 2)}, {(0, 2), (0, 0), (2, 1)}}. Definition Two sets of support sets are isomorphic if there exists a permutation of their equations and variables so that the sets of support sets are identical. Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 18 / 30

the isomorphism problem of polynomials Related work occurs in multivariate cryptography. J. Patarin. Hidden fields equations (HFE) and isomorphism of polynomials (IP): Two new families of asymmetric algorithms. In U. Maurer, editor, Advances in Cryptology - EUROCRYPT 96, volume 1070 of Lecture Notes in Computer Science, pages 33 48. Springer-Verlag, 1996. J.-C. Faugère and L. Perret. Polynomial equivalence problems: Algorithmic and theoretical aspects. In S. Vaudenay, editor, EUROCRYPT 2006, volume 4004 of Lecture Notes in Computer Science, pages 30 47. Springer-Verlag, 2006. C. Bouillaguet, P.-A. Fouque, and A. Véber. Graph-theoretic algorithms for the Isomorphism of Polynomials problem. In T. Johansson and P. Nguyen, editors, EUROCRYPT 2013, volume 7881 of Lecture Notes in Computer Science, pages 211 227. Springer-Verlag, 2013. Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 19 / 30

Solving Polynomial Systems in the Cloud 1 Polynomial Homotopy Continuation solving systems with deformations the software PHCpack and its interfaces 2 Solving in the Cloud a web interface to phc what we currently have 3 Classifying the Solved Systems searching a database of polynomial systems the graph isomorphism problem benchmarking the canonization of systems Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 20 / 30

representing a system as a graph root equations x 2 + xy x 3 y 2 + x + 1 monomials xy x 2 x 3 y 2 x 1 exponents variables x y 1 Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 21 / 30

the graph isomorphism problem Definition The graph isomorphism problem asks whether for two undirected graphs F, G there is a bijection φ between their vertices that preserves incidence; i.e.: if a and b are vertices connected by an edge in F (respectively G), then φ(a) and φ(b) are connected by an edge in G (respectively F ). Proposition The problem of determining whether two sets of support sets are isomorphic is equivalent to the graph isomorphism problem. A practical solution: the software package nauty. B.D. McKay and A. Piperno. Practical graph isomorphism, II. Journal of Symbolic Computation, 60:94 112, 2014. Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 22 / 30

canonical graph labelings with nauty root equations x 2 + xy x 3 y 2 + x + 1 monomials xy x 2 x 3 y 2 x 1 exponents variables 1 2 3 1 2 x y 1 Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 23 / 30

Solving Polynomial Systems in the Cloud 1 Polynomial Homotopy Continuation solving systems with deformations the software PHCpack and its interfaces 2 Solving in the Cloud a web interface to phc what we currently have 3 Classifying the Solved Systems searching a database of polynomial systems the graph isomorphism problem benchmarking the canonization of systems Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 24 / 30

benchmarking nauty on cyclic n-roots cyclic 3-roots: Times in milliseconds for small values of n, to compute the canonical form with nauty: x 1 + x 2 + x 3 = 0 x 1 x 2 + x 2 x 3 + x 3 x 1 = 0 x 1 x 2 x 3 1 = 0. n time #nodes #characters 4 0.006 29 526 6 0.006 53 1,256 8 0.006 85 2,545 10 0.007 125 5,121 12 0.007 173 8,761 Note: computing the root counts by phc -b for the cyclic 10-roots problems takes 48.8 seconds. Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 25 / 30

cyclic n-roots, for large n For larger values of the dimension of the cyclic n-root problem, times and sizes of the data start to grow exponentially. n time #nodes #characters 16 0.010 293 20,029 32 0.045 1,093 168,622 48 0.265 2,405 601,702 64 1.200 4,229 1,427,890 80 4.316 6,565 2,778,546 96 15.274 9,413 4,784,390 112 38.747 12,773 8,595,408 128 80.700 16,645 13,094,752 Note: computing all isolated solutions is no longer possible. With GPU acceleration, tracking a limited number of paths is possible. Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 26 / 30

game theory: Nash equilibria Totally mixed Nash equilibria for three players with two pure strategies: c 1,1 p 2 + c 1,2 (1 p 2 )+c 1,3 p 3 p 2 + c 1,4 (1 p 3 )p 2 + c 1,5 p 3 (1 p 2 )+c 1,6 (1 p 3 )(1 p 2 ) = 0 Nash 3 : c 2,1 p 1 + c 2,2 (1 p 1 )+c 2,3 p 3 p 1 + c 2,4 (1 p 3 )p 1 + c 2,5 p 3 (1 p 1 )+c 2,6 (1 p 3 )(1 p 1 ) = 0 c 3,1 p 1 + c 3,2 (1 p 1 )+c 3,3 p 2 p 1 + c 3,4 (1 p 2 )p 1 + c 3,5 p 2 (1 p 1 )+c 2,6 (1 p 2 )(1 p 1 ) = 0 unknowns: p 1, p 2, p 3 ; coefficients: c i,j, i = 1, 2, 3, j = 1, 2,...,6. Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 27 / 30

canonization of Nash equilibria The system to compute all totally mixed Nash equilibria has supports invariant by the full permutation group. n time #nodes #characters 4 0.006 47 977 5 0.006 98 2,325 6 0.007 213 7,084 7 0.013 472 18,398 8 0.054 1,051 51,180 9 0.460 2,334 134,568 10 4.832 5,153 331,456 11 73.587 11,300 872,893 12 740.846 24,615 2,150,512 The systems are not sparse and the number of solutions grows as n!. Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 28 / 30

a system without symmetry Another benchmark system is formulated by Katsura: u 0 + 2u 1 + 2u 2 1 = 0 katsura 2 : u0 2 + 2u2 1 + 2u2 2 u 0 = 0 2u 0 u 1 + 2u 1 u 2 + u2 2 u 1 = 0. Without symmetry in the support sets, the cost of the canonization increases not as fast in the dimension n. The number of solutions equals 2 n. n time #nodes #characters 25 0.020 929 24,906 50 0.090 3,411 112,654 75 0.546 7,454 254,770 100 1.806 13,061 495,612 125 4.641 20,229 793,662 150 10.860 28,961 1,157,498 175 21.194 39,254 1,587,115 200 52.814 51,111 2,082,562 225 98.118 64,529 2,643,891 Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 29 / 30

concluding remarks Basic version of web interface to phc -b and phc -p. Built with LAMP stack, Python as scripting language. Classification of solved systems via the graph isomorphism. In the future: automatic exploitation of permutation symmetry. try it at https://kepler.math.uic.edu Jan Verschelde (UIC) Solving Polynomial Systems in the Cloud CASC 2015 30 / 30