Введение

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

Варианты бисимуляции

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

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

Бисимуляция и модальная логика

Поскольку модели Крипке являются частным случаем (обозначенных) систем переходов состояний, бисимуляция также является темой, изучаемой в модальной логике. Фактически, модальная логика – это фрагмент логики первого порядка, инвариантный относительно бисимуляции (теорема ван Бентема).

Алгоритм

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