Polimake

Polimake
Oryginalni autorzy Ewgenij Gawrilow i Michael Joswig
Pierwsze wydanie 1997 ; 26 lat temu ( 1997 )
Wersja stabilna
4.6 / 14 stycznia 2022 r . ; 13 miesięcy temu ( 14.01.2022 )
Magazyn
Napisane w C++ , Perl
System operacyjny Linux , Mac
Dostępne w język angielski
Licencja Powszechna Licencja Publiczna GNU
Strona internetowa Polymake.org _

Polymake to oprogramowanie do algorytmicznego przetwarzania wielościanów wypukłych .

Chociaż jest to przede wszystkim narzędzie do badania kombinatoryki i geometrii wypukłych wielotopów i wielościanów , obecnie jest w stanie poradzić sobie również z kompleksami uproszczonymi , matroidami , wachlarzami wielościennymi, wykresami , obiektami tropikalnymi , odmianami torycznymi i innymi obiektami.

Polymake był cytowany w ponad 100 ostatnich artykułach indeksowanych przez Zentralblatt MATH , jak wynika z jego wpisu w bazie danych swMATH.

Cechy szczególne

modułowy

Polymake został pierwotnie zaprojektowany jako narzędzie badawcze do badania aspektów Polytopes. W związku z tym Polymake korzysta z wielu pakietów oprogramowania innych firm do specjalistycznych obliczeń, zapewniając w ten sposób wspólny interfejs i pomost między różnymi narzędziami. Użytkownik może łatwo (i nieświadomie) przełączać się między używaniem różnych pakietów oprogramowania w procesie obliczania właściwości Polytope.

obliczenia oparte na regułach

Polymake wewnętrznie korzysta z modelu serwer-klient, w którym serwer przechowuje informacje o każdym obiekcie (np. Polytope), a klienci wysyłają żądania w celu obliczenia właściwości. Serwer ma za zadanie określić, w jaki sposób zrealizować każde żądanie na podstawie już znanych informacji o każdym obiekcie, korzystając z systemu opartego na regułach. Na przykład istnieje wiele zasad obliczania aspektów Polytope. Aspekty można obliczyć na podstawie opisu wierzchołków wielokąta oraz (prawdopodobnie zbędnego) opisu nierówności. Polymake tworzy wykres zależności przedstawiający kroki przetwarzania każdego żądania i wybiera najlepszą ścieżkę za pomocą algorytmu typu Dijkstra.

skrypty

Polymake może być używany w skrypcie Perla. Ponadto użytkownicy mogą rozszerzać Polymake i definiować nowe obiekty, właściwości, zasady obliczania właściwości i algorytmy.

Aplikacje Polymake'u

Polymake dzieli swoją kolekcję funkcji i obiektów na 10 różnych grup zwanych aplikacjami. Zachowują się jak przestrzenie nazw C++. Aplikacja Polytope była pierwszą opracowaną i największą.

Wspólne zastosowanie

Ta aplikacja zawiera wiele funkcji „pomocniczych” używanych w innych aplikacjach.

Aplikacja wentylatora

Aplikacja Fan zawiera funkcje dla kompleksów wielościennych (które uogólniają kompleksy uproszczone ), rysunki planarne 3-polytopów, wachlarzy wielościennych i podziałów punktów lub wektorów.

Aplikacja Fultona

Ta aplikacja dotyczy normalnych odmian torycznych . Nazwa tej aplikacji pochodzi z książki „Wprowadzenie do odmian torycznych” autorstwa Williama Fultona .

Aplikacja graficzna

Aplikacja grafowa służy do manipulowania grafami skierowanymi i nieskierowanymi. Istnieją niektóre standardowe funkcje wykresowe (takie jak dla sąsiedztwa i klik) wraz z funkcjami kombinatorycznymi, takimi jak obliczanie kraty reprezentowanej przez skierowany graf acykliczny.

Aplikacja grupowa

Aplikacja grupowa koncentruje się na skończonych grupach permutacji. Podstawowe właściwości grupy można obliczyć, podobnie jak znaki i klasy koniugacji. W połączeniu z Polytope, ta aplikacja może obliczyć właściwości powiązane z grupą działającą na Polytope poprzez permutację wierzchołków, ścianek lub współrzędnych Polytope.

Idealna aplikacja

Idealna aplikacja oblicza kilka właściwości ideałów wielomianowych: bazę Gröbnera , wielomian Hilberta i rodniki.

Aplikacja Matroidowa

Klasa matroid może obliczyć wszystkie standardowe właściwości matroidu, takie jak podstawy i obwody. Ta aplikacja może również obliczać bardziej zaawansowane właściwości, takie jak wielomian Tutte'a matroidu i realizacja matroidu za pomocą Polytope.

