stringtranslate.com

π-исчисление

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

В π -исчислении мало терминов, и это небольшой, но выразительный язык (см. § Синтаксис). Функциональные программы могут быть закодированы в π -исчислении, причем кодирование подчеркивает диалоговый характер вычислений, прорисовывая связи с игровой семантикой . Расширения π -исчисления, такие как SPI-исчисление и прикладное π , оказались успешными в рассуждениях о криптографических протоколах . Помимо первоначального использования для описания параллельных систем, π -исчисление также использовалось для рассуждений о бизнес-процессах [1] и молекулярной биологии . [2]

Неформальное определение

π - исчисление принадлежит к семейству исчислений процессов , математических формализмов для описания и анализа свойств параллельных вычислений. Фактически, π -исчисление, как и λ-исчисление , настолько минимально, что не содержит примитивов, таких как числа, логические значения, структуры данных, переменные, функции или даже обычные операторы потока управления (такие как if-then-else, while).

Конструкции процессов

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

В исчислении доступны следующие конструкции процессов [3] (точное определение дано в следующем разделе):

Хотя минимализм π -исчисления не позволяет нам писать программы в обычном смысле этого слова, исчисление легко расширить. В частности, легко определить как структуры управления, такие как рекурсия, циклы и последовательная композиция, так и типы данных, такие как функции первого порядка, значения истинности , списки и целые числа. Более того, были предложены расширения π -исчисления , которые учитывают распределение или криптографию с открытым ключом. Прикладное π -исчисление , предложенное Абади и Фурне [1], поставило эти различные расширения на формальную основу, расширив π -исчисление произвольными типами данных.

Небольшой пример

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

Первые два компонента могут взаимодействовать по каналу x , и имя y становится привязанным к z . Поэтому следующим шагом в этом процессе является

Обратите внимание, что оставшийся y не затрагивается, поскольку он определен во внутренней области видимости. Второй и третий параллельные компоненты теперь могут взаимодействовать по имени канала z , а имя v становится привязанным к x . Следующий шаг в этом процессе сейчас

Обратите внимание: поскольку выведено локальное имя x , область действия x расширяется и включает также третий компонент. Наконец, канал x можно использовать для отправки имени x . После этого все одновременно выполняющиеся процессы остановились

Формальное определение

Синтаксис

Пусть X — множество объектов, называемых именами . Абстрактный синтаксис π - исчисления построен на основе следующей грамматики BNF (где x и y — любые имена из Χ): [4]

В конкретном синтаксисе, приведенном ниже, префиксы связаны более тесно, чем параллельная композиция (|), а для устранения неоднозначности используются круглые скобки.

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

Структурное соответствие

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

Точнее, структурная конгруэнтность определяется как наименьшее отношение эквивалентности, сохраняемое конструкциями процесса и удовлетворяющее:

Альфа-конверсия :

  • if можно получить, переименовав одно или несколько связанных имен в .

Аксиомы параллельной композиции :

Аксиомы ограничения :

Аксиома репликации :

Аксиома, связывающая ограничение и параллель :

  • если x не является свободным именем .

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

Семантика сокращения

Пишем if can выполнить вычислительный шаг, после которого теперь . Это отношение редукции определяется как наименьшее отношение, замкнутое в соответствии с набором правил редукции.

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

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

Есть три дополнительных правила:

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

Последнее правило гласит, что структурно конгруэнтные процессы имеют одинаковые сокращения.

Повторный пример

Рассмотрим еще раз процесс

Применяя определение семантики редукции, получаем редукцию

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

Далее мы получаем сокращение

Обратите внимание: поскольку выведено локальное имя x , область действия x расширяется и включает также третий компонент. Это было зафиксировано с помощью аксиомы расширения области видимости.

Далее, используя аксиому редукционной замены, получаем

Наконец, используя аксиомы параллельной композиции и ограничения, мы получаем

Маркированная семантика

Альтернативно, можно придать пи-исчислению помеченную семантику перехода (как это было сделано с « Исчислением коммуникативных систем »).
В этой семантике переход из состояния в какое-либо другое состояние после действия обозначается как:

Где состояния и представляют процессы и являются либо входным действием , выходным действием , либо молчаливым действием τ . [5]

Стандартный результат о помеченной семантике состоит в том, что она согласуется с семантикой редукции до структурного соответствия в том смысле, что тогда и только тогда, когда [6]

Расширения и варианты

