C/C++

Помогите пожалуйста разобраться в сети Петри

Уважаемые, помогите пожалуйста разобраться в сети Петри. Объясните как осуществляется движение по фишкам и какое значение появляется на каждой из них. (Условно возьмем значение N=3)

Задание было следующее: Создать сеть Петри, реализующую следующий функционал: уменьшение двоично-десятичного пятиразрядного счетчика на число в диапазоне от 1 до 19, введенное пользователем. Начальное значение счетчика – 11001. Код на С++ <----- Ссылка на код
Продравшись через странную логику реализации классов TPetry и TCounterPetry, попробую ответить.

(Хочу заметить, что сеть, задаваемая в программе, отличается от сети на рисунке.)

Места p1 – p5 представляют собой пять разрядов двоично-десятичного числа (p1 – p4 — цифра единиц, p5 — цифра десятков). Максимальное число, представимое таким образом (места p1 – p5 являются 1-ограниченными, то есть безопасными), равно 19 (10 + 8 + 1). И именно это максимальное число задано в качестве начальной маркировки для p1 – p5.

В программе применяется последовательностная интерпретация работы сети Петри.

За один шаг сеть производит уменьшение числа в p1 – p5 на 1 следующим образом*:

1. Если можно вычесть 1 из p1 (переход t1 разрешён), то p1-1 (число ....1 → ....0), p0-1.

2. Иначе если можно вычесть 1 из p2 (переход t2 разрешён), то p2-1, p1+1 (число ...10 → ...01), p0-1.

3. Иначе если можно вычесть 1 из p3 (переход t3 разрешён), то p3-1, p2+1, p1+1 (число ..100 → ..011), p0-1.

4. Иначе если можно вычесть 1 из p4 (переход t4 разрешён), то p4-1, p3+1, p2+1, p1+1 (число .1000 → .0111), p0-1.

5. Иначе если можно вычесть 1 из p5 (переход t5 разрешён), то p5-1, p4+1, p1+1 (число 10000 → 01001, то есть десять в девять), p0-1.

* pn-1 означает дугу из pn в соответствующий переход, то есть уход фишки из pn при срабатывании перехода.
pn+1 означает дугу из соответствующего перехода в pn, то есть приход фишки в pn при срабатывании перехода.


Шаги повторяются, пока в p0 есть фишки.
Ден™ Ногузазаборенко
Ден™ Ногузазаборенко
12 091
Лучший ответ
Ольга Бойко (Котиева) Спасибо большое за пояснение. Можете помочь, что в сети петри не правильно отображенно?