# A problem in the real Schubert calculus

Jonathan Hauenstein and Frank Sottile
Return to the main page for alphaCertified.

We use alphaCertified to study one geometric problem from the point of view of some conjectures in the real Schubert calculus. General results in the Schubert calculus of enumerative geometry tell us that there will be exactly 126 four-dimensional linear subspaces of C8 that meet each of eight general three-dimensional linear subspaces nontrivially, in a one-dimensional linear subspace. The Shapiro Conjecture [S00] (now Theorem of Mukhin, Tarasov, and Varchenko[MTV]) asserts that if the three-planes are chosen in a specified way, then all solution planes will be real. The specified way is a follows. Let γ(t) be the (parametrized) moment curve in C8
γ(t) = (1, t, t1, t2, t3, t4, t5, t6, t7).
The three-plane F3(t) that osculates γ at a point γ(t) is the three-plane spanned by this vector γ(t), as well as its first and second derivatives. Then our three-planes are the osculating three-planes F3(ti) for eight real numbers t0, t1, t2, t3, t4, t5, t6, t7.
We also tested closely related problems, where the eight numbers t0, …, t7 are not real, but are the roots of a polynomial with real coefficients. That is, some number a are real and the rest come in b complex conjugate pairs, where a+2b=8. Write this in short hand as arbc. The frequency table below presents the results of our investigation, which was intended to see if there was a lower bound on the number of real solutions, depending on the real scheme (arbc) of the points t0, …, t7. It does appear to be the case that there are non-trivial lower bounds for this Schubert problem. This is the largest problem that was investigated of this type (and the only one using numerical software), here is more on this question.

(W)8 = 126 on Gr(4;8)
type | # real solutions
| 0 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 | 22 | 24 | 26 | 28 | 30 | 32 | 34 | 36 | 38 | 40 | 42 | 44 | 46 | 48 | 50 | 52 | 54 | 56 | 58 | 60 | 62 | 64 | 66 | 68 | 70 | 72 | 74 | 76 | 78 | 80 | 82 | 84 | 86 | 88 | 90 | 92 | 94 | 96 | 98 | 100 | 102 | 104 | 106 | 108 | 110 | 112 | 114 | 116 | 118 | 120 | 122 | 124 | 126 | total
8r0c |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | 1000 | 1000
6r1c |  |  |  | 6 | 6 | 10 | 88 | 616 | 830 | 554 | 1888 | 1832 | 1747 | 2916 | 2744 | 4160 | 3187 | 3589 | 2732 | 2383 | 1846 | 3150 | 1409 | 5135 | 1222 | 917 | 814 | 675 | 681 | 697 | 930 | 868 | 2020 | 671 | 648 | 1023 | 236 | 408 | 734 | 262 | 380 | 346 | 196 | 162 | 270 | 155 | 110 | 416 | 100 | 77 | 174 | 61 | 72 | 103 | 63 | 56 | 42 | 133 | 52 | 50 | 182 | 76 | 69 | 2021 | 59000
4r2c |  |  |  |  |  | 2614 | 3771 | 2497 | 1512 | 3285 | 1579 | 1378 | 1074 | 974 | 567 | 848 | 523 | 650 | 338 | 268 | 235 | 377 | 183 | 239 | 105 | 89 | 72 | 74 | 83 | 64 | 69 | 55 | 64 | 46 | 41 | 44 | 23 | 23 | 31 | 13 | 14 | 20 | 7 | 11 | 14 | 3 | 10 | 15 | 4 | 3 | 8 | 6 | 5 | 6 | 3 | 2 | 1 | 9 | 4 | 1 | 3 | 4 | 1 | 38 | 24000
2r3c |  |  |  |  |  | 8896 | 4479 | 1667 | 1620 | 1079 | 721 | 2586 | 595 | 478 | 215 | 292 | 188 | 163 | 106 | 63 | 56 | 62 | 27 | 55 | 29 | 16 | 16 | 11 | 15 | 3 | 4 | 7 | 6 | 7 | 7 | 6 | 2 | 3 | 5 | 1 | 1 | 2 | 2 | 1 | 1 |  |  | 1 | 2 | 1 |  |  |  |  | 1 |  |  | 1 |  |  | 1 |  |  |  | 23500
0r4c |  |  |  |  |  |  |  |  |  |  |  | 19134 | 1585 | 606 | 287 | 361 | 158 | 123 | 32 | 35 | 28 | 40 | 28 | 20 | 7 | 4 | 12 | 2 | 8 | 1 | 6 | 2 | 4 | 1 | 1 | 1 | 1 | 2 | 3 | 2 | 1 | 1 |  | 1 |  |  |  |  |  |  |  | 1 |  | 1 |  |  |  |  |  |  |  |  |  | 1 | 23500

Directions
Before you begin, you will need to have a working binary of Bertini and alphaCertified on your machine along with the GMP library.

- Solve for a random complex instance by running Bertini with input file ShapiroOrig.bertini.
  `>: bertini ShapiroOrig.bertini`
  Using a single processor, this computation takes many hours.
  The output file of interest is nonsingular_solutions, which will be the start points for the parameter homotopy.
- Rename nonsingular_solutions as start. These will be the start points for the parameter homotopy used to solve the real instances.
  `>: mv nonsingular_solutions start`
- Set the number of real points to utilize in ShapiroInstance.c++ by setting the preprocessor directive NUMREAL to the number of real points to utilize (that is, the a in arbc).
- Create the executable Shapiro.out by compiling ShapiroInstance.c++ using the header file Complex.h. This executable creates the input files needed to solve for a random instance.
  `>: g++ -o Shapiro.out ShapiroInstance.c++ -lgmp`
- Run Shapiro.out. This creates Shapiro.bertini, which is a parameter homotopy to compute numerical solutions for a random instance, and Shapiro.poly, which is the polynomial system used to certify the solutions. For example, Shapiro.bertini and Shapiro.poly.
  `>: ./Shapiro.out`
- Use the parameter homotopy described in Shapiro.bertini to compute the numerical solutions.
  `>: bertini Shapiro.bertini`
  The output file of interest is nonsingular_solutions, which is part of the input for alphaCertified. Here is nonsingular_solutions for the running example.
- We now use alphaCertified to certify the number of real solutions. This is accomplished by running alphaCertified with the polynomial system described in Shapiro.poly using the points contained in nonsingular_solutions created by Bertini in the last step. The configurations in settings tell alphaCertified to utilize 256-bit precision. We recommend capturing the output for perusal.
  `>: alphaCertified Shapiro.poly nonsingular_solutions settings > output`
- Here is output for the running example. Perusing it, we see that alphaCertified certified that 16 of the solutions are real.
- Bertini and alphaCertified both create a halo of small files, which may be removed using the short shell script scour.sh.
  `>: sh scour.sh`

Assuming that we have the start points and created Shapiro.out, the following bash session computes and certifies the solutions for a random instance.

    >: ./Shapiro.out
    >: bertini Shapiro.bertini
    >: alphaCertified Shapiro.poly nonsingular_solutions settings > output
    >: sh scour.sh

[MTV] | E. Mukhin, V. Tarasov, A. Varchenko, The B and M. Shapiro conjecture in real algebraic geometry and the Bethe ansatz, Annals of Mathematics, 170 (2009), 863—991.
[S00] | F. Sottile, Real Schubert Calculus: Polynomial systems and a conjecture of Shapiro and Shapiro, Experimental Mathematics, 9 (2000), 161—182.
[S10] | F. Sottile, Frontiers of Reality in Schubert Calculus, Bulletin of the American Mathematical Society, 47 (2010), 31—71.

Return to the main page for alphaCertified.

Last modified: Wed Nov 3 18:28:32 CDT 2010