Может ли гиперграф представлять собой недетерминированную машину Тьюринга?

Кто-нибудь знает какие-либо документы, тексты или другие документы, которые обсуждают использование гиперграфа для реализации или представления недетерминированной машины Тьюринга? Действительно ли они эквивалентны?

Я уверен, что гиперграф способен правильно и полностью представлять собой переходы состояния недетерминированной машины Тьюринга, например. Но я до сих пор не смог найти что-либо в печати, которое может подтвердить это. Мне это кажется таким очевидным отношением, однако тот факт, что я не нахожу предшествующего уровня техники, заставляет меня думать, что я ошибаюсь. (Возможно также, что то, что я нахожу, просто недостаточно доступно для меня, чтобы понять, что он говорит.); -)

Почему я спрашиваю: я работаю над пакетом с открытым исходным кодом, который распределяет хранилище данных и распределяет вычисления в одноранговой сети. Я ищу самую примитивную структуру данных, которая могла бы поддерживать необходимую функциональность. Пока что распределенный гиперграф выглядит многообещающим. Мое рассуждение состоит в том, что если гиперграф может поддерживать что-то общее, как недетерминированную машину Тьюринга, то он должен иметь возможность поддерживать более совершенную DSL на основе Turing. (Есть и другие причины, по которым "недетерминированная" часть может быть полезной для меня, имея дело с контролем версий распределенных данных и/или результатов вычислений. Однако старайтесь избегать диссертации.)

Частичные ответы:

  • У opencog-пользователей было задумчивое обсуждение того, как гиперграфы вписываются в разные вычислительные модели; это, по-видимому, было связано с разработкой пакета HypergraphDB: http://markmail.org/message/5oiv3qmoexvo4v5j
  • На MathOverflow возникает вопрос о том, что могут делать гиперграфы - пока не упоминается о turing, но я собираюсь добавить его: https://mathoverflow.net/info/13750/what-are-the-applications-of-hypergraphs
  • Если гиперграф может представлять недетерминированную машину Тьюринга, то я думаю, что гиперграф со взвешенными ребрами будет эквивалентен вероятностной машине Тьюринга. http://en.wikipedia.org/wiki/Probabilistic_Turing_machine

Ответ 1

Гиперграфом является только граф G=(V,E), где V - множество вершин (узлов), а E - подмножество силового набора V. Это структура данных.

Таким образом, общий граф - это просто гиперграф с ранга 2. (каждый набор из E содержит ровно две вершины). Направленный гиперграф использует пары (X,Y) в качестве ребер, где X и Y - множества.

Если вы хотите смоделировать машину turing, вам нужно смоделировать "ленту". Вы хотите, чтобы лента "встроена" в график? Я думаю, вам, возможно, повезло больше о тесте Церкви-Тьюринга (церковь Алонсо, исчисление Лямбды). Исчисление лямбда - это форма системы перезаписи, и, безусловно, существует ветвь, которая использует переписывание графа (и гиперграфы).

Конечно, переходы можно смоделировать как график (я не уверен, что вы имели в виду, но прямой подход на самом деле не помогает) если вы обычно моделировали его, вы, вероятно, создавали бы словарь/хэш-карту с кортежами как ключи (State, Symbol) и значения (State, Rewrite, Left | Right). например,

states = {1,2,3}
symbols = {a,b,c}
moves = L, R
delta = { (1,a) -> (1,b,R)
          (1,b) -> (2,c,L)
          ...
}

поэтому, если вам нужен график, вам сначала понадобится V = состояния U символов U движется. Очевидно, что они должны быть непересекающимися множествами. как {1, a} → {1, b, R} по определению равно {a, 1} → {b, R, 1} и т.д.

states = {1,2,3}
symbols = {a,b,c}
moves = L, R
V = {1,2,3,a,b,c,L,R}
E = { ({1,a},{1,b,R})
      ({b,1},{L,2,c})
      ...
}
turing-hypergraph = (V,E)

Как я уже упоминал ранее, просмотрите повторную запись графика или переименование термина.