y_nelson 2.3.7 → 2.3.8

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