Seite 1 von 1

TS mit einer Liste von Tupeln

Verfasst: 6. Mär 2017 17:07
von OeMA
Hallo,

angenommen, wir haben TS, welches eine Liste von Tupeln als Zustand modelliert. Und sei put ein Ereignis aus E, welches ein Tupel in die Liste des Zustands einfügen soll.

Zum Vergleich Übung 10.1, da hatte ich ja bspw. bei dem Ereignis auszahlen(n) in meinem Nachfolgezustand gesagt, dass ( (u,n), auszahlen(n1), (u,n-1)) gilt.

Jedoch wüsste ich nicht wie ich in diesem Fall Tupel in eine Liste hinzufügen kann? Ich hatte da an eine Mathematische Funktion "helpput" gedacht, die eine Liste vollständig neu aufbaut mit dem jeweiligen Tupel was hinzugefügt werden soll, also in dieser Form: ( (x,y)* , put((a,b,)) , helpput((a,b), (x,y)*) ).

Wäre mein Ansatz richtig oder bzw. gibt es einen besseren Ansatz um das Problem zu lösen?
PS. Ich hoffe ich konnte mein Anliegen ausführlich genug beschreiben :oops:

Beste Grüße
OeMA

Re: TS mit einer Liste von Tupeln

Verfasst: 6. Mär 2017 20:53
von Markus Tasch
Ich weiß nicht ob mir die Frage ganz klar geworden ist, aber wir machen einmal ein einfaches Beispiel:

Designentscheidung: Neue Elemente werden vorne in der Liste angehangen.

Sei \(S:= (\mathbb{N}\times\mathbb{B})^*\), \(S_0:=\{()\}\), \(E:=\{put((n,b))\, \mid \, n \in \mathbb{N} \land b \in \mathbb{B}\}\). Dann könnte man deine Idee von \(put\) wie folgt in der Transitionsrelation abbilden:

\(\to:= \{ (l,put(n,b), ((n,b),l)) \, \mid \, l \in (\mathbb{N}\times\mathbb{B})^* \land n \in \mathbb{N} \land b \in \mathbb{B} \}\)

Falls die Elemente nicht vorne angehangen werden sollen, sondern in irgendeiner Form eingefügt werden sollen, dann kannst du wie von dir vorgeschlagen eine Hilfsfunktion definieren.
Dabei muss dann natürlich auf die Syntax geachtet werden.