Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/50: Рейтинг темы: голосов - 50, средняя оценка - 4.54
 Аватар для StroGG
2 / 2 / 0
Регистрация: 18.02.2010
Сообщений: 18

Сети Петри

03.03.2010, 11:27. Показов 10536. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Товарищи программисты будьте так добры помочь. Нужны исходники реализации любого вида Сетей Петри. Для меня Сети Петри темный лес. Я в них ничевошеньки не понимаю поэтому вас и прошу помочь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.03.2010, 11:27
Ответы с готовыми решениями:

Сети Петри
Ребята, у меня возникла такая проблема, мне нужно сделать сеть петри. Задача звучит так: в библиотеке есть 5 учебников, количество...

Ординарная Сеть Петри для задачи об "обедающих философах"
Помогите с сетью Петри. дуб в этом Задача об обедающих философах. Пять философов отдыхают в пансионате. Каждый из философов может...

Сети Петри . Любой простой пример программы с сетями Петри С++ или на других языках программирования
Помогите пожалуйста . Сети Петри . Любой простой пример программы с сетями Петри С++ или на других языках программирования.

14
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
29.03.2010, 10:44
Цитата Сообщение от StroGG Посмотреть сообщение
Товарищи программисты будьте так добры помочь. Нужны исходники реализации любого вида Сетей Петри. Для меня Сети Петри темный лес. Я в них ничевошеньки не понимаю поэтому вас и прошу помочь.
мне тоже нужны есть у кого откликнитесь
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
29.03.2010, 18:22
А задача-то какая стоит ?
Что должна делать реализация ?
Гонять сеть по заданым начальным условиям или что ?
А то вопрос похож на следующий: "Помогите. Нужны исходники реализации квадратной матрицы. Для меня квадратная матрица - темный лес."

Чтобы не был темный лес - сходи почитай: http://ru.wikipedia.org/wiki/Сети_Петри
1
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
31.03.2010, 10:48
хм) думаю ссылки на википедию не стоит выкладывать но все же спаибо, я хотел бы узнать ил увидеть материал где описываеться применение сетей петри для лингвоанализа, что то типа разложение слова на составляющие, его происхождение синонимы и прочее. вот так

Добавлено через 22 часа 20 минут
ну так чо кто нить чо нить предложит, чесно гвоояр хотелось бы увидеть готовую програмную реализацию, но это видимо только мечты, кто не хочет давать даром может я чо нить напишу для него взамен,хы..)
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
04.04.2010, 13:57
ну чо кто нить поможет программным продуктом а не просто теорией ко торую я могу найти введя в строке поиска чо мне нада
0
 Аватар для StroGG
2 / 2 / 0
Регистрация: 18.02.2010
Сообщений: 18
05.04.2010, 18:20  [ТС]
Дядьку я считаю, что скорее всего нам здесь никто не поможет.
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
06.04.2010, 00:27
да точну)
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
06.04.2010, 00:32
Цитата Сообщение от asd321 Посмотреть сообщение
применение сетей петри для лингвоанализа, что то типа разложение слова на составляющие, его происхождение синонимы и прочее
они предназначены для этого?
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
06.04.2010, 11:49
Цитата Сообщение от alex_x_x Посмотреть сообщение
они предназначены для этого?
ну хотя бы какой нибудь программный продукт реализующий сети Петри покажите кто нибудь
0
 Аватар для hacher
4 / 4 / 0
Регистрация: 21.04.2009
Сообщений: 61
25.04.2010, 19:11
http://pipe2.sourceforge.net/ - посмотри
2
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
26.04.2010, 09:07
хм это моделирование сетей петри
0
2 / 2 / 0
Регистрация: 11.10.2009
Сообщений: 31
30.05.2010, 20:11
Всем доброе время суток.
Уважаемый автор вопроса. Если вы нашли код, то скиньте пожалуйста.

Уважаемые форумчанины, напиши пожалуйста любую реализацию динамических систем методом сетей петри. Можно и цветные.
0
 Аватар для StroGG
2 / 2 / 0
Регистрация: 18.02.2010
Сообщений: 18
31.05.2010, 14:10  [ТС]
Премного уважаемый Ifin, мне не хочется Вас разочаровывать, но я не ничего толкового не нашел. Если что-то найду, то я в обязательном порядке выложу, но ничего не обещаю.
0
2 / 2 / 0
Регистрация: 11.10.2009
Сообщений: 31
31.05.2010, 14:27
odip, поставьте пожалуйста задачу какую нибудь с использованием моделирования динамических систем методом сетей Петри. Даже код не обязательно, просто условия задачи.
0
 Аватар для VisualNIK
