Чи існує теорія, яка поєднує теорію категорій / абстрактну алгебру та обчислювальну складність?


18

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


Як мотивуючий приклад, давайте подивимося на моноїди. Добре відомо, що якщо операція є моноїдом, то ми можемо паралелізувати операцію.

Наприклад, у Haskell ми можемо тривіально визначити, що додавання є моноїдом над цілими числами:

instance Monoid Int where
    mempty = 0
    mappend = (+)

Тепер, якщо ми хочемо обчислити суму від 0 до 999, ми могли б зробити це послідовно так:

foldl1' (+) [0..999]

або ми могли б це зробити паралельно

mconcat [0..999] -- for simplicity of the code, I'm ignoring that this doesn't *actually* run in parallel

Але паралелізувати цей моноїд має сенс лише тому, що mappend працює в постійному часі. Що робити, якщо цього не було? Наприклад, списки - це моноїди, де mappend не працює непостійний час (або простір!). Я здогадуюсь, що саме тому в Haskell немає типової паралельної функції mconcat. Найкраща реалізація залежить від складності моноїда.


Здається, що повинен бути зручний спосіб описати відмінності між цими двома моноїдами. Тоді ми повинні мати можливість коментувати наш код цими відмінностями, і програма автоматично вибирає найкращі алгоритми для використання залежно від складності моноїда.


1
Тип Integer в Haskell - це багатоточні цілі числа, а складність часу додавання до них, природно, залежить від довжини вхідних цілих чисел, тому оманливо сказати, що mappend у вашому екземплярі Monoid для Integer працює в постійний час.
Цуйосі Іто

@TsuyoshiIto Ти маєш рацію, я мав на увазі використовувати Int. Виправлено.
Майк Ізбіцький

Ви бачили це питання ?
Kaveh

@Kaveh у мене не було, дякую за вказівник. З швидкого прочитання це звучить так, як ніхто не робив жодної теоретичної роботи щодо самих класів складності (і є певні дискусії щодо того, що це може означати, або якщо це цінність). Тож я думаю, що майже відповідає на першу частину мого питання і просто залишає взаємодію між алгеброю та складністю.
Майк Ізбіцький

Є багато взаємодії між алгеброю та теорією складності. Існують навіть книги під назвою "Алгебраїчна теорія складності", які використовують і застосовують алгебраїчні поняття та методи до складності. Є також великі роботи, що застосовують теорію складності до алгебри. Ви повинні бути більш конкретними, щоб отримати відповідь.
Kaveh

Відповіді:


12

[Теорія обчислювальної складності та категорій] здається такими природними парами.

Зважаючи на видатність обчислювальної складності як наукового поля, якби вони були такими природними стипендіатами, можливо, хтось уже вивів би цей зв'язок?

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

Т=Т1Т2Т3Тi,1 . Натомість ми побудуємо ТМ, вказавши окремо їх два компоненти: керування (FSM) та стрічку. Ні контрольні, ні стрічкові самі хороші алгебри.

Давайте спочатку розглянемо стрічки. Існує декілька природних способів складання стрічок, жоден з яких не працює для композиційного опису ТМ.

  • Склейте їх разом, як порядковий додаток. Це не правильне поняття, оскільки стрічки нескінченні, і склеюючи їх, як порядкове додавання, ми отримуємо подвійний нескінченний об'єкт, що виходить за межі кінцевих обчислень, що призводить до нескінченних обчислень / гіперкомп'ютацій, які цікаві як математичні, але не відповідають можливі обчислення.

  • Дотримуйтесь їх паралельно , наприклад, два 3-х головних машини перетворюються на 6-головну машину. Це не говорить про те, як компоненти компонентів взаємодіють між собою.

  • Переплетені стрічки. Одна з проблем цього підходу полягає в тому, що незрозуміло, яким може бути канонічне переплетення, якщо воно є. Більше того, переплетення "заплутає" існуючий елемент управління, який, як правило, тонко налаштований на конкретний макет стрічки. Тому ми не можемо використати контроль безпосередньо.

π

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


λπλπαλπ


Я б сказав, що склад машин Тьюрінга досить зрозумілий, коли ви ставитесь до них як до абстрактних комп'ютерних програм. Природний спосіб складання програм - викликати одну як підпрограму іншої. Більш загально, кожна програма є обчислюваною функцією з обмеженим часом та простором, яка приймає певний відформатований вхід і виводить інший відформатований рядок, який може бути переданий в іншу функцію. Можливо, що деякі входи сміття призведуть до виходу сміття або ж якась функція не може виконатись у відведений час та простір, і в цьому випадку вся програма виходить з ладу.
Антон Фетисов

Очевидно, що жодна програма не є композиційною таким чином, що, природно, призводить нас до категорії ТМ. Цілком ймовірно, що слід відпустити поняття про необмежену часовим простором ТМ, що практично не можливо. Чи є якесь опубліковане поняття, яке захоплює цю структуру?
Антон Фетисов

@AntonFetisov Ви спробували записати деталі? Це не дуже.
Мартін Бергер

2

Ця відповідь про ізоморфізми між формальними мовами поєднує алгебраїчні результати теорії кодів з поняттями з теорії категорій для дослідження можливих понять еквівалентності та ізоморфізму між формальними мовами та класами складності.

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


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