Синтаксис, приведенный выше, является минимальным. Однако синтаксис может быть изменен различными способами.

В синтаксис можно добавить оператор недетерминированного выбора .

В синтаксис можно добавить проверку на равенство имен . Этот оператор сопоставления может действовать так, как если бы и только если x и имеют одно и то же имя. Аналогичным образом можно добавить оператор несоответствия для неравенства имен . Практические программы, которые могут передавать имена (URL-адреса или указатели), часто используют такую ​​функциональность: для непосредственного моделирования такой функциональности внутри исчисления это и связанные с ним расширения часто бывают полезны.

Асинхронное π -исчисление [7] [ 8] допускает только выходные данные без продолжения, т.е. выходные атомы формы , что дает меньшее исчисление. Однако любой процесс в исходном исчислении может быть представлен меньшим асинхронным π -исчислением, использующим дополнительный канал для имитации явного подтверждения от принимающего процесса. Поскольку вывод без продолжения может моделировать сообщение в пути, этот фрагмент показывает, что исходное π -исчисление, интуитивно основанное на синхронной коммуникации, имеет внутри своего синтаксиса выразительную модель асинхронной связи. Однако определенный выше оператор недетерминированного выбора не может быть выражен таким образом, поскольку незащищенный выбор будет преобразован в защищенный; этот факт был использован для демонстрации того, что асинхронное исчисление строго менее выразительно, чем синхронное (с оператором выбора). [9]

Полиадическое π -исчисление позволяет передавать более одного имени за одно действие: ( полиадический вывод) и (полиадический ввод) . Это полиадическое расширение, которое особенно полезно при изучении типов процессов передачи имен, может быть закодировано в монадическом исчислении путем передачи имени частного канала, через который затем последовательно передаются несколько аргументов. Кодировка определяется рекурсивно с помощью предложений

кодируется как

кодируется как

Все остальные конструкции процесса при кодировании остаются неизменными.

В приведенном выше обозначение одинаково кодирует все префиксы в продолжении .

Полная мощность репликации не требуется. Часто учитываются только реплицированные входные данные , аксиома структурного соответствия которых равна .

Реплицированный процесс ввода, такой как серверы, ожидающие вызова клиента по каналу x . Вызов сервера порождает новую копию процесса , где a — имя, переданное клиентом серверу во время последнего вызова.

Можно определить π -исчисление более высокого порядка , в котором по каналам передаются не только имена, но и процессы. Ключевое правило приведения для случая более высокого порядка:

Здесь обозначает переменную процесса , экземпляр которой может быть создан термином процесса. Санджорджи установил, что возможность передавать процессы не увеличивает выразительность π - исчисления: передачу процесса P можно смоделировать, просто передав вместо этого имя, указывающее на P.

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

Полнота по Тьюрингу

π - исчисление является универсальной моделью вычислений . Впервые это заметил Милнер в своей статье «Функции как процессы» [10] , в которой он представляет две кодировки лямбда -исчисления в π -исчислении. Одна кодировка имитирует нетерпеливую стратегию оценки (вызов по значению) , другая кодировка имитирует стратегию нормального порядка (вызов по имени). В обоих случаях решающим моментом является моделирование привязок среды – например, « x привязан к term » – как реплицирующихся агентов, которые отвечают на запросы своих привязок, отправляя обратно соединение к term .

Особенности π -исчисления, которые делают возможным такое кодирование, — это передача имен и репликация (или, что то же самое, рекурсивно определенные агенты). В отсутствие репликации/рекурсии π -исчисление перестает быть Тьюринг-полным. Об этом можно судить по тому факту, что эквивалентность бисимуляции становится разрешимой для безрекурсивного исчисления и даже для π -исчисления с конечным управлением, где число параллельных компонентов в любом процессе ограничено константой. [11]

Бисимуляции вπ-исчисление

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

Существует (по крайней мере) три различных способа определения помеченной бисимуляционной эквивалентности в π -исчислении: раннее, позднее и открытое биподобие. Это связано с тем, что π -исчисление представляет собой исчисление процесса передачи значений.

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

Раннее и позднее бисходство

Раннее и позднее биподобие были сформулированы Милнером, Пэрроу и Уокером в их оригинальной статье о π -исчислении. [12]

Бинарное отношение к процессам является ранней бисимуляцией , если для каждой пары процессов

Процессы и называются ранними биподобными, если они написаны как пара для некоторой ранней бисимуляции .

В позднем бисходстве совпадение перехода должно быть независимым от передаваемого имени. Бинарное отношение к процессам является поздней бисимуляцией, если для каждой пары процессов

Процессы и называются поздними бисходными, если пара соответствует некоторой поздней бисимуляции .

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

Открытое бисходство

К счастью, возможно третье определение, которое позволяет избежать этой проблемы, а именно определение открытого биподобия , предложенное Санджорджи. [13]

Бинарное отношение над процессами является открытой бисимуляцией, если для каждой пары элементов , для каждой замены имени и каждого действия всегда существует такое, что и .

Процессы и называются открытыми биподобными, если они записаны как пара для некоторой открытой бисимуляции .

Различают раннее, позднее и открытое бисходство.

Различают раннее, позднее и открытое бисходство. Условия содержания правильные, так что …

Известно, что в некоторых субисчислениях, таких как асинхронное пи-исчисление, позднее, раннее и открытое биподобие совпадают. Однако в данном случае более подходящим понятием является асинхронное биподобие . В литературе термин « открытая бисимуляция» обычно относится к более сложному понятию, в котором процессы и отношения индексируются отношениями различия; подробности можно найти в статье Санджорджи, цитированной выше.

Колючая эквивалентность

Альтернативно, можно определить эквивалентность бисимуляции непосредственно из семантики редукции. Пишем, если процесс сразу разрешает ввод или вывод по имени .

Бинарное отношение над процессами является колючей бисимуляцией, если это симметричное отношение, которое удовлетворяет тому, что для каждой пары элементов мы имеем следующее:

(1) тогда и только тогда, когда для каждого имени

и

(2) для каждой редукции существует редукция

такой, что .

Мы говорим, что и являются колючими биподобными, если существует колючая бисимуляция, где .

Определяя контекст как π- терм с дыркой [], мы говорим, что два процесса P и Q являются колючими конгруэнтными , записанными , если для каждого контекста мы имеем это и являются колючими биподобными. Оказывается, колючая конгруэнтность совпадает с конгруэнтностью, вызванной ранним бисходством.

Приложения

π - исчисление использовалось для описания множества различных типов параллельных систем. Фактически, некоторые из новейших приложений выходят за рамки традиционной информатики.

В 1997 году Мартин Абади и Эндрю Гордон предложили расширение π - исчисления, Spi-исчисление, в качестве формальной записи для описания и рассуждений о криптографических протоколах. Спи-исчисление расширяет π -исчисление примитивами для шифрования и дешифрования. В 2001 году Мартин Абади и Седрик Фурне обобщили обработку криптографических протоколов для создания прикладного π- исчисления. В настоящее время существует большой объем работ, посвященных вариантам прикладного π -исчисления, включая ряд экспериментальных инструментов проверки. Одним из примеров является инструмент ProVerif [2] Бруно Бланше, основанный на переводе прикладного π -исчисления в структуру логического программирования Бланше. Другим примером является Cryptyc [3], созданный Эндрю Гордоном и Аланом Джеффри, который использует метод утверждений соответствия Ву и Лама в качестве основы для систем типов, которые могут проверять свойства аутентификации криптографических протоколов.

Примерно в 2002 году Говард Смит и Питер Фингар заинтересовались тем, что π -исчисление станет инструментом описания для моделирования бизнес-процессов. К июлю 2006 года в сообществе началась дискуссия о том, насколько это будет полезно. Совсем недавно π -исчисление сформировало теоретическую основу языка моделирования бизнес-процессов (BPML) и Microsoft XLANG. [14]

π - исчисление также вызвало интерес в молекулярной биологии. В 1999 году Авив Регев и Эхуд Шапиро показали, что можно описать клеточный сигнальный путь (так называемый каскад RTK / MAPK ) и, в частности, молекулярное «лего», которое реализует эти задачи коммуникации в расширении π -исчисления. [2] После этой плодотворной статьи другие авторы описали всю метаболическую сеть минимальной клетки. [15] В 2009 году Энтони Нэш и Сара Калвала предложили структуру π -исчисления для моделирования передачи сигнала, которая управляет агрегацией Dictyostelium discoideum . [16]

История

π - исчисление было первоначально разработано Робином Милнером , Иоахимом Пэрроу и Дэвидом Уокером в 1992 году на основе идей Уффе Энгберга и Могенса Нильсена. [17] Его можно рассматривать как продолжение работы Милнера по исчислению процессов CCS ( Исчисление коммуникационных систем ). В своей лекции Тьюринга Милнер описывает развитие π -исчисления как попытку уловить единообразие ценностей и процессов у акторов. [18]

Реализации

Следующие языки программирования реализуют π -исчисление или один из его вариантов:

Примечания

  1. ^ Спецификация OMG (2011). «Модель бизнес-процессов и нотация (BPMN) версии 2.0», Группа управления объектами . стр.21
  2. ^ аб Регев, Авив ; Уильям Сильверман; Эхуд Ю. Шапиро (2001). «Представление и моделирование биохимических процессов с использованием алгебры процессов пи-исчисления». Тихоокеанский симпозиум по биокомпьютингу : 459–470. дои : 10.1142/9789814447362_0045. ISBN 978-981-02-4515-3. ПМИД  11262964.
  3. Винг, Жаннетт М. (27 декабря 2002 г.). «Часто задаваемые вопросы по π-исчислению» (PDF) .
  4. ^ Исчисление мобильных процессов, часть 1, стр. 10, Р. Милнер, Дж. Пэрроу и Д. Уокер, опубликовано в Information and Computation 100 (1), стр. 1-40, сентябрь 1992 г.
  5. ^ Робин Милнер, Коммуникационные и мобильные системы: исчисление Пи, Cambridge University Press, ISBN 0521643201 . 1999 год 
  6. ^ Санджорджи Д. и Уокер Д. (2003). стр. 51, Пи-исчисление. Издательство Кембриджского университета.
  7. ^ Будоль, Г. (1992). Асинхронность и π -исчисление. Технический отчет 1702, INRIA, София-Антиполис .
  8. ^ Хонда, К.; Токоро, М. (1991). Объектное исчисление для асинхронной связи. ЭКООП 91 . Спрингер Верлаг.
  9. ^ Паламидесси, Катусия (1997). «Сравнение выразительной силы синхронного и асинхронного пи-исчисления». Материалы 24-го симпозиума ACM по принципам языков программирования : 256–265. arXiv : cs/9809008 . Бибкод : 1998cs........9008P.
  10. ^ Милнер, Робин (1992). «Функции как процессы» (PDF) . Математические структуры в информатике . 2 (2): 119–141. дои : 10.1017/s0960129500001407. hdl : 20.500.11820/159b09c0-1147-4f32-baf0-23bed198f12a . S2CID  36446818.
  11. ^ Дам, Мэдс (1997). «О разрешимости эквивалентностей процессов для пи-исчисления». Теоретическая информатика . 183 (2): 215–228. дои : 10.1016/S0304-3975(96)00325-8.
  12. ^ Милнер, Р.; Дж. Пэрроу; Д. Уокер (1992). «Исчисление подвижных процессов» (PDF) . Информация и вычисления . 100 (1): 1–40. дои : 10.1016/0890-5401(92)90008-4. hdl : 20.500.11820/cdd6d766-14a5-4c3e-8956-a9792bb2c6d3 .
  13. ^ Санджорджи, Д. (1996). «Теория бисимуляции π-исчисления». Акта Информатика . 33 : 69–97. дои : 10.1007/s002360050036. S2CID  18155730.
  14. ^ «BPML | BPEL4WS: путь конвергенции к стандартному стеку BPM». Документ с изложением позиции BPMI.org. 15 августа 2002 г.
  15. ^ Кьяруджи, Давиде; Пьерпаоло Дегано; Роберто Марангони (2007). «Вычислительный подход к функциональному скринингу геномов». PLOS Вычислительная биология . 3 (9): 1801–1806. Бибкод : 2007PLSCB...3..174C. дои : 10.1371/journal.pcbi.0030174 . ЧВК 1994977 . ПМИД  17907794. 
  16. ^ Нэш, А.; Калвала, С. (2009). «Рамочное предложение клеточной локальности диктиостелиума, смоделированное в π-исчислении» (PDF) . КоСМоС 2009 .
  17. ^ Энгберг, Ю.; Нильсен, М. (1986). «Расчет коммуникационных систем с передачей меток». Серия отчетов DAIMI . 15 (208). дои : 10.7146/dpb.v15i208.7559 .
  18. ^ Робин Милнер (1993). «Элементы взаимодействия: лекция на премию Тьюринга». Коммун. АКМ . 36 (1): 78–89. дои : 10.1145/151233.151240 .

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