8 / 8 / 4
Регистрация: 29.10.2012
Сообщений: 167
10.04.2013, 16:33
odip,
Здравствуйте, мне как раз таки нужно реализовать дерево вывода прогона всех разметок сети петри... у меня разметки выводит, все в порядке, но я никак не могу додуматься до правильно нумерации этих разметок, дело в том, что у меня там рекурсия, и вот с ней голову ломаю, она работает так:
Находит новую разметку путем проверки текущей разметки с элементами каждого столбца матрицы Fp (матрица позиций), затем если есть столбец у которого все элементы меньше либо равны элементов текущей разметки, она отнимает от элементов разметки, элементы столбца этого, и прибавляет элементы соответствуйющей строки матрицы Ft (матрица переходов). Ну это все теория, метки при этом у меня находит она верно, но нумерация не та...на картинках ниже прилагаю, как есть (1-я) и как должна быть (2-я). И ещё код сам конечно...Спасибо..Главная функция конечно же CreateTree в ней все и вертится

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include<iostream.h>
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int **Fp, **Ft, *M0, **Mr, p, t, depth, *M, line=1, mark=1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
bool TestTransition(int **Fp, int *M, int Nt, int p)
{  int i,j; bool w=true;
 
   for(i=0;i<p;i++)
     {
       if(M[i]<Fp[i][Nt])
         {
           w=false;
           break;
         }
     }
 
   return w;
 
}
 
bool TestMarking(int *Met)
{
  int i,j; bool w=true;
  for(i=0;i<100;i++)
   for(j=0;j<p;j++)
     {
       if(Met[j]!=Mr[i][j])
         {
           j=p;
         }
 
       if((j==p-1)&&(Met[j]==Mr[i][j]))
         {
           w=false; i=100; j=p;
         }
     }
  return w;
}
 
int FindMark(int *Met)
{
  int i,j;
 
  for(i=0;i<100;i++)
    for(j=0;j<p;j++)
      {
        if(Met[j]!=Mr[i][j])
          {
            j=p;
          }
 
        if((j==p-1)&&(Met[j]==Mr[i][j]))
          {
            return i;
          }
     }
}
 
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
  p=StrToInt(Edit1->Text);
  t=StrToInt(Edit2->Text);
 
  StringGrid1->RowCount=p;
  StringGrid1->ColCount=t;
  StringGrid2->RowCount=t;
  StringGrid2->ColCount=p;
  StringGrid3->ColCount=p;
}
 
