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