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