Ruby'de y_petri
geliştiriyorum. Şu anda, YPetri görselleştirme işleyebilir (YPetri::Net
sınıf Graphviz kullanarak net çizmek için #visualize
10 yöntemi vardır), ancak akılda tuttuğunuz GUI düzenleme değil. FYI, ilk olarak, Petri ağlarında GUI düzenlemesi göründüğünden daha az önemli.
Kullanılan veri dili, Ruby'nin kendisidir (daha doğrusu ve Ruby'de dahili DSL yazılmıştır). Petri ağları ile ilgili önemli bir konu, var olan çok fazla çeşidin varlığıdır. YPetri
, 1 tür yer (keyfi markalama tipi) ve 4 temel geçiş türü (zamanlanmış/zamansız x stokiyometrik/stoikiometrik olmayan) ile evrensel bir Petri ağ çerçevesi olmaya çalışır. Ek olarak, hedef yerlerin işaretlemesinin işlevinin geri dönüş değeriyle değiştirildiği beşinci bir geçiş, atama geçişi vardır. Bunun herhangi bir dinamik sistemi tanımlamak için kullanılabileceğine inanıyorum ki, bunu yapabildiğim kadar harikulade.
Petri ağları, geçişler ile yerler arasındaki ilişkiler olarak anlaşılırlar (bunlar, y_petri
'daki geçişlere aittir. Petri ağ düğümleri (yerler/geçişler) arasındaki ilişkileri sadece yaylardan daha iyi ifade etmenin bir yolunun yararlı olduğunu buldum. Bu amaçla, simülasyon (Petri net yürütme) ile ilgili olarak, genel hibrid Petri ağları, örtülü Euler yönteminden (sözde Euler olarak adlandırıyorum) daha hızlı bir simülasyon yöntemine sahip değildir. Genel hızlandırmanın mümkün olmadığı bir Turing makinesini uygulamak için kullanılır ..
Ruby'de çalışmaya istekli iseniz, Böylece bir Petri ağını y_petri
veya y_nelson
DSL kodunda tanımlayabilirsiniz. Kaynak DSL'ye üstün gelmediği için XML'e dönüştürme sağlamadım. Böyle bir ihracat rutinini yazmak mümkün olabilir, ancak bunun yerine DSL'yi kullanmanızı tavsiye ederim.
ben orada –
bazı yararlı Bu edilir bulursam açıklayacağım http://www.informatik.uni-hamburg.de/TGI/PetriNets/tools/quick.html de ilgili yazılımın uzun bir liste buldum harika ayrıca http://statemachines.umple.org –