
- •Лекция 1 Список рекомендуемой литературы
- •Теория формальных языков. Модели языка по Хомскому
- •Обозначения
- •Лекция 2 Неоднозначность грамматики
- •Укорачивающие контекстно-свободные грамматики
- •Автоматные грамматики
- •Задача разбора
- •Нормальные формы Бэкуса-Наура. Б.Н.Ф. – нотация
- •Лекция 3
- •Контекстные условия
- •Конечные автоматы
- •Связь автоматных грамматик и конечных автоматов
- •Минимизация автоматов
- •Лекция 4 Машина Тьюринга
- •Минимизация конечного автомата
- •Кс-языки и их связь с мп-автоматами. Магазинная память (мп)
- •Мп-автоматы
- •Мп-автомат, распознающий язык {0n 1n | nN}
- •Графическое описание мп-автомата
- •Лекция 5
- •Совместимые состояния частичных автоматов
- •Нахождение максимальной группировки
- •Построение минимального частичного автомата
- •Модель динамического поведения. Асинхронный процесс как метамодель
- •Лекция 6 Асинхронный процесс
- •Лекция 7 Сети Петри
- •Пространство состояний сетей Петри
- •Анализ сетей Петри
- •Методы анализа сетей Петри. Дерево достижимости
- •Лекция 8 Матричные уравнения
- •Моделирование с помощью сетей Петри
- •События и условия
- •Одновременность и конфликт
Лекция 8 Матричные уравнения
Данный подход
основан на матричном представлении
сети Петри. Сеть Петри можно представить
в виде двух матриц ∆-
и ∆+,
определяющих входные и выходные функции.
Каждая матрица
имеетm
строк (по количеству переходов) и n
столбцов (по количеству позиций). Т.е.
элемент
определяет количество дуг, исходящих
из позиции рi
в переход
tj.
Аналогично определяется
- количество дуг, исходящих из переходаtj
в позицию рi.
Любой переход tj
можно обозначить m-мерным
вектором-строкой e[j],
имеющим везде нулевые значения, кроме
j-го
(оно равно 1). Тогда мы можем определить,
что переход tj
разрешён в маркировке μ, если μ
e[j]
∆-.
При этом результат запуска будет δ(μ,
tj)=
μ- e[j]∆-+
e[j]
∆+=
μ + e[j](-
∆-+
∆+)=
μ + e[j]
∆, где ∆= ∆+-∆-.
∆– составная матрица изменений.
Таким образом, для
последовательности запусков у =
мы
имеем ∆ (μ,у)= μ +e[j1]
∆+ e[j2]
∆+…+ e[jк]
∆= μ +(e[j1]
+ e[j2]+…+
e[jк])
∆= μ +f(у)
∆. Вектор f(у)
называется вектором запусков
последовательности у. i-ый
элемент f(у)i
вектора запусков f(у)
– это количество запусков перехода ti.
Полезность применения матричного подхода можно продемонстрировать, например, следующим образом. Рассмотрим задачу сохранения. Для её решения необходимо найти ненулевой вектор взвешивания, для которого взвешенная сумма по всем достижимым маркировкам постоянна. Пусть W – есть n-мерный вектор-столбец, состоящий из 1. Тогда если μ – начальная маркировка, а μ’ – произвольная достижимая маркировка, необходимо чтобы μ W= μ’W. Поскольку μ’ достижимо, то существует последовательность запусков переходов у, которая переводит м в μ’, т.е. μ’=δ(μ,у)= μ +f(у) ∆. μ’W= μ W+ f(у) ∆W.
Таким образом, f(у) ∆W=0. Для сохраняющей сети Петри это соотношение должно соблюдаться для любой последовательности запусков, т.е. любой f(у). Следовательно, мы имеем уравнение ∆W=0. Если имеется ненулевое решение данного уравнения, то сеть Петри является сохраняющей и соответствующий вектор W определяет искомый вектор весов сохранения.
Моделирование с помощью сетей Петри
С помощью сетей Петри могут быть смоделированы многие системы, но наиболее подходящими здесь являются системы с независимыми компонентами (например, аппаратное и программное обеспечение ЭВМ).
Сети Петри применяются для моделирования возникновения различных событий в системе. В частности, сети Петри могут моделировать потоки информации или других ресурсов в системе.
События и условия
Представление системы сети Петри основано на двух важных понятиях: событие и условие.
Событие – это действие, возникающее в системе. Возникновение события управляет состоянием системы. Оно может быть описано множеством условий, т.е. условие есть предикат или логическое описание состояния системы. Т.к. события есть действия, то они могут происходить (осуществляться). Для того, чтобы событие произошло, необходимо выполнение ряда условий. Эти условия называются предусловиями события. Возникновение события может вызвать нарушение предусловий и может привести к выполнению других условий. Эти условия называются постусловиями.
Пример моделирования простого автомата-продавца.
Автомат-продавец находится в состоянии ожидания до тех пор, пока не появится заказ. Затем он этот заказ выполняет и посылает на доставку. Условиями для такой системы являются:
Автомат-продавец ждёт заказ
Заказ пришёл и ждёт своего выполнения
Автомат-продавец выполняет заказ
Заказ выполнен
События:
Заказ поступил (возник)
Автомат-продавец начинает выполнение заказа
Автомат-продавец заканчивает выполнение заказа
Заказ посылается на доставку
Запишем таблицу, отражающую события и соответствующие им пред- и постусловия:
Событие |
Предусловие |
Постусловие |
1 |
- |
b |
2 |
a; b |
c |
3 |
c |
a; d |
4 |
d |
- |
В сети Петри условия представляются позициями, а события – переходами. При этом входами у перехода являются соответствующие предусловия, а выходами – постусловия. Возникновение события равносильно запуску перехода. Выполнение условия представляется фишкой в позиции, ему соответствующей.
Запуск перехода удаляет разрешающие фишки, которые представляют собой выполнение предусловий. После запуска перехода возникают новые фишки, представляющие выполнение постусловия.
Сеть Петри для нашего примера будет такой:
Очевидно, что в начальный момент функционирования автомата-продавца он находится в состоянии ожидания, т.е. в позиции а должна быть помещена фишка. Всё дальнейшее функционирование будет определяться срабатыванием перехода 1. Если мы немного изменим модель автомата-продавца, заявив, что на доставку могут отправляться заказы только по 3 штуки одновременно, то это приведёт к тому, что в новой сети Петри из позиции d в переход 4 будет идти 3 дуги.