Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекцій КМ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.98 Mб
Скачать

6.2 Мережі Петрі

Мережі Петрі (МП) – це математична модель, яка використовується для моделювання динамічних потоків.

МП є орієнтованим дводольним графом, який має 4 базові елементи: вузли або місця, переходи, дуги і маркери.

Дводальний граф – це граф, який має дві множини вузлів і не має ребер, які з’єднують вузли однієї множини. Вузли позначаються кружками і визначаються стан, в якому може знаходитись мережа або її частина.

Переходи – це активні елементи мережі, які позначають дії, які виконуються під час спрацювання переходів. Для того, щоб перехід міг спрацювати, необхідне використання певних умов, які визначаються наявністю маркерів у вузлах мережі, з’єднаних з переходом. Якщо умови настання подій подій виконано, то вважають що перехід збуджений. Переходи позначаються короткими вертикальними або горизонтальними лініями.

Вузли та переходи з’єднуються орієнтованими ребрами (дугами). Вузли, з яких виходять дуги до певного переходу називаються вхідними, а вузли до яких ведуть дуги називають вихідними. Два вузли або два переходи з’єднюватись дугами не можуть. Кожний перехід може бути з’єднаним з вузлом тільки однією дугою (вхідною або вихідною).

Вузли можна розглядати як певні умови, а переходи як події. Таким чином, стан мережі в кожний момент часу задається системою умов. Для зручності задання умов у мережі Петрі вводяться маркери, які зображуються крапками в середині вузлів. Виникнення певної комбінації маркерів у вузлах призводить до настання деякої події, яка в свою чергу викликає зміну стану умов мережі.

а) спрацювання переходу б) після переходу

Рисунок 6.3 - Проста мережа Петрі

Перехід, в якого всі вхідні вузли містять маркери називають збудженим. Збуджений перехід може спрацювати, після чого всі маркери із вхідних вузлів переходу перемістяться у вихідні (рис. 15,1б). Таким чином настає подія, яка змінює стан мережі.

Якщо одночасно збуджується кілька переходів мережі, виникає невизначеність, тому одночасне спрацювання кількох переходів у МП неможливе, тобто переходи спрацьовують послідовно, миттєво. Незважаючи на те, що маркери змінюють своє положення у вузлах, прості МП – це статичні моделі, в яких не враховується динаміка в часі (зміна станів мережі не залежить від моментів часу). Для того щоб за допомогою МП відтворити динаміку системи, треба зазначити моменти часу спрацювання переходів.

Розмітка МП

Розмітка М мережі Петрі – це функція, яка ставить у відповідність маркерам вузлів цілі додатні числа. Суть розмітки полягає в приписуванні кожному вузлу певної кількості маркерів. Наприклад, якщо позначити через N – саму мережу Петрі, через Р – множину вузлів у мережі N, через n (Р) – кількість вузлів, то кожному вузлу цієї мережі можна поставити у відповідність число із послідовностей {1,2,…n(Р)}. Таким чином, розмітку M можна зобразити за допомогою вектора n(P) елементів в якому і-ий елемент визначає кількість маркерів у і-му вузлі. У загальному випадку кількість маркерів може бути > 1.

Рисунок 6.4 – Мережа Петрі, яка може бути заблокованою

На рисунку 15.2 зображено МП, яка може перейти, в такий стан, коли жоден з переходів не буде збудженим. Мережа в такому стані називається заблокованою. Розмітка задається так М = [2, 0, 0]; Р = { 1, 2, 3}; n(P) = 3; а,b,c,d – переходи.

Переходи a, b можуть бути збудженими, а переходи c,d – ні. У результаті збудження та спрацювання переходу а отримаємо розмітку m1=[1, 1, 0], за якою збуджується переходи а, b, c. У разі спрацювання переходу с отримаємо мережу з новою розміткою m2 = [2, 0, 0], а якщо b – то [0, 1 ,1] – заблоковано.

У МП паралельне спрацювання переходів обмежується тільки кількістю маркерів у вузлах, тобто для спрацювання переходів мають бути маркери у всіх вхідних вузлах.

Перехід, в якого немає жодного вхідного вузла завжди є збудженим і може генерувати маркери. Перехід, який немає жодної вихідної дуги, і має тільки 1 вхідну дугу збуджений тільки тоді, якщо вхідний вузол містить маркер. Такий перехід може знищувати маркери.

Правила маркування

1 Перехід збуджується тоді, коли число, яке визначає кількість маркерів у кожному вхідному вузлі > або = 1;

2 Якщо збуджений перехід спрацьовує, то число маркерів у всіх вхідних вузлах, які містять маркери, зменшується на 1, у всіх вихідних вузлах збільшується на 1. Кількість маркерів не можу бути меншою за 0.

Приклад 6.3

Два обчислювальні процеси Пр 1 і Пр 2 намагаються одночасно записати дані в пам’ять в П1 і зчитати з П2. Проблема – синхронізація доступу до пам’яті. Активний тільки один процес.

М1 = [1, 0, 1, 0, 1]. Якщо процес Пр1 хоче змінити свій стан на активний ( записати дані) він збуджує свій перехід і зманює розмітку на пасивну M = [0, 1, 0, 0, 1], таким чином збудження переходу процесу Пр2 (зчитування даних) не станеться доти, доки Пр1 не перейде в постійний стан і розмітка не стане М1.

Розширення мереж Петрі

1 Введення вагових коефіцієнтів.

Для кожної позитивної дуги можна задати певний ваговий коефіцієнт (вагу) = 1 або >1. За замовчуванням =1.

Перехід збуджується тоді, коли кількість маркерів у кожному вхідному вузлі більша ваги дуги або дорівнює їй.

У разі спрацювання переходу кількість маркерів кожного вхідного вузла зменшується на відповідну вагу вхідної дуги, а кількість маркерів вихідного вузла збільшується на вагу вихідної дуги.

2 Розширення можливостей вузлів під час моделювання.

У МП вузли виступають як сховище даних, а переходи як потоки даних. Маркером можна призначити різні типи даних (цілі, рядки і т. д.).

Можна зазначити режим доступу до маркерів (тобто, яким чином маркери надходять до вузлів і як вилучаються). Це дає можливість формувати у вузлах черги маркерів (як у СМО).

  1. RAM – принцип випадкового доступу, маркер, що надійшов розміщується в черзі випадково, у разі спрацювання переходу вибирається із черги випадково.

  2. FIFO – маркер, що надійшов стає в чергу останнім, а вибирається з неї перший ( 1-ий прийшов, 1-ий покинув).

  3. LIFO – принцип «останній прийшов - перший покинув».

  4. FIFORAM – «прийшов випадково – першим покинув».

  5. LIFORAM - «прийшов випадково – останній першим покинув».