PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PetriNetz in Pi-Kalkül überführen


Nasenbaer
2008-02-16, 11:47:26
Hi,
kann mir jemand sagen wie ich ein PetriNetz in ein Pi-Kalkül Modell überführe? Im gesamten Netz finde ich rein gar nichts dazu. :(
Wie sieht zum Beispiel das angehängte Petrinetz als Pi-Modell aus?

Mfg Michael

Coda
2008-02-16, 15:29:02
ROFL. Ein paralleler Automat in eine paralleles lambda-artiges Kalkül. Ich wünsche dir viel Spaß, die perversionen der theoretischen Informatik kennen anscheinend kein Ende :biggrin:

Das wirst du dir wohl selber überlegen müssen. Schau dir halt an was das Ding macht und konstruier dann ein entsprechendes Kalkül.

Nasenbaer
2008-02-16, 15:33:03
ROFL. Ein paralleler Automat in eine paralleles lambda-artiges Kalkül. Ich wünsche dir viel Spaß, die perversionen der theoretischen Informatik kennen anscheinend kein Ende :biggrin:

Das wirst du dir wohl selber überlegen müssen. Schau dir halt an was das Ding macht und konstruier dann ein entsprechendes Kalkül.
Wenn das denn so einfach wäre würd ichs ja machen. ;)
Ist übrigens Modellierung/Simulation wo ich das brauche. Also durchaus nutzbar in der Praxis. ^^ Bin halt nur kein Pi-Experte und im Netz gibts halt nix dazu.

Coda
2008-02-16, 15:50:14
Hilft das? http://www.eecs.harvard.edu/~nr/cs257/archive/jeannette-wing/pi.pdf

Nasenbaer
2008-02-16, 16:00:42
Hilft das? http://www.eecs.harvard.edu/~nr/cs257/archive/jeannette-wing/pi.pdf
Die hab ich alle schon gefunden im Netz aber nirgends was wirklich sinnvolles bei. Scheiße wenn man in den Übungen an der Tafel is und deswegen nichts mitgeschrieben hat. :/ Ich versuch die aufzeichnungen mal von anderen ranzubekommen und denk selbst mal noch etwas nach.

Nasenbaer
2008-02-19, 13:38:53
Habs jetzt raus. Falls das vielleicht mal jemand braucht poste ich auch noch die Lösung.

Als angenommen im obigen PetriNetz haben A und B initial ne Marke und es ist ein Bedinungs-/Ereignis Netz (also Kantengewichte und Papazitäten = 1)

Dann sieht das System S in Pi so aus:


S ::= A | B // Also Prozesse A und B laufen anfangs parallel
A ::= x!.C
B ::= x?.D
// A sendet über Kanal x und B empfängt darüber. Solange B noch nichts empfangen hat
// verklemmt A beim senden wird noch nicht zu C. Sobald aber B empfangen hat
// was A sendete, gehen beide in C bzw. D über.

C ::= y!.A
D ::= y?.B

// Analog wie bei A und B

So wird halt sichergestellt, dass immer nur A und B oder C und D gleichzeitig aktiv sind.