2011-02-09 16 views
8

क्या पेट्री नेट ड्राइंग करने और वहां से कोई भी स्रोत कोड बनाने के लिए कोई सॉफ्टवेयर है? स्रोत कोड किसी भी पहले से ही ज्ञात प्रोग्रामिंग भाषा में हो सकता है ...पेट्री नेट ड्राइंग और कोड पीढ़ी

थोड़ा कम वांछनीय विकल्प फ़ाइल को आउटपुट कर रहा है जिसमें केवल कुछ खुले प्रारूप में पेट-नेट फ़ाइल में पेट्री नेट ग्राफ का विवरण होगा, जैसे एक्सएमएल या कोई अन्य डेटा भाषा। मैं तो कोड जनरेटर अपने आप को लिख सकता है, लेकिन कम से कम मैं जीयूआई/ग्राफ विकास हिस्सा से बचने के लिए चाहते हैं, आप आकर्षित कर सकते हैं))

धन्यवाद

+1

मुझे http://www.informatik.uni-hamburg.de/TGI/PetriNets/tools/quick.html पर संबंधित सॉफ़्टवेयर की एक लंबी सूची मिली है, अगर मुझे कुछ उपयोगी लगता है तो –

+0

यह टिप्पणी करेगा महान भी http://statemachines.umple.org –

उत्तर

3

चेक PetriNetSim यह जावा में विकसित की है, और सरल अनुकरण/रंग/समय पेटीनेट्स। यह कुछ उदाहरणों के साथ आता है। आप जावा में आर्क और नोड्स बाधाओं का विस्तार कर सकते हैं। और अंत में आप उत्पन्न पेट्री शुद्ध

आप GitHub https://github.com/zamzam/PetriNetSim

2

मैं CPN Tools को देखो चाहते हैं से स्रोत कोड प्राप्त कर सकते हैं के जावा वर्गों देख सकते हैं। वे रंगीन पेट्री जाल के सभी प्रकार के निर्माण, विश्लेषण, अनुकरण, और दावा कोड उत्पादन क्षमता प्रदान करते हैं।

2

मैं रुबी में y_petri विकसित कर रहा हूं। फिलहाल, वाईपेट्री विज़ुअलाइजेशन को नियंत्रित कर सकता है (YPetri::Net क्लास मेंविधि का उपयोग कर ग्राफवीज़ नेट को आकर्षित करने के लिए विधि है), लेकिन जीयूआई संपादन में आपको दिमाग में नहीं लगता है। एफवाईआई, सबसे पहले, पेट्री जाल में जीयूआई संपादन ऐसा लगता है उससे कम महत्वपूर्ण है।

उपयोग में डेटा भाषा रूबी स्वयं (अधिक सटीक, और रूबी में आंतरिक डीएसएल लिखी गई है) है।

पेट्री जाल के साथ एक बड़ा मुद्दा यह है कि अस्तित्व में पूरी तरह से उनमें से कई प्रकार हैं। YPetri एक सार्वभौमिक पेट्री नेट फ्रेमवर्क होने का प्रयास करता है, जिसमें 1 प्रकार के स्थान (मनमानी अंकन प्रकार) और 4 मूल प्रकार के संक्रमण (समय/कालातीत एक्स स्टॉइचियोमेट्रिक/गैर-स्टॉइचियोमेट्रिक) होते हैं। इसके अलावा, पांचवां प्रकार का संक्रमण, असाइनमेंट संक्रमण है, जो अपने कार्यों के रिटर्न वैल्यू के साथ लक्षित स्थानों को चिह्नित करता है। मेरा मानना ​​है कि इसका उपयोग किसी भी गतिशील प्रणाली का वर्णन करने के लिए किया जा सकता है, जबकि मैं इसे बनाने में सक्षम था, जबकि पार्सिमोनियस के रूप में।

पेट्री नेट आर्क को संक्रमण और स्थानों के बीच संबंधों के रूप में समझा जाता है (वे y_petri में संक्रमण से संबंधित हैं। मैंने पाया कि यह केवल arcs की तुलना में पेट्री नेट नोड्स (स्थानों/संक्रमण) के बीच संबंधों को व्यक्त करने का एक तरीका है। इस उद्देश्य, I use Ted Nelson's ZZ structure (ZigZag) basically as a replacement for a relational database

अनुकरण के लिए के रूप में (पेट्री शुद्ध निष्पादन) के लिए, सामान्य संकर पेट्री जाल निहित यूलर विधि (जो मैं छद्म यूलर कहते हैं) की तुलना में उपलब्ध कोई तेजी से अनुकरण विधि है। इसका कारण यह है एक पेट्री शुद्ध किया जा सकता है एक ट्यूरिंग मशीन को लागू करने के लिए उपयोग किया जाता है, जिसके लिए कोई सामान्य गति संभव नहीं है।

यदि आप रूबी में काम करने के इच्छुक हैं, आप इस प्रकार y_petri या y_nelson डीएसएल कोड में पेट्री नेट का वर्णन कर सकते हैं। मैं एक्सएमएल में रूपांतरण प्रदान नहीं करता, क्योंकि मैं इसे स्रोत डीएसएल से बेहतर नहीं मानता। इस तरह के निर्यात दिनचर्या लिखना संभव होगा, लेकिन मैं आपको इसके बजाय डीएसएल का उपयोग करने के लिए प्रोत्साहित करता हूं।

संबंधित मुद्दे