Введение в cayleyR (Russian)

English version

cayleyR

cayleyR — пакет для анализа графов Кэли перестановочных групп с фокусом на головоломку TopSpin и подобные комбинаторные задачи. Пакет реализует алгоритмы поиска циклов, исследования пространства состояний и нахождения оптимальных последовательностей операций в перестановочных группах, порождённых операциями сдвига и реверса.

Возможности

Функции пакета cayleyR

shift_left(state) — выполняет циклический сдвиг влево, перемещая первый элемент вектора в конец.

shift_right(state) — выполняет циклический сдвиг вправо, перемещая последний элемент вектора в начало.

reverse_prefix(state, k) — обращает порядок первых k элементов вектора состояния (операция “турникет” в TopSpin).

apply_operations(state, operations, k) — последовательно применяет набор операций к состоянию. Операции задаются символами: “L”/“1” (влево), “R”/“2” (вправо), “X”/“3” (реверс).

get_reachable_states(start_state, allowed_positions, k) — находит полный цикл в графе Кэли для заданной последовательности операций. Возвращает все посещённые состояния, data frame с траекторией, статистику цикла.

get_reachable_states_light(start_state, allowed_positions, k) — облегчённая версия функции поиска цикла. Возвращает только длину цикла и количество уникальных состояний без хранения всех промежуточных состояний. Используется для быстрой проверки многих последовательностей.

find_best_random_combinations(moves, combo_length, n_samples, n_top, start_state, k) — генерирует случайные последовательности операций заданной длины и находит те, которые дают максимальную длину цикла. Возвращает топ-N лучших комбинаций с их характеристиками.

Применение

Пакет может быть полезен для:

Зависимости

Пакет использует: