Π-исчисление - Π-calculus

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

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

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

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

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

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

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

  • параллелизм, написано , куда и это два процесса или потока, выполняемые одновременно.
  • коммуникация, куда
    • префикс ввода это процесс, ожидающий сообщения, которое было отправлено по каналу связи с именем прежде чем продолжить как , привязка полученного имени к имени Икс. Обычно это моделирует либо процесс, ожидающий связи от сети, либо метку. c можно использовать только один раз goto c операция.
    • префикс вывода описывает, что имя излучается на канале прежде чем продолжить как . Обычно это модели отправки сообщения в сети или goto c операция.
  • репликация, написано , который можно рассматривать как процесс, который всегда может создать новую копию . Обычно это модель либо сетевой службы, либо метки. c ожидая любого количества goto c операции.
  • создание нового имени, написано , который можно рассматривать как процесс выделения новой константы Икс в . Константы π-исчисление определяются только своими именами и всегда являются каналами связи. Создание нового имени в процессе также называется ограничение.
  • нулевой процесс, написанный , - это процесс, выполнение которого завершено и остановлено.

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

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

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

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

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

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

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

Синтаксис

Пусть Χ - множество объектов, называемых имена. В абстрактный синтаксис для π-calculus построен из следующих Грамматика BNF (куда Икс и у любые имена из Χ):[4]


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

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

ПостроитьБесплатные имена
Никто
а; Икс; все бесплатные имена п
а; бесплатные имена п кроме Икс
Все бесплатные имена п и Q
Бесплатные имена п кроме Икс
Все бесплатные имена п

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

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

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

Альфа-преобразование:

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

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

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

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

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

  • если Икс это не свободное имя .

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

Семантика редукции

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Помеченная семантика

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

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

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

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

Приведенный выше синтаксис минимален. Однако синтаксис можно изменять по-разному.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В π-calculus - это универсальная модель вычислений. Впервые это заметил Milner в своей статье «Функции как процессы»,[9] в котором он представляет две кодировки лямбда-исчисление в π-исчисление. Одна кодировка имитирует стремление (по значению) стратегия оценки, другая кодировка моделирует стратегию обычного порядка (вызов по имени). В обоих случаях ключевым моментом является моделирование привязок среды - например, "Икс обязательно к сроку "- как реплицирующие агенты, которые отвечают на запросы своих привязок, отправляя обратно соединение с термином .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Открытое двойное сходство

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

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

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

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

Различают раннее, позднее и открытое двойное сходство. Условия содержания в порядке, поэтому .

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

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

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

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

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

и

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

такой, что .

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

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

Приложения

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

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

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

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

История

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

Реализации

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

Примечания

  1. ^ Спецификация OMG (2011 г.). «Модель бизнес-процесса и нотация (BPMN) Версия 2.0», Группа управления объектами. стр.21
  2. ^ а б Регев, Авив; Уильям Сильверман; Эхуд Ю. Шапиро (2001). "Представление и моделирование биохимических процессов с использованием алгебры процессов пи-исчисления". Тихоокеанский симпозиум по биокомпьютингу: 459–470.
  3. ^ Wing, Жаннетт М. (27 декабря 2002 г.). «FAQ по π-исчислению» (PDF).
  4. ^ Расчет мобильных процессов, часть 1 стр. 10, Р. Милнер, Дж. Парроу и Д. Уокер, опубликованные в Information and Computation 100 (1) pp. 1-40, сентябрь 1992 г.
  5. ^ Робин Милнер, Коммуникационные и мобильные системы: вычисление числа Пи, Cambridge University Press, ISBN  0521643201. 1999
  6. ^ Будоль, Г. (1992). Асинхронность и π-исчисление. Технический отчет 1702, INRIA, София-Антиполис.
  7. ^ Honda, K .; Токоро, М. (1991). Объектное исчисление для асинхронной связи. ECOOP 91. Springer Verlag.
  8. ^ Паламидесси, Катуша (1997). «Сравнение выразительной силы синхронного и асинхронного пи-исчисления». Материалы 24-го симпозиума ACM по принципам языков программирования: 256–265. arXiv:cs / 9809008. Bibcode:1998cs ........ 9008P.
  9. ^ Милнер, Робин (1992). «Функции как процессы» (PDF). Математические структуры в информатике. 2 (2): 119–141. Дои:10.1017 / s0960129500001407.
  10. ^ Плотина, Мэдс (1997). «О разрешимости эквивалентностей процессов для пи-исчисления». Теоретическая информатика. 183 (2): 215–228. Дои:10.1016 / S0304-3975 (96) 00325-8.
  11. ^ Milner, R .; Дж. Парроу; Д. Уокер (1992). «Исчисление мобильных процессов» (PDF). Информация и вычисления. 100 (1): 1–40. Дои:10.1016/0890-5401(92)90008-4.
  12. ^ Санджорджи, Д. (1996). «Теория бисимуляции для π-исчисления». Acta Informatica. 33: 69–97. Дои:10.1007 / s002360050036.
  13. ^ «BPML | BPEL4WS: путь конвергенции к стандартному стеку BPM». Документ с изложением позиции BPMI.org. 15 августа 2002 г.
  14. ^ Кьяруги, Давиде; Пьерпаоло Дегано; Роберто Марангони (2007). «Вычислительный подход к функциональному скринингу геномов». PLOS вычислительная биология. 3 (9): 1801–1806. Дои:10.1371 / journal.pcbi.0030174. ЧВК  1994977. PMID  17907794.
  15. ^ Nash, A .; Калвала, С. (2009). «Основное предложение для клеточной локальности Dictyostelium, смоделированное в π-исчислении» (PDF). CoSMoS 2009.
  16. ^ Engberg, U .; Нильсен, М. (1986). «Расчет систем связи с передачей меток». Серия отчетов DAIMI. 15 (208). Дои:10.7146 / dpb.v15i208.7559.
  17. ^ Робин Милнер (1993). «Элементы взаимодействия: лекция о премии Тьюринга». Commun. ACM. 36 (1): 78–89. Дои:10.1145/151233.151240.

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

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