Сети взаимодействия - Interaction nets
Сети взаимодействия являются графическим модель вычисления разработан Ив Лафон в 1990 году[1] как обобщение структур доказательства линейная логика. Система сети взаимодействия определяется набором типов агентов и набором правил взаимодействия. Сети взаимодействия по своей сути являются распределенной моделью вычислений в том смысле, что вычисления могут выполняться одновременно во многих частях сети взаимодействия, и синхронизация не требуется. Последнее гарантируется свойством сильного слияния редукции в этой модели вычислений. Таким образом, сети взаимодействия предоставляют естественный язык для массового параллелизма. Сети взаимодействия лежат в основе многих реализаций лямбда-исчисление, например, эффективная закрытая редукция[2] и оптимальная в смысле Леви Lambdascope.[3]
Определения
Сети взаимодействий представляют собой графоподобные структуры, состоящие из агенты и края.
Агент типа и с арность есть один главный порт и вспомогательные порты. Любой порт может быть подключен не более чем к одному краю. Порты, которые не связаны ни с одним ребром, называются свободные порты. Свободные порты вместе образуют интерфейс сети взаимодействия. Все типы агентов входят в набор называется подпись.
Сеть взаимодействия, состоящая исключительно из ребер, называется сетью взаимодействия. проводка и обычно обозначается как . А дерево с этими корень индуктивно определяется либо как ребро , или как агент со своим основным свободным портом и его вспомогательные порты связаны с корнями других деревьев .
Графически примитивные структуры сетей взаимодействия можно представить следующим образом:
Когда два агента соединяются друг с другом своими основными портами, они образуют активная пара. Фракционные пары можно ввести правила взаимодействия которые описывают, как активная пара перезаписывается в другую сеть взаимодействия. Сеть взаимодействия без активных пар называется нормальная форма. Подпись (с определены на нем) вместе с набором правил взаимодействия, определенных для агентов вместе составляют система взаимодействия.
Расчет взаимодействия
Текстовое представление сетей взаимодействия называется исчисление взаимодействий[4] и его можно рассматривать как язык программирования.
Индуктивно определенные деревья соответствуют термины в исчислении взаимодействий, где называется имя.
Любая сеть взаимодействия могут быть перерисованы с использованием ранее определенных примитивов проводки и дерева следующим образом:
что в исчислении взаимодействий соответствует конфигурация
,
куда , , и являются произвольными терминами. Упорядоченная последовательность в левой части называется интерфейс, а в правой части - неупорядоченное мультимножество уравнения . Проводка переводится в имена, и каждое имя должно встречаться в конфигурации ровно дважды.
Как и в -исчисление, исчисление взаимодействий имеет понятия -конверсия и замена естественно определяется на конфигурациях. В частности, оба вхождения любого имени могут быть заменены новым именем, если последнее не встречается в данной конфигурации. Конфигурации считаются эквивалентными до -конверсия. В свою очередь, замена является результатом замены имени в срок с другим сроком если имеет ровно одно вхождение в термин .
Любое правило взаимодействия можно графически представить следующим образом:
куда , а сеть взаимодействия в правой части перерисовывается с использованием примитивов проводки и дерева для преобразования в исчисление взаимодействий как используя обозначения Лафонта.
Исчисление взаимодействий определяет сокращение конфигураций более подробно, чем видно из графического написания, определенного для сетей взаимодействия. А именно, если , следующее сокращение:
называется взаимодействие. Когда одно из уравнений имеет вид , косвенное обращение может применяться в результате замены другого вхождения имени в какой-то срок :
или же.
Уравнение называется тупик если имеет возникновение в срок . Обычно рассматриваются только сети взаимодействия без тупиков. Вместе взаимодействие и косвенность определяют отношение редукции в конфигурациях. Тот факт, что конфигурация сводится к его нормальная форма без оставшихся уравнений обозначается как .
Характеристики
Сети взаимодействия обладают следующими свойствами:
- местонахождение (перезаписывать можно только активные пары);
- линейность (каждое правило взаимодействия может применяться в постоянное время);
- сильное слияние также известное как свойство одношагового алмаза (если и , тогда и для некоторых ).
Вместе эти свойства обеспечивают массовый параллелизм.
Комбинаторы взаимодействия
Одна из простейших систем взаимодействия, которая может имитировать любую другую систему взаимодействия, - это система комбинаторы взаимодействия.[5] Его подпись с и . Правила взаимодействия для этих агентов:
- называется стирание;
- называется дублирование;
- и называется уничтожение.
Графически правила стирания и дублирования можно представить следующим образом:
с примером непрерывной сети взаимодействия, которая сводится к самой себе. Его бесконечная последовательность редукций, начиная с соответствующей конфигурации в исчислении взаимодействий, выглядит следующим образом:
Недетерминированное расширение
Сети взаимодействия по существу детерминированы и не могут напрямую моделировать недетерминированные вычисления. Чтобы выразить недетерминированный выбор, необходимо расширить сети взаимодействия. Фактически достаточно ввести всего один агент. [6] с двумя основными портами и следующими правилами взаимодействия:
Этот выделенный агент представляет собой неоднозначный выбор и может использоваться для моделирования любого другого агента с произвольным количеством основных портов. Например, он позволяет определить логическая операция, которая возвращает истину, если любой из ее аргументов истинен, независимо от вычислений, выполняемых в других аргументах.
Смотрите также
- Геометрия взаимодействия
- Переписывание графа
- Лямбда-исчисление
- Грамматика линейного графа
- Линейная логика
- Доказательство сети
Рекомендации
- ^ Лафон, Ив (1990). «Сети взаимодействия». Материалы 17-го симпозиума ACM SIGPLAN-SIGACT по принципам языков программирования. ACM: 95–108. Дои:10.1145/96709.96718. ISBN 0897913434.
- ^ Маки, Ян (2008). «Реализация сети взаимодействия закрытого сокращения». Реализация и применение функциональных языков: 20-й международный симпозиум. Конспект лекций по информатике. 5836: 43–59. Дои:10.1007/978-3-642-24452-0_3. ISBN 978-3-642-24451-3.
- ^ ван Остром, Винсент; ван де Лой, Кеес-Ян; Zwitserlood, Marijn (2010). «Лямбдаскоп: еще одна оптимальная реализация лямбда-исчисления» (PDF). Цитировать журнал требует
| журнал =
(помощь) - ^ Фернандес, Марибель; Маки, Ян (1999). «Расчет сетей взаимодействия». Принципы и практика декларативного программирования. Конспект лекций по информатике. Springer. 1702: 170–187. Дои:10.1007/10704567. ISBN 978-3-540-66540-3.
- ^ Лафон, Ив (1997). «Комбинаторы взаимодействия». Информация и вычисления. Academic Press, Inc. 137 (1): 69–101. Дои:10.1006 / inco.1997.2643.
- ^ Фернандес, Марибель; Халил, Лайонел (2003). «Сети взаимодействия с послом Маккарти: свойства и приложения». Северный вычислительный журнал. 10 (2): 134–162.
дальнейшее чтение
- Асперти, Андреа; Геррини, Стефано (1998). Оптимальная реализация языков функционального программирования. Кембриджские трактаты в теоретической информатике. 45. Издательство Кембриджского университета. ISBN 9780521621120.
- Фернандес, Марибель (2009). «Модели вычислений, основанные на взаимодействии». Модели вычислений: введение в теорию вычислимости. Springer Science & Business Media. С. 107–130. ISBN 9781848824348.
внешняя ссылка
- де Фалько, Марк. «тикз-инет. Набор макросов на основе тикз для рисования сетей взаимодействия».
- де Фалько, Марк. "ИНЛ. Лаборатория сетей взаимодействия".
- Виласа, Мигель. «INblobs. Редактор и интерпретатор для Interaction Nets».
- Асперти, Андреа. «Болонская оптимальная машина высшего порядка».
- Салихметов, Антон. "Двигатель JavaScript для интерактивных сетей".
- Салихметов, Антон. «Макро-лямбда-исчисление».