groups algorithms programming and free software
play

Groups, Algorithms, Programming and Free Software Steve Linton - PowerPoint PPT Presentation

Groups, Algorithms, Programming and Free Software Steve Linton Centre for Interdisciplinary Research in Computational Algebra University of St Andrews ICMS 2006, Castro Urdiales 1 Groups The mathematician's handle on symmetry Key


  1. Groups, Algorithms, Programming and Free Software Steve Linton Centre for Interdisciplinary Research in Computational Algebra University of St Andrews ICMS 2006, Castro Urdiales 1

  2. Groups ● The mathematician's handle on symmetry ● Key objects in mathematics ● Applications in physics, chemistry, comp. sci.,... ● One of the first areas of pure “There will be positively no internal mathematics to be alterations to be made even if we wish computerised suddenly to switch from calculating the energy levels of the neon atom to the ● here finitely generated and enumeration of groups of order 720.” discrete Alan Turing (1945) ICMS 2006, Castro Urdiales 2

  3. Algorithms – History ● Todd & Coxeter, 1936: “A Practical Method for Enumerating Cosets of a Finite Abstract Group” – formalised a type of computation going back to 1900 ● 1950s – First digital computer experiments ● 1970s – First software systems: Aachen-Sydney Group System, Cayley, CAS, SOGOS, SPAS, Meataxe – Very many algorithms – permutation groups, fp groups, repn theory ● Since then – increasing sophistication in software and algorithms – GAP and M AGMA ICMS 2006, Castro Urdiales 3

  4. Algorithms Examples of the State of the Art 1 ● Given a presentation we can – enumerate millions of cosets of a subgroup ● giving a usable homorphism to a permutation group – search for a confluent rewriting system or a simpler presentation – find homomorphic images as ● p-groups of composition length in the thousands ● nilpotent groups of Hirch length in the dozens ● permutation groups of degree in the dozens ● many types of simple groups ICMS 2006, Castro Urdiales 4

  5. Algorithms Examples of the State of the Art 2 ● We can compute freely with – Permutation groups on up to a million or so points – Finite polycyclicly presented groups with composition length in the thousands – Matrix groups and groups of automorphisms of reasonable size ● This means we can compute with elements, subgroups and homomorphisms: – centre, centralizer, normalizer, composition series, Sylow subgroups, conjugacy classes, image and kernel of mappings, automorphism group, coset reps, ... ICMS 2006, Castro Urdiales 5

  6. Algorithms Not Just Groups ● Modern group theoretic computations often need other things – polynomial arithmetic, Gröbner bases, etc. – Number theory – unit groups, etc. – algebras – Lie algebras for p-groups, associative algebras for representation theory ● Also the approaches and tools developed for group theory can be applied elsewhere – nearrings, semigroups and monoids – Lie algebras for their own sake ICMS 2006, Castro Urdiales 6

  7. Programming About GAP ● Development began in Aachen, mid-80s – Neubüser, Schönert, others ● 1997, Neubüser retired – international project coordinated from St Andrews ● Free Software under GPL ● 165K lines of C, 380K lines of GAP, over 320MB of databases (including over 400 million groups), 2000+ operations, 12000+ methods, 30+ refereed contributed packages. ICMS 2006, Castro Urdiales 7

  8. GAP in Action gap> AvgOrder := Qn: is there a non-trivial group ● whose elements have integer > g->Sum(ConjugacyClasses(g), average order? > c-> Size(c)*Order(Representative(c)))/ Define a function and run over ● > Size(g); some groups from the function( g ) ... end database gap> AvgOrder(MathieuGroup(11)); Database includes ● 53131/7920 polycylically-presented and permutation groups gap> ForAny(AllSmallGroups([2..100]), Note generic operations like ● > g->IsInt(AvgOrder(g))); Size and ConjugacyClasses false Partial answer at the end ● ICMS 2006, Castro Urdiales 8

  9. GAP System Features Available for UNIX, Windows, ● “Read-eval-print” style UI ● MacOS – GAP programming – some features, UNIX (and language is interface MacOS X) only On-line help ● www.gap-system.org ● – all manuals, Text, HTML Current release 4.4.7 (4.5 in ● and PDF views winter 06/07, we hope) – Many examples checked “Drop-in” packages automatically ● – fully integrates code and Read files, load packages, ● save workspace, write output documentation to files, run other programs Fully Open ource ● ICMS 2006, Castro Urdiales 9

  10. Who Uses GAP? ● Estimated 1000+ sites, worldwide ● Math researchers – algebraists – and algebra consumers ● Teachers and students ● 800+ publications citing GAP or reporting work ● Other Researchers where GAP is known to ● Government agencies have been used ICMS 2006, Castro Urdiales 10

  11. How is GAP Used? ● As a desk calculator ● Via Web sites – purely interactive use – experimental, so far ● As a smart ATLAS – Algebra Interactive ● By extending the system – front-end to databases and then interacting with ● Via one-liners it – Interactive programming – my favourite paradigm ● As a programming language for single massive background jobs – rarely ICMS 2006, Castro Urdiales 11

  12. Extend and Interact! “What programs do your users want to run?” ● “What is GAP command to solve my problem?” ● – both of these are usually the wrong question For best results on a hard, or vague, question: ● – write and debug the necessary extensions to GAP ● anything from a few simple functions to a large package – load them into GAP and explore your problem interactively (remember to keep a logfile) – iterate as needed – think whether your functions might be useful to others ICMS 2006, Castro Urdiales 12

  13. Free Software The GAP Community Developers ● – volunteers, driven by own research but willing to go “the extra mile” – a few people paid to do some jobs ● hard to get funding for “infrastructure” – St Andrews, Aachen, Fort Collins, Braunschweig,...... – CVS mailing lists, occasional meetings User support ● – mailing lists, Web site – support team Package authors, and referees, etc. ● ICMS 2006, Castro Urdiales 13

  14. Sharing GAP code ● We run a mailing list, the GAP forum on which people can share experiences ● We will accept (almost any) GAP code for the “deposited contributions” section on the Website ● Packages that use the standard interface are easy to install, load and upgrade ● We operate a refereeing service for these packages – to offer a more thoroughly checked set of “accepted packages” – to provide recognition to authors for the work involved ICMS 2006, Castro Urdiales 14

  15. Refereeing Software 1 ● Refereeing GAP packages has proved valuable – gives authors a reason to write the manual – many packages improve dramatically ● sometimes more like mentoring than refereeing – authors seem to value the recognition ● less clear about authors “bosses”, RAE, etc. ICMS 2006, Castro Urdiales 15

  16. Refereeing 2 ● But refereeing is not always easy! – hard to find qualified referees ● sometimes need a “subject” referee and a “GAP” referee – hard to define what is “acceptable” ● a useful and competent, but not original, implementation of published algorithms? ● an implementation of some new object with definitions and “obvious” methods, but no non-trivial algorithms? ● an improved help or documentation mechanism? ● a database and simple interface functions? ICMS 2006, Castro Urdiales 16

  17. Other Package Issues ● Maintenance – we have lost touch with some package authors. At the moment we do minimum necessary maintenance. ● Licensing – Unclear whether packages MUST be GPL – Some authors didn't or don't make clear their licensing ● Namespace – increasing problem of collisions between packages ICMS 2006, Castro Urdiales 17

  18. GAP and Other Software ● Many existing packages link GAP to other programs – specialized stand-alones for specific group theoretic computations ● ACE, anupq, nq, carat, nauty – General packages in related fields ● KANT – Algebraic number theory ● Singular – Algebraic Geometry – OpenMath package support for future links ● We see this as increasingly important ICMS 2006, Castro Urdiales 18

  19. SCIEnce Project ● European Research Infrastructure project ● Improve connections (software and human) between systems ● Explore symbolic computation on “Grids” ● Promote symbolic computation ● visitor program at RISC ICMS 2006, Castro Urdiales 19

  20. GAP and Free Software Components ● We'd like to avoid reinventing the wheel – use GMP, Jenkins hash, Born gc, etc. ● How to manage build process and version choice? – have users on Windows, MasOS, Linux and “legacy UNIX” ICMS 2006, Castro Urdiales 20

Recommend


More recommend