Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Определения [ править ]

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

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

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

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

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

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

Исчисление взаимодействия [ править ]

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

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

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

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

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

,

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

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

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

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

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

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

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

или .

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

Свойства [ править ]

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

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

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

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

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

  • называется стиранием ;
  • называется дублированием ;
  • и называется аннигиляцией .

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

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

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

Недетерминированное расширение [ править ]

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

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

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

См. Также [ править ]

Ссылки [ править ]

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

Дальнейшее чтение [ править ]

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

Внешние ссылки [ править ]

  • де Фалько, Марк. «тикз-инет. Набор макросов на основе тикз для рисования сетей взаимодействия» .
  • де Фалько, Марк. "ИНЛ. Лаборатория сетей взаимодействия" .
  • Виласа, Мигель. «INblobs. Редактор и интерпретатор для Interaction Nets» .
  • Асперти, Андреа. "Болонская оптимальная машина высшего порядка" .
  • Салихметов, Антон. «Движок JavaScript для интерактивных сетей» .
  • Салихметов, Антон. «Макро-лямбда-исчисление» .