<<

Introduction to Computer

Carlos D’Andrea

Oslo, December 1st 2016

Carlos D’Andrea Introduction to Computer Algebra What is Computer Algebra?

Carlos D’Andrea Introduction to Computer Algebra What is Computer Algebra?

Carlos D’Andrea Introduction to Computer Algebra Computer Algebra

Carlos D’Andrea Introduction to Computer Algebra Computer Algebra

Carlos D’Andrea Introduction to Computer Algebra Computer Algebra

Carlos D’Andrea Introduction to Computer Algebra Computer Algebra

Carlos D’Andrea Introduction to Computer Algebra Computer Algebra

Carlos D’Andrea Introduction to Computer Algebra “...is a scientific area that refers to the study and development of and for manipulating mathematical expressions and other mathematical objects...”

From Wikipedia (Symbolic Computation)

Carlos D’Andrea Introduction to Computer Algebra algorithms and software for manipulating mathematical expressions and other mathematical objects...”

From Wikipedia (Symbolic Computation)

“...is a scientific area that refers to the study and development of

Carlos D’Andrea Introduction to Computer Algebra for manipulating mathematical expressions and other mathematical objects...”

From Wikipedia (Symbolic Computation)

“...is a scientific area that refers to the study and development of algorithms and software

Carlos D’Andrea Introduction to Computer Algebra From Wikipedia (Symbolic Computation)

“...is a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions and other mathematical objects...” Carlos D’Andrea Introduction to Computer Algebra make it effective and to discover efficient algorithms to implement this effectiveness”

From Wikipedia (Symbolic Computation) “A large part of the work in the field consists in revisiting classical algebra in order to

Carlos D’Andrea Introduction to Computer Algebra From Wikipedia (Symbolic Computation) “A large part of the work in the field consists in revisiting classical algebra in order to make it effective and to discover efficient algorithms to implement this effectiveness”

Carlos D’Andrea Introduction to Computer Algebra Boolean decisions:= , =6 , (>, <) Arithmetic Operations over “computable” rings: Z, Q, Fq, Q[x1,..., xn],... Finite-Dimensional

“Effective” Operations

Carlos D’Andrea Introduction to Computer Algebra Operations over “computable” rings: Z, Q, Fq, Q[x1,..., xn],... Finite-Dimensional Linear Algebra

“Effective” Operations

Boolean decisions:= , =6 , (>, <)

Carlos D’Andrea Introduction to Computer Algebra Finite-Dimensional Linear Algebra

“Effective” Operations

Boolean decisions:= , =6 , (>, <) Arithmetic Operations over “computable” rings: Z, Q, Fq, Q[x1,..., xn],...

Carlos D’Andrea Introduction to Computer Algebra “Effective” Operations

Boolean decisions:= , =6 , (>, <) Arithmetic Operations over “computable” rings: Z, Q, Fq, Q[x1,..., xn],... Finite-Dimensional Linear Algebra

Carlos D’Andrea Introduction to Computer Algebra Given A, B ∈ Z,compute the product A · B ∈ Z

What is “an ” for CA?

Carlos D’Andrea Introduction to Computer Algebra compute the product A · B ∈ Z

What is “an algorithm” for CA?

Given A, B ∈ Z,

Carlos D’Andrea Introduction to Computer Algebra What is “an algorithm” for CA?

Given A, B ∈ Z,compute the product A · B ∈ Z

Carlos D’Andrea Introduction to Computer Algebra What is “an algorithm” for CA?

Given A, B ∈ Z,compute the product A · B ∈ Z

Carlos D’Andrea Introduction to Computer Algebra Output: A · B ∈ Z Procedure:

Example: The Multiplication Algorithm

Input: A, B ∈ Z

Carlos D’Andrea Introduction to Computer Algebra Procedure:

Example: The Multiplication Algorithm

Input: A, B ∈ Z Output: A · B ∈ Z

Carlos D’Andrea Introduction to Computer Algebra Example: The Multiplication Algorithm

Input: A, B ∈ Z Output: A · B ∈ Z Procedure:

Carlos D’Andrea Introduction to Computer Algebra Effective: the procedure must finish after a finite of operations, and give the right answer Efficient: the procedure must be as short as possible and use as less space as possible

Effective and Efficient

Carlos D’Andrea Introduction to Computer Algebra the procedure must finish after a finite number of operations, and give the right answer Efficient: the procedure must be as short as possible and use as less space as possible

Effective and Efficient

Effective:

Carlos D’Andrea Introduction to Computer Algebra and give the right answer Efficient: the procedure must be as short as possible and use as less space as possible

Effective and Efficient

Effective: the procedure must finish after a finite number of operations,

Carlos D’Andrea Introduction to Computer Algebra Efficient: the procedure must be as short as possible and use as less space as possible

Effective and Efficient

Effective: the procedure must finish after a finite number of operations, and give the right answer

Carlos D’Andrea Introduction to Computer Algebra the procedure must be as short as possible and use as less space as possible

Effective and Efficient

Effective: the procedure must finish after a finite number of operations, and give the right answer Efficient:

Carlos D’Andrea Introduction to Computer Algebra and use as less space as possible

Effective and Efficient

Effective: the procedure must finish after a finite number of operations, and give the right answer Efficient: the procedure must be as short as possible

Carlos D’Andrea Introduction to Computer Algebra Effective and Efficient

Effective: the procedure must finish after a finite number of operations, and give the right answer Efficient: the procedure must be as short as possible and use as less space as possible

Carlos D’Andrea Introduction to Computer Algebra of N digits Output: A · B ∈ Z Output’s size is around2 N digits High school algorithm takes around O(N2) operations It is effective, but is it efficient?

Short and less Space

Input: A, B ∈ Z

Carlos D’Andrea Introduction to Computer Algebra Output: A · B ∈ Z Output’s size is around2 N digits High school algorithm takes around O(N2) operations It is effective, but is it efficient?

Short and less Space

Input: A, B ∈ Z of N digits