//---------------------------------------------------------
 
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
  int i,j;
 
  StringGrid1->Cells[0][0]='1'; StringGrid1->Cells[1][0]='1'; StringGrid1->Cells[2][0]='0';
  StringGrid1->Cells[3][0]='0'; StringGrid1->Cells[4][0]='0'; StringGrid1->Cells[0][1]='1';
  StringGrid1->Cells[1][1]='2'; StringGrid1->Cells[2][1]='0'; StringGrid1->Cells[3][1]='0';
  StringGrid1->Cells[4][1]='0'; StringGrid1->Cells[0][2]='0'; StringGrid1->Cells[1][2]='0';
  StringGrid1->Cells[2][2]='1'; StringGrid1->Cells[3][2]='0'; StringGrid1->Cells[4][2]='0';
  StringGrid1->Cells[0][3]='0'; StringGrid1->Cells[1][3]='0'; StringGrid1->Cells[2][3]='1';
  StringGrid1->Cells[3][3]='1'; StringGrid1->Cells[4][3]='0'; StringGrid1->Cells[0][4]='0';
  StringGrid1->Cells[1][4]='0'; StringGrid1->Cells[2][4]='0'; StringGrid1->Cells[3][4]='1';
  StringGrid1->Cells[4][4]='0'; StringGrid1->Cells[0][5]='0'; StringGrid1->Cells[1][5]='0';
  StringGrid1->Cells[2][5]='0'; StringGrid1->Cells[3][5]='0'; StringGrid1->Cells[4][5]='2';
 
  StringGrid2->Cells[0][0]='0'; StringGrid2->Cells[1][0]='0'; StringGrid2->Cells[2][0]='1';
  StringGrid2->Cells[3][0]='1'; StringGrid2->Cells[4][0]='0'; StringGrid2->Cells[5][0]='1';
  StringGrid2->Cells[0][1]='0'; StringGrid2->Cells[1][1]='0'; StringGrid2->Cells[2][1]='0';
  StringGrid2->Cells[3][1]='1'; StringGrid2->Cells[4][1]='1'; StringGrid2->Cells[5][1]='0';
  StringGrid2->Cells[0][2]='0'; StringGrid2->Cells[1][2]='0'; StringGrid2->Cells[2][2]='0';
  StringGrid2->Cells[3][2]='0'; StringGrid2->Cells[4][2]='0'; StringGrid2->Cells[5][2]='1';
  StringGrid2->Cells[0][3]='0'; StringGrid2->Cells[1][3]='1'; StringGrid2->Cells[2][3]='0';
  StringGrid2->Cells[3][3]='0'; StringGrid2->Cells[4][3]='0'; StringGrid2->Cells[5][3]='2';
  StringGrid2->Cells[0][4]='1'; StringGrid2->Cells[1][4]='0'; StringGrid2->Cells[2][4]='0';
  StringGrid2->Cells[3][4]='0'; StringGrid2->Cells[4][4]='0'; StringGrid2->Cells[5][4]='0';
 
  StringGrid3->Cells[0][0]='1'; StringGrid3->Cells[1][0]='2'; StringGrid3->Cells[2][0]='0';
  StringGrid3->Cells[3][0]='1'; StringGrid3->Cells[4][0]='1'; StringGrid3->Cells[5][0]='2';
}
 
 
void CreateTree(TMemo *Memo1, int n, int *M1)
{   int i; int j; int *M2=(int *)malloc(p*sizeof(int));
 
    if(n!=0)
    {
      for(i=0;i<t;i++)
        {
          if(TestTransition(Fp,M1,i,p)==true)
            {
              for(j=0;j<p;j++)
                {
                  M2[j]=M1[j]-Fp[j][i]+Ft[i][j];
                }
 
              if(TestMarking(M2)==true)
               {
                 for(j=0;j<p;j++)
                   Mr[mark][j]=M2[j];
 
                 for(j=0;j<depth-(n-1);j++)
                   Memo1->Lines->Strings[line]=Memo1->Lines->Strings[line]+"     ";
 
                 Memo1->Lines->Strings[line]=Memo1->Lines->Strings[line]+"t"+IntToStr(i+1)+" =  M"+IntToStr(mark)+": ";
 
                 for(j=0;j<p;j++)
                   Memo1->Lines->Strings[line]=Memo1->Lines->Strings[line]+IntToStr(M2[j])+"  ";
                 line++; mark++;
 
                 CreateTree(Memo1,n-1,M2);
               }
 
              else
               {
                 for(j=0;j<depth-(n-1);j++)
                   Memo1->Lines->Strings[line]=Memo1->Lines->Strings[line]+"     ";
 
                 Memo1->Lines->Strings[line]=Memo1->Lines->Strings[line]+"t"+IntToStr(i+1)+" =  M"+IntToStr(FindMark(M2))+": ";
 
                 for(j=0;j<p;j++)
                   Memo1->Lines->Strings[line]=Memo1->Lines->Strings[line]+IntToStr(M2[j])+"  ";
                 Memo1->Lines->Strings[line]=Memo1->Lines->Strings[line]+" - povtor";
                 line++;  
               }
            }
        }
    }
}
 
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
  int i,j;
  Fp=(int **)malloc(p*sizeof(int));
  Ft=(int **)malloc(t*sizeof(int));
  Mr=(int **)malloc(100*sizeof(int));
  M0=(int *)malloc(p*sizeof(int));
  M=(int *)malloc(p*sizeof(int));
  for(i=0;i<p;i++)
    {
      Fp[i]=(int *)malloc(t*sizeof(int));
    }
  for(i=0;i<t;i++)
    {
      Ft[i]=(int *)malloc(p*sizeof(int));
    }
  for(i=0;i<100;i++)
    {
      Mr[i]=(int *)malloc(p*sizeof(int));
    }
 
  for(i=0;i<p;i++)
    for(j=0;j<t;j++)
      Fp[i][j]=StrToInt(StringGrid1->Cells[j][i]);
 
  for(i=0;i<t;i++)
    for(j=0;j<p;j++)
      Ft[i][j]=StrToInt(StringGrid2->Cells[j][i]);
 
  for(i=0;i<p;i++)
    M0[i]=StrToInt(StringGrid3->Cells[i][0]);
 
  depth=StrToInt(Edit3->Text);
 
  Memo1->Lines->Strings[line-1]="M"+IntToStr(mark-1)+": ";
    for(j=0;j<p;j++)
      Memo1->Lines->Strings[line-1]=Memo1->Lines->Strings[line-1]+IntToStr(M0[j])+"  ";
 
  CreateTree(Memo1,depth,M0);
 
}
 
 
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  line=1; mark=1;
 
  for(int i=0;i<300;i++)
    Memo1->Lines->Strings[i]=' ';
}
//---------------------------------------------------------------------------
Изображения
  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.04.2013, 16:33
Помогаю со студенческими работами здесь

Сети Петри и С++
нужно с помощью сетей Петри описать протокол передачи данных и с помощью С++ написать программу, имитирующую работу этой модели. Вопрос....

Сети Петри
Здравствуйте, сообщество :) Может кто-нибудь что-нибудь внятное рассказать (или направить) о современном применении сетей Петри?...

СЕТИ Петри
Добрый день, кто может помочь в проге CPN tools , сделать эту задачку, за $ 2.Описать заданную СП-модель с помощью матриц F,H,...

Сети Петри
Задачи по сетям Петри

Сети Петри
Задание по курсовой. С литейного цеха на участок обработки и сборки поступают заготовки через 20 ± 5 минут. Треть из них...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru