Сети взаимодействия - Interaction nets

Сети взаимодействия являются графическим модель вычисления разработан Ив Лафон в 1990 году[1] как обобщение структур доказательства линейная логика. Система сети взаимодействия определяется набором типов агентов и набором правил взаимодействия. Сети взаимодействия по своей сути являются распределенной моделью вычислений в том смысле, что вычисления могут выполняться одновременно во многих частях сети взаимодействия, и синхронизация не требуется. Последнее гарантируется свойством сильного слияния редукции в этой модели вычислений. Таким образом, сети взаимодействия предоставляют естественный язык для массового параллелизма. Сети взаимодействия лежат в основе многих реализаций лямбда-исчисление, например, эффективная закрытая редукция[2] и оптимальная в смысле Леви Lambdascope.[3]

Определения

Сети взаимодействий представляют собой графоподобные структуры, состоящие из агенты и края.

Агент типа и с арность есть один главный порт и вспомогательные порты. Любой порт может быть подключен не более чем к одному краю. Порты, которые не связаны ни с одним ребром, называются свободные порты. Свободные порты вместе образуют интерфейс сети взаимодействия. Все типы агентов входят в набор называется подпись.

Сеть взаимодействия, состоящая исключительно из ребер, называется сетью взаимодействия. проводка и обычно обозначается как . А дерево с этими корень индуктивно определяется либо как ребро , или как агент со своим основным свободным портом и его вспомогательные порты связаны с корнями других деревьев .

Графически примитивные структуры сетей взаимодействия можно представить следующим образом:

Примитивы сетей взаимодействия

Когда два агента соединяются друг с другом своими основными портами, они образуют активная пара. Фракционные пары можно ввести правила взаимодействия которые описывают, как активная пара перезаписывается в другую сеть взаимодействия. Сеть взаимодействия без активных пар называется нормальная форма. Подпись определены на нем) вместе с набором правил взаимодействия, определенных для агентов вместе составляют система взаимодействия.

Расчет взаимодействия

Текстовое представление сетей взаимодействия называется исчисление взаимодействий[4] и его можно рассматривать как язык программирования.

Индуктивно определенные деревья соответствуют термины в исчислении взаимодействий, где называется имя.

Любая сеть взаимодействия могут быть перерисованы с использованием ранее определенных примитивов проводки и дерева следующим образом:

Сеть взаимодействия как конфигурация

что в исчислении взаимодействий соответствует конфигурация

,

куда , , и являются произвольными терминами. Упорядоченная последовательность в левой части называется интерфейс, а в правой части - неупорядоченное мультимножество уравнения . Проводка переводится в имена, и каждое имя должно встречаться в конфигурации ровно дважды.

Как и в -исчисление, исчисление взаимодействий имеет понятия -конверсия и замена естественно определяется на конфигурациях. В частности, оба вхождения любого имени могут быть заменены новым именем, если последнее не встречается в данной конфигурации. Конфигурации считаются эквивалентными до -конверсия. В свою очередь, замена является результатом замены имени в срок с другим сроком если имеет ровно одно вхождение в термин .

Любое правило взаимодействия можно графически представить следующим образом:

Правило взаимодействия

куда , а сеть взаимодействия в правой части перерисовывается с использованием примитивов проводки и дерева для преобразования в исчисление взаимодействий как используя обозначения Лафонта.

Исчисление взаимодействий определяет сокращение конфигураций более подробно, чем видно из графического написания, определенного для сетей взаимодействия. А именно, если , следующее сокращение:

называется взаимодействие. Когда одно из уравнений имеет вид , косвенное обращение может применяться в результате замены другого вхождения имени в какой-то срок :

или же.

Уравнение называется тупик если имеет возникновение в срок . Обычно рассматриваются только сети взаимодействия без тупиков. Вместе взаимодействие и косвенность определяют отношение редукции в конфигурациях. Тот факт, что конфигурация сводится к его нормальная форма без оставшихся уравнений обозначается как .

Характеристики

Сети взаимодействия обладают следующими свойствами:

  • местонахождение (перезаписывать можно только активные пары);
  • линейность (каждое правило взаимодействия может применяться в постоянное время);
  • сильное слияние также известное как свойство одношагового алмаза (если и , тогда и для некоторых ).

Вместе эти свойства обеспечивают массовый параллелизм.

Комбинаторы взаимодействия

Одна из простейших систем взаимодействия, которая может имитировать любую другую систему взаимодействия, - это система комбинаторы взаимодействия.[5] Его подпись с и . Правила взаимодействия для этих агентов:

  • называется стирание;
  • называется дублирование;
  • и называется уничтожение.

Графически правила стирания и дублирования можно представить следующим образом:

Примеры сетей взаимодействия

с примером непрерывной сети взаимодействия, которая сводится к самой себе. Его бесконечная последовательность редукций, начиная с соответствующей конфигурации в исчислении взаимодействий, выглядит следующим образом:

Недетерминированное расширение

Сети взаимодействия по существу детерминированы и не могут напрямую моделировать недетерминированные вычисления. Чтобы выразить недетерминированный выбор, необходимо расширить сети взаимодействия. Фактически достаточно ввести всего один агент. [6] с двумя основными портами и следующими правилами взаимодействия:

Недетерминированный агент

Этот выделенный агент представляет собой неоднозначный выбор и может использоваться для моделирования любого другого агента с произвольным количеством основных портов. Например, он позволяет определить логическая операция, которая возвращает истину, если любой из ее аргументов истинен, независимо от вычислений, выполняемых в других аргументах.

Смотрите также

Рекомендации

  1. ^ Лафон, Ив (1990). «Сети взаимодействия». Материалы 17-го симпозиума ACM SIGPLAN-SIGACT по принципам языков программирования. ACM: 95–108. Дои:10.1145/96709.96718. ISBN  0897913434.
  2. ^ Маки, Ян (2008). «Реализация сети взаимодействия закрытого сокращения». Реализация и применение функциональных языков: 20-й международный симпозиум. Конспект лекций по информатике. 5836: 43–59. Дои:10.1007/978-3-642-24452-0_3. ISBN  978-3-642-24451-3.
  3. ^ ван Остром, Винсент; ван де Лой, Кеес-Ян; Zwitserlood, Marijn (2010). «Лямбдаскоп: еще одна оптимальная реализация лямбда-исчисления» (PDF). Цитировать журнал требует | журнал = (помощь)
  4. ^ Фернандес, Марибель; Маки, Ян (1999). «Расчет сетей взаимодействия». Принципы и практика декларативного программирования. Конспект лекций по информатике. Springer. 1702: 170–187. Дои:10.1007/10704567. ISBN  978-3-540-66540-3.
  5. ^ Лафон, Ив (1997). «Комбинаторы взаимодействия». Информация и вычисления. Academic Press, Inc. 137 (1): 69–101. Дои:10.1006 / inco.1997.2643.
  6. ^ Фернандес, Марибель; Халил, Лайонел (2003). «Сети взаимодействия с послом Маккарти: свойства и приложения». Северный вычислительный журнал. 10 (2): 134–162.

дальнейшее чтение

  • Асперти, Андреа; Геррини, Стефано (1998). Оптимальная реализация языков функционального программирования. Кембриджские трактаты в теоретической информатике. 45. Издательство Кембриджского университета. ISBN  9780521621120.
  • Фернандес, Марибель (2009). «Модели вычислений, основанные на взаимодействии». Модели вычислений: введение в теорию вычислимости. Springer Science & Business Media. С. 107–130. ISBN  9781848824348.

внешняя ссылка