Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архив1 / docx56 / Отчет(4)

.docx
Скачиваний:
22
Добавлен:
01.08.2013
Размер:
61.9 Кб
Скачать

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

Уфимский государственный авиационный технический университет

Кафедра вычислительной математики и кибернетики

Расчетно-графическая работа по курсу

«Теория вычислительных процессов и структур»

Тема: Моделирование работы сетей Петри. Анализ свойств сетей Петри

Группа МO-327

Ф.И.О.

Подпись

Дата

Оценка

Студент

Хамзин Р.Н.

Студент

Стефанович Ю.Н.

Принял

Зотова О.Ф

Уфа-2012

  1. Постановка задачи

    1. Цель работы

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

    1. Задание

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

    1. Методика выполнения РГР

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

Сеть Петри задается пользователем или загружается из файла. Для задания сети Петри используется графический интерфейс:

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

  • пользователь рисует дуги, соединяющие вершины (только вершины из разных классов),

  • пользователь размещает фишки в позициях  таким образом, задается начальная маркировка.

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

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

Если выбран автоматический режим, то после нажатия кнопки «Запуск сети» пользователь видит, как последовательно меняется маркировка сети (перемещаются фишки). Если возможен запуск нескольких переходов, то программа должна случайным образом выбирать один из разрешенных к запуску переходов на очередном шаге. Работа сети останавливается при достижении конечной маркировки или при нажатии кнопки «Стоп» пользователем.

Если выбран пошаговый режим, то после нажатия кнопки «Запуск сети» пользователь видит очередную маркировку, если разрешен только один переход в сети, или выбирает один из разрешенных к запуску переходов, после чего видит новую маркировку. Далее пользователь снова нажимает кнопку «Запуск сети». Процесс продолжается, пока не будет получена конечная маркировка, или пока пользователь не перестанет нажимать кнопку «Запуск сети».

  1. Анализ свойств сети Петри на основе матричного подхода

Реализовать решение задачи достижимости маркировки и задачи сохранения по отношению к вектору взвешивания на основе матричного подхода.

Реализовать анализ следующих свойств сети:

  • конфликтность,

  • параллелизм.

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

  1. Описание способа решения

1. Задание сети Петри.

Задание сети Петри осуществляется с помощью объектов классов Place (позиции), Transition (переходы) и Arc (дуги). Классы Place и Transition наследуются от класса Vertex. В классах Place и Transition хранится информация о номере вершины, описаны методы для удаления, перемещения и добавления вершин. В классе Arc хранится информация о вершинах, которые соединяет дуга, о кратности дуги, а так же методы для удаления, создания дуг и изменения их кратности.

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

2. Задание начальной маркировки.

Пользователь вручную выделяет каждую позицию и задает количество фишек в ней. Таким образом задается начальная маркировка.

3. Моделирование работы.

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

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

4. Решение задачи достижимости.

Для данной сети Петри с начальной маркировкой определить, принадлежит ли множеству .

Если маркировка достижима из , то существует последовательность запусков переходов , которая приводит из к . Следовательно, является целым неотрицательным решением матричного уравнения относительно : , где .

Решение этой задачи описывается в классе Reachability.

5. Решение задачи сохранения по отношению к вектору взвешивания.

Чтобы установить, является ли данная СП сохраняющей по отношению к вектору взвешивания , необходимо выполнение условия:

.

Воспользуемся фундаментальным уравнением:

Поскольку (1) выполняется для любой последовательности , то . Данное условие является необходимым и достаточным для того, чтобы СП была сохраняющей.

СП является сохраняющей по отношению к вектору взвешивания тогда и только тогда, когда существует положительный вектор , для которого .

Решение этой задачи описывается SaveVector.

6. Анализ свойства параллелизма.

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

7. Анализ свойства конфликтности.

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

  1. Описание работы с программой

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

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

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

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

Элементы сети удаляются при нажатии на клавишу Delete.

Чтобы проверить сеть на сохранение, нужно щелкнуть по кнопке «Задача сохранения».

Чтобы проверить достижимость маркировки, нужно щелкнуть по кнопке «Достижимость маркировки», установить маркировку, которую нужно проверить, и щелкнуть по кнопке «Проверить достижимость».

Допустимые переходы окрашены в желтый цвет, недопустимые – в черный. Допустимый переход можно выделить и щелкнуть по кнопке «Ручной запуск перехода», тогда он будет запущен. Так же можно щелкнуть по кнопке «Автоматический запуск переходов», тогда будет активирован автоматический запуск переходов (!!!).

Внизу окна программы расположена информация о свойствах конфликтности и параллелизма.

  1. Заключение

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

Соседние файлы в папке docx56