Polymake - Polymake
![]() | |
![]() | |
Původní autoři | Ewgenij Gawrilow a Michael Joswig |
---|---|
První vydání | 1989 |
Stabilní uvolnění | 3.4 / 15. dubna 2019 |
Úložiště | ![]() |
Napsáno | C ++, Perl |
Operační systém | Linux, Mac |
K dispozici v | Angličtina |
Licence | GNU General Public License |
webová stránka | polymake |
Polymake je software pro algoritmické léčba konvexní mnohostěn.[1]
Ačkoli primárně nástrojem ke studiu kombinatorika a geometrie konvexní polytopes a mnohostěn, je nyní také schopen se vypořádat s zjednodušené komplexy, matroidy, mnohostěnní fanoušci, grafy, tropický předměty, torické odrůdy a další předměty.
Polymake byl citován ve více než 100 posledních článcích indexovaných podle Zentralblatt MATH jak je patrné z jeho záznamu v databázi swMATH.[2]
Speciální funkce
modulární
Polymake byl původně navržen jako výzkumný nástroj pro studium aspektů polytopů.[3] Jako takový používá polymake mnoho softwarových balíčků třetích stran pro specializované výpočty, čímž poskytuje společné rozhraní a most mezi různými nástroji. Uživatel může snadno (a nevědomky) přepínat mezi použitím různých softwarových balíčků v procesu výpočtu vlastností mnohostěnu.[4]
výpočet založený na pravidlech
Polymake interně používá model server-klient, kde server uchovává informace o každém objektu (např. Mnohostěn) a klienti odesílají požadavky na výpočet vlastností. Úkolem serveru je určit, jak pomocí systému založeného na pravidlech dokončit každý požadavek z již známých informací o každém objektu.[5] Například existuje mnoho pravidel, jak vypočítat aspekty mnohostěnu. Fazety lze vypočítat z popisu vrcholů mnohostěnů a z (možná redundantního) popisu nerovností. Polymake vytváří graf závislostí popisující kroky ke zpracování každého požadavku a vybere nejlepší cestu pomocí algoritmu typu Dijkstra.[5]
skriptování
Polymake lze použít v rámci perl skriptu. Kromě toho mohou uživatelé rozšířit polymake a definovat nové objekty, vlastnosti, pravidla pro výpočetní vlastnosti a algoritmy.[6]
Polymake aplikace
Polymake rozděluje svou sbírku funkcí a objektů do 10 různých skupin zvaných aplikace. Chovají se jako jmenné prostory C ++. Polytopová aplikace byla první vyvinutou a je největší.[7]
Běžná aplikace
Tato aplikace obsahuje mnoho „pomocných“ funkcí používaných v jiných aplikacích.[8]
Aplikace ventilátoru
Aplikace Fan obsahuje funkce pro mnohostěnné komplexy (které se zobecňují zjednodušené komplexy ), rovinné kresby 3-polytopů, mnohostěnní fanoušci a dělení bodů nebo vektorů.[9]
Aplikace Fulton
Tato aplikace se zabývá normální torické odrůdy. Název této aplikace je z knihy „Úvod do torických odrůd“ od autora William Fulton.[10]
Grafová aplikace
Grafová aplikace slouží k manipulaci s směrovanými a neorientovanými grafy. Některé standardní funkce grafu existují (například pro sousedství a kliky) spolu s kombinatorickými funkcemi, jako je výpočet mřížky představované směrovaným acyklickým grafem.[11]
Skupinová aplikace
Skupinová aplikace se zaměřuje na konečné permutační skupiny. Základní vlastnosti skupiny lze vypočítat jako postavy a hodiny konjugace.[12] V kombinaci s polytopem může tato aplikace vypočítat vlastnosti spojené se skupinou působící na polytop permutací vrcholů, fazet nebo souřadnic polytopu.
Ideální aplikace
Ideální aplikace počítá několik vlastností polynomiálních ideálů: Gröbnerův základ, Hilbertův polynom a radikály.[13]
Matroid aplikace
Třída matroidů může vypočítat všechny standardní vlastnosti matroidu, jako jsou základy a obvody. Tato aplikace může také vypočítat pokročilejší vlastnosti, jako je Tutteův polynom matroidu a realizace matroidu s polytopem.[14]
Aplikace Polytop
V rámci aplikace polytop existuje více než 230 funkcí nebo výpočtů, které lze provést s polytopem. Tyto funkce se pohybují od složitosti od jednoduchého výpočtu základních informací o mnohostěnu (např. Počet vrcholů, počet fazet, testy jednoduchých polytopů a převod popisu vrcholu na popis nerovnosti) až po kombinatorické nebo algebraické vlastnosti (např. H-vektor, Ehrhartův polynom, Hilbertův základ, a Schlegel diagramy ).[7] Existuje také mnoho možností vizualizace.
Aplikace Topaz
Aplikace Topaz obsahuje všechny související funkce abstraktní zjednodušené komplexy.[15] Lze provést mnoho pokročilých topologických výpočtů nad zjednodušenými komplexy homologické skupiny, orientace, základní skupina. K dispozici je také kombinatorická kolekce vlastností, které lze vypočítat jako a ostřelování a Hasse diagramy.
Tropická aplikace
Tropická aplikace obsahuje funkce pro zkoumání tropické geometrie; zejména tropické hyperplochy a tropické kužely.[16]
Historie vývoje
Polymake verze 1.0 se poprvé objevil ve sborníku Mezinárodního kongresu matematiků v roce 1989 v nové sekci o matematickém softwaru.[17] Verze 1.0 obsahovala pouze polytopovou aplikaci, ale systém „aplikací“ ještě nebyl vyvinut. Verze 2.0 byla vydána někdy v roce 2003,[Citace je zapotřebí ] a verze 3.0 byla vydána v roce 2016.[18]
Softwarové balíčky
Používá se v rámci polymake
Níže je uveden seznam softwarových balíčků třetích stran, se kterými může polymake komunikovat od verze 3.0. Uživatelé také mohou psát nové soubory pravidel pro propojení s libovolným softwarovým balíčkem. Všimněte si, že v tomto seznamu je určitá redundance (např. Pro nalezení konvexního trupu mnohostěnu lze použít několik různých balíčků). Protože polymake používá pro výpočetní vlastnosti soubory pravidel a graf závislostí,[6] většina z těchto softwarových balíčků je volitelná. Některé se však stávají nezbytnými pro specializované výpočty.
- 4ti2: softwarový balíček pro algebraické, geometrické a kombinatorické úlohy v lineárních prostorech
- odstín: teorie tropických křižovatek
- azove: výčet vrcholů 0/1
- CDD: metoda dvojího popisu pro převod mezi nerovnostním a vrcholným popisem mnohostěnu
- Geomview: interaktivní 3D prohlížecí program
- Gfan: Gröbner fanoušci a tropické odrůdy
- GraphViz: software pro vizualizaci grafů
- LattE (Výčet mřížových bodů): počítání mřížových bodů uvnitř polytopů a integrace přes polytopy
- libnormalizovat: afinní monoidy, vektorové konfigurace, mřížkové polytopy a racionální kužele
- lrs: implementace algoritmu zpětného vyhledávání pro výčet vrcholů a konvexní obal problémy
- nauty: automorfismus skupiny grafů
- permlib: nastavení stabilizátoru a výpočtů na oběžné dráze
- PORTA: výčet mřížových bodů mnohostěnu
- ppl: Parma Polyhedra Library
- qhull: Quickhull algoritmus pro konvexní trupy
- jednotné číslo: počítačový algebraický systém pro polynomiální výpočty se zvláštním důrazem na komutativní a nekomutativní algebru, algebraickou geometrii a teorii singularity
- skica: pro vytváření perokresby dvou- nebo trojrozměrných objemových objektů
- RozdělitStrom4: fylogenetické sítě
- sympol: nástroj pro práci se symetrickým mnohostěnem
- tři: Knihovna JavaScript pro animovanou 3D počítačovou grafiku
- tikz: TeXové balíčky pro programové vytváření grafiky
- TOPCOM: triangulace bodových konfigurací a matroidů
- TropLi: pro výpočet tropických lineárních prostorů matroidů
- tosimplex: Duální simplexní algoritmus implementovaný Thomasem Opferem
- Vinci: objemy polytopů
Používá se ve spojení s polymake
- jupyter-polymake: umožňuje polymake uvnitř Jupyter notebooky.
- PolymakeInterface: balíček pro použití polymake v MEZERA.
- PolyViewer: GUI prohlížeč polymake fies.
Reference
- ^ Oficiální webové stránky
- ^ „Polymake - Matematický software - swMATH“.
- ^ Gawrilow, Ewgenij; Joswig, Michael (01.01.2000). Kalai, Gil; Ziegler, Günter M. (eds.). polymake: rámec pro analýzu konvexních polytopů. Polytopes — kombinatorika a výpočet, seminář DMV. Birkhäuser Basilej. 43–73. doi:10.1007/978-3-0348-8438-9_2. ISBN 9783764363512.
- ^ Gawrilow, Ewgenij; Joswig, Michael (01.01.2001). Polymake: Přístup k modulárnímu softwarovému designu ve výpočetní geometrii. Sborník ze sedmnáctého výročního symposia o výpočetní geometrii. SCG '01. New York, NY, USA: ACM. str. 222–231. doi:10.1145/378583.378673. ISBN 978-1581133578. S2CID 16519425.
- ^ A b Gawrilow, Ewgenij; Joswig, Michael (2005-07-13). Msgstr "Geometrické uvažování s polymake". arXiv:matematika / 0507273.
- ^ A b Joswig, Michael; Müller, Benjamin; Paffenholz, Andreas (2009-02-17). "Polymake a Lattice Polytopes". arXiv:0902.2919 [math.CO ].
- ^ A b "dokumentace polymake, aplikace: polytope". polymake.org. Citováno 2016-06-11.
- ^ "dokumentace polymake, aplikace: společná". polymake.org. Citováno 2016-06-11.
- ^ "dokumentace polymake, aplikace: fan". polymake.org. Citováno 2016-06-11.
- ^ "dokumentace polymake, aplikace: fulton". polymake.org. Citováno 2016-06-11.
- ^ "dokumentace polymake, aplikace: graf". polymake.org. Citováno 2016-06-11.
- ^ "dokumentace polymake, aplikace: skupina". polymake.org. Citováno 2016-06-11.
- ^ "dokumentace polymake, aplikace: ideální". polymake.org. Citováno 2016-06-11.
- ^ "dokumentace polymake, aplikace: matroid". polymake.org. Citováno 2016-06-11.
- ^ "dokumentace polymake, aplikace: topaz". polymake.org. Citováno 2016-06-11.
- ^ "dokumentace polymake, aplikace: tropické". polymake.org. Citováno 2016-06-11.
- ^ Joswig, Michael; Gawrilow, Ewgenij (1998). „Polymake“. Sborník příspěvků z mezinárodního kongresu matematiků.
- ^ „Polymake 3.0“. GitHub. Citováno 2016-06-28.