Структура даних ізоморфізмів


20

Відмова: Я не теоретик CS.

Виходячи з абстрактної алгебри, я звик мати справу з речами, що дорівнюють ізоморфізму, - але у мене виникають проблеми при перекладі цього поняття на структури даних. Я спершу подумав, що вистачити теоретичні бієктивні морфізми буде достатньо, але я досить швидко наткнувся на стіну - це просто кодування і не фіксує обчислювальну сутність структури даних.

Чи є більш обмежувальне (але корисніше) визначення? (Або якщо ні, то чому?) Чи існує канонічне визначення категорії "побудованих структур даних"?

Відповіді:


16

Не існує канонічної такої категорії, з тієї ж причини немає канонічної категорії обчислень. Однак існують великі і корисні алгебраїчні структури на структурах даних.

Однією з найбільш загальних таких структур, яка все-таки корисна, є теорія комбінаторних видів. Видом є функтор , де B - категорія кінцевих множин і біекцій між ними. Ви можете вважати види як сім'ї структур, індексованих абстрактними наборами місць. Це пояснює функціональність над B - такі сім'ї повинні бути інваріантними щодо перейменування абстрактних міток. Потім, обчислення видів в основному відтворює методи генерації функцій на функціональному рівні, щоб генерувати набори структур даних замість лічильників.F:BBBB

Щоб побачити цю теорію, реалізовану мовою програмування, ви можете прочитати документ симпозіуму Брента Йорггея Хаскелл, види та функтори та типи, о, мій! . Я думаю, що Sage також має пакет видів, хоча, звичайно, він орієнтований на комп'ютерну алгебру, а не програмування.


14

Дійсно, існує інше поняття, ніж ізоморфізм, який є більш корисним у програмуванні. Він називається "поведінкова еквівалентність" (іноді його називають "спостережливою еквівалентністю") і встановлюється шляхом надання "симуляційного відношення" між структурами даних, а не біекціями. Алгебраїсти зайшли і створили область комп’ютерних наук, що називається "типи алгебраїчних даних", куди на деякий час вони відтіснили ізоморфізми та початкові алгебри. Зрештою, вчені-комп’ютери зрозуміли, що їх вводять в оману. Хороший документ, який розповідає про ці питання, - "Про спостережливу еквівалентність та алгебраїчну специфікацію" Саннелла та Тарлецького.

Я написав відповідь на ще одне запитання в теорії про логічні відносини та симуляції, в якій розповідається про більш загальну історію імітаційних відносин у галузі інформатики. Запропонуйте прочитати це та подати далі посилання на подані там посилання. Глава 5 "Ремесла програмування" Рейнольдса особливо освічує.

У текстовій книзі з теорії алгебраїчних автоматів Холкомба є така цікава цитата (стор. 42):

Є багато інших результатів, пов'язаних з гомоморфізмами та коефіцієнтами ... Хоча вони представляють незалежний алгебраїчний інтерес, вони ще не виявилися особливо корисними при вивченні автоматів та суміжних областей. Насправді алгебраїчна теорія машин в одному важливому відношенні відхиляється від напряму, прийнятого в інших алгебраїчних теоріях ... Однак, акцент у теорії автоматів полягає не в тому, як "схожі машини", а в тому, що "вони можуть робити" . Ми вважатимемо дві машини дуже тісно пов'язаними, якщо вони можуть "робити те саме", однак вони можуть бути не алгебраїчно ізоморфними!


Розмірковуючи про цитату Холкомба, я зауважую, що він в основному говорить, що традиційна алгебра має справу з тим, як "виглядають речі", тобто з їх структурою, але вони не впораються з тим, що "вони можуть зробити", тобто їх поведінкою. Це, мабуть, вказує на принципове обмеження традиційної алгебри стосовно комп'ютерних наук. На жаль, я думаю, що Теорія категорій також належить до одного табору. Але Теорія категорій має статус "святої корови", і говорити про її обмеження вважається непосильним. Сподіваємось, вчені-комп’ютери наберуть достатньо сміливості, щоб сказати це голосніше.
Удай Редді

Удай, ти можеш детальніше розповісти про те, як (асиметрія?) Теорії категорій здається непоганою?
Łukasz Lew

@ ŁukaszLew, Якщо теорія категорій добре підходила, ви могли б сказати, що всі введені вирази типу лямбда-числення з змінною типу X є функторами. Але вони не є, наприклад, F (X) = (X -> X) не є функтором.
Удай Редді

7

Замість того, щоб запитати, як ми можемо посилити / послабити поняття про ізоморфізм, інша можливість полягає у запитанні: що таке правильне поняття еквівалентності між обчислювальними структурами та яка математична структура лежить в основі цього поняття.

Одне велике сімейство споруд - це вуглегебри. Такі структури, як списки, дерева, автомати, як кінцевого, так і нескінченного різноманіття, можна охарактеризувати як вугілля. Тоді ми можемо вивчити гомоморфізм або ізоморфізм між вугіллями.

Однак навіть гомоморфізми між вугіллями не розповідають усієї історії. Можливо, вам буде корисно шукати симуляції, бісімуляції та інші логічні відносини. Якщо ви строго віддаєте перевагу алгебраїчному підходу (на відміну від реляційного), з'єднання Галуа є одним із варіантів. Ось кілька вихідних моментів.


2

Відмова: Я не впевнений, що зрозумів ваше запитання. Ви хочете поговорити про ізоморфізм між двома структурами даних або між двома "специфікаціями структури даних"? (Іноді їх називають абстрактними типами даних.)

Якщо ви розглядаєте модель клітинного зонду, то я думаю, що концепція ізоморфізму легко виникає. Це тому, що модель клітинного зонду моделює обчислення за допомогою дерева рішень, тому ізоморфізм легко визначити. Модель клітинного зонду допоможе, я думаю, як у випадку, якщо врахувати ізоморфізм між реалізацією структури даних, так і якщо врахувати специфікації структури даних.

Для отримання інформації про модель зондового осередку див., Наприклад, опитування Мільтерсена. ( Складність клітинного зонда: опитування )

Якщо ви більше скажете про те, чому потрібно визначити ізоморфізм між структурами даних, можливо, можна надати додаткову допомогу. Не соромтеся надіслати мені повідомлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.