Represent a Schubert variety in the Grassmannian $Gr(k,n)$ by a condition $c$ either a partition or a bracket (see partition2bracket for details) and a flag $F$ (given as an $n \times n$ matrix). The codimension of the Schubert variety is $|c|$. A Schubert problem is a list of Schubert varieties, whose codimention add up to $k(n-k)$, which is the dimension of the Grassmannian.
The function solveSchubertProblem solves the given instance of the Schubert problem by the Littlewood-Richardson homotopy. This algorithm uses homotopy continuation to track solutions of a simpler problem to a general problem according to the specializations of the geometric Littlewood-Richardson.
This algorithm is described in the paper: Leykin, Martin del Campo, Sottile, Vakil, Verschelde "Numerical Schubert Calculus via the Littlewood-Richardson homotopy algorithm". Math. Comp., 90 (2021), 1407-1433. https://arxiv.org/abs/1802.00984.
For instance, consider the Schubert problem {2,1}$^3$ in $Gr(3,6)$, which has two solutions
i1 : k = 3; |
i2 : n = 6; |
i3 : SchPblm = { ({2,1}, random(CC^6,CC^6)), ({2,1}, random(CC^6,CC^6)), ({2,1}, random(CC^6,CC^6)) }; |
Its solutions to an instance given by random flags
i4 : solveSchubertProblem(SchPblm, k,n) o4 = {| -.973546-.443329ii -.193482-.957391ii -.460977-.267623ii |, | | .153343-.291038ii .339479-1.30008ii -.577303-.171329ii | | | .326239-.770744ii .120186-1.46205ii -.0769985-.323186ii | | | -.451322-.514227ii -.144874-.987789ii -.589493-.209825ii | | | -.0525679-.692383ii .364061-.704785ii -.325325-.185011ii | | | -.942864-.594173ii -.826353-.203654ii -.236865+.691374ii | | ------------------------------------------------------------------------ -5.47422+1.18674ii -.912706-1.64344ii -.590144+.126046ii |} -2.80395-.714508ii -.793467-2.20255ii -.016225+.340982ii | -2.29873-2.34724ii -.905617-2.59114ii .0951404+.355536ii | -3.36313+2.14592ii -.703202-1.58202ii -.375349+.205204ii | -3.91243-.845457ii -.528411-.900447ii -.187047+.545512ii | -4.19554+1.93172ii -1.11528-.480829ii .19859+1.24706ii | o4 : List |
The Schubert conditions must be either all partitions or all brackets.
The object solveSchubertProblem is a method function with options.