y_nelson 2.1.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3806 @@
1
+ #LyX 2.0 created this file. For more info see http://www.lyx.org/
2
+ \lyxformat 413
3
+ \begin_document
4
+ \begin_header
5
+ \textclass article
6
+ \use_default_options false
7
+ \maintain_unincluded_children false
8
+ \language english
9
+ \language_package default
10
+ \inputencoding auto
11
+ \fontencoding global
12
+ \font_roman default
13
+ \font_sans default
14
+ \font_typewriter default
15
+ \font_default_family default
16
+ \use_non_tex_fonts false
17
+ \font_sc false
18
+ \font_osf false
19
+ \font_sf_scale 100
20
+ \font_tt_scale 100
21
+
22
+ \graphics default
23
+ \default_output_format default
24
+ \output_sync 0
25
+ \bibtex_command default
26
+ \index_command default
27
+ \paperfontsize default
28
+ \spacing single
29
+ \use_hyperref false
30
+ \papersize default
31
+ \use_geometry true
32
+ \use_amsmath 1
33
+ \use_esint 1
34
+ \use_mhchem 1
35
+ \use_mathdots 1
36
+ \cite_engine natbib_authoryear
37
+ \use_bibtopic false
38
+ \use_indices false
39
+ \paperorientation portrait
40
+ \suppress_date false
41
+ \use_refstyle 0
42
+ \index Index
43
+ \shortcut idx
44
+ \color #008000
45
+ \end_index
46
+ \leftmargin 2.2cm
47
+ \topmargin 3cm
48
+ \rightmargin 2.2cm
49
+ \bottommargin 3cm
50
+ \secnumdepth 3
51
+ \tocdepth 3
52
+ \paragraph_separation indent
53
+ \paragraph_indentation default
54
+ \quotes_language english
55
+ \papercolumns 1
56
+ \papersides 1
57
+ \paperpagestyle default
58
+ \tracking_changes false
59
+ \output_changes false
60
+ \html_math_output 0
61
+ \html_css_as_file 0
62
+ \html_be_strict false
63
+ \end_header
64
+
65
+ \begin_body
66
+
67
+ \begin_layout Title
68
+ Object model of YNelson and YPetri
69
+ \end_layout
70
+
71
+ \begin_layout Part*
72
+
73
+ \family typewriter
74
+ YNelson
75
+ \family default
76
+ and
77
+ \family typewriter
78
+ YPetri
79
+ \end_layout
80
+
81
+ \begin_layout Standard
82
+
83
+ \family typewriter
84
+ \color blue
85
+ YNelson
86
+ \family default
87
+ \color inherit
88
+ is a Ruby library (gem) providing a domain model and a simulator of
89
+ \emph on
90
+ \color green
91
+ Nelson nets
92
+ \emph default
93
+ \color inherit
94
+ .
95
+ A
96
+ \emph on
97
+ \color green
98
+ Nelson net
99
+ \emph default
100
+ \color inherit
101
+ is a cross between a
102
+ \emph on
103
+ \color green
104
+ Petri net
105
+ \emph default
106
+ \color inherit
107
+ , and a
108
+ \emph on
109
+ \color green
110
+ ZZ structure
111
+ \emph default
112
+ \color inherit
113
+ .
114
+ For formal definition of the ZZ structure, see
115
+ \begin_inset CommandInset citation
116
+ LatexCommand citet
117
+ key "Dattolo2009fdz"
118
+
119
+ \end_inset
120
+
121
+ .
122
+ In accordance with this,
123
+ \family typewriter
124
+ YNelson
125
+ \family default
126
+ has two major dependencies:
127
+ \family typewriter
128
+ \color blue
129
+ YPetri
130
+ \family default
131
+ \color inherit
132
+ gem, providing the the domain model of Petri nets, and
133
+ \family typewriter
134
+ \color blue
135
+ Yzz
136
+ \family default
137
+ \color inherit
138
+ gem, providing the domain model of ZZ structures.
139
+ At the moment, the focus is on the Petri net part.
140
+ Up to minor conveniences,
141
+ \family typewriter
142
+ YNelson
143
+ \family default
144
+ provides the same interface as
145
+ \family typewriter
146
+ YPetri
147
+ \family default
148
+ , so this document in fact describes mostly
149
+ \family typewriter
150
+ YPetri
151
+ \family default
152
+ objects.
153
+ \end_layout
154
+
155
+ \begin_layout Standard
156
+ Whereas for the beginners, there is tutorial available to YPetri / YNelson,
157
+ and the classes are more or less fully documented, the internal workings
158
+ and the design intent might not be immediately obvious.
159
+ The purpose of is document is to make the reader faster achieve their understan
160
+ ding.
161
+ \end_layout
162
+
163
+ \begin_layout Standard
164
+
165
+ \family typewriter
166
+ YNelson
167
+ \family default
168
+ requires Ruby 2.1, and can be installed from the command line by
169
+ \family typewriter
170
+ gem install y_nelson
171
+ \family default
172
+ .
173
+ The main dependencies,
174
+ \family typewriter
175
+ Yzz
176
+ \family default
177
+ and
178
+ \family typewriter
179
+ YPetri
180
+ \family default
181
+ , should install automatically, but can be installed manually by
182
+ \family typewriter
183
+ gem install y_petri
184
+ \family default
185
+ and
186
+ \family typewriter
187
+ gem install yzz
188
+ \family default
189
+ .
190
+ \end_layout
191
+
192
+ \begin_layout Part*
193
+ Functional Petri nets
194
+ \end_layout
195
+
196
+ \begin_layout Standard
197
+ Petri nets were described by C.
198
+ A.
199
+ Petri in the middle of 20th century.
200
+ A Petri net can be used to represent various
201
+ \begin_inset Quotes eld
202
+ \end_inset
203
+
204
+ wiring diagrams
205
+ \begin_inset Quotes erd
206
+ \end_inset
207
+
208
+ – production lines, railway networks, electronic circuits, computer architectur
209
+ es, parallel execution diagrams, or chemical systems.
210
+ In fact, appliction to chemical systems was among the first, as Petri designed
211
+ Petri nets already with the specific goal of modeling chemical reactions.
212
+ \end_layout
213
+
214
+ \begin_layout Standard
215
+ A Petri net consists of
216
+ \emph on
217
+ \color green
218
+ places
219
+ \emph default
220
+ \color inherit
221
+ ,
222
+ \emph on
223
+ \color green
224
+ transitions
225
+ \emph default
226
+ \color inherit
227
+ , and
228
+ \emph on
229
+ \color green
230
+ arcs
231
+ \emph default
232
+ \color inherit
233
+ .
234
+ Places are typically drawn as circles, transitions as rectangles.
235
+ Places and transitions are connected by arcs, drawn as lines or arrows.
236
+ Places may contain
237
+ \emph on
238
+ \color green
239
+ tokens
240
+ \emph default
241
+ \color inherit
242
+ .
243
+ The amount of tokens in a place(s) is called
244
+ \emph on
245
+ \color green
246
+ marking
247
+ \emph default
248
+ \color inherit
249
+ .
250
+ When a transition operates (
251
+ \emph on
252
+ \color green
253
+ fires
254
+ \emph default
255
+ \color inherit
256
+ ), tokens are added to or removed from its connected places.
257
+
258
+ \emph on
259
+ \color green
260
+ State
261
+ \emph default
262
+ \color inherit
263
+ of a Petri net is fully expressed by the places' marking.
264
+ \end_layout
265
+
266
+ \begin_layout Standard
267
+ Petri nets were originally designed as
268
+ \emph on
269
+ \color green
270
+ timeless
271
+ \emph default
272
+ \color inherit
273
+ .
274
+ In such Petri nets, firing of a transition is a discrete event, whose exact
275
+ timing is not specified.
276
+ Instead, conditions are specified, under which the transition is allowed
277
+ or prohibited to fire (
278
+ \emph on
279
+ \color green
280
+ enabled
281
+ \emph default
282
+ \color inherit
283
+ or
284
+ \emph on
285
+ \color green
286
+ disabled
287
+ \emph default
288
+ \color inherit
289
+ ).
290
+ Typically, transitions are enabled when their input arcs have sufficient
291
+ amount of tokens left.
292
+ However, different firing conditions may be specified.
293
+ Timeless Petri nets are used to study concurrency – race conditions, network
294
+ congestions, state reachability etc.
295
+ Interaction with timeless Petri nets is called
296
+ \emph on
297
+ \color green
298
+ token game
299
+ \emph default
300
+ \color inherit
301
+ .
302
+ \end_layout
303
+
304
+ \begin_layout Standard
305
+ In
306
+ \emph on
307
+ \color green
308
+ timed Petri nets
309
+ \emph default
310
+ \color inherit
311
+ , it is specified when (or how rapidly) firing of the transitions occurs.
312
+ Timed nets are thus not interactive and can be autonomously
313
+ \emph on
314
+ \color green
315
+ executed
316
+ \emph default
317
+ \color inherit
318
+ in time.
319
+ Timed Petri nets actually represent a wiring diagram of a dynamic system.
320
+ Under certain conditions, a set of differential equations (DE) describing
321
+ the system can be extracted from this wiring diagram.
322
+ Execution of a such Petri net is equivalent to numeric integration of its
323
+ DE system.
324
+ \family typewriter
325
+ YPetri
326
+ \family default
327
+ object model
328
+ \end_layout
329
+
330
+ \begin_layout Standard
331
+ Brief hands-on demonstration of the interface can be found in the document
332
+
333
+ \emph on
334
+ Introduction to YNelson
335
+ \emph default
336
+ .
337
+ The purpose of this chapter is to describe the Petri net object model of
338
+
339
+ \family typewriter
340
+ YPetri
341
+ \family default
342
+ gem in more detail.
343
+ \end_layout
344
+
345
+ \begin_layout Part*
346
+ Aspects of
347
+ \family typewriter
348
+ YPetri
349
+ \end_layout
350
+
351
+ \begin_layout Standard
352
+
353
+ \family typewriter
354
+ YPetri
355
+ \family default
356
+ has two main mutually intertwined concerns:
357
+ \end_layout
358
+
359
+ \begin_layout Enumerate
360
+ To provide active object model of Petri nets.
361
+ \end_layout
362
+
363
+ \begin_layout Enumerate
364
+ To provide simulation for the dynamic systems expressed as Petri nets.
365
+ \end_layout
366
+
367
+ \begin_layout Standard
368
+ Correspondingly,
369
+ \family typewriter
370
+ YPetri
371
+ \family default
372
+ has 2 aspects catering to its 2 concerns:
373
+ \end_layout
374
+
375
+ \begin_layout Enumerate
376
+ Petri net aspect.
377
+ \end_layout
378
+
379
+ \begin_layout Enumerate
380
+ Simulation aspect.
381
+ \end_layout
382
+
383
+ \begin_layout Standard
384
+ Major classes of the Petri net aspect are
385
+ \family typewriter
386
+ Place
387
+ \family default
388
+ ,
389
+ \family typewriter
390
+ Transition
391
+ \family default
392
+ and
393
+ \family typewriter
394
+ Net
395
+ \family default
396
+ .
397
+ Places have their own marking attribute, transitions know their connectivity,
398
+ their functions, and they can be triggered to fire and modify marking of
399
+ their connected places.
400
+
401
+ \family typewriter
402
+ Net
403
+ \family default
404
+ is basically a specialized collection of places and transitions.
405
+ \end_layout
406
+
407
+ \begin_layout Standard
408
+ Simulation aspect is catered for by
409
+ \family typewriter
410
+ Simulation
411
+ \family default
412
+ class, representing a simulation run, and
413
+ \family typewriter
414
+ Core
415
+ \family default
416
+ class representing a simulator – a machine that runs the calculations needed
417
+ to perform the simulation steps.
418
+ \end_layout
419
+
420
+ \begin_layout Standard
421
+ Workspace (
422
+ \family typewriter
423
+ World
424
+ \family default
425
+ class, where places, transitions and nets live), and manipulator (
426
+ \family typewriter
427
+ Agent
428
+ \family default
429
+ class that represents and assists the user) are straddled across both aspects
430
+ of
431
+ \family typewriter
432
+ YPetri
433
+ \family default
434
+ .
435
+ \end_layout
436
+
437
+ \begin_layout Part*
438
+
439
+ \family typewriter
440
+ Place
441
+ \family default
442
+ class
443
+ \end_layout
444
+
445
+ \begin_layout Standard
446
+
447
+ \family typewriter
448
+ YPetri::Place
449
+ \family default
450
+ class represents Petri net places.
451
+ It includes
452
+ \family typewriter
453
+ NameMagic
454
+ \family default
455
+ and is normally used as a parametrized subclass (PS) depending on
456
+ \family typewriter
457
+ YPetri::World
458
+ \family default
459
+ .
460
+ The key attribute of a place is its marking (variable
461
+ \family typewriter
462
+ @marking
463
+ \family default
464
+ ).
465
+ Interface related to marking is:
466
+ \end_layout
467
+
468
+ \begin_layout Itemize
469
+
470
+ \family typewriter
471
+ #m
472
+ \family default
473
+ , alias
474
+ \family typewriter
475
+ #value
476
+ \family default
477
+ – getter of
478
+ \family typewriter
479
+ @marking
480
+ \family default
481
+ instance variable.
482
+ \end_layout
483
+
484
+ \begin_layout Itemize
485
+
486
+ \family typewriter
487
+ #marking
488
+ \family default
489
+ – convenience method that acts as
490
+ \family typewriter
491
+ @marking
492
+ \family default
493
+ getter without arguments, but can be used to define guards if block is
494
+ supplied to it.
495
+ \end_layout
496
+
497
+ \begin_layout Itemize
498
+
499
+ \family typewriter
500
+ #marking=
501
+ \family default
502
+ , alias
503
+ \family typewriter
504
+ #value=
505
+ \family default
506
+ , alias
507
+ \family typewriter
508
+ #m=
509
+ \family default
510
+ – setter of
511
+ \family typewriter
512
+ @marking
513
+ \family default
514
+ .
515
+ \end_layout
516
+
517
+ \begin_layout Itemize
518
+
519
+ \family typewriter
520
+ #add
521
+ \family default
522
+ and
523
+ \family typewriter
524
+ #subtract
525
+ \family default
526
+ that change the value of
527
+ \family typewriter
528
+ @marking
529
+ \family default
530
+ .
531
+ \end_layout
532
+
533
+ \begin_layout Itemize
534
+
535
+ \family typewriter
536
+ #default_marking
537
+ \family default
538
+ ,
539
+ \family typewriter
540
+ #default_marking=
541
+ \family default
542
+ – getter and setter of place's default marking (
543
+ \family typewriter
544
+ @default_marking
545
+ \family default
546
+ variable).
547
+ \end_layout
548
+
549
+ \begin_layout Itemize
550
+
551
+ \family typewriter
552
+ #has_default_marking?
553
+ \family default
554
+ – informs whether the place has default marking defined (
555
+ \family typewriter
556
+ @has_default_marking
557
+ \family default
558
+ variable).
559
+ \end_layout
560
+
561
+ \begin_layout Itemize
562
+
563
+ \family typewriter
564
+ #reset_marking
565
+ \family default
566
+ – sets
567
+ \family typewriter
568
+ @marking
569
+ \family default
570
+ to the default value.
571
+ \end_layout
572
+
573
+ \begin_layout Standard
574
+ Another important group of methods are those related to the place's connectivity
575
+ – arcs.
576
+ They are defined in the
577
+ \family typewriter
578
+ YPetri::Place::Arcs
579
+ \family default
580
+ mixin included by
581
+ \family typewriter
582
+ YPetri::Place
583
+ \family default
584
+ .
585
+ In Petri net diagrams, arcs are the lines that connect places and transitions.
586
+ In YPetri, there is no real
587
+ \begin_inset Quotes eld
588
+ \end_inset
589
+
590
+ arc
591
+ \begin_inset Quotes erd
592
+ \end_inset
593
+
594
+ object.
595
+ For places,
596
+ \family typewriter
597
+ #arcs
598
+ \family default
599
+ method simply returns the connected transitions, and vice versa, for transition
600
+ s,
601
+ \family typewriter
602
+ #arcs
603
+ \family default
604
+ method returns connected places.
605
+ Overview of the most important
606
+ \family typewriter
607
+ Place
608
+ \family default
609
+ instance methods inherited from the
610
+ \family typewriter
611
+ Arcs
612
+ \family default
613
+ mixin is here:
614
+ \end_layout
615
+
616
+ \begin_layout Itemize
617
+
618
+ \family typewriter
619
+ #upstream_arcs
620
+ \family default
621
+ , alias
622
+ \family typewriter
623
+ #upstream_transitions
624
+ \family default
625
+ – getter of
626
+ \family typewriter
627
+ @upstream_arcs
628
+ \family default
629
+ .
630
+ \end_layout
631
+
632
+ \begin_layout Itemize
633
+
634
+ \family typewriter
635
+ #downstream_arcs
636
+ \family default
637
+ , alias
638
+ \family typewriter
639
+ #downstream_transitions
640
+ \family default
641
+ – getter of
642
+ \family typewriter
643
+ @downstream_arcs
644
+ \family default
645
+ .
646
+ \end_layout
647
+
648
+ \begin_layout Itemize
649
+
650
+ \family typewriter
651
+ #arcs
652
+ \family default
653
+ – a union of upstream transitions and downstream transitions.
654
+ \end_layout
655
+
656
+ \begin_layout Itemize
657
+
658
+ \family typewriter
659
+ #aa
660
+ \family default
661
+ – names of the connected transitions.
662
+ \end_layout
663
+
664
+ \begin_layout Itemize
665
+
666
+ \family typewriter
667
+ #precedents
668
+ \family default
669
+ – precedents in the spreadsheet sense.
670
+ Places whose marking directly influences firing of the upstream transitions
671
+ of this place.
672
+ \end_layout
673
+
674
+ \begin_layout Itemize
675
+
676
+ \family typewriter
677
+ #dependents
678
+ \family default
679
+ – dependents in the spreadsheet sense.
680
+ Places whose marking is changed by firing of the downstream transitions
681
+ of this place.
682
+ \end_layout
683
+
684
+ \begin_layout Standard
685
+ For the remaining methods, see the class documentation.
686
+ Place can also have guards, statements that validate the marking and limit
687
+ it to only certain values.
688
+ At the moment, guards are not fully handled by the
689
+ \family typewriter
690
+ Simulation
691
+ \family default
692
+ class.
693
+ \end_layout
694
+
695
+ \begin_layout Part*
696
+
697
+ \family typewriter
698
+ Transition
699
+ \family default
700
+ class
701
+ \end_layout
702
+
703
+ \begin_layout Standard
704
+
705
+ \family typewriter
706
+ YPetri::Transition
707
+ \family default
708
+ class represents functional transitions of a (functinal) Petri net.
709
+ It includes
710
+ \family typewriter
711
+ NameMagic
712
+ \family default
713
+ and is normally used as a parametrized subclass (PS) depending on
714
+ \family typewriter
715
+ YPetri::World
716
+ \family default
717
+ .
718
+ The main attribute of a
719
+ \family typewriter
720
+ Transition
721
+ \family default
722
+ instance is its function.
723
+ There are 4 basic types of transitions in
724
+ \family typewriter
725
+ YPetri
726
+ \family default
727
+ :
728
+ \end_layout
729
+
730
+ \begin_layout Itemize
731
+
732
+ \family typewriter
733
+ ts
734
+ \family default
735
+ – timeless nonstoichiometric
736
+ \end_layout
737
+
738
+ \begin_layout Itemize
739
+
740
+ \family typewriter
741
+ tS
742
+ \family default
743
+ – timeless stoichiometric
744
+ \end_layout
745
+
746
+ \begin_layout Itemize
747
+
748
+ \family typewriter
749
+ Ts
750
+ \family default
751
+ – timed nonstoichiometric
752
+ \end_layout
753
+
754
+ \begin_layout Itemize
755
+
756
+ \family typewriter
757
+ TS
758
+ \family default
759
+ – timed stoichiometric
760
+ \end_layout
761
+
762
+ \begin_layout Standard
763
+ They arise by combining 2 basic qualities:
764
+ \end_layout
765
+
766
+ \begin_layout Itemize
767
+
768
+ \emph on
769
+ timedness
770
+ \end_layout
771
+
772
+ \begin_layout Itemize
773
+
774
+ \emph on
775
+ stoichiometricity
776
+ \end_layout
777
+
778
+ \begin_layout Standard
779
+ You can find more information in the documentation of
780
+ \family typewriter
781
+ YPetri::Transition
782
+ \family default
783
+ class.
784
+ \end_layout
785
+
786
+ \begin_layout Part*
787
+
788
+ \family typewriter
789
+ Net
790
+ \family default
791
+ class
792
+ \end_layout
793
+
794
+ \begin_layout Standard
795
+
796
+ \family typewriter
797
+ YPetri::Net
798
+ \family default
799
+ class represents functional Petri nets.
800
+ It includes
801
+ \family typewriter
802
+ NameMagic
803
+ \family default
804
+ and is normally used as a PS depending on
805
+ \family typewriter
806
+ YPetri::World
807
+ \family default
808
+ .
809
+ It is basically a specialized collection of of
810
+ \family typewriter
811
+ Place
812
+ \family default
813
+ instances and
814
+ \family typewriter
815
+ Transition
816
+ \family default
817
+ instances.
818
+ A transition may only be included in a net if all the places connected
819
+ to it belong to the same net.
820
+
821
+ \family typewriter
822
+ Net
823
+ \family default
824
+ instances own 2 parametrized subclasses:
825
+ \end_layout
826
+
827
+ \begin_layout Itemize
828
+
829
+ \family typewriter
830
+ #State
831
+ \family default
832
+ – getter of
833
+ \family typewriter
834
+ @State
835
+ \family default
836
+ , a PS of
837
+ \family typewriter
838
+ YPetri::Net::State
839
+ \end_layout
840
+
841
+ \begin_layout Itemize
842
+
843
+ \family typewriter
844
+ #Simulation
845
+ \family default
846
+ – getter of
847
+ \family typewriter
848
+ @Simulation
849
+ \family default
850
+ , a PS of
851
+ \family typewriter
852
+ YPetri::Simulation
853
+ \family default
854
+ .
855
+ \end_layout
856
+
857
+ \begin_layout Standard
858
+ Important instance methods include:
859
+ \end_layout
860
+
861
+ \begin_layout Itemize
862
+
863
+ \family typewriter
864
+ #include_place
865
+ \family default
866
+ – adds a place to the net
867
+ \end_layout
868
+
869
+ \begin_layout Itemize
870
+
871
+ \family typewriter
872
+ #include_transition
873
+ \family default
874
+ – adds a transition to the net
875
+ \end_layout
876
+
877
+ \begin_layout Itemize
878
+
879
+ \family typewriter
880
+ #exclude_place
881
+ \family default
882
+ – removes a place from the net
883
+ \end_layout
884
+
885
+ \begin_layout Itemize
886
+
887
+ \family typewriter
888
+ #exclude_transition
889
+ \family default
890
+ – removes a transition from the net
891
+ \end_layout
892
+
893
+ \begin_layout Itemize
894
+
895
+ \family typewriter
896
+ #include_net
897
+ \family default
898
+ alias
899
+ \family typewriter
900
+ #merge!
901
+ \family default
902
+ – includes another net in this net
903
+ \end_layout
904
+
905
+ \begin_layout Itemize
906
+
907
+ \family typewriter
908
+ #exclude_net
909
+ \family default
910
+ – removes the elements of another net from this net
911
+ \end_layout
912
+
913
+ \begin_layout Itemize
914
+
915
+ \family typewriter
916
+ #<<
917
+ \family default
918
+ – includes an element in the net
919
+ \end_layout
920
+
921
+ \begin_layout Itemize
922
+
923
+ \family typewriter
924
+ #+
925
+ \family default
926
+ – returns a new net containing the union of the operands' elements
927
+ \end_layout
928
+
929
+ \begin_layout Itemize
930
+
931
+ \family typewriter
932
+ #-
933
+ \family default
934
+ – returns a new net containing the elements of the receiver minus the operand
935
+ \end_layout
936
+
937
+ \begin_layout Itemize
938
+
939
+ \family typewriter
940
+ #functional?
941
+ \family default
942
+ – inquirer whether the net is functional
943
+ \end_layout
944
+
945
+ \begin_layout Itemize
946
+
947
+ \family typewriter
948
+ #timed?
949
+ \family default
950
+ – inquirer whether the net is timed
951
+ \end_layout
952
+
953
+ \begin_layout Itemize
954
+
955
+ \family typewriter
956
+ #simulation
957
+ \family default
958
+ – constructor of a new simulation of this net
959
+ \end_layout
960
+
961
+ \begin_layout Standard
962
+ A
963
+ \family typewriter
964
+ Net
965
+ \family default
966
+ instance has its own state, and can be asked about place marking, transiton
967
+ flux etc.
968
+ It is also capable of drawing a diagram with Graphviz, using
969
+ \family typewriter
970
+ #visualize
971
+ \family default
972
+ method.
973
+ For full listing of methods, see the class documentation.
974
+ \end_layout
975
+
976
+ \begin_layout Part*
977
+
978
+ \family typewriter
979
+ World
980
+ \family default
981
+ class
982
+ \end_layout
983
+
984
+ \begin_layout Standard
985
+
986
+ \family typewriter
987
+ YPetri::World
988
+ \family default
989
+ is the space where places, transitions and nets live.
990
+ Originally, this class was named
991
+ \family typewriter
992
+ Workspace
993
+ \family default
994
+ , but
995
+ \family typewriter
996
+ World
997
+ \family default
998
+ is shorter.
999
+ Owns PS of
1000
+ \family typewriter
1001
+ Place
1002
+ \family default
1003
+ ,
1004
+ \family typewriter
1005
+ Transition
1006
+ \family default
1007
+ and
1008
+ \family typewriter
1009
+ Net
1010
+ \family default
1011
+ , stored respectively in
1012
+ \family typewriter
1013
+ @Place
1014
+ \family default
1015
+ ,
1016
+ \family typewriter
1017
+ @Transition
1018
+ \family default
1019
+ and
1020
+ \family typewriter
1021
+ @Net
1022
+ \family default
1023
+ instance variables.
1024
+ Their instances can be constructed with:
1025
+ \end_layout
1026
+
1027
+ \begin_layout Itemize
1028
+
1029
+ \family typewriter
1030
+ #Place
1031
+ \family default
1032
+ – constructor of instances of
1033
+ \family typewriter
1034
+ Place
1035
+ \family default
1036
+ PS.
1037
+ \end_layout
1038
+
1039
+ \begin_layout Itemize
1040
+
1041
+ \family typewriter
1042
+ #Transition
1043
+ \family default
1044
+ – constructor of instances of
1045
+ \family typewriter
1046
+ Transition
1047
+ \family default
1048
+ PS.
1049
+ \end_layout
1050
+
1051
+ \begin_layout Itemize
1052
+
1053
+ \family typewriter
1054
+ #Net
1055
+ \family default
1056
+ constructor – constructor of instances of
1057
+ \family typewriter
1058
+ Net
1059
+ \family default
1060
+ PS.
1061
+ \end_layout
1062
+
1063
+ \begin_layout Standard
1064
+ World assets are divided into two mixins:
1065
+ \family typewriter
1066
+ YPetri::World::PetriNetAspect
1067
+ \family default
1068
+ and
1069
+ \family typewriter
1070
+ YPetri::World::SimulationAspect
1071
+ \family default
1072
+ .
1073
+ Important instance methods of PetriNetAspect are:
1074
+ \end_layout
1075
+
1076
+ \begin_layout Itemize
1077
+
1078
+ \family typewriter
1079
+ #place
1080
+ \family default
1081
+
1082
+ \family typewriter
1083
+ Place
1084
+ \family default
1085
+ PS instance finder.
1086
+ \end_layout
1087
+
1088
+ \begin_layout Itemize
1089
+
1090
+ \family typewriter
1091
+ #transition
1092
+ \family default
1093
+
1094
+ \family typewriter
1095
+ Transition
1096
+ \family default
1097
+ PS instance finder.
1098
+ \end_layout
1099
+
1100
+ \begin_layout Itemize
1101
+
1102
+ \family typewriter
1103
+ #net
1104
+ \family default
1105
+
1106
+ \family typewriter
1107
+ Net
1108
+ \family default
1109
+ PS instance finder.
1110
+ \end_layout
1111
+
1112
+ \begin_layout Itemize
1113
+
1114
+ \family typewriter
1115
+ #places
1116
+ \family default
1117
+ – returns all
1118
+ \family typewriter
1119
+ Place
1120
+ \family default
1121
+ PS instances.
1122
+ \end_layout
1123
+
1124
+ \begin_layout Itemize
1125
+
1126
+ \family typewriter
1127
+ #transitions
1128
+ \family default
1129
+ – returns all
1130
+ \family typewriter
1131
+ Transition
1132
+ \family default
1133
+ PS instances.
1134
+ \end_layout
1135
+
1136
+ \begin_layout Itemize
1137
+
1138
+ \family typewriter
1139
+ #nets
1140
+ \family default
1141
+ – returns all
1142
+ \family typewriter
1143
+ Net
1144
+ \family default
1145
+ PS instances.
1146
+ \end_layout
1147
+
1148
+ \begin_layout Standard
1149
+ Important instance methods of SimulationAspect are:
1150
+ \end_layout
1151
+
1152
+ \begin_layout Itemize
1153
+
1154
+ \family typewriter
1155
+ #new_simulation
1156
+ \family default
1157
+ – constructor of simulations.
1158
+ \end_layout
1159
+
1160
+ \begin_layout Itemize
1161
+
1162
+ \family typewriter
1163
+ #simulation
1164
+ \family default
1165
+
1166
+ \family typewriter
1167
+ Simulation
1168
+ \family default
1169
+ instance finder.
1170
+ \end_layout
1171
+
1172
+ \begin_layout Itemize
1173
+
1174
+ \family typewriter
1175
+ #simulations
1176
+ \family default
1177
+ – getter of
1178
+ \family typewriter
1179
+ @simulations
1180
+ \family default
1181
+ , a hash of simulation instances and their settings.
1182
+ \end_layout
1183
+
1184
+ \begin_layout Standard
1185
+
1186
+ \family typewriter
1187
+ World
1188
+ \family default
1189
+ instance has also 3 instance variables useful for simulations,
1190
+ \family typewriter
1191
+ @clamp_collections
1192
+ \family default
1193
+ ,
1194
+ \family typewriter
1195
+ @initial_marking_collections
1196
+ \family default
1197
+ and
1198
+ \family typewriter
1199
+ @simulation_settings_collections
1200
+ \family default
1201
+ .
1202
+ Each simulation requires an initial marking collection, a clamp collection,
1203
+ and a hash of simulation settings.
1204
+ In a world, these collections / settings can be named and stored in the
1205
+ above mentioned instance variables for later use in simulations.
1206
+ See the class documentation for more details and the accessor methods of
1207
+ these instance variables.
1208
+ \end_layout
1209
+
1210
+ \begin_layout Part*
1211
+
1212
+ \family typewriter
1213
+ Simulation
1214
+ \family default
1215
+ class
1216
+ \end_layout
1217
+
1218
+ \begin_layout Standard
1219
+ While
1220
+ \family typewriter
1221
+ YPetri
1222
+ \family default
1223
+ places have their own marking and the transitions make it possible to play
1224
+ the token game interactively, for many reasons, it is desirable to be able
1225
+ to execute Petri nets automatically.
1226
+
1227
+ \family typewriter
1228
+ YPetri::Simulation
1229
+ \family default
1230
+ class represents such simulations.
1231
+
1232
+ \family typewriter
1233
+ Simulation
1234
+ \family default
1235
+ instances do not operate directly on the Petri nets from which they were
1236
+ constructed.
1237
+ Instead, they form a representation (
1238
+ \begin_inset Quotes eld
1239
+ \end_inset
1240
+
1241
+ mental image
1242
+ \begin_inset Quotes erd
1243
+ \end_inset
1244
+
1245
+ ) of the places and transitions of the underlying net.
1246
+
1247
+ \family typewriter
1248
+ Simulation
1249
+ \family default
1250
+ instances do not change the state owned by the underlying net.
1251
+ Instead, they have their own marking vector, which they modify using a
1252
+ chosen simulation method in the way that simulates firing of the transitions.
1253
+ A simulation owns multiple parametrized subclasses:
1254
+ \end_layout
1255
+
1256
+ \begin_layout Itemize
1257
+
1258
+ \family typewriter
1259
+ #Place
1260
+ \family default
1261
+ – getter of
1262
+ \family typewriter
1263
+ @Place
1264
+ \family default
1265
+ , a PS of
1266
+ \family typewriter
1267
+ Simulation::PlaceRepresentation
1268
+ \end_layout
1269
+
1270
+ \begin_layout Itemize
1271
+
1272
+ \family typewriter
1273
+ #Transition
1274
+ \family default
1275
+ – getter of
1276
+ \family typewriter
1277
+ @Transition, a
1278
+ \family default
1279
+ PS of
1280
+ \family typewriter
1281
+ Simulation::TransitionRepresentation
1282
+ \end_layout
1283
+
1284
+ \begin_layout Itemize
1285
+
1286
+ \family typewriter
1287
+ #Places
1288
+ \family default
1289
+ – getter of
1290
+ \family typewriter
1291
+ @Places
1292
+ \family default
1293
+ , a PS of
1294
+ \family typewriter
1295
+ Simulation::Places
1296
+ \family default
1297
+ , representing a collection of place representations.
1298
+ \end_layout
1299
+
1300
+ \begin_layout Itemize
1301
+
1302
+ \family typewriter
1303
+ #Transitions
1304
+ \family default
1305
+ – getter of
1306
+ \family typewriter
1307
+ @Transitions
1308
+ \family default
1309
+ , a PS of
1310
+ \family typewriter
1311
+ Simulation::Transitions
1312
+ \family default
1313
+ , representing a collection of place representations.
1314
+ \end_layout
1315
+
1316
+ \begin_layout Itemize
1317
+
1318
+ \family typewriter
1319
+ #Elements
1320
+ \family default
1321
+ – getter of
1322
+ \family typewriter
1323
+ @Places
1324
+ \family default
1325
+ , a PS of
1326
+ \family typewriter
1327
+ Simulation::Elements
1328
+ \family default
1329
+ , representing a collection of element (either place or transition) representati
1330
+ ons.
1331
+ \end_layout
1332
+
1333
+ \begin_layout Itemize
1334
+
1335
+ \family typewriter
1336
+ #PlaceMapping
1337
+ \family default
1338
+ – getter of
1339
+ \family typewriter
1340
+ @PlaceMapping
1341
+ \family default
1342
+ , a PS of
1343
+ \family typewriter
1344
+ Simulation::PlaceMapping
1345
+ \family default
1346
+ , a specialized
1347
+ \family typewriter
1348
+ Hash
1349
+ \family default
1350
+ that maps the simulation's places to a set of some values.
1351
+ \end_layout
1352
+
1353
+ \begin_layout Itemize
1354
+
1355
+ \family typewriter
1356
+ #InitialMarking
1357
+ \family default
1358
+ – getter of
1359
+ \family typewriter
1360
+ @InitialMarking
1361
+ \family default
1362
+ , a PS of
1363
+ \family typewriter
1364
+ Simulation::InitialMarking
1365
+ \family default
1366
+ , which in turn is a subclass of
1367
+ \family typewriter
1368
+ PlaceMapping
1369
+ \family default
1370
+ .
1371
+ \end_layout
1372
+
1373
+ \begin_layout Itemize
1374
+
1375
+ \family typewriter
1376
+ #MarkingClamps
1377
+ \family default
1378
+ – getter of
1379
+ \family typewriter
1380
+ @MarkingClamps
1381
+ \family default
1382
+ , a PS of
1383
+ \family typewriter
1384
+ Simulation::MarkingClamps
1385
+ \family default
1386
+ , which in turn is a subclass of
1387
+ \family typewriter
1388
+ PlaceMapping
1389
+ \family default
1390
+ .
1391
+ \end_layout
1392
+
1393
+ \begin_layout Standard
1394
+ Simulation can be of two types: Timed or timeless.
1395
+ These two types are defined in two mixins,
1396
+ \family typewriter
1397
+ Simulation::Timed
1398
+ \family default
1399
+ and
1400
+ \family typewriter
1401
+ Simulation::Timeless
1402
+ \family default
1403
+ , with which the simulation instance is conditionally extended during its
1404
+ initialization, depending on its type.
1405
+ Simulation has a number of specialized instance methods defined in several
1406
+ mixins located inside the
1407
+ \family typewriter
1408
+ Simulation
1409
+ \family default
1410
+ namespace (
1411
+ \family typewriter
1412
+ Places::Access
1413
+ \family default
1414
+ ,
1415
+ \family typewriter
1416
+ Transitions::Access
1417
+ \family default
1418
+ ,
1419
+ \family typewriter
1420
+ Elements::Access
1421
+ \family default
1422
+ ,
1423
+ \family typewriter
1424
+ InitialMarking::Access
1425
+ \family default
1426
+ ,
1427
+ \family typewriter
1428
+ MarkingClamps::Access
1429
+ \family default
1430
+ ,
1431
+ \family typewriter
1432
+ MarkingVector::Access
1433
+ \family default
1434
+ ).
1435
+ You can find their complete listing in the class documentation.
1436
+ Some of the instance methods are:
1437
+ \end_layout
1438
+
1439
+ \begin_layout Itemize
1440
+
1441
+ \family typewriter
1442
+ #reset!
1443
+ \family default
1444
+ – resets the simulation.
1445
+ \end_layout
1446
+
1447
+ \begin_layout Itemize
1448
+
1449
+ \family typewriter
1450
+ #run!
1451
+ \family default
1452
+ – runs the simulation.
1453
+ \end_layout
1454
+
1455
+ \begin_layout Itemize
1456
+
1457
+ \family typewriter
1458
+ #run_upto
1459
+ \family default
1460
+ – runs the simulation to a given time (same can be achieved by
1461
+ \begin_inset Quotes eld
1462
+ \end_inset
1463
+
1464
+
1465
+ \family typewriter
1466
+ run( upto: ...
1467
+ )
1468
+ \family default
1469
+
1470
+ \begin_inset Quotes erd
1471
+ \end_inset
1472
+
1473
+ ).
1474
+ \end_layout
1475
+
1476
+ \begin_layout Itemize
1477
+
1478
+ \family typewriter
1479
+ #step!
1480
+ \family default
1481
+ – steps the simulation.
1482
+ \end_layout
1483
+
1484
+ \begin_layout Itemize
1485
+
1486
+ \family typewriter
1487
+ #settings
1488
+ \family default
1489
+ – returns all the settings for this simulation.
1490
+ \end_layout
1491
+
1492
+ \begin_layout Itemize
1493
+
1494
+ \family typewriter
1495
+ #core
1496
+ \family default
1497
+ – simulator currently in use.
1498
+ \end_layout
1499
+
1500
+ \begin_layout Itemize
1501
+
1502
+ \family typewriter
1503
+ #recorder
1504
+ \family default
1505
+ – recorder instance currently in use.
1506
+ \end_layout
1507
+
1508
+ \begin_layout Itemize
1509
+
1510
+ \family typewriter
1511
+ #tS_SM
1512
+ \family default
1513
+ – stoichiometric matrix for tS transitions.
1514
+ \end_layout
1515
+
1516
+ \begin_layout Itemize
1517
+
1518
+ \family typewriter
1519
+ #TS_SM
1520
+ \family default
1521
+ – stoichiometric matrix for TS transitions.
1522
+ \end_layout
1523
+
1524
+ \begin_layout Itemize
1525
+
1526
+ \family typewriter
1527
+ #dup
1528
+ \family default
1529
+ , alias
1530
+ \family typewriter
1531
+ #at
1532
+ \family default
1533
+ – duplicate of the receiver simulation, with the possibility to change
1534
+ time and/or other simulation settings.
1535
+ \end_layout
1536
+
1537
+ \begin_layout Standard
1538
+ Defined in
1539
+ \family typewriter
1540
+ Simulation::Places::Access
1541
+ \family default
1542
+ :
1543
+ \end_layout
1544
+
1545
+ \begin_layout Itemize
1546
+
1547
+ \family typewriter
1548
+ #include_place?
1549
+ \family default
1550
+ – inquirer whether the simulation includes a specified place.
1551
+ \end_layout
1552
+
1553
+ \begin_layout Itemize
1554
+
1555
+ \family typewriter
1556
+ #p
1557
+ \family default
1558
+ – net's place identified by the argument.
1559
+ \end_layout
1560
+
1561
+ \begin_layout Itemize
1562
+
1563
+ \family typewriter
1564
+ #Pp
1565
+ \family default
1566
+ – net's places, expects single array argument.
1567
+ \end_layout
1568
+
1569
+ \begin_layout Itemize
1570
+
1571
+ \family typewriter
1572
+ #pp
1573
+ \family default
1574
+ – net's places, arbitrary number of arguments.
1575
+ If called without arguments, returns all the net's places.
1576
+ \end_layout
1577
+
1578
+ \begin_layout Itemize
1579
+
1580
+ \family typewriter
1581
+ #Free_pp
1582
+ \family default
1583
+ , alias
1584
+ \family typewriter
1585
+ #free_Pp
1586
+ \family default
1587
+ – net's free places, single array argument.
1588
+ \end_layout
1589
+
1590
+ \begin_layout Itemize
1591
+
1592
+ \family typewriter
1593
+ #free_pp
1594
+ \family default
1595
+ – net's free places, arbitrary number of arguments.
1596
+ If called without arguments, returns all of them.
1597
+ \end_layout
1598
+
1599
+ \begin_layout Itemize
1600
+
1601
+ \family typewriter
1602
+ #Clamped_pp
1603
+ \family default
1604
+ , alias
1605
+ \family typewriter
1606
+ #clamped_Pp
1607
+ \family default
1608
+ – net's free places, single array argument.
1609
+ \end_layout
1610
+
1611
+ \begin_layout Itemize
1612
+
1613
+ \family typewriter
1614
+ #clamped_pp
1615
+ \family default
1616
+ – net's free places, arbitrary number of arguments.
1617
+ If called without arguments, returns all of them.
1618
+ \end_layout
1619
+
1620
+ \begin_layout Standard
1621
+ Defined in
1622
+ \family typewriter
1623
+ Simulation::Transitions::Access
1624
+ \family default
1625
+ :
1626
+ \end_layout
1627
+
1628
+ \begin_layout Itemize
1629
+
1630
+ \family typewriter
1631
+ #include_transition?
1632
+ \family default
1633
+ – inquirer whether the simulation includes a specified place.
1634
+ \end_layout
1635
+
1636
+ \begin_layout Itemize
1637
+
1638
+ \family typewriter
1639
+ #t
1640
+ \family default
1641
+ – net's transition identified by the argument.
1642
+ \end_layout
1643
+
1644
+ \begin_layout Itemize
1645
+
1646
+ \family typewriter
1647
+ #Tt
1648
+ \family default
1649
+ – net's transitions, expects array argument.
1650
+ \end_layout
1651
+
1652
+ \begin_layout Itemize
1653
+
1654
+ \family typewriter
1655
+ #tt
1656
+ \family default
1657
+ – net's transitions, arbitrary number of arguments.
1658
+ \end_layout
1659
+
1660
+ \begin_layout Itemize
1661
+
1662
+ \family typewriter
1663
+ #ts_Tt
1664
+ \family default
1665
+ ,
1666
+ \family typewriter
1667
+ #tS_Tt
1668
+ \family default
1669
+ ,
1670
+ \family typewriter
1671
+ #Ts_Tt
1672
+ \family default
1673
+ ,
1674
+ \family typewriter
1675
+ #TS_Tt
1676
+ \family default
1677
+ ,
1678
+ \family typewriter
1679
+ #A_Tt
1680
+ \family default
1681
+ etc.
1682
+ – net's transitions of the specified type.
1683
+ As signified by capitalized
1684
+ \begin_inset Quotes eld
1685
+ \end_inset
1686
+
1687
+
1688
+ \family typewriter
1689
+ Tt
1690
+ \family default
1691
+
1692
+ \begin_inset Quotes erd
1693
+ \end_inset
1694
+
1695
+ , these methods expects a single array argument.
1696
+ \end_layout
1697
+
1698
+ \begin_layout Itemize
1699
+
1700
+ \family typewriter
1701
+ #ts_tt
1702
+ \family default
1703
+ ,
1704
+ \family typewriter
1705
+ #tS_tt
1706
+ \family default
1707
+ ,
1708
+ \family typewriter
1709
+ #Ts_tt
1710
+ \family default
1711
+ ,
1712
+ \family typewriter
1713
+ #TS_tt
1714
+ \family default
1715
+ ,
1716
+ \family typewriter
1717
+ #A_tt
1718
+ \family default
1719
+ etc.
1720
+ – versions of tnet's transitions of the specified type.
1721
+ As signified by capitalized
1722
+ \begin_inset Quotes eld
1723
+ \end_inset
1724
+
1725
+
1726
+ \family typewriter
1727
+ Tt
1728
+ \family default
1729
+
1730
+ \begin_inset Quotes erd
1731
+ \end_inset
1732
+
1733
+ , these methods expects a single array argument.
1734
+ \end_layout
1735
+
1736
+ \begin_layout Standard
1737
+ Defined in
1738
+ \family typewriter
1739
+ Simulation::Elements::Access
1740
+ \family default
1741
+ (word
1742
+ \begin_inset Quotes eld
1743
+ \end_inset
1744
+
1745
+ element
1746
+ \begin_inset Quotes erd
1747
+ \end_inset
1748
+
1749
+ simply stands for etiher place, or transition):
1750
+ \end_layout
1751
+
1752
+ \begin_layout Itemize
1753
+
1754
+ \family typewriter
1755
+ #include?
1756
+ \family default
1757
+ – inquirer whether the simulation includes a specified place or transition.
1758
+ \end_layout
1759
+
1760
+ \begin_layout Itemize
1761
+
1762
+ \family typewriter
1763
+ #e
1764
+ \family default
1765
+ – net's element identified by the argument.
1766
+ \end_layout
1767
+
1768
+ \begin_layout Itemize
1769
+
1770
+ \family typewriter
1771
+ #Ee
1772
+ \family default
1773
+ – net's elements identified by a single array argument.
1774
+ \end_layout
1775
+
1776
+ \begin_layout Itemize
1777
+
1778
+ \family typewriter
1779
+ #ee
1780
+ \family default
1781
+ – net's elements, arbitrary number of arguments.
1782
+ \end_layout
1783
+
1784
+ \begin_layout Standard
1785
+ Defined in
1786
+ \family typewriter
1787
+ Simulation::InitialMarking::Access
1788
+ \family default
1789
+ :
1790
+ \end_layout
1791
+
1792
+ \begin_layout Itemize
1793
+
1794
+ \family typewriter
1795
+ #Initial_markings
1796
+ \family default
1797
+ , alias
1798
+ \family typewriter
1799
+ #initial_Markings
1800
+ \family default
1801
+ – initial markings of given
1802
+ \emph on
1803
+ free
1804
+ \emph default
1805
+ places, single array argument.
1806
+ \end_layout
1807
+
1808
+ \begin_layout Itemize
1809
+
1810
+ \family typewriter
1811
+ #initial_markings
1812
+ \family default
1813
+ , alias
1814
+ \family typewriter
1815
+ #initial_marking
1816
+ \family default
1817
+ – initial markings, arbitrary number of arguments identifying free places.
1818
+ \end_layout
1819
+
1820
+ \begin_layout Itemize
1821
+
1822
+ \family typewriter
1823
+ #Im
1824
+ \family default
1825
+ – starting markings of an array of
1826
+ \emph on
1827
+ any
1828
+ \emph default
1829
+ (not just free) places, as they appear right after reset.
1830
+ Expects a single array argument.
1831
+ \end_layout
1832
+
1833
+ \begin_layout Itemize
1834
+
1835
+ \family typewriter
1836
+ #im
1837
+ \family default
1838
+ – starting markings of any places, arbitrary number of arguments.
1839
+ \end_layout
1840
+
1841
+ \begin_layout Standard
1842
+ Defined in
1843
+ \family typewriter
1844
+ Simulation::MarkingClamps::Access
1845
+ \family default
1846
+ :
1847
+ \end_layout
1848
+
1849
+ \begin_layout Itemize
1850
+
1851
+ \family typewriter
1852
+ #Marking_clamps
1853
+ \family default
1854
+ , alias
1855
+ \family typewriter
1856
+ #marking_Clamps
1857
+ \family default
1858
+ – marking clamp values of given
1859
+ \emph on
1860
+ clamped
1861
+ \emph default
1862
+ places, single array argument.
1863
+ \end_layout
1864
+
1865
+ \begin_layout Itemize
1866
+
1867
+ \family typewriter
1868
+ #marking_clamps
1869
+ \family default
1870
+ – initial markings, arbitrary number of arguments.
1871
+ \end_layout
1872
+
1873
+ \begin_layout Itemize
1874
+
1875
+ \family typewriter
1876
+ #marking_clamp
1877
+ \family default
1878
+ – expects a single clamped place, returns its marking clamp.
1879
+ \end_layout
1880
+
1881
+ \begin_layout Standard
1882
+ Defined in
1883
+ \family typewriter
1884
+ Simulation::MarkingVector::Access
1885
+ \family default
1886
+ :
1887
+ \end_layout
1888
+
1889
+ \begin_layout Itemize
1890
+
1891
+ \family typewriter
1892
+ #M_vector
1893
+ \family default
1894
+ alias
1895
+ \family typewriter
1896
+ #m_Vector
1897
+ \family default
1898
+ – marking of the selected places returned as a column vector.
1899
+ Expects a single array argument.
1900
+ \end_layout
1901
+
1902
+ \begin_layout Itemize
1903
+
1904
+ \family typewriter
1905
+ #state
1906
+ \family default
1907
+ – getter of the simulation's state vector (
1908
+ \family typewriter
1909
+ @m_vector
1910
+ \family default
1911
+ instance variable).
1912
+ \end_layout
1913
+
1914
+ \begin_layout Itemize
1915
+
1916
+ \family typewriter
1917
+ #m_vector
1918
+ \family default
1919
+ – marking of the selected places returned as a column vector, any number
1920
+ of arguments.
1921
+ \end_layout
1922
+
1923
+ \begin_layout Itemize
1924
+
1925
+ \family typewriter
1926
+ #M
1927
+ \family default
1928
+ ,
1929
+ \family typewriter
1930
+ #m
1931
+ \family default
1932
+ – array-returning varieties of
1933
+ \family typewriter
1934
+ #M_vector
1935
+ \family default
1936
+ and
1937
+ \family typewriter
1938
+ #m
1939
+ \family default
1940
+ .
1941
+ \end_layout
1942
+
1943
+ \begin_layout Itemize
1944
+
1945
+ \family typewriter
1946
+ #p_M
1947
+ \family default
1948
+ (alias
1949
+ \family typewriter
1950
+ #P_m
1951
+ \family default
1952
+ ),
1953
+ \family typewriter
1954
+ #p_m
1955
+ \family default
1956
+ – hash-returning varieties of
1957
+ \family typewriter
1958
+ #M_vector
1959
+ \family default
1960
+ and
1961
+ \family typewriter
1962
+ #m
1963
+ \family default
1964
+ .
1965
+ \end_layout
1966
+
1967
+ \begin_layout Itemize
1968
+
1969
+ \family typewriter
1970
+ #Pm
1971
+ \family default
1972
+ ,
1973
+ \family typewriter
1974
+ #pm
1975
+ \family default
1976
+ – pretty printing varieties of
1977
+ \family typewriter
1978
+ #M_vector
1979
+ \family default
1980
+ and
1981
+ \family typewriter
1982
+ #m
1983
+ \family default
1984
+ .
1985
+ \end_layout
1986
+
1987
+ \begin_layout Standard
1988
+ Defined in
1989
+ \family typewriter
1990
+ Simulation::Timed
1991
+ \family default
1992
+ and
1993
+ \family typewriter
1994
+ Simulation::Timeless
1995
+ \family default
1996
+ mixins:
1997
+ \end_layout
1998
+
1999
+ \begin_layout Itemize
2000
+
2001
+ \family typewriter
2002
+ #timed?
2003
+ \family default
2004
+ – inquirer whether the simulation is timed
2005
+ \end_layout
2006
+
2007
+ \begin_layout Itemize
2008
+
2009
+ \family typewriter
2010
+ #Recorder
2011
+ \family default
2012
+ – getter of
2013
+ \family typewriter
2014
+ @Recorder
2015
+ \family default
2016
+ , a PS of
2017
+ \family typewriter
2018
+ Petri::Simulation::Recorder
2019
+ \family default
2020
+ , an object that performs sampling and recording during simulation.
2021
+ \end_layout
2022
+
2023
+ \begin_layout Itemize
2024
+
2025
+ \family typewriter
2026
+ #Core
2027
+ \family default
2028
+ – getter of
2029
+ \family typewriter
2030
+ @Core
2031
+ \family default
2032
+ , a PS of
2033
+ \family typewriter
2034
+ YPetri::Core
2035
+ \family default
2036
+ , a machine abstraction class.
2037
+ \end_layout
2038
+
2039
+ \begin_layout Standard
2040
+ Defined in
2041
+ \family typewriter
2042
+ Simulation::Timed
2043
+ \family default
2044
+ mixin:
2045
+ \end_layout
2046
+
2047
+ \begin_layout Itemize
2048
+
2049
+ \family typewriter
2050
+ #time
2051
+ \family default
2052
+ – current simulation time
2053
+ \end_layout
2054
+
2055
+ \begin_layout Itemize
2056
+
2057
+ \family typewriter
2058
+ #initial_time
2059
+ \family default
2060
+ – initial time of the simulation
2061
+ \end_layout
2062
+
2063
+ \begin_layout Itemize
2064
+
2065
+ \family typewriter
2066
+ #target_time
2067
+ \family default
2068
+ – target time of the simulation (used when
2069
+ \family typewriter
2070
+ #run!
2071
+ \family default
2072
+ is called without arguments)
2073
+ \end_layout
2074
+
2075
+ \begin_layout Itemize
2076
+
2077
+ \family typewriter
2078
+ #time_range
2079
+ \family default
2080
+ – range-returning alternative for
2081
+ \family typewriter
2082
+ #initial_time
2083
+ \family default
2084
+ and
2085
+ \family typewriter
2086
+ #target_time
2087
+ \family default
2088
+ .
2089
+ \end_layout
2090
+
2091
+ \begin_layout Itemize
2092
+
2093
+ \family typewriter
2094
+ #step
2095
+ \family default
2096
+ ,
2097
+ \family typewriter
2098
+ #step=
2099
+ \family default
2100
+ – getter and setter of the simulation step size
2101
+ \end_layout
2102
+
2103
+ \begin_layout Itemize
2104
+
2105
+ \family typewriter
2106
+ #default_sampling
2107
+ \family default
2108
+ – sampling period for the simulation
2109
+ \end_layout
2110
+
2111
+ \begin_layout Itemize
2112
+
2113
+ \family typewriter
2114
+ #Fluxes
2115
+ \family default
2116
+ – takes a single array of TS transitions and returns their fluxes under
2117
+ current marking.
2118
+ \end_layout
2119
+
2120
+ \begin_layout Itemize
2121
+
2122
+ \family typewriter
2123
+ #fluxes
2124
+ \family default
2125
+ , alias
2126
+ \family typewriter
2127
+ #flux
2128
+ \family default
2129
+ – like
2130
+ \family typewriter
2131
+ #Fluxes
2132
+ \family default
2133
+ , but takes an arbitrary number of arguments.
2134
+ If no arguments are supplied, returns all of them.
2135
+ \end_layout
2136
+
2137
+ \begin_layout Itemize
2138
+
2139
+ \family typewriter
2140
+ #T_fluxes
2141
+ \family default
2142
+ (alias
2143
+ \family typewriter
2144
+ #t_Fluxes
2145
+ \family default
2146
+ ),
2147
+ \family typewriter
2148
+ #t_fluxes
2149
+ \family default
2150
+ (alias
2151
+ \family typewriter
2152
+ #t_flux
2153
+ \family default
2154
+ ) – hash-returning varieties of
2155
+ \family typewriter
2156
+ #Fluxes
2157
+ \family default
2158
+ and
2159
+ \family typewriter
2160
+ #fluxes
2161
+ \family default
2162
+ .
2163
+ \end_layout
2164
+
2165
+ \begin_layout Itemize
2166
+
2167
+ \family typewriter
2168
+ #pflux
2169
+ \family default
2170
+ – pretty-printing variety of
2171
+ \family typewriter
2172
+ #t_flux
2173
+ \family default
2174
+ .
2175
+ \end_layout
2176
+
2177
+ \begin_layout Standard
2178
+ The above list of methods is not exhaustive.
2179
+ For full list of methods and their documentation, see the documentation
2180
+ of the
2181
+ \family typewriter
2182
+ Simulation
2183
+ \family default
2184
+ class.
2185
+ \end_layout
2186
+
2187
+ \begin_layout Part*
2188
+
2189
+ \family typewriter
2190
+ Simulation::Recorder
2191
+ \family default
2192
+ class
2193
+ \end_layout
2194
+
2195
+ \begin_layout Standard
2196
+
2197
+ \family typewriter
2198
+ YPetri::Simulation::Recorder
2199
+ \family default
2200
+ is a class used exclusively as a PS dependent on
2201
+ \family typewriter
2202
+ YPetri::Simulation
2203
+ \family default
2204
+ instances.
2205
+ Its has tow key attributes:
2206
+ \end_layout
2207
+
2208
+ \begin_layout Enumerate
2209
+
2210
+ \family typewriter
2211
+ #features
2212
+ \family default
2213
+ – getter of
2214
+ \family typewriter
2215
+ @features
2216
+ \family default
2217
+ , containing the feature set to be recorded.
2218
+ Its class is a PS of
2219
+ \family typewriter
2220
+ Net::State::Features
2221
+ \family default
2222
+ .
2223
+ It can be specified explicitly upon initialization or via
2224
+ \family typewriter
2225
+ #reset!
2226
+ \family default
2227
+ method.
2228
+ By default, markings of the free places are used.
2229
+ \end_layout
2230
+
2231
+ \begin_layout Enumerate
2232
+
2233
+ \family typewriter
2234
+ #recording
2235
+ \family default
2236
+ – getter of
2237
+ \family typewriter
2238
+ @recording
2239
+ \family default
2240
+ , containing the recording itself.
2241
+ Its class is a PS of
2242
+ \family typewriter
2243
+ Net::DataSet
2244
+ \family default
2245
+ .
2246
+ \end_layout
2247
+
2248
+ \begin_layout Standard
2249
+ In the course of simulation, the recorder performs sampling: Upon occurence
2250
+ of certain events, it records the feature set and stores it in the
2251
+ \family typewriter
2252
+ @recording
2253
+ \family default
2254
+ object.
2255
+ For timed simulations, events are typically specified by time (
2256
+ \family typewriter
2257
+ @next_time
2258
+ \family default
2259
+ variable).
2260
+ Timeless simulations are not handled in the current version of
2261
+ \family typewriter
2262
+ YPetri
2263
+ \family default
2264
+ , but it can already be said that events will be specified as conditions
2265
+ defined on the marking vector (
2266
+ \family typewriter
2267
+ @next_event
2268
+ \family default
2269
+ variable).
2270
+ Recorder's checking for whether the sampling condition is fulfilled is
2271
+ triggered by the
2272
+ \family typewriter
2273
+ :alert!
2274
+ \family default
2275
+ message.
2276
+
2277
+ \family typewriter
2278
+ Recorder.new
2279
+ \family default
2280
+ constructor takes the following named arguments:
2281
+ \end_layout
2282
+
2283
+ \begin_layout Itemize
2284
+
2285
+ \family typewriter
2286
+ features:
2287
+ \family default
2288
+ the feature set to record.
2289
+ \end_layout
2290
+
2291
+ \begin_layout Itemize
2292
+
2293
+ \family typewriter
2294
+ recording:
2295
+ \family default
2296
+ option to plug a pre-constructed dataset to the recorder.
2297
+ \end_layout
2298
+
2299
+ \begin_layout Standard
2300
+ In timed simulations,
2301
+ \family typewriter
2302
+ Recorder.new
2303
+ \family default
2304
+ also accepts:
2305
+ \end_layout
2306
+
2307
+ \begin_layout Itemize
2308
+
2309
+ \family typewriter
2310
+ sampling:
2311
+ \family default
2312
+ sampling period
2313
+ \end_layout
2314
+
2315
+ \begin_layout Itemize
2316
+
2317
+ \family typewriter
2318
+ next_time:
2319
+ \family default
2320
+ the next sampling time
2321
+ \end_layout
2322
+
2323
+ \begin_layout Standard
2324
+ Important instance methods of
2325
+ \family typewriter
2326
+ Recorder
2327
+ \family default
2328
+ are:
2329
+ \end_layout
2330
+
2331
+ \begin_layout Itemize
2332
+
2333
+ \family typewriter
2334
+ #new_recording
2335
+ \family default
2336
+ – constructs a new recording dependent on
2337
+ \family typewriter
2338
+ @features
2339
+ \family default
2340
+ .
2341
+ \end_layout
2342
+
2343
+ \begin_layout Itemize
2344
+
2345
+ \family typewriter
2346
+ #reset!
2347
+ \family default
2348
+ – resets
2349
+ \family typewriter
2350
+ @recording
2351
+ \family default
2352
+ and optionally changes
2353
+ \family typewriter
2354
+ @features
2355
+ \family default
2356
+ .
2357
+ \end_layout
2358
+
2359
+ \begin_layout Itemize
2360
+
2361
+ \family typewriter
2362
+ #alert!
2363
+ \family default
2364
+ – recorder expects this message whenever the system state changes.
2365
+ \end_layout
2366
+
2367
+ \begin_layout Itemize
2368
+
2369
+ \family typewriter
2370
+ #sample!
2371
+ \family default
2372
+ – private method that performs sampling
2373
+ \end_layout
2374
+
2375
+ \begin_layout Part*
2376
+
2377
+ \family typewriter
2378
+ Core
2379
+ \family default
2380
+ class
2381
+ \end_layout
2382
+
2383
+ \begin_layout Standard
2384
+
2385
+ \family typewriter
2386
+ YPetri::Core
2387
+ \family default
2388
+ class is the abstraction for the simulator machine.
2389
+ Originally, it was named
2390
+ \family typewriter
2391
+ Simulator
2392
+ \family default
2393
+ , but
2394
+ \family typewriter
2395
+ Core
2396
+ \family default
2397
+ is shorter.
2398
+ When a
2399
+ \family typewriter
2400
+ Simulation
2401
+ \family default
2402
+ instance wants to proceed in time to a next state, it relies on a
2403
+ \family typewriter
2404
+ Core
2405
+ \family default
2406
+ instance to perform the computation.
2407
+
2408
+ \family typewriter
2409
+ Core
2410
+ \family default
2411
+ was separated from
2412
+ \family typewriter
2413
+ Simulation
2414
+ \family default
2415
+ for the purpose of facilitating the use of different machines to run the
2416
+ simulation.
2417
+ At the moment, plain Ruby is used to compute the simulation steps.
2418
+
2419
+ \family typewriter
2420
+ Core
2421
+ \family default
2422
+ instance is generally not directly controlled by the user.
2423
+
2424
+ \family typewriter
2425
+ Core
2426
+ \family default
2427
+ provides certain some basic interface, on which its mixins defining the
2428
+ different simulation methods rely:
2429
+ \end_layout
2430
+
2431
+ \begin_layout Itemize
2432
+
2433
+ \family typewriter
2434
+ #flux_vector
2435
+ \family default
2436
+ – flux vector for the nets with only TS transitions.
2437
+ \end_layout
2438
+
2439
+ \begin_layout Itemize
2440
+
2441
+ \family typewriter
2442
+ #flux_vector_TS
2443
+ \family default
2444
+ – for mixed nets, returns flux vector for only TS transitions.
2445
+ \end_layout
2446
+
2447
+ \begin_layout Itemize
2448
+
2449
+ \family typewriter
2450
+ #firing_vector_tS
2451
+ \family default
2452
+ – firing vector of tS transitions.
2453
+ \end_layout
2454
+
2455
+ \begin_layout Itemize
2456
+
2457
+ \family typewriter
2458
+ #delta_tS
2459
+ \family default
2460
+ – delta state caused by tS transitions.
2461
+ \end_layout
2462
+
2463
+ \begin_layout Itemize
2464
+
2465
+ \family typewriter
2466
+ #delta_ts
2467
+ \family default
2468
+ – delta state caused by ts transitions.
2469
+ \end_layout
2470
+
2471
+ \begin_layout Itemize
2472
+
2473
+ \family typewriter
2474
+ #gradient
2475
+ \family default
2476
+ – total system gradient for free places.
2477
+ \end_layout
2478
+
2479
+ \begin_layout Itemize
2480
+
2481
+ \family typewriter
2482
+ #gradient_Ts
2483
+ \family default
2484
+ – gradient contribution by Ts transitions.
2485
+ \end_layout
2486
+
2487
+ \begin_layout Itemize
2488
+
2489
+ \family typewriter
2490
+ #gradient_TS
2491
+ \family default
2492
+ – gradient contribution by TS transitions.
2493
+ \end_layout
2494
+
2495
+ \begin_layout Standard
2496
+ For the purpose of controlling the marking vector,
2497
+ \family typewriter
2498
+ Core
2499
+ \family default
2500
+ provides 2 instance methods:
2501
+ \end_layout
2502
+
2503
+ \begin_layout Itemize
2504
+
2505
+ \family typewriter
2506
+ #assignment_transitions_all_fire!
2507
+ \family default
2508
+ – fires all A (assignment) transitions.
2509
+ \end_layout
2510
+
2511
+ \begin_layout Itemize
2512
+
2513
+ \family typewriter
2514
+ #increment_marking_vector
2515
+ \family default
2516
+ – expects a delta vector of the same size as the marking vector as its
2517
+ singe argument, and increments the marking vector by it.
2518
+ \end_layout
2519
+
2520
+ \begin_layout Standard
2521
+ Simulation method mixins take flux, gradient, delta etc., and based on them,
2522
+ compute the overall delta state, change the marking vector and fire assignment
2523
+ transitions as defined by the simulation method, alerting the recorder
2524
+ when the state changes.
2525
+ At the moment, simulation methods include:
2526
+ \end_layout
2527
+
2528
+ \begin_layout Itemize
2529
+
2530
+ \family typewriter
2531
+ :euler
2532
+ \family default
2533
+ – 1st order method for nets with only T (timed) transitions.
2534
+ Mixin:
2535
+ \family typewriter
2536
+ Core::Timed::Euler
2537
+ \family default
2538
+ .
2539
+ \end_layout
2540
+
2541
+ \begin_layout Itemize
2542
+
2543
+ \family typewriter
2544
+ :pseudo_euler
2545
+ \family default
2546
+ – Euler method adaptation for nets with timeless transitions.
2547
+ Mixin:
2548
+ \family typewriter
2549
+ Core::Timed::PseudoEuler
2550
+ \family default
2551
+ .
2552
+ \end_layout
2553
+
2554
+ \begin_layout Itemize
2555
+
2556
+ \family typewriter
2557
+ :gillespie
2558
+ \family default
2559
+ – For nets with only T transitions.
2560
+ Mixin:
2561
+ \family typewriter
2562
+ Core::Timed::Gillespie
2563
+ \family default
2564
+ .
2565
+ \end_layout
2566
+
2567
+ \begin_layout Itemize
2568
+
2569
+ \family typewriter
2570
+ :runge_kutta
2571
+ \family default
2572
+ – 5th order method for nets with only T transitions.
2573
+ Mixin:
2574
+ \family typewriter
2575
+ Core::Timed::RungeKutta
2576
+ \family default
2577
+ .
2578
+ (
2579
+ \emph on
2580
+ Not working at the moment!
2581
+ \emph default
2582
+ )
2583
+ \end_layout
2584
+
2585
+ \begin_layout Part*
2586
+
2587
+ \family typewriter
2588
+ State
2589
+ \family default
2590
+ class
2591
+ \end_layout
2592
+
2593
+ \begin_layout Standard
2594
+ The state of a Petri net is entirely given by marking of its places.
2595
+
2596
+ \family typewriter
2597
+ Simulation
2598
+ \family default
2599
+ instances maintain their own marking vector holding the net state, but
2600
+ the net instance also has it's own state class, a PS of
2601
+ \family typewriter
2602
+ YPetri::Net::State
2603
+ \family default
2604
+ <
2605
+ \family typewriter
2606
+ Array
2607
+ \family default
2608
+ .
2609
+
2610
+ \family typewriter
2611
+ State
2612
+ \family default
2613
+ class is thus commonly used as a PS dependent on a
2614
+ \family typewriter
2615
+ Net
2616
+ \family default
2617
+ instance, whose array positions correspond to the net's places.
2618
+ This net is available as a public class method on the
2619
+ \family typewriter
2620
+ State
2621
+ \family default
2622
+ PS:
2623
+ \end_layout
2624
+
2625
+ \begin_layout Itemize
2626
+
2627
+ \family typewriter
2628
+ #net
2629
+ \family default
2630
+ – returns the net on which this State PS depends.
2631
+ \end_layout
2632
+
2633
+ \begin_layout Standard
2634
+ Each such
2635
+ \family typewriter
2636
+ State
2637
+ \family default
2638
+ PS in turn owns 2 dependent parametrized subclasses:
2639
+ \end_layout
2640
+
2641
+ \begin_layout Itemize
2642
+
2643
+ \family typewriter
2644
+ #Feature
2645
+ \family default
2646
+ – getter of
2647
+ \family typewriter
2648
+ @Feature
2649
+ \family default
2650
+ , containing a PS of
2651
+ \family typewriter
2652
+ State::Feature
2653
+ \family default
2654
+ .
2655
+ When called with arguments, acts as alias of
2656
+ \family typewriter
2657
+ #feature
2658
+ \family default
2659
+ .
2660
+ \end_layout
2661
+
2662
+ \begin_layout Itemize
2663
+
2664
+ \family typewriter
2665
+ #Features
2666
+ \family default
2667
+ – getter of
2668
+ \family typewriter
2669
+ @Features
2670
+ \family default
2671
+ , containing a PS of
2672
+ \family typewriter
2673
+ State::Features
2674
+ \family default
2675
+ .
2676
+ When called with a single array argument, this message acts as a feature
2677
+ set constructor / validator.
2678
+ \end_layout
2679
+
2680
+ \begin_layout Standard
2681
+ Other public class methods include:
2682
+ \end_layout
2683
+
2684
+ \begin_layout Itemize
2685
+
2686
+ \family typewriter
2687
+ #feature
2688
+ \family default
2689
+
2690
+ \family typewriter
2691
+ @Feature
2692
+ \family default
2693
+ instance identifier.
2694
+ \end_layout
2695
+
2696
+ \begin_layout Itemize
2697
+
2698
+ \family typewriter
2699
+ #features
2700
+ \family default
2701
+
2702
+ \family typewriter
2703
+ @Features
2704
+ \family default
2705
+ instance constructor.
2706
+ (See the class documentation for its full description.)
2707
+ \end_layout
2708
+
2709
+ \begin_layout Standard
2710
+ Instance methods include:
2711
+ \end_layout
2712
+
2713
+ \begin_layout Itemize
2714
+
2715
+ \family typewriter
2716
+ #to_record
2717
+ \family default
2718
+ – given clamped places, it returns a
2719
+ \family typewriter
2720
+ Record
2721
+ \family default
2722
+ instance containing the marking of the free places.
2723
+ If no set of clamped places is supplied, it is considered empty.
2724
+ \end_layout
2725
+
2726
+ \begin_layout Itemize
2727
+
2728
+ \family typewriter
2729
+ #marking
2730
+ \family default
2731
+ – returns the marking of a single given place in this
2732
+ \family typewriter
2733
+ State
2734
+ \family default
2735
+ instance.
2736
+ \end_layout
2737
+
2738
+ \begin_layout Itemize
2739
+
2740
+ \family typewriter
2741
+ #markings
2742
+ \family default
2743
+ – expects an arbitrary number of places, returns a plain array of their
2744
+ markings.
2745
+ If no arguments are given, returns all of them.
2746
+ \end_layout
2747
+
2748
+ \begin_layout Part*
2749
+
2750
+ \family typewriter
2751
+ Feature
2752
+ \family default
2753
+ class
2754
+ \end_layout
2755
+
2756
+ \begin_layout Standard
2757
+ A feature defines a measurement which can be performed on a net in some
2758
+ state to extract the feature's value.
2759
+ In
2760
+ \family typewriter
2761
+ YPetri
2762
+ \family default
2763
+ ,
2764
+ \family typewriter
2765
+ Net::State::Feature
2766
+ \family default
2767
+ class is used as a PS dependent on a
2768
+ \family typewriter
2769
+ State
2770
+ \family default
2771
+ PS (not on a
2772
+ \family typewriter
2773
+ State
2774
+ \family default
2775
+ instance):
2776
+ \end_layout
2777
+
2778
+ \begin_layout Itemize
2779
+
2780
+ \family typewriter
2781
+ #State
2782
+ \family default
2783
+ – the
2784
+ \family typewriter
2785
+ State
2786
+ \family default
2787
+ PS by which this
2788
+ \family typewriter
2789
+ Feature
2790
+ \family default
2791
+ PS was parametrized.
2792
+ \end_layout
2793
+
2794
+ \begin_layout Standard
2795
+ In the present implementation, this class serves as a mother class for more
2796
+ specialized feature classes:
2797
+ \family typewriter
2798
+ Marking
2799
+ \family default
2800
+ ,
2801
+ \family typewriter
2802
+ Firing
2803
+ \family default
2804
+ ,
2805
+ \family typewriter
2806
+ Flux
2807
+ \family default
2808
+ ,
2809
+ \family typewriter
2810
+ Gradient
2811
+ \family default
2812
+ ,
2813
+ \family typewriter
2814
+ Delta
2815
+ \family default
2816
+ and
2817
+ \family typewriter
2818
+ Assignment
2819
+ \family default
2820
+ .
2821
+ These are defined as
2822
+ \family typewriter
2823
+ Feature
2824
+ \family default
2825
+ subclasses on the namespace of
2826
+ \family typewriter
2827
+ Feature
2828
+ \family default
2829
+ itself, but at the same time, a PS of each of them is owned by the Feature
2830
+ PS:
2831
+ \end_layout
2832
+
2833
+ \begin_layout Itemize
2834
+
2835
+ \family typewriter
2836
+ #Marking
2837
+ \family default
2838
+ ,
2839
+ \family typewriter
2840
+ #Firing
2841
+ \family default
2842
+ ,
2843
+ \family typewriter
2844
+ #Flux
2845
+ \family default
2846
+ ,
2847
+ \family typewriter
2848
+ #Gradient
2849
+ \family default
2850
+ ,
2851
+ \family typewriter
2852
+ #Delta
2853
+ \family default
2854
+ ,
2855
+ \family typewriter
2856
+ #Assignment
2857
+ \family default
2858
+ – these public class methods defined on a PS of Feature returns the dependent
2859
+ parametrized subclasses for the classes of the same name (
2860
+ \family typewriter
2861
+ Feature::Marking
2862
+ \family default
2863
+ ,
2864
+ \family typewriter
2865
+ Feature::Firing
2866
+ \family default
2867
+ , etc.)
2868
+ \end_layout
2869
+
2870
+ \begin_layout Standard
2871
+ Instance methods are defined inside these specialized feature subclasses,
2872
+ such as:
2873
+ \end_layout
2874
+
2875
+ \begin_layout Itemize
2876
+
2877
+ \family typewriter
2878
+ #extract_from
2879
+ \family default
2880
+ – extracts the receiver feature from the target object, returning the feature's
2881
+ value.
2882
+ \end_layout
2883
+
2884
+ \begin_layout Itemize
2885
+
2886
+ \family typewriter
2887
+ #type
2888
+ \family default
2889
+ – feature type
2890
+ \end_layout
2891
+
2892
+ \begin_layout Itemize
2893
+
2894
+ \family typewriter
2895
+ #label
2896
+ \family default
2897
+ – feature label (for use in graphics etc.)
2898
+ \end_layout
2899
+
2900
+ \begin_layout Part*
2901
+
2902
+ \family typewriter
2903
+ Features
2904
+ \family default
2905
+ class – feature set
2906
+ \end_layout
2907
+
2908
+ \begin_layout Standard
2909
+ A collection of features is called a feature set.
2910
+ Measurement performed for a particular feature set results in a record.
2911
+ In
2912
+ \family typewriter
2913
+ YPetri
2914
+ \family default
2915
+ ,
2916
+ \family typewriter
2917
+ Net::State::Features
2918
+ \family default
2919
+ is a subclass of
2920
+ \family typewriter
2921
+ Array
2922
+ \family default
2923
+ , representing an array of features.
2924
+ Originally, it was named
2925
+ \family typewriter
2926
+ FeatureSet
2927
+ \family default
2928
+ , but
2929
+ \family typewriter
2930
+ Features
2931
+ \family default
2932
+ is shorter.
2933
+ It is used as a PS dependent on a
2934
+ \family typewriter
2935
+ State
2936
+ \family default
2937
+ PS (
2938
+ \emph on
2939
+ not
2940
+ \emph default
2941
+ on a
2942
+ \family typewriter
2943
+ State
2944
+ \family default
2945
+ instance).
2946
+ It's owning
2947
+ \family typewriter
2948
+ State
2949
+ \family default
2950
+ PS can be accessed via
2951
+ \family typewriter
2952
+ #State
2953
+ \family default
2954
+ class method.
2955
+ Such
2956
+ \family typewriter
2957
+ Features
2958
+ \family default
2959
+ PS in turn owns subclasses of
2960
+ \family typewriter
2961
+ Net::State::Features::Record
2962
+ \family default
2963
+ and
2964
+ \family typewriter
2965
+ Net::Dataset
2966
+ \family default
2967
+ , which can be accessed via
2968
+ \family typewriter
2969
+ #Record
2970
+ \family default
2971
+ and
2972
+ \family typewriter
2973
+ #Dataset
2974
+ \family default
2975
+ class methods.
2976
+ Other class methods include:
2977
+ \end_layout
2978
+
2979
+ \begin_layout Itemize
2980
+
2981
+ \family typewriter
2982
+ #Marking
2983
+ \family default
2984
+ ,
2985
+ \family typewriter
2986
+ #Firing
2987
+ \family default
2988
+ ,
2989
+ \family typewriter
2990
+ #Flux
2991
+ \family default
2992
+ ,
2993
+ \family typewriter
2994
+ #Assignment
2995
+ \family default
2996
+ – constructors of a set of marking features, accepting single array argument.
2997
+ \end_layout
2998
+
2999
+ \begin_layout Itemize
3000
+
3001
+ \family typewriter
3002
+ #marking
3003
+ \family default
3004
+ ,
3005
+ \family typewriter
3006
+ #firing
3007
+ \family default
3008
+ ,
3009
+ \family typewriter
3010
+ #flux
3011
+ \family default
3012
+ ,
3013
+ \family typewriter
3014
+ #assignment
3015
+ \family default
3016
+ – versions of the above constructors, that accept any number of arguments,
3017
+ and return full corresponding feature sets if no arguments are given.
3018
+ \end_layout
3019
+
3020
+ \begin_layout Itemize
3021
+
3022
+ \family typewriter
3023
+ #Gradient
3024
+ \family default
3025
+ – constructor of a set of gradient features, accepting an array and an
3026
+ optional :transitions named argument.
3027
+ \end_layout
3028
+
3029
+ \begin_layout Itemize
3030
+
3031
+ \family typewriter
3032
+ #gradient
3033
+ \family default
3034
+ – version of the above constructor accepting any number of ordered arguments,
3035
+ and returning full gradient feature set if no ordered arguments are given.
3036
+ \end_layout
3037
+
3038
+ \begin_layout Itemize
3039
+
3040
+ \family typewriter
3041
+ #Delta
3042
+ \family default
3043
+ – constructor of a set of delta features, accepting an array and an optional
3044
+ :transitions named argument.
3045
+ \end_layout
3046
+
3047
+ \begin_layout Itemize
3048
+
3049
+ \family typewriter
3050
+ #delta
3051
+ \family default
3052
+ – version of the above constructor accepting any number of ordered arguments,
3053
+ and returning full delta feature set if no ordered arguments are given.
3054
+ \end_layout
3055
+
3056
+ \begin_layout Itemize
3057
+
3058
+ \family typewriter
3059
+ #[]
3060
+ \family default
3061
+ – constructor that takes either an arbitrary number of ordered arguments,
3062
+ or a field of named arguments (
3063
+ \family typewriter
3064
+ :marking
3065
+ \family default
3066
+ ,
3067
+ \family typewriter
3068
+ :firing
3069
+ \family default
3070
+ ,
3071
+ \family typewriter
3072
+ :gradient
3073
+ \family default
3074
+ ,
3075
+ \family typewriter
3076
+ :flux
3077
+ \family default
3078
+ ,
3079
+ \family typewriter
3080
+ :delta
3081
+ \family default
3082
+ ,
3083
+ \family typewriter
3084
+ :assignment
3085
+ \family default
3086
+ ), identifying a (possibly) mixed set of features.
3087
+ \end_layout
3088
+
3089
+ \begin_layout Standard
3090
+ Furthermore, class method
3091
+ \family typewriter
3092
+ #new
3093
+ \family default
3094
+ is tweaked to make the returned instances own a PS of
3095
+ \family typewriter
3096
+ Record
3097
+ \family default
3098
+ and a PS of
3099
+ \family typewriter
3100
+ DataSet
3101
+ \family default
3102
+
3103
+ \emph on
3104
+ double parametrized
3105
+ \emph default
3106
+ by the instance.
3107
+ Therefore, also instance methods include:
3108
+ \end_layout
3109
+
3110
+ \begin_layout Itemize
3111
+
3112
+ \family typewriter
3113
+ #Record
3114
+ \family default
3115
+ – a PS of
3116
+ \family typewriter
3117
+ Features.Record
3118
+ \family default
3119
+ PS double parametrized by the receiver.
3120
+ \end_layout
3121
+
3122
+ \begin_layout Itemize
3123
+
3124
+ \family typewriter
3125
+ #DataSet
3126
+ \family default
3127
+ – a PS of
3128
+ \family typewriter
3129
+ Features.DataSet
3130
+ \family default
3131
+ double parametrized by the receiver.
3132
+ \end_layout
3133
+
3134
+ \begin_layout Standard
3135
+ Other instance methods are:
3136
+ \end_layout
3137
+
3138
+ \begin_layout Itemize
3139
+
3140
+ \family typewriter
3141
+ #load
3142
+ \family default
3143
+ – delegated to the
3144
+ \family typewriter
3145
+ Record
3146
+ \family default
3147
+ PS owned by the instance.
3148
+ \end_layout
3149
+
3150
+ \begin_layout Itemize
3151
+
3152
+ \family typewriter
3153
+ #extract_from
3154
+ \family default
3155
+ – extracts a feature set from the target object, returning a record.
3156
+ \end_layout
3157
+
3158
+ \begin_layout Itemize
3159
+
3160
+ \family typewriter
3161
+ #Record
3162
+ \family default
3163
+ alias
3164
+ \family typewriter
3165
+ #load
3166
+ \family default
3167
+ – constructs an instance from an array of values.
3168
+ The values must corresponds to the receiver feature set.
3169
+ \end_layout
3170
+
3171
+ \begin_layout Itemize
3172
+
3173
+ \family typewriter
3174
+ #+
3175
+ \family default
3176
+ ,
3177
+ \family typewriter
3178
+ #-
3179
+ \family default
3180
+ ,
3181
+ \family typewriter
3182
+ #*
3183
+ \family default
3184
+ – addition, subtraction,
3185
+ \family typewriter
3186
+ Array
3187
+ \family default
3188
+ -like multiplication for feature sets.
3189
+ \end_layout
3190
+
3191
+ \begin_layout Itemize
3192
+
3193
+ \family typewriter
3194
+ #labels
3195
+ \family default
3196
+ – array of feature labels.
3197
+ \end_layout
3198
+
3199
+ \begin_layout Itemize
3200
+
3201
+ \family typewriter
3202
+ #reduce_features
3203
+ \family default
3204
+ – expects an argument identifying a set of features that is a subset of
3205
+ the receiver feature set, and returns that feature subset.
3206
+ \end_layout
3207
+
3208
+ \begin_layout Itemize
3209
+
3210
+ \family typewriter
3211
+ #Marking
3212
+ \family default
3213
+ ,
3214
+ \family typewriter
3215
+ #Firing
3216
+ \family default
3217
+ ,
3218
+ \family typewriter
3219
+ #Flux
3220
+ \family default
3221
+ ,
3222
+ \family typewriter
3223
+ #Assignment
3224
+ \family default
3225
+ – selectors of a subset of the receiver feature set, accepting single array
3226
+ argument.
3227
+ \end_layout
3228
+
3229
+ \begin_layout Itemize
3230
+
3231
+ \family typewriter
3232
+ #marking
3233
+ \family default
3234
+ ,
3235
+ \family typewriter
3236
+ #firing
3237
+ \family default
3238
+ ,
3239
+ \family typewriter
3240
+ #flux
3241
+ \family default
3242
+ ,
3243
+ \family typewriter
3244
+ #assignment
3245
+ \family default
3246
+ – versions of the above selectors, that accept any number of arguments,
3247
+ and return full corresponding subsets if no arguments given.
3248
+ \end_layout
3249
+
3250
+ \begin_layout Itemize
3251
+
3252
+ \family typewriter
3253
+ #Gradient
3254
+ \family default
3255
+ ,
3256
+ \family typewriter
3257
+ #Delta
3258
+ \family default
3259
+ ,
3260
+ \family typewriter
3261
+ #gradient
3262
+ \family default
3263
+ ,
3264
+ \family typewriter
3265
+ #delta
3266
+ \family default
3267
+ – selectors analogical to the above mentioned, but also accepting an optional
3268
+ named argument
3269
+ \family typewriter
3270
+ :transitions
3271
+ \family default
3272
+ qualifying the features to select.
3273
+ \end_layout
3274
+
3275
+ \begin_layout Standard
3276
+ Furthermore,
3277
+ \family typewriter
3278
+ :Record
3279
+ \family default
3280
+ message is overloaded in such way, that when sent with an argument, it
3281
+ acts as an alias of
3282
+ \family typewriter
3283
+ #load
3284
+ \family default
3285
+ record constructor.
3286
+ \end_layout
3287
+
3288
+ \begin_layout Part*
3289
+
3290
+ \family typewriter
3291
+ Record
3292
+ \family default
3293
+ class
3294
+ \end_layout
3295
+
3296
+ \begin_layout Standard
3297
+ A record is basically an array, that remembers the features to which its
3298
+ values correspond.
3299
+
3300
+ \family typewriter
3301
+ Net::State::Features::Record
3302
+ \family default
3303
+ class is typically used as doubly parametrized PS, dependent firstly on
3304
+ a
3305
+ \family typewriter
3306
+ Features
3307
+ \family default
3308
+ PS, and then on its particular instance.
3309
+ The owning feature set is accessible via
3310
+ \family typewriter
3311
+ #features
3312
+ \family default
3313
+ class and instance method.
3314
+ Other class methods include:
3315
+ \end_layout
3316
+
3317
+ \begin_layout Itemize
3318
+
3319
+ \family typewriter
3320
+ #load
3321
+ \family default
3322
+ – constructs a record from a given collection of values.
3323
+ \end_layout
3324
+
3325
+ \begin_layout Standard
3326
+ Other instance methods include:
3327
+ \end_layout
3328
+
3329
+ \begin_layout Itemize
3330
+
3331
+ \family typewriter
3332
+ #dump
3333
+ \family default
3334
+ – converts the record to a plain array, with optional :precision named
3335
+ argument.
3336
+ \end_layout
3337
+
3338
+ \begin_layout Itemize
3339
+
3340
+ \family typewriter
3341
+ #print
3342
+ \family default
3343
+ – pretty prints the record with feature names.
3344
+ \end_layout
3345
+
3346
+ \begin_layout Itemize
3347
+
3348
+ \family typewriter
3349
+ #fetch
3350
+ \family default
3351
+ – returns a feature.
3352
+ \end_layout
3353
+
3354
+ \begin_layout Itemize
3355
+
3356
+ \family typewriter
3357
+ #state
3358
+ \family default
3359
+ – constructs a state, using the receiver record, and a set of complementary
3360
+ marking clamps supplied in the argument.
3361
+ \end_layout
3362
+
3363
+ \begin_layout Itemize
3364
+
3365
+ \family typewriter
3366
+ #reconstruct
3367
+ \family default
3368
+ – reconstructs a simulation from the receiver record.
3369
+ \end_layout
3370
+
3371
+ \begin_layout Itemize
3372
+
3373
+ \family typewriter
3374
+ #Marking
3375
+ \family default
3376
+ ,
3377
+ \family typewriter
3378
+ #Firing
3379
+ \family default
3380
+ ,
3381
+ \family typewriter
3382
+ #Flux
3383
+ \family default
3384
+ ,
3385
+ \family typewriter
3386
+ #Assignment
3387
+ \family default
3388
+ – selects the values of the specified feature subsets from the receiver
3389
+ record.
3390
+ Expects a single array-type argument.
3391
+ \end_layout
3392
+
3393
+ \begin_layout Itemize
3394
+
3395
+ \family typewriter
3396
+ #marking
3397
+ \family default
3398
+ ,
3399
+ \family typewriter
3400
+ #firing
3401
+ \family default
3402
+ ,
3403
+ \family typewriter
3404
+ #flux
3405
+ \family default
3406
+ ,
3407
+ \family typewriter
3408
+ #assignment
3409
+ \family default
3410
+ – the versions of the above methods accepting any number of feature-identifying
3411
+ arguments.
3412
+ \end_layout
3413
+
3414
+ \begin_layout Itemize
3415
+
3416
+ \family typewriter
3417
+ #Gradient
3418
+ \family default
3419
+ ,
3420
+ \family typewriter
3421
+ #Delta
3422
+ \family default
3423
+ ,
3424
+ \family typewriter
3425
+ #gradient
3426
+ \family default
3427
+ ,
3428
+ \family typewriter
3429
+ #delta
3430
+ \family default
3431
+ – selectors analogical to the above mentioned, but also accepting an optional
3432
+ named argument
3433
+ \family typewriter
3434
+ :transitions
3435
+ \family default
3436
+ qualifying the features to select.
3437
+ \end_layout
3438
+
3439
+ \begin_layout Itemize
3440
+
3441
+ \family typewriter
3442
+ #euclidean_distance
3443
+ \family default
3444
+ – takes another record of the same feature set as an argument and computes
3445
+ the Euclidean distance to it.
3446
+ \end_layout
3447
+
3448
+ \begin_layout Part*
3449
+
3450
+ \family typewriter
3451
+ DataSet
3452
+ \family default
3453
+ class
3454
+ \end_layout
3455
+
3456
+ \begin_layout Standard
3457
+
3458
+ \family typewriter
3459
+ YPetri::Net::DataSet
3460
+ \family default
3461
+ represents a sequence of records sampled from the underlying net using
3462
+ certain feature set.
3463
+ It is a subclass of
3464
+ \family typewriter
3465
+ Hash
3466
+ \family default
3467
+ , whose keys represent sampling events, and whose values are plain arrays,
3468
+ from which corresponding
3469
+ \family typewriter
3470
+ Record
3471
+ \family default
3472
+ instances can be fully reconstructed (via
3473
+ \family typewriter
3474
+ Record.load
3475
+ \family default
3476
+ method).
3477
+ It is typically used as doubly parametrized PS, dependent firstly on a
3478
+
3479
+ \family typewriter
3480
+ Features
3481
+ \family default
3482
+ PS, and then on its particular instance.
3483
+ The owning feature set is accessible via
3484
+ \family typewriter
3485
+ #features
3486
+ \family default
3487
+ class and instance method.
3488
+ Other class methods include:
3489
+ \end_layout
3490
+
3491
+ \begin_layout Itemize
3492
+
3493
+ \family typewriter
3494
+ #events
3495
+ \family default
3496
+ – alias for
3497
+ \family typewriter
3498
+ Hash#keys
3499
+ \family default
3500
+ – dataset keys represent sampling events.
3501
+ \end_layout
3502
+
3503
+ \begin_layout Itemize
3504
+
3505
+ \family typewriter
3506
+ #reduce_features
3507
+ \family default
3508
+ – selects certain columns (features) of a dataset.
3509
+ \end_layout
3510
+
3511
+ \begin_layout Itemize
3512
+
3513
+ \family typewriter
3514
+ #timed?
3515
+ \family default
3516
+ – inquirer whether the dataset is timed
3517
+ \end_layout
3518
+
3519
+ \begin_layout Itemize
3520
+
3521
+ \family typewriter
3522
+ #record
3523
+ \family default
3524
+ – reconstructs the
3525
+ \family typewriter
3526
+ Record
3527
+ \family default
3528
+ instance corresponding to the given event.
3529
+ \end_layout
3530
+
3531
+ \begin_layout Itemize
3532
+
3533
+ \family typewriter
3534
+ #floor
3535
+ \family default
3536
+ – the nearest event smaller or equal to the argument.
3537
+ \end_layout
3538
+
3539
+ \begin_layout Itemize
3540
+
3541
+ \family typewriter
3542
+ #ceiling
3543
+ \family default
3544
+ – the nearest event greater or equal than the argument.
3545
+ \end_layout
3546
+
3547
+ \begin_layout Itemize
3548
+
3549
+ \family typewriter
3550
+ #records
3551
+ \family default
3552
+ – returns an array of
3553
+ \family typewriter
3554
+ Record
3555
+ \family default
3556
+ instances revived from the receiver's values.
3557
+ \end_layout
3558
+
3559
+ \begin_layout Itemize
3560
+
3561
+ \family typewriter
3562
+ #reconstruct
3563
+ \family default
3564
+ – recreates the simulation at the given event.
3565
+ \end_layout
3566
+
3567
+ \begin_layout Itemize
3568
+
3569
+ \family typewriter
3570
+ #interpolate
3571
+ \family default
3572
+ – interpolates the recording at the given point (event).
3573
+ Return value is the Record class instance.
3574
+ \end_layout
3575
+
3576
+ \begin_layout Itemize
3577
+
3578
+ \family typewriter
3579
+ #resample
3580
+ \family default
3581
+ – resamples the recording.
3582
+ \end_layout
3583
+
3584
+ \begin_layout Itemize
3585
+
3586
+ \family typewriter
3587
+ #distance
3588
+ \family default
3589
+ – computes the distance to another dataset.
3590
+ \end_layout
3591
+
3592
+ \begin_layout Itemize
3593
+
3594
+ \family typewriter
3595
+ #series
3596
+ \family default
3597
+ – returns the data series for the specified features.
3598
+ \end_layout
3599
+
3600
+ \begin_layout Itemize
3601
+
3602
+ \family typewriter
3603
+ #reduce_features
3604
+ \family default
3605
+ – reduces the dataset into another dataset with a different set of features.
3606
+ Reduction to a subset of features is always possible.
3607
+ Reduction to a set of features that is not a subset of the receiver's set
3608
+ of features is only possible if the former can be inferred from the latter.
3609
+ Generally, this is the case if net state can be reconstructed from a receiver's
3610
+ record.
3611
+ From this net state, the desired new feature set is then extracted.
3612
+ \end_layout
3613
+
3614
+ \begin_layout Itemize
3615
+
3616
+ \family typewriter
3617
+ #Marking
3618
+ \family default
3619
+ ,
3620
+ \family typewriter
3621
+ #Firing
3622
+ \family default
3623
+ ,
3624
+ \family typewriter
3625
+ #Flux
3626
+ \family default
3627
+ ,
3628
+ \family typewriter
3629
+ #Assignment
3630
+ \family default
3631
+ – selects the values of the specified feature subsets from the receiver
3632
+ record.
3633
+ Expects a single array-type argument.
3634
+ \end_layout
3635
+
3636
+ \begin_layout Itemize
3637
+
3638
+ \family typewriter
3639
+ #marking
3640
+ \family default
3641
+ ,
3642
+ \family typewriter
3643
+ #firing
3644
+ \family default
3645
+ ,
3646
+ \family typewriter
3647
+ #flux
3648
+ \family default
3649
+ ,
3650
+ \family typewriter
3651
+ #assignment
3652
+ \family default
3653
+ – the versions of the above methods accepting any number of feature-identifying
3654
+ arguments.
3655
+ \end_layout
3656
+
3657
+ \begin_layout Itemize
3658
+
3659
+ \family typewriter
3660
+ #Gradient
3661
+ \family default
3662
+ ,
3663
+ \family typewriter
3664
+ #Delta
3665
+ \family default
3666
+ ,
3667
+ \family typewriter
3668
+ #gradient
3669
+ \family default
3670
+ ,
3671
+ \family typewriter
3672
+ #delta
3673
+ \family default
3674
+ – selectors analogical to the above mentioned, but also accepting an optional
3675
+ named argument
3676
+ \family typewriter
3677
+ :transitions
3678
+ \family default
3679
+ qualifying the features to select.
3680
+ \end_layout
3681
+
3682
+ \begin_layout Itemize
3683
+
3684
+ \family typewriter
3685
+ #to_csv
3686
+ \family default
3687
+ – outputs the dataset in the CSV format.
3688
+ \end_layout
3689
+
3690
+ \begin_layout Itemize
3691
+
3692
+ \family typewriter
3693
+ #plot
3694
+ \family default
3695
+ – plots the dataset.
3696
+ \end_layout
3697
+
3698
+ \begin_layout Part*
3699
+
3700
+ \family typewriter
3701
+ Agent
3702
+ \family default
3703
+ class
3704
+ \end_layout
3705
+
3706
+ \begin_layout Standard
3707
+
3708
+ \family typewriter
3709
+ YPetri::Agent
3710
+ \family default
3711
+ /
3712
+ \family typewriter
3713
+ YNelson::Agent
3714
+ \family default
3715
+ are dumb agents that represent and assist the user.
3716
+ Originally, this class was named
3717
+ \family typewriter
3718
+ Manipulator
3719
+ \family default
3720
+ , but
3721
+ \family typewriter
3722
+ Agent
3723
+ \family default
3724
+ is shorter.
3725
+
3726
+ \family typewriter
3727
+ Agent
3728
+ \family default
3729
+ does provide textual user interface, but it does not completely encapsulate
3730
+
3731
+ \family typewriter
3732
+ YPetri
3733
+ \family default
3734
+ (
3735
+ \family typewriter
3736
+ YNelson
3737
+ \family default
3738
+ ) interface.
3739
+ Rather, it defines a number of top-level DSL commands (methods) available
3740
+ upon calling '
3741
+ \family typewriter
3742
+ include YPetri
3743
+ \family default
3744
+ ' / '
3745
+ \family typewriter
3746
+ include YNelson
3747
+ \family default
3748
+ '.
3749
+
3750
+ \family typewriter
3751
+ Agent
3752
+ \family default
3753
+ is not a part of the core object model of
3754
+ \family typewriter
3755
+ YPetri
3756
+ \family default
3757
+ /
3758
+ \family typewriter
3759
+ YNelson
3760
+ \family default
3761
+ , and it is hotter than other parts of
3762
+ \family typewriter
3763
+ YPetri
3764
+ \family default
3765
+ /
3766
+ \family typewriter
3767
+ YNelson
3768
+ \family default
3769
+ .
3770
+ For basic use, see the tutorial (
3771
+ \begin_inset Quotes eld
3772
+ \end_inset
3773
+
3774
+ Introduction to
3775
+ \family typewriter
3776
+ YNelson
3777
+ \family default
3778
+
3779
+ \begin_inset Quotes erd
3780
+ \end_inset
3781
+
3782
+ ).
3783
+ For detailed description of
3784
+ \family typewriter
3785
+ Agent
3786
+ \family default
3787
+ 's assets, see the class documentation.
3788
+ \end_layout
3789
+
3790
+ \begin_layout LyX-Code
3791
+
3792
+ \end_layout
3793
+
3794
+ \begin_layout LyX-Code
3795
+ \begin_inset CommandInset bibtex
3796
+ LatexCommand bibtex
3797
+ bibfiles "/home/boris/b/1num/num,/home/boris/b/2prp/prp,/home/boris/b/5ced/ced"
3798
+ options "plainnat"
3799
+
3800
+ \end_inset
3801
+
3802
+
3803
+ \end_layout
3804
+
3805
+ \end_body
3806
+ \end_document