2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Классы эквивалентности перестановок
Сообщение20.02.2018, 19:39 
Добрый вечер, уважаемые участники форума!
На днях заинтересовался алгоритмами генерации комбинаторных объектов, в частности перестановками.
Сам алгоритм генерации перестановок очень прост, но я усложнил себе задачу.

Давайте теперь считать эквивалентными те перестановки, которые получаются друг из друга циклическими сдвигами.
Например:
$(1 2 3 4) \sim (2 3 4 1) $.
Объединим такие перестановки в классы.Меня интересует, существует ли эффективный алгоритм перебора таких классов (от каждого класса нужно выдавать по одному представителю, например, лексикографически наименьшую перестановку). Лично я, не смог переделать алгоритм Нарайаны для этих целей и в интернете ничего найти не смог.

Наверняка я не первый интересуюсь чем-то подобным. Буду благодарен за любую интересную информацию по теме.

 
 
 
 Re: Классы эквивалентности перестановок
Сообщение20.02.2018, 19:58 
Аватара пользователя
Лексикографически минимальная перестановка в каждом классе - та, что начинается с 1. Поэтому задача эквивалентна перебору перестановок размера $n-1$ на числах $2,3,\dots,n$.

 
 
 
 Re: Классы эквивалентности перестановок
Сообщение20.02.2018, 23:56 
Разобрался, спасибо большое!

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group