Carlos D’Andrea Introduction to Computer Algebra Output’s size is around2 N digits High school algorithm takes around O(N2) operations It is effective, but is it efficient?

Short and less Space

Input: A, B ∈ Z of N digits Output: A · B ∈ Z

Carlos D’Andrea Introduction to Computer Algebra High school algorithm takes around O(N2) operations It is effective, but is it efficient?

Short and less Space

Input: A, B ∈ Z of N digits Output: A · B ∈ Z Output’s size is around2 N digits

Carlos D’Andrea Introduction to Computer Algebra It is effective, but is it efficient?

Short and less Space

Input: A, B ∈ Z of N digits Output: A · B ∈ Z Output’s size is around2 N digits High school algorithm takes around O(N2) operations

Carlos D’Andrea Introduction to Computer Algebra , but is it efficient?

Short and less Space

Input: A, B ∈ Z of N digits Output: A · B ∈ Z Output’s size is around2 N digits High school algorithm takes around O(N2) operations It is effective

Carlos D’Andrea Introduction to Computer Algebra Short and less Space

Input: A, B ∈ Z of N digits Output: A · B ∈ Z Output’s size is around2 N digits High school algorithm takes around O(N2) operations It is effective, but is it efficient?

Carlos D’Andrea Introduction to Computer Algebra Efficient Multiplication Karatsuba’s algorithm (1960): O(N1.585)

Carlos D’Andrea Introduction to Computer Algebra Sch¨onhage-Strassen’salgorithm (1971): O(N log N log log N)

Efficient Multiplication

Toom-Cook’s algorithm (1966): O(Nlog(2k−1)/ log k), k ≥ 3

Carlos D’Andrea Introduction to Computer Algebra Efficient Multiplication

Toom-Cook’s algorithm (1966): O(Nlog(2k−1)/ log k), k ≥ 3 Sch¨onhage-Strassen’salgorithm (1971): O(N log N log log N)

Carlos D’Andrea Introduction to Computer Algebra Is it the most efficient??

Efficient Multiplication

F¨urer’salgorithm (2007): O(N log N 2O(log∗ N)))

Carlos D’Andrea Introduction to Computer Algebra Efficient Multiplication

F¨urer’salgorithm (2007): O(N log N 2O(log∗ N)))

Is it the most efficient??

Carlos D’Andrea Introduction to Computer Algebra “As numerical software are highly efficient for approximate numerical computation, it is common, in computer algebra, to emphasize on exact computation with exactly represented data”

Numerical vs Computer Algebra

Carlos D’Andrea Introduction to Computer Algebra , to emphasize on exact computation with exactly represented data”

Numerical vs Computer Algebra

“As numerical software are highly efficient for approximate numerical computation, it is common, in computer algebra

Carlos D’Andrea Introduction to Computer Algebra Numerical vs Computer Algebra

“As numerical software are highly efficient for approximate numerical computation, it is common, in computer algebra, to emphasize on exact computation with exactly represented data”

Carlos D’Andrea Introduction to Computer Algebra Numerical “solution”: −2.0385; −0.790734; −0.275834; 1.15098; 1.95408

Numerical vs Computer Algebra

Compute the roots of x5 − 5x3 + 4x + 1

Carlos D’Andrea Introduction to Computer Algebra −2.0385; −0.790734; −0.275834; 1.15098; 1.95408

Numerical vs Computer Algebra

Compute the roots of x5 − 5x3 + 4x + 1

Numerical “solution”:

Carlos D’Andrea Introduction to Computer Algebra Numerical vs Computer Algebra

Compute the roots of x5 − 5x3 + 4x + 1

Numerical “solution”: −2.0385; −0.790734; −0.275834; 1.15098; 1.95408

Carlos D’Andrea Introduction to Computer Algebra x 5 − 5x 3 + 4x + 1 [−2.5, −2]; [−2, −0.5]; [−0.5, 0]; [0, 1.5]; [1.5, 2] {+, −, +, −, +}, {−, +, +, −, +}, {+, +, −, −, +}, {−, −, +, +, +}, {+, +, +, +, +} −2.5; −0.75; −0.25; 1; 2

Exactly Represented Data

Carlos D’Andrea Introduction to Computer Algebra x 5 − 5x 3 + 4x + 1 [−2.5, −2]; [−2, −0.5]; [−0.5, 0]; [0, 1.5]; [1.5, 2] {+, −, +, −, +}, {−, +, +, −, +}, {+, +, −, −, +}, {−, −, +, +, +}, {+, +, +, +, +} −2.5; −0.75; −0.25; 1; 2

Exactly Represented Data

Carlos D’Andrea Introduction to Computer Algebra [−2.5, −2]; [−2, −0.5]; [−0.5, 0]; [0, 1.5]; [1.5, 2] {+, −, +, −, +}, {−, +, +, −, +}, {+, +, −, −, +}, {−, −, +, +, +}, {+, +, +, +, +} −2.5; −0.75; −0.25; 1; 2

Exactly Represented Data

x 5 − 5x 3 + 4x + 1

Carlos D’Andrea Introduction to Computer Algebra {+, −, +, −, +}, {−, +, +, −, +}, {+, +, −, −, +}, {−, −, +, +, +}, {+, +, +, +, +} −2.5; −0.75; −0.25; 1; 2

Exactly Represented Data

x 5 − 5x 3 + 4x + 1 [−2.5, −2]; [−2, −0.5]; [−0.5, 0]; [0, 1.5]; [1.5, 2]

Carlos D’Andrea Introduction to Computer Algebra −2.5; −0.75; −0.25; 1; 2

Exactly Represented Data

x 5 − 5x 3 + 4x + 1 [−2.5, −2]; [−2, −0.5]; [−0.5, 0]; [0, 1.5]; [1.5, 2] {+, −, +, −, +}, {−, +, +, −, +}, {+, +, −, −, +}, {−, −, +, +, +}, {+, +, +, +, +}

Carlos D’Andrea Introduction to Computer Algebra Exactly Represented Data