Aplikacja Polytop

W aplikacji Polytope dostępnych jest ponad 230 funkcji lub obliczeń, które można wykonać za pomocą Polytope. Funkcje te mają różną złożoność, od prostego obliczania podstawowych informacji o wielotopie (np. liczby wierzchołków, liczby ścianek, testów dla uproszczonych wielotopów i konwertowania opisu wierzchołków na opis nierówności) po właściwości kombinatoryczne lub algebraiczne (np. wektor H , wielomian Ehrharta , baza Hilberta i diagramy Schlegla ). Istnieje również wiele opcji wizualizacji.

Aplikacja z topazem

Aplikacja Topaz zawiera wszystkie funkcje związane z abstrakcyjnymi kompleksami uproszczonymi . Można wykonać wiele zaawansowanych obliczeń topologicznych na uproszczonych kompleksach, takich jak grupy homologii , orientacja, grupa podstawowa . Istnieje również kombinatoryczny zbiór właściwości, które można obliczyć, podobnie jak Shellingu i Hassego .

Aplikacja tropikalna

Aplikacja tropikalna zawiera funkcje umożliwiające badanie geometrii tropikalnej; w szczególności tropikalne hiperpowierzchnie i tropikalne stożki.

Historia rozwoju

Wersja 1.0 Polymake pojawiła się po raz pierwszy podczas seminarium DMV „Polytopes and Optimization”, które odbyło się w Oberwolfach w listopadzie 1997. Wersja 1.0 zawierała jedynie aplikację Polytope, ale system „aplikacji” nie był jeszcze opracowany. Wersja 2.0 została wydana gdzieś w 2003 r., [ potrzebne źródło ] , a wersja 3.0 została wydana w 2016 r.

Pakiety oprogramowania

Używany w Polymake

Poniżej znajduje się lista pakietów oprogramowania innych firm, z którymi Polymake może współpracować od wersji 3.0. Użytkownicy mogą także pisać nowe pliki reguł umożliwiające współpracę z dowolnym pakietem oprogramowania. Należy zauważyć, że na tej liście występuje pewna redundancja (np. do znalezienia wypukłego kadłuba wielotopu można użyć kilku różnych pakietów). Ponieważ Polymake wykorzystuje pliki reguł i wykres zależności do obliczania właściwości, większość tych pakietów oprogramowania jest opcjonalna. Jednak niektóre stają się niezbędne do specjalistycznych obliczeń.

  • 4ti2 : pakiet oprogramowania do rozwiązywania problemów algebraicznych, geometrycznych i kombinatorycznych w przestrzeniach liniowych
  • a-tint : teoria przecięcia tropikalnego
  • azove : wyliczenie wierzchołków 0/1
  • cdd : metoda podwójnego opisu służąca do konwersji pomiędzy nierównością a opisem wierzchołków wielotopu
  • Geomview : interaktywny program do przeglądania 3D
  • Gfan : Fani Gröbnera i odmiany tropikalne
  • GraphViz : oprogramowanie do wizualizacji wykresów
  • LattE (Wyliczenie punktów kratowych): zliczanie punktów sieciowych wewnątrz wielotopów i całkowanie po wielotopach
  • libnormaliz : monoidy afiniczne, konfiguracje wektorów, politopy sieciowe i stożki wymierne
  • lrs : implementacja algorytmu wyszukiwania wstecznego dla problemu wyliczania wierzchołków i problemów kadłuba wypukłego
  • nauty : grupy automorfizmu grafów
  • permlib : ustawia obliczenia stabilizatora i orbity
  • PORTA : wyliczyć punkty kratowe wielotopu
  • ppl : Biblioteka Wielościanów Parmy
  • qhull : Algorytm Quickhull dla kadłubów wypukłych
  • liczba pojedyncza : system algebry komputerowej do obliczeń wielomianowych, ze szczególnym naciskiem na algebrę przemienną i nieprzemienną, geometrię algebraiczną i teorię osobliwości
  • szkic : do tworzenia rysunków liniowych dwu- lub trójwymiarowych obiektów bryłowych
  • SplitsTree4 : sieci filogenetyczne
  • sympol : narzędzie do pracy z wielościanami symetrycznymi
  • Threejs : biblioteka JavaScript do animowanej grafiki komputerowej 3D
  • tikz : Pakiety TeX-owe do programowego tworzenia grafiki
  • TOPCOM : triangulacje konfiguracji punktowych i matroidów
  • TropLi : do obliczania tropikalnych przestrzeni liniowych matroidów
  • tosimplex: Algorytm podwójnego simpleksu zaimplementowany przez Thomasa Opfera
  • Vinci : tomy wielotopów

Stosowany w połączeniu z polimakiem