Отказ от ответственности: я не теоретик CS.
Исходя из абстрактной алгебры, я привык иметь дело с вещами, равными изоморфизму, - но у меня возникли проблемы с переводом этого понятия в структуры данных. Сначала я подумал, что достаточно точных теоретических биективных морфизмов, но я довольно быстро наткнулся на стену - это всего лишь кодировки и не отражают вычислительную сущность структуры данных.
Есть ли более ограничительное (но более полезное) определение? (Или, если нет, почему?) Существует ли каноническое определение категории «построенных структур данных»?
Вместо того, чтобы спрашивать, как мы можем усилить / ослабить понятие изоморфизма, можно задать другой вопрос: каково правильное понятие эквивалентности между вычислительными структурами и какова математическая структура, лежащая в основе этого понятия.
Одно большое семейство структур - коалгебры. Структуры, такие как списки, деревья, автоматы, как конечного, так и бесконечного многообразия, могут быть описаны как коалгебры. Затем мы можем изучить гомоморфизм или изоморфизм между коалгебрами.
Однако даже гомоморфизмы между коалгебрами не рассказывают всей истории. Возможно, вам будет полезно посмотреть симуляции, бисимуляции и другие логические отношения. Если вы строго предпочитаете алгебраический подход (в отличие от реляционного), то галуа-связями являются одним из вариантов. Вот некоторые отправные точки.
источник
Отказ от ответственности: я не уверен, что понял ваш вопрос. Вы хотите поговорить об изоморфизме между двумя структурами данных или между двумя «спецификациями структуры данных»? (Их иногда называют абстрактными типами данных.)
Если вы рассматриваете модель клеточного зонда, то я думаю, что концепция изоморфизма легко возникает. Это связано с тем, что модель клеточного зонда моделирует вычисления с помощью дерева решений, поэтому изоморфизм легко определить. Я думаю, что модель клеточного зонда может помочь, если вы учитываете изоморфизм между реализациями структуры данных, и если вы рассматриваете спецификации структуры данных.
Для получения информации о модели клеточного зонда, см., Например, опрос Милтерсена. ( Сложность сотового зонда: обзор )
Если вы скажете больше о том, почему вам нужно определить изоморфизм между структурами данных, возможно, будет возможно предоставить больше помощи. Не стесняйтесь сообщать мне.
источник