x 5 − 5x 3 + 4x + 1 [−2.5, −2]; [−2, −0.5]; [−0.5, 0]; [0, 1.5]; [1.5, 2] {+, −, +, −, +}, {−, +, +, −, +}, {+, +, −, −, +}, {−, −, +, +, +}, {+, +, +, +, +} −2.5; −0.75; −0.25; 1; 2

Carlos D’Andrea Introduction to Computer Algebra Given f (x) ∈ Z[x], compute a set of small approximate roots of it fast

Computational Challenge

Carlos D’Andrea Introduction to Computer Algebra fast

Computational Challenge

Given f (x) ∈ Z[x], compute a set of small approximate roots of it

Carlos D’Andrea Introduction to Computer Algebra Computational Challenge

Given f (x) ∈ Z[x], compute a set of small approximate roots of it fast

Carlos D’Andrea Introduction to Computer Algebra The size of an N is its number of digits: log N The size of a fraction N1 will be N2 max{log N1, log N2}

What is a small number?

Carlos D’Andrea Introduction to Computer Algebra log N The size of a fraction N1 will be N2 max{log N1, log N2}

What is a small number?

The size of an integer N is its number of digits:

Carlos D’Andrea Introduction to Computer Algebra The size of a fraction N1 will be N2 max{log N1, log N2}

What is a small number?

The size of an integer N is its number of digits: log N

Carlos D’Andrea Introduction to Computer Algebra max{log N1, log N2}

What is a small number?

The size of an integer N is its number of digits: log N The size of a fraction N1 will be N2

Carlos D’Andrea Introduction to Computer Algebra What is a small number?

The size of an integer N is its number of digits: log N The size of a fraction N1 will be N2 max{log N1, log N2}

Carlos D’Andrea Introduction to Computer Algebra What is a small number?

The size of an integer N is its number of digits: log N The size of a fraction N1 will be N2 max{log N1, log N2}

Carlos D’Andrea Introduction to Computer Algebra Given α ∈ C the root of n (∗) a0 + a1x + ... + anx ∈ Z[x] The “size” of α is  n, max{log |ai |1≤i≤n} if( ∗) is the minimal of α

Size of Algebraic √ What is “the size” of 2?

Carlos D’Andrea Introduction to Computer Algebra The “size” of α is  n, max{log |ai |1≤i≤n} if( ∗) is the minimal polynomial of α

Size of Algebraic Numbers √ What is “the size” of 2? Given α ∈ C the root of n (∗) a0 + a1x + ... + anx ∈ Z[x]

Carlos D’Andrea Introduction to Computer Algebra if( ∗) is the minimal polynomial of α

Size of Algebraic Numbers √ What is “the size” of 2? Given α ∈ C the root of n (∗) a0 + a1x + ... + anx ∈ Z[x] The “size” of α is  n, max{log |ai |1≤i≤n}

Carlos D’Andrea Introduction to Computer Algebra Size of Algebraic Numbers √ What is “the size” of 2? Given α ∈ C the root of n (∗) a0 + a1x + ... + anx ∈ Z[x] The “size” of α is  n, max{log |ai |1≤i≤n} if( ∗) is the minimal polynomial of α

Carlos D’Andrea Introduction to Computer Algebra size of 2016 : (1, log 2016 ≈ 11) √ size of 2 : (2, log 2 = 1) √ size of −1 + 3i : (2, log 1 = 0) √2 2 size of 3 2 : (3, log 2 = 1)

With this definition...

Carlos D’Andrea Introduction to Computer Algebra (1, log 2016 ≈ 11) √ size of 2 : (2, log 2 = 1) √ size of −1 + 3i : (2, log 1 = 0) √2 2 size of 3 2 : (3, log 2 = 1)

With this definition...

size of 2016 :

Carlos D’Andrea Introduction to Computer Algebra √ size of 2 : (2, log 2 = 1) √ size of −1 + 3i : (2, log 1 = 0) √2 2 size of 3 2 : (3, log 2 = 1)

With this definition...

size of 2016 : (1, log 2016 ≈ 11)

Carlos D’Andrea Introduction to Computer Algebra (2, log 2 = 1) √ size of −1 + 3i : (2, log 1 = 0) √2 2 size of 3 2 : (3, log 2 = 1)

With this definition...

size of 2016 : (1, log 2016 ≈ 11) √ size of 2 :

Carlos D’Andrea Introduction to Computer Algebra √ size of −1 + 3i : (2, log 1 = 0) √2 2 size of 3 2 : (3, log 2 = 1)

With this definition...

size of 2016 : (1, log 2016 ≈ 11) √ size of 2 : (2, log 2 = 1)

Carlos D’Andrea Introduction to Computer Algebra (2, log 1 = 0) √ size of 3 2 : (3, log 2 = 1)

With this definition...

size of 2016 : (1, log 2016 ≈ 11) √ size of 2 : (2, log 2 = 1) √ 1 3 size of −2 + 2 i :

Carlos D’Andrea Introduction to Computer Algebra √ size of 3 2 : (3, log 2 = 1)

With this definition...

size of 2016 : (1, log 2016 ≈ 11) √ size of 2 : (2, log 2 = 1) √ 1 3 size of −2 + 2 i : (2, log 1 = 0)

Carlos D’Andrea Introduction to Computer Algebra (3, log 2 = 1)

With this definition...

size of 2016 : (1, log 2016 ≈ 11) √ size of 2 : (2, log 2 = 1) √ size of −1 + 3i : (2, log 1 = 0) √2 2 size of 3 2 :

Carlos D’Andrea Introduction to Computer Algebra With this definition...

size of 2016 : (1, log 2016 ≈ 11) √ size of 2 : (2, log 2 = 1) √ size of −1 + 3i : (2, log 1 = 0) √2 2 size of 3 2 : (3, log 2 = 1)

Carlos D’Andrea Introduction to Computer Algebra = (1, log N) Size of

N1 +N2 : (1, max{log N1, log N2}) N1 · N2 : (1, log N1 + log N2)

How does the size grow?

Over the : size of N

Carlos D’Andrea Introduction to Computer Algebra Size of

N1 +N2 : (1, max{log N1, log N2}) N1 · N2 : (1, log N1 + log N2)

How does the size grow?

Over the integers: size of N = (1, log N)

Carlos D’Andrea Introduction to Computer Algebra (1, max{log N1, log N2}) N1 · N2 : (1, log N1 + log N2)

How does the size grow?

Over the integers: size of N = (1, log N) Size of

N1 +N2 :

Carlos D’Andrea Introduction to Computer Algebra N1 · N2 : (1, log N1 + log N2)

How does the size grow?

Over the integers: size of N = (1, log N) Size of

N1 +N2 : (1, max{log N1, log N2})

Carlos D’Andrea Introduction to Computer Algebra (1, log N1 + log N2)

How does the size grow?

Over the integers: size of N = (1, log N) Size of

N1 +N2 : (1, max{log N1, log N2}) N1 · N2 :

Carlos D’Andrea Introduction to Computer Algebra How does the size grow?

Over the integers: size of N = (1, log N) Size of

N1 +N2 : (1, max{log N1, log N2}) N1 · N2 : (1, log N1 + log N2)

Carlos D’Andrea Introduction to Computer Algebra (6, log 32 = 5) 1 1 5 (22+3 = 26 ↔ x6 − 25 = 0) √ √ 2 + 3 2 :???

Size of algebraic numbers

Size of: √ √ 2 · 3 2 :

Carlos D’Andrea Introduction to Computer Algebra 1 1 5 (22+3 = 26 ↔ x6 − 25 = 0) √ √ 2 + 3 2 :???

Size of algebraic numbers

Size of: √ √ 2 · 3 2 : (6, log 32 = 5)

Carlos D’Andrea Introduction to Computer Algebra ↔ x6 − 25 = 0) √ √ 2 + 3 2 :???

Size of algebraic numbers

Size of: √ √ 2 · 3 2 : (6, log 32 = 5) 1 1 5 (22+3 = 26

Carlos D’Andrea Introduction to Computer Algebra Size of algebraic numbers

Size of: √ √ 2 · 3 2 : (6, log 32 = 5) 1 1 5 (22+3 = 26 ↔ x6 − 25 = 0) √ √ 2 + 3 2 :???

Carlos D’Andrea Introduction to Computer Algebra ↓  x2 − 2 = 0 y6 − 6y4 − 4y3 + 12y2 − 24y = 4 √ √ size of 2 + 3 2 = (6, log 24 ≈ 4.5)

Computer Algebra helps!

 x2 − 2 = 0 (y − x)3 − 2 = 0

Carlos D’Andrea Introduction to Computer Algebra √ √ size of 2 + 3 2 = (6, log 24 ≈ 4.5)

Computer Algebra helps!

 x2 − 2 = 0 (y − x)3 − 2 = 0 ↓  x2 − 2 = 0 y6 − 6y4 − 4y3 + 12y2 − 24y = 4

Carlos D’Andrea Introduction to Computer Algebra Computer Algebra helps!

 x2 − 2 = 0 (y − x)3 − 2 = 0 ↓  x2 − 2 = 0 y6 − 6y4 − 4y3 + 12y2 − 24y = 4 √ √ size of 2 + 3 2 = (6, log 24 ≈ 4.5)

Carlos D’Andrea Introduction to Computer Algebra if the sizes of α1, α2 are (d1, L1), (d2, L2), the sizes of both α1 + α2 and α1 · α2 is of the order of (d1 · d2, d1L2 + d2L1)

In general...

Carlos D’Andrea Introduction to Computer Algebra the sizes of both α1 + α2 and α1 · α2 is of the order of (d1 · d2, d1L2 + d2L1)

In general...

if the sizes of α1, α2 are (d1, L1), (d2, L2),

Carlos D’Andrea Introduction to Computer Algebra (d1 · d2, d1L2 + d2L1)

In general...

if the sizes of α1, α2 are (d1, L1), (d2, L2), the sizes of both α1 + α2 and α1 · α2 is of the order of

Carlos D’Andrea Introduction to Computer Algebra In general...

if the sizes of α1, α2 are (d1, L1), (d2, L2), the sizes of both α1 + α2 and α1 · α2 is of the order of (d1 · d2, d1L2 + d2L1)

Carlos D’Andrea Introduction to Computer Algebra  x3 + y 3 − xy + y = 0 y9 + 2y7 + y5 − 4y4 + y = 0

Triangulating systems of equations  x2y + y 2 − x = 0 x3 + y 3 − xy + y = 0

Carlos D’Andrea Introduction to Computer Algebra  x3 + y 3 − xy + y = 0 y9 + 2y7 + y5 − 4y4 + y = 0

Triangulating systems of equations  x2y + y 2 − x = 0 x3 + y 3 − xy + y = 0

Carlos D’Andrea Introduction to Computer Algebra Triangulating systems of equations  x2y + y 2 − x = 0 x3 + y 3 − xy + y = 0

 x3 + y 3 − xy + y = 0 y9 + 2y7 + y5 − 4y4 + y = 0 Carlos D’Andrea Introduction to Computer Algebra Number of solutions of a system of equations “Location” of the solutions Dimension, degree, size, ... of , matrices, differential operators,...

What can you get from here?

Carlos D’Andrea Introduction to Computer Algebra “Location” of the solutions Dimension, degree, size, ... Symbolic Integration Factorization of polynomials, matrices, differential operators,...

What can you get from here?

Number of solutions of a system of equations

Carlos D’Andrea Introduction to Computer Algebra Dimension, degree, size, ... Symbolic Integration Factorization of polynomials, matrices, differential operators,...

What can you get from here?

Number of solutions of a system of equations “Location” of the solutions

Carlos D’Andrea Introduction to Computer Algebra Symbolic Integration Factorization of polynomials, matrices, differential operators,...

What can you get from here?

Number of solutions of a system of equations “Location” of the solutions Dimension, degree, size, ...

Carlos D’Andrea Introduction to Computer Algebra Factorization of polynomials, matrices, differential operators,...

What can you get from here?

Number of solutions of a system of equations “Location” of the solutions Dimension, degree, size, ... Symbolic Integration

Carlos D’Andrea Introduction to Computer Algebra matrices, differential operators,...

What can you get from here?

Number of solutions of a system of equations “Location” of the solutions Dimension, degree, size, ... Symbolic Integration Factorization of polynomials,

Carlos D’Andrea Introduction to Computer Algebra differential operators,...

What can you get from here?

Number of solutions of a system of equations “Location” of the solutions Dimension, degree, size, ... Symbolic Integration Factorization of polynomials, matrices,

Carlos D’Andrea Introduction to Computer Algebra What can you get from here?

Number of solutions of a system of equations “Location” of the solutions Dimension, degree, size, ... Symbolic Integration Factorization of polynomials, matrices, differential operators,...

Carlos D’Andrea Introduction to Computer Algebra Find “the condition” on a10, a11, a20, a21 so that the system  a10x0 + a11x1 = 0 a20x0 + a21x1 = 0 has a solution different from (0, 0)

“Triangulation” = Elimination of variables

Carlos D’Andrea Introduction to Computer Algebra “Triangulation” = Elimination of variables

Find “the condition” on a10, a11, a20, a21 so that the system  a10x0 + a11x1 = 0 a20x0 + a21x1 = 0 has a solution different from (0, 0)

Carlos D’Andrea Introduction to Computer Algebra For a = (a1,..., aN ), k, n ∈ N let f1(a, x1,..., xn),..., fk (a, x1,..., xn) ∈ K[a, x1,..., xn]. Find conditions on a such that   f1(a, x1,..., xn) = 0   f2(a, x1,..., xn) = 0 . . .  . . .   fk (a, x1,..., xn) = 0 has a solution

The General System with Parameters

Carlos D’Andrea Introduction to Computer Algebra The General System with Parameters

For a = (a1,..., aN ), k, n ∈ N let f1(a, x1,..., xn),..., fk (a, x1,..., xn) ∈ K[a, x1,..., xn]. Find conditions on a such that   f1(a, x1,..., xn) = 0   f2(a, x1,..., xn) = 0 . . .  . . .   fk (a, x1,..., xn) = 0 has a solution

Carlos D’Andrea Introduction to Computer Algebra There is not necessarily a “closed” condition Tools from are needed!

Solution?

Depends on the ground field

Carlos D’Andrea Introduction to Computer Algebra Tools from Geometry are needed!

Solution?

Depends on the ground field There is not necessarily a “closed” condition

Carlos D’Andrea Introduction to Computer Algebra Solution?

Depends on the ground field There is not necessarily a “closed” condition Tools from Geometry are needed!

Carlos D’Andrea Introduction to Computer Algebra Conditions?

The “simplest” example k = n = 1, 2 d a0 + a1x1 + a2x1 + ... + ad x1 = 0

Carlos D’Andrea Introduction to Computer Algebra The “simplest” example k = n = 1, 2 d a0 + a1x1 + a2x1 + ... + ad x1 = 0 Conditions?

Carlos D’Andrea Introduction to Computer Algebra   a11x1 + ... + a1nxn = 0   a21x1 + ... + a2nxn = 0 . . .  . . .   ak1x1 + ... + aknxn = 0 with k ≥ n  Conditions: all maximal minors of aij 1≤i≤k, 1≤j≤n equal to zero

Known and “universal” examples

Carlos D’Andrea Introduction to Computer Algebra  Conditions: all maximal minors of aij 1≤i≤k, 1≤j≤n equal to zero

Known and “universal” examples

  a11x1 + ... + a1nxn = 0   a21x1 + ... + a2nxn = 0 . . .  . . .   ak1x1 + ... + aknxn = 0 with k ≥ n

Carlos D’Andrea Introduction to Computer Algebra Known and “universal” examples

  a11x1 + ... + a1nxn = 0   a21x1 + ... + a2nxn = 0 . . .  . . .   ak1x1 + ... + aknxn = 0 with k ≥ n  Conditions: all maximal minors of aij 1≤i≤k, 1≤j≤n equal to zero

Carlos D’Andrea Introduction to Computer Algebra   a11v1 + ... + a1nvn = λv1   a21v1 + ... + a2nvn = λv2 . . .  . . .   an1v1 + ... + annvn = λvn

Condition: CA(λ) = 0

Another Classical Example

Carlos D’Andrea Introduction to Computer Algebra Condition: CA(λ) = 0

Another Classical Example   a11v1 + ... + a1nvn = λv1   a21v1 + ... + a2nvn = λv2 . . .  . . .   an1v1 + ... + annvn = λvn

Carlos D’Andrea Introduction to Computer Algebra Another Classical Example   a11v1 + ... + a1nvn = λv1   a21v1 + ... + a2nvn = λv2 . . .  . . .   an1v1 + ... + annvn = λvn

Condition: CA(λ) = 0

Carlos D’Andrea Introduction to Computer Algebra V ⊂ KN × Kn

↓ π1 ↓ π1

N π1(V ) ⊂ K

The set of conditions is π1(V), not necessarily described by zeroes of polynomials

Geometry

V = {(a, x1,..., xn): f1(a, x1,..., xn) = 0,... fk (a, x1,..., xn) = 0}

Carlos D’Andrea Introduction to Computer Algebra The set of conditions is π1(V), not necessarily described by zeroes of polynomials

Geometry

V = {(a, x1,..., xn): f1(a, x1,..., xn) = 0,... fk (a, x1,..., xn) = 0} V ⊂ KN × Kn

↓ π1 ↓ π1

N π1(V ) ⊂ K

Carlos D’Andrea Introduction to Computer Algebra Geometry

V = {(a, x1,..., xn): f1(a, x1,..., xn) = 0,... fk (a, x1,..., xn) = 0} V ⊂ KN × Kn

↓ π1 ↓ π1

N π1(V ) ⊂ K

The set of conditions is π1(V), not necessarily described by zeroes of polynomials

Carlos D’Andrea Introduction to Computer Algebra V ⊂ KN × Pn

↓ π1 ↓ π1

N π1(V ) ⊂ K

π1(V ) = {p1(a) = 0,..., p`(a) = 0}

Elimination Theorem

V = {(a, x0, x1,..., xn): f1(a, x0, x1,..., xn) = 0,... fk (a, x0, x1,..., xn) = 0}

Carlos D’Andrea Introduction to Computer Algebra π1(V ) = {p1(a) = 0,..., p`(a) = 0}

Elimination Theorem

V = {(a, x0, x1,..., xn): f1(a, x0, x1,..., xn) = 0,... fk (a, x0, x1,..., xn) = 0}

V ⊂ KN × Pn

↓ π1 ↓ π1

N π1(V ) ⊂ K

Carlos D’Andrea Introduction to Computer Algebra Elimination Theorem

V = {(a, x0, x1,..., xn): f1(a, x0, x1,..., xn) = 0,... fk (a, x0, x1,..., xn) = 0}

V ⊂ KN × Pn

↓ π1 ↓ π1

N π1(V ) ⊂ K

π1(V ) = {p1(a) = 0,..., p`(a) = 0}

Carlos D’Andrea Introduction to Computer Algebra V ⊂ KN × Pn

↓ π1 ↓ π1

N π1(V ) ⊂ K

π1(V ) = {p1(a) = 0}

“One” Condition

V = {(a, x0, x1,..., xn): f1(a, x0, x1,..., xn) = 0,..., fn+1(a, x0, x1,..., xn) = 0}

Carlos D’Andrea Introduction to Computer Algebra π1(V ) = {p1(a) = 0}

“One” Condition

V = {(a, x0, x1,..., xn): f1(a, x0, x1,..., xn) = 0,..., fn+1(a, x0, x1,..., xn) = 0}

V ⊂ KN × Pn

↓ π1 ↓ π1

N π1(V ) ⊂ K

Carlos D’Andrea Introduction to Computer Algebra “One” Condition

V = {(a, x0, x1,..., xn): f1(a, x0, x1,..., xn) = 0,..., fn+1(a, x0, x1,..., xn) = 0}

V ⊂ KN × Pn

↓ π1 ↓ π1

N π1(V ) ⊂ K

π1(V ) = {p1(a) = 0}

Carlos D’Andrea Introduction to Computer Algebra p1(a) = det(aij)

Example 1

 a00x0 + a01x1 + ... + a0nxn = 0   a10x0 + a11x1 + ... + a1nxn = 0 . . .   an0x0 + an1x1 + ... + annxn = 0

Carlos D’Andrea Introduction to Computer Algebra Example 1

 a00x0 + a01x1 + ... + a0nxn = 0   a10x0 + a11x1 + ... + a1nxn = 0 . . .   an0x0 + an1x1 + ... + annxn = 0

p1(a) = det(aij)

Carlos D’Andrea Introduction to Computer Algebra   a10 a11 ... a1d1 0 ... 0

 0 a10 ... a1d1−1 a1d1 ... 0   . . .   ......   ......   0 0 ... a ...... a  p (a) = det  10 1d1  1  a a ... a 0 ... 0   20 21 2d2   0 a ... a a ... 0   20 2d2−1 2d2   . . . . .   ...... 

0 0 ... a20 ...... a2d2

Example 2

 d1 d1−1 d1 f1 = a10x0 + a11x0 x1 + ... + a1d1 x1 d2 d2−1 d2 f2 = a20x0 + a21x0 x1 + ... + a2d2 x1

Carlos D’Andrea Introduction to Computer Algebra Example 2

 d1 d1−1 d1 f1 = a10x0 + a11x0 x1 + ... + a1d1 x1 d2 d2−1 d2 f2 = a20x0 + a21x0 x1 + ... + a2d2 x1   a10 a11 ... a1d1 0 ... 0

 0 a10 ... a1d1−1 a1d1 ... 0   . . .   ......   ......   0 0 ... a ...... a  p (a) = det  10 1d1  1  a a ... a 0 ... 0   20 21 2d2   0 a ... a a ... 0   20 2d2−1 2d2   . . . . .   ...... 

0 0 ... a20 ...... a2d2 Carlos D’Andrea Introduction to Computer Algebra Res(f1, f2,..., fn+1)

Example 3

 P α0 αn f1 = a1,α ,...,α x0 ... xn  α0+...+αn=d1 0 n  P α0 αn  f2 = α +...+α =d a2,α0,...,αn x0 ... xn . 0 n 2 .   f = P a x α0 ... x αn n+1 α0+...+αn=dn+1 n+1,α0,...,αn 0 n

Carlos D’Andrea Introduction to Computer Algebra Example 3

 P α0 αn f1 = a1,α ,...,α x0 ... xn  α0+...+αn=d1 0 n  P α0 αn  f2 = α +...+α =d a2,α0,...,αn x0 ... xn . 0 n 2 .   f = P a x α0 ... x αn n+1 α0+...+αn=dn+1 n+1,α0,...,αn 0 n

Res(f1, f2,..., fn+1)

Carlos D’Andrea Introduction to Computer Algebra Determinants Cramer’s rule u-resultants Gauss elimination Gr¨obnerBases Triangulation Triangular systems . .

Effective tools

Linear Polynomial

Carlos D’Andrea Introduction to Computer Algebra Cramer’s rule u-resultants Gauss elimination Gr¨obnerBases Triangulation Triangular systems . .

Effective tools

Linear Polynomial Determinants Resultants

Carlos D’Andrea Introduction to Computer Algebra Gauss elimination Gr¨obnerBases Triangulation Triangular systems . .

Effective tools

Linear Polynomial Determinants Resultants Cramer’s rule u-resultants

Carlos D’Andrea Introduction to Computer Algebra Triangulation Triangular systems . .

Effective tools

Linear Polynomial Determinants Resultants Cramer’s rule u-resultants Gauss elimination Gr¨obnerBases

Carlos D’Andrea Introduction to Computer Algebra . .

Effective tools

Linear Polynomial Determinants Resultants Cramer’s rule u-resultants Gauss elimination Gr¨obnerBases Triangulation Triangular systems

Carlos D’Andrea Introduction to Computer Algebra Effective tools

Linear Polynomial Determinants Resultants Cramer’s rule u-resultants Gauss elimination Gr¨obnerBases Triangulation Triangular systems . .

Carlos D’Andrea Introduction to Computer Algebra   f1(x1,..., xn) = 0   f2(x1,..., xn) = 0 The size of the solutions of . . .  . . .   fn(x1,..., xn) = 0 where size of fi = (d, L) is bounded by and generically equal to

d n, nd n−1L

How “efficient” is all this?

Carlos D’Andrea Introduction to Computer Algebra where size of fi = (d, L) is bounded by and generically equal to

d n, nd n−1L

How “efficient” is all this?

  f1(x1,..., xn) = 0   f2(x1,..., xn) = 0 The size of the solutions of . . .  . . .   fn(x1,..., xn) = 0

Carlos D’Andrea Introduction to Computer Algebra is bounded by and generically equal to

d n, nd n−1L

How “efficient” is all this?

  f1(x1,..., xn) = 0   f2(x1,..., xn) = 0 The size of the solutions of . . .  . . .   fn(x1,..., xn) = 0 where size of fi = (d, L)

Carlos D’Andrea Introduction to Computer Algebra How “efficient” is all this?

  f1(x1,..., xn) = 0   f2(x1,..., xn) = 0 The size of the solutions of . . .  . . .   fn(x1,..., xn) = 0 where size of fi = (d, L) is bounded by and generically equal to

d n, nd n−1L

Carlos D’Andrea Introduction to Computer Algebra Carlos D’Andrea Introduction to Computer Algebra And moreover: Complexity of Computing Gr¨obnerbases is doubly exponential

The output is already exponential!!!

Carlos D’Andrea Introduction to Computer Algebra Complexity of Computing Gr¨obnerbases is doubly exponential

The output is already exponential!!!

And moreover:

Carlos D’Andrea Introduction to Computer Algebra The output is already exponential!!!

And moreover: Complexity of Computing Gr¨obnerbases is doubly exponential

Carlos D’Andrea Introduction to Computer Algebra Probabilistic algorithms Computations “over the Reals” Homotopy methods ...

Changing the model

Carlos D’Andrea Introduction to Computer Algebra Computations “over the Reals” Homotopy methods ...

Changing the model

Probabilistic algorithms

Carlos D’Andrea Introduction to Computer Algebra Homotopy methods ...

Changing the model

Probabilistic algorithms Computations “over the Reals”

Carlos D’Andrea Introduction to Computer Algebra Changing the model

Probabilistic algorithms Computations “over the Reals” Homotopy methods ...

Carlos D’Andrea Introduction to Computer Algebra is a Random Access Machine with registers that can store arbitrary real numbers and that can compute rational functions over reals at unit cost

Computing over the reals: BSS-machine

Carlos D’Andrea Introduction to Computer Algebra with registers that can store arbitrary real numbers and that can compute rational functions over reals at unit cost

Computing over the reals: BSS-machine is a Random Access Machine

Carlos D’Andrea Introduction to Computer Algebra and that can compute rational functions over reals at unit cost

Computing over the reals: BSS-machine is a Random Access Machine with registers that can store arbitrary real numbers

Carlos D’Andrea Introduction to Computer Algebra Computing over the reals: BSS-machine is a Random Access Machine with registers that can store arbitrary real numbers and that can compute rational functions over reals at unit cost

Carlos D’Andrea Introduction to Computer Algebra is there an algorithm which computes an approximate solution of a system of polynomials in time polynomial on the average, in the size of the input ?

Steve Smale’s 17th’s problem (1998)

Carlos D’Andrea Introduction to Computer Algebra Steve Smale’s 17th’s problem (1998)

is there an algorithm which computes an approximate solution of a system of polynomials in time polynomial on the average, in the size of the input ? Carlos D’Andrea Introduction to Computer Algebra Start with an “easy” system “Chase” the roots with an homotopy + Newton’s method

Homotopies

Carlos D’Andrea Introduction to Computer Algebra “Chase” the roots with an homotopy + Newton’s method

Homotopies

Start with an “easy” system

Carlos D’Andrea Introduction to Computer Algebra Homotopies

Start with an “easy” system “Chase” the roots with an homotopy + Newton’s method

Carlos D’Andrea Introduction to Computer Algebra Irreducible components Multiplicities Irreducible decomposition Dimension ...

Numerical

By using homotopies, one can compute

Carlos D’Andrea Introduction to Computer Algebra Multiplicities Irreducible decomposition Dimension ...

Numerical Algebraic Geometry

By using homotopies, one can compute Irreducible components

Carlos D’Andrea Introduction to Computer Algebra Irreducible decomposition Dimension ...

Numerical Algebraic Geometry

By using homotopies, one can compute Irreducible components Multiplicities

Carlos D’Andrea Introduction to Computer Algebra Dimension ...

Numerical Algebraic Geometry

By using homotopies, one can compute Irreducible components Multiplicities Irreducible decomposition

Carlos D’Andrea Introduction to Computer Algebra ...

Numerical Algebraic Geometry

By using homotopies, one can compute Irreducible components Multiplicities Irreducible decomposition Dimension

Carlos D’Andrea Introduction to Computer Algebra Numerical Algebraic Geometry

By using homotopies, one can compute Irreducible components Multiplicities Irreducible decomposition Dimension ...

Carlos D’Andrea Introduction to Computer Algebra Popular software in Computer Algebra

Maple Mathematica Bertini CoCoA Macaulay2 SageMath Singular

Carlos D’Andrea Introduction to Computer Algebra Developed by MapleSoft Core Team: Waterloo (Canada) http://www.maplesoft.com/

Maple

Carlos D’Andrea Introduction to Computer Algebra Core Team: Waterloo (Canada) http://www.maplesoft.com/

Maple

Developed by MapleSoft

Carlos D’Andrea Introduction to Computer Algebra http://www.maplesoft.com/

Maple

Developed by MapleSoft Core Team: Waterloo (Canada)

Carlos D’Andrea Introduction to Computer Algebra Maple

Developed by MapleSoft Core Team: Waterloo (Canada) http://www.maplesoft.com/

Carlos D’Andrea Introduction to Computer Algebra Developed by Wolfram Core Team: Champaign, IL (USA) https://www.wolfram.com/mathematica/

Mathematica

Carlos D’Andrea Introduction to Computer Algebra Core Team: Champaign, IL (USA) https://www.wolfram.com/mathematica/

Mathematica

Developed by Wolfram

Carlos D’Andrea Introduction to Computer Algebra https://www.wolfram.com/mathematica/

Mathematica

Developed by Wolfram Core Team: Champaign, IL (USA)

Carlos D’Andrea Introduction to Computer Algebra Mathematica

Developed by Wolfram Core Team: Champaign, IL (USA) https://www.wolfram.com/mathematica/

Carlos D’Andrea Introduction to Computer Algebra Free software Core Team: University of Notre Dame (USA) https://bertini.nd.edu/

Bertini

Carlos D’Andrea Introduction to Computer Algebra Core Team: University of Notre Dame (USA) https://bertini.nd.edu/

Bertini

Free software

Carlos D’Andrea Introduction to Computer Algebra https://bertini.nd.edu/

Bertini

Free software Core Team: University of Notre Dame (USA)

Carlos D’Andrea Introduction to Computer Algebra Bertini

Free software Core Team: University of Notre Dame (USA) https://bertini.nd.edu/

Carlos D’Andrea Introduction to Computer Algebra Free software Core Team: University of Genoa (Italy) http://cocoa.dima.unige.it/

CoCoA

Carlos D’Andrea Introduction to Computer Algebra Core Team: University of Genoa (Italy) http://cocoa.dima.unige.it/

CoCoA

Free software

Carlos D’Andrea Introduction to Computer Algebra http://cocoa.dima.unige.it/

CoCoA

Free software Core Team: University of Genoa (Italy)

Carlos D’Andrea Introduction to Computer Algebra CoCoA

Free software Core Team: University of Genoa (Italy) http://cocoa.dima.unige.it/

Carlos D’Andrea Introduction to Computer Algebra Free software Core Team: University of Illinois at Urbana-Champaign (USA) http://www.math.uiuc.edu/Macaulay2/

Macaulay2

Carlos D’Andrea Introduction to Computer Algebra Core Team: University of Illinois at Urbana-Champaign (USA) http://www.math.uiuc.edu/Macaulay2/

Macaulay2

Free software

Carlos D’Andrea Introduction to Computer Algebra http://www.math.uiuc.edu/Macaulay2/

Macaulay2

Free software Core Team: University of Illinois at Urbana-Champaign (USA)

Carlos D’Andrea Introduction to Computer Algebra Macaulay2

Free software Core Team: University of Illinois at Urbana-Champaign (USA) http://www.math.uiuc.edu/Macaulay2/

Carlos D’Andrea Introduction to Computer Algebra Free open-source Core Team: Worlwide http://www.sagemath.org/

SageMath

Carlos D’Andrea Introduction to Computer Algebra Core Team: Worlwide http://www.sagemath.org/

SageMath

Free open-source

Carlos D’Andrea Introduction to Computer Algebra http://www.sagemath.org/

SageMath

Free open-source Core Team: Worlwide

Carlos D’Andrea Introduction to Computer Algebra SageMath

Free open-source Core Team: Worlwide http://www.sagemath.org/

Carlos D’Andrea Introduction to Computer Algebra Free software Core Team: University of Kaiserlautern (Germany) https://www.singular.uni-kl.de/

Singular

Carlos D’Andrea Introduction to Computer Algebra Core Team: University of Kaiserlautern (Germany) https://www.singular.uni-kl.de/

Singular

Free software

Carlos D’Andrea Introduction to Computer Algebra https://www.singular.uni-kl.de/

Singular

Free software Core Team: University of Kaiserlautern (Germany)

Carlos D’Andrea Introduction to Computer Algebra Singular

Free software Core Team: University of Kaiserlautern (Germany) https://www.singular.uni-kl.de/

Carlos D’Andrea Introduction to Computer Algebra To Learn More about this Area...

Carlos D’Andrea Introduction to Computer Algebra To Learn More about this Area...

Carlos D’Andrea Introduction to Computer Algebra To Learn More about this Area...

Carlos D’Andrea Introduction to Computer Algebra To Learn More about this Area...

Carlos D’Andrea Introduction to Computer Algebra To Learn More about this Area...

Carlos D’Andrea Introduction to Computer Algebra To Learn More about this Area...

Carlos D’Andrea Introduction to Computer Algebra To Learn More about this Area...

Carlos D’Andrea Introduction to Computer Algebra To Learn More about this Area...

Carlos D’Andrea Introduction to Computer Algebra To publish in this area

Carlos D’Andrea Introduction to Computer Algebra To publish in this area

Carlos D’Andrea Introduction to Computer Algebra To publish in this area

Carlos D’Andrea Introduction to Computer Algebra To publish in this area

Carlos D’Andrea Introduction to Computer Algebra To publish in this area

Carlos D’Andrea Introduction to Computer Algebra To publish in this area

Carlos D’Andrea Introduction to Computer Algebra To publish in this area

Carlos D’Andrea Introduction to Computer Algebra To publish in this area

Carlos D’Andrea Introduction to Computer Algebra Thanks!

Carlos D’Andrea Introduction to Computer Algebra