Jump to content

Полимейк

Оригинальный автор(ы) Евгений Гаврилов и Михаэль Йосвиг
Первоначальный выпуск 1997 год ; 27 лет назад ( 1997 )
Стабильная версия
4.11 / 6 ноября 2023 г .; 8 месяцев назад ( 06.11.2023 )
Репозиторий
Написано в С++ , Перл
Операционная система Линукс , Мак
Доступно в Английский
Лицензия Стандартная общественная лицензия GNU
Веб-сайт полимейк .org

Polymake программное обеспечение для алгоритмической обработки выпуклых многогранников . [1]

Хотя это в первую очередь инструмент для изучения комбинаторики и геометрии выпуклых многогранников и многогранников , [2] теперь он также способен работать с симплициальными комплексами , матроидами , веерами многогранников, графами , тропическими объектами, торическими многообразиями и другими объектами. В частности, его способность вычислять выпуклую оболочку и точки решетки многогранника оказалась вполне полезной для различных видов исследований. [3]

Polymake цитировался в более чем 300 недавних статьях, проиндексированных Zentralblatt MATH , о чем свидетельствует его запись в базе данных swMATH. [4]

Специальные функции и приложения

[ редактировать ]

Polymake имеет несколько особенностей, делающих его особенным в работе.

Во-первых, Polymake можно использовать в сценарии Perl . Более того, пользователи могут расширять Polymake и определять новые объекты, свойства, правила вычисления свойств и алгоритмы. [5]

Во-вторых, он демонстрирует внутреннюю схему клиент-сервер, позволяющую использовать Perl для управления объектами и интерфейсами, а также C++ для математических алгоритмов. [6] Сервер хранит информацию о каждом объекте (например, многограннике), а клиент отправляет запросы на вычисление свойств. Сервер должен определить, как выполнить каждый запрос на основе уже известной информации о каждом объекте, используя систему, основанную на правилах. Например, существует множество правил вычисления граней многогранника. Фасеты можно вычислить на основе описания вершин многогранника и на основе (возможно, избыточного) описания неравенства. Polymake строит граф зависимостей, описывающий этапы обработки каждого запроса, и выбирает лучший путь с помощью алгоритма типа Дейкстры. [6]

Polymake делит свою коллекцию функций и объектов на 10 различных групп, называемых приложениями. Они ведут себя как пространства имен C++. Приложение «Многогранник» было разработано первым и является самым крупным. [7]

  • Общие: «вспомогательные» функции, используемые в других приложениях. [8]
  • Граф: манипулирование ориентированными и неориентированными графами. [11]
  • Группа: сосредоточьтесь на конечных группах перестановок. Основные свойства группы можно рассчитать как символы и классы сопряженности. [12]
  • Матроид: вычисление стандартных свойств матроида , таких как основания и схемы. Это приложение также может вычислять более сложные свойства, такие как полином Тутте матроида и реализацию матроида с помощью многогранника. [14]
  • Многогранник: более 230 функций или вычислений, которые можно выполнить с помощью многогранника. Эти функции варьируются по сложности от простого вычисления базовой информации о многограннике (например, количества вершин, количества фасетов, проверки симплициальных многогранников и преобразования описания вершины в описание неравенства) до комбинаторных или алгебраических свойств (например, H-вектор , полином Эрхарта , базис Гильберта и диаграммы Шлегеля ). [7] Также существует множество вариантов визуализации.

История развития

[ редактировать ]

Polymake версии 1.0 впервые появился в материалах семинара DMV «Многогранники и оптимизация», проходившего в Обервольфахе в ноябре 1997 года. [2] Версия 1.0 содержала только приложение многогранника, но система «приложений» еще не была разработана. Версия 2.0 была выпущена в июле 2003 года. [17] а версия 3.0 была выпущена в 2016 году. [18] Последняя большая редакция, версия 4.0, была выпущена в январе 2020 года. [19]

Взаимодействие с другими программными пакетами

[ редактировать ]

Polymake имеет модульную структуру и, следовательно, обеспечивает отличное взаимодействие со сторонними программными пакетами для специализированных вычислений, обеспечивая тем самым общий интерфейс и мост между различными инструментами. Пользователь может легко (и неосознанно) переключаться между использованием разных программных пакетов в процессе вычисления свойств многогранника. [20]

Используется в Polymake

[ редактировать ]

Ниже приведен список пакетов стороннего программного обеспечения, с которыми Polymake может взаимодействовать, начиная с версии 4.0. Пользователи также могут писать новые файлы правил для взаимодействия с любым пакетом программного обеспечения. Обратите внимание, что в этом списке есть некоторая избыточность (например, для поиска выпуклой оболочки многогранника можно использовать несколько разных пакетов). Поскольку Polymake использует файлы правил и граф зависимостей для вычисления свойств, [5] большинство этих пакетов программного обеспечения являются дополнительными. Однако некоторые из них становятся необходимыми для специализированных вычислений.

  • 4ti2 : пакет программ для решения алгебраических, геометрических и комбинаторных задач в линейных пространствах.
  • a-tint : теория тропического пересечения
  • azove : перечисление 0/1 вершин
  • barvinok : подсчет целых точек в параметризованных и непараметризованных многогранниках
  • cdd : метод двойного описания для преобразования между неравенством и описанием вершин многогранника.
  • Geomview : программа интерактивного 3D-просмотра.
  • Gfan : поклонники Грёбнера и тропические сорта.
  • GraphViz : программа для визуализации графиков.
  • гомологии : вычисление групп гомологии симплициальных комплексов
  • LattE (перечисление точек решетки): подсчет точек решетки внутри многогранников и интегрирование по многогранникам.
  • libnormaliz : аффинные моноиды , векторные конфигурации, решетчатые многогранники и рациональные конусы.
  • lrs : реализация алгоритма обратного поиска для задачи перечисления вершин и выпуклой оболочки . задач
  • mptopcom : вычисление триангуляций точечных конфигураций и матроидов с использованием параллельного обратного поиска.
  • nauty : группы автоморфизмов графов
  • plantri : плоские триангуляции
  • permlib : установить стабилизатор и вычисления на орбите
  • PORTA : перечислить точки решетки многогранника.
  • ppl : Библиотека Пармских многогранников
  • qhull : Алгоритм Quickhull для выпуклых оболочек
  • сингулярный : система компьютерной алгебры для полиномиальных вычислений с особым упором на коммутативную и некоммутативную алгебру, алгебраическую геометрию и теорию особенностей.
  • эскиз : для создания линейных рисунков двух- или трехмерных твердых объектов.
  • SplitsTree4 : филогенетические сети
  • sympol : инструмент для работы с симметричными многогранниками
  • Threejs : библиотека JavaScript для анимированной 3D-компьютерной графики.
  • tikz : пакеты TeX для программного создания графики.
  • TropLi : для вычисления тропических линейных пространств матроидов.
  • tosiplex: алгоритм двойного симплекса, реализованный Томасом Опфером.
  • Винчи : объемы многогранников

Используется совместно с Polymake.

[ редактировать ]
  1. ^ Официальный сайт
  2. ^ Jump up to: а б Гаврилов, Евгений; Йосвиг, Майкл (1 января 2000 г.). Калаи, Гил; Циглер, Гюнтер М. (ред.). Polymake: платформа для анализа выпуклых многогранников . Многогранники — комбинаторика и вычисления, Семинар DMV. Биркхойзер Базель. стр. 43–73. дои : 10.1007/978-3-0348-8438-9_2 . ISBN  9783764363512 .
  3. ^ Ассарф, Бенджамин; Гаврилов, Евгений; Герр, Катрин; Йосвиг, Майкл; Лоренц, Бенджамин; Паффенхольц, Андреас; Рен, Томас (01 марта 2017 г.). «Вычисление выпуклых оболочек и подсчет целых точек с помощью Polymake» . Математическое программирование вычислений . 9 (1): 1–38. arXiv : 1408.4653 . дои : 10.1007/s12532-016-0104-z . ISSN   1867-2957 . S2CID   5594262 .
  4. ^ «Polymake — Математическое программное обеспечение — swMATH» .
  5. ^ Jump up to: а б Йосвиг, Майкл; Мюллер, Бенджамин; Паффенхольц, Андреас (17 февраля 2009 г.). «Полимак и решетчатые многогранники». arXiv : 0902.2919 [ math.CO ].
  6. ^ Jump up to: а б Гаврилов, Евгений; Йосвиг, Майкл (13 июля 2005 г.). «Геометрические рассуждения с полимейком». arXiv : math/0507273 .
  7. ^ Jump up to: а б «документация Polymake, приложение: многогранник» . сайт Polymake.org . Проверено 11 июня 2016 г.
  8. ^ «документация Polymake, приложение: общее» . сайт Polymake.org . Проверено 11 июня 2016 г.
  9. ^ «документация Polymake, приложение: вентилятор» . сайт Polymake.org . Проверено 11 июня 2016 г.
  10. ^ «Документация Polymake, приложение: Фултон» . сайт Polymake.org . Проверено 11 июня 2016 г.
  11. ^ «документация Polymake, приложение: график» . сайт Polymake.org . Проверено 11 июня 2016 г.
  12. ^ «документация Polymake, приложение: группа» . сайт Polymake.org . Проверено 11 июня 2016 г.
  13. ^ «Документация Polymake, приложение: идеально» . сайт Polymake.org . Проверено 11 июня 2016 г.
  14. ^ «документация Polymake, приложение: maroid» . сайт Polymake.org . Проверено 11 июня 2016 г.
  15. ^ «документация Polymake, приложение: топаз» . сайт Polymake.org . Проверено 11 июня 2016 г.
  16. ^ «документация Polymake, применение: тропическое» . сайт Polymake.org . Проверено 11 июня 2016 г.
  17. ^ «Выпуск Polymake 2.0» . www.computational-geometry.org . Проверено 13 ноября 2023 г.
  18. ^ «Полимейк 3.0» . Гитхаб . Проверено 28 июня 2016 г.
  19. ^ «Polymake 4.0 [polymake wiki]» . сайт Polymake.org . Проверено 13 ноября 2023 г.
  20. ^ Гаврилов, Евгений; Йосвиг, Майкл (1 июня 2001 г.). «Polymake: подход к модульному проектированию программного обеспечения в вычислительной геометрии» . Материалы семнадцатого ежегодного симпозиума по вычислительной геометрии . СКГ '01. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 222–231. дои : 10.1145/378583.378673 . ISBN  978-1-58113-357-8 . S2CID   16519425 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 701c155d33adbc18dcbdd0c3c04218d3__1710128880
URL1:https://arc.ask3.ru/arc/aa/70/d3/701c155d33adbc18dcbdd0c3c04218d3.html
Заголовок, (Title) документа по адресу, URL1:
Polymake - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)