Учитывая две системы, состоящие из множества наборов чисел, я хотел бы знать, являются ли они изоморфными под перестановкой.
Например {{1,2,3,4,5}, {2,4,5,6,7}, {2,3,4,6,7}} представляет собой систему из 3 наборов из 5 номеров. {{1,2,3,4,6}, {2,3,5,6,7}, {2,3,4,8,9}} - это еще одна система из 3 наборов из 5 номеров. Я хочу проверить, являются ли эти системы изоморфными.
Нет. Первая система использует числа {1,2,3,4,5,6,7}, вторая использует числа {1,2,3,4,5,6,7,8,9}.
Вот еще один пример. {{1,2,3}, {1,2,4}, {3,4,5}} и {{1,2,4}, {1,3,5}, {2,3,5} }. Эти две системы из 3 наборов из 3 чисел изоморфны.
Если я использую перестановку (5 3 1 2 4), где 1 становится 5, 2 становится 3 и т.д. Первый набор становится {5,3,1}. Второй становится {5,3,2}. Третий становится {1,2,4}. Таким образом, преобразованная система этой перестановкой является {{5,3,1}, {5,3,2}, {1,2,4}}, которая эквивалентно переписана на {{1,2,4}, {1, 3,5}, {2,3,5}}, поскольку меня не интересует порядок. Это вторая система, поэтому да.
В настоящее время, в первом примере, я применяю все 9! перестановки {1,2,3,..., 9} к первой системе и проверить, могу ли я получить вторую. Это дает мне ответ, но очень медленно.
Есть ли умный алгоритм?
(Мне нужен только ответ, да или нет. Мне не интересно получить перестановку, которая преобразует первую систему во вторую).