Polimake
Oryginalni autorzy | Ewgenij Gawrilow i Michael Joswig |
---|---|
Pierwsze wydanie | 1997 |
Wersja stabilna |
4.6 / 14 stycznia 2022 r
|
Magazyn | |
Napisane w | C++ , Perl |
System operacyjny | Linux , Mac |
Dostępne w | język angielski |
Licencja | Powszechna Licencja Publiczna GNU |
Strona internetowa |
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
- jupyter-polymake : umożliwia tworzenie plików Polymake w notatnikach Jupyter .
- PolymakeInterface : pakiet do używania Polymake w GAP .
- PolyViewer : przeglądarka GUI dla plików Polymake.