Interpolation polynomiale clairsemée super rapide
J’ai commencé un nouveau projet de recherche dans le but de mettre en œuvre un nouvel algorithme qui interpole un polynôme F de degré D dans N variables avec T termes non nuls.
On sait depuis longtemps comment interpoler un polynôme F(x) dans une variable de degré D à partir des valeurs D+1 de F dans le temps O( D log D). L’outil pour ce faire est la transformée de Fourier rapide. Il est considéré comme l’une des 10 meilleures réalisations en informatique scientifique du 20e siècle. Il a de nombreuses applications. Mais, si les polynômes sont multivariés, dans N variables, ils sont généralement clairsemés, c’est-à-dire que le nombre de termes T est beaucoup moins que D ^ N, la transformée fast four peut ne pas aider. Sur de tels polynômes, la transformée de Fourier rapide peut prendre beaucoup de temps. Étant donné que les polynômes clairsemés se produisent dans de nombreuses applications pratiques, nous avons besoin de nouveaux algorithmes et de nouveaux outils. Beaucoup de chercheurs, à commencer par Richard Zippel dans sa thèse de doctorat en 1979, ont développé des algorithmes qui sont efficaces pour les polynômes clairsemés.
Nous avons un nouvel algorithme qui théoriquement, est beaucoup mieux que l’algorithme de Zippel, et les autres algorithmes dans la littérature. Théoriquement, Il combine des idées et des outils de la cryptographie, de l’informatique théorique, de la théorie des nombres et de l’algèbre. Mais pour qu’elle soit rapide, nous devons implémenter une variété d’algorithmes, y compris la transformée de Fourier rapide, pour les polynômes avec des coefficients des entiers modulo un nombre premier où le nombre premier peut être petit, par exemple, 32 bits, moyen, par exemple 64 bits, et grand, c’est-à-dire plus de 64 bits de long. Chaque cas sera important pour des applications pratiques. Nous avons besoin d’aide pour programmer des algorithmes mathématiques pour différents cas et essayer divers algorithmes. La liste des algorithmes nécessaires comprend des algorithmes pour calculer les racines des polynômes sur des corps finis, prendre des logarithmes discrets dans des corps finis où les logarithmes discrets sont traitables, multiplier et diviser les polynômes, calculer les plus grands diviseurs communs de polynômes, etc. L’étudiant participerait à un petit groupe d’étudiants, deux étudiants des cycles supérieurs et un autre étudiant de premier cycle dans un projet de conception et de mise en œuvre d’un logiciel d’algorithmes mathématiques pour les polynômes dans GF(p)[x], c’est-à-dire des polynômes dans une variable dont les coefficients sont des entiers réduits modulo un p premier. Nous aurons besoin d’une bibliothèque 32 bits, d’une bibliothèque 64 bits et d’une bibliothèque 128 bits à quadruple précision. Nous utiliserons le langage de programmation C pour la version finale du code, mais nous essaierons des algorithmes dans Maple.
Voir la description complète du projetDr Michael Monagan
Jaiganesh Balasundaram
Mathématiques
Technologies de l’information et des communications
Université Simon Fraser
Stage de recherche Globalink