Курсовая работа на тему:
Использование сетей Петри в математическом моделировании
Оглавление
Введение
§1. О сетях Петри
§2. Сетевое планирование
§3. Математические модели с использованием сетей Петри
§4. Построение динамической модели на основе сети Петри
§5. Применение сетевых моделей для описания параллельных процессов
§6. Моделирование процесса обучения с помощью вложенных сетей Петри
Заключение
Список используемой литературы
Развитие ЭВМ и программного обеспечения приводит к ускорению и облегчению выполнения каждого шага моделирования. Увеличение быстродействия ЭВМ и развитие графического интерфейса позволяет получать и отображать результаты в графическом виде в темпе решения. При системном подходе к моделированию должен рассматриваться весь комплекс вопросов: планирование, проведение и обработка результатов вычислительного эксперимента.
Важной задачей является обработка результатов вычислений. На этом этапе используются методы, хорошо зарекомендовавшие себя при экспериментах с реальными объектами.
Современные пакеты подготовки печатной продукции включают средства оформления текста, подготовки математических формул, графиков, схем, таблиц. Современные технологии позволяют подготовить документ, включающий как объекты документы других типов или гиперссылки на другие документы и программы обработки.
Возникает проблема: рассмотреть некоторые математические модели с использованием сетей Петри, сетевое планирование. В данной курсовой работе опишем применение и возможности некоторых математических моделей, самых используемых и известных на наш взгляд, посмотреть, как возможности компьютера применимы к теории по данной теме, и посмотреть несколько примеров.
В связи с этим выдвигаем гипотезу: в математическом моделировании можно применить модели сетей Петри для описания параллельных, детерминированных процессов.
Объект работы - сети Петри.
Предмет - математическое моделирование с использованием сетей Петри.
Нами поставлены следующие задачи:
изучить литературу по теме;
изучить сетевое планирование;
рассмотреть применение сетевых моделей;
рассмотреть математические модели с использованием сетей Петри;
рассмотреть построение динамической модели на основе сети Петри.
Сети Петри - математический аппарат для моделирования динамических дискретных систем. Впервые описаны Карлом Петри в 1962 году.
Сеть Петри представляет собой двудольный ориентированный граф, состоящий из вершин двух типов - позиций и переходов, соединённых между собой дугами, вершины одного типа не могут быть соединены непосредственно. В позициях могут размещаться метки (маркеры), способные перемещаться по сети. [2]
Сеть Петри - инструмент для моделирования динамических систем. Теория сетей Петри делает возможным моделирование системы математическим представлением ее в виде сети Петри, анализ которой помогает получить важную информацию о структуре и динамическом поведении моделируемой системы.
Возможно несколько путей практического применения сетей Петри при проектировании и анализе систем. В одном из подходов сети Петри рассматриваются как вспомогательный инструмент анализа. Здесь для построения системы используются общепринятые методы проектирования, затем построенная система моделируется сетью Петри, и построенная модель анализируется.
В другом подходе весь процесс проектирования и определения характеристик проводится в терминах сетей Петри. В этом случае задача заключается в преобразовании представления сети Петри в реальную информационную систему. [1]
Несомненным достоинством сетей Петри является математически строгое описание модели. Это позволяет проводить их анализ с помощью современной вычислительной техники (в том числе с массово-параллельной архитектурой). [2]
В работе приведены результаты исследований, направленных на разработку программно-аппаратного комплекса моделирования сетей Петри, который:
позволяет моделировать простые и цветные (CPN) сети Петри;
позволяет моделировать сети Петри со сложной структурой (включением подсетей-блоков в основную сеть) и большим количеством мест и переходов;
позволяет исследовать сети Петри на ограниченность (безопасность), наличие тупиков и достижимость разметок;
предоставляет удобный интерфейс пользователю.
Ни один из существующих программных комплексов моделирования сетей Петри не удовлетворяет этим требованиям.
Разработана система имитационного моделирования сетей Петри в трехуровневой архитектуре клиент-сервер. В основу системы было положено объектно-ориентированное описание сетей Петри в UML-нотации (Unified Modeling Language). Система реализована с помощью CASE-технологии DoomXL, разработанной в ЦОС и ВТ МФТИ. Применение современной промышленной СУБД Informix US в качестве серверной части системы позволяет:
хранить большие массивы данных по структуре сетей Петри;
осуществлять моделирование динамики сетей Петри с помощью механизма транзакций, что обеспечивает высокую надежность системы.
Кроме того, примененный объектно-ориентированный подход позволяет реализовать модели сетей Петри со сложной структурой.
Сети Петри по существу являются одной из форм имитации дискретных процессов. Они были в большой моде лет 20 назад, когда с их помощью надеялись рассчитывать упомянутые процессы (без имитации). В подавляющем большинстве применений от обычных имитационных моделей они отличаются лишь большим наукообразием и специфической терминологией. [4]
Сети Петри - инструмент исследования систем. В настоящее время сети Петри применяются в основном в моделировании. Во многих областях исследований явление изучается не непосредственно, а косвенно, через модель. Модель - это представление, как правило, в математических терминах того, что считается наиболее характерным в изучаемом объекте или системе. Манипулируя моделью системы, можно получить новые знания о ней, избегая опасности, дороговизну или неудобства анализа самой реальной системы. Обычно модели имеют математическую основу.
Развитие теории сетей Петри проводилось по двум направлениям. Формальная теория сетей Петри занимается разработкой основных средств, методов и понятий, необходимых для применения сетей Петри. Прикладная теория сетей Петри связана главным образом с применением сетей Петри к моделированию систем, их анализу и получающимся в результате этого глубоким проникновением в моделируемые системы.
Моделирование в сетях Петри осуществляется на событийном уровне. Определяются, какие действия происходят в системе, какие состояние предшествовали этим действиям и какие состояния примет система после выполнения действия. Выполнения событийной модели в сетях Петри описывает поведение системы. Анализ результатов выполнения может сказать о том, в каких состояниях пребывала или не пребывала система, какие состояния в принципе не достижимы. Однако, такой анализ не дает числовых характеристик, определяющих состояние системы. Развитие теории сетей Петри привело к появлению, так называемых, “цветных” сетей Петри. Понятие цветности в них тесно связано с понятиями переменных, типов данных, условий и других конструкций, более приближенных к языкам программирования. Несмотря на некоторые сходства между цветными сетями Петри и программами, они еще не применялись в качестве языка программирования.
Не смотря на описанные выше достоинства сетей Петри, неудобства применения сетей Петри в качестве языка программирования заключены в процессе их выполнения в вычислительной системе. В сетях Петри нет строго понятия процесса, который можно было бы выполнять на указанном процессоре. Нет также однозначной последовательности исполнения сети Петри, так как исходная теория представляет нам язык для описания параллельных процессов. [3]
§2. Сетевое планированиеСетевое планирование - метод управления, основанный на использовании математического аппарата теории графов и системного подхода для отображения и алгоритмизации комплексов взаимосвязанных работ, действий или мероприятий для достижения четко поставленной цели. Разработаны в начале 50-х г. ХХ в.
Наиболее известны практически одновременно и независимо разработанные метод критического пути - МКП и метод оценки и пересмотра планов - PERT.
Применяются для оптимизации планирования и управления сложными разветвленными комплексами работ, требующими участия большого числа исполнителей и затрат ограниченных ресурсов.
Основная цель сетевого планирования - сокращение до минимума продолжительности проекта.
Задача сетевого планирования состоит в том, чтобы графически, наглядно и системно отобразить и оптимизировать последовательность и взаимозависимость работ, действий или мероприятий, обеспечивающих своевременное и планомерное достижение конечных целей. Для отображения и алгоритмизации тех или иных действий или ситуаций используются экономико-математические модели, которые принято называть сетевыми моделями, простейшие из них - сетевые графики. С помощью сетевой модели руководитель работ или операции имеет возможность системно и масштабно представлять весь ход работ или оперативных мероприятий, управлять процессом их осуществления, а также маневрировать ресурсами.
Наиболее распространенными направлениями применения сетевого планирования являются:
целевые научно-исследовательские и проектно-конструкторские разработки сложных объектов, машин и установок, в создании которых принимают участие многие предприятия и организации;
планирование и управление основной деятельностью разрабатывающих организаций;
планирование комплекса работ по подготовке и освоению производства новых видов промышленной продукции;
строительство и монтаж объектов промышленного, культурно-бытового и жилищного назначения;
реконструкция и ремонт действующих промышленных и других объектов;
планирование подготовки и переподготовки кадров, проверка исполнения принятых решений, организация комплексной проверки деятельности предприятий, объединений, строительно-монтажных организаций и учреждений. [7]
Использование методов сетевого планирования способствует сокращению сроков создания новых объектов на 15-20%, обеспечению рационального использования трудовых ресурсов и техники.
Сетевое планирование - совокупность методов, использующих сетевую модель как основную форму представления информации об управляемом комплексе работ. Использование сетевого планирования позволяет повысить качество планирования и управления при реализации комплекса работ, например, дает возможность четко координировать деятельность всех сторон (организаций), участвующих в реализации, выделять наиболее важные задачи, определять сроки реализации, а также координировать план его реализации.
Сетевая модель - информационная модель реализации некоторого комплекса взаимосвязанных работ, рассматриваемая как ориентированный граф без контуров, отображающий естественный порядок выполнения этих работ во времени; может содержать некоторые дополнительные характеристики (например, время, стоимость, ресурсы), относящиеся к отдельным работам и (или) к комплексу в целом. [5]
Наибольшее распространение получило графическое представление сетевой модели на плоскости, называемое сетевым графиком.
Для быстрого "погружения" в постановку и решение задач сетевого планирования рассмотрим простейший пример, заимствованный нами из монографий.
Предположим, что шеф-повар получил заказ приготовить яичницу из одного яйца. Вся процедура ее приготовления может быть разбита на ряд отдельных подзадач:
Взять яйцо - ---> Разбить яйцо - ---> Взять жир - --->
--> Положить жир на сковороду - ---> Растопить жир - --->
--> Вылить яйцо на сковороду - --->
--> Ждать, пока яичница не изжарится - ---> Снять яичницу
Некоторые из этих подзадач должны предшествовать другим (например, задача "взять яйцо" должна предшествовать задаче "разбить яйцо"). Ряд подзадач может выполняться параллельно (например, задачи "взять яйцо" и "растопить жир"). Шеф-повар хотел бы выполнить заказ как можно быстрее, при этом предполагается, что число его помощников не ограничено.
Необходимо распределить работу среди помощников так, чтобы заказ был выполнен за минимально возможное время.
Хотя этот пример может показаться легкомысленным, подобная задача возникает во многих ситуациях, связанных с планированием реальных действий. В больших вычислительных системах осуществляется планирование заданий с целью обеспечения минимального времени нахождения задания в системе, технолог на заводе может планировать организацию работы конвейера, минимизирующую время производства продукции, и т.п. Все проблемы подобного рода тесно связаны между собой и могут быть решены с использованием графов.
Давайте представим исходную задачу в виде графа. Каждая вершина графа представляет собой подзадачу, а каждая дуга (x,y) представляет требование, что задача y не может выполняться до тех пор, пока не завершено выполнение задачи x. Граф задачи показан на рисунке:
Рис.1. Граф задачи
Заметим, что в изображенном графе узлы 1 и 6 не имеют предшественников, и, следовательно, подзадачи, которые они представляют, могут выполняться сразу же и параллельно без ожидания завершения других подзадач. Все остальные подзадачи должны ждать завершения по крайней мере одной из этих подзадач. Как только эти первые две подзадачи завершены, соответствующие вершины и инцидентные дуги могут быть удалены из графа. Отметим, что получающийся в результате граф не содержит контуров, поскольку вершины и дуги удалялись из графа без циклов. Стало быть, новый граф также должен содержать по крайней мере один узел, не имеющий предшественников. В нашем примере существуют два таких узла - 2 и 7. Значит, подзадачи 2 и 7 могут выполняться параллельно во второй период времени.
Продолжив построение далее, мы найдем, что минимальное время, за которое может быть поджарена яичница, - шесть временных периодов (предполагая, что каждая подзадача требует ровно один период времени), а максимальное требующееся число помощников - два:
Период времени Помощник 1 Помощник 2
1. Взять яйцо Взять жир
2. Разбить яйцо Положить жир на сковороду
3. Растопить жир
4. Вылить яйцо на сковороду
5. Ждать, пока яичница не изжарится
6. Снять яичницу
Автоматизируем процесс построения решения задачи, модифицируя алгоритм топологической сортировки, проиллюстрированный программой, следующим образом: while (Граф не пуст)
{Определить вершины, не имеющие предшественников.
Распечатать эту группу узлов с указанием, что эти подзадачи
могут быть выполнены параллельно в следующий момент времени.
Удалить из графа данные вершины и инцидентные дуги}
Программа. Применение топологической сортировки для решения простейших задач сетевого планирования.
#include <iostream. h>
typedef struct Leader *Lref; // Тип: указатель на заголовочный узел.
typedef struct Trailer *Tref; // Тип: указатель на дуговой узел.
// Описание типа заголовочного узла.
typedef struct Leader
{
int Key; // Информационное поле.
int Count; // Количество предшественников.
Tref Trail;
Lref Next;
};
// Описание типа дугового узла.
typedef struct Trailer
{
Lref Id;
Tref Next;
};
class Spisok {
private:
Lref Head; // Указатель на список заголовочных узлов.
Lref Tail; // Указатель на фиктивный элемент
// в конце списка заголовочных узлов.
int z; // Количество узлов, не имеющих предшественников.
public:
Spisok () { // Инициализация списка заголовочных узлов.
Head = Tail = new (Leader); z = 0; };
Lref L (int);
void Poisk ();
void Vyvod ();
};
void Spisok:: Poisk ()
{
Lref p,q; // Рабочие указатели.
p = Head; Head = NULL;
while (p! =Tail)
{
q = p; p = p->Next;
if (q->Count==0)
{ q->Next = Head; Head = q; }
}
}
Lref Spisok:: L (int w)
// Функция возвращает указатель на ведущего с ключом w.
{
Lref h = Head;
Tail->Key = w;
while (h->Key! =w) h = h->Next;
if (h==Tail)
// В списке нет элемента с ключом w.
{
Tail = new (Leader); z++;
h->Count = 0; h->Trail = NULL; h->Next = Tail;
}
return h;
}
void Spisok:: Vyvod ()
{
Lref p,q; // Рабочие указатели.
Lref S,U; // Рабочие указатели.
Tref t;
cout << endl;
cout << "Результат... \n";
q = Head;
while (q! =NULL)
// Вывод всех элементов с нулевым количеством предшественников.
{
S = q; cout << " (";
while (S! =NULL)
{ cout << S->Key << " "; z--; S = S->Next; }
cout << ")";
// - ------------------------------------------------ -
U = NULL; // Указатель на очередной список элементов
// с нулевым количеством предшественников.
while (q! =NULL)
{
t = q->Trail;
while (t! =NULL)
{
p = t->Id; p->Count--;
if (p->Count==0) // Включение (*p) в список ведущих.
{ p->Next = U; U = p; }
t = t->Next;
}
q = q->Next;
}
q = U;
}
if (z! =0)
cout << "\nМножество не является частично упорядоченным! \n";
}
void main ()
{
Spisok A;
Lref p,q; // Рабочие указатели.
Tref t;
int x,y; // Рабочие переменные.
// Фаза ввода.
cout << "Задайте отношение частичного порядка... \n";
cout << "Элемент ";
cin >> x;
cout << " предшествует элементу ";
while (x! =0)
{
cin >> y;
p = A. L (x); q = A. L (y);
t = new (Trailer); t->Id = q; t->Next = p->Trail;
p->Trail = t; q->Count += 1;
cout << "Элемент ";
cin >> x;
cout << " предшествует элементу ";
}
// Поиск ведущих с нулевым количеством предшественников.
A. Poisk ();
// Фаза вывода.
A. Vyvod ();
} [11]
§3. Математические модели с использованием сетей ПетриСети Петри являются эффективным инструментом дискретных процессов, в частности, функционирования станочных систем. Их особенность заключается в возможности отображения параллелизма, асинхронности и иерархичности.
На рис.2 приводится пример сети Петри, где Р - конечное непустое множество позиций (состояний); Т - конечное непустое множество переходов (событий), причем p P и tiT; F: Р x Т - {0, 1, 2,... }; Н: Т x Р {0, 1, 2,... } - функции входных и выходных инциденций; μ0: Р {0, 1, 2,... } - начальная маркировка. Вершины сети p P изображены кружками, а вершины tiT - черточками (баркерами). Дуги соответствуют функциям инцидентности позиций и переходов. Точки в кружочках означают заданную начальную маркировку. Число маркеров в позиции равно значению функции μ: Р {0, 1, 2,... }. Переход от одной маркировки к другой осуществляется срабатыванием переходов. Переход t может сработать при маркировке μ, если он является возбужденным:
(1)
Рис.2. Сеть Петри
Данное условие показывает, что в каждой входной позиции перехода t число маркеров не меньше веса дуги, соединяющей эту позицию с переходом. В результате срабатывания перехода t, удовлетворяющего условию (1), маркировку μ заменяют маркировкой μ' по следующему правилу:
(2)
По этому правилу в результате срабатывания из всех входных позиций перехода t изымается F (p,t) маркеров и в каждую выходную позицию добавляется H (t,p) маркеров. Это означает, что маркировка μ' непосредственно достижима из маркировки μ. Функционирование сети Петри - последовательная смена маркировок в результате срабатывания возбужденных переходов.
Состояние сети в данный момент времени определяется ее текущей маркировкой. Важная характеристика сети Петри - граф достижимости, с помощью которого описываются возможные варианты функционирования сети. Такой граф имеет вершины, которые являются возможными маркировками. Маркировки μ и μ' соединяются в направлении t дугой, помеченной символами перехода t T или μtμ'. Маркировка μ' такая последовательность переходов: τ = t1, t2,..., tk является достижимой из маркировки μ, если существует, что μt1μ't2... μ tkμ.
N = (Р, Т, F, Н, μ0), где Р = {Р1, Р2, Р3, Р4, Р5},
T = {t1, t2, t3, t4, t5}, μ0 = (1, 1, 0, 0, 0).
Функции F и Н заданы матрицами
P1 | P2 | P3 | P4 | P5 | ||
H = | t1 | 0 | 0 | 1 | 2 | 0 |
t2 | 1 | 0 | 0 | 0 | 1 | |
t3 | 1 | 1 | 0 | 0 | 0 | |
t4 | 0 | 0 | 0 | 1 | 0 | |
t1 | t2 | t3 | t4 | |||
F = | P1 | 1 | 0 | 0 | 0 | |
P2 | 1 | 0 | 0 | 0 | ||
P3 | 0 | 1 | 0 | 0 | ||
P4 | 0 | 0 | 1 | 0 | ||
P5 | 0 | 0 | 0 | 1 |
Фрагмент графа достижимости для сети Петри приведен на рис3.
[6]
рис. 3
§4. Построение динамической модели на основе сети Петри... целом как сложной системы в различных условиях. Вычислительные эксперименты с математическими моделями дают исходные данные для оценки показателей эффективности объекта. Поэтому математическое моделирование как методология организации научной экспертизы крупных проблем незаменимо при проработке народнохозяйственных решений. (В первую очередь это относится к моделированию экономических систем[6]). ...
... базису, состоящему всего из одной функции. Были построены комбинационные схемы, иллюстрирующие полученные результаты. Выгода рассмотренных преобразований функций становится очевидной при их практической реализации на стандартизованных электронных микросхемах. 2 Синтез конечных автоматов 2.1 Постановка задачи Конечный автомат задан своими уравнениями переходов и ...
... дипломной работе рассматриваются математические модели и методы реализации этих двух направлений. Дипломная работа состоит из 3 глав, приложения, литературы и заключения. Глава 1. Математическое моделирование роста доходности страховых компаний §1 Общая характеристика основных фактов и понятий при моделировании деятельности страховых компаний Рассматривается страховая компания, в которой ...
... подхода к решению задачи. Метод – систематизированная совокупность шагов, действий, которые необходимо предпринять, чтобы решить определенную задачу или достичь определенной цели. При исследовании методов автоматизации управления электронным предприятием необходимо заметить, что основным элементом управления на любом предприятии является документ. Фактором, влияющим на хождение документа внутри ...
0 